From edb1a7100bc5c0c0c324f80091b4d9567e69c901 Mon Sep 17 00:00:00 2001 From: JPB Date: Mon, 24 Jun 2024 11:06:32 -0400 Subject: [PATCH 01/14] Use ADRs for a record of project decisions. --- wormchain/docs/.adr-dir | 1 + ...0001-ADRs-are-canonical-source-of-truth.md | 32 +++++++++++++++++++ 2 files changed, 33 insertions(+) create mode 100644 wormchain/docs/.adr-dir create mode 100644 wormchain/docs/architecture/0001-ADRs-are-canonical-source-of-truth.md diff --git a/wormchain/docs/.adr-dir b/wormchain/docs/.adr-dir new file mode 100644 index 0000000000..c65fbdbbea --- /dev/null +++ b/wormchain/docs/.adr-dir @@ -0,0 +1 @@ +architecture diff --git a/wormchain/docs/architecture/0001-ADRs-are-canonical-source-of-truth.md b/wormchain/docs/architecture/0001-ADRs-are-canonical-source-of-truth.md new file mode 100644 index 0000000000..982d2c4154 --- /dev/null +++ b/wormchain/docs/architecture/0001-ADRs-are-canonical-source-of-truth.md @@ -0,0 +1,32 @@ +# 1. ADRs will be the Canonical Source of Truth for architecture decisions + +Date: 2024-06-24 + +## Status + +Accepted + +## Context + +- As WH/SL +- We want a place to memorialize decisions +- Because it helps with context / institutional memory / onboarding + +As discussed and agreed to in the Strangelove / Wormhole [project kick-off](https://miro.com/app/board/uXjVK_fZYq0=/?share_link_id=596301298163). + +## Decision + +To memorialize decisions, we'll use Architecture Decision Records, as [described by Michael Nygard](http://thinkrelevance.com/blog/2011/11/15/documenting-architecture-decisions). + +Briefly: ~if~ whenever we make a decision which might reasonably cause a Future Developer (e.g., a new dev, or Six-Months-In-The-Future-Us) to say "Wait—why'd we choose that?", we'll log an ADR to act as a Canonical Source Of Truth, contemporaneously detailing reasoning. + +At times, we'll certainly be wrong. + +We'll almost certainly backtrack certain ideas. + +But—hopefully—we won't bark up the same tree twice. + +## Consequences + +- You might want some tooling. For a lightweight ADR toolset, see Nat Pryce's [adr-tools](https://github.com/npryce/adr-tools), or `brew install adr-tools` if you're the trusting sort. +- We instantiated w/ the default template (Status, Context, Decision, Consequences). If/when we want to update the ADR format, this gh issue has the rundown: https://github.com/npryce/adr-tools/issues/120. From 04904168788fa10992a2bb15f523c31ad031a8a0 Mon Sep 17 00:00:00 2001 From: Justin Tieri <37750742+jtieri@users.noreply.github.com> Date: Mon, 24 Jun 2024 15:09:01 -0500 Subject: [PATCH 02/14] docs: add ADR for wasmvm versioning decision --- ...ll-be-upgraded-to-v1-5-2-and-not-v2-x-x.md | 22 +++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 wormchain/docs/architecture/0002-wasmvm-will-be-upgraded-to-v1-5-2-and-not-v2-x-x.md diff --git a/wormchain/docs/architecture/0002-wasmvm-will-be-upgraded-to-v1-5-2-and-not-v2-x-x.md b/wormchain/docs/architecture/0002-wasmvm-will-be-upgraded-to-v1-5-2-and-not-v2-x-x.md new file mode 100644 index 0000000000..48a80abd45 --- /dev/null +++ b/wormchain/docs/architecture/0002-wasmvm-will-be-upgraded-to-v1-5-2-and-not-v2-x-x.md @@ -0,0 +1,22 @@ +# 2. wasmvm will be upgraded to v1.5.2 and not v2.x.x + +Date: 2024-06-24 + +## Status + +Accepted + +## Context + +wasmvm 1.5.2 has an EOL that will arrive sooner, but v2.x.x is a riskier upgrade path. + +## Decision + +We will upgrade to v1.5.2 and NOT v2.x.x because it was suggested that the risk/reward isn't worth it: too new, +bugs on tokenfactory for chains which deployed it. We will hold off on that for now. + +## Consequences + +Not being on wasmvm v2.x.x will leave wormhole gateway missing out on the "factor of 1000" lower cosmwasm gas costs, +improved submessage ergonomics and ability to query cosmwasm via grpc which are some of the main 2.x benefits. +Reference: https://medium.com/cosmwasm/cosmwasm-2-0-bbb94126ce6f From 796c3a0fb3e33876330a506faf02a883ab239a00 Mon Sep 17 00:00:00 2001 From: pharr117 Date: Wed, 10 Jul 2024 18:51:12 -0400 Subject: [PATCH 03/14] Add ADR for Cosmos SDK v0.47 upgrade applied to wormhole-foundation Cosmos SDK fork --- ...de-will-be-implemented-in-wormhole-fork.md | 28 +++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 wormchain/docs/architecture/0003-cosmos-sdk-v0-47-upgrade-will-be-implemented-in-wormhole-fork.md diff --git a/wormchain/docs/architecture/0003-cosmos-sdk-v0-47-upgrade-will-be-implemented-in-wormhole-fork.md b/wormchain/docs/architecture/0003-cosmos-sdk-v0-47-upgrade-will-be-implemented-in-wormhole-fork.md new file mode 100644 index 0000000000..fe9d172476 --- /dev/null +++ b/wormchain/docs/architecture/0003-cosmos-sdk-v0-47-upgrade-will-be-implemented-in-wormhole-fork.md @@ -0,0 +1,28 @@ +# 3. cosmos sdk v0.47 upgrade will be implemented in wormhole fork + +Date: 2024-07-10 + +## Status + +Accepted + +## Context + +The Wormhole Foundation has made a copy of the Cosmos SDK repository, which can be found in their Github organization [here](https://github.com/wormhole-foundation/cosmos-sdk). They are referencing this copied repository in the wormchain [go.mod]( github.com/cosmos/cosmos-sdk => github.com/wormhole-foundation/cosmos-sdk v0.45.9-wormhole-2) file, referencing the [v0.45.9-wormhole-2](https://github.com/wormhole-foundation/cosmos-sdk/releases/tag/v0.45.9-wormhole-2) tag. This tag has [commits](https://github.com/wormhole-foundation/cosmos-sdk/commits/v0.45.9-wormhole-2/?since=2022-10-19&until=2022-12-21) made by the wormhole-foundation team that fundamentally change the behavior of the staking module, particularly implementing proof of authority based on the wormchain guardian set. + +## Decision + +With the use of a forked Cosmos SDK and fundamental changes to the staking module, the initial Cosmos SDK v0.45 to v0.47 upgrade will be done on their fork in the following manner: + +1. Pull in the [v0.47.12](https://github.com/cosmos/cosmos-sdk/releases/tag/v0.47.12) (latest in the v0.47 series) tag from the Cosmos SDK repository into the +2. Re-implement the changes made in the v0.45.9-wormhole-2 tag into the v0.47.12 tag. +3. Release a new tag that includes the changes from the v0.47.12 tag and the changes made on top of it from the v0.45.9-wormhole-2 tag. +4. Reference this new version in the wormchain go.mod file. + +## Consequences + +With the changes to the staking module being applied directly in the Wormhole Foundation Cosmos SDK fork, this will have the following good and bad consequences: + +1. It will maintain the required changes made to the staking module as they were at the time of the v0.45.9-wormhole-2 tag. +2. It will be easier to maintain the changes made to the staking module as they will be directly applied to the forked repository. +3. Maintaining the fork of the Cosmos SDK will be more difficult as the Cosmos SDK repository will continue to evolve. \ No newline at end of file From ec8ac6841d138658204a30323c38fe301f0c2623 Mon Sep 17 00:00:00 2001 From: Peter <24580777+pharr117@users.noreply.github.com> Date: Fri, 12 Jul 2024 11:38:07 -0400 Subject: [PATCH 04/14] Update 0003-cosmos-sdk-v0-47-upgrade-will-be-implemented-in-wormhole-fork.md --- ...dk-v0-47-upgrade-will-be-implemented-in-wormhole-fork.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/wormchain/docs/architecture/0003-cosmos-sdk-v0-47-upgrade-will-be-implemented-in-wormhole-fork.md b/wormchain/docs/architecture/0003-cosmos-sdk-v0-47-upgrade-will-be-implemented-in-wormhole-fork.md index fe9d172476..f9ad11a592 100644 --- a/wormchain/docs/architecture/0003-cosmos-sdk-v0-47-upgrade-will-be-implemented-in-wormhole-fork.md +++ b/wormchain/docs/architecture/0003-cosmos-sdk-v0-47-upgrade-will-be-implemented-in-wormhole-fork.md @@ -1,4 +1,4 @@ -# 3. cosmos sdk v0.47 upgrade will be implemented in wormhole fork +# 3. Cosmos SDK v0.47 upgrade will be implemented in Wormhole Fork Date: 2024-07-10 @@ -8,7 +8,7 @@ Accepted ## Context -The Wormhole Foundation has made a copy of the Cosmos SDK repository, which can be found in their Github organization [here](https://github.com/wormhole-foundation/cosmos-sdk). They are referencing this copied repository in the wormchain [go.mod]( github.com/cosmos/cosmos-sdk => github.com/wormhole-foundation/cosmos-sdk v0.45.9-wormhole-2) file, referencing the [v0.45.9-wormhole-2](https://github.com/wormhole-foundation/cosmos-sdk/releases/tag/v0.45.9-wormhole-2) tag. This tag has [commits](https://github.com/wormhole-foundation/cosmos-sdk/commits/v0.45.9-wormhole-2/?since=2022-10-19&until=2022-12-21) made by the wormhole-foundation team that fundamentally change the behavior of the staking module, particularly implementing proof of authority based on the wormchain guardian set. +The Wormhole Foundation has made a copy of the Cosmos SDK repository, which can be found in their Github organization [here](https://github.com/wormhole-foundation/cosmos-sdk). They are referencing this copied repository in the wormchain [go.mod](https://github.com/wormhole-foundation/wormhole/blob/6236a9a6cbd0dc00a940e6654c6f6106d0904ece/wormchain/go.mod#L142) file, referencing the [v0.45.9-wormhole-2](https://github.com/wormhole-foundation/cosmos-sdk/releases/tag/v0.45.9-wormhole-2) tag. This tag has [commits](https://github.com/wormhole-foundation/cosmos-sdk/commits/v0.45.9-wormhole-2/?since=2022-10-19&until=2022-12-21) made by the wormhole-foundation team that fundamentally change the behavior of the staking module, particularly implementing proof of authority based on the wormchain guardian set. ## Decision @@ -25,4 +25,4 @@ With the changes to the staking module being applied directly in the Wormhole Fo 1. It will maintain the required changes made to the staking module as they were at the time of the v0.45.9-wormhole-2 tag. 2. It will be easier to maintain the changes made to the staking module as they will be directly applied to the forked repository. -3. Maintaining the fork of the Cosmos SDK will be more difficult as the Cosmos SDK repository will continue to evolve. \ No newline at end of file +3. Maintaining the fork of the Cosmos SDK will be more difficult as the Cosmos SDK repository will continue to evolve. From faf241c8bdb84591db70498ff30bd25a27b6b0dc Mon Sep 17 00:00:00 2001 From: pharr117 Date: Fri, 12 Jul 2024 16:12:31 -0400 Subject: [PATCH 05/14] Add ADR for Tendermint to CometBFT migration applied to wormhole-foundation Cosmos SDK fork --- ...ing-to-latest-cosmos-sdk-upstream-v0-45.md | 33 +++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 wormchain/docs/architecture/0004-tendermint-core-will-be-migrated-to-cometbft-by-bumping-to-latest-cosmos-sdk-upstream-v0-45.md diff --git a/wormchain/docs/architecture/0004-tendermint-core-will-be-migrated-to-cometbft-by-bumping-to-latest-cosmos-sdk-upstream-v0-45.md b/wormchain/docs/architecture/0004-tendermint-core-will-be-migrated-to-cometbft-by-bumping-to-latest-cosmos-sdk-upstream-v0-45.md new file mode 100644 index 0000000000..5ecf4e1a7b --- /dev/null +++ b/wormchain/docs/architecture/0004-tendermint-core-will-be-migrated-to-cometbft-by-bumping-to-latest-cosmos-sdk-upstream-v0-45.md @@ -0,0 +1,33 @@ +# 4. Tendermint Core Will be Migrated to CometBFT by Bumping to Latest Cosmos SDK Upstream v0.45 + +Date: 2024-07-12 + +## Status + +Accepted + +## Context + +The Wormhole Cosmos SDK was forked at [v0.45.9](https://github.com/cosmos/cosmos-sdk/releases/tag/v0.45.9) of the Cosmos SDK releases. This can be seen by looking at their [in-use tag's](https://github.com/wormhole-foundation/cosmos-sdk/commits/v0.45.9-wormhole-2/) last commit from the upstream [here](https://github.com/wormhole-foundation/cosmos-sdk/commit/2582f0aab7b2cbf66ade066fe570a4622cf0b098), which shares the commit history and SHA of the v0.45.9 release. + +This version of the Cosmos SDK was released before the fork of Tendermint Core and migration provided by the Cosmos SDK core team in the [Comet BFT](https://github.com/cometbft/cometbft) project, the motivation of which was announced [here](https://informal.systems/blog/cosmos-meet-cometbft). + +To facilitate a more modern usage of the Cosmos SDK, projects should move away from Tendermint Core to CometBFT, as it is more up-to-date, maintained and provides security and bug fixes. + +The Cosmos SDK team slowly rolled out migrations from Tendermint Core to CometBFT in the Comsos SDK repo, and this migration was implemented in the v0.45 line in release [v0.45.15](https://github.com/cosmos/cosmos-sdk/releases/tag/v0.45.15). + +## Decision + +The migration to Tendermint Core will take place by: + +1. Pulling in the upstream latest version in the v0.45 line, which is [v0.45.16](https://github.com/cosmos/cosmos-sdk/releases/tag/v0.45.16) (one version after the v0.45.15 migration release) +2. Replaying the [commits](https://github.com/wormhole-foundation/cosmos-sdk/commits/v0.45.9-wormhole-2/?since=2022-10-19&until=2022-12-21) implemented by the Wormhole developers on top of this tag +3. Release a new tag that includes the changes from the v0.45.16 tag and the changes made on top of it from the v0.45.9-wormhole-2 tag. +4. Reference this new version in the wormchain go.mod file. + +## Consequences + +This change will have the following consequences: + +1. It pulls in the latest bug fixes and security updates in the v0.45 line while work on moving to v0.47 continues (see ADR 3 for details) +2. It will require extensive testing and review to ensure the changes fro v0.45.9 to v0.45.16 did not break the Wormchain repo's usage of the Cosmos SDK From 4ee01dca01f2bedba3b89ddb15489230e5ede77c Mon Sep 17 00:00:00 2001 From: pharr117 Date: Fri, 12 Jul 2024 16:35:33 -0400 Subject: [PATCH 06/14] Typo --- ...o-cometbft-by-bumping-to-latest-cosmos-sdk-upstream-v0-45.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/wormchain/docs/architecture/0004-tendermint-core-will-be-migrated-to-cometbft-by-bumping-to-latest-cosmos-sdk-upstream-v0-45.md b/wormchain/docs/architecture/0004-tendermint-core-will-be-migrated-to-cometbft-by-bumping-to-latest-cosmos-sdk-upstream-v0-45.md index 5ecf4e1a7b..7f7f432665 100644 --- a/wormchain/docs/architecture/0004-tendermint-core-will-be-migrated-to-cometbft-by-bumping-to-latest-cosmos-sdk-upstream-v0-45.md +++ b/wormchain/docs/architecture/0004-tendermint-core-will-be-migrated-to-cometbft-by-bumping-to-latest-cosmos-sdk-upstream-v0-45.md @@ -30,4 +30,4 @@ The migration to Tendermint Core will take place by: This change will have the following consequences: 1. It pulls in the latest bug fixes and security updates in the v0.45 line while work on moving to v0.47 continues (see ADR 3 for details) -2. It will require extensive testing and review to ensure the changes fro v0.45.9 to v0.45.16 did not break the Wormchain repo's usage of the Cosmos SDK +2. It will require extensive testing and review to ensure the changes from v0.45.9 to v0.45.16 did not break the Wormchain repo's usage of the Cosmos SDK From b34da54f1546eca30b35abafb460e1a90084e165 Mon Sep 17 00:00:00 2001 From: Peter <24580777+pharr117@users.noreply.github.com> Date: Fri, 23 Aug 2024 11:31:55 -0400 Subject: [PATCH 07/14] chore(fork): pull upstream changes (#65) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Node metric and performance tweaks (#3967) * Node: Metric and performance tweaks * Tweak observation metric * pubsub StrictNoSign * bigger observation metric buckets * biggerer observation metric buckets * Node: Add metric for libp2p drops * Disable StrictNoSign for now --------- Co-authored-by: Evan Gray * node: Allow tokens to change their symbol in generator script * Node/CCQ: Allow anything in testnet (#3966) * node: update xlabs testnet guardian endpoints * clients/js: pin tsx version * ci: evm relayer address fix * node: Governor token list update * Node: Minor tweaks and spy improvement (#3974) * Node: Minor tweaks and spy improvement * Add tests * node: Token generator script flags tokens with changed symbols * Deploy Gnosis Chiado Testnet (#3987) * node: Update flow cancel tokens (#3986) - Add canonical Solana and Ethereum stablecoins - Remove Aave USDC * node: governor custom reset release timer delay (#3983) * Update ChainGovernorResetReleaseTimerRequest protobuf message * Add numDays argument to governor-reset-release-timer command * Update governor backend to support numDays argument * Address review comments * Add test for resetReleaseTimerForTime()'s numDays parameter * Address review comments * Add adminrpc test for ChainGovernorResetReleaseTimer * Replace hardcoded upper boundaries with maxResetReleaseTimerDays * Update governor whitepaper to reflect the new argument * Added default value to governor whitepaper --------- Co-authored-by: Jason Matthyser * node: Fix bug in flow cancel mechanism where the wrong values were being used for tokenEntry (#3990) * node: add more unit tests for flow cancel * node: Fix tokenEntry indexing issue in Governor flow cancel logic - Indexes the tokenEntry for flow cancel tokens properly (using the token's origin chain and origin address - Add many more tests to check flow cancel logic in more detail and at the resolution of the ProcessMsgForTime method. Big thanks to Max for helping to debug the issue and the unit tests. * node: add check to ensure the governor usage is not zero * node: Change flow cancel test so that origin and emitter chain are different * node: Add unit test for partial flow cancel Add additional test for flow cancel mechanism where the numbers do not cleanly cancel out. * node: fix lint issues in governor test * node: Add emitters for Lido wstETH NTT deployment to NTT Accountant mainnet tracking (#3997) * docs: update governor docs to reflect reset-release-timer change (#3999) * docs: update governor docs to reflect reset-release-timer change * docs: fix spelling mistake in governor docs --------- Co-authored-by: Jason Matthyser * node: governor token list update * Node: p2p.Run interface change (#3996) * Node: p2p.Run interface change * Guardian should be able to set disableHeartbeatVerify * node: Fix issue where transfers that were loaded from the DB did not add a flow-cancel transfer on the TargetChain (#4002) node: Fix issue where transfers that were loaded from the DB did not add a flow-cancel transfer on the TargetChain Flow-canceling is done in the `ProcessMsgForTime` loop when a new message occurs. However, this was not done when a node restarted and reloaded transfers from the past 24 hours. As a result it was possible for the node to calculate a result that showed that the outgoing transfers for an emitter chain exceeded the daily limit. In effect this is true but only with the condition that there was incoming flow to allow this to happen. This appeared to violate an invariant and so the node did not start properly. Add unit tests when reloading flow cancel transactions from the database * Node/GWRelayer: Should check emitter for ibc transfers (#4007) * Node/EVM: Add more cases to canRetryGetBlockTime (#4010) * Node/EVM: Add more cases to canRetryGetBlockTime * Code review rework * node/hack: Update Sui RPC endpoint * Node/Acct: Remove obsolete pending transfers from db (#4003) * Deploy Berachain V2 testnet (#4020) * node: governor token list update * Update issue templates (#4024) * Update issue templates removed unused tracker, split bug reports into guardian vs non-guardian * Update bug_report_guardian.md smaller guardian bug report template * node: remove sui websocket from watcher * docs: Update CONTRIBUTING.md to forbid low-effort dependency changes * docs: Typo in CONTRIBUTING * sdk/js-query: add signaturesToSolanaArray util * chore(node/cmd): replace `fmt.Errorf` without parameters with `errors.New` (#4030) * node: devcontainer support * cosmwasm: add missing feature flags in Cargo.toml files These flags were previously not declared, which is now reported by clippy. Also fixed the docstring indentation, which clippy also complains about now. * Deploy Snaxchain to testnet (#4035) * Deploy Snaxchain to testnet * Code review rework * Input Validation on Generated Token List (#4026) * Add input validation on the generated go code * Change denylist and comment associated with it * Add changes to the text file and more restrictive chars * Removing unnecessary async code --------- Co-authored-by: Maxwell Dulin Co-authored-by: Maxwell Dulin * Tilt: Various fixes * Tilt: Reenable query tests (#4040) * node/evm: retry tx once before timing out * node: Fix lint violation in hack/repair_eth/repair_eth.go * acala: update testnet contracts and VAA due to network reset * acala/karura: update testnet environments * Node: Minor logging changes * node/cleanup: Add some documentation and an ignore-list to mainnet_chains_test.go (#4038) * node: Add test to ensure that governed chains also have governed assets * node: Update test that checks if governed chains have governed assets - Verify tokens against the Governor's mainnet chains rather than querying against the values configured in the SDK. (These should be the same but it avoid a package import and ties in more closely to the Governor's functionality.) - Add test message on failure to help with debugging - Remove outdated exceptions to existing the unit test - Merge test from previous commit into a similar unit test that already existed * node: Revert chainList() so that its scope is private * node: Flow cancel enhancements and bug fixes (#4016) * node: Fix issue where transfers that were loaded from the DB did not add a flow-cancel transfer on the TargetChain Flow-canceling is done in the `ProcessMsgForTime` loop when a new message occurs. However, this was not done when a node restarted and reloaded transfers from the past 24 hours. As a result it was possible for the node to calculate a result that showed that the outgoing transfers for an emitter chain exceeded the daily limit. In effect this is true but only with the condition that there was incoming flow to allow this to happen. This appeared to violate an invariant and so the node did not start properly. node: Add unit tests when reloading flow cancel transactions from the database node: fix lint errors in governor_test.go * node: Add a command-line flag to enable or disable flow-canceling on restart Added a command-line flag to enable or disable flow-canceling when starting the node. This should allow Guardians to disable flow canceling in the case of future bugs or during a security incident. This should prevent the need to rollback to earlier Guardian versions. (@mdulin2 ) * node: Use deterministic iteration order over chains when changing Governor state - Adds a field that stores a sorted slice of chain IDs to the governor. - Use this field to iterate in a determinstic order when performing actions that change the state of the Governor - This should help Guardians reach a more similar view of the Governor in scenarios where iteration order might impact whether a transfer is queued. (This is relevant especially in the case of Flow Canceling) - Cases where only a single VAA is being modified were not changed. Iteration order should not matter here and determinstic order may may worse for performance when searching for a particular element. * node: Fix tokenEntry when checking flow cancel for pending transfers (Squash and merge bug fix from PR #4001) Similar to a previous issue in the function `ProcessMsgForTime`, the tokenEntry was not being generated properly. This should result in queued "small transfers" being able to flow cancel when they are released from the queue. Also adds a comment on the CheckedInt64 function to indicate what its error states mean and when they occur. Add comments and change variable names for governor_monitoring - Add function comments to explain what they do and what their error states mean - Adds governor logging to error cases - Change variable names in publishStatus function. `value` was used first to indicate the "governor usage" and then reused to indicate the remaining available notional value for a chain. This refactor tries to make it clear that these are different concepts Add unit test for flow cancelling when a pending transfer is released - Add a unit test to ensure that, when a pending transfer is released, it also does flow-cancelling on the TargetChain (previously we had a bug here) - Add documentation for CheckPendingForTime to clarify that it has side-effects * node: Modify error handling for CheckPending method in the Governor Previous rollouts of the Flow Cancel feature contained issues when calculating the Governor usage when usage was near the daily limit. This caused an invariant to be violated. However, this was propagated to the processor code and resulted in the processor restarting the entire process. Instead, the Governor should simply fail-closed and report that there is no remaining capacity, causing further VAAs to be queued until the usage diminishes over time. The circumstances leading to the invariant violations are not addressed in this commit. Instead this commit reworks the way errors are handled by the CheckPending, making careful choices about when the process should or should not be killed. - Change "invariant" error handling: instead of causing the process to die, log an error and skip further for a single chain while allowing processing for other chains to continue - Remove 'invariant error' in TrimAndSumValueForChain as it can occur somewhat regularly with the addition of the flow cancel feature - Return dailyLimit in error condition rather than 0 so that future transfers will be queued - Do not cap the sum returned from TrimAndSumValueForChain: instead allow it to exceed the daily limit. - Modify unit tests to reflect this - Add unit tests for overflow/underflow scenarios in the TrimAndSumValue functions - Change other less severe error cases to log warnings instead of returning errors. - Generally prevent flow-cancel related issues from affecting normal Governor operations. Instead the flow cancel transfers should simply not be populated and thus result in "GovernorV1" behavior. - Add documentation to CheckPendingForTime to explain the dangers of returning an error - Reword error messages to be more precise and include more relevant fields. Add documentation explaining when the process should and should not die * node: Add additional metrics for Governor status Modify the monitoring code and protobuf files to make the status of the Governor more legible when flow-canceling is enabled. This can be consumed by Wormhole Dashboard to better reflect the effects of flow cancelling. On the level of the Governor: - whether the Guardian has enabled flow cancel or not On the level of the Governor's emitters, reports 24h metrics for: - net value that has moved across the chain - total outgoing amount - total incoming flow cancel amount Currently big transfers are not accounted for as they do not affect the Governor's capacity. (They are always queued.) * node: Add new flow cancel parameter to Governor in tests * node: goimports formatting * node: Bug fix in changes to governor monitoring - Fix issue where stats weren't being populated unless flow cancel was enabled - Fix wrong return value used in unit test - Fix typo in proto variable name - Move sorting outside of a for loop for efficiency - Restore unit test that was deleted in the process of rebasing * node: address prealloc lint error in governor code * node: Fix "generated proto differs from committed proto" * node: Fix bug in chainIds allocation - This resolves a mistake with allocating the chainIds in the governor initialization that causes nil entries in the slice. - Add unit tests to ensure that the chainIds slice matches the chains map - Add unit test to ensure that TrimAndSumValueForChain checks for a nil pointer to avoid panics * node: Fix returning nil on err in governor_test.go * node: Cleanup comments in governor code * node: fix governor comment * node: enable flow cancel in governor_monitoring tests * node: Add flow cancel information to p2p heartbeat features * node: Remove outdated comment from governor * node: Upgrade logs to Error from Warn when reloading transfers from database * node: Enable flow cancel in check_query test function * node: Cleanup comments and redundant code in governor * node: Refactor how the flow cancel token list gets populated - Only populate the flow cancel tokens list once - Change default behavior to use an empty flow cancel assets list, rather than first populating the list and then clearing it - Refactor the logic around enabling the flow cancel token field for governed assets. Now it only executes if flow cancel is enabled, rather than operating over an empty slice when flow cancel is disabled - Modify devnet/testnet configs so that they are responsible for returning the correct list of flow cancelling assets * node: Add unit test for flow cancel feature flag * node: Move new Governor status proto fields from Emitter to Chain * node: lint governor_monitoring --------- Co-authored-by: Maxwell Dulin * Tilt: More multiple guardian changes (#4043) * wormchain: change ioutil to io and os (#3970) * ioutil to io and os * io to os * wormchain: refresh interchaintest (#3991) * Add interchaintest tests to wormchain * chore: refreshed icts * chore: updated wasm binaries for ict --------- Co-authored-by: Steve Miskovetz * node: Update token entries for devnet and testnet configs (#4045) * node: Update token entries for devnet and testnet configs The previous entries had incorrect CoinGecko symbol information. This commit updates the values in these config files to use the same data as their counterparts in the generated token list for mainnet. * node: revert devnet/testnet token address changes * ci: fix node tests fail intermittently (#4044) * ci: reveal sdk/js-query test errors * clients/js: move towards sdkV2 * CI: query-sdk-ci fails intermittently (#4046) * CI: query-sdk-ci fails intermittently * Make query-ci wait for more peers * Add new key for accountant on guardian-0 * Force to run on instance-2 * Undo instance change * Change accountant key for guardian 1 to ensure it's unique * Restore log levels * Fix solana query tests * Enable logging * Remove now-redundant query-ci tests * Node: Gateway relayer can ignore already attested return (#4052) * node: Fix missing tokens in generated token list due to outdated SDK (#4053) - The script used to generate the updated token list was using an outdated version of the TS SDK. This caused newer chains to return a result of 'undefined' when they were converted to the custom ChainId type as they were not encluded in the enum of valid chain IDs - Update the local SDK version used by the script via `npm update @certusone/wormhole-sdk` - Adds additional logging to the script to help troubleshoot similar errors in the future * sdk: update karura testnet contracts and tokenBridgeVAA (#4055) * env: add slow option to FORGE_ARGS on karura testnet * vaa: update karura testnet tokenBridgeVAA * karura: update karura testnet contracts * Terra2: Use "docker compose", not docker-compose (#4056) * ci: bump foundry to 2024-08-04 nightly * Node: Gossip Topic Split (#4000) * WIP: topic split * Add cutover support * Remove measurements that were moved to PR#3988 * Code review rework * Code review rework --------- Co-authored-by: Evan Gray * Node: Processor performance improvements (#3988) * Node: Processor db write separation * Handle additional update while writing to db * Move the broadcasting of signed VAA to the worker * Tweak signaturesToVaaFormat * Eliminate map look up in HandleQuorum * Remove unnecessary check for already submitted * Use BadgerDB batch API to store VAAs * Don't move broadcasting to worker * Speed up processing our own observation * Simplify handleMessage and broadastSignature * Code review rework * Node/P2P: Allow disabling subscribing to VAAs (#4019) * sdk: add Mantle and X Layer relayer addresses * node: Add Makefile test target for arm64 (#4057) * node: Add Makefile test target for arm64 * node: Fix comment in Makefile * Node/CCQ: Allow address wildcard (#4062) * Node/CCQ: Allow address wildcard * Code review rework * Update the docs * Node: Log fatal not making it to grafana (#4063) * Node/CCQ: Proxy log stats on timeout (#4067) * client/js: update Acala, add Snaxchain support * client/js: update wormhole-foundation/sdk (0.9.0) and certusone/wormhole-sdk (0.10.17) * client/js: update acala testnet chain id (597) * clients/js: add Snaxchain --------- Co-authored-by: Paul Noel * node: governor token list update * Node/CCQ: Solana should retry block read (#4068) * Node/CCQ: Solana should retry block read * Code review rework * Node/CCQ: Add command to verify the permissions file (#4071) * Node: Observation batching with override (#4066) * Node: Observation batching with override * Add cutover time * Code review rework * node: Update governor manual tokens list * Node: Unknown guardian tweaks (#4076) * Node: Unknown guardian tweaks * Code review rework * node/test: fix incorrect control flow in governed assets test The control flow for this function should be `continue` rather than `return`, otherwise the entire test will exit early when evaluating an ignored chain rather than skip the current iteration as intended. In practice, this test just so happened to work OK because: - the only ignored chain is Wormchain with ID 3104 - 3104 is the last entry in the slice - iteration over slices is deterministic And so the test always returned early when hitting Wormchain, but Wormchain is the last item in the list. * Github: Update Governor code owners * github: fix codeowners errors * Deploy Snaxchain mainnet * Fix governor test for Snax * Code review rework * Eth: Make registerAllChainsOnTokenBridge not require worm support (#4083) * Node/CCQ: Add rate limiting to proxy (#4080) * Node/CCQ: Add rate limiting * Code review rework * Node/CCQ: Make burst size default to one not zero * Tweak description of burst size in doc * node: Governor token list update (#4077) * node: governor token list update * Manually fix Moonbeam USDC price --------- Co-authored-by: djb15 * Node/P2P: Add WithComponents (#4089) * ethereum: migrate truffle tests to forge * ethereum: rm truffle * ethereum/forge-test: clean up warnings * docs: instructions for deploying a wormchain validator added. * Node: Add cutover feature flags to heartbeats (#4092) --------- Co-authored-by: bruce-riley <96066700+bruce-riley@users.noreply.github.com> Co-authored-by: Evan Gray Co-authored-by: Dirk Brink Co-authored-by: André Claro Co-authored-by: John Saigle <4022790+johnsaigle@users.noreply.github.com> Co-authored-by: Jason Matthyser Co-authored-by: Jason Matthyser Co-authored-by: Nikhil Suri Co-authored-by: djb15 Co-authored-by: Adam <20446095+aadam-10@users.noreply.github.com> Co-authored-by: Paul Noel Co-authored-by: John Saigle Co-authored-by: yukionfire Co-authored-by: Csongor Kiss Co-authored-by: Maxwell "ꓘ" Dulin Co-authored-by: Maxwell Dulin Co-authored-by: Maxwell Dulin Co-authored-by: Bruce Riley Co-authored-by: Charlton Liv <170700811+charltonliv@users.noreply.github.com> Co-authored-by: Kaku <105181329+kakucodes@users.noreply.github.com> Co-authored-by: Steve Miskovetz Co-authored-by: derpy-duck <115193320+derpy-duck@users.noreply.github.com> Co-authored-by: Edgardo Quiroga --- .devcontainer/devcontainer.json | 20 + .github/CODEOWNERS | 6 +- .../{bug_report.md => bug_report_general.md} | 9 +- .github/ISSUE_TEMPLATE/bug_report_guardian.md | 14 + .github/ISSUE_TEMPLATE/tracking_issue.md | 25 - .github/workflows/build.yml | 2 +- CONTRIBUTING.md | 2 + Tiltfile | 70 +- clients/eth/main.go | 5 +- clients/js/README.md | 58 +- clients/js/info_tests/evm-1.expected | 1 + clients/js/info_tests/evm-1.test | 1 + clients/js/info_tests/generate-1.expected | 1 + clients/js/info_tests/generate-1.test | 1 + clients/js/info_tests/generate-2.expected | 1 + clients/js/info_tests/generate-2.test | 1 + clients/js/info_tests/info-1.expected | 69 + clients/js/info_tests/info-1.test | 1 + clients/js/info_tests/info-2.expected | 4 + clients/js/info_tests/info-2.test | 1 + clients/js/info_tests/info-3.expected | 1 + clients/js/info_tests/info-3.test | 1 + clients/js/info_tests/info-4.expected | 1 + clients/js/info_tests/info-4.test | 1 + clients/js/info_tests/info-5.expected | 1 + clients/js/info_tests/info-5.test | 1 + clients/js/info_tests/info-6.expected | 1 + clients/js/info_tests/info-6.test | 1 + clients/js/info_tests/info-7.expected | 5 + clients/js/info_tests/info-7.test | 1 + clients/js/package-lock.json | 23183 ++++--- clients/js/package.json | 8 +- clients/js/run_info_tests | 69 + clients/js/src/algorand.ts | 65 +- clients/js/src/aptos.ts | 54 +- .../js/src/chains/generic/getOriginalAsset.ts | 135 +- .../chains/generic/getWrappedAssetAddress.ts | 158 +- clients/js/src/chains/generic/provider.ts | 189 +- clients/js/src/chains/sei/registrations.ts | 22 +- clients/js/src/chains/sei/sdk.ts | 16 +- clients/js/src/chains/sei/submit.ts | 25 +- clients/js/src/chains/sui/buildCoin.ts | 6 +- clients/js/src/chains/sui/publish.ts | 6 +- clients/js/src/chains/sui/registrations.ts | 19 +- clients/js/src/chains/sui/submit.ts | 43 +- clients/js/src/chains/sui/transfer.ts | 18 +- clients/js/src/chains/sui/utils.ts | 14 +- clients/js/src/cli.test.ts | 1658 + clients/js/src/cmds/aptos.ts | 83 +- clients/js/src/cmds/chains.ts | 12 + clients/js/src/cmds/editVaa.ts | 11 +- clients/js/src/cmds/evm.ts | 39 +- clients/js/src/cmds/generate.ts | 103 +- clients/js/src/cmds/index.ts | 2 + clients/js/src/cmds/info/chainId.ts | 16 +- clients/js/src/cmds/info/contract.ts | 32 +- clients/js/src/cmds/info/emitter.ts | 13 +- clients/js/src/cmds/info/origin.ts | 23 +- clients/js/src/cmds/info/registrations.ts | 67 +- clients/js/src/cmds/info/rpc.ts | 18 +- clients/js/src/cmds/info/wrapped.ts | 25 +- clients/js/src/cmds/near.ts | 25 +- clients/js/src/cmds/status.ts | 50 +- clients/js/src/cmds/submit.ts | 144 +- clients/js/src/cmds/sui/build.ts | 19 +- clients/js/src/cmds/sui/deploy.ts | 8 +- clients/js/src/cmds/sui/init.ts | 20 +- clients/js/src/cmds/sui/publishMessage.ts | 7 +- clients/js/src/cmds/sui/setup.ts | 16 +- clients/js/src/cmds/sui/utils.ts | 17 +- clients/js/src/cmds/transfer.ts | 97 +- clients/js/src/cmds/verifyVaa.ts | 11 +- clients/js/src/consts/contracts.ts | 58 +- clients/js/src/consts/networks.ts | 375 +- clients/js/src/consts/yargs.ts | 19 +- clients/js/src/emitter.ts | 59 +- clients/js/src/evm.ts | 116 +- clients/js/src/injective.ts | 62 +- clients/js/src/near.ts | 47 +- clients/js/src/sdk/array.ts | 277 + clients/js/src/sdk/sui.ts | 130 + clients/js/src/solana.ts | 87 +- clients/js/src/terra.ts | 65 +- clients/js/src/utils.ts | 46 +- clients/js/src/xpla.ts | 41 +- clients/js/tsconfig.json | 1 + cosmwasm/contracts/ibc-translator/Cargo.toml | 5 +- .../wormchain-ibc-receiver/Cargo.toml | 3 +- .../wormchain-ibc-receiver/src/ibc.rs | 6 +- cosmwasm/contracts/wormhole-ibc/Cargo.toml | 3 +- cosmwasm/contracts/wormhole-ibc/src/ibc.rs | 4 +- cosmwasm/deployment/terra2/Makefile | 6 +- cspell-custom-words.txt | 2 + deployments/testnet/tokenBridgeVAAs.csv | 5 +- devnet/node.yaml | 4 +- devnet/query-server.yaml | 2 +- devnet/tests.yaml | 25 - docs/governor.md | 6 +- docs/operations.md | 57 +- docs/query_proxy.md | 64 + ethereum/Dockerfile | 2 +- ethereum/Makefile | 12 +- ethereum/README.md | 26 +- ethereum/VERIFY.md | 34 +- ethereum/devnet_mnemonic.txt | 1 - ethereum/docs/token_verification.md | 20 +- ethereum/env/.env.acala.testnet | 4 +- ethereum/env/.env.berachain.testnet | 9 +- ethereum/env/.env.gnosis.testnet | 9 +- ethereum/env/.env.karura.testnet | 7 +- ethereum/env/.env.snaxchain.testnet | 21 + .../DeployNFTBridgeImplementationOnly.s.sol | 24 + .../DeployNFTBridgeShutdown.s.sol | 4 +- ethereum/forge-scripts/TokenABI.s.sol | 51 + ethereum/forge-test/Bridge.t.sol | 1385 +- ethereum/forge-test/Implementation.t.sol | 1182 +- ethereum/forge-test/NFT.t.sol | 975 + ethereum/forge-test/TokenMigrator.t.sol | 91 + .../10_deploy_batched_vaa_sender.js | 15 - ethereum/migrations/1_initial_migration.js | 6 - ethereum/migrations/2_deploy_wormhole.js | 34 - ethereum/migrations/3_deploy_bridge.js | 42 - ethereum/migrations/4_deploy_nft_bridge.js | 40 - .../6_deploy_bridge_implementation_only.js | 13 - .../7_deploy_token_implementation_only.js | 13 - ethereum/migrations/9_deploy_weth9.js | 5 - ethereum/package-lock.json | 46773 +------------ ethereum/package.json | 35 +- ethereum/remappings.txt | 5 - ethereum/scripts/TokenABI.s.sol | 40 - ethereum/scripts/deploy_batched_vaa_sender.js | 22 - ethereum/scripts/deploy_ccq_demo.js | 26 - ethereum/scripts/deploy_core_bridge.js | 11 - .../scripts/deploy_core_bridge_shutdown.js | 11 - ethereum/scripts/deploy_nft_bridge.js | 11 - .../scripts/deploy_nft_bridge_shutdown.js | 11 - ethereum/scripts/deploy_test_token.js | 122 - ethereum/scripts/deploy_token_bridge.js | 11 - .../scripts/deploy_token_bridge_shutdown.js | 11 - ethereum/scripts/register_all_chains.js | 66 - ethereum/scripts/register_eth_chain.js | 27 - ethereum/scripts/send_batched_vaa.js | 29 - ethereum/sh/registerAllChainsOnTokenBridge.sh | 48 +- ethereum/simulate_upgrade | 30 +- ethereum/test/bridge.js | 1580 - ethereum/test/nft.js | 917 - ethereum/test/tokenmigrator.js | 87 - .../01_tokenbridge_feetoken_support.js | 418 - ethereum/test/wormhole.js | 1229 - ethereum/truffle-config.js | 493 - ethereum/truffle-verify-constants.patch | 57 - ethereum/tsconfig.json | 14 - ethereum/upgrade | 82 - ethereum/upgrade_all_testnet | 2 +- near/test/watcher.go | 14 +- node/Dockerfile | 4 +- node/Makefile | 10 + node/cmd/ccq/devnet.permissions.json | 17 +- node/cmd/ccq/http.go | 17 +- node/cmd/ccq/metrics.go | 6 + node/cmd/ccq/p2p.go | 4 +- node/cmd/ccq/parse_config_test.go | 633 +- node/cmd/ccq/pending_request.go | 20 + node/cmd/ccq/permissions.go | 75 +- node/cmd/ccq/query_server.go | 31 +- node/cmd/ccq/utils.go | 67 +- node/cmd/guardiand/adminclient.go | 24 +- node/cmd/guardiand/adminnodes.go | 1 + node/cmd/guardiand/admintemplate.go | 5 +- node/cmd/guardiand/node.go | 47 +- node/cmd/spy/spy.go | 72 +- node/hack/governor/package-lock.json | 46 +- node/hack/governor/src/index.ts | 108 +- node/hack/query/test/query_test.go | 298 - node/hack/query/test/test_query.sh | 4 - node/hack/repair_eth/repair_eth.go | 5 +- node/pkg/accountant/ntt_config.go | 4 + node/pkg/accountant/ntt_test.go | 2 +- node/pkg/accountant/submit_obs.go | 17 +- node/pkg/adminrpc/adminserver.go | 8 +- node/pkg/adminrpc/adminserver_test.go | 84 + node/pkg/common/channel_utils.go | 20 + node/pkg/common/channel_utils_test.go | 80 + node/pkg/common/guardianset.go | 40 +- node/pkg/common/guardianset_test.go | 38 +- node/pkg/db/accountant.go | 18 +- node/pkg/db/accountant_test.go | 24 +- node/pkg/db/db.go | 29 + node/pkg/db/db_test.go | 69 +- node/pkg/governor/devnet_config.go | 11 +- node/pkg/governor/flow_cancel_tokens.go | 4 +- node/pkg/governor/generated_mainnet_tokens.go | 2881 +- node/pkg/governor/governor.go | 207 +- node/pkg/governor/governor_db.go | 35 + node/pkg/governor/governor_monitoring.go | 180 +- node/pkg/governor/governor_monitoring_test.go | 2 +- node/pkg/governor/governor_prices.go | 2 +- node/pkg/governor/governor_test.go | 1218 +- node/pkg/governor/mainnet_chains.go | 1 + node/pkg/governor/mainnet_tokens_test.go | 42 +- node/pkg/governor/manual_tokens.go | 12 +- node/pkg/governor/testnet_config.go | 12 +- node/pkg/gwrelayer/gwrelayer.go | 40 +- node/pkg/gwrelayer/gwrelayer_test.go | 51 +- node/pkg/node/node.go | 28 +- node/pkg/node/node_test.go | 112 +- node/pkg/node/options.go | 96 +- node/pkg/p2p/gossip_cutover.go | 87 + node/pkg/p2p/gossip_cutover_test.go | 81 + node/pkg/p2p/network_consts.go | 4 +- node/pkg/p2p/p2p.go | 1012 +- node/pkg/p2p/run_params.go | 256 + node/pkg/p2p/run_params_test.go | 218 + node/pkg/p2p/watermark_test.go | 56 +- node/pkg/processor/batch_obs.go | 87 + node/pkg/processor/batch_obs_test.go | 85 + node/pkg/processor/broadcast.go | 103 +- node/pkg/processor/cleanup.go | 59 +- node/pkg/processor/cutover.go | 87 + node/pkg/processor/cutover_test.go | 81 + node/pkg/processor/message.go | 66 +- node/pkg/processor/observation.go | 205 +- node/pkg/processor/observation_test.go | 7 +- node/pkg/processor/processor.go | 214 +- node/pkg/processor/vaa.go | 13 +- node/pkg/proto/gossip/v1/gossip.pb.go | 663 +- node/pkg/proto/node/v1/node.pb.go | 361 +- node/pkg/publicrpc/publicrpcserver_test.go | 2 +- node/pkg/query/query.go | 1 + node/pkg/telemetry/loki.go | 5 + node/pkg/watchers/evm/blocks_by_timestamp.go | 14 + node/pkg/watchers/evm/ccq.go | 26 +- node/pkg/watchers/evm/watcher.go | 68 +- node/pkg/watchers/evm/watcher_test.go | 10 + node/pkg/watchers/solana/ccq.go | 77 +- node/pkg/watchers/solana/ccq_test.go | 34 + node/pkg/watchers/sui/config.go | 3 +- node/pkg/watchers/sui/watcher.go | 467 +- node/pkg/watchers/sui/watcher_test.go | 76 - proto/gossip/v1/gossip.proto | 28 + proto/node/v1/node.proto | 1 + relayer/ethereum/foundry.toml | 1 + relayer/ethereum/package-lock.json | 56588 +++------------- relayer/ethereum/package.json | 16 +- .../relayer/config/kubernetes/contracts.json | 4 +- .../relayer/config/tilt/contracts.json | 4 +- scripts/check-docker-pin.sh | 2 +- sdk/devnet_consts.go | 4 +- sdk/js-query/CHANGELOG.md | 4 + sdk/js-query/package-lock.json | 4 +- sdk/js-query/package.json | 2 +- sdk/js-query/src/query/ethCall.test.ts | 130 +- sdk/js-query/src/query/solana.test.ts | 264 +- sdk/js-query/src/query/utils.ts | 10 + sdk/js/CHANGELOG.md | 5 + sdk/js/package-lock.json | 26998 +++----- sdk/js/package.json | 4 +- .../src/relayer/__tests__/wormhole_relayer.ts | 2 +- sdk/js/src/relayer/consts.ts | 6 + sdk/js/src/utils/consts.ts | 32 +- sdk/mainnet_consts.go | 4 + sdk/testnet_consts.go | 7 +- sdk/vaa/structs.go | 7 + sdk/vaa/structs_test.go | 3 + whitepapers/0007_governor.md | 2 +- .../tools/__tests__/test_ntt_accountant.ts | 4 +- wormchain/contracts/tools/deploy_wormchain.ts | 12 + wormchain/devnet/base/config/genesis.json | 40 + .../interchaintest/cancel_upgrade_test.go | 59 + .../contracts/cw20_wrapped_2.wasm | Bin 0 -> 242883 bytes .../interchaintest/contracts/ibc_hooks.wasm | Bin 0 -> 377791 bytes .../contracts/ibc_hooks/.cargo/config | 5 + .../contracts/ibc_hooks/Cargo.lock | 690 + .../contracts/ibc_hooks/Cargo.toml | 37 + .../contracts/ibc_hooks/src/contract.rs | 54 + .../contracts/ibc_hooks/src/lib.rs | 2 + .../contracts/ibc_hooks/src/msg.rs | 11 + .../contracts/ibc_translator.wasm | Bin 0 -> 309318 bytes .../contracts/token_bridge.wasm | Bin 0 -> 354019 bytes .../contracts/wormhole_core.wasm | Bin 0 -> 264251 bytes wormchain/interchaintest/go.mod | 225 + wormchain/interchaintest/go.sum | 1222 + .../interchaintest/guardians/validators.go | 56 + wormchain/interchaintest/helpers/bank.go | 33 + .../interchaintest/helpers/cw20_wrapped.go | 114 + .../helpers/gateway_governance_vaa.go | 97 + wormchain/interchaintest/helpers/ibc_hooks.go | 43 + .../interchaintest/helpers/ibc_translator.go | 322 + .../helpers/instantiate_contract.go | 71 + .../helpers/migrate_contract.go | 52 + wormchain/interchaintest/helpers/pfm.go | 76 + .../interchaintest/helpers/store_contract.go | 137 + .../interchaintest/helpers/token_bridge.go | 152 + wormchain/interchaintest/helpers/utils.go | 47 + wormchain/interchaintest/helpers/vaa.go | 35 + .../interchaintest/helpers/wormhole_core.go | 54 + .../interchaintest/malformed_payload_test.go | 351 + wormchain/interchaintest/setup.go | 285 + .../interchaintest/upgrade_failure_test.go | 75 + wormchain/interchaintest/upgrade_test.go | 399 + wormchain/interchaintest/wormchain_test.go | 333 + wormchain/testutil/keeper/wormhole.go | 7 +- wormchain/x/wormhole/client/cli/genesis.go | 9 +- wormchain/x/wormhole/client/cli/tx_wasmd.go | 4 +- 304 files changed, 55311 insertions(+), 129957 deletions(-) create mode 100644 .devcontainer/devcontainer.json rename .github/ISSUE_TEMPLATE/{bug_report.md => bug_report_general.md} (69%) create mode 100644 .github/ISSUE_TEMPLATE/bug_report_guardian.md delete mode 100644 .github/ISSUE_TEMPLATE/tracking_issue.md create mode 100644 clients/js/info_tests/evm-1.expected create mode 100644 clients/js/info_tests/evm-1.test create mode 100644 clients/js/info_tests/generate-1.expected create mode 100644 clients/js/info_tests/generate-1.test create mode 100644 clients/js/info_tests/generate-2.expected create mode 100644 clients/js/info_tests/generate-2.test create mode 100644 clients/js/info_tests/info-1.expected create mode 100644 clients/js/info_tests/info-1.test create mode 100644 clients/js/info_tests/info-2.expected create mode 100644 clients/js/info_tests/info-2.test create mode 100644 clients/js/info_tests/info-3.expected create mode 100644 clients/js/info_tests/info-3.test create mode 100644 clients/js/info_tests/info-4.expected create mode 100644 clients/js/info_tests/info-4.test create mode 100644 clients/js/info_tests/info-5.expected create mode 100644 clients/js/info_tests/info-5.test create mode 100644 clients/js/info_tests/info-6.expected create mode 100644 clients/js/info_tests/info-6.test create mode 100644 clients/js/info_tests/info-7.expected create mode 100644 clients/js/info_tests/info-7.test create mode 100755 clients/js/run_info_tests create mode 100644 clients/js/src/cli.test.ts create mode 100644 clients/js/src/cmds/chains.ts create mode 100644 clients/js/src/sdk/array.ts create mode 100644 clients/js/src/sdk/sui.ts delete mode 100644 ethereum/devnet_mnemonic.txt create mode 100644 ethereum/env/.env.snaxchain.testnet create mode 100644 ethereum/forge-scripts/DeployNFTBridgeImplementationOnly.s.sol create mode 100644 ethereum/forge-scripts/TokenABI.s.sol create mode 100644 ethereum/forge-test/NFT.t.sol create mode 100644 ethereum/forge-test/TokenMigrator.t.sol delete mode 100644 ethereum/migrations/10_deploy_batched_vaa_sender.js delete mode 100644 ethereum/migrations/1_initial_migration.js delete mode 100644 ethereum/migrations/2_deploy_wormhole.js delete mode 100644 ethereum/migrations/3_deploy_bridge.js delete mode 100644 ethereum/migrations/4_deploy_nft_bridge.js delete mode 100644 ethereum/migrations/6_deploy_bridge_implementation_only.js delete mode 100644 ethereum/migrations/7_deploy_token_implementation_only.js delete mode 100644 ethereum/migrations/9_deploy_weth9.js delete mode 100644 ethereum/remappings.txt delete mode 100644 ethereum/scripts/TokenABI.s.sol delete mode 100644 ethereum/scripts/deploy_batched_vaa_sender.js delete mode 100644 ethereum/scripts/deploy_ccq_demo.js delete mode 100644 ethereum/scripts/deploy_core_bridge.js delete mode 100644 ethereum/scripts/deploy_core_bridge_shutdown.js delete mode 100644 ethereum/scripts/deploy_nft_bridge.js delete mode 100644 ethereum/scripts/deploy_nft_bridge_shutdown.js delete mode 100644 ethereum/scripts/deploy_test_token.js delete mode 100644 ethereum/scripts/deploy_token_bridge.js delete mode 100644 ethereum/scripts/deploy_token_bridge_shutdown.js delete mode 100644 ethereum/scripts/register_all_chains.js delete mode 100644 ethereum/scripts/register_eth_chain.js delete mode 100644 ethereum/scripts/send_batched_vaa.js delete mode 100644 ethereum/test/bridge.js delete mode 100644 ethereum/test/nft.js delete mode 100644 ethereum/test/tokenmigrator.js delete mode 100644 ethereum/test/upgrades/01_tokenbridge_feetoken_support.js delete mode 100644 ethereum/test/wormhole.js delete mode 100644 ethereum/truffle-config.js delete mode 100644 ethereum/truffle-verify-constants.patch delete mode 100644 ethereum/tsconfig.json delete mode 100755 ethereum/upgrade delete mode 100644 node/hack/query/test/query_test.go delete mode 100644 node/hack/query/test/test_query.sh create mode 100644 node/pkg/common/channel_utils.go create mode 100644 node/pkg/common/channel_utils_test.go create mode 100644 node/pkg/p2p/gossip_cutover.go create mode 100644 node/pkg/p2p/gossip_cutover_test.go create mode 100644 node/pkg/p2p/run_params.go create mode 100644 node/pkg/p2p/run_params_test.go create mode 100644 node/pkg/processor/batch_obs.go create mode 100644 node/pkg/processor/batch_obs_test.go create mode 100644 node/pkg/processor/cutover.go create mode 100644 node/pkg/processor/cutover_test.go create mode 100644 wormchain/interchaintest/cancel_upgrade_test.go create mode 100644 wormchain/interchaintest/contracts/cw20_wrapped_2.wasm create mode 100644 wormchain/interchaintest/contracts/ibc_hooks.wasm create mode 100644 wormchain/interchaintest/contracts/ibc_hooks/.cargo/config create mode 100644 wormchain/interchaintest/contracts/ibc_hooks/Cargo.lock create mode 100644 wormchain/interchaintest/contracts/ibc_hooks/Cargo.toml create mode 100644 wormchain/interchaintest/contracts/ibc_hooks/src/contract.rs create mode 100644 wormchain/interchaintest/contracts/ibc_hooks/src/lib.rs create mode 100644 wormchain/interchaintest/contracts/ibc_hooks/src/msg.rs create mode 100644 wormchain/interchaintest/contracts/ibc_translator.wasm create mode 100644 wormchain/interchaintest/contracts/token_bridge.wasm create mode 100644 wormchain/interchaintest/contracts/wormhole_core.wasm create mode 100644 wormchain/interchaintest/go.mod create mode 100644 wormchain/interchaintest/go.sum create mode 100644 wormchain/interchaintest/guardians/validators.go create mode 100644 wormchain/interchaintest/helpers/bank.go create mode 100644 wormchain/interchaintest/helpers/cw20_wrapped.go create mode 100644 wormchain/interchaintest/helpers/gateway_governance_vaa.go create mode 100644 wormchain/interchaintest/helpers/ibc_hooks.go create mode 100644 wormchain/interchaintest/helpers/ibc_translator.go create mode 100644 wormchain/interchaintest/helpers/instantiate_contract.go create mode 100644 wormchain/interchaintest/helpers/migrate_contract.go create mode 100644 wormchain/interchaintest/helpers/pfm.go create mode 100644 wormchain/interchaintest/helpers/store_contract.go create mode 100644 wormchain/interchaintest/helpers/token_bridge.go create mode 100644 wormchain/interchaintest/helpers/utils.go create mode 100644 wormchain/interchaintest/helpers/vaa.go create mode 100644 wormchain/interchaintest/helpers/wormhole_core.go create mode 100644 wormchain/interchaintest/malformed_payload_test.go create mode 100644 wormchain/interchaintest/setup.go create mode 100644 wormchain/interchaintest/upgrade_failure_test.go create mode 100644 wormchain/interchaintest/upgrade_test.go create mode 100644 wormchain/interchaintest/wormchain_test.go diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json new file mode 100644 index 0000000000..d8eeaf3062 --- /dev/null +++ b/.devcontainer/devcontainer.json @@ -0,0 +1,20 @@ +{ + "name": "Guardian Development", + "build": { + "context": "..", + "dockerfile": "../node/Dockerfile", + "target": "dev" + }, + "customizations": { + "vscode": { + "extensions": [ + "golang.go", + "ms-azuretools.vscode-docker", + "ms-vscode.makefile-tools" + ], + "settings": { + "files.insertFinalNewline": true + } + } + }, +} diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index 74385dac5a..7f8f9a2a75 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -28,7 +28,7 @@ /sdk/js-proto-web/ @evan-gray @kev1n-peters /sdk/js-query/ @evan-gray @kev1n-peters @bruce-riley /sdk/js-wasm/ @evan-gray @kev1n-peters -/sdk/js/ @evan-gray @kev1n-peters @barnjamin @panoel +/sdk/js/ @evan-gray @kev1n-peters @panoel /sdk/rust/ @a5-pickle /sdk/vaa/ @bruce-riley @SEJeff /spydk/ @evan-gray @@ -62,7 +62,7 @@ ## Governor -/node/pkg/governor/ @bruce-riley @claudijd @SEJeff @djb15 +/node/pkg/governor/ @bruce-riley @claudijd @SEJeff @djb15 @johnsaigle ## Gateway Relayer @@ -94,4 +94,4 @@ ## Documentation -/docs @evan-gray @barnjamin @SEJeff @bruce-riley +/docs @evan-gray @SEJeff @bruce-riley diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report_general.md similarity index 69% rename from .github/ISSUE_TEMPLATE/bug_report.md rename to .github/ISSUE_TEMPLATE/bug_report_general.md index 35a05edc69..b8468cd657 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.md +++ b/.github/ISSUE_TEMPLATE/bug_report_general.md @@ -1,11 +1,11 @@ --- name: Bug report -about: Submit a bug ticket if you have an issue. If you're a user, check out the Wormhole Discord server below for faster assistance. +about: Submit a bug ticket if you found a bug not related to the guardian software. If you're a user, check out the Wormhole Discord server below for faster assistance. title: '' -labels: 'bug' +labels: ['bug'] assignees: '' --- - + ## Description and context @@ -28,5 +28,4 @@ assignees: '' ## Solution recommendation - - + \ No newline at end of file diff --git a/.github/ISSUE_TEMPLATE/bug_report_guardian.md b/.github/ISSUE_TEMPLATE/bug_report_guardian.md new file mode 100644 index 0000000000..a383c2b684 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug_report_guardian.md @@ -0,0 +1,14 @@ +--- +name: Guardian software bug report +about: Submit a bug ticket if you have an issue with the guardian software. If you're a user, check out the Wormhole Discord server below for faster assistance. +title: '' +labels: ['bug', 'guardian-support'] +assignees: '' +--- + + +## Description + + +## Recommendation + \ No newline at end of file diff --git a/.github/ISSUE_TEMPLATE/tracking_issue.md b/.github/ISSUE_TEMPLATE/tracking_issue.md deleted file mode 100644 index a85cbbf1ed..0000000000 --- a/.github/ISSUE_TEMPLATE/tracking_issue.md +++ /dev/null @@ -1,25 +0,0 @@ ---- -name: Tracking issue -about: Tracking issues are task lists used to better organize regular work items. -title: 'Tracking issue for *ADD_PROJECT* - *ADD_COMPONENT*' -labels: 'epic' -assignees: '' - ---- - -This issue is for grouping *ADD_COMPONENT* related tasks that are necessary for *ADD_PROJECT*. - -### Other tracking issues for the same project: - - - -- #XXXX -- #XXXX -- #XXXX - - -```[tasklist] -### Task list -- [ ] XXXX -- [ ] XXXX -``` \ No newline at end of file diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index b6e13df832..115fa008ed 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -244,7 +244,7 @@ jobs: - uses: actions/checkout@v2 - uses: actions/setup-node@v2 with: - node-version: "16" + node-version: "20" - run: | cd clients/js && make test make docs diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 1347f400ba..74a8d32f8c 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -26,6 +26,8 @@ and code reviews are our most important tools to accomplish that. - We welcome typo and grammar fixes to *public facing* documents. This includes things like the whitepapers, but excludes inline code comments. PRs that touch only the latter will be rejected. Fixing typos in comments alongside other non-trivial engineering work is welcome. +- Pull requests that modify dependencies must be well-documented so that the benefits of updating can be weighed against + security and compatibility concerns. Low-effort PRs that update dependencies without any documentation will be rejected. Documentation for the in-the-wild deployments lives in the [wormhole-networks](https://github.com/certusone/wormhole-networks) repository. diff --git a/Tiltfile b/Tiltfile index 22ca706605..b8f7cd3c22 100644 --- a/Tiltfile +++ b/Tiltfile @@ -156,6 +156,41 @@ def command_with_dlv(argv): "--", ] + argv[1:] +def generate_bootstrap_peers(num_guardians, port_num): + # Improve the chances of the guardians discovering each other in tilt by making them all bootstrap peers. + # The devnet guardian uses deterministic P2P peer IDs based on the guardian index. The peer IDs here + # were generated using `DeterministicP2PPrivKeyByIndex` in `node/pkg/devnet/deterministic_p2p_key.go`. + peer_ids = [ + "12D3KooWL3XJ9EMCyZvmmGXL2LMiVBtrVa2BuESsJiXkSj7333Jw", + "12D3KooWHHzSeKaY8xuZVzkLbKFfvNgPPeKhFBGrMbNzbm5akpqu", + "12D3KooWKRyzVWW6ChFjQjK4miCty85Niy49tpPV95XdKu1BcvMA", + "12D3KooWB1b3qZxWJanuhtseF3DmPggHCtG36KZ9ixkqHtdKH9fh", + "12D3KooWE4qDcRrueTuRYWUdQZgcy7APZqBngVeXRt4Y6ytHizKV", + "12D3KooWPgam4TzSVCRa4AbhxQnM9abCYR4E9hV57SN7eAjEYn1j", + "12D3KooWM4yJB31d4hF2F9Vdwuj9WFo1qonoySyw4bVAQ9a9d21o", + "12D3KooWCv935r3ropYhUe5yMCp9QiUoc9A6cZpYQ5x84DqEPbwb", + "12D3KooWQfG74brcJhzpNwjPCZmcbBv8f6wxKgLSYmEDXXdPXQpH", + "12D3KooWNEWRB7PnuZs164xaA9QWM3iZHekHyEQo5qGP5KCHHuSN", + "12D3KooWB224kvi7vN34xJfsfW7bnv6eodxTkgo9VFA6UiaGMgRD", + "12D3KooWCR2EoapJjoQVR4E3NLjWn818gG3XizQ92Yx6C424HL2g", + "12D3KooWNc5rNmCJ9yvXviXaENnp7vqDQjomZwia4aA7Q3hSYkiW", + "12D3KooWBremnqYWBDK6ctvCuhCqJAps5ZAPADu53gXhQHexrvtP", + "12D3KooWFqdBYPrtwErMosomvD4uRtVhXQdqqZZHC3NCBZYVxr4t", + "12D3KooW9yvKfP5HgVaLnNaxWywo3pLAEypk7wjUcpgKwLznk5gQ", + "12D3KooWRuYVGEsecrJJhZsSoKf1UNdBVYKFCmFLNj9ucZiSQCYj", + "12D3KooWGEcD5sW5osB6LajkHGqiGc3W8eKfYwnJVVqfujkpLWX2", + "12D3KooWQYz2inBsgiBoqNtmEn1qeRBr9B8cdishFuBgiARcfMcY" + ] + bootstrap = "" + for idx in range(num_guardians): + if bootstrap != "": + bootstrap += "," + bootstrap += "/dns4/guardian-{idx}.guardian/udp/{port}/quic/p2p/{peer}".format(idx = idx, port = port_num, peer = peer_ids[idx]) + return bootstrap + +bootstrapPeers = generate_bootstrap_peers(num_guardians, 8999) +ccqBootstrapPeers = generate_bootstrap_peers(num_guardians, 8996) + def build_node_yaml(): node_yaml = read_yaml_stream("devnet/node.yaml") @@ -173,6 +208,14 @@ def build_node_yaml(): container["command"] = command_with_dlv(container["command"]) print(container["command"]) + if num_guardians > 1: + container["command"] += [ + "--bootstrap", + bootstrapPeers, + "--ccqP2pBootstrap", + ccqBootstrapPeers, + ] + if aptos: container["command"] += [ "--aptosRPC", @@ -189,8 +232,6 @@ def build_node_yaml(): "http://sui:9000", "--suiMoveEventType", "0x320a40bff834b5ffa12d7f5cc2220dd733dd9e8e91c425800203d06fb2b1fee8::publish_message::WormholeMessage", - "--suiWS", - "ws://sui:9000", ] if evm2: @@ -587,7 +628,12 @@ if ci_tests: ], ) - k8s_yaml_with_ns(encode_yaml_stream(set_env_in_jobs(read_yaml_stream("devnet/tests.yaml"), "NUM_GUARDIANS", str(num_guardians)))) + k8s_yaml_with_ns( + encode_yaml_stream( + set_env_in_jobs( + set_env_in_jobs(read_yaml_stream("devnet/tests.yaml"), "NUM_GUARDIANS", str(num_guardians)), + "BOOTSTRAP_PEERS", str(ccqBootstrapPeers))) + ) # separate resources to parallelize docker builds k8s_resource( @@ -614,12 +660,6 @@ if ci_tests: trigger_mode = trigger_mode, resource_deps = [], # uses devnet-consts.json, but wormchain/contracts/tools/test_ntt_accountant.sh handles waiting for guardian, not having deps gets the build earlier ) - k8s_resource( - "query-ci-tests", - labels = ["ci"], - trigger_mode = trigger_mode, - resource_deps = [], # node/hack/query/test/test_query.sh handles waiting for guardian, not having deps gets the build earlier - ) k8s_resource( "query-sdk-ci-tests", labels = ["ci"], @@ -907,8 +947,18 @@ if aptos: trigger_mode = trigger_mode, ) +def build_query_server_yaml(): + qs_yaml = read_yaml_stream("devnet/query-server.yaml") + + for obj in qs_yaml: + if obj["kind"] == "StatefulSet" and obj["metadata"]["name"] == "query-server": + container = obj["spec"]["template"]["spec"]["containers"][0] + container["command"] += ["--bootstrap="+ccqBootstrapPeers] + + return encode_yaml_stream(qs_yaml) + if query_server: - k8s_yaml_with_ns("devnet/query-server.yaml") + k8s_yaml_with_ns(build_query_server_yaml()) k8s_resource( "query-server", diff --git a/clients/eth/main.go b/clients/eth/main.go index cbe858a563..492a824b78 100644 --- a/clients/eth/main.go +++ b/clients/eth/main.go @@ -2,6 +2,7 @@ package main import ( "context" + "errors" "fmt" "os" "strconv" @@ -183,7 +184,7 @@ func getTransactor(ethC *ethclient.Client) (*abi.AbiTransactor, error) { addr := common.HexToAddress(contractAddress) emptyAddr := common.Address{} if addr == emptyAddr { - return nil, fmt.Errorf("invalid contract address") + return nil, errors.New("invalid contract address") } t, err := abi.NewAbiTransactor(addr, ethC) @@ -196,7 +197,7 @@ func getTransactor(ethC *ethclient.Client) (*abi.AbiTransactor, error) { func getGovernanceVaaAction(payload []byte) (uint8, error) { if len(payload) < 32+2+1 { - return 0, fmt.Errorf("VAA payload does not contain a governance header") + return 0, errors.New("VAA payload does not contain a governance header") } return payload[32], nil diff --git a/clients/js/README.md b/clients/js/README.md index 35b414e8bb..2e3bd44bf4 100644 --- a/clients/js/README.md +++ b/clients/js/README.md @@ -78,6 +78,16 @@ Options: ``` +
+ chains + +```sh +Options: + --help Show help [boolean] + --version Show version number [boolean] +``` +
+
edit-vaa @@ -248,16 +258,8 @@ Positionals: Options: --help Show help [boolean] --version Show version number [boolean] - -c, --chain chain name - [choices: "unset", "solana", "ethereum", "terra", "bsc", "polygon", - "avalanche", "oasis", "algorand", "aurora", "fantom", "karura", "acala", - "klaytn", "celo", "near", "moonbeam", "neon", "terra2", "injective", - "osmosis", "sui", "aptos", "arbitrum", "optimism", "gnosis", "pythnet", - "xpla", "btc", "base", "sei", "rootstock", "scroll", "mantle", "blast", - "xlayer", "linea", "berachain", "seievm", "wormchain", "cosmoshub", "evmos", - "kujira", "neutron", "celestia", "stargaze", "seda", "dymension", - "provenance", "sepolia", "arbitrum_sepolia", "base_sepolia", - "optimism_sepolia", "holesky", "polygon_sepolia"] + -c, --chain chain name. To see a list of supported chains, run + `worm chains` [string] -n, --network Network [required] [choices: "mainnet", "testnet", "devnet"] -a, --contract-address Contract to submit VAA to (override config) [string] @@ -307,26 +309,10 @@ Options: Options: --help Show help [boolean] --version Show version number [boolean] - --src-chain source chain - [required] [choices: "solana", "ethereum", "terra", "bsc", "polygon", - "avalanche", "oasis", "algorand", "aurora", "fantom", "karura", "acala", - "klaytn", "celo", "near", "moonbeam", "neon", "terra2", "injective", - "osmosis", "sui", "aptos", "arbitrum", "optimism", "gnosis", "pythnet", - "xpla", "btc", "base", "sei", "rootstock", "scroll", "mantle", "blast", - "xlayer", "linea", "berachain", "seievm", "wormchain", "cosmoshub", "evmos", - "kujira", "neutron", "celestia", "stargaze", "seda", "dymension", - "provenance", "sepolia", "arbitrum_sepolia", "base_sepolia", - "optimism_sepolia", "holesky", "polygon_sepolia"] - --dst-chain destination chain - [required] [choices: "solana", "ethereum", "terra", "bsc", "polygon", - "avalanche", "oasis", "algorand", "aurora", "fantom", "karura", "acala", - "klaytn", "celo", "near", "moonbeam", "neon", "terra2", "injective", - "osmosis", "sui", "aptos", "arbitrum", "optimism", "gnosis", "pythnet", - "xpla", "btc", "base", "sei", "rootstock", "scroll", "mantle", "blast", - "xlayer", "linea", "berachain", "seievm", "wormchain", "cosmoshub", "evmos", - "kujira", "neutron", "celestia", "stargaze", "seda", "dymension", - "provenance", "sepolia", "arbitrum_sepolia", "base_sepolia", - "optimism_sepolia", "holesky", "polygon_sepolia"] + --src-chain source chain. To see a list of supported chains, run `worm + chains` [string] [required] + --dst-chain destination chain. To see a list of supported chains, run + `worm chains` [string] [required] --dst-addr destination address [string] [required] --token-addr token address [string] [default: native token] --amount token amount [string] [required] @@ -353,16 +339,8 @@ Options: ```sh Positionals: network Network [choices: "mainnet", "testnet", "devnet"] - chain Source chain - [choices: "unset", "solana", "ethereum", "terra", "bsc", "polygon", - "avalanche", "oasis", "algorand", "aurora", "fantom", "karura", "acala", - "klaytn", "celo", "near", "moonbeam", "neon", "terra2", "injective", - "osmosis", "sui", "aptos", "arbitrum", "optimism", "gnosis", "pythnet", - "xpla", "btc", "base", "sei", "rootstock", "scroll", "mantle", "blast", - "xlayer", "linea", "berachain", "seievm", "wormchain", "cosmoshub", "evmos", - "kujira", "neutron", "celestia", "stargaze", "seda", "dymension", - "provenance", "sepolia", "arbitrum_sepolia", "base_sepolia", - "optimism_sepolia", "holesky", "polygon_sepolia"] + chain Source chain. To see a list of supported chains, run `worm chains` + [string] tx Source transaction hash [string] Options: diff --git a/clients/js/info_tests/evm-1.expected b/clients/js/info_tests/evm-1.expected new file mode 100644 index 0000000000..e956c7e72b --- /dev/null +++ b/clients/js/info_tests/evm-1.expected @@ -0,0 +1 @@ +0xbeFA429d57cD18b7F8A4d91A2da9AB4AF05d0FBe diff --git a/clients/js/info_tests/evm-1.test b/clients/js/info_tests/evm-1.test new file mode 100644 index 0000000000..a89316fdf5 --- /dev/null +++ b/clients/js/info_tests/evm-1.test @@ -0,0 +1 @@ +evm address-from-secret 0xcfb12303a19cde580bb4dd771639b0d26bc68353645571a8cff516ab2ee113a0 diff --git a/clients/js/info_tests/generate-1.expected b/clients/js/info_tests/generate-1.expected new file mode 100644 index 0000000000..12bdc68f83 --- /dev/null +++ b/clients/js/info_tests/generate-1.expected @@ -0,0 +1 @@ +0100000000010009b7c0612e950779ea6a5458800289925c02a32cca3670f497693df283b503177e757473f94adfa2d18745b9e3d01a04f6b97240459612bd8654e5f91fb3f3d5010000000100000001000100000000000000000000000000000000000000000000000000000000000000040000000005a657f60000000000000000000000000000000000000000000000004e46544272696467650100000004000000000000000000000000706abc4e45d419950511e474c7b9ed348a4a716c diff --git a/clients/js/info_tests/generate-1.test b/clients/js/info_tests/generate-1.test new file mode 100644 index 0000000000..0165371bbf --- /dev/null +++ b/clients/js/info_tests/generate-1.test @@ -0,0 +1 @@ +generate registration --module NFTBridge --chain bsc --contract-address 0x706abc4E45D419950511e474C7B9Ed348A4a716c --guardian-secret cfb12303a19cde580bb4dd771639b0d26bc68353645571a8cff516ab2ee113a0 diff --git a/clients/js/info_tests/generate-2.expected b/clients/js/info_tests/generate-2.expected new file mode 100644 index 0000000000..907c7d903c --- /dev/null +++ b/clients/js/info_tests/generate-2.expected @@ -0,0 +1 @@ +01000000000100fe357dfbb2661d594da7720bf919bcb5597776c20720065c38748a7f69bc59e30b1a3a9ed564418083162c2f9f12910a799699faafe75494ba68b5813ae4a19a0000000001000000010002000000000000000000000000000000001111111111111111111111111111111500000000051d2e300002000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4800020655534443000000000000000000000000000000000000000000000000000000005553444300000000000000000000000000000000000000000000000000000000 diff --git a/clients/js/info_tests/generate-2.test b/clients/js/info_tests/generate-2.test new file mode 100644 index 0000000000..845360ed7e --- /dev/null +++ b/clients/js/info_tests/generate-2.test @@ -0,0 +1 @@ +generate attestation --emitter-chain Ethereum --emitter-address 11111111111111111111111111111115 --chain Ethereum --token-address 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 --decimals 6 --symbol USDC --name USDC --guardian-secret cfb12303a19cde580bb4dd771639b0d26bc68353645571a8cff516ab2ee113a0 diff --git a/clients/js/info_tests/info-1.expected b/clients/js/info_tests/info-1.expected new file mode 100644 index 0000000000..4bacd0ac05 --- /dev/null +++ b/clients/js/info_tests/info-1.expected @@ -0,0 +1,69 @@ +{ + "address": "0xB6F6D86a8f9879A9c87f643768d9efc38c1Da6E7", + "wormhole": "0x98f3c9e6E3fAce36bAAd05FE09d375Ef1464288B", + "implementation": "0x621199f6beB2ba6fbD962E8A52A320EA4F6D4aA3", + "isInitialized": true, + "tokenImplementation": "0x7f8C5e730121657E17E452c5a1bA3fA1eF96f22a", + "chainId": 4, + "finality": 15, + "evmChainId": "56", + "isFork": false, + "governanceChainId": 1, + "governanceContract": "0x0000000000000000000000000000000000000000000000000000000000000004", + "WETH": "0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c", + "registrations": { + "Solana": "0xec7372995d5cc8732397fb0ad35c0121e0eaa90d26f828a534cab54391b3a4f5", + "Ethereum": "0x0000000000000000000000003ee18b2214aff97000d974cf647e7c347e8fa585", + "Terra": "0x0000000000000000000000007cf7b764e38a0a5e967972c1df77d432510564e2", + "Polygon": "0x0000000000000000000000005a58505a96d1dbf8df91cb21b54419fc36e93fde", + "Avalanche": "0x0000000000000000000000000e082f06ff657d94310cb8ce8b0d9a04541d8052", + "Oasis": "0x0000000000000000000000005848c791e09901b40a9ef749f2a6735b418d7564", + "Algorand": "0x67e93fa6c8ac5c819990aa7340c0c16b508abb1178be9b30d024b8ac25193d45", + "Aurora": "0x00000000000000000000000051b5123a7b0f9b2ba265f9c4c8de7d78d52f510f", + "Fantom": "0x0000000000000000000000007c9fc5741288cdfdd83ceb07f3ea7e22618d79d2", + "Karura": "0x000000000000000000000000ae9d7fe007b3327aa64a32824aaac52c42a6e624", + "Acala": "0x000000000000000000000000ae9d7fe007b3327aa64a32824aaac52c42a6e624", + "Klaytn": "0x0000000000000000000000005b08ac39eaed75c0439fc750d9fe7e1f9dd0193f", + "Celo": "0x000000000000000000000000796dff6d74f3e27060b71255fe517bfb23c93eed", + "Near": "0x148410499d3fcda4dcfd68a1ebfcdddda16ab28326448d4aae4d2f0465cdfcb7", + "Moonbeam": "0x000000000000000000000000b1731c586ca89a23809861c6103f0b96b3f57d92", + "Neon": "0x0000000000000000000000000000000000000000000000000000000000000000", + "Terra2": "0xa463ad028fb79679cfc8ce1efba35ac0e77b35080a1abe9bebe83461f176b0a3", + "Injective": "0x00000000000000000000000045dbea4617971d93188eda21530bc6503d153313", + "Osmosis": "0x0000000000000000000000000000000000000000000000000000000000000000", + "Sui": "0xccceeb29348f71bdd22ffef43a2a19c1f5b5e17c5cca5411529120182672ade5", + "Aptos": "0x0000000000000000000000000000000000000000000000000000000000000001", + "Arbitrum": "0x0000000000000000000000000b2402144bb366a632d14b83f244d2e0e21bd39c", + "Optimism": "0x0000000000000000000000001d68124e65fafc907325e3edbf8c4d84499daa8b", + "Gnosis": "0x0000000000000000000000000000000000000000000000000000000000000000", + "Pythnet": "0x0000000000000000000000000000000000000000000000000000000000000000", + "Xpla": "0x8f9cf727175353b17a5f574270e370776123d90fd74956ae4277962b4fdee24c", + "Btc": "0x0000000000000000000000000000000000000000000000000000000000000000", + "Base": "0x0000000000000000000000008d2de8d2f73f1f4cab472ac9a881c9b123c79627", + "Sei": "0x86c5fd957e2db8389553e1728f9c27964b22a8154091ccba54d75f4b10c61f5e", + "Rootstock": "0x0000000000000000000000000000000000000000000000000000000000000000", + "Scroll": "0x00000000000000000000000024850c6f61c438823f01b7a3bf2b89b72174fa9d", + "Mantle": "0x00000000000000000000000024850c6f61c438823f01b7a3bf2b89b72174fa9d", + "Blast": "0x00000000000000000000000024850c6f61c438823f01b7a3bf2b89b72174fa9d", + "Xlayer": "0x0000000000000000000000005537857664b0f9efe38c9f320f75fef23234d904", + "Linea": "0x0000000000000000000000000000000000000000000000000000000000000000", + "Berachain": "0x0000000000000000000000000000000000000000000000000000000000000000", + "Seievm": "0x0000000000000000000000000000000000000000000000000000000000000000", + "Wormchain": "0xaeb534c45c3049d380b9d9b966f9895f53abd4301bfaff407fa09dea8ae7a924", + "Cosmoshub": "0x0000000000000000000000000000000000000000000000000000000000000000", + "Evmos": "0x0000000000000000000000000000000000000000000000000000000000000000", + "Kujira": "0x0000000000000000000000000000000000000000000000000000000000000000", + "Neutron": "0x0000000000000000000000000000000000000000000000000000000000000000", + "Celestia": "0x0000000000000000000000000000000000000000000000000000000000000000", + "Stargaze": "0x0000000000000000000000000000000000000000000000000000000000000000", + "Seda": "0x0000000000000000000000000000000000000000000000000000000000000000", + "Dymension": "0x0000000000000000000000000000000000000000000000000000000000000000", + "Provenance": "0x0000000000000000000000000000000000000000000000000000000000000000", + "Sepolia": "0x0000000000000000000000000000000000000000000000000000000000000000", + "ArbitrumSepolia": "0x0000000000000000000000000000000000000000000000000000000000000000", + "BaseSepolia": "0x0000000000000000000000000000000000000000000000000000000000000000", + "OptimismSepolia": "0x0000000000000000000000000000000000000000000000000000000000000000", + "Holesky": "0x0000000000000000000000000000000000000000000000000000000000000000", + "PolygonSepolia": "0x0000000000000000000000000000000000000000000000000000000000000000" + } +} diff --git a/clients/js/info_tests/info-1.test b/clients/js/info_tests/info-1.test new file mode 100644 index 0000000000..03cb8d6ac5 --- /dev/null +++ b/clients/js/info_tests/info-1.test @@ -0,0 +1 @@ +evm info -c Bsc -n mainnet -m TokenBridge diff --git a/clients/js/info_tests/info-2.expected b/clients/js/info_tests/info-2.expected new file mode 100644 index 0000000000..fe313e8876 --- /dev/null +++ b/clients/js/info_tests/info-2.expected @@ -0,0 +1,4 @@ +Mismatches found on Ethereum Mainnet! +{ + Mantle: 'Expected null , found 0x00000000000000000000000024850c6f61c438823f01b7a3bf2b89b72174fa9d' +} diff --git a/clients/js/info_tests/info-2.test b/clients/js/info_tests/info-2.test new file mode 100644 index 0000000000..a30a259399 --- /dev/null +++ b/clients/js/info_tests/info-2.test @@ -0,0 +1 @@ +info registrations mainnet ethereum TokenBridge -v diff --git a/clients/js/info_tests/info-3.expected b/clients/js/info_tests/info-3.expected new file mode 100644 index 0000000000..8c7afd0783 --- /dev/null +++ b/clients/js/info_tests/info-3.expected @@ -0,0 +1 @@ +0x3ee18B2214AFF97000D974cf647E7C347E8fa585 diff --git a/clients/js/info_tests/info-3.test b/clients/js/info_tests/info-3.test new file mode 100644 index 0000000000..279cde6795 --- /dev/null +++ b/clients/js/info_tests/info-3.test @@ -0,0 +1 @@ +info contract mainnet ethereum TokenBridge diff --git a/clients/js/info_tests/info-4.expected b/clients/js/info_tests/info-4.expected new file mode 100644 index 0000000000..d329f3aa5d --- /dev/null +++ b/clients/js/info_tests/info-4.expected @@ -0,0 +1 @@ +0x5a58505a96D1dbf8dF91cB21B54419FC36e93fdE diff --git a/clients/js/info_tests/info-4.test b/clients/js/info_tests/info-4.test new file mode 100644 index 0000000000..d08d2430a8 --- /dev/null +++ b/clients/js/info_tests/info-4.test @@ -0,0 +1 @@ +info contract mainnet Bsc NFTBridge diff --git a/clients/js/info_tests/info-5.expected b/clients/js/info_tests/info-5.expected new file mode 100644 index 0000000000..ec428ce8dc --- /dev/null +++ b/clients/js/info_tests/info-5.expected @@ -0,0 +1 @@ +https://bsc-dataseed.binance.org/ diff --git a/clients/js/info_tests/info-5.test b/clients/js/info_tests/info-5.test new file mode 100644 index 0000000000..2d1faa1e90 --- /dev/null +++ b/clients/js/info_tests/info-5.test @@ -0,0 +1 @@ +info rpc mainnet Bsc diff --git a/clients/js/info_tests/info-6.expected b/clients/js/info_tests/info-6.expected new file mode 100644 index 0000000000..2fbf043b68 --- /dev/null +++ b/clients/js/info_tests/info-6.expected @@ -0,0 +1 @@ +0x5d4b302506645c37ff133b98c4b50a5ae14841659738d6d733d59d0d217a93bf::coin::COIN diff --git a/clients/js/info_tests/info-6.test b/clients/js/info_tests/info-6.test new file mode 100644 index 0000000000..ca4847410c --- /dev/null +++ b/clients/js/info_tests/info-6.test @@ -0,0 +1 @@ +info wrapped ethereum 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 sui diff --git a/clients/js/info_tests/info-7.expected b/clients/js/info_tests/info-7.expected new file mode 100644 index 0000000000..761f667074 --- /dev/null +++ b/clients/js/info_tests/info-7.expected @@ -0,0 +1,5 @@ +{ + isWrapped: true, + chainId: 2, + assetAddress: '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48' +} diff --git a/clients/js/info_tests/info-7.test b/clients/js/info_tests/info-7.test new file mode 100644 index 0000000000..b16ff6568b --- /dev/null +++ b/clients/js/info_tests/info-7.test @@ -0,0 +1 @@ +info origin sui 0x5d4b302506645c37ff133b98c4b50a5ae14841659738d6d733d59d0d217a93bf::coin::COIN diff --git a/clients/js/package-lock.json b/clients/js/package-lock.json index 08388829bb..ace0d45e88 100644 --- a/clients/js/package-lock.json +++ b/clients/js/package-lock.json @@ -1,16 +1,16 @@ { "name": "@wormhole-foundation/wormhole-cli", - "version": "0.0.3", + "version": "0.0.4", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@wormhole-foundation/wormhole-cli", - "version": "0.0.3", + "version": "0.0.4", "license": "Apache-2.0", "dependencies": { "@celo-tools/celo-ethers-wrapper": "^0.1.0", - "@certusone/wormhole-sdk": "^0.10.15", + "@certusone/wormhole-sdk": "^0.10.18", "@cosmjs/encoding": "^0.26.2", "@improbable-eng/grpc-web-node-http-transport": "^0.15.0", "@injectivelabs/networks": "^1.10.7", @@ -22,11 +22,13 @@ "@solana/web3.js": "^1.22.0", "@terra-money/terra.js": "^3.1.9", "@types/config": "^3.3.0", + "@wormhole-foundation/sdk": "^0.9.0", "@xpla/xpla.js": "^0.2.1", "algosdk": "^2.4.0", "aptos": "^1.3.16", "axios": "^0.24.0", "base-64": "^1.0.0", + "bech32": "^2.0.0", "binary-parser": "^2.0.2", "bn.js": "^5.2.0", "bs58": "^4.0.1", @@ -48,22 +50,55 @@ "@types/bn.js": "^5.1.0", "@types/bs58": "^4.0.1", "@types/jest": "^29.5.12", + "@types/node": "^20.12.12", "@types/node-fetch": "^2.6.3", "@types/yargs": "^17.0.24", "copy-dir": "^1.3.0", "jest": "^29.7.0", "ts-jest": "^29.1.2", - "typescript": "^4.6" + "tsx": "^4.12.0", + "typescript": "^5.4.5" + } + }, + "node_modules/@0no-co/graphql.web": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/@0no-co/graphql.web/-/graphql.web-1.0.7.tgz", + "integrity": "sha512-E3Qku4mTzdrlwVWGPxklDnME5ANrEGetvYw4i2GCRlppWXXE4QD66j7pwb8HelZwS6LnqEChhrSOGCXpbiu6MQ==", + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0" + }, + "peerDependenciesMeta": { + "graphql": { + "optional": true + } + } + }, + "node_modules/@0no-co/graphqlsp": { + "version": "1.12.12", + "resolved": "https://registry.npmjs.org/@0no-co/graphqlsp/-/graphqlsp-1.12.12.tgz", + "integrity": "sha512-BmCAc/q3tQcIwXxKoxubYaB23s2fWMMmNGSlY9mgQvWiReBS8ZutPZSf11OADfwTv1J1JIazU6q6OFX+cEp8PQ==", + "dependencies": { + "@gql.tada/internal": "^1.0.0", + "graphql": "^15.5.0 || ^16.0.0 || ^17.0.0" + }, + "peerDependencies": { + "graphql": "^15.5.0 || ^16.0.0 || ^17.0.0", + "typescript": "^5.0.0" } }, + "node_modules/@adraffy/ens-normalize": { + "version": "1.10.1", + "resolved": "https://registry.npmjs.org/@adraffy/ens-normalize/-/ens-normalize-1.10.1.tgz", + "integrity": "sha512-96Z2IP3mYmF1Xg2cDm8f1gWGf/HUVedQ3FMifV4kG/PQ4yEP51xDtRAEfhVNt5f/uzpNkZHwWQuUcu6D6K+Ekw==" + }, "node_modules/@ampproject/remapping": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz", - "integrity": "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", + "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", "dev": true, "dependencies": { - "@jridgewell/gen-mapping": "^0.1.0", - "@jridgewell/trace-mapping": "^0.3.9" + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" }, "engines": { "node": ">=6.0.0" @@ -110,6 +145,41 @@ } } }, + "node_modules/@aptos-labs/aptos-client": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/@aptos-labs/aptos-client/-/aptos-client-0.1.0.tgz", + "integrity": "sha512-q3s6pPq8H2buGp+tPuIRInWsYOuhSEwuNJPwd2YnsiID3YSLihn2ug39ktDJAcSOprUcp7Nid8WK7hKqnUmSdA==", + "dependencies": { + "axios": "1.6.2", + "got": "^11.8.6" + }, + "engines": { + "node": ">=15.10.0" + } + }, + "node_modules/@aptos-labs/aptos-client/node_modules/axios": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.6.2.tgz", + "integrity": "sha512-7i24Ri4pmDRfJTR7LDBhsOTtcm+9kjX5WiY1X3wIisx6G9So3pfMkEiU7emUBe46oceVImccTEM3k6C5dbVW8A==", + "dependencies": { + "follow-redirects": "^1.15.0", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" + } + }, + "node_modules/@aptos-labs/aptos-client/node_modules/form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, "node_modules/@babel/code-frame": { "version": "7.24.2", "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.2.tgz", @@ -186,20 +256,6 @@ "node": ">=6.9.0" } }, - "node_modules/@babel/generator/node_modules/@jridgewell/gen-mapping": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", - "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", - "dev": true, - "dependencies": { - "@jridgewell/set-array": "^1.2.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.24" - }, - "engines": { - "node": ">=6.0.0" - } - }, "node_modules/@babel/helper-compilation-targets": { "version": "7.23.6", "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz", @@ -397,9 +453,9 @@ } }, "node_modules/@babel/parser": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.1.tgz", - "integrity": "sha512-Zo9c7N3xdOIQrNip7Lc9wvRPzlRtovHVE4lkz8WEDr7uYh/GMQhSiIgFxGIArRHYdJE5kxtZjAf8rT0xhdLCzg==", + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.5.tgz", + "integrity": "sha512-EOv5IK8arwh3LI47dz1b0tKUb/1uhHAnHJOrjgtQMIpu1uXd9mlFrJg9IUgGUgZ41Ch0K8REPTYpO7B76b4vJg==", "dev": true, "bin": { "parser": "bin/babel-parser.js" @@ -683,9 +739,9 @@ } }, "node_modules/@certusone/wormhole-sdk": { - "version": "0.10.15", - "resolved": "https://registry.npmjs.org/@certusone/wormhole-sdk/-/wormhole-sdk-0.10.15.tgz", - "integrity": "sha512-XECfrvdYjsGPZWyR1bqWCPOiRw7+6upszpSvAXjKIqEnTNXOCYRkt5ae8TVh5oZxPjpts2X3t4Oi9WGcEssHpQ==", + "version": "0.10.18", + "resolved": "https://registry.npmjs.org/@certusone/wormhole-sdk/-/wormhole-sdk-0.10.18.tgz", + "integrity": "sha512-VuN4AGB018ELkzTT/jN+yWgE6TWqXsHilxxCVWqGctzow2hKSFd8ADUhxhHigies436rS0vPvrgXi6m0J1+Ecw==", "dependencies": { "@certusone/wormhole-sdk-proto-web": "0.0.7", "@certusone/wormhole-sdk-wasm": "^0.0.1", @@ -770,10 +826,13 @@ "@types/node": "^18.0.3" } }, - "node_modules/@certusone/wormhole-sdk/node_modules/bech32": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/bech32/-/bech32-2.0.0.tgz", - "integrity": "sha512-LcknSilhIGatDAsY1ak2I8VtGaHNhgMSYVxFrGLXv+xLHytaKZKcaUJJUE7qmBr7h33o5YQwP55pMI0xmkpJwg==" + "node_modules/@certusone/wormhole-sdk-wasm/node_modules/@types/node": { + "version": "18.19.33", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.33.tgz", + "integrity": "sha512-NR9+KrpSajr2qBVp/Yt5TU/rp+b5Mayi3+OlMlcg2cVCfRmcG5PWZ7S4+MG9PZ5gWBoc9Pd0BKSRViuBCRPu0A==", + "dependencies": { + "undici-types": "~5.26.4" + } }, "node_modules/@classic-terra/terra.proto": { "version": "1.1.0", @@ -795,6 +854,80 @@ "protobufjs": "^6.8.8" } }, + "node_modules/@coral-xyz/anchor": { + "version": "0.29.0", + "resolved": "https://registry.npmjs.org/@coral-xyz/anchor/-/anchor-0.29.0.tgz", + "integrity": "sha512-eny6QNG0WOwqV0zQ7cs/b1tIuzZGmP7U7EcH+ogt4Gdbl8HDmIYVMh/9aTmYZPaFWjtUaI8qSn73uYEXWfATdA==", + "dependencies": { + "@coral-xyz/borsh": "^0.29.0", + "@noble/hashes": "^1.3.1", + "@solana/web3.js": "^1.68.0", + "bn.js": "^5.1.2", + "bs58": "^4.0.1", + "buffer-layout": "^1.2.2", + "camelcase": "^6.3.0", + "cross-fetch": "^3.1.5", + "crypto-hash": "^1.3.0", + "eventemitter3": "^4.0.7", + "pako": "^2.0.3", + "snake-case": "^3.0.4", + "superstruct": "^0.15.4", + "toml": "^3.0.0" + }, + "engines": { + "node": ">=11" + } + }, + "node_modules/@coral-xyz/anchor/node_modules/@coral-xyz/borsh": { + "version": "0.29.0", + "resolved": "https://registry.npmjs.org/@coral-xyz/borsh/-/borsh-0.29.0.tgz", + "integrity": "sha512-s7VFVa3a0oqpkuRloWVPdCK7hMbAMY270geZOGfCnaqexrP5dTIpbEHL33req6IYPPJ0hYa71cdvJ1h6V55/oQ==", + "dependencies": { + "bn.js": "^5.1.2", + "buffer-layout": "^1.2.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@solana/web3.js": "^1.68.0" + } + }, + "node_modules/@coral-xyz/anchor/node_modules/@noble/hashes": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.4.0.tgz", + "integrity": "sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg==", + "engines": { + "node": ">= 16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@coral-xyz/anchor/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" + } + }, + "node_modules/@coral-xyz/anchor/node_modules/cross-fetch": { + "version": "3.1.8", + "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.8.tgz", + "integrity": "sha512-cvA+JwZoU0Xq+h6WkMvAUqPEYy92Obet6UdKLfW60qn99ftItKjB5T+BkyWOFWe2pUyfQ+IJHmpOTznqk1M6Kg==", + "dependencies": { + "node-fetch": "^2.6.12" + } + }, + "node_modules/@coral-xyz/anchor/node_modules/superstruct": { + "version": "0.15.5", + "resolved": "https://registry.npmjs.org/superstruct/-/superstruct-0.15.5.tgz", + "integrity": "sha512-4AOeU+P5UuE/4nOUkmcQdW5y7i9ndt1cQd/3iUe+LTz3RxESf/W/5lg4B74HbDMMv8PHnPnGCQFH45kBcrQYoQ==" + }, "node_modules/@coral-xyz/borsh": { "version": "0.2.6", "resolved": "https://registry.npmjs.org/@coral-xyz/borsh/-/borsh-0.2.6.tgz", @@ -831,6 +964,11 @@ "readonly-date": "^1.0.0" } }, + "node_modules/@cosmjs/amino/node_modules/bech32": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/bech32/-/bech32-1.1.4.tgz", + "integrity": "sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ==" + }, "node_modules/@cosmjs/cosmwasm-stargate": { "version": "0.29.5", "resolved": "https://registry.npmjs.org/@cosmjs/cosmwasm-stargate/-/cosmwasm-stargate-0.29.5.tgz", @@ -859,6 +997,11 @@ "readonly-date": "^1.0.0" } }, + "node_modules/@cosmjs/cosmwasm-stargate/node_modules/bech32": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/bech32/-/bech32-1.1.4.tgz", + "integrity": "sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ==" + }, "node_modules/@cosmjs/crypto": { "version": "0.29.5", "resolved": "https://registry.npmjs.org/@cosmjs/crypto/-/crypto-0.29.5.tgz", @@ -883,6 +1026,11 @@ "readonly-date": "^1.0.0" } }, + "node_modules/@cosmjs/crypto/node_modules/bech32": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/bech32/-/bech32-1.1.4.tgz", + "integrity": "sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ==" + }, "node_modules/@cosmjs/encoding": { "version": "0.26.8", "resolved": "https://registry.npmjs.org/@cosmjs/encoding/-/encoding-0.26.8.tgz", @@ -893,6 +1041,11 @@ "readonly-date": "^1.0.0" } }, + "node_modules/@cosmjs/encoding/node_modules/bech32": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/bech32/-/bech32-1.1.4.tgz", + "integrity": "sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ==" + }, "node_modules/@cosmjs/json-rpc": { "version": "0.29.5", "resolved": "https://registry.npmjs.org/@cosmjs/json-rpc/-/json-rpc-0.29.5.tgz", @@ -934,6 +1087,11 @@ "readonly-date": "^1.0.0" } }, + "node_modules/@cosmjs/proto-signing/node_modules/bech32": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/bech32/-/bech32-1.1.4.tgz", + "integrity": "sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ==" + }, "node_modules/@cosmjs/socket": { "version": "0.29.5", "resolved": "https://registry.npmjs.org/@cosmjs/socket/-/socket-0.29.5.tgz", @@ -974,6 +1132,11 @@ "readonly-date": "^1.0.0" } }, + "node_modules/@cosmjs/stargate/node_modules/bech32": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/bech32/-/bech32-1.1.4.tgz", + "integrity": "sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ==" + }, "node_modules/@cosmjs/stream": { "version": "0.29.5", "resolved": "https://registry.npmjs.org/@cosmjs/stream/-/stream-0.29.5.tgz", @@ -1017,11 +1180,32 @@ "follow-redirects": "^1.14.0" } }, + "node_modules/@cosmjs/tendermint-rpc/node_modules/bech32": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/bech32/-/bech32-1.1.4.tgz", + "integrity": "sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ==" + }, "node_modules/@cosmjs/utils": { "version": "0.29.5", "resolved": "https://registry.npmjs.org/@cosmjs/utils/-/utils-0.29.5.tgz", "integrity": "sha512-m7h+RXDUxOzEOGt4P+3OVPX7PuakZT3GBmaM/Y2u+abN3xZkziykD/NvedYFvvCCdQo714XcGl33bwifS9FZPQ==" }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.20.2.tgz", + "integrity": "sha512-D+EBOJHXdNZcLJRBkhENNG8Wji2kgc9AZ9KiPr1JuZjsNtyHzrsfLRrY0tk2H2aoFu6RANO1y1iPPUCDYWkb5g==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=12" + } + }, "node_modules/@esbuild/android-arm": { "version": "0.17.18", "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.17.18.tgz", @@ -1795,6 +1979,11 @@ "ws": "7.4.6" } }, + "node_modules/@ethersproject/providers/node_modules/bech32": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/bech32/-/bech32-1.1.4.tgz", + "integrity": "sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ==" + }, "node_modules/@ethersproject/providers/node_modules/ws": { "version": "7.4.6", "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz", @@ -2061,12 +2250,49 @@ "@ethersproject/strings": "^5.7.0" } }, + "node_modules/@gql.tada/cli-utils": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@gql.tada/cli-utils/-/cli-utils-1.6.0.tgz", + "integrity": "sha512-RYWpoWVm6/ypvDp7UTzh3UrEgIJq2+HaUlAcbdLzKdO8ZfFgP16gBpxtYvbRPWwQEjn5HMGgpzIBh7Kftp10PA==", + "dependencies": { + "@0no-co/graphqlsp": "^1.12.9", + "@gql.tada/internal": "1.0.6", + "graphql": "^15.5.0 || ^16.0.0 || ^17.0.0" + }, + "peerDependencies": { + "@0no-co/graphqlsp": "^1.12.9", + "@gql.tada/svelte-support": "1.0.1", + "@gql.tada/vue-support": "1.0.1", + "graphql": "^15.5.0 || ^16.0.0 || ^17.0.0", + "typescript": "^5.0.0" + }, + "peerDependenciesMeta": { + "@gql.tada/svelte-support": { + "optional": true + }, + "@gql.tada/vue-support": { + "optional": true + } + } + }, + "node_modules/@gql.tada/internal": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/@gql.tada/internal/-/internal-1.0.6.tgz", + "integrity": "sha512-K5dKMqqU0pcNWS+/i6EnoUGvA7lW2Agwl+nepZOEWbGpG80aJxXfL+yAvaHihP5VqGZFOygyc3NDBo1mm+Z4KQ==", + "dependencies": { + "@0no-co/graphql.web": "^1.0.5" + }, + "peerDependencies": { + "graphql": "^15.5.0 || ^16.0.0 || ^17.0.0", + "typescript": "^5.0.0" + } + }, "node_modules/@graphql-typed-document-node/core": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@graphql-typed-document-node/core/-/core-3.1.1.tgz", - "integrity": "sha512-NQ17ii0rK1b34VZonlmT2QMJFI70m0TRwbknO/ihlbatXyaktDhN/98vBiUU6kNBPljqGqyIrl2T4nY2RpFANg==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@graphql-typed-document-node/core/-/core-3.2.0.tgz", + "integrity": "sha512-mB9oAsNCm9aM3/SOv4YtBMqZbYj10R7dkq8byBqxGY/ncFwhf2oQzMV+LCRlWoDSEBJ3COiR1yeDvMtsoOsuFQ==", "peerDependencies": { - "graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0" + "graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" } }, "node_modules/@improbable-eng/grpc-web": { @@ -2127,14 +2353,53 @@ "node": ">=12.0.0" } }, + "node_modules/@injectivelabs/dmm-proto-ts": { + "version": "1.0.20", + "resolved": "https://registry.npmjs.org/@injectivelabs/dmm-proto-ts/-/dmm-proto-ts-1.0.20.tgz", + "integrity": "sha512-S9vGOAZbNNa+N5QDW2HcXn7ohvU/4qze6wELA9gF8zu8uWbE+UKWTqzkZ+B4XuG1MkJwoHL7pVcj3M+nC9Qe4A==", + "dependencies": { + "@injectivelabs/grpc-web": "^0.0.1", + "google-protobuf": "^3.14.0", + "protobufjs": "^7.0.0", + "rxjs": "^7.4.0" + } + }, + "node_modules/@injectivelabs/dmm-proto-ts/node_modules/long": { + "version": "5.2.3", + "resolved": "https://registry.npmjs.org/long/-/long-5.2.3.tgz", + "integrity": "sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q==" + }, + "node_modules/@injectivelabs/dmm-proto-ts/node_modules/protobufjs": { + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.3.2.tgz", + "integrity": "sha512-RXyHaACeqXeqAKGLDl68rQKbmObRsTIn4TYVUUug1KfS47YWCo5MacGITEryugIgZqORCvJWEk4l449POg5Txg==", + "hasInstallScript": true, + "dependencies": { + "@protobufjs/aspromise": "^1.1.2", + "@protobufjs/base64": "^1.1.2", + "@protobufjs/codegen": "^2.0.4", + "@protobufjs/eventemitter": "^1.1.0", + "@protobufjs/fetch": "^1.1.0", + "@protobufjs/float": "^1.0.2", + "@protobufjs/inquire": "^1.1.0", + "@protobufjs/path": "^1.1.2", + "@protobufjs/pool": "^1.1.0", + "@protobufjs/utf8": "^1.1.0", + "@types/node": ">=13.7.0", + "long": "^5.0.0" + }, + "engines": { + "node": ">=12.0.0" + } + }, "node_modules/@injectivelabs/exceptions": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/@injectivelabs/exceptions/-/exceptions-1.11.0.tgz", - "integrity": "sha512-jZ0N4cP1KCyErNEiCARaKt70E8KMTNa9R4a5FrCERX4cFKPxdbWpoQ8Lqga2jfHAgiFcChRJ5JmaSYclFtKf9w==", + "version": "1.14.13", + "resolved": "https://registry.npmjs.org/@injectivelabs/exceptions/-/exceptions-1.14.13.tgz", + "integrity": "sha512-yFtB0jQtZI6D3AuaP6ObYtlVgDB4vriCWuV+6GY3frduv7i3kz1ZYVsPKsKSKBCOD5QegZXcEmGJL4RiDi1OKA==", "hasInstallScript": true, "dependencies": { "@injectivelabs/grpc-web": "^0.0.1", - "@injectivelabs/ts-types": "^1.11.0", + "@injectivelabs/ts-types": "^1.14.13", "http-status-codes": "^2.2.0", "link-module-alias": "^1.2.0", "shx": "^0.3.2" @@ -2450,11 +2715,6 @@ "form-data": "^4.0.0" } }, - "node_modules/@injectivelabs/sdk-ts/node_modules/bech32": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/bech32/-/bech32-2.0.0.tgz", - "integrity": "sha512-LcknSilhIGatDAsY1ak2I8VtGaHNhgMSYVxFrGLXv+xLHytaKZKcaUJJUE7qmBr7h33o5YQwP55pMI0xmkpJwg==" - }, "node_modules/@injectivelabs/sdk-ts/node_modules/cosmjs-types": { "version": "0.7.2", "resolved": "https://registry.npmjs.org/cosmjs-types/-/cosmjs-types-0.7.2.tgz", @@ -2478,12 +2738,12 @@ } }, "node_modules/@injectivelabs/test-utils": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/@injectivelabs/test-utils/-/test-utils-1.11.0.tgz", - "integrity": "sha512-/KIPGeLFsjITs43yQG++SoOtDExZr+Pa3JVYIZEIMFUVG8a7z9Vi5m6a1kbowvozZbLG5KHuuUXF2SdfKSxznQ==", + "version": "1.14.13", + "resolved": "https://registry.npmjs.org/@injectivelabs/test-utils/-/test-utils-1.14.13.tgz", + "integrity": "sha512-wa5TQcWLvORRm36mw4Hee+XF7lBlArVK3DM1ebC0uBvVcUgrmm3g/nh1pV/NzLN16WtrLLsvnTsE5uiNEcgYdw==", "hasInstallScript": true, "dependencies": { - "axios": "^0.21.1", + "axios": "^1.6.4", "bignumber.js": "^9.0.1", "link-module-alias": "^1.2.0", "shx": "^0.3.2", @@ -2492,23 +2752,38 @@ } }, "node_modules/@injectivelabs/test-utils/node_modules/axios": { - "version": "0.21.4", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.4.tgz", - "integrity": "sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==", + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.3.tgz", + "integrity": "sha512-Ar7ND9pU99eJ9GpoGQKhKf58GpUOgnzuaB7ueNQ5BMi0p+LZ5oaEnfF999fAArcTIBwXTCHAmGcHOZJaWPq9Nw==", "dependencies": { - "follow-redirects": "^1.14.0" + "follow-redirects": "^1.15.6", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" + } + }, + "node_modules/@injectivelabs/test-utils/node_modules/form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" } }, "node_modules/@injectivelabs/token-metadata": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/@injectivelabs/token-metadata/-/token-metadata-1.11.0.tgz", - "integrity": "sha512-RzwJvnjDX8IwXYTvZDCMQcGxkN/0ZfXUEYTVMB0WMU0bRH7cV7WJ6Z9UDOijAehrJHu/fByDz2DuEOcktbwoIw==", + "version": "1.14.7", + "resolved": "https://registry.npmjs.org/@injectivelabs/token-metadata/-/token-metadata-1.14.7.tgz", + "integrity": "sha512-RRRuyirzoThwQ5P8D3STH2YOavGsdnetQy6ZPQ8yA7VUavt00KBB26M92zSLbiUz5VrxhPHDCEEkuJVWx+xtmw==", "hasInstallScript": true, "dependencies": { - "@injectivelabs/exceptions": "^1.11.0", - "@injectivelabs/networks": "^1.11.0", - "@injectivelabs/ts-types": "^1.11.0", - "@injectivelabs/utils": "^1.11.0", + "@injectivelabs/exceptions": "^1.14.6", + "@injectivelabs/networks": "^1.14.6", + "@injectivelabs/ts-types": "^1.14.6", + "@injectivelabs/utils": "^1.14.6", "@types/lodash.values": "^4.3.6", "copyfiles": "^2.4.1", "jsonschema": "^1.4.0", @@ -2519,26 +2794,26 @@ } }, "node_modules/@injectivelabs/token-metadata/node_modules/@injectivelabs/networks": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/@injectivelabs/networks/-/networks-1.11.0.tgz", - "integrity": "sha512-0dtO/zZ8AzsxGInEWZ7tpOA0Q++M3FhAFxOWzhYC39ZeJlwHhEcYmvmhrGG5gRdus29XfFysRlaz3hyT3XH1Jg==", + "version": "1.14.6", + "resolved": "https://registry.npmjs.org/@injectivelabs/networks/-/networks-1.14.6.tgz", + "integrity": "sha512-O1IkPFJl8ThNL6N+k/9OimrgCYsSWQ8A1FtVMXSQge+0QRZsDKSpRmQRwE601otXXauO31nOUct5AaiWPffXVQ==", "hasInstallScript": true, "dependencies": { - "@injectivelabs/exceptions": "^1.11.0", - "@injectivelabs/ts-types": "^1.11.0", - "@injectivelabs/utils": "^1.11.0", + "@injectivelabs/exceptions": "^1.14.6", + "@injectivelabs/ts-types": "^1.14.6", + "@injectivelabs/utils": "^1.14.6", "link-module-alias": "^1.2.0", "shx": "^0.3.2" } }, "node_modules/@injectivelabs/token-metadata/node_modules/@injectivelabs/utils": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/@injectivelabs/utils/-/utils-1.11.0.tgz", - "integrity": "sha512-KnUmt4vIvoBz6F3mQomy4GeTkpcHMYwju2AgiqzARrrqgF/2p1ZHfKBpr1ksj/jkl5X+irh3JVfbd/dFjwKi1g==", + "version": "1.14.6", + "resolved": "https://registry.npmjs.org/@injectivelabs/utils/-/utils-1.14.6.tgz", + "integrity": "sha512-5I0h4GiLB5PPTl+g2lpevRP+WScvEbntdkoUQVtAdHewl4kutd5p1Kcnoi1Nvpq+sz5N/e9qtBIRuyxG38akOg==", "hasInstallScript": true, "dependencies": { - "@injectivelabs/exceptions": "^1.11.0", - "@injectivelabs/ts-types": "^1.11.0", + "@injectivelabs/exceptions": "^1.14.6", + "@injectivelabs/ts-types": "^1.14.6", "axios": "^0.21.1", "bignumber.js": "^9.0.1", "http-status-codes": "^2.2.0", @@ -2557,9 +2832,9 @@ } }, "node_modules/@injectivelabs/ts-types": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/@injectivelabs/ts-types/-/ts-types-1.11.0.tgz", - "integrity": "sha512-3ZVRW1xMe3RHOxFblRC0LgQcU/rpxgZQZ+sISyRKFGcS/m2ApkdmcPvjMgd5TQe9AXW/6nnvmul3mST8iAaUJg==", + "version": "1.14.13", + "resolved": "https://registry.npmjs.org/@injectivelabs/ts-types/-/ts-types-1.14.13.tgz", + "integrity": "sha512-jkR4+JnQ91n7LWAdt+cZuvXFfqhv9RVlTE2pezAjZab7z7VeDonYwktjia5OcbqTKjlirvVHFALIZ0pmYd0j+A==", "hasInstallScript": true, "dependencies": { "link-module-alias": "^1.2.0", @@ -3080,13 +3355,14 @@ } }, "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==", + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", + "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", "dev": true, "dependencies": { - "@jridgewell/set-array": "^1.0.0", - "@jridgewell/sourcemap-codec": "^1.4.10" + "@jridgewell/set-array": "^1.2.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.24" }, "engines": { "node": ">=6.0.0" @@ -3111,9 +3387,9 @@ } }, "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==", + "version": "1.4.15", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", "dev": true }, "node_modules/@jridgewell/trace-mapping": { @@ -3247,75 +3523,39 @@ } }, "node_modules/@mysten/sui.js/node_modules/@noble/hashes": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.3.0.tgz", - "integrity": "sha512-ilHEACi9DwqJB0pw7kv+Apvh50jiiSyR/cQ3y4W7lOR5mhvn/50FLUfsnfJz0BDZtl/RR16kXvptiv6q1msYZg==", - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ] + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.4.0.tgz", + "integrity": "sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg==", + "engines": { + "node": ">= 16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } }, "node_modules/@mysten/sui.js/node_modules/@scure/bip32": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-1.3.0.tgz", - "integrity": "sha512-bcKpo1oj54hGholplGLpqPHRbIsnbixFtc06nwuNM5/dwSXOq/AAYoIBRsBmnZJSdfeNW5rnff7NTAz3ZCqR9Q==", - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ], + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-1.4.0.tgz", + "integrity": "sha512-sVUpc0Vq3tXCkDGYVWGIZTRfnvu8LoTDaev7vbwh0omSvVORONr960MQWdKqJDCReIEmTj3PAr73O3aoxz7OPg==", "dependencies": { - "@noble/curves": "~1.0.0", - "@noble/hashes": "~1.3.0", - "@scure/base": "~1.1.0" + "@noble/curves": "~1.4.0", + "@noble/hashes": "~1.4.0", + "@scure/base": "~1.1.6" + }, + "funding": { + "url": "https://paulmillr.com/funding/" } }, "node_modules/@mysten/sui.js/node_modules/@scure/bip39": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.2.0.tgz", - "integrity": "sha512-SX/uKq52cuxm4YFXWFaVByaSHJh2w3BnokVSeUJVCv6K7WulT9u2BuNRBhuFl8vAuYnzx9bEu9WgpcNYTrYieg==", - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ], - "dependencies": { - "@noble/hashes": "~1.3.0", - "@scure/base": "~1.1.0" - } - }, - "node_modules/@mysten/sui.js/node_modules/@types/node": { - "version": "12.20.55", - "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.55.tgz", - "integrity": "sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==" - }, - "node_modules/@mysten/sui.js/node_modules/jayson": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/jayson/-/jayson-4.1.0.tgz", - "integrity": "sha512-R6JlbyLN53Mjku329XoRT2zJAE6ZgOQ8f91ucYdMCD4nkGCF9kZSrcGXpHIU4jeKj58zUZke2p+cdQchU7Ly7A==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.3.0.tgz", + "integrity": "sha512-disdg7gHuTDZtY+ZdkmLpPCk7fxZSu3gBiEGuoC1XYxv9cGx3Z6cpTggCgW6odSOOIXCiDjuGejW+aJKCY/pIQ==", "dependencies": { - "@types/connect": "^3.4.33", - "@types/node": "^12.12.54", - "@types/ws": "^7.4.4", - "commander": "^2.20.3", - "delay": "^5.0.0", - "es6-promisify": "^5.0.0", - "eyes": "^0.1.8", - "isomorphic-ws": "^4.0.1", - "json-stringify-safe": "^5.0.1", - "JSONStream": "^1.3.5", - "uuid": "^8.3.2", - "ws": "^7.4.5" - }, - "bin": { - "jayson": "bin/jayson.js" + "@noble/hashes": "~1.4.0", + "@scure/base": "~1.1.6" }, - "engines": { - "node": ">=8" + "funding": { + "url": "https://paulmillr.com/funding/" } }, "node_modules/@mysten/sui.js/node_modules/superstruct": { @@ -3326,49 +3566,27 @@ "node": ">=14.0.0" } }, - "node_modules/@mysten/sui.js/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==", - "bin": { - "uuid": "dist/bin/uuid" - } - }, "node_modules/@noble/curves": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.0.0.tgz", - "integrity": "sha512-2upgEu0iLiDVDZkNLeFV2+ht0BAVgQnEmCk6JsOch9Rp8xfkMCbvbAZlA2pBHQc73dbl+vFOXfqkf4uemdn0bw==", - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ], + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.4.0.tgz", + "integrity": "sha512-p+4cb332SFCrReJkCYe8Xzm0OWi4Jji5jVdIZRL/PmacmDkFNw6MrrV+gGpiPxLHbV+zKFRywUWbaseT+tZRXg==", "dependencies": { - "@noble/hashes": "1.3.0" + "@noble/hashes": "1.4.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" } }, "node_modules/@noble/curves/node_modules/@noble/hashes": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.3.0.tgz", - "integrity": "sha512-ilHEACi9DwqJB0pw7kv+Apvh50jiiSyR/cQ3y4W7lOR5mhvn/50FLUfsnfJz0BDZtl/RR16kXvptiv6q1msYZg==", - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ] - }, - "node_modules/@noble/ed25519": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/@noble/ed25519/-/ed25519-1.7.1.tgz", - "integrity": "sha512-Rk4SkJFaXZiznFyC/t77Q0NKS4FL7TLJJsVG2V2oiEq3kJVeTdxysEe/yRWSpnWMe808XRDJ+VFh5pt/FN5plw==", - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ] + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.4.0.tgz", + "integrity": "sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg==", + "engines": { + "node": ">= 16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } }, "node_modules/@noble/hashes": { "version": "1.1.3", @@ -3385,6 +3603,7 @@ "version": "1.6.3", "resolved": "https://registry.npmjs.org/@noble/secp256k1/-/secp256k1-1.6.3.tgz", "integrity": "sha512-T04e4iTurVy7I8Sw4+c5OSN9/RkPlo1uKxAomtxQNLq8j1uPAqnsqG1bqvY3Jv7c13gyr6dui0zmh/I3+f/JaQ==", + "dev": true, "funding": [ { "type": "individual", @@ -3580,6 +3799,11 @@ "follow-redirects": "^1.14.0" } }, + "node_modules/@osmonauts/helpers/node_modules/bech32": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/bech32/-/bech32-1.1.4.tgz", + "integrity": "sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ==" + }, "node_modules/@osmonauts/helpers/node_modules/cosmjs-types": { "version": "0.5.1", "resolved": "https://registry.npmjs.org/cosmjs-types/-/cosmjs-types-0.5.1.tgz", @@ -3749,15 +3973,12 @@ "integrity": "sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==" }, "node_modules/@scure/base": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@scure/base/-/base-1.1.1.tgz", - "integrity": "sha512-ZxOhsSyxYwLJj3pLZCefNitxsj093tb2vq90mp2txoYeBqbcjDjqFhyM8eUjq/uFm6zJ+mUuqxlS2FkuSY1MTA==", - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ] + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/@scure/base/-/base-1.1.6.tgz", + "integrity": "sha512-ok9AWwhcgYuGG3Zfhyqg+zwl+Wn5uE+dwC0NV/2qQkx4dABbb/bx96vWu8NSj+BNjjSjno+JRYRjle1jV08k3g==", + "funding": { + "url": "https://paulmillr.com/funding/" + } }, "node_modules/@scure/bip32": { "version": "1.1.0", @@ -3821,6 +4042,11 @@ "readonly-date": "^1.0.0" } }, + "node_modules/@sei-js/core/node_modules/bech32": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/bech32/-/bech32-1.1.4.tgz", + "integrity": "sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ==" + }, "node_modules/@sei-js/proto": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/@sei-js/proto/-/proto-1.2.0.tgz", @@ -3858,12 +4084,28 @@ "readonly-date": "^1.0.0" } }, + "node_modules/@sei-js/proto/node_modules/bech32": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/bech32/-/bech32-1.1.4.tgz", + "integrity": "sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ==" + }, "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/@sindresorhus/is": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.6.0.tgz", + "integrity": "sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/is?sponsor=1" + } + }, "node_modules/@sinonjs/commons": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.1.tgz", @@ -3883,9 +4125,9 @@ } }, "node_modules/@solana/buffer-layout": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@solana/buffer-layout/-/buffer-layout-4.0.0.tgz", - "integrity": "sha512-lR0EMP2HC3+Mxwd4YcnZb0smnaDw7Bl2IQWZiTevRH5ZZBZn6VRWn3/92E3qdU4SSImJkA6IDHawOHAnx/qUvQ==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@solana/buffer-layout/-/buffer-layout-4.0.1.tgz", + "integrity": "sha512-E1ImOIAD1tBZFRdjeM4/pzTiTApC0AOBGwyAMS4fwIodCWArzJ3DWdoh8cKxeFM2fElkxBh2Aqts1BPC373rHA==", "dependencies": { "buffer": "~6.0.3" }, @@ -3907,33 +4149,10 @@ "node": ">= 10" } }, - "node_modules/@solana/buffer-layout/node_modules/buffer": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", - "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" - } - }, "node_modules/@solana/spl-token": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/@solana/spl-token/-/spl-token-0.3.5.tgz", - "integrity": "sha512-0bGC6n415lGjKu02gkLOIpP1wzndSP0SHwN9PefJ+wKAhmfU1rl3AV1Pa41uap2kzSCD6F9642ngNO8KXPvh/g==", + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/@solana/spl-token/-/spl-token-0.3.9.tgz", + "integrity": "sha512-1EXHxKICMnab35MvvY/5DBc/K/uQAOJCYnDZXw83McCAYUAfi+rwq6qfd6MmITmSTEhcfBcl/zYxmW/OSN0RmA==", "dependencies": { "@solana/buffer-layout": "^4.0.0", "@solana/buffer-layout-utils": "^0.2.0", @@ -3946,59 +4165,71 @@ "@solana/web3.js": "^1.47.4" } }, - "node_modules/@solana/spl-token/node_modules/buffer": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", - "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" - } - }, "node_modules/@solana/web3.js": { - "version": "1.66.2", - "resolved": "https://registry.npmjs.org/@solana/web3.js/-/web3.js-1.66.2.tgz", - "integrity": "sha512-RyaHMR2jGmaesnYP045VLeBGfR/gAW3cvZHzMFGg7bkO+WOYOYp1nEllf0/la4U4qsYGKCsO9eEevR5fhHiVHg==", - "dependencies": { - "@babel/runtime": "^7.12.5", - "@noble/ed25519": "^1.7.0", - "@noble/hashes": "^1.1.2", - "@noble/secp256k1": "^1.6.3", - "@solana/buffer-layout": "^4.0.0", + "version": "1.91.7", + "resolved": "https://registry.npmjs.org/@solana/web3.js/-/web3.js-1.91.7.tgz", + "integrity": "sha512-HqljZKDwk6Z4TajKRGhGLlRsbGK4S8EY27DA7v1z6yakewiUY3J7ZKDZRxcqz2MYV/ZXRrJ6wnnpiHFkPdv0WA==", + "dependencies": { + "@babel/runtime": "^7.23.4", + "@noble/curves": "^1.4.0", + "@noble/hashes": "^1.3.3", + "@solana/buffer-layout": "^4.0.1", + "agentkeepalive": "^4.5.0", "bigint-buffer": "^1.1.5", - "bn.js": "^5.0.0", + "bn.js": "^5.2.1", "borsh": "^0.7.0", "bs58": "^4.0.1", - "buffer": "6.0.1", + "buffer": "6.0.3", "fast-stable-stringify": "^1.0.0", - "jayson": "^3.4.4", - "node-fetch": "2", - "rpc-websockets": "^7.5.0", + "jayson": "^4.1.0", + "node-fetch": "^2.7.0", + "rpc-websockets": "^7.5.1", "superstruct": "^0.14.2" + } + }, + "node_modules/@solana/web3.js/node_modules/@babel/runtime": { + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.24.5.tgz", + "integrity": "sha512-Nms86NXrsaeU9vbBJKni6gXiEXZ4CVpYVzEjDH9Sb8vmZ3UljyA1GSOJl/6LGPO8EHLuSF9H+IxNXHPX8QHJ4g==", + "dependencies": { + "regenerator-runtime": "^0.14.0" }, "engines": { - "node": ">=12.20.0" + "node": ">=6.9.0" + } + }, + "node_modules/@solana/web3.js/node_modules/@noble/hashes": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.4.0.tgz", + "integrity": "sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg==", + "engines": { + "node": ">= 16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" } }, + "node_modules/@solana/web3.js/node_modules/regenerator-runtime": { + "version": "0.14.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", + "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==" + }, "node_modules/@suchipi/femver": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/@suchipi/femver/-/femver-1.0.0.tgz", "integrity": "sha512-bprE8+K5V+DPX7q2e2K57ImqNBdfGHDIWaGI5xHxZoxbKOuQZn4wzPiUxOAHnsUr3w3xHrWXwN7gnG/iIuEMIg==" }, + "node_modules/@szmarczak/http-timer": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-4.0.6.tgz", + "integrity": "sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==", + "dependencies": { + "defer-to-connect": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/@terra-money/legacy.proto": { "name": "@terra-money/terra.proto", "version": "0.1.7", @@ -4043,11 +4274,6 @@ "form-data": "^4.0.0" } }, - "node_modules/@terra-money/terra.js/node_modules/bech32": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/bech32/-/bech32-2.0.0.tgz", - "integrity": "sha512-LcknSilhIGatDAsY1ak2I8VtGaHNhgMSYVxFrGLXv+xLHytaKZKcaUJJUE7qmBr7h33o5YQwP55pMI0xmkpJwg==" - }, "node_modules/@terra-money/terra.js/node_modules/form-data": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", @@ -4169,6 +4395,17 @@ "base-x": "^3.0.6" } }, + "node_modules/@types/cacheable-request": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/@types/cacheable-request/-/cacheable-request-6.0.3.tgz", + "integrity": "sha512-IQ3EbTzGxIigb1I3qPZc1rWJnH0BmSKv5QYTalEwweFvyBDLSAe24zP0le/hyi7ecGfZVlIVAg4BZqb8WBwKqw==", + "dependencies": { + "@types/http-cache-semantics": "*", + "@types/keyv": "^3.1.4", + "@types/node": "*", + "@types/responselike": "^1.0.0" + } + }, "node_modules/@types/config": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/@types/config/-/config-3.3.0.tgz", @@ -4181,15 +4418,6 @@ "@types/node": "*" } }, - "node_modules/@types/express-serve-static-core": { - "version": "4.17.24", - "license": "MIT", - "dependencies": { - "@types/node": "*", - "@types/qs": "*", - "@types/range-parser": "*" - } - }, "node_modules/@types/graceful-fs": { "version": "4.1.9", "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.9.tgz", @@ -4199,6 +4427,11 @@ "@types/node": "*" } }, + "node_modules/@types/http-cache-semantics": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.4.tgz", + "integrity": "sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA==" + }, "node_modules/@types/istanbul-lib-coverage": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz", @@ -4233,6 +4466,14 @@ "pretty-format": "^29.0.0" } }, + "node_modules/@types/keyv": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/@types/keyv/-/keyv-3.1.4.tgz", + "integrity": "sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==", + "dependencies": { + "@types/node": "*" + } + }, "node_modules/@types/lodash": { "version": "4.14.171", "license": "MIT" @@ -4251,9 +4492,12 @@ "integrity": "sha512-MqTGEo5bj5t157U6fA/BiDynNkn0YknVdh48CMPkTSpFTVmvao5UQmm7uEF6xBEo7qIMAlY/JSleYaE6VOdpaA==" }, "node_modules/@types/node": { - "version": "18.7.6", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.7.6.tgz", - "integrity": "sha512-EdxgKRXgYsNITy5mjjXjVE/CS8YENSdhiagGrLqjG0pvA2owgJ6i4l7wy/PFZGC0B1/H20lWKN7ONVDNYDZm7A==" + "version": "20.12.12", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.12.12.tgz", + "integrity": "sha512-eWLDGF/FOSPtAvEqeRAQ4C8LSA7M1I7i0ky1I8U7kD1J5ITyW3AsRhQrKVoWf5pFKZ2kILsEGJhsI9r93PYnOw==", + "dependencies": { + "undici-types": "~5.26.4" + } }, "node_modules/@types/node-fetch": { "version": "2.6.3", @@ -4287,13 +4531,13 @@ "@types/node": "*" } }, - "node_modules/@types/qs": { - "version": "6.9.7", - "license": "MIT" - }, - "node_modules/@types/range-parser": { - "version": "1.2.4", - "license": "MIT" + "node_modules/@types/responselike": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@types/responselike/-/responselike-1.0.3.tgz", + "integrity": "sha512-H/+L+UkTV33uf49PH5pCAUBVPNj2nDBXTN+qS1dOwyyg24l3CcicicCA7ca+HMvJBZcFgl5r8e+RR6elsb4Lyw==", + "dependencies": { + "@types/node": "*" + } }, "node_modules/@types/secp256k1": { "version": "4.0.3", @@ -4331,258 +4575,203 @@ "integrity": "sha512-7tFImggNeNBVMsn0vLrpn1H1uPrUBdnARPTpZoitY37ZrdJREzf7I16tMrlK3hen349gr1NYh8CmZQa7CTG6Aw==", "dev": true }, - "node_modules/@wry/context": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/@wry/context/-/context-0.7.0.tgz", - "integrity": "sha512-LcDAiYWRtwAoSOArfk7cuYvFXytxfVrdX7yxoUmK7pPITLk5jYh2F8knCwS7LjgYL8u1eidPlKKV6Ikqq0ODqQ==", + "node_modules/@wormhole-foundation/sdk": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/@wormhole-foundation/sdk/-/sdk-0.9.0.tgz", + "integrity": "sha512-QHqtTxxUqi1e6qA6xx0kb40K1C+/6rIzTsRlhhap0hTvWRnuxVRFNRRwXTfCWDKYSXTdkVq04z8uewnBL2DfNA==", + "dependencies": { + "@wormhole-foundation/sdk-algorand": "0.9.0", + "@wormhole-foundation/sdk-algorand-core": "0.9.0", + "@wormhole-foundation/sdk-algorand-tokenbridge": "0.9.0", + "@wormhole-foundation/sdk-aptos": "0.9.0", + "@wormhole-foundation/sdk-aptos-core": "0.9.0", + "@wormhole-foundation/sdk-aptos-tokenbridge": "0.9.0", + "@wormhole-foundation/sdk-base": "0.9.0", + "@wormhole-foundation/sdk-connect": "0.9.0", + "@wormhole-foundation/sdk-cosmwasm": "0.9.0", + "@wormhole-foundation/sdk-cosmwasm-core": "0.9.0", + "@wormhole-foundation/sdk-cosmwasm-ibc": "0.9.0", + "@wormhole-foundation/sdk-cosmwasm-tokenbridge": "0.9.0", + "@wormhole-foundation/sdk-definitions": "0.9.0", + "@wormhole-foundation/sdk-evm": "0.9.0", + "@wormhole-foundation/sdk-evm-cctp": "0.9.0", + "@wormhole-foundation/sdk-evm-core": "0.9.0", + "@wormhole-foundation/sdk-evm-portico": "0.9.0", + "@wormhole-foundation/sdk-evm-tokenbridge": "0.9.0", + "@wormhole-foundation/sdk-solana": "0.9.0", + "@wormhole-foundation/sdk-solana-cctp": "0.9.0", + "@wormhole-foundation/sdk-solana-core": "0.9.0", + "@wormhole-foundation/sdk-solana-tokenbridge": "0.9.0", + "@wormhole-foundation/sdk-sui": "0.9.0", + "@wormhole-foundation/sdk-sui-core": "0.9.0", + "@wormhole-foundation/sdk-sui-tokenbridge": "0.9.0" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/@wormhole-foundation/sdk-algorand": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/@wormhole-foundation/sdk-algorand/-/sdk-algorand-0.9.0.tgz", + "integrity": "sha512-Eb+2t+vmsbxDtlg/X+kBaEyESOkPBnRbx2+FU0C8oPkGUlqY7pmtLxWa6Hqsfc/uf6JJSxpp9J6xI3cQaSb6QQ==", "dependencies": { - "tslib": "^2.3.0" + "@wormhole-foundation/sdk-connect": "0.9.0", + "algosdk": "2.7.0" }, "engines": { - "node": ">=8" + "node": ">=16" } }, - "node_modules/@wry/equality": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/@wry/equality/-/equality-0.5.3.tgz", - "integrity": "sha512-avR+UXdSrsF2v8vIqIgmeTY0UR91UT+IyablCyKe/uk22uOJ8fusKZnH9JH9e1/EtLeNJBtagNmL3eJdnOV53g==", + "node_modules/@wormhole-foundation/sdk-algorand-core": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/@wormhole-foundation/sdk-algorand-core/-/sdk-algorand-core-0.9.0.tgz", + "integrity": "sha512-N8JN/optC07spfq0TP4Zocb80rZ/C4cMrBlS1oz1gZQGjVmuKPig5zGkri/vGMaHppHY/brlmAjUzNxJ2RKqlA==", "dependencies": { - "tslib": "^2.3.0" + "@wormhole-foundation/sdk-algorand": "0.9.0", + "@wormhole-foundation/sdk-connect": "0.9.0" }, "engines": { - "node": ">=8" + "node": ">=16" } }, - "node_modules/@wry/trie": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@wry/trie/-/trie-0.3.2.tgz", - "integrity": "sha512-yRTyhWSls2OY/pYLfwff867r8ekooZ4UI+/gxot5Wj8EFwSf2rG+n+Mo/6LoLQm1TKA4GRj2+LCpbfS937dClQ==", + "node_modules/@wormhole-foundation/sdk-algorand-tokenbridge": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/@wormhole-foundation/sdk-algorand-tokenbridge/-/sdk-algorand-tokenbridge-0.9.0.tgz", + "integrity": "sha512-7c9oEqh8zLrTHQeLfpH6KOINyjIG7pzF2vl9JQh/ghjmhRYl8l/OxgPBJN9u4Iz7GXjjZC+RKi/3WhUHjLyGbA==", "dependencies": { - "tslib": "^2.3.0" + "@wormhole-foundation/sdk-algorand": "0.9.0", + "@wormhole-foundation/sdk-algorand-core": "0.9.0", + "@wormhole-foundation/sdk-connect": "0.9.0" }, "engines": { - "node": ">=8" + "node": ">=16" } }, - "node_modules/@xpla/xpla.js": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/@xpla/xpla.js/-/xpla.js-0.2.1.tgz", - "integrity": "sha512-+2v9/rxnRaaZBShT232bB3sow0JMe5ghIzLUPy7XJQasf6fu3mmVgMUIl9QCrILkuTZwh3yNsFOvkZTPH28Fmw==", + "node_modules/@wormhole-foundation/sdk-aptos": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/@wormhole-foundation/sdk-aptos/-/sdk-aptos-0.9.0.tgz", + "integrity": "sha512-eTL87zCvsZXCpzwEkpKgEYcAw2qEKstDd+ZyLlHtUnXfpPcbNtBcZG7kT7XMLaJMI2b+IH+M8OmOWja6T9bPEA==", "dependencies": { - "@ethersproject/bytes": "^5.6.1", - "@ethersproject/keccak256": "^5.6.1", - "@ethersproject/signing-key": "^5.6.2", - "@terra-money/legacy.proto": "npm:@terra-money/terra.proto@^0.1.7", - "@terra-money/terra.proto": "^2.1.0", - "axios": "^0.26.1", - "bech32": "^2.0.0", - "bip32": "^2.0.6", - "bip39": "^3.0.3", - "bufferutil": "^4.0.3", - "crypto-addr-codec": "^0.1.7", - "decimal.js": "^10.2.1", - "elliptic": "^6.5.4", - "ethereumjs-util": "^7.1.5", - "jscrypto": "^1.0.1", - "readable-stream": "^3.6.0", - "secp256k1": "^4.0.2", - "tmp": "^0.2.1", - "utf-8-validate": "^5.0.5", - "ws": "^7.5.8" + "@wormhole-foundation/sdk-connect": "0.9.0", + "aptos": "1.21.0" }, "engines": { - "node": ">=14" - } - }, - "node_modules/@xpla/xpla.js/node_modules/axios": { - "version": "0.26.1", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.26.1.tgz", - "integrity": "sha512-fPwcX4EvnSHuInCMItEhAGnaSEXRBjtzh9fOtsE6E1G6p7vl7edEeZe11QHf18+6+9gR5PbKV/sGKNaD8YaMeA==", - "dependencies": { - "follow-redirects": "^1.14.8" - } - }, - "node_modules/@xpla/xpla.js/node_modules/bech32": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/bech32/-/bech32-2.0.0.tgz", - "integrity": "sha512-LcknSilhIGatDAsY1ak2I8VtGaHNhgMSYVxFrGLXv+xLHytaKZKcaUJJUE7qmBr7h33o5YQwP55pMI0xmkpJwg==" - }, - "node_modules/abstract-leveldown": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-2.6.3.tgz", - "integrity": "sha512-2++wDf/DYqkPR3o5tbfdhF96EfMApo1GpPfzOsR/ZYXdkSmELlvOOEAl9iKkRsktMPHdGjO4rtkBpf2I7TiTeA==", - "dev": true, - "dependencies": { - "xtend": "~4.0.0" + "node": ">=16" } }, - "node_modules/aes-js": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/aes-js/-/aes-js-3.0.0.tgz", - "integrity": "sha512-H7wUZRn8WpTq9jocdxQ2c8x2sKo9ZVmzfRE13GiNJXfp7NcKYEdvl3vspKjXox6RIG2VtaRe4JFvxG4rqp2Zuw==" - }, - "node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, + "node_modules/@wormhole-foundation/sdk-aptos-core": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/@wormhole-foundation/sdk-aptos-core/-/sdk-aptos-core-0.9.0.tgz", + "integrity": "sha512-G3Fw7FD7y+3y5eZo+mNVHGZ8Wg1LEos6l68QE3XxSC4JK5pzjLMhd64tUU7tXvTzH7PHz+CKnayeLpojkcpyyQ==", "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" + "@wormhole-foundation/sdk-aptos": "0.9.0", + "@wormhole-foundation/sdk-connect": "0.9.0" }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/algo-msgpack-with-bigint": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/algo-msgpack-with-bigint/-/algo-msgpack-with-bigint-2.1.1.tgz", - "integrity": "sha512-F1tGh056XczEaEAqu7s+hlZUDWwOBT70Eq0lfMpBP2YguSQVyxRbprLq5rELXKQOyOaixTWYhMeMQMzP0U5FoQ==", "engines": { - "node": ">= 10" + "node": ">=16" } }, - "node_modules/algosdk": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/algosdk/-/algosdk-2.4.0.tgz", - "integrity": "sha512-sENe6IyUqvhQprfS/7gJAkPC5sX2LI5uc+gXaKNgzKp72UEyXYSoN3h4MZkOlCrOcTSWTJW7605tYgg8nFkflw==", + "node_modules/@wormhole-foundation/sdk-aptos-tokenbridge": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/@wormhole-foundation/sdk-aptos-tokenbridge/-/sdk-aptos-tokenbridge-0.9.0.tgz", + "integrity": "sha512-QDZEcwIJt2z11KPPZjo1juAtAlq5HT1Yfavnu8RGxbCtiPJiZPB2wmzYrNFRV/EQMX21MF3+oXt+RFU8nFMWjw==", "dependencies": { - "algo-msgpack-with-bigint": "^2.1.1", - "buffer": "^6.0.3", - "cross-fetch": "^3.1.5", - "hi-base32": "^0.5.1", - "js-sha256": "^0.9.0", - "js-sha3": "^0.8.0", - "js-sha512": "^0.8.0", - "json-bigint": "^1.0.0", - "tweetnacl": "^1.0.3", - "vlq": "^2.0.4" + "@wormhole-foundation/sdk-aptos": "0.9.0", + "@wormhole-foundation/sdk-connect": "0.9.0" }, "engines": { - "node": ">=16.0.0" - } - }, - "node_modules/algosdk/node_modules/buffer": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", - "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" - } - }, - "node_modules/algosdk/node_modules/cross-fetch": { - "version": "3.1.8", - "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.8.tgz", - "integrity": "sha512-cvA+JwZoU0Xq+h6WkMvAUqPEYy92Obet6UdKLfW60qn99ftItKjB5T+BkyWOFWe2pUyfQ+IJHmpOTznqk1M6Kg==", - "dependencies": { - "node-fetch": "^2.6.12" + "node": ">=16" } }, - "node_modules/ansi-escapes": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", - "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", - "dev": true, - "dependencies": { - "type-fest": "^0.21.3" - }, + "node_modules/@wormhole-foundation/sdk-aptos/node_modules/@noble/hashes": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.3.3.tgz", + "integrity": "sha512-V7/fPHgl+jsVPXqqeOzT8egNj2iBIVt+ECeMMG8TdcnTikP3oaBtUVqpT/gYCR68aEBJSF+XbYUxStjbFMqIIA==", "engines": { - "node": ">=8" + "node": ">= 16" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://paulmillr.com/funding/" } }, - "node_modules/ansi-escapes/node_modules/type-fest": { - "version": "0.21.3", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", - "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", - "dev": true, - "engines": { - "node": ">=10" + "node_modules/@wormhole-foundation/sdk-aptos/node_modules/@scure/bip39": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.2.1.tgz", + "integrity": "sha512-Z3/Fsz1yr904dduJD0NpiyRHhRYHdcnyh73FZWiV+/qhWi83wNJ3NWolYqCEN+ZWsUz2TWwajJggcRE9r1zUYg==", + "dependencies": { + "@noble/hashes": "~1.3.0", + "@scure/base": "~1.1.0" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://paulmillr.com/funding/" } }, - "node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "node_modules/@wormhole-foundation/sdk-aptos/node_modules/aptos": { + "version": "1.21.0", + "resolved": "https://registry.npmjs.org/aptos/-/aptos-1.21.0.tgz", + "integrity": "sha512-PRKjoFgL8tVEc9+oS7eJUv8GNxx8n3+0byH2+m7CP3raYOD6yFKOecuwjVMIJmgfpjp6xH0P0HDMGZAXmSyU0Q==", + "dependencies": { + "@aptos-labs/aptos-client": "^0.1.0", + "@noble/hashes": "1.3.3", + "@scure/bip39": "1.2.1", + "eventemitter3": "^5.0.1", + "form-data": "4.0.0", + "tweetnacl": "1.0.3" + }, "engines": { - "node": ">=8" + "node": ">=11.0.0" } }, - "node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "node_modules/@wormhole-foundation/sdk-aptos/node_modules/eventemitter3": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.1.tgz", + "integrity": "sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==" + }, + "node_modules/@wormhole-foundation/sdk-aptos/node_modules/form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", "dependencies": { - "color-convert": "^2.0.1" + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" }, "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "node": ">= 6" } }, - "node_modules/anymatch": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", - "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", - "dev": true, + "node_modules/@wormhole-foundation/sdk-base": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/@wormhole-foundation/sdk-base/-/sdk-base-0.9.0.tgz", + "integrity": "sha512-FnwFTPVBbH5uWEsw62hujwf7bI7gML9EcpVZIAoTiVYGKe7/FovSZI9ucymsnHJECmPOkqEQ3koQuRLRZALmig==", "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - }, - "engines": { - "node": ">= 8" + "@scure/base": "^1.1.3" } }, - "node_modules/aptos": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/aptos/-/aptos-1.5.0.tgz", - "integrity": "sha512-N7OuRtU7IYHkDkNx+4QS3g/QQGCp+36KzYn3oXPmT7Kttfuv+UKliQVdjy3cLmwd/DCQSh9ObTovwdxnHjUn0g==", + "node_modules/@wormhole-foundation/sdk-connect": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/@wormhole-foundation/sdk-connect/-/sdk-connect-0.9.0.tgz", + "integrity": "sha512-5w5q3URNF1iInpwcP8kN6MZD29gjWVwlieHP25ijmhdd/BPqMu0dOOyljs2tGQM4GbjwtTCwsXg13JRq2TN5dQ==", "dependencies": { - "@noble/hashes": "1.1.3", - "@scure/bip39": "1.1.0", - "axios": "0.27.2", - "form-data": "4.0.0", - "tweetnacl": "1.0.3" + "@wormhole-foundation/sdk-base": "0.9.0", + "@wormhole-foundation/sdk-definitions": "0.9.0", + "axios": "^1.4.0" }, "engines": { - "node": ">=11.0.0" + "node": ">=16" } }, - "node_modules/aptos/node_modules/axios": { - "version": "0.27.2", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.27.2.tgz", - "integrity": "sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==", + "node_modules/@wormhole-foundation/sdk-connect/node_modules/axios": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.3.tgz", + "integrity": "sha512-Ar7ND9pU99eJ9GpoGQKhKf58GpUOgnzuaB7ueNQ5BMi0p+LZ5oaEnfF999fAArcTIBwXTCHAmGcHOZJaWPq9Nw==", "dependencies": { - "follow-redirects": "^1.14.9", - "form-data": "^4.0.0" + "follow-redirects": "^1.15.6", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" } }, - "node_modules/aptos/node_modules/form-data": { + "node_modules/@wormhole-foundation/sdk-connect/node_modules/form-data": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", @@ -4595,2334 +4784,2644 @@ "node": ">= 6" } }, - "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, + "node_modules/@wormhole-foundation/sdk-cosmwasm": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/@wormhole-foundation/sdk-cosmwasm/-/sdk-cosmwasm-0.9.0.tgz", + "integrity": "sha512-wcSykJgULcEsvFsyLlT3jybVwts6xamsSFeZ+ZH37FGzdK1wNzEHK+gOTdsYCdiSgGwfrWD62h3Z+VkpYFMovw==", "dependencies": { - "sprintf-js": "~1.0.2" + "@cosmjs/cosmwasm-stargate": "^0.32.0", + "@cosmjs/proto-signing": "^0.32.0", + "@cosmjs/stargate": "^0.32.0", + "@injectivelabs/sdk-ts": "^1.14.13-beta.2", + "@wormhole-foundation/sdk-connect": "0.9.0", + "cosmjs-types": "^0.9.0" + }, + "engines": { + "node": ">=16" } }, - "node_modules/asn1": { - "version": "0.2.6", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz", - "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==", - "dev": true, + "node_modules/@wormhole-foundation/sdk-cosmwasm-core": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/@wormhole-foundation/sdk-cosmwasm-core/-/sdk-cosmwasm-core-0.9.0.tgz", + "integrity": "sha512-3Yie5Z1r+R+mhWvPmbj8MFK/44oufJjolE4S8axRC/uPzoiJBm2KMUYTz0305FZ6LRtujyqSukW4HqR1n3wGXA==", "dependencies": { - "safer-buffer": "~2.1.0" - } - }, - "node_modules/assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==", - "dev": true, + "@cosmjs/cosmwasm-stargate": "^0.32.0", + "@cosmjs/stargate": "^0.32.0", + "@injectivelabs/sdk-ts": "^1.14.13-beta.2", + "@wormhole-foundation/sdk-connect": "0.9.0", + "@wormhole-foundation/sdk-cosmwasm": "0.9.0" + }, "engines": { - "node": ">=0.8" + "node": ">=16" } }, - "node_modules/async": { - "version": "2.6.4", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.4.tgz", - "integrity": "sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==", - "dev": true, + "node_modules/@wormhole-foundation/sdk-cosmwasm-core/node_modules/@cosmjs/amino": { + "version": "0.32.4", + "resolved": "https://registry.npmjs.org/@cosmjs/amino/-/amino-0.32.4.tgz", + "integrity": "sha512-zKYOt6hPy8obIFtLie/xtygCkH9ZROiQ12UHfKsOkWaZfPQUvVbtgmu6R4Kn1tFLI/SRkw7eqhaogmW/3NYu/Q==", "dependencies": { - "lodash": "^4.17.14" + "@cosmjs/crypto": "^0.32.4", + "@cosmjs/encoding": "^0.32.4", + "@cosmjs/math": "^0.32.4", + "@cosmjs/utils": "^0.32.4" } }, - "node_modules/async-eventemitter": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/async-eventemitter/-/async-eventemitter-0.2.4.tgz", - "integrity": "sha512-pd20BwL7Yt1zwDFy+8MX8F1+WCT8aQeKj0kQnTrH9WaeRETlRamVhD0JtRPmrV4GfOJ2F9CvdQkZeZhnh2TuHw==", - "dev": true, + "node_modules/@wormhole-foundation/sdk-cosmwasm-core/node_modules/@cosmjs/cosmwasm-stargate": { + "version": "0.32.4", + "resolved": "https://registry.npmjs.org/@cosmjs/cosmwasm-stargate/-/cosmwasm-stargate-0.32.4.tgz", + "integrity": "sha512-Fuo9BGEiB+POJ5WeRyBGuhyKR1ordvxZGLPuPosFJOH9U0gKMgcjwKMCgAlWFkMlHaTB+tNdA8AifWiHrI7VgA==", "dependencies": { - "async": "^2.4.0" + "@cosmjs/amino": "^0.32.4", + "@cosmjs/crypto": "^0.32.4", + "@cosmjs/encoding": "^0.32.4", + "@cosmjs/math": "^0.32.4", + "@cosmjs/proto-signing": "^0.32.4", + "@cosmjs/stargate": "^0.32.4", + "@cosmjs/tendermint-rpc": "^0.32.4", + "@cosmjs/utils": "^0.32.4", + "cosmjs-types": "^0.9.0", + "pako": "^2.0.2" } }, - "node_modules/async-limiter": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz", - "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==", - "dev": true + "node_modules/@wormhole-foundation/sdk-cosmwasm-core/node_modules/@cosmjs/crypto": { + "version": "0.32.4", + "resolved": "https://registry.npmjs.org/@cosmjs/crypto/-/crypto-0.32.4.tgz", + "integrity": "sha512-zicjGU051LF1V9v7bp8p7ovq+VyC91xlaHdsFOTo2oVry3KQikp8L/81RkXmUIT8FxMwdx1T7DmFwVQikcSDIw==", + "dependencies": { + "@cosmjs/encoding": "^0.32.4", + "@cosmjs/math": "^0.32.4", + "@cosmjs/utils": "^0.32.4", + "@noble/hashes": "^1", + "bn.js": "^5.2.0", + "elliptic": "^6.5.4", + "libsodium-wrappers-sumo": "^0.7.11" + } }, - "node_modules/async-mutex": { - "version": "0.2.6", - "resolved": "https://registry.npmjs.org/async-mutex/-/async-mutex-0.2.6.tgz", - "integrity": "sha512-Hs4R+4SPgamu6rSGW8C7cV9gaWUKEHykfzCCvIRuaVv636Ju10ZdeUbvb4TBEW0INuq2DHZqXbK4Nd3yG4RaRw==", - "dev": true, + "node_modules/@wormhole-foundation/sdk-cosmwasm-core/node_modules/@cosmjs/encoding": { + "version": "0.32.4", + "resolved": "https://registry.npmjs.org/@cosmjs/encoding/-/encoding-0.32.4.tgz", + "integrity": "sha512-tjvaEy6ZGxJchiizzTn7HVRiyTg1i4CObRRaTRPknm5EalE13SV+TCHq38gIDfyUeden4fCuaBVEdBR5+ti7Hw==", "dependencies": { - "tslib": "^2.0.0" + "base64-js": "^1.3.0", + "bech32": "^1.1.4", + "readonly-date": "^1.0.0" } }, - "node_modules/asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" + "node_modules/@wormhole-foundation/sdk-cosmwasm-core/node_modules/@cosmjs/encoding/node_modules/bech32": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/bech32/-/bech32-1.1.4.tgz", + "integrity": "sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ==" }, - "node_modules/aws-sign2": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", - "integrity": "sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==", - "dev": true, - "engines": { - "node": "*" + "node_modules/@wormhole-foundation/sdk-cosmwasm-core/node_modules/@cosmjs/json-rpc": { + "version": "0.32.4", + "resolved": "https://registry.npmjs.org/@cosmjs/json-rpc/-/json-rpc-0.32.4.tgz", + "integrity": "sha512-/jt4mBl7nYzfJ2J/VJ+r19c92mUKF0Lt0JxM3MXEJl7wlwW5haHAWtzRujHkyYMXOwIR+gBqT2S0vntXVBRyhQ==", + "dependencies": { + "@cosmjs/stream": "^0.32.4", + "xstream": "^11.14.0" } }, - "node_modules/aws4": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz", - "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==", - "dev": true - }, - "node_modules/axios": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.24.0.tgz", - "integrity": "sha512-Q6cWsys88HoPgAaFAVUb0WpPk0O8iTeisR9IMqy9G8AbO4NlpVknrnQS03zzF9PGAWgO3cgletO3VjV/P7VztA==", + "node_modules/@wormhole-foundation/sdk-cosmwasm-core/node_modules/@cosmjs/math": { + "version": "0.32.4", + "resolved": "https://registry.npmjs.org/@cosmjs/math/-/math-0.32.4.tgz", + "integrity": "sha512-++dqq2TJkoB8zsPVYCvrt88oJWsy1vMOuSOKcdlnXuOA/ASheTJuYy4+oZlTQ3Fr8eALDLGGPhJI02W2HyAQaw==", "dependencies": { - "follow-redirects": "^1.14.4" + "bn.js": "^5.2.0" } }, - "node_modules/babel-jest": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.7.0.tgz", - "integrity": "sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==", - "dev": true, + "node_modules/@wormhole-foundation/sdk-cosmwasm-core/node_modules/@cosmjs/proto-signing": { + "version": "0.32.4", + "resolved": "https://registry.npmjs.org/@cosmjs/proto-signing/-/proto-signing-0.32.4.tgz", + "integrity": "sha512-QdyQDbezvdRI4xxSlyM1rSVBO2st5sqtbEIl3IX03uJ7YiZIQHyv6vaHVf1V4mapusCqguiHJzm4N4gsFdLBbQ==", "dependencies": { - "@jest/transform": "^29.7.0", - "@types/babel__core": "^7.1.14", - "babel-plugin-istanbul": "^6.1.1", - "babel-preset-jest": "^29.6.3", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "slash": "^3.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "peerDependencies": { - "@babel/core": "^7.8.0" + "@cosmjs/amino": "^0.32.4", + "@cosmjs/crypto": "^0.32.4", + "@cosmjs/encoding": "^0.32.4", + "@cosmjs/math": "^0.32.4", + "@cosmjs/utils": "^0.32.4", + "cosmjs-types": "^0.9.0" } }, - "node_modules/babel-jest/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, + "node_modules/@wormhole-foundation/sdk-cosmwasm-core/node_modules/@cosmjs/socket": { + "version": "0.32.4", + "resolved": "https://registry.npmjs.org/@cosmjs/socket/-/socket-0.32.4.tgz", + "integrity": "sha512-davcyYziBhkzfXQTu1l5NrpDYv0K9GekZCC9apBRvL1dvMc9F/ygM7iemHjUA+z8tJkxKxrt/YPjJ6XNHzLrkw==", "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/babel-jest/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" + "@cosmjs/stream": "^0.32.4", + "isomorphic-ws": "^4.0.1", + "ws": "^7", + "xstream": "^11.14.0" } }, - "node_modules/babel-jest/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, + "node_modules/@wormhole-foundation/sdk-cosmwasm-core/node_modules/@cosmjs/stargate": { + "version": "0.32.4", + "resolved": "https://registry.npmjs.org/@cosmjs/stargate/-/stargate-0.32.4.tgz", + "integrity": "sha512-usj08LxBSsPRq9sbpCeVdyLx2guEcOHfJS9mHGCLCXpdAPEIEQEtWLDpEUc0LEhWOx6+k/ChXTc5NpFkdrtGUQ==", "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" + "@confio/ics23": "^0.6.8", + "@cosmjs/amino": "^0.32.4", + "@cosmjs/encoding": "^0.32.4", + "@cosmjs/math": "^0.32.4", + "@cosmjs/proto-signing": "^0.32.4", + "@cosmjs/stream": "^0.32.4", + "@cosmjs/tendermint-rpc": "^0.32.4", + "@cosmjs/utils": "^0.32.4", + "cosmjs-types": "^0.9.0", + "xstream": "^11.14.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, + "node_modules/@wormhole-foundation/sdk-cosmwasm-core/node_modules/@cosmjs/stream": { + "version": "0.32.4", + "resolved": "https://registry.npmjs.org/@cosmjs/stream/-/stream-0.32.4.tgz", + "integrity": "sha512-Gih++NYHEiP+oyD4jNEUxU9antoC0pFSg+33Hpp0JlHwH0wXhtD3OOKnzSfDB7OIoEbrzLJUpEjOgpCp5Z+W3A==", "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" + "xstream": "^11.14.0" } }, - "node_modules/babel-plugin-istanbul/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, + "node_modules/@wormhole-foundation/sdk-cosmwasm-core/node_modules/@cosmjs/tendermint-rpc": { + "version": "0.32.4", + "resolved": "https://registry.npmjs.org/@cosmjs/tendermint-rpc/-/tendermint-rpc-0.32.4.tgz", + "integrity": "sha512-MWvUUno+4bCb/LmlMIErLypXxy7ckUuzEmpufYYYd9wgbdCXaTaO08SZzyFM5PI8UJ/0S2AmUrgWhldlbxO8mw==", "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" + "@cosmjs/crypto": "^0.32.4", + "@cosmjs/encoding": "^0.32.4", + "@cosmjs/json-rpc": "^0.32.4", + "@cosmjs/math": "^0.32.4", + "@cosmjs/socket": "^0.32.4", + "@cosmjs/stream": "^0.32.4", + "@cosmjs/utils": "^0.32.4", + "axios": "^1.6.0", + "readonly-date": "^1.0.0", + "xstream": "^11.14.0" } }, - "node_modules/babel-plugin-jest-hoist": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.6.3.tgz", - "integrity": "sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==", - "dev": true, + "node_modules/@wormhole-foundation/sdk-cosmwasm-core/node_modules/@cosmjs/utils": { + "version": "0.32.4", + "resolved": "https://registry.npmjs.org/@cosmjs/utils/-/utils-0.32.4.tgz", + "integrity": "sha512-D1Yc+Zy8oL/hkUkFUL/bwxvuDBzRGpc4cF7/SkdhxX4iHpSLgdOuTt1mhCh9+kl6NQREy9t7SYZ6xeW5gFe60w==" + }, + "node_modules/@wormhole-foundation/sdk-cosmwasm-core/node_modules/@injectivelabs/core-proto-ts": { + "version": "0.0.21", + "resolved": "https://registry.npmjs.org/@injectivelabs/core-proto-ts/-/core-proto-ts-0.0.21.tgz", + "integrity": "sha512-RBxSkRBCty60R/l55/D1jsSW0Aof5dyGFhCFdN3A010KjMv/SzZGGr+6DZPY/hflyFeaJzDv/VTopCymKNRBvQ==", "dependencies": { - "@babel/template": "^7.3.3", - "@babel/types": "^7.3.3", - "@types/babel__core": "^7.1.14", - "@types/babel__traverse": "^7.0.6" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "@injectivelabs/grpc-web": "^0.0.1", + "google-protobuf": "^3.14.0", + "protobufjs": "^7.0.0", + "rxjs": "^7.4.0" } }, - "node_modules/babel-plugin-polyfill-corejs2": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.3.tgz", - "integrity": "sha512-8hOdmFYFSZhqg2C/JgLUQ+t52o5nirNwaWM2B9LWteozwIvM14VSwdsCAUET10qT+kmySAlseadmfeeSWFCy+Q==", - "dev": true, + "node_modules/@wormhole-foundation/sdk-cosmwasm-core/node_modules/@injectivelabs/indexer-proto-ts": { + "version": "1.11.42", + "resolved": "https://registry.npmjs.org/@injectivelabs/indexer-proto-ts/-/indexer-proto-ts-1.11.42.tgz", + "integrity": "sha512-6ejCpcWZWOSsELFIfUf2+xuJPOH+YdiJtwtB3d9x2H7dnrCBjXMxlPCSxoKEUbDH6w/lY2mO6TJm65rNy9piew==", "dependencies": { - "@babel/compat-data": "^7.17.7", - "@babel/helper-define-polyfill-provider": "^0.3.3", - "semver": "^6.1.1" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@injectivelabs/grpc-web": "^0.0.1", + "google-protobuf": "^3.14.0", + "protobufjs": "^7.0.0", + "rxjs": "^7.4.0" } }, - "node_modules/babel-plugin-polyfill-corejs3": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.6.0.tgz", - "integrity": "sha512-+eHqR6OPcBhJOGgsIar7xoAB1GcSwVUA3XjAd7HJNzOXT4wv6/H7KIdA/Nc60cvUlDbKApmqNvD1B1bzOt4nyA==", - "dev": true, + "node_modules/@wormhole-foundation/sdk-cosmwasm-core/node_modules/@injectivelabs/mito-proto-ts": { + "version": "1.0.65", + "resolved": "https://registry.npmjs.org/@injectivelabs/mito-proto-ts/-/mito-proto-ts-1.0.65.tgz", + "integrity": "sha512-kceZP68QrgFop387RYyO7tkfJCYxoktuceHTs9DQP3dJceLqj/V2mz0NlpkkacjgE5NhYkQ/zc0Z40hr8tnYqQ==", "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.3.3", - "core-js-compat": "^3.25.1" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@injectivelabs/grpc-web": "^0.0.1", + "google-protobuf": "^3.14.0", + "protobufjs": "^7.0.0", + "rxjs": "^7.4.0" } }, - "node_modules/babel-plugin-polyfill-regenerator": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.4.1.tgz", - "integrity": "sha512-NtQGmyQDXjQqQ+IzRkBVwEOz9lQ4zxAQZgoAYEtU9dJjnl1Oc98qnN7jcp+bE7O7aYzVpavXE3/VKXNzUbh7aw==", - "dev": true, + "node_modules/@wormhole-foundation/sdk-cosmwasm-core/node_modules/@injectivelabs/networks": { + "version": "1.14.13", + "resolved": "https://registry.npmjs.org/@injectivelabs/networks/-/networks-1.14.13.tgz", + "integrity": "sha512-P+eCQXWpbk4LbPxgTmi2gY7OzdZTNsIEUvDoh59Ma0CkqSFaYMtgB8fZVxpkKM0UPla587EDlEEIVxprDBcnZg==", + "hasInstallScript": true, "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.3.3" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@injectivelabs/exceptions": "^1.14.13", + "@injectivelabs/ts-types": "^1.14.13", + "@injectivelabs/utils": "^1.14.13", + "link-module-alias": "^1.2.0", + "shx": "^0.3.2" } }, - "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, + "node_modules/@wormhole-foundation/sdk-cosmwasm-core/node_modules/@injectivelabs/sdk-ts": { + "version": "1.14.13", + "resolved": "https://registry.npmjs.org/@injectivelabs/sdk-ts/-/sdk-ts-1.14.13.tgz", + "integrity": "sha512-qcLoIu+hEMpuvdG0iXGNJvWQD05NkcO59tL3ijEhYmshlJWBMWJtpJJGt/E/hV9YxJfNTl20Rhi/5i7l0y8Hfg==", + "hasInstallScript": 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" + "@apollo/client": "^3.5.8", + "@cosmjs/amino": "^0.32.3", + "@cosmjs/proto-signing": "^0.32.3", + "@cosmjs/stargate": "^0.32.3", + "@ethersproject/bytes": "^5.7.0", + "@injectivelabs/core-proto-ts": "^0.0.21", + "@injectivelabs/dmm-proto-ts": "1.0.20", + "@injectivelabs/exceptions": "^1.14.13", + "@injectivelabs/grpc-web": "^0.0.1", + "@injectivelabs/grpc-web-node-http-transport": "^0.0.2", + "@injectivelabs/grpc-web-react-native-transport": "^0.0.2", + "@injectivelabs/indexer-proto-ts": "1.11.42", + "@injectivelabs/mito-proto-ts": "1.0.65", + "@injectivelabs/networks": "^1.14.13", + "@injectivelabs/test-utils": "^1.14.13", + "@injectivelabs/ts-types": "^1.14.13", + "@injectivelabs/utils": "^1.14.13", + "@metamask/eth-sig-util": "^4.0.0", + "@noble/curves": "^1.4.0", + "axios": "^1.6.4", + "bech32": "^2.0.0", + "bip39": "^3.0.4", + "cosmjs-types": "^0.9.0", + "ethereumjs-util": "^7.1.4", + "ethers": "^6.5.1", + "google-protobuf": "^3.21.0", + "graphql": "^16.3.0", + "http-status-codes": "^2.2.0", + "js-sha3": "^0.8.0", + "jscrypto": "^1.0.3", + "keccak256": "^1.0.6", + "link-module-alias": "^1.2.0", + "secp256k1": "^4.0.3", + "shx": "^0.3.2", + "snakecase-keys": "^5.4.1" } }, - "node_modules/babel-preset-jest": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-29.6.3.tgz", - "integrity": "sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==", - "dev": true, + "node_modules/@wormhole-foundation/sdk-cosmwasm-core/node_modules/@injectivelabs/utils": { + "version": "1.14.13", + "resolved": "https://registry.npmjs.org/@injectivelabs/utils/-/utils-1.14.13.tgz", + "integrity": "sha512-djmSq28R7HDSb2Mezan+EFjqQgmDRydY+fLOmkODwOCYA04xOGQo7yna+WVovV85aKpwPjn864AWPy65xiHUZg==", + "hasInstallScript": true, "dependencies": { - "babel-plugin-jest-hoist": "^29.6.3", - "babel-preset-current-node-syntax": "^1.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" + "@injectivelabs/exceptions": "^1.14.13", + "@injectivelabs/ts-types": "^1.14.13", + "axios": "^1.6.4", + "bignumber.js": "^9.0.1", + "http-status-codes": "^2.2.0", + "link-module-alias": "^1.2.0", + "shx": "^0.3.2", + "snakecase-keys": "^5.1.2", + "store2": "^2.12.0" } }, - "node_modules/backoff": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/backoff/-/backoff-2.5.0.tgz", - "integrity": "sha512-wC5ihrnUXmR2douXmXLCe5O3zg3GKIyvRi/hi58a/XyRxVI+3/yM0PYueQOZXPXQ9pxBislYkw+sF9b7C/RuMA==", - "dev": true, - "dependencies": { - "precond": "0.2" - }, + "node_modules/@wormhole-foundation/sdk-cosmwasm-core/node_modules/@noble/hashes": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.3.2.tgz", + "integrity": "sha512-MVC8EAQp7MvEcm30KWENFjgR+Mkmf+D189XJTkFIlwohU5hcBbn1ZkKq7KVTi2Hme3PMGF390DaL52beVrIihQ==", "engines": { - "node": ">= 0.6" + "node": ">= 16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" } }, - "node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + "node_modules/@wormhole-foundation/sdk-cosmwasm-core/node_modules/@types/node": { + "version": "18.15.13", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.15.13.tgz", + "integrity": "sha512-N+0kuo9KgrUQ1Sn/ifDXsvg0TTleP7rIy4zOBGECxAljqvqfqpTfzx0Q1NUedOixRMBfe2Whhb056a42cWs26Q==" }, - "node_modules/base-64": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/base-64/-/base-64-1.0.0.tgz", - "integrity": "sha512-kwDPIFCGx0NZHog36dj+tHiwP4QMzsZ3AgMViUBKI0+V5n4U0ufTCUMhnQ04diaRI8EX/QcPfql7zlhZ7j4zgg==" + "node_modules/@wormhole-foundation/sdk-cosmwasm-core/node_modules/aes-js": { + "version": "4.0.0-beta.5", + "resolved": "https://registry.npmjs.org/aes-js/-/aes-js-4.0.0-beta.5.tgz", + "integrity": "sha512-G965FqalsNyrPqgEGON7nIx1e/OVENSgiEIzyC63haUMuvNnwIgIjMs52hlTCKhkBny7A2ORNlfY9Zu+jmGk1Q==" }, - "node_modules/base-x": { - "version": "3.0.8", - "license": "MIT", + "node_modules/@wormhole-foundation/sdk-cosmwasm-core/node_modules/axios": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.3.tgz", + "integrity": "sha512-Ar7ND9pU99eJ9GpoGQKhKf58GpUOgnzuaB7ueNQ5BMi0p+LZ5oaEnfF999fAArcTIBwXTCHAmGcHOZJaWPq9Nw==", "dependencies": { - "safe-buffer": "^5.0.1" + "follow-redirects": "^1.15.6", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" } }, - "node_modules/base64-js": { - "version": "1.5.1", + "node_modules/@wormhole-foundation/sdk-cosmwasm-core/node_modules/cosmjs-types": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/cosmjs-types/-/cosmjs-types-0.9.0.tgz", + "integrity": "sha512-MN/yUe6mkJwHnCFfsNPeCfXVhyxHYW6c/xDUzrSbBycYzw++XvWDMJArXp2pLdgD6FQ8DW79vkPjeNKVrXaHeQ==" + }, + "node_modules/@wormhole-foundation/sdk-cosmwasm-core/node_modules/ethers": { + "version": "6.13.2", + "resolved": "https://registry.npmjs.org/ethers/-/ethers-6.13.2.tgz", + "integrity": "sha512-9VkriTTed+/27BGuY1s0hf441kqwHJ1wtN2edksEtiRvXx+soxRX3iSXTfFqq2+YwrOqbDoTHjIhQnjJRlzKmg==", "funding": [ { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" + "type": "individual", + "url": "https://github.com/sponsors/ethers-io/" }, { - "type": "consulting", - "url": "https://feross.org/support" + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" } ], - "license": "MIT" - }, - "node_modules/bcrypt-pbkdf": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", - "integrity": "sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==", - "dev": true, "dependencies": { - "tweetnacl": "^0.14.3" - } - }, - "node_modules/bcrypt-pbkdf/node_modules/tweetnacl": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==", - "dev": true - }, - "node_modules/bech32": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/bech32/-/bech32-1.1.4.tgz", - "integrity": "sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ==" - }, - "node_modules/big-integer": { - "version": "1.6.36", - "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.36.tgz", - "integrity": "sha512-t70bfa7HYEA1D9idDbmuv7YbsbVkQ+Hp+8KFSul4aE5e/i1bjCNIRYJZlA8Q8p0r9T8cF/RVvwUgRA//FydEyg==", + "@adraffy/ens-normalize": "1.10.1", + "@noble/curves": "1.2.0", + "@noble/hashes": "1.3.2", + "@types/node": "18.15.13", + "aes-js": "4.0.0-beta.5", + "tslib": "2.4.0", + "ws": "8.17.1" + }, "engines": { - "node": ">=0.6" + "node": ">=14.0.0" } }, - "node_modules/bigint-buffer": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/bigint-buffer/-/bigint-buffer-1.1.5.tgz", - "integrity": "sha512-trfYco6AoZ+rKhKnxA0hgX0HAbVP/s808/EuDSe2JDzUnCp/xAsli35Orvk67UrTEcwuxZqYZDmfA2RXJgxVvA==", - "hasInstallScript": true, + "node_modules/@wormhole-foundation/sdk-cosmwasm-core/node_modules/ethers/node_modules/@noble/curves": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.2.0.tgz", + "integrity": "sha512-oYclrNgRaM9SsBUBVbb8M6DTV7ZHRTKugureoYEncY5c65HOmRzvSiTE3y5CYaPYJA/GVkrhXEoF0M3Ya9PMnw==", "dependencies": { - "bindings": "^1.3.0" + "@noble/hashes": "1.3.2" }, - "engines": { - "node": ">= 10.0.0" + "funding": { + "url": "https://paulmillr.com/funding/" } }, - "node_modules/bignumber.js": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.0.1.tgz", - "integrity": "sha512-IdZR9mh6ahOBv/hYGiXyVuyCetmGJhtYkqLBpTStdhEGjegpPlUawydyaF3pbIOFynJTpllEs+NP+CS9jKFLjA==", + "node_modules/@wormhole-foundation/sdk-cosmwasm-core/node_modules/ethers/node_modules/ws": { + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.17.1.tgz", + "integrity": "sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ==", "engines": { - "node": "*" + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } } }, - "node_modules/binary-parser": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/binary-parser/-/binary-parser-2.2.1.tgz", - "integrity": "sha512-5ATpz/uPDgq5GgEDxTB4ouXCde7q2lqAQlSdBRQVl/AJnxmQmhIfyxJx+0MGu//D5rHQifkfGbWWlaysG0o9NA==", + "node_modules/@wormhole-foundation/sdk-cosmwasm-core/node_modules/form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, "engines": { - "node": ">=12" + "node": ">= 6" } }, - "node_modules/bindings": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", - "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", + "node_modules/@wormhole-foundation/sdk-cosmwasm-core/node_modules/long": { + "version": "5.2.3", + "resolved": "https://registry.npmjs.org/long/-/long-5.2.3.tgz", + "integrity": "sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q==" + }, + "node_modules/@wormhole-foundation/sdk-cosmwasm-core/node_modules/protobufjs": { + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.3.2.tgz", + "integrity": "sha512-RXyHaACeqXeqAKGLDl68rQKbmObRsTIn4TYVUUug1KfS47YWCo5MacGITEryugIgZqORCvJWEk4l449POg5Txg==", + "hasInstallScript": true, "dependencies": { - "file-uri-to-path": "1.0.0" + "@protobufjs/aspromise": "^1.1.2", + "@protobufjs/base64": "^1.1.2", + "@protobufjs/codegen": "^2.0.4", + "@protobufjs/eventemitter": "^1.1.0", + "@protobufjs/fetch": "^1.1.0", + "@protobufjs/float": "^1.0.2", + "@protobufjs/inquire": "^1.1.0", + "@protobufjs/path": "^1.1.2", + "@protobufjs/pool": "^1.1.0", + "@protobufjs/utf8": "^1.1.0", + "@types/node": ">=13.7.0", + "long": "^5.0.0" + }, + "engines": { + "node": ">=12.0.0" } }, - "node_modules/bip32": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/bip32/-/bip32-2.0.6.tgz", - "integrity": "sha512-HpV5OMLLGTjSVblmrtYRfFFKuQB+GArM0+XP8HGWfJ5vxYBqo+DesvJwOdC2WJ3bCkZShGf0QIfoIpeomVzVdA==", + "node_modules/@wormhole-foundation/sdk-cosmwasm-ibc": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/@wormhole-foundation/sdk-cosmwasm-ibc/-/sdk-cosmwasm-ibc-0.9.0.tgz", + "integrity": "sha512-k24qcdJBuxQyDX2HBKVuwGIehNLNk+2ngucebeEyKRNtzfhCcGsZKaMpkSjqvhJid2+BwHNNq/lLB9s9qcDTaw==", "dependencies": { - "@types/node": "10.12.18", - "bs58check": "^2.1.1", - "create-hash": "^1.2.0", - "create-hmac": "^1.1.7", - "tiny-secp256k1": "^1.1.3", - "typeforce": "^1.11.5", - "wif": "^2.0.6" + "@cosmjs/cosmwasm-stargate": "^0.32.0", + "@cosmjs/stargate": "^0.32.0", + "@injectivelabs/sdk-ts": "^1.14.13-beta.2", + "@wormhole-foundation/sdk-connect": "0.9.0", + "@wormhole-foundation/sdk-cosmwasm": "0.9.0", + "@wormhole-foundation/sdk-cosmwasm-core": "0.9.0", + "cosmjs-types": "^0.9.0" }, "engines": { - "node": ">=6.0.0" + "node": ">=16" } }, - "node_modules/bip32/node_modules/@types/node": { - "version": "10.12.18", - "resolved": "https://registry.npmjs.org/@types/node/-/node-10.12.18.tgz", - "integrity": "sha512-fh+pAqt4xRzPfqA6eh3Z2y6fyZavRIumvjhaCL753+TVkGKGhpPeyrJG2JftD0T9q4GF00KjefsQ+PQNDdWQaQ==" - }, - "node_modules/bip39": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/bip39/-/bip39-3.0.4.tgz", - "integrity": "sha512-YZKQlb752TrUWqHWj7XAwCSjYEgGAk+/Aas3V7NyjQeZYsztO8JnQUaCWhcnL4T+jL8nvB8typ2jRPzTlgugNw==", + "node_modules/@wormhole-foundation/sdk-cosmwasm-ibc/node_modules/@cosmjs/amino": { + "version": "0.32.4", + "resolved": "https://registry.npmjs.org/@cosmjs/amino/-/amino-0.32.4.tgz", + "integrity": "sha512-zKYOt6hPy8obIFtLie/xtygCkH9ZROiQ12UHfKsOkWaZfPQUvVbtgmu6R4Kn1tFLI/SRkw7eqhaogmW/3NYu/Q==", "dependencies": { - "@types/node": "11.11.6", - "create-hash": "^1.1.0", - "pbkdf2": "^3.0.9", - "randombytes": "^2.0.1" + "@cosmjs/crypto": "^0.32.4", + "@cosmjs/encoding": "^0.32.4", + "@cosmjs/math": "^0.32.4", + "@cosmjs/utils": "^0.32.4" } }, - "node_modules/bip39-light": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/bip39-light/-/bip39-light-1.0.7.tgz", - "integrity": "sha512-WDTmLRQUsiioBdTs9BmSEmkJza+8xfJmptsNJjxnoq3EydSa/ZBXT6rm66KoT3PJIRYMnhSKNR7S9YL1l7R40Q==", + "node_modules/@wormhole-foundation/sdk-cosmwasm-ibc/node_modules/@cosmjs/cosmwasm-stargate": { + "version": "0.32.4", + "resolved": "https://registry.npmjs.org/@cosmjs/cosmwasm-stargate/-/cosmwasm-stargate-0.32.4.tgz", + "integrity": "sha512-Fuo9BGEiB+POJ5WeRyBGuhyKR1ordvxZGLPuPosFJOH9U0gKMgcjwKMCgAlWFkMlHaTB+tNdA8AifWiHrI7VgA==", "dependencies": { - "create-hash": "^1.1.0", - "pbkdf2": "^3.0.9" + "@cosmjs/amino": "^0.32.4", + "@cosmjs/crypto": "^0.32.4", + "@cosmjs/encoding": "^0.32.4", + "@cosmjs/math": "^0.32.4", + "@cosmjs/proto-signing": "^0.32.4", + "@cosmjs/stargate": "^0.32.4", + "@cosmjs/tendermint-rpc": "^0.32.4", + "@cosmjs/utils": "^0.32.4", + "cosmjs-types": "^0.9.0", + "pako": "^2.0.2" } }, - "node_modules/bip39/node_modules/@types/node": { - "version": "11.11.6", - "resolved": "https://registry.npmjs.org/@types/node/-/node-11.11.6.tgz", - "integrity": "sha512-Exw4yUWMBXM3X+8oqzJNRqZSwUAaS4+7NdvHqQuFi/d+synz++xmX3QIf+BFqneW8N31R8Ky+sikfZUXq07ggQ==" - }, - "node_modules/bip66": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/bip66/-/bip66-1.1.5.tgz", - "integrity": "sha512-nemMHz95EmS38a26XbbdxIYj5csHd3RMP3H5bwQknX0WYHF01qhpufP42mLOwVICuH2JmhIhXiWs89MfUGL7Xw==", - "optional": true, + "node_modules/@wormhole-foundation/sdk-cosmwasm-ibc/node_modules/@cosmjs/crypto": { + "version": "0.32.4", + "resolved": "https://registry.npmjs.org/@cosmjs/crypto/-/crypto-0.32.4.tgz", + "integrity": "sha512-zicjGU051LF1V9v7bp8p7ovq+VyC91xlaHdsFOTo2oVry3KQikp8L/81RkXmUIT8FxMwdx1T7DmFwVQikcSDIw==", "dependencies": { - "safe-buffer": "^5.0.1" + "@cosmjs/encoding": "^0.32.4", + "@cosmjs/math": "^0.32.4", + "@cosmjs/utils": "^0.32.4", + "@noble/hashes": "^1", + "bn.js": "^5.2.0", + "elliptic": "^6.5.4", + "libsodium-wrappers-sumo": "^0.7.11" } }, - "node_modules/blakejs": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/blakejs/-/blakejs-1.1.1.tgz", - "integrity": "sha512-bLG6PHOCZJKNshTjGRBvET0vTciwQE6zFKOKKXPDJfwFBd4Ac0yBfPZqcGvGJap50l7ktvlpFqc2jGVaUgbJgg==" + "node_modules/@wormhole-foundation/sdk-cosmwasm-ibc/node_modules/@cosmjs/encoding": { + "version": "0.32.4", + "resolved": "https://registry.npmjs.org/@cosmjs/encoding/-/encoding-0.32.4.tgz", + "integrity": "sha512-tjvaEy6ZGxJchiizzTn7HVRiyTg1i4CObRRaTRPknm5EalE13SV+TCHq38gIDfyUeden4fCuaBVEdBR5+ti7Hw==", + "dependencies": { + "base64-js": "^1.3.0", + "bech32": "^1.1.4", + "readonly-date": "^1.0.0" + } }, - "node_modules/bn.js": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", - "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==" + "node_modules/@wormhole-foundation/sdk-cosmwasm-ibc/node_modules/@cosmjs/encoding/node_modules/bech32": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/bech32/-/bech32-1.1.4.tgz", + "integrity": "sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ==" }, - "node_modules/borsh": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/borsh/-/borsh-0.7.0.tgz", - "integrity": "sha512-CLCsZGIBCFnPtkNnieW/a8wmreDmfUtjU2m9yHrzPXIlNbqVs0AQrSatSG6vdNYUqdc83tkQi2eHfF98ubzQLA==", + "node_modules/@wormhole-foundation/sdk-cosmwasm-ibc/node_modules/@cosmjs/json-rpc": { + "version": "0.32.4", + "resolved": "https://registry.npmjs.org/@cosmjs/json-rpc/-/json-rpc-0.32.4.tgz", + "integrity": "sha512-/jt4mBl7nYzfJ2J/VJ+r19c92mUKF0Lt0JxM3MXEJl7wlwW5haHAWtzRujHkyYMXOwIR+gBqT2S0vntXVBRyhQ==", "dependencies": { - "bn.js": "^5.2.0", - "bs58": "^4.0.0", - "text-encoding-utf-8": "^1.0.2" + "@cosmjs/stream": "^0.32.4", + "xstream": "^11.14.0" } }, - "node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "node_modules/@wormhole-foundation/sdk-cosmwasm-ibc/node_modules/@cosmjs/math": { + "version": "0.32.4", + "resolved": "https://registry.npmjs.org/@cosmjs/math/-/math-0.32.4.tgz", + "integrity": "sha512-++dqq2TJkoB8zsPVYCvrt88oJWsy1vMOuSOKcdlnXuOA/ASheTJuYy4+oZlTQ3Fr8eALDLGGPhJI02W2HyAQaw==", "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" + "bn.js": "^5.2.0" } }, - "node_modules/braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, + "node_modules/@wormhole-foundation/sdk-cosmwasm-ibc/node_modules/@cosmjs/proto-signing": { + "version": "0.32.4", + "resolved": "https://registry.npmjs.org/@cosmjs/proto-signing/-/proto-signing-0.32.4.tgz", + "integrity": "sha512-QdyQDbezvdRI4xxSlyM1rSVBO2st5sqtbEIl3IX03uJ7YiZIQHyv6vaHVf1V4mapusCqguiHJzm4N4gsFdLBbQ==", "dependencies": { - "fill-range": "^7.0.1" - }, - "engines": { - "node": ">=8" + "@cosmjs/amino": "^0.32.4", + "@cosmjs/crypto": "^0.32.4", + "@cosmjs/encoding": "^0.32.4", + "@cosmjs/math": "^0.32.4", + "@cosmjs/utils": "^0.32.4", + "cosmjs-types": "^0.9.0" } }, - "node_modules/brorand": { - "version": "1.1.0", - "license": "MIT" - }, - "node_modules/browser-headers": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/browser-headers/-/browser-headers-0.4.1.tgz", - "integrity": "sha512-CA9hsySZVo9371qEHjHZtYxV2cFtVj5Wj/ZHi8ooEsrtm4vOnl9Y9HmyYWk9q+05d7K3rdoAE0j3MVEFVvtQtg==" + "node_modules/@wormhole-foundation/sdk-cosmwasm-ibc/node_modules/@cosmjs/socket": { + "version": "0.32.4", + "resolved": "https://registry.npmjs.org/@cosmjs/socket/-/socket-0.32.4.tgz", + "integrity": "sha512-davcyYziBhkzfXQTu1l5NrpDYv0K9GekZCC9apBRvL1dvMc9F/ygM7iemHjUA+z8tJkxKxrt/YPjJ6XNHzLrkw==", + "dependencies": { + "@cosmjs/stream": "^0.32.4", + "isomorphic-ws": "^4.0.1", + "ws": "^7", + "xstream": "^11.14.0" + } }, - "node_modules/browserify-aes": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", - "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", + "node_modules/@wormhole-foundation/sdk-cosmwasm-ibc/node_modules/@cosmjs/stargate": { + "version": "0.32.4", + "resolved": "https://registry.npmjs.org/@cosmjs/stargate/-/stargate-0.32.4.tgz", + "integrity": "sha512-usj08LxBSsPRq9sbpCeVdyLx2guEcOHfJS9mHGCLCXpdAPEIEQEtWLDpEUc0LEhWOx6+k/ChXTc5NpFkdrtGUQ==", "dependencies": { - "buffer-xor": "^1.0.3", - "cipher-base": "^1.0.0", - "create-hash": "^1.1.0", - "evp_bytestokey": "^1.0.3", - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" + "@confio/ics23": "^0.6.8", + "@cosmjs/amino": "^0.32.4", + "@cosmjs/encoding": "^0.32.4", + "@cosmjs/math": "^0.32.4", + "@cosmjs/proto-signing": "^0.32.4", + "@cosmjs/stream": "^0.32.4", + "@cosmjs/tendermint-rpc": "^0.32.4", + "@cosmjs/utils": "^0.32.4", + "cosmjs-types": "^0.9.0", + "xstream": "^11.14.0" } }, - "node_modules/browserslist": { - "version": "4.23.0", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.0.tgz", - "integrity": "sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], + "node_modules/@wormhole-foundation/sdk-cosmwasm-ibc/node_modules/@cosmjs/stream": { + "version": "0.32.4", + "resolved": "https://registry.npmjs.org/@cosmjs/stream/-/stream-0.32.4.tgz", + "integrity": "sha512-Gih++NYHEiP+oyD4jNEUxU9antoC0pFSg+33Hpp0JlHwH0wXhtD3OOKnzSfDB7OIoEbrzLJUpEjOgpCp5Z+W3A==", "dependencies": { - "caniuse-lite": "^1.0.30001587", - "electron-to-chromium": "^1.4.668", - "node-releases": "^2.0.14", - "update-browserslist-db": "^1.0.13" - }, - "bin": { - "browserslist": "cli.js" - }, - "engines": { - "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + "xstream": "^11.14.0" } }, - "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, + "node_modules/@wormhole-foundation/sdk-cosmwasm-ibc/node_modules/@cosmjs/tendermint-rpc": { + "version": "0.32.4", + "resolved": "https://registry.npmjs.org/@cosmjs/tendermint-rpc/-/tendermint-rpc-0.32.4.tgz", + "integrity": "sha512-MWvUUno+4bCb/LmlMIErLypXxy7ckUuzEmpufYYYd9wgbdCXaTaO08SZzyFM5PI8UJ/0S2AmUrgWhldlbxO8mw==", "dependencies": { - "fast-json-stable-stringify": "2.x" - }, - "engines": { - "node": ">= 6" + "@cosmjs/crypto": "^0.32.4", + "@cosmjs/encoding": "^0.32.4", + "@cosmjs/json-rpc": "^0.32.4", + "@cosmjs/math": "^0.32.4", + "@cosmjs/socket": "^0.32.4", + "@cosmjs/stream": "^0.32.4", + "@cosmjs/utils": "^0.32.4", + "axios": "^1.6.0", + "readonly-date": "^1.0.0", + "xstream": "^11.14.0" } }, - "node_modules/bs58": { - "version": "4.0.1", - "license": "MIT", + "node_modules/@wormhole-foundation/sdk-cosmwasm-ibc/node_modules/@cosmjs/utils": { + "version": "0.32.4", + "resolved": "https://registry.npmjs.org/@cosmjs/utils/-/utils-0.32.4.tgz", + "integrity": "sha512-D1Yc+Zy8oL/hkUkFUL/bwxvuDBzRGpc4cF7/SkdhxX4iHpSLgdOuTt1mhCh9+kl6NQREy9t7SYZ6xeW5gFe60w==" + }, + "node_modules/@wormhole-foundation/sdk-cosmwasm-ibc/node_modules/@injectivelabs/core-proto-ts": { + "version": "0.0.21", + "resolved": "https://registry.npmjs.org/@injectivelabs/core-proto-ts/-/core-proto-ts-0.0.21.tgz", + "integrity": "sha512-RBxSkRBCty60R/l55/D1jsSW0Aof5dyGFhCFdN3A010KjMv/SzZGGr+6DZPY/hflyFeaJzDv/VTopCymKNRBvQ==", "dependencies": { - "base-x": "^3.0.2" + "@injectivelabs/grpc-web": "^0.0.1", + "google-protobuf": "^3.14.0", + "protobufjs": "^7.0.0", + "rxjs": "^7.4.0" } }, - "node_modules/bs58check": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/bs58check/-/bs58check-2.1.2.tgz", - "integrity": "sha512-0TS1jicxdU09dwJMNZtVAfzPi6Q6QeN0pM1Fkzrjn+XYHvzMKPU3pHVpva+769iNVSfIYWf7LJ6WR+BuuMf8cA==", + "node_modules/@wormhole-foundation/sdk-cosmwasm-ibc/node_modules/@injectivelabs/indexer-proto-ts": { + "version": "1.11.42", + "resolved": "https://registry.npmjs.org/@injectivelabs/indexer-proto-ts/-/indexer-proto-ts-1.11.42.tgz", + "integrity": "sha512-6ejCpcWZWOSsELFIfUf2+xuJPOH+YdiJtwtB3d9x2H7dnrCBjXMxlPCSxoKEUbDH6w/lY2mO6TJm65rNy9piew==", "dependencies": { - "bs58": "^4.0.0", - "create-hash": "^1.1.0", - "safe-buffer": "^5.1.2" + "@injectivelabs/grpc-web": "^0.0.1", + "google-protobuf": "^3.14.0", + "protobufjs": "^7.0.0", + "rxjs": "^7.4.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/@wormhole-foundation/sdk-cosmwasm-ibc/node_modules/@injectivelabs/mito-proto-ts": { + "version": "1.0.65", + "resolved": "https://registry.npmjs.org/@injectivelabs/mito-proto-ts/-/mito-proto-ts-1.0.65.tgz", + "integrity": "sha512-kceZP68QrgFop387RYyO7tkfJCYxoktuceHTs9DQP3dJceLqj/V2mz0NlpkkacjgE5NhYkQ/zc0Z40hr8tnYqQ==", "dependencies": { - "node-int64": "^0.4.0" - } - }, - "node_modules/btoa": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/btoa/-/btoa-1.2.1.tgz", - "integrity": "sha512-SB4/MIGlsiVkMcHmT+pSmIPoNDoHg+7cMzmt3Uxt628MTz2487DKSqK/fuhFBrkuqrYv5UCEnACpF4dTFNKc/g==", - "dev": true, - "bin": { - "btoa": "bin/btoa.js" - }, - "engines": { - "node": ">= 0.4.0" + "@injectivelabs/grpc-web": "^0.0.1", + "google-protobuf": "^3.14.0", + "protobufjs": "^7.0.0", + "rxjs": "^7.4.0" } }, - "node_modules/buffer": { - "version": "6.0.1", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT", + "node_modules/@wormhole-foundation/sdk-cosmwasm-ibc/node_modules/@injectivelabs/networks": { + "version": "1.14.13", + "resolved": "https://registry.npmjs.org/@injectivelabs/networks/-/networks-1.14.13.tgz", + "integrity": "sha512-P+eCQXWpbk4LbPxgTmi2gY7OzdZTNsIEUvDoh59Ma0CkqSFaYMtgB8fZVxpkKM0UPla587EDlEEIVxprDBcnZg==", + "hasInstallScript": true, "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" + "@injectivelabs/exceptions": "^1.14.13", + "@injectivelabs/ts-types": "^1.14.13", + "@injectivelabs/utils": "^1.14.13", + "link-module-alias": "^1.2.0", + "shx": "^0.3.2" } }, - "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/buffer-layout": { - "version": "1.2.2", - "license": "MIT", - "engines": { - "node": ">=4.5" + "node_modules/@wormhole-foundation/sdk-cosmwasm-ibc/node_modules/@injectivelabs/sdk-ts": { + "version": "1.14.13", + "resolved": "https://registry.npmjs.org/@injectivelabs/sdk-ts/-/sdk-ts-1.14.13.tgz", + "integrity": "sha512-qcLoIu+hEMpuvdG0iXGNJvWQD05NkcO59tL3ijEhYmshlJWBMWJtpJJGt/E/hV9YxJfNTl20Rhi/5i7l0y8Hfg==", + "hasInstallScript": true, + "dependencies": { + "@apollo/client": "^3.5.8", + "@cosmjs/amino": "^0.32.3", + "@cosmjs/proto-signing": "^0.32.3", + "@cosmjs/stargate": "^0.32.3", + "@ethersproject/bytes": "^5.7.0", + "@injectivelabs/core-proto-ts": "^0.0.21", + "@injectivelabs/dmm-proto-ts": "1.0.20", + "@injectivelabs/exceptions": "^1.14.13", + "@injectivelabs/grpc-web": "^0.0.1", + "@injectivelabs/grpc-web-node-http-transport": "^0.0.2", + "@injectivelabs/grpc-web-react-native-transport": "^0.0.2", + "@injectivelabs/indexer-proto-ts": "1.11.42", + "@injectivelabs/mito-proto-ts": "1.0.65", + "@injectivelabs/networks": "^1.14.13", + "@injectivelabs/test-utils": "^1.14.13", + "@injectivelabs/ts-types": "^1.14.13", + "@injectivelabs/utils": "^1.14.13", + "@metamask/eth-sig-util": "^4.0.0", + "@noble/curves": "^1.4.0", + "axios": "^1.6.4", + "bech32": "^2.0.0", + "bip39": "^3.0.4", + "cosmjs-types": "^0.9.0", + "ethereumjs-util": "^7.1.4", + "ethers": "^6.5.1", + "google-protobuf": "^3.21.0", + "graphql": "^16.3.0", + "http-status-codes": "^2.2.0", + "js-sha3": "^0.8.0", + "jscrypto": "^1.0.3", + "keccak256": "^1.0.6", + "link-module-alias": "^1.2.0", + "secp256k1": "^4.0.3", + "shx": "^0.3.2", + "snakecase-keys": "^5.4.1" } }, - "node_modules/buffer-xor": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", - "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=" - }, - "node_modules/bufferutil": { - "version": "4.0.3", + "node_modules/@wormhole-foundation/sdk-cosmwasm-ibc/node_modules/@injectivelabs/utils": { + "version": "1.14.13", + "resolved": "https://registry.npmjs.org/@injectivelabs/utils/-/utils-1.14.13.tgz", + "integrity": "sha512-djmSq28R7HDSb2Mezan+EFjqQgmDRydY+fLOmkODwOCYA04xOGQo7yna+WVovV85aKpwPjn864AWPy65xiHUZg==", "hasInstallScript": true, - "license": "MIT", "dependencies": { - "node-gyp-build": "^4.2.0" + "@injectivelabs/exceptions": "^1.14.13", + "@injectivelabs/ts-types": "^1.14.13", + "axios": "^1.6.4", + "bignumber.js": "^9.0.1", + "http-status-codes": "^2.2.0", + "link-module-alias": "^1.2.0", + "shx": "^0.3.2", + "snakecase-keys": "^5.1.2", + "store2": "^2.12.0" } }, - "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/@wormhole-foundation/sdk-cosmwasm-ibc/node_modules/@noble/hashes": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.3.2.tgz", + "integrity": "sha512-MVC8EAQp7MvEcm30KWENFjgR+Mkmf+D189XJTkFIlwohU5hcBbn1ZkKq7KVTi2Hme3PMGF390DaL52beVrIihQ==", "engines": { - "node": ">=6" + "node": ">= 16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" } }, - "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/@wormhole-foundation/sdk-cosmwasm-ibc/node_modules/@types/node": { + "version": "18.15.13", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.15.13.tgz", + "integrity": "sha512-N+0kuo9KgrUQ1Sn/ifDXsvg0TTleP7rIy4zOBGECxAljqvqfqpTfzx0Q1NUedOixRMBfe2Whhb056a42cWs26Q==" + }, + "node_modules/@wormhole-foundation/sdk-cosmwasm-ibc/node_modules/aes-js": { + "version": "4.0.0-beta.5", + "resolved": "https://registry.npmjs.org/aes-js/-/aes-js-4.0.0-beta.5.tgz", + "integrity": "sha512-G965FqalsNyrPqgEGON7nIx1e/OVENSgiEIzyC63haUMuvNnwIgIjMs52hlTCKhkBny7A2ORNlfY9Zu+jmGk1Q==" + }, + "node_modules/@wormhole-foundation/sdk-cosmwasm-ibc/node_modules/axios": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.3.tgz", + "integrity": "sha512-Ar7ND9pU99eJ9GpoGQKhKf58GpUOgnzuaB7ueNQ5BMi0p+LZ5oaEnfF999fAArcTIBwXTCHAmGcHOZJaWPq9Nw==", + "dependencies": { + "follow-redirects": "^1.15.6", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" } }, - "node_modules/caniuse-lite": { - "version": "1.0.30001599", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001599.tgz", - "integrity": "sha512-LRAQHZ4yT1+f9LemSMeqdMpMxZcc4RMWdj4tiFe3G8tNkWK+E58g+/tzotb5cU6TbcVJLr4fySiAW7XmxQvZQA==", - "dev": true, + "node_modules/@wormhole-foundation/sdk-cosmwasm-ibc/node_modules/cosmjs-types": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/cosmjs-types/-/cosmjs-types-0.9.0.tgz", + "integrity": "sha512-MN/yUe6mkJwHnCFfsNPeCfXVhyxHYW6c/xDUzrSbBycYzw++XvWDMJArXp2pLdgD6FQ8DW79vkPjeNKVrXaHeQ==" + }, + "node_modules/@wormhole-foundation/sdk-cosmwasm-ibc/node_modules/ethers": { + "version": "6.13.2", + "resolved": "https://registry.npmjs.org/ethers/-/ethers-6.13.2.tgz", + "integrity": "sha512-9VkriTTed+/27BGuY1s0hf441kqwHJ1wtN2edksEtiRvXx+soxRX3iSXTfFqq2+YwrOqbDoTHjIhQnjJRlzKmg==", "funding": [ { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + "type": "individual", + "url": "https://github.com/sponsors/ethers-io/" }, { - "type": "github", - "url": "https://github.com/sponsors/ai" + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" } - ] - }, - "node_modules/capability": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/capability/-/capability-0.2.5.tgz", - "integrity": "sha512-rsJZYVCgXd08sPqwmaIqjAd5SUTfonV0z/gDJ8D6cN8wQphky1kkAYEqQ+hmDxTw7UihvBfjUVUSY+DBEe44jg==" - }, - "node_modules/caseless": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==", - "dev": true - }, - "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==", + ], "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" + "@adraffy/ens-normalize": "1.10.1", + "@noble/curves": "1.2.0", + "@noble/hashes": "1.3.2", + "@types/node": "18.15.13", + "aes-js": "4.0.0-beta.5", + "tslib": "2.4.0", + "ws": "8.17.1" }, "engines": { - "node": ">=4" + "node": ">=14.0.0" } }, - "node_modules/chalk/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==", + "node_modules/@wormhole-foundation/sdk-cosmwasm-ibc/node_modules/ethers/node_modules/@noble/curves": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.2.0.tgz", + "integrity": "sha512-oYclrNgRaM9SsBUBVbb8M6DTV7ZHRTKugureoYEncY5c65HOmRzvSiTE3y5CYaPYJA/GVkrhXEoF0M3Ya9PMnw==", "dependencies": { - "color-convert": "^1.9.0" + "@noble/hashes": "1.3.2" }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@wormhole-foundation/sdk-cosmwasm-ibc/node_modules/ethers/node_modules/ws": { + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.17.1.tgz", + "integrity": "sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ==", "engines": { - "node": ">=4" + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } } }, - "node_modules/chalk/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==", + "node_modules/@wormhole-foundation/sdk-cosmwasm-ibc/node_modules/form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", "dependencies": { - "color-name": "1.1.3" + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" } }, - "node_modules/chalk/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" + "node_modules/@wormhole-foundation/sdk-cosmwasm-ibc/node_modules/long": { + "version": "5.2.3", + "resolved": "https://registry.npmjs.org/long/-/long-5.2.3.tgz", + "integrity": "sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q==" }, - "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/@wormhole-foundation/sdk-cosmwasm-ibc/node_modules/protobufjs": { + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.3.2.tgz", + "integrity": "sha512-RXyHaACeqXeqAKGLDl68rQKbmObRsTIn4TYVUUug1KfS47YWCo5MacGITEryugIgZqORCvJWEk4l449POg5Txg==", + "hasInstallScript": true, + "dependencies": { + "@protobufjs/aspromise": "^1.1.2", + "@protobufjs/base64": "^1.1.2", + "@protobufjs/codegen": "^2.0.4", + "@protobufjs/eventemitter": "^1.1.0", + "@protobufjs/fetch": "^1.1.0", + "@protobufjs/float": "^1.0.2", + "@protobufjs/inquire": "^1.1.0", + "@protobufjs/path": "^1.1.2", + "@protobufjs/pool": "^1.1.0", + "@protobufjs/utf8": "^1.1.0", + "@types/node": ">=13.7.0", + "long": "^5.0.0" + }, "engines": { - "node": ">=10" + "node": ">=12.0.0" } }, - "node_modules/checkpoint-store": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/checkpoint-store/-/checkpoint-store-1.1.0.tgz", - "integrity": "sha512-J/NdY2WvIx654cc6LWSq/IYFFCUf75fFTgwzFnmbqyORH4MwgiQCgswLLKBGzmsyTI5V7i5bp/So6sMbDWhedg==", - "dev": true, + "node_modules/@wormhole-foundation/sdk-cosmwasm-tokenbridge": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/@wormhole-foundation/sdk-cosmwasm-tokenbridge/-/sdk-cosmwasm-tokenbridge-0.9.0.tgz", + "integrity": "sha512-qEdzv/a8B9ashVpiDWPvH7NYPe7fmwxLOrXqppDdAYv8pJTzmRmWcGAmThvMWPT9Irl/7I5pwGCx7E5kLHMPYQ==", "dependencies": { - "functional-red-black-tree": "^1.0.1" + "@cosmjs/cosmwasm-stargate": "^0.32.0", + "@injectivelabs/sdk-ts": "^1.14.13-beta.2", + "@wormhole-foundation/sdk-connect": "0.9.0", + "@wormhole-foundation/sdk-cosmwasm": "0.9.0" + }, + "engines": { + "node": ">=16" } }, - "node_modules/ci-info": { - "version": "3.9.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", - "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/sibiraj-s" - } - ], - "engines": { - "node": ">=8" + "node_modules/@wormhole-foundation/sdk-cosmwasm-tokenbridge/node_modules/@cosmjs/amino": { + "version": "0.32.4", + "resolved": "https://registry.npmjs.org/@cosmjs/amino/-/amino-0.32.4.tgz", + "integrity": "sha512-zKYOt6hPy8obIFtLie/xtygCkH9ZROiQ12UHfKsOkWaZfPQUvVbtgmu6R4Kn1tFLI/SRkw7eqhaogmW/3NYu/Q==", + "dependencies": { + "@cosmjs/crypto": "^0.32.4", + "@cosmjs/encoding": "^0.32.4", + "@cosmjs/math": "^0.32.4", + "@cosmjs/utils": "^0.32.4" } }, - "node_modules/cipher-base": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", - "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", + "node_modules/@wormhole-foundation/sdk-cosmwasm-tokenbridge/node_modules/@cosmjs/cosmwasm-stargate": { + "version": "0.32.4", + "resolved": "https://registry.npmjs.org/@cosmjs/cosmwasm-stargate/-/cosmwasm-stargate-0.32.4.tgz", + "integrity": "sha512-Fuo9BGEiB+POJ5WeRyBGuhyKR1ordvxZGLPuPosFJOH9U0gKMgcjwKMCgAlWFkMlHaTB+tNdA8AifWiHrI7VgA==", "dependencies": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" + "@cosmjs/amino": "^0.32.4", + "@cosmjs/crypto": "^0.32.4", + "@cosmjs/encoding": "^0.32.4", + "@cosmjs/math": "^0.32.4", + "@cosmjs/proto-signing": "^0.32.4", + "@cosmjs/stargate": "^0.32.4", + "@cosmjs/tendermint-rpc": "^0.32.4", + "@cosmjs/utils": "^0.32.4", + "cosmjs-types": "^0.9.0", + "pako": "^2.0.2" } }, - "node_modules/cjs-module-lexer": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.3.tgz", - "integrity": "sha512-0TNiGstbQmCFwt4akjjBg5pLRTSyj/PkWQ1ZoO2zntmg9yLqSRxwEa4iCfQLGjqhiqBfOJa7W/E8wfGrTDmlZQ==", - "dev": true + "node_modules/@wormhole-foundation/sdk-cosmwasm-tokenbridge/node_modules/@cosmjs/crypto": { + "version": "0.32.4", + "resolved": "https://registry.npmjs.org/@cosmjs/crypto/-/crypto-0.32.4.tgz", + "integrity": "sha512-zicjGU051LF1V9v7bp8p7ovq+VyC91xlaHdsFOTo2oVry3KQikp8L/81RkXmUIT8FxMwdx1T7DmFwVQikcSDIw==", + "dependencies": { + "@cosmjs/encoding": "^0.32.4", + "@cosmjs/math": "^0.32.4", + "@cosmjs/utils": "^0.32.4", + "@noble/hashes": "^1", + "bn.js": "^5.2.0", + "elliptic": "^6.5.4", + "libsodium-wrappers-sumo": "^0.7.11" + } }, - "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==", + "node_modules/@wormhole-foundation/sdk-cosmwasm-tokenbridge/node_modules/@cosmjs/encoding": { + "version": "0.32.4", + "resolved": "https://registry.npmjs.org/@cosmjs/encoding/-/encoding-0.32.4.tgz", + "integrity": "sha512-tjvaEy6ZGxJchiizzTn7HVRiyTg1i4CObRRaTRPknm5EalE13SV+TCHq38gIDfyUeden4fCuaBVEdBR5+ti7Hw==", "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" + "base64-js": "^1.3.0", + "bech32": "^1.1.4", + "readonly-date": "^1.0.0" } }, - "node_modules/clone": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", - "integrity": "sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==", - "dev": true, - "engines": { - "node": ">=0.8" + "node_modules/@wormhole-foundation/sdk-cosmwasm-tokenbridge/node_modules/@cosmjs/encoding/node_modules/bech32": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/bech32/-/bech32-1.1.4.tgz", + "integrity": "sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ==" + }, + "node_modules/@wormhole-foundation/sdk-cosmwasm-tokenbridge/node_modules/@cosmjs/json-rpc": { + "version": "0.32.4", + "resolved": "https://registry.npmjs.org/@cosmjs/json-rpc/-/json-rpc-0.32.4.tgz", + "integrity": "sha512-/jt4mBl7nYzfJ2J/VJ+r19c92mUKF0Lt0JxM3MXEJl7wlwW5haHAWtzRujHkyYMXOwIR+gBqT2S0vntXVBRyhQ==", + "dependencies": { + "@cosmjs/stream": "^0.32.4", + "xstream": "^11.14.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/@wormhole-foundation/sdk-cosmwasm-tokenbridge/node_modules/@cosmjs/math": { + "version": "0.32.4", + "resolved": "https://registry.npmjs.org/@cosmjs/math/-/math-0.32.4.tgz", + "integrity": "sha512-++dqq2TJkoB8zsPVYCvrt88oJWsy1vMOuSOKcdlnXuOA/ASheTJuYy4+oZlTQ3Fr8eALDLGGPhJI02W2HyAQaw==", + "dependencies": { + "bn.js": "^5.2.0" } }, - "node_modules/collect-v8-coverage": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.2.tgz", - "integrity": "sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==", - "dev": true + "node_modules/@wormhole-foundation/sdk-cosmwasm-tokenbridge/node_modules/@cosmjs/proto-signing": { + "version": "0.32.4", + "resolved": "https://registry.npmjs.org/@cosmjs/proto-signing/-/proto-signing-0.32.4.tgz", + "integrity": "sha512-QdyQDbezvdRI4xxSlyM1rSVBO2st5sqtbEIl3IX03uJ7YiZIQHyv6vaHVf1V4mapusCqguiHJzm4N4gsFdLBbQ==", + "dependencies": { + "@cosmjs/amino": "^0.32.4", + "@cosmjs/crypto": "^0.32.4", + "@cosmjs/encoding": "^0.32.4", + "@cosmjs/math": "^0.32.4", + "@cosmjs/utils": "^0.32.4", + "cosmjs-types": "^0.9.0" + } }, - "node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "node_modules/@wormhole-foundation/sdk-cosmwasm-tokenbridge/node_modules/@cosmjs/socket": { + "version": "0.32.4", + "resolved": "https://registry.npmjs.org/@cosmjs/socket/-/socket-0.32.4.tgz", + "integrity": "sha512-davcyYziBhkzfXQTu1l5NrpDYv0K9GekZCC9apBRvL1dvMc9F/ygM7iemHjUA+z8tJkxKxrt/YPjJ6XNHzLrkw==", "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" + "@cosmjs/stream": "^0.32.4", + "isomorphic-ws": "^4.0.1", + "ws": "^7", + "xstream": "^11.14.0" } }, - "node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + "node_modules/@wormhole-foundation/sdk-cosmwasm-tokenbridge/node_modules/@cosmjs/stargate": { + "version": "0.32.4", + "resolved": "https://registry.npmjs.org/@cosmjs/stargate/-/stargate-0.32.4.tgz", + "integrity": "sha512-usj08LxBSsPRq9sbpCeVdyLx2guEcOHfJS9mHGCLCXpdAPEIEQEtWLDpEUc0LEhWOx6+k/ChXTc5NpFkdrtGUQ==", + "dependencies": { + "@confio/ics23": "^0.6.8", + "@cosmjs/amino": "^0.32.4", + "@cosmjs/encoding": "^0.32.4", + "@cosmjs/math": "^0.32.4", + "@cosmjs/proto-signing": "^0.32.4", + "@cosmjs/stream": "^0.32.4", + "@cosmjs/tendermint-rpc": "^0.32.4", + "@cosmjs/utils": "^0.32.4", + "cosmjs-types": "^0.9.0", + "xstream": "^11.14.0" + } }, - "node_modules/combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "node_modules/@wormhole-foundation/sdk-cosmwasm-tokenbridge/node_modules/@cosmjs/stream": { + "version": "0.32.4", + "resolved": "https://registry.npmjs.org/@cosmjs/stream/-/stream-0.32.4.tgz", + "integrity": "sha512-Gih++NYHEiP+oyD4jNEUxU9antoC0pFSg+33Hpp0JlHwH0wXhtD3OOKnzSfDB7OIoEbrzLJUpEjOgpCp5Z+W3A==", "dependencies": { - "delayed-stream": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" + "xstream": "^11.14.0" } }, - "node_modules/commander": { - "version": "2.20.3", - "license": "MIT" + "node_modules/@wormhole-foundation/sdk-cosmwasm-tokenbridge/node_modules/@cosmjs/tendermint-rpc": { + "version": "0.32.4", + "resolved": "https://registry.npmjs.org/@cosmjs/tendermint-rpc/-/tendermint-rpc-0.32.4.tgz", + "integrity": "sha512-MWvUUno+4bCb/LmlMIErLypXxy7ckUuzEmpufYYYd9wgbdCXaTaO08SZzyFM5PI8UJ/0S2AmUrgWhldlbxO8mw==", + "dependencies": { + "@cosmjs/crypto": "^0.32.4", + "@cosmjs/encoding": "^0.32.4", + "@cosmjs/json-rpc": "^0.32.4", + "@cosmjs/math": "^0.32.4", + "@cosmjs/socket": "^0.32.4", + "@cosmjs/stream": "^0.32.4", + "@cosmjs/utils": "^0.32.4", + "axios": "^1.6.0", + "readonly-date": "^1.0.0", + "xstream": "^11.14.0" + } }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" + "node_modules/@wormhole-foundation/sdk-cosmwasm-tokenbridge/node_modules/@cosmjs/utils": { + "version": "0.32.4", + "resolved": "https://registry.npmjs.org/@cosmjs/utils/-/utils-0.32.4.tgz", + "integrity": "sha512-D1Yc+Zy8oL/hkUkFUL/bwxvuDBzRGpc4cF7/SkdhxX4iHpSLgdOuTt1mhCh9+kl6NQREy9t7SYZ6xeW5gFe60w==" }, - "node_modules/config": { - "version": "3.3.7", - "resolved": "https://registry.npmjs.org/config/-/config-3.3.7.tgz", - "integrity": "sha512-mX/n7GKDYZMqvvkY6e6oBY49W8wxdmQt+ho/5lhwFDXqQW9gI+Ahp8EKp8VAbISPnmf2+Bv5uZK7lKXZ6pf1aA==", + "node_modules/@wormhole-foundation/sdk-cosmwasm-tokenbridge/node_modules/@injectivelabs/core-proto-ts": { + "version": "0.0.21", + "resolved": "https://registry.npmjs.org/@injectivelabs/core-proto-ts/-/core-proto-ts-0.0.21.tgz", + "integrity": "sha512-RBxSkRBCty60R/l55/D1jsSW0Aof5dyGFhCFdN3A010KjMv/SzZGGr+6DZPY/hflyFeaJzDv/VTopCymKNRBvQ==", "dependencies": { - "json5": "^2.1.1" - }, - "engines": { - "node": ">= 10.0.0" + "@injectivelabs/grpc-web": "^0.0.1", + "google-protobuf": "^3.14.0", + "protobufjs": "^7.0.0", + "rxjs": "^7.4.0" } }, - "node_modules/convert-source-map": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", - "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", - "dev": true + "node_modules/@wormhole-foundation/sdk-cosmwasm-tokenbridge/node_modules/@injectivelabs/indexer-proto-ts": { + "version": "1.11.42", + "resolved": "https://registry.npmjs.org/@injectivelabs/indexer-proto-ts/-/indexer-proto-ts-1.11.42.tgz", + "integrity": "sha512-6ejCpcWZWOSsELFIfUf2+xuJPOH+YdiJtwtB3d9x2H7dnrCBjXMxlPCSxoKEUbDH6w/lY2mO6TJm65rNy9piew==", + "dependencies": { + "@injectivelabs/grpc-web": "^0.0.1", + "google-protobuf": "^3.14.0", + "protobufjs": "^7.0.0", + "rxjs": "^7.4.0" + } }, - "node_modules/copy-dir": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/copy-dir/-/copy-dir-1.3.0.tgz", - "integrity": "sha512-Q4+qBFnN4bwGwvtXXzbp4P/4iNk0MaiGAzvQ8OiMtlLjkIKjmNN689uVzShSM0908q7GoFHXIPx4zi75ocoaHw==", - "dev": true + "node_modules/@wormhole-foundation/sdk-cosmwasm-tokenbridge/node_modules/@injectivelabs/mito-proto-ts": { + "version": "1.0.65", + "resolved": "https://registry.npmjs.org/@injectivelabs/mito-proto-ts/-/mito-proto-ts-1.0.65.tgz", + "integrity": "sha512-kceZP68QrgFop387RYyO7tkfJCYxoktuceHTs9DQP3dJceLqj/V2mz0NlpkkacjgE5NhYkQ/zc0Z40hr8tnYqQ==", + "dependencies": { + "@injectivelabs/grpc-web": "^0.0.1", + "google-protobuf": "^3.14.0", + "protobufjs": "^7.0.0", + "rxjs": "^7.4.0" + } }, - "node_modules/copyfiles": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/copyfiles/-/copyfiles-2.4.1.tgz", - "integrity": "sha512-fereAvAvxDrQDOXybk3Qu3dPbOoKoysFMWtkY3mv5BsL8//OSZVL5DCLYqgRfY5cWirgRzlC+WSrxp6Bo3eNZg==", + "node_modules/@wormhole-foundation/sdk-cosmwasm-tokenbridge/node_modules/@injectivelabs/networks": { + "version": "1.14.13", + "resolved": "https://registry.npmjs.org/@injectivelabs/networks/-/networks-1.14.13.tgz", + "integrity": "sha512-P+eCQXWpbk4LbPxgTmi2gY7OzdZTNsIEUvDoh59Ma0CkqSFaYMtgB8fZVxpkKM0UPla587EDlEEIVxprDBcnZg==", + "hasInstallScript": true, "dependencies": { - "glob": "^7.0.5", - "minimatch": "^3.0.3", - "mkdirp": "^1.0.4", - "noms": "0.0.0", - "through2": "^2.0.1", - "untildify": "^4.0.0", - "yargs": "^16.1.0" - }, - "bin": { - "copyfiles": "copyfiles", - "copyup": "copyfiles" + "@injectivelabs/exceptions": "^1.14.13", + "@injectivelabs/ts-types": "^1.14.13", + "@injectivelabs/utils": "^1.14.13", + "link-module-alias": "^1.2.0", + "shx": "^0.3.2" } }, - "node_modules/copyfiles/node_modules/yargs": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "node_modules/@wormhole-foundation/sdk-cosmwasm-tokenbridge/node_modules/@injectivelabs/sdk-ts": { + "version": "1.14.13", + "resolved": "https://registry.npmjs.org/@injectivelabs/sdk-ts/-/sdk-ts-1.14.13.tgz", + "integrity": "sha512-qcLoIu+hEMpuvdG0iXGNJvWQD05NkcO59tL3ijEhYmshlJWBMWJtpJJGt/E/hV9YxJfNTl20Rhi/5i7l0y8Hfg==", + "hasInstallScript": true, "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" + "@apollo/client": "^3.5.8", + "@cosmjs/amino": "^0.32.3", + "@cosmjs/proto-signing": "^0.32.3", + "@cosmjs/stargate": "^0.32.3", + "@ethersproject/bytes": "^5.7.0", + "@injectivelabs/core-proto-ts": "^0.0.21", + "@injectivelabs/dmm-proto-ts": "1.0.20", + "@injectivelabs/exceptions": "^1.14.13", + "@injectivelabs/grpc-web": "^0.0.1", + "@injectivelabs/grpc-web-node-http-transport": "^0.0.2", + "@injectivelabs/grpc-web-react-native-transport": "^0.0.2", + "@injectivelabs/indexer-proto-ts": "1.11.42", + "@injectivelabs/mito-proto-ts": "1.0.65", + "@injectivelabs/networks": "^1.14.13", + "@injectivelabs/test-utils": "^1.14.13", + "@injectivelabs/ts-types": "^1.14.13", + "@injectivelabs/utils": "^1.14.13", + "@metamask/eth-sig-util": "^4.0.0", + "@noble/curves": "^1.4.0", + "axios": "^1.6.4", + "bech32": "^2.0.0", + "bip39": "^3.0.4", + "cosmjs-types": "^0.9.0", + "ethereumjs-util": "^7.1.4", + "ethers": "^6.5.1", + "google-protobuf": "^3.21.0", + "graphql": "^16.3.0", + "http-status-codes": "^2.2.0", + "js-sha3": "^0.8.0", + "jscrypto": "^1.0.3", + "keccak256": "^1.0.6", + "link-module-alias": "^1.2.0", + "secp256k1": "^4.0.3", + "shx": "^0.3.2", + "snakecase-keys": "^5.4.1" } }, - "node_modules/core-js-compat": { - "version": "3.26.0", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.26.0.tgz", - "integrity": "sha512-piOX9Go+Z4f9ZiBFLnZ5VrOpBl0h7IGCkiFUN11QTe6LjAvOT3ifL/5TdoizMh99hcGy5SoLyWbapIY/PIb/3A==", - "dev": true, + "node_modules/@wormhole-foundation/sdk-cosmwasm-tokenbridge/node_modules/@injectivelabs/utils": { + "version": "1.14.13", + "resolved": "https://registry.npmjs.org/@injectivelabs/utils/-/utils-1.14.13.tgz", + "integrity": "sha512-djmSq28R7HDSb2Mezan+EFjqQgmDRydY+fLOmkODwOCYA04xOGQo7yna+WVovV85aKpwPjn864AWPy65xiHUZg==", + "hasInstallScript": true, "dependencies": { - "browserslist": "^4.21.4" + "@injectivelabs/exceptions": "^1.14.13", + "@injectivelabs/ts-types": "^1.14.13", + "axios": "^1.6.4", + "bignumber.js": "^9.0.1", + "http-status-codes": "^2.2.0", + "link-module-alias": "^1.2.0", + "shx": "^0.3.2", + "snakecase-keys": "^5.1.2", + "store2": "^2.12.0" + } + }, + "node_modules/@wormhole-foundation/sdk-cosmwasm-tokenbridge/node_modules/@noble/hashes": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.3.2.tgz", + "integrity": "sha512-MVC8EAQp7MvEcm30KWENFjgR+Mkmf+D189XJTkFIlwohU5hcBbn1ZkKq7KVTi2Hme3PMGF390DaL52beVrIihQ==", + "engines": { + "node": ">= 16" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/core-js" + "url": "https://paulmillr.com/funding/" } }, - "node_modules/core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" + "node_modules/@wormhole-foundation/sdk-cosmwasm-tokenbridge/node_modules/@types/node": { + "version": "18.15.13", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.15.13.tgz", + "integrity": "sha512-N+0kuo9KgrUQ1Sn/ifDXsvg0TTleP7rIy4zOBGECxAljqvqfqpTfzx0Q1NUedOixRMBfe2Whhb056a42cWs26Q==" }, - "node_modules/cosmjs-types": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/cosmjs-types/-/cosmjs-types-0.5.2.tgz", - "integrity": "sha512-zxCtIJj8v3Di7s39uN4LNcN3HIE1z0B9Z0SPE8ZNQR0oSzsuSe1ACgxoFkvhkS7WBasCAFcglS11G2hyfd5tPg==", + "node_modules/@wormhole-foundation/sdk-cosmwasm-tokenbridge/node_modules/aes-js": { + "version": "4.0.0-beta.5", + "resolved": "https://registry.npmjs.org/aes-js/-/aes-js-4.0.0-beta.5.tgz", + "integrity": "sha512-G965FqalsNyrPqgEGON7nIx1e/OVENSgiEIzyC63haUMuvNnwIgIjMs52hlTCKhkBny7A2ORNlfY9Zu+jmGk1Q==" + }, + "node_modules/@wormhole-foundation/sdk-cosmwasm-tokenbridge/node_modules/axios": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.3.tgz", + "integrity": "sha512-Ar7ND9pU99eJ9GpoGQKhKf58GpUOgnzuaB7ueNQ5BMi0p+LZ5oaEnfF999fAArcTIBwXTCHAmGcHOZJaWPq9Nw==", "dependencies": { - "long": "^4.0.0", - "protobufjs": "~6.11.2" + "follow-redirects": "^1.15.6", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" } }, - "node_modules/crc-32": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/crc-32/-/crc-32-1.2.0.tgz", - "integrity": "sha512-1uBwHxF+Y/4yF5G48fwnKq6QsIXheor3ZLPT80yGBV1oEUwpPojlEhQbWKVw1VwcTQyMGHK1/XMmTjmlsmTTGA==", + "node_modules/@wormhole-foundation/sdk-cosmwasm-tokenbridge/node_modules/cosmjs-types": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/cosmjs-types/-/cosmjs-types-0.9.0.tgz", + "integrity": "sha512-MN/yUe6mkJwHnCFfsNPeCfXVhyxHYW6c/xDUzrSbBycYzw++XvWDMJArXp2pLdgD6FQ8DW79vkPjeNKVrXaHeQ==" + }, + "node_modules/@wormhole-foundation/sdk-cosmwasm-tokenbridge/node_modules/ethers": { + "version": "6.13.2", + "resolved": "https://registry.npmjs.org/ethers/-/ethers-6.13.2.tgz", + "integrity": "sha512-9VkriTTed+/27BGuY1s0hf441kqwHJ1wtN2edksEtiRvXx+soxRX3iSXTfFqq2+YwrOqbDoTHjIhQnjJRlzKmg==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/ethers-io/" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], "dependencies": { - "exit-on-epipe": "~1.0.1", - "printj": "~1.1.0" - }, - "bin": { - "crc32": "bin/crc32.njs" + "@adraffy/ens-normalize": "1.10.1", + "@noble/curves": "1.2.0", + "@noble/hashes": "1.3.2", + "@types/node": "18.15.13", + "aes-js": "4.0.0-beta.5", + "tslib": "2.4.0", + "ws": "8.17.1" }, "engines": { - "node": ">=0.8" + "node": ">=14.0.0" } }, - "node_modules/create-hash": { + "node_modules/@wormhole-foundation/sdk-cosmwasm-tokenbridge/node_modules/ethers/node_modules/@noble/curves": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", - "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", + "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.2.0.tgz", + "integrity": "sha512-oYclrNgRaM9SsBUBVbb8M6DTV7ZHRTKugureoYEncY5c65HOmRzvSiTE3y5CYaPYJA/GVkrhXEoF0M3Ya9PMnw==", "dependencies": { - "cipher-base": "^1.0.1", - "inherits": "^2.0.1", - "md5.js": "^1.3.4", - "ripemd160": "^2.0.1", - "sha.js": "^2.4.0" + "@noble/hashes": "1.3.2" + }, + "funding": { + "url": "https://paulmillr.com/funding/" } }, - "node_modules/create-hmac": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", - "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", + "node_modules/@wormhole-foundation/sdk-cosmwasm-tokenbridge/node_modules/ethers/node_modules/ws": { + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.17.1.tgz", + "integrity": "sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ==", + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/@wormhole-foundation/sdk-cosmwasm-tokenbridge/node_modules/form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", "dependencies": { - "cipher-base": "^1.0.3", - "create-hash": "^1.1.0", - "inherits": "^2.0.1", - "ripemd160": "^2.0.0", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" - } - }, - "node_modules/create-jest": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/create-jest/-/create-jest-29.7.0.tgz", - "integrity": "sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==", - "dev": true, - "dependencies": { - "@jest/types": "^29.6.3", - "chalk": "^4.0.0", - "exit": "^0.1.2", - "graceful-fs": "^4.2.9", - "jest-config": "^29.7.0", - "jest-util": "^29.7.0", - "prompts": "^2.0.1" - }, - "bin": { - "create-jest": "bin/create-jest.js" + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">= 6" } }, - "node_modules/create-jest/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, + "node_modules/@wormhole-foundation/sdk-cosmwasm-tokenbridge/node_modules/long": { + "version": "5.2.3", + "resolved": "https://registry.npmjs.org/long/-/long-5.2.3.tgz", + "integrity": "sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q==" + }, + "node_modules/@wormhole-foundation/sdk-cosmwasm-tokenbridge/node_modules/protobufjs": { + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.3.2.tgz", + "integrity": "sha512-RXyHaACeqXeqAKGLDl68rQKbmObRsTIn4TYVUUug1KfS47YWCo5MacGITEryugIgZqORCvJWEk4l449POg5Txg==", + "hasInstallScript": true, "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" + "@protobufjs/aspromise": "^1.1.2", + "@protobufjs/base64": "^1.1.2", + "@protobufjs/codegen": "^2.0.4", + "@protobufjs/eventemitter": "^1.1.0", + "@protobufjs/fetch": "^1.1.0", + "@protobufjs/float": "^1.0.2", + "@protobufjs/inquire": "^1.1.0", + "@protobufjs/path": "^1.1.2", + "@protobufjs/pool": "^1.1.0", + "@protobufjs/utf8": "^1.1.0", + "@types/node": ">=13.7.0", + "long": "^5.0.0" }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/create-jest/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, "engines": { - "node": ">=8" + "node": ">=12.0.0" } }, - "node_modules/create-jest/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, + "node_modules/@wormhole-foundation/sdk-cosmwasm/node_modules/@cosmjs/amino": { + "version": "0.32.4", + "resolved": "https://registry.npmjs.org/@cosmjs/amino/-/amino-0.32.4.tgz", + "integrity": "sha512-zKYOt6hPy8obIFtLie/xtygCkH9ZROiQ12UHfKsOkWaZfPQUvVbtgmu6R4Kn1tFLI/SRkw7eqhaogmW/3NYu/Q==", "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" + "@cosmjs/crypto": "^0.32.4", + "@cosmjs/encoding": "^0.32.4", + "@cosmjs/math": "^0.32.4", + "@cosmjs/utils": "^0.32.4" } }, - "node_modules/cross-fetch": { - "version": "2.2.6", - "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-2.2.6.tgz", - "integrity": "sha512-9JZz+vXCmfKUZ68zAptS7k4Nu8e2qcibe7WVZYps7sAgk5R8GYTc+T1WR0v1rlP9HxgARmOX1UTIJZFytajpNA==", - "dev": true, + "node_modules/@wormhole-foundation/sdk-cosmwasm/node_modules/@cosmjs/cosmwasm-stargate": { + "version": "0.32.4", + "resolved": "https://registry.npmjs.org/@cosmjs/cosmwasm-stargate/-/cosmwasm-stargate-0.32.4.tgz", + "integrity": "sha512-Fuo9BGEiB+POJ5WeRyBGuhyKR1ordvxZGLPuPosFJOH9U0gKMgcjwKMCgAlWFkMlHaTB+tNdA8AifWiHrI7VgA==", "dependencies": { - "node-fetch": "^2.6.7", - "whatwg-fetch": "^2.0.4" + "@cosmjs/amino": "^0.32.4", + "@cosmjs/crypto": "^0.32.4", + "@cosmjs/encoding": "^0.32.4", + "@cosmjs/math": "^0.32.4", + "@cosmjs/proto-signing": "^0.32.4", + "@cosmjs/stargate": "^0.32.4", + "@cosmjs/tendermint-rpc": "^0.32.4", + "@cosmjs/utils": "^0.32.4", + "cosmjs-types": "^0.9.0", + "pako": "^2.0.2" } }, - "node_modules/cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dev": true, + "node_modules/@wormhole-foundation/sdk-cosmwasm/node_modules/@cosmjs/crypto": { + "version": "0.32.4", + "resolved": "https://registry.npmjs.org/@cosmjs/crypto/-/crypto-0.32.4.tgz", + "integrity": "sha512-zicjGU051LF1V9v7bp8p7ovq+VyC91xlaHdsFOTo2oVry3KQikp8L/81RkXmUIT8FxMwdx1T7DmFwVQikcSDIw==", "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" + "@cosmjs/encoding": "^0.32.4", + "@cosmjs/math": "^0.32.4", + "@cosmjs/utils": "^0.32.4", + "@noble/hashes": "^1", + "bn.js": "^5.2.0", + "elliptic": "^6.5.4", + "libsodium-wrappers-sumo": "^0.7.11" } }, - "node_modules/crypto-addr-codec": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/crypto-addr-codec/-/crypto-addr-codec-0.1.7.tgz", - "integrity": "sha512-X4hzfBzNhy4mAc3UpiXEC/L0jo5E8wAa9unsnA8nNXYzXjCcGk83hfC5avJWCSGT8V91xMnAS9AKMHmjw5+XCg==", + "node_modules/@wormhole-foundation/sdk-cosmwasm/node_modules/@cosmjs/encoding": { + "version": "0.32.4", + "resolved": "https://registry.npmjs.org/@cosmjs/encoding/-/encoding-0.32.4.tgz", + "integrity": "sha512-tjvaEy6ZGxJchiizzTn7HVRiyTg1i4CObRRaTRPknm5EalE13SV+TCHq38gIDfyUeden4fCuaBVEdBR5+ti7Hw==", "dependencies": { - "base-x": "^3.0.8", - "big-integer": "1.6.36", - "blakejs": "^1.1.0", - "bs58": "^4.0.1", - "ripemd160-min": "0.0.6", - "safe-buffer": "^5.2.0", - "sha3": "^2.1.1" + "base64-js": "^1.3.0", + "bech32": "^1.1.4", + "readonly-date": "^1.0.0" } }, - "node_modules/crypto-hash": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/crypto-hash/-/crypto-hash-1.3.0.tgz", - "integrity": "sha512-lyAZ0EMyjDkVvz8WOeVnuCPvKVBXcMv1l5SVqO1yC7PzTwrD/pPje/BIRbWhMoPe436U+Y2nD7f5bFx0kt+Sbg==", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } + "node_modules/@wormhole-foundation/sdk-cosmwasm/node_modules/@cosmjs/encoding/node_modules/bech32": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/bech32/-/bech32-1.1.4.tgz", + "integrity": "sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ==" }, - "node_modules/dashdash": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "integrity": "sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==", - "dev": true, + "node_modules/@wormhole-foundation/sdk-cosmwasm/node_modules/@cosmjs/json-rpc": { + "version": "0.32.4", + "resolved": "https://registry.npmjs.org/@cosmjs/json-rpc/-/json-rpc-0.32.4.tgz", + "integrity": "sha512-/jt4mBl7nYzfJ2J/VJ+r19c92mUKF0Lt0JxM3MXEJl7wlwW5haHAWtzRujHkyYMXOwIR+gBqT2S0vntXVBRyhQ==", "dependencies": { - "assert-plus": "^1.0.0" - }, - "engines": { - "node": ">=0.10" + "@cosmjs/stream": "^0.32.4", + "xstream": "^11.14.0" } }, - "node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, + "node_modules/@wormhole-foundation/sdk-cosmwasm/node_modules/@cosmjs/math": { + "version": "0.32.4", + "resolved": "https://registry.npmjs.org/@cosmjs/math/-/math-0.32.4.tgz", + "integrity": "sha512-++dqq2TJkoB8zsPVYCvrt88oJWsy1vMOuSOKcdlnXuOA/ASheTJuYy4+oZlTQ3Fr8eALDLGGPhJI02W2HyAQaw==", "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } + "bn.js": "^5.2.0" } }, - "node_modules/decimal.js": { - "version": "10.3.1", - "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.3.1.tgz", - "integrity": "sha512-V0pfhfr8suzyPGOx3nmq4aHqabehUZn6Ch9kyFpV79TGDTWFmHqUqXdabR7QHqxzrYolF4+tVmJhUG4OURg5dQ==" - }, - "node_modules/dedent": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.5.1.tgz", - "integrity": "sha512-+LxW+KLWxu3HW3M2w2ympwtqPrqYRzU8fqi6Fhd18fBALe15blJPI/I4+UHveMVG6lJqB4JNd4UG0S5cnVHwIg==", - "dev": true, - "peerDependencies": { - "babel-plugin-macros": "^3.1.0" - }, - "peerDependenciesMeta": { - "babel-plugin-macros": { - "optional": true - } + "node_modules/@wormhole-foundation/sdk-cosmwasm/node_modules/@cosmjs/proto-signing": { + "version": "0.32.4", + "resolved": "https://registry.npmjs.org/@cosmjs/proto-signing/-/proto-signing-0.32.4.tgz", + "integrity": "sha512-QdyQDbezvdRI4xxSlyM1rSVBO2st5sqtbEIl3IX03uJ7YiZIQHyv6vaHVf1V4mapusCqguiHJzm4N4gsFdLBbQ==", + "dependencies": { + "@cosmjs/amino": "^0.32.4", + "@cosmjs/crypto": "^0.32.4", + "@cosmjs/encoding": "^0.32.4", + "@cosmjs/math": "^0.32.4", + "@cosmjs/utils": "^0.32.4", + "cosmjs-types": "^0.9.0" } }, - "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" + "node_modules/@wormhole-foundation/sdk-cosmwasm/node_modules/@cosmjs/socket": { + "version": "0.32.4", + "resolved": "https://registry.npmjs.org/@cosmjs/socket/-/socket-0.32.4.tgz", + "integrity": "sha512-davcyYziBhkzfXQTu1l5NrpDYv0K9GekZCC9apBRvL1dvMc9F/ygM7iemHjUA+z8tJkxKxrt/YPjJ6XNHzLrkw==", + "dependencies": { + "@cosmjs/stream": "^0.32.4", + "isomorphic-ws": "^4.0.1", + "ws": "^7", + "xstream": "^11.14.0" } }, - "node_modules/deferred-leveldown": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/deferred-leveldown/-/deferred-leveldown-1.2.2.tgz", - "integrity": "sha512-uukrWD2bguRtXilKt6cAWKyoXrTSMo5m7crUdLfWQmu8kIm88w3QZoUL+6nhpfKVmhHANER6Re3sKoNoZ3IKMA==", - "dev": true, + "node_modules/@wormhole-foundation/sdk-cosmwasm/node_modules/@cosmjs/stargate": { + "version": "0.32.4", + "resolved": "https://registry.npmjs.org/@cosmjs/stargate/-/stargate-0.32.4.tgz", + "integrity": "sha512-usj08LxBSsPRq9sbpCeVdyLx2guEcOHfJS9mHGCLCXpdAPEIEQEtWLDpEUc0LEhWOx6+k/ChXTc5NpFkdrtGUQ==", "dependencies": { - "abstract-leveldown": "~2.6.0" + "@confio/ics23": "^0.6.8", + "@cosmjs/amino": "^0.32.4", + "@cosmjs/encoding": "^0.32.4", + "@cosmjs/math": "^0.32.4", + "@cosmjs/proto-signing": "^0.32.4", + "@cosmjs/stream": "^0.32.4", + "@cosmjs/tendermint-rpc": "^0.32.4", + "@cosmjs/utils": "^0.32.4", + "cosmjs-types": "^0.9.0", + "xstream": "^11.14.0" } }, - "node_modules/define-properties": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz", - "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==", + "node_modules/@wormhole-foundation/sdk-cosmwasm/node_modules/@cosmjs/stream": { + "version": "0.32.4", + "resolved": "https://registry.npmjs.org/@cosmjs/stream/-/stream-0.32.4.tgz", + "integrity": "sha512-Gih++NYHEiP+oyD4jNEUxU9antoC0pFSg+33Hpp0JlHwH0wXhtD3OOKnzSfDB7OIoEbrzLJUpEjOgpCp5Z+W3A==", "dependencies": { - "has-property-descriptors": "^1.0.0", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "xstream": "^11.14.0" } }, - "node_modules/delay": { - "version": "5.0.0", - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node_modules/@wormhole-foundation/sdk-cosmwasm/node_modules/@cosmjs/tendermint-rpc": { + "version": "0.32.4", + "resolved": "https://registry.npmjs.org/@cosmjs/tendermint-rpc/-/tendermint-rpc-0.32.4.tgz", + "integrity": "sha512-MWvUUno+4bCb/LmlMIErLypXxy7ckUuzEmpufYYYd9wgbdCXaTaO08SZzyFM5PI8UJ/0S2AmUrgWhldlbxO8mw==", + "dependencies": { + "@cosmjs/crypto": "^0.32.4", + "@cosmjs/encoding": "^0.32.4", + "@cosmjs/json-rpc": "^0.32.4", + "@cosmjs/math": "^0.32.4", + "@cosmjs/socket": "^0.32.4", + "@cosmjs/stream": "^0.32.4", + "@cosmjs/utils": "^0.32.4", + "axios": "^1.6.0", + "readonly-date": "^1.0.0", + "xstream": "^11.14.0" } }, - "node_modules/delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", - "engines": { - "node": ">=0.4.0" - } + "node_modules/@wormhole-foundation/sdk-cosmwasm/node_modules/@cosmjs/utils": { + "version": "0.32.4", + "resolved": "https://registry.npmjs.org/@cosmjs/utils/-/utils-0.32.4.tgz", + "integrity": "sha512-D1Yc+Zy8oL/hkUkFUL/bwxvuDBzRGpc4cF7/SkdhxX4iHpSLgdOuTt1mhCh9+kl6NQREy9t7SYZ6xeW5gFe60w==" }, - "node_modules/depd": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", - "engines": { - "node": ">= 0.6" + "node_modules/@wormhole-foundation/sdk-cosmwasm/node_modules/@injectivelabs/core-proto-ts": { + "version": "0.0.21", + "resolved": "https://registry.npmjs.org/@injectivelabs/core-proto-ts/-/core-proto-ts-0.0.21.tgz", + "integrity": "sha512-RBxSkRBCty60R/l55/D1jsSW0Aof5dyGFhCFdN3A010KjMv/SzZGGr+6DZPY/hflyFeaJzDv/VTopCymKNRBvQ==", + "dependencies": { + "@injectivelabs/grpc-web": "^0.0.1", + "google-protobuf": "^3.14.0", + "protobufjs": "^7.0.0", + "rxjs": "^7.4.0" } }, - "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, - "engines": { - "node": ">=8" + "node_modules/@wormhole-foundation/sdk-cosmwasm/node_modules/@injectivelabs/indexer-proto-ts": { + "version": "1.11.42", + "resolved": "https://registry.npmjs.org/@injectivelabs/indexer-proto-ts/-/indexer-proto-ts-1.11.42.tgz", + "integrity": "sha512-6ejCpcWZWOSsELFIfUf2+xuJPOH+YdiJtwtB3d9x2H7dnrCBjXMxlPCSxoKEUbDH6w/lY2mO6TJm65rNy9piew==", + "dependencies": { + "@injectivelabs/grpc-web": "^0.0.1", + "google-protobuf": "^3.14.0", + "protobufjs": "^7.0.0", + "rxjs": "^7.4.0" } }, - "node_modules/diff-sequences": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz", - "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==", - "dev": true, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node_modules/@wormhole-foundation/sdk-cosmwasm/node_modules/@injectivelabs/mito-proto-ts": { + "version": "1.0.65", + "resolved": "https://registry.npmjs.org/@injectivelabs/mito-proto-ts/-/mito-proto-ts-1.0.65.tgz", + "integrity": "sha512-kceZP68QrgFop387RYyO7tkfJCYxoktuceHTs9DQP3dJceLqj/V2mz0NlpkkacjgE5NhYkQ/zc0Z40hr8tnYqQ==", + "dependencies": { + "@injectivelabs/grpc-web": "^0.0.1", + "google-protobuf": "^3.14.0", + "protobufjs": "^7.0.0", + "rxjs": "^7.4.0" } }, - "node_modules/dom-walk": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/dom-walk/-/dom-walk-0.1.2.tgz", - "integrity": "sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w==", - "dev": true + "node_modules/@wormhole-foundation/sdk-cosmwasm/node_modules/@injectivelabs/networks": { + "version": "1.14.13", + "resolved": "https://registry.npmjs.org/@injectivelabs/networks/-/networks-1.14.13.tgz", + "integrity": "sha512-P+eCQXWpbk4LbPxgTmi2gY7OzdZTNsIEUvDoh59Ma0CkqSFaYMtgB8fZVxpkKM0UPla587EDlEEIVxprDBcnZg==", + "hasInstallScript": true, + "dependencies": { + "@injectivelabs/exceptions": "^1.14.13", + "@injectivelabs/ts-types": "^1.14.13", + "@injectivelabs/utils": "^1.14.13", + "link-module-alias": "^1.2.0", + "shx": "^0.3.2" + } }, - "node_modules/dot-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz", - "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==", + "node_modules/@wormhole-foundation/sdk-cosmwasm/node_modules/@injectivelabs/sdk-ts": { + "version": "1.14.13", + "resolved": "https://registry.npmjs.org/@injectivelabs/sdk-ts/-/sdk-ts-1.14.13.tgz", + "integrity": "sha512-qcLoIu+hEMpuvdG0iXGNJvWQD05NkcO59tL3ijEhYmshlJWBMWJtpJJGt/E/hV9YxJfNTl20Rhi/5i7l0y8Hfg==", + "hasInstallScript": true, "dependencies": { - "no-case": "^3.0.4", - "tslib": "^2.0.3" + "@apollo/client": "^3.5.8", + "@cosmjs/amino": "^0.32.3", + "@cosmjs/proto-signing": "^0.32.3", + "@cosmjs/stargate": "^0.32.3", + "@ethersproject/bytes": "^5.7.0", + "@injectivelabs/core-proto-ts": "^0.0.21", + "@injectivelabs/dmm-proto-ts": "1.0.20", + "@injectivelabs/exceptions": "^1.14.13", + "@injectivelabs/grpc-web": "^0.0.1", + "@injectivelabs/grpc-web-node-http-transport": "^0.0.2", + "@injectivelabs/grpc-web-react-native-transport": "^0.0.2", + "@injectivelabs/indexer-proto-ts": "1.11.42", + "@injectivelabs/mito-proto-ts": "1.0.65", + "@injectivelabs/networks": "^1.14.13", + "@injectivelabs/test-utils": "^1.14.13", + "@injectivelabs/ts-types": "^1.14.13", + "@injectivelabs/utils": "^1.14.13", + "@metamask/eth-sig-util": "^4.0.0", + "@noble/curves": "^1.4.0", + "axios": "^1.6.4", + "bech32": "^2.0.0", + "bip39": "^3.0.4", + "cosmjs-types": "^0.9.0", + "ethereumjs-util": "^7.1.4", + "ethers": "^6.5.1", + "google-protobuf": "^3.21.0", + "graphql": "^16.3.0", + "http-status-codes": "^2.2.0", + "js-sha3": "^0.8.0", + "jscrypto": "^1.0.3", + "keccak256": "^1.0.6", + "link-module-alias": "^1.2.0", + "secp256k1": "^4.0.3", + "shx": "^0.3.2", + "snakecase-keys": "^5.4.1" } }, - "node_modules/dotenv": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-10.0.0.tgz", - "integrity": "sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q==", + "node_modules/@wormhole-foundation/sdk-cosmwasm/node_modules/@injectivelabs/utils": { + "version": "1.14.13", + "resolved": "https://registry.npmjs.org/@injectivelabs/utils/-/utils-1.14.13.tgz", + "integrity": "sha512-djmSq28R7HDSb2Mezan+EFjqQgmDRydY+fLOmkODwOCYA04xOGQo7yna+WVovV85aKpwPjn864AWPy65xiHUZg==", + "hasInstallScript": true, + "dependencies": { + "@injectivelabs/exceptions": "^1.14.13", + "@injectivelabs/ts-types": "^1.14.13", + "axios": "^1.6.4", + "bignumber.js": "^9.0.1", + "http-status-codes": "^2.2.0", + "link-module-alias": "^1.2.0", + "shx": "^0.3.2", + "snakecase-keys": "^5.1.2", + "store2": "^2.12.0" + } + }, + "node_modules/@wormhole-foundation/sdk-cosmwasm/node_modules/@noble/hashes": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.3.2.tgz", + "integrity": "sha512-MVC8EAQp7MvEcm30KWENFjgR+Mkmf+D189XJTkFIlwohU5hcBbn1ZkKq7KVTi2Hme3PMGF390DaL52beVrIihQ==", "engines": { - "node": ">=10" + "node": ">= 16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" } }, - "node_modules/drbg.js": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/drbg.js/-/drbg.js-1.0.1.tgz", - "integrity": "sha512-F4wZ06PvqxYLFEZKkFxTDcns9oFNk34hvmJSEwdzsxVQ8YI5YaxtACgQatkYgv2VI2CFkUd2Y+xosPQnHv809g==", - "optional": true, + "node_modules/@wormhole-foundation/sdk-cosmwasm/node_modules/@types/node": { + "version": "18.15.13", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.15.13.tgz", + "integrity": "sha512-N+0kuo9KgrUQ1Sn/ifDXsvg0TTleP7rIy4zOBGECxAljqvqfqpTfzx0Q1NUedOixRMBfe2Whhb056a42cWs26Q==" + }, + "node_modules/@wormhole-foundation/sdk-cosmwasm/node_modules/aes-js": { + "version": "4.0.0-beta.5", + "resolved": "https://registry.npmjs.org/aes-js/-/aes-js-4.0.0-beta.5.tgz", + "integrity": "sha512-G965FqalsNyrPqgEGON7nIx1e/OVENSgiEIzyC63haUMuvNnwIgIjMs52hlTCKhkBny7A2ORNlfY9Zu+jmGk1Q==" + }, + "node_modules/@wormhole-foundation/sdk-cosmwasm/node_modules/axios": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.3.tgz", + "integrity": "sha512-Ar7ND9pU99eJ9GpoGQKhKf58GpUOgnzuaB7ueNQ5BMi0p+LZ5oaEnfF999fAArcTIBwXTCHAmGcHOZJaWPq9Nw==", "dependencies": { - "browserify-aes": "^1.0.6", - "create-hash": "^1.1.2", - "create-hmac": "^1.1.4" + "follow-redirects": "^1.15.6", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" + } + }, + "node_modules/@wormhole-foundation/sdk-cosmwasm/node_modules/cosmjs-types": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/cosmjs-types/-/cosmjs-types-0.9.0.tgz", + "integrity": "sha512-MN/yUe6mkJwHnCFfsNPeCfXVhyxHYW6c/xDUzrSbBycYzw++XvWDMJArXp2pLdgD6FQ8DW79vkPjeNKVrXaHeQ==" + }, + "node_modules/@wormhole-foundation/sdk-cosmwasm/node_modules/ethers": { + "version": "6.13.2", + "resolved": "https://registry.npmjs.org/ethers/-/ethers-6.13.2.tgz", + "integrity": "sha512-9VkriTTed+/27BGuY1s0hf441kqwHJ1wtN2edksEtiRvXx+soxRX3iSXTfFqq2+YwrOqbDoTHjIhQnjJRlzKmg==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/ethers-io/" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@adraffy/ens-normalize": "1.10.1", + "@noble/curves": "1.2.0", + "@noble/hashes": "1.3.2", + "@types/node": "18.15.13", + "aes-js": "4.0.0-beta.5", + "tslib": "2.4.0", + "ws": "8.17.1" }, "engines": { - "node": ">=0.10" + "node": ">=14.0.0" } }, - "node_modules/ecc-jsbn": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", - "integrity": "sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==", - "dev": true, + "node_modules/@wormhole-foundation/sdk-cosmwasm/node_modules/ethers/node_modules/@noble/curves": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.2.0.tgz", + "integrity": "sha512-oYclrNgRaM9SsBUBVbb8M6DTV7ZHRTKugureoYEncY5c65HOmRzvSiTE3y5CYaPYJA/GVkrhXEoF0M3Ya9PMnw==", "dependencies": { - "jsbn": "~0.1.0", - "safer-buffer": "^2.1.0" + "@noble/hashes": "1.3.2" + }, + "funding": { + "url": "https://paulmillr.com/funding/" } }, - "node_modules/eccrypto": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/eccrypto/-/eccrypto-1.1.6.tgz", - "integrity": "sha512-d78ivVEzu7Tn0ZphUUaL43+jVPKTMPFGtmgtz1D0LrFn7cY3K8CdrvibuLz2AAkHBLKZtR8DMbB2ukRYFk987A==", - "hasInstallScript": true, - "dependencies": { - "acorn": "7.1.1", - "elliptic": "6.5.4", - "es6-promise": "4.2.8", - "nan": "2.14.0" + "node_modules/@wormhole-foundation/sdk-cosmwasm/node_modules/ethers/node_modules/ws": { + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.17.1.tgz", + "integrity": "sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ==", + "engines": { + "node": ">=10.0.0" }, - "optionalDependencies": { - "secp256k1": "3.7.1" + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } } }, - "node_modules/eccrypto/node_modules/acorn": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.1.1.tgz", - "integrity": "sha512-add7dgA5ppRPxCFJoAGfMDi7PIBXq1RtGo7BhbLaxwrXPOmw8gq48Y9ozT01hUKy9byMjlR20EJhu5zlkErEkg==", - "bin": { - "acorn": "bin/acorn" + "node_modules/@wormhole-foundation/sdk-cosmwasm/node_modules/form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" }, "engines": { - "node": ">=0.4.0" + "node": ">= 6" } }, - "node_modules/eccrypto/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "optional": true - }, - "node_modules/eccrypto/node_modules/nan": { - "version": "2.14.0", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.0.tgz", - "integrity": "sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg==" + "node_modules/@wormhole-foundation/sdk-cosmwasm/node_modules/long": { + "version": "5.2.3", + "resolved": "https://registry.npmjs.org/long/-/long-5.2.3.tgz", + "integrity": "sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q==" }, - "node_modules/eccrypto/node_modules/secp256k1": { - "version": "3.7.1", - "resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-3.7.1.tgz", - "integrity": "sha512-1cf8sbnRreXrQFdH6qsg2H71Xw91fCCS9Yp021GnUNJzWJS/py96fS4lHbnTnouLp08Xj6jBoBB6V78Tdbdu5g==", + "node_modules/@wormhole-foundation/sdk-cosmwasm/node_modules/protobufjs": { + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.3.2.tgz", + "integrity": "sha512-RXyHaACeqXeqAKGLDl68rQKbmObRsTIn4TYVUUug1KfS47YWCo5MacGITEryugIgZqORCvJWEk4l449POg5Txg==", "hasInstallScript": true, - "optional": true, "dependencies": { - "bindings": "^1.5.0", - "bip66": "^1.1.5", - "bn.js": "^4.11.8", - "create-hash": "^1.2.0", - "drbg.js": "^1.0.1", - "elliptic": "^6.4.1", - "nan": "^2.14.0", - "safe-buffer": "^5.1.2" + "@protobufjs/aspromise": "^1.1.2", + "@protobufjs/base64": "^1.1.2", + "@protobufjs/codegen": "^2.0.4", + "@protobufjs/eventemitter": "^1.1.0", + "@protobufjs/fetch": "^1.1.0", + "@protobufjs/float": "^1.0.2", + "@protobufjs/inquire": "^1.1.0", + "@protobufjs/path": "^1.1.2", + "@protobufjs/pool": "^1.1.0", + "@protobufjs/utf8": "^1.1.0", + "@types/node": ">=13.7.0", + "long": "^5.0.0" }, "engines": { - "node": ">=4.0.0" + "node": ">=12.0.0" } }, - "node_modules/electron-to-chromium": { - "version": "1.4.714", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.714.tgz", - "integrity": "sha512-OfnVHt+nMRH9Ua5koH/2gKlCAXbG+u1yXwLKyBVqNboBV34ZTwb846RUe8K5mtE1uhz0BXoMarZ13JCQr+sBtQ==", - "dev": true - }, - "node_modules/elliptic": { - "version": "6.5.4", - "license": "MIT", + "node_modules/@wormhole-foundation/sdk-definitions": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/@wormhole-foundation/sdk-definitions/-/sdk-definitions-0.9.0.tgz", + "integrity": "sha512-jgzXJ2K4fk38cW53H58P6BJ8KSbEw1zTe57lkfUTXteaZXjx8NyaeNXVDrjjn0LVvb9CdSyZWBrWdRQs4GGv9g==", "dependencies": { - "bn.js": "^4.11.9", - "brorand": "^1.1.0", - "hash.js": "^1.0.0", - "hmac-drbg": "^1.0.1", - "inherits": "^2.0.4", - "minimalistic-assert": "^1.0.1", - "minimalistic-crypto-utils": "^1.0.1" + "@noble/curves": "^1.4.0", + "@noble/hashes": "^1.3.1", + "@wormhole-foundation/sdk-base": "0.9.0" } }, - "node_modules/elliptic/node_modules/bn.js": { - "version": "4.12.0", - "license": "MIT" - }, - "node_modules/emittery": { - "version": "0.13.1", - "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.13.1.tgz", - "integrity": "sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==", - "dev": true, + "node_modules/@wormhole-foundation/sdk-definitions/node_modules/@noble/hashes": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.4.0.tgz", + "integrity": "sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg==", "engines": { - "node": ">=12" + "node": ">= 16" }, "funding": { - "url": "https://github.com/sindresorhus/emittery?sponsor=1" + "url": "https://paulmillr.com/funding/" } }, - "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/encoding": { - "version": "0.1.13", - "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", - "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", - "optional": true, - "peer": true, + "node_modules/@wormhole-foundation/sdk-evm": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/@wormhole-foundation/sdk-evm/-/sdk-evm-0.9.0.tgz", + "integrity": "sha512-UBOo/jdTEsueO/7678lZJH0Z4vydzjo6PvF8RuIY6XkZIHDj92NSGN/roh783WrK3AYdPR5zyutMxZrkJjWPRg==", "dependencies": { - "iconv-lite": "^0.6.2" + "@wormhole-foundation/sdk-connect": "0.9.0", + "ethers": "^6.5.1" + }, + "engines": { + "node": ">=16" } }, - "node_modules/encoding/node_modules/iconv-lite": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", - "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", - "optional": true, - "peer": true, + "node_modules/@wormhole-foundation/sdk-evm-cctp": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/@wormhole-foundation/sdk-evm-cctp/-/sdk-evm-cctp-0.9.0.tgz", + "integrity": "sha512-wcyVIjnRwfXy3cvqV2xzESI0XdWB7zlUfhaC0Qcy5I1YLChaw6K+NQO+8KYGZ37ocnEX6PzzlCCJfxabgbE3Wg==", "dependencies": { - "safer-buffer": ">= 2.1.2 < 3.0.0" + "@wormhole-foundation/sdk-connect": "0.9.0", + "@wormhole-foundation/sdk-evm": "0.9.0", + "ethers": "^6.5.1" }, "engines": { - "node": ">=0.10.0" + "node": ">=16" } }, - "node_modules/errno": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz", - "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==", - "dev": true, + "node_modules/@wormhole-foundation/sdk-evm-cctp/node_modules/@noble/curves": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.2.0.tgz", + "integrity": "sha512-oYclrNgRaM9SsBUBVbb8M6DTV7ZHRTKugureoYEncY5c65HOmRzvSiTE3y5CYaPYJA/GVkrhXEoF0M3Ya9PMnw==", "dependencies": { - "prr": "~1.0.1" + "@noble/hashes": "1.3.2" }, - "bin": { - "errno": "cli.js" + "funding": { + "url": "https://paulmillr.com/funding/" } }, - "node_modules/error-ex": { + "node_modules/@wormhole-foundation/sdk-evm-cctp/node_modules/@noble/hashes": { "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" + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.3.2.tgz", + "integrity": "sha512-MVC8EAQp7MvEcm30KWENFjgR+Mkmf+D189XJTkFIlwohU5hcBbn1ZkKq7KVTi2Hme3PMGF390DaL52beVrIihQ==", + "engines": { + "node": ">= 16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" } }, - "node_modules/error-polyfill": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/error-polyfill/-/error-polyfill-0.1.3.tgz", - "integrity": "sha512-XHJk60ufE+TG/ydwp4lilOog549iiQF2OAPhkk9DdiYWMrltz5yhDz/xnKuenNwP7gy3dsibssO5QpVhkrSzzg==", - "dependencies": { - "capability": "^0.2.5", - "o3": "^1.0.3", - "u3": "^0.1.1" - } + "node_modules/@wormhole-foundation/sdk-evm-cctp/node_modules/@types/node": { + "version": "18.15.13", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.15.13.tgz", + "integrity": "sha512-N+0kuo9KgrUQ1Sn/ifDXsvg0TTleP7rIy4zOBGECxAljqvqfqpTfzx0Q1NUedOixRMBfe2Whhb056a42cWs26Q==" }, - "node_modules/es6-promise": { - "version": "4.2.8", - "license": "MIT" + "node_modules/@wormhole-foundation/sdk-evm-cctp/node_modules/aes-js": { + "version": "4.0.0-beta.5", + "resolved": "https://registry.npmjs.org/aes-js/-/aes-js-4.0.0-beta.5.tgz", + "integrity": "sha512-G965FqalsNyrPqgEGON7nIx1e/OVENSgiEIzyC63haUMuvNnwIgIjMs52hlTCKhkBny7A2ORNlfY9Zu+jmGk1Q==" }, - "node_modules/es6-promisify": { - "version": "5.0.0", - "license": "MIT", - "dependencies": { - "es6-promise": "^4.0.3" + "node_modules/@wormhole-foundation/sdk-evm-cctp/node_modules/ethers": { + "version": "6.13.2", + "resolved": "https://registry.npmjs.org/ethers/-/ethers-6.13.2.tgz", + "integrity": "sha512-9VkriTTed+/27BGuY1s0hf441kqwHJ1wtN2edksEtiRvXx+soxRX3iSXTfFqq2+YwrOqbDoTHjIhQnjJRlzKmg==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/ethers-io/" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@adraffy/ens-normalize": "1.10.1", + "@noble/curves": "1.2.0", + "@noble/hashes": "1.3.2", + "@types/node": "18.15.13", + "aes-js": "4.0.0-beta.5", + "tslib": "2.4.0", + "ws": "8.17.1" + }, + "engines": { + "node": ">=14.0.0" } }, - "node_modules/esbuild": { - "version": "0.17.18", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.17.18.tgz", - "integrity": "sha512-z1lix43jBs6UKjcZVKOw2xx69ffE2aG0PygLL5qJ9OS/gy0Ewd1gW/PUQIOIQGXBHWNywSc0floSKoMFF8aK2w==", - "hasInstallScript": true, - "bin": { - "esbuild": "bin/esbuild" - }, + "node_modules/@wormhole-foundation/sdk-evm-cctp/node_modules/ws": { + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.17.1.tgz", + "integrity": "sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ==", "engines": { - "node": ">=12" + "node": ">=10.0.0" }, - "optionalDependencies": { - "@esbuild/android-arm": "0.17.18", - "@esbuild/android-arm64": "0.17.18", - "@esbuild/android-x64": "0.17.18", - "@esbuild/darwin-arm64": "0.17.18", - "@esbuild/darwin-x64": "0.17.18", - "@esbuild/freebsd-arm64": "0.17.18", - "@esbuild/freebsd-x64": "0.17.18", - "@esbuild/linux-arm": "0.17.18", - "@esbuild/linux-arm64": "0.17.18", - "@esbuild/linux-ia32": "0.17.18", - "@esbuild/linux-loong64": "0.17.18", - "@esbuild/linux-mips64el": "0.17.18", - "@esbuild/linux-ppc64": "0.17.18", - "@esbuild/linux-riscv64": "0.17.18", - "@esbuild/linux-s390x": "0.17.18", - "@esbuild/linux-x64": "0.17.18", - "@esbuild/netbsd-x64": "0.17.18", - "@esbuild/openbsd-x64": "0.17.18", - "@esbuild/sunos-x64": "0.17.18", - "@esbuild/win32-arm64": "0.17.18", - "@esbuild/win32-ia32": "0.17.18", - "@esbuild/win32-x64": "0.17.18" + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } } }, - "node_modules/escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "node_modules/@wormhole-foundation/sdk-evm-core": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/@wormhole-foundation/sdk-evm-core/-/sdk-evm-core-0.9.0.tgz", + "integrity": "sha512-wMWOt218KFzKnCFx10EMrDYOUo8pAC89lHaPNMK0t0IYT5IhDzLqe/sUwYhLh10KeJ0kPXOQYf2m5VEY8gm58Q==", + "dependencies": { + "@wormhole-foundation/sdk-connect": "0.9.0", + "@wormhole-foundation/sdk-evm": "0.9.0", + "ethers": "^6.5.1" + }, "engines": { - "node": ">=6" + "node": ">=16" } }, - "node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "node_modules/@wormhole-foundation/sdk-evm-core/node_modules/@noble/curves": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.2.0.tgz", + "integrity": "sha512-oYclrNgRaM9SsBUBVbb8M6DTV7ZHRTKugureoYEncY5c65HOmRzvSiTE3y5CYaPYJA/GVkrhXEoF0M3Ya9PMnw==", + "dependencies": { + "@noble/hashes": "1.3.2" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@wormhole-foundation/sdk-evm-core/node_modules/@noble/hashes": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.3.2.tgz", + "integrity": "sha512-MVC8EAQp7MvEcm30KWENFjgR+Mkmf+D189XJTkFIlwohU5hcBbn1ZkKq7KVTi2Hme3PMGF390DaL52beVrIihQ==", "engines": { - "node": ">=0.8.0" + "node": ">= 16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" } }, - "node_modules/esprima": { - "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, - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" + "node_modules/@wormhole-foundation/sdk-evm-core/node_modules/@types/node": { + "version": "18.15.13", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.15.13.tgz", + "integrity": "sha512-N+0kuo9KgrUQ1Sn/ifDXsvg0TTleP7rIy4zOBGECxAljqvqfqpTfzx0Q1NUedOixRMBfe2Whhb056a42cWs26Q==" + }, + "node_modules/@wormhole-foundation/sdk-evm-core/node_modules/aes-js": { + "version": "4.0.0-beta.5", + "resolved": "https://registry.npmjs.org/aes-js/-/aes-js-4.0.0-beta.5.tgz", + "integrity": "sha512-G965FqalsNyrPqgEGON7nIx1e/OVENSgiEIzyC63haUMuvNnwIgIjMs52hlTCKhkBny7A2ORNlfY9Zu+jmGk1Q==" + }, + "node_modules/@wormhole-foundation/sdk-evm-core/node_modules/ethers": { + "version": "6.13.2", + "resolved": "https://registry.npmjs.org/ethers/-/ethers-6.13.2.tgz", + "integrity": "sha512-9VkriTTed+/27BGuY1s0hf441kqwHJ1wtN2edksEtiRvXx+soxRX3iSXTfFqq2+YwrOqbDoTHjIhQnjJRlzKmg==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/ethers-io/" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@adraffy/ens-normalize": "1.10.1", + "@noble/curves": "1.2.0", + "@noble/hashes": "1.3.2", + "@types/node": "18.15.13", + "aes-js": "4.0.0-beta.5", + "tslib": "2.4.0", + "ws": "8.17.1" }, "engines": { - "node": ">=4" + "node": ">=14.0.0" } }, - "node_modules/eth-block-tracker": { - "version": "4.4.3", - "resolved": "https://registry.npmjs.org/eth-block-tracker/-/eth-block-tracker-4.4.3.tgz", - "integrity": "sha512-A8tG4Z4iNg4mw5tP1Vung9N9IjgMNqpiMoJ/FouSFwNCGHv2X0mmOYwtQOJzki6XN7r7Tyo01S29p7b224I4jw==", - "dev": true, + "node_modules/@wormhole-foundation/sdk-evm-core/node_modules/ws": { + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.17.1.tgz", + "integrity": "sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ==", + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/@wormhole-foundation/sdk-evm-portico": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/@wormhole-foundation/sdk-evm-portico/-/sdk-evm-portico-0.9.0.tgz", + "integrity": "sha512-nwZ3l3xtLXV+1PPQzvcLNtRgqUK8+B5SHpha3rIgdHSGLBnyYYGsqUjZ/zKH25Ll2XRpMy4A4YpDAnfBJ0xx6Q==", "dependencies": { - "@babel/plugin-transform-runtime": "^7.5.5", - "@babel/runtime": "^7.5.5", - "eth-query": "^2.1.0", - "json-rpc-random-id": "^1.0.1", - "pify": "^3.0.0", - "safe-event-emitter": "^1.0.1" + "@wormhole-foundation/sdk-connect": "0.9.0", + "@wormhole-foundation/sdk-evm": "0.9.0", + "@wormhole-foundation/sdk-evm-core": "0.9.0", + "@wormhole-foundation/sdk-evm-tokenbridge": "0.9.0", + "ethers": "^6.5.1" + }, + "engines": { + "node": ">=16" } }, - "node_modules/eth-crypto": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/eth-crypto/-/eth-crypto-2.6.0.tgz", - "integrity": "sha512-GCX4ffFYRUGgnuWR5qxcZIRQJ1KEqPFiyXU9yVy7s6dtXIMlUXZQ2h+5ID6rFaOHWbpJbjfkC6YdhwtwRYCnug==", + "node_modules/@wormhole-foundation/sdk-evm-portico/node_modules/@noble/curves": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.2.0.tgz", + "integrity": "sha512-oYclrNgRaM9SsBUBVbb8M6DTV7ZHRTKugureoYEncY5c65HOmRzvSiTE3y5CYaPYJA/GVkrhXEoF0M3Ya9PMnw==", "dependencies": { - "@babel/runtime": "7.20.13", - "@ethereumjs/tx": "3.5.2", - "@types/bn.js": "5.1.1", - "eccrypto": "1.1.6", - "ethereumjs-util": "7.1.5", - "ethers": "5.7.2", - "secp256k1": "5.0.0" + "@noble/hashes": "1.3.2" }, "funding": { - "url": "https://github.com/sponsors/pubkey" + "url": "https://paulmillr.com/funding/" } }, - "node_modules/eth-crypto/node_modules/node-addon-api": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-5.1.0.tgz", - "integrity": "sha512-eh0GgfEkpnoWDq+VY8OyvYhFEzBk6jIYbRKdIlyTiAXIVJ8PyBaKb0rp7oDtoddbdoHWhq8wwr+XZ81F1rpNdA==" + "node_modules/@wormhole-foundation/sdk-evm-portico/node_modules/@noble/hashes": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.3.2.tgz", + "integrity": "sha512-MVC8EAQp7MvEcm30KWENFjgR+Mkmf+D189XJTkFIlwohU5hcBbn1ZkKq7KVTi2Hme3PMGF390DaL52beVrIihQ==", + "engines": { + "node": ">= 16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } }, - "node_modules/eth-crypto/node_modules/secp256k1": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-5.0.0.tgz", - "integrity": "sha512-TKWX8xvoGHrxVdqbYeZM9w+izTF4b9z3NhSaDkdn81btvuh+ivbIMGT/zQvDtTFWhRlThpoz6LEYTr7n8A5GcA==", - "hasInstallScript": true, + "node_modules/@wormhole-foundation/sdk-evm-portico/node_modules/@types/node": { + "version": "18.15.13", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.15.13.tgz", + "integrity": "sha512-N+0kuo9KgrUQ1Sn/ifDXsvg0TTleP7rIy4zOBGECxAljqvqfqpTfzx0Q1NUedOixRMBfe2Whhb056a42cWs26Q==" + }, + "node_modules/@wormhole-foundation/sdk-evm-portico/node_modules/aes-js": { + "version": "4.0.0-beta.5", + "resolved": "https://registry.npmjs.org/aes-js/-/aes-js-4.0.0-beta.5.tgz", + "integrity": "sha512-G965FqalsNyrPqgEGON7nIx1e/OVENSgiEIzyC63haUMuvNnwIgIjMs52hlTCKhkBny7A2ORNlfY9Zu+jmGk1Q==" + }, + "node_modules/@wormhole-foundation/sdk-evm-portico/node_modules/ethers": { + "version": "6.13.2", + "resolved": "https://registry.npmjs.org/ethers/-/ethers-6.13.2.tgz", + "integrity": "sha512-9VkriTTed+/27BGuY1s0hf441kqwHJ1wtN2edksEtiRvXx+soxRX3iSXTfFqq2+YwrOqbDoTHjIhQnjJRlzKmg==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/ethers-io/" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], "dependencies": { - "elliptic": "^6.5.4", - "node-addon-api": "^5.0.0", - "node-gyp-build": "^4.2.0" + "@adraffy/ens-normalize": "1.10.1", + "@noble/curves": "1.2.0", + "@noble/hashes": "1.3.2", + "@types/node": "18.15.13", + "aes-js": "4.0.0-beta.5", + "tslib": "2.4.0", + "ws": "8.17.1" }, "engines": { "node": ">=14.0.0" } }, - "node_modules/eth-json-rpc-filters": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/eth-json-rpc-filters/-/eth-json-rpc-filters-4.2.2.tgz", - "integrity": "sha512-DGtqpLU7bBg63wPMWg1sCpkKCf57dJ+hj/k3zF26anXMzkmtSBDExL8IhUu7LUd34f0Zsce3PYNO2vV2GaTzaw==", - "dev": true, - "dependencies": { - "@metamask/safe-event-emitter": "^2.0.0", - "async-mutex": "^0.2.6", - "eth-json-rpc-middleware": "^6.0.0", - "eth-query": "^2.1.2", - "json-rpc-engine": "^6.1.0", - "pify": "^5.0.0" - } - }, - "node_modules/eth-json-rpc-filters/node_modules/pify": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-5.0.0.tgz", - "integrity": "sha512-eW/gHNMlxdSP6dmG6uJip6FXN0EQBwm2clYYd8Wul42Cwu/DK8HEftzsapcNdYe2MfLiIwZqsDk2RDEsTE79hA==", - "dev": true, + "node_modules/@wormhole-foundation/sdk-evm-portico/node_modules/ws": { + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.17.1.tgz", + "integrity": "sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ==", "engines": { - "node": ">=10" + "node": ">=10.0.0" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } } }, - "node_modules/eth-json-rpc-infura": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/eth-json-rpc-infura/-/eth-json-rpc-infura-5.1.0.tgz", - "integrity": "sha512-THzLye3PHUSGn1EXMhg6WTLW9uim7LQZKeKaeYsS9+wOBcamRiCQVGHa6D2/4P0oS0vSaxsBnU/J6qvn0MPdow==", - "dev": true, + "node_modules/@wormhole-foundation/sdk-evm-tokenbridge": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/@wormhole-foundation/sdk-evm-tokenbridge/-/sdk-evm-tokenbridge-0.9.0.tgz", + "integrity": "sha512-XNoTNKdPGRWjKa6+rx4EJ9L298yc5CM/tFeqjw/jBhD+n8qHo9RlC+PzzZs0jppHhYI/18HjLq5Gf+wYzxt3dQ==", "dependencies": { - "eth-json-rpc-middleware": "^6.0.0", - "eth-rpc-errors": "^3.0.0", - "json-rpc-engine": "^5.3.0", - "node-fetch": "^2.6.0" + "@wormhole-foundation/sdk-connect": "0.9.0", + "@wormhole-foundation/sdk-evm": "0.9.0", + "@wormhole-foundation/sdk-evm-core": "0.9.0", + "ethers": "^6.5.1" + }, + "engines": { + "node": ">=16" } }, - "node_modules/eth-json-rpc-infura/node_modules/json-rpc-engine": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/json-rpc-engine/-/json-rpc-engine-5.4.0.tgz", - "integrity": "sha512-rAffKbPoNDjuRnXkecTjnsE3xLLrb00rEkdgalINhaYVYIxDwWtvYBr9UFbhTvPB1B2qUOLoFd/cV6f4Q7mh7g==", - "dev": true, + "node_modules/@wormhole-foundation/sdk-evm-tokenbridge/node_modules/@noble/curves": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.2.0.tgz", + "integrity": "sha512-oYclrNgRaM9SsBUBVbb8M6DTV7ZHRTKugureoYEncY5c65HOmRzvSiTE3y5CYaPYJA/GVkrhXEoF0M3Ya9PMnw==", "dependencies": { - "eth-rpc-errors": "^3.0.0", - "safe-event-emitter": "^1.0.1" + "@noble/hashes": "1.3.2" + }, + "funding": { + "url": "https://paulmillr.com/funding/" } }, - "node_modules/eth-json-rpc-middleware": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/eth-json-rpc-middleware/-/eth-json-rpc-middleware-6.0.0.tgz", - "integrity": "sha512-qqBfLU2Uq1Ou15Wox1s+NX05S9OcAEL4JZ04VZox2NS0U+RtCMjSxzXhLFWekdShUPZ+P8ax3zCO2xcPrp6XJQ==", - "dev": true, - "dependencies": { - "btoa": "^1.2.1", - "clone": "^2.1.1", - "eth-query": "^2.1.2", - "eth-rpc-errors": "^3.0.0", - "eth-sig-util": "^1.4.2", - "ethereumjs-util": "^5.1.2", - "json-rpc-engine": "^5.3.0", - "json-stable-stringify": "^1.0.1", - "node-fetch": "^2.6.1", - "pify": "^3.0.0", - "safe-event-emitter": "^1.0.1" + "node_modules/@wormhole-foundation/sdk-evm-tokenbridge/node_modules/@noble/hashes": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.3.2.tgz", + "integrity": "sha512-MVC8EAQp7MvEcm30KWENFjgR+Mkmf+D189XJTkFIlwohU5hcBbn1ZkKq7KVTi2Hme3PMGF390DaL52beVrIihQ==", + "engines": { + "node": ">= 16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" } }, - "node_modules/eth-json-rpc-middleware/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true + "node_modules/@wormhole-foundation/sdk-evm-tokenbridge/node_modules/@types/node": { + "version": "18.15.13", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.15.13.tgz", + "integrity": "sha512-N+0kuo9KgrUQ1Sn/ifDXsvg0TTleP7rIy4zOBGECxAljqvqfqpTfzx0Q1NUedOixRMBfe2Whhb056a42cWs26Q==" }, - "node_modules/eth-json-rpc-middleware/node_modules/ethereumjs-util": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", - "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", - "dev": true, - "dependencies": { - "bn.js": "^4.11.0", - "create-hash": "^1.1.2", - "elliptic": "^6.5.2", - "ethereum-cryptography": "^0.1.3", - "ethjs-util": "^0.1.3", - "rlp": "^2.0.0", - "safe-buffer": "^5.1.1" - } + "node_modules/@wormhole-foundation/sdk-evm-tokenbridge/node_modules/aes-js": { + "version": "4.0.0-beta.5", + "resolved": "https://registry.npmjs.org/aes-js/-/aes-js-4.0.0-beta.5.tgz", + "integrity": "sha512-G965FqalsNyrPqgEGON7nIx1e/OVENSgiEIzyC63haUMuvNnwIgIjMs52hlTCKhkBny7A2ORNlfY9Zu+jmGk1Q==" }, - "node_modules/eth-json-rpc-middleware/node_modules/json-rpc-engine": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/json-rpc-engine/-/json-rpc-engine-5.4.0.tgz", - "integrity": "sha512-rAffKbPoNDjuRnXkecTjnsE3xLLrb00rEkdgalINhaYVYIxDwWtvYBr9UFbhTvPB1B2qUOLoFd/cV6f4Q7mh7g==", - "dev": true, + "node_modules/@wormhole-foundation/sdk-evm-tokenbridge/node_modules/ethers": { + "version": "6.13.2", + "resolved": "https://registry.npmjs.org/ethers/-/ethers-6.13.2.tgz", + "integrity": "sha512-9VkriTTed+/27BGuY1s0hf441kqwHJ1wtN2edksEtiRvXx+soxRX3iSXTfFqq2+YwrOqbDoTHjIhQnjJRlzKmg==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/ethers-io/" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], "dependencies": { - "eth-rpc-errors": "^3.0.0", - "safe-event-emitter": "^1.0.1" + "@adraffy/ens-normalize": "1.10.1", + "@noble/curves": "1.2.0", + "@noble/hashes": "1.3.2", + "@types/node": "18.15.13", + "aes-js": "4.0.0-beta.5", + "tslib": "2.4.0", + "ws": "8.17.1" + }, + "engines": { + "node": ">=14.0.0" } }, - "node_modules/eth-query": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/eth-query/-/eth-query-2.1.2.tgz", - "integrity": "sha512-srES0ZcvwkR/wd5OQBRA1bIJMww1skfGS0s8wlwK3/oNP4+wnds60krvu5R1QbpRQjMmpG5OMIWro5s7gvDPsA==", - "dev": true, - "dependencies": { - "json-rpc-random-id": "^1.0.0", - "xtend": "^4.0.1" + "node_modules/@wormhole-foundation/sdk-evm-tokenbridge/node_modules/ws": { + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.17.1.tgz", + "integrity": "sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ==", + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } } }, - "node_modules/eth-rpc-errors": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/eth-rpc-errors/-/eth-rpc-errors-3.0.0.tgz", - "integrity": "sha512-iPPNHPrLwUlR9xCSYm7HHQjWBasor3+KZfRvwEWxMz3ca0yqnlBeJrnyphkGIXZ4J7AMAaOLmwy4AWhnxOiLxg==", - "dev": true, + "node_modules/@wormhole-foundation/sdk-evm/node_modules/@noble/curves": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.2.0.tgz", + "integrity": "sha512-oYclrNgRaM9SsBUBVbb8M6DTV7ZHRTKugureoYEncY5c65HOmRzvSiTE3y5CYaPYJA/GVkrhXEoF0M3Ya9PMnw==", "dependencies": { - "fast-safe-stringify": "^2.0.6" + "@noble/hashes": "1.3.2" + }, + "funding": { + "url": "https://paulmillr.com/funding/" } }, - "node_modules/eth-sig-util": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/eth-sig-util/-/eth-sig-util-1.4.2.tgz", - "integrity": "sha512-iNZ576iTOGcfllftB73cPB5AN+XUQAT/T8xzsILsghXC1o8gJUqe3RHlcDqagu+biFpYQ61KQrZZJza8eRSYqw==", - "deprecated": "Deprecated in favor of '@metamask/eth-sig-util'", - "dev": true, - "dependencies": { - "ethereumjs-abi": "git+https://github.com/ethereumjs/ethereumjs-abi.git", - "ethereumjs-util": "^5.1.1" + "node_modules/@wormhole-foundation/sdk-evm/node_modules/@noble/hashes": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.3.2.tgz", + "integrity": "sha512-MVC8EAQp7MvEcm30KWENFjgR+Mkmf+D189XJTkFIlwohU5hcBbn1ZkKq7KVTi2Hme3PMGF390DaL52beVrIihQ==", + "engines": { + "node": ">= 16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" } }, - "node_modules/eth-sig-util/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true + "node_modules/@wormhole-foundation/sdk-evm/node_modules/@types/node": { + "version": "18.15.13", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.15.13.tgz", + "integrity": "sha512-N+0kuo9KgrUQ1Sn/ifDXsvg0TTleP7rIy4zOBGECxAljqvqfqpTfzx0Q1NUedOixRMBfe2Whhb056a42cWs26Q==" }, - "node_modules/eth-sig-util/node_modules/ethereumjs-util": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", - "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", - "dev": true, + "node_modules/@wormhole-foundation/sdk-evm/node_modules/aes-js": { + "version": "4.0.0-beta.5", + "resolved": "https://registry.npmjs.org/aes-js/-/aes-js-4.0.0-beta.5.tgz", + "integrity": "sha512-G965FqalsNyrPqgEGON7nIx1e/OVENSgiEIzyC63haUMuvNnwIgIjMs52hlTCKhkBny7A2ORNlfY9Zu+jmGk1Q==" + }, + "node_modules/@wormhole-foundation/sdk-evm/node_modules/ethers": { + "version": "6.13.2", + "resolved": "https://registry.npmjs.org/ethers/-/ethers-6.13.2.tgz", + "integrity": "sha512-9VkriTTed+/27BGuY1s0hf441kqwHJ1wtN2edksEtiRvXx+soxRX3iSXTfFqq2+YwrOqbDoTHjIhQnjJRlzKmg==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/ethers-io/" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], "dependencies": { - "bn.js": "^4.11.0", - "create-hash": "^1.1.2", - "elliptic": "^6.5.2", - "ethereum-cryptography": "^0.1.3", - "ethjs-util": "^0.1.3", - "rlp": "^2.0.0", - "safe-buffer": "^5.1.1" + "@adraffy/ens-normalize": "1.10.1", + "@noble/curves": "1.2.0", + "@noble/hashes": "1.3.2", + "@types/node": "18.15.13", + "aes-js": "4.0.0-beta.5", + "tslib": "2.4.0", + "ws": "8.17.1" + }, + "engines": { + "node": ">=14.0.0" } }, - "node_modules/ethereum-common": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/ethereum-common/-/ethereum-common-0.2.0.tgz", - "integrity": "sha512-XOnAR/3rntJgbCdGhqdaLIxDLWKLmsZOGhHdBKadEr6gEnJLH52k93Ou+TUdFaPN3hJc3isBZBal3U/XZ15abA==", - "dev": true + "node_modules/@wormhole-foundation/sdk-evm/node_modules/ws": { + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.17.1.tgz", + "integrity": "sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ==", + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } }, - "node_modules/ethereum-cryptography": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz", - "integrity": "sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ==", + "node_modules/@wormhole-foundation/sdk-solana": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/@wormhole-foundation/sdk-solana/-/sdk-solana-0.9.0.tgz", + "integrity": "sha512-eHVnQ4Co7G2jybClmjhJG9gJcGhqA+/iybERCFvgDZDvQ5ZVV6q4M+ZihEPxDfz0D65EzKNH/XA6Z6PfCNaqNw==", "dependencies": { - "@types/pbkdf2": "^3.0.0", - "@types/secp256k1": "^4.0.1", - "blakejs": "^1.1.0", - "browserify-aes": "^1.2.0", - "bs58check": "^2.1.2", - "create-hash": "^1.2.0", - "create-hmac": "^1.1.7", - "hash.js": "^1.1.7", - "keccak": "^3.0.0", - "pbkdf2": "^3.0.17", - "randombytes": "^2.1.0", - "safe-buffer": "^5.1.2", - "scrypt-js": "^3.0.0", - "secp256k1": "^4.0.1", - "setimmediate": "^1.0.5" + "@coral-xyz/anchor": "0.29.0", + "@coral-xyz/borsh": "0.29.0", + "@solana/spl-token": "0.3.9", + "@solana/web3.js": "1.91.7", + "@wormhole-foundation/sdk-connect": "0.9.0" + }, + "engines": { + "node": ">=16" } }, - "node_modules/ethereum-protocol": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/ethereum-protocol/-/ethereum-protocol-1.0.1.tgz", - "integrity": "sha512-3KLX1mHuEsBW0dKG+c6EOJS1NBNqdCICvZW9sInmZTt5aY0oxmHVggYRE0lJu1tcnMD1K+AKHdLi6U43Awm1Vg==", - "dev": true - }, - "node_modules/ethereumjs-abi": { - "version": "0.6.8", - "resolved": "git+ssh://git@github.com/ethereumjs/ethereumjs-abi.git#ee3994657fa7a427238e6ba92a84d0b529bbcde0", - "license": "MIT", + "node_modules/@wormhole-foundation/sdk-solana-cctp": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/@wormhole-foundation/sdk-solana-cctp/-/sdk-solana-cctp-0.9.0.tgz", + "integrity": "sha512-rq7O+Ny9y4j5w5ZTs80ajGYYiHGXKD8Vq+i/geOsJV21pQxPp4sboViQPZyHHBU+P4YKCHE3cjhlQ1t/ecX5aw==", "dependencies": { - "bn.js": "^4.11.8", - "ethereumjs-util": "^6.0.0" + "@coral-xyz/anchor": "0.29.0", + "@solana/spl-token": "0.3.9", + "@solana/web3.js": "1.91.7", + "@wormhole-foundation/sdk-connect": "0.9.0", + "@wormhole-foundation/sdk-solana": "0.9.0" + }, + "engines": { + "node": ">=16" } }, - "node_modules/ethereumjs-abi/node_modules/@types/bn.js": { - "version": "4.11.6", - "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-4.11.6.tgz", - "integrity": "sha512-pqr857jrp2kPuO9uRjZ3PwnJTjoQy+fcdxvBTvHm6dkmEL9q+hDD/2j/0ELOBPtPnS8LjCX0gI9nbl8lVkadpg==", + "node_modules/@wormhole-foundation/sdk-solana-core": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/@wormhole-foundation/sdk-solana-core/-/sdk-solana-core-0.9.0.tgz", + "integrity": "sha512-P+vPjd0/N/b3Dnha3wrfgam1hgTIM2rD/l2gTq5sO9TkltUmbvMne0dIrt3KneQGYRLSKMrgGbpV8U5qi7aN+g==", "dependencies": { - "@types/node": "*" + "@coral-xyz/anchor": "0.29.0", + "@coral-xyz/borsh": "0.29.0", + "@solana/web3.js": "1.91.7", + "@wormhole-foundation/sdk-connect": "0.9.0", + "@wormhole-foundation/sdk-solana": "0.9.0" + }, + "engines": { + "node": ">=16" } }, - "node_modules/ethereumjs-abi/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + "node_modules/@wormhole-foundation/sdk-solana-core/node_modules/@coral-xyz/borsh": { + "version": "0.29.0", + "resolved": "https://registry.npmjs.org/@coral-xyz/borsh/-/borsh-0.29.0.tgz", + "integrity": "sha512-s7VFVa3a0oqpkuRloWVPdCK7hMbAMY270geZOGfCnaqexrP5dTIpbEHL33req6IYPPJ0hYa71cdvJ1h6V55/oQ==", + "dependencies": { + "bn.js": "^5.1.2", + "buffer-layout": "^1.2.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@solana/web3.js": "^1.68.0" + } }, - "node_modules/ethereumjs-abi/node_modules/ethereumjs-util": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-6.2.1.tgz", - "integrity": "sha512-W2Ktez4L01Vexijrm5EB6w7dg4n/TgpoYU4avuT5T3Vmnw/eCRtiBrJfQYS/DCSvDIOLn2k57GcHdeBcgVxAqw==", + "node_modules/@wormhole-foundation/sdk-solana-tokenbridge": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/@wormhole-foundation/sdk-solana-tokenbridge/-/sdk-solana-tokenbridge-0.9.0.tgz", + "integrity": "sha512-UIPO7FcNy9lYhT9AwhkSCSmt4b61sB3oUDjbzXLGa/VJM0gSyTAi9oG3l2iweyLarsOLv7TBGp1dpgVYkV0DXA==", "dependencies": { - "@types/bn.js": "^4.11.3", - "bn.js": "^4.11.0", - "create-hash": "^1.1.2", - "elliptic": "^6.5.2", - "ethereum-cryptography": "^0.1.3", - "ethjs-util": "0.1.6", - "rlp": "^2.2.3" + "@coral-xyz/anchor": "0.29.0", + "@solana/spl-token": "0.3.9", + "@solana/web3.js": "1.91.7", + "@wormhole-foundation/sdk-connect": "0.9.0", + "@wormhole-foundation/sdk-solana": "0.9.0", + "@wormhole-foundation/sdk-solana-core": "0.9.0" + }, + "engines": { + "node": ">=16" } }, - "node_modules/ethereumjs-account": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/ethereumjs-account/-/ethereumjs-account-2.0.5.tgz", - "integrity": "sha512-bgDojnXGjhMwo6eXQC0bY6UK2liSFUSMwwylOmQvZbSl/D7NXQ3+vrGO46ZeOgjGfxXmgIeVNDIiHw7fNZM4VA==", - "dev": true, + "node_modules/@wormhole-foundation/sdk-solana/node_modules/@coral-xyz/borsh": { + "version": "0.29.0", + "resolved": "https://registry.npmjs.org/@coral-xyz/borsh/-/borsh-0.29.0.tgz", + "integrity": "sha512-s7VFVa3a0oqpkuRloWVPdCK7hMbAMY270geZOGfCnaqexrP5dTIpbEHL33req6IYPPJ0hYa71cdvJ1h6V55/oQ==", "dependencies": { - "ethereumjs-util": "^5.0.0", - "rlp": "^2.0.0", - "safe-buffer": "^5.1.1" + "bn.js": "^5.1.2", + "buffer-layout": "^1.2.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@solana/web3.js": "^1.68.0" } }, - "node_modules/ethereumjs-account/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true + "node_modules/@wormhole-foundation/sdk-sui": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/@wormhole-foundation/sdk-sui/-/sdk-sui-0.9.0.tgz", + "integrity": "sha512-eUQjfsQT3nTOOBHAZUjTJRQspSMY9KXkj+DkIVjc6vqfju/pODrfbExc+Zo48Xte85iqX6d8hp4v/6hWHPS5xA==", + "dependencies": { + "@mysten/sui.js": "^0.50.1", + "@wormhole-foundation/sdk-connect": "0.9.0" + }, + "engines": { + "node": ">=16" + } }, - "node_modules/ethereumjs-account/node_modules/ethereumjs-util": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", - "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", - "dev": true, + "node_modules/@wormhole-foundation/sdk-sui-core": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/@wormhole-foundation/sdk-sui-core/-/sdk-sui-core-0.9.0.tgz", + "integrity": "sha512-TsCKpKGwSkq7bR2xAs14phHALyDCvOaNy/HzaZ1AiDu3j7IvYkKX0oGM7KmyxVfV5lB2Ej0459ezbUm9LpUTXA==", "dependencies": { - "bn.js": "^4.11.0", - "create-hash": "^1.1.2", - "elliptic": "^6.5.2", - "ethereum-cryptography": "^0.1.3", - "ethjs-util": "^0.1.3", - "rlp": "^2.0.0", - "safe-buffer": "^5.1.1" + "@mysten/sui.js": "^0.50.1", + "@wormhole-foundation/sdk-connect": "0.9.0", + "@wormhole-foundation/sdk-sui": "0.9.0" + }, + "engines": { + "node": ">=16" } }, - "node_modules/ethereumjs-block": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/ethereumjs-block/-/ethereumjs-block-1.7.1.tgz", - "integrity": "sha512-B+sSdtqm78fmKkBq78/QLKJbu/4Ts4P2KFISdgcuZUPDm9x+N7qgBPIIFUGbaakQh8bzuquiRVbdmvPKqbILRg==", - "deprecated": "New package name format for new versions: @ethereumjs/block. Please update.", - "dev": true, + "node_modules/@wormhole-foundation/sdk-sui-core/node_modules/@mysten/bcs": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/@mysten/bcs/-/bcs-0.11.1.tgz", + "integrity": "sha512-xP85isNSYUCHd3O/g+TmZYmg4wK6cU8q/n/MebkIGP4CYVJZz2wU/G24xIZ3wI+0iTop4dfgA5kYrg/DQKCUzA==", "dependencies": { - "async": "^2.0.1", - "ethereum-common": "0.2.0", - "ethereumjs-tx": "^1.2.2", - "ethereumjs-util": "^5.0.0", - "merkle-patricia-tree": "^2.1.2" + "bs58": "^5.0.0" } }, - "node_modules/ethereumjs-block/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - }, - "node_modules/ethereumjs-block/node_modules/ethereumjs-util": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", - "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", - "dev": true, + "node_modules/@wormhole-foundation/sdk-sui-core/node_modules/@mysten/sui.js": { + "version": "0.50.1", + "resolved": "https://registry.npmjs.org/@mysten/sui.js/-/sui.js-0.50.1.tgz", + "integrity": "sha512-AY0wb4n6PMTRsDGygzrrTHUK/m5KwKZ4aQcN9cayiwsq2iIhfjGo7uuqMA7Y5UiqvLCoF+z7Ig14Q5qejQ/S/w==", "dependencies": { - "bn.js": "^4.11.0", - "create-hash": "^1.1.2", - "elliptic": "^6.5.2", - "ethereum-cryptography": "^0.1.3", - "ethjs-util": "^0.1.3", - "rlp": "^2.0.0", - "safe-buffer": "^5.1.1" + "@graphql-typed-document-node/core": "^3.2.0", + "@mysten/bcs": "0.11.1", + "@noble/curves": "^1.1.0", + "@noble/hashes": "^1.3.1", + "@scure/bip32": "^1.3.1", + "@scure/bip39": "^1.2.1", + "@suchipi/femver": "^1.0.0", + "bech32": "^2.0.0", + "gql.tada": "^1.2.0", + "graphql": "^16.8.1", + "superstruct": "^1.0.3", + "tweetnacl": "^1.0.3" + }, + "engines": { + "node": ">=16" } }, - "node_modules/ethereumjs-common": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/ethereumjs-common/-/ethereumjs-common-1.5.2.tgz", - "integrity": "sha512-hTfZjwGX52GS2jcVO6E2sx4YuFnf0Fhp5ylo4pEPhEffNln7vS59Hr5sLnp3/QCazFLluuBZ+FZ6J5HTp0EqCA==", - "deprecated": "New package name format for new versions: @ethereumjs/common. Please update.", - "dev": true + "node_modules/@wormhole-foundation/sdk-sui-core/node_modules/@noble/hashes": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.4.0.tgz", + "integrity": "sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg==", + "engines": { + "node": ">= 16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } }, - "node_modules/ethereumjs-tx": { - "version": "1.3.7", - "resolved": "https://registry.npmjs.org/ethereumjs-tx/-/ethereumjs-tx-1.3.7.tgz", - "integrity": "sha512-wvLMxzt1RPhAQ9Yi3/HKZTn0FZYpnsmQdbKYfUUpi4j1SEIcbkd9tndVjcPrufY3V7j2IebOpC00Zp2P/Ay2kA==", - "deprecated": "New package name format for new versions: @ethereumjs/tx. Please update.", - "dev": true, + "node_modules/@wormhole-foundation/sdk-sui-core/node_modules/@scure/bip32": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-1.4.0.tgz", + "integrity": "sha512-sVUpc0Vq3tXCkDGYVWGIZTRfnvu8LoTDaev7vbwh0omSvVORONr960MQWdKqJDCReIEmTj3PAr73O3aoxz7OPg==", "dependencies": { - "ethereum-common": "^0.0.18", - "ethereumjs-util": "^5.0.0" + "@noble/curves": "~1.4.0", + "@noble/hashes": "~1.4.0", + "@scure/base": "~1.1.6" + }, + "funding": { + "url": "https://paulmillr.com/funding/" } }, - "node_modules/ethereumjs-tx/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true + "node_modules/@wormhole-foundation/sdk-sui-core/node_modules/@scure/bip39": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.3.0.tgz", + "integrity": "sha512-disdg7gHuTDZtY+ZdkmLpPCk7fxZSu3gBiEGuoC1XYxv9cGx3Z6cpTggCgW6odSOOIXCiDjuGejW+aJKCY/pIQ==", + "dependencies": { + "@noble/hashes": "~1.4.0", + "@scure/base": "~1.1.6" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } }, - "node_modules/ethereumjs-tx/node_modules/ethereum-common": { - "version": "0.0.18", - "resolved": "https://registry.npmjs.org/ethereum-common/-/ethereum-common-0.0.18.tgz", - "integrity": "sha512-EoltVQTRNg2Uy4o84qpa2aXymXDJhxm7eos/ACOg0DG4baAbMjhbdAEsx9GeE8sC3XCxnYvrrzZDH8D8MtA2iQ==", - "dev": true + "node_modules/@wormhole-foundation/sdk-sui-core/node_modules/base-x": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/base-x/-/base-x-4.0.0.tgz", + "integrity": "sha512-FuwxlW4H5kh37X/oW59pwTzzTKRzfrrQwhmyspRM7swOEZcHtDZSCt45U6oKgtuFE+WYPblePMVIPR4RZrh/hw==" }, - "node_modules/ethereumjs-tx/node_modules/ethereumjs-util": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", - "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", - "dev": true, + "node_modules/@wormhole-foundation/sdk-sui-core/node_modules/bs58": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/bs58/-/bs58-5.0.0.tgz", + "integrity": "sha512-r+ihvQJvahgYT50JD05dyJNKlmmSlMoOGwn1lCcEzanPglg7TxYjioQUYehQ9mAR/+hOSd2jRc/Z2y5UxBymvQ==", "dependencies": { - "bn.js": "^4.11.0", - "create-hash": "^1.1.2", - "elliptic": "^6.5.2", - "ethereum-cryptography": "^0.1.3", - "ethjs-util": "^0.1.3", - "rlp": "^2.0.0", - "safe-buffer": "^5.1.1" + "base-x": "^4.0.0" } }, - "node_modules/ethereumjs-util": { - "version": "7.1.5", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.5.tgz", - "integrity": "sha512-SDl5kKrQAudFBUe5OJM9Ac6WmMyYmXX/6sTmLZ3ffG2eY6ZIGBes3pEDxNN6V72WyOw4CPD5RomKdsa8DAAwLg==", + "node_modules/@wormhole-foundation/sdk-sui-core/node_modules/superstruct": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/superstruct/-/superstruct-1.0.4.tgz", + "integrity": "sha512-7JpaAoX2NGyoFlI9NBh66BQXGONc+uE+MRS5i2iOBKuS4e+ccgMDjATgZldkah+33DakBxDHiss9kvUcGAO8UQ==", + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@wormhole-foundation/sdk-sui-tokenbridge": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/@wormhole-foundation/sdk-sui-tokenbridge/-/sdk-sui-tokenbridge-0.9.0.tgz", + "integrity": "sha512-8LpnXjxBT4VdXw9OeDhPoxCS5FWxPvJXe7WJtXCv0Vlk6WIdoS1XmTcxC+IoQWNQJW4qkiwMHWEa5AynavxHtQ==", "dependencies": { - "@types/bn.js": "^5.1.0", - "bn.js": "^5.1.2", - "create-hash": "^1.1.2", - "ethereum-cryptography": "^0.1.3", - "rlp": "^2.2.4" + "@mysten/sui.js": "^0.50.1", + "@wormhole-foundation/sdk-connect": "0.9.0", + "@wormhole-foundation/sdk-sui": "0.9.0", + "@wormhole-foundation/sdk-sui-core": "0.9.0" }, "engines": { - "node": ">=10.0.0" + "node": ">=16" } }, - "node_modules/ethereumjs-vm": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/ethereumjs-vm/-/ethereumjs-vm-2.6.0.tgz", - "integrity": "sha512-r/XIUik/ynGbxS3y+mvGnbOKnuLo40V5Mj1J25+HEO63aWYREIqvWeRO/hnROlMBE5WoniQmPmhiaN0ctiHaXw==", - "deprecated": "New package name format for new versions: @ethereumjs/vm. Please update.", - "dev": true, + "node_modules/@wormhole-foundation/sdk-sui-tokenbridge/node_modules/@mysten/bcs": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/@mysten/bcs/-/bcs-0.11.1.tgz", + "integrity": "sha512-xP85isNSYUCHd3O/g+TmZYmg4wK6cU8q/n/MebkIGP4CYVJZz2wU/G24xIZ3wI+0iTop4dfgA5kYrg/DQKCUzA==", "dependencies": { - "async": "^2.1.2", - "async-eventemitter": "^0.2.2", - "ethereumjs-account": "^2.0.3", - "ethereumjs-block": "~2.2.0", - "ethereumjs-common": "^1.1.0", - "ethereumjs-util": "^6.0.0", - "fake-merkle-patricia-tree": "^1.0.1", - "functional-red-black-tree": "^1.0.1", - "merkle-patricia-tree": "^2.3.2", - "rustbn.js": "~0.2.0", - "safe-buffer": "^5.1.1" + "bs58": "^5.0.0" } }, - "node_modules/ethereumjs-vm/node_modules/@types/bn.js": { - "version": "4.11.6", - "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-4.11.6.tgz", - "integrity": "sha512-pqr857jrp2kPuO9uRjZ3PwnJTjoQy+fcdxvBTvHm6dkmEL9q+hDD/2j/0ELOBPtPnS8LjCX0gI9nbl8lVkadpg==", - "dev": true, + "node_modules/@wormhole-foundation/sdk-sui-tokenbridge/node_modules/@mysten/sui.js": { + "version": "0.50.1", + "resolved": "https://registry.npmjs.org/@mysten/sui.js/-/sui.js-0.50.1.tgz", + "integrity": "sha512-AY0wb4n6PMTRsDGygzrrTHUK/m5KwKZ4aQcN9cayiwsq2iIhfjGo7uuqMA7Y5UiqvLCoF+z7Ig14Q5qejQ/S/w==", "dependencies": { - "@types/node": "*" + "@graphql-typed-document-node/core": "^3.2.0", + "@mysten/bcs": "0.11.1", + "@noble/curves": "^1.1.0", + "@noble/hashes": "^1.3.1", + "@scure/bip32": "^1.3.1", + "@scure/bip39": "^1.2.1", + "@suchipi/femver": "^1.0.0", + "bech32": "^2.0.0", + "gql.tada": "^1.2.0", + "graphql": "^16.8.1", + "superstruct": "^1.0.3", + "tweetnacl": "^1.0.3" + }, + "engines": { + "node": ">=16" } }, - "node_modules/ethereumjs-vm/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true + "node_modules/@wormhole-foundation/sdk-sui-tokenbridge/node_modules/@noble/hashes": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.4.0.tgz", + "integrity": "sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg==", + "engines": { + "node": ">= 16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } }, - "node_modules/ethereumjs-vm/node_modules/ethereumjs-block": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/ethereumjs-block/-/ethereumjs-block-2.2.2.tgz", - "integrity": "sha512-2p49ifhek3h2zeg/+da6XpdFR3GlqY3BIEiqxGF8j9aSRIgkb7M1Ky+yULBKJOu8PAZxfhsYA+HxUk2aCQp3vg==", - "deprecated": "New package name format for new versions: @ethereumjs/block. Please update.", - "dev": true, + "node_modules/@wormhole-foundation/sdk-sui-tokenbridge/node_modules/@scure/bip32": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-1.4.0.tgz", + "integrity": "sha512-sVUpc0Vq3tXCkDGYVWGIZTRfnvu8LoTDaev7vbwh0omSvVORONr960MQWdKqJDCReIEmTj3PAr73O3aoxz7OPg==", "dependencies": { - "async": "^2.0.1", - "ethereumjs-common": "^1.5.0", - "ethereumjs-tx": "^2.1.1", - "ethereumjs-util": "^5.0.0", - "merkle-patricia-tree": "^2.1.2" + "@noble/curves": "~1.4.0", + "@noble/hashes": "~1.4.0", + "@scure/base": "~1.1.6" + }, + "funding": { + "url": "https://paulmillr.com/funding/" } }, - "node_modules/ethereumjs-vm/node_modules/ethereumjs-block/node_modules/ethereumjs-util": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", - "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", - "dev": true, + "node_modules/@wormhole-foundation/sdk-sui-tokenbridge/node_modules/@scure/bip39": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.3.0.tgz", + "integrity": "sha512-disdg7gHuTDZtY+ZdkmLpPCk7fxZSu3gBiEGuoC1XYxv9cGx3Z6cpTggCgW6odSOOIXCiDjuGejW+aJKCY/pIQ==", "dependencies": { - "bn.js": "^4.11.0", - "create-hash": "^1.1.2", - "elliptic": "^6.5.2", - "ethereum-cryptography": "^0.1.3", - "ethjs-util": "^0.1.3", - "rlp": "^2.0.0", - "safe-buffer": "^5.1.1" + "@noble/hashes": "~1.4.0", + "@scure/base": "~1.1.6" + }, + "funding": { + "url": "https://paulmillr.com/funding/" } }, - "node_modules/ethereumjs-vm/node_modules/ethereumjs-tx": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ethereumjs-tx/-/ethereumjs-tx-2.1.2.tgz", - "integrity": "sha512-zZEK1onCeiORb0wyCXUvg94Ve5It/K6GD1K+26KfFKodiBiS6d9lfCXlUKGBBdQ+bv7Day+JK0tj1K+BeNFRAw==", - "deprecated": "New package name format for new versions: @ethereumjs/tx. Please update.", - "dev": true, + "node_modules/@wormhole-foundation/sdk-sui-tokenbridge/node_modules/base-x": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/base-x/-/base-x-4.0.0.tgz", + "integrity": "sha512-FuwxlW4H5kh37X/oW59pwTzzTKRzfrrQwhmyspRM7swOEZcHtDZSCt45U6oKgtuFE+WYPblePMVIPR4RZrh/hw==" + }, + "node_modules/@wormhole-foundation/sdk-sui-tokenbridge/node_modules/bs58": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/bs58/-/bs58-5.0.0.tgz", + "integrity": "sha512-r+ihvQJvahgYT50JD05dyJNKlmmSlMoOGwn1lCcEzanPglg7TxYjioQUYehQ9mAR/+hOSd2jRc/Z2y5UxBymvQ==", "dependencies": { - "ethereumjs-common": "^1.5.0", - "ethereumjs-util": "^6.0.0" + "base-x": "^4.0.0" } }, - "node_modules/ethereumjs-vm/node_modules/ethereumjs-util": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-6.2.1.tgz", - "integrity": "sha512-W2Ktez4L01Vexijrm5EB6w7dg4n/TgpoYU4avuT5T3Vmnw/eCRtiBrJfQYS/DCSvDIOLn2k57GcHdeBcgVxAqw==", - "dev": true, + "node_modules/@wormhole-foundation/sdk-sui-tokenbridge/node_modules/superstruct": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/superstruct/-/superstruct-1.0.4.tgz", + "integrity": "sha512-7JpaAoX2NGyoFlI9NBh66BQXGONc+uE+MRS5i2iOBKuS4e+ccgMDjATgZldkah+33DakBxDHiss9kvUcGAO8UQ==", + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@wormhole-foundation/sdk-sui/node_modules/@mysten/bcs": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/@mysten/bcs/-/bcs-0.11.1.tgz", + "integrity": "sha512-xP85isNSYUCHd3O/g+TmZYmg4wK6cU8q/n/MebkIGP4CYVJZz2wU/G24xIZ3wI+0iTop4dfgA5kYrg/DQKCUzA==", "dependencies": { - "@types/bn.js": "^4.11.3", - "bn.js": "^4.11.0", - "create-hash": "^1.1.2", - "elliptic": "^6.5.2", - "ethereum-cryptography": "^0.1.3", - "ethjs-util": "0.1.6", - "rlp": "^2.2.3" + "bs58": "^5.0.0" } }, - "node_modules/ethereumjs-wallet": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/ethereumjs-wallet/-/ethereumjs-wallet-1.0.2.tgz", - "integrity": "sha512-CCWV4RESJgRdHIvFciVQFnCHfqyhXWchTPlkfp28Qc53ufs+doi5I/cV2+xeK9+qEo25XCWfP9MiL+WEPAZfdA==", - "dev": true, + "node_modules/@wormhole-foundation/sdk-sui/node_modules/@mysten/sui.js": { + "version": "0.50.1", + "resolved": "https://registry.npmjs.org/@mysten/sui.js/-/sui.js-0.50.1.tgz", + "integrity": "sha512-AY0wb4n6PMTRsDGygzrrTHUK/m5KwKZ4aQcN9cayiwsq2iIhfjGo7uuqMA7Y5UiqvLCoF+z7Ig14Q5qejQ/S/w==", "dependencies": { - "aes-js": "^3.1.2", - "bs58check": "^2.1.2", - "ethereum-cryptography": "^0.1.3", - "ethereumjs-util": "^7.1.2", - "randombytes": "^2.1.0", - "scrypt-js": "^3.0.1", - "utf8": "^3.0.0", - "uuid": "^8.3.2" + "@graphql-typed-document-node/core": "^3.2.0", + "@mysten/bcs": "0.11.1", + "@noble/curves": "^1.1.0", + "@noble/hashes": "^1.3.1", + "@scure/bip32": "^1.3.1", + "@scure/bip39": "^1.2.1", + "@suchipi/femver": "^1.0.0", + "bech32": "^2.0.0", + "gql.tada": "^1.2.0", + "graphql": "^16.8.1", + "superstruct": "^1.0.3", + "tweetnacl": "^1.0.3" + }, + "engines": { + "node": ">=16" } }, - "node_modules/ethereumjs-wallet/node_modules/aes-js": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/aes-js/-/aes-js-3.1.2.tgz", - "integrity": "sha512-e5pEa2kBnBOgR4Y/p20pskXI74UEz7de8ZGVo58asOtvSVG5YAbJeELPZxOmt+Bnz3rX753YKhfIn4X4l1PPRQ==", - "dev": true + "node_modules/@wormhole-foundation/sdk-sui/node_modules/@noble/hashes": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.4.0.tgz", + "integrity": "sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg==", + "engines": { + "node": ">= 16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } }, - "node_modules/ethereumjs-wallet/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/@wormhole-foundation/sdk-sui/node_modules/@scure/bip32": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-1.4.0.tgz", + "integrity": "sha512-sVUpc0Vq3tXCkDGYVWGIZTRfnvu8LoTDaev7vbwh0omSvVORONr960MQWdKqJDCReIEmTj3PAr73O3aoxz7OPg==", + "dependencies": { + "@noble/curves": "~1.4.0", + "@noble/hashes": "~1.4.0", + "@scure/base": "~1.1.6" + }, + "funding": { + "url": "https://paulmillr.com/funding/" } }, - "node_modules/ethers": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/ethers/-/ethers-5.7.2.tgz", - "integrity": "sha512-wswUsmWo1aOK8rR7DIKiWSw9DbLWe6x98Jrn8wcTflTVvaXhAMaB5zGAXy0GYQEQp9iO1iSHWVyARQm11zUtyg==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], + "node_modules/@wormhole-foundation/sdk-sui/node_modules/@scure/bip39": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.3.0.tgz", + "integrity": "sha512-disdg7gHuTDZtY+ZdkmLpPCk7fxZSu3gBiEGuoC1XYxv9cGx3Z6cpTggCgW6odSOOIXCiDjuGejW+aJKCY/pIQ==", "dependencies": { - "@ethersproject/abi": "5.7.0", - "@ethersproject/abstract-provider": "5.7.0", - "@ethersproject/abstract-signer": "5.7.0", - "@ethersproject/address": "5.7.0", - "@ethersproject/base64": "5.7.0", - "@ethersproject/basex": "5.7.0", - "@ethersproject/bignumber": "5.7.0", - "@ethersproject/bytes": "5.7.0", - "@ethersproject/constants": "5.7.0", - "@ethersproject/contracts": "5.7.0", - "@ethersproject/hash": "5.7.0", - "@ethersproject/hdnode": "5.7.0", - "@ethersproject/json-wallets": "5.7.0", - "@ethersproject/keccak256": "5.7.0", - "@ethersproject/logger": "5.7.0", - "@ethersproject/networks": "5.7.1", - "@ethersproject/pbkdf2": "5.7.0", - "@ethersproject/properties": "5.7.0", - "@ethersproject/providers": "5.7.2", - "@ethersproject/random": "5.7.0", - "@ethersproject/rlp": "5.7.0", - "@ethersproject/sha2": "5.7.0", - "@ethersproject/signing-key": "5.7.0", - "@ethersproject/solidity": "5.7.0", - "@ethersproject/strings": "5.7.0", - "@ethersproject/transactions": "5.7.0", - "@ethersproject/units": "5.7.0", - "@ethersproject/wallet": "5.7.0", - "@ethersproject/web": "5.7.1", - "@ethersproject/wordlists": "5.7.0" - } - }, - "node_modules/ethjs-util": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/ethjs-util/-/ethjs-util-0.1.6.tgz", - "integrity": "sha512-CUnVOQq7gSpDHZVVrQW8ExxUETWrnrvXYvYz55wOU8Uj4VCgw56XC2B/fVqQN+f7gmrnRHSLVnFAwsCuNwji8w==", - "dependencies": { - "is-hex-prefixed": "1.0.0", - "strip-hex-prefix": "1.0.0" + "@noble/hashes": "~1.4.0", + "@scure/base": "~1.1.6" }, - "engines": { - "node": ">=6.5.0", - "npm": ">=3" + "funding": { + "url": "https://paulmillr.com/funding/" } }, - "node_modules/eventemitter3": { - "version": "4.0.7", - "license": "MIT" - }, - "node_modules/events": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", - "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", - "dev": true, - "engines": { - "node": ">=0.8.x" - } + "node_modules/@wormhole-foundation/sdk-sui/node_modules/base-x": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/base-x/-/base-x-4.0.0.tgz", + "integrity": "sha512-FuwxlW4H5kh37X/oW59pwTzzTKRzfrrQwhmyspRM7swOEZcHtDZSCt45U6oKgtuFE+WYPblePMVIPR4RZrh/hw==" }, - "node_modules/evp_bytestokey": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", - "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", + "node_modules/@wormhole-foundation/sdk-sui/node_modules/bs58": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/bs58/-/bs58-5.0.0.tgz", + "integrity": "sha512-r+ihvQJvahgYT50JD05dyJNKlmmSlMoOGwn1lCcEzanPglg7TxYjioQUYehQ9mAR/+hOSd2jRc/Z2y5UxBymvQ==", "dependencies": { - "md5.js": "^1.3.4", - "safe-buffer": "^5.1.1" + "base-x": "^4.0.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" - }, + "node_modules/@wormhole-foundation/sdk-sui/node_modules/superstruct": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/superstruct/-/superstruct-1.0.4.tgz", + "integrity": "sha512-7JpaAoX2NGyoFlI9NBh66BQXGONc+uE+MRS5i2iOBKuS4e+ccgMDjATgZldkah+33DakBxDHiss9kvUcGAO8UQ==", "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" + "node": ">=14.0.0" } }, - "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, + "node_modules/@wry/context": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/@wry/context/-/context-0.7.0.tgz", + "integrity": "sha512-LcDAiYWRtwAoSOArfk7cuYvFXytxfVrdX7yxoUmK7pPITLk5jYh2F8knCwS7LjgYL8u1eidPlKKV6Ikqq0ODqQ==", + "dependencies": { + "tslib": "^2.3.0" + }, "engines": { - "node": ">= 0.8.0" + "node": ">=8" } }, - "node_modules/exit-on-epipe": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/exit-on-epipe/-/exit-on-epipe-1.0.1.tgz", - "integrity": "sha512-h2z5mrROTxce56S+pnvAV890uu7ls7f1kEvVGJbw1OlFH3/mlJ5bkXu0KRyW94v37zzHPiUd55iLn3DA7TjWpw==", + "node_modules/@wry/equality": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/@wry/equality/-/equality-0.5.3.tgz", + "integrity": "sha512-avR+UXdSrsF2v8vIqIgmeTY0UR91UT+IyablCyKe/uk22uOJ8fusKZnH9JH9e1/EtLeNJBtagNmL3eJdnOV53g==", + "dependencies": { + "tslib": "^2.3.0" + }, "engines": { - "node": ">=0.8" + "node": ">=8" } }, - "node_modules/expect": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/expect/-/expect-29.7.0.tgz", - "integrity": "sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==", - "dev": true, + "node_modules/@wry/trie": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@wry/trie/-/trie-0.3.2.tgz", + "integrity": "sha512-yRTyhWSls2OY/pYLfwff867r8ekooZ4UI+/gxot5Wj8EFwSf2rG+n+Mo/6LoLQm1TKA4GRj2+LCpbfS937dClQ==", "dependencies": { - "@jest/expect-utils": "^29.7.0", - "jest-get-type": "^29.6.3", - "jest-matcher-utils": "^29.7.0", - "jest-message-util": "^29.7.0", - "jest-util": "^29.7.0" + "tslib": "^2.3.0" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=8" } }, - "node_modules/extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", - "dev": true - }, - "node_modules/extsprintf": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==", - "dev": true, - "engines": [ - "node >=0.6.0" - ] - }, - "node_modules/eyes": { - "version": "0.1.8", + "node_modules/@xpla/xpla.js": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/@xpla/xpla.js/-/xpla.js-0.2.1.tgz", + "integrity": "sha512-+2v9/rxnRaaZBShT232bB3sow0JMe5ghIzLUPy7XJQasf6fu3mmVgMUIl9QCrILkuTZwh3yNsFOvkZTPH28Fmw==", + "dependencies": { + "@ethersproject/bytes": "^5.6.1", + "@ethersproject/keccak256": "^5.6.1", + "@ethersproject/signing-key": "^5.6.2", + "@terra-money/legacy.proto": "npm:@terra-money/terra.proto@^0.1.7", + "@terra-money/terra.proto": "^2.1.0", + "axios": "^0.26.1", + "bech32": "^2.0.0", + "bip32": "^2.0.6", + "bip39": "^3.0.3", + "bufferutil": "^4.0.3", + "crypto-addr-codec": "^0.1.7", + "decimal.js": "^10.2.1", + "elliptic": "^6.5.4", + "ethereumjs-util": "^7.1.5", + "jscrypto": "^1.0.1", + "readable-stream": "^3.6.0", + "secp256k1": "^4.0.2", + "tmp": "^0.2.1", + "utf-8-validate": "^5.0.5", + "ws": "^7.5.8" + }, "engines": { - "node": "> 0.1.90" + "node": ">=14" } }, - "node_modules/fake-merkle-patricia-tree": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/fake-merkle-patricia-tree/-/fake-merkle-patricia-tree-1.0.1.tgz", - "integrity": "sha512-Tgq37lkc9pUIgIKw5uitNUKcgcYL3R6JvXtKQbOf/ZSavXbidsksgp/pAY6p//uhw0I4yoMsvTSovvVIsk/qxA==", - "dev": true, + "node_modules/@xpla/xpla.js/node_modules/axios": { + "version": "0.26.1", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.26.1.tgz", + "integrity": "sha512-fPwcX4EvnSHuInCMItEhAGnaSEXRBjtzh9fOtsE6E1G6p7vl7edEeZe11QHf18+6+9gR5PbKV/sGKNaD8YaMeA==", "dependencies": { - "checkpoint-store": "^1.1.0" + "follow-redirects": "^1.14.8" } }, - "node_modules/fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true - }, - "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-safe-stringify": { - "version": "2.0.8", - "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.0.8.tgz", - "integrity": "sha512-lXatBjf3WPjmWD6DpIZxkeSsCOwqI0maYMpgDlx8g4U2qi4lbjA9oH/HD2a87G+KfsUmo5WbJFmqBZlPxtptag==", - "dev": true - }, - "node_modules/fast-stable-stringify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fast-stable-stringify/-/fast-stable-stringify-1.0.0.tgz", - "integrity": "sha512-wpYMUmFu5f00Sm0cj2pfivpmawLZ0NKdviQ4w9zJeR8JVtOpOxHmLaJuj0vxvGqMJQWyP/COUkF75/57OKyRag==" - }, - "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==", + "node_modules/abstract-leveldown": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-2.6.3.tgz", + "integrity": "sha512-2++wDf/DYqkPR3o5tbfdhF96EfMApo1GpPfzOsR/ZYXdkSmELlvOOEAl9iKkRsktMPHdGjO4rtkBpf2I7TiTeA==", "dev": true, "dependencies": { - "bser": "2.1.1" + "xtend": "~4.0.0" } }, - "node_modules/file-uri-to-path": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", - "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==" + "node_modules/aes-js": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/aes-js/-/aes-js-3.0.0.tgz", + "integrity": "sha512-H7wUZRn8WpTq9jocdxQ2c8x2sKo9ZVmzfRE13GiNJXfp7NcKYEdvl3vspKjXox6RIG2VtaRe4JFvxG4rqp2Zuw==" }, - "node_modules/fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, + "node_modules/agentkeepalive": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.5.0.tgz", + "integrity": "sha512-5GG/5IbQQpC9FpkRGsSvZI5QYeSCzlJHdpBQntCsuTOxhKD8lqKhrleg2Yi7yvMIf82Ycmmqln9U8V9qwEiJew==", "dependencies": { - "to-regex-range": "^5.0.1" + "humanize-ms": "^1.2.1" }, "engines": { - "node": ">=8" + "node": ">= 8.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==", + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "dev": true, "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" }, - "engines": { - "node": ">=8" - } - }, - "node_modules/follow-redirects": { - "version": "1.15.2", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", - "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==", - "funding": [ - { - "type": "individual", - "url": "https://github.com/sponsors/RubenVerborgh" - } - ], - "engines": { - "node": ">=4.0" - }, - "peerDependenciesMeta": { - "debug": { - "optional": true - } + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" } }, - "node_modules/forever-agent": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==", - "dev": true, + "node_modules/algo-msgpack-with-bigint": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/algo-msgpack-with-bigint/-/algo-msgpack-with-bigint-2.1.1.tgz", + "integrity": "sha512-F1tGh056XczEaEAqu7s+hlZUDWwOBT70Eq0lfMpBP2YguSQVyxRbprLq5rELXKQOyOaixTWYhMeMQMzP0U5FoQ==", "engines": { - "node": "*" + "node": ">= 10" } }, - "node_modules/form-data": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", - "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", - "dev": true, + "node_modules/algosdk": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/algosdk/-/algosdk-2.7.0.tgz", + "integrity": "sha512-sBE9lpV7bup3rZ+q2j3JQaFAE9JwZvjWKX00vPlG8e9txctXbgLL56jZhSWZndqhDI9oI+0P4NldkuQIWdrUyg==", "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", - "mime-types": "^2.1.12" + "algo-msgpack-with-bigint": "^2.1.1", + "buffer": "^6.0.3", + "hi-base32": "^0.5.1", + "js-sha256": "^0.9.0", + "js-sha3": "^0.8.0", + "js-sha512": "^0.8.0", + "json-bigint": "^1.0.0", + "tweetnacl": "^1.0.3", + "vlq": "^2.0.4" }, "engines": { - "node": ">= 0.12" - } - }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" - }, - "node_modules/fsevents": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", - "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", - "dev": true, - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + "node": ">=18.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==" - }, - "node_modules/functional-red-black-tree": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", - "integrity": "sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==", - "dev": true - }, - "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==", + "node_modules/ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", "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", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "engines": { - "node": "6.* || 8.* || >= 10.*" - } - }, - "node_modules/get-intrinsic": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.3.tgz", - "integrity": "sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==", "dependencies": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.3" + "type-fest": "^0.21.3" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "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": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "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==", + "node_modules/ansi-escapes/node_modules/type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", "dev": true, "engines": { "node": ">=10" @@ -6931,1288 +7430,1111 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/getpass": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "integrity": "sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==", - "dev": true, - "dependencies": { - "assert-plus": "^1.0.0" + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "engines": { + "node": ">=8" } }, - "node_modules/glob": { - "version": "7.1.7", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz", - "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==", + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "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" + "color-convert": "^2.0.1" }, "engines": { - "node": "*" + "node": ">=8" }, "funding": { - "url": "https://github.com/sponsors/isaacs" + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/global": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/global/-/global-4.4.0.tgz", - "integrity": "sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w==", + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", "dev": true, "dependencies": { - "min-document": "^2.19.0", - "process": "^0.11.10" - } - }, - "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, + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, "engines": { - "node": ">=4" + "node": ">= 8" } }, - "node_modules/globalthis": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz", - "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==", + "node_modules/aptos": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/aptos/-/aptos-1.5.0.tgz", + "integrity": "sha512-N7OuRtU7IYHkDkNx+4QS3g/QQGCp+36KzYn3oXPmT7Kttfuv+UKliQVdjy3cLmwd/DCQSh9ObTovwdxnHjUn0g==", "dependencies": { - "define-properties": "^1.1.3" + "@noble/hashes": "1.1.3", + "@scure/bip39": "1.1.0", + "axios": "0.27.2", + "form-data": "4.0.0", + "tweetnacl": "1.0.3" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=11.0.0" } }, - "node_modules/google-protobuf": { - "version": "3.21.2", - "resolved": "https://registry.npmjs.org/google-protobuf/-/google-protobuf-3.21.2.tgz", - "integrity": "sha512-3MSOYFO5U9mPGikIYCzK0SaThypfGgS6bHqrUGXG3DPHCrb+txNqeEcns1W0lkGfk0rCyNXm7xB9rMxnCiZOoA==" - }, - "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/graphql": { - "version": "16.6.0", - "resolved": "https://registry.npmjs.org/graphql/-/graphql-16.6.0.tgz", - "integrity": "sha512-KPIBPDlW7NxrbT/eh4qPXz5FiFdL5UbaA0XUNz2Rp3Z3hqBSkbj0GVjwFDztsWVauZUWsbKHgMg++sk8UX0bkw==", - "engines": { - "node": "^12.22.0 || ^14.16.0 || ^16.0.0 || >=17.0.0" + "node_modules/aptos/node_modules/axios": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.27.2.tgz", + "integrity": "sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==", + "dependencies": { + "follow-redirects": "^1.14.9", + "form-data": "^4.0.0" } }, - "node_modules/graphql-tag": { - "version": "2.12.6", - "resolved": "https://registry.npmjs.org/graphql-tag/-/graphql-tag-2.12.6.tgz", - "integrity": "sha512-FdSNcu2QQcWnM2VNvSCCDCVS5PpPqpzgFT8+GXzqJuoDd0CBncxCY278u4mhRO7tMgo2JjgJA5aZ+nWSQ/Z+xg==", + "node_modules/aptos/node_modules/form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", "dependencies": { - "tslib": "^2.1.0" + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" }, "engines": { - "node": ">=10" - }, - "peerDependencies": { - "graphql": "^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0" + "node": ">= 6" } }, - "node_modules/har-schema": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", - "integrity": "sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q==", + "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, - "engines": { - "node": ">=4" + "dependencies": { + "sprintf-js": "~1.0.2" } }, - "node_modules/har-validator": { - "version": "5.1.5", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", - "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", - "deprecated": "this library is no longer supported", + "node_modules/asn1": { + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz", + "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==", "dev": true, "dependencies": { - "ajv": "^6.12.3", - "har-schema": "^2.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/has": { - "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" - }, - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "engines": { - "node": ">=4" + "safer-buffer": "~2.1.0" } }, - "node_modules/has-property-descriptors": { + "node_modules/assert-plus": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", - "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", - "dependencies": { - "get-intrinsic": "^1.1.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-symbols": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", - "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==", + "dev": true, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=0.8" } }, - "node_modules/hash-base": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", - "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", + "node_modules/async": { + "version": "2.6.4", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.4.tgz", + "integrity": "sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==", + "dev": true, "dependencies": { - "inherits": "^2.0.4", - "readable-stream": "^3.6.0", - "safe-buffer": "^5.2.0" - }, - "engines": { - "node": ">=4" + "lodash": "^4.17.14" } }, - "node_modules/hash.js": { - "version": "1.1.7", - "license": "MIT", + "node_modules/async-eventemitter": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/async-eventemitter/-/async-eventemitter-0.2.4.tgz", + "integrity": "sha512-pd20BwL7Yt1zwDFy+8MX8F1+WCT8aQeKj0kQnTrH9WaeRETlRamVhD0JtRPmrV4GfOJ2F9CvdQkZeZhnh2TuHw==", + "dev": true, "dependencies": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.1" + "async": "^2.4.0" } }, - "node_modules/hi-base32": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/hi-base32/-/hi-base32-0.5.1.tgz", - "integrity": "sha512-EmBBpvdYh/4XxsnUybsPag6VikPYnN30td+vQk+GI3qpahVEG9+gTkG0aXVxTjBqQ5T6ijbWIu77O+C5WFWsnA==" - }, - "node_modules/hmac-drbg": { + "node_modules/async-limiter": { "version": "1.0.1", - "license": "MIT", - "dependencies": { - "hash.js": "^1.0.3", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.1" - } + "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz", + "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==", + "dev": true }, - "node_modules/hoist-non-react-statics": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", - "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", + "node_modules/async-mutex": { + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/async-mutex/-/async-mutex-0.2.6.tgz", + "integrity": "sha512-Hs4R+4SPgamu6rSGW8C7cV9gaWUKEHykfzCCvIRuaVv636Ju10ZdeUbvb4TBEW0INuq2DHZqXbK4Nd3yG4RaRw==", + "dev": true, "dependencies": { - "react-is": "^16.7.0" + "tslib": "^2.0.0" } }, - "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/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" }, - "node_modules/http-errors": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz", - "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==", - "dependencies": { - "depd": "~1.1.2", - "inherits": "2.0.3", - "setprototypeof": "1.1.1", - "statuses": ">= 1.5.0 < 2", - "toidentifier": "1.0.0" - }, + "node_modules/aws-sign2": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", + "integrity": "sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==", + "dev": true, "engines": { - "node": ">= 0.6" + "node": "*" } }, - "node_modules/http-errors/node_modules/inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" + "node_modules/aws4": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz", + "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==", + "dev": true }, - "node_modules/http-signature": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", - "integrity": "sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ==", - "dev": true, + "node_modules/axios": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.24.0.tgz", + "integrity": "sha512-Q6cWsys88HoPgAaFAVUb0WpPk0O8iTeisR9IMqy9G8AbO4NlpVknrnQS03zzF9PGAWgO3cgletO3VjV/P7VztA==", "dependencies": { - "assert-plus": "^1.0.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" - }, - "engines": { - "node": ">=0.8", - "npm": ">=1.3.7" + "follow-redirects": "^1.14.4" } }, - "node_modules/http-status-codes": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/http-status-codes/-/http-status-codes-2.2.0.tgz", - "integrity": "sha512-feERVo9iWxvnejp3SEfm/+oNG517npqL2/PIA8ORjyOZjGC7TwCRQsZylciLS64i6pJ0wRYz3rkXLRwbtFa8Ng==" - }, - "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==", + "node_modules/babel-jest": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.7.0.tgz", + "integrity": "sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==", "dev": true, + "dependencies": { + "@jest/transform": "^29.7.0", + "@types/babel__core": "^7.1.14", + "babel-plugin-istanbul": "^6.1.1", + "babel-preset-jest": "^29.6.3", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "slash": "^3.0.0" + }, "engines": { - "node": ">=10.17.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.8.0" } }, - "node_modules/ieee754": { - "version": "1.2.1", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "BSD-3-Clause" - }, - "node_modules/immediate": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.3.0.tgz", - "integrity": "sha512-HR7EVodfFUdQCTIeySw+WDRFJlPcLOJbXfwwZ7Oom6tjsvZ3bOkCDJHehQC3nxJrv7+f9XecwazynjU8e4Vw3Q==", - "dev": true - }, - "node_modules/import-local": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", - "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", + "node_modules/babel-jest/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "dependencies": { - "pkg-dir": "^4.2.0", - "resolve-cwd": "^3.0.0" - }, - "bin": { - "import-local-fixture": "fixtures/cli.js" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, "engines": { - "node": ">=8" + "node": ">=10" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "node_modules/babel-jest/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, "engines": { - "node": ">=0.8.19" + "node": ">=8" } }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "node_modules/babel-jest/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, "dependencies": { - "once": "^1.3.0", - "wrappy": "1" + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" } }, - "node_modules/inherits": { - "version": "2.0.4", - "license": "ISC" - }, - "node_modules/interpret": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", - "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==", - "engines": { - "node": ">= 0.10" - } - }, - "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-core-module": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.5.0.tgz", - "integrity": "sha512-TXCMSDsEHMEEZ6eCA8rwRDbLu55MRGmrctljsBX/2v1d9/GzqHOxW5c5oPSgrUt2vBFXebu9rGqckXGPWOlYpg==", + "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": { - "has": "^1.0.3" + "@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" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-fn": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fn/-/is-fn-1.0.0.tgz", - "integrity": "sha512-XoFPJQmsAShb3jEQRfzf2rqXavq7fIqF/jOekp308JlThqrODnMpweVSGilKTCXELfLhltGP2AGgbQGVP8F1dg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-fullwidth-code-point": { - "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==", "engines": { "node": ">=8" } }, - "node_modules/is-function": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-function/-/is-function-1.0.2.tgz", - "integrity": "sha512-lw7DUp0aWXYg+CBCN+JKkcE0Q2RayZnSvnZBlwgxHBQhqt5pZNVy4Ri7H9GmmXkdu7LUthszM+Tor1u/2iBcpQ==", - "dev": true - }, - "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==", + "node_modules/babel-plugin-istanbul/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": ">=6" - } - }, - "node_modules/is-hex-prefixed": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-hex-prefixed/-/is-hex-prefixed-1.0.0.tgz", - "integrity": "sha1-fY035q135dEnFIkTxXPggtd39VQ=", - "engines": { - "node": ">=6.5.0", - "npm": ">=3" + "node": ">=8" } }, - "node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "node_modules/babel-plugin-jest-hoist": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.6.3.tgz", + "integrity": "sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==", "dev": true, + "dependencies": { + "@babel/template": "^7.3.3", + "@babel/types": "^7.3.3", + "@types/babel__core": "^7.1.14", + "@types/babel__traverse": "^7.0.6" + }, "engines": { - "node": ">=0.12.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "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==", + "node_modules/babel-plugin-polyfill-corejs2": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.3.tgz", + "integrity": "sha512-8hOdmFYFSZhqg2C/JgLUQ+t52o5nirNwaWM2B9LWteozwIvM14VSwdsCAUET10qT+kmySAlseadmfeeSWFCy+Q==", "dev": true, - "engines": { - "node": ">=8" + "dependencies": { + "@babel/compat-data": "^7.17.7", + "@babel/helper-define-polyfill-provider": "^0.3.3", + "semver": "^6.1.1" }, - "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/isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==" - }, - "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/isomorphic-ws": { - "version": "4.0.1", - "license": "MIT", "peerDependencies": { - "ws": "*" + "@babel/core": "^7.0.0-0" } }, - "node_modules/isstream": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==", - "dev": true - }, - "node_modules/istanbul-lib-coverage": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz", - "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==", + "node_modules/babel-plugin-polyfill-corejs3": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.6.0.tgz", + "integrity": "sha512-+eHqR6OPcBhJOGgsIar7xoAB1GcSwVUA3XjAd7HJNzOXT4wv6/H7KIdA/Nc60cvUlDbKApmqNvD1B1bzOt4nyA==", "dev": true, - "engines": { - "node": ">=8" + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.3.3", + "core-js-compat": "^3.25.1" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/istanbul-lib-instrument": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.2.tgz", - "integrity": "sha512-1WUsZ9R1lA0HtBSohTkm39WTPlNKSJ5iFk7UwqXkBLoHQT+hfqPsfsTDVuZdKGaBwn7din9bS7SsnoAr943hvw==", + "node_modules/babel-plugin-polyfill-regenerator": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.4.1.tgz", + "integrity": "sha512-NtQGmyQDXjQqQ+IzRkBVwEOz9lQ4zxAQZgoAYEtU9dJjnl1Oc98qnN7jcp+bE7O7aYzVpavXE3/VKXNzUbh7aw==", "dev": true, "dependencies": { - "@babel/core": "^7.23.9", - "@babel/parser": "^7.23.9", - "@istanbuljs/schema": "^0.1.3", - "istanbul-lib-coverage": "^3.2.0", - "semver": "^7.5.4" + "@babel/helper-define-polyfill-provider": "^0.3.3" }, - "engines": { - "node": ">=10" + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/istanbul-lib-instrument/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==", + "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": { - "yallist": "^4.0.0" + "@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" }, - "engines": { - "node": ">=10" + "peerDependencies": { + "@babel/core": "^7.0.0" } }, - "node_modules/istanbul-lib-instrument/node_modules/semver": { - "version": "7.6.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", - "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", + "node_modules/babel-preset-jest": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-29.6.3.tgz", + "integrity": "sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==", "dev": true, "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" + "babel-plugin-jest-hoist": "^29.6.3", + "babel-preset-current-node-syntax": "^1.0.0" }, "engines": { - "node": ">=10" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, - "node_modules/istanbul-lib-instrument/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, - "node_modules/istanbul-lib-report": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", - "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==", + "node_modules/backoff": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/backoff/-/backoff-2.5.0.tgz", + "integrity": "sha512-wC5ihrnUXmR2douXmXLCe5O3zg3GKIyvRi/hi58a/XyRxVI+3/yM0PYueQOZXPXQ9pxBislYkw+sF9b7C/RuMA==", "dev": true, "dependencies": { - "istanbul-lib-coverage": "^3.0.0", - "make-dir": "^4.0.0", - "supports-color": "^7.1.0" + "precond": "0.2" }, "engines": { - "node": ">=10" + "node": ">= 0.6" } }, - "node_modules/istanbul-lib-report/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" }, - "node_modules/istanbul-lib-report/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, + "node_modules/base-64": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/base-64/-/base-64-1.0.0.tgz", + "integrity": "sha512-kwDPIFCGx0NZHog36dj+tHiwP4QMzsZ3AgMViUBKI0+V5n4U0ufTCUMhnQ04diaRI8EX/QcPfql7zlhZ7j4zgg==" + }, + "node_modules/base-x": { + "version": "3.0.8", + "license": "MIT", "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" + "safe-buffer": "^5.0.1" } }, - "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==", + "node_modules/base64-js": { + "version": "1.5.1", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/bcrypt-pbkdf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==", "dev": true, "dependencies": { - "debug": "^4.1.1", - "istanbul-lib-coverage": "^3.0.0", - "source-map": "^0.6.1" - }, - "engines": { - "node": ">=10" + "tweetnacl": "^0.14.3" } }, - "node_modules/istanbul-reports": { - "version": "3.1.7", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.7.tgz", - "integrity": "sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==", - "dev": true, - "dependencies": { - "html-escaper": "^2.0.0", - "istanbul-lib-report": "^3.0.0" - }, + "node_modules/bcrypt-pbkdf/node_modules/tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==", + "dev": true + }, + "node_modules/bech32": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/bech32/-/bech32-2.0.0.tgz", + "integrity": "sha512-LcknSilhIGatDAsY1ak2I8VtGaHNhgMSYVxFrGLXv+xLHytaKZKcaUJJUE7qmBr7h33o5YQwP55pMI0xmkpJwg==" + }, + "node_modules/big-integer": { + "version": "1.6.36", + "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.36.tgz", + "integrity": "sha512-t70bfa7HYEA1D9idDbmuv7YbsbVkQ+Hp+8KFSul4aE5e/i1bjCNIRYJZlA8Q8p0r9T8cF/RVvwUgRA//FydEyg==", "engines": { - "node": ">=8" + "node": ">=0.6" } }, - "node_modules/jayson": { - "version": "3.6.4", - "license": "MIT", + "node_modules/bigint-buffer": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/bigint-buffer/-/bigint-buffer-1.1.5.tgz", + "integrity": "sha512-trfYco6AoZ+rKhKnxA0hgX0HAbVP/s808/EuDSe2JDzUnCp/xAsli35Orvk67UrTEcwuxZqYZDmfA2RXJgxVvA==", + "hasInstallScript": true, "dependencies": { - "@types/connect": "^3.4.33", - "@types/express-serve-static-core": "^4.17.9", - "@types/lodash": "^4.14.159", - "@types/node": "^12.12.54", - "@types/ws": "^7.4.4", - "commander": "^2.20.3", - "delay": "^5.0.0", - "es6-promisify": "^5.0.0", - "eyes": "^0.1.8", - "isomorphic-ws": "^4.0.1", - "json-stringify-safe": "^5.0.1", - "JSONStream": "^1.3.5", - "lodash": "^4.17.20", - "uuid": "^3.4.0", - "ws": "^7.4.5" - }, - "bin": { - "jayson": "bin/jayson.js" + "bindings": "^1.3.0" }, "engines": { - "node": ">=8" + "node": ">= 10.0.0" } }, - "node_modules/jayson/node_modules/@types/node": { - "version": "12.20.16", - "license": "MIT" - }, - "node_modules/jest": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest/-/jest-29.7.0.tgz", - "integrity": "sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==", - "dev": true, - "dependencies": { - "@jest/core": "^29.7.0", - "@jest/types": "^29.6.3", - "import-local": "^3.0.2", - "jest-cli": "^29.7.0" - }, - "bin": { - "jest": "bin/jest.js" - }, + "node_modules/bignumber.js": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.0.1.tgz", + "integrity": "sha512-IdZR9mh6ahOBv/hYGiXyVuyCetmGJhtYkqLBpTStdhEGjegpPlUawydyaF3pbIOFynJTpllEs+NP+CS9jKFLjA==", "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" - }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } + "node": "*" } }, - "node_modules/jest-changed-files": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-29.7.0.tgz", - "integrity": "sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==", - "dev": true, - "dependencies": { - "execa": "^5.0.0", - "jest-util": "^29.7.0", - "p-limit": "^3.1.0" - }, + "node_modules/binary-parser": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/binary-parser/-/binary-parser-2.2.1.tgz", + "integrity": "sha512-5ATpz/uPDgq5GgEDxTB4ouXCde7q2lqAQlSdBRQVl/AJnxmQmhIfyxJx+0MGu//D5rHQifkfGbWWlaysG0o9NA==", "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=12" } }, - "node_modules/jest-circus": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-29.7.0.tgz", - "integrity": "sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw==", - "dev": true, + "node_modules/bindings": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", + "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", "dependencies": { - "@jest/environment": "^29.7.0", - "@jest/expect": "^29.7.0", - "@jest/test-result": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/node": "*", - "chalk": "^4.0.0", - "co": "^4.6.0", - "dedent": "^1.0.0", - "is-generator-fn": "^2.0.0", - "jest-each": "^29.7.0", - "jest-matcher-utils": "^29.7.0", - "jest-message-util": "^29.7.0", - "jest-runtime": "^29.7.0", - "jest-snapshot": "^29.7.0", - "jest-util": "^29.7.0", - "p-limit": "^3.1.0", - "pretty-format": "^29.7.0", - "pure-rand": "^6.0.0", - "slash": "^3.0.0", - "stack-utils": "^2.0.3" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "file-uri-to-path": "1.0.0" } }, - "node_modules/jest-circus/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, + "node_modules/bip32": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/bip32/-/bip32-2.0.6.tgz", + "integrity": "sha512-HpV5OMLLGTjSVblmrtYRfFFKuQB+GArM0+XP8HGWfJ5vxYBqo+DesvJwOdC2WJ3bCkZShGf0QIfoIpeomVzVdA==", "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" + "@types/node": "10.12.18", + "bs58check": "^2.1.1", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "tiny-secp256k1": "^1.1.3", + "typeforce": "^1.11.5", + "wif": "^2.0.6" }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "node": ">=6.0.0" } }, - "node_modules/jest-circus/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" + "node_modules/bip32/node_modules/@types/node": { + "version": "10.12.18", + "resolved": "https://registry.npmjs.org/@types/node/-/node-10.12.18.tgz", + "integrity": "sha512-fh+pAqt4xRzPfqA6eh3Z2y6fyZavRIumvjhaCL753+TVkGKGhpPeyrJG2JftD0T9q4GF00KjefsQ+PQNDdWQaQ==" + }, + "node_modules/bip39": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/bip39/-/bip39-3.0.4.tgz", + "integrity": "sha512-YZKQlb752TrUWqHWj7XAwCSjYEgGAk+/Aas3V7NyjQeZYsztO8JnQUaCWhcnL4T+jL8nvB8typ2jRPzTlgugNw==", + "dependencies": { + "@types/node": "11.11.6", + "create-hash": "^1.1.0", + "pbkdf2": "^3.0.9", + "randombytes": "^2.0.1" } }, - "node_modules/jest-circus/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, + "node_modules/bip39-light": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/bip39-light/-/bip39-light-1.0.7.tgz", + "integrity": "sha512-WDTmLRQUsiioBdTs9BmSEmkJza+8xfJmptsNJjxnoq3EydSa/ZBXT6rm66KoT3PJIRYMnhSKNR7S9YL1l7R40Q==", "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" + "create-hash": "^1.1.0", + "pbkdf2": "^3.0.9" } }, - "node_modules/jest-cli": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-29.7.0.tgz", - "integrity": "sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==", - "dev": true, + "node_modules/bip39/node_modules/@types/node": { + "version": "11.11.6", + "resolved": "https://registry.npmjs.org/@types/node/-/node-11.11.6.tgz", + "integrity": "sha512-Exw4yUWMBXM3X+8oqzJNRqZSwUAaS4+7NdvHqQuFi/d+synz++xmX3QIf+BFqneW8N31R8Ky+sikfZUXq07ggQ==" + }, + "node_modules/bip66": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/bip66/-/bip66-1.1.5.tgz", + "integrity": "sha512-nemMHz95EmS38a26XbbdxIYj5csHd3RMP3H5bwQknX0WYHF01qhpufP42mLOwVICuH2JmhIhXiWs89MfUGL7Xw==", + "optional": true, "dependencies": { - "@jest/core": "^29.7.0", - "@jest/test-result": "^29.7.0", - "@jest/types": "^29.6.3", - "chalk": "^4.0.0", - "create-jest": "^29.7.0", - "exit": "^0.1.2", - "import-local": "^3.0.2", - "jest-config": "^29.7.0", - "jest-util": "^29.7.0", - "jest-validate": "^29.7.0", - "yargs": "^17.3.1" - }, - "bin": { - "jest": "bin/jest.js" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" - }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } + "safe-buffer": "^5.0.1" } }, - "node_modules/jest-cli/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, + "node_modules/blakejs": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/blakejs/-/blakejs-1.1.1.tgz", + "integrity": "sha512-bLG6PHOCZJKNshTjGRBvET0vTciwQE6zFKOKKXPDJfwFBd4Ac0yBfPZqcGvGJap50l7ktvlpFqc2jGVaUgbJgg==" + }, + "node_modules/bn.js": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", + "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==" + }, + "node_modules/borsh": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/borsh/-/borsh-0.7.0.tgz", + "integrity": "sha512-CLCsZGIBCFnPtkNnieW/a8wmreDmfUtjU2m9yHrzPXIlNbqVs0AQrSatSG6vdNYUqdc83tkQi2eHfF98ubzQLA==", "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "bn.js": "^5.2.0", + "bs58": "^4.0.0", + "text-encoding-utf-8": "^1.0.2" } }, - "node_modules/jest-cli/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" } }, - "node_modules/jest-cli/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", "dev": true, "dependencies": { - "has-flag": "^4.0.0" + "fill-range": "^7.0.1" }, "engines": { "node": ">=8" } }, - "node_modules/jest-config": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-29.7.0.tgz", - "integrity": "sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==", - "dev": true, + "node_modules/brorand": { + "version": "1.1.0", + "license": "MIT" + }, + "node_modules/browser-headers": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/browser-headers/-/browser-headers-0.4.1.tgz", + "integrity": "sha512-CA9hsySZVo9371qEHjHZtYxV2cFtVj5Wj/ZHi8ooEsrtm4vOnl9Y9HmyYWk9q+05d7K3rdoAE0j3MVEFVvtQtg==" + }, + "node_modules/browserify-aes": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", + "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", "dependencies": { - "@babel/core": "^7.11.6", - "@jest/test-sequencer": "^29.7.0", - "@jest/types": "^29.6.3", - "babel-jest": "^29.7.0", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "deepmerge": "^4.2.2", - "glob": "^7.1.3", - "graceful-fs": "^4.2.9", - "jest-circus": "^29.7.0", - "jest-environment-node": "^29.7.0", - "jest-get-type": "^29.6.3", - "jest-regex-util": "^29.6.3", - "jest-resolve": "^29.7.0", - "jest-runner": "^29.7.0", - "jest-util": "^29.7.0", - "jest-validate": "^29.7.0", - "micromatch": "^4.0.4", - "parse-json": "^5.2.0", - "pretty-format": "^29.7.0", - "slash": "^3.0.0", - "strip-json-comments": "^3.1.1" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "peerDependencies": { - "@types/node": "*", - "ts-node": ">=9.0.0" - }, - "peerDependenciesMeta": { - "@types/node": { - "optional": true - }, - "ts-node": { - "optional": true - } + "buffer-xor": "^1.0.3", + "cipher-base": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.3", + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" } }, - "node_modules/jest-config/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/browserslist": { + "version": "4.23.0", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.0.tgz", + "integrity": "sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==", "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" + "caniuse-lite": "^1.0.30001587", + "electron-to-chromium": "^1.4.668", + "node-releases": "^2.0.14", + "update-browserslist-db": "^1.0.13" }, - "engines": { - "node": ">=10" + "bin": { + "browserslist": "cli.js" }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/jest-config/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, "engines": { - "node": ">=8" + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" } }, - "node_modules/jest-config/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "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": { - "has-flag": "^4.0.0" + "fast-json-stable-stringify": "2.x" }, "engines": { - "node": ">=8" + "node": ">= 6" } }, - "node_modules/jest-diff": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.7.0.tgz", - "integrity": "sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==", - "dev": true, + "node_modules/bs58": { + "version": "4.0.1", + "license": "MIT", "dependencies": { - "chalk": "^4.0.0", - "diff-sequences": "^29.6.3", - "jest-get-type": "^29.6.3", - "pretty-format": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "base-x": "^3.0.2" } }, - "node_modules/jest-diff/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, + "node_modules/bs58check": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/bs58check/-/bs58check-2.1.2.tgz", + "integrity": "sha512-0TS1jicxdU09dwJMNZtVAfzPi6Q6QeN0pM1Fkzrjn+XYHvzMKPU3pHVpva+769iNVSfIYWf7LJ6WR+BuuMf8cA==", "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "bs58": "^4.0.0", + "create-hash": "^1.1.0", + "safe-buffer": "^5.1.2" } }, - "node_modules/jest-diff/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "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, - "engines": { - "node": ">=8" + "dependencies": { + "node-int64": "^0.4.0" } }, - "node_modules/jest-diff/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "node_modules/btoa": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/btoa/-/btoa-1.2.1.tgz", + "integrity": "sha512-SB4/MIGlsiVkMcHmT+pSmIPoNDoHg+7cMzmt3Uxt628MTz2487DKSqK/fuhFBrkuqrYv5UCEnACpF4dTFNKc/g==", "dev": true, - "dependencies": { - "has-flag": "^4.0.0" + "bin": { + "btoa": "bin/btoa.js" }, "engines": { - "node": ">=8" + "node": ">= 0.4.0" } }, - "node_modules/jest-docblock": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-29.7.0.tgz", - "integrity": "sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==", - "dev": true, + "node_modules/buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], "dependencies": { - "detect-newline": "^3.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" } }, - "node_modules/jest-each": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-29.7.0.tgz", - "integrity": "sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==", - "dev": true, - "dependencies": { - "@jest/types": "^29.6.3", - "chalk": "^4.0.0", - "jest-get-type": "^29.6.3", - "jest-util": "^29.7.0", - "pretty-format": "^29.7.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/buffer-layout": { + "version": "1.2.2", + "license": "MIT", "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=4.5" } }, - "node_modules/jest-each/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, + "node_modules/buffer-xor": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", + "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=" + }, + "node_modules/bufferutil": { + "version": "4.0.3", + "hasInstallScript": true, + "license": "MIT", "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "node-gyp-build": "^4.2.0" } }, - "node_modules/jest-each/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, + "node_modules/cacheable-lookup": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz", + "integrity": "sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==", "engines": { - "node": ">=8" + "node": ">=10.6.0" } }, - "node_modules/jest-each/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, + "node_modules/cacheable-request": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-7.0.4.tgz", + "integrity": "sha512-v+p6ongsrp0yTGbJXjgxPow2+DL93DASP4kXCDKb8/bwRtt9OEF3whggkkDkGNzgcWy2XaF4a8nZglC7uElscg==", "dependencies": { - "has-flag": "^4.0.0" + "clone-response": "^1.0.2", + "get-stream": "^5.1.0", + "http-cache-semantics": "^4.0.0", + "keyv": "^4.0.0", + "lowercase-keys": "^2.0.0", + "normalize-url": "^6.0.1", + "responselike": "^2.0.0" }, "engines": { "node": ">=8" } }, - "node_modules/jest-environment-node": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.7.0.tgz", - "integrity": "sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==", - "dev": true, + "node_modules/cacheable-request/node_modules/get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", "dependencies": { - "@jest/environment": "^29.7.0", - "@jest/fake-timers": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/node": "*", - "jest-mock": "^29.7.0", - "jest-util": "^29.7.0" + "pump": "^3.0.0" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/jest-get-type": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz", - "integrity": "sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==", + "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, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=6" } }, - "node_modules/jest-haste-map": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.7.0.tgz", - "integrity": "sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==", - "dev": true, - "dependencies": { - "@jest/types": "^29.6.3", - "@types/graceful-fs": "^4.1.3", - "@types/node": "*", - "anymatch": "^3.0.3", - "fb-watchman": "^2.0.0", - "graceful-fs": "^4.2.9", - "jest-regex-util": "^29.6.3", - "jest-util": "^29.7.0", - "jest-worker": "^29.7.0", - "micromatch": "^4.0.4", - "walker": "^1.0.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": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "optionalDependencies": { - "fsevents": "^2.3.2" + "node": ">=6" } }, - "node_modules/jest-leak-detector": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-29.7.0.tgz", - "integrity": "sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==", + "node_modules/caniuse-lite": { + "version": "1.0.30001599", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001599.tgz", + "integrity": "sha512-LRAQHZ4yT1+f9LemSMeqdMpMxZcc4RMWdj4tiFe3G8tNkWK+E58g+/tzotb5cU6TbcVJLr4fySiAW7XmxQvZQA==", "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/capability": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/capability/-/capability-0.2.5.tgz", + "integrity": "sha512-rsJZYVCgXd08sPqwmaIqjAd5SUTfonV0z/gDJ8D6cN8wQphky1kkAYEqQ+hmDxTw7UihvBfjUVUSY+DBEe44jg==" + }, + "node_modules/caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==", + "dev": true + }, + "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==", "dependencies": { - "jest-get-type": "^29.6.3", - "pretty-format": "^29.7.0" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=4" } }, - "node_modules/jest-matcher-utils": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.7.0.tgz", - "integrity": "sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==", - "dev": true, + "node_modules/chalk/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": { - "chalk": "^4.0.0", - "jest-diff": "^29.7.0", - "jest-get-type": "^29.6.3", - "pretty-format": "^29.7.0" + "color-convert": "^1.9.0" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=4" } }, - "node_modules/jest-matcher-utils/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, + "node_modules/chalk/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": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "color-name": "1.1.3" } }, - "node_modules/jest-matcher-utils/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "node_modules/chalk/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" + }, + "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, "engines": { - "node": ">=8" + "node": ">=10" } }, - "node_modules/jest-matcher-utils/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "node_modules/checkpoint-store": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/checkpoint-store/-/checkpoint-store-1.1.0.tgz", + "integrity": "sha512-J/NdY2WvIx654cc6LWSq/IYFFCUf75fFTgwzFnmbqyORH4MwgiQCgswLLKBGzmsyTI5V7i5bp/So6sMbDWhedg==", "dev": true, "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" + "functional-red-black-tree": "^1.0.1" } }, - "node_modules/jest-message-util": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.7.0.tgz", - "integrity": "sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==", + "node_modules/ci-info": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", + "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==", "dev": true, - "dependencies": { - "@babel/code-frame": "^7.12.13", - "@jest/types": "^29.6.3", - "@types/stack-utils": "^2.0.0", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "micromatch": "^4.0.4", - "pretty-format": "^29.7.0", - "slash": "^3.0.0", - "stack-utils": "^2.0.3" - }, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/sibiraj-s" + } + ], "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=8" } }, - "node_modules/jest-message-util/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, + "node_modules/cipher-base": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", + "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/cjs-module-lexer": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.3.tgz", + "integrity": "sha512-0TNiGstbQmCFwt4akjjBg5pLRTSyj/PkWQ1ZoO2zntmg9yLqSRxwEa4iCfQLGjqhiqBfOJa7W/E8wfGrTDmlZQ==", + "dev": true + }, + "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/clone": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", + "integrity": "sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==", + "dev": true, "engines": { - "node": ">=10" + "node": ">=0.8" + } + }, + "node_modules/clone-response": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.3.tgz", + "integrity": "sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==", + "dependencies": { + "mimic-response": "^1.0.0" }, "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/jest-message-util/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "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": { - "node": ">=8" + "iojs": ">= 1.0.0", + "node": ">= 0.12.0" } }, - "node_modules/jest-message-util/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, + "node_modules/collect-v8-coverage": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.2.tgz", + "integrity": "sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==", + "dev": true + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dependencies": { - "has-flag": "^4.0.0" + "color-name": "~1.1.4" }, "engines": { - "node": ">=8" + "node": ">=7.0.0" } }, - "node_modules/jest-mock": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.7.0.tgz", - "integrity": "sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==", - "dev": true, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", "dependencies": { - "@jest/types": "^29.6.3", - "@types/node": "*", - "jest-util": "^29.7.0" + "delayed-stream": "~1.0.0" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">= 0.8" } }, - "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/commander": { + "version": "2.20.3", + "license": "MIT" }, - "node_modules/jest-regex-util": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-29.6.3.tgz", - "integrity": "sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==", - "dev": true, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" }, - "node_modules/jest-resolve": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-29.7.0.tgz", - "integrity": "sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==", - "dev": true, + "node_modules/config": { + "version": "3.3.7", + "resolved": "https://registry.npmjs.org/config/-/config-3.3.7.tgz", + "integrity": "sha512-mX/n7GKDYZMqvvkY6e6oBY49W8wxdmQt+ho/5lhwFDXqQW9gI+Ahp8EKp8VAbISPnmf2+Bv5uZK7lKXZ6pf1aA==", "dependencies": { - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.7.0", - "jest-pnp-resolver": "^1.2.2", - "jest-util": "^29.7.0", - "jest-validate": "^29.7.0", - "resolve": "^1.20.0", - "resolve.exports": "^2.0.0", - "slash": "^3.0.0" + "json5": "^2.1.1" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">= 10.0.0" } }, - "node_modules/jest-resolve-dependencies": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-29.7.0.tgz", - "integrity": "sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA==", - "dev": true, + "node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true + }, + "node_modules/copy-dir": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/copy-dir/-/copy-dir-1.3.0.tgz", + "integrity": "sha512-Q4+qBFnN4bwGwvtXXzbp4P/4iNk0MaiGAzvQ8OiMtlLjkIKjmNN689uVzShSM0908q7GoFHXIPx4zi75ocoaHw==", + "dev": true + }, + "node_modules/copyfiles": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/copyfiles/-/copyfiles-2.4.1.tgz", + "integrity": "sha512-fereAvAvxDrQDOXybk3Qu3dPbOoKoysFMWtkY3mv5BsL8//OSZVL5DCLYqgRfY5cWirgRzlC+WSrxp6Bo3eNZg==", "dependencies": { - "jest-regex-util": "^29.6.3", - "jest-snapshot": "^29.7.0" + "glob": "^7.0.5", + "minimatch": "^3.0.3", + "mkdirp": "^1.0.4", + "noms": "0.0.0", + "through2": "^2.0.1", + "untildify": "^4.0.0", + "yargs": "^16.1.0" }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "bin": { + "copyfiles": "copyfiles", + "copyup": "copyfiles" } }, - "node_modules/jest-resolve/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, + "node_modules/copyfiles/node_modules/yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" + "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" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/jest-resolve/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "node_modules/core-js-compat": { + "version": "3.26.0", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.26.0.tgz", + "integrity": "sha512-piOX9Go+Z4f9ZiBFLnZ5VrOpBl0h7IGCkiFUN11QTe6LjAvOT3ifL/5TdoizMh99hcGy5SoLyWbapIY/PIb/3A==", "dev": true, - "engines": { - "node": ">=8" + "dependencies": { + "browserslist": "^4.21.4" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" } }, - "node_modules/jest-resolve/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, + "node_modules/core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" + }, + "node_modules/cosmjs-types": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/cosmjs-types/-/cosmjs-types-0.5.2.tgz", + "integrity": "sha512-zxCtIJj8v3Di7s39uN4LNcN3HIE1z0B9Z0SPE8ZNQR0oSzsuSe1ACgxoFkvhkS7WBasCAFcglS11G2hyfd5tPg==", "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" + "long": "^4.0.0", + "protobufjs": "~6.11.2" } }, - "node_modules/jest-runner": { + "node_modules/crc-32": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/crc-32/-/crc-32-1.2.0.tgz", + "integrity": "sha512-1uBwHxF+Y/4yF5G48fwnKq6QsIXheor3ZLPT80yGBV1oEUwpPojlEhQbWKVw1VwcTQyMGHK1/XMmTjmlsmTTGA==", + "dependencies": { + "exit-on-epipe": "~1.0.1", + "printj": "~1.1.0" + }, + "bin": { + "crc32": "bin/crc32.njs" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/create-hash": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", + "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", + "dependencies": { + "cipher-base": "^1.0.1", + "inherits": "^2.0.1", + "md5.js": "^1.3.4", + "ripemd160": "^2.0.1", + "sha.js": "^2.4.0" + } + }, + "node_modules/create-hmac": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", + "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", + "dependencies": { + "cipher-base": "^1.0.3", + "create-hash": "^1.1.0", + "inherits": "^2.0.1", + "ripemd160": "^2.0.0", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + } + }, + "node_modules/create-jest": { "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-29.7.0.tgz", - "integrity": "sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==", + "resolved": "https://registry.npmjs.org/create-jest/-/create-jest-29.7.0.tgz", + "integrity": "sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==", "dev": true, "dependencies": { - "@jest/console": "^29.7.0", - "@jest/environment": "^29.7.0", - "@jest/test-result": "^29.7.0", - "@jest/transform": "^29.7.0", "@jest/types": "^29.6.3", - "@types/node": "*", "chalk": "^4.0.0", - "emittery": "^0.13.1", + "exit": "^0.1.2", "graceful-fs": "^4.2.9", - "jest-docblock": "^29.7.0", - "jest-environment-node": "^29.7.0", - "jest-haste-map": "^29.7.0", - "jest-leak-detector": "^29.7.0", - "jest-message-util": "^29.7.0", - "jest-resolve": "^29.7.0", - "jest-runtime": "^29.7.0", + "jest-config": "^29.7.0", "jest-util": "^29.7.0", - "jest-watcher": "^29.7.0", - "jest-worker": "^29.7.0", - "p-limit": "^3.1.0", - "source-map-support": "0.5.13" + "prompts": "^2.0.1" + }, + "bin": { + "create-jest": "bin/create-jest.js" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/jest-runner/node_modules/chalk": { + "node_modules/create-jest/node_modules/chalk": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", @@ -8228,7 +8550,7 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/jest-runner/node_modules/has-flag": { + "node_modules/create-jest/node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", @@ -8237,7 +8559,7 @@ "node": ">=8" } }, - "node_modules/jest-runner/node_modules/supports-color": { + "node_modules/create-jest/node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", @@ -8249,1019 +8571,941 @@ "node": ">=8" } }, - "node_modules/jest-runtime": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-29.7.0.tgz", - "integrity": "sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==", + "node_modules/cross-fetch": { + "version": "2.2.6", + "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-2.2.6.tgz", + "integrity": "sha512-9JZz+vXCmfKUZ68zAptS7k4Nu8e2qcibe7WVZYps7sAgk5R8GYTc+T1WR0v1rlP9HxgARmOX1UTIJZFytajpNA==", "dev": true, "dependencies": { - "@jest/environment": "^29.7.0", - "@jest/fake-timers": "^29.7.0", - "@jest/globals": "^29.7.0", - "@jest/source-map": "^29.6.3", - "@jest/test-result": "^29.7.0", - "@jest/transform": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/node": "*", - "chalk": "^4.0.0", - "cjs-module-lexer": "^1.0.0", - "collect-v8-coverage": "^1.0.0", - "glob": "^7.1.3", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.7.0", - "jest-message-util": "^29.7.0", - "jest-mock": "^29.7.0", - "jest-regex-util": "^29.6.3", - "jest-resolve": "^29.7.0", - "jest-snapshot": "^29.7.0", - "jest-util": "^29.7.0", - "slash": "^3.0.0", - "strip-bom": "^4.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node-fetch": "^2.6.7", + "whatwg-fetch": "^2.0.4" } }, - "node_modules/jest-runtime/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/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", "dev": true, "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "node": ">= 8" } }, - "node_modules/jest-runtime/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, + "node_modules/crypto-addr-codec": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/crypto-addr-codec/-/crypto-addr-codec-0.1.7.tgz", + "integrity": "sha512-X4hzfBzNhy4mAc3UpiXEC/L0jo5E8wAa9unsnA8nNXYzXjCcGk83hfC5avJWCSGT8V91xMnAS9AKMHmjw5+XCg==", + "dependencies": { + "base-x": "^3.0.8", + "big-integer": "1.6.36", + "blakejs": "^1.1.0", + "bs58": "^4.0.1", + "ripemd160-min": "0.0.6", + "safe-buffer": "^5.2.0", + "sha3": "^2.1.1" + } + }, + "node_modules/crypto-hash": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/crypto-hash/-/crypto-hash-1.3.0.tgz", + "integrity": "sha512-lyAZ0EMyjDkVvz8WOeVnuCPvKVBXcMv1l5SVqO1yC7PzTwrD/pPje/BIRbWhMoPe436U+Y2nD7f5bFx0kt+Sbg==", "engines": { "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/jest-runtime/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "node_modules/dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==", "dev": true, "dependencies": { - "has-flag": "^4.0.0" + "assert-plus": "^1.0.0" }, "engines": { - "node": ">=8" + "node": ">=0.10" } }, - "node_modules/jest-snapshot": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-29.7.0.tgz", - "integrity": "sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==", + "node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", "dev": true, "dependencies": { - "@babel/core": "^7.11.6", - "@babel/generator": "^7.7.2", - "@babel/plugin-syntax-jsx": "^7.7.2", - "@babel/plugin-syntax-typescript": "^7.7.2", - "@babel/types": "^7.3.3", - "@jest/expect-utils": "^29.7.0", - "@jest/transform": "^29.7.0", - "@jest/types": "^29.6.3", - "babel-preset-current-node-syntax": "^1.0.0", - "chalk": "^4.0.0", - "expect": "^29.7.0", - "graceful-fs": "^4.2.9", - "jest-diff": "^29.7.0", - "jest-get-type": "^29.6.3", - "jest-matcher-utils": "^29.7.0", - "jest-message-util": "^29.7.0", - "jest-util": "^29.7.0", - "natural-compare": "^1.4.0", - "pretty-format": "^29.7.0", - "semver": "^7.5.3" + "ms": "2.1.2" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } } }, - "node_modules/jest-snapshot/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, + "node_modules/decimal.js": { + "version": "10.3.1", + "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.3.1.tgz", + "integrity": "sha512-V0pfhfr8suzyPGOx3nmq4aHqabehUZn6Ch9kyFpV79TGDTWFmHqUqXdabR7QHqxzrYolF4+tVmJhUG4OURg5dQ==" + }, + "node_modules/decompress-response": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", + "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" + "mimic-response": "^3.1.0" }, "engines": { "node": ">=10" }, "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/jest-snapshot/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, + "node_modules/decompress-response/node_modules/mimic-response": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", + "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==", "engines": { - "node": ">=8" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/jest-snapshot/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==", + "node_modules/dedent": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.5.1.tgz", + "integrity": "sha512-+LxW+KLWxu3HW3M2w2ympwtqPrqYRzU8fqi6Fhd18fBALe15blJPI/I4+UHveMVG6lJqB4JNd4UG0S5cnVHwIg==", "dev": true, - "dependencies": { - "yallist": "^4.0.0" + "peerDependencies": { + "babel-plugin-macros": "^3.1.0" }, + "peerDependenciesMeta": { + "babel-plugin-macros": { + "optional": 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" + } + }, + "node_modules/defer-to-connect": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz", + "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==", "engines": { "node": ">=10" } }, - "node_modules/jest-snapshot/node_modules/semver": { - "version": "7.6.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", - "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", + "node_modules/deferred-leveldown": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/deferred-leveldown/-/deferred-leveldown-1.2.2.tgz", + "integrity": "sha512-uukrWD2bguRtXilKt6cAWKyoXrTSMo5m7crUdLfWQmu8kIm88w3QZoUL+6nhpfKVmhHANER6Re3sKoNoZ3IKMA==", "dev": true, "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" + "abstract-leveldown": "~2.6.0" } }, - "node_modules/jest-snapshot/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, + "node_modules/define-properties": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz", + "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==", "dependencies": { - "has-flag": "^4.0.0" + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" }, "engines": { - "node": ">=8" - } - }, - "node_modules/jest-snapshot/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, - "node_modules/jest-util": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.7.0.tgz", - "integrity": "sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==", - "dev": true, - "dependencies": { - "@jest/types": "^29.6.3", - "@types/node": "*", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.9", - "picomatch": "^2.2.3" + "node": ">= 0.4" }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/jest-util/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, + "node_modules/delay": { + "version": "5.0.0", + "license": "MIT", "engines": { "node": ">=10" }, "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/jest-util/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", "engines": { - "node": ">=8" + "node": ">=0.4.0" } }, - "node_modules/jest-util/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "node_modules/depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", + "engines": { + "node": ">= 0.6" + } + }, + "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, - "dependencies": { - "has-flag": "^4.0.0" - }, "engines": { "node": ">=8" } }, - "node_modules/jest-validate": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-29.7.0.tgz", - "integrity": "sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==", + "node_modules/diff-sequences": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz", + "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==", "dev": true, - "dependencies": { - "@jest/types": "^29.6.3", - "camelcase": "^6.2.0", - "chalk": "^4.0.0", - "jest-get-type": "^29.6.3", - "leven": "^3.1.0", - "pretty-format": "^29.7.0" - }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.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, + "node_modules/dom-walk": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/dom-walk/-/dom-walk-0.1.2.tgz", + "integrity": "sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w==", + "dev": true + }, + "node_modules/dot-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz", + "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==", + "dependencies": { + "no-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/dotenv": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-10.0.0.tgz", + "integrity": "sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q==", "engines": { "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/jest-validate/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, + "node_modules/drbg.js": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/drbg.js/-/drbg.js-1.0.1.tgz", + "integrity": "sha512-F4wZ06PvqxYLFEZKkFxTDcns9oFNk34hvmJSEwdzsxVQ8YI5YaxtACgQatkYgv2VI2CFkUd2Y+xosPQnHv809g==", + "optional": true, "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" + "browserify-aes": "^1.0.6", + "create-hash": "^1.1.2", + "create-hmac": "^1.1.4" }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "node": ">=0.10" } }, - "node_modules/jest-validate/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "node_modules/ecc-jsbn": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", + "integrity": "sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==", "dev": true, - "engines": { - "node": ">=8" + "dependencies": { + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" } }, - "node_modules/jest-validate/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, + "node_modules/eccrypto": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/eccrypto/-/eccrypto-1.1.6.tgz", + "integrity": "sha512-d78ivVEzu7Tn0ZphUUaL43+jVPKTMPFGtmgtz1D0LrFn7cY3K8CdrvibuLz2AAkHBLKZtR8DMbB2ukRYFk987A==", + "hasInstallScript": true, "dependencies": { - "has-flag": "^4.0.0" + "acorn": "7.1.1", + "elliptic": "6.5.4", + "es6-promise": "4.2.8", + "nan": "2.14.0" }, - "engines": { - "node": ">=8" + "optionalDependencies": { + "secp256k1": "3.7.1" } }, - "node_modules/jest-watcher": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-29.7.0.tgz", - "integrity": "sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==", - "dev": true, - "dependencies": { - "@jest/test-result": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "emittery": "^0.13.1", - "jest-util": "^29.7.0", - "string-length": "^4.0.1" + "node_modules/eccrypto/node_modules/acorn": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.1.1.tgz", + "integrity": "sha512-add7dgA5ppRPxCFJoAGfMDi7PIBXq1RtGo7BhbLaxwrXPOmw8gq48Y9ozT01hUKy9byMjlR20EJhu5zlkErEkg==", + "bin": { + "acorn": "bin/acorn" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=0.4.0" } }, - "node_modules/jest-watcher/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, + "node_modules/eccrypto/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "optional": true + }, + "node_modules/eccrypto/node_modules/nan": { + "version": "2.14.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.0.tgz", + "integrity": "sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg==" + }, + "node_modules/eccrypto/node_modules/secp256k1": { + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-3.7.1.tgz", + "integrity": "sha512-1cf8sbnRreXrQFdH6qsg2H71Xw91fCCS9Yp021GnUNJzWJS/py96fS4lHbnTnouLp08Xj6jBoBB6V78Tdbdu5g==", + "hasInstallScript": true, + "optional": true, "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" + "bindings": "^1.5.0", + "bip66": "^1.1.5", + "bn.js": "^4.11.8", + "create-hash": "^1.2.0", + "drbg.js": "^1.0.1", + "elliptic": "^6.4.1", + "nan": "^2.14.0", + "safe-buffer": "^5.1.2" }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "node": ">=4.0.0" } }, - "node_modules/jest-watcher/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "node_modules/electron-to-chromium": { + "version": "1.4.714", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.714.tgz", + "integrity": "sha512-OfnVHt+nMRH9Ua5koH/2gKlCAXbG+u1yXwLKyBVqNboBV34ZTwb846RUe8K5mtE1uhz0BXoMarZ13JCQr+sBtQ==", + "dev": true + }, + "node_modules/elliptic": { + "version": "6.5.4", + "license": "MIT", + "dependencies": { + "bn.js": "^4.11.9", + "brorand": "^1.1.0", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.1", + "inherits": "^2.0.4", + "minimalistic-assert": "^1.0.1", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "node_modules/elliptic/node_modules/bn.js": { + "version": "4.12.0", + "license": "MIT" + }, + "node_modules/emittery": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.13.1.tgz", + "integrity": "sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==", "dev": true, "engines": { - "node": ">=8" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sindresorhus/emittery?sponsor=1" } }, - "node_modules/jest-watcher/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, + "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/encoding": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", + "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", + "optional": true, + "peer": true, "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" + "iconv-lite": "^0.6.2" } }, - "node_modules/jest-worker": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.7.0.tgz", - "integrity": "sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==", - "dev": true, + "node_modules/encoding/node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "optional": true, + "peer": true, "dependencies": { - "@types/node": "*", - "jest-util": "^29.7.0", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" + "safer-buffer": ">= 2.1.2 < 3.0.0" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=0.10.0" } }, - "node_modules/jest-worker/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" + "node_modules/end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dependencies": { + "once": "^1.4.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==", + "node_modules/errno": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz", + "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==", "dev": true, "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=10" + "prr": "~1.0.1" }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" + "bin": { + "errno": "cli.js" } }, - "node_modules/js-base64": { - "version": "3.6.1", - "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-3.6.1.tgz", - "integrity": "sha512-Frdq2+tRRGLQUIQOgsIGSCd1VePCS2fsddTG5dTCqR0JHgltXWfsxnY0gIXPoMeRmdom6Oyq+UMOFg5suduOjQ==" - }, - "node_modules/js-sha256": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/js-sha256/-/js-sha256-0.9.0.tgz", - "integrity": "sha512-sga3MHh9sgQN2+pJ9VYZ+1LPwXOxuBJBA5nrR5/ofPfuiJBE2hnjsaN8se8JznOmGLN2p49Pe5U/ttafcs/apA==" - }, - "node_modules/js-sha3": { - "version": "0.8.0", - "license": "MIT" - }, - "node_modules/js-sha512": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/js-sha512/-/js-sha512-0.8.0.tgz", - "integrity": "sha512-PWsmefG6Jkodqt+ePTvBZCSMFgN7Clckjd0O7su3I0+BW2QWUTJNzjktHsztGLhncP2h8mcF9V9Y2Ha59pAViQ==" - }, - "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==" - }, - "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==", + "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": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" + "is-arrayish": "^0.2.1" } }, - "node_modules/jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==", - "dev": true + "node_modules/error-polyfill": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/error-polyfill/-/error-polyfill-0.1.3.tgz", + "integrity": "sha512-XHJk60ufE+TG/ydwp4lilOog549iiQF2OAPhkk9DdiYWMrltz5yhDz/xnKuenNwP7gy3dsibssO5QpVhkrSzzg==", + "dependencies": { + "capability": "^0.2.5", + "o3": "^1.0.3", + "u3": "^0.1.1" + } }, - "node_modules/jscrypto": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/jscrypto/-/jscrypto-1.0.3.tgz", - "integrity": "sha512-lryZl0flhodv4SZHOqyb1bx5sKcJxj0VBo0Kzb4QMAg3L021IC9uGpl0RCZa+9KJwlRGSK2C80ITcwbe19OKLQ==", - "bin": { - "jscrypto": "bin/cli.js" + "node_modules/es6-promise": { + "version": "4.2.8", + "license": "MIT" + }, + "node_modules/es6-promisify": { + "version": "5.0.0", + "license": "MIT", + "dependencies": { + "es6-promise": "^4.0.3" } }, - "node_modules/jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", - "dev": true, + "node_modules/esbuild": { + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.17.18.tgz", + "integrity": "sha512-z1lix43jBs6UKjcZVKOw2xx69ffE2aG0PygLL5qJ9OS/gy0Ewd1gW/PUQIOIQGXBHWNywSc0floSKoMFF8aK2w==", + "hasInstallScript": true, "bin": { - "jsesc": "bin/jsesc" + "esbuild": "bin/esbuild" }, "engines": { - "node": ">=4" + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/android-arm": "0.17.18", + "@esbuild/android-arm64": "0.17.18", + "@esbuild/android-x64": "0.17.18", + "@esbuild/darwin-arm64": "0.17.18", + "@esbuild/darwin-x64": "0.17.18", + "@esbuild/freebsd-arm64": "0.17.18", + "@esbuild/freebsd-x64": "0.17.18", + "@esbuild/linux-arm": "0.17.18", + "@esbuild/linux-arm64": "0.17.18", + "@esbuild/linux-ia32": "0.17.18", + "@esbuild/linux-loong64": "0.17.18", + "@esbuild/linux-mips64el": "0.17.18", + "@esbuild/linux-ppc64": "0.17.18", + "@esbuild/linux-riscv64": "0.17.18", + "@esbuild/linux-s390x": "0.17.18", + "@esbuild/linux-x64": "0.17.18", + "@esbuild/netbsd-x64": "0.17.18", + "@esbuild/openbsd-x64": "0.17.18", + "@esbuild/sunos-x64": "0.17.18", + "@esbuild/win32-arm64": "0.17.18", + "@esbuild/win32-ia32": "0.17.18", + "@esbuild/win32-x64": "0.17.18" } }, - "node_modules/json-bigint": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-bigint/-/json-bigint-1.0.0.tgz", - "integrity": "sha512-SiPv/8VpZuWbvLSMtTDU8hEfrZWg/mH/nV/b4o0CYbSxu1UIQPLdwKOCIyLQX+VIPO5vrLX3i8qtqFyhdPSUSQ==", - "dependencies": { - "bignumber.js": "^9.0.0" + "node_modules/escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "engines": { + "node": ">=6" } }, - "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/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "engines": { + "node": ">=0.8.0" + } }, - "node_modules/json-rpc-engine": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/json-rpc-engine/-/json-rpc-engine-6.1.0.tgz", - "integrity": "sha512-NEdLrtrq1jUZyfjkr9OCz9EzCNhnRyWtt1PAnvnhwy6e8XETS0Dtc+ZNCO2gvuAoKsIn2+vCSowXTYE4CkgnAQ==", + "node_modules/esprima": { + "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, - "dependencies": { - "@metamask/safe-event-emitter": "^2.0.0", - "eth-rpc-errors": "^4.0.2" + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" }, "engines": { - "node": ">=10.0.0" + "node": ">=4" } }, - "node_modules/json-rpc-engine/node_modules/eth-rpc-errors": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/eth-rpc-errors/-/eth-rpc-errors-4.0.3.tgz", - "integrity": "sha512-Z3ymjopaoft7JDoxZcEb3pwdGh7yiYMhOwm2doUt6ASXlMavpNlK6Cre0+IMl2VSGyEU9rkiperQhp5iRxn5Pg==", + "node_modules/eth-block-tracker": { + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/eth-block-tracker/-/eth-block-tracker-4.4.3.tgz", + "integrity": "sha512-A8tG4Z4iNg4mw5tP1Vung9N9IjgMNqpiMoJ/FouSFwNCGHv2X0mmOYwtQOJzki6XN7r7Tyo01S29p7b224I4jw==", "dev": true, "dependencies": { - "fast-safe-stringify": "^2.0.6" + "@babel/plugin-transform-runtime": "^7.5.5", + "@babel/runtime": "^7.5.5", + "eth-query": "^2.1.0", + "json-rpc-random-id": "^1.0.1", + "pify": "^3.0.0", + "safe-event-emitter": "^1.0.1" } }, - "node_modules/json-rpc-random-id": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-rpc-random-id/-/json-rpc-random-id-1.0.1.tgz", - "integrity": "sha512-RJ9YYNCkhVDBuP4zN5BBtYAzEl03yq/jIIsyif0JY9qyJuQQZNeDK7anAPKKlyEtLSj2s8h6hNh2F8zO5q7ScA==", - "dev": true - }, - "node_modules/json-schema": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", - "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==", - "dev": true - }, - "node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, - "node_modules/json-stable-stringify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz", - "integrity": "sha512-i/J297TW6xyj7sDFa7AmBPkQvLIxWr2kKPWI26tXydnZrzVAocNqn5DMNT1Mzk0vit1V5UkRM7C1KdVNp7Lmcg==", - "dev": true, + "node_modules/eth-crypto": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/eth-crypto/-/eth-crypto-2.6.0.tgz", + "integrity": "sha512-GCX4ffFYRUGgnuWR5qxcZIRQJ1KEqPFiyXU9yVy7s6dtXIMlUXZQ2h+5ID6rFaOHWbpJbjfkC6YdhwtwRYCnug==", "dependencies": { - "jsonify": "~0.0.0" - } - }, - "node_modules/json-stringify-safe": { - "version": "5.0.1", - "license": "ISC" - }, - "node_modules/json5": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", - "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", - "bin": { - "json5": "lib/cli.js" + "@babel/runtime": "7.20.13", + "@ethereumjs/tx": "3.5.2", + "@types/bn.js": "5.1.1", + "eccrypto": "1.1.6", + "ethereumjs-util": "7.1.5", + "ethers": "5.7.2", + "secp256k1": "5.0.0" }, - "engines": { - "node": ">=6" - } - }, - "node_modules/jsonify": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.1.tgz", - "integrity": "sha512-2/Ki0GcmuqSrgFyelQq9M05y7PS0mEwuIzrf3f1fPqkVDVRvZrPZtVSMHxdgo8Aq0sxAOb/cr2aqqA3LeWHVPg==", - "dev": true, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/sponsors/pubkey" } }, - "node_modules/jsonparse": { - "version": "1.3.1", - "engines": [ - "node >= 0.2.0" - ], - "license": "MIT" - }, - "node_modules/jsonschema": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/jsonschema/-/jsonschema-1.4.1.tgz", - "integrity": "sha512-S6cATIPVv1z0IlxdN+zUk5EPjkGCdnhN4wVSBlvoUO1tOLJootbo9CquNJmbIh4yikWHiUedhRYrNPn1arpEmQ==", - "engines": { - "node": "*" - } + "node_modules/eth-crypto/node_modules/node-addon-api": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-5.1.0.tgz", + "integrity": "sha512-eh0GgfEkpnoWDq+VY8OyvYhFEzBk6jIYbRKdIlyTiAXIVJ8PyBaKb0rp7oDtoddbdoHWhq8wwr+XZ81F1rpNdA==" }, - "node_modules/JSONStream": { - "version": "1.3.5", - "license": "(MIT OR Apache-2.0)", + "node_modules/eth-crypto/node_modules/secp256k1": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-5.0.0.tgz", + "integrity": "sha512-TKWX8xvoGHrxVdqbYeZM9w+izTF4b9z3NhSaDkdn81btvuh+ivbIMGT/zQvDtTFWhRlThpoz6LEYTr7n8A5GcA==", + "hasInstallScript": true, "dependencies": { - "jsonparse": "^1.2.0", - "through": ">=2.2.7 <3" - }, - "bin": { - "JSONStream": "bin.js" + "elliptic": "^6.5.4", + "node-addon-api": "^5.0.0", + "node-gyp-build": "^4.2.0" }, "engines": { - "node": "*" + "node": ">=14.0.0" } }, - "node_modules/jsprim": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.2.tgz", - "integrity": "sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==", + "node_modules/eth-json-rpc-filters": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/eth-json-rpc-filters/-/eth-json-rpc-filters-4.2.2.tgz", + "integrity": "sha512-DGtqpLU7bBg63wPMWg1sCpkKCf57dJ+hj/k3zF26anXMzkmtSBDExL8IhUu7LUd34f0Zsce3PYNO2vV2GaTzaw==", "dev": true, "dependencies": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.4.0", - "verror": "1.10.0" - }, - "engines": { - "node": ">=0.6.0" + "@metamask/safe-event-emitter": "^2.0.0", + "async-mutex": "^0.2.6", + "eth-json-rpc-middleware": "^6.0.0", + "eth-query": "^2.1.2", + "json-rpc-engine": "^6.1.0", + "pify": "^5.0.0" } }, - "node_modules/keccak": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/keccak/-/keccak-3.0.2.tgz", - "integrity": "sha512-PyKKjkH53wDMLGrvmRGSNWgmSxZOUqbnXwKL9tmgbFYA1iAYqW21kfR7mZXV0MlESiefxQQE9X9fTa3X+2MPDQ==", - "hasInstallScript": true, - "dependencies": { - "node-addon-api": "^2.0.0", - "node-gyp-build": "^4.2.0", - "readable-stream": "^3.6.0" - }, + "node_modules/eth-json-rpc-filters/node_modules/pify": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-5.0.0.tgz", + "integrity": "sha512-eW/gHNMlxdSP6dmG6uJip6FXN0EQBwm2clYYd8Wul42Cwu/DK8HEftzsapcNdYe2MfLiIwZqsDk2RDEsTE79hA==", + "dev": true, "engines": { - "node": ">=10.0.0" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/keccak256": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/keccak256/-/keccak256-1.0.6.tgz", - "integrity": "sha512-8GLiM01PkdJVGUhR1e6M/AvWnSqYS0HaERI+K/QtStGDGlSTx2B1zTqZk4Zlqu5TxHJNTxWAdP9Y+WI50OApUw==", + "node_modules/eth-json-rpc-infura": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/eth-json-rpc-infura/-/eth-json-rpc-infura-5.1.0.tgz", + "integrity": "sha512-THzLye3PHUSGn1EXMhg6WTLW9uim7LQZKeKaeYsS9+wOBcamRiCQVGHa6D2/4P0oS0vSaxsBnU/J6qvn0MPdow==", + "dev": true, "dependencies": { - "bn.js": "^5.2.0", - "buffer": "^6.0.3", - "keccak": "^3.0.2" + "eth-json-rpc-middleware": "^6.0.0", + "eth-rpc-errors": "^3.0.0", + "json-rpc-engine": "^5.3.0", + "node-fetch": "^2.6.0" } }, - "node_modules/keccak256/node_modules/buffer": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", - "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", - "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/eth-json-rpc-infura/node_modules/json-rpc-engine": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/json-rpc-engine/-/json-rpc-engine-5.4.0.tgz", + "integrity": "sha512-rAffKbPoNDjuRnXkecTjnsE3xLLrb00rEkdgalINhaYVYIxDwWtvYBr9UFbhTvPB1B2qUOLoFd/cV6f4Q7mh7g==", + "dev": true, "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" + "eth-rpc-errors": "^3.0.0", + "safe-event-emitter": "^1.0.1" } }, - "node_modules/kleur": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", - "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", + "node_modules/eth-json-rpc-middleware": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/eth-json-rpc-middleware/-/eth-json-rpc-middleware-6.0.0.tgz", + "integrity": "sha512-qqBfLU2Uq1Ou15Wox1s+NX05S9OcAEL4JZ04VZox2NS0U+RtCMjSxzXhLFWekdShUPZ+P8ax3zCO2xcPrp6XJQ==", "dev": true, - "engines": { - "node": ">=6" + "dependencies": { + "btoa": "^1.2.1", + "clone": "^2.1.1", + "eth-query": "^2.1.2", + "eth-rpc-errors": "^3.0.0", + "eth-sig-util": "^1.4.2", + "ethereumjs-util": "^5.1.2", + "json-rpc-engine": "^5.3.0", + "json-stable-stringify": "^1.0.1", + "node-fetch": "^2.6.1", + "pify": "^3.0.0", + "safe-event-emitter": "^1.0.1" } }, - "node_modules/level-codec": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/level-codec/-/level-codec-7.0.1.tgz", - "integrity": "sha512-Ua/R9B9r3RasXdRmOtd+t9TCOEIIlts+TN/7XTT2unhDaL6sJn83S3rUyljbr6lVtw49N3/yA0HHjpV6Kzb2aQ==", + "node_modules/eth-json-rpc-middleware/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", "dev": true }, - "node_modules/level-errors": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/level-errors/-/level-errors-1.0.5.tgz", - "integrity": "sha512-/cLUpQduF6bNrWuAC4pwtUKA5t669pCsCi2XbmojG2tFeOr9j6ShtdDCtFFQO1DRt+EVZhx9gPzP9G2bUaG4ig==", + "node_modules/eth-json-rpc-middleware/node_modules/ethereumjs-util": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", + "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", "dev": true, "dependencies": { - "errno": "~0.1.1" + "bn.js": "^4.11.0", + "create-hash": "^1.1.2", + "elliptic": "^6.5.2", + "ethereum-cryptography": "^0.1.3", + "ethjs-util": "^0.1.3", + "rlp": "^2.0.0", + "safe-buffer": "^5.1.1" } }, - "node_modules/level-iterator-stream": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/level-iterator-stream/-/level-iterator-stream-1.3.1.tgz", - "integrity": "sha512-1qua0RHNtr4nrZBgYlpV0qHHeHpcRRWTxEZJ8xsemoHAXNL5tbooh4tPEEqIqsbWCAJBmUmkwYK/sW5OrFjWWw==", + "node_modules/eth-json-rpc-middleware/node_modules/json-rpc-engine": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/json-rpc-engine/-/json-rpc-engine-5.4.0.tgz", + "integrity": "sha512-rAffKbPoNDjuRnXkecTjnsE3xLLrb00rEkdgalINhaYVYIxDwWtvYBr9UFbhTvPB1B2qUOLoFd/cV6f4Q7mh7g==", "dev": true, "dependencies": { - "inherits": "^2.0.1", - "level-errors": "^1.0.3", - "readable-stream": "^1.0.33", - "xtend": "^4.0.0" + "eth-rpc-errors": "^3.0.0", + "safe-event-emitter": "^1.0.1" } }, - "node_modules/level-iterator-stream/node_modules/readable-stream": { - "version": "1.1.14", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", - "integrity": "sha512-+MeVjFf4L44XUkhM1eYbD8fyEsxcV81pqMSR5gblfcLCHfZvbrqy4/qYHE+/R5HoBUT11WV5O08Cr1n3YXkWVQ==", + "node_modules/eth-query": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/eth-query/-/eth-query-2.1.2.tgz", + "integrity": "sha512-srES0ZcvwkR/wd5OQBRA1bIJMww1skfGS0s8wlwK3/oNP4+wnds60krvu5R1QbpRQjMmpG5OMIWro5s7gvDPsA==", "dev": true, "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" + "json-rpc-random-id": "^1.0.0", + "xtend": "^4.0.1" } }, - "node_modules/level-iterator-stream/node_modules/string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==", - "dev": true - }, - "node_modules/level-ws": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/level-ws/-/level-ws-0.0.0.tgz", - "integrity": "sha512-XUTaO/+Db51Uiyp/t7fCMGVFOTdtLS/NIACxE/GHsij15mKzxksZifKVjlXDF41JMUP/oM1Oc4YNGdKnc3dVLw==", + "node_modules/eth-rpc-errors": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/eth-rpc-errors/-/eth-rpc-errors-3.0.0.tgz", + "integrity": "sha512-iPPNHPrLwUlR9xCSYm7HHQjWBasor3+KZfRvwEWxMz3ca0yqnlBeJrnyphkGIXZ4J7AMAaOLmwy4AWhnxOiLxg==", "dev": true, "dependencies": { - "readable-stream": "~1.0.15", - "xtend": "~2.1.1" + "fast-safe-stringify": "^2.0.6" } }, - "node_modules/level-ws/node_modules/object-keys": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-0.4.0.tgz", - "integrity": "sha512-ncrLw+X55z7bkl5PnUvHwFK9FcGuFYo9gtjws2XtSzL+aZ8tm830P60WJ0dSmFVaSalWieW5MD7kEdnXda9yJw==", - "dev": true - }, - "node_modules/level-ws/node_modules/readable-stream": { - "version": "1.0.34", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", - "integrity": "sha512-ok1qVCJuRkNmvebYikljxJA/UEsKwLl2nI1OmaqAu4/UE+h0wKCHok4XkL/gvi39OacXvw59RJUOFUkDib2rHg==", + "node_modules/eth-sig-util": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/eth-sig-util/-/eth-sig-util-1.4.2.tgz", + "integrity": "sha512-iNZ576iTOGcfllftB73cPB5AN+XUQAT/T8xzsILsghXC1o8gJUqe3RHlcDqagu+biFpYQ61KQrZZJza8eRSYqw==", + "deprecated": "Deprecated in favor of '@metamask/eth-sig-util'", "dev": true, "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" + "ethereumjs-abi": "git+https://github.com/ethereumjs/ethereumjs-abi.git", + "ethereumjs-util": "^5.1.1" } }, - "node_modules/level-ws/node_modules/string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==", + "node_modules/eth-sig-util/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", "dev": true }, - "node_modules/level-ws/node_modules/xtend": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-2.1.2.tgz", - "integrity": "sha512-vMNKzr2rHP9Dp/e1NQFnLQlwlhp9L/LfvnsVdHxN1f+uggyVI3i08uD14GPvCToPkdsRfyPqIyYGmIk58V98ZQ==", + "node_modules/eth-sig-util/node_modules/ethereumjs-util": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", + "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", "dev": true, "dependencies": { - "object-keys": "~0.4.0" - }, - "engines": { - "node": ">=0.4" + "bn.js": "^4.11.0", + "create-hash": "^1.1.2", + "elliptic": "^6.5.2", + "ethereum-cryptography": "^0.1.3", + "ethjs-util": "^0.1.3", + "rlp": "^2.0.0", + "safe-buffer": "^5.1.1" } }, - "node_modules/levelup": { - "version": "1.3.9", - "resolved": "https://registry.npmjs.org/levelup/-/levelup-1.3.9.tgz", - "integrity": "sha512-VVGHfKIlmw8w1XqpGOAGwq6sZm2WwWLmlDcULkKWQXEA5EopA8OBNJ2Ck2v6bdk8HeEZSbCSEgzXadyQFm76sQ==", - "dev": true, + "node_modules/ethereum-common": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/ethereum-common/-/ethereum-common-0.2.0.tgz", + "integrity": "sha512-XOnAR/3rntJgbCdGhqdaLIxDLWKLmsZOGhHdBKadEr6gEnJLH52k93Ou+TUdFaPN3hJc3isBZBal3U/XZ15abA==", + "dev": true + }, + "node_modules/ethereum-cryptography": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz", + "integrity": "sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ==", "dependencies": { - "deferred-leveldown": "~1.2.1", - "level-codec": "~7.0.0", - "level-errors": "~1.0.3", - "level-iterator-stream": "~1.3.0", - "prr": "~1.0.1", - "semver": "~5.4.1", - "xtend": "~4.0.0" + "@types/pbkdf2": "^3.0.0", + "@types/secp256k1": "^4.0.1", + "blakejs": "^1.1.0", + "browserify-aes": "^1.2.0", + "bs58check": "^2.1.2", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "hash.js": "^1.1.7", + "keccak": "^3.0.0", + "pbkdf2": "^3.0.17", + "randombytes": "^2.1.0", + "safe-buffer": "^5.1.2", + "scrypt-js": "^3.0.0", + "secp256k1": "^4.0.1", + "setimmediate": "^1.0.5" } }, - "node_modules/levelup/node_modules/semver": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.4.1.tgz", - "integrity": "sha512-WfG/X9+oATh81XtllIo/I8gOiY9EXRdv1cQdyykeXK17YcUW3EXUAi2To4pcH6nZtJPr7ZOpM5OMyWJZm+8Rsg==", - "dev": true, - "bin": { - "semver": "bin/semver" - } + "node_modules/ethereum-protocol": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/ethereum-protocol/-/ethereum-protocol-1.0.1.tgz", + "integrity": "sha512-3KLX1mHuEsBW0dKG+c6EOJS1NBNqdCICvZW9sInmZTt5aY0oxmHVggYRE0lJu1tcnMD1K+AKHdLi6U43Awm1Vg==", + "dev": true }, - "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/ethereumjs-abi": { + "version": "0.6.8", + "resolved": "git+ssh://git@github.com/ethereumjs/ethereumjs-abi.git#ee3994657fa7a427238e6ba92a84d0b529bbcde0", + "license": "MIT", + "dependencies": { + "bn.js": "^4.11.8", + "ethereumjs-util": "^6.0.0" } }, - "node_modules/libsodium": { - "version": "0.7.10", - "resolved": "https://registry.npmjs.org/libsodium/-/libsodium-0.7.10.tgz", - "integrity": "sha512-eY+z7hDrDKxkAK+QKZVNv92A5KYkxfvIshtBJkmg5TSiCnYqZP3i9OO9whE79Pwgm4jGaoHgkM4ao/b9Cyu4zQ==" - }, - "node_modules/libsodium-wrappers": { - "version": "0.7.10", - "resolved": "https://registry.npmjs.org/libsodium-wrappers/-/libsodium-wrappers-0.7.10.tgz", - "integrity": "sha512-pO3F1Q9NPLB/MWIhehim42b/Fwb30JNScCNh8TcQ/kIc+qGLQch8ag8wb0keK3EP5kbGakk1H8Wwo7v+36rNQg==", + "node_modules/ethereumjs-abi/node_modules/@types/bn.js": { + "version": "4.11.6", + "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-4.11.6.tgz", + "integrity": "sha512-pqr857jrp2kPuO9uRjZ3PwnJTjoQy+fcdxvBTvHm6dkmEL9q+hDD/2j/0ELOBPtPnS8LjCX0gI9nbl8lVkadpg==", "dependencies": { - "libsodium": "^0.7.0" + "@types/node": "*" } }, - "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/ethereumjs-abi/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" }, - "node_modules/link-module-alias": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/link-module-alias/-/link-module-alias-1.2.0.tgz", - "integrity": "sha512-ahPjXepbSVKbahTB6LxR//VHm8HPfI+QQygCH+E82spBY4HR5VPJTvlhKBc9F7muVxnS6C1rRfoPOXAbWO/fyw==", + "node_modules/ethereumjs-abi/node_modules/ethereumjs-util": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-6.2.1.tgz", + "integrity": "sha512-W2Ktez4L01Vexijrm5EB6w7dg4n/TgpoYU4avuT5T3Vmnw/eCRtiBrJfQYS/DCSvDIOLn2k57GcHdeBcgVxAqw==", "dependencies": { - "chalk": "^2.4.1" - }, - "bin": { - "link-module-alias": "index.js" - }, - "engines": { - "node": "> 8.0.0" + "@types/bn.js": "^4.11.3", + "bn.js": "^4.11.0", + "create-hash": "^1.1.2", + "elliptic": "^6.5.2", + "ethereum-cryptography": "^0.1.3", + "ethjs-util": "0.1.6", + "rlp": "^2.2.3" } }, - "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==", + "node_modules/ethereumjs-account": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/ethereumjs-account/-/ethereumjs-account-2.0.5.tgz", + "integrity": "sha512-bgDojnXGjhMwo6eXQC0bY6UK2liSFUSMwwylOmQvZbSl/D7NXQ3+vrGO46ZeOgjGfxXmgIeVNDIiHw7fNZM4VA==", "dev": true, "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" + "ethereumjs-util": "^5.0.0", + "rlp": "^2.0.0", + "safe-buffer": "^5.1.1" } }, - "node_modules/lodash": { - "version": "4.17.21", - "license": "MIT" - }, - "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==", - "dev": true - }, - "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==", + "node_modules/ethereumjs-account/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", "dev": true }, - "node_modules/lodash.values": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/lodash.values/-/lodash.values-4.3.0.tgz", - "integrity": "sha512-r0RwvdCv8id9TUblb/O7rYPwVy6lerCbcawrfdo9iC/1t1wsNMJknO79WNBgwkH0hIeJ08jmvvESbFpNb4jH0Q==" - }, - "node_modules/long": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz", - "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==" - }, - "node_modules/loose-envify": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", - "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", - "dependencies": { - "js-tokens": "^3.0.0 || ^4.0.0" - }, - "bin": { - "loose-envify": "cli.js" - } - }, - "node_modules/lower-case": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", - "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", + "node_modules/ethereumjs-account/node_modules/ethereumjs-util": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", + "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", + "dev": true, "dependencies": { - "tslib": "^2.0.3" + "bn.js": "^4.11.0", + "create-hash": "^1.1.2", + "elliptic": "^6.5.2", + "ethereum-cryptography": "^0.1.3", + "ethjs-util": "^0.1.3", + "rlp": "^2.0.0", + "safe-buffer": "^5.1.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==", + "node_modules/ethereumjs-block": { + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/ethereumjs-block/-/ethereumjs-block-1.7.1.tgz", + "integrity": "sha512-B+sSdtqm78fmKkBq78/QLKJbu/4Ts4P2KFISdgcuZUPDm9x+N7qgBPIIFUGbaakQh8bzuquiRVbdmvPKqbILRg==", + "deprecated": "New package name format for new versions: @ethereumjs/block. Please update.", "dev": true, "dependencies": { - "yallist": "^3.0.2" + "async": "^2.0.1", + "ethereum-common": "0.2.0", + "ethereumjs-tx": "^1.2.2", + "ethereumjs-util": "^5.0.0", + "merkle-patricia-tree": "^2.1.2" } }, - "node_modules/ltgt": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ltgt/-/ltgt-2.2.1.tgz", - "integrity": "sha512-AI2r85+4MquTw9ZYqabu4nMwy9Oftlfa/e/52t9IjtfG+mGBbTNdAoZ3RQKLHR6r0wQnwZnPIEh/Ya6XTWAKNA==", + "node_modules/ethereumjs-block/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", "dev": true }, - "node_modules/make-dir": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", - "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", + "node_modules/ethereumjs-block/node_modules/ethereumjs-util": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", + "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", "dev": true, "dependencies": { - "semver": "^7.5.3" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "bn.js": "^4.11.0", + "create-hash": "^1.1.2", + "elliptic": "^6.5.2", + "ethereum-cryptography": "^0.1.3", + "ethjs-util": "^0.1.3", + "rlp": "^2.0.0", + "safe-buffer": "^5.1.1" } }, - "node_modules/make-dir/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==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } + "node_modules/ethereumjs-common": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/ethereumjs-common/-/ethereumjs-common-1.5.2.tgz", + "integrity": "sha512-hTfZjwGX52GS2jcVO6E2sx4YuFnf0Fhp5ylo4pEPhEffNln7vS59Hr5sLnp3/QCazFLluuBZ+FZ6J5HTp0EqCA==", + "deprecated": "New package name format for new versions: @ethereumjs/common. Please update.", + "dev": true }, - "node_modules/make-dir/node_modules/semver": { - "version": "7.6.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", - "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", + "node_modules/ethereumjs-tx": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/ethereumjs-tx/-/ethereumjs-tx-1.3.7.tgz", + "integrity": "sha512-wvLMxzt1RPhAQ9Yi3/HKZTn0FZYpnsmQdbKYfUUpi4j1SEIcbkd9tndVjcPrufY3V7j2IebOpC00Zp2P/Ay2kA==", + "deprecated": "New package name format for new versions: @ethereumjs/tx. Please update.", "dev": true, "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" + "ethereum-common": "^0.0.18", + "ethereumjs-util": "^5.0.0" } }, - "node_modules/make-dir/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/ethereumjs-tx/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", "dev": true }, - "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==", + "node_modules/ethereumjs-tx/node_modules/ethereum-common": { + "version": "0.0.18", + "resolved": "https://registry.npmjs.org/ethereum-common/-/ethereum-common-0.0.18.tgz", + "integrity": "sha512-EoltVQTRNg2Uy4o84qpa2aXymXDJhxm7eos/ACOg0DG4baAbMjhbdAEsx9GeE8sC3XCxnYvrrzZDH8D8MtA2iQ==", "dev": true }, - "node_modules/makeerror": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", - "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", + "node_modules/ethereumjs-tx/node_modules/ethereumjs-util": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", + "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", "dev": true, "dependencies": { - "tmpl": "1.0.5" - } - }, - "node_modules/map-obj": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.3.0.tgz", - "integrity": "sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "bn.js": "^4.11.0", + "create-hash": "^1.1.2", + "elliptic": "^6.5.2", + "ethereum-cryptography": "^0.1.3", + "ethjs-util": "^0.1.3", + "rlp": "^2.0.0", + "safe-buffer": "^5.1.1" } }, - "node_modules/md5.js": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", - "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", + "node_modules/ethereumjs-util": { + "version": "7.1.5", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.5.tgz", + "integrity": "sha512-SDl5kKrQAudFBUe5OJM9Ac6WmMyYmXX/6sTmLZ3ffG2eY6ZIGBes3pEDxNN6V72WyOw4CPD5RomKdsa8DAAwLg==", "dependencies": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" + "@types/bn.js": "^5.1.0", + "bn.js": "^5.1.2", + "create-hash": "^1.1.2", + "ethereum-cryptography": "^0.1.3", + "rlp": "^2.2.4" + }, + "engines": { + "node": ">=10.0.0" } }, - "node_modules/memdown": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/memdown/-/memdown-1.4.1.tgz", - "integrity": "sha512-iVrGHZB8i4OQfM155xx8akvG9FIj+ht14DX5CQkCTG4EHzZ3d3sgckIf/Lm9ivZalEsFuEVnWv2B2WZvbrro2w==", + "node_modules/ethereumjs-vm": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/ethereumjs-vm/-/ethereumjs-vm-2.6.0.tgz", + "integrity": "sha512-r/XIUik/ynGbxS3y+mvGnbOKnuLo40V5Mj1J25+HEO63aWYREIqvWeRO/hnROlMBE5WoniQmPmhiaN0ctiHaXw==", + "deprecated": "New package name format for new versions: @ethereumjs/vm. Please update.", "dev": true, "dependencies": { - "abstract-leveldown": "~2.7.1", + "async": "^2.1.2", + "async-eventemitter": "^0.2.2", + "ethereumjs-account": "^2.0.3", + "ethereumjs-block": "~2.2.0", + "ethereumjs-common": "^1.1.0", + "ethereumjs-util": "^6.0.0", + "fake-merkle-patricia-tree": "^1.0.1", "functional-red-black-tree": "^1.0.1", - "immediate": "^3.2.3", - "inherits": "~2.0.1", - "ltgt": "~2.2.0", - "safe-buffer": "~5.1.1" + "merkle-patricia-tree": "^2.3.2", + "rustbn.js": "~0.2.0", + "safe-buffer": "^5.1.1" } }, - "node_modules/memdown/node_modules/abstract-leveldown": { - "version": "2.7.2", - "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-2.7.2.tgz", - "integrity": "sha512-+OVvxH2rHVEhWLdbudP6p0+dNMXu8JA1CbhP19T8paTYAcX7oJ4OVjT+ZUVpv7mITxXHqDMej+GdqXBmXkw09w==", + "node_modules/ethereumjs-vm/node_modules/@types/bn.js": { + "version": "4.11.6", + "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-4.11.6.tgz", + "integrity": "sha512-pqr857jrp2kPuO9uRjZ3PwnJTjoQy+fcdxvBTvHm6dkmEL9q+hDD/2j/0ELOBPtPnS8LjCX0gI9nbl8lVkadpg==", "dev": true, "dependencies": { - "xtend": "~4.0.0" + "@types/node": "*" } }, - "node_modules/memdown/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, - "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==", + "node_modules/ethereumjs-vm/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", "dev": true }, - "node_modules/merkle-patricia-tree": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/merkle-patricia-tree/-/merkle-patricia-tree-2.3.2.tgz", - "integrity": "sha512-81PW5m8oz/pz3GvsAwbauj7Y00rqm81Tzad77tHBwU7pIAtN+TJnMSOJhxBKflSVYhptMMb9RskhqHqrSm1V+g==", + "node_modules/ethereumjs-vm/node_modules/ethereumjs-block": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/ethereumjs-block/-/ethereumjs-block-2.2.2.tgz", + "integrity": "sha512-2p49ifhek3h2zeg/+da6XpdFR3GlqY3BIEiqxGF8j9aSRIgkb7M1Ky+yULBKJOu8PAZxfhsYA+HxUk2aCQp3vg==", + "deprecated": "New package name format for new versions: @ethereumjs/block. Please update.", "dev": true, "dependencies": { - "async": "^1.4.2", + "async": "^2.0.1", + "ethereumjs-common": "^1.5.0", + "ethereumjs-tx": "^2.1.1", "ethereumjs-util": "^5.0.0", - "level-ws": "0.0.0", - "levelup": "^1.2.1", - "memdown": "^1.0.0", - "readable-stream": "^2.0.0", - "rlp": "^2.0.0", - "semaphore": ">=1.0.1" + "merkle-patricia-tree": "^2.1.2" } }, - "node_modules/merkle-patricia-tree/node_modules/async": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", - "integrity": "sha512-nSVgobk4rv61R9PUSDtYt7mPVB2olxNR5RWJcAsH676/ef11bUZwvu7+RGYrYauVdDPcO519v68wRhXQtxsV9w==", - "dev": true - }, - "node_modules/merkle-patricia-tree/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - }, - "node_modules/merkle-patricia-tree/node_modules/ethereumjs-util": { + "node_modules/ethereumjs-vm/node_modules/ethereumjs-block/node_modules/ethereumjs-util": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", @@ -9276,3877 +9520,8741 @@ "safe-buffer": "^5.1.1" } }, - "node_modules/merkle-patricia-tree/node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", - "dev": true - }, - "node_modules/merkle-patricia-tree/node_modules/readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "node_modules/ethereumjs-vm/node_modules/ethereumjs-tx": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ethereumjs-tx/-/ethereumjs-tx-2.1.2.tgz", + "integrity": "sha512-zZEK1onCeiORb0wyCXUvg94Ve5It/K6GD1K+26KfFKodiBiS6d9lfCXlUKGBBdQ+bv7Day+JK0tj1K+BeNFRAw==", + "deprecated": "New package name format for new versions: @ethereumjs/tx. Please update.", "dev": true, "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" + "ethereumjs-common": "^1.5.0", + "ethereumjs-util": "^6.0.0" } }, - "node_modules/merkle-patricia-tree/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, - "node_modules/merkle-patricia-tree/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "node_modules/ethereumjs-vm/node_modules/ethereumjs-util": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-6.2.1.tgz", + "integrity": "sha512-W2Ktez4L01Vexijrm5EB6w7dg4n/TgpoYU4avuT5T3Vmnw/eCRtiBrJfQYS/DCSvDIOLn2k57GcHdeBcgVxAqw==", "dev": true, "dependencies": { - "safe-buffer": "~5.1.0" + "@types/bn.js": "^4.11.3", + "bn.js": "^4.11.0", + "create-hash": "^1.1.2", + "elliptic": "^6.5.2", + "ethereum-cryptography": "^0.1.3", + "ethjs-util": "0.1.6", + "rlp": "^2.2.3" } }, - "node_modules/micromatch": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", - "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "node_modules/ethereumjs-wallet": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/ethereumjs-wallet/-/ethereumjs-wallet-1.0.2.tgz", + "integrity": "sha512-CCWV4RESJgRdHIvFciVQFnCHfqyhXWchTPlkfp28Qc53ufs+doi5I/cV2+xeK9+qEo25XCWfP9MiL+WEPAZfdA==", "dev": true, "dependencies": { - "braces": "^3.0.2", - "picomatch": "^2.3.1" - }, - "engines": { - "node": ">=8.6" + "aes-js": "^3.1.2", + "bs58check": "^2.1.2", + "ethereum-cryptography": "^0.1.3", + "ethereumjs-util": "^7.1.2", + "randombytes": "^2.1.0", + "scrypt-js": "^3.0.1", + "utf8": "^3.0.0", + "uuid": "^8.3.2" } }, - "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==", - "engines": { - "node": ">= 0.6" + "node_modules/ethereumjs-wallet/node_modules/aes-js": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/aes-js/-/aes-js-3.1.2.tgz", + "integrity": "sha512-e5pEa2kBnBOgR4Y/p20pskXI74UEz7de8ZGVo58asOtvSVG5YAbJeELPZxOmt+Bnz3rX753YKhfIn4X4l1PPRQ==", + "dev": true + }, + "node_modules/ethereumjs-wallet/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/mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "node_modules/ethers": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/ethers/-/ethers-5.7.2.tgz", + "integrity": "sha512-wswUsmWo1aOK8rR7DIKiWSw9DbLWe6x98Jrn8wcTflTVvaXhAMaB5zGAXy0GYQEQp9iO1iSHWVyARQm11zUtyg==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], "dependencies": { - "mime-db": "1.52.0" + "@ethersproject/abi": "5.7.0", + "@ethersproject/abstract-provider": "5.7.0", + "@ethersproject/abstract-signer": "5.7.0", + "@ethersproject/address": "5.7.0", + "@ethersproject/base64": "5.7.0", + "@ethersproject/basex": "5.7.0", + "@ethersproject/bignumber": "5.7.0", + "@ethersproject/bytes": "5.7.0", + "@ethersproject/constants": "5.7.0", + "@ethersproject/contracts": "5.7.0", + "@ethersproject/hash": "5.7.0", + "@ethersproject/hdnode": "5.7.0", + "@ethersproject/json-wallets": "5.7.0", + "@ethersproject/keccak256": "5.7.0", + "@ethersproject/logger": "5.7.0", + "@ethersproject/networks": "5.7.1", + "@ethersproject/pbkdf2": "5.7.0", + "@ethersproject/properties": "5.7.0", + "@ethersproject/providers": "5.7.2", + "@ethersproject/random": "5.7.0", + "@ethersproject/rlp": "5.7.0", + "@ethersproject/sha2": "5.7.0", + "@ethersproject/signing-key": "5.7.0", + "@ethersproject/solidity": "5.7.0", + "@ethersproject/strings": "5.7.0", + "@ethersproject/transactions": "5.7.0", + "@ethersproject/units": "5.7.0", + "@ethersproject/wallet": "5.7.0", + "@ethersproject/web": "5.7.1", + "@ethersproject/wordlists": "5.7.0" + } + }, + "node_modules/ethjs-util": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/ethjs-util/-/ethjs-util-0.1.6.tgz", + "integrity": "sha512-CUnVOQq7gSpDHZVVrQW8ExxUETWrnrvXYvYz55wOU8Uj4VCgw56XC2B/fVqQN+f7gmrnRHSLVnFAwsCuNwji8w==", + "dependencies": { + "is-hex-prefixed": "1.0.0", + "strip-hex-prefix": "1.0.0" }, "engines": { - "node": ">= 0.6" + "node": ">=6.5.0", + "npm": ">=3" } }, - "node_modules/mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "node_modules/eventemitter3": { + "version": "4.0.7", + "license": "MIT" + }, + "node_modules/events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", "dev": true, "engines": { - "node": ">=6" + "node": ">=0.8.x" } }, - "node_modules/min-document": { - "version": "2.19.0", - "resolved": "https://registry.npmjs.org/min-document/-/min-document-2.19.0.tgz", - "integrity": "sha512-9Wy1B3m3f66bPPmU5hdA4DR4PB2OfDU/+GS3yAB7IQozE3tqXaVv2zOjgla7MEGSRv95+ILmOuvhLkOK6wJtCQ==", - "dev": true, + "node_modules/evp_bytestokey": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", + "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", "dependencies": { - "dom-walk": "^0.1.0" + "md5.js": "^1.3.4", + "safe-buffer": "^5.1.1" } }, - "node_modules/minimalistic-assert": { - "version": "1.0.1", - "license": "ISC" - }, - "node_modules/minimalistic-crypto-utils": { - "version": "1.0.1", - "license": "MIT" - }, - "node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "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": { - "brace-expansion": "^1.1.7" + "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": "*" - } - }, - "node_modules/minimist": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.7.tgz", - "integrity": "sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==", + "node": ">=10" + }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/sindresorhus/execa?sponsor=1" } }, - "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" - }, + "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": ">=10" + "node": ">= 0.8.0" } }, - "node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "node_modules/mustache": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/mustache/-/mustache-4.2.0.tgz", - "integrity": "sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ==", - "bin": { - "mustache": "bin/mustache" + "node_modules/exit-on-epipe": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/exit-on-epipe/-/exit-on-epipe-1.0.1.tgz", + "integrity": "sha512-h2z5mrROTxce56S+pnvAV890uu7ls7f1kEvVGJbw1OlFH3/mlJ5bkXu0KRyW94v37zzHPiUd55iLn3DA7TjWpw==", + "engines": { + "node": ">=0.8" } }, - "node_modules/nan": { - "version": "2.15.0", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.15.0.tgz", - "integrity": "sha512-8ZtvEnA2c5aYCZYd1cvgdnU6cqwixRoYg70xPLWUws5ORTa/lnw+u4amixRS/Ac5U5mQVgp9pnlSUnbNWFaWZQ==" + "node_modules/expect": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/expect/-/expect-29.7.0.tgz", + "integrity": "sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==", + "dev": true, + "dependencies": { + "@jest/expect-utils": "^29.7.0", + "jest-get-type": "^29.6.3", + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } }, - "node_modules/natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "node_modules/extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", "dev": true }, - "node_modules/near-api-js": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/near-api-js/-/near-api-js-1.0.0.tgz", - "integrity": "sha512-OYItaQIYlKK27FG5PrqqtkTI8Vv9TEOCi7gXePYigS4o6WofXciAXNjr4sihDJ8Vzi6s7+eEkf3zTNP3042FBw==", - "dependencies": { - "bn.js": "5.2.1", - "borsh": "^0.7.0", - "bs58": "^4.0.0", - "depd": "^2.0.0", - "error-polyfill": "^0.1.3", - "http-errors": "^1.7.2", - "js-sha256": "^0.9.0", - "mustache": "^4.0.0", - "node-fetch": "^2.6.1", - "text-encoding-utf-8": "^1.0.2", - "tweetnacl": "^1.0.1" - } + "node_modules/extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==", + "dev": true, + "engines": [ + "node >=0.6.0" + ] }, - "node_modules/near-api-js/node_modules/depd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", - "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "node_modules/eyes": { + "version": "0.1.8", "engines": { - "node": ">= 0.8" + "node": "> 0.1.90" } }, - "node_modules/near-hd-key": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/near-hd-key/-/near-hd-key-1.2.1.tgz", - "integrity": "sha512-SIrthcL5Wc0sps+2e1xGj3zceEa68TgNZDLuCx0daxmfTP7sFTB3/mtE2pYhlFsCxWoMn+JfID5E1NlzvvbRJg==", + "node_modules/fake-merkle-patricia-tree": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/fake-merkle-patricia-tree/-/fake-merkle-patricia-tree-1.0.1.tgz", + "integrity": "sha512-Tgq37lkc9pUIgIKw5uitNUKcgcYL3R6JvXtKQbOf/ZSavXbidsksgp/pAY6p//uhw0I4yoMsvTSovvVIsk/qxA==", + "dev": true, "dependencies": { - "bip39": "3.0.2", - "create-hmac": "1.1.7", - "tweetnacl": "1.0.3" + "checkpoint-store": "^1.1.0" } }, - "node_modules/near-hd-key/node_modules/@types/node": { - "version": "11.11.6", - "resolved": "https://registry.npmjs.org/@types/node/-/node-11.11.6.tgz", - "integrity": "sha512-Exw4yUWMBXM3X+8oqzJNRqZSwUAaS4+7NdvHqQuFi/d+synz++xmX3QIf+BFqneW8N31R8Ky+sikfZUXq07ggQ==" + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true }, - "node_modules/near-hd-key/node_modules/bip39": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/bip39/-/bip39-3.0.2.tgz", - "integrity": "sha512-J4E1r2N0tUylTKt07ibXvhpT2c5pyAFgvuA5q1H9uDy6dEGpjV8jmymh3MTYJDLCNbIVClSB9FbND49I6N24MQ==", - "dependencies": { - "@types/node": "11.11.6", - "create-hash": "^1.1.0", - "pbkdf2": "^3.0.9", - "randombytes": "^2.0.1" - } + "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/near-seed-phrase": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/near-seed-phrase/-/near-seed-phrase-0.2.0.tgz", - "integrity": "sha512-NpmrnejpY1AdlRpDZ0schJQJtfBaoUheRfiYtQpcq9TkwPgqKZCRULV5L3hHmLc0ep7KRtikbPQ9R2ztN/3cyQ==", - "dependencies": { - "bip39-light": "^1.0.7", - "bs58": "^4.0.1", - "near-hd-key": "^1.2.1", - "tweetnacl": "^1.0.2" - } + "node_modules/fast-safe-stringify": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.0.8.tgz", + "integrity": "sha512-lXatBjf3WPjmWD6DpIZxkeSsCOwqI0maYMpgDlx8g4U2qi4lbjA9oH/HD2a87G+KfsUmo5WbJFmqBZlPxtptag==", + "dev": true }, - "node_modules/no-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", - "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", + "node_modules/fast-stable-stringify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fast-stable-stringify/-/fast-stable-stringify-1.0.0.tgz", + "integrity": "sha512-wpYMUmFu5f00Sm0cj2pfivpmawLZ0NKdviQ4w9zJeR8JVtOpOxHmLaJuj0vxvGqMJQWyP/COUkF75/57OKyRag==" + }, + "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": { - "lower-case": "^2.0.2", - "tslib": "^2.0.3" + "bser": "2.1.1" } }, - "node_modules/node-addon-api": { - "version": "2.0.2", - "license": "MIT" + "node_modules/file-uri-to-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", + "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==" }, - "node_modules/node-fetch": { - "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==", + "node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, "dependencies": { - "whatwg-url": "^5.0.0" + "to-regex-range": "^5.0.1" }, "engines": { - "node": "4.x || >=6.0.0" + "node": ">=8" + } + }, + "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" }, - "peerDependencies": { - "encoding": "^0.1.0" + "engines": { + "node": ">=8" + } + }, + "node_modules/follow-redirects": { + "version": "1.15.6", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.6.tgz", + "integrity": "sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "engines": { + "node": ">=4.0" }, "peerDependenciesMeta": { - "encoding": { + "debug": { "optional": true } } }, - "node_modules/node-gyp-build": { - "version": "4.2.3", - "license": "MIT", - "bin": { - "node-gyp-build": "bin.js", - "node-gyp-build-optional": "optional.js", - "node-gyp-build-test": "build-test.js" + "node_modules/forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==", + "dev": true, + "engines": { + "node": "*" } }, - "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-releases": { - "version": "2.0.14", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", - "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==", - "dev": true - }, - "node_modules/noms": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/noms/-/noms-0.0.0.tgz", - "integrity": "sha512-lNDU9VJaOPxUmXcLb+HQFeUgQQPtMI24Gt6hgfuMHRJgMRHMF/qZ4HJD3GDru4sSw9IQl2jPjAYnQrdIeLbwow==", + "node_modules/form-data": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", + "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", + "dev": true, "dependencies": { - "inherits": "^2.0.1", - "readable-stream": "~1.0.31" + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 0.12" } }, - "node_modules/noms/node_modules/readable-stream": { - "version": "1.0.34", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", - "integrity": "sha512-ok1qVCJuRkNmvebYikljxJA/UEsKwLl2nI1OmaqAu4/UE+h0wKCHok4XkL/gvi39OacXvw59RJUOFUkDib2rHg==", - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" } }, - "node_modules/noms/node_modules/string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==" + "node_modules/function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" }, - "node_modules/normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "node_modules/functional-red-black-tree": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", + "integrity": "sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==", + "dev": true + }, + "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": ">=0.10.0" + "node": ">=6.9.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" - }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", "engines": { - "node": ">=8" + "node": "6.* || 8.* || >= 10.*" } }, - "node_modules/o3": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/o3/-/o3-1.0.3.tgz", - "integrity": "sha512-f+4n+vC6s4ysy7YO7O2gslWZBUu8Qj2i2OUJOvjRxQva7jVjYjB29jrr9NCjmxZQR0gzrOcv1RnqoYOeMs5VRQ==", + "node_modules/get-intrinsic": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.3.tgz", + "integrity": "sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==", "dependencies": { - "capability": "^0.2.5" + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/oauth-sign": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", - "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", + "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": "*" + "node": ">=8.0.0" } }, - "node_modules/object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "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": ">=0.10.0" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "engines": { - "node": ">= 0.4" + "node_modules/get-tsconfig": { + "version": "4.7.5", + "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.7.5.tgz", + "integrity": "sha512-ZCuZCnlqNzjb4QprAzXKdpp/gh6KTxSJuw3IBsPnV/7fV4NxC9ckB+vPTt8w7fJA0TaSD7c55BR47JD6MEDyDw==", + "dev": true, + "dependencies": { + "resolve-pkg-maps": "^1.0.0" + }, + "funding": { + "url": "https://github.com/privatenumber/get-tsconfig?sponsor=1" } }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "node_modules/getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==", + "dev": true, "dependencies": { - "wrappy": "1" + "assert-plus": "^1.0.0" } }, - "node_modules/onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "dev": true, + "node_modules/glob": { + "version": "7.1.7", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz", + "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==", "dependencies": { - "mimic-fn": "^2.1.0" + "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": ">=6" + "node": "*" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/optimism": { - "version": "0.16.1", - "resolved": "https://registry.npmjs.org/optimism/-/optimism-0.16.1.tgz", - "integrity": "sha512-64i+Uw3otrndfq5kaoGNoY7pvOhSsjFEN4bdEFh80MWVk/dbgJfMv7VFDeCT8LxNAlEVhQmdVEbfE7X2nWNIIg==", + "node_modules/global": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/global/-/global-4.4.0.tgz", + "integrity": "sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w==", + "dev": true, "dependencies": { - "@wry/context": "^0.6.0", - "@wry/trie": "^0.3.0" + "min-document": "^2.19.0", + "process": "^0.11.10" } }, - "node_modules/optimism/node_modules/@wry/context": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/@wry/context/-/context-0.6.1.tgz", - "integrity": "sha512-LOmVnY1iTU2D8tv4Xf6MVMZZ+juIJ87Kt/plMijjN20NMAXGmH4u8bS1t0uT74cZ5gwpocYueV58YwyI8y+GKw==", - "dependencies": { - "tslib": "^2.3.0" - }, + "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": ">=8" + "node": ">=4" } }, - "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==", - "dev": true, + "node_modules/globalthis": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz", + "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==", "dependencies": { - "yocto-queue": "^0.1.0" + "define-properties": "^1.1.3" }, "engines": { - "node": ">=10" + "node": ">= 0.4" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sponsors/ljharb" } }, - "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, + "node_modules/google-protobuf": { + "version": "3.21.2", + "resolved": "https://registry.npmjs.org/google-protobuf/-/google-protobuf-3.21.2.tgz", + "integrity": "sha512-3MSOYFO5U9mPGikIYCzK0SaThypfGgS6bHqrUGXG3DPHCrb+txNqeEcns1W0lkGfk0rCyNXm7xB9rMxnCiZOoA==" + }, + "node_modules/got": { + "version": "11.8.6", + "resolved": "https://registry.npmjs.org/got/-/got-11.8.6.tgz", + "integrity": "sha512-6tfZ91bOr7bOXnK7PRDCGBLa1H4U080YHNaAQ2KsMGlLEzRbk44nsZF2E1IeRc3vtJHPVbKCYgdFbaGO2ljd8g==", "dependencies": { - "p-limit": "^2.2.0" + "@sindresorhus/is": "^4.0.0", + "@szmarczak/http-timer": "^4.0.5", + "@types/cacheable-request": "^6.0.1", + "@types/responselike": "^1.0.0", + "cacheable-lookup": "^5.0.3", + "cacheable-request": "^7.0.2", + "decompress-response": "^6.0.0", + "http2-wrapper": "^1.0.0-beta.5.2", + "lowercase-keys": "^2.0.0", + "p-cancelable": "^2.0.0", + "responselike": "^2.0.0" }, "engines": { - "node": ">=8" + "node": ">=10.19.0" + }, + "funding": { + "url": "https://github.com/sindresorhus/got?sponsor=1" } }, - "node_modules/p-locate/node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, + "node_modules/gql.tada": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/gql.tada/-/gql.tada-1.8.5.tgz", + "integrity": "sha512-A6uwkWjy0Pq6A804T4pnrBtnGG5XBSaordSNW2loxWqeov+FqEaOI5+Oy/Be2NIrSpxaM0TQhV1+xtYxsxJOjw==", "dependencies": { - "p-try": "^2.0.0" + "@0no-co/graphql.web": "^1.0.5", + "@0no-co/graphqlsp": "^1.12.9", + "@gql.tada/cli-utils": "1.6.0", + "@gql.tada/internal": "1.0.6" }, - "engines": { - "node": ">=6" + "bin": { + "gql-tada": "bin/cli.js", + "gql.tada": "bin/cli.js" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "peerDependencies": { + "typescript": "^5.0.0" } }, - "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, + "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/graphql": { + "version": "16.8.1", + "resolved": "https://registry.npmjs.org/graphql/-/graphql-16.8.1.tgz", + "integrity": "sha512-59LZHPdGZVh695Ud9lRzPBVTtlX9ZCV150Er2W43ro37wVof0ctenSaskPPjN7lVTIN8mSZt8PHUNKZuNQUuxw==", "engines": { - "node": ">=6" + "node": "^12.22.0 || ^14.16.0 || ^16.0.0 || >=17.0.0" } }, - "node_modules/pako": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/pako/-/pako-2.1.0.tgz", - "integrity": "sha512-w+eufiZ1WuJYgPXbV/PO3NCMEc3xqylkKHzp8bxp1uW4qaSNQUkwmLLEc3kKsfz8lpV1F8Ht3U1Cm+9Srog2ug==" - }, - "node_modules/parse-headers": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/parse-headers/-/parse-headers-2.0.5.tgz", - "integrity": "sha512-ft3iAoLOB/MlwbNXgzy43SWGP6sQki2jQvAyBg/zDFAgr9bfNWZIUj42Kw2eJIl8kEi4PbgE6U1Zau/HwI75HA==", - "dev": true - }, - "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, + "node_modules/graphql-tag": { + "version": "2.12.6", + "resolved": "https://registry.npmjs.org/graphql-tag/-/graphql-tag-2.12.6.tgz", + "integrity": "sha512-FdSNcu2QQcWnM2VNvSCCDCVS5PpPqpzgFT8+GXzqJuoDd0CBncxCY278u4mhRO7tMgo2JjgJA5aZ+nWSQ/Z+xg==", "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" + "tslib": "^2.1.0" }, "engines": { - "node": ">=8" + "node": ">=10" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "peerDependencies": { + "graphql": "^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0" } }, - "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==", + "node_modules/har-schema": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", + "integrity": "sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q==", "dev": true, "engines": { - "node": ">=8" - } - }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "engines": { - "node": ">=0.10.0" + "node": ">=4" } }, - "node_modules/path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "node_modules/har-validator": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", + "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", + "deprecated": "this library is no longer supported", "dev": true, + "dependencies": { + "ajv": "^6.12.3", + "har-schema": "^2.0.0" + }, "engines": { - "node": ">=8" + "node": ">=6" } }, - "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==" - }, - "node_modules/pbkdf2": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz", - "integrity": "sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==", + "node_modules/has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", "dependencies": { - "create-hash": "^1.1.2", - "create-hmac": "^1.1.4", - "ripemd160": "^2.0.1", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" + "function-bind": "^1.1.1" }, "engines": { - "node": ">=0.12" + "node": ">= 0.4.0" } }, - "node_modules/performance-now": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==", - "dev": true + "node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "engines": { + "node": ">=4" + } }, - "node_modules/picocolors": { + "node_modules/has-property-descriptors": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", - "dev": true + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", + "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", + "dependencies": { + "get-intrinsic": "^1.1.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true, + "node_modules/has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", "engines": { - "node": ">=8.6" + "node": ">= 0.4" }, "funding": { - "url": "https://github.com/sponsors/jonschlinkert" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", - "dev": true, + "node_modules/hash-base": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", + "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", + "dependencies": { + "inherits": "^2.0.4", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" + }, "engines": { "node": ">=4" } }, - "node_modules/pirates": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", - "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", - "dev": true, - "engines": { - "node": ">= 6" + "node_modules/hash.js": { + "version": "1.1.7", + "license": "MIT", + "dependencies": { + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.1" } }, - "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, + "node_modules/hi-base32": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/hi-base32/-/hi-base32-0.5.1.tgz", + "integrity": "sha512-EmBBpvdYh/4XxsnUybsPag6VikPYnN30td+vQk+GI3qpahVEG9+gTkG0aXVxTjBqQ5T6ijbWIu77O+C5WFWsnA==" + }, + "node_modules/hmac-drbg": { + "version": "1.0.1", + "license": "MIT", "dependencies": { - "find-up": "^4.0.0" - }, - "engines": { - "node": ">=8" + "hash.js": "^1.0.3", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.1" } }, - "node_modules/precond": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/precond/-/precond-0.2.3.tgz", - "integrity": "sha512-QCYG84SgGyGzqJ/vlMsxeXd/pgL/I94ixdNFyh1PusWmTCyVfPJjZ1K1jvHtsbfnXQs2TSkEP2fR7QiMZAnKFQ==", - "dev": true, - "engines": { - "node": ">= 0.6" + "node_modules/hoist-non-react-statics": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", + "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", + "dependencies": { + "react-is": "^16.7.0" } }, - "node_modules/pretty-format": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", - "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", - "dev": true, + "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-cache-semantics": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", + "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==" + }, + "node_modules/http-errors": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz", + "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==", "dependencies": { - "@jest/schemas": "^29.6.3", - "ansi-styles": "^5.0.0", - "react-is": "^18.0.0" + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.1", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.0" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">= 0.6" } }, - "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==", + "node_modules/http-errors/node_modules/inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" + }, + "node_modules/http-signature": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", + "integrity": "sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ==", "dev": true, - "engines": { - "node": ">=10" + "dependencies": { + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "engines": { + "node": ">=0.8", + "npm": ">=1.3.7" } }, - "node_modules/pretty-format/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 + "node_modules/http-status-codes": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/http-status-codes/-/http-status-codes-2.2.0.tgz", + "integrity": "sha512-feERVo9iWxvnejp3SEfm/+oNG517npqL2/PIA8ORjyOZjGC7TwCRQsZylciLS64i6pJ0wRYz3rkXLRwbtFa8Ng==" }, - "node_modules/printj": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/printj/-/printj-1.1.2.tgz", - "integrity": "sha512-zA2SmoLaxZyArQTOPj5LXecR+RagfPSU5Kw1qP+jkWeNlrq+eJZyY2oS68SU1Z/7/myXM4lo9716laOFAVStCQ==", - "bin": { - "printj": "bin/printj.njs" + "node_modules/http2-wrapper": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-1.0.3.tgz", + "integrity": "sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg==", + "dependencies": { + "quick-lru": "^5.1.1", + "resolve-alpn": "^1.0.0" }, "engines": { - "node": ">=0.8" + "node": ">=10.19.0" } }, - "node_modules/process": { - "version": "0.11.10", - "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", - "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==", + "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": ">= 0.6.0" + "node": ">=10.17.0" } }, - "node_modules/process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" + "node_modules/humanize-ms": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz", + "integrity": "sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==", + "dependencies": { + "ms": "^2.0.0" + } }, - "node_modules/promise-to-callback": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/promise-to-callback/-/promise-to-callback-1.0.0.tgz", - "integrity": "sha512-uhMIZmKM5ZteDMfLgJnoSq9GCwsNKrYau73Awf1jIy6/eUcuuZ3P+CD9zUv0kJsIUbU+x6uLNIhXhLHDs1pNPA==", + "node_modules/ieee754": { + "version": "1.2.1", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "BSD-3-Clause" + }, + "node_modules/immediate": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.3.0.tgz", + "integrity": "sha512-HR7EVodfFUdQCTIeySw+WDRFJlPcLOJbXfwwZ7Oom6tjsvZ3bOkCDJHehQC3nxJrv7+f9XecwazynjU8e4Vw3Q==", + "dev": true + }, + "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": { - "is-fn": "^1.0.0", - "set-immediate-shim": "^1.0.1" + "pkg-dir": "^4.2.0", + "resolve-cwd": "^3.0.0" + }, + "bin": { + "import-local-fixture": "fixtures/cli.js" }, "engines": { - "node": ">=0.10.0" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "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==", + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", "dev": true, - "dependencies": { - "kleur": "^3.0.3", - "sisteransi": "^1.0.5" - }, "engines": { - "node": ">= 6" + "node": ">=0.8.19" } }, - "node_modules/prop-types": { - "version": "15.8.1", - "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", - "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", "dependencies": { - "loose-envify": "^1.4.0", - "object-assign": "^4.1.1", - "react-is": "^16.13.1" + "once": "^1.3.0", + "wrappy": "1" } }, - "node_modules/protobufjs": { - "version": "6.11.3", - "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-6.11.3.tgz", - "integrity": "sha512-xL96WDdCZYdU7Slin569tFX712BxsxslWwAfAhCYjQKGTq7dAU91Lomy6nLLhh/dyGhk/YH4TwTSRxTzhuHyZg==", - "hasInstallScript": true, - "dependencies": { - "@protobufjs/aspromise": "^1.1.2", - "@protobufjs/base64": "^1.1.2", - "@protobufjs/codegen": "^2.0.4", - "@protobufjs/eventemitter": "^1.1.0", - "@protobufjs/fetch": "^1.1.0", - "@protobufjs/float": "^1.0.2", - "@protobufjs/inquire": "^1.1.0", - "@protobufjs/path": "^1.1.2", - "@protobufjs/pool": "^1.1.0", - "@protobufjs/utf8": "^1.1.0", - "@types/long": "^4.0.1", - "@types/node": ">=13.7.0", - "long": "^4.0.0" - }, - "bin": { - "pbjs": "bin/pbjs", - "pbts": "bin/pbts" + "node_modules/inherits": { + "version": "2.0.4", + "license": "ISC" + }, + "node_modules/interpret": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", + "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==", + "engines": { + "node": ">= 0.10" } }, - "node_modules/prr": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", - "integrity": "sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==", + "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/psl": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz", - "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==", - "dev": true + "node_modules/is-core-module": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.5.0.tgz", + "integrity": "sha512-TXCMSDsEHMEEZ6eCA8rwRDbLu55MRGmrctljsBX/2v1d9/GzqHOxW5c5oPSgrUt2vBFXebu9rGqckXGPWOlYpg==", + "dependencies": { + "has": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "node_modules/punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "node_modules/is-fn": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fn/-/is-fn-1.0.0.tgz", + "integrity": "sha512-XoFPJQmsAShb3jEQRfzf2rqXavq7fIqF/jOekp308JlThqrODnMpweVSGilKTCXELfLhltGP2AGgbQGVP8F1dg==", "dev": true, "engines": { - "node": ">=6" + "node": ">=0.10.0" } }, - "node_modules/pure-rand": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-6.1.0.tgz", - "integrity": "sha512-bVWawvoZoBYpp6yIoQtQXHZjmz35RSVHnUOTefl8Vcjr8snTPY1wnpSPMWekcFwbxI6gtmT7rSYPFvz71ldiOA==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://github.com/sponsors/dubzzz" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/fast-check" - } - ] + "node_modules/is-fullwidth-code-point": { + "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==", + "engines": { + "node": ">=8" + } }, - "node_modules/qs": { - "version": "6.5.3", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.3.tgz", - "integrity": "sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==", + "node_modules/is-function": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-function/-/is-function-1.0.2.tgz", + "integrity": "sha512-lw7DUp0aWXYg+CBCN+JKkcE0Q2RayZnSvnZBlwgxHBQhqt5pZNVy4Ri7H9GmmXkdu7LUthszM+Tor1u/2iBcpQ==", + "dev": true + }, + "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": ">=0.6" + "node": ">=6" } }, - "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/is-hex-prefixed": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-hex-prefixed/-/is-hex-prefixed-1.0.0.tgz", + "integrity": "sha1-fY035q135dEnFIkTxXPggtd39VQ=", + "engines": { + "node": ">=6.5.0", + "npm": ">=3" } }, - "node_modules/react-is": { - "version": "16.13.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", - "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } }, - "node_modules/readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, + "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": ">= 6" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/readonly-date": { + "node_modules/is-typedarray": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/readonly-date/-/readonly-date-1.0.0.tgz", - "integrity": "sha512-tMKIV7hlk0h4mO3JTmmVuIlJVXjKk3Sep9Bf5OH0O+758ruuVkUy2J9SttDLm91IEX/WHlXPSpxMGjPj4beMIQ==" + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==", + "dev": true }, - "node_modules/rechoir": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", - "integrity": "sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==", - "dependencies": { - "resolve": "^1.1.6" - }, - "engines": { - "node": ">= 0.10" + "node_modules/isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==" + }, + "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/isomorphic-ws": { + "version": "4.0.1", + "license": "MIT", + "peerDependencies": { + "ws": "*" } }, - "node_modules/regenerator-runtime": { - "version": "0.13.11", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", - "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==" + "node_modules/isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==", + "dev": true }, - "node_modules/request": { - "version": "2.88.2", - "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", - "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", - "deprecated": "request has been deprecated, see https://github.com/request/request/issues/3142", + "node_modules/istanbul-lib-coverage": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz", + "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-instrument": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.2.tgz", + "integrity": "sha512-1WUsZ9R1lA0HtBSohTkm39WTPlNKSJ5iFk7UwqXkBLoHQT+hfqPsfsTDVuZdKGaBwn7din9bS7SsnoAr943hvw==", "dev": true, "dependencies": { - "aws-sign2": "~0.7.0", - "aws4": "^1.8.0", - "caseless": "~0.12.0", - "combined-stream": "~1.0.6", - "extend": "~3.0.2", - "forever-agent": "~0.6.1", - "form-data": "~2.3.2", - "har-validator": "~5.1.3", - "http-signature": "~1.2.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.19", - "oauth-sign": "~0.9.0", - "performance-now": "^2.1.0", - "qs": "~6.5.2", - "safe-buffer": "^5.1.2", - "tough-cookie": "~2.5.0", - "tunnel-agent": "^0.6.0", - "uuid": "^3.3.2" + "@babel/core": "^7.23.9", + "@babel/parser": "^7.23.9", + "@istanbuljs/schema": "^0.1.3", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^7.5.4" }, "engines": { - "node": ">= 6" + "node": ">=10" } }, - "node_modules/require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", + "node_modules/istanbul-lib-instrument/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==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, "engines": { - "node": ">=0.10.0" + "node": ">=10" } }, - "node_modules/resolve": { - "version": "1.20.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz", - "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==", + "node_modules/istanbul-lib-instrument/node_modules/semver": { + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", + "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", + "dev": true, "dependencies": { - "is-core-module": "^2.2.0", - "path-parse": "^1.0.6" + "lru-cache": "^6.0.0" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" } }, - "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==", + "node_modules/istanbul-lib-instrument/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/istanbul-lib-report": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", + "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==", "dev": true, "dependencies": { - "resolve-from": "^5.0.0" + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^4.0.0", + "supports-color": "^7.1.0" }, "engines": { - "node": ">=8" + "node": ">=10" } }, - "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==", + "node_modules/istanbul-lib-report/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, "engines": { "node": ">=8" } }, - "node_modules/resolve.exports": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.2.tgz", - "integrity": "sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/response-iterator": { - "version": "0.2.6", - "resolved": "https://registry.npmjs.org/response-iterator/-/response-iterator-0.2.6.tgz", - "integrity": "sha512-pVzEEzrsg23Sh053rmDUvLSkGXluZio0qu8VT6ukrYuvtjVfCbDZH9d6PGXb8HZfzdNZt8feXv/jvUzlhRgLnw==", + "node_modules/istanbul-lib-report/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, "engines": { - "node": ">=0.8" + "node": ">=8" } }, - "node_modules/ripemd160": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", - "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", + "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": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1" - } - }, - "node_modules/ripemd160-min": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/ripemd160-min/-/ripemd160-min-0.0.6.tgz", - "integrity": "sha512-+GcJgQivhs6S9qvLogusiTcS9kQUfgR75whKuy5jIhuiOfQuJ8fjqxV6EGD5duH1Y/FawFUMtMhyeq3Fbnib8A==", + "debug": "^4.1.1", + "istanbul-lib-coverage": "^3.0.0", + "source-map": "^0.6.1" + }, "engines": { - "node": ">=8" + "node": ">=10" } }, - "node_modules/rlp": { - "version": "2.2.6", - "resolved": "https://registry.npmjs.org/rlp/-/rlp-2.2.6.tgz", - "integrity": "sha512-HAfAmL6SDYNWPUOJNrM500x4Thn4PZsEy5pijPh40U9WfNk0z15hUYzO9xVIMAdIHdFtD8CBDHd75Td1g36Mjg==", + "node_modules/istanbul-reports": { + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.7.tgz", + "integrity": "sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==", + "dev": true, "dependencies": { - "bn.js": "^4.11.1" + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" }, - "bin": { - "rlp": "bin/rlp" + "engines": { + "node": ">=8" } }, - "node_modules/rlp/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" - }, - "node_modules/rpc-websockets": { - "version": "7.5.1", - "resolved": "https://registry.npmjs.org/rpc-websockets/-/rpc-websockets-7.5.1.tgz", - "integrity": "sha512-kGFkeTsmd37pHPMaHIgN1LVKXMi0JD782v4Ds9ZKtLlwdTKjn+CxM9A9/gLT2LaOuEcEFGL98h1QWQtlOIdW0w==", + "node_modules/jayson": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/jayson/-/jayson-4.1.0.tgz", + "integrity": "sha512-R6JlbyLN53Mjku329XoRT2zJAE6ZgOQ8f91ucYdMCD4nkGCF9kZSrcGXpHIU4jeKj58zUZke2p+cdQchU7Ly7A==", "dependencies": { - "@babel/runtime": "^7.17.2", - "eventemitter3": "^4.0.7", + "@types/connect": "^3.4.33", + "@types/node": "^12.12.54", + "@types/ws": "^7.4.4", + "commander": "^2.20.3", + "delay": "^5.0.0", + "es6-promisify": "^5.0.0", + "eyes": "^0.1.8", + "isomorphic-ws": "^4.0.1", + "json-stringify-safe": "^5.0.1", + "JSONStream": "^1.3.5", "uuid": "^8.3.2", - "ws": "^8.5.0" + "ws": "^7.4.5" }, - "funding": { - "type": "paypal", - "url": "https://paypal.me/kozjak" + "bin": { + "jayson": "bin/jayson.js" }, - "optionalDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": "^5.0.2" + "engines": { + "node": ">=8" } }, - "node_modules/rpc-websockets/node_modules/uuid": { + "node_modules/jayson/node_modules/@types/node": { + "version": "12.20.55", + "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.55.tgz", + "integrity": "sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==" + }, + "node_modules/jayson/node_modules/uuid": { "version": "8.3.2", - "license": "MIT", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", "bin": { "uuid": "dist/bin/uuid" } }, - "node_modules/rpc-websockets/node_modules/ws": { - "version": "8.10.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.10.0.tgz", - "integrity": "sha512-+s49uSmZpvtAsd2h37vIPy1RBusaLawVe8of+GyEPsaJTCMpj/2v8NpeK1SHXjBlQ95lQTmQofOJnFiLoaN3yw==", + "node_modules/jest": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest/-/jest-29.7.0.tgz", + "integrity": "sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==", + "dev": true, + "dependencies": { + "@jest/core": "^29.7.0", + "@jest/types": "^29.6.3", + "import-local": "^3.0.2", + "jest-cli": "^29.7.0" + }, + "bin": { + "jest": "bin/jest.js" + }, "engines": { - "node": ">=10.0.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" }, "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": "^5.0.2" + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" }, "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { + "node-notifier": { "optional": true } } }, - "node_modules/rustbn.js": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/rustbn.js/-/rustbn.js-0.2.0.tgz", - "integrity": "sha512-4VlvkRUuCJvr2J6Y0ImW7NvTCriMi7ErOAqWk1y69vAdoNIzCF3yPmgeNzx+RQTLEDFq5sHfscn1MwHxP9hNfA==", - "dev": true - }, - "node_modules/rxjs": { - "version": "7.8.0", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.0.tgz", - "integrity": "sha512-F2+gxDshqmIub1KdvZkaEfGDwLNpPvk9Fs6LD/MyQxNgMds/WH9OdDDXOmxUZpME+iSK3rQCctkL0DYyytUqMg==", + "node_modules/jest-changed-files": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-29.7.0.tgz", + "integrity": "sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==", + "dev": true, "dependencies": { - "tslib": "^2.1.0" + "execa": "^5.0.0", + "jest-util": "^29.7.0", + "p-limit": "^3.1.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/safe-buffer": { - "version": "5.2.1", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT" - }, - "node_modules/safe-event-emitter": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/safe-event-emitter/-/safe-event-emitter-1.0.1.tgz", - "integrity": "sha512-e1wFe99A91XYYxoQbcq2ZJUWurxEyP8vfz7A7vuUe1s95q8r5ebraVaA1BukYJcpM6V16ugWoD9vngi8Ccu5fg==", - "deprecated": "Renamed to @metamask/safe-event-emitter", + "node_modules/jest-circus": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-29.7.0.tgz", + "integrity": "sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw==", "dev": true, "dependencies": { - "events": "^3.0.0" + "@jest/environment": "^29.7.0", + "@jest/expect": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "co": "^4.6.0", + "dedent": "^1.0.0", + "is-generator-fn": "^2.0.0", + "jest-each": "^29.7.0", + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-runtime": "^29.7.0", + "jest-snapshot": "^29.7.0", + "jest-util": "^29.7.0", + "p-limit": "^3.1.0", + "pretty-format": "^29.7.0", + "pure-rand": "^6.0.0", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "devOptional": true - }, - "node_modules/scrypt-js": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-3.0.1.tgz", - "integrity": "sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA==" - }, - "node_modules/secp256k1": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-4.0.3.tgz", - "integrity": "sha512-NLZVf+ROMxwtEj3Xa562qgv2BK5e2WNmXPiOdVIPLgs6lyTzMvBq0aWTYMI5XCP9jZMVKOcqZLw/Wc4vDkuxhA==", - "hasInstallScript": true, + "node_modules/jest-circus/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, "dependencies": { - "elliptic": "^6.5.4", - "node-addon-api": "^2.0.0", - "node-gyp-build": "^4.2.0" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, "engines": { - "node": ">=10.0.0" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/semaphore": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/semaphore/-/semaphore-1.1.0.tgz", - "integrity": "sha512-O4OZEaNtkMd/K0i6js9SL+gqy0ZCBMgUvlSqHKi4IBdjhe7wB8pwztUk1BbZ1fmrvpwFrPbHzqd2w5pTcJH6LA==", + "node_modules/jest-circus/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, "engines": { - "node": ">=0.8.0" + "node": ">=8" } }, - "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/set-immediate-shim": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz", - "integrity": "sha512-Li5AOqrZWCVA2n5kryzEmqai6bKSIvpz5oUJHPVj6+dsbD3X1ixtsY5tEnsaNpH3pFAHmG8eIHUrtEtohrg+UQ==", + "node_modules/jest-circus/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, "engines": { - "node": ">=0.10.0" + "node": ">=8" } }, - "node_modules/setimmediate": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", - "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=" - }, - "node_modules/setprototypeof": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", - "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==" - }, - "node_modules/sha.js": { - "version": "2.4.11", - "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", - "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", + "node_modules/jest-cli": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-29.7.0.tgz", + "integrity": "sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==", + "dev": true, "dependencies": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" + "@jest/core": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/types": "^29.6.3", + "chalk": "^4.0.0", + "create-jest": "^29.7.0", + "exit": "^0.1.2", + "import-local": "^3.0.2", + "jest-config": "^29.7.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "yargs": "^17.3.1" }, "bin": { - "sha.js": "bin.js" - } - }, - "node_modules/sha3": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/sha3/-/sha3-2.1.4.tgz", - "integrity": "sha512-S8cNxbyb0UGUM2VhRD4Poe5N58gJnJsLJ5vC7FYWGUmGhcsj4++WaIOBFVDxlG0W3To6xBuiRh+i0Qp2oNCOtg==", - "dependencies": { - "buffer": "6.0.3" - } - }, - "node_modules/sha3/node_modules/buffer": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", - "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" + "jest": "bin/jest.js" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true } - ], - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" } }, - "node_modules/shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "node_modules/jest-cli/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "dependencies": { - "shebang-regex": "^3.0.0" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, "engines": { - "node": ">=8" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "node_modules/jest-cli/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, "engines": { "node": ">=8" } }, - "node_modules/shelljs": { - "version": "0.8.5", - "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.5.tgz", - "integrity": "sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==", + "node_modules/jest-cli/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, "dependencies": { - "glob": "^7.0.0", - "interpret": "^1.0.0", - "rechoir": "^0.6.2" - }, - "bin": { - "shjs": "bin/shjs" + "has-flag": "^4.0.0" }, "engines": { - "node": ">=4" + "node": ">=8" } }, - "node_modules/shx": { - "version": "0.3.4", - "resolved": "https://registry.npmjs.org/shx/-/shx-0.3.4.tgz", - "integrity": "sha512-N6A9MLVqjxZYcVn8hLmtneQWIJtp8IKzMP4eMnx+nqkvXoqinUPCbUFLp2UcWTEIUONhlk0ewxr/jaVGlc+J+g==", + "node_modules/jest-config": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-29.7.0.tgz", + "integrity": "sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==", + "dev": true, "dependencies": { - "minimist": "^1.2.3", - "shelljs": "^0.8.5" - }, - "bin": { - "shx": "lib/cli.js" + "@babel/core": "^7.11.6", + "@jest/test-sequencer": "^29.7.0", + "@jest/types": "^29.6.3", + "babel-jest": "^29.7.0", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "deepmerge": "^4.2.2", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "jest-circus": "^29.7.0", + "jest-environment-node": "^29.7.0", + "jest-get-type": "^29.6.3", + "jest-regex-util": "^29.6.3", + "jest-resolve": "^29.7.0", + "jest-runner": "^29.7.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "micromatch": "^4.0.4", + "parse-json": "^5.2.0", + "pretty-format": "^29.7.0", + "slash": "^3.0.0", + "strip-json-comments": "^3.1.1" }, "engines": { - "node": ">=6" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "@types/node": "*", + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "ts-node": { + "optional": true + } } }, - "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==", - "dev": true - }, - "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/jest-config/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "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/slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "node_modules/jest-config/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, "engines": { "node": ">=8" } }, - "node_modules/snake-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/snake-case/-/snake-case-3.0.4.tgz", - "integrity": "sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==", + "node_modules/jest-config/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, "dependencies": { - "dot-case": "^3.0.4", - "tslib": "^2.0.3" + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" } }, - "node_modules/snakecase-keys": { - "version": "5.4.4", - "resolved": "https://registry.npmjs.org/snakecase-keys/-/snakecase-keys-5.4.4.tgz", - "integrity": "sha512-YTywJG93yxwHLgrYLZjlC75moVEX04LZM4FHfihjHe1FCXm+QaLOFfSf535aXOAd0ArVQMWUAe8ZPm4VtWyXaA==", + "node_modules/jest-diff": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.7.0.tgz", + "integrity": "sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==", + "dev": true, "dependencies": { - "map-obj": "^4.1.0", - "snake-case": "^3.0.4", - "type-fest": "^2.5.2" + "chalk": "^4.0.0", + "diff-sequences": "^29.6.3", + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" }, "engines": { - "node": ">=12" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "node_modules/jest-diff/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, "engines": { - "node": ">=0.10.0" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/source-map-support": { - "version": "0.5.13", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz", - "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==", + "node_modules/jest-diff/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, - "dependencies": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" + "engines": { + "node": ">=8" } }, - "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/sshpk": { - "version": "1.17.0", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.17.0.tgz", - "integrity": "sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ==", + "node_modules/jest-diff/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "dependencies": { - "asn1": "~0.2.3", - "assert-plus": "^1.0.0", - "bcrypt-pbkdf": "^1.0.0", - "dashdash": "^1.12.0", - "ecc-jsbn": "~0.1.1", - "getpass": "^0.1.1", - "jsbn": "~0.1.0", - "safer-buffer": "^2.0.2", - "tweetnacl": "~0.14.0" - }, - "bin": { - "sshpk-conv": "bin/sshpk-conv", - "sshpk-sign": "bin/sshpk-sign", - "sshpk-verify": "bin/sshpk-verify" + "has-flag": "^4.0.0" }, "engines": { - "node": ">=0.10.0" + "node": ">=8" } }, - "node_modules/sshpk/node_modules/tweetnacl": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==", - "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==", + "node_modules/jest-docblock": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-29.7.0.tgz", + "integrity": "sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==", "dev": true, "dependencies": { - "escape-string-regexp": "^2.0.0" + "detect-newline": "^3.0.0" }, "engines": { - "node": ">=10" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "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==", + "node_modules/jest-each": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-29.7.0.tgz", + "integrity": "sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==", "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/statuses": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/store2": { - "version": "2.14.2", - "resolved": "https://registry.npmjs.org/store2/-/store2-2.14.2.tgz", - "integrity": "sha512-siT1RiqlfQnGqgT/YzXVUNsom9S0H1OX+dpdGN1xkyYATo4I6sep5NmsRD/40s3IIOvlCq6akxkqG82urIZW1w==" - }, - "node_modules/string_decoder": { - "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" + "@jest/types": "^29.6.3", + "chalk": "^4.0.0", + "jest-get-type": "^29.6.3", + "jest-util": "^29.7.0", + "pretty-format": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.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==", + "node_modules/jest-each/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "dependencies": { - "char-regex": "^1.0.2", - "strip-ansi": "^6.0.0" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, "engines": { "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, + "node_modules/jest-each/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, "engines": { "node": ">=8" } }, - "node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "node_modules/jest-each/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, "dependencies": { - "ansi-regex": "^5.0.1" + "has-flag": "^4.0.0" }, "engines": { "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==", + "node_modules/jest-environment-node": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.7.0.tgz", + "integrity": "sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==", "dev": true, + "dependencies": { + "@jest/environment": "^29.7.0", + "@jest/fake-timers": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "jest-mock": "^29.7.0", + "jest-util": "^29.7.0" + }, "engines": { - "node": ">=8" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "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==", + "node_modules/jest-get-type": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz", + "integrity": "sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==", "dev": true, "engines": { - "node": ">=6" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/strip-hex-prefix": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-hex-prefix/-/strip-hex-prefix-1.0.0.tgz", - "integrity": "sha1-DF8VX+8RUTczd96du1iNoFUA428=", + "node_modules/jest-haste-map": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.7.0.tgz", + "integrity": "sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==", + "dev": true, "dependencies": { - "is-hex-prefixed": "1.0.0" + "@jest/types": "^29.6.3", + "@types/graceful-fs": "^4.1.3", + "@types/node": "*", + "anymatch": "^3.0.3", + "fb-watchman": "^2.0.0", + "graceful-fs": "^4.2.9", + "jest-regex-util": "^29.6.3", + "jest-util": "^29.7.0", + "jest-worker": "^29.7.0", + "micromatch": "^4.0.4", + "walker": "^1.0.8" }, "engines": { - "node": ">=6.5.0", - "npm": ">=3" - } - }, - "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==", - "dev": true, - "engines": { - "node": ">=8" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "optionalDependencies": { + "fsevents": "^2.3.2" } }, - "node_modules/superstruct": { - "version": "0.14.2", - "license": "MIT" - }, - "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==", + "node_modules/jest-leak-detector": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-29.7.0.tgz", + "integrity": "sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==", + "dev": true, "dependencies": { - "has-flag": "^3.0.0" + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" }, "engines": { - "node": ">=4" - } - }, - "node_modules/symbol-observable": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-4.0.0.tgz", - "integrity": "sha512-b19dMThMV4HVFynSAM1++gBHAbk2Tc/osgLIBZMKsyqh34jb2e8Os7T6ZW/Bt3pJFdBTd2JwAnAAEQV7rSNvcQ==", - "engines": { - "node": ">=0.10" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "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==", + "node_modules/jest-matcher-utils": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.7.0.tgz", + "integrity": "sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==", "dev": true, "dependencies": { - "@istanbuljs/schema": "^0.1.2", - "glob": "^7.1.4", - "minimatch": "^3.0.4" + "chalk": "^4.0.0", + "jest-diff": "^29.7.0", + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" }, "engines": { - "node": ">=8" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/text-encoding-utf-8": { - "version": "1.0.2" - }, - "node_modules/through": { - "version": "2.3.8", - "license": "MIT" - }, - "node_modules/through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", - "dependencies": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" - } - }, - "node_modules/through2/node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" - }, - "node_modules/through2/node_modules/readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "node_modules/jest-matcher-utils/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/through2/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, - "node_modules/through2/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dependencies": { - "safe-buffer": "~5.1.0" + "node_modules/jest-matcher-utils/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" } }, - "node_modules/tiny-secp256k1": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/tiny-secp256k1/-/tiny-secp256k1-1.1.6.tgz", - "integrity": "sha512-FmqJZGduTyvsr2cF3375fqGHUovSwDi/QytexX1Se4BPuPZpTE5Ftp5fg+EFSuEf3lhZqgCRjEG3ydUQ/aNiwA==", - "hasInstallScript": true, + "node_modules/jest-matcher-utils/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, "dependencies": { - "bindings": "^1.3.0", - "bn.js": "^4.11.8", - "create-hmac": "^1.1.7", - "elliptic": "^6.4.0", - "nan": "^2.13.2" + "has-flag": "^4.0.0" }, "engines": { - "node": ">=6.0.0" + "node": ">=8" } }, - "node_modules/tiny-secp256k1/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" - }, - "node_modules/tmp": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz", - "integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==", + "node_modules/jest-message-util": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.7.0.tgz", + "integrity": "sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==", + "dev": true, "dependencies": { - "rimraf": "^3.0.0" + "@babel/code-frame": "^7.12.13", + "@jest/types": "^29.6.3", + "@types/stack-utils": "^2.0.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "micromatch": "^4.0.4", + "pretty-format": "^29.7.0", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" }, "engines": { - "node": ">=8.17.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/tmp/node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "node_modules/jest-message-util/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, "dependencies": { - "glob": "^7.1.3" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, - "bin": { - "rimraf": "bin.js" + "engines": { + "node": ">=10" }, "funding": { - "url": "https://github.com/sponsors/isaacs" + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "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==", + "node_modules/jest-message-util/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, "engines": { - "node": ">=4" + "node": ">=8" } }, - "node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "node_modules/jest-message-util/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "dependencies": { - "is-number": "^7.0.0" + "has-flag": "^4.0.0" }, "engines": { - "node": ">=8.0" - } - }, - "node_modules/toidentifier": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", - "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==", - "engines": { - "node": ">=0.6" + "node": ">=8" } }, - "node_modules/toml": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/toml/-/toml-3.0.0.tgz", - "integrity": "sha512-y/mWCZinnvxjTKYhJ+pYxwD0mRLVvOtdS2Awbgxln6iEnt4rk0yBxeSBHkGJcPucRiG0e55mwWp+g/05rsrd6w==" - }, - "node_modules/tough-cookie": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", - "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", + "node_modules/jest-mock": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.7.0.tgz", + "integrity": "sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==", "dev": true, "dependencies": { - "psl": "^1.1.28", - "punycode": "^2.1.1" - }, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=" - }, - "node_modules/ts-invariant": { - "version": "0.10.3", - "resolved": "https://registry.npmjs.org/ts-invariant/-/ts-invariant-0.10.3.tgz", - "integrity": "sha512-uivwYcQaxAucv1CzRp2n/QdYPo4ILf9VXgH19zEIjFx2EJufV16P0JtJVpYHy89DItG6Kwj2oIUjrcK5au+4tQ==", - "dependencies": { - "tslib": "^2.1.0" + "@jest/types": "^29.6.3", + "@types/node": "*", + "jest-util": "^29.7.0" }, "engines": { - "node": ">=8" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/ts-jest": { - "version": "29.1.2", - "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-29.1.2.tgz", - "integrity": "sha512-br6GJoH/WUX4pu7FbZXuWGKGNDuU7b8Uj77g/Sp7puZV6EXzuByl6JrECvm0MzVzSTkSHWTihsXt+5XYER5b+g==", + "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, - "dependencies": { - "bs-logger": "0.x", - "fast-json-stable-stringify": "2.x", - "jest-util": "^29.0.0", - "json5": "^2.2.3", - "lodash.memoize": "4.x", - "make-error": "1.x", - "semver": "^7.5.3", - "yargs-parser": "^21.0.1" - }, - "bin": { - "ts-jest": "cli.js" - }, "engines": { - "node": "^16.10.0 || ^18.0.0 || >=20.0.0" + "node": ">=6" }, "peerDependencies": { - "@babel/core": ">=7.0.0-beta.0 <8", - "@jest/types": "^29.0.0", - "babel-jest": "^29.0.0", - "jest": "^29.0.0", - "typescript": ">=4.3 <6" + "jest-resolve": "*" }, "peerDependenciesMeta": { - "@babel/core": { - "optional": true - }, - "@jest/types": { - "optional": true - }, - "babel-jest": { - "optional": true - }, - "esbuild": { + "jest-resolve": { "optional": true } } }, - "node_modules/ts-jest/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==", + "node_modules/jest-regex-util": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-29.6.3.tgz", + "integrity": "sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==", "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, "engines": { - "node": ">=10" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/ts-jest/node_modules/semver": { - "version": "7.6.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", - "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", + "node_modules/jest-resolve": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-29.7.0.tgz", + "integrity": "sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==", "dev": true, "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "jest-pnp-resolver": "^1.2.2", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "resolve": "^1.20.0", + "resolve.exports": "^2.0.0", + "slash": "^3.0.0" }, "engines": { - "node": ">=10" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/ts-jest/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, - "node_modules/ts-jest/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==", + "node_modules/jest-resolve-dependencies": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-29.7.0.tgz", + "integrity": "sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA==", "dev": true, + "dependencies": { + "jest-regex-util": "^29.6.3", + "jest-snapshot": "^29.7.0" + }, "engines": { - "node": ">=12" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" - }, - "node_modules/tunnel-agent": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==", + "node_modules/jest-resolve/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "dependencies": { - "safe-buffer": "^5.0.1" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, "engines": { - "node": "*" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/tweetnacl": { - "version": "1.0.3", - "license": "Unlicense" + "node_modules/jest-resolve/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } }, - "node_modules/tweetnacl-util": { - "version": "0.15.1", - "resolved": "https://registry.npmjs.org/tweetnacl-util/-/tweetnacl-util-0.15.1.tgz", - "integrity": "sha512-RKJBIj8lySrShN4w6i/BonWp2Z/uxwC3h4y7xsRrpP59ZboCd0GpEVsOnMDYLMmKBpYhb5TgHzZXy7wTfYFBRw==" + "node_modules/jest-resolve/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } }, - "node_modules/type-detect": { - "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==", + "node_modules/jest-runner": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-29.7.0.tgz", + "integrity": "sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==", "dev": true, + "dependencies": { + "@jest/console": "^29.7.0", + "@jest/environment": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "emittery": "^0.13.1", + "graceful-fs": "^4.2.9", + "jest-docblock": "^29.7.0", + "jest-environment-node": "^29.7.0", + "jest-haste-map": "^29.7.0", + "jest-leak-detector": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-resolve": "^29.7.0", + "jest-runtime": "^29.7.0", + "jest-util": "^29.7.0", + "jest-watcher": "^29.7.0", + "jest-worker": "^29.7.0", + "p-limit": "^3.1.0", + "source-map-support": "0.5.13" + }, "engines": { - "node": ">=4" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/type-fest": { - "version": "2.19.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz", - "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==", + "node_modules/jest-runner/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, "engines": { - "node": ">=12.20" + "node": ">=10" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "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/jest-runner/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } }, - "node_modules/typescript": { - "version": "4.6.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.6.3.tgz", - "integrity": "sha512-yNIatDa5iaofVozS/uQJEl3JRWLKKGJKh6Yaiv0GLGSuhpFJe7P3SbHZ8/yjAHRQwKRoA6YZqlfjXWmVzoVSMw==", + "node_modules/jest-runner/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" + "dependencies": { + "has-flag": "^4.0.0" }, "engines": { - "node": ">=4.2.0" + "node": ">=8" } }, - "node_modules/u3": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/u3/-/u3-0.1.1.tgz", - "integrity": "sha512-+J5D5ir763y+Am/QY6hXNRlwljIeRMZMGs0cT6qqZVVzzT3X3nFPXVyPOFRMOR4kupB0T8JnCdpWdp6Q/iXn3w==" - }, - "node_modules/untildify": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/untildify/-/untildify-4.0.0.tgz", - "integrity": "sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==", + "node_modules/jest-runtime": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-29.7.0.tgz", + "integrity": "sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==", + "dev": true, + "dependencies": { + "@jest/environment": "^29.7.0", + "@jest/fake-timers": "^29.7.0", + "@jest/globals": "^29.7.0", + "@jest/source-map": "^29.6.3", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "cjs-module-lexer": "^1.0.0", + "collect-v8-coverage": "^1.0.0", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-mock": "^29.7.0", + "jest-regex-util": "^29.6.3", + "jest-resolve": "^29.7.0", + "jest-snapshot": "^29.7.0", + "jest-util": "^29.7.0", + "slash": "^3.0.0", + "strip-bom": "^4.0.0" + }, "engines": { - "node": ">=8" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/update-browserslist-db": { - "version": "1.0.13", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz", - "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==", + "node_modules/jest-runtime/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], "dependencies": { - "escalade": "^3.1.1", - "picocolors": "^1.0.0" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, - "bin": { - "update-browserslist-db": "cli.js" + "engines": { + "node": ">=10" }, - "peerDependencies": { - "browserslist": ">= 4.21.0" + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "node_modules/jest-runtime/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, - "dependencies": { - "punycode": "^2.1.0" + "engines": { + "node": ">=8" } }, - "node_modules/utf-8-validate": { - "version": "5.0.5", - "hasInstallScript": true, - "license": "MIT", + "node_modules/jest-runtime/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, "dependencies": { - "node-gyp-build": "^4.2.0" + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" } }, - "node_modules/utf8": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/utf8/-/utf8-3.0.0.tgz", - "integrity": "sha512-E8VjFIQ/TyQgp+TZfS6l8yp/xWppSAHzidGiRrqe4bK4XP9pTRyKFgGJpO3SN7zdX4DeomTrwaseCHovfpFcqQ==", - "dev": true - }, - "node_modules/util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" - }, - "node_modules/uuid": { - "version": "3.4.0", - "license": "MIT", - "bin": { - "uuid": "bin/uuid" - } - }, - "node_modules/v8-to-istanbul": { - "version": "9.2.0", - "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.2.0.tgz", - "integrity": "sha512-/EH/sDgxU2eGxajKdwLCDmQ4FWq+kpi3uCmBGpw1xJtnAxEjlD8j8PEiGWpCIMIs3ciNAgH0d3TTJiUkYzyZjA==", + "node_modules/jest-snapshot": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-29.7.0.tgz", + "integrity": "sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==", "dev": true, "dependencies": { - "@jridgewell/trace-mapping": "^0.3.12", - "@types/istanbul-lib-coverage": "^2.0.1", - "convert-source-map": "^2.0.0" + "@babel/core": "^7.11.6", + "@babel/generator": "^7.7.2", + "@babel/plugin-syntax-jsx": "^7.7.2", + "@babel/plugin-syntax-typescript": "^7.7.2", + "@babel/types": "^7.3.3", + "@jest/expect-utils": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "babel-preset-current-node-syntax": "^1.0.0", + "chalk": "^4.0.0", + "expect": "^29.7.0", + "graceful-fs": "^4.2.9", + "jest-diff": "^29.7.0", + "jest-get-type": "^29.6.3", + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0", + "natural-compare": "^1.4.0", + "pretty-format": "^29.7.0", + "semver": "^7.5.3" }, "engines": { - "node": ">=10.12.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/verror": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", - "integrity": "sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==", + "node_modules/jest-snapshot/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, - "engines": [ - "node >=0.6.0" - ], "dependencies": { - "assert-plus": "^1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/vlq": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/vlq/-/vlq-2.0.4.tgz", - "integrity": "sha512-aodjPa2wPQFkra1G8CzJBTHXhgk3EVSwxSWXNPr1fgdFLUb8kvLV1iEb6rFgasIsjP82HWI6dsb5Io26DDnasA==" - }, - "node_modules/walker": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", - "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", + "node_modules/jest-snapshot/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, - "dependencies": { - "makeerror": "1.0.12" + "engines": { + "node": ">=8" } }, - "node_modules/web3-provider-engine": { - "version": "16.0.3", - "resolved": "https://registry.npmjs.org/web3-provider-engine/-/web3-provider-engine-16.0.3.tgz", - "integrity": "sha512-Q3bKhGqLfMTdLvkd4TtkGYJHcoVQ82D1l8jTIwwuJp/sAp7VHnRYb9YJ14SW/69VMWoOhSpPLZV2tWb9V0WJoA==", + "node_modules/jest-snapshot/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==", "dev": true, "dependencies": { - "@ethereumjs/tx": "^3.3.0", - "async": "^2.5.0", - "backoff": "^2.5.0", - "clone": "^2.0.0", - "cross-fetch": "^2.1.0", - "eth-block-tracker": "^4.4.2", - "eth-json-rpc-filters": "^4.2.1", - "eth-json-rpc-infura": "^5.1.0", - "eth-json-rpc-middleware": "^6.0.0", - "eth-rpc-errors": "^3.0.0", - "eth-sig-util": "^1.4.2", - "ethereumjs-block": "^1.2.2", - "ethereumjs-util": "^5.1.5", - "ethereumjs-vm": "^2.3.4", - "json-stable-stringify": "^1.0.1", - "promise-to-callback": "^1.0.0", - "readable-stream": "^2.2.9", - "request": "^2.85.0", - "semaphore": "^1.0.3", - "ws": "^5.1.1", - "xhr": "^2.2.0", - "xtend": "^4.0.1" + "yallist": "^4.0.0" }, "engines": { - "node": ">=12.0.0" + "node": ">=10" } }, - "node_modules/web3-provider-engine/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - }, - "node_modules/web3-provider-engine/node_modules/ethereumjs-util": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", - "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", + "node_modules/jest-snapshot/node_modules/semver": { + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", + "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", "dev": true, "dependencies": { - "bn.js": "^4.11.0", - "create-hash": "^1.1.2", - "elliptic": "^6.5.2", - "ethereum-cryptography": "^0.1.3", - "ethjs-util": "^0.1.3", - "rlp": "^2.0.0", - "safe-buffer": "^5.1.1" + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" } }, - "node_modules/web3-provider-engine/node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", - "dev": true - }, - "node_modules/web3-provider-engine/node_modules/readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "node_modules/jest-snapshot/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" } }, - "node_modules/web3-provider-engine/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "node_modules/jest-snapshot/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", "dev": true }, - "node_modules/web3-provider-engine/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "node_modules/jest-util": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.7.0.tgz", + "integrity": "sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==", "dev": true, "dependencies": { - "safe-buffer": "~5.1.0" + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/web3-provider-engine/node_modules/ws": { - "version": "5.2.3", - "resolved": "https://registry.npmjs.org/ws/-/ws-5.2.3.tgz", - "integrity": "sha512-jZArVERrMsKUatIdnLzqvcfydI85dvd/Fp1u/VOpfdDWQ4c9qWXe+VIeAbQ5FrDwciAkr+lzofXLz3Kuf26AOA==", + "node_modules/jest-util/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "dependencies": { - "async-limiter": "~1.0.0" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=" - }, - "node_modules/whatwg-fetch": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-2.0.4.tgz", - "integrity": "sha512-dcQ1GWpOD/eEQ97k66aiEVpNnapVj90/+R+SXTPYGHpYBBypfKJEQjLrvMZ7YXbKm21gXd4NcuxUTjiv1YtLng==", - "dev": true - }, - "node_modules/whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha1-lmRU6HZUYuN2RNNib2dCzotwll0=", - "dependencies": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" + "node_modules/jest-util/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" } }, - "node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "node_modules/jest-util/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" + "has-flag": "^4.0.0" }, "engines": { - "node": ">= 8" + "node": ">=8" } }, - "node_modules/wif": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/wif/-/wif-2.0.6.tgz", - "integrity": "sha1-CNP1IFbGZnkplyb63g1DKudLRwQ=", + "node_modules/jest-validate": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-29.7.0.tgz", + "integrity": "sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==", + "dev": true, "dependencies": { - "bs58check": "<3.0.0" + "@jest/types": "^29.6.3", + "camelcase": "^6.2.0", + "chalk": "^4.0.0", + "jest-get-type": "^29.6.3", + "leven": "^3.1.0", + "pretty-format": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.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/chalk/wrap-ansi?sponsor=1" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" - }, - "node_modules/write-file-atomic": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz", - "integrity": "sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==", + "node_modules/jest-validate/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "dependencies": { - "imurmurhash": "^0.1.4", - "signal-exit": "^3.0.7" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/ws": { - "version": "7.5.9", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz", - "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==", + "node_modules/jest-validate/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, "engines": { - "node": ">=8.3.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": "^5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } + "node": ">=8" } }, - "node_modules/xhr": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/xhr/-/xhr-2.6.0.tgz", - "integrity": "sha512-/eCGLb5rxjx5e3mF1A7s+pLlR6CGyqWN91fv1JgER5mVWg1MZmlhBvy9kjcsOdRk8RrIujotWyJamfyrp+WIcA==", + "node_modules/jest-validate/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "dependencies": { - "global": "~4.4.0", - "is-function": "^1.0.1", - "parse-headers": "^2.0.0", - "xtend": "^4.0.0" + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" } }, - "node_modules/xstream": { - "version": "11.14.0", - "resolved": "https://registry.npmjs.org/xstream/-/xstream-11.14.0.tgz", - "integrity": "sha512-1bLb+kKKtKPbgTK6i/BaoAn03g47PpFstlbe1BA+y3pNS/LfvcaghS5BFf9+EE1J+KwSQsEpfJvFN5GqFtiNmw==", + "node_modules/jest-watcher": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-29.7.0.tgz", + "integrity": "sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==", + "dev": true, "dependencies": { - "globalthis": "^1.0.1", - "symbol-observable": "^2.0.3" - } - }, - "node_modules/xstream/node_modules/symbol-observable": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-2.0.3.tgz", - "integrity": "sha512-sQV7phh2WCYAn81oAkakC5qjq2Ml0g8ozqz03wOGnx9dDlG1de6yrF+0RAzSJD8fPUow3PTSMf2SAbOGxb93BA==", + "@jest/test-result": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "emittery": "^0.13.1", + "jest-util": "^29.7.0", + "string-length": "^4.0.1" + }, "engines": { - "node": ">=0.10" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/xtend": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "node_modules/jest-watcher/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, "engines": { - "node": ">=0.4" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "node_modules/jest-watcher/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, "engines": { - "node": ">=10" + "node": ">=8" } }, - "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": "17.7.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", - "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", + "node_modules/jest-watcher/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, "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" + "has-flag": "^4.0.0" }, "engines": { - "node": ">=12" - } - }, - "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": ">=8" } }, - "node_modules/yargs/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==", + "node_modules/jest-worker": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.7.0.tgz", + "integrity": "sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==", + "dev": true, "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.1", - "wrap-ansi": "^7.0.0" + "@types/node": "*", + "jest-util": "^29.7.0", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" }, "engines": { - "node": ">=12" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/yargs/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==", + "node_modules/jest-worker/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, "engines": { - "node": ">=12" + "node": ">=8" } }, - "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/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/sponsors/sindresorhus" + "url": "https://github.com/chalk/supports-color?sponsor=1" } }, - "node_modules/zen-observable": { - "version": "0.8.15", - "resolved": "https://registry.npmjs.org/zen-observable/-/zen-observable-0.8.15.tgz", - "integrity": "sha512-PQ2PC7R9rslx84ndNBZB/Dkv8V8fZEpk83RLgXtYd0fwUgEjseMn1Dgajh2x6S8QbZAFa9p2qVCEuYZNgve0dQ==" + "node_modules/js-base64": { + "version": "3.6.1", + "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-3.6.1.tgz", + "integrity": "sha512-Frdq2+tRRGLQUIQOgsIGSCd1VePCS2fsddTG5dTCqR0JHgltXWfsxnY0gIXPoMeRmdom6Oyq+UMOFg5suduOjQ==" }, - "node_modules/zen-observable-ts": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/zen-observable-ts/-/zen-observable-ts-1.2.5.tgz", - "integrity": "sha512-QZWQekv6iB72Naeake9hS1KxHlotfRpe+WGNbNx5/ta+R3DNjVO2bswf63gXlWDcs+EMd7XY8HfVQyP1X6T4Zg==", - "dependencies": { - "zen-observable": "0.8.15" - } + "node_modules/js-sha256": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/js-sha256/-/js-sha256-0.9.0.tgz", + "integrity": "sha512-sga3MHh9sgQN2+pJ9VYZ+1LPwXOxuBJBA5nrR5/ofPfuiJBE2hnjsaN8se8JznOmGLN2p49Pe5U/ttafcs/apA==" }, - "pkg": { - "name": "bridge", - "version": "0.1.0", - "extraneous": true + "node_modules/js-sha3": { + "version": "0.8.0", + "license": "MIT" }, - "pkg/bridge": { - "extraneous": true - }, - "pkg/core": { - "name": "bridge", - "version": "0.1.0", - "extraneous": true - }, - "pkg/token": { - "name": "token-bridge", - "version": "0.1.0", - "extraneous": true - }, - "pkg/token-bridge": { - "extraneous": true - } - }, - "dependencies": { - "@ampproject/remapping": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz", - "integrity": "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==", - "dev": true, - "requires": { - "@jridgewell/gen-mapping": "^0.1.0", - "@jridgewell/trace-mapping": "^0.3.9" - } + "node_modules/js-sha512": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/js-sha512/-/js-sha512-0.8.0.tgz", + "integrity": "sha512-PWsmefG6Jkodqt+ePTvBZCSMFgN7Clckjd0O7su3I0+BW2QWUTJNzjktHsztGLhncP2h8mcF9V9Y2Ha59pAViQ==" }, - "@apollo/client": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/@apollo/client/-/client-3.7.0.tgz", - "integrity": "sha512-hp4OvrH1ZIQACRYcIrh/C0WFnY7IM7G6nlTpC8DSTEWxfZQ2kvpvDY0I/hYmCs0oAVrg26g3ANEdOzGWTcYbPg==", - "requires": { - "@graphql-typed-document-node/core": "^3.1.1", - "@wry/context": "^0.7.0", - "@wry/equality": "^0.5.0", - "@wry/trie": "^0.3.0", - "graphql-tag": "^2.12.6", - "hoist-non-react-statics": "^3.3.2", - "optimism": "^0.16.1", - "prop-types": "^15.7.2", - "response-iterator": "^0.2.6", - "symbol-observable": "^4.0.0", - "ts-invariant": "^0.10.3", - "tslib": "^2.3.0", - "zen-observable-ts": "^1.2.5" - } + "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==" }, - "@babel/code-frame": { - "version": "7.24.2", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.2.tgz", - "integrity": "sha512-y5+tLQyV8pg3fsiln67BVLD1P13Eg4lh5RW9mF0zUuvLrv9uIQ4MCL+CRT+FTsBlBjcIan6PGsLcBN0m3ClUyQ==", + "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, - "requires": { - "@babel/highlight": "^7.24.2", - "picocolors": "^1.0.0" + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" } }, - "@babel/compat-data": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.24.1.tgz", - "integrity": "sha512-Pc65opHDliVpRHuKfzI+gSA4zcgr65O4cl64fFJIWEEh8JoHIHh0Oez1Eo8Arz8zq/JhgKodQaxEwUPRtZylVA==", + "node_modules/jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==", "dev": true }, - "@babel/core": { - "version": "7.24.3", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.24.3.tgz", - "integrity": "sha512-5FcvN1JHw2sHJChotgx8Ek0lyuh4kCKelgMTTqhYJJtloNvUfpAFMeNQUtdlIaktwrSV9LtCdqwk48wL2wBacQ==", - "dev": true, - "requires": { - "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.24.2", - "@babel/generator": "^7.24.1", - "@babel/helper-compilation-targets": "^7.23.6", - "@babel/helper-module-transforms": "^7.23.3", - "@babel/helpers": "^7.24.1", - "@babel/parser": "^7.24.1", - "@babel/template": "^7.24.0", - "@babel/traverse": "^7.24.1", - "@babel/types": "^7.24.0", - "convert-source-map": "^2.0.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.2.3", - "semver": "^6.3.1" - }, - "dependencies": { - "semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true - } + "node_modules/jscrypto": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/jscrypto/-/jscrypto-1.0.3.tgz", + "integrity": "sha512-lryZl0flhodv4SZHOqyb1bx5sKcJxj0VBo0Kzb4QMAg3L021IC9uGpl0RCZa+9KJwlRGSK2C80ITcwbe19OKLQ==", + "bin": { + "jscrypto": "bin/cli.js" } }, - "@babel/generator": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.24.1.tgz", - "integrity": "sha512-DfCRfZsBcrPEHUfuBMgbJ1Ut01Y/itOs+hY2nFLgqsqXd52/iSiVq5TITtUasIUgm+IIKdY2/1I7auiQOEeC9A==", + "node_modules/jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", "dev": true, - "requires": { - "@babel/types": "^7.24.0", - "@jridgewell/gen-mapping": "^0.3.5", - "@jridgewell/trace-mapping": "^0.3.25", - "jsesc": "^2.5.1" + "bin": { + "jsesc": "bin/jsesc" }, - "dependencies": { - "@jridgewell/gen-mapping": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", - "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", - "dev": true, - "requires": { - "@jridgewell/set-array": "^1.2.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.24" - } - } + "engines": { + "node": ">=4" } }, - "@babel/helper-compilation-targets": { - "version": "7.23.6", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz", - "integrity": "sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==", - "dev": true, - "requires": { - "@babel/compat-data": "^7.23.5", - "@babel/helper-validator-option": "^7.23.5", - "browserslist": "^4.22.2", - "lru-cache": "^5.1.1", - "semver": "^6.3.1" - }, + "node_modules/json-bigint": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-bigint/-/json-bigint-1.0.0.tgz", + "integrity": "sha512-SiPv/8VpZuWbvLSMtTDU8hEfrZWg/mH/nV/b4o0CYbSxu1UIQPLdwKOCIyLQX+VIPO5vrLX3i8qtqFyhdPSUSQ==", "dependencies": { - "semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true - } + "bignumber.js": "^9.0.0" } }, - "@babel/helper-define-polyfill-provider": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.3.tgz", - "integrity": "sha512-z5aQKU4IzbqCC1XH0nAqfsFLMVSo22SBKUc0BxGrLkolTdPTructy0ToNnlO2zA4j9Q/7pjMZf0DSY+DSTYzww==", - "dev": true, - "requires": { - "@babel/helper-compilation-targets": "^7.17.7", - "@babel/helper-plugin-utils": "^7.16.7", - "debug": "^4.1.1", - "lodash.debounce": "^4.0.8", - "resolve": "^1.14.2", - "semver": "^6.1.2" - } + "node_modules/json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==" }, - "@babel/helper-environment-visitor": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", - "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==", + "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 }, - "@babel/helper-function-name": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz", - "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==", + "node_modules/json-rpc-engine": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/json-rpc-engine/-/json-rpc-engine-6.1.0.tgz", + "integrity": "sha512-NEdLrtrq1jUZyfjkr9OCz9EzCNhnRyWtt1PAnvnhwy6e8XETS0Dtc+ZNCO2gvuAoKsIn2+vCSowXTYE4CkgnAQ==", "dev": true, - "requires": { - "@babel/template": "^7.22.15", - "@babel/types": "^7.23.0" + "dependencies": { + "@metamask/safe-event-emitter": "^2.0.0", + "eth-rpc-errors": "^4.0.2" + }, + "engines": { + "node": ">=10.0.0" } }, - "@babel/helper-hoist-variables": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", - "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", + "node_modules/json-rpc-engine/node_modules/eth-rpc-errors": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/eth-rpc-errors/-/eth-rpc-errors-4.0.3.tgz", + "integrity": "sha512-Z3ymjopaoft7JDoxZcEb3pwdGh7yiYMhOwm2doUt6ASXlMavpNlK6Cre0+IMl2VSGyEU9rkiperQhp5iRxn5Pg==", "dev": true, - "requires": { - "@babel/types": "^7.22.5" + "dependencies": { + "fast-safe-stringify": "^2.0.6" } }, - "@babel/helper-module-imports": { - "version": "7.24.3", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.24.3.tgz", - "integrity": "sha512-viKb0F9f2s0BCS22QSF308z/+1YWKV/76mwt61NBzS5izMzDPwdq1pTrzf+Li3npBWX9KdQbkeCt1jSAM7lZqg==", - "dev": true, - "requires": { - "@babel/types": "^7.24.0" - } + "node_modules/json-rpc-random-id": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-rpc-random-id/-/json-rpc-random-id-1.0.1.tgz", + "integrity": "sha512-RJ9YYNCkhVDBuP4zN5BBtYAzEl03yq/jIIsyif0JY9qyJuQQZNeDK7anAPKKlyEtLSj2s8h6hNh2F8zO5q7ScA==", + "dev": true }, - "@babel/helper-module-transforms": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz", - "integrity": "sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==", - "dev": true, - "requires": { - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-module-imports": "^7.22.15", - "@babel/helper-simple-access": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.6", - "@babel/helper-validator-identifier": "^7.22.20" - } + "node_modules/json-schema": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", + "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==", + "dev": true }, - "@babel/helper-plugin-utils": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.0.tgz", - "integrity": "sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w==", + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", "dev": true }, - "@babel/helper-simple-access": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz", - "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==", + "node_modules/json-stable-stringify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz", + "integrity": "sha512-i/J297TW6xyj7sDFa7AmBPkQvLIxWr2kKPWI26tXydnZrzVAocNqn5DMNT1Mzk0vit1V5UkRM7C1KdVNp7Lmcg==", "dev": true, - "requires": { - "@babel/types": "^7.22.5" + "dependencies": { + "jsonify": "~0.0.0" } }, - "@babel/helper-split-export-declaration": { - "version": "7.22.6", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz", - "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==", - "dev": true, - "requires": { - "@babel/types": "^7.22.5" - } - }, - "@babel/helper-string-parser": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.1.tgz", - "integrity": "sha512-2ofRCjnnA9y+wk8b9IAREroeUP02KHp431N2mhKniy2yKIDKpbrHv9eXwm8cBeWQYcJmzv5qKCu65P47eCF7CQ==", - "dev": true - }, - "@babel/helper-validator-identifier": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", - "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", - "dev": true - }, - "@babel/helper-validator-option": { - "version": "7.23.5", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz", - "integrity": "sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==", - "dev": true + "node_modules/json-stringify-safe": { + "version": "5.0.1", + "license": "ISC" }, - "@babel/helpers": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.24.1.tgz", - "integrity": "sha512-BpU09QqEe6ZCHuIHFphEFgvNSrubve1FtyMton26ekZ85gRGi6LrTF7zArARp2YvyFxloeiRmtSCq5sjh1WqIg==", - "dev": true, - "requires": { - "@babel/template": "^7.24.0", - "@babel/traverse": "^7.24.1", - "@babel/types": "^7.24.0" + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" } }, - "@babel/highlight": { - "version": "7.24.2", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.2.tgz", - "integrity": "sha512-Yac1ao4flkTxTteCDZLEvdxg2fZfz1v8M4QpaGypq/WPDqg3ijHYbDfs+LG5hvzSoqaSZ9/Z9lKSP3CjZjv+pA==", + "node_modules/jsonify": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.1.tgz", + "integrity": "sha512-2/Ki0GcmuqSrgFyelQq9M05y7PS0mEwuIzrf3f1fPqkVDVRvZrPZtVSMHxdgo8Aq0sxAOb/cr2aqqA3LeWHVPg==", "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.22.20", - "chalk": "^2.4.2", - "js-tokens": "^4.0.0", - "picocolors": "^1.0.0" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "@babel/parser": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.1.tgz", - "integrity": "sha512-Zo9c7N3xdOIQrNip7Lc9wvRPzlRtovHVE4lkz8WEDr7uYh/GMQhSiIgFxGIArRHYdJE5kxtZjAf8rT0xhdLCzg==", - "dev": true + "node_modules/jsonparse": { + "version": "1.3.1", + "engines": [ + "node >= 0.2.0" + ], + "license": "MIT" }, - "@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, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" + "node_modules/jsonschema": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jsonschema/-/jsonschema-1.4.1.tgz", + "integrity": "sha512-S6cATIPVv1z0IlxdN+zUk5EPjkGCdnhN4wVSBlvoUO1tOLJootbo9CquNJmbIh4yikWHiUedhRYrNPn1arpEmQ==", + "engines": { + "node": "*" } }, - "@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, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" + "node_modules/JSONStream": { + "version": "1.3.5", + "license": "(MIT OR Apache-2.0)", + "dependencies": { + "jsonparse": "^1.2.0", + "through": ">=2.2.7 <3" + }, + "bin": { + "JSONStream": "bin.js" + }, + "engines": { + "node": "*" } }, - "@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==", + "node_modules/jsprim": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.2.tgz", + "integrity": "sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.12.13" + "dependencies": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.4.0", + "verror": "1.10.0" + }, + "engines": { + "node": ">=0.6.0" } }, - "@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, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" + "node_modules/keccak": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/keccak/-/keccak-3.0.2.tgz", + "integrity": "sha512-PyKKjkH53wDMLGrvmRGSNWgmSxZOUqbnXwKL9tmgbFYA1iAYqW21kfR7mZXV0MlESiefxQQE9X9fTa3X+2MPDQ==", + "hasInstallScript": true, + "dependencies": { + "node-addon-api": "^2.0.0", + "node-gyp-build": "^4.2.0", + "readable-stream": "^3.6.0" + }, + "engines": { + "node": ">=10.0.0" } }, - "@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, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" + "node_modules/keccak256": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/keccak256/-/keccak256-1.0.6.tgz", + "integrity": "sha512-8GLiM01PkdJVGUhR1e6M/AvWnSqYS0HaERI+K/QtStGDGlSTx2B1zTqZk4Zlqu5TxHJNTxWAdP9Y+WI50OApUw==", + "dependencies": { + "bn.js": "^5.2.0", + "buffer": "^6.0.3", + "keccak": "^3.0.2" } }, - "@babel/plugin-syntax-jsx": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.24.1.tgz", - "integrity": "sha512-2eCtxZXf+kbkMIsXS4poTvT4Yu5rXiRa+9xGVT56raghjmBTKMpFNc9R4IDiB4emao9eO22Ox7CxuJG7BgExqA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.24.0" + "node_modules/keyv": { + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "dependencies": { + "json-buffer": "3.0.1" } }, - "@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==", + "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, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" + "engines": { + "node": ">=6" } }, - "@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, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } + "node_modules/level-codec": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/level-codec/-/level-codec-7.0.1.tgz", + "integrity": "sha512-Ua/R9B9r3RasXdRmOtd+t9TCOEIIlts+TN/7XTT2unhDaL6sJn83S3rUyljbr6lVtw49N3/yA0HHjpV6Kzb2aQ==", + "dev": true }, - "@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==", + "node_modules/level-errors": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/level-errors/-/level-errors-1.0.5.tgz", + "integrity": "sha512-/cLUpQduF6bNrWuAC4pwtUKA5t669pCsCi2XbmojG2tFeOr9j6ShtdDCtFFQO1DRt+EVZhx9gPzP9G2bUaG4ig==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" + "dependencies": { + "errno": "~0.1.1" } }, - "@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==", + "node_modules/level-iterator-stream": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/level-iterator-stream/-/level-iterator-stream-1.3.1.tgz", + "integrity": "sha512-1qua0RHNtr4nrZBgYlpV0qHHeHpcRRWTxEZJ8xsemoHAXNL5tbooh4tPEEqIqsbWCAJBmUmkwYK/sW5OrFjWWw==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" + "dependencies": { + "inherits": "^2.0.1", + "level-errors": "^1.0.3", + "readable-stream": "^1.0.33", + "xtend": "^4.0.0" } }, - "@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==", + "node_modules/level-iterator-stream/node_modules/readable-stream": { + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", + "integrity": "sha512-+MeVjFf4L44XUkhM1eYbD8fyEsxcV81pqMSR5gblfcLCHfZvbrqy4/qYHE+/R5HoBUT11WV5O08Cr1n3YXkWVQ==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" } }, - "@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, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } + "node_modules/level-iterator-stream/node_modules/string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==", + "dev": true }, - "@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==", + "node_modules/level-ws": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/level-ws/-/level-ws-0.0.0.tgz", + "integrity": "sha512-XUTaO/+Db51Uiyp/t7fCMGVFOTdtLS/NIACxE/GHsij15mKzxksZifKVjlXDF41JMUP/oM1Oc4YNGdKnc3dVLw==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" + "dependencies": { + "readable-stream": "~1.0.15", + "xtend": "~2.1.1" } }, - "@babel/plugin-syntax-typescript": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.24.1.tgz", - "integrity": "sha512-Yhnmvy5HZEnHUty6i++gcfH1/l68AHnItFHnaCv6hn9dNh0hQvvQJsxpi4BMBFN5DLeHBuucT/0DgzXif/OyRw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.24.0" - } + "node_modules/level-ws/node_modules/object-keys": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-0.4.0.tgz", + "integrity": "sha512-ncrLw+X55z7bkl5PnUvHwFK9FcGuFYo9gtjws2XtSzL+aZ8tm830P60WJ0dSmFVaSalWieW5MD7kEdnXda9yJw==", + "dev": true }, - "@babel/plugin-transform-runtime": { - "version": "7.19.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.19.6.tgz", - "integrity": "sha512-PRH37lz4JU156lYFW1p8OxE5i7d6Sl/zV58ooyr+q1J1lnQPyg5tIiXlIwNVhJaY4W3TmOtdc8jqdXQcB1v5Yw==", + "node_modules/level-ws/node_modules/readable-stream": { + "version": "1.0.34", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", + "integrity": "sha512-ok1qVCJuRkNmvebYikljxJA/UEsKwLl2nI1OmaqAu4/UE+h0wKCHok4XkL/gvi39OacXvw59RJUOFUkDib2rHg==", "dev": true, - "requires": { - "@babel/helper-module-imports": "^7.18.6", - "@babel/helper-plugin-utils": "^7.19.0", - "babel-plugin-polyfill-corejs2": "^0.3.3", - "babel-plugin-polyfill-corejs3": "^0.6.0", - "babel-plugin-polyfill-regenerator": "^0.4.1", - "semver": "^6.3.0" + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" } }, - "@babel/runtime": { - "version": "7.20.13", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.20.13.tgz", - "integrity": "sha512-gt3PKXs0DBoL9xCvOIIZ2NEqAGZqHjAnmVbfQtB620V0uReIQutpel14KcneZuer7UioY8ALKZ7iocavvzTNFA==", - "requires": { - "regenerator-runtime": "^0.13.11" + "node_modules/level-ws/node_modules/string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==", + "dev": true + }, + "node_modules/level-ws/node_modules/xtend": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-2.1.2.tgz", + "integrity": "sha512-vMNKzr2rHP9Dp/e1NQFnLQlwlhp9L/LfvnsVdHxN1f+uggyVI3i08uD14GPvCToPkdsRfyPqIyYGmIk58V98ZQ==", + "dev": true, + "dependencies": { + "object-keys": "~0.4.0" + }, + "engines": { + "node": ">=0.4" } }, - "@babel/template": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.24.0.tgz", - "integrity": "sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA==", + "node_modules/levelup": { + "version": "1.3.9", + "resolved": "https://registry.npmjs.org/levelup/-/levelup-1.3.9.tgz", + "integrity": "sha512-VVGHfKIlmw8w1XqpGOAGwq6sZm2WwWLmlDcULkKWQXEA5EopA8OBNJ2Ck2v6bdk8HeEZSbCSEgzXadyQFm76sQ==", "dev": true, - "requires": { - "@babel/code-frame": "^7.23.5", - "@babel/parser": "^7.24.0", - "@babel/types": "^7.24.0" + "dependencies": { + "deferred-leveldown": "~1.2.1", + "level-codec": "~7.0.0", + "level-errors": "~1.0.3", + "level-iterator-stream": "~1.3.0", + "prr": "~1.0.1", + "semver": "~5.4.1", + "xtend": "~4.0.0" } }, - "@babel/traverse": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.1.tgz", - "integrity": "sha512-xuU6o9m68KeqZbQuDt2TcKSxUw/mrsvavlEqQ1leZ/B+C9tk6E4sRWy97WaXgvq5E+nU3cXMxv3WKOCanVMCmQ==", + "node_modules/levelup/node_modules/semver": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.4.1.tgz", + "integrity": "sha512-WfG/X9+oATh81XtllIo/I8gOiY9EXRdv1cQdyykeXK17YcUW3EXUAi2To4pcH6nZtJPr7ZOpM5OMyWJZm+8Rsg==", "dev": true, - "requires": { - "@babel/code-frame": "^7.24.1", - "@babel/generator": "^7.24.1", - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-function-name": "^7.23.0", - "@babel/helper-hoist-variables": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.6", - "@babel/parser": "^7.24.1", - "@babel/types": "^7.24.0", - "debug": "^4.3.1", - "globals": "^11.1.0" + "bin": { + "semver": "bin/semver" } }, - "@babel/types": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.0.tgz", - "integrity": "sha512-+j7a5c253RfKh8iABBhywc8NSfP5LURe7Uh4qpsh6jc+aLJguvmIUBdjSdEMQv2bENrCR5MfRdjGo7vzS/ob7w==", + "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, - "requires": { - "@babel/helper-string-parser": "^7.23.4", - "@babel/helper-validator-identifier": "^7.22.20", - "to-fast-properties": "^2.0.0" + "engines": { + "node": ">=6" } }, - "@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/libsodium": { + "version": "0.7.10", + "resolved": "https://registry.npmjs.org/libsodium/-/libsodium-0.7.10.tgz", + "integrity": "sha512-eY+z7hDrDKxkAK+QKZVNv92A5KYkxfvIshtBJkmg5TSiCnYqZP3i9OO9whE79Pwgm4jGaoHgkM4ao/b9Cyu4zQ==" }, - "@celo-tools/celo-ethers-wrapper": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/@celo-tools/celo-ethers-wrapper/-/celo-ethers-wrapper-0.1.0.tgz", - "integrity": "sha512-kBpFi7viIRlysiVKfIIywuAGykO0l3w+lBZ+NFaEgw9GsVQl0NYj0e4/UhbglfU5XS6M8HCCordUuC8gVwCw7w==", - "requires": {} + "node_modules/libsodium-sumo": { + "version": "0.7.14", + "resolved": "https://registry.npmjs.org/libsodium-sumo/-/libsodium-sumo-0.7.14.tgz", + "integrity": "sha512-2nDge6qlAjcwyslAhWfVumlkeSNK5+WCfKa2/VEq9prvlT5vP2FR0m0o5hmKaYqfsZ4TQVj5czQsimZvXDB1CQ==" }, - "@certusone/wormhole-sdk": { - "version": "0.10.15", - "resolved": "https://registry.npmjs.org/@certusone/wormhole-sdk/-/wormhole-sdk-0.10.15.tgz", - "integrity": "sha512-XECfrvdYjsGPZWyR1bqWCPOiRw7+6upszpSvAXjKIqEnTNXOCYRkt5ae8TVh5oZxPjpts2X3t4Oi9WGcEssHpQ==", - "requires": { - "@certusone/wormhole-sdk-proto-web": "0.0.7", - "@certusone/wormhole-sdk-wasm": "^0.0.1", - "@coral-xyz/borsh": "0.2.6", - "@injectivelabs/networks": "1.10.12", - "@injectivelabs/sdk-ts": "1.10.72", - "@injectivelabs/utils": "1.10.12", - "@mysten/sui.js": "0.32.2", - "@project-serum/anchor": "^0.25.0", - "@solana/spl-token": "^0.3.5", - "@solana/web3.js": "^1.66.2", - "@terra-money/terra.js": "3.1.9", - "@xpla/xpla.js": "^0.2.1", - "algosdk": "^2.4.0", - "aptos": "1.5.0", - "axios": "^0.24.0", - "bech32": "^2.0.0", - "binary-parser": "^2.2.1", - "bs58": "^4.0.1", - "elliptic": "^6.5.4", - "js-base64": "^3.6.1", - "near-api-js": "^1.0.0" - }, + "node_modules/libsodium-wrappers": { + "version": "0.7.10", + "resolved": "https://registry.npmjs.org/libsodium-wrappers/-/libsodium-wrappers-0.7.10.tgz", + "integrity": "sha512-pO3F1Q9NPLB/MWIhehim42b/Fwb30JNScCNh8TcQ/kIc+qGLQch8ag8wb0keK3EP5kbGakk1H8Wwo7v+36rNQg==", "dependencies": { - "bech32": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/bech32/-/bech32-2.0.0.tgz", - "integrity": "sha512-LcknSilhIGatDAsY1ak2I8VtGaHNhgMSYVxFrGLXv+xLHytaKZKcaUJJUE7qmBr7h33o5YQwP55pMI0xmkpJwg==" - } + "libsodium": "^0.7.0" } }, - "@certusone/wormhole-sdk-proto-web": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/@certusone/wormhole-sdk-proto-web/-/wormhole-sdk-proto-web-0.0.7.tgz", - "integrity": "sha512-GCe1/bcqMS0Mt+hsWp4SE4NLL59pWmK0lhQXO0oqAKl0G9AuuTdudySMDF/sLc7z5H2w34bSuSrIEKvPuuSC+w==", - "requires": { - "@improbable-eng/grpc-web": "^0.15.0", - "protobufjs": "^7.0.0", - "rxjs": "^7.5.6" - }, + "node_modules/libsodium-wrappers-sumo": { + "version": "0.7.14", + "resolved": "https://registry.npmjs.org/libsodium-wrappers-sumo/-/libsodium-wrappers-sumo-0.7.14.tgz", + "integrity": "sha512-0lm7ZwN5a95J2yUi8R1rgQeeaVDIWnvNzgVmXmZswis4mC+bQtbDrB+QpJlL4qklaKx3hVpJjoc6ubzJFiv64Q==", "dependencies": { - "@improbable-eng/grpc-web": { - "version": "0.15.0", - "resolved": "https://registry.npmjs.org/@improbable-eng/grpc-web/-/grpc-web-0.15.0.tgz", - "integrity": "sha512-ERft9/0/8CmYalqOVnJnpdDry28q+j+nAlFFARdjyxXDJ+Mhgv9+F600QC8BR9ygOfrXRlAk6CvST2j+JCpQPg==", - "requires": { - "browser-headers": "^0.4.1" - } - }, - "long": { - "version": "5.2.3", - "resolved": "https://registry.npmjs.org/long/-/long-5.2.3.tgz", - "integrity": "sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q==" - }, - "protobufjs": { - "version": "7.2.5", - "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.2.5.tgz", - "integrity": "sha512-gGXRSXvxQ7UiPgfw8gevrfRWcTlSbOFg+p/N+JVJEK5VhueL2miT6qTymqAmjr1Q5WbOCyJbyrk6JfWKwlFn6A==", - "requires": { - "@protobufjs/aspromise": "^1.1.2", - "@protobufjs/base64": "^1.1.2", - "@protobufjs/codegen": "^2.0.4", - "@protobufjs/eventemitter": "^1.1.0", - "@protobufjs/fetch": "^1.1.0", - "@protobufjs/float": "^1.0.2", - "@protobufjs/inquire": "^1.1.0", - "@protobufjs/path": "^1.1.2", - "@protobufjs/pool": "^1.1.0", - "@protobufjs/utf8": "^1.1.0", - "@types/node": ">=13.7.0", - "long": "^5.0.0" - } - } - } - }, - "@certusone/wormhole-sdk-wasm": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/@certusone/wormhole-sdk-wasm/-/wormhole-sdk-wasm-0.0.1.tgz", - "integrity": "sha512-LdIwLhOyr4pPs2jqYubqC7d4UkqYBX0EG/ppspQlW3qlVE0LZRMrH6oVzzLMyHtV0Rw7O9sIKzORW/T3mrJv2w==", - "requires": { - "@types/long": "^4.0.2", - "@types/node": "^18.0.3" + "libsodium-sumo": "^0.7.14" } }, - "@classic-terra/terra.proto": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@classic-terra/terra.proto/-/terra.proto-1.1.0.tgz", - "integrity": "sha512-bYhQG5LUaGF0KPRY9hYT/HEcd1QExZPQd6zLV/rQkCe/eDxfwFRLzZHpaaAdfWoAAZjsRWqJbUCqCg7gXBbJpw==", - "requires": { - "@improbable-eng/grpc-web": "^0.14.1", - "google-protobuf": "^3.17.3", - "long": "^4.0.0", - "protobufjs": "~6.11.2" - } + "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 }, - "@confio/ics23": { - "version": "0.6.8", - "resolved": "https://registry.npmjs.org/@confio/ics23/-/ics23-0.6.8.tgz", - "integrity": "sha512-wB6uo+3A50m0sW/EWcU64xpV/8wShZ6bMTa7pF8eYsTrSkQA7oLUIJcs/wb8g4y2Oyq701BaGiO6n/ak5WXO1w==", - "requires": { - "@noble/hashes": "^1.0.0", - "protobufjs": "^6.8.8" + "node_modules/link-module-alias": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/link-module-alias/-/link-module-alias-1.2.0.tgz", + "integrity": "sha512-ahPjXepbSVKbahTB6LxR//VHm8HPfI+QQygCH+E82spBY4HR5VPJTvlhKBc9F7muVxnS6C1rRfoPOXAbWO/fyw==", + "dependencies": { + "chalk": "^2.4.1" + }, + "bin": { + "link-module-alias": "index.js" + }, + "engines": { + "node": "> 8.0.0" } }, - "@coral-xyz/borsh": { - "version": "0.2.6", - "resolved": "https://registry.npmjs.org/@coral-xyz/borsh/-/borsh-0.2.6.tgz", - "integrity": "sha512-y6nmHw1bFcJib7sMHsQPpC8r47xhqDZVvhUdna7NUPzpSbOZG6f46N21+aXsQ2w/tG8Ggls488J/ZmwbgVmyjg==", - "requires": { - "bn.js": "^5.1.2", - "buffer-layout": "^1.2.0" + "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" } }, - "@cosmjs/amino": { - "version": "0.29.5", - "resolved": "https://registry.npmjs.org/@cosmjs/amino/-/amino-0.29.5.tgz", - "integrity": "sha512-Qo8jpC0BiziTSUqpkNatBcwtKNhCovUnFul9SlT/74JUCdLYaeG5hxr3q1cssQt++l4LvlcpF+OUXL48XjNjLw==", - "requires": { - "@cosmjs/crypto": "^0.29.5", - "@cosmjs/encoding": "^0.29.5", - "@cosmjs/math": "^0.29.5", - "@cosmjs/utils": "^0.29.5" - }, - "dependencies": { - "@cosmjs/encoding": { - "version": "0.29.5", - "resolved": "https://registry.npmjs.org/@cosmjs/encoding/-/encoding-0.29.5.tgz", - "integrity": "sha512-G4rGl/Jg4dMCw5u6PEZHZcoHnUBlukZODHbm/wcL4Uu91fkn5jVo5cXXZcvs4VCkArVGrEj/52eUgTZCmOBGWQ==", - "requires": { - "base64-js": "^1.3.0", - "bech32": "^1.1.4", - "readonly-date": "^1.0.0" - } - } - } + "node_modules/lodash": { + "version": "4.17.21", + "license": "MIT" }, - "@cosmjs/cosmwasm-stargate": { - "version": "0.29.5", - "resolved": "https://registry.npmjs.org/@cosmjs/cosmwasm-stargate/-/cosmwasm-stargate-0.29.5.tgz", - "integrity": "sha512-TNdSvm2tEE3XMCuxHxquzls56t40hC8qnLeYJWHsY2ECZmRK3KrnpRReEr7N7bLtODToK7X/riYrV0JaYxjrYA==", - "requires": { - "@cosmjs/amino": "^0.29.5", - "@cosmjs/crypto": "^0.29.5", - "@cosmjs/encoding": "^0.29.5", - "@cosmjs/math": "^0.29.5", - "@cosmjs/proto-signing": "^0.29.5", - "@cosmjs/stargate": "^0.29.5", - "@cosmjs/tendermint-rpc": "^0.29.5", - "@cosmjs/utils": "^0.29.5", - "cosmjs-types": "^0.5.2", - "long": "^4.0.0", - "pako": "^2.0.2" - }, + "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==", + "dev": true + }, + "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.values": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.values/-/lodash.values-4.3.0.tgz", + "integrity": "sha512-r0RwvdCv8id9TUblb/O7rYPwVy6lerCbcawrfdo9iC/1t1wsNMJknO79WNBgwkH0hIeJ08jmvvESbFpNb4jH0Q==" + }, + "node_modules/long": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz", + "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==" + }, + "node_modules/loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", "dependencies": { - "@cosmjs/encoding": { - "version": "0.29.5", - "resolved": "https://registry.npmjs.org/@cosmjs/encoding/-/encoding-0.29.5.tgz", - "integrity": "sha512-G4rGl/Jg4dMCw5u6PEZHZcoHnUBlukZODHbm/wcL4Uu91fkn5jVo5cXXZcvs4VCkArVGrEj/52eUgTZCmOBGWQ==", - "requires": { - "base64-js": "^1.3.0", - "bech32": "^1.1.4", - "readonly-date": "^1.0.0" - } - } + "js-tokens": "^3.0.0 || ^4.0.0" + }, + "bin": { + "loose-envify": "cli.js" } }, - "@cosmjs/crypto": { - "version": "0.29.5", - "resolved": "https://registry.npmjs.org/@cosmjs/crypto/-/crypto-0.29.5.tgz", - "integrity": "sha512-2bKkaLGictaNL0UipQCL6C1afaisv6k8Wr/GCLx9FqiyFkh9ZgRHDyetD64ZsjnWV/N/D44s/esI+k6oPREaiQ==", - "requires": { - "@cosmjs/encoding": "^0.29.5", - "@cosmjs/math": "^0.29.5", - "@cosmjs/utils": "^0.29.5", - "@noble/hashes": "^1", - "bn.js": "^5.2.0", - "elliptic": "^6.5.4", - "libsodium-wrappers": "^0.7.6" - }, + "node_modules/lower-case": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", + "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", "dependencies": { - "@cosmjs/encoding": { - "version": "0.29.5", - "resolved": "https://registry.npmjs.org/@cosmjs/encoding/-/encoding-0.29.5.tgz", - "integrity": "sha512-G4rGl/Jg4dMCw5u6PEZHZcoHnUBlukZODHbm/wcL4Uu91fkn5jVo5cXXZcvs4VCkArVGrEj/52eUgTZCmOBGWQ==", - "requires": { - "base64-js": "^1.3.0", - "bech32": "^1.1.4", - "readonly-date": "^1.0.0" - } - } + "tslib": "^2.0.3" } }, - "@cosmjs/encoding": { - "version": "0.26.8", - "resolved": "https://registry.npmjs.org/@cosmjs/encoding/-/encoding-0.26.8.tgz", - "integrity": "sha512-rsqdeCHPmSXSjwE6pzbsx/drxIZKPiIxza4hYsGCaVsxrFZmgOFNmvWgtuIOIEXPS/ZoyST9XU9aMpkaYzLEVQ==", - "requires": { - "base64-js": "^1.3.0", - "bech32": "^1.1.4", - "readonly-date": "^1.0.0" + "node_modules/lowercase-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", + "engines": { + "node": ">=8" } }, - "@cosmjs/json-rpc": { - "version": "0.29.5", - "resolved": "https://registry.npmjs.org/@cosmjs/json-rpc/-/json-rpc-0.29.5.tgz", - "integrity": "sha512-C78+X06l+r9xwdM1yFWIpGl03LhB9NdM1xvZpQHwgCOl0Ir/WV8pw48y3Ez2awAoUBRfTeejPe4KvrE6NoIi/w==", - "requires": { - "@cosmjs/stream": "^0.29.5", - "xstream": "^11.14.0" + "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, + "dependencies": { + "yallist": "^3.0.2" } }, - "@cosmjs/math": { - "version": "0.29.5", - "resolved": "https://registry.npmjs.org/@cosmjs/math/-/math-0.29.5.tgz", - "integrity": "sha512-2GjKcv+A9f86MAWYLUkjhw1/WpRl2R1BTb3m9qPG7lzMA7ioYff9jY5SPCfafKdxM4TIQGxXQlYGewQL16O68Q==", - "requires": { - "bn.js": "^5.2.0" - } + "node_modules/ltgt": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ltgt/-/ltgt-2.2.1.tgz", + "integrity": "sha512-AI2r85+4MquTw9ZYqabu4nMwy9Oftlfa/e/52t9IjtfG+mGBbTNdAoZ3RQKLHR6r0wQnwZnPIEh/Ya6XTWAKNA==", + "dev": true }, - "@cosmjs/proto-signing": { - "version": "0.29.5", - "resolved": "https://registry.npmjs.org/@cosmjs/proto-signing/-/proto-signing-0.29.5.tgz", - "integrity": "sha512-QRrS7CiKaoETdgIqvi/7JC2qCwCR7lnWaUsTzh/XfRy3McLkEd+cXbKAW3cygykv7IN0VAEIhZd2lyIfT8KwNA==", - "requires": { - "@cosmjs/amino": "^0.29.5", - "@cosmjs/crypto": "^0.29.5", - "@cosmjs/encoding": "^0.29.5", - "@cosmjs/math": "^0.29.5", - "@cosmjs/utils": "^0.29.5", - "cosmjs-types": "^0.5.2", - "long": "^4.0.0" - }, + "node_modules/make-dir": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", + "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", + "dev": true, "dependencies": { - "@cosmjs/encoding": { - "version": "0.29.5", - "resolved": "https://registry.npmjs.org/@cosmjs/encoding/-/encoding-0.29.5.tgz", - "integrity": "sha512-G4rGl/Jg4dMCw5u6PEZHZcoHnUBlukZODHbm/wcL4Uu91fkn5jVo5cXXZcvs4VCkArVGrEj/52eUgTZCmOBGWQ==", - "requires": { - "base64-js": "^1.3.0", - "bech32": "^1.1.4", - "readonly-date": "^1.0.0" - } - } + "semver": "^7.5.3" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "@cosmjs/socket": { - "version": "0.29.5", - "resolved": "https://registry.npmjs.org/@cosmjs/socket/-/socket-0.29.5.tgz", - "integrity": "sha512-5VYDupIWbIXq3ftPV1LkS5Ya/T7Ol/AzWVhNxZ79hPe/mBfv1bGau/LqIYOm2zxGlgm9hBHOTmWGqNYDwr9LNQ==", - "requires": { - "@cosmjs/stream": "^0.29.5", - "isomorphic-ws": "^4.0.1", - "ws": "^7", - "xstream": "^11.14.0" + "node_modules/make-dir/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==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" } }, - "@cosmjs/stargate": { - "version": "0.29.5", - "resolved": "https://registry.npmjs.org/@cosmjs/stargate/-/stargate-0.29.5.tgz", - "integrity": "sha512-hjEv8UUlJruLrYGJcUZXM/CziaINOKwfVm2BoSdUnNTMxGvY/jC1ABHKeZUYt9oXHxEJ1n9+pDqzbKc8pT0nBw==", - "requires": { - "@confio/ics23": "^0.6.8", - "@cosmjs/amino": "^0.29.5", - "@cosmjs/encoding": "^0.29.5", - "@cosmjs/math": "^0.29.5", - "@cosmjs/proto-signing": "^0.29.5", - "@cosmjs/stream": "^0.29.5", - "@cosmjs/tendermint-rpc": "^0.29.5", - "@cosmjs/utils": "^0.29.5", - "cosmjs-types": "^0.5.2", - "long": "^4.0.0", - "protobufjs": "~6.11.3", - "xstream": "^11.14.0" - }, + "node_modules/make-dir/node_modules/semver": { + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", + "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", + "dev": true, "dependencies": { - "@cosmjs/encoding": { - "version": "0.29.5", - "resolved": "https://registry.npmjs.org/@cosmjs/encoding/-/encoding-0.29.5.tgz", - "integrity": "sha512-G4rGl/Jg4dMCw5u6PEZHZcoHnUBlukZODHbm/wcL4Uu91fkn5jVo5cXXZcvs4VCkArVGrEj/52eUgTZCmOBGWQ==", - "requires": { - "base64-js": "^1.3.0", - "bech32": "^1.1.4", - "readonly-date": "^1.0.0" - } - } + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" } }, - "@cosmjs/stream": { - "version": "0.29.5", - "resolved": "https://registry.npmjs.org/@cosmjs/stream/-/stream-0.29.5.tgz", - "integrity": "sha512-TToTDWyH1p05GBtF0Y8jFw2C+4783ueDCmDyxOMM6EU82IqpmIbfwcdMOCAm0JhnyMh+ocdebbFvnX/sGKzRAA==", - "requires": { - "xstream": "^11.14.0" - } + "node_modules/make-dir/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true }, - "@cosmjs/tendermint-rpc": { - "version": "0.29.5", - "resolved": "https://registry.npmjs.org/@cosmjs/tendermint-rpc/-/tendermint-rpc-0.29.5.tgz", - "integrity": "sha512-ar80twieuAxsy0x2za/aO3kBr2DFPAXDmk2ikDbmkda+qqfXgl35l9CVAAjKRqd9d+cRvbQyb5M4wy6XQpEV6w==", - "requires": { - "@cosmjs/crypto": "^0.29.5", - "@cosmjs/encoding": "^0.29.5", - "@cosmjs/json-rpc": "^0.29.5", - "@cosmjs/math": "^0.29.5", - "@cosmjs/socket": "^0.29.5", - "@cosmjs/stream": "^0.29.5", - "@cosmjs/utils": "^0.29.5", - "axios": "^0.21.2", - "readonly-date": "^1.0.0", - "xstream": "^11.14.0" - }, + "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/makeerror": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", + "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", + "dev": true, "dependencies": { - "@cosmjs/encoding": { - "version": "0.29.5", - "resolved": "https://registry.npmjs.org/@cosmjs/encoding/-/encoding-0.29.5.tgz", - "integrity": "sha512-G4rGl/Jg4dMCw5u6PEZHZcoHnUBlukZODHbm/wcL4Uu91fkn5jVo5cXXZcvs4VCkArVGrEj/52eUgTZCmOBGWQ==", - "requires": { - "base64-js": "^1.3.0", - "bech32": "^1.1.4", - "readonly-date": "^1.0.0" - } - }, - "axios": { - "version": "0.21.4", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.4.tgz", - "integrity": "sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==", - "requires": { - "follow-redirects": "^1.14.0" - } - } + "tmpl": "1.0.5" } }, - "@cosmjs/utils": { - "version": "0.29.5", - "resolved": "https://registry.npmjs.org/@cosmjs/utils/-/utils-0.29.5.tgz", - "integrity": "sha512-m7h+RXDUxOzEOGt4P+3OVPX7PuakZT3GBmaM/Y2u+abN3xZkziykD/NvedYFvvCCdQo714XcGl33bwifS9FZPQ==" - }, - "@esbuild/android-arm": { - "version": "0.17.18", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.17.18.tgz", - "integrity": "sha512-EmwL+vUBZJ7mhFCs5lA4ZimpUH3WMAoqvOIYhVQwdIgSpHC8ImHdsRyhHAVxpDYUSm0lWvd63z0XH1IlImS2Qw==", - "optional": true + "node_modules/map-obj": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.3.0.tgz", + "integrity": "sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, - "@esbuild/android-arm64": { - "version": "0.17.18", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.17.18.tgz", - "integrity": "sha512-/iq0aK0eeHgSC3z55ucMAHO05OIqmQehiGay8eP5l/5l+iEr4EIbh4/MI8xD9qRFjqzgkc0JkX0LculNC9mXBw==", - "optional": true + "node_modules/md5.js": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", + "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", + "dependencies": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } }, - "@esbuild/android-x64": { - "version": "0.17.18", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.17.18.tgz", - "integrity": "sha512-x+0efYNBF3NPW2Xc5bFOSFW7tTXdAcpfEg2nXmxegm4mJuVeS+i109m/7HMiOQ6M12aVGGFlqJX3RhNdYM2lWg==", - "optional": true + "node_modules/memdown": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/memdown/-/memdown-1.4.1.tgz", + "integrity": "sha512-iVrGHZB8i4OQfM155xx8akvG9FIj+ht14DX5CQkCTG4EHzZ3d3sgckIf/Lm9ivZalEsFuEVnWv2B2WZvbrro2w==", + "dev": true, + "dependencies": { + "abstract-leveldown": "~2.7.1", + "functional-red-black-tree": "^1.0.1", + "immediate": "^3.2.3", + "inherits": "~2.0.1", + "ltgt": "~2.2.0", + "safe-buffer": "~5.1.1" + } }, - "@esbuild/darwin-arm64": { - "version": "0.17.18", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.17.18.tgz", - "integrity": "sha512-6tY+djEAdF48M1ONWnQb1C+6LiXrKjmqjzPNPWXhu/GzOHTHX2nh8Mo2ZAmBFg0kIodHhciEgUBtcYCAIjGbjQ==", - "optional": true + "node_modules/memdown/node_modules/abstract-leveldown": { + "version": "2.7.2", + "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-2.7.2.tgz", + "integrity": "sha512-+OVvxH2rHVEhWLdbudP6p0+dNMXu8JA1CbhP19T8paTYAcX7oJ4OVjT+ZUVpv7mITxXHqDMej+GdqXBmXkw09w==", + "dev": true, + "dependencies": { + "xtend": "~4.0.0" + } }, - "@esbuild/darwin-x64": { - "version": "0.17.18", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.17.18.tgz", - "integrity": "sha512-Qq84ykvLvya3dO49wVC9FFCNUfSrQJLbxhoQk/TE1r6MjHo3sFF2tlJCwMjhkBVq3/ahUisj7+EpRSz0/+8+9A==", - "optional": true + "node_modules/memdown/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true }, - "@esbuild/freebsd-arm64": { - "version": "0.17.18", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.17.18.tgz", - "integrity": "sha512-fw/ZfxfAzuHfaQeMDhbzxp9mc+mHn1Y94VDHFHjGvt2Uxl10mT4CDavHm+/L9KG441t1QdABqkVYwakMUeyLRA==", - "optional": true + "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 }, - "@esbuild/freebsd-x64": { - "version": "0.17.18", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.17.18.tgz", - "integrity": "sha512-FQFbRtTaEi8ZBi/A6kxOC0V0E9B/97vPdYjY9NdawyLd4Qk5VD5g2pbWN2VR1c0xhzcJm74HWpObPszWC+qTew==", - "optional": true + "node_modules/merkle-patricia-tree": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/merkle-patricia-tree/-/merkle-patricia-tree-2.3.2.tgz", + "integrity": "sha512-81PW5m8oz/pz3GvsAwbauj7Y00rqm81Tzad77tHBwU7pIAtN+TJnMSOJhxBKflSVYhptMMb9RskhqHqrSm1V+g==", + "dev": true, + "dependencies": { + "async": "^1.4.2", + "ethereumjs-util": "^5.0.0", + "level-ws": "0.0.0", + "levelup": "^1.2.1", + "memdown": "^1.0.0", + "readable-stream": "^2.0.0", + "rlp": "^2.0.0", + "semaphore": ">=1.0.1" + } }, - "@esbuild/linux-arm": { - "version": "0.17.18", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.17.18.tgz", - "integrity": "sha512-jW+UCM40LzHcouIaqv3e/oRs0JM76JfhHjCavPxMUti7VAPh8CaGSlS7cmyrdpzSk7A+8f0hiedHqr/LMnfijg==", - "optional": true + "node_modules/merkle-patricia-tree/node_modules/async": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", + "integrity": "sha512-nSVgobk4rv61R9PUSDtYt7mPVB2olxNR5RWJcAsH676/ef11bUZwvu7+RGYrYauVdDPcO519v68wRhXQtxsV9w==", + "dev": true }, - "@esbuild/linux-arm64": { - "version": "0.17.18", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.17.18.tgz", - "integrity": "sha512-R7pZvQZFOY2sxUG8P6A21eq6q+eBv7JPQYIybHVf1XkQYC+lT7nDBdC7wWKTrbvMXKRaGudp/dzZCwL/863mZQ==", - "optional": true + "node_modules/merkle-patricia-tree/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true }, - "@esbuild/linux-ia32": { - "version": "0.17.18", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.17.18.tgz", - "integrity": "sha512-ygIMc3I7wxgXIxk6j3V00VlABIjq260i967Cp9BNAk5pOOpIXmd1RFQJQX9Io7KRsthDrQYrtcx7QCof4o3ZoQ==", - "optional": true + "node_modules/merkle-patricia-tree/node_modules/ethereumjs-util": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", + "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", + "dev": true, + "dependencies": { + "bn.js": "^4.11.0", + "create-hash": "^1.1.2", + "elliptic": "^6.5.2", + "ethereum-cryptography": "^0.1.3", + "ethjs-util": "^0.1.3", + "rlp": "^2.0.0", + "safe-buffer": "^5.1.1" + } }, - "@esbuild/linux-loong64": { - "version": "0.17.18", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.17.18.tgz", - "integrity": "sha512-bvPG+MyFs5ZlwYclCG1D744oHk1Pv7j8psF5TfYx7otCVmcJsEXgFEhQkbhNW8otDHL1a2KDINW20cfCgnzgMQ==", - "optional": true + "node_modules/merkle-patricia-tree/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true }, - "@esbuild/linux-mips64el": { - "version": "0.17.18", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.17.18.tgz", - "integrity": "sha512-oVqckATOAGuiUOa6wr8TXaVPSa+6IwVJrGidmNZS1cZVx0HqkTMkqFGD2HIx9H1RvOwFeWYdaYbdY6B89KUMxA==", - "optional": true + "node_modules/merkle-patricia-tree/node_modules/readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dev": true, + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } }, - "@esbuild/linux-ppc64": { - "version": "0.17.18", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.17.18.tgz", - "integrity": "sha512-3dLlQO+b/LnQNxgH4l9rqa2/IwRJVN9u/bK63FhOPB4xqiRqlQAU0qDU3JJuf0BmaH0yytTBdoSBHrb2jqc5qQ==", - "optional": true + "node_modules/merkle-patricia-tree/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true }, - "@esbuild/linux-riscv64": { - "version": "0.17.18", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.17.18.tgz", - "integrity": "sha512-/x7leOyDPjZV3TcsdfrSI107zItVnsX1q2nho7hbbQoKnmoeUWjs+08rKKt4AUXju7+3aRZSsKrJtaRmsdL1xA==", - "optional": true + "node_modules/merkle-patricia-tree/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.1.0" + } }, - "@esbuild/linux-s390x": { - "version": "0.17.18", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.17.18.tgz", - "integrity": "sha512-cX0I8Q9xQkL/6F5zWdYmVf5JSQt+ZfZD2bJudZrWD+4mnUvoZ3TDDXtDX2mUaq6upMFv9FlfIh4Gfun0tbGzuw==", - "optional": true + "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" + } }, - "@esbuild/linux-x64": { - "version": "0.17.18", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.17.18.tgz", - "integrity": "sha512-66RmRsPlYy4jFl0vG80GcNRdirx4nVWAzJmXkevgphP1qf4dsLQCpSKGM3DUQCojwU1hnepI63gNZdrr02wHUA==", - "optional": true + "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==", + "engines": { + "node": ">= 0.6" + } }, - "@esbuild/netbsd-x64": { - "version": "0.17.18", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.17.18.tgz", - "integrity": "sha512-95IRY7mI2yrkLlTLb1gpDxdC5WLC5mZDi+kA9dmM5XAGxCME0F8i4bYH4jZreaJ6lIZ0B8hTrweqG1fUyW7jbg==", - "optional": true + "node_modules/mime-types": { + "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" + }, + "engines": { + "node": ">= 0.6" + } }, - "@esbuild/openbsd-x64": { - "version": "0.17.18", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.17.18.tgz", - "integrity": "sha512-WevVOgcng+8hSZ4Q3BKL3n1xTv5H6Nb53cBrtzzEjDbbnOmucEVcZeGCsCOi9bAOcDYEeBZbD2SJNBxlfP3qiA==", - "optional": true + "node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true, + "engines": { + "node": ">=6" + } }, - "@esbuild/sunos-x64": { - "version": "0.17.18", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.17.18.tgz", - "integrity": "sha512-Rzf4QfQagnwhQXVBS3BYUlxmEbcV7MY+BH5vfDZekU5eYpcffHSyjU8T0xucKVuOcdCsMo+Ur5wmgQJH2GfNrg==", - "optional": true + "node_modules/mimic-response": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", + "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", + "engines": { + "node": ">=4" + } }, - "@esbuild/win32-arm64": { - "version": "0.17.18", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.17.18.tgz", - "integrity": "sha512-Kb3Ko/KKaWhjeAm2YoT/cNZaHaD1Yk/pa3FTsmqo9uFh1D1Rfco7BBLIPdDOozrObj2sahslFuAQGvWbgWldAg==", - "optional": true + "node_modules/min-document": { + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/min-document/-/min-document-2.19.0.tgz", + "integrity": "sha512-9Wy1B3m3f66bPPmU5hdA4DR4PB2OfDU/+GS3yAB7IQozE3tqXaVv2zOjgla7MEGSRv95+ILmOuvhLkOK6wJtCQ==", + "dev": true, + "dependencies": { + "dom-walk": "^0.1.0" + } }, - "@esbuild/win32-ia32": { - "version": "0.17.18", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.17.18.tgz", - "integrity": "sha512-0/xUMIdkVHwkvxfbd5+lfG7mHOf2FRrxNbPiKWg9C4fFrB8H0guClmaM3BFiRUYrznVoyxTIyC/Ou2B7QQSwmw==", - "optional": true + "node_modules/minimalistic-assert": { + "version": "1.0.1", + "license": "ISC" }, - "@esbuild/win32-x64": { - "version": "0.17.18", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.17.18.tgz", - "integrity": "sha512-qU25Ma1I3NqTSHJUOKi9sAH1/Mzuvlke0ioMJRthLXKm7JiSKVwFghlGbDLOO2sARECGhja4xYfRAZNPAkooYg==", - "optional": true + "node_modules/minimalistic-crypto-utils": { + "version": "1.0.1", + "license": "MIT" }, - "@ethereumjs/common": { - "version": "2.6.5", - "resolved": "https://registry.npmjs.org/@ethereumjs/common/-/common-2.6.5.tgz", - "integrity": "sha512-lRyVQOeCDaIVtgfbowla32pzeDv2Obr8oR8Put5RdUBNRGr1VGPGQNGP6elWIpgK3YdpzqTOh4GyUGOureVeeA==", - "requires": { - "crc-32": "^1.2.0", - "ethereumjs-util": "^7.1.5" + "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": "*" } }, - "@ethereumjs/tx": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/@ethereumjs/tx/-/tx-3.5.2.tgz", - "integrity": "sha512-gQDNJWKrSDGu2w7w0PzVXVBNMzb7wwdDOmOqczmhNjqFxFuIbhVJDwiGEnxFNC2/b8ifcZzY7MLcluizohRzNw==", - "requires": { - "@ethereumjs/common": "^2.6.4", - "ethereumjs-util": "^7.1.5" + "node_modules/minimist": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.7.tgz", + "integrity": "sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==", + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "@ethersproject/abi": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/abi/-/abi-5.7.0.tgz", - "integrity": "sha512-351ktp42TiRcYB3H1OP8yajPeAQstMW/yCFokj/AthP9bLHzQFPlOrxOcwYEDkUAICmOHljvN4K39OMTMUa9RA==", - "requires": { - "@ethersproject/address": "^5.7.0", - "@ethersproject/bignumber": "^5.7.0", - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/constants": "^5.7.0", - "@ethersproject/hash": "^5.7.0", - "@ethersproject/keccak256": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/properties": "^5.7.0", - "@ethersproject/strings": "^5.7.0" + "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" } }, - "@ethersproject/abstract-provider": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/abstract-provider/-/abstract-provider-5.7.0.tgz", - "integrity": "sha512-R41c9UkchKCpAqStMYUpdunjo3pkEvZC3FAwZn5S5MGbXoMQOHIdHItezTETxAO5bevtMApSyEhn9+CHcDsWBw==", - "requires": { - "@ethersproject/bignumber": "^5.7.0", - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/networks": "^5.7.0", - "@ethersproject/properties": "^5.7.0", - "@ethersproject/transactions": "^5.7.0", - "@ethersproject/web": "^5.7.0" - } + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" }, - "@ethersproject/abstract-signer": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/abstract-signer/-/abstract-signer-5.7.0.tgz", - "integrity": "sha512-a16V8bq1/Cz+TGCkE2OPMTOUDLS3grCpdjoJCYNnVBbdYEMSgKrU0+B90s8b6H+ByYTBZN7a3g76jdIJi7UfKQ==", - "requires": { - "@ethersproject/abstract-provider": "^5.7.0", - "@ethersproject/bignumber": "^5.7.0", - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/properties": "^5.7.0" + "node_modules/mustache": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/mustache/-/mustache-4.2.0.tgz", + "integrity": "sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ==", + "bin": { + "mustache": "bin/mustache" } }, - "@ethersproject/address": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/address/-/address-5.7.0.tgz", - "integrity": "sha512-9wYhYt7aghVGo758POM5nqcOMaE168Q6aRLJZwUmiqSrAungkG74gSSeKEIR7ukixesdRZGPgVqme6vmxs1fkA==", - "requires": { - "@ethersproject/bignumber": "^5.7.0", - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/keccak256": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/rlp": "^5.7.0" - } + "node_modules/nan": { + "version": "2.15.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.15.0.tgz", + "integrity": "sha512-8ZtvEnA2c5aYCZYd1cvgdnU6cqwixRoYg70xPLWUws5ORTa/lnw+u4amixRS/Ac5U5mQVgp9pnlSUnbNWFaWZQ==" }, - "@ethersproject/base64": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/base64/-/base64-5.7.0.tgz", - "integrity": "sha512-Dr8tcHt2mEbsZr/mwTPIQAf3Ai0Bks/7gTw9dSqk1mQvhW3XvRlmDJr/4n+wg1JmCl16NZue17CDh8xb/vZ0sQ==", - "requires": { - "@ethersproject/bytes": "^5.7.0" - } + "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 }, - "@ethersproject/basex": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/basex/-/basex-5.7.0.tgz", - "integrity": "sha512-ywlh43GwZLv2Voc2gQVTKBoVQ1mti3d8HK5aMxsfu/nRDnMmNqaSJ3r3n85HBByT8OpoY96SXM1FogC533T4zw==", - "requires": { - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/properties": "^5.7.0" + "node_modules/near-api-js": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/near-api-js/-/near-api-js-1.0.0.tgz", + "integrity": "sha512-OYItaQIYlKK27FG5PrqqtkTI8Vv9TEOCi7gXePYigS4o6WofXciAXNjr4sihDJ8Vzi6s7+eEkf3zTNP3042FBw==", + "dependencies": { + "bn.js": "5.2.1", + "borsh": "^0.7.0", + "bs58": "^4.0.0", + "depd": "^2.0.0", + "error-polyfill": "^0.1.3", + "http-errors": "^1.7.2", + "js-sha256": "^0.9.0", + "mustache": "^4.0.0", + "node-fetch": "^2.6.1", + "text-encoding-utf-8": "^1.0.2", + "tweetnacl": "^1.0.1" } }, - "@ethersproject/bignumber": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/bignumber/-/bignumber-5.7.0.tgz", - "integrity": "sha512-n1CAdIHRWjSucQO3MC1zPSVgV/6dy/fjL9pMrPP9peL+QxEg9wOsVqwD4+818B6LUEtaXzVHQiuivzRoxPxUGw==", - "requires": { - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "bn.js": "^5.2.1" + "node_modules/near-api-js/node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "engines": { + "node": ">= 0.8" } }, - "@ethersproject/bytes": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/bytes/-/bytes-5.7.0.tgz", - "integrity": "sha512-nsbxwgFXWh9NyYWo+U8atvmMsSdKJprTcICAkvbBffT75qDocbuggBU0SJiVK2MuTrp0q+xvLkTnGMPK1+uA9A==", - "requires": { - "@ethersproject/logger": "^5.7.0" + "node_modules/near-hd-key": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/near-hd-key/-/near-hd-key-1.2.1.tgz", + "integrity": "sha512-SIrthcL5Wc0sps+2e1xGj3zceEa68TgNZDLuCx0daxmfTP7sFTB3/mtE2pYhlFsCxWoMn+JfID5E1NlzvvbRJg==", + "dependencies": { + "bip39": "3.0.2", + "create-hmac": "1.1.7", + "tweetnacl": "1.0.3" } }, - "@ethersproject/constants": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/constants/-/constants-5.7.0.tgz", - "integrity": "sha512-DHI+y5dBNvkpYUMiRQyxRBYBefZkJfo70VUkUAsRjcPs47muV9evftfZ0PJVCXYbAiCgght0DtcF9srFQmIgWA==", - "requires": { - "@ethersproject/bignumber": "^5.7.0" - } + "node_modules/near-hd-key/node_modules/@types/node": { + "version": "11.11.6", + "resolved": "https://registry.npmjs.org/@types/node/-/node-11.11.6.tgz", + "integrity": "sha512-Exw4yUWMBXM3X+8oqzJNRqZSwUAaS4+7NdvHqQuFi/d+synz++xmX3QIf+BFqneW8N31R8Ky+sikfZUXq07ggQ==" }, - "@ethersproject/contracts": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/contracts/-/contracts-5.7.0.tgz", - "integrity": "sha512-5GJbzEU3X+d33CdfPhcyS+z8MzsTrBGk/sc+G+59+tPa9yFkl6HQ9D6L0QMgNTA9q8dT0XKxxkyp883XsQvbbg==", - "requires": { - "@ethersproject/abi": "^5.7.0", - "@ethersproject/abstract-provider": "^5.7.0", - "@ethersproject/abstract-signer": "^5.7.0", - "@ethersproject/address": "^5.7.0", - "@ethersproject/bignumber": "^5.7.0", - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/constants": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/properties": "^5.7.0", - "@ethersproject/transactions": "^5.7.0" + "node_modules/near-hd-key/node_modules/bip39": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/bip39/-/bip39-3.0.2.tgz", + "integrity": "sha512-J4E1r2N0tUylTKt07ibXvhpT2c5pyAFgvuA5q1H9uDy6dEGpjV8jmymh3MTYJDLCNbIVClSB9FbND49I6N24MQ==", + "dependencies": { + "@types/node": "11.11.6", + "create-hash": "^1.1.0", + "pbkdf2": "^3.0.9", + "randombytes": "^2.0.1" } }, - "@ethersproject/hash": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/hash/-/hash-5.7.0.tgz", - "integrity": "sha512-qX5WrQfnah1EFnO5zJv1v46a8HW0+E5xuBBDTwMFZLuVTx0tbU2kkx15NqdjxecrLGatQN9FGQKpb1FKdHCt+g==", - "requires": { - "@ethersproject/abstract-signer": "^5.7.0", - "@ethersproject/address": "^5.7.0", - "@ethersproject/base64": "^5.7.0", - "@ethersproject/bignumber": "^5.7.0", - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/keccak256": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/properties": "^5.7.0", - "@ethersproject/strings": "^5.7.0" + "node_modules/near-seed-phrase": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/near-seed-phrase/-/near-seed-phrase-0.2.0.tgz", + "integrity": "sha512-NpmrnejpY1AdlRpDZ0schJQJtfBaoUheRfiYtQpcq9TkwPgqKZCRULV5L3hHmLc0ep7KRtikbPQ9R2ztN/3cyQ==", + "dependencies": { + "bip39-light": "^1.0.7", + "bs58": "^4.0.1", + "near-hd-key": "^1.2.1", + "tweetnacl": "^1.0.2" } }, - "@ethersproject/hdnode": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/hdnode/-/hdnode-5.7.0.tgz", - "integrity": "sha512-OmyYo9EENBPPf4ERhR7oj6uAtUAhYGqOnIS+jE5pTXvdKBS99ikzq1E7Iv0ZQZ5V36Lqx1qZLeak0Ra16qpeOg==", - "requires": { - "@ethersproject/abstract-signer": "^5.7.0", - "@ethersproject/basex": "^5.7.0", - "@ethersproject/bignumber": "^5.7.0", - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/pbkdf2": "^5.7.0", - "@ethersproject/properties": "^5.7.0", - "@ethersproject/sha2": "^5.7.0", - "@ethersproject/signing-key": "^5.7.0", - "@ethersproject/strings": "^5.7.0", - "@ethersproject/transactions": "^5.7.0", - "@ethersproject/wordlists": "^5.7.0" + "node_modules/no-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", + "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", + "dependencies": { + "lower-case": "^2.0.2", + "tslib": "^2.0.3" } }, - "@ethersproject/json-wallets": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/json-wallets/-/json-wallets-5.7.0.tgz", - "integrity": "sha512-8oee5Xgu6+RKgJTkvEMl2wDgSPSAQ9MB/3JYjFV9jlKvcYHUXZC+cQp0njgmxdHkYWn8s6/IqIZYm0YWCjO/0g==", - "requires": { - "@ethersproject/abstract-signer": "^5.7.0", - "@ethersproject/address": "^5.7.0", - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/hdnode": "^5.7.0", - "@ethersproject/keccak256": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/pbkdf2": "^5.7.0", - "@ethersproject/properties": "^5.7.0", - "@ethersproject/random": "^5.7.0", - "@ethersproject/strings": "^5.7.0", - "@ethersproject/transactions": "^5.7.0", - "aes-js": "3.0.0", - "scrypt-js": "3.0.1" + "node_modules/node-addon-api": { + "version": "2.0.2", + "license": "MIT" + }, + "node_modules/node-fetch": { + "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" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } } }, - "@ethersproject/keccak256": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/keccak256/-/keccak256-5.7.0.tgz", - "integrity": "sha512-2UcPboeL/iW+pSg6vZ6ydF8tCnv3Iu/8tUmLLzWWGzxWKFFqOBQFLo6uLUv6BDrLgCDfN28RJ/wtByx+jZ4KBg==", - "requires": { - "@ethersproject/bytes": "^5.7.0", - "js-sha3": "0.8.0" + "node_modules/node-gyp-build": { + "version": "4.2.3", + "license": "MIT", + "bin": { + "node-gyp-build": "bin.js", + "node-gyp-build-optional": "optional.js", + "node-gyp-build-test": "build-test.js" } }, - "@ethersproject/logger": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/logger/-/logger-5.7.0.tgz", - "integrity": "sha512-0odtFdXu/XHtjQXJYA3u9G0G8btm0ND5Cu8M7i5vhEcE8/HmF4Lbdqanwyv4uQTr2tx6b7fQRmgLrsnpQlmnig==" + "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 }, - "@ethersproject/networks": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/@ethersproject/networks/-/networks-5.7.1.tgz", - "integrity": "sha512-n/MufjFYv3yFcUyfhnXotyDlNdFb7onmkSy8aQERi2PjNcnWQ66xXxa3XlS8nCcA8aJKJjIIMNJTC7tu80GwpQ==", - "requires": { - "@ethersproject/logger": "^5.7.0" + "node_modules/node-releases": { + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", + "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==", + "dev": true + }, + "node_modules/noms": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/noms/-/noms-0.0.0.tgz", + "integrity": "sha512-lNDU9VJaOPxUmXcLb+HQFeUgQQPtMI24Gt6hgfuMHRJgMRHMF/qZ4HJD3GDru4sSw9IQl2jPjAYnQrdIeLbwow==", + "dependencies": { + "inherits": "^2.0.1", + "readable-stream": "~1.0.31" } }, - "@ethersproject/pbkdf2": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/pbkdf2/-/pbkdf2-5.7.0.tgz", - "integrity": "sha512-oR/dBRZR6GTyaofd86DehG72hY6NpAjhabkhxgr3X2FpJtJuodEl2auADWBZfhDHgVCbu3/H/Ocq2uC6dpNjjw==", - "requires": { - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/sha2": "^5.7.0" + "node_modules/noms/node_modules/readable-stream": { + "version": "1.0.34", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", + "integrity": "sha512-ok1qVCJuRkNmvebYikljxJA/UEsKwLl2nI1OmaqAu4/UE+h0wKCHok4XkL/gvi39OacXvw59RJUOFUkDib2rHg==", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" } }, - "@ethersproject/properties": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/properties/-/properties-5.7.0.tgz", - "integrity": "sha512-J87jy8suntrAkIZtecpxEPxY//szqr1mlBaYlQ0r4RCaiD2hjheqF9s1LVE8vVuJCXisjIP+JgtK/Do54ej4Sw==", - "requires": { - "@ethersproject/logger": "^5.7.0" + "node_modules/noms/node_modules/string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==" + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "engines": { + "node": ">=0.10.0" } }, - "@ethersproject/providers": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/@ethersproject/providers/-/providers-5.7.2.tgz", - "integrity": "sha512-g34EWZ1WWAVgr4aptGlVBF8mhl3VWjv+8hoAnzStu8Ah22VHBsuGzP17eb6xDVRzw895G4W7vvx60lFFur/1Rg==", - "requires": { - "@ethersproject/abstract-provider": "^5.7.0", - "@ethersproject/abstract-signer": "^5.7.0", - "@ethersproject/address": "^5.7.0", - "@ethersproject/base64": "^5.7.0", - "@ethersproject/basex": "^5.7.0", - "@ethersproject/bignumber": "^5.7.0", - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/constants": "^5.7.0", - "@ethersproject/hash": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/networks": "^5.7.0", - "@ethersproject/properties": "^5.7.0", - "@ethersproject/random": "^5.7.0", - "@ethersproject/rlp": "^5.7.0", - "@ethersproject/sha2": "^5.7.0", - "@ethersproject/strings": "^5.7.0", - "@ethersproject/transactions": "^5.7.0", - "@ethersproject/web": "^5.7.0", - "bech32": "1.1.4", - "ws": "7.4.6" + "node_modules/normalize-url": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", + "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==", + "engines": { + "node": ">=10" }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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": { - "ws": { - "version": "7.4.6", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz", - "integrity": "sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==", - "requires": {} - } + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" } }, - "@ethersproject/random": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/random/-/random-5.7.0.tgz", - "integrity": "sha512-19WjScqRA8IIeWclFme75VMXSBvi4e6InrUNuaR4s5pTF2qNhcGdCUwdxUVGtDDqC00sDLCO93jPQoDUH4HVmQ==", - "requires": { - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/logger": "^5.7.0" + "node_modules/o3": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/o3/-/o3-1.0.3.tgz", + "integrity": "sha512-f+4n+vC6s4ysy7YO7O2gslWZBUu8Qj2i2OUJOvjRxQva7jVjYjB29jrr9NCjmxZQR0gzrOcv1RnqoYOeMs5VRQ==", + "dependencies": { + "capability": "^0.2.5" } }, - "@ethersproject/rlp": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/rlp/-/rlp-5.7.0.tgz", - "integrity": "sha512-rBxzX2vK8mVF7b0Tol44t5Tb8gomOHkj5guL+HhzQ1yBh/ydjGnpw6at+X6Iw0Kp3OzzzkcKp8N9r0W4kYSs9w==", - "requires": { - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/logger": "^5.7.0" + "node_modules/oauth-sign": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", + "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", + "dev": true, + "engines": { + "node": "*" } }, - "@ethersproject/sha2": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/sha2/-/sha2-5.7.0.tgz", - "integrity": "sha512-gKlH42riwb3KYp0reLsFTokByAKoJdgFCwI+CCiX/k+Jm2mbNs6oOaCjYQSlI1+XBVejwH2KrmCbMAT/GnRDQw==", - "requires": { - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "hash.js": "1.1.7" - } - }, - "@ethersproject/signing-key": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/signing-key/-/signing-key-5.7.0.tgz", - "integrity": "sha512-MZdy2nL3wO0u7gkB4nA/pEf8lu1TlFswPNmy8AiYkfKTdO6eXBJyUdmHO/ehm/htHw9K/qF8ujnTyUAD+Ry54Q==", - "requires": { - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/properties": "^5.7.0", - "bn.js": "^5.2.1", - "elliptic": "6.5.4", - "hash.js": "1.1.7" + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "engines": { + "node": ">=0.10.0" } }, - "@ethersproject/solidity": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/solidity/-/solidity-5.7.0.tgz", - "integrity": "sha512-HmabMd2Dt/raavyaGukF4XxizWKhKQ24DoLtdNbBmNKUOPqwjsKQSdV9GQtj9CBEea9DlzETlVER1gYeXXBGaA==", - "requires": { - "@ethersproject/bignumber": "^5.7.0", - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/keccak256": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/sha2": "^5.7.0", - "@ethersproject/strings": "^5.7.0" + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "engines": { + "node": ">= 0.4" } }, - "@ethersproject/strings": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/strings/-/strings-5.7.0.tgz", - "integrity": "sha512-/9nu+lj0YswRNSH0NXYqrh8775XNyEdUQAuf3f+SmOrnVewcJ5SBNAjF7lpgehKi4abvNNXyf+HX86czCdJ8Mg==", - "requires": { - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/constants": "^5.7.0", - "@ethersproject/logger": "^5.7.0" + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dependencies": { + "wrappy": "1" } }, - "@ethersproject/transactions": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/transactions/-/transactions-5.7.0.tgz", - "integrity": "sha512-kmcNicCp1lp8qanMTC3RIikGgoJ80ztTyvtsFvCYpSCfkjhD0jZ2LOrnbcuxuToLIUYYf+4XwD1rP+B/erDIhQ==", - "requires": { - "@ethersproject/address": "^5.7.0", - "@ethersproject/bignumber": "^5.7.0", - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/constants": "^5.7.0", - "@ethersproject/keccak256": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/properties": "^5.7.0", - "@ethersproject/rlp": "^5.7.0", - "@ethersproject/signing-key": "^5.7.0" + "node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "@ethersproject/units": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/units/-/units-5.7.0.tgz", - "integrity": "sha512-pD3xLMy3SJu9kG5xDGI7+xhTEmGXlEqXU4OfNapmfnxLVY4EMSSRp7j1k7eezutBPH7RBN/7QPnwR7hzNlEFeg==", - "requires": { - "@ethersproject/bignumber": "^5.7.0", - "@ethersproject/constants": "^5.7.0", - "@ethersproject/logger": "^5.7.0" + "node_modules/optimism": { + "version": "0.16.1", + "resolved": "https://registry.npmjs.org/optimism/-/optimism-0.16.1.tgz", + "integrity": "sha512-64i+Uw3otrndfq5kaoGNoY7pvOhSsjFEN4bdEFh80MWVk/dbgJfMv7VFDeCT8LxNAlEVhQmdVEbfE7X2nWNIIg==", + "dependencies": { + "@wry/context": "^0.6.0", + "@wry/trie": "^0.3.0" } }, - "@ethersproject/wallet": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/wallet/-/wallet-5.7.0.tgz", - "integrity": "sha512-MhmXlJXEJFBFVKrDLB4ZdDzxcBxQ3rLyCkhNqVu3CDYvR97E+8r01UgrI+TI99Le+aYm/in/0vp86guJuM7FCA==", - "requires": { - "@ethersproject/abstract-provider": "^5.7.0", - "@ethersproject/abstract-signer": "^5.7.0", - "@ethersproject/address": "^5.7.0", - "@ethersproject/bignumber": "^5.7.0", - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/hash": "^5.7.0", - "@ethersproject/hdnode": "^5.7.0", - "@ethersproject/json-wallets": "^5.7.0", - "@ethersproject/keccak256": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/properties": "^5.7.0", - "@ethersproject/random": "^5.7.0", - "@ethersproject/signing-key": "^5.7.0", - "@ethersproject/transactions": "^5.7.0", - "@ethersproject/wordlists": "^5.7.0" + "node_modules/optimism/node_modules/@wry/context": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/@wry/context/-/context-0.6.1.tgz", + "integrity": "sha512-LOmVnY1iTU2D8tv4Xf6MVMZZ+juIJ87Kt/plMijjN20NMAXGmH4u8bS1t0uT74cZ5gwpocYueV58YwyI8y+GKw==", + "dependencies": { + "tslib": "^2.3.0" + }, + "engines": { + "node": ">=8" } }, - "@ethersproject/web": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/@ethersproject/web/-/web-5.7.1.tgz", - "integrity": "sha512-Gueu8lSvyjBWL4cYsWsjh6MtMwM0+H4HvqFPZfB6dV8ctbP9zFAO73VG1cMWae0FLPCtz0peKPpZY8/ugJJX2w==", - "requires": { - "@ethersproject/base64": "^5.7.0", - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/properties": "^5.7.0", - "@ethersproject/strings": "^5.7.0" + "node_modules/p-cancelable": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.1.1.tgz", + "integrity": "sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==", + "engines": { + "node": ">=8" } }, - "@ethersproject/wordlists": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/wordlists/-/wordlists-5.7.0.tgz", - "integrity": "sha512-S2TFNJNfHWVHNE6cNDjbVlZ6MgE17MIxMbMg2zv3wn+3XSJGosL1m9ZVv3GXCf/2ymSsQ+hRI5IzoMJTG6aoVA==", - "requires": { - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/hash": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/properties": "^5.7.0", - "@ethersproject/strings": "^5.7.0" + "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==", + "dev": true, + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "@graphql-typed-document-node/core": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@graphql-typed-document-node/core/-/core-3.1.1.tgz", - "integrity": "sha512-NQ17ii0rK1b34VZonlmT2QMJFI70m0TRwbknO/ihlbatXyaktDhN/98vBiUU6kNBPljqGqyIrl2T4nY2RpFANg==", - "requires": {} - }, - "@improbable-eng/grpc-web": { - "version": "0.14.1", - "resolved": "https://registry.npmjs.org/@improbable-eng/grpc-web/-/grpc-web-0.14.1.tgz", - "integrity": "sha512-XaIYuunepPxoiGVLLHmlnVminUGzBTnXr8Wv7khzmLWbNw4TCwJKX09GSMJlKhu/TRk6gms0ySFxewaETSBqgw==", - "requires": { - "browser-headers": "^0.4.1" + "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" } }, - "@improbable-eng/grpc-web-node-http-transport": { - "version": "0.15.0", - "resolved": "https://registry.npmjs.org/@improbable-eng/grpc-web-node-http-transport/-/grpc-web-node-http-transport-0.15.0.tgz", - "integrity": "sha512-HLgJfVolGGpjc9DWPhmMmXJx8YGzkek7jcCFO1YYkSOoO81MWRZentPOd/JiKiZuU08wtc4BG+WNuGzsQB5jZA==", - "requires": {} - }, - "@injectivelabs/core-proto-ts": { - "version": "0.0.14", - "resolved": "https://registry.npmjs.org/@injectivelabs/core-proto-ts/-/core-proto-ts-0.0.14.tgz", - "integrity": "sha512-NZWlgBzgVrXow9IknFQHvcYKX4QkUD25taRigoNYQK8PDn4+VXd9xM5WFUDRhzm2smTCguyl/+MghpEp4oTPWw==", - "requires": { - "@injectivelabs/grpc-web": "^0.0.1", - "google-protobuf": "^3.14.0", - "protobufjs": "^7.0.0", - "rxjs": "^7.4.0" - }, + "node_modules/p-locate/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, "dependencies": { - "long": { - "version": "5.2.3", - "resolved": "https://registry.npmjs.org/long/-/long-5.2.3.tgz", - "integrity": "sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q==" - }, - "protobufjs": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.2.3.tgz", - "integrity": "sha512-TtpvOqwB5Gdz/PQmOjgsrGH1nHjAQVCN7JG4A6r1sXRWESL5rNMAiRcBQlCAdKxZcAbstExQePYG8xof/JVRgg==", - "requires": { - "@protobufjs/aspromise": "^1.1.2", - "@protobufjs/base64": "^1.1.2", - "@protobufjs/codegen": "^2.0.4", - "@protobufjs/eventemitter": "^1.1.0", - "@protobufjs/fetch": "^1.1.0", - "@protobufjs/float": "^1.0.2", - "@protobufjs/inquire": "^1.1.0", - "@protobufjs/path": "^1.1.2", - "@protobufjs/pool": "^1.1.0", - "@protobufjs/utf8": "^1.1.0", - "@types/node": ">=13.7.0", - "long": "^5.0.0" - } - } + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "@injectivelabs/exceptions": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/@injectivelabs/exceptions/-/exceptions-1.11.0.tgz", - "integrity": "sha512-jZ0N4cP1KCyErNEiCARaKt70E8KMTNa9R4a5FrCERX4cFKPxdbWpoQ8Lqga2jfHAgiFcChRJ5JmaSYclFtKf9w==", - "requires": { - "@injectivelabs/grpc-web": "^0.0.1", - "@injectivelabs/ts-types": "^1.11.0", - "http-status-codes": "^2.2.0", - "link-module-alias": "^1.2.0", - "shx": "^0.3.2" + "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" } }, - "@injectivelabs/grpc-web": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/@injectivelabs/grpc-web/-/grpc-web-0.0.1.tgz", - "integrity": "sha512-Pu5YgaZp+OvR5UWfqbrPdHer3+gDf+b5fQoY+t2VZx1IAVHX8bzbN9EreYTvTYtFeDpYRWM8P7app2u4EX5wTw==", - "requires": { - "browser-headers": "^0.4.1" - } + "node_modules/pako": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/pako/-/pako-2.1.0.tgz", + "integrity": "sha512-w+eufiZ1WuJYgPXbV/PO3NCMEc3xqylkKHzp8bxp1uW4qaSNQUkwmLLEc3kKsfz8lpV1F8Ht3U1Cm+9Srog2ug==" + }, + "node_modules/parse-headers": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/parse-headers/-/parse-headers-2.0.5.tgz", + "integrity": "sha512-ft3iAoLOB/MlwbNXgzy43SWGP6sQki2jQvAyBg/zDFAgr9bfNWZIUj42Kw2eJIl8kEi4PbgE6U1Zau/HwI75HA==", + "dev": true + }, + "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/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==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "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==" + }, + "node_modules/pbkdf2": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz", + "integrity": "sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==", + "dependencies": { + "create-hash": "^1.1.2", + "create-hmac": "^1.1.4", + "ripemd160": "^2.0.1", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + }, + "engines": { + "node": ">=0.12" + } + }, + "node_modules/performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==", + "dev": true + }, + "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 + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/pirates": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", + "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", + "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/precond": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/precond/-/precond-0.2.3.tgz", + "integrity": "sha512-QCYG84SgGyGzqJ/vlMsxeXd/pgL/I94ixdNFyh1PusWmTCyVfPJjZ1K1jvHtsbfnXQs2TSkEP2fR7QiMZAnKFQ==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/pretty-format": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", + "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", + "dev": true, + "dependencies": { + "@jest/schemas": "^29.6.3", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.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/pretty-format/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 + }, + "node_modules/printj": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/printj/-/printj-1.1.2.tgz", + "integrity": "sha512-zA2SmoLaxZyArQTOPj5LXecR+RagfPSU5Kw1qP+jkWeNlrq+eJZyY2oS68SU1Z/7/myXM4lo9716laOFAVStCQ==", + "bin": { + "printj": "bin/printj.njs" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/process": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==", + "dev": true, + "engines": { + "node": ">= 0.6.0" + } + }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" + }, + "node_modules/promise-to-callback": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/promise-to-callback/-/promise-to-callback-1.0.0.tgz", + "integrity": "sha512-uhMIZmKM5ZteDMfLgJnoSq9GCwsNKrYau73Awf1jIy6/eUcuuZ3P+CD9zUv0kJsIUbU+x6uLNIhXhLHDs1pNPA==", + "dev": true, + "dependencies": { + "is-fn": "^1.0.0", + "set-immediate-shim": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "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" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/prop-types": { + "version": "15.8.1", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", + "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", + "dependencies": { + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.13.1" + } + }, + "node_modules/protobufjs": { + "version": "6.11.3", + "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-6.11.3.tgz", + "integrity": "sha512-xL96WDdCZYdU7Slin569tFX712BxsxslWwAfAhCYjQKGTq7dAU91Lomy6nLLhh/dyGhk/YH4TwTSRxTzhuHyZg==", + "hasInstallScript": true, + "dependencies": { + "@protobufjs/aspromise": "^1.1.2", + "@protobufjs/base64": "^1.1.2", + "@protobufjs/codegen": "^2.0.4", + "@protobufjs/eventemitter": "^1.1.0", + "@protobufjs/fetch": "^1.1.0", + "@protobufjs/float": "^1.0.2", + "@protobufjs/inquire": "^1.1.0", + "@protobufjs/path": "^1.1.2", + "@protobufjs/pool": "^1.1.0", + "@protobufjs/utf8": "^1.1.0", + "@types/long": "^4.0.1", + "@types/node": ">=13.7.0", + "long": "^4.0.0" + }, + "bin": { + "pbjs": "bin/pbjs", + "pbts": "bin/pbts" + } + }, + "node_modules/proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" + }, + "node_modules/prr": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", + "integrity": "sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==", + "dev": true + }, + "node_modules/psl": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz", + "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==", + "dev": true + }, + "node_modules/pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/pure-rand": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-6.1.0.tgz", + "integrity": "sha512-bVWawvoZoBYpp6yIoQtQXHZjmz35RSVHnUOTefl8Vcjr8snTPY1wnpSPMWekcFwbxI6gtmT7rSYPFvz71ldiOA==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/dubzzz" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/fast-check" + } + ] + }, + "node_modules/qs": { + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.3.tgz", + "integrity": "sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==", + "dev": true, + "engines": { + "node": ">=0.6" + } + }, + "node_modules/quick-lru": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", + "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" + }, + "node_modules/readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/readonly-date": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/readonly-date/-/readonly-date-1.0.0.tgz", + "integrity": "sha512-tMKIV7hlk0h4mO3JTmmVuIlJVXjKk3Sep9Bf5OH0O+758ruuVkUy2J9SttDLm91IEX/WHlXPSpxMGjPj4beMIQ==" + }, + "node_modules/rechoir": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", + "integrity": "sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==", + "dependencies": { + "resolve": "^1.1.6" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/regenerator-runtime": { + "version": "0.13.11", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", + "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==" + }, + "node_modules/request": { + "version": "2.88.2", + "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", + "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", + "deprecated": "request has been deprecated, see https://github.com/request/request/issues/3142", + "dev": true, + "dependencies": { + "aws-sign2": "~0.7.0", + "aws4": "^1.8.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", + "forever-agent": "~0.6.1", + "form-data": "~2.3.2", + "har-validator": "~5.1.3", + "http-signature": "~1.2.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.19", + "oauth-sign": "~0.9.0", + "performance-now": "^2.1.0", + "qs": "~6.5.2", + "safe-buffer": "^5.1.2", + "tough-cookie": "~2.5.0", + "tunnel-agent": "^0.6.0", + "uuid": "^3.3.2" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/resolve": { + "version": "1.20.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz", + "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==", + "dependencies": { + "is-core-module": "^2.2.0", + "path-parse": "^1.0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-alpn": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz", + "integrity": "sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==" + }, + "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-pkg-maps": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz", + "integrity": "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==", + "dev": true, + "funding": { + "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1" + } + }, + "node_modules/resolve.exports": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.2.tgz", + "integrity": "sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/response-iterator": { + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/response-iterator/-/response-iterator-0.2.6.tgz", + "integrity": "sha512-pVzEEzrsg23Sh053rmDUvLSkGXluZio0qu8VT6ukrYuvtjVfCbDZH9d6PGXb8HZfzdNZt8feXv/jvUzlhRgLnw==", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/responselike": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-2.0.1.tgz", + "integrity": "sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw==", + "dependencies": { + "lowercase-keys": "^2.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ripemd160": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", + "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", + "dependencies": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1" + } + }, + "node_modules/ripemd160-min": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/ripemd160-min/-/ripemd160-min-0.0.6.tgz", + "integrity": "sha512-+GcJgQivhs6S9qvLogusiTcS9kQUfgR75whKuy5jIhuiOfQuJ8fjqxV6EGD5duH1Y/FawFUMtMhyeq3Fbnib8A==", + "engines": { + "node": ">=8" + } + }, + "node_modules/rlp": { + "version": "2.2.6", + "resolved": "https://registry.npmjs.org/rlp/-/rlp-2.2.6.tgz", + "integrity": "sha512-HAfAmL6SDYNWPUOJNrM500x4Thn4PZsEy5pijPh40U9WfNk0z15hUYzO9xVIMAdIHdFtD8CBDHd75Td1g36Mjg==", + "dependencies": { + "bn.js": "^4.11.1" + }, + "bin": { + "rlp": "bin/rlp" + } + }, + "node_modules/rlp/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + }, + "node_modules/rpc-websockets": { + "version": "7.5.1", + "resolved": "https://registry.npmjs.org/rpc-websockets/-/rpc-websockets-7.5.1.tgz", + "integrity": "sha512-kGFkeTsmd37pHPMaHIgN1LVKXMi0JD782v4Ds9ZKtLlwdTKjn+CxM9A9/gLT2LaOuEcEFGL98h1QWQtlOIdW0w==", + "dependencies": { + "@babel/runtime": "^7.17.2", + "eventemitter3": "^4.0.7", + "uuid": "^8.3.2", + "ws": "^8.5.0" + }, + "funding": { + "type": "paypal", + "url": "https://paypal.me/kozjak" + }, + "optionalDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + } + }, + "node_modules/rpc-websockets/node_modules/uuid": { + "version": "8.3.2", + "license": "MIT", + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/rpc-websockets/node_modules/ws": { + "version": "8.10.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.10.0.tgz", + "integrity": "sha512-+s49uSmZpvtAsd2h37vIPy1RBusaLawVe8of+GyEPsaJTCMpj/2v8NpeK1SHXjBlQ95lQTmQofOJnFiLoaN3yw==", + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/rustbn.js": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/rustbn.js/-/rustbn.js-0.2.0.tgz", + "integrity": "sha512-4VlvkRUuCJvr2J6Y0ImW7NvTCriMi7ErOAqWk1y69vAdoNIzCF3yPmgeNzx+RQTLEDFq5sHfscn1MwHxP9hNfA==", + "dev": true + }, + "node_modules/rxjs": { + "version": "7.8.0", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.0.tgz", + "integrity": "sha512-F2+gxDshqmIub1KdvZkaEfGDwLNpPvk9Fs6LD/MyQxNgMds/WH9OdDDXOmxUZpME+iSK3rQCctkL0DYyytUqMg==", + "dependencies": { + "tslib": "^2.1.0" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/safe-event-emitter": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/safe-event-emitter/-/safe-event-emitter-1.0.1.tgz", + "integrity": "sha512-e1wFe99A91XYYxoQbcq2ZJUWurxEyP8vfz7A7vuUe1s95q8r5ebraVaA1BukYJcpM6V16ugWoD9vngi8Ccu5fg==", + "deprecated": "Renamed to @metamask/safe-event-emitter", + "dev": true, + "dependencies": { + "events": "^3.0.0" + } + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "devOptional": true + }, + "node_modules/scrypt-js": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-3.0.1.tgz", + "integrity": "sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA==" + }, + "node_modules/secp256k1": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-4.0.3.tgz", + "integrity": "sha512-NLZVf+ROMxwtEj3Xa562qgv2BK5e2WNmXPiOdVIPLgs6lyTzMvBq0aWTYMI5XCP9jZMVKOcqZLw/Wc4vDkuxhA==", + "hasInstallScript": true, + "dependencies": { + "elliptic": "^6.5.4", + "node-addon-api": "^2.0.0", + "node-gyp-build": "^4.2.0" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/semaphore": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/semaphore/-/semaphore-1.1.0.tgz", + "integrity": "sha512-O4OZEaNtkMd/K0i6js9SL+gqy0ZCBMgUvlSqHKi4IBdjhe7wB8pwztUk1BbZ1fmrvpwFrPbHzqd2w5pTcJH6LA==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "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/set-immediate-shim": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz", + "integrity": "sha512-Li5AOqrZWCVA2n5kryzEmqai6bKSIvpz5oUJHPVj6+dsbD3X1ixtsY5tEnsaNpH3pFAHmG8eIHUrtEtohrg+UQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/setimmediate": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", + "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=" + }, + "node_modules/setprototypeof": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", + "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==" + }, + "node_modules/sha.js": { + "version": "2.4.11", + "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", + "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", + "dependencies": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + }, + "bin": { + "sha.js": "bin.js" + } + }, + "node_modules/sha3": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/sha3/-/sha3-2.1.4.tgz", + "integrity": "sha512-S8cNxbyb0UGUM2VhRD4Poe5N58gJnJsLJ5vC7FYWGUmGhcsj4++WaIOBFVDxlG0W3To6xBuiRh+i0Qp2oNCOtg==", + "dependencies": { + "buffer": "6.0.3" + } + }, + "node_modules/shebang-command": { + "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" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "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" + } + }, + "node_modules/shelljs": { + "version": "0.8.5", + "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.5.tgz", + "integrity": "sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==", + "dependencies": { + "glob": "^7.0.0", + "interpret": "^1.0.0", + "rechoir": "^0.6.2" + }, + "bin": { + "shjs": "bin/shjs" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/shx": { + "version": "0.3.4", + "resolved": "https://registry.npmjs.org/shx/-/shx-0.3.4.tgz", + "integrity": "sha512-N6A9MLVqjxZYcVn8hLmtneQWIJtp8IKzMP4eMnx+nqkvXoqinUPCbUFLp2UcWTEIUONhlk0ewxr/jaVGlc+J+g==", + "dependencies": { + "minimist": "^1.2.3", + "shelljs": "^0.8.5" + }, + "bin": { + "shx": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "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==", + "dev": true + }, + "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" + } + }, + "node_modules/snake-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/snake-case/-/snake-case-3.0.4.tgz", + "integrity": "sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==", + "dependencies": { + "dot-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/snakecase-keys": { + "version": "5.4.4", + "resolved": "https://registry.npmjs.org/snakecase-keys/-/snakecase-keys-5.4.4.tgz", + "integrity": "sha512-YTywJG93yxwHLgrYLZjlC75moVEX04LZM4FHfihjHe1FCXm+QaLOFfSf535aXOAd0ArVQMWUAe8ZPm4VtWyXaA==", + "dependencies": { + "map-obj": "^4.1.0", + "snake-case": "^3.0.4", + "type-fest": "^2.5.2" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-support": { + "version": "0.5.13", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz", + "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==", + "dev": true, + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "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/sshpk": { + "version": "1.17.0", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.17.0.tgz", + "integrity": "sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ==", + "dev": true, + "dependencies": { + "asn1": "~0.2.3", + "assert-plus": "^1.0.0", + "bcrypt-pbkdf": "^1.0.0", + "dashdash": "^1.12.0", + "ecc-jsbn": "~0.1.1", + "getpass": "^0.1.1", + "jsbn": "~0.1.0", + "safer-buffer": "^2.0.2", + "tweetnacl": "~0.14.0" + }, + "bin": { + "sshpk-conv": "bin/sshpk-conv", + "sshpk-sign": "bin/sshpk-sign", + "sshpk-verify": "bin/sshpk-verify" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sshpk/node_modules/tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==", + "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" + } + }, + "node_modules/statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/store2": { + "version": "2.14.2", + "resolved": "https://registry.npmjs.org/store2/-/store2-2.14.2.tgz", + "integrity": "sha512-siT1RiqlfQnGqgT/YzXVUNsom9S0H1OX+dpdGN1xkyYATo4I6sep5NmsRD/40s3IIOvlCq6akxkqG82urIZW1w==" + }, + "node_modules/string_decoder": { + "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" + } + }, + "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", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "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-hex-prefix": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-hex-prefix/-/strip-hex-prefix-1.0.0.tgz", + "integrity": "sha1-DF8VX+8RUTczd96du1iNoFUA428=", + "dependencies": { + "is-hex-prefixed": "1.0.0" + }, + "engines": { + "node": ">=6.5.0", + "npm": ">=3" + } + }, + "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==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/superstruct": { + "version": "0.14.2", + "license": "MIT" + }, + "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==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/symbol-observable": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-4.0.0.tgz", + "integrity": "sha512-b19dMThMV4HVFynSAM1++gBHAbk2Tc/osgLIBZMKsyqh34jb2e8Os7T6ZW/Bt3pJFdBTd2JwAnAAEQV7rSNvcQ==", + "engines": { + "node": ">=0.10" + } + }, + "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, + "dependencies": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/text-encoding-utf-8": { + "version": "1.0.2" + }, + "node_modules/through": { + "version": "2.3.8", + "license": "MIT" + }, + "node_modules/through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dependencies": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + }, + "node_modules/through2/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" + }, + "node_modules/through2/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/through2/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "node_modules/through2/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/tiny-secp256k1": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/tiny-secp256k1/-/tiny-secp256k1-1.1.6.tgz", + "integrity": "sha512-FmqJZGduTyvsr2cF3375fqGHUovSwDi/QytexX1Se4BPuPZpTE5Ftp5fg+EFSuEf3lhZqgCRjEG3ydUQ/aNiwA==", + "hasInstallScript": true, + "dependencies": { + "bindings": "^1.3.0", + "bn.js": "^4.11.8", + "create-hmac": "^1.1.7", + "elliptic": "^6.4.0", + "nan": "^2.13.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/tiny-secp256k1/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + }, + "node_modules/tmp": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz", + "integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==", + "dependencies": { + "rimraf": "^3.0.0" + }, + "engines": { + "node": ">=8.17.0" + } + }, + "node_modules/tmp/node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "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", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/toidentifier": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", + "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/toml": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/toml/-/toml-3.0.0.tgz", + "integrity": "sha512-y/mWCZinnvxjTKYhJ+pYxwD0mRLVvOtdS2Awbgxln6iEnt4rk0yBxeSBHkGJcPucRiG0e55mwWp+g/05rsrd6w==" + }, + "node_modules/tough-cookie": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", + "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", + "dev": true, + "dependencies": { + "psl": "^1.1.28", + "punycode": "^2.1.1" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=" + }, + "node_modules/ts-invariant": { + "version": "0.10.3", + "resolved": "https://registry.npmjs.org/ts-invariant/-/ts-invariant-0.10.3.tgz", + "integrity": "sha512-uivwYcQaxAucv1CzRp2n/QdYPo4ILf9VXgH19zEIjFx2EJufV16P0JtJVpYHy89DItG6Kwj2oIUjrcK5au+4tQ==", + "dependencies": { + "tslib": "^2.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ts-jest": { + "version": "29.1.2", + "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-29.1.2.tgz", + "integrity": "sha512-br6GJoH/WUX4pu7FbZXuWGKGNDuU7b8Uj77g/Sp7puZV6EXzuByl6JrECvm0MzVzSTkSHWTihsXt+5XYER5b+g==", + "dev": true, + "dependencies": { + "bs-logger": "0.x", + "fast-json-stable-stringify": "2.x", + "jest-util": "^29.0.0", + "json5": "^2.2.3", + "lodash.memoize": "4.x", + "make-error": "1.x", + "semver": "^7.5.3", + "yargs-parser": "^21.0.1" + }, + "bin": { + "ts-jest": "cli.js" + }, + "engines": { + "node": "^16.10.0 || ^18.0.0 || >=20.0.0" + }, + "peerDependencies": { + "@babel/core": ">=7.0.0-beta.0 <8", + "@jest/types": "^29.0.0", + "babel-jest": "^29.0.0", + "jest": "^29.0.0", + "typescript": ">=4.3 <6" + }, + "peerDependenciesMeta": { + "@babel/core": { + "optional": true + }, + "@jest/types": { + "optional": true + }, + "babel-jest": { + "optional": true + }, + "esbuild": { + "optional": true + } + } + }, + "node_modules/ts-jest/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==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/ts-jest/node_modules/semver": { + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", + "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/ts-jest/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/ts-jest/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==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/tslib": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", + "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" + }, + "node_modules/tsx": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/tsx/-/tsx-4.12.0.tgz", + "integrity": "sha512-642NAWAbDqPZINjmL32Lh/B+pd8vbVj6LHPsWm09IIHqQuWhCrNfcPTjRlHFWvv3FfM4vt9NLReBIjUNj5ZhDg==", + "dev": true, + "dependencies": { + "esbuild": "~0.20.2", + "get-tsconfig": "^4.7.5" + }, + "bin": { + "tsx": "dist/cli.mjs" + }, + "engines": { + "node": ">=18.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + } + }, + "node_modules/tsx/node_modules/@esbuild/android-arm": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.20.2.tgz", + "integrity": "sha512-t98Ra6pw2VaDhqNWO2Oph2LXbz/EJcnLmKLGBJwEwXX/JAN83Fym1rU8l0JUWK6HkIbWONCSSatf4sf2NBRx/w==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/tsx/node_modules/@esbuild/android-arm64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.20.2.tgz", + "integrity": "sha512-mRzjLacRtl/tWU0SvD8lUEwb61yP9cqQo6noDZP/O8VkwafSYwZ4yWy24kan8jE/IMERpYncRt2dw438LP3Xmg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/tsx/node_modules/@esbuild/android-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.20.2.tgz", + "integrity": "sha512-btzExgV+/lMGDDa194CcUQm53ncxzeBrWJcncOBxuC6ndBkKxnHdFJn86mCIgTELsooUmwUm9FkhSp5HYu00Rg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/tsx/node_modules/@esbuild/darwin-arm64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.20.2.tgz", + "integrity": "sha512-4J6IRT+10J3aJH3l1yzEg9y3wkTDgDk7TSDFX+wKFiWjqWp/iCfLIYzGyasx9l0SAFPT1HwSCR+0w/h1ES/MjA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/tsx/node_modules/@esbuild/darwin-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.20.2.tgz", + "integrity": "sha512-tBcXp9KNphnNH0dfhv8KYkZhjc+H3XBkF5DKtswJblV7KlT9EI2+jeA8DgBjp908WEuYll6pF+UStUCfEpdysA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/tsx/node_modules/@esbuild/freebsd-arm64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.20.2.tgz", + "integrity": "sha512-d3qI41G4SuLiCGCFGUrKsSeTXyWG6yem1KcGZVS+3FYlYhtNoNgYrWcvkOoaqMhwXSMrZRl69ArHsGJ9mYdbbw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/tsx/node_modules/@esbuild/freebsd-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.20.2.tgz", + "integrity": "sha512-d+DipyvHRuqEeM5zDivKV1KuXn9WeRX6vqSqIDgwIfPQtwMP4jaDsQsDncjTDDsExT4lR/91OLjRo8bmC1e+Cw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/tsx/node_modules/@esbuild/linux-arm": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.20.2.tgz", + "integrity": "sha512-VhLPeR8HTMPccbuWWcEUD1Az68TqaTYyj6nfE4QByZIQEQVWBB8vup8PpR7y1QHL3CpcF6xd5WVBU/+SBEvGTg==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/tsx/node_modules/@esbuild/linux-arm64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.20.2.tgz", + "integrity": "sha512-9pb6rBjGvTFNira2FLIWqDk/uaf42sSyLE8j1rnUpuzsODBq7FvpwHYZxQ/It/8b+QOS1RYfqgGFNLRI+qlq2A==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/tsx/node_modules/@esbuild/linux-ia32": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.20.2.tgz", + "integrity": "sha512-o10utieEkNPFDZFQm9CoP7Tvb33UutoJqg3qKf1PWVeeJhJw0Q347PxMvBgVVFgouYLGIhFYG0UGdBumROyiig==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/tsx/node_modules/@esbuild/linux-loong64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.20.2.tgz", + "integrity": "sha512-PR7sp6R/UC4CFVomVINKJ80pMFlfDfMQMYynX7t1tNTeivQ6XdX5r2XovMmha/VjR1YN/HgHWsVcTRIMkymrgQ==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/tsx/node_modules/@esbuild/linux-mips64el": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.20.2.tgz", + "integrity": "sha512-4BlTqeutE/KnOiTG5Y6Sb/Hw6hsBOZapOVF6njAESHInhlQAghVVZL1ZpIctBOoTFbQyGW+LsVYZ8lSSB3wkjA==", + "cpu": [ + "mips64el" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/tsx/node_modules/@esbuild/linux-ppc64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.20.2.tgz", + "integrity": "sha512-rD3KsaDprDcfajSKdn25ooz5J5/fWBylaaXkuotBDGnMnDP1Uv5DLAN/45qfnf3JDYyJv/ytGHQaziHUdyzaAg==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/tsx/node_modules/@esbuild/linux-riscv64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.20.2.tgz", + "integrity": "sha512-snwmBKacKmwTMmhLlz/3aH1Q9T8v45bKYGE3j26TsaOVtjIag4wLfWSiZykXzXuE1kbCE+zJRmwp+ZbIHinnVg==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/tsx/node_modules/@esbuild/linux-s390x": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.20.2.tgz", + "integrity": "sha512-wcWISOobRWNm3cezm5HOZcYz1sKoHLd8VL1dl309DiixxVFoFe/o8HnwuIwn6sXre88Nwj+VwZUvJf4AFxkyrQ==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/tsx/node_modules/@esbuild/linux-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.20.2.tgz", + "integrity": "sha512-1MdwI6OOTsfQfek8sLwgyjOXAu+wKhLEoaOLTjbijk6E2WONYpH9ZU2mNtR+lZ2B4uwr+usqGuVfFT9tMtGvGw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/tsx/node_modules/@esbuild/netbsd-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.20.2.tgz", + "integrity": "sha512-K8/DhBxcVQkzYc43yJXDSyjlFeHQJBiowJ0uVL6Tor3jGQfSGHNNJcWxNbOI8v5k82prYqzPuwkzHt3J1T1iZQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/tsx/node_modules/@esbuild/openbsd-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.20.2.tgz", + "integrity": "sha512-eMpKlV0SThJmmJgiVyN9jTPJ2VBPquf6Kt/nAoo6DgHAoN57K15ZghiHaMvqjCye/uU4X5u3YSMgVBI1h3vKrQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/tsx/node_modules/@esbuild/sunos-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.20.2.tgz", + "integrity": "sha512-2UyFtRC6cXLyejf/YEld4Hajo7UHILetzE1vsRcGL3earZEW77JxrFjH4Ez2qaTiEfMgAXxfAZCm1fvM/G/o8w==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/tsx/node_modules/@esbuild/win32-arm64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.20.2.tgz", + "integrity": "sha512-GRibxoawM9ZCnDxnP3usoUDO9vUkpAxIIZ6GQI+IlVmr5kP3zUq+l17xELTHMWTWzjxa2guPNyrpq1GWmPvcGQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/tsx/node_modules/@esbuild/win32-ia32": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.20.2.tgz", + "integrity": "sha512-HfLOfn9YWmkSKRQqovpnITazdtquEW8/SoHW7pWpuEeguaZI4QnCRW6b+oZTztdBnZOS2hqJ6im/D5cPzBTTlQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/tsx/node_modules/@esbuild/win32-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.20.2.tgz", + "integrity": "sha512-N49X4lJX27+l9jbLKSqZ6bKNjzQvHaT8IIFUy+YIqmXQdjYCToGWwOItDrfby14c78aDd5NHQl29xingXfCdLQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/tsx/node_modules/esbuild": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.20.2.tgz", + "integrity": "sha512-WdOOppmUNU+IbZ0PaDiTst80zjnrOkyJNHoKupIcVyU8Lvla3Ugx94VzkQ32Ijqd7UhHJy75gNWDMUekcrSJ6g==", + "dev": true, + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.20.2", + "@esbuild/android-arm": "0.20.2", + "@esbuild/android-arm64": "0.20.2", + "@esbuild/android-x64": "0.20.2", + "@esbuild/darwin-arm64": "0.20.2", + "@esbuild/darwin-x64": "0.20.2", + "@esbuild/freebsd-arm64": "0.20.2", + "@esbuild/freebsd-x64": "0.20.2", + "@esbuild/linux-arm": "0.20.2", + "@esbuild/linux-arm64": "0.20.2", + "@esbuild/linux-ia32": "0.20.2", + "@esbuild/linux-loong64": "0.20.2", + "@esbuild/linux-mips64el": "0.20.2", + "@esbuild/linux-ppc64": "0.20.2", + "@esbuild/linux-riscv64": "0.20.2", + "@esbuild/linux-s390x": "0.20.2", + "@esbuild/linux-x64": "0.20.2", + "@esbuild/netbsd-x64": "0.20.2", + "@esbuild/openbsd-x64": "0.20.2", + "@esbuild/sunos-x64": "0.20.2", + "@esbuild/win32-arm64": "0.20.2", + "@esbuild/win32-ia32": "0.20.2", + "@esbuild/win32-x64": "0.20.2" + } + }, + "node_modules/tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==", + "dev": true, + "dependencies": { + "safe-buffer": "^5.0.1" + }, + "engines": { + "node": "*" + } + }, + "node_modules/tweetnacl": { + "version": "1.0.3", + "license": "Unlicense" + }, + "node_modules/tweetnacl-util": { + "version": "0.15.1", + "resolved": "https://registry.npmjs.org/tweetnacl-util/-/tweetnacl-util-0.15.1.tgz", + "integrity": "sha512-RKJBIj8lySrShN4w6i/BonWp2Z/uxwC3h4y7xsRrpP59ZboCd0GpEVsOnMDYLMmKBpYhb5TgHzZXy7wTfYFBRw==" + }, + "node_modules/type-detect": { + "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" + } + }, + "node_modules/type-fest": { + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz", + "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==", + "engines": { + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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": "5.4.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.5.tgz", + "integrity": "sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/u3": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/u3/-/u3-0.1.1.tgz", + "integrity": "sha512-+J5D5ir763y+Am/QY6hXNRlwljIeRMZMGs0cT6qqZVVzzT3X3nFPXVyPOFRMOR4kupB0T8JnCdpWdp6Q/iXn3w==" + }, + "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/untildify": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/untildify/-/untildify-4.0.0.tgz", + "integrity": "sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==", + "engines": { + "node": ">=8" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.0.13", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz", + "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/utf-8-validate": { + "version": "5.0.5", + "hasInstallScript": true, + "license": "MIT", + "dependencies": { + "node-gyp-build": "^4.2.0" + } + }, + "node_modules/utf8": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/utf8/-/utf8-3.0.0.tgz", + "integrity": "sha512-E8VjFIQ/TyQgp+TZfS6l8yp/xWppSAHzidGiRrqe4bK4XP9pTRyKFgGJpO3SN7zdX4DeomTrwaseCHovfpFcqQ==", + "dev": true + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" + }, + "node_modules/uuid": { + "version": "3.4.0", + "dev": true, + "license": "MIT", + "bin": { + "uuid": "bin/uuid" + } + }, + "node_modules/v8-to-istanbul": { + "version": "9.2.0", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.2.0.tgz", + "integrity": "sha512-/EH/sDgxU2eGxajKdwLCDmQ4FWq+kpi3uCmBGpw1xJtnAxEjlD8j8PEiGWpCIMIs3ciNAgH0d3TTJiUkYzyZjA==", + "dev": true, + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.12", + "@types/istanbul-lib-coverage": "^2.0.1", + "convert-source-map": "^2.0.0" + }, + "engines": { + "node": ">=10.12.0" + } + }, + "node_modules/verror": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", + "integrity": "sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==", + "dev": true, + "engines": [ + "node >=0.6.0" + ], + "dependencies": { + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" + } + }, + "node_modules/vlq": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/vlq/-/vlq-2.0.4.tgz", + "integrity": "sha512-aodjPa2wPQFkra1G8CzJBTHXhgk3EVSwxSWXNPr1fgdFLUb8kvLV1iEb6rFgasIsjP82HWI6dsb5Io26DDnasA==" + }, + "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/web3-provider-engine": { + "version": "16.0.3", + "resolved": "https://registry.npmjs.org/web3-provider-engine/-/web3-provider-engine-16.0.3.tgz", + "integrity": "sha512-Q3bKhGqLfMTdLvkd4TtkGYJHcoVQ82D1l8jTIwwuJp/sAp7VHnRYb9YJ14SW/69VMWoOhSpPLZV2tWb9V0WJoA==", + "dev": true, + "dependencies": { + "@ethereumjs/tx": "^3.3.0", + "async": "^2.5.0", + "backoff": "^2.5.0", + "clone": "^2.0.0", + "cross-fetch": "^2.1.0", + "eth-block-tracker": "^4.4.2", + "eth-json-rpc-filters": "^4.2.1", + "eth-json-rpc-infura": "^5.1.0", + "eth-json-rpc-middleware": "^6.0.0", + "eth-rpc-errors": "^3.0.0", + "eth-sig-util": "^1.4.2", + "ethereumjs-block": "^1.2.2", + "ethereumjs-util": "^5.1.5", + "ethereumjs-vm": "^2.3.4", + "json-stable-stringify": "^1.0.1", + "promise-to-callback": "^1.0.0", + "readable-stream": "^2.2.9", + "request": "^2.85.0", + "semaphore": "^1.0.3", + "ws": "^5.1.1", + "xhr": "^2.2.0", + "xtend": "^4.0.1" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/web3-provider-engine/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true + }, + "node_modules/web3-provider-engine/node_modules/ethereumjs-util": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", + "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", + "dev": true, + "dependencies": { + "bn.js": "^4.11.0", + "create-hash": "^1.1.2", + "elliptic": "^6.5.2", + "ethereum-cryptography": "^0.1.3", + "ethjs-util": "^0.1.3", + "rlp": "^2.0.0", + "safe-buffer": "^5.1.1" + } + }, + "node_modules/web3-provider-engine/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true + }, + "node_modules/web3-provider-engine/node_modules/readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dev": true, + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/web3-provider-engine/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "node_modules/web3-provider-engine/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/web3-provider-engine/node_modules/ws": { + "version": "5.2.3", + "resolved": "https://registry.npmjs.org/ws/-/ws-5.2.3.tgz", + "integrity": "sha512-jZArVERrMsKUatIdnLzqvcfydI85dvd/Fp1u/VOpfdDWQ4c9qWXe+VIeAbQ5FrDwciAkr+lzofXLz3Kuf26AOA==", + "dev": true, + "dependencies": { + "async-limiter": "~1.0.0" + } + }, + "node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=" + }, + "node_modules/whatwg-fetch": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-2.0.4.tgz", + "integrity": "sha512-dcQ1GWpOD/eEQ97k66aiEVpNnapVj90/+R+SXTPYGHpYBBypfKJEQjLrvMZ7YXbKm21gXd4NcuxUTjiv1YtLng==", + "dev": true + }, + "node_modules/whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha1-lmRU6HZUYuN2RNNib2dCzotwll0=", + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, + "node_modules/which": { + "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" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/wif": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/wif/-/wif-2.0.6.tgz", + "integrity": "sha1-CNP1IFbGZnkplyb63g1DKudLRwQ=", + "dependencies": { + "bs58check": "<3.0.0" + } + }, + "node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + }, + "node_modules/write-file-atomic": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz", + "integrity": "sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==", + "dev": true, + "dependencies": { + "imurmurhash": "^0.1.4", + "signal-exit": "^3.0.7" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/ws": { + "version": "7.5.9", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz", + "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==", + "engines": { + "node": ">=8.3.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/xhr": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/xhr/-/xhr-2.6.0.tgz", + "integrity": "sha512-/eCGLb5rxjx5e3mF1A7s+pLlR6CGyqWN91fv1JgER5mVWg1MZmlhBvy9kjcsOdRk8RrIujotWyJamfyrp+WIcA==", + "dev": true, + "dependencies": { + "global": "~4.4.0", + "is-function": "^1.0.1", + "parse-headers": "^2.0.0", + "xtend": "^4.0.0" + } + }, + "node_modules/xstream": { + "version": "11.14.0", + "resolved": "https://registry.npmjs.org/xstream/-/xstream-11.14.0.tgz", + "integrity": "sha512-1bLb+kKKtKPbgTK6i/BaoAn03g47PpFstlbe1BA+y3pNS/LfvcaghS5BFf9+EE1J+KwSQsEpfJvFN5GqFtiNmw==", + "dependencies": { + "globalthis": "^1.0.1", + "symbol-observable": "^2.0.3" + } + }, + "node_modules/xstream/node_modules/symbol-observable": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-2.0.3.tgz", + "integrity": "sha512-sQV7phh2WCYAn81oAkakC5qjq2Ml0g8ozqz03wOGnx9dDlG1de6yrF+0RAzSJD8fPUow3PTSMf2SAbOGxb93BA==", + "engines": { + "node": ">=0.10" + } + }, + "node_modules/xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "engines": { + "node": ">=0.4" + } + }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "engines": { + "node": ">=10" + } + }, + "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": "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" + }, + "engines": { + "node": ">=12" + } + }, + "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/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": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/yargs/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": ">=12" + } + }, + "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==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/zen-observable": { + "version": "0.8.15", + "resolved": "https://registry.npmjs.org/zen-observable/-/zen-observable-0.8.15.tgz", + "integrity": "sha512-PQ2PC7R9rslx84ndNBZB/Dkv8V8fZEpk83RLgXtYd0fwUgEjseMn1Dgajh2x6S8QbZAFa9p2qVCEuYZNgve0dQ==" + }, + "node_modules/zen-observable-ts": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/zen-observable-ts/-/zen-observable-ts-1.2.5.tgz", + "integrity": "sha512-QZWQekv6iB72Naeake9hS1KxHlotfRpe+WGNbNx5/ta+R3DNjVO2bswf63gXlWDcs+EMd7XY8HfVQyP1X6T4Zg==", + "dependencies": { + "zen-observable": "0.8.15" + } + }, + "pkg": { + "name": "bridge", + "version": "0.1.0", + "extraneous": true + }, + "pkg/bridge": { + "extraneous": true + }, + "pkg/core": { + "name": "bridge", + "version": "0.1.0", + "extraneous": true + }, + "pkg/token": { + "name": "token-bridge", + "version": "0.1.0", + "extraneous": true + }, + "pkg/token-bridge": { + "extraneous": true + } + }, + "dependencies": { + "@0no-co/graphql.web": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/@0no-co/graphql.web/-/graphql.web-1.0.7.tgz", + "integrity": "sha512-E3Qku4mTzdrlwVWGPxklDnME5ANrEGetvYw4i2GCRlppWXXE4QD66j7pwb8HelZwS6LnqEChhrSOGCXpbiu6MQ==", + "requires": {} + }, + "@0no-co/graphqlsp": { + "version": "1.12.12", + "resolved": "https://registry.npmjs.org/@0no-co/graphqlsp/-/graphqlsp-1.12.12.tgz", + "integrity": "sha512-BmCAc/q3tQcIwXxKoxubYaB23s2fWMMmNGSlY9mgQvWiReBS8ZutPZSf11OADfwTv1J1JIazU6q6OFX+cEp8PQ==", + "requires": { + "@gql.tada/internal": "^1.0.0", + "graphql": "^15.5.0 || ^16.0.0 || ^17.0.0" + } + }, + "@adraffy/ens-normalize": { + "version": "1.10.1", + "resolved": "https://registry.npmjs.org/@adraffy/ens-normalize/-/ens-normalize-1.10.1.tgz", + "integrity": "sha512-96Z2IP3mYmF1Xg2cDm8f1gWGf/HUVedQ3FMifV4kG/PQ4yEP51xDtRAEfhVNt5f/uzpNkZHwWQuUcu6D6K+Ekw==" + }, + "@ampproject/remapping": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", + "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", + "dev": true, + "requires": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "@apollo/client": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/@apollo/client/-/client-3.7.0.tgz", + "integrity": "sha512-hp4OvrH1ZIQACRYcIrh/C0WFnY7IM7G6nlTpC8DSTEWxfZQ2kvpvDY0I/hYmCs0oAVrg26g3ANEdOzGWTcYbPg==", + "requires": { + "@graphql-typed-document-node/core": "^3.1.1", + "@wry/context": "^0.7.0", + "@wry/equality": "^0.5.0", + "@wry/trie": "^0.3.0", + "graphql-tag": "^2.12.6", + "hoist-non-react-statics": "^3.3.2", + "optimism": "^0.16.1", + "prop-types": "^15.7.2", + "response-iterator": "^0.2.6", + "symbol-observable": "^4.0.0", + "ts-invariant": "^0.10.3", + "tslib": "^2.3.0", + "zen-observable-ts": "^1.2.5" + } + }, + "@aptos-labs/aptos-client": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/@aptos-labs/aptos-client/-/aptos-client-0.1.0.tgz", + "integrity": "sha512-q3s6pPq8H2buGp+tPuIRInWsYOuhSEwuNJPwd2YnsiID3YSLihn2ug39ktDJAcSOprUcp7Nid8WK7hKqnUmSdA==", + "requires": { + "axios": "1.6.2", + "got": "^11.8.6" + }, + "dependencies": { + "axios": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.6.2.tgz", + "integrity": "sha512-7i24Ri4pmDRfJTR7LDBhsOTtcm+9kjX5WiY1X3wIisx6G9So3pfMkEiU7emUBe46oceVImccTEM3k6C5dbVW8A==", + "requires": { + "follow-redirects": "^1.15.0", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" + } + }, + "form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + } + } + } + }, + "@babel/code-frame": { + "version": "7.24.2", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.2.tgz", + "integrity": "sha512-y5+tLQyV8pg3fsiln67BVLD1P13Eg4lh5RW9mF0zUuvLrv9uIQ4MCL+CRT+FTsBlBjcIan6PGsLcBN0m3ClUyQ==", + "dev": true, + "requires": { + "@babel/highlight": "^7.24.2", + "picocolors": "^1.0.0" + } + }, + "@babel/compat-data": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.24.1.tgz", + "integrity": "sha512-Pc65opHDliVpRHuKfzI+gSA4zcgr65O4cl64fFJIWEEh8JoHIHh0Oez1Eo8Arz8zq/JhgKodQaxEwUPRtZylVA==", + "dev": true + }, + "@babel/core": { + "version": "7.24.3", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.24.3.tgz", + "integrity": "sha512-5FcvN1JHw2sHJChotgx8Ek0lyuh4kCKelgMTTqhYJJtloNvUfpAFMeNQUtdlIaktwrSV9LtCdqwk48wL2wBacQ==", + "dev": true, + "requires": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.24.2", + "@babel/generator": "^7.24.1", + "@babel/helper-compilation-targets": "^7.23.6", + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helpers": "^7.24.1", + "@babel/parser": "^7.24.1", + "@babel/template": "^7.24.0", + "@babel/traverse": "^7.24.1", + "@babel/types": "^7.24.0", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" + }, + "dependencies": { + "semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true + } + } + }, + "@babel/generator": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.24.1.tgz", + "integrity": "sha512-DfCRfZsBcrPEHUfuBMgbJ1Ut01Y/itOs+hY2nFLgqsqXd52/iSiVq5TITtUasIUgm+IIKdY2/1I7auiQOEeC9A==", + "dev": true, + "requires": { + "@babel/types": "^7.24.0", + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25", + "jsesc": "^2.5.1" + } + }, + "@babel/helper-compilation-targets": { + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz", + "integrity": "sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.23.5", + "@babel/helper-validator-option": "^7.23.5", + "browserslist": "^4.22.2", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + }, + "dependencies": { + "semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true + } + } + }, + "@babel/helper-define-polyfill-provider": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.3.tgz", + "integrity": "sha512-z5aQKU4IzbqCC1XH0nAqfsFLMVSo22SBKUc0BxGrLkolTdPTructy0ToNnlO2zA4j9Q/7pjMZf0DSY+DSTYzww==", + "dev": true, + "requires": { + "@babel/helper-compilation-targets": "^7.17.7", + "@babel/helper-plugin-utils": "^7.16.7", + "debug": "^4.1.1", + "lodash.debounce": "^4.0.8", + "resolve": "^1.14.2", + "semver": "^6.1.2" + } + }, + "@babel/helper-environment-visitor": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", + "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==", + "dev": true + }, + "@babel/helper-function-name": { + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz", + "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==", + "dev": true, + "requires": { + "@babel/template": "^7.22.15", + "@babel/types": "^7.23.0" + } + }, + "@babel/helper-hoist-variables": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", + "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", + "dev": true, + "requires": { + "@babel/types": "^7.22.5" + } + }, + "@babel/helper-module-imports": { + "version": "7.24.3", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.24.3.tgz", + "integrity": "sha512-viKb0F9f2s0BCS22QSF308z/+1YWKV/76mwt61NBzS5izMzDPwdq1pTrzf+Li3npBWX9KdQbkeCt1jSAM7lZqg==", + "dev": true, + "requires": { + "@babel/types": "^7.24.0" + } + }, + "@babel/helper-module-transforms": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz", + "integrity": "sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==", + "dev": true, + "requires": { + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-module-imports": "^7.22.15", + "@babel/helper-simple-access": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/helper-validator-identifier": "^7.22.20" + } + }, + "@babel/helper-plugin-utils": { + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.0.tgz", + "integrity": "sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w==", + "dev": true + }, + "@babel/helper-simple-access": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz", + "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==", + "dev": true, + "requires": { + "@babel/types": "^7.22.5" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.22.6", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz", + "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==", + "dev": true, + "requires": { + "@babel/types": "^7.22.5" + } + }, + "@babel/helper-string-parser": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.1.tgz", + "integrity": "sha512-2ofRCjnnA9y+wk8b9IAREroeUP02KHp431N2mhKniy2yKIDKpbrHv9eXwm8cBeWQYcJmzv5qKCu65P47eCF7CQ==", + "dev": true + }, + "@babel/helper-validator-identifier": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", + "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", + "dev": true + }, + "@babel/helper-validator-option": { + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz", + "integrity": "sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==", + "dev": true + }, + "@babel/helpers": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.24.1.tgz", + "integrity": "sha512-BpU09QqEe6ZCHuIHFphEFgvNSrubve1FtyMton26ekZ85gRGi6LrTF7zArARp2YvyFxloeiRmtSCq5sjh1WqIg==", + "dev": true, + "requires": { + "@babel/template": "^7.24.0", + "@babel/traverse": "^7.24.1", + "@babel/types": "^7.24.0" + } + }, + "@babel/highlight": { + "version": "7.24.2", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.2.tgz", + "integrity": "sha512-Yac1ao4flkTxTteCDZLEvdxg2fZfz1v8M4QpaGypq/WPDqg3ijHYbDfs+LG5hvzSoqaSZ9/Z9lKSP3CjZjv+pA==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.22.20", + "chalk": "^2.4.2", + "js-tokens": "^4.0.0", + "picocolors": "^1.0.0" + } + }, + "@babel/parser": { + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.5.tgz", + "integrity": "sha512-EOv5IK8arwh3LI47dz1b0tKUb/1uhHAnHJOrjgtQMIpu1uXd9mlFrJg9IUgGUgZ41Ch0K8REPTYpO7B76b4vJg==", + "dev": true + }, + "@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, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@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, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@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, + "requires": { + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@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, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@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, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-jsx": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.24.1.tgz", + "integrity": "sha512-2eCtxZXf+kbkMIsXS4poTvT4Yu5rXiRa+9xGVT56raghjmBTKMpFNc9R4IDiB4emao9eO22Ox7CxuJG7BgExqA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.24.0" + } + }, + "@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, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@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, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@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, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@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, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@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, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@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, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@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, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-syntax-typescript": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.24.1.tgz", + "integrity": "sha512-Yhnmvy5HZEnHUty6i++gcfH1/l68AHnItFHnaCv6hn9dNh0hQvvQJsxpi4BMBFN5DLeHBuucT/0DgzXif/OyRw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.24.0" + } + }, + "@babel/plugin-transform-runtime": { + "version": "7.19.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.19.6.tgz", + "integrity": "sha512-PRH37lz4JU156lYFW1p8OxE5i7d6Sl/zV58ooyr+q1J1lnQPyg5tIiXlIwNVhJaY4W3TmOtdc8jqdXQcB1v5Yw==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.18.6", + "@babel/helper-plugin-utils": "^7.19.0", + "babel-plugin-polyfill-corejs2": "^0.3.3", + "babel-plugin-polyfill-corejs3": "^0.6.0", + "babel-plugin-polyfill-regenerator": "^0.4.1", + "semver": "^6.3.0" + } + }, + "@babel/runtime": { + "version": "7.20.13", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.20.13.tgz", + "integrity": "sha512-gt3PKXs0DBoL9xCvOIIZ2NEqAGZqHjAnmVbfQtB620V0uReIQutpel14KcneZuer7UioY8ALKZ7iocavvzTNFA==", + "requires": { + "regenerator-runtime": "^0.13.11" + } + }, + "@babel/template": { + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.24.0.tgz", + "integrity": "sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.23.5", + "@babel/parser": "^7.24.0", + "@babel/types": "^7.24.0" + } + }, + "@babel/traverse": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.1.tgz", + "integrity": "sha512-xuU6o9m68KeqZbQuDt2TcKSxUw/mrsvavlEqQ1leZ/B+C9tk6E4sRWy97WaXgvq5E+nU3cXMxv3WKOCanVMCmQ==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.24.1", + "@babel/generator": "^7.24.1", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-hoist-variables": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/parser": "^7.24.1", + "@babel/types": "^7.24.0", + "debug": "^4.3.1", + "globals": "^11.1.0" + } + }, + "@babel/types": { + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.0.tgz", + "integrity": "sha512-+j7a5c253RfKh8iABBhywc8NSfP5LURe7Uh4qpsh6jc+aLJguvmIUBdjSdEMQv2bENrCR5MfRdjGo7vzS/ob7w==", + "dev": true, + "requires": { + "@babel/helper-string-parser": "^7.23.4", + "@babel/helper-validator-identifier": "^7.22.20", + "to-fast-properties": "^2.0.0" + } + }, + "@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 + }, + "@celo-tools/celo-ethers-wrapper": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/@celo-tools/celo-ethers-wrapper/-/celo-ethers-wrapper-0.1.0.tgz", + "integrity": "sha512-kBpFi7viIRlysiVKfIIywuAGykO0l3w+lBZ+NFaEgw9GsVQl0NYj0e4/UhbglfU5XS6M8HCCordUuC8gVwCw7w==", + "requires": {} + }, + "@certusone/wormhole-sdk": { + "version": "0.10.18", + "resolved": "https://registry.npmjs.org/@certusone/wormhole-sdk/-/wormhole-sdk-0.10.18.tgz", + "integrity": "sha512-VuN4AGB018ELkzTT/jN+yWgE6TWqXsHilxxCVWqGctzow2hKSFd8ADUhxhHigies436rS0vPvrgXi6m0J1+Ecw==", + "requires": { + "@certusone/wormhole-sdk-proto-web": "0.0.7", + "@certusone/wormhole-sdk-wasm": "^0.0.1", + "@coral-xyz/borsh": "0.2.6", + "@injectivelabs/networks": "1.10.12", + "@injectivelabs/sdk-ts": "1.10.72", + "@injectivelabs/utils": "1.10.12", + "@mysten/sui.js": "0.32.2", + "@project-serum/anchor": "^0.25.0", + "@solana/spl-token": "^0.3.5", + "@solana/web3.js": "^1.66.2", + "@terra-money/terra.js": "3.1.9", + "@xpla/xpla.js": "^0.2.1", + "algosdk": "^2.4.0", + "aptos": "1.5.0", + "axios": "^0.24.0", + "bech32": "^2.0.0", + "binary-parser": "^2.2.1", + "bs58": "^4.0.1", + "elliptic": "^6.5.4", + "js-base64": "^3.6.1", + "near-api-js": "^1.0.0" + } + }, + "@certusone/wormhole-sdk-proto-web": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/@certusone/wormhole-sdk-proto-web/-/wormhole-sdk-proto-web-0.0.7.tgz", + "integrity": "sha512-GCe1/bcqMS0Mt+hsWp4SE4NLL59pWmK0lhQXO0oqAKl0G9AuuTdudySMDF/sLc7z5H2w34bSuSrIEKvPuuSC+w==", + "requires": { + "@improbable-eng/grpc-web": "^0.15.0", + "protobufjs": "^7.0.0", + "rxjs": "^7.5.6" + }, + "dependencies": { + "@improbable-eng/grpc-web": { + "version": "0.15.0", + "resolved": "https://registry.npmjs.org/@improbable-eng/grpc-web/-/grpc-web-0.15.0.tgz", + "integrity": "sha512-ERft9/0/8CmYalqOVnJnpdDry28q+j+nAlFFARdjyxXDJ+Mhgv9+F600QC8BR9ygOfrXRlAk6CvST2j+JCpQPg==", + "requires": { + "browser-headers": "^0.4.1" + } + }, + "long": { + "version": "5.2.3", + "resolved": "https://registry.npmjs.org/long/-/long-5.2.3.tgz", + "integrity": "sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q==" + }, + "protobufjs": { + "version": "7.2.5", + "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.2.5.tgz", + "integrity": "sha512-gGXRSXvxQ7UiPgfw8gevrfRWcTlSbOFg+p/N+JVJEK5VhueL2miT6qTymqAmjr1Q5WbOCyJbyrk6JfWKwlFn6A==", + "requires": { + "@protobufjs/aspromise": "^1.1.2", + "@protobufjs/base64": "^1.1.2", + "@protobufjs/codegen": "^2.0.4", + "@protobufjs/eventemitter": "^1.1.0", + "@protobufjs/fetch": "^1.1.0", + "@protobufjs/float": "^1.0.2", + "@protobufjs/inquire": "^1.1.0", + "@protobufjs/path": "^1.1.2", + "@protobufjs/pool": "^1.1.0", + "@protobufjs/utf8": "^1.1.0", + "@types/node": ">=13.7.0", + "long": "^5.0.0" + } + } + } + }, + "@certusone/wormhole-sdk-wasm": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/@certusone/wormhole-sdk-wasm/-/wormhole-sdk-wasm-0.0.1.tgz", + "integrity": "sha512-LdIwLhOyr4pPs2jqYubqC7d4UkqYBX0EG/ppspQlW3qlVE0LZRMrH6oVzzLMyHtV0Rw7O9sIKzORW/T3mrJv2w==", + "requires": { + "@types/long": "^4.0.2", + "@types/node": "^18.0.3" + }, + "dependencies": { + "@types/node": { + "version": "18.19.33", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.33.tgz", + "integrity": "sha512-NR9+KrpSajr2qBVp/Yt5TU/rp+b5Mayi3+OlMlcg2cVCfRmcG5PWZ7S4+MG9PZ5gWBoc9Pd0BKSRViuBCRPu0A==", + "requires": { + "undici-types": "~5.26.4" + } + } + } + }, + "@classic-terra/terra.proto": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@classic-terra/terra.proto/-/terra.proto-1.1.0.tgz", + "integrity": "sha512-bYhQG5LUaGF0KPRY9hYT/HEcd1QExZPQd6zLV/rQkCe/eDxfwFRLzZHpaaAdfWoAAZjsRWqJbUCqCg7gXBbJpw==", + "requires": { + "@improbable-eng/grpc-web": "^0.14.1", + "google-protobuf": "^3.17.3", + "long": "^4.0.0", + "protobufjs": "~6.11.2" + } + }, + "@confio/ics23": { + "version": "0.6.8", + "resolved": "https://registry.npmjs.org/@confio/ics23/-/ics23-0.6.8.tgz", + "integrity": "sha512-wB6uo+3A50m0sW/EWcU64xpV/8wShZ6bMTa7pF8eYsTrSkQA7oLUIJcs/wb8g4y2Oyq701BaGiO6n/ak5WXO1w==", + "requires": { + "@noble/hashes": "^1.0.0", + "protobufjs": "^6.8.8" + } + }, + "@coral-xyz/anchor": { + "version": "0.29.0", + "resolved": "https://registry.npmjs.org/@coral-xyz/anchor/-/anchor-0.29.0.tgz", + "integrity": "sha512-eny6QNG0WOwqV0zQ7cs/b1tIuzZGmP7U7EcH+ogt4Gdbl8HDmIYVMh/9aTmYZPaFWjtUaI8qSn73uYEXWfATdA==", + "requires": { + "@coral-xyz/borsh": "^0.29.0", + "@noble/hashes": "^1.3.1", + "@solana/web3.js": "^1.68.0", + "bn.js": "^5.1.2", + "bs58": "^4.0.1", + "buffer-layout": "^1.2.2", + "camelcase": "^6.3.0", + "cross-fetch": "^3.1.5", + "crypto-hash": "^1.3.0", + "eventemitter3": "^4.0.7", + "pako": "^2.0.3", + "snake-case": "^3.0.4", + "superstruct": "^0.15.4", + "toml": "^3.0.0" + }, + "dependencies": { + "@coral-xyz/borsh": { + "version": "0.29.0", + "resolved": "https://registry.npmjs.org/@coral-xyz/borsh/-/borsh-0.29.0.tgz", + "integrity": "sha512-s7VFVa3a0oqpkuRloWVPdCK7hMbAMY270geZOGfCnaqexrP5dTIpbEHL33req6IYPPJ0hYa71cdvJ1h6V55/oQ==", + "requires": { + "bn.js": "^5.1.2", + "buffer-layout": "^1.2.0" + } + }, + "@noble/hashes": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.4.0.tgz", + "integrity": "sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg==" + }, + "camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==" + }, + "cross-fetch": { + "version": "3.1.8", + "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.8.tgz", + "integrity": "sha512-cvA+JwZoU0Xq+h6WkMvAUqPEYy92Obet6UdKLfW60qn99ftItKjB5T+BkyWOFWe2pUyfQ+IJHmpOTznqk1M6Kg==", + "requires": { + "node-fetch": "^2.6.12" + } + }, + "superstruct": { + "version": "0.15.5", + "resolved": "https://registry.npmjs.org/superstruct/-/superstruct-0.15.5.tgz", + "integrity": "sha512-4AOeU+P5UuE/4nOUkmcQdW5y7i9ndt1cQd/3iUe+LTz3RxESf/W/5lg4B74HbDMMv8PHnPnGCQFH45kBcrQYoQ==" + } + } + }, + "@coral-xyz/borsh": { + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/@coral-xyz/borsh/-/borsh-0.2.6.tgz", + "integrity": "sha512-y6nmHw1bFcJib7sMHsQPpC8r47xhqDZVvhUdna7NUPzpSbOZG6f46N21+aXsQ2w/tG8Ggls488J/ZmwbgVmyjg==", + "requires": { + "bn.js": "^5.1.2", + "buffer-layout": "^1.2.0" + } + }, + "@cosmjs/amino": { + "version": "0.29.5", + "resolved": "https://registry.npmjs.org/@cosmjs/amino/-/amino-0.29.5.tgz", + "integrity": "sha512-Qo8jpC0BiziTSUqpkNatBcwtKNhCovUnFul9SlT/74JUCdLYaeG5hxr3q1cssQt++l4LvlcpF+OUXL48XjNjLw==", + "requires": { + "@cosmjs/crypto": "^0.29.5", + "@cosmjs/encoding": "^0.29.5", + "@cosmjs/math": "^0.29.5", + "@cosmjs/utils": "^0.29.5" + }, + "dependencies": { + "@cosmjs/encoding": { + "version": "0.29.5", + "resolved": "https://registry.npmjs.org/@cosmjs/encoding/-/encoding-0.29.5.tgz", + "integrity": "sha512-G4rGl/Jg4dMCw5u6PEZHZcoHnUBlukZODHbm/wcL4Uu91fkn5jVo5cXXZcvs4VCkArVGrEj/52eUgTZCmOBGWQ==", + "requires": { + "base64-js": "^1.3.0", + "bech32": "^1.1.4", + "readonly-date": "^1.0.0" + } + }, + "bech32": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/bech32/-/bech32-1.1.4.tgz", + "integrity": "sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ==" + } + } + }, + "@cosmjs/cosmwasm-stargate": { + "version": "0.29.5", + "resolved": "https://registry.npmjs.org/@cosmjs/cosmwasm-stargate/-/cosmwasm-stargate-0.29.5.tgz", + "integrity": "sha512-TNdSvm2tEE3XMCuxHxquzls56t40hC8qnLeYJWHsY2ECZmRK3KrnpRReEr7N7bLtODToK7X/riYrV0JaYxjrYA==", + "requires": { + "@cosmjs/amino": "^0.29.5", + "@cosmjs/crypto": "^0.29.5", + "@cosmjs/encoding": "^0.29.5", + "@cosmjs/math": "^0.29.5", + "@cosmjs/proto-signing": "^0.29.5", + "@cosmjs/stargate": "^0.29.5", + "@cosmjs/tendermint-rpc": "^0.29.5", + "@cosmjs/utils": "^0.29.5", + "cosmjs-types": "^0.5.2", + "long": "^4.0.0", + "pako": "^2.0.2" + }, + "dependencies": { + "@cosmjs/encoding": { + "version": "0.29.5", + "resolved": "https://registry.npmjs.org/@cosmjs/encoding/-/encoding-0.29.5.tgz", + "integrity": "sha512-G4rGl/Jg4dMCw5u6PEZHZcoHnUBlukZODHbm/wcL4Uu91fkn5jVo5cXXZcvs4VCkArVGrEj/52eUgTZCmOBGWQ==", + "requires": { + "base64-js": "^1.3.0", + "bech32": "^1.1.4", + "readonly-date": "^1.0.0" + } + }, + "bech32": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/bech32/-/bech32-1.1.4.tgz", + "integrity": "sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ==" + } + } + }, + "@cosmjs/crypto": { + "version": "0.29.5", + "resolved": "https://registry.npmjs.org/@cosmjs/crypto/-/crypto-0.29.5.tgz", + "integrity": "sha512-2bKkaLGictaNL0UipQCL6C1afaisv6k8Wr/GCLx9FqiyFkh9ZgRHDyetD64ZsjnWV/N/D44s/esI+k6oPREaiQ==", + "requires": { + "@cosmjs/encoding": "^0.29.5", + "@cosmjs/math": "^0.29.5", + "@cosmjs/utils": "^0.29.5", + "@noble/hashes": "^1", + "bn.js": "^5.2.0", + "elliptic": "^6.5.4", + "libsodium-wrappers": "^0.7.6" + }, + "dependencies": { + "@cosmjs/encoding": { + "version": "0.29.5", + "resolved": "https://registry.npmjs.org/@cosmjs/encoding/-/encoding-0.29.5.tgz", + "integrity": "sha512-G4rGl/Jg4dMCw5u6PEZHZcoHnUBlukZODHbm/wcL4Uu91fkn5jVo5cXXZcvs4VCkArVGrEj/52eUgTZCmOBGWQ==", + "requires": { + "base64-js": "^1.3.0", + "bech32": "^1.1.4", + "readonly-date": "^1.0.0" + } + }, + "bech32": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/bech32/-/bech32-1.1.4.tgz", + "integrity": "sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ==" + } + } + }, + "@cosmjs/encoding": { + "version": "0.26.8", + "resolved": "https://registry.npmjs.org/@cosmjs/encoding/-/encoding-0.26.8.tgz", + "integrity": "sha512-rsqdeCHPmSXSjwE6pzbsx/drxIZKPiIxza4hYsGCaVsxrFZmgOFNmvWgtuIOIEXPS/ZoyST9XU9aMpkaYzLEVQ==", + "requires": { + "base64-js": "^1.3.0", + "bech32": "^1.1.4", + "readonly-date": "^1.0.0" + }, + "dependencies": { + "bech32": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/bech32/-/bech32-1.1.4.tgz", + "integrity": "sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ==" + } + } + }, + "@cosmjs/json-rpc": { + "version": "0.29.5", + "resolved": "https://registry.npmjs.org/@cosmjs/json-rpc/-/json-rpc-0.29.5.tgz", + "integrity": "sha512-C78+X06l+r9xwdM1yFWIpGl03LhB9NdM1xvZpQHwgCOl0Ir/WV8pw48y3Ez2awAoUBRfTeejPe4KvrE6NoIi/w==", + "requires": { + "@cosmjs/stream": "^0.29.5", + "xstream": "^11.14.0" + } + }, + "@cosmjs/math": { + "version": "0.29.5", + "resolved": "https://registry.npmjs.org/@cosmjs/math/-/math-0.29.5.tgz", + "integrity": "sha512-2GjKcv+A9f86MAWYLUkjhw1/WpRl2R1BTb3m9qPG7lzMA7ioYff9jY5SPCfafKdxM4TIQGxXQlYGewQL16O68Q==", + "requires": { + "bn.js": "^5.2.0" + } + }, + "@cosmjs/proto-signing": { + "version": "0.29.5", + "resolved": "https://registry.npmjs.org/@cosmjs/proto-signing/-/proto-signing-0.29.5.tgz", + "integrity": "sha512-QRrS7CiKaoETdgIqvi/7JC2qCwCR7lnWaUsTzh/XfRy3McLkEd+cXbKAW3cygykv7IN0VAEIhZd2lyIfT8KwNA==", + "requires": { + "@cosmjs/amino": "^0.29.5", + "@cosmjs/crypto": "^0.29.5", + "@cosmjs/encoding": "^0.29.5", + "@cosmjs/math": "^0.29.5", + "@cosmjs/utils": "^0.29.5", + "cosmjs-types": "^0.5.2", + "long": "^4.0.0" + }, + "dependencies": { + "@cosmjs/encoding": { + "version": "0.29.5", + "resolved": "https://registry.npmjs.org/@cosmjs/encoding/-/encoding-0.29.5.tgz", + "integrity": "sha512-G4rGl/Jg4dMCw5u6PEZHZcoHnUBlukZODHbm/wcL4Uu91fkn5jVo5cXXZcvs4VCkArVGrEj/52eUgTZCmOBGWQ==", + "requires": { + "base64-js": "^1.3.0", + "bech32": "^1.1.4", + "readonly-date": "^1.0.0" + } + }, + "bech32": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/bech32/-/bech32-1.1.4.tgz", + "integrity": "sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ==" + } + } + }, + "@cosmjs/socket": { + "version": "0.29.5", + "resolved": "https://registry.npmjs.org/@cosmjs/socket/-/socket-0.29.5.tgz", + "integrity": "sha512-5VYDupIWbIXq3ftPV1LkS5Ya/T7Ol/AzWVhNxZ79hPe/mBfv1bGau/LqIYOm2zxGlgm9hBHOTmWGqNYDwr9LNQ==", + "requires": { + "@cosmjs/stream": "^0.29.5", + "isomorphic-ws": "^4.0.1", + "ws": "^7", + "xstream": "^11.14.0" + } + }, + "@cosmjs/stargate": { + "version": "0.29.5", + "resolved": "https://registry.npmjs.org/@cosmjs/stargate/-/stargate-0.29.5.tgz", + "integrity": "sha512-hjEv8UUlJruLrYGJcUZXM/CziaINOKwfVm2BoSdUnNTMxGvY/jC1ABHKeZUYt9oXHxEJ1n9+pDqzbKc8pT0nBw==", + "requires": { + "@confio/ics23": "^0.6.8", + "@cosmjs/amino": "^0.29.5", + "@cosmjs/encoding": "^0.29.5", + "@cosmjs/math": "^0.29.5", + "@cosmjs/proto-signing": "^0.29.5", + "@cosmjs/stream": "^0.29.5", + "@cosmjs/tendermint-rpc": "^0.29.5", + "@cosmjs/utils": "^0.29.5", + "cosmjs-types": "^0.5.2", + "long": "^4.0.0", + "protobufjs": "~6.11.3", + "xstream": "^11.14.0" + }, + "dependencies": { + "@cosmjs/encoding": { + "version": "0.29.5", + "resolved": "https://registry.npmjs.org/@cosmjs/encoding/-/encoding-0.29.5.tgz", + "integrity": "sha512-G4rGl/Jg4dMCw5u6PEZHZcoHnUBlukZODHbm/wcL4Uu91fkn5jVo5cXXZcvs4VCkArVGrEj/52eUgTZCmOBGWQ==", + "requires": { + "base64-js": "^1.3.0", + "bech32": "^1.1.4", + "readonly-date": "^1.0.0" + } + }, + "bech32": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/bech32/-/bech32-1.1.4.tgz", + "integrity": "sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ==" + } + } + }, + "@cosmjs/stream": { + "version": "0.29.5", + "resolved": "https://registry.npmjs.org/@cosmjs/stream/-/stream-0.29.5.tgz", + "integrity": "sha512-TToTDWyH1p05GBtF0Y8jFw2C+4783ueDCmDyxOMM6EU82IqpmIbfwcdMOCAm0JhnyMh+ocdebbFvnX/sGKzRAA==", + "requires": { + "xstream": "^11.14.0" + } + }, + "@cosmjs/tendermint-rpc": { + "version": "0.29.5", + "resolved": "https://registry.npmjs.org/@cosmjs/tendermint-rpc/-/tendermint-rpc-0.29.5.tgz", + "integrity": "sha512-ar80twieuAxsy0x2za/aO3kBr2DFPAXDmk2ikDbmkda+qqfXgl35l9CVAAjKRqd9d+cRvbQyb5M4wy6XQpEV6w==", + "requires": { + "@cosmjs/crypto": "^0.29.5", + "@cosmjs/encoding": "^0.29.5", + "@cosmjs/json-rpc": "^0.29.5", + "@cosmjs/math": "^0.29.5", + "@cosmjs/socket": "^0.29.5", + "@cosmjs/stream": "^0.29.5", + "@cosmjs/utils": "^0.29.5", + "axios": "^0.21.2", + "readonly-date": "^1.0.0", + "xstream": "^11.14.0" + }, + "dependencies": { + "@cosmjs/encoding": { + "version": "0.29.5", + "resolved": "https://registry.npmjs.org/@cosmjs/encoding/-/encoding-0.29.5.tgz", + "integrity": "sha512-G4rGl/Jg4dMCw5u6PEZHZcoHnUBlukZODHbm/wcL4Uu91fkn5jVo5cXXZcvs4VCkArVGrEj/52eUgTZCmOBGWQ==", + "requires": { + "base64-js": "^1.3.0", + "bech32": "^1.1.4", + "readonly-date": "^1.0.0" + } + }, + "axios": { + "version": "0.21.4", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.4.tgz", + "integrity": "sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==", + "requires": { + "follow-redirects": "^1.14.0" + } + }, + "bech32": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/bech32/-/bech32-1.1.4.tgz", + "integrity": "sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ==" + } + } + }, + "@cosmjs/utils": { + "version": "0.29.5", + "resolved": "https://registry.npmjs.org/@cosmjs/utils/-/utils-0.29.5.tgz", + "integrity": "sha512-m7h+RXDUxOzEOGt4P+3OVPX7PuakZT3GBmaM/Y2u+abN3xZkziykD/NvedYFvvCCdQo714XcGl33bwifS9FZPQ==" + }, + "@esbuild/aix-ppc64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.20.2.tgz", + "integrity": "sha512-D+EBOJHXdNZcLJRBkhENNG8Wji2kgc9AZ9KiPr1JuZjsNtyHzrsfLRrY0tk2H2aoFu6RANO1y1iPPUCDYWkb5g==", + "dev": true, + "optional": true + }, + "@esbuild/android-arm": { + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.17.18.tgz", + "integrity": "sha512-EmwL+vUBZJ7mhFCs5lA4ZimpUH3WMAoqvOIYhVQwdIgSpHC8ImHdsRyhHAVxpDYUSm0lWvd63z0XH1IlImS2Qw==", + "optional": true + }, + "@esbuild/android-arm64": { + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.17.18.tgz", + "integrity": "sha512-/iq0aK0eeHgSC3z55ucMAHO05OIqmQehiGay8eP5l/5l+iEr4EIbh4/MI8xD9qRFjqzgkc0JkX0LculNC9mXBw==", + "optional": true + }, + "@esbuild/android-x64": { + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.17.18.tgz", + "integrity": "sha512-x+0efYNBF3NPW2Xc5bFOSFW7tTXdAcpfEg2nXmxegm4mJuVeS+i109m/7HMiOQ6M12aVGGFlqJX3RhNdYM2lWg==", + "optional": true + }, + "@esbuild/darwin-arm64": { + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.17.18.tgz", + "integrity": "sha512-6tY+djEAdF48M1ONWnQb1C+6LiXrKjmqjzPNPWXhu/GzOHTHX2nh8Mo2ZAmBFg0kIodHhciEgUBtcYCAIjGbjQ==", + "optional": true + }, + "@esbuild/darwin-x64": { + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.17.18.tgz", + "integrity": "sha512-Qq84ykvLvya3dO49wVC9FFCNUfSrQJLbxhoQk/TE1r6MjHo3sFF2tlJCwMjhkBVq3/ahUisj7+EpRSz0/+8+9A==", + "optional": true + }, + "@esbuild/freebsd-arm64": { + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.17.18.tgz", + "integrity": "sha512-fw/ZfxfAzuHfaQeMDhbzxp9mc+mHn1Y94VDHFHjGvt2Uxl10mT4CDavHm+/L9KG441t1QdABqkVYwakMUeyLRA==", + "optional": true + }, + "@esbuild/freebsd-x64": { + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.17.18.tgz", + "integrity": "sha512-FQFbRtTaEi8ZBi/A6kxOC0V0E9B/97vPdYjY9NdawyLd4Qk5VD5g2pbWN2VR1c0xhzcJm74HWpObPszWC+qTew==", + "optional": true + }, + "@esbuild/linux-arm": { + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.17.18.tgz", + "integrity": "sha512-jW+UCM40LzHcouIaqv3e/oRs0JM76JfhHjCavPxMUti7VAPh8CaGSlS7cmyrdpzSk7A+8f0hiedHqr/LMnfijg==", + "optional": true + }, + "@esbuild/linux-arm64": { + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.17.18.tgz", + "integrity": "sha512-R7pZvQZFOY2sxUG8P6A21eq6q+eBv7JPQYIybHVf1XkQYC+lT7nDBdC7wWKTrbvMXKRaGudp/dzZCwL/863mZQ==", + "optional": true + }, + "@esbuild/linux-ia32": { + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.17.18.tgz", + "integrity": "sha512-ygIMc3I7wxgXIxk6j3V00VlABIjq260i967Cp9BNAk5pOOpIXmd1RFQJQX9Io7KRsthDrQYrtcx7QCof4o3ZoQ==", + "optional": true + }, + "@esbuild/linux-loong64": { + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.17.18.tgz", + "integrity": "sha512-bvPG+MyFs5ZlwYclCG1D744oHk1Pv7j8psF5TfYx7otCVmcJsEXgFEhQkbhNW8otDHL1a2KDINW20cfCgnzgMQ==", + "optional": true + }, + "@esbuild/linux-mips64el": { + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.17.18.tgz", + "integrity": "sha512-oVqckATOAGuiUOa6wr8TXaVPSa+6IwVJrGidmNZS1cZVx0HqkTMkqFGD2HIx9H1RvOwFeWYdaYbdY6B89KUMxA==", + "optional": true + }, + "@esbuild/linux-ppc64": { + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.17.18.tgz", + "integrity": "sha512-3dLlQO+b/LnQNxgH4l9rqa2/IwRJVN9u/bK63FhOPB4xqiRqlQAU0qDU3JJuf0BmaH0yytTBdoSBHrb2jqc5qQ==", + "optional": true + }, + "@esbuild/linux-riscv64": { + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.17.18.tgz", + "integrity": "sha512-/x7leOyDPjZV3TcsdfrSI107zItVnsX1q2nho7hbbQoKnmoeUWjs+08rKKt4AUXju7+3aRZSsKrJtaRmsdL1xA==", + "optional": true + }, + "@esbuild/linux-s390x": { + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.17.18.tgz", + "integrity": "sha512-cX0I8Q9xQkL/6F5zWdYmVf5JSQt+ZfZD2bJudZrWD+4mnUvoZ3TDDXtDX2mUaq6upMFv9FlfIh4Gfun0tbGzuw==", + "optional": true + }, + "@esbuild/linux-x64": { + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.17.18.tgz", + "integrity": "sha512-66RmRsPlYy4jFl0vG80GcNRdirx4nVWAzJmXkevgphP1qf4dsLQCpSKGM3DUQCojwU1hnepI63gNZdrr02wHUA==", + "optional": true + }, + "@esbuild/netbsd-x64": { + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.17.18.tgz", + "integrity": "sha512-95IRY7mI2yrkLlTLb1gpDxdC5WLC5mZDi+kA9dmM5XAGxCME0F8i4bYH4jZreaJ6lIZ0B8hTrweqG1fUyW7jbg==", + "optional": true + }, + "@esbuild/openbsd-x64": { + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.17.18.tgz", + "integrity": "sha512-WevVOgcng+8hSZ4Q3BKL3n1xTv5H6Nb53cBrtzzEjDbbnOmucEVcZeGCsCOi9bAOcDYEeBZbD2SJNBxlfP3qiA==", + "optional": true + }, + "@esbuild/sunos-x64": { + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.17.18.tgz", + "integrity": "sha512-Rzf4QfQagnwhQXVBS3BYUlxmEbcV7MY+BH5vfDZekU5eYpcffHSyjU8T0xucKVuOcdCsMo+Ur5wmgQJH2GfNrg==", + "optional": true + }, + "@esbuild/win32-arm64": { + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.17.18.tgz", + "integrity": "sha512-Kb3Ko/KKaWhjeAm2YoT/cNZaHaD1Yk/pa3FTsmqo9uFh1D1Rfco7BBLIPdDOozrObj2sahslFuAQGvWbgWldAg==", + "optional": true + }, + "@esbuild/win32-ia32": { + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.17.18.tgz", + "integrity": "sha512-0/xUMIdkVHwkvxfbd5+lfG7mHOf2FRrxNbPiKWg9C4fFrB8H0guClmaM3BFiRUYrznVoyxTIyC/Ou2B7QQSwmw==", + "optional": true + }, + "@esbuild/win32-x64": { + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.17.18.tgz", + "integrity": "sha512-qU25Ma1I3NqTSHJUOKi9sAH1/Mzuvlke0ioMJRthLXKm7JiSKVwFghlGbDLOO2sARECGhja4xYfRAZNPAkooYg==", + "optional": true + }, + "@ethereumjs/common": { + "version": "2.6.5", + "resolved": "https://registry.npmjs.org/@ethereumjs/common/-/common-2.6.5.tgz", + "integrity": "sha512-lRyVQOeCDaIVtgfbowla32pzeDv2Obr8oR8Put5RdUBNRGr1VGPGQNGP6elWIpgK3YdpzqTOh4GyUGOureVeeA==", + "requires": { + "crc-32": "^1.2.0", + "ethereumjs-util": "^7.1.5" + } + }, + "@ethereumjs/tx": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/@ethereumjs/tx/-/tx-3.5.2.tgz", + "integrity": "sha512-gQDNJWKrSDGu2w7w0PzVXVBNMzb7wwdDOmOqczmhNjqFxFuIbhVJDwiGEnxFNC2/b8ifcZzY7MLcluizohRzNw==", + "requires": { + "@ethereumjs/common": "^2.6.4", + "ethereumjs-util": "^7.1.5" + } + }, + "@ethersproject/abi": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/abi/-/abi-5.7.0.tgz", + "integrity": "sha512-351ktp42TiRcYB3H1OP8yajPeAQstMW/yCFokj/AthP9bLHzQFPlOrxOcwYEDkUAICmOHljvN4K39OMTMUa9RA==", + "requires": { + "@ethersproject/address": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/hash": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/strings": "^5.7.0" + } + }, + "@ethersproject/abstract-provider": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/abstract-provider/-/abstract-provider-5.7.0.tgz", + "integrity": "sha512-R41c9UkchKCpAqStMYUpdunjo3pkEvZC3FAwZn5S5MGbXoMQOHIdHItezTETxAO5bevtMApSyEhn9+CHcDsWBw==", + "requires": { + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/networks": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/transactions": "^5.7.0", + "@ethersproject/web": "^5.7.0" + } + }, + "@ethersproject/abstract-signer": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/abstract-signer/-/abstract-signer-5.7.0.tgz", + "integrity": "sha512-a16V8bq1/Cz+TGCkE2OPMTOUDLS3grCpdjoJCYNnVBbdYEMSgKrU0+B90s8b6H+ByYTBZN7a3g76jdIJi7UfKQ==", + "requires": { + "@ethersproject/abstract-provider": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0" + } + }, + "@ethersproject/address": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/address/-/address-5.7.0.tgz", + "integrity": "sha512-9wYhYt7aghVGo758POM5nqcOMaE168Q6aRLJZwUmiqSrAungkG74gSSeKEIR7ukixesdRZGPgVqme6vmxs1fkA==", + "requires": { + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/rlp": "^5.7.0" + } + }, + "@ethersproject/base64": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/base64/-/base64-5.7.0.tgz", + "integrity": "sha512-Dr8tcHt2mEbsZr/mwTPIQAf3Ai0Bks/7gTw9dSqk1mQvhW3XvRlmDJr/4n+wg1JmCl16NZue17CDh8xb/vZ0sQ==", + "requires": { + "@ethersproject/bytes": "^5.7.0" + } + }, + "@ethersproject/basex": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/basex/-/basex-5.7.0.tgz", + "integrity": "sha512-ywlh43GwZLv2Voc2gQVTKBoVQ1mti3d8HK5aMxsfu/nRDnMmNqaSJ3r3n85HBByT8OpoY96SXM1FogC533T4zw==", + "requires": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/properties": "^5.7.0" + } + }, + "@ethersproject/bignumber": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/bignumber/-/bignumber-5.7.0.tgz", + "integrity": "sha512-n1CAdIHRWjSucQO3MC1zPSVgV/6dy/fjL9pMrPP9peL+QxEg9wOsVqwD4+818B6LUEtaXzVHQiuivzRoxPxUGw==", + "requires": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "bn.js": "^5.2.1" + } + }, + "@ethersproject/bytes": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/bytes/-/bytes-5.7.0.tgz", + "integrity": "sha512-nsbxwgFXWh9NyYWo+U8atvmMsSdKJprTcICAkvbBffT75qDocbuggBU0SJiVK2MuTrp0q+xvLkTnGMPK1+uA9A==", + "requires": { + "@ethersproject/logger": "^5.7.0" + } + }, + "@ethersproject/constants": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/constants/-/constants-5.7.0.tgz", + "integrity": "sha512-DHI+y5dBNvkpYUMiRQyxRBYBefZkJfo70VUkUAsRjcPs47muV9evftfZ0PJVCXYbAiCgght0DtcF9srFQmIgWA==", + "requires": { + "@ethersproject/bignumber": "^5.7.0" + } + }, + "@ethersproject/contracts": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/contracts/-/contracts-5.7.0.tgz", + "integrity": "sha512-5GJbzEU3X+d33CdfPhcyS+z8MzsTrBGk/sc+G+59+tPa9yFkl6HQ9D6L0QMgNTA9q8dT0XKxxkyp883XsQvbbg==", + "requires": { + "@ethersproject/abi": "^5.7.0", + "@ethersproject/abstract-provider": "^5.7.0", + "@ethersproject/abstract-signer": "^5.7.0", + "@ethersproject/address": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/transactions": "^5.7.0" + } + }, + "@ethersproject/hash": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/hash/-/hash-5.7.0.tgz", + "integrity": "sha512-qX5WrQfnah1EFnO5zJv1v46a8HW0+E5xuBBDTwMFZLuVTx0tbU2kkx15NqdjxecrLGatQN9FGQKpb1FKdHCt+g==", + "requires": { + "@ethersproject/abstract-signer": "^5.7.0", + "@ethersproject/address": "^5.7.0", + "@ethersproject/base64": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/strings": "^5.7.0" + } + }, + "@ethersproject/hdnode": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/hdnode/-/hdnode-5.7.0.tgz", + "integrity": "sha512-OmyYo9EENBPPf4ERhR7oj6uAtUAhYGqOnIS+jE5pTXvdKBS99ikzq1E7Iv0ZQZ5V36Lqx1qZLeak0Ra16qpeOg==", + "requires": { + "@ethersproject/abstract-signer": "^5.7.0", + "@ethersproject/basex": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/pbkdf2": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/sha2": "^5.7.0", + "@ethersproject/signing-key": "^5.7.0", + "@ethersproject/strings": "^5.7.0", + "@ethersproject/transactions": "^5.7.0", + "@ethersproject/wordlists": "^5.7.0" + } + }, + "@ethersproject/json-wallets": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/json-wallets/-/json-wallets-5.7.0.tgz", + "integrity": "sha512-8oee5Xgu6+RKgJTkvEMl2wDgSPSAQ9MB/3JYjFV9jlKvcYHUXZC+cQp0njgmxdHkYWn8s6/IqIZYm0YWCjO/0g==", + "requires": { + "@ethersproject/abstract-signer": "^5.7.0", + "@ethersproject/address": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/hdnode": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/pbkdf2": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/random": "^5.7.0", + "@ethersproject/strings": "^5.7.0", + "@ethersproject/transactions": "^5.7.0", + "aes-js": "3.0.0", + "scrypt-js": "3.0.1" + } + }, + "@ethersproject/keccak256": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/keccak256/-/keccak256-5.7.0.tgz", + "integrity": "sha512-2UcPboeL/iW+pSg6vZ6ydF8tCnv3Iu/8tUmLLzWWGzxWKFFqOBQFLo6uLUv6BDrLgCDfN28RJ/wtByx+jZ4KBg==", + "requires": { + "@ethersproject/bytes": "^5.7.0", + "js-sha3": "0.8.0" + } + }, + "@ethersproject/logger": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/logger/-/logger-5.7.0.tgz", + "integrity": "sha512-0odtFdXu/XHtjQXJYA3u9G0G8btm0ND5Cu8M7i5vhEcE8/HmF4Lbdqanwyv4uQTr2tx6b7fQRmgLrsnpQlmnig==" + }, + "@ethersproject/networks": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/@ethersproject/networks/-/networks-5.7.1.tgz", + "integrity": "sha512-n/MufjFYv3yFcUyfhnXotyDlNdFb7onmkSy8aQERi2PjNcnWQ66xXxa3XlS8nCcA8aJKJjIIMNJTC7tu80GwpQ==", + "requires": { + "@ethersproject/logger": "^5.7.0" + } + }, + "@ethersproject/pbkdf2": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/pbkdf2/-/pbkdf2-5.7.0.tgz", + "integrity": "sha512-oR/dBRZR6GTyaofd86DehG72hY6NpAjhabkhxgr3X2FpJtJuodEl2auADWBZfhDHgVCbu3/H/Ocq2uC6dpNjjw==", + "requires": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/sha2": "^5.7.0" + } + }, + "@ethersproject/properties": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/properties/-/properties-5.7.0.tgz", + "integrity": "sha512-J87jy8suntrAkIZtecpxEPxY//szqr1mlBaYlQ0r4RCaiD2hjheqF9s1LVE8vVuJCXisjIP+JgtK/Do54ej4Sw==", + "requires": { + "@ethersproject/logger": "^5.7.0" + } + }, + "@ethersproject/providers": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/@ethersproject/providers/-/providers-5.7.2.tgz", + "integrity": "sha512-g34EWZ1WWAVgr4aptGlVBF8mhl3VWjv+8hoAnzStu8Ah22VHBsuGzP17eb6xDVRzw895G4W7vvx60lFFur/1Rg==", + "requires": { + "@ethersproject/abstract-provider": "^5.7.0", + "@ethersproject/abstract-signer": "^5.7.0", + "@ethersproject/address": "^5.7.0", + "@ethersproject/base64": "^5.7.0", + "@ethersproject/basex": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/hash": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/networks": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/random": "^5.7.0", + "@ethersproject/rlp": "^5.7.0", + "@ethersproject/sha2": "^5.7.0", + "@ethersproject/strings": "^5.7.0", + "@ethersproject/transactions": "^5.7.0", + "@ethersproject/web": "^5.7.0", + "bech32": "1.1.4", + "ws": "7.4.6" + }, + "dependencies": { + "bech32": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/bech32/-/bech32-1.1.4.tgz", + "integrity": "sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ==" + }, + "ws": { + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz", + "integrity": "sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==", + "requires": {} + } + } + }, + "@ethersproject/random": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/random/-/random-5.7.0.tgz", + "integrity": "sha512-19WjScqRA8IIeWclFme75VMXSBvi4e6InrUNuaR4s5pTF2qNhcGdCUwdxUVGtDDqC00sDLCO93jPQoDUH4HVmQ==", + "requires": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0" + } + }, + "@ethersproject/rlp": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/rlp/-/rlp-5.7.0.tgz", + "integrity": "sha512-rBxzX2vK8mVF7b0Tol44t5Tb8gomOHkj5guL+HhzQ1yBh/ydjGnpw6at+X6Iw0Kp3OzzzkcKp8N9r0W4kYSs9w==", + "requires": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0" + } + }, + "@ethersproject/sha2": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/sha2/-/sha2-5.7.0.tgz", + "integrity": "sha512-gKlH42riwb3KYp0reLsFTokByAKoJdgFCwI+CCiX/k+Jm2mbNs6oOaCjYQSlI1+XBVejwH2KrmCbMAT/GnRDQw==", + "requires": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "hash.js": "1.1.7" + } + }, + "@ethersproject/signing-key": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/signing-key/-/signing-key-5.7.0.tgz", + "integrity": "sha512-MZdy2nL3wO0u7gkB4nA/pEf8lu1TlFswPNmy8AiYkfKTdO6eXBJyUdmHO/ehm/htHw9K/qF8ujnTyUAD+Ry54Q==", + "requires": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "bn.js": "^5.2.1", + "elliptic": "6.5.4", + "hash.js": "1.1.7" + } + }, + "@ethersproject/solidity": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/solidity/-/solidity-5.7.0.tgz", + "integrity": "sha512-HmabMd2Dt/raavyaGukF4XxizWKhKQ24DoLtdNbBmNKUOPqwjsKQSdV9GQtj9CBEea9DlzETlVER1gYeXXBGaA==", + "requires": { + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/sha2": "^5.7.0", + "@ethersproject/strings": "^5.7.0" + } + }, + "@ethersproject/strings": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/strings/-/strings-5.7.0.tgz", + "integrity": "sha512-/9nu+lj0YswRNSH0NXYqrh8775XNyEdUQAuf3f+SmOrnVewcJ5SBNAjF7lpgehKi4abvNNXyf+HX86czCdJ8Mg==", + "requires": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/logger": "^5.7.0" + } + }, + "@ethersproject/transactions": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/transactions/-/transactions-5.7.0.tgz", + "integrity": "sha512-kmcNicCp1lp8qanMTC3RIikGgoJ80ztTyvtsFvCYpSCfkjhD0jZ2LOrnbcuxuToLIUYYf+4XwD1rP+B/erDIhQ==", + "requires": { + "@ethersproject/address": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/rlp": "^5.7.0", + "@ethersproject/signing-key": "^5.7.0" + } + }, + "@ethersproject/units": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/units/-/units-5.7.0.tgz", + "integrity": "sha512-pD3xLMy3SJu9kG5xDGI7+xhTEmGXlEqXU4OfNapmfnxLVY4EMSSRp7j1k7eezutBPH7RBN/7QPnwR7hzNlEFeg==", + "requires": { + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/logger": "^5.7.0" + } + }, + "@ethersproject/wallet": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/wallet/-/wallet-5.7.0.tgz", + "integrity": "sha512-MhmXlJXEJFBFVKrDLB4ZdDzxcBxQ3rLyCkhNqVu3CDYvR97E+8r01UgrI+TI99Le+aYm/in/0vp86guJuM7FCA==", + "requires": { + "@ethersproject/abstract-provider": "^5.7.0", + "@ethersproject/abstract-signer": "^5.7.0", + "@ethersproject/address": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/hash": "^5.7.0", + "@ethersproject/hdnode": "^5.7.0", + "@ethersproject/json-wallets": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/random": "^5.7.0", + "@ethersproject/signing-key": "^5.7.0", + "@ethersproject/transactions": "^5.7.0", + "@ethersproject/wordlists": "^5.7.0" + } + }, + "@ethersproject/web": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/@ethersproject/web/-/web-5.7.1.tgz", + "integrity": "sha512-Gueu8lSvyjBWL4cYsWsjh6MtMwM0+H4HvqFPZfB6dV8ctbP9zFAO73VG1cMWae0FLPCtz0peKPpZY8/ugJJX2w==", + "requires": { + "@ethersproject/base64": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/strings": "^5.7.0" + } + }, + "@ethersproject/wordlists": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/wordlists/-/wordlists-5.7.0.tgz", + "integrity": "sha512-S2TFNJNfHWVHNE6cNDjbVlZ6MgE17MIxMbMg2zv3wn+3XSJGosL1m9ZVv3GXCf/2ymSsQ+hRI5IzoMJTG6aoVA==", + "requires": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/hash": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/strings": "^5.7.0" + } + }, + "@gql.tada/cli-utils": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@gql.tada/cli-utils/-/cli-utils-1.6.0.tgz", + "integrity": "sha512-RYWpoWVm6/ypvDp7UTzh3UrEgIJq2+HaUlAcbdLzKdO8ZfFgP16gBpxtYvbRPWwQEjn5HMGgpzIBh7Kftp10PA==", + "requires": { + "@0no-co/graphqlsp": "^1.12.9", + "@gql.tada/internal": "1.0.6", + "graphql": "^15.5.0 || ^16.0.0 || ^17.0.0" + } + }, + "@gql.tada/internal": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/@gql.tada/internal/-/internal-1.0.6.tgz", + "integrity": "sha512-K5dKMqqU0pcNWS+/i6EnoUGvA7lW2Agwl+nepZOEWbGpG80aJxXfL+yAvaHihP5VqGZFOygyc3NDBo1mm+Z4KQ==", + "requires": { + "@0no-co/graphql.web": "^1.0.5" + } + }, + "@graphql-typed-document-node/core": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@graphql-typed-document-node/core/-/core-3.2.0.tgz", + "integrity": "sha512-mB9oAsNCm9aM3/SOv4YtBMqZbYj10R7dkq8byBqxGY/ncFwhf2oQzMV+LCRlWoDSEBJ3COiR1yeDvMtsoOsuFQ==", + "requires": {} + }, + "@improbable-eng/grpc-web": { + "version": "0.14.1", + "resolved": "https://registry.npmjs.org/@improbable-eng/grpc-web/-/grpc-web-0.14.1.tgz", + "integrity": "sha512-XaIYuunepPxoiGVLLHmlnVminUGzBTnXr8Wv7khzmLWbNw4TCwJKX09GSMJlKhu/TRk6gms0ySFxewaETSBqgw==", + "requires": { + "browser-headers": "^0.4.1" + } + }, + "@improbable-eng/grpc-web-node-http-transport": { + "version": "0.15.0", + "resolved": "https://registry.npmjs.org/@improbable-eng/grpc-web-node-http-transport/-/grpc-web-node-http-transport-0.15.0.tgz", + "integrity": "sha512-HLgJfVolGGpjc9DWPhmMmXJx8YGzkek7jcCFO1YYkSOoO81MWRZentPOd/JiKiZuU08wtc4BG+WNuGzsQB5jZA==", + "requires": {} + }, + "@injectivelabs/core-proto-ts": { + "version": "0.0.14", + "resolved": "https://registry.npmjs.org/@injectivelabs/core-proto-ts/-/core-proto-ts-0.0.14.tgz", + "integrity": "sha512-NZWlgBzgVrXow9IknFQHvcYKX4QkUD25taRigoNYQK8PDn4+VXd9xM5WFUDRhzm2smTCguyl/+MghpEp4oTPWw==", + "requires": { + "@injectivelabs/grpc-web": "^0.0.1", + "google-protobuf": "^3.14.0", + "protobufjs": "^7.0.0", + "rxjs": "^7.4.0" + }, + "dependencies": { + "long": { + "version": "5.2.3", + "resolved": "https://registry.npmjs.org/long/-/long-5.2.3.tgz", + "integrity": "sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q==" + }, + "protobufjs": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.2.3.tgz", + "integrity": "sha512-TtpvOqwB5Gdz/PQmOjgsrGH1nHjAQVCN7JG4A6r1sXRWESL5rNMAiRcBQlCAdKxZcAbstExQePYG8xof/JVRgg==", + "requires": { + "@protobufjs/aspromise": "^1.1.2", + "@protobufjs/base64": "^1.1.2", + "@protobufjs/codegen": "^2.0.4", + "@protobufjs/eventemitter": "^1.1.0", + "@protobufjs/fetch": "^1.1.0", + "@protobufjs/float": "^1.0.2", + "@protobufjs/inquire": "^1.1.0", + "@protobufjs/path": "^1.1.2", + "@protobufjs/pool": "^1.1.0", + "@protobufjs/utf8": "^1.1.0", + "@types/node": ">=13.7.0", + "long": "^5.0.0" + } + } + } + }, + "@injectivelabs/dmm-proto-ts": { + "version": "1.0.20", + "resolved": "https://registry.npmjs.org/@injectivelabs/dmm-proto-ts/-/dmm-proto-ts-1.0.20.tgz", + "integrity": "sha512-S9vGOAZbNNa+N5QDW2HcXn7ohvU/4qze6wELA9gF8zu8uWbE+UKWTqzkZ+B4XuG1MkJwoHL7pVcj3M+nC9Qe4A==", + "requires": { + "@injectivelabs/grpc-web": "^0.0.1", + "google-protobuf": "^3.14.0", + "protobufjs": "^7.0.0", + "rxjs": "^7.4.0" + }, + "dependencies": { + "long": { + "version": "5.2.3", + "resolved": "https://registry.npmjs.org/long/-/long-5.2.3.tgz", + "integrity": "sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q==" + }, + "protobufjs": { + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.3.2.tgz", + "integrity": "sha512-RXyHaACeqXeqAKGLDl68rQKbmObRsTIn4TYVUUug1KfS47YWCo5MacGITEryugIgZqORCvJWEk4l449POg5Txg==", + "requires": { + "@protobufjs/aspromise": "^1.1.2", + "@protobufjs/base64": "^1.1.2", + "@protobufjs/codegen": "^2.0.4", + "@protobufjs/eventemitter": "^1.1.0", + "@protobufjs/fetch": "^1.1.0", + "@protobufjs/float": "^1.0.2", + "@protobufjs/inquire": "^1.1.0", + "@protobufjs/path": "^1.1.2", + "@protobufjs/pool": "^1.1.0", + "@protobufjs/utf8": "^1.1.0", + "@types/node": ">=13.7.0", + "long": "^5.0.0" + } + } + } + }, + "@injectivelabs/exceptions": { + "version": "1.14.13", + "resolved": "https://registry.npmjs.org/@injectivelabs/exceptions/-/exceptions-1.14.13.tgz", + "integrity": "sha512-yFtB0jQtZI6D3AuaP6ObYtlVgDB4vriCWuV+6GY3frduv7i3kz1ZYVsPKsKSKBCOD5QegZXcEmGJL4RiDi1OKA==", + "requires": { + "@injectivelabs/grpc-web": "^0.0.1", + "@injectivelabs/ts-types": "^1.14.13", + "http-status-codes": "^2.2.0", + "link-module-alias": "^1.2.0", + "shx": "^0.3.2" + } + }, + "@injectivelabs/grpc-web": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/@injectivelabs/grpc-web/-/grpc-web-0.0.1.tgz", + "integrity": "sha512-Pu5YgaZp+OvR5UWfqbrPdHer3+gDf+b5fQoY+t2VZx1IAVHX8bzbN9EreYTvTYtFeDpYRWM8P7app2u4EX5wTw==", + "requires": { + "browser-headers": "^0.4.1" + } + }, + "@injectivelabs/grpc-web-node-http-transport": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/@injectivelabs/grpc-web-node-http-transport/-/grpc-web-node-http-transport-0.0.2.tgz", + "integrity": "sha512-rpyhXLiGY/UMs6v6YmgWHJHiO9l0AgDyVNv+jcutNVt4tQrmNvnpvz2wCAGOFtq5LuX/E9ChtTVpk3gWGqXcGA==", + "requires": {} + }, + "@injectivelabs/grpc-web-react-native-transport": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/@injectivelabs/grpc-web-react-native-transport/-/grpc-web-react-native-transport-0.0.2.tgz", + "integrity": "sha512-mk+aukQXnYNgPsPnu3KBi+FD0ZHQpazIlaBZ2jNZG7QAVmxTWtv3R66Zoq99Wx2dnE946NsZBYAoa0K5oSjnow==", + "requires": {} + }, + "@injectivelabs/indexer-proto-ts": { + "version": "1.10.8-rc.4", + "resolved": "https://registry.npmjs.org/@injectivelabs/indexer-proto-ts/-/indexer-proto-ts-1.10.8-rc.4.tgz", + "integrity": "sha512-IwbepTfsHHAv3Z36As6yH/+HIplOEpUu6SFHBCVgdSIaQ8GuvTib4HETiVnV4mjYqoyVgWs+zLSAfih46rdMJQ==", + "requires": { + "@injectivelabs/grpc-web": "^0.0.1", + "google-protobuf": "^3.14.0", + "protobufjs": "^7.0.0", + "rxjs": "^7.4.0" + }, + "dependencies": { + "long": { + "version": "5.2.3", + "resolved": "https://registry.npmjs.org/long/-/long-5.2.3.tgz", + "integrity": "sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q==" + }, + "protobufjs": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.2.3.tgz", + "integrity": "sha512-TtpvOqwB5Gdz/PQmOjgsrGH1nHjAQVCN7JG4A6r1sXRWESL5rNMAiRcBQlCAdKxZcAbstExQePYG8xof/JVRgg==", + "requires": { + "@protobufjs/aspromise": "^1.1.2", + "@protobufjs/base64": "^1.1.2", + "@protobufjs/codegen": "^2.0.4", + "@protobufjs/eventemitter": "^1.1.0", + "@protobufjs/fetch": "^1.1.0", + "@protobufjs/float": "^1.0.2", + "@protobufjs/inquire": "^1.1.0", + "@protobufjs/path": "^1.1.2", + "@protobufjs/pool": "^1.1.0", + "@protobufjs/utf8": "^1.1.0", + "@types/node": ">=13.7.0", + "long": "^5.0.0" + } + } + } + }, + "@injectivelabs/mito-proto-ts": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/@injectivelabs/mito-proto-ts/-/mito-proto-ts-1.0.9.tgz", + "integrity": "sha512-+TZMvJ4SHwcn6SFPdqaiQFZdNhjH7hyRFozY15nOTC2utdGij9jEsjz1NsyOejfYDA0s1z5Wm1SgrMYKaVpAmQ==", + "requires": { + "@injectivelabs/grpc-web": "^0.0.1", + "google-protobuf": "^3.14.0", + "protobufjs": "^7.0.0", + "rxjs": "^7.4.0" + }, + "dependencies": { + "long": { + "version": "5.2.3", + "resolved": "https://registry.npmjs.org/long/-/long-5.2.3.tgz", + "integrity": "sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q==" + }, + "protobufjs": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.2.3.tgz", + "integrity": "sha512-TtpvOqwB5Gdz/PQmOjgsrGH1nHjAQVCN7JG4A6r1sXRWESL5rNMAiRcBQlCAdKxZcAbstExQePYG8xof/JVRgg==", + "requires": { + "@protobufjs/aspromise": "^1.1.2", + "@protobufjs/base64": "^1.1.2", + "@protobufjs/codegen": "^2.0.4", + "@protobufjs/eventemitter": "^1.1.0", + "@protobufjs/fetch": "^1.1.0", + "@protobufjs/float": "^1.0.2", + "@protobufjs/inquire": "^1.1.0", + "@protobufjs/path": "^1.1.2", + "@protobufjs/pool": "^1.1.0", + "@protobufjs/utf8": "^1.1.0", + "@types/node": ">=13.7.0", + "long": "^5.0.0" + } + } + } + }, + "@injectivelabs/networks": { + "version": "1.10.12", + "resolved": "https://registry.npmjs.org/@injectivelabs/networks/-/networks-1.10.12.tgz", + "integrity": "sha512-tTHyLls1Nik5QTs/S03qqG2y/ITvNwI8CJOQbMmmsr1CL2CdjJBtzRYn9Dyx2p8XgzRFf9hmlybpe20tq9O3SA==", + "requires": { + "@injectivelabs/exceptions": "^1.10.12", + "@injectivelabs/ts-types": "^1.10.12", + "@injectivelabs/utils": "^1.10.12", + "link-module-alias": "^1.2.0", + "shx": "^0.3.2" + } + }, + "@injectivelabs/sdk-ts": { + "version": "1.10.72", + "resolved": "https://registry.npmjs.org/@injectivelabs/sdk-ts/-/sdk-ts-1.10.72.tgz", + "integrity": "sha512-A5mHNNBgO4fI1c/7CZ0bGfVXliy8laP+VaYZ++aWh1YyudoZw4CTCEmLetZRy7AUU3XcfbHa8sAImRi7db+v6Q==", + "requires": { + "@apollo/client": "^3.5.8", + "@cosmjs/amino": "^0.30.1", + "@cosmjs/proto-signing": "^0.30.1", + "@cosmjs/stargate": "^0.30.1", + "@ethersproject/bytes": "^5.7.0", + "@injectivelabs/core-proto-ts": "^0.0.14", + "@injectivelabs/exceptions": "^1.10.12", + "@injectivelabs/grpc-web": "^0.0.1", + "@injectivelabs/grpc-web-node-http-transport": "^0.0.2", + "@injectivelabs/grpc-web-react-native-transport": "^0.0.2", + "@injectivelabs/indexer-proto-ts": "1.10.8-rc.4", + "@injectivelabs/mito-proto-ts": "1.0.9", + "@injectivelabs/networks": "^1.10.12", + "@injectivelabs/test-utils": "^1.10.12", + "@injectivelabs/token-metadata": "^1.10.42", + "@injectivelabs/ts-types": "^1.10.12", + "@injectivelabs/utils": "^1.10.12", + "@metamask/eth-sig-util": "^4.0.0", + "axios": "^0.27.2", + "bech32": "^2.0.0", + "bip39": "^3.0.4", + "cosmjs-types": "^0.7.1", + "eth-crypto": "^2.6.0", + "ethereumjs-util": "^7.1.4", + "ethers": "^5.7.2", + "google-protobuf": "^3.21.0", + "graphql": "^16.3.0", + "http-status-codes": "^2.2.0", + "js-sha3": "^0.8.0", + "jscrypto": "^1.0.3", + "keccak256": "^1.0.6", + "link-module-alias": "^1.2.0", + "rxjs": "^7.8.0", + "secp256k1": "^4.0.3", + "shx": "^0.3.2", + "snakecase-keys": "^5.4.1" + }, + "dependencies": { + "@cosmjs/amino": { + "version": "0.30.1", + "resolved": "https://registry.npmjs.org/@cosmjs/amino/-/amino-0.30.1.tgz", + "integrity": "sha512-yNHnzmvAlkETDYIpeCTdVqgvrdt1qgkOXwuRVi8s27UKI5hfqyE9fJ/fuunXE6ZZPnKkjIecDznmuUOMrMvw4w==", + "requires": { + "@cosmjs/crypto": "^0.30.1", + "@cosmjs/encoding": "^0.30.1", + "@cosmjs/math": "^0.30.1", + "@cosmjs/utils": "^0.30.1" + } + }, + "@cosmjs/crypto": { + "version": "0.30.1", + "resolved": "https://registry.npmjs.org/@cosmjs/crypto/-/crypto-0.30.1.tgz", + "integrity": "sha512-rAljUlake3MSXs9xAm87mu34GfBLN0h/1uPPV6jEwClWjNkAMotzjC0ab9MARy5FFAvYHL3lWb57bhkbt2GtzQ==", + "requires": { + "@cosmjs/encoding": "^0.30.1", + "@cosmjs/math": "^0.30.1", + "@cosmjs/utils": "^0.30.1", + "@noble/hashes": "^1", + "bn.js": "^5.2.0", + "elliptic": "^6.5.4", + "libsodium-wrappers": "^0.7.6" + } + }, + "@cosmjs/encoding": { + "version": "0.30.1", + "resolved": "https://registry.npmjs.org/@cosmjs/encoding/-/encoding-0.30.1.tgz", + "integrity": "sha512-rXmrTbgqwihORwJ3xYhIgQFfMSrwLu1s43RIK9I8EBudPx3KmnmyAKzMOVsRDo9edLFNuZ9GIvysUCwQfq3WlQ==", + "requires": { + "base64-js": "^1.3.0", + "bech32": "^1.1.4", + "readonly-date": "^1.0.0" + }, + "dependencies": { + "bech32": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/bech32/-/bech32-1.1.4.tgz", + "integrity": "sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ==" + } + } + }, + "@cosmjs/json-rpc": { + "version": "0.30.1", + "resolved": "https://registry.npmjs.org/@cosmjs/json-rpc/-/json-rpc-0.30.1.tgz", + "integrity": "sha512-pitfC/2YN9t+kXZCbNuyrZ6M8abnCC2n62m+JtU9vQUfaEtVsgy+1Fk4TRQ175+pIWSdBMFi2wT8FWVEE4RhxQ==", + "requires": { + "@cosmjs/stream": "^0.30.1", + "xstream": "^11.14.0" + } + }, + "@cosmjs/math": { + "version": "0.30.1", + "resolved": "https://registry.npmjs.org/@cosmjs/math/-/math-0.30.1.tgz", + "integrity": "sha512-yaoeI23pin9ZiPHIisa6qqLngfnBR/25tSaWpkTm8Cy10MX70UF5oN4+/t1heLaM6SSmRrhk3psRkV4+7mH51Q==", + "requires": { + "bn.js": "^5.2.0" + } + }, + "@cosmjs/proto-signing": { + "version": "0.30.1", + "resolved": "https://registry.npmjs.org/@cosmjs/proto-signing/-/proto-signing-0.30.1.tgz", + "integrity": "sha512-tXh8pPYXV4aiJVhTKHGyeZekjj+K9s2KKojMB93Gcob2DxUjfKapFYBMJSgfKPuWUPEmyr8Q9km2hplI38ILgQ==", + "requires": { + "@cosmjs/amino": "^0.30.1", + "@cosmjs/crypto": "^0.30.1", + "@cosmjs/encoding": "^0.30.1", + "@cosmjs/math": "^0.30.1", + "@cosmjs/utils": "^0.30.1", + "cosmjs-types": "^0.7.1", + "long": "^4.0.0" + } + }, + "@cosmjs/socket": { + "version": "0.30.1", + "resolved": "https://registry.npmjs.org/@cosmjs/socket/-/socket-0.30.1.tgz", + "integrity": "sha512-r6MpDL+9N+qOS/D5VaxnPaMJ3flwQ36G+vPvYJsXArj93BjgyFB7BwWwXCQDzZ+23cfChPUfhbINOenr8N2Kow==", + "requires": { + "@cosmjs/stream": "^0.30.1", + "isomorphic-ws": "^4.0.1", + "ws": "^7", + "xstream": "^11.14.0" + } + }, + "@cosmjs/stargate": { + "version": "0.30.1", + "resolved": "https://registry.npmjs.org/@cosmjs/stargate/-/stargate-0.30.1.tgz", + "integrity": "sha512-RdbYKZCGOH8gWebO7r6WvNnQMxHrNXInY/gPHPzMjbQF6UatA6fNM2G2tdgS5j5u7FTqlCI10stNXrknaNdzog==", + "requires": { + "@confio/ics23": "^0.6.8", + "@cosmjs/amino": "^0.30.1", + "@cosmjs/encoding": "^0.30.1", + "@cosmjs/math": "^0.30.1", + "@cosmjs/proto-signing": "^0.30.1", + "@cosmjs/stream": "^0.30.1", + "@cosmjs/tendermint-rpc": "^0.30.1", + "@cosmjs/utils": "^0.30.1", + "cosmjs-types": "^0.7.1", + "long": "^4.0.0", + "protobufjs": "~6.11.3", + "xstream": "^11.14.0" + } + }, + "@cosmjs/stream": { + "version": "0.30.1", + "resolved": "https://registry.npmjs.org/@cosmjs/stream/-/stream-0.30.1.tgz", + "integrity": "sha512-Fg0pWz1zXQdoxQZpdHRMGvUH5RqS6tPv+j9Eh7Q953UjMlrwZVo0YFLC8OTf/HKVf10E4i0u6aM8D69Q6cNkgQ==", + "requires": { + "xstream": "^11.14.0" + } + }, + "@cosmjs/tendermint-rpc": { + "version": "0.30.1", + "resolved": "https://registry.npmjs.org/@cosmjs/tendermint-rpc/-/tendermint-rpc-0.30.1.tgz", + "integrity": "sha512-Z3nCwhXSbPZJ++v85zHObeUggrEHVfm1u18ZRwXxFE9ZMl5mXTybnwYhczuYOl7KRskgwlB+rID0WYACxj4wdQ==", + "requires": { + "@cosmjs/crypto": "^0.30.1", + "@cosmjs/encoding": "^0.30.1", + "@cosmjs/json-rpc": "^0.30.1", + "@cosmjs/math": "^0.30.1", + "@cosmjs/socket": "^0.30.1", + "@cosmjs/stream": "^0.30.1", + "@cosmjs/utils": "^0.30.1", + "axios": "^0.21.2", + "readonly-date": "^1.0.0", + "xstream": "^11.14.0" + }, + "dependencies": { + "axios": { + "version": "0.21.4", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.4.tgz", + "integrity": "sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==", + "requires": { + "follow-redirects": "^1.14.0" + } + } + } + }, + "@cosmjs/utils": { + "version": "0.30.1", + "resolved": "https://registry.npmjs.org/@cosmjs/utils/-/utils-0.30.1.tgz", + "integrity": "sha512-KvvX58MGMWh7xA+N+deCfunkA/ZNDvFLw4YbOmX3f/XBIkqrVY7qlotfy2aNb1kgp6h4B6Yc8YawJPDTfvWX7g==" + }, + "axios": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.27.2.tgz", + "integrity": "sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==", + "requires": { + "follow-redirects": "^1.14.9", + "form-data": "^4.0.0" + } + }, + "cosmjs-types": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/cosmjs-types/-/cosmjs-types-0.7.2.tgz", + "integrity": "sha512-vf2uLyktjr/XVAgEq0DjMxeAWh1yYREe7AMHDKd7EiHVqxBPCaBS+qEEQUkXbR9ndnckqr1sUG8BQhazh4X5lA==", + "requires": { + "long": "^4.0.0", + "protobufjs": "~6.11.2" + } + }, + "form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + } + } + } + }, + "@injectivelabs/test-utils": { + "version": "1.14.13", + "resolved": "https://registry.npmjs.org/@injectivelabs/test-utils/-/test-utils-1.14.13.tgz", + "integrity": "sha512-wa5TQcWLvORRm36mw4Hee+XF7lBlArVK3DM1ebC0uBvVcUgrmm3g/nh1pV/NzLN16WtrLLsvnTsE5uiNEcgYdw==", + "requires": { + "axios": "^1.6.4", + "bignumber.js": "^9.0.1", + "link-module-alias": "^1.2.0", + "shx": "^0.3.2", + "snakecase-keys": "^5.1.2", + "store2": "^2.12.0" + }, + "dependencies": { + "axios": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.3.tgz", + "integrity": "sha512-Ar7ND9pU99eJ9GpoGQKhKf58GpUOgnzuaB7ueNQ5BMi0p+LZ5oaEnfF999fAArcTIBwXTCHAmGcHOZJaWPq9Nw==", + "requires": { + "follow-redirects": "^1.15.6", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" + } + }, + "form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + } + } + } + }, + "@injectivelabs/token-metadata": { + "version": "1.14.7", + "resolved": "https://registry.npmjs.org/@injectivelabs/token-metadata/-/token-metadata-1.14.7.tgz", + "integrity": "sha512-RRRuyirzoThwQ5P8D3STH2YOavGsdnetQy6ZPQ8yA7VUavt00KBB26M92zSLbiUz5VrxhPHDCEEkuJVWx+xtmw==", + "requires": { + "@injectivelabs/exceptions": "^1.14.6", + "@injectivelabs/networks": "^1.14.6", + "@injectivelabs/ts-types": "^1.14.6", + "@injectivelabs/utils": "^1.14.6", + "@types/lodash.values": "^4.3.6", + "copyfiles": "^2.4.1", + "jsonschema": "^1.4.0", + "link-module-alias": "^1.2.0", + "lodash": "^4.17.21", + "lodash.values": "^4.3.0", + "shx": "^0.3.2" + }, + "dependencies": { + "@injectivelabs/networks": { + "version": "1.14.6", + "resolved": "https://registry.npmjs.org/@injectivelabs/networks/-/networks-1.14.6.tgz", + "integrity": "sha512-O1IkPFJl8ThNL6N+k/9OimrgCYsSWQ8A1FtVMXSQge+0QRZsDKSpRmQRwE601otXXauO31nOUct5AaiWPffXVQ==", + "requires": { + "@injectivelabs/exceptions": "^1.14.6", + "@injectivelabs/ts-types": "^1.14.6", + "@injectivelabs/utils": "^1.14.6", + "link-module-alias": "^1.2.0", + "shx": "^0.3.2" + } + }, + "@injectivelabs/utils": { + "version": "1.14.6", + "resolved": "https://registry.npmjs.org/@injectivelabs/utils/-/utils-1.14.6.tgz", + "integrity": "sha512-5I0h4GiLB5PPTl+g2lpevRP+WScvEbntdkoUQVtAdHewl4kutd5p1Kcnoi1Nvpq+sz5N/e9qtBIRuyxG38akOg==", + "requires": { + "@injectivelabs/exceptions": "^1.14.6", + "@injectivelabs/ts-types": "^1.14.6", + "axios": "^0.21.1", + "bignumber.js": "^9.0.1", + "http-status-codes": "^2.2.0", + "link-module-alias": "^1.2.0", + "shx": "^0.3.2", + "snakecase-keys": "^5.1.2", + "store2": "^2.12.0" + } + }, + "axios": { + "version": "0.21.4", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.4.tgz", + "integrity": "sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==", + "requires": { + "follow-redirects": "^1.14.0" + } + } + } + }, + "@injectivelabs/ts-types": { + "version": "1.14.13", + "resolved": "https://registry.npmjs.org/@injectivelabs/ts-types/-/ts-types-1.14.13.tgz", + "integrity": "sha512-jkR4+JnQ91n7LWAdt+cZuvXFfqhv9RVlTE2pezAjZab7z7VeDonYwktjia5OcbqTKjlirvVHFALIZ0pmYd0j+A==", + "requires": { + "link-module-alias": "^1.2.0", + "shx": "^0.3.2" + } + }, + "@injectivelabs/utils": { + "version": "1.10.12", + "resolved": "https://registry.npmjs.org/@injectivelabs/utils/-/utils-1.10.12.tgz", + "integrity": "sha512-c8al79nxIJgV1cBAdW2TPDGldj/8gm5k0h5TIN/AJs8/AeIjpTwwVGfLY3QvPOpRsxuQ9CjBkTXrAcSL1wwkcw==", + "requires": { + "@injectivelabs/exceptions": "^1.10.12", + "@injectivelabs/ts-types": "^1.10.12", + "axios": "^0.21.1", + "bignumber.js": "^9.0.1", + "http-status-codes": "^2.2.0", + "link-module-alias": "^1.2.0", + "shx": "^0.3.2", + "snakecase-keys": "^5.1.2", + "store2": "^2.12.0" + }, + "dependencies": { + "axios": { + "version": "0.21.4", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.4.tgz", + "integrity": "sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==", + "requires": { + "follow-redirects": "^1.14.0" + } + } + } + }, + "@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, + "requires": { + "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": { + "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 + }, + "@jest/console": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-29.7.0.tgz", + "integrity": "sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==", + "dev": true, + "requires": { + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0", + "slash": "^3.0.0" + }, + "dependencies": { + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "@jest/core": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/core/-/core-29.7.0.tgz", + "integrity": "sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg==", + "dev": true, + "requires": { + "@jest/console": "^29.7.0", + "@jest/reporters": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "jest-changed-files": "^29.7.0", + "jest-config": "^29.7.0", + "jest-haste-map": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-regex-util": "^29.6.3", + "jest-resolve": "^29.7.0", + "jest-resolve-dependencies": "^29.7.0", + "jest-runner": "^29.7.0", + "jest-runtime": "^29.7.0", + "jest-snapshot": "^29.7.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "jest-watcher": "^29.7.0", + "micromatch": "^4.0.4", + "pretty-format": "^29.7.0", + "slash": "^3.0.0", + "strip-ansi": "^6.0.0" + }, + "dependencies": { + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "@jest/environment": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.7.0.tgz", + "integrity": "sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==", + "dev": true, + "requires": { + "@jest/fake-timers": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "jest-mock": "^29.7.0" + } + }, + "@jest/expect": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-29.7.0.tgz", + "integrity": "sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==", + "dev": true, + "requires": { + "expect": "^29.7.0", + "jest-snapshot": "^29.7.0" + } + }, + "@jest/expect-utils": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.7.0.tgz", + "integrity": "sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==", + "dev": true, + "requires": { + "jest-get-type": "^29.6.3" + } + }, + "@jest/fake-timers": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.7.0.tgz", + "integrity": "sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==", + "dev": true, + "requires": { + "@jest/types": "^29.6.3", + "@sinonjs/fake-timers": "^10.0.2", + "@types/node": "*", + "jest-message-util": "^29.7.0", + "jest-mock": "^29.7.0", + "jest-util": "^29.7.0" + } + }, + "@jest/globals": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-29.7.0.tgz", + "integrity": "sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==", + "dev": true, + "requires": { + "@jest/environment": "^29.7.0", + "@jest/expect": "^29.7.0", + "@jest/types": "^29.6.3", + "jest-mock": "^29.7.0" + } + }, + "@jest/reporters": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-29.7.0.tgz", + "integrity": "sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==", + "dev": true, + "requires": { + "@bcoe/v8-coverage": "^0.2.3", + "@jest/console": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@jridgewell/trace-mapping": "^0.3.18", + "@types/node": "*", + "chalk": "^4.0.0", + "collect-v8-coverage": "^1.0.0", + "exit": "^0.1.2", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "istanbul-lib-coverage": "^3.0.0", + "istanbul-lib-instrument": "^6.0.0", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^4.0.0", + "istanbul-reports": "^3.1.3", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0", + "jest-worker": "^29.7.0", + "slash": "^3.0.0", + "string-length": "^4.0.1", + "strip-ansi": "^6.0.0", + "v8-to-istanbul": "^9.0.1" + }, + "dependencies": { + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "@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==", + "dev": true, + "requires": { + "@sinclair/typebox": "^0.27.8" + } + }, + "@jest/source-map": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-29.6.3.tgz", + "integrity": "sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==", + "dev": true, + "requires": { + "@jridgewell/trace-mapping": "^0.3.18", + "callsites": "^3.0.0", + "graceful-fs": "^4.2.9" + } + }, + "@jest/test-result": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-29.7.0.tgz", + "integrity": "sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA==", + "dev": true, + "requires": { + "@jest/console": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/istanbul-lib-coverage": "^2.0.0", + "collect-v8-coverage": "^1.0.0" + } + }, + "@jest/test-sequencer": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-29.7.0.tgz", + "integrity": "sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw==", + "dev": true, + "requires": { + "@jest/test-result": "^29.7.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "slash": "^3.0.0" + } + }, + "@jest/transform": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-29.7.0.tgz", + "integrity": "sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==", + "dev": true, + "requires": { + "@babel/core": "^7.11.6", + "@jest/types": "^29.6.3", + "@jridgewell/trace-mapping": "^0.3.18", + "babel-plugin-istanbul": "^6.1.1", + "chalk": "^4.0.0", + "convert-source-map": "^2.0.0", + "fast-json-stable-stringify": "^2.1.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "jest-regex-util": "^29.6.3", + "jest-util": "^29.7.0", + "micromatch": "^4.0.4", + "pirates": "^4.0.4", + "slash": "^3.0.0", + "write-file-atomic": "^4.0.2" + }, + "dependencies": { + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "@jest/types": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.3.tgz", + "integrity": "sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==", + "dev": true, + "requires": { + "@jest/schemas": "^29.6.3", + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^17.0.8", + "chalk": "^4.0.0" + }, + "dependencies": { + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "@jridgewell/gen-mapping": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", + "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", + "dev": true, + "requires": { + "@jridgewell/set-array": "^1.2.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "@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 + }, + "@jridgewell/set-array": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", + "dev": true + }, + "@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 + }, + "@jridgewell/trace-mapping": { + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "dev": true, + "requires": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "@keplr-wallet/types": { + "version": "0.11.57", + "resolved": "https://registry.npmjs.org/@keplr-wallet/types/-/types-0.11.57.tgz", + "integrity": "sha512-+TVw7DxJUeoPPzWsEjXyaIRRIK5pMBPcGg7IOmnjBkSYTL1jU7YoarCXOnpPYo7FRZcDb6KjTi6BOV8PCoeBdg==", + "requires": { + "axios": "^0.27.2", + "long": "^4.0.0" + }, + "dependencies": { + "axios": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.27.2.tgz", + "integrity": "sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==", + "requires": { + "follow-redirects": "^1.14.9", + "form-data": "^4.0.0" + } + }, + "form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + } + } + } + }, + "@metamask/eth-sig-util": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@metamask/eth-sig-util/-/eth-sig-util-4.0.1.tgz", + "integrity": "sha512-tghyZKLHZjcdlDqCA3gNZmLeR0XvOE9U1qoQO9ohyAZT6Pya+H9vkBPcsyXytmYLNgVoin7CKCmweo/R43V+tQ==", + "requires": { + "ethereumjs-abi": "^0.6.8", + "ethereumjs-util": "^6.2.1", + "ethjs-util": "^0.1.6", + "tweetnacl": "^1.0.3", + "tweetnacl-util": "^0.15.1" + }, + "dependencies": { + "@types/bn.js": { + "version": "4.11.6", + "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-4.11.6.tgz", + "integrity": "sha512-pqr857jrp2kPuO9uRjZ3PwnJTjoQy+fcdxvBTvHm6dkmEL9q+hDD/2j/0ELOBPtPnS8LjCX0gI9nbl8lVkadpg==", + "requires": { + "@types/node": "*" + } + }, + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + }, + "ethereumjs-util": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-6.2.1.tgz", + "integrity": "sha512-W2Ktez4L01Vexijrm5EB6w7dg4n/TgpoYU4avuT5T3Vmnw/eCRtiBrJfQYS/DCSvDIOLn2k57GcHdeBcgVxAqw==", + "requires": { + "@types/bn.js": "^4.11.3", + "bn.js": "^4.11.0", + "create-hash": "^1.1.2", + "elliptic": "^6.5.2", + "ethereum-cryptography": "^0.1.3", + "ethjs-util": "0.1.6", + "rlp": "^2.2.3" + } + } + } + }, + "@metamask/safe-event-emitter": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@metamask/safe-event-emitter/-/safe-event-emitter-2.0.0.tgz", + "integrity": "sha512-/kSXhY692qiV1MXu6EeOZvg5nECLclxNXcKCxJ3cXQgYuRymRHpdx/t7JXfsK+JLjwA1e1c1/SBrlQYpusC29Q==", + "dev": true + }, + "@mysten/bcs": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/@mysten/bcs/-/bcs-0.7.1.tgz", + "integrity": "sha512-wFPb8bkhwrbiStfZMV5rFM7J+umpke59/dNjDp+UYJKykNlW23LCk2ePyEUvGdb62HGJM1jyOJ8g4egE3OmdKA==", + "requires": { + "bs58": "^5.0.0" + }, + "dependencies": { + "base-x": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/base-x/-/base-x-4.0.0.tgz", + "integrity": "sha512-FuwxlW4H5kh37X/oW59pwTzzTKRzfrrQwhmyspRM7swOEZcHtDZSCt45U6oKgtuFE+WYPblePMVIPR4RZrh/hw==" + }, + "bs58": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/bs58/-/bs58-5.0.0.tgz", + "integrity": "sha512-r+ihvQJvahgYT50JD05dyJNKlmmSlMoOGwn1lCcEzanPglg7TxYjioQUYehQ9mAR/+hOSd2jRc/Z2y5UxBymvQ==", + "requires": { + "base-x": "^4.0.0" + } + } + } + }, + "@mysten/sui.js": { + "version": "0.32.2", + "resolved": "https://registry.npmjs.org/@mysten/sui.js/-/sui.js-0.32.2.tgz", + "integrity": "sha512-/Hm4xkGolJhqj8FvQr7QSHDTlxIvL52mtbOao9f75YjrBh7y1Uh9kbJSY7xiTF1NY9sv6p5hUVlYRJuM0Hvn9A==", + "requires": { + "@mysten/bcs": "0.7.1", + "@noble/curves": "^1.0.0", + "@noble/hashes": "^1.3.0", + "@scure/bip32": "^1.3.0", + "@scure/bip39": "^1.2.0", + "@suchipi/femver": "^1.0.0", + "jayson": "^4.0.0", + "rpc-websockets": "^7.5.1", + "superstruct": "^1.0.3", + "tweetnacl": "^1.0.3" + }, + "dependencies": { + "@noble/hashes": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.4.0.tgz", + "integrity": "sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg==" + }, + "@scure/bip32": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-1.4.0.tgz", + "integrity": "sha512-sVUpc0Vq3tXCkDGYVWGIZTRfnvu8LoTDaev7vbwh0omSvVORONr960MQWdKqJDCReIEmTj3PAr73O3aoxz7OPg==", + "requires": { + "@noble/curves": "~1.4.0", + "@noble/hashes": "~1.4.0", + "@scure/base": "~1.1.6" + } + }, + "@scure/bip39": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.3.0.tgz", + "integrity": "sha512-disdg7gHuTDZtY+ZdkmLpPCk7fxZSu3gBiEGuoC1XYxv9cGx3Z6cpTggCgW6odSOOIXCiDjuGejW+aJKCY/pIQ==", + "requires": { + "@noble/hashes": "~1.4.0", + "@scure/base": "~1.1.6" + } + }, + "superstruct": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/superstruct/-/superstruct-1.0.3.tgz", + "integrity": "sha512-8iTn3oSS8nRGn+C2pgXSKPI3jmpm6FExNazNpjvqS6ZUJQCej3PUXEKM8NjHBOs54ExM+LPW/FBRhymrdcCiSg==" + } + } + }, + "@noble/curves": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.4.0.tgz", + "integrity": "sha512-p+4cb332SFCrReJkCYe8Xzm0OWi4Jji5jVdIZRL/PmacmDkFNw6MrrV+gGpiPxLHbV+zKFRywUWbaseT+tZRXg==", + "requires": { + "@noble/hashes": "1.4.0" + }, + "dependencies": { + "@noble/hashes": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.4.0.tgz", + "integrity": "sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg==" + } + } }, - "@injectivelabs/grpc-web-node-http-transport": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/@injectivelabs/grpc-web-node-http-transport/-/grpc-web-node-http-transport-0.0.2.tgz", - "integrity": "sha512-rpyhXLiGY/UMs6v6YmgWHJHiO9l0AgDyVNv+jcutNVt4tQrmNvnpvz2wCAGOFtq5LuX/E9ChtTVpk3gWGqXcGA==", - "requires": {} + "@noble/hashes": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.1.3.tgz", + "integrity": "sha512-CE0FCR57H2acVI5UOzIGSSIYxZ6v/HOhDR0Ro9VLyhnzLwx0o8W1mmgaqlEUx4049qJDlIBRztv5k+MM8vbO3A==" }, - "@injectivelabs/grpc-web-react-native-transport": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/@injectivelabs/grpc-web-react-native-transport/-/grpc-web-react-native-transport-0.0.2.tgz", - "integrity": "sha512-mk+aukQXnYNgPsPnu3KBi+FD0ZHQpazIlaBZ2jNZG7QAVmxTWtv3R66Zoq99Wx2dnE946NsZBYAoa0K5oSjnow==", - "requires": {} + "@noble/secp256k1": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/@noble/secp256k1/-/secp256k1-1.6.3.tgz", + "integrity": "sha512-T04e4iTurVy7I8Sw4+c5OSN9/RkPlo1uKxAomtxQNLq8j1uPAqnsqG1bqvY3Jv7c13gyr6dui0zmh/I3+f/JaQ==", + "dev": true }, - "@injectivelabs/indexer-proto-ts": { - "version": "1.10.8-rc.4", - "resolved": "https://registry.npmjs.org/@injectivelabs/indexer-proto-ts/-/indexer-proto-ts-1.10.8-rc.4.tgz", - "integrity": "sha512-IwbepTfsHHAv3Z36As6yH/+HIplOEpUu6SFHBCVgdSIaQ8GuvTib4HETiVnV4mjYqoyVgWs+zLSAfih46rdMJQ==", + "@osmonauts/helpers": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/@osmonauts/helpers/-/helpers-0.6.0.tgz", + "integrity": "sha512-l62tWR/0W4R+5wRvMeRK0zlaJ8WZhULKsQAZ7kNzggL0pbndIAV+0BJ/jEBbNletoeGtuV8rpi6Wo+w+RmtZGw==", "requires": { - "@injectivelabs/grpc-web": "^0.0.1", - "google-protobuf": "^3.14.0", - "protobufjs": "^7.0.0", - "rxjs": "^7.4.0" + "@babel/runtime": "^7.18.9", + "@cosmjs/amino": "0.28.13", + "@cosmjs/crypto": "0.28.13", + "@cosmjs/proto-signing": "0.28.13", + "@cosmjs/stargate": "0.28.13", + "cosmjs-types": "0.5.1", + "long": "^5.2.0", + "protobufjs": "^6.11.3" }, "dependencies": { + "@babel/runtime": { + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.21.0.tgz", + "integrity": "sha512-xwII0//EObnq89Ji5AKYQaRYiW/nZ3llSv29d49IuxPhKbtJoLP+9QUUZ4nVragQVtaVGeZrpB+ZtG/Pdy/POw==", + "requires": { + "regenerator-runtime": "^0.13.11" + } + }, + "@cosmjs/amino": { + "version": "0.28.13", + "resolved": "https://registry.npmjs.org/@cosmjs/amino/-/amino-0.28.13.tgz", + "integrity": "sha512-IHnH2zGwaY69qT4mVAavr/pfzx6YE+ud1NHJbvVePlbGiz68CXTi5LHR+K0lrKB5mQ7E+ZErWz2mw5U/x+V1wQ==", + "requires": { + "@cosmjs/crypto": "0.28.13", + "@cosmjs/encoding": "0.28.13", + "@cosmjs/math": "0.28.13", + "@cosmjs/utils": "0.28.13" + } + }, + "@cosmjs/crypto": { + "version": "0.28.13", + "resolved": "https://registry.npmjs.org/@cosmjs/crypto/-/crypto-0.28.13.tgz", + "integrity": "sha512-ynKfM0q/tMBQMHJby6ad8lR3gkgBKaelQhIsCZTjClsnuC7oYT9y3ThSZCUWr7Pa9h0J8ahU2YV2oFWFVWJQzQ==", + "requires": { + "@cosmjs/encoding": "0.28.13", + "@cosmjs/math": "0.28.13", + "@cosmjs/utils": "0.28.13", + "@noble/hashes": "^1", + "bn.js": "^5.2.0", + "elliptic": "^6.5.3", + "libsodium-wrappers": "^0.7.6" + } + }, + "@cosmjs/encoding": { + "version": "0.28.13", + "resolved": "https://registry.npmjs.org/@cosmjs/encoding/-/encoding-0.28.13.tgz", + "integrity": "sha512-jtXbAYtV77rLHxoIrjGFsvgGjeTKttuHRv6cvuy3toCZzY7JzTclKH5O2g36IIE4lXwD9xwuhGJ2aa6A3dhNkA==", + "requires": { + "base64-js": "^1.3.0", + "bech32": "^1.1.4", + "readonly-date": "^1.0.0" + } + }, + "@cosmjs/json-rpc": { + "version": "0.28.13", + "resolved": "https://registry.npmjs.org/@cosmjs/json-rpc/-/json-rpc-0.28.13.tgz", + "integrity": "sha512-fInSvg7x9P6p+GWqet+TMhrMTM3OWWdLJOGS5w2ryubMjgpR1rLiAx77MdTNkArW+/6sUwku0sN4veM4ENQu6A==", + "requires": { + "@cosmjs/stream": "0.28.13", + "xstream": "^11.14.0" + } + }, + "@cosmjs/math": { + "version": "0.28.13", + "resolved": "https://registry.npmjs.org/@cosmjs/math/-/math-0.28.13.tgz", + "integrity": "sha512-PDpL8W/kbyeWi0mQ2OruyqE8ZUAdxPs1xCbDX3WXJwy2oU+X2UTbkuweJHVpS9CIqmZulBoWQAmlf6t6zr1N/g==", + "requires": { + "bn.js": "^5.2.0" + } + }, + "@cosmjs/proto-signing": { + "version": "0.28.13", + "resolved": "https://registry.npmjs.org/@cosmjs/proto-signing/-/proto-signing-0.28.13.tgz", + "integrity": "sha512-nSl/2ZLsUJYz3Ad0RY3ihZUgRHIow2OnYqKsESMu+3RA/jTi9bDYhiBu8mNMHI0xrEJry918B2CyI56pOUHdPQ==", + "requires": { + "@cosmjs/amino": "0.28.13", + "@cosmjs/crypto": "0.28.13", + "@cosmjs/encoding": "0.28.13", + "@cosmjs/math": "0.28.13", + "@cosmjs/utils": "0.28.13", + "cosmjs-types": "^0.4.0", + "long": "^4.0.0" + }, + "dependencies": { + "cosmjs-types": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/cosmjs-types/-/cosmjs-types-0.4.1.tgz", + "integrity": "sha512-I7E/cHkIgoJzMNQdFF0YVqPlaTqrqKHrskuSTIqlEyxfB5Lf3WKCajSXVK2yHOfOFfSux/RxEdpMzw/eO4DIog==", + "requires": { + "long": "^4.0.0", + "protobufjs": "~6.11.2" + } + }, + "long": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz", + "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==" + } + } + }, + "@cosmjs/socket": { + "version": "0.28.13", + "resolved": "https://registry.npmjs.org/@cosmjs/socket/-/socket-0.28.13.tgz", + "integrity": "sha512-lavwGxQ5VdeltyhpFtwCRVfxeWjH5D5mmN7jgx9nuCf3XSFbTcOYxrk2pQ4usenu1Q1KZdL4Yl5RCNrJuHD9Ug==", + "requires": { + "@cosmjs/stream": "0.28.13", + "isomorphic-ws": "^4.0.1", + "ws": "^7", + "xstream": "^11.14.0" + } + }, + "@cosmjs/stargate": { + "version": "0.28.13", + "resolved": "https://registry.npmjs.org/@cosmjs/stargate/-/stargate-0.28.13.tgz", + "integrity": "sha512-dVBMazDz8/eActHsRcZjDHHptOBMqvibj5CFgEtZBp22gP6ASzoAUXTlkSVk5FBf4sfuUHoff6st134/+PGMAg==", + "requires": { + "@confio/ics23": "^0.6.8", + "@cosmjs/amino": "0.28.13", + "@cosmjs/encoding": "0.28.13", + "@cosmjs/math": "0.28.13", + "@cosmjs/proto-signing": "0.28.13", + "@cosmjs/stream": "0.28.13", + "@cosmjs/tendermint-rpc": "0.28.13", + "@cosmjs/utils": "0.28.13", + "cosmjs-types": "^0.4.0", + "long": "^4.0.0", + "protobufjs": "~6.11.3", + "xstream": "^11.14.0" + }, + "dependencies": { + "cosmjs-types": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/cosmjs-types/-/cosmjs-types-0.4.1.tgz", + "integrity": "sha512-I7E/cHkIgoJzMNQdFF0YVqPlaTqrqKHrskuSTIqlEyxfB5Lf3WKCajSXVK2yHOfOFfSux/RxEdpMzw/eO4DIog==", + "requires": { + "long": "^4.0.0", + "protobufjs": "~6.11.2" + } + }, + "long": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz", + "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==" + } + } + }, + "@cosmjs/stream": { + "version": "0.28.13", + "resolved": "https://registry.npmjs.org/@cosmjs/stream/-/stream-0.28.13.tgz", + "integrity": "sha512-AnjtfwT8NwPPkd3lhZhjOlOzT0Kn9bgEu2IPOZjQ1nmG2bplsr6TJmnwn0dJxHT7UGtex17h6whKB5N4wU37Wg==", + "requires": { + "xstream": "^11.14.0" + } + }, + "@cosmjs/tendermint-rpc": { + "version": "0.28.13", + "resolved": "https://registry.npmjs.org/@cosmjs/tendermint-rpc/-/tendermint-rpc-0.28.13.tgz", + "integrity": "sha512-GB+ZmfuJIGQm0hsRtLYjeR3lOxF7Z6XyCBR0cX5AAYOZzSEBJjevPgUHD6tLn8zIhvzxaW3/VKnMB+WmlxdH4w==", + "requires": { + "@cosmjs/crypto": "0.28.13", + "@cosmjs/encoding": "0.28.13", + "@cosmjs/json-rpc": "0.28.13", + "@cosmjs/math": "0.28.13", + "@cosmjs/socket": "0.28.13", + "@cosmjs/stream": "0.28.13", + "@cosmjs/utils": "0.28.13", + "axios": "^0.21.2", + "readonly-date": "^1.0.0", + "xstream": "^11.14.0" + } + }, + "@cosmjs/utils": { + "version": "0.28.13", + "resolved": "https://registry.npmjs.org/@cosmjs/utils/-/utils-0.28.13.tgz", + "integrity": "sha512-dVeMBiyg+46x7XBZEfJK8yTihphbCFpjVYmLJVqmTsHfJwymQ65cpyW/C+V/LgWARGK8hWQ/aX9HM5Ao8QmMSg==" + }, + "axios": { + "version": "0.21.4", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.4.tgz", + "integrity": "sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==", + "requires": { + "follow-redirects": "^1.14.0" + } + }, + "bech32": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/bech32/-/bech32-1.1.4.tgz", + "integrity": "sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ==" + }, + "cosmjs-types": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/cosmjs-types/-/cosmjs-types-0.5.1.tgz", + "integrity": "sha512-NcC58xUIVLlKdIimWWQAmSlmCjiMrJnuHf4i3LiD8PCextfHR0fT3V5/WlXZZreyMgdmh6ML1zPUfGTbbo3Z5g==", + "requires": { + "long": "^4.0.0", + "protobufjs": "~6.11.2" + }, + "dependencies": { + "long": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz", + "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==" + } + } + }, "long": { "version": "5.2.3", "resolved": "https://registry.npmjs.org/long/-/long-5.2.3.tgz", "integrity": "sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q==" + } + } + }, + "@osmonauts/lcd": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/@osmonauts/lcd/-/lcd-0.8.0.tgz", + "integrity": "sha512-k7m2gAVnXc0H4m/eTq4z/8A6hFrr3MPS9wnLV4Xu9/K/WYltCnp2PpiObZm+feZUPK/svES6hxIQeO1bODLx8g==", + "requires": { + "@babel/runtime": "^7.19.0", + "axios": "0.27.2" + }, + "dependencies": { + "@babel/runtime": { + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.21.0.tgz", + "integrity": "sha512-xwII0//EObnq89Ji5AKYQaRYiW/nZ3llSv29d49IuxPhKbtJoLP+9QUUZ4nVragQVtaVGeZrpB+ZtG/Pdy/POw==", + "requires": { + "regenerator-runtime": "^0.13.11" + } + }, + "axios": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.27.2.tgz", + "integrity": "sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==", + "requires": { + "follow-redirects": "^1.14.9", + "form-data": "^4.0.0" + } }, - "protobufjs": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.2.3.tgz", - "integrity": "sha512-TtpvOqwB5Gdz/PQmOjgsrGH1nHjAQVCN7JG4A6r1sXRWESL5rNMAiRcBQlCAdKxZcAbstExQePYG8xof/JVRgg==", + "form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", "requires": { - "@protobufjs/aspromise": "^1.1.2", - "@protobufjs/base64": "^1.1.2", - "@protobufjs/codegen": "^2.0.4", - "@protobufjs/eventemitter": "^1.1.0", - "@protobufjs/fetch": "^1.1.0", - "@protobufjs/float": "^1.0.2", - "@protobufjs/inquire": "^1.1.0", - "@protobufjs/path": "^1.1.2", - "@protobufjs/pool": "^1.1.0", - "@protobufjs/utf8": "^1.1.0", - "@types/node": ">=13.7.0", - "long": "^5.0.0" + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" } } } }, - "@injectivelabs/mito-proto-ts": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/@injectivelabs/mito-proto-ts/-/mito-proto-ts-1.0.9.tgz", - "integrity": "sha512-+TZMvJ4SHwcn6SFPdqaiQFZdNhjH7hyRFozY15nOTC2utdGij9jEsjz1NsyOejfYDA0s1z5Wm1SgrMYKaVpAmQ==", + "@project-serum/anchor": { + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/@project-serum/anchor/-/anchor-0.25.0.tgz", + "integrity": "sha512-E6A5Y/ijqpfMJ5psJvbw0kVTzLZFUcOFgs6eSM2M2iWE1lVRF18T6hWZVNl6zqZsoz98jgnNHtVGJMs+ds9A7A==", "requires": { - "@injectivelabs/grpc-web": "^0.0.1", - "google-protobuf": "^3.14.0", - "protobufjs": "^7.0.0", - "rxjs": "^7.4.0" + "@project-serum/borsh": "^0.2.5", + "@solana/web3.js": "^1.36.0", + "base64-js": "^1.5.1", + "bn.js": "^5.1.2", + "bs58": "^4.0.1", + "buffer-layout": "^1.2.2", + "camelcase": "^5.3.1", + "cross-fetch": "^3.1.5", + "crypto-hash": "^1.3.0", + "eventemitter3": "^4.0.7", + "js-sha256": "^0.9.0", + "pako": "^2.0.3", + "snake-case": "^3.0.4", + "superstruct": "^0.15.4", + "toml": "^3.0.0" }, "dependencies": { - "long": { - "version": "5.2.3", - "resolved": "https://registry.npmjs.org/long/-/long-5.2.3.tgz", - "integrity": "sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q==" - }, - "protobufjs": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.2.3.tgz", - "integrity": "sha512-TtpvOqwB5Gdz/PQmOjgsrGH1nHjAQVCN7JG4A6r1sXRWESL5rNMAiRcBQlCAdKxZcAbstExQePYG8xof/JVRgg==", + "cross-fetch": { + "version": "3.1.8", + "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.8.tgz", + "integrity": "sha512-cvA+JwZoU0Xq+h6WkMvAUqPEYy92Obet6UdKLfW60qn99ftItKjB5T+BkyWOFWe2pUyfQ+IJHmpOTznqk1M6Kg==", "requires": { - "@protobufjs/aspromise": "^1.1.2", - "@protobufjs/base64": "^1.1.2", - "@protobufjs/codegen": "^2.0.4", - "@protobufjs/eventemitter": "^1.1.0", - "@protobufjs/fetch": "^1.1.0", - "@protobufjs/float": "^1.0.2", - "@protobufjs/inquire": "^1.1.0", - "@protobufjs/path": "^1.1.2", - "@protobufjs/pool": "^1.1.0", - "@protobufjs/utf8": "^1.1.0", - "@types/node": ">=13.7.0", - "long": "^5.0.0" + "node-fetch": "^2.6.12" } + }, + "superstruct": { + "version": "0.15.5", + "resolved": "https://registry.npmjs.org/superstruct/-/superstruct-0.15.5.tgz", + "integrity": "sha512-4AOeU+P5UuE/4nOUkmcQdW5y7i9ndt1cQd/3iUe+LTz3RxESf/W/5lg4B74HbDMMv8PHnPnGCQFH45kBcrQYoQ==" } } }, - "@injectivelabs/networks": { - "version": "1.10.12", - "resolved": "https://registry.npmjs.org/@injectivelabs/networks/-/networks-1.10.12.tgz", - "integrity": "sha512-tTHyLls1Nik5QTs/S03qqG2y/ITvNwI8CJOQbMmmsr1CL2CdjJBtzRYn9Dyx2p8XgzRFf9hmlybpe20tq9O3SA==", + "@project-serum/borsh": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/@project-serum/borsh/-/borsh-0.2.5.tgz", + "integrity": "sha512-UmeUkUoKdQ7rhx6Leve1SssMR/Ghv8qrEiyywyxSWg7ooV7StdpPBhciiy5eB3T0qU1BXvdRNC8TdrkxK7WC5Q==", "requires": { - "@injectivelabs/exceptions": "^1.10.12", - "@injectivelabs/ts-types": "^1.10.12", - "@injectivelabs/utils": "^1.10.12", - "link-module-alias": "^1.2.0", - "shx": "^0.3.2" + "bn.js": "^5.1.2", + "buffer-layout": "^1.2.0" } }, - "@injectivelabs/sdk-ts": { - "version": "1.10.72", - "resolved": "https://registry.npmjs.org/@injectivelabs/sdk-ts/-/sdk-ts-1.10.72.tgz", - "integrity": "sha512-A5mHNNBgO4fI1c/7CZ0bGfVXliy8laP+VaYZ++aWh1YyudoZw4CTCEmLetZRy7AUU3XcfbHa8sAImRi7db+v6Q==", + "@protobufjs/aspromise": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", + "integrity": "sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==" + }, + "@protobufjs/base64": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz", + "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==" + }, + "@protobufjs/codegen": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz", + "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==" + }, + "@protobufjs/eventemitter": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz", + "integrity": "sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==" + }, + "@protobufjs/fetch": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz", + "integrity": "sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==", "requires": { - "@apollo/client": "^3.5.8", - "@cosmjs/amino": "^0.30.1", - "@cosmjs/proto-signing": "^0.30.1", - "@cosmjs/stargate": "^0.30.1", - "@ethersproject/bytes": "^5.7.0", - "@injectivelabs/core-proto-ts": "^0.0.14", - "@injectivelabs/exceptions": "^1.10.12", - "@injectivelabs/grpc-web": "^0.0.1", - "@injectivelabs/grpc-web-node-http-transport": "^0.0.2", - "@injectivelabs/grpc-web-react-native-transport": "^0.0.2", - "@injectivelabs/indexer-proto-ts": "1.10.8-rc.4", - "@injectivelabs/mito-proto-ts": "1.0.9", - "@injectivelabs/networks": "^1.10.12", - "@injectivelabs/test-utils": "^1.10.12", - "@injectivelabs/token-metadata": "^1.10.42", - "@injectivelabs/ts-types": "^1.10.12", - "@injectivelabs/utils": "^1.10.12", - "@metamask/eth-sig-util": "^4.0.0", - "axios": "^0.27.2", - "bech32": "^2.0.0", - "bip39": "^3.0.4", - "cosmjs-types": "^0.7.1", - "eth-crypto": "^2.6.0", - "ethereumjs-util": "^7.1.4", - "ethers": "^5.7.2", - "google-protobuf": "^3.21.0", - "graphql": "^16.3.0", - "http-status-codes": "^2.2.0", - "js-sha3": "^0.8.0", - "jscrypto": "^1.0.3", - "keccak256": "^1.0.6", - "link-module-alias": "^1.2.0", - "rxjs": "^7.8.0", - "secp256k1": "^4.0.3", - "shx": "^0.3.2", - "snakecase-keys": "^5.4.1" - }, - "dependencies": { - "@cosmjs/amino": { - "version": "0.30.1", - "resolved": "https://registry.npmjs.org/@cosmjs/amino/-/amino-0.30.1.tgz", - "integrity": "sha512-yNHnzmvAlkETDYIpeCTdVqgvrdt1qgkOXwuRVi8s27UKI5hfqyE9fJ/fuunXE6ZZPnKkjIecDznmuUOMrMvw4w==", - "requires": { - "@cosmjs/crypto": "^0.30.1", - "@cosmjs/encoding": "^0.30.1", - "@cosmjs/math": "^0.30.1", - "@cosmjs/utils": "^0.30.1" - } - }, - "@cosmjs/crypto": { - "version": "0.30.1", - "resolved": "https://registry.npmjs.org/@cosmjs/crypto/-/crypto-0.30.1.tgz", - "integrity": "sha512-rAljUlake3MSXs9xAm87mu34GfBLN0h/1uPPV6jEwClWjNkAMotzjC0ab9MARy5FFAvYHL3lWb57bhkbt2GtzQ==", - "requires": { - "@cosmjs/encoding": "^0.30.1", - "@cosmjs/math": "^0.30.1", - "@cosmjs/utils": "^0.30.1", - "@noble/hashes": "^1", - "bn.js": "^5.2.0", - "elliptic": "^6.5.4", - "libsodium-wrappers": "^0.7.6" - } - }, + "@protobufjs/aspromise": "^1.1.1", + "@protobufjs/inquire": "^1.1.0" + } + }, + "@protobufjs/float": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz", + "integrity": "sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==" + }, + "@protobufjs/inquire": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz", + "integrity": "sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==" + }, + "@protobufjs/path": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz", + "integrity": "sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==" + }, + "@protobufjs/pool": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz", + "integrity": "sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==" + }, + "@protobufjs/utf8": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", + "integrity": "sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==" + }, + "@scure/base": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/@scure/base/-/base-1.1.6.tgz", + "integrity": "sha512-ok9AWwhcgYuGG3Zfhyqg+zwl+Wn5uE+dwC0NV/2qQkx4dABbb/bx96vWu8NSj+BNjjSjno+JRYRjle1jV08k3g==" + }, + "@scure/bip32": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-1.1.0.tgz", + "integrity": "sha512-ftTW3kKX54YXLCxH6BB7oEEoJfoE2pIgw7MINKAs5PsS6nqKPuKk1haTF/EuHmYqG330t5GSrdmtRuHaY1a62Q==", + "dev": true, + "requires": { + "@noble/hashes": "~1.1.1", + "@noble/secp256k1": "~1.6.0", + "@scure/base": "~1.1.0" + } + }, + "@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==", + "requires": { + "@noble/hashes": "~1.1.1", + "@scure/base": "~1.1.0" + } + }, + "@sei-js/core": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@sei-js/core/-/core-1.3.2.tgz", + "integrity": "sha512-aQoM6JgsJylCPRkwU5RVHzsLXxKDMta8Su5u7BA4NDDcviYNX5BBLzJMSAb8QPXh3Ev0FmoanMBS0BSGk6ypAg==", + "requires": { + "@cosmjs/amino": "0.29.5", + "@cosmjs/cosmwasm-stargate": "0.29.5", + "@cosmjs/encoding": "0.29.5", + "@cosmjs/json-rpc": "0.29.5", + "@cosmjs/math": "0.29.5", + "@cosmjs/proto-signing": "0.29.5", + "@cosmjs/stargate": "0.29.5", + "@cosmjs/tendermint-rpc": "0.29.5", + "@cosmjs/utils": "0.29.5", + "@keplr-wallet/types": "^0.11.41", + "@sei-js/proto": "1.2.0", + "readonly-date": "^1.0.0", + "xstream": "^11.14.0" + }, + "dependencies": { "@cosmjs/encoding": { - "version": "0.30.1", - "resolved": "https://registry.npmjs.org/@cosmjs/encoding/-/encoding-0.30.1.tgz", - "integrity": "sha512-rXmrTbgqwihORwJ3xYhIgQFfMSrwLu1s43RIK9I8EBudPx3KmnmyAKzMOVsRDo9edLFNuZ9GIvysUCwQfq3WlQ==", + "version": "0.29.5", + "resolved": "https://registry.npmjs.org/@cosmjs/encoding/-/encoding-0.29.5.tgz", + "integrity": "sha512-G4rGl/Jg4dMCw5u6PEZHZcoHnUBlukZODHbm/wcL4Uu91fkn5jVo5cXXZcvs4VCkArVGrEj/52eUgTZCmOBGWQ==", "requires": { "base64-js": "^1.3.0", "bech32": "^1.1.4", "readonly-date": "^1.0.0" - }, - "dependencies": { - "bech32": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/bech32/-/bech32-1.1.4.tgz", - "integrity": "sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ==" - } - } - }, - "@cosmjs/json-rpc": { - "version": "0.30.1", - "resolved": "https://registry.npmjs.org/@cosmjs/json-rpc/-/json-rpc-0.30.1.tgz", - "integrity": "sha512-pitfC/2YN9t+kXZCbNuyrZ6M8abnCC2n62m+JtU9vQUfaEtVsgy+1Fk4TRQ175+pIWSdBMFi2wT8FWVEE4RhxQ==", - "requires": { - "@cosmjs/stream": "^0.30.1", - "xstream": "^11.14.0" - } - }, - "@cosmjs/math": { - "version": "0.30.1", - "resolved": "https://registry.npmjs.org/@cosmjs/math/-/math-0.30.1.tgz", - "integrity": "sha512-yaoeI23pin9ZiPHIisa6qqLngfnBR/25tSaWpkTm8Cy10MX70UF5oN4+/t1heLaM6SSmRrhk3psRkV4+7mH51Q==", - "requires": { - "bn.js": "^5.2.0" - } - }, - "@cosmjs/proto-signing": { - "version": "0.30.1", - "resolved": "https://registry.npmjs.org/@cosmjs/proto-signing/-/proto-signing-0.30.1.tgz", - "integrity": "sha512-tXh8pPYXV4aiJVhTKHGyeZekjj+K9s2KKojMB93Gcob2DxUjfKapFYBMJSgfKPuWUPEmyr8Q9km2hplI38ILgQ==", - "requires": { - "@cosmjs/amino": "^0.30.1", - "@cosmjs/crypto": "^0.30.1", - "@cosmjs/encoding": "^0.30.1", - "@cosmjs/math": "^0.30.1", - "@cosmjs/utils": "^0.30.1", - "cosmjs-types": "^0.7.1", - "long": "^4.0.0" - } - }, - "@cosmjs/socket": { - "version": "0.30.1", - "resolved": "https://registry.npmjs.org/@cosmjs/socket/-/socket-0.30.1.tgz", - "integrity": "sha512-r6MpDL+9N+qOS/D5VaxnPaMJ3flwQ36G+vPvYJsXArj93BjgyFB7BwWwXCQDzZ+23cfChPUfhbINOenr8N2Kow==", - "requires": { - "@cosmjs/stream": "^0.30.1", - "isomorphic-ws": "^4.0.1", - "ws": "^7", - "xstream": "^11.14.0" } }, - "@cosmjs/stargate": { - "version": "0.30.1", - "resolved": "https://registry.npmjs.org/@cosmjs/stargate/-/stargate-0.30.1.tgz", - "integrity": "sha512-RdbYKZCGOH8gWebO7r6WvNnQMxHrNXInY/gPHPzMjbQF6UatA6fNM2G2tdgS5j5u7FTqlCI10stNXrknaNdzog==", + "bech32": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/bech32/-/bech32-1.1.4.tgz", + "integrity": "sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ==" + } + } + }, + "@sei-js/proto": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@sei-js/proto/-/proto-1.2.0.tgz", + "integrity": "sha512-gN+xToncmpGSF9WzabTXuXBbxPKear3AnqmT4vjrtYHzjZMY9sawL+7Y15/c8p2eKA4NNtCWuhw3RtwaDk3Ziw==", + "requires": { + "@babel/runtime": "^7.18.9", + "@cosmjs/amino": "0.29.5", + "@cosmjs/encoding": "0.29.5", + "@cosmjs/proto-signing": "0.29.5", + "@cosmjs/stargate": "0.29.5", + "@cosmjs/tendermint-rpc": "0.29.5", + "@osmonauts/helpers": "^0.6.0", + "@osmonauts/lcd": "^0.8.0", + "protobufjs": "^6.11.2" + }, + "dependencies": { + "@babel/runtime": { + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.21.0.tgz", + "integrity": "sha512-xwII0//EObnq89Ji5AKYQaRYiW/nZ3llSv29d49IuxPhKbtJoLP+9QUUZ4nVragQVtaVGeZrpB+ZtG/Pdy/POw==", "requires": { - "@confio/ics23": "^0.6.8", - "@cosmjs/amino": "^0.30.1", - "@cosmjs/encoding": "^0.30.1", - "@cosmjs/math": "^0.30.1", - "@cosmjs/proto-signing": "^0.30.1", - "@cosmjs/stream": "^0.30.1", - "@cosmjs/tendermint-rpc": "^0.30.1", - "@cosmjs/utils": "^0.30.1", - "cosmjs-types": "^0.7.1", - "long": "^4.0.0", - "protobufjs": "~6.11.3", - "xstream": "^11.14.0" + "regenerator-runtime": "^0.13.11" } }, - "@cosmjs/stream": { - "version": "0.30.1", - "resolved": "https://registry.npmjs.org/@cosmjs/stream/-/stream-0.30.1.tgz", - "integrity": "sha512-Fg0pWz1zXQdoxQZpdHRMGvUH5RqS6tPv+j9Eh7Q953UjMlrwZVo0YFLC8OTf/HKVf10E4i0u6aM8D69Q6cNkgQ==", + "@cosmjs/encoding": { + "version": "0.29.5", + "resolved": "https://registry.npmjs.org/@cosmjs/encoding/-/encoding-0.29.5.tgz", + "integrity": "sha512-G4rGl/Jg4dMCw5u6PEZHZcoHnUBlukZODHbm/wcL4Uu91fkn5jVo5cXXZcvs4VCkArVGrEj/52eUgTZCmOBGWQ==", "requires": { - "xstream": "^11.14.0" + "base64-js": "^1.3.0", + "bech32": "^1.1.4", + "readonly-date": "^1.0.0" } }, - "@cosmjs/tendermint-rpc": { - "version": "0.30.1", - "resolved": "https://registry.npmjs.org/@cosmjs/tendermint-rpc/-/tendermint-rpc-0.30.1.tgz", - "integrity": "sha512-Z3nCwhXSbPZJ++v85zHObeUggrEHVfm1u18ZRwXxFE9ZMl5mXTybnwYhczuYOl7KRskgwlB+rID0WYACxj4wdQ==", + "bech32": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/bech32/-/bech32-1.1.4.tgz", + "integrity": "sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ==" + } + } + }, + "@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 + }, + "@sindresorhus/is": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.6.0.tgz", + "integrity": "sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==" + }, + "@sinonjs/commons": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.1.tgz", + "integrity": "sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==", + "dev": true, + "requires": { + "type-detect": "4.0.8" + } + }, + "@sinonjs/fake-timers": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz", + "integrity": "sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==", + "dev": true, + "requires": { + "@sinonjs/commons": "^3.0.0" + } + }, + "@solana/buffer-layout": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@solana/buffer-layout/-/buffer-layout-4.0.1.tgz", + "integrity": "sha512-E1ImOIAD1tBZFRdjeM4/pzTiTApC0AOBGwyAMS4fwIodCWArzJ3DWdoh8cKxeFM2fElkxBh2Aqts1BPC373rHA==", + "requires": { + "buffer": "~6.0.3" + } + }, + "@solana/buffer-layout-utils": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@solana/buffer-layout-utils/-/buffer-layout-utils-0.2.0.tgz", + "integrity": "sha512-szG4sxgJGktbuZYDg2FfNmkMi0DYQoVjN2h7ta1W1hPrwzarcFLBq9UpX1UjNXsNpT9dn+chgprtWGioUAr4/g==", + "requires": { + "@solana/buffer-layout": "^4.0.0", + "@solana/web3.js": "^1.32.0", + "bigint-buffer": "^1.1.5", + "bignumber.js": "^9.0.1" + } + }, + "@solana/spl-token": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/@solana/spl-token/-/spl-token-0.3.9.tgz", + "integrity": "sha512-1EXHxKICMnab35MvvY/5DBc/K/uQAOJCYnDZXw83McCAYUAfi+rwq6qfd6MmITmSTEhcfBcl/zYxmW/OSN0RmA==", + "requires": { + "@solana/buffer-layout": "^4.0.0", + "@solana/buffer-layout-utils": "^0.2.0", + "buffer": "^6.0.3" + } + }, + "@solana/web3.js": { + "version": "1.91.7", + "resolved": "https://registry.npmjs.org/@solana/web3.js/-/web3.js-1.91.7.tgz", + "integrity": "sha512-HqljZKDwk6Z4TajKRGhGLlRsbGK4S8EY27DA7v1z6yakewiUY3J7ZKDZRxcqz2MYV/ZXRrJ6wnnpiHFkPdv0WA==", + "requires": { + "@babel/runtime": "^7.23.4", + "@noble/curves": "^1.4.0", + "@noble/hashes": "^1.3.3", + "@solana/buffer-layout": "^4.0.1", + "agentkeepalive": "^4.5.0", + "bigint-buffer": "^1.1.5", + "bn.js": "^5.2.1", + "borsh": "^0.7.0", + "bs58": "^4.0.1", + "buffer": "6.0.3", + "fast-stable-stringify": "^1.0.0", + "jayson": "^4.1.0", + "node-fetch": "^2.7.0", + "rpc-websockets": "^7.5.1", + "superstruct": "^0.14.2" + }, + "dependencies": { + "@babel/runtime": { + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.24.5.tgz", + "integrity": "sha512-Nms86NXrsaeU9vbBJKni6gXiEXZ4CVpYVzEjDH9Sb8vmZ3UljyA1GSOJl/6LGPO8EHLuSF9H+IxNXHPX8QHJ4g==", "requires": { - "@cosmjs/crypto": "^0.30.1", - "@cosmjs/encoding": "^0.30.1", - "@cosmjs/json-rpc": "^0.30.1", - "@cosmjs/math": "^0.30.1", - "@cosmjs/socket": "^0.30.1", - "@cosmjs/stream": "^0.30.1", - "@cosmjs/utils": "^0.30.1", - "axios": "^0.21.2", - "readonly-date": "^1.0.0", - "xstream": "^11.14.0" - }, - "dependencies": { - "axios": { - "version": "0.21.4", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.4.tgz", - "integrity": "sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==", - "requires": { - "follow-redirects": "^1.14.0" - } - } + "regenerator-runtime": "^0.14.0" } }, - "@cosmjs/utils": { - "version": "0.30.1", - "resolved": "https://registry.npmjs.org/@cosmjs/utils/-/utils-0.30.1.tgz", - "integrity": "sha512-KvvX58MGMWh7xA+N+deCfunkA/ZNDvFLw4YbOmX3f/XBIkqrVY7qlotfy2aNb1kgp6h4B6Yc8YawJPDTfvWX7g==" + "@noble/hashes": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.4.0.tgz", + "integrity": "sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg==" }, + "regenerator-runtime": { + "version": "0.14.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", + "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==" + } + } + }, + "@suchipi/femver": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@suchipi/femver/-/femver-1.0.0.tgz", + "integrity": "sha512-bprE8+K5V+DPX7q2e2K57ImqNBdfGHDIWaGI5xHxZoxbKOuQZn4wzPiUxOAHnsUr3w3xHrWXwN7gnG/iIuEMIg==" + }, + "@szmarczak/http-timer": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-4.0.6.tgz", + "integrity": "sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==", + "requires": { + "defer-to-connect": "^2.0.0" + } + }, + "@terra-money/legacy.proto": { + "version": "npm:@terra-money/terra.proto@0.1.7", + "resolved": "https://registry.npmjs.org/@terra-money/terra.proto/-/terra.proto-0.1.7.tgz", + "integrity": "sha512-NXD7f6pQCulvo6+mv6MAPzhOkUzRjgYVuHZE/apih+lVnPG5hDBU0rRYnOGGofwvKT5/jQoOENnFn/gioWWnyQ==", + "requires": { + "google-protobuf": "^3.17.3", + "long": "^4.0.0", + "protobufjs": "~6.11.2" + } + }, + "@terra-money/terra.js": { + "version": "3.1.9", + "resolved": "https://registry.npmjs.org/@terra-money/terra.js/-/terra.js-3.1.9.tgz", + "integrity": "sha512-JulSvOHLM56fL7s+cIjIbZeWPBluq883X1soWxA4TG5rKkDythT/DHeLXr3jP5Ld/26VENPSg6lNvK7cEYKpiw==", + "requires": { + "@classic-terra/terra.proto": "^1.1.0", + "@terra-money/terra.proto": "^2.1.0", + "axios": "^0.27.2", + "bech32": "^2.0.0", + "bip32": "^2.0.6", + "bip39": "^3.0.3", + "bufferutil": "^4.0.3", + "decimal.js": "^10.2.1", + "jscrypto": "^1.0.1", + "readable-stream": "^3.6.0", + "secp256k1": "^4.0.2", + "tmp": "^0.2.1", + "utf-8-validate": "^5.0.5", + "ws": "^7.5.9" + }, + "dependencies": { "axios": { "version": "0.27.2", "resolved": "https://registry.npmjs.org/axios/-/axios-0.27.2.tgz", @@ -13156,20 +18264,6 @@ "form-data": "^4.0.0" } }, - "bech32": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/bech32/-/bech32-2.0.0.tgz", - "integrity": "sha512-LcknSilhIGatDAsY1ak2I8VtGaHNhgMSYVxFrGLXv+xLHytaKZKcaUJJUE7qmBr7h33o5YQwP55pMI0xmkpJwg==" - }, - "cosmjs-types": { - "version": "0.7.2", - "resolved": "https://registry.npmjs.org/cosmjs-types/-/cosmjs-types-0.7.2.tgz", - "integrity": "sha512-vf2uLyktjr/XVAgEq0DjMxeAWh1yYREe7AMHDKd7EiHVqxBPCaBS+qEEQUkXbR9ndnckqr1sUG8BQhazh4X5lA==", - "requires": { - "long": "^4.0.0", - "protobufjs": "~6.11.2" - } - }, "form-data": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", @@ -13182,548 +18276,442 @@ } } }, - "@injectivelabs/test-utils": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/@injectivelabs/test-utils/-/test-utils-1.11.0.tgz", - "integrity": "sha512-/KIPGeLFsjITs43yQG++SoOtDExZr+Pa3JVYIZEIMFUVG8a7z9Vi5m6a1kbowvozZbLG5KHuuUXF2SdfKSxznQ==", + "@terra-money/terra.proto": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@terra-money/terra.proto/-/terra.proto-2.1.0.tgz", + "integrity": "sha512-rhaMslv3Rkr+QsTQEZs64FKA4QlfO0DfQHaR6yct/EovenMkibDEQ63dEL6yJA6LCaEQGYhyVB9JO9pTUA8ybw==", "requires": { - "axios": "^0.21.1", - "bignumber.js": "^9.0.1", - "link-module-alias": "^1.2.0", - "shx": "^0.3.2", - "snakecase-keys": "^5.1.2", - "store2": "^2.12.0" - }, - "dependencies": { - "axios": { - "version": "0.21.4", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.4.tgz", - "integrity": "sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==", - "requires": { - "follow-redirects": "^1.14.0" - } - } + "@improbable-eng/grpc-web": "^0.14.1", + "google-protobuf": "^3.17.3", + "long": "^4.0.0", + "protobufjs": "~6.11.2" } }, - "@injectivelabs/token-metadata": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/@injectivelabs/token-metadata/-/token-metadata-1.11.0.tgz", - "integrity": "sha512-RzwJvnjDX8IwXYTvZDCMQcGxkN/0ZfXUEYTVMB0WMU0bRH7cV7WJ6Z9UDOijAehrJHu/fByDz2DuEOcktbwoIw==", + "@truffle/hdwallet-provider": { + "version": "2.0.15", + "resolved": "https://registry.npmjs.org/@truffle/hdwallet-provider/-/hdwallet-provider-2.0.15.tgz", + "integrity": "sha512-C1l9Lj2GJUfqkWK37Kt1U2ho9jlp0fIJIRjX4Gydppc+PNGiE0cLYvNPSnIyXwU8S32/CF2YW8Vvy7MKaTW6Mw==", + "dev": true, "requires": { - "@injectivelabs/exceptions": "^1.11.0", - "@injectivelabs/networks": "^1.11.0", - "@injectivelabs/ts-types": "^1.11.0", - "@injectivelabs/utils": "^1.11.0", - "@types/lodash.values": "^4.3.6", - "copyfiles": "^2.4.1", - "jsonschema": "^1.4.0", - "link-module-alias": "^1.2.0", - "lodash": "^4.17.21", - "lodash.values": "^4.3.0", - "shx": "^0.3.2" + "@ethereumjs/common": "^2.4.0", + "@ethereumjs/tx": "^3.3.0", + "@metamask/eth-sig-util": "4.0.1", + "ethereum-cryptography": "1.1.2", + "ethereum-protocol": "^1.0.1", + "ethereumjs-util": "^7.1.5", + "ethereumjs-wallet": "^1.0.2", + "web3-provider-engine": "16.0.3" }, "dependencies": { - "@injectivelabs/networks": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/@injectivelabs/networks/-/networks-1.11.0.tgz", - "integrity": "sha512-0dtO/zZ8AzsxGInEWZ7tpOA0Q++M3FhAFxOWzhYC39ZeJlwHhEcYmvmhrGG5gRdus29XfFysRlaz3hyT3XH1Jg==", - "requires": { - "@injectivelabs/exceptions": "^1.11.0", - "@injectivelabs/ts-types": "^1.11.0", - "@injectivelabs/utils": "^1.11.0", - "link-module-alias": "^1.2.0", - "shx": "^0.3.2" - } - }, - "@injectivelabs/utils": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/@injectivelabs/utils/-/utils-1.11.0.tgz", - "integrity": "sha512-KnUmt4vIvoBz6F3mQomy4GeTkpcHMYwju2AgiqzARrrqgF/2p1ZHfKBpr1ksj/jkl5X+irh3JVfbd/dFjwKi1g==", - "requires": { - "@injectivelabs/exceptions": "^1.11.0", - "@injectivelabs/ts-types": "^1.11.0", - "axios": "^0.21.1", - "bignumber.js": "^9.0.1", - "http-status-codes": "^2.2.0", - "link-module-alias": "^1.2.0", - "shx": "^0.3.2", - "snakecase-keys": "^5.1.2", - "store2": "^2.12.0" - } + "@noble/hashes": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.1.2.tgz", + "integrity": "sha512-KYRCASVTv6aeUi1tsF8/vpyR7zpfs3FUzy2Jqm+MU+LmUKhQ0y2FpfwqkCcxSg2ua4GALJd8k2R76WxwZGbQpA==", + "dev": true }, - "axios": { - "version": "0.21.4", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.4.tgz", - "integrity": "sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==", - "requires": { - "follow-redirects": "^1.14.0" - } - } - } - }, - "@injectivelabs/ts-types": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/@injectivelabs/ts-types/-/ts-types-1.11.0.tgz", - "integrity": "sha512-3ZVRW1xMe3RHOxFblRC0LgQcU/rpxgZQZ+sISyRKFGcS/m2ApkdmcPvjMgd5TQe9AXW/6nnvmul3mST8iAaUJg==", - "requires": { - "link-module-alias": "^1.2.0", - "shx": "^0.3.2" - } - }, - "@injectivelabs/utils": { - "version": "1.10.12", - "resolved": "https://registry.npmjs.org/@injectivelabs/utils/-/utils-1.10.12.tgz", - "integrity": "sha512-c8al79nxIJgV1cBAdW2TPDGldj/8gm5k0h5TIN/AJs8/AeIjpTwwVGfLY3QvPOpRsxuQ9CjBkTXrAcSL1wwkcw==", - "requires": { - "@injectivelabs/exceptions": "^1.10.12", - "@injectivelabs/ts-types": "^1.10.12", - "axios": "^0.21.1", - "bignumber.js": "^9.0.1", - "http-status-codes": "^2.2.0", - "link-module-alias": "^1.2.0", - "shx": "^0.3.2", - "snakecase-keys": "^5.1.2", - "store2": "^2.12.0" - }, - "dependencies": { - "axios": { - "version": "0.21.4", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.4.tgz", - "integrity": "sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==", + "ethereum-cryptography": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-1.1.2.tgz", + "integrity": "sha512-XDSJlg4BD+hq9N2FjvotwUET9Tfxpxc3kWGE2AqUG5vcbeunnbImVk3cj6e/xT3phdW21mE8R5IugU4fspQDcQ==", + "dev": true, "requires": { - "follow-redirects": "^1.14.0" + "@noble/hashes": "1.1.2", + "@noble/secp256k1": "1.6.3", + "@scure/bip32": "1.1.0", + "@scure/bip39": "1.1.0" } } } }, - "@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==", + "@types/babel__core": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", + "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==", "dev": true, "requires": { - "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" + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" } }, - "@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 - }, - "@jest/console": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-29.7.0.tgz", - "integrity": "sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==", + "@types/babel__generator": { + "version": "7.6.8", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.8.tgz", + "integrity": "sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==", "dev": true, "requires": { - "@jest/types": "^29.6.3", - "@types/node": "*", - "chalk": "^4.0.0", - "jest-message-util": "^29.7.0", - "jest-util": "^29.7.0", - "slash": "^3.0.0" - }, - "dependencies": { - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } + "@babel/types": "^7.0.0" } - }, - "@jest/core": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/core/-/core-29.7.0.tgz", - "integrity": "sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg==", - "dev": true, - "requires": { - "@jest/console": "^29.7.0", - "@jest/reporters": "^29.7.0", - "@jest/test-result": "^29.7.0", - "@jest/transform": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "exit": "^0.1.2", - "graceful-fs": "^4.2.9", - "jest-changed-files": "^29.7.0", - "jest-config": "^29.7.0", - "jest-haste-map": "^29.7.0", - "jest-message-util": "^29.7.0", - "jest-regex-util": "^29.6.3", - "jest-resolve": "^29.7.0", - "jest-resolve-dependencies": "^29.7.0", - "jest-runner": "^29.7.0", - "jest-runtime": "^29.7.0", - "jest-snapshot": "^29.7.0", - "jest-util": "^29.7.0", - "jest-validate": "^29.7.0", - "jest-watcher": "^29.7.0", - "micromatch": "^4.0.4", - "pretty-format": "^29.7.0", - "slash": "^3.0.0", - "strip-ansi": "^6.0.0" - }, - "dependencies": { - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } + }, + "@types/babel__template": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz", + "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", + "dev": true, + "requires": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" } }, - "@jest/environment": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.7.0.tgz", - "integrity": "sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==", + "@types/babel__traverse": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.5.tgz", + "integrity": "sha512-WXCyOcRtH37HAUkpXhUduaxdm82b4GSlyTqajXviN4EfiuPgNYR109xMCKvpl6zPIpua0DGlMEDCq+g8EdoheQ==", "dev": true, "requires": { - "@jest/fake-timers": "^29.7.0", - "@jest/types": "^29.6.3", + "@babel/types": "^7.20.7" + } + }, + "@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==", + "requires": { + "@types/node": "*" + } + }, + "@types/bs58": { + "version": "4.0.1", + "dev": true, + "requires": { + "base-x": "^3.0.6" + } + }, + "@types/cacheable-request": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/@types/cacheable-request/-/cacheable-request-6.0.3.tgz", + "integrity": "sha512-IQ3EbTzGxIigb1I3qPZc1rWJnH0BmSKv5QYTalEwweFvyBDLSAe24zP0le/hyi7ecGfZVlIVAg4BZqb8WBwKqw==", + "requires": { + "@types/http-cache-semantics": "*", + "@types/keyv": "^3.1.4", "@types/node": "*", - "jest-mock": "^29.7.0" + "@types/responselike": "^1.0.0" } }, - "@jest/expect": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-29.7.0.tgz", - "integrity": "sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==", + "@types/config": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/@types/config/-/config-3.3.0.tgz", + "integrity": "sha512-9kZSbl3/X3TVNowLCu5HFQdQmD+4287Om55avknEYkuo6R2dDrsp/EXEHUFvfYeG7m1eJ0WYGj+cbcUIhARJAQ==" + }, + "@types/connect": { + "version": "3.4.35", + "requires": { + "@types/node": "*" + } + }, + "@types/graceful-fs": { + "version": "4.1.9", + "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.9.tgz", + "integrity": "sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==", "dev": true, "requires": { - "expect": "^29.7.0", - "jest-snapshot": "^29.7.0" + "@types/node": "*" } }, - "@jest/expect-utils": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.7.0.tgz", - "integrity": "sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==", + "@types/http-cache-semantics": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.4.tgz", + "integrity": "sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA==" + }, + "@types/istanbul-lib-coverage": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz", + "integrity": "sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==", + "dev": true + }, + "@types/istanbul-lib-report": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz", + "integrity": "sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==", "dev": true, "requires": { - "jest-get-type": "^29.6.3" + "@types/istanbul-lib-coverage": "*" } }, - "@jest/fake-timers": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.7.0.tgz", - "integrity": "sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==", + "@types/istanbul-reports": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz", + "integrity": "sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==", "dev": true, "requires": { - "@jest/types": "^29.6.3", - "@sinonjs/fake-timers": "^10.0.2", - "@types/node": "*", - "jest-message-util": "^29.7.0", - "jest-mock": "^29.7.0", - "jest-util": "^29.7.0" + "@types/istanbul-lib-report": "*" } }, - "@jest/globals": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-29.7.0.tgz", - "integrity": "sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==", + "@types/jest": { + "version": "29.5.12", + "resolved": "https://registry.npmjs.org/@types/jest/-/jest-29.5.12.tgz", + "integrity": "sha512-eDC8bTvT/QhYdxJAulQikueigY5AsdBRH2yDKW3yveW7svY3+DzN84/2NUgkw10RTiJbWqZrTtoGVdYlvFJdLw==", "dev": true, "requires": { - "@jest/environment": "^29.7.0", - "@jest/expect": "^29.7.0", - "@jest/types": "^29.6.3", - "jest-mock": "^29.7.0" + "expect": "^29.0.0", + "pretty-format": "^29.0.0" } }, - "@jest/reporters": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-29.7.0.tgz", - "integrity": "sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==", + "@types/keyv": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/@types/keyv/-/keyv-3.1.4.tgz", + "integrity": "sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==", + "requires": { + "@types/node": "*" + } + }, + "@types/lodash": { + "version": "4.14.171" + }, + "@types/lodash.values": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/@types/lodash.values/-/lodash.values-4.3.7.tgz", + "integrity": "sha512-Moex9/sWxtKEa+BKiH5zvmhfcieDlcz4wRxMhO/oJ2qOKUdujoU6dQjUTxWA8jwEREpHXmiY4HCwNRpycW8JQA==", + "requires": { + "@types/lodash": "*" + } + }, + "@types/long": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@types/long/-/long-4.0.2.tgz", + "integrity": "sha512-MqTGEo5bj5t157U6fA/BiDynNkn0YknVdh48CMPkTSpFTVmvao5UQmm7uEF6xBEo7qIMAlY/JSleYaE6VOdpaA==" + }, + "@types/node": { + "version": "20.12.12", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.12.12.tgz", + "integrity": "sha512-eWLDGF/FOSPtAvEqeRAQ4C8LSA7M1I7i0ky1I8U7kD1J5ITyW3AsRhQrKVoWf5pFKZ2kILsEGJhsI9r93PYnOw==", + "requires": { + "undici-types": "~5.26.4" + } + }, + "@types/node-fetch": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.6.3.tgz", + "integrity": "sha512-ETTL1mOEdq/sxUtgtOhKjyB2Irra4cjxksvcMUR5Zr4n+PxVhsCD9WS46oPbHL3et9Zde7CNRr+WUNlcHvsX+w==", "dev": true, "requires": { - "@bcoe/v8-coverage": "^0.2.3", - "@jest/console": "^29.7.0", - "@jest/test-result": "^29.7.0", - "@jest/transform": "^29.7.0", - "@jest/types": "^29.6.3", - "@jridgewell/trace-mapping": "^0.3.18", "@types/node": "*", - "chalk": "^4.0.0", - "collect-v8-coverage": "^1.0.0", - "exit": "^0.1.2", - "glob": "^7.1.3", - "graceful-fs": "^4.2.9", - "istanbul-lib-coverage": "^3.0.0", - "istanbul-lib-instrument": "^6.0.0", - "istanbul-lib-report": "^3.0.0", - "istanbul-lib-source-maps": "^4.0.0", - "istanbul-reports": "^3.1.3", - "jest-message-util": "^29.7.0", - "jest-util": "^29.7.0", - "jest-worker": "^29.7.0", - "slash": "^3.0.0", - "string-length": "^4.0.1", - "strip-ansi": "^6.0.0", - "v8-to-istanbul": "^9.0.1" + "form-data": "^3.0.0" }, "dependencies": { - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "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, "requires": { - "has-flag": "^4.0.0" + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" } } } }, - "@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==", - "dev": true, + "@types/pbkdf2": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@types/pbkdf2/-/pbkdf2-3.1.0.tgz", + "integrity": "sha512-Cf63Rv7jCQ0LaL8tNXmEyqTHuIJxRdlS5vMh1mj5voN4+QFhVZnlZruezqpWYDiJ8UTzhP0VmeLXCmBk66YrMQ==", "requires": { - "@sinclair/typebox": "^0.27.8" + "@types/node": "*" } }, - "@jest/source-map": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-29.6.3.tgz", - "integrity": "sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==", - "dev": true, + "@types/responselike": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@types/responselike/-/responselike-1.0.3.tgz", + "integrity": "sha512-H/+L+UkTV33uf49PH5pCAUBVPNj2nDBXTN+qS1dOwyyg24l3CcicicCA7ca+HMvJBZcFgl5r8e+RR6elsb4Lyw==", "requires": { - "@jridgewell/trace-mapping": "^0.3.18", - "callsites": "^3.0.0", - "graceful-fs": "^4.2.9" + "@types/node": "*" } }, - "@jest/test-result": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-29.7.0.tgz", - "integrity": "sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA==", + "@types/secp256k1": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/@types/secp256k1/-/secp256k1-4.0.3.tgz", + "integrity": "sha512-Da66lEIFeIz9ltsdMZcpQvmrmmoqrfju8pm1BH8WbYjZSwUgCwXLb9C+9XYogwBITnbsSaMdVPb2ekf7TV+03w==", + "requires": { + "@types/node": "*" + } + }, + "@types/stack-utils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.3.tgz", + "integrity": "sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==", + "dev": true + }, + "@types/ws": { + "version": "7.4.7", + "requires": { + "@types/node": "*" + } + }, + "@types/yargs": { + "version": "17.0.24", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.24.tgz", + "integrity": "sha512-6i0aC7jV6QzQB8ne1joVZ0eSFIstHsCrobmOtghM11yGlH0j43FKL2UhWdELkyps0zuf7qVTUVCCR+tgSlyLLw==", "dev": true, "requires": { - "@jest/console": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/istanbul-lib-coverage": "^2.0.0", - "collect-v8-coverage": "^1.0.0" + "@types/yargs-parser": "*" + } + }, + "@types/yargs-parser": { + "version": "20.2.1", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-20.2.1.tgz", + "integrity": "sha512-7tFImggNeNBVMsn0vLrpn1H1uPrUBdnARPTpZoitY37ZrdJREzf7I16tMrlK3hen349gr1NYh8CmZQa7CTG6Aw==", + "dev": true + }, + "@wormhole-foundation/sdk": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/@wormhole-foundation/sdk/-/sdk-0.9.0.tgz", + "integrity": "sha512-QHqtTxxUqi1e6qA6xx0kb40K1C+/6rIzTsRlhhap0hTvWRnuxVRFNRRwXTfCWDKYSXTdkVq04z8uewnBL2DfNA==", + "requires": { + "@wormhole-foundation/sdk-algorand": "0.9.0", + "@wormhole-foundation/sdk-algorand-core": "0.9.0", + "@wormhole-foundation/sdk-algorand-tokenbridge": "0.9.0", + "@wormhole-foundation/sdk-aptos": "0.9.0", + "@wormhole-foundation/sdk-aptos-core": "0.9.0", + "@wormhole-foundation/sdk-aptos-tokenbridge": "0.9.0", + "@wormhole-foundation/sdk-base": "0.9.0", + "@wormhole-foundation/sdk-connect": "0.9.0", + "@wormhole-foundation/sdk-cosmwasm": "0.9.0", + "@wormhole-foundation/sdk-cosmwasm-core": "0.9.0", + "@wormhole-foundation/sdk-cosmwasm-ibc": "0.9.0", + "@wormhole-foundation/sdk-cosmwasm-tokenbridge": "0.9.0", + "@wormhole-foundation/sdk-definitions": "0.9.0", + "@wormhole-foundation/sdk-evm": "0.9.0", + "@wormhole-foundation/sdk-evm-cctp": "0.9.0", + "@wormhole-foundation/sdk-evm-core": "0.9.0", + "@wormhole-foundation/sdk-evm-portico": "0.9.0", + "@wormhole-foundation/sdk-evm-tokenbridge": "0.9.0", + "@wormhole-foundation/sdk-solana": "0.9.0", + "@wormhole-foundation/sdk-solana-cctp": "0.9.0", + "@wormhole-foundation/sdk-solana-core": "0.9.0", + "@wormhole-foundation/sdk-solana-tokenbridge": "0.9.0", + "@wormhole-foundation/sdk-sui": "0.9.0", + "@wormhole-foundation/sdk-sui-core": "0.9.0", + "@wormhole-foundation/sdk-sui-tokenbridge": "0.9.0" + } + }, + "@wormhole-foundation/sdk-algorand": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/@wormhole-foundation/sdk-algorand/-/sdk-algorand-0.9.0.tgz", + "integrity": "sha512-Eb+2t+vmsbxDtlg/X+kBaEyESOkPBnRbx2+FU0C8oPkGUlqY7pmtLxWa6Hqsfc/uf6JJSxpp9J6xI3cQaSb6QQ==", + "requires": { + "@wormhole-foundation/sdk-connect": "0.9.0", + "algosdk": "2.7.0" + } + }, + "@wormhole-foundation/sdk-algorand-core": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/@wormhole-foundation/sdk-algorand-core/-/sdk-algorand-core-0.9.0.tgz", + "integrity": "sha512-N8JN/optC07spfq0TP4Zocb80rZ/C4cMrBlS1oz1gZQGjVmuKPig5zGkri/vGMaHppHY/brlmAjUzNxJ2RKqlA==", + "requires": { + "@wormhole-foundation/sdk-algorand": "0.9.0", + "@wormhole-foundation/sdk-connect": "0.9.0" } }, - "@jest/test-sequencer": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-29.7.0.tgz", - "integrity": "sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw==", - "dev": true, + "@wormhole-foundation/sdk-algorand-tokenbridge": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/@wormhole-foundation/sdk-algorand-tokenbridge/-/sdk-algorand-tokenbridge-0.9.0.tgz", + "integrity": "sha512-7c9oEqh8zLrTHQeLfpH6KOINyjIG7pzF2vl9JQh/ghjmhRYl8l/OxgPBJN9u4Iz7GXjjZC+RKi/3WhUHjLyGbA==", "requires": { - "@jest/test-result": "^29.7.0", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.7.0", - "slash": "^3.0.0" + "@wormhole-foundation/sdk-algorand": "0.9.0", + "@wormhole-foundation/sdk-algorand-core": "0.9.0", + "@wormhole-foundation/sdk-connect": "0.9.0" } }, - "@jest/transform": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-29.7.0.tgz", - "integrity": "sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==", - "dev": true, + "@wormhole-foundation/sdk-aptos": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/@wormhole-foundation/sdk-aptos/-/sdk-aptos-0.9.0.tgz", + "integrity": "sha512-eTL87zCvsZXCpzwEkpKgEYcAw2qEKstDd+ZyLlHtUnXfpPcbNtBcZG7kT7XMLaJMI2b+IH+M8OmOWja6T9bPEA==", "requires": { - "@babel/core": "^7.11.6", - "@jest/types": "^29.6.3", - "@jridgewell/trace-mapping": "^0.3.18", - "babel-plugin-istanbul": "^6.1.1", - "chalk": "^4.0.0", - "convert-source-map": "^2.0.0", - "fast-json-stable-stringify": "^2.1.0", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.7.0", - "jest-regex-util": "^29.6.3", - "jest-util": "^29.7.0", - "micromatch": "^4.0.4", - "pirates": "^4.0.4", - "slash": "^3.0.0", - "write-file-atomic": "^4.0.2" + "@wormhole-foundation/sdk-connect": "0.9.0", + "aptos": "1.21.0" }, "dependencies": { - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true + "@noble/hashes": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.3.3.tgz", + "integrity": "sha512-V7/fPHgl+jsVPXqqeOzT8egNj2iBIVt+ECeMMG8TdcnTikP3oaBtUVqpT/gYCR68aEBJSF+XbYUxStjbFMqIIA==" }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, + "@scure/bip39": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.2.1.tgz", + "integrity": "sha512-Z3/Fsz1yr904dduJD0NpiyRHhRYHdcnyh73FZWiV+/qhWi83wNJ3NWolYqCEN+ZWsUz2TWwajJggcRE9r1zUYg==", "requires": { - "has-flag": "^4.0.0" + "@noble/hashes": "~1.3.0", + "@scure/base": "~1.1.0" } - } - } - }, - "@jest/types": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.3.tgz", - "integrity": "sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==", - "dev": true, - "requires": { - "@jest/schemas": "^29.6.3", - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^17.0.8", - "chalk": "^4.0.0" - }, - "dependencies": { - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, + }, + "aptos": { + "version": "1.21.0", + "resolved": "https://registry.npmjs.org/aptos/-/aptos-1.21.0.tgz", + "integrity": "sha512-PRKjoFgL8tVEc9+oS7eJUv8GNxx8n3+0byH2+m7CP3raYOD6yFKOecuwjVMIJmgfpjp6xH0P0HDMGZAXmSyU0Q==", "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" + "@aptos-labs/aptos-client": "^0.1.0", + "@noble/hashes": "1.3.3", + "@scure/bip39": "1.2.1", + "eventemitter3": "^5.0.1", + "form-data": "4.0.0", + "tweetnacl": "1.0.3" } }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true + "eventemitter3": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.1.tgz", + "integrity": "sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==" }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, + "form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", "requires": { - "has-flag": "^4.0.0" + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" } } } }, - "@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, + "@wormhole-foundation/sdk-aptos-core": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/@wormhole-foundation/sdk-aptos-core/-/sdk-aptos-core-0.9.0.tgz", + "integrity": "sha512-G3Fw7FD7y+3y5eZo+mNVHGZ8Wg1LEos6l68QE3XxSC4JK5pzjLMhd64tUU7tXvTzH7PHz+CKnayeLpojkcpyyQ==", "requires": { - "@jridgewell/set-array": "^1.0.0", - "@jridgewell/sourcemap-codec": "^1.4.10" + "@wormhole-foundation/sdk-aptos": "0.9.0", + "@wormhole-foundation/sdk-connect": "0.9.0" } }, - "@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 - }, - "@jridgewell/set-array": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", - "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", - "dev": true - }, - "@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 + "@wormhole-foundation/sdk-aptos-tokenbridge": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/@wormhole-foundation/sdk-aptos-tokenbridge/-/sdk-aptos-tokenbridge-0.9.0.tgz", + "integrity": "sha512-QDZEcwIJt2z11KPPZjo1juAtAlq5HT1Yfavnu8RGxbCtiPJiZPB2wmzYrNFRV/EQMX21MF3+oXt+RFU8nFMWjw==", + "requires": { + "@wormhole-foundation/sdk-aptos": "0.9.0", + "@wormhole-foundation/sdk-connect": "0.9.0" + } }, - "@jridgewell/trace-mapping": { - "version": "0.3.25", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", - "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", - "dev": true, + "@wormhole-foundation/sdk-base": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/@wormhole-foundation/sdk-base/-/sdk-base-0.9.0.tgz", + "integrity": "sha512-FnwFTPVBbH5uWEsw62hujwf7bI7gML9EcpVZIAoTiVYGKe7/FovSZI9ucymsnHJECmPOkqEQ3koQuRLRZALmig==", "requires": { - "@jridgewell/resolve-uri": "^3.1.0", - "@jridgewell/sourcemap-codec": "^1.4.14" + "@scure/base": "^1.1.3" } }, - "@keplr-wallet/types": { - "version": "0.11.57", - "resolved": "https://registry.npmjs.org/@keplr-wallet/types/-/types-0.11.57.tgz", - "integrity": "sha512-+TVw7DxJUeoPPzWsEjXyaIRRIK5pMBPcGg7IOmnjBkSYTL1jU7YoarCXOnpPYo7FRZcDb6KjTi6BOV8PCoeBdg==", + "@wormhole-foundation/sdk-connect": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/@wormhole-foundation/sdk-connect/-/sdk-connect-0.9.0.tgz", + "integrity": "sha512-5w5q3URNF1iInpwcP8kN6MZD29gjWVwlieHP25ijmhdd/BPqMu0dOOyljs2tGQM4GbjwtTCwsXg13JRq2TN5dQ==", "requires": { - "axios": "^0.27.2", - "long": "^4.0.0" + "@wormhole-foundation/sdk-base": "0.9.0", + "@wormhole-foundation/sdk-definitions": "0.9.0", + "axios": "^1.4.0" }, "dependencies": { "axios": { - "version": "0.27.2", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.27.2.tgz", - "integrity": "sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==", + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.3.tgz", + "integrity": "sha512-Ar7ND9pU99eJ9GpoGQKhKf58GpUOgnzuaB7ueNQ5BMi0p+LZ5oaEnfF999fAArcTIBwXTCHAmGcHOZJaWPq9Nw==", "requires": { - "follow-redirects": "^1.14.9", - "form-data": "^4.0.0" + "follow-redirects": "^1.15.6", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" } }, "form-data": { @@ -13738,419 +18726,685 @@ } } }, - "@metamask/eth-sig-util": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@metamask/eth-sig-util/-/eth-sig-util-4.0.1.tgz", - "integrity": "sha512-tghyZKLHZjcdlDqCA3gNZmLeR0XvOE9U1qoQO9ohyAZT6Pya+H9vkBPcsyXytmYLNgVoin7CKCmweo/R43V+tQ==", + "@wormhole-foundation/sdk-cosmwasm": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/@wormhole-foundation/sdk-cosmwasm/-/sdk-cosmwasm-0.9.0.tgz", + "integrity": "sha512-wcSykJgULcEsvFsyLlT3jybVwts6xamsSFeZ+ZH37FGzdK1wNzEHK+gOTdsYCdiSgGwfrWD62h3Z+VkpYFMovw==", "requires": { - "ethereumjs-abi": "^0.6.8", - "ethereumjs-util": "^6.2.1", - "ethjs-util": "^0.1.6", - "tweetnacl": "^1.0.3", - "tweetnacl-util": "^0.15.1" + "@cosmjs/cosmwasm-stargate": "^0.32.0", + "@cosmjs/proto-signing": "^0.32.0", + "@cosmjs/stargate": "^0.32.0", + "@injectivelabs/sdk-ts": "^1.14.13-beta.2", + "@wormhole-foundation/sdk-connect": "0.9.0", + "cosmjs-types": "^0.9.0" }, "dependencies": { - "@types/bn.js": { - "version": "4.11.6", - "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-4.11.6.tgz", - "integrity": "sha512-pqr857jrp2kPuO9uRjZ3PwnJTjoQy+fcdxvBTvHm6dkmEL9q+hDD/2j/0ELOBPtPnS8LjCX0gI9nbl8lVkadpg==", + "@cosmjs/amino": { + "version": "0.32.4", + "resolved": "https://registry.npmjs.org/@cosmjs/amino/-/amino-0.32.4.tgz", + "integrity": "sha512-zKYOt6hPy8obIFtLie/xtygCkH9ZROiQ12UHfKsOkWaZfPQUvVbtgmu6R4Kn1tFLI/SRkw7eqhaogmW/3NYu/Q==", "requires": { - "@types/node": "*" + "@cosmjs/crypto": "^0.32.4", + "@cosmjs/encoding": "^0.32.4", + "@cosmjs/math": "^0.32.4", + "@cosmjs/utils": "^0.32.4" } }, - "bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + "@cosmjs/cosmwasm-stargate": { + "version": "0.32.4", + "resolved": "https://registry.npmjs.org/@cosmjs/cosmwasm-stargate/-/cosmwasm-stargate-0.32.4.tgz", + "integrity": "sha512-Fuo9BGEiB+POJ5WeRyBGuhyKR1ordvxZGLPuPosFJOH9U0gKMgcjwKMCgAlWFkMlHaTB+tNdA8AifWiHrI7VgA==", + "requires": { + "@cosmjs/amino": "^0.32.4", + "@cosmjs/crypto": "^0.32.4", + "@cosmjs/encoding": "^0.32.4", + "@cosmjs/math": "^0.32.4", + "@cosmjs/proto-signing": "^0.32.4", + "@cosmjs/stargate": "^0.32.4", + "@cosmjs/tendermint-rpc": "^0.32.4", + "@cosmjs/utils": "^0.32.4", + "cosmjs-types": "^0.9.0", + "pako": "^2.0.2" + } }, - "ethereumjs-util": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-6.2.1.tgz", - "integrity": "sha512-W2Ktez4L01Vexijrm5EB6w7dg4n/TgpoYU4avuT5T3Vmnw/eCRtiBrJfQYS/DCSvDIOLn2k57GcHdeBcgVxAqw==", + "@cosmjs/crypto": { + "version": "0.32.4", + "resolved": "https://registry.npmjs.org/@cosmjs/crypto/-/crypto-0.32.4.tgz", + "integrity": "sha512-zicjGU051LF1V9v7bp8p7ovq+VyC91xlaHdsFOTo2oVry3KQikp8L/81RkXmUIT8FxMwdx1T7DmFwVQikcSDIw==", "requires": { - "@types/bn.js": "^4.11.3", - "bn.js": "^4.11.0", - "create-hash": "^1.1.2", - "elliptic": "^6.5.2", - "ethereum-cryptography": "^0.1.3", - "ethjs-util": "0.1.6", - "rlp": "^2.2.3" + "@cosmjs/encoding": "^0.32.4", + "@cosmjs/math": "^0.32.4", + "@cosmjs/utils": "^0.32.4", + "@noble/hashes": "^1", + "bn.js": "^5.2.0", + "elliptic": "^6.5.4", + "libsodium-wrappers-sumo": "^0.7.11" } - } - } - }, - "@metamask/safe-event-emitter": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@metamask/safe-event-emitter/-/safe-event-emitter-2.0.0.tgz", - "integrity": "sha512-/kSXhY692qiV1MXu6EeOZvg5nECLclxNXcKCxJ3cXQgYuRymRHpdx/t7JXfsK+JLjwA1e1c1/SBrlQYpusC29Q==", - "dev": true - }, - "@mysten/bcs": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/@mysten/bcs/-/bcs-0.7.1.tgz", - "integrity": "sha512-wFPb8bkhwrbiStfZMV5rFM7J+umpke59/dNjDp+UYJKykNlW23LCk2ePyEUvGdb62HGJM1jyOJ8g4egE3OmdKA==", - "requires": { - "bs58": "^5.0.0" - }, - "dependencies": { - "base-x": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/base-x/-/base-x-4.0.0.tgz", - "integrity": "sha512-FuwxlW4H5kh37X/oW59pwTzzTKRzfrrQwhmyspRM7swOEZcHtDZSCt45U6oKgtuFE+WYPblePMVIPR4RZrh/hw==" }, - "bs58": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/bs58/-/bs58-5.0.0.tgz", - "integrity": "sha512-r+ihvQJvahgYT50JD05dyJNKlmmSlMoOGwn1lCcEzanPglg7TxYjioQUYehQ9mAR/+hOSd2jRc/Z2y5UxBymvQ==", + "@cosmjs/encoding": { + "version": "0.32.4", + "resolved": "https://registry.npmjs.org/@cosmjs/encoding/-/encoding-0.32.4.tgz", + "integrity": "sha512-tjvaEy6ZGxJchiizzTn7HVRiyTg1i4CObRRaTRPknm5EalE13SV+TCHq38gIDfyUeden4fCuaBVEdBR5+ti7Hw==", + "requires": { + "base64-js": "^1.3.0", + "bech32": "^1.1.4", + "readonly-date": "^1.0.0" + }, + "dependencies": { + "bech32": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/bech32/-/bech32-1.1.4.tgz", + "integrity": "sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ==" + } + } + }, + "@cosmjs/json-rpc": { + "version": "0.32.4", + "resolved": "https://registry.npmjs.org/@cosmjs/json-rpc/-/json-rpc-0.32.4.tgz", + "integrity": "sha512-/jt4mBl7nYzfJ2J/VJ+r19c92mUKF0Lt0JxM3MXEJl7wlwW5haHAWtzRujHkyYMXOwIR+gBqT2S0vntXVBRyhQ==", + "requires": { + "@cosmjs/stream": "^0.32.4", + "xstream": "^11.14.0" + } + }, + "@cosmjs/math": { + "version": "0.32.4", + "resolved": "https://registry.npmjs.org/@cosmjs/math/-/math-0.32.4.tgz", + "integrity": "sha512-++dqq2TJkoB8zsPVYCvrt88oJWsy1vMOuSOKcdlnXuOA/ASheTJuYy4+oZlTQ3Fr8eALDLGGPhJI02W2HyAQaw==", + "requires": { + "bn.js": "^5.2.0" + } + }, + "@cosmjs/proto-signing": { + "version": "0.32.4", + "resolved": "https://registry.npmjs.org/@cosmjs/proto-signing/-/proto-signing-0.32.4.tgz", + "integrity": "sha512-QdyQDbezvdRI4xxSlyM1rSVBO2st5sqtbEIl3IX03uJ7YiZIQHyv6vaHVf1V4mapusCqguiHJzm4N4gsFdLBbQ==", + "requires": { + "@cosmjs/amino": "^0.32.4", + "@cosmjs/crypto": "^0.32.4", + "@cosmjs/encoding": "^0.32.4", + "@cosmjs/math": "^0.32.4", + "@cosmjs/utils": "^0.32.4", + "cosmjs-types": "^0.9.0" + } + }, + "@cosmjs/socket": { + "version": "0.32.4", + "resolved": "https://registry.npmjs.org/@cosmjs/socket/-/socket-0.32.4.tgz", + "integrity": "sha512-davcyYziBhkzfXQTu1l5NrpDYv0K9GekZCC9apBRvL1dvMc9F/ygM7iemHjUA+z8tJkxKxrt/YPjJ6XNHzLrkw==", + "requires": { + "@cosmjs/stream": "^0.32.4", + "isomorphic-ws": "^4.0.1", + "ws": "^7", + "xstream": "^11.14.0" + } + }, + "@cosmjs/stargate": { + "version": "0.32.4", + "resolved": "https://registry.npmjs.org/@cosmjs/stargate/-/stargate-0.32.4.tgz", + "integrity": "sha512-usj08LxBSsPRq9sbpCeVdyLx2guEcOHfJS9mHGCLCXpdAPEIEQEtWLDpEUc0LEhWOx6+k/ChXTc5NpFkdrtGUQ==", + "requires": { + "@confio/ics23": "^0.6.8", + "@cosmjs/amino": "^0.32.4", + "@cosmjs/encoding": "^0.32.4", + "@cosmjs/math": "^0.32.4", + "@cosmjs/proto-signing": "^0.32.4", + "@cosmjs/stream": "^0.32.4", + "@cosmjs/tendermint-rpc": "^0.32.4", + "@cosmjs/utils": "^0.32.4", + "cosmjs-types": "^0.9.0", + "xstream": "^11.14.0" + } + }, + "@cosmjs/stream": { + "version": "0.32.4", + "resolved": "https://registry.npmjs.org/@cosmjs/stream/-/stream-0.32.4.tgz", + "integrity": "sha512-Gih++NYHEiP+oyD4jNEUxU9antoC0pFSg+33Hpp0JlHwH0wXhtD3OOKnzSfDB7OIoEbrzLJUpEjOgpCp5Z+W3A==", + "requires": { + "xstream": "^11.14.0" + } + }, + "@cosmjs/tendermint-rpc": { + "version": "0.32.4", + "resolved": "https://registry.npmjs.org/@cosmjs/tendermint-rpc/-/tendermint-rpc-0.32.4.tgz", + "integrity": "sha512-MWvUUno+4bCb/LmlMIErLypXxy7ckUuzEmpufYYYd9wgbdCXaTaO08SZzyFM5PI8UJ/0S2AmUrgWhldlbxO8mw==", + "requires": { + "@cosmjs/crypto": "^0.32.4", + "@cosmjs/encoding": "^0.32.4", + "@cosmjs/json-rpc": "^0.32.4", + "@cosmjs/math": "^0.32.4", + "@cosmjs/socket": "^0.32.4", + "@cosmjs/stream": "^0.32.4", + "@cosmjs/utils": "^0.32.4", + "axios": "^1.6.0", + "readonly-date": "^1.0.0", + "xstream": "^11.14.0" + } + }, + "@cosmjs/utils": { + "version": "0.32.4", + "resolved": "https://registry.npmjs.org/@cosmjs/utils/-/utils-0.32.4.tgz", + "integrity": "sha512-D1Yc+Zy8oL/hkUkFUL/bwxvuDBzRGpc4cF7/SkdhxX4iHpSLgdOuTt1mhCh9+kl6NQREy9t7SYZ6xeW5gFe60w==" + }, + "@injectivelabs/core-proto-ts": { + "version": "0.0.21", + "resolved": "https://registry.npmjs.org/@injectivelabs/core-proto-ts/-/core-proto-ts-0.0.21.tgz", + "integrity": "sha512-RBxSkRBCty60R/l55/D1jsSW0Aof5dyGFhCFdN3A010KjMv/SzZGGr+6DZPY/hflyFeaJzDv/VTopCymKNRBvQ==", "requires": { - "base-x": "^4.0.0" + "@injectivelabs/grpc-web": "^0.0.1", + "google-protobuf": "^3.14.0", + "protobufjs": "^7.0.0", + "rxjs": "^7.4.0" } - } - } - }, - "@mysten/sui.js": { - "version": "0.32.2", - "resolved": "https://registry.npmjs.org/@mysten/sui.js/-/sui.js-0.32.2.tgz", - "integrity": "sha512-/Hm4xkGolJhqj8FvQr7QSHDTlxIvL52mtbOao9f75YjrBh7y1Uh9kbJSY7xiTF1NY9sv6p5hUVlYRJuM0Hvn9A==", - "requires": { - "@mysten/bcs": "0.7.1", - "@noble/curves": "^1.0.0", - "@noble/hashes": "^1.3.0", - "@scure/bip32": "^1.3.0", - "@scure/bip39": "^1.2.0", - "@suchipi/femver": "^1.0.0", - "jayson": "^4.0.0", - "rpc-websockets": "^7.5.1", - "superstruct": "^1.0.3", - "tweetnacl": "^1.0.3" - }, - "dependencies": { - "@noble/hashes": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.3.0.tgz", - "integrity": "sha512-ilHEACi9DwqJB0pw7kv+Apvh50jiiSyR/cQ3y4W7lOR5mhvn/50FLUfsnfJz0BDZtl/RR16kXvptiv6q1msYZg==" }, - "@scure/bip32": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-1.3.0.tgz", - "integrity": "sha512-bcKpo1oj54hGholplGLpqPHRbIsnbixFtc06nwuNM5/dwSXOq/AAYoIBRsBmnZJSdfeNW5rnff7NTAz3ZCqR9Q==", + "@injectivelabs/indexer-proto-ts": { + "version": "1.11.42", + "resolved": "https://registry.npmjs.org/@injectivelabs/indexer-proto-ts/-/indexer-proto-ts-1.11.42.tgz", + "integrity": "sha512-6ejCpcWZWOSsELFIfUf2+xuJPOH+YdiJtwtB3d9x2H7dnrCBjXMxlPCSxoKEUbDH6w/lY2mO6TJm65rNy9piew==", "requires": { - "@noble/curves": "~1.0.0", - "@noble/hashes": "~1.3.0", - "@scure/base": "~1.1.0" + "@injectivelabs/grpc-web": "^0.0.1", + "google-protobuf": "^3.14.0", + "protobufjs": "^7.0.0", + "rxjs": "^7.4.0" } }, - "@scure/bip39": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.2.0.tgz", - "integrity": "sha512-SX/uKq52cuxm4YFXWFaVByaSHJh2w3BnokVSeUJVCv6K7WulT9u2BuNRBhuFl8vAuYnzx9bEu9WgpcNYTrYieg==", + "@injectivelabs/mito-proto-ts": { + "version": "1.0.65", + "resolved": "https://registry.npmjs.org/@injectivelabs/mito-proto-ts/-/mito-proto-ts-1.0.65.tgz", + "integrity": "sha512-kceZP68QrgFop387RYyO7tkfJCYxoktuceHTs9DQP3dJceLqj/V2mz0NlpkkacjgE5NhYkQ/zc0Z40hr8tnYqQ==", "requires": { - "@noble/hashes": "~1.3.0", - "@scure/base": "~1.1.0" + "@injectivelabs/grpc-web": "^0.0.1", + "google-protobuf": "^3.14.0", + "protobufjs": "^7.0.0", + "rxjs": "^7.4.0" } }, - "@types/node": { - "version": "12.20.55", - "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.55.tgz", - "integrity": "sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==" + "@injectivelabs/networks": { + "version": "1.14.13", + "resolved": "https://registry.npmjs.org/@injectivelabs/networks/-/networks-1.14.13.tgz", + "integrity": "sha512-P+eCQXWpbk4LbPxgTmi2gY7OzdZTNsIEUvDoh59Ma0CkqSFaYMtgB8fZVxpkKM0UPla587EDlEEIVxprDBcnZg==", + "requires": { + "@injectivelabs/exceptions": "^1.14.13", + "@injectivelabs/ts-types": "^1.14.13", + "@injectivelabs/utils": "^1.14.13", + "link-module-alias": "^1.2.0", + "shx": "^0.3.2" + } }, - "jayson": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/jayson/-/jayson-4.1.0.tgz", - "integrity": "sha512-R6JlbyLN53Mjku329XoRT2zJAE6ZgOQ8f91ucYdMCD4nkGCF9kZSrcGXpHIU4jeKj58zUZke2p+cdQchU7Ly7A==", - "requires": { - "@types/connect": "^3.4.33", - "@types/node": "^12.12.54", - "@types/ws": "^7.4.4", - "commander": "^2.20.3", - "delay": "^5.0.0", - "es6-promisify": "^5.0.0", - "eyes": "^0.1.8", - "isomorphic-ws": "^4.0.1", - "json-stringify-safe": "^5.0.1", - "JSONStream": "^1.3.5", - "uuid": "^8.3.2", - "ws": "^7.4.5" + "@injectivelabs/sdk-ts": { + "version": "1.14.13", + "resolved": "https://registry.npmjs.org/@injectivelabs/sdk-ts/-/sdk-ts-1.14.13.tgz", + "integrity": "sha512-qcLoIu+hEMpuvdG0iXGNJvWQD05NkcO59tL3ijEhYmshlJWBMWJtpJJGt/E/hV9YxJfNTl20Rhi/5i7l0y8Hfg==", + "requires": { + "@apollo/client": "^3.5.8", + "@cosmjs/amino": "^0.32.3", + "@cosmjs/proto-signing": "^0.32.3", + "@cosmjs/stargate": "^0.32.3", + "@ethersproject/bytes": "^5.7.0", + "@injectivelabs/core-proto-ts": "^0.0.21", + "@injectivelabs/dmm-proto-ts": "1.0.20", + "@injectivelabs/exceptions": "^1.14.13", + "@injectivelabs/grpc-web": "^0.0.1", + "@injectivelabs/grpc-web-node-http-transport": "^0.0.2", + "@injectivelabs/grpc-web-react-native-transport": "^0.0.2", + "@injectivelabs/indexer-proto-ts": "1.11.42", + "@injectivelabs/mito-proto-ts": "1.0.65", + "@injectivelabs/networks": "^1.14.13", + "@injectivelabs/test-utils": "^1.14.13", + "@injectivelabs/ts-types": "^1.14.13", + "@injectivelabs/utils": "^1.14.13", + "@metamask/eth-sig-util": "^4.0.0", + "@noble/curves": "^1.4.0", + "axios": "^1.6.4", + "bech32": "^2.0.0", + "bip39": "^3.0.4", + "cosmjs-types": "^0.9.0", + "ethereumjs-util": "^7.1.4", + "ethers": "^6.5.1", + "google-protobuf": "^3.21.0", + "graphql": "^16.3.0", + "http-status-codes": "^2.2.0", + "js-sha3": "^0.8.0", + "jscrypto": "^1.0.3", + "keccak256": "^1.0.6", + "link-module-alias": "^1.2.0", + "secp256k1": "^4.0.3", + "shx": "^0.3.2", + "snakecase-keys": "^5.4.1" } }, - "superstruct": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/superstruct/-/superstruct-1.0.3.tgz", - "integrity": "sha512-8iTn3oSS8nRGn+C2pgXSKPI3jmpm6FExNazNpjvqS6ZUJQCej3PUXEKM8NjHBOs54ExM+LPW/FBRhymrdcCiSg==" + "@injectivelabs/utils": { + "version": "1.14.13", + "resolved": "https://registry.npmjs.org/@injectivelabs/utils/-/utils-1.14.13.tgz", + "integrity": "sha512-djmSq28R7HDSb2Mezan+EFjqQgmDRydY+fLOmkODwOCYA04xOGQo7yna+WVovV85aKpwPjn864AWPy65xiHUZg==", + "requires": { + "@injectivelabs/exceptions": "^1.14.13", + "@injectivelabs/ts-types": "^1.14.13", + "axios": "^1.6.4", + "bignumber.js": "^9.0.1", + "http-status-codes": "^2.2.0", + "link-module-alias": "^1.2.0", + "shx": "^0.3.2", + "snakecase-keys": "^5.1.2", + "store2": "^2.12.0" + } }, - "uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==" - } - } - }, - "@noble/curves": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.0.0.tgz", - "integrity": "sha512-2upgEu0iLiDVDZkNLeFV2+ht0BAVgQnEmCk6JsOch9Rp8xfkMCbvbAZlA2pBHQc73dbl+vFOXfqkf4uemdn0bw==", - "requires": { - "@noble/hashes": "1.3.0" - }, - "dependencies": { "@noble/hashes": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.3.0.tgz", - "integrity": "sha512-ilHEACi9DwqJB0pw7kv+Apvh50jiiSyR/cQ3y4W7lOR5mhvn/50FLUfsnfJz0BDZtl/RR16kXvptiv6q1msYZg==" + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.3.2.tgz", + "integrity": "sha512-MVC8EAQp7MvEcm30KWENFjgR+Mkmf+D189XJTkFIlwohU5hcBbn1ZkKq7KVTi2Hme3PMGF390DaL52beVrIihQ==" + }, + "@types/node": { + "version": "18.15.13", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.15.13.tgz", + "integrity": "sha512-N+0kuo9KgrUQ1Sn/ifDXsvg0TTleP7rIy4zOBGECxAljqvqfqpTfzx0Q1NUedOixRMBfe2Whhb056a42cWs26Q==" + }, + "aes-js": { + "version": "4.0.0-beta.5", + "resolved": "https://registry.npmjs.org/aes-js/-/aes-js-4.0.0-beta.5.tgz", + "integrity": "sha512-G965FqalsNyrPqgEGON7nIx1e/OVENSgiEIzyC63haUMuvNnwIgIjMs52hlTCKhkBny7A2ORNlfY9Zu+jmGk1Q==" + }, + "axios": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.3.tgz", + "integrity": "sha512-Ar7ND9pU99eJ9GpoGQKhKf58GpUOgnzuaB7ueNQ5BMi0p+LZ5oaEnfF999fAArcTIBwXTCHAmGcHOZJaWPq9Nw==", + "requires": { + "follow-redirects": "^1.15.6", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" + } + }, + "cosmjs-types": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/cosmjs-types/-/cosmjs-types-0.9.0.tgz", + "integrity": "sha512-MN/yUe6mkJwHnCFfsNPeCfXVhyxHYW6c/xDUzrSbBycYzw++XvWDMJArXp2pLdgD6FQ8DW79vkPjeNKVrXaHeQ==" + }, + "ethers": { + "version": "6.13.2", + "resolved": "https://registry.npmjs.org/ethers/-/ethers-6.13.2.tgz", + "integrity": "sha512-9VkriTTed+/27BGuY1s0hf441kqwHJ1wtN2edksEtiRvXx+soxRX3iSXTfFqq2+YwrOqbDoTHjIhQnjJRlzKmg==", + "requires": { + "@adraffy/ens-normalize": "1.10.1", + "@noble/curves": "1.2.0", + "@noble/hashes": "1.3.2", + "@types/node": "18.15.13", + "aes-js": "4.0.0-beta.5", + "tslib": "2.4.0", + "ws": "8.17.1" + }, + "dependencies": { + "@noble/curves": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.2.0.tgz", + "integrity": "sha512-oYclrNgRaM9SsBUBVbb8M6DTV7ZHRTKugureoYEncY5c65HOmRzvSiTE3y5CYaPYJA/GVkrhXEoF0M3Ya9PMnw==", + "requires": { + "@noble/hashes": "1.3.2" + } + }, + "ws": { + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.17.1.tgz", + "integrity": "sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ==", + "requires": {} + } + } + }, + "form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + } + }, + "long": { + "version": "5.2.3", + "resolved": "https://registry.npmjs.org/long/-/long-5.2.3.tgz", + "integrity": "sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q==" + }, + "protobufjs": { + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.3.2.tgz", + "integrity": "sha512-RXyHaACeqXeqAKGLDl68rQKbmObRsTIn4TYVUUug1KfS47YWCo5MacGITEryugIgZqORCvJWEk4l449POg5Txg==", + "requires": { + "@protobufjs/aspromise": "^1.1.2", + "@protobufjs/base64": "^1.1.2", + "@protobufjs/codegen": "^2.0.4", + "@protobufjs/eventemitter": "^1.1.0", + "@protobufjs/fetch": "^1.1.0", + "@protobufjs/float": "^1.0.2", + "@protobufjs/inquire": "^1.1.0", + "@protobufjs/path": "^1.1.2", + "@protobufjs/pool": "^1.1.0", + "@protobufjs/utf8": "^1.1.0", + "@types/node": ">=13.7.0", + "long": "^5.0.0" + } } } }, - "@noble/ed25519": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/@noble/ed25519/-/ed25519-1.7.1.tgz", - "integrity": "sha512-Rk4SkJFaXZiznFyC/t77Q0NKS4FL7TLJJsVG2V2oiEq3kJVeTdxysEe/yRWSpnWMe808XRDJ+VFh5pt/FN5plw==" - }, - "@noble/hashes": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.1.3.tgz", - "integrity": "sha512-CE0FCR57H2acVI5UOzIGSSIYxZ6v/HOhDR0Ro9VLyhnzLwx0o8W1mmgaqlEUx4049qJDlIBRztv5k+MM8vbO3A==" - }, - "@noble/secp256k1": { - "version": "1.6.3", - "resolved": "https://registry.npmjs.org/@noble/secp256k1/-/secp256k1-1.6.3.tgz", - "integrity": "sha512-T04e4iTurVy7I8Sw4+c5OSN9/RkPlo1uKxAomtxQNLq8j1uPAqnsqG1bqvY3Jv7c13gyr6dui0zmh/I3+f/JaQ==" - }, - "@osmonauts/helpers": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/@osmonauts/helpers/-/helpers-0.6.0.tgz", - "integrity": "sha512-l62tWR/0W4R+5wRvMeRK0zlaJ8WZhULKsQAZ7kNzggL0pbndIAV+0BJ/jEBbNletoeGtuV8rpi6Wo+w+RmtZGw==", + "@wormhole-foundation/sdk-cosmwasm-core": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/@wormhole-foundation/sdk-cosmwasm-core/-/sdk-cosmwasm-core-0.9.0.tgz", + "integrity": "sha512-3Yie5Z1r+R+mhWvPmbj8MFK/44oufJjolE4S8axRC/uPzoiJBm2KMUYTz0305FZ6LRtujyqSukW4HqR1n3wGXA==", "requires": { - "@babel/runtime": "^7.18.9", - "@cosmjs/amino": "0.28.13", - "@cosmjs/crypto": "0.28.13", - "@cosmjs/proto-signing": "0.28.13", - "@cosmjs/stargate": "0.28.13", - "cosmjs-types": "0.5.1", - "long": "^5.2.0", - "protobufjs": "^6.11.3" + "@cosmjs/cosmwasm-stargate": "^0.32.0", + "@cosmjs/stargate": "^0.32.0", + "@injectivelabs/sdk-ts": "^1.14.13-beta.2", + "@wormhole-foundation/sdk-connect": "0.9.0", + "@wormhole-foundation/sdk-cosmwasm": "0.9.0" }, "dependencies": { - "@babel/runtime": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.21.0.tgz", - "integrity": "sha512-xwII0//EObnq89Ji5AKYQaRYiW/nZ3llSv29d49IuxPhKbtJoLP+9QUUZ4nVragQVtaVGeZrpB+ZtG/Pdy/POw==", + "@cosmjs/amino": { + "version": "0.32.4", + "resolved": "https://registry.npmjs.org/@cosmjs/amino/-/amino-0.32.4.tgz", + "integrity": "sha512-zKYOt6hPy8obIFtLie/xtygCkH9ZROiQ12UHfKsOkWaZfPQUvVbtgmu6R4Kn1tFLI/SRkw7eqhaogmW/3NYu/Q==", "requires": { - "regenerator-runtime": "^0.13.11" + "@cosmjs/crypto": "^0.32.4", + "@cosmjs/encoding": "^0.32.4", + "@cosmjs/math": "^0.32.4", + "@cosmjs/utils": "^0.32.4" } }, - "@cosmjs/amino": { - "version": "0.28.13", - "resolved": "https://registry.npmjs.org/@cosmjs/amino/-/amino-0.28.13.tgz", - "integrity": "sha512-IHnH2zGwaY69qT4mVAavr/pfzx6YE+ud1NHJbvVePlbGiz68CXTi5LHR+K0lrKB5mQ7E+ZErWz2mw5U/x+V1wQ==", + "@cosmjs/cosmwasm-stargate": { + "version": "0.32.4", + "resolved": "https://registry.npmjs.org/@cosmjs/cosmwasm-stargate/-/cosmwasm-stargate-0.32.4.tgz", + "integrity": "sha512-Fuo9BGEiB+POJ5WeRyBGuhyKR1ordvxZGLPuPosFJOH9U0gKMgcjwKMCgAlWFkMlHaTB+tNdA8AifWiHrI7VgA==", "requires": { - "@cosmjs/crypto": "0.28.13", - "@cosmjs/encoding": "0.28.13", - "@cosmjs/math": "0.28.13", - "@cosmjs/utils": "0.28.13" + "@cosmjs/amino": "^0.32.4", + "@cosmjs/crypto": "^0.32.4", + "@cosmjs/encoding": "^0.32.4", + "@cosmjs/math": "^0.32.4", + "@cosmjs/proto-signing": "^0.32.4", + "@cosmjs/stargate": "^0.32.4", + "@cosmjs/tendermint-rpc": "^0.32.4", + "@cosmjs/utils": "^0.32.4", + "cosmjs-types": "^0.9.0", + "pako": "^2.0.2" } }, "@cosmjs/crypto": { - "version": "0.28.13", - "resolved": "https://registry.npmjs.org/@cosmjs/crypto/-/crypto-0.28.13.tgz", - "integrity": "sha512-ynKfM0q/tMBQMHJby6ad8lR3gkgBKaelQhIsCZTjClsnuC7oYT9y3ThSZCUWr7Pa9h0J8ahU2YV2oFWFVWJQzQ==", + "version": "0.32.4", + "resolved": "https://registry.npmjs.org/@cosmjs/crypto/-/crypto-0.32.4.tgz", + "integrity": "sha512-zicjGU051LF1V9v7bp8p7ovq+VyC91xlaHdsFOTo2oVry3KQikp8L/81RkXmUIT8FxMwdx1T7DmFwVQikcSDIw==", "requires": { - "@cosmjs/encoding": "0.28.13", - "@cosmjs/math": "0.28.13", - "@cosmjs/utils": "0.28.13", + "@cosmjs/encoding": "^0.32.4", + "@cosmjs/math": "^0.32.4", + "@cosmjs/utils": "^0.32.4", "@noble/hashes": "^1", "bn.js": "^5.2.0", - "elliptic": "^6.5.3", - "libsodium-wrappers": "^0.7.6" + "elliptic": "^6.5.4", + "libsodium-wrappers-sumo": "^0.7.11" } }, "@cosmjs/encoding": { - "version": "0.28.13", - "resolved": "https://registry.npmjs.org/@cosmjs/encoding/-/encoding-0.28.13.tgz", - "integrity": "sha512-jtXbAYtV77rLHxoIrjGFsvgGjeTKttuHRv6cvuy3toCZzY7JzTclKH5O2g36IIE4lXwD9xwuhGJ2aa6A3dhNkA==", + "version": "0.32.4", + "resolved": "https://registry.npmjs.org/@cosmjs/encoding/-/encoding-0.32.4.tgz", + "integrity": "sha512-tjvaEy6ZGxJchiizzTn7HVRiyTg1i4CObRRaTRPknm5EalE13SV+TCHq38gIDfyUeden4fCuaBVEdBR5+ti7Hw==", "requires": { "base64-js": "^1.3.0", "bech32": "^1.1.4", "readonly-date": "^1.0.0" + }, + "dependencies": { + "bech32": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/bech32/-/bech32-1.1.4.tgz", + "integrity": "sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ==" + } } }, "@cosmjs/json-rpc": { - "version": "0.28.13", - "resolved": "https://registry.npmjs.org/@cosmjs/json-rpc/-/json-rpc-0.28.13.tgz", - "integrity": "sha512-fInSvg7x9P6p+GWqet+TMhrMTM3OWWdLJOGS5w2ryubMjgpR1rLiAx77MdTNkArW+/6sUwku0sN4veM4ENQu6A==", + "version": "0.32.4", + "resolved": "https://registry.npmjs.org/@cosmjs/json-rpc/-/json-rpc-0.32.4.tgz", + "integrity": "sha512-/jt4mBl7nYzfJ2J/VJ+r19c92mUKF0Lt0JxM3MXEJl7wlwW5haHAWtzRujHkyYMXOwIR+gBqT2S0vntXVBRyhQ==", "requires": { - "@cosmjs/stream": "0.28.13", + "@cosmjs/stream": "^0.32.4", "xstream": "^11.14.0" } }, "@cosmjs/math": { - "version": "0.28.13", - "resolved": "https://registry.npmjs.org/@cosmjs/math/-/math-0.28.13.tgz", - "integrity": "sha512-PDpL8W/kbyeWi0mQ2OruyqE8ZUAdxPs1xCbDX3WXJwy2oU+X2UTbkuweJHVpS9CIqmZulBoWQAmlf6t6zr1N/g==", + "version": "0.32.4", + "resolved": "https://registry.npmjs.org/@cosmjs/math/-/math-0.32.4.tgz", + "integrity": "sha512-++dqq2TJkoB8zsPVYCvrt88oJWsy1vMOuSOKcdlnXuOA/ASheTJuYy4+oZlTQ3Fr8eALDLGGPhJI02W2HyAQaw==", "requires": { "bn.js": "^5.2.0" } }, "@cosmjs/proto-signing": { - "version": "0.28.13", - "resolved": "https://registry.npmjs.org/@cosmjs/proto-signing/-/proto-signing-0.28.13.tgz", - "integrity": "sha512-nSl/2ZLsUJYz3Ad0RY3ihZUgRHIow2OnYqKsESMu+3RA/jTi9bDYhiBu8mNMHI0xrEJry918B2CyI56pOUHdPQ==", + "version": "0.32.4", + "resolved": "https://registry.npmjs.org/@cosmjs/proto-signing/-/proto-signing-0.32.4.tgz", + "integrity": "sha512-QdyQDbezvdRI4xxSlyM1rSVBO2st5sqtbEIl3IX03uJ7YiZIQHyv6vaHVf1V4mapusCqguiHJzm4N4gsFdLBbQ==", "requires": { - "@cosmjs/amino": "0.28.13", - "@cosmjs/crypto": "0.28.13", - "@cosmjs/encoding": "0.28.13", - "@cosmjs/math": "0.28.13", - "@cosmjs/utils": "0.28.13", - "cosmjs-types": "^0.4.0", - "long": "^4.0.0" - }, - "dependencies": { - "cosmjs-types": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/cosmjs-types/-/cosmjs-types-0.4.1.tgz", - "integrity": "sha512-I7E/cHkIgoJzMNQdFF0YVqPlaTqrqKHrskuSTIqlEyxfB5Lf3WKCajSXVK2yHOfOFfSux/RxEdpMzw/eO4DIog==", - "requires": { - "long": "^4.0.0", - "protobufjs": "~6.11.2" - } - }, - "long": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz", - "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==" - } + "@cosmjs/amino": "^0.32.4", + "@cosmjs/crypto": "^0.32.4", + "@cosmjs/encoding": "^0.32.4", + "@cosmjs/math": "^0.32.4", + "@cosmjs/utils": "^0.32.4", + "cosmjs-types": "^0.9.0" } }, "@cosmjs/socket": { - "version": "0.28.13", - "resolved": "https://registry.npmjs.org/@cosmjs/socket/-/socket-0.28.13.tgz", - "integrity": "sha512-lavwGxQ5VdeltyhpFtwCRVfxeWjH5D5mmN7jgx9nuCf3XSFbTcOYxrk2pQ4usenu1Q1KZdL4Yl5RCNrJuHD9Ug==", + "version": "0.32.4", + "resolved": "https://registry.npmjs.org/@cosmjs/socket/-/socket-0.32.4.tgz", + "integrity": "sha512-davcyYziBhkzfXQTu1l5NrpDYv0K9GekZCC9apBRvL1dvMc9F/ygM7iemHjUA+z8tJkxKxrt/YPjJ6XNHzLrkw==", "requires": { - "@cosmjs/stream": "0.28.13", + "@cosmjs/stream": "^0.32.4", "isomorphic-ws": "^4.0.1", "ws": "^7", "xstream": "^11.14.0" } }, "@cosmjs/stargate": { - "version": "0.28.13", - "resolved": "https://registry.npmjs.org/@cosmjs/stargate/-/stargate-0.28.13.tgz", - "integrity": "sha512-dVBMazDz8/eActHsRcZjDHHptOBMqvibj5CFgEtZBp22gP6ASzoAUXTlkSVk5FBf4sfuUHoff6st134/+PGMAg==", + "version": "0.32.4", + "resolved": "https://registry.npmjs.org/@cosmjs/stargate/-/stargate-0.32.4.tgz", + "integrity": "sha512-usj08LxBSsPRq9sbpCeVdyLx2guEcOHfJS9mHGCLCXpdAPEIEQEtWLDpEUc0LEhWOx6+k/ChXTc5NpFkdrtGUQ==", "requires": { "@confio/ics23": "^0.6.8", - "@cosmjs/amino": "0.28.13", - "@cosmjs/encoding": "0.28.13", - "@cosmjs/math": "0.28.13", - "@cosmjs/proto-signing": "0.28.13", - "@cosmjs/stream": "0.28.13", - "@cosmjs/tendermint-rpc": "0.28.13", - "@cosmjs/utils": "0.28.13", - "cosmjs-types": "^0.4.0", - "long": "^4.0.0", - "protobufjs": "~6.11.3", + "@cosmjs/amino": "^0.32.4", + "@cosmjs/encoding": "^0.32.4", + "@cosmjs/math": "^0.32.4", + "@cosmjs/proto-signing": "^0.32.4", + "@cosmjs/stream": "^0.32.4", + "@cosmjs/tendermint-rpc": "^0.32.4", + "@cosmjs/utils": "^0.32.4", + "cosmjs-types": "^0.9.0", "xstream": "^11.14.0" - }, - "dependencies": { - "cosmjs-types": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/cosmjs-types/-/cosmjs-types-0.4.1.tgz", - "integrity": "sha512-I7E/cHkIgoJzMNQdFF0YVqPlaTqrqKHrskuSTIqlEyxfB5Lf3WKCajSXVK2yHOfOFfSux/RxEdpMzw/eO4DIog==", - "requires": { - "long": "^4.0.0", - "protobufjs": "~6.11.2" - } - }, - "long": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz", - "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==" - } } }, "@cosmjs/stream": { - "version": "0.28.13", - "resolved": "https://registry.npmjs.org/@cosmjs/stream/-/stream-0.28.13.tgz", - "integrity": "sha512-AnjtfwT8NwPPkd3lhZhjOlOzT0Kn9bgEu2IPOZjQ1nmG2bplsr6TJmnwn0dJxHT7UGtex17h6whKB5N4wU37Wg==", + "version": "0.32.4", + "resolved": "https://registry.npmjs.org/@cosmjs/stream/-/stream-0.32.4.tgz", + "integrity": "sha512-Gih++NYHEiP+oyD4jNEUxU9antoC0pFSg+33Hpp0JlHwH0wXhtD3OOKnzSfDB7OIoEbrzLJUpEjOgpCp5Z+W3A==", "requires": { "xstream": "^11.14.0" } }, - "@cosmjs/tendermint-rpc": { - "version": "0.28.13", - "resolved": "https://registry.npmjs.org/@cosmjs/tendermint-rpc/-/tendermint-rpc-0.28.13.tgz", - "integrity": "sha512-GB+ZmfuJIGQm0hsRtLYjeR3lOxF7Z6XyCBR0cX5AAYOZzSEBJjevPgUHD6tLn8zIhvzxaW3/VKnMB+WmlxdH4w==", + "@cosmjs/tendermint-rpc": { + "version": "0.32.4", + "resolved": "https://registry.npmjs.org/@cosmjs/tendermint-rpc/-/tendermint-rpc-0.32.4.tgz", + "integrity": "sha512-MWvUUno+4bCb/LmlMIErLypXxy7ckUuzEmpufYYYd9wgbdCXaTaO08SZzyFM5PI8UJ/0S2AmUrgWhldlbxO8mw==", "requires": { - "@cosmjs/crypto": "0.28.13", - "@cosmjs/encoding": "0.28.13", - "@cosmjs/json-rpc": "0.28.13", - "@cosmjs/math": "0.28.13", - "@cosmjs/socket": "0.28.13", - "@cosmjs/stream": "0.28.13", - "@cosmjs/utils": "0.28.13", - "axios": "^0.21.2", + "@cosmjs/crypto": "^0.32.4", + "@cosmjs/encoding": "^0.32.4", + "@cosmjs/json-rpc": "^0.32.4", + "@cosmjs/math": "^0.32.4", + "@cosmjs/socket": "^0.32.4", + "@cosmjs/stream": "^0.32.4", + "@cosmjs/utils": "^0.32.4", + "axios": "^1.6.0", "readonly-date": "^1.0.0", "xstream": "^11.14.0" } }, "@cosmjs/utils": { - "version": "0.28.13", - "resolved": "https://registry.npmjs.org/@cosmjs/utils/-/utils-0.28.13.tgz", - "integrity": "sha512-dVeMBiyg+46x7XBZEfJK8yTihphbCFpjVYmLJVqmTsHfJwymQ65cpyW/C+V/LgWARGK8hWQ/aX9HM5Ao8QmMSg==" + "version": "0.32.4", + "resolved": "https://registry.npmjs.org/@cosmjs/utils/-/utils-0.32.4.tgz", + "integrity": "sha512-D1Yc+Zy8oL/hkUkFUL/bwxvuDBzRGpc4cF7/SkdhxX4iHpSLgdOuTt1mhCh9+kl6NQREy9t7SYZ6xeW5gFe60w==" }, - "axios": { - "version": "0.21.4", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.4.tgz", - "integrity": "sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==", + "@injectivelabs/core-proto-ts": { + "version": "0.0.21", + "resolved": "https://registry.npmjs.org/@injectivelabs/core-proto-ts/-/core-proto-ts-0.0.21.tgz", + "integrity": "sha512-RBxSkRBCty60R/l55/D1jsSW0Aof5dyGFhCFdN3A010KjMv/SzZGGr+6DZPY/hflyFeaJzDv/VTopCymKNRBvQ==", "requires": { - "follow-redirects": "^1.14.0" + "@injectivelabs/grpc-web": "^0.0.1", + "google-protobuf": "^3.14.0", + "protobufjs": "^7.0.0", + "rxjs": "^7.4.0" } }, - "cosmjs-types": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/cosmjs-types/-/cosmjs-types-0.5.1.tgz", - "integrity": "sha512-NcC58xUIVLlKdIimWWQAmSlmCjiMrJnuHf4i3LiD8PCextfHR0fT3V5/WlXZZreyMgdmh6ML1zPUfGTbbo3Z5g==", + "@injectivelabs/indexer-proto-ts": { + "version": "1.11.42", + "resolved": "https://registry.npmjs.org/@injectivelabs/indexer-proto-ts/-/indexer-proto-ts-1.11.42.tgz", + "integrity": "sha512-6ejCpcWZWOSsELFIfUf2+xuJPOH+YdiJtwtB3d9x2H7dnrCBjXMxlPCSxoKEUbDH6w/lY2mO6TJm65rNy9piew==", "requires": { - "long": "^4.0.0", - "protobufjs": "~6.11.2" - }, - "dependencies": { - "long": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz", - "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==" - } + "@injectivelabs/grpc-web": "^0.0.1", + "google-protobuf": "^3.14.0", + "protobufjs": "^7.0.0", + "rxjs": "^7.4.0" } }, - "long": { - "version": "5.2.3", - "resolved": "https://registry.npmjs.org/long/-/long-5.2.3.tgz", - "integrity": "sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q==" - } - } - }, - "@osmonauts/lcd": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/@osmonauts/lcd/-/lcd-0.8.0.tgz", - "integrity": "sha512-k7m2gAVnXc0H4m/eTq4z/8A6hFrr3MPS9wnLV4Xu9/K/WYltCnp2PpiObZm+feZUPK/svES6hxIQeO1bODLx8g==", - "requires": { - "@babel/runtime": "^7.19.0", - "axios": "0.27.2" - }, - "dependencies": { - "@babel/runtime": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.21.0.tgz", - "integrity": "sha512-xwII0//EObnq89Ji5AKYQaRYiW/nZ3llSv29d49IuxPhKbtJoLP+9QUUZ4nVragQVtaVGeZrpB+ZtG/Pdy/POw==", + "@injectivelabs/mito-proto-ts": { + "version": "1.0.65", + "resolved": "https://registry.npmjs.org/@injectivelabs/mito-proto-ts/-/mito-proto-ts-1.0.65.tgz", + "integrity": "sha512-kceZP68QrgFop387RYyO7tkfJCYxoktuceHTs9DQP3dJceLqj/V2mz0NlpkkacjgE5NhYkQ/zc0Z40hr8tnYqQ==", "requires": { - "regenerator-runtime": "^0.13.11" + "@injectivelabs/grpc-web": "^0.0.1", + "google-protobuf": "^3.14.0", + "protobufjs": "^7.0.0", + "rxjs": "^7.4.0" + } + }, + "@injectivelabs/networks": { + "version": "1.14.13", + "resolved": "https://registry.npmjs.org/@injectivelabs/networks/-/networks-1.14.13.tgz", + "integrity": "sha512-P+eCQXWpbk4LbPxgTmi2gY7OzdZTNsIEUvDoh59Ma0CkqSFaYMtgB8fZVxpkKM0UPla587EDlEEIVxprDBcnZg==", + "requires": { + "@injectivelabs/exceptions": "^1.14.13", + "@injectivelabs/ts-types": "^1.14.13", + "@injectivelabs/utils": "^1.14.13", + "link-module-alias": "^1.2.0", + "shx": "^0.3.2" + } + }, + "@injectivelabs/sdk-ts": { + "version": "1.14.13", + "resolved": "https://registry.npmjs.org/@injectivelabs/sdk-ts/-/sdk-ts-1.14.13.tgz", + "integrity": "sha512-qcLoIu+hEMpuvdG0iXGNJvWQD05NkcO59tL3ijEhYmshlJWBMWJtpJJGt/E/hV9YxJfNTl20Rhi/5i7l0y8Hfg==", + "requires": { + "@apollo/client": "^3.5.8", + "@cosmjs/amino": "^0.32.3", + "@cosmjs/proto-signing": "^0.32.3", + "@cosmjs/stargate": "^0.32.3", + "@ethersproject/bytes": "^5.7.0", + "@injectivelabs/core-proto-ts": "^0.0.21", + "@injectivelabs/dmm-proto-ts": "1.0.20", + "@injectivelabs/exceptions": "^1.14.13", + "@injectivelabs/grpc-web": "^0.0.1", + "@injectivelabs/grpc-web-node-http-transport": "^0.0.2", + "@injectivelabs/grpc-web-react-native-transport": "^0.0.2", + "@injectivelabs/indexer-proto-ts": "1.11.42", + "@injectivelabs/mito-proto-ts": "1.0.65", + "@injectivelabs/networks": "^1.14.13", + "@injectivelabs/test-utils": "^1.14.13", + "@injectivelabs/ts-types": "^1.14.13", + "@injectivelabs/utils": "^1.14.13", + "@metamask/eth-sig-util": "^4.0.0", + "@noble/curves": "^1.4.0", + "axios": "^1.6.4", + "bech32": "^2.0.0", + "bip39": "^3.0.4", + "cosmjs-types": "^0.9.0", + "ethereumjs-util": "^7.1.4", + "ethers": "^6.5.1", + "google-protobuf": "^3.21.0", + "graphql": "^16.3.0", + "http-status-codes": "^2.2.0", + "js-sha3": "^0.8.0", + "jscrypto": "^1.0.3", + "keccak256": "^1.0.6", + "link-module-alias": "^1.2.0", + "secp256k1": "^4.0.3", + "shx": "^0.3.2", + "snakecase-keys": "^5.4.1" + } + }, + "@injectivelabs/utils": { + "version": "1.14.13", + "resolved": "https://registry.npmjs.org/@injectivelabs/utils/-/utils-1.14.13.tgz", + "integrity": "sha512-djmSq28R7HDSb2Mezan+EFjqQgmDRydY+fLOmkODwOCYA04xOGQo7yna+WVovV85aKpwPjn864AWPy65xiHUZg==", + "requires": { + "@injectivelabs/exceptions": "^1.14.13", + "@injectivelabs/ts-types": "^1.14.13", + "axios": "^1.6.4", + "bignumber.js": "^9.0.1", + "http-status-codes": "^2.2.0", + "link-module-alias": "^1.2.0", + "shx": "^0.3.2", + "snakecase-keys": "^5.1.2", + "store2": "^2.12.0" } }, + "@noble/hashes": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.3.2.tgz", + "integrity": "sha512-MVC8EAQp7MvEcm30KWENFjgR+Mkmf+D189XJTkFIlwohU5hcBbn1ZkKq7KVTi2Hme3PMGF390DaL52beVrIihQ==" + }, + "@types/node": { + "version": "18.15.13", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.15.13.tgz", + "integrity": "sha512-N+0kuo9KgrUQ1Sn/ifDXsvg0TTleP7rIy4zOBGECxAljqvqfqpTfzx0Q1NUedOixRMBfe2Whhb056a42cWs26Q==" + }, + "aes-js": { + "version": "4.0.0-beta.5", + "resolved": "https://registry.npmjs.org/aes-js/-/aes-js-4.0.0-beta.5.tgz", + "integrity": "sha512-G965FqalsNyrPqgEGON7nIx1e/OVENSgiEIzyC63haUMuvNnwIgIjMs52hlTCKhkBny7A2ORNlfY9Zu+jmGk1Q==" + }, "axios": { - "version": "0.27.2", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.27.2.tgz", - "integrity": "sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==", + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.3.tgz", + "integrity": "sha512-Ar7ND9pU99eJ9GpoGQKhKf58GpUOgnzuaB7ueNQ5BMi0p+LZ5oaEnfF999fAArcTIBwXTCHAmGcHOZJaWPq9Nw==", "requires": { - "follow-redirects": "^1.14.9", - "form-data": "^4.0.0" + "follow-redirects": "^1.15.6", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" + } + }, + "cosmjs-types": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/cosmjs-types/-/cosmjs-types-0.9.0.tgz", + "integrity": "sha512-MN/yUe6mkJwHnCFfsNPeCfXVhyxHYW6c/xDUzrSbBycYzw++XvWDMJArXp2pLdgD6FQ8DW79vkPjeNKVrXaHeQ==" + }, + "ethers": { + "version": "6.13.2", + "resolved": "https://registry.npmjs.org/ethers/-/ethers-6.13.2.tgz", + "integrity": "sha512-9VkriTTed+/27BGuY1s0hf441kqwHJ1wtN2edksEtiRvXx+soxRX3iSXTfFqq2+YwrOqbDoTHjIhQnjJRlzKmg==", + "requires": { + "@adraffy/ens-normalize": "1.10.1", + "@noble/curves": "1.2.0", + "@noble/hashes": "1.3.2", + "@types/node": "18.15.13", + "aes-js": "4.0.0-beta.5", + "tslib": "2.4.0", + "ws": "8.17.1" + }, + "dependencies": { + "@noble/curves": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.2.0.tgz", + "integrity": "sha512-oYclrNgRaM9SsBUBVbb8M6DTV7ZHRTKugureoYEncY5c65HOmRzvSiTE3y5CYaPYJA/GVkrhXEoF0M3Ya9PMnw==", + "requires": { + "@noble/hashes": "1.3.2" + } + }, + "ws": { + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.17.1.tgz", + "integrity": "sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ==", + "requires": {} + } } }, "form-data": { @@ -14162,348 +19416,713 @@ "combined-stream": "^1.0.8", "mime-types": "^2.1.12" } + }, + "long": { + "version": "5.2.3", + "resolved": "https://registry.npmjs.org/long/-/long-5.2.3.tgz", + "integrity": "sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q==" + }, + "protobufjs": { + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.3.2.tgz", + "integrity": "sha512-RXyHaACeqXeqAKGLDl68rQKbmObRsTIn4TYVUUug1KfS47YWCo5MacGITEryugIgZqORCvJWEk4l449POg5Txg==", + "requires": { + "@protobufjs/aspromise": "^1.1.2", + "@protobufjs/base64": "^1.1.2", + "@protobufjs/codegen": "^2.0.4", + "@protobufjs/eventemitter": "^1.1.0", + "@protobufjs/fetch": "^1.1.0", + "@protobufjs/float": "^1.0.2", + "@protobufjs/inquire": "^1.1.0", + "@protobufjs/path": "^1.1.2", + "@protobufjs/pool": "^1.1.0", + "@protobufjs/utf8": "^1.1.0", + "@types/node": ">=13.7.0", + "long": "^5.0.0" + } } } }, - "@project-serum/anchor": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@project-serum/anchor/-/anchor-0.25.0.tgz", - "integrity": "sha512-E6A5Y/ijqpfMJ5psJvbw0kVTzLZFUcOFgs6eSM2M2iWE1lVRF18T6hWZVNl6zqZsoz98jgnNHtVGJMs+ds9A7A==", + "@wormhole-foundation/sdk-cosmwasm-ibc": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/@wormhole-foundation/sdk-cosmwasm-ibc/-/sdk-cosmwasm-ibc-0.9.0.tgz", + "integrity": "sha512-k24qcdJBuxQyDX2HBKVuwGIehNLNk+2ngucebeEyKRNtzfhCcGsZKaMpkSjqvhJid2+BwHNNq/lLB9s9qcDTaw==", "requires": { - "@project-serum/borsh": "^0.2.5", - "@solana/web3.js": "^1.36.0", - "base64-js": "^1.5.1", - "bn.js": "^5.1.2", - "bs58": "^4.0.1", - "buffer-layout": "^1.2.2", - "camelcase": "^5.3.1", - "cross-fetch": "^3.1.5", - "crypto-hash": "^1.3.0", - "eventemitter3": "^4.0.7", - "js-sha256": "^0.9.0", - "pako": "^2.0.3", - "snake-case": "^3.0.4", - "superstruct": "^0.15.4", - "toml": "^3.0.0" + "@cosmjs/cosmwasm-stargate": "^0.32.0", + "@cosmjs/stargate": "^0.32.0", + "@injectivelabs/sdk-ts": "^1.14.13-beta.2", + "@wormhole-foundation/sdk-connect": "0.9.0", + "@wormhole-foundation/sdk-cosmwasm": "0.9.0", + "@wormhole-foundation/sdk-cosmwasm-core": "0.9.0", + "cosmjs-types": "^0.9.0" }, "dependencies": { - "cross-fetch": { - "version": "3.1.8", - "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.8.tgz", - "integrity": "sha512-cvA+JwZoU0Xq+h6WkMvAUqPEYy92Obet6UdKLfW60qn99ftItKjB5T+BkyWOFWe2pUyfQ+IJHmpOTznqk1M6Kg==", + "@cosmjs/amino": { + "version": "0.32.4", + "resolved": "https://registry.npmjs.org/@cosmjs/amino/-/amino-0.32.4.tgz", + "integrity": "sha512-zKYOt6hPy8obIFtLie/xtygCkH9ZROiQ12UHfKsOkWaZfPQUvVbtgmu6R4Kn1tFLI/SRkw7eqhaogmW/3NYu/Q==", "requires": { - "node-fetch": "^2.6.12" + "@cosmjs/crypto": "^0.32.4", + "@cosmjs/encoding": "^0.32.4", + "@cosmjs/math": "^0.32.4", + "@cosmjs/utils": "^0.32.4" + } + }, + "@cosmjs/cosmwasm-stargate": { + "version": "0.32.4", + "resolved": "https://registry.npmjs.org/@cosmjs/cosmwasm-stargate/-/cosmwasm-stargate-0.32.4.tgz", + "integrity": "sha512-Fuo9BGEiB+POJ5WeRyBGuhyKR1ordvxZGLPuPosFJOH9U0gKMgcjwKMCgAlWFkMlHaTB+tNdA8AifWiHrI7VgA==", + "requires": { + "@cosmjs/amino": "^0.32.4", + "@cosmjs/crypto": "^0.32.4", + "@cosmjs/encoding": "^0.32.4", + "@cosmjs/math": "^0.32.4", + "@cosmjs/proto-signing": "^0.32.4", + "@cosmjs/stargate": "^0.32.4", + "@cosmjs/tendermint-rpc": "^0.32.4", + "@cosmjs/utils": "^0.32.4", + "cosmjs-types": "^0.9.0", + "pako": "^2.0.2" + } + }, + "@cosmjs/crypto": { + "version": "0.32.4", + "resolved": "https://registry.npmjs.org/@cosmjs/crypto/-/crypto-0.32.4.tgz", + "integrity": "sha512-zicjGU051LF1V9v7bp8p7ovq+VyC91xlaHdsFOTo2oVry3KQikp8L/81RkXmUIT8FxMwdx1T7DmFwVQikcSDIw==", + "requires": { + "@cosmjs/encoding": "^0.32.4", + "@cosmjs/math": "^0.32.4", + "@cosmjs/utils": "^0.32.4", + "@noble/hashes": "^1", + "bn.js": "^5.2.0", + "elliptic": "^6.5.4", + "libsodium-wrappers-sumo": "^0.7.11" } }, - "superstruct": { - "version": "0.15.5", - "resolved": "https://registry.npmjs.org/superstruct/-/superstruct-0.15.5.tgz", - "integrity": "sha512-4AOeU+P5UuE/4nOUkmcQdW5y7i9ndt1cQd/3iUe+LTz3RxESf/W/5lg4B74HbDMMv8PHnPnGCQFH45kBcrQYoQ==" - } - } - }, - "@project-serum/borsh": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/@project-serum/borsh/-/borsh-0.2.5.tgz", - "integrity": "sha512-UmeUkUoKdQ7rhx6Leve1SssMR/Ghv8qrEiyywyxSWg7ooV7StdpPBhciiy5eB3T0qU1BXvdRNC8TdrkxK7WC5Q==", - "requires": { - "bn.js": "^5.1.2", - "buffer-layout": "^1.2.0" - } - }, - "@protobufjs/aspromise": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", - "integrity": "sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==" - }, - "@protobufjs/base64": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz", - "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==" - }, - "@protobufjs/codegen": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz", - "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==" - }, - "@protobufjs/eventemitter": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz", - "integrity": "sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==" - }, - "@protobufjs/fetch": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz", - "integrity": "sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==", - "requires": { - "@protobufjs/aspromise": "^1.1.1", - "@protobufjs/inquire": "^1.1.0" - } - }, - "@protobufjs/float": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz", - "integrity": "sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==" - }, - "@protobufjs/inquire": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz", - "integrity": "sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==" - }, - "@protobufjs/path": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz", - "integrity": "sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==" - }, - "@protobufjs/pool": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz", - "integrity": "sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==" - }, - "@protobufjs/utf8": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", - "integrity": "sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==" - }, - "@scure/base": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@scure/base/-/base-1.1.1.tgz", - "integrity": "sha512-ZxOhsSyxYwLJj3pLZCefNitxsj093tb2vq90mp2txoYeBqbcjDjqFhyM8eUjq/uFm6zJ+mUuqxlS2FkuSY1MTA==" - }, - "@scure/bip32": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-1.1.0.tgz", - "integrity": "sha512-ftTW3kKX54YXLCxH6BB7oEEoJfoE2pIgw7MINKAs5PsS6nqKPuKk1haTF/EuHmYqG330t5GSrdmtRuHaY1a62Q==", - "dev": true, - "requires": { - "@noble/hashes": "~1.1.1", - "@noble/secp256k1": "~1.6.0", - "@scure/base": "~1.1.0" - } - }, - "@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==", - "requires": { - "@noble/hashes": "~1.1.1", - "@scure/base": "~1.1.0" - } - }, - "@sei-js/core": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@sei-js/core/-/core-1.3.2.tgz", - "integrity": "sha512-aQoM6JgsJylCPRkwU5RVHzsLXxKDMta8Su5u7BA4NDDcviYNX5BBLzJMSAb8QPXh3Ev0FmoanMBS0BSGk6ypAg==", - "requires": { - "@cosmjs/amino": "0.29.5", - "@cosmjs/cosmwasm-stargate": "0.29.5", - "@cosmjs/encoding": "0.29.5", - "@cosmjs/json-rpc": "0.29.5", - "@cosmjs/math": "0.29.5", - "@cosmjs/proto-signing": "0.29.5", - "@cosmjs/stargate": "0.29.5", - "@cosmjs/tendermint-rpc": "0.29.5", - "@cosmjs/utils": "0.29.5", - "@keplr-wallet/types": "^0.11.41", - "@sei-js/proto": "1.2.0", - "readonly-date": "^1.0.0", - "xstream": "^11.14.0" - }, - "dependencies": { "@cosmjs/encoding": { - "version": "0.29.5", - "resolved": "https://registry.npmjs.org/@cosmjs/encoding/-/encoding-0.29.5.tgz", - "integrity": "sha512-G4rGl/Jg4dMCw5u6PEZHZcoHnUBlukZODHbm/wcL4Uu91fkn5jVo5cXXZcvs4VCkArVGrEj/52eUgTZCmOBGWQ==", + "version": "0.32.4", + "resolved": "https://registry.npmjs.org/@cosmjs/encoding/-/encoding-0.32.4.tgz", + "integrity": "sha512-tjvaEy6ZGxJchiizzTn7HVRiyTg1i4CObRRaTRPknm5EalE13SV+TCHq38gIDfyUeden4fCuaBVEdBR5+ti7Hw==", "requires": { "base64-js": "^1.3.0", "bech32": "^1.1.4", "readonly-date": "^1.0.0" + }, + "dependencies": { + "bech32": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/bech32/-/bech32-1.1.4.tgz", + "integrity": "sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ==" + } + } + }, + "@cosmjs/json-rpc": { + "version": "0.32.4", + "resolved": "https://registry.npmjs.org/@cosmjs/json-rpc/-/json-rpc-0.32.4.tgz", + "integrity": "sha512-/jt4mBl7nYzfJ2J/VJ+r19c92mUKF0Lt0JxM3MXEJl7wlwW5haHAWtzRujHkyYMXOwIR+gBqT2S0vntXVBRyhQ==", + "requires": { + "@cosmjs/stream": "^0.32.4", + "xstream": "^11.14.0" + } + }, + "@cosmjs/math": { + "version": "0.32.4", + "resolved": "https://registry.npmjs.org/@cosmjs/math/-/math-0.32.4.tgz", + "integrity": "sha512-++dqq2TJkoB8zsPVYCvrt88oJWsy1vMOuSOKcdlnXuOA/ASheTJuYy4+oZlTQ3Fr8eALDLGGPhJI02W2HyAQaw==", + "requires": { + "bn.js": "^5.2.0" + } + }, + "@cosmjs/proto-signing": { + "version": "0.32.4", + "resolved": "https://registry.npmjs.org/@cosmjs/proto-signing/-/proto-signing-0.32.4.tgz", + "integrity": "sha512-QdyQDbezvdRI4xxSlyM1rSVBO2st5sqtbEIl3IX03uJ7YiZIQHyv6vaHVf1V4mapusCqguiHJzm4N4gsFdLBbQ==", + "requires": { + "@cosmjs/amino": "^0.32.4", + "@cosmjs/crypto": "^0.32.4", + "@cosmjs/encoding": "^0.32.4", + "@cosmjs/math": "^0.32.4", + "@cosmjs/utils": "^0.32.4", + "cosmjs-types": "^0.9.0" + } + }, + "@cosmjs/socket": { + "version": "0.32.4", + "resolved": "https://registry.npmjs.org/@cosmjs/socket/-/socket-0.32.4.tgz", + "integrity": "sha512-davcyYziBhkzfXQTu1l5NrpDYv0K9GekZCC9apBRvL1dvMc9F/ygM7iemHjUA+z8tJkxKxrt/YPjJ6XNHzLrkw==", + "requires": { + "@cosmjs/stream": "^0.32.4", + "isomorphic-ws": "^4.0.1", + "ws": "^7", + "xstream": "^11.14.0" + } + }, + "@cosmjs/stargate": { + "version": "0.32.4", + "resolved": "https://registry.npmjs.org/@cosmjs/stargate/-/stargate-0.32.4.tgz", + "integrity": "sha512-usj08LxBSsPRq9sbpCeVdyLx2guEcOHfJS9mHGCLCXpdAPEIEQEtWLDpEUc0LEhWOx6+k/ChXTc5NpFkdrtGUQ==", + "requires": { + "@confio/ics23": "^0.6.8", + "@cosmjs/amino": "^0.32.4", + "@cosmjs/encoding": "^0.32.4", + "@cosmjs/math": "^0.32.4", + "@cosmjs/proto-signing": "^0.32.4", + "@cosmjs/stream": "^0.32.4", + "@cosmjs/tendermint-rpc": "^0.32.4", + "@cosmjs/utils": "^0.32.4", + "cosmjs-types": "^0.9.0", + "xstream": "^11.14.0" + } + }, + "@cosmjs/stream": { + "version": "0.32.4", + "resolved": "https://registry.npmjs.org/@cosmjs/stream/-/stream-0.32.4.tgz", + "integrity": "sha512-Gih++NYHEiP+oyD4jNEUxU9antoC0pFSg+33Hpp0JlHwH0wXhtD3OOKnzSfDB7OIoEbrzLJUpEjOgpCp5Z+W3A==", + "requires": { + "xstream": "^11.14.0" + } + }, + "@cosmjs/tendermint-rpc": { + "version": "0.32.4", + "resolved": "https://registry.npmjs.org/@cosmjs/tendermint-rpc/-/tendermint-rpc-0.32.4.tgz", + "integrity": "sha512-MWvUUno+4bCb/LmlMIErLypXxy7ckUuzEmpufYYYd9wgbdCXaTaO08SZzyFM5PI8UJ/0S2AmUrgWhldlbxO8mw==", + "requires": { + "@cosmjs/crypto": "^0.32.4", + "@cosmjs/encoding": "^0.32.4", + "@cosmjs/json-rpc": "^0.32.4", + "@cosmjs/math": "^0.32.4", + "@cosmjs/socket": "^0.32.4", + "@cosmjs/stream": "^0.32.4", + "@cosmjs/utils": "^0.32.4", + "axios": "^1.6.0", + "readonly-date": "^1.0.0", + "xstream": "^11.14.0" + } + }, + "@cosmjs/utils": { + "version": "0.32.4", + "resolved": "https://registry.npmjs.org/@cosmjs/utils/-/utils-0.32.4.tgz", + "integrity": "sha512-D1Yc+Zy8oL/hkUkFUL/bwxvuDBzRGpc4cF7/SkdhxX4iHpSLgdOuTt1mhCh9+kl6NQREy9t7SYZ6xeW5gFe60w==" + }, + "@injectivelabs/core-proto-ts": { + "version": "0.0.21", + "resolved": "https://registry.npmjs.org/@injectivelabs/core-proto-ts/-/core-proto-ts-0.0.21.tgz", + "integrity": "sha512-RBxSkRBCty60R/l55/D1jsSW0Aof5dyGFhCFdN3A010KjMv/SzZGGr+6DZPY/hflyFeaJzDv/VTopCymKNRBvQ==", + "requires": { + "@injectivelabs/grpc-web": "^0.0.1", + "google-protobuf": "^3.14.0", + "protobufjs": "^7.0.0", + "rxjs": "^7.4.0" + } + }, + "@injectivelabs/indexer-proto-ts": { + "version": "1.11.42", + "resolved": "https://registry.npmjs.org/@injectivelabs/indexer-proto-ts/-/indexer-proto-ts-1.11.42.tgz", + "integrity": "sha512-6ejCpcWZWOSsELFIfUf2+xuJPOH+YdiJtwtB3d9x2H7dnrCBjXMxlPCSxoKEUbDH6w/lY2mO6TJm65rNy9piew==", + "requires": { + "@injectivelabs/grpc-web": "^0.0.1", + "google-protobuf": "^3.14.0", + "protobufjs": "^7.0.0", + "rxjs": "^7.4.0" + } + }, + "@injectivelabs/mito-proto-ts": { + "version": "1.0.65", + "resolved": "https://registry.npmjs.org/@injectivelabs/mito-proto-ts/-/mito-proto-ts-1.0.65.tgz", + "integrity": "sha512-kceZP68QrgFop387RYyO7tkfJCYxoktuceHTs9DQP3dJceLqj/V2mz0NlpkkacjgE5NhYkQ/zc0Z40hr8tnYqQ==", + "requires": { + "@injectivelabs/grpc-web": "^0.0.1", + "google-protobuf": "^3.14.0", + "protobufjs": "^7.0.0", + "rxjs": "^7.4.0" + } + }, + "@injectivelabs/networks": { + "version": "1.14.13", + "resolved": "https://registry.npmjs.org/@injectivelabs/networks/-/networks-1.14.13.tgz", + "integrity": "sha512-P+eCQXWpbk4LbPxgTmi2gY7OzdZTNsIEUvDoh59Ma0CkqSFaYMtgB8fZVxpkKM0UPla587EDlEEIVxprDBcnZg==", + "requires": { + "@injectivelabs/exceptions": "^1.14.13", + "@injectivelabs/ts-types": "^1.14.13", + "@injectivelabs/utils": "^1.14.13", + "link-module-alias": "^1.2.0", + "shx": "^0.3.2" + } + }, + "@injectivelabs/sdk-ts": { + "version": "1.14.13", + "resolved": "https://registry.npmjs.org/@injectivelabs/sdk-ts/-/sdk-ts-1.14.13.tgz", + "integrity": "sha512-qcLoIu+hEMpuvdG0iXGNJvWQD05NkcO59tL3ijEhYmshlJWBMWJtpJJGt/E/hV9YxJfNTl20Rhi/5i7l0y8Hfg==", + "requires": { + "@apollo/client": "^3.5.8", + "@cosmjs/amino": "^0.32.3", + "@cosmjs/proto-signing": "^0.32.3", + "@cosmjs/stargate": "^0.32.3", + "@ethersproject/bytes": "^5.7.0", + "@injectivelabs/core-proto-ts": "^0.0.21", + "@injectivelabs/dmm-proto-ts": "1.0.20", + "@injectivelabs/exceptions": "^1.14.13", + "@injectivelabs/grpc-web": "^0.0.1", + "@injectivelabs/grpc-web-node-http-transport": "^0.0.2", + "@injectivelabs/grpc-web-react-native-transport": "^0.0.2", + "@injectivelabs/indexer-proto-ts": "1.11.42", + "@injectivelabs/mito-proto-ts": "1.0.65", + "@injectivelabs/networks": "^1.14.13", + "@injectivelabs/test-utils": "^1.14.13", + "@injectivelabs/ts-types": "^1.14.13", + "@injectivelabs/utils": "^1.14.13", + "@metamask/eth-sig-util": "^4.0.0", + "@noble/curves": "^1.4.0", + "axios": "^1.6.4", + "bech32": "^2.0.0", + "bip39": "^3.0.4", + "cosmjs-types": "^0.9.0", + "ethereumjs-util": "^7.1.4", + "ethers": "^6.5.1", + "google-protobuf": "^3.21.0", + "graphql": "^16.3.0", + "http-status-codes": "^2.2.0", + "js-sha3": "^0.8.0", + "jscrypto": "^1.0.3", + "keccak256": "^1.0.6", + "link-module-alias": "^1.2.0", + "secp256k1": "^4.0.3", + "shx": "^0.3.2", + "snakecase-keys": "^5.4.1" + } + }, + "@injectivelabs/utils": { + "version": "1.14.13", + "resolved": "https://registry.npmjs.org/@injectivelabs/utils/-/utils-1.14.13.tgz", + "integrity": "sha512-djmSq28R7HDSb2Mezan+EFjqQgmDRydY+fLOmkODwOCYA04xOGQo7yna+WVovV85aKpwPjn864AWPy65xiHUZg==", + "requires": { + "@injectivelabs/exceptions": "^1.14.13", + "@injectivelabs/ts-types": "^1.14.13", + "axios": "^1.6.4", + "bignumber.js": "^9.0.1", + "http-status-codes": "^2.2.0", + "link-module-alias": "^1.2.0", + "shx": "^0.3.2", + "snakecase-keys": "^5.1.2", + "store2": "^2.12.0" + } + }, + "@noble/hashes": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.3.2.tgz", + "integrity": "sha512-MVC8EAQp7MvEcm30KWENFjgR+Mkmf+D189XJTkFIlwohU5hcBbn1ZkKq7KVTi2Hme3PMGF390DaL52beVrIihQ==" + }, + "@types/node": { + "version": "18.15.13", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.15.13.tgz", + "integrity": "sha512-N+0kuo9KgrUQ1Sn/ifDXsvg0TTleP7rIy4zOBGECxAljqvqfqpTfzx0Q1NUedOixRMBfe2Whhb056a42cWs26Q==" + }, + "aes-js": { + "version": "4.0.0-beta.5", + "resolved": "https://registry.npmjs.org/aes-js/-/aes-js-4.0.0-beta.5.tgz", + "integrity": "sha512-G965FqalsNyrPqgEGON7nIx1e/OVENSgiEIzyC63haUMuvNnwIgIjMs52hlTCKhkBny7A2ORNlfY9Zu+jmGk1Q==" + }, + "axios": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.3.tgz", + "integrity": "sha512-Ar7ND9pU99eJ9GpoGQKhKf58GpUOgnzuaB7ueNQ5BMi0p+LZ5oaEnfF999fAArcTIBwXTCHAmGcHOZJaWPq9Nw==", + "requires": { + "follow-redirects": "^1.15.6", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" + } + }, + "cosmjs-types": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/cosmjs-types/-/cosmjs-types-0.9.0.tgz", + "integrity": "sha512-MN/yUe6mkJwHnCFfsNPeCfXVhyxHYW6c/xDUzrSbBycYzw++XvWDMJArXp2pLdgD6FQ8DW79vkPjeNKVrXaHeQ==" + }, + "ethers": { + "version": "6.13.2", + "resolved": "https://registry.npmjs.org/ethers/-/ethers-6.13.2.tgz", + "integrity": "sha512-9VkriTTed+/27BGuY1s0hf441kqwHJ1wtN2edksEtiRvXx+soxRX3iSXTfFqq2+YwrOqbDoTHjIhQnjJRlzKmg==", + "requires": { + "@adraffy/ens-normalize": "1.10.1", + "@noble/curves": "1.2.0", + "@noble/hashes": "1.3.2", + "@types/node": "18.15.13", + "aes-js": "4.0.0-beta.5", + "tslib": "2.4.0", + "ws": "8.17.1" + }, + "dependencies": { + "@noble/curves": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.2.0.tgz", + "integrity": "sha512-oYclrNgRaM9SsBUBVbb8M6DTV7ZHRTKugureoYEncY5c65HOmRzvSiTE3y5CYaPYJA/GVkrhXEoF0M3Ya9PMnw==", + "requires": { + "@noble/hashes": "1.3.2" + } + }, + "ws": { + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.17.1.tgz", + "integrity": "sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ==", + "requires": {} + } + } + }, + "form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + } + }, + "long": { + "version": "5.2.3", + "resolved": "https://registry.npmjs.org/long/-/long-5.2.3.tgz", + "integrity": "sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q==" + }, + "protobufjs": { + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.3.2.tgz", + "integrity": "sha512-RXyHaACeqXeqAKGLDl68rQKbmObRsTIn4TYVUUug1KfS47YWCo5MacGITEryugIgZqORCvJWEk4l449POg5Txg==", + "requires": { + "@protobufjs/aspromise": "^1.1.2", + "@protobufjs/base64": "^1.1.2", + "@protobufjs/codegen": "^2.0.4", + "@protobufjs/eventemitter": "^1.1.0", + "@protobufjs/fetch": "^1.1.0", + "@protobufjs/float": "^1.0.2", + "@protobufjs/inquire": "^1.1.0", + "@protobufjs/path": "^1.1.2", + "@protobufjs/pool": "^1.1.0", + "@protobufjs/utf8": "^1.1.0", + "@types/node": ">=13.7.0", + "long": "^5.0.0" } } } }, - "@sei-js/proto": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@sei-js/proto/-/proto-1.2.0.tgz", - "integrity": "sha512-gN+xToncmpGSF9WzabTXuXBbxPKear3AnqmT4vjrtYHzjZMY9sawL+7Y15/c8p2eKA4NNtCWuhw3RtwaDk3Ziw==", + "@wormhole-foundation/sdk-cosmwasm-tokenbridge": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/@wormhole-foundation/sdk-cosmwasm-tokenbridge/-/sdk-cosmwasm-tokenbridge-0.9.0.tgz", + "integrity": "sha512-qEdzv/a8B9ashVpiDWPvH7NYPe7fmwxLOrXqppDdAYv8pJTzmRmWcGAmThvMWPT9Irl/7I5pwGCx7E5kLHMPYQ==", "requires": { - "@babel/runtime": "^7.18.9", - "@cosmjs/amino": "0.29.5", - "@cosmjs/encoding": "0.29.5", - "@cosmjs/proto-signing": "0.29.5", - "@cosmjs/stargate": "0.29.5", - "@cosmjs/tendermint-rpc": "0.29.5", - "@osmonauts/helpers": "^0.6.0", - "@osmonauts/lcd": "^0.8.0", - "protobufjs": "^6.11.2" + "@cosmjs/cosmwasm-stargate": "^0.32.0", + "@injectivelabs/sdk-ts": "^1.14.13-beta.2", + "@wormhole-foundation/sdk-connect": "0.9.0", + "@wormhole-foundation/sdk-cosmwasm": "0.9.0" }, "dependencies": { - "@babel/runtime": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.21.0.tgz", - "integrity": "sha512-xwII0//EObnq89Ji5AKYQaRYiW/nZ3llSv29d49IuxPhKbtJoLP+9QUUZ4nVragQVtaVGeZrpB+ZtG/Pdy/POw==", + "@cosmjs/amino": { + "version": "0.32.4", + "resolved": "https://registry.npmjs.org/@cosmjs/amino/-/amino-0.32.4.tgz", + "integrity": "sha512-zKYOt6hPy8obIFtLie/xtygCkH9ZROiQ12UHfKsOkWaZfPQUvVbtgmu6R4Kn1tFLI/SRkw7eqhaogmW/3NYu/Q==", "requires": { - "regenerator-runtime": "^0.13.11" + "@cosmjs/crypto": "^0.32.4", + "@cosmjs/encoding": "^0.32.4", + "@cosmjs/math": "^0.32.4", + "@cosmjs/utils": "^0.32.4" + } + }, + "@cosmjs/cosmwasm-stargate": { + "version": "0.32.4", + "resolved": "https://registry.npmjs.org/@cosmjs/cosmwasm-stargate/-/cosmwasm-stargate-0.32.4.tgz", + "integrity": "sha512-Fuo9BGEiB+POJ5WeRyBGuhyKR1ordvxZGLPuPosFJOH9U0gKMgcjwKMCgAlWFkMlHaTB+tNdA8AifWiHrI7VgA==", + "requires": { + "@cosmjs/amino": "^0.32.4", + "@cosmjs/crypto": "^0.32.4", + "@cosmjs/encoding": "^0.32.4", + "@cosmjs/math": "^0.32.4", + "@cosmjs/proto-signing": "^0.32.4", + "@cosmjs/stargate": "^0.32.4", + "@cosmjs/tendermint-rpc": "^0.32.4", + "@cosmjs/utils": "^0.32.4", + "cosmjs-types": "^0.9.0", + "pako": "^2.0.2" + } + }, + "@cosmjs/crypto": { + "version": "0.32.4", + "resolved": "https://registry.npmjs.org/@cosmjs/crypto/-/crypto-0.32.4.tgz", + "integrity": "sha512-zicjGU051LF1V9v7bp8p7ovq+VyC91xlaHdsFOTo2oVry3KQikp8L/81RkXmUIT8FxMwdx1T7DmFwVQikcSDIw==", + "requires": { + "@cosmjs/encoding": "^0.32.4", + "@cosmjs/math": "^0.32.4", + "@cosmjs/utils": "^0.32.4", + "@noble/hashes": "^1", + "bn.js": "^5.2.0", + "elliptic": "^6.5.4", + "libsodium-wrappers-sumo": "^0.7.11" } }, "@cosmjs/encoding": { - "version": "0.29.5", - "resolved": "https://registry.npmjs.org/@cosmjs/encoding/-/encoding-0.29.5.tgz", - "integrity": "sha512-G4rGl/Jg4dMCw5u6PEZHZcoHnUBlukZODHbm/wcL4Uu91fkn5jVo5cXXZcvs4VCkArVGrEj/52eUgTZCmOBGWQ==", + "version": "0.32.4", + "resolved": "https://registry.npmjs.org/@cosmjs/encoding/-/encoding-0.32.4.tgz", + "integrity": "sha512-tjvaEy6ZGxJchiizzTn7HVRiyTg1i4CObRRaTRPknm5EalE13SV+TCHq38gIDfyUeden4fCuaBVEdBR5+ti7Hw==", "requires": { "base64-js": "^1.3.0", "bech32": "^1.1.4", "readonly-date": "^1.0.0" + }, + "dependencies": { + "bech32": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/bech32/-/bech32-1.1.4.tgz", + "integrity": "sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ==" + } } - } - } - }, - "@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 - }, - "@sinonjs/commons": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.1.tgz", - "integrity": "sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==", - "dev": true, - "requires": { - "type-detect": "4.0.8" - } - }, - "@sinonjs/fake-timers": { - "version": "10.3.0", - "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz", - "integrity": "sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==", - "dev": true, - "requires": { - "@sinonjs/commons": "^3.0.0" - } - }, - "@solana/buffer-layout": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@solana/buffer-layout/-/buffer-layout-4.0.0.tgz", - "integrity": "sha512-lR0EMP2HC3+Mxwd4YcnZb0smnaDw7Bl2IQWZiTevRH5ZZBZn6VRWn3/92E3qdU4SSImJkA6IDHawOHAnx/qUvQ==", - "requires": { - "buffer": "~6.0.3" - }, - "dependencies": { - "buffer": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", - "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + }, + "@cosmjs/json-rpc": { + "version": "0.32.4", + "resolved": "https://registry.npmjs.org/@cosmjs/json-rpc/-/json-rpc-0.32.4.tgz", + "integrity": "sha512-/jt4mBl7nYzfJ2J/VJ+r19c92mUKF0Lt0JxM3MXEJl7wlwW5haHAWtzRujHkyYMXOwIR+gBqT2S0vntXVBRyhQ==", + "requires": { + "@cosmjs/stream": "^0.32.4", + "xstream": "^11.14.0" + } + }, + "@cosmjs/math": { + "version": "0.32.4", + "resolved": "https://registry.npmjs.org/@cosmjs/math/-/math-0.32.4.tgz", + "integrity": "sha512-++dqq2TJkoB8zsPVYCvrt88oJWsy1vMOuSOKcdlnXuOA/ASheTJuYy4+oZlTQ3Fr8eALDLGGPhJI02W2HyAQaw==", + "requires": { + "bn.js": "^5.2.0" + } + }, + "@cosmjs/proto-signing": { + "version": "0.32.4", + "resolved": "https://registry.npmjs.org/@cosmjs/proto-signing/-/proto-signing-0.32.4.tgz", + "integrity": "sha512-QdyQDbezvdRI4xxSlyM1rSVBO2st5sqtbEIl3IX03uJ7YiZIQHyv6vaHVf1V4mapusCqguiHJzm4N4gsFdLBbQ==", + "requires": { + "@cosmjs/amino": "^0.32.4", + "@cosmjs/crypto": "^0.32.4", + "@cosmjs/encoding": "^0.32.4", + "@cosmjs/math": "^0.32.4", + "@cosmjs/utils": "^0.32.4", + "cosmjs-types": "^0.9.0" + } + }, + "@cosmjs/socket": { + "version": "0.32.4", + "resolved": "https://registry.npmjs.org/@cosmjs/socket/-/socket-0.32.4.tgz", + "integrity": "sha512-davcyYziBhkzfXQTu1l5NrpDYv0K9GekZCC9apBRvL1dvMc9F/ygM7iemHjUA+z8tJkxKxrt/YPjJ6XNHzLrkw==", + "requires": { + "@cosmjs/stream": "^0.32.4", + "isomorphic-ws": "^4.0.1", + "ws": "^7", + "xstream": "^11.14.0" + } + }, + "@cosmjs/stargate": { + "version": "0.32.4", + "resolved": "https://registry.npmjs.org/@cosmjs/stargate/-/stargate-0.32.4.tgz", + "integrity": "sha512-usj08LxBSsPRq9sbpCeVdyLx2guEcOHfJS9mHGCLCXpdAPEIEQEtWLDpEUc0LEhWOx6+k/ChXTc5NpFkdrtGUQ==", + "requires": { + "@confio/ics23": "^0.6.8", + "@cosmjs/amino": "^0.32.4", + "@cosmjs/encoding": "^0.32.4", + "@cosmjs/math": "^0.32.4", + "@cosmjs/proto-signing": "^0.32.4", + "@cosmjs/stream": "^0.32.4", + "@cosmjs/tendermint-rpc": "^0.32.4", + "@cosmjs/utils": "^0.32.4", + "cosmjs-types": "^0.9.0", + "xstream": "^11.14.0" + } + }, + "@cosmjs/stream": { + "version": "0.32.4", + "resolved": "https://registry.npmjs.org/@cosmjs/stream/-/stream-0.32.4.tgz", + "integrity": "sha512-Gih++NYHEiP+oyD4jNEUxU9antoC0pFSg+33Hpp0JlHwH0wXhtD3OOKnzSfDB7OIoEbrzLJUpEjOgpCp5Z+W3A==", + "requires": { + "xstream": "^11.14.0" + } + }, + "@cosmjs/tendermint-rpc": { + "version": "0.32.4", + "resolved": "https://registry.npmjs.org/@cosmjs/tendermint-rpc/-/tendermint-rpc-0.32.4.tgz", + "integrity": "sha512-MWvUUno+4bCb/LmlMIErLypXxy7ckUuzEmpufYYYd9wgbdCXaTaO08SZzyFM5PI8UJ/0S2AmUrgWhldlbxO8mw==", + "requires": { + "@cosmjs/crypto": "^0.32.4", + "@cosmjs/encoding": "^0.32.4", + "@cosmjs/json-rpc": "^0.32.4", + "@cosmjs/math": "^0.32.4", + "@cosmjs/socket": "^0.32.4", + "@cosmjs/stream": "^0.32.4", + "@cosmjs/utils": "^0.32.4", + "axios": "^1.6.0", + "readonly-date": "^1.0.0", + "xstream": "^11.14.0" + } + }, + "@cosmjs/utils": { + "version": "0.32.4", + "resolved": "https://registry.npmjs.org/@cosmjs/utils/-/utils-0.32.4.tgz", + "integrity": "sha512-D1Yc+Zy8oL/hkUkFUL/bwxvuDBzRGpc4cF7/SkdhxX4iHpSLgdOuTt1mhCh9+kl6NQREy9t7SYZ6xeW5gFe60w==" + }, + "@injectivelabs/core-proto-ts": { + "version": "0.0.21", + "resolved": "https://registry.npmjs.org/@injectivelabs/core-proto-ts/-/core-proto-ts-0.0.21.tgz", + "integrity": "sha512-RBxSkRBCty60R/l55/D1jsSW0Aof5dyGFhCFdN3A010KjMv/SzZGGr+6DZPY/hflyFeaJzDv/VTopCymKNRBvQ==", "requires": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" + "@injectivelabs/grpc-web": "^0.0.1", + "google-protobuf": "^3.14.0", + "protobufjs": "^7.0.0", + "rxjs": "^7.4.0" } - } - } - }, - "@solana/buffer-layout-utils": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/@solana/buffer-layout-utils/-/buffer-layout-utils-0.2.0.tgz", - "integrity": "sha512-szG4sxgJGktbuZYDg2FfNmkMi0DYQoVjN2h7ta1W1hPrwzarcFLBq9UpX1UjNXsNpT9dn+chgprtWGioUAr4/g==", - "requires": { - "@solana/buffer-layout": "^4.0.0", - "@solana/web3.js": "^1.32.0", - "bigint-buffer": "^1.1.5", - "bignumber.js": "^9.0.1" - } - }, - "@solana/spl-token": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/@solana/spl-token/-/spl-token-0.3.5.tgz", - "integrity": "sha512-0bGC6n415lGjKu02gkLOIpP1wzndSP0SHwN9PefJ+wKAhmfU1rl3AV1Pa41uap2kzSCD6F9642ngNO8KXPvh/g==", - "requires": { - "@solana/buffer-layout": "^4.0.0", - "@solana/buffer-layout-utils": "^0.2.0", - "buffer": "^6.0.3" - }, - "dependencies": { - "buffer": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", - "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + }, + "@injectivelabs/indexer-proto-ts": { + "version": "1.11.42", + "resolved": "https://registry.npmjs.org/@injectivelabs/indexer-proto-ts/-/indexer-proto-ts-1.11.42.tgz", + "integrity": "sha512-6ejCpcWZWOSsELFIfUf2+xuJPOH+YdiJtwtB3d9x2H7dnrCBjXMxlPCSxoKEUbDH6w/lY2mO6TJm65rNy9piew==", "requires": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" + "@injectivelabs/grpc-web": "^0.0.1", + "google-protobuf": "^3.14.0", + "protobufjs": "^7.0.0", + "rxjs": "^7.4.0" } - } - } - }, - "@solana/web3.js": { - "version": "1.66.2", - "resolved": "https://registry.npmjs.org/@solana/web3.js/-/web3.js-1.66.2.tgz", - "integrity": "sha512-RyaHMR2jGmaesnYP045VLeBGfR/gAW3cvZHzMFGg7bkO+WOYOYp1nEllf0/la4U4qsYGKCsO9eEevR5fhHiVHg==", - "requires": { - "@babel/runtime": "^7.12.5", - "@noble/ed25519": "^1.7.0", - "@noble/hashes": "^1.1.2", - "@noble/secp256k1": "^1.6.3", - "@solana/buffer-layout": "^4.0.0", - "bigint-buffer": "^1.1.5", - "bn.js": "^5.0.0", - "borsh": "^0.7.0", - "bs58": "^4.0.1", - "buffer": "6.0.1", - "fast-stable-stringify": "^1.0.0", - "jayson": "^3.4.4", - "node-fetch": "2", - "rpc-websockets": "^7.5.0", - "superstruct": "^0.14.2" - } - }, - "@suchipi/femver": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@suchipi/femver/-/femver-1.0.0.tgz", - "integrity": "sha512-bprE8+K5V+DPX7q2e2K57ImqNBdfGHDIWaGI5xHxZoxbKOuQZn4wzPiUxOAHnsUr3w3xHrWXwN7gnG/iIuEMIg==" - }, - "@terra-money/legacy.proto": { - "version": "npm:@terra-money/terra.proto@0.1.7", - "resolved": "https://registry.npmjs.org/@terra-money/terra.proto/-/terra.proto-0.1.7.tgz", - "integrity": "sha512-NXD7f6pQCulvo6+mv6MAPzhOkUzRjgYVuHZE/apih+lVnPG5hDBU0rRYnOGGofwvKT5/jQoOENnFn/gioWWnyQ==", - "requires": { - "google-protobuf": "^3.17.3", - "long": "^4.0.0", - "protobufjs": "~6.11.2" - } - }, - "@terra-money/terra.js": { - "version": "3.1.9", - "resolved": "https://registry.npmjs.org/@terra-money/terra.js/-/terra.js-3.1.9.tgz", - "integrity": "sha512-JulSvOHLM56fL7s+cIjIbZeWPBluq883X1soWxA4TG5rKkDythT/DHeLXr3jP5Ld/26VENPSg6lNvK7cEYKpiw==", - "requires": { - "@classic-terra/terra.proto": "^1.1.0", - "@terra-money/terra.proto": "^2.1.0", - "axios": "^0.27.2", - "bech32": "^2.0.0", - "bip32": "^2.0.6", - "bip39": "^3.0.3", - "bufferutil": "^4.0.3", - "decimal.js": "^10.2.1", - "jscrypto": "^1.0.1", - "readable-stream": "^3.6.0", - "secp256k1": "^4.0.2", - "tmp": "^0.2.1", - "utf-8-validate": "^5.0.5", - "ws": "^7.5.9" - }, - "dependencies": { + }, + "@injectivelabs/mito-proto-ts": { + "version": "1.0.65", + "resolved": "https://registry.npmjs.org/@injectivelabs/mito-proto-ts/-/mito-proto-ts-1.0.65.tgz", + "integrity": "sha512-kceZP68QrgFop387RYyO7tkfJCYxoktuceHTs9DQP3dJceLqj/V2mz0NlpkkacjgE5NhYkQ/zc0Z40hr8tnYqQ==", + "requires": { + "@injectivelabs/grpc-web": "^0.0.1", + "google-protobuf": "^3.14.0", + "protobufjs": "^7.0.0", + "rxjs": "^7.4.0" + } + }, + "@injectivelabs/networks": { + "version": "1.14.13", + "resolved": "https://registry.npmjs.org/@injectivelabs/networks/-/networks-1.14.13.tgz", + "integrity": "sha512-P+eCQXWpbk4LbPxgTmi2gY7OzdZTNsIEUvDoh59Ma0CkqSFaYMtgB8fZVxpkKM0UPla587EDlEEIVxprDBcnZg==", + "requires": { + "@injectivelabs/exceptions": "^1.14.13", + "@injectivelabs/ts-types": "^1.14.13", + "@injectivelabs/utils": "^1.14.13", + "link-module-alias": "^1.2.0", + "shx": "^0.3.2" + } + }, + "@injectivelabs/sdk-ts": { + "version": "1.14.13", + "resolved": "https://registry.npmjs.org/@injectivelabs/sdk-ts/-/sdk-ts-1.14.13.tgz", + "integrity": "sha512-qcLoIu+hEMpuvdG0iXGNJvWQD05NkcO59tL3ijEhYmshlJWBMWJtpJJGt/E/hV9YxJfNTl20Rhi/5i7l0y8Hfg==", + "requires": { + "@apollo/client": "^3.5.8", + "@cosmjs/amino": "^0.32.3", + "@cosmjs/proto-signing": "^0.32.3", + "@cosmjs/stargate": "^0.32.3", + "@ethersproject/bytes": "^5.7.0", + "@injectivelabs/core-proto-ts": "^0.0.21", + "@injectivelabs/dmm-proto-ts": "1.0.20", + "@injectivelabs/exceptions": "^1.14.13", + "@injectivelabs/grpc-web": "^0.0.1", + "@injectivelabs/grpc-web-node-http-transport": "^0.0.2", + "@injectivelabs/grpc-web-react-native-transport": "^0.0.2", + "@injectivelabs/indexer-proto-ts": "1.11.42", + "@injectivelabs/mito-proto-ts": "1.0.65", + "@injectivelabs/networks": "^1.14.13", + "@injectivelabs/test-utils": "^1.14.13", + "@injectivelabs/ts-types": "^1.14.13", + "@injectivelabs/utils": "^1.14.13", + "@metamask/eth-sig-util": "^4.0.0", + "@noble/curves": "^1.4.0", + "axios": "^1.6.4", + "bech32": "^2.0.0", + "bip39": "^3.0.4", + "cosmjs-types": "^0.9.0", + "ethereumjs-util": "^7.1.4", + "ethers": "^6.5.1", + "google-protobuf": "^3.21.0", + "graphql": "^16.3.0", + "http-status-codes": "^2.2.0", + "js-sha3": "^0.8.0", + "jscrypto": "^1.0.3", + "keccak256": "^1.0.6", + "link-module-alias": "^1.2.0", + "secp256k1": "^4.0.3", + "shx": "^0.3.2", + "snakecase-keys": "^5.4.1" + } + }, + "@injectivelabs/utils": { + "version": "1.14.13", + "resolved": "https://registry.npmjs.org/@injectivelabs/utils/-/utils-1.14.13.tgz", + "integrity": "sha512-djmSq28R7HDSb2Mezan+EFjqQgmDRydY+fLOmkODwOCYA04xOGQo7yna+WVovV85aKpwPjn864AWPy65xiHUZg==", + "requires": { + "@injectivelabs/exceptions": "^1.14.13", + "@injectivelabs/ts-types": "^1.14.13", + "axios": "^1.6.4", + "bignumber.js": "^9.0.1", + "http-status-codes": "^2.2.0", + "link-module-alias": "^1.2.0", + "shx": "^0.3.2", + "snakecase-keys": "^5.1.2", + "store2": "^2.12.0" + } + }, + "@noble/hashes": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.3.2.tgz", + "integrity": "sha512-MVC8EAQp7MvEcm30KWENFjgR+Mkmf+D189XJTkFIlwohU5hcBbn1ZkKq7KVTi2Hme3PMGF390DaL52beVrIihQ==" + }, + "@types/node": { + "version": "18.15.13", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.15.13.tgz", + "integrity": "sha512-N+0kuo9KgrUQ1Sn/ifDXsvg0TTleP7rIy4zOBGECxAljqvqfqpTfzx0Q1NUedOixRMBfe2Whhb056a42cWs26Q==" + }, + "aes-js": { + "version": "4.0.0-beta.5", + "resolved": "https://registry.npmjs.org/aes-js/-/aes-js-4.0.0-beta.5.tgz", + "integrity": "sha512-G965FqalsNyrPqgEGON7nIx1e/OVENSgiEIzyC63haUMuvNnwIgIjMs52hlTCKhkBny7A2ORNlfY9Zu+jmGk1Q==" + }, "axios": { - "version": "0.27.2", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.27.2.tgz", - "integrity": "sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==", + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.3.tgz", + "integrity": "sha512-Ar7ND9pU99eJ9GpoGQKhKf58GpUOgnzuaB7ueNQ5BMi0p+LZ5oaEnfF999fAArcTIBwXTCHAmGcHOZJaWPq9Nw==", "requires": { - "follow-redirects": "^1.14.9", - "form-data": "^4.0.0" + "follow-redirects": "^1.15.6", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" } }, - "bech32": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/bech32/-/bech32-2.0.0.tgz", - "integrity": "sha512-LcknSilhIGatDAsY1ak2I8VtGaHNhgMSYVxFrGLXv+xLHytaKZKcaUJJUE7qmBr7h33o5YQwP55pMI0xmkpJwg==" + "cosmjs-types": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/cosmjs-types/-/cosmjs-types-0.9.0.tgz", + "integrity": "sha512-MN/yUe6mkJwHnCFfsNPeCfXVhyxHYW6c/xDUzrSbBycYzw++XvWDMJArXp2pLdgD6FQ8DW79vkPjeNKVrXaHeQ==" + }, + "ethers": { + "version": "6.13.2", + "resolved": "https://registry.npmjs.org/ethers/-/ethers-6.13.2.tgz", + "integrity": "sha512-9VkriTTed+/27BGuY1s0hf441kqwHJ1wtN2edksEtiRvXx+soxRX3iSXTfFqq2+YwrOqbDoTHjIhQnjJRlzKmg==", + "requires": { + "@adraffy/ens-normalize": "1.10.1", + "@noble/curves": "1.2.0", + "@noble/hashes": "1.3.2", + "@types/node": "18.15.13", + "aes-js": "4.0.0-beta.5", + "tslib": "2.4.0", + "ws": "8.17.1" + }, + "dependencies": { + "@noble/curves": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.2.0.tgz", + "integrity": "sha512-oYclrNgRaM9SsBUBVbb8M6DTV7ZHRTKugureoYEncY5c65HOmRzvSiTE3y5CYaPYJA/GVkrhXEoF0M3Ya9PMnw==", + "requires": { + "@noble/hashes": "1.3.2" + } + }, + "ws": { + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.17.1.tgz", + "integrity": "sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ==", + "requires": {} + } + } }, "form-data": { "version": "4.0.0", @@ -14514,267 +20133,641 @@ "combined-stream": "^1.0.8", "mime-types": "^2.1.12" } + }, + "long": { + "version": "5.2.3", + "resolved": "https://registry.npmjs.org/long/-/long-5.2.3.tgz", + "integrity": "sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q==" + }, + "protobufjs": { + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.3.2.tgz", + "integrity": "sha512-RXyHaACeqXeqAKGLDl68rQKbmObRsTIn4TYVUUug1KfS47YWCo5MacGITEryugIgZqORCvJWEk4l449POg5Txg==", + "requires": { + "@protobufjs/aspromise": "^1.1.2", + "@protobufjs/base64": "^1.1.2", + "@protobufjs/codegen": "^2.0.4", + "@protobufjs/eventemitter": "^1.1.0", + "@protobufjs/fetch": "^1.1.0", + "@protobufjs/float": "^1.0.2", + "@protobufjs/inquire": "^1.1.0", + "@protobufjs/path": "^1.1.2", + "@protobufjs/pool": "^1.1.0", + "@protobufjs/utf8": "^1.1.0", + "@types/node": ">=13.7.0", + "long": "^5.0.0" + } } } }, - "@terra-money/terra.proto": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@terra-money/terra.proto/-/terra.proto-2.1.0.tgz", - "integrity": "sha512-rhaMslv3Rkr+QsTQEZs64FKA4QlfO0DfQHaR6yct/EovenMkibDEQ63dEL6yJA6LCaEQGYhyVB9JO9pTUA8ybw==", - "requires": { - "@improbable-eng/grpc-web": "^0.14.1", - "google-protobuf": "^3.17.3", - "long": "^4.0.0", - "protobufjs": "~6.11.2" - } - }, - "@truffle/hdwallet-provider": { - "version": "2.0.15", - "resolved": "https://registry.npmjs.org/@truffle/hdwallet-provider/-/hdwallet-provider-2.0.15.tgz", - "integrity": "sha512-C1l9Lj2GJUfqkWK37Kt1U2ho9jlp0fIJIRjX4Gydppc+PNGiE0cLYvNPSnIyXwU8S32/CF2YW8Vvy7MKaTW6Mw==", - "dev": true, + "@wormhole-foundation/sdk-definitions": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/@wormhole-foundation/sdk-definitions/-/sdk-definitions-0.9.0.tgz", + "integrity": "sha512-jgzXJ2K4fk38cW53H58P6BJ8KSbEw1zTe57lkfUTXteaZXjx8NyaeNXVDrjjn0LVvb9CdSyZWBrWdRQs4GGv9g==", "requires": { - "@ethereumjs/common": "^2.4.0", - "@ethereumjs/tx": "^3.3.0", - "@metamask/eth-sig-util": "4.0.1", - "ethereum-cryptography": "1.1.2", - "ethereum-protocol": "^1.0.1", - "ethereumjs-util": "^7.1.5", - "ethereumjs-wallet": "^1.0.2", - "web3-provider-engine": "16.0.3" + "@noble/curves": "^1.4.0", + "@noble/hashes": "^1.3.1", + "@wormhole-foundation/sdk-base": "0.9.0" }, "dependencies": { "@noble/hashes": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.1.2.tgz", - "integrity": "sha512-KYRCASVTv6aeUi1tsF8/vpyR7zpfs3FUzy2Jqm+MU+LmUKhQ0y2FpfwqkCcxSg2ua4GALJd8k2R76WxwZGbQpA==", - "dev": true - }, - "ethereum-cryptography": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-1.1.2.tgz", - "integrity": "sha512-XDSJlg4BD+hq9N2FjvotwUET9Tfxpxc3kWGE2AqUG5vcbeunnbImVk3cj6e/xT3phdW21mE8R5IugU4fspQDcQ==", - "dev": true, - "requires": { - "@noble/hashes": "1.1.2", - "@noble/secp256k1": "1.6.3", - "@scure/bip32": "1.1.0", - "@scure/bip39": "1.1.0" - } + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.4.0.tgz", + "integrity": "sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg==" } } }, - "@types/babel__core": { - "version": "7.20.5", - "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", - "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==", - "dev": true, - "requires": { - "@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.8", - "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.8.tgz", - "integrity": "sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==", - "dev": true, - "requires": { - "@babel/types": "^7.0.0" - } - }, - "@types/babel__template": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz", - "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", - "dev": true, - "requires": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0" - } - }, - "@types/babel__traverse": { - "version": "7.20.5", - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.5.tgz", - "integrity": "sha512-WXCyOcRtH37HAUkpXhUduaxdm82b4GSlyTqajXviN4EfiuPgNYR109xMCKvpl6zPIpua0DGlMEDCq+g8EdoheQ==", - "dev": true, - "requires": { - "@babel/types": "^7.20.7" - } - }, - "@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==", - "requires": { - "@types/node": "*" - } - }, - "@types/bs58": { - "version": "4.0.1", - "dev": true, - "requires": { - "base-x": "^3.0.6" - } - }, - "@types/config": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/@types/config/-/config-3.3.0.tgz", - "integrity": "sha512-9kZSbl3/X3TVNowLCu5HFQdQmD+4287Om55avknEYkuo6R2dDrsp/EXEHUFvfYeG7m1eJ0WYGj+cbcUIhARJAQ==" - }, - "@types/connect": { - "version": "3.4.35", + "@wormhole-foundation/sdk-evm": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/@wormhole-foundation/sdk-evm/-/sdk-evm-0.9.0.tgz", + "integrity": "sha512-UBOo/jdTEsueO/7678lZJH0Z4vydzjo6PvF8RuIY6XkZIHDj92NSGN/roh783WrK3AYdPR5zyutMxZrkJjWPRg==", "requires": { - "@types/node": "*" + "@wormhole-foundation/sdk-connect": "0.9.0", + "ethers": "^6.5.1" + }, + "dependencies": { + "@noble/curves": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.2.0.tgz", + "integrity": "sha512-oYclrNgRaM9SsBUBVbb8M6DTV7ZHRTKugureoYEncY5c65HOmRzvSiTE3y5CYaPYJA/GVkrhXEoF0M3Ya9PMnw==", + "requires": { + "@noble/hashes": "1.3.2" + } + }, + "@noble/hashes": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.3.2.tgz", + "integrity": "sha512-MVC8EAQp7MvEcm30KWENFjgR+Mkmf+D189XJTkFIlwohU5hcBbn1ZkKq7KVTi2Hme3PMGF390DaL52beVrIihQ==" + }, + "@types/node": { + "version": "18.15.13", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.15.13.tgz", + "integrity": "sha512-N+0kuo9KgrUQ1Sn/ifDXsvg0TTleP7rIy4zOBGECxAljqvqfqpTfzx0Q1NUedOixRMBfe2Whhb056a42cWs26Q==" + }, + "aes-js": { + "version": "4.0.0-beta.5", + "resolved": "https://registry.npmjs.org/aes-js/-/aes-js-4.0.0-beta.5.tgz", + "integrity": "sha512-G965FqalsNyrPqgEGON7nIx1e/OVENSgiEIzyC63haUMuvNnwIgIjMs52hlTCKhkBny7A2ORNlfY9Zu+jmGk1Q==" + }, + "ethers": { + "version": "6.13.2", + "resolved": "https://registry.npmjs.org/ethers/-/ethers-6.13.2.tgz", + "integrity": "sha512-9VkriTTed+/27BGuY1s0hf441kqwHJ1wtN2edksEtiRvXx+soxRX3iSXTfFqq2+YwrOqbDoTHjIhQnjJRlzKmg==", + "requires": { + "@adraffy/ens-normalize": "1.10.1", + "@noble/curves": "1.2.0", + "@noble/hashes": "1.3.2", + "@types/node": "18.15.13", + "aes-js": "4.0.0-beta.5", + "tslib": "2.4.0", + "ws": "8.17.1" + } + }, + "ws": { + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.17.1.tgz", + "integrity": "sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ==", + "requires": {} + } } }, - "@types/express-serve-static-core": { - "version": "4.17.24", + "@wormhole-foundation/sdk-evm-cctp": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/@wormhole-foundation/sdk-evm-cctp/-/sdk-evm-cctp-0.9.0.tgz", + "integrity": "sha512-wcyVIjnRwfXy3cvqV2xzESI0XdWB7zlUfhaC0Qcy5I1YLChaw6K+NQO+8KYGZ37ocnEX6PzzlCCJfxabgbE3Wg==", "requires": { - "@types/node": "*", - "@types/qs": "*", - "@types/range-parser": "*" + "@wormhole-foundation/sdk-connect": "0.9.0", + "@wormhole-foundation/sdk-evm": "0.9.0", + "ethers": "^6.5.1" + }, + "dependencies": { + "@noble/curves": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.2.0.tgz", + "integrity": "sha512-oYclrNgRaM9SsBUBVbb8M6DTV7ZHRTKugureoYEncY5c65HOmRzvSiTE3y5CYaPYJA/GVkrhXEoF0M3Ya9PMnw==", + "requires": { + "@noble/hashes": "1.3.2" + } + }, + "@noble/hashes": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.3.2.tgz", + "integrity": "sha512-MVC8EAQp7MvEcm30KWENFjgR+Mkmf+D189XJTkFIlwohU5hcBbn1ZkKq7KVTi2Hme3PMGF390DaL52beVrIihQ==" + }, + "@types/node": { + "version": "18.15.13", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.15.13.tgz", + "integrity": "sha512-N+0kuo9KgrUQ1Sn/ifDXsvg0TTleP7rIy4zOBGECxAljqvqfqpTfzx0Q1NUedOixRMBfe2Whhb056a42cWs26Q==" + }, + "aes-js": { + "version": "4.0.0-beta.5", + "resolved": "https://registry.npmjs.org/aes-js/-/aes-js-4.0.0-beta.5.tgz", + "integrity": "sha512-G965FqalsNyrPqgEGON7nIx1e/OVENSgiEIzyC63haUMuvNnwIgIjMs52hlTCKhkBny7A2ORNlfY9Zu+jmGk1Q==" + }, + "ethers": { + "version": "6.13.2", + "resolved": "https://registry.npmjs.org/ethers/-/ethers-6.13.2.tgz", + "integrity": "sha512-9VkriTTed+/27BGuY1s0hf441kqwHJ1wtN2edksEtiRvXx+soxRX3iSXTfFqq2+YwrOqbDoTHjIhQnjJRlzKmg==", + "requires": { + "@adraffy/ens-normalize": "1.10.1", + "@noble/curves": "1.2.0", + "@noble/hashes": "1.3.2", + "@types/node": "18.15.13", + "aes-js": "4.0.0-beta.5", + "tslib": "2.4.0", + "ws": "8.17.1" + } + }, + "ws": { + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.17.1.tgz", + "integrity": "sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ==", + "requires": {} + } } }, - "@types/graceful-fs": { - "version": "4.1.9", - "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.9.tgz", - "integrity": "sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==", - "dev": true, + "@wormhole-foundation/sdk-evm-core": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/@wormhole-foundation/sdk-evm-core/-/sdk-evm-core-0.9.0.tgz", + "integrity": "sha512-wMWOt218KFzKnCFx10EMrDYOUo8pAC89lHaPNMK0t0IYT5IhDzLqe/sUwYhLh10KeJ0kPXOQYf2m5VEY8gm58Q==", "requires": { - "@types/node": "*" + "@wormhole-foundation/sdk-connect": "0.9.0", + "@wormhole-foundation/sdk-evm": "0.9.0", + "ethers": "^6.5.1" + }, + "dependencies": { + "@noble/curves": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.2.0.tgz", + "integrity": "sha512-oYclrNgRaM9SsBUBVbb8M6DTV7ZHRTKugureoYEncY5c65HOmRzvSiTE3y5CYaPYJA/GVkrhXEoF0M3Ya9PMnw==", + "requires": { + "@noble/hashes": "1.3.2" + } + }, + "@noble/hashes": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.3.2.tgz", + "integrity": "sha512-MVC8EAQp7MvEcm30KWENFjgR+Mkmf+D189XJTkFIlwohU5hcBbn1ZkKq7KVTi2Hme3PMGF390DaL52beVrIihQ==" + }, + "@types/node": { + "version": "18.15.13", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.15.13.tgz", + "integrity": "sha512-N+0kuo9KgrUQ1Sn/ifDXsvg0TTleP7rIy4zOBGECxAljqvqfqpTfzx0Q1NUedOixRMBfe2Whhb056a42cWs26Q==" + }, + "aes-js": { + "version": "4.0.0-beta.5", + "resolved": "https://registry.npmjs.org/aes-js/-/aes-js-4.0.0-beta.5.tgz", + "integrity": "sha512-G965FqalsNyrPqgEGON7nIx1e/OVENSgiEIzyC63haUMuvNnwIgIjMs52hlTCKhkBny7A2ORNlfY9Zu+jmGk1Q==" + }, + "ethers": { + "version": "6.13.2", + "resolved": "https://registry.npmjs.org/ethers/-/ethers-6.13.2.tgz", + "integrity": "sha512-9VkriTTed+/27BGuY1s0hf441kqwHJ1wtN2edksEtiRvXx+soxRX3iSXTfFqq2+YwrOqbDoTHjIhQnjJRlzKmg==", + "requires": { + "@adraffy/ens-normalize": "1.10.1", + "@noble/curves": "1.2.0", + "@noble/hashes": "1.3.2", + "@types/node": "18.15.13", + "aes-js": "4.0.0-beta.5", + "tslib": "2.4.0", + "ws": "8.17.1" + } + }, + "ws": { + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.17.1.tgz", + "integrity": "sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ==", + "requires": {} + } } }, - "@types/istanbul-lib-coverage": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz", - "integrity": "sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==", - "dev": true - }, - "@types/istanbul-lib-report": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz", - "integrity": "sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==", - "dev": true, + "@wormhole-foundation/sdk-evm-portico": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/@wormhole-foundation/sdk-evm-portico/-/sdk-evm-portico-0.9.0.tgz", + "integrity": "sha512-nwZ3l3xtLXV+1PPQzvcLNtRgqUK8+B5SHpha3rIgdHSGLBnyYYGsqUjZ/zKH25Ll2XRpMy4A4YpDAnfBJ0xx6Q==", "requires": { - "@types/istanbul-lib-coverage": "*" + "@wormhole-foundation/sdk-connect": "0.9.0", + "@wormhole-foundation/sdk-evm": "0.9.0", + "@wormhole-foundation/sdk-evm-core": "0.9.0", + "@wormhole-foundation/sdk-evm-tokenbridge": "0.9.0", + "ethers": "^6.5.1" + }, + "dependencies": { + "@noble/curves": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.2.0.tgz", + "integrity": "sha512-oYclrNgRaM9SsBUBVbb8M6DTV7ZHRTKugureoYEncY5c65HOmRzvSiTE3y5CYaPYJA/GVkrhXEoF0M3Ya9PMnw==", + "requires": { + "@noble/hashes": "1.3.2" + } + }, + "@noble/hashes": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.3.2.tgz", + "integrity": "sha512-MVC8EAQp7MvEcm30KWENFjgR+Mkmf+D189XJTkFIlwohU5hcBbn1ZkKq7KVTi2Hme3PMGF390DaL52beVrIihQ==" + }, + "@types/node": { + "version": "18.15.13", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.15.13.tgz", + "integrity": "sha512-N+0kuo9KgrUQ1Sn/ifDXsvg0TTleP7rIy4zOBGECxAljqvqfqpTfzx0Q1NUedOixRMBfe2Whhb056a42cWs26Q==" + }, + "aes-js": { + "version": "4.0.0-beta.5", + "resolved": "https://registry.npmjs.org/aes-js/-/aes-js-4.0.0-beta.5.tgz", + "integrity": "sha512-G965FqalsNyrPqgEGON7nIx1e/OVENSgiEIzyC63haUMuvNnwIgIjMs52hlTCKhkBny7A2ORNlfY9Zu+jmGk1Q==" + }, + "ethers": { + "version": "6.13.2", + "resolved": "https://registry.npmjs.org/ethers/-/ethers-6.13.2.tgz", + "integrity": "sha512-9VkriTTed+/27BGuY1s0hf441kqwHJ1wtN2edksEtiRvXx+soxRX3iSXTfFqq2+YwrOqbDoTHjIhQnjJRlzKmg==", + "requires": { + "@adraffy/ens-normalize": "1.10.1", + "@noble/curves": "1.2.0", + "@noble/hashes": "1.3.2", + "@types/node": "18.15.13", + "aes-js": "4.0.0-beta.5", + "tslib": "2.4.0", + "ws": "8.17.1" + } + }, + "ws": { + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.17.1.tgz", + "integrity": "sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ==", + "requires": {} + } } }, - "@types/istanbul-reports": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz", - "integrity": "sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==", - "dev": true, + "@wormhole-foundation/sdk-evm-tokenbridge": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/@wormhole-foundation/sdk-evm-tokenbridge/-/sdk-evm-tokenbridge-0.9.0.tgz", + "integrity": "sha512-XNoTNKdPGRWjKa6+rx4EJ9L298yc5CM/tFeqjw/jBhD+n8qHo9RlC+PzzZs0jppHhYI/18HjLq5Gf+wYzxt3dQ==", "requires": { - "@types/istanbul-lib-report": "*" + "@wormhole-foundation/sdk-connect": "0.9.0", + "@wormhole-foundation/sdk-evm": "0.9.0", + "@wormhole-foundation/sdk-evm-core": "0.9.0", + "ethers": "^6.5.1" + }, + "dependencies": { + "@noble/curves": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.2.0.tgz", + "integrity": "sha512-oYclrNgRaM9SsBUBVbb8M6DTV7ZHRTKugureoYEncY5c65HOmRzvSiTE3y5CYaPYJA/GVkrhXEoF0M3Ya9PMnw==", + "requires": { + "@noble/hashes": "1.3.2" + } + }, + "@noble/hashes": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.3.2.tgz", + "integrity": "sha512-MVC8EAQp7MvEcm30KWENFjgR+Mkmf+D189XJTkFIlwohU5hcBbn1ZkKq7KVTi2Hme3PMGF390DaL52beVrIihQ==" + }, + "@types/node": { + "version": "18.15.13", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.15.13.tgz", + "integrity": "sha512-N+0kuo9KgrUQ1Sn/ifDXsvg0TTleP7rIy4zOBGECxAljqvqfqpTfzx0Q1NUedOixRMBfe2Whhb056a42cWs26Q==" + }, + "aes-js": { + "version": "4.0.0-beta.5", + "resolved": "https://registry.npmjs.org/aes-js/-/aes-js-4.0.0-beta.5.tgz", + "integrity": "sha512-G965FqalsNyrPqgEGON7nIx1e/OVENSgiEIzyC63haUMuvNnwIgIjMs52hlTCKhkBny7A2ORNlfY9Zu+jmGk1Q==" + }, + "ethers": { + "version": "6.13.2", + "resolved": "https://registry.npmjs.org/ethers/-/ethers-6.13.2.tgz", + "integrity": "sha512-9VkriTTed+/27BGuY1s0hf441kqwHJ1wtN2edksEtiRvXx+soxRX3iSXTfFqq2+YwrOqbDoTHjIhQnjJRlzKmg==", + "requires": { + "@adraffy/ens-normalize": "1.10.1", + "@noble/curves": "1.2.0", + "@noble/hashes": "1.3.2", + "@types/node": "18.15.13", + "aes-js": "4.0.0-beta.5", + "tslib": "2.4.0", + "ws": "8.17.1" + } + }, + "ws": { + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.17.1.tgz", + "integrity": "sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ==", + "requires": {} + } } }, - "@types/jest": { - "version": "29.5.12", - "resolved": "https://registry.npmjs.org/@types/jest/-/jest-29.5.12.tgz", - "integrity": "sha512-eDC8bTvT/QhYdxJAulQikueigY5AsdBRH2yDKW3yveW7svY3+DzN84/2NUgkw10RTiJbWqZrTtoGVdYlvFJdLw==", - "dev": true, + "@wormhole-foundation/sdk-solana": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/@wormhole-foundation/sdk-solana/-/sdk-solana-0.9.0.tgz", + "integrity": "sha512-eHVnQ4Co7G2jybClmjhJG9gJcGhqA+/iybERCFvgDZDvQ5ZVV6q4M+ZihEPxDfz0D65EzKNH/XA6Z6PfCNaqNw==", "requires": { - "expect": "^29.0.0", - "pretty-format": "^29.0.0" + "@coral-xyz/anchor": "0.29.0", + "@coral-xyz/borsh": "0.29.0", + "@solana/spl-token": "0.3.9", + "@solana/web3.js": "1.91.7", + "@wormhole-foundation/sdk-connect": "0.9.0" + }, + "dependencies": { + "@coral-xyz/borsh": { + "version": "0.29.0", + "resolved": "https://registry.npmjs.org/@coral-xyz/borsh/-/borsh-0.29.0.tgz", + "integrity": "sha512-s7VFVa3a0oqpkuRloWVPdCK7hMbAMY270geZOGfCnaqexrP5dTIpbEHL33req6IYPPJ0hYa71cdvJ1h6V55/oQ==", + "requires": { + "bn.js": "^5.1.2", + "buffer-layout": "^1.2.0" + } + } } }, - "@types/lodash": { - "version": "4.14.171" - }, - "@types/lodash.values": { - "version": "4.3.7", - "resolved": "https://registry.npmjs.org/@types/lodash.values/-/lodash.values-4.3.7.tgz", - "integrity": "sha512-Moex9/sWxtKEa+BKiH5zvmhfcieDlcz4wRxMhO/oJ2qOKUdujoU6dQjUTxWA8jwEREpHXmiY4HCwNRpycW8JQA==", + "@wormhole-foundation/sdk-solana-cctp": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/@wormhole-foundation/sdk-solana-cctp/-/sdk-solana-cctp-0.9.0.tgz", + "integrity": "sha512-rq7O+Ny9y4j5w5ZTs80ajGYYiHGXKD8Vq+i/geOsJV21pQxPp4sboViQPZyHHBU+P4YKCHE3cjhlQ1t/ecX5aw==", "requires": { - "@types/lodash": "*" + "@coral-xyz/anchor": "0.29.0", + "@solana/spl-token": "0.3.9", + "@solana/web3.js": "1.91.7", + "@wormhole-foundation/sdk-connect": "0.9.0", + "@wormhole-foundation/sdk-solana": "0.9.0" } }, - "@types/long": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/@types/long/-/long-4.0.2.tgz", - "integrity": "sha512-MqTGEo5bj5t157U6fA/BiDynNkn0YknVdh48CMPkTSpFTVmvao5UQmm7uEF6xBEo7qIMAlY/JSleYaE6VOdpaA==" - }, - "@types/node": { - "version": "18.7.6", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.7.6.tgz", - "integrity": "sha512-EdxgKRXgYsNITy5mjjXjVE/CS8YENSdhiagGrLqjG0pvA2owgJ6i4l7wy/PFZGC0B1/H20lWKN7ONVDNYDZm7A==" - }, - "@types/node-fetch": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.6.3.tgz", - "integrity": "sha512-ETTL1mOEdq/sxUtgtOhKjyB2Irra4cjxksvcMUR5Zr4n+PxVhsCD9WS46oPbHL3et9Zde7CNRr+WUNlcHvsX+w==", - "dev": true, + "@wormhole-foundation/sdk-solana-core": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/@wormhole-foundation/sdk-solana-core/-/sdk-solana-core-0.9.0.tgz", + "integrity": "sha512-P+vPjd0/N/b3Dnha3wrfgam1hgTIM2rD/l2gTq5sO9TkltUmbvMne0dIrt3KneQGYRLSKMrgGbpV8U5qi7aN+g==", "requires": { - "@types/node": "*", - "form-data": "^3.0.0" + "@coral-xyz/anchor": "0.29.0", + "@coral-xyz/borsh": "0.29.0", + "@solana/web3.js": "1.91.7", + "@wormhole-foundation/sdk-connect": "0.9.0", + "@wormhole-foundation/sdk-solana": "0.9.0" }, "dependencies": { - "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, + "@coral-xyz/borsh": { + "version": "0.29.0", + "resolved": "https://registry.npmjs.org/@coral-xyz/borsh/-/borsh-0.29.0.tgz", + "integrity": "sha512-s7VFVa3a0oqpkuRloWVPdCK7hMbAMY270geZOGfCnaqexrP5dTIpbEHL33req6IYPPJ0hYa71cdvJ1h6V55/oQ==", "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" + "bn.js": "^5.1.2", + "buffer-layout": "^1.2.0" } } } }, - "@types/pbkdf2": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@types/pbkdf2/-/pbkdf2-3.1.0.tgz", - "integrity": "sha512-Cf63Rv7jCQ0LaL8tNXmEyqTHuIJxRdlS5vMh1mj5voN4+QFhVZnlZruezqpWYDiJ8UTzhP0VmeLXCmBk66YrMQ==", + "@wormhole-foundation/sdk-solana-tokenbridge": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/@wormhole-foundation/sdk-solana-tokenbridge/-/sdk-solana-tokenbridge-0.9.0.tgz", + "integrity": "sha512-UIPO7FcNy9lYhT9AwhkSCSmt4b61sB3oUDjbzXLGa/VJM0gSyTAi9oG3l2iweyLarsOLv7TBGp1dpgVYkV0DXA==", "requires": { - "@types/node": "*" + "@coral-xyz/anchor": "0.29.0", + "@solana/spl-token": "0.3.9", + "@solana/web3.js": "1.91.7", + "@wormhole-foundation/sdk-connect": "0.9.0", + "@wormhole-foundation/sdk-solana": "0.9.0", + "@wormhole-foundation/sdk-solana-core": "0.9.0" } }, - "@types/qs": { - "version": "6.9.7" - }, - "@types/range-parser": { - "version": "1.2.4" - }, - "@types/secp256k1": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/@types/secp256k1/-/secp256k1-4.0.3.tgz", - "integrity": "sha512-Da66lEIFeIz9ltsdMZcpQvmrmmoqrfju8pm1BH8WbYjZSwUgCwXLb9C+9XYogwBITnbsSaMdVPb2ekf7TV+03w==", + "@wormhole-foundation/sdk-sui": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/@wormhole-foundation/sdk-sui/-/sdk-sui-0.9.0.tgz", + "integrity": "sha512-eUQjfsQT3nTOOBHAZUjTJRQspSMY9KXkj+DkIVjc6vqfju/pODrfbExc+Zo48Xte85iqX6d8hp4v/6hWHPS5xA==", "requires": { - "@types/node": "*" + "@mysten/sui.js": "^0.50.1", + "@wormhole-foundation/sdk-connect": "0.9.0" + }, + "dependencies": { + "@mysten/bcs": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/@mysten/bcs/-/bcs-0.11.1.tgz", + "integrity": "sha512-xP85isNSYUCHd3O/g+TmZYmg4wK6cU8q/n/MebkIGP4CYVJZz2wU/G24xIZ3wI+0iTop4dfgA5kYrg/DQKCUzA==", + "requires": { + "bs58": "^5.0.0" + } + }, + "@mysten/sui.js": { + "version": "0.50.1", + "resolved": "https://registry.npmjs.org/@mysten/sui.js/-/sui.js-0.50.1.tgz", + "integrity": "sha512-AY0wb4n6PMTRsDGygzrrTHUK/m5KwKZ4aQcN9cayiwsq2iIhfjGo7uuqMA7Y5UiqvLCoF+z7Ig14Q5qejQ/S/w==", + "requires": { + "@graphql-typed-document-node/core": "^3.2.0", + "@mysten/bcs": "0.11.1", + "@noble/curves": "^1.1.0", + "@noble/hashes": "^1.3.1", + "@scure/bip32": "^1.3.1", + "@scure/bip39": "^1.2.1", + "@suchipi/femver": "^1.0.0", + "bech32": "^2.0.0", + "gql.tada": "^1.2.0", + "graphql": "^16.8.1", + "superstruct": "^1.0.3", + "tweetnacl": "^1.0.3" + } + }, + "@noble/hashes": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.4.0.tgz", + "integrity": "sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg==" + }, + "@scure/bip32": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-1.4.0.tgz", + "integrity": "sha512-sVUpc0Vq3tXCkDGYVWGIZTRfnvu8LoTDaev7vbwh0omSvVORONr960MQWdKqJDCReIEmTj3PAr73O3aoxz7OPg==", + "requires": { + "@noble/curves": "~1.4.0", + "@noble/hashes": "~1.4.0", + "@scure/base": "~1.1.6" + } + }, + "@scure/bip39": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.3.0.tgz", + "integrity": "sha512-disdg7gHuTDZtY+ZdkmLpPCk7fxZSu3gBiEGuoC1XYxv9cGx3Z6cpTggCgW6odSOOIXCiDjuGejW+aJKCY/pIQ==", + "requires": { + "@noble/hashes": "~1.4.0", + "@scure/base": "~1.1.6" + } + }, + "base-x": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/base-x/-/base-x-4.0.0.tgz", + "integrity": "sha512-FuwxlW4H5kh37X/oW59pwTzzTKRzfrrQwhmyspRM7swOEZcHtDZSCt45U6oKgtuFE+WYPblePMVIPR4RZrh/hw==" + }, + "bs58": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/bs58/-/bs58-5.0.0.tgz", + "integrity": "sha512-r+ihvQJvahgYT50JD05dyJNKlmmSlMoOGwn1lCcEzanPglg7TxYjioQUYehQ9mAR/+hOSd2jRc/Z2y5UxBymvQ==", + "requires": { + "base-x": "^4.0.0" + } + }, + "superstruct": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/superstruct/-/superstruct-1.0.4.tgz", + "integrity": "sha512-7JpaAoX2NGyoFlI9NBh66BQXGONc+uE+MRS5i2iOBKuS4e+ccgMDjATgZldkah+33DakBxDHiss9kvUcGAO8UQ==" + } } }, - "@types/stack-utils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.3.tgz", - "integrity": "sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==", - "dev": true - }, - "@types/ws": { - "version": "7.4.7", + "@wormhole-foundation/sdk-sui-core": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/@wormhole-foundation/sdk-sui-core/-/sdk-sui-core-0.9.0.tgz", + "integrity": "sha512-TsCKpKGwSkq7bR2xAs14phHALyDCvOaNy/HzaZ1AiDu3j7IvYkKX0oGM7KmyxVfV5lB2Ej0459ezbUm9LpUTXA==", "requires": { - "@types/node": "*" + "@mysten/sui.js": "^0.50.1", + "@wormhole-foundation/sdk-connect": "0.9.0", + "@wormhole-foundation/sdk-sui": "0.9.0" + }, + "dependencies": { + "@mysten/bcs": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/@mysten/bcs/-/bcs-0.11.1.tgz", + "integrity": "sha512-xP85isNSYUCHd3O/g+TmZYmg4wK6cU8q/n/MebkIGP4CYVJZz2wU/G24xIZ3wI+0iTop4dfgA5kYrg/DQKCUzA==", + "requires": { + "bs58": "^5.0.0" + } + }, + "@mysten/sui.js": { + "version": "0.50.1", + "resolved": "https://registry.npmjs.org/@mysten/sui.js/-/sui.js-0.50.1.tgz", + "integrity": "sha512-AY0wb4n6PMTRsDGygzrrTHUK/m5KwKZ4aQcN9cayiwsq2iIhfjGo7uuqMA7Y5UiqvLCoF+z7Ig14Q5qejQ/S/w==", + "requires": { + "@graphql-typed-document-node/core": "^3.2.0", + "@mysten/bcs": "0.11.1", + "@noble/curves": "^1.1.0", + "@noble/hashes": "^1.3.1", + "@scure/bip32": "^1.3.1", + "@scure/bip39": "^1.2.1", + "@suchipi/femver": "^1.0.0", + "bech32": "^2.0.0", + "gql.tada": "^1.2.0", + "graphql": "^16.8.1", + "superstruct": "^1.0.3", + "tweetnacl": "^1.0.3" + } + }, + "@noble/hashes": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.4.0.tgz", + "integrity": "sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg==" + }, + "@scure/bip32": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-1.4.0.tgz", + "integrity": "sha512-sVUpc0Vq3tXCkDGYVWGIZTRfnvu8LoTDaev7vbwh0omSvVORONr960MQWdKqJDCReIEmTj3PAr73O3aoxz7OPg==", + "requires": { + "@noble/curves": "~1.4.0", + "@noble/hashes": "~1.4.0", + "@scure/base": "~1.1.6" + } + }, + "@scure/bip39": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.3.0.tgz", + "integrity": "sha512-disdg7gHuTDZtY+ZdkmLpPCk7fxZSu3gBiEGuoC1XYxv9cGx3Z6cpTggCgW6odSOOIXCiDjuGejW+aJKCY/pIQ==", + "requires": { + "@noble/hashes": "~1.4.0", + "@scure/base": "~1.1.6" + } + }, + "base-x": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/base-x/-/base-x-4.0.0.tgz", + "integrity": "sha512-FuwxlW4H5kh37X/oW59pwTzzTKRzfrrQwhmyspRM7swOEZcHtDZSCt45U6oKgtuFE+WYPblePMVIPR4RZrh/hw==" + }, + "bs58": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/bs58/-/bs58-5.0.0.tgz", + "integrity": "sha512-r+ihvQJvahgYT50JD05dyJNKlmmSlMoOGwn1lCcEzanPglg7TxYjioQUYehQ9mAR/+hOSd2jRc/Z2y5UxBymvQ==", + "requires": { + "base-x": "^4.0.0" + } + }, + "superstruct": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/superstruct/-/superstruct-1.0.4.tgz", + "integrity": "sha512-7JpaAoX2NGyoFlI9NBh66BQXGONc+uE+MRS5i2iOBKuS4e+ccgMDjATgZldkah+33DakBxDHiss9kvUcGAO8UQ==" + } } }, - "@types/yargs": { - "version": "17.0.24", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.24.tgz", - "integrity": "sha512-6i0aC7jV6QzQB8ne1joVZ0eSFIstHsCrobmOtghM11yGlH0j43FKL2UhWdELkyps0zuf7qVTUVCCR+tgSlyLLw==", - "dev": true, + "@wormhole-foundation/sdk-sui-tokenbridge": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/@wormhole-foundation/sdk-sui-tokenbridge/-/sdk-sui-tokenbridge-0.9.0.tgz", + "integrity": "sha512-8LpnXjxBT4VdXw9OeDhPoxCS5FWxPvJXe7WJtXCv0Vlk6WIdoS1XmTcxC+IoQWNQJW4qkiwMHWEa5AynavxHtQ==", "requires": { - "@types/yargs-parser": "*" + "@mysten/sui.js": "^0.50.1", + "@wormhole-foundation/sdk-connect": "0.9.0", + "@wormhole-foundation/sdk-sui": "0.9.0", + "@wormhole-foundation/sdk-sui-core": "0.9.0" + }, + "dependencies": { + "@mysten/bcs": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/@mysten/bcs/-/bcs-0.11.1.tgz", + "integrity": "sha512-xP85isNSYUCHd3O/g+TmZYmg4wK6cU8q/n/MebkIGP4CYVJZz2wU/G24xIZ3wI+0iTop4dfgA5kYrg/DQKCUzA==", + "requires": { + "bs58": "^5.0.0" + } + }, + "@mysten/sui.js": { + "version": "0.50.1", + "resolved": "https://registry.npmjs.org/@mysten/sui.js/-/sui.js-0.50.1.tgz", + "integrity": "sha512-AY0wb4n6PMTRsDGygzrrTHUK/m5KwKZ4aQcN9cayiwsq2iIhfjGo7uuqMA7Y5UiqvLCoF+z7Ig14Q5qejQ/S/w==", + "requires": { + "@graphql-typed-document-node/core": "^3.2.0", + "@mysten/bcs": "0.11.1", + "@noble/curves": "^1.1.0", + "@noble/hashes": "^1.3.1", + "@scure/bip32": "^1.3.1", + "@scure/bip39": "^1.2.1", + "@suchipi/femver": "^1.0.0", + "bech32": "^2.0.0", + "gql.tada": "^1.2.0", + "graphql": "^16.8.1", + "superstruct": "^1.0.3", + "tweetnacl": "^1.0.3" + } + }, + "@noble/hashes": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.4.0.tgz", + "integrity": "sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg==" + }, + "@scure/bip32": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-1.4.0.tgz", + "integrity": "sha512-sVUpc0Vq3tXCkDGYVWGIZTRfnvu8LoTDaev7vbwh0omSvVORONr960MQWdKqJDCReIEmTj3PAr73O3aoxz7OPg==", + "requires": { + "@noble/curves": "~1.4.0", + "@noble/hashes": "~1.4.0", + "@scure/base": "~1.1.6" + } + }, + "@scure/bip39": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.3.0.tgz", + "integrity": "sha512-disdg7gHuTDZtY+ZdkmLpPCk7fxZSu3gBiEGuoC1XYxv9cGx3Z6cpTggCgW6odSOOIXCiDjuGejW+aJKCY/pIQ==", + "requires": { + "@noble/hashes": "~1.4.0", + "@scure/base": "~1.1.6" + } + }, + "base-x": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/base-x/-/base-x-4.0.0.tgz", + "integrity": "sha512-FuwxlW4H5kh37X/oW59pwTzzTKRzfrrQwhmyspRM7swOEZcHtDZSCt45U6oKgtuFE+WYPblePMVIPR4RZrh/hw==" + }, + "bs58": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/bs58/-/bs58-5.0.0.tgz", + "integrity": "sha512-r+ihvQJvahgYT50JD05dyJNKlmmSlMoOGwn1lCcEzanPglg7TxYjioQUYehQ9mAR/+hOSd2jRc/Z2y5UxBymvQ==", + "requires": { + "base-x": "^4.0.0" + } + }, + "superstruct": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/superstruct/-/superstruct-1.0.4.tgz", + "integrity": "sha512-7JpaAoX2NGyoFlI9NBh66BQXGONc+uE+MRS5i2iOBKuS4e+ccgMDjATgZldkah+33DakBxDHiss9kvUcGAO8UQ==" + } } }, - "@types/yargs-parser": { - "version": "20.2.1", - "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-20.2.1.tgz", - "integrity": "sha512-7tFImggNeNBVMsn0vLrpn1H1uPrUBdnARPTpZoitY37ZrdJREzf7I16tMrlK3hen349gr1NYh8CmZQa7CTG6Aw==", - "dev": true - }, "@wry/context": { "version": "0.7.0", "resolved": "https://registry.npmjs.org/@wry/context/-/context-0.7.0.tgz", @@ -14833,11 +20826,6 @@ "requires": { "follow-redirects": "^1.14.8" } - }, - "bech32": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/bech32/-/bech32-2.0.0.tgz", - "integrity": "sha512-LcknSilhIGatDAsY1ak2I8VtGaHNhgMSYVxFrGLXv+xLHytaKZKcaUJJUE7qmBr7h33o5YQwP55pMI0xmkpJwg==" } } }, @@ -14855,6 +20843,14 @@ "resolved": "https://registry.npmjs.org/aes-js/-/aes-js-3.0.0.tgz", "integrity": "sha512-H7wUZRn8WpTq9jocdxQ2c8x2sKo9ZVmzfRE13GiNJXfp7NcKYEdvl3vspKjXox6RIG2VtaRe4JFvxG4rqp2Zuw==" }, + "agentkeepalive": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.5.0.tgz", + "integrity": "sha512-5GG/5IbQQpC9FpkRGsSvZI5QYeSCzlJHdpBQntCsuTOxhKD8lqKhrleg2Yi7yvMIf82Ycmmqln9U8V9qwEiJew==", + "requires": { + "humanize-ms": "^1.2.1" + } + }, "ajv": { "version": "6.12.6", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", @@ -14873,13 +20869,12 @@ "integrity": "sha512-F1tGh056XczEaEAqu7s+hlZUDWwOBT70Eq0lfMpBP2YguSQVyxRbprLq5rELXKQOyOaixTWYhMeMQMzP0U5FoQ==" }, "algosdk": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/algosdk/-/algosdk-2.4.0.tgz", - "integrity": "sha512-sENe6IyUqvhQprfS/7gJAkPC5sX2LI5uc+gXaKNgzKp72UEyXYSoN3h4MZkOlCrOcTSWTJW7605tYgg8nFkflw==", + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/algosdk/-/algosdk-2.7.0.tgz", + "integrity": "sha512-sBE9lpV7bup3rZ+q2j3JQaFAE9JwZvjWKX00vPlG8e9txctXbgLL56jZhSWZndqhDI9oI+0P4NldkuQIWdrUyg==", "requires": { "algo-msgpack-with-bigint": "^2.1.1", "buffer": "^6.0.3", - "cross-fetch": "^3.1.5", "hi-base32": "^0.5.1", "js-sha256": "^0.9.0", "js-sha3": "^0.8.0", @@ -14887,25 +20882,6 @@ "json-bigint": "^1.0.0", "tweetnacl": "^1.0.3", "vlq": "^2.0.4" - }, - "dependencies": { - "buffer": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", - "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", - "requires": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" - } - }, - "cross-fetch": { - "version": "3.1.8", - "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.8.tgz", - "integrity": "sha512-cvA+JwZoU0Xq+h6WkMvAUqPEYy92Obet6UdKLfW60qn99ftItKjB5T+BkyWOFWe2pUyfQ+IJHmpOTznqk1M6Kg==", - "requires": { - "node-fetch": "^2.6.12" - } - } } }, "ansi-escapes": { @@ -15251,9 +21227,9 @@ } }, "bech32": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/bech32/-/bech32-1.1.4.tgz", - "integrity": "sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ==" + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/bech32/-/bech32-2.0.0.tgz", + "integrity": "sha512-LcknSilhIGatDAsY1ak2I8VtGaHNhgMSYVxFrGLXv+xLHytaKZKcaUJJUE7qmBr7h33o5YQwP55pMI0xmkpJwg==" }, "big-integer": { "version": "1.6.36", @@ -15455,7 +21431,9 @@ "dev": true }, "buffer": { - "version": "6.0.1", + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", "requires": { "base64-js": "^1.3.1", "ieee754": "^1.2.1" @@ -15481,6 +21459,35 @@ "node-gyp-build": "^4.2.0" } }, + "cacheable-lookup": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz", + "integrity": "sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==" + }, + "cacheable-request": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-7.0.4.tgz", + "integrity": "sha512-v+p6ongsrp0yTGbJXjgxPow2+DL93DASP4kXCDKb8/bwRtt9OEF3whggkkDkGNzgcWy2XaF4a8nZglC7uElscg==", + "requires": { + "clone-response": "^1.0.2", + "get-stream": "^5.1.0", + "http-cache-semantics": "^4.0.0", + "keyv": "^4.0.0", + "lowercase-keys": "^2.0.0", + "normalize-url": "^6.0.1", + "responselike": "^2.0.0" + }, + "dependencies": { + "get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "requires": { + "pump": "^3.0.0" + } + } + } + }, "callsites": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", @@ -15594,6 +21601,14 @@ "integrity": "sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==", "dev": true }, + "clone-response": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.3.tgz", + "integrity": "sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==", + "requires": { + "mimic-response": "^1.0.0" + } + }, "co": { "version": "4.6.0", "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", @@ -15847,6 +21862,21 @@ "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.3.1.tgz", "integrity": "sha512-V0pfhfr8suzyPGOx3nmq4aHqabehUZn6Ch9kyFpV79TGDTWFmHqUqXdabR7QHqxzrYolF4+tVmJhUG4OURg5dQ==" }, + "decompress-response": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", + "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", + "requires": { + "mimic-response": "^3.1.0" + }, + "dependencies": { + "mimic-response": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", + "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==" + } + } + }, "dedent": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.5.1.tgz", @@ -15860,6 +21890,11 @@ "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", "dev": true }, + "defer-to-connect": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz", + "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==" + }, "deferred-leveldown": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/deferred-leveldown/-/deferred-leveldown-1.2.2.tgz", @@ -16046,6 +22081,14 @@ } } }, + "end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "requires": { + "once": "^1.4.0" + } + }, "errno": { "version": "0.1.8", "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz", @@ -16828,9 +22871,9 @@ } }, "follow-redirects": { - "version": "1.15.2", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", - "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==" + "version": "1.15.6", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.6.tgz", + "integrity": "sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==" }, "forever-agent": { "version": "0.6.1", @@ -16905,6 +22948,15 @@ "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", "dev": true }, + "get-tsconfig": { + "version": "4.7.5", + "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.7.5.tgz", + "integrity": "sha512-ZCuZCnlqNzjb4QprAzXKdpp/gh6KTxSJuw3IBsPnV/7fV4NxC9ckB+vPTt8w7fJA0TaSD7c55BR47JD6MEDyDw==", + "dev": true, + "requires": { + "resolve-pkg-maps": "^1.0.0" + } + }, "getpass": { "version": "0.1.7", "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", @@ -16956,6 +23008,35 @@ "resolved": "https://registry.npmjs.org/google-protobuf/-/google-protobuf-3.21.2.tgz", "integrity": "sha512-3MSOYFO5U9mPGikIYCzK0SaThypfGgS6bHqrUGXG3DPHCrb+txNqeEcns1W0lkGfk0rCyNXm7xB9rMxnCiZOoA==" }, + "got": { + "version": "11.8.6", + "resolved": "https://registry.npmjs.org/got/-/got-11.8.6.tgz", + "integrity": "sha512-6tfZ91bOr7bOXnK7PRDCGBLa1H4U080YHNaAQ2KsMGlLEzRbk44nsZF2E1IeRc3vtJHPVbKCYgdFbaGO2ljd8g==", + "requires": { + "@sindresorhus/is": "^4.0.0", + "@szmarczak/http-timer": "^4.0.5", + "@types/cacheable-request": "^6.0.1", + "@types/responselike": "^1.0.0", + "cacheable-lookup": "^5.0.3", + "cacheable-request": "^7.0.2", + "decompress-response": "^6.0.0", + "http2-wrapper": "^1.0.0-beta.5.2", + "lowercase-keys": "^2.0.0", + "p-cancelable": "^2.0.0", + "responselike": "^2.0.0" + } + }, + "gql.tada": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/gql.tada/-/gql.tada-1.8.5.tgz", + "integrity": "sha512-A6uwkWjy0Pq6A804T4pnrBtnGG5XBSaordSNW2loxWqeov+FqEaOI5+Oy/Be2NIrSpxaM0TQhV1+xtYxsxJOjw==", + "requires": { + "@0no-co/graphql.web": "^1.0.5", + "@0no-co/graphqlsp": "^1.12.9", + "@gql.tada/cli-utils": "1.6.0", + "@gql.tada/internal": "1.0.6" + } + }, "graceful-fs": { "version": "4.2.11", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", @@ -16963,9 +23044,9 @@ "dev": true }, "graphql": { - "version": "16.6.0", - "resolved": "https://registry.npmjs.org/graphql/-/graphql-16.6.0.tgz", - "integrity": "sha512-KPIBPDlW7NxrbT/eh4qPXz5FiFdL5UbaA0XUNz2Rp3Z3hqBSkbj0GVjwFDztsWVauZUWsbKHgMg++sk8UX0bkw==" + "version": "16.8.1", + "resolved": "https://registry.npmjs.org/graphql/-/graphql-16.8.1.tgz", + "integrity": "sha512-59LZHPdGZVh695Ud9lRzPBVTtlX9ZCV150Er2W43ro37wVof0ctenSaskPPjN7lVTIN8mSZt8PHUNKZuNQUuxw==" }, "graphql-tag": { "version": "2.12.6", @@ -17061,6 +23142,11 @@ "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", "dev": true }, + "http-cache-semantics": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", + "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==" + }, "http-errors": { "version": "1.7.2", "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz", @@ -17096,12 +23182,29 @@ "resolved": "https://registry.npmjs.org/http-status-codes/-/http-status-codes-2.2.0.tgz", "integrity": "sha512-feERVo9iWxvnejp3SEfm/+oNG517npqL2/PIA8ORjyOZjGC7TwCRQsZylciLS64i6pJ0wRYz3rkXLRwbtFa8Ng==" }, + "http2-wrapper": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-1.0.3.tgz", + "integrity": "sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg==", + "requires": { + "quick-lru": "^5.1.1", + "resolve-alpn": "^1.0.0" + } + }, "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 }, + "humanize-ms": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz", + "integrity": "sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==", + "requires": { + "ms": "^2.0.0" + } + }, "ieee754": { "version": "1.2.1" }, @@ -17320,11 +23423,11 @@ } }, "jayson": { - "version": "3.6.4", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/jayson/-/jayson-4.1.0.tgz", + "integrity": "sha512-R6JlbyLN53Mjku329XoRT2zJAE6ZgOQ8f91ucYdMCD4nkGCF9kZSrcGXpHIU4jeKj58zUZke2p+cdQchU7Ly7A==", "requires": { "@types/connect": "^3.4.33", - "@types/express-serve-static-core": "^4.17.9", - "@types/lodash": "^4.14.159", "@types/node": "^12.12.54", "@types/ws": "^7.4.4", "commander": "^2.20.3", @@ -17334,13 +23437,19 @@ "isomorphic-ws": "^4.0.1", "json-stringify-safe": "^5.0.1", "JSONStream": "^1.3.5", - "lodash": "^4.17.20", - "uuid": "^3.4.0", + "uuid": "^8.3.2", "ws": "^7.4.5" }, "dependencies": { "@types/node": { - "version": "12.20.16" + "version": "12.20.55", + "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.55.tgz", + "integrity": "sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==" + }, + "uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==" } } }, @@ -18234,6 +24343,11 @@ "bignumber.js": "^9.0.0" } }, + "json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==" + }, "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", @@ -18347,17 +24461,14 @@ "bn.js": "^5.2.0", "buffer": "^6.0.3", "keccak": "^3.0.2" - }, - "dependencies": { - "buffer": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", - "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", - "requires": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" - } - } + } + }, + "keyv": { + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "requires": { + "json-buffer": "3.0.1" } }, "kleur": { @@ -18492,6 +24603,11 @@ "resolved": "https://registry.npmjs.org/libsodium/-/libsodium-0.7.10.tgz", "integrity": "sha512-eY+z7hDrDKxkAK+QKZVNv92A5KYkxfvIshtBJkmg5TSiCnYqZP3i9OO9whE79Pwgm4jGaoHgkM4ao/b9Cyu4zQ==" }, + "libsodium-sumo": { + "version": "0.7.14", + "resolved": "https://registry.npmjs.org/libsodium-sumo/-/libsodium-sumo-0.7.14.tgz", + "integrity": "sha512-2nDge6qlAjcwyslAhWfVumlkeSNK5+WCfKa2/VEq9prvlT5vP2FR0m0o5hmKaYqfsZ4TQVj5czQsimZvXDB1CQ==" + }, "libsodium-wrappers": { "version": "0.7.10", "resolved": "https://registry.npmjs.org/libsodium-wrappers/-/libsodium-wrappers-0.7.10.tgz", @@ -18500,6 +24616,14 @@ "libsodium": "^0.7.0" } }, + "libsodium-wrappers-sumo": { + "version": "0.7.14", + "resolved": "https://registry.npmjs.org/libsodium-wrappers-sumo/-/libsodium-wrappers-sumo-0.7.14.tgz", + "integrity": "sha512-0lm7ZwN5a95J2yUi8R1rgQeeaVDIWnvNzgVmXmZswis4mC+bQtbDrB+QpJlL4qklaKx3hVpJjoc6ubzJFiv64Q==", + "requires": { + "libsodium-sumo": "^0.7.14" + } + }, "lines-and-columns": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", @@ -18564,6 +24688,11 @@ "tslib": "^2.0.3" } }, + "lowercase-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==" + }, "lru-cache": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", @@ -18791,6 +24920,11 @@ "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", "dev": true }, + "mimic-response": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", + "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==" + }, "min-document": { "version": "2.19.0", "resolved": "https://registry.npmjs.org/min-document/-/min-document-2.19.0.tgz", @@ -18827,8 +24961,7 @@ "ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" }, "mustache": { "version": "4.2.0", @@ -18978,6 +25111,11 @@ "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", "dev": true }, + "normalize-url": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", + "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==" + }, "npm-run-path": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", @@ -19047,6 +25185,11 @@ } } }, + "p-cancelable": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.1.1.tgz", + "integrity": "sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==" + }, "p-limit": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", @@ -19275,6 +25418,11 @@ "long": "^4.0.0" } }, + "proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" + }, "prr": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", @@ -19287,6 +25435,15 @@ "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==", "dev": true }, + "pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, "punycode": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", @@ -19305,6 +25462,11 @@ "integrity": "sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==", "dev": true }, + "quick-lru": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", + "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==" + }, "randombytes": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", @@ -19388,6 +25550,11 @@ "path-parse": "^1.0.6" } }, + "resolve-alpn": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz", + "integrity": "sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==" + }, "resolve-cwd": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", @@ -19403,6 +25570,12 @@ "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", "dev": true }, + "resolve-pkg-maps": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz", + "integrity": "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==", + "dev": true + }, "resolve.exports": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.2.tgz", @@ -19414,6 +25587,14 @@ "resolved": "https://registry.npmjs.org/response-iterator/-/response-iterator-0.2.6.tgz", "integrity": "sha512-pVzEEzrsg23Sh053rmDUvLSkGXluZio0qu8VT6ukrYuvtjVfCbDZH9d6PGXb8HZfzdNZt8feXv/jvUzlhRgLnw==" }, + "responselike": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-2.0.1.tgz", + "integrity": "sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw==", + "requires": { + "lowercase-keys": "^2.0.0" + } + }, "ripemd160": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", @@ -19557,17 +25738,6 @@ "integrity": "sha512-S8cNxbyb0UGUM2VhRD4Poe5N58gJnJsLJ5vC7FYWGUmGhcsj4++WaIOBFVDxlG0W3To6xBuiRh+i0Qp2oNCOtg==", "requires": { "buffer": "6.0.3" - }, - "dependencies": { - "buffer": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", - "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", - "requires": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" - } - } } }, "shebang-command": { @@ -19997,6 +26167,204 @@ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" }, + "tsx": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/tsx/-/tsx-4.12.0.tgz", + "integrity": "sha512-642NAWAbDqPZINjmL32Lh/B+pd8vbVj6LHPsWm09IIHqQuWhCrNfcPTjRlHFWvv3FfM4vt9NLReBIjUNj5ZhDg==", + "dev": true, + "requires": { + "esbuild": "~0.20.2", + "fsevents": "~2.3.3", + "get-tsconfig": "^4.7.5" + }, + "dependencies": { + "@esbuild/android-arm": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.20.2.tgz", + "integrity": "sha512-t98Ra6pw2VaDhqNWO2Oph2LXbz/EJcnLmKLGBJwEwXX/JAN83Fym1rU8l0JUWK6HkIbWONCSSatf4sf2NBRx/w==", + "dev": true, + "optional": true + }, + "@esbuild/android-arm64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.20.2.tgz", + "integrity": "sha512-mRzjLacRtl/tWU0SvD8lUEwb61yP9cqQo6noDZP/O8VkwafSYwZ4yWy24kan8jE/IMERpYncRt2dw438LP3Xmg==", + "dev": true, + "optional": true + }, + "@esbuild/android-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.20.2.tgz", + "integrity": "sha512-btzExgV+/lMGDDa194CcUQm53ncxzeBrWJcncOBxuC6ndBkKxnHdFJn86mCIgTELsooUmwUm9FkhSp5HYu00Rg==", + "dev": true, + "optional": true + }, + "@esbuild/darwin-arm64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.20.2.tgz", + "integrity": "sha512-4J6IRT+10J3aJH3l1yzEg9y3wkTDgDk7TSDFX+wKFiWjqWp/iCfLIYzGyasx9l0SAFPT1HwSCR+0w/h1ES/MjA==", + "dev": true, + "optional": true + }, + "@esbuild/darwin-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.20.2.tgz", + "integrity": "sha512-tBcXp9KNphnNH0dfhv8KYkZhjc+H3XBkF5DKtswJblV7KlT9EI2+jeA8DgBjp908WEuYll6pF+UStUCfEpdysA==", + "dev": true, + "optional": true + }, + "@esbuild/freebsd-arm64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.20.2.tgz", + "integrity": "sha512-d3qI41G4SuLiCGCFGUrKsSeTXyWG6yem1KcGZVS+3FYlYhtNoNgYrWcvkOoaqMhwXSMrZRl69ArHsGJ9mYdbbw==", + "dev": true, + "optional": true + }, + "@esbuild/freebsd-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.20.2.tgz", + "integrity": "sha512-d+DipyvHRuqEeM5zDivKV1KuXn9WeRX6vqSqIDgwIfPQtwMP4jaDsQsDncjTDDsExT4lR/91OLjRo8bmC1e+Cw==", + "dev": true, + "optional": true + }, + "@esbuild/linux-arm": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.20.2.tgz", + "integrity": "sha512-VhLPeR8HTMPccbuWWcEUD1Az68TqaTYyj6nfE4QByZIQEQVWBB8vup8PpR7y1QHL3CpcF6xd5WVBU/+SBEvGTg==", + "dev": true, + "optional": true + }, + "@esbuild/linux-arm64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.20.2.tgz", + "integrity": "sha512-9pb6rBjGvTFNira2FLIWqDk/uaf42sSyLE8j1rnUpuzsODBq7FvpwHYZxQ/It/8b+QOS1RYfqgGFNLRI+qlq2A==", + "dev": true, + "optional": true + }, + "@esbuild/linux-ia32": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.20.2.tgz", + "integrity": "sha512-o10utieEkNPFDZFQm9CoP7Tvb33UutoJqg3qKf1PWVeeJhJw0Q347PxMvBgVVFgouYLGIhFYG0UGdBumROyiig==", + "dev": true, + "optional": true + }, + "@esbuild/linux-loong64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.20.2.tgz", + "integrity": "sha512-PR7sp6R/UC4CFVomVINKJ80pMFlfDfMQMYynX7t1tNTeivQ6XdX5r2XovMmha/VjR1YN/HgHWsVcTRIMkymrgQ==", + "dev": true, + "optional": true + }, + "@esbuild/linux-mips64el": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.20.2.tgz", + "integrity": "sha512-4BlTqeutE/KnOiTG5Y6Sb/Hw6hsBOZapOVF6njAESHInhlQAghVVZL1ZpIctBOoTFbQyGW+LsVYZ8lSSB3wkjA==", + "dev": true, + "optional": true + }, + "@esbuild/linux-ppc64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.20.2.tgz", + "integrity": "sha512-rD3KsaDprDcfajSKdn25ooz5J5/fWBylaaXkuotBDGnMnDP1Uv5DLAN/45qfnf3JDYyJv/ytGHQaziHUdyzaAg==", + "dev": true, + "optional": true + }, + "@esbuild/linux-riscv64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.20.2.tgz", + "integrity": "sha512-snwmBKacKmwTMmhLlz/3aH1Q9T8v45bKYGE3j26TsaOVtjIag4wLfWSiZykXzXuE1kbCE+zJRmwp+ZbIHinnVg==", + "dev": true, + "optional": true + }, + "@esbuild/linux-s390x": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.20.2.tgz", + "integrity": "sha512-wcWISOobRWNm3cezm5HOZcYz1sKoHLd8VL1dl309DiixxVFoFe/o8HnwuIwn6sXre88Nwj+VwZUvJf4AFxkyrQ==", + "dev": true, + "optional": true + }, + "@esbuild/linux-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.20.2.tgz", + "integrity": "sha512-1MdwI6OOTsfQfek8sLwgyjOXAu+wKhLEoaOLTjbijk6E2WONYpH9ZU2mNtR+lZ2B4uwr+usqGuVfFT9tMtGvGw==", + "dev": true, + "optional": true + }, + "@esbuild/netbsd-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.20.2.tgz", + "integrity": "sha512-K8/DhBxcVQkzYc43yJXDSyjlFeHQJBiowJ0uVL6Tor3jGQfSGHNNJcWxNbOI8v5k82prYqzPuwkzHt3J1T1iZQ==", + "dev": true, + "optional": true + }, + "@esbuild/openbsd-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.20.2.tgz", + "integrity": "sha512-eMpKlV0SThJmmJgiVyN9jTPJ2VBPquf6Kt/nAoo6DgHAoN57K15ZghiHaMvqjCye/uU4X5u3YSMgVBI1h3vKrQ==", + "dev": true, + "optional": true + }, + "@esbuild/sunos-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.20.2.tgz", + "integrity": "sha512-2UyFtRC6cXLyejf/YEld4Hajo7UHILetzE1vsRcGL3earZEW77JxrFjH4Ez2qaTiEfMgAXxfAZCm1fvM/G/o8w==", + "dev": true, + "optional": true + }, + "@esbuild/win32-arm64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.20.2.tgz", + "integrity": "sha512-GRibxoawM9ZCnDxnP3usoUDO9vUkpAxIIZ6GQI+IlVmr5kP3zUq+l17xELTHMWTWzjxa2guPNyrpq1GWmPvcGQ==", + "dev": true, + "optional": true + }, + "@esbuild/win32-ia32": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.20.2.tgz", + "integrity": "sha512-HfLOfn9YWmkSKRQqovpnITazdtquEW8/SoHW7pWpuEeguaZI4QnCRW6b+oZTztdBnZOS2hqJ6im/D5cPzBTTlQ==", + "dev": true, + "optional": true + }, + "@esbuild/win32-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.20.2.tgz", + "integrity": "sha512-N49X4lJX27+l9jbLKSqZ6bKNjzQvHaT8IIFUy+YIqmXQdjYCToGWwOItDrfby14c78aDd5NHQl29xingXfCdLQ==", + "dev": true, + "optional": true + }, + "esbuild": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.20.2.tgz", + "integrity": "sha512-WdOOppmUNU+IbZ0PaDiTst80zjnrOkyJNHoKupIcVyU8Lvla3Ugx94VzkQ32Ijqd7UhHJy75gNWDMUekcrSJ6g==", + "dev": true, + "requires": { + "@esbuild/aix-ppc64": "0.20.2", + "@esbuild/android-arm": "0.20.2", + "@esbuild/android-arm64": "0.20.2", + "@esbuild/android-x64": "0.20.2", + "@esbuild/darwin-arm64": "0.20.2", + "@esbuild/darwin-x64": "0.20.2", + "@esbuild/freebsd-arm64": "0.20.2", + "@esbuild/freebsd-x64": "0.20.2", + "@esbuild/linux-arm": "0.20.2", + "@esbuild/linux-arm64": "0.20.2", + "@esbuild/linux-ia32": "0.20.2", + "@esbuild/linux-loong64": "0.20.2", + "@esbuild/linux-mips64el": "0.20.2", + "@esbuild/linux-ppc64": "0.20.2", + "@esbuild/linux-riscv64": "0.20.2", + "@esbuild/linux-s390x": "0.20.2", + "@esbuild/linux-x64": "0.20.2", + "@esbuild/netbsd-x64": "0.20.2", + "@esbuild/openbsd-x64": "0.20.2", + "@esbuild/sunos-x64": "0.20.2", + "@esbuild/win32-arm64": "0.20.2", + "@esbuild/win32-ia32": "0.20.2", + "@esbuild/win32-x64": "0.20.2" + } + } + } + }, "tunnel-agent": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", @@ -20031,16 +26399,20 @@ "integrity": "sha512-7uc1O8h1M1g0rArakJdf0uLRSSgFcYexrVoKo+bzJd32gd4gDy2L/Z+8/FjPnU9ydY3pEnVPtr9FyscYY60K1g==" }, "typescript": { - "version": "4.6.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.6.3.tgz", - "integrity": "sha512-yNIatDa5iaofVozS/uQJEl3JRWLKKGJKh6Yaiv0GLGSuhpFJe7P3SbHZ8/yjAHRQwKRoA6YZqlfjXWmVzoVSMw==", - "dev": true + "version": "5.4.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.5.tgz", + "integrity": "sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==" }, "u3": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/u3/-/u3-0.1.1.tgz", "integrity": "sha512-+J5D5ir763y+Am/QY6hXNRlwljIeRMZMGs0cT6qqZVVzzT3X3nFPXVyPOFRMOR4kupB0T8JnCdpWdp6Q/iXn3w==" }, + "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==" + }, "untildify": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/untildify/-/untildify-4.0.0.tgz", @@ -20083,7 +26455,8 @@ "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" }, "uuid": { - "version": "3.4.0" + "version": "3.4.0", + "dev": true }, "v8-to-istanbul": { "version": "9.2.0", diff --git a/clients/js/package.json b/clients/js/package.json index b57885b75d..5e5f672b74 100644 --- a/clients/js/package.json +++ b/clients/js/package.json @@ -30,7 +30,7 @@ ], "dependencies": { "@celo-tools/celo-ethers-wrapper": "^0.1.0", - "@certusone/wormhole-sdk": "^0.10.15", + "@certusone/wormhole-sdk": "^0.10.18", "@cosmjs/encoding": "^0.26.2", "@improbable-eng/grpc-web-node-http-transport": "^0.15.0", "@injectivelabs/networks": "^1.10.7", @@ -42,11 +42,13 @@ "@solana/web3.js": "^1.22.0", "@terra-money/terra.js": "^3.1.9", "@types/config": "^3.3.0", + "@wormhole-foundation/sdk": "^0.9.0", "@xpla/xpla.js": "^0.2.1", "algosdk": "^2.4.0", "aptos": "^1.3.16", "axios": "^0.24.0", "base-64": "^1.0.0", + "bech32": "^2.0.0", "binary-parser": "^2.0.2", "bn.js": "^5.2.0", "bs58": "^4.0.1", @@ -65,11 +67,13 @@ "@types/bn.js": "^5.1.0", "@types/bs58": "^4.0.1", "@types/jest": "^29.5.12", + "@types/node": "^20.12.12", "@types/node-fetch": "^2.6.3", "@types/yargs": "^17.0.24", "copy-dir": "^1.3.0", "jest": "^29.7.0", "ts-jest": "^29.1.2", - "typescript": "^4.6" + "tsx": "^4.12.0", + "typescript": "^5.4.5" } } diff --git a/clients/js/run_info_tests b/clients/js/run_info_tests new file mode 100755 index 0000000000..04eebc2556 --- /dev/null +++ b/clients/js/run_info_tests @@ -0,0 +1,69 @@ +#!/bin/bash + +# This is here for ease of generating outputs. + +set -uo pipefail + +test_directory="info_tests" + +function usage() { +cat <&2 +Usage: + + $(basename "$0") [-h] [-a] -- Run info golden tests in $test_directory + + where: + -h show this help text + -a accept new results (override test files) +EOF +exit 1 +} + +accept=false +while getopts ':ha' option; do + case "$option" in + h) usage + ;; + a) accept=true + ;; + :) printf "missing argument for -%s\n" "$OPTARG" >&2 + usage + ;; + \?) printf "illegal option: -%s\n" "$OPTARG" >&2 + usage + ;; + esac +done +shift $((OPTIND - 1)) + +test_files=$(find "$test_directory" -type f | grep "\.test$") + +failed_tests=0 +for test in ${test_files[@]}; do + test_name="${test%.*}" + expected="$test_name.expected" + + result=$(mktemp) + node build/main.js $(cat "$test") > "$result" 2>&1 + if [ $accept = true ]; then + echo "Updating $test_name" + cat "$result" > "$expected" + continue + fi + + if [ ! -f "$expected" ]; then + echo "Missing '$expected' (re-run with -a flag to create)" + failed_tests=$(($failed_tests + 1)) + else + echo "Testing $test_name" + git --no-pager diff --no-index "$expected" "$result" + failed_tests=$(($failed_tests + $?)) + fi +done + +if [ ! $failed_tests = 0 ]; then + echo "$failed_tests failed test(s)" + exit 1 +else + echo "All tests passed" +fi diff --git a/clients/js/src/algorand.ts b/clients/js/src/algorand.ts index e66ef29061..a3af35d925 100644 --- a/clients/js/src/algorand.ts +++ b/clients/js/src/algorand.ts @@ -2,24 +2,26 @@ import { _submitVAAAlgorand, signSendAndConfirmAlgorand, } from "@certusone/wormhole-sdk/lib/esm/algorand"; -import { - CONTRACTS, - ChainName, -} from "@certusone/wormhole-sdk/lib/esm/utils/consts"; import { Account, Algodv2, mnemonicToSecretKey } from "algosdk"; import { NETWORKS } from "./consts"; -import { Network } from "./utils"; import { Payload, impossible } from "./vaa"; import { transferFromAlgorand } from "@certusone/wormhole-sdk/lib/esm/token_bridge/transfer"; -import { tryNativeToHexString } from "@certusone/wormhole-sdk/lib/esm/utils"; +import { tryNativeToHexString } from "./sdk/array"; +import { + Chain, + chainToChainId, + contracts, + Network, + toChainId, +} from "@wormhole-foundation/sdk-base"; export async function execute_algorand( payload: Payload, vaa: Uint8Array, network: Network ) { - const chainName = "algorand"; - const { key, rpc } = NETWORKS[network][chainName]; + const chain: Chain = "Algorand"; + const { key, rpc } = NETWORKS[network][chain]; if (!key) { throw Error(`No ${network} key defined for Algorand`); } @@ -28,19 +30,15 @@ export async function execute_algorand( throw Error(`No ${network} rpc defined for Algorand`); } - const contracts = CONTRACTS[network][chainName]; - console.log("contracts", contracts); + const coreContract = contracts.coreBridge.get(network, chain); + if (!coreContract) { + throw new Error(`Core bridge address not defined for Algorand ${network}`); + } let target_contract: string; switch (payload.module) { case "Core": { - if (!contracts.core) { - throw new Error( - `Core bridge address not defined for Algorand ${network}` - ); - } - - target_contract = contracts.core; + target_contract = coreContract; switch (payload.type) { case "GuardianSetUpgrade": console.log("Submitting new guardian set"); @@ -57,14 +55,12 @@ export async function execute_algorand( break; } case "NFTBridge": { - if (!contracts.nft_bridge) { - // NOTE: this code can safely be removed once the algorand NFT bridge is - // released, but it's fine for it to stay, as the condition will just be - // skipped once 'contracts.nft_bridge' is defined + const nftContract = contracts.nftBridge.get(network, chain); + if (!nftContract) { throw new Error("NFT bridge not supported yet for Algorand"); } - target_contract = contracts.nft_bridge; + target_contract = nftContract; switch (payload.type) { case "ContractUpgrade": console.log("Upgrading contract"); @@ -84,13 +80,14 @@ export async function execute_algorand( break; } case "TokenBridge": { - if (!contracts.token_bridge) { + const tbContract = contracts.tokenBridge.get(network, chain); + if (!tbContract) { throw new Error( `Token bridge address not defined for Algorand ${network}` ); } - target_contract = contracts.token_bridge; + target_contract = tbContract; switch (payload.type) { case "ContractUpgrade": console.log("Upgrading contract"); @@ -121,7 +118,7 @@ export async function execute_algorand( } const target = BigInt(parseInt(target_contract)); - const CORE_ID = BigInt(parseInt(contracts.core)); + const CORE_ID = BigInt(parseInt(coreContract)); const algodClient = getClient(network, rpc); const algoWallet: Account = mnemonicToSecretKey(key); @@ -140,27 +137,29 @@ export async function execute_algorand( } export async function transferAlgorand( - dstChain: ChainName, + dstChain: Chain, dstAddress: string, tokenAddress: string, amount: string, network: Network, rpc: string ) { - const { key } = NETWORKS[network].algorand; + const { key } = NETWORKS[network].Algorand; if (!key) { throw Error(`No ${network} key defined for Algorand`); } - const contracts = CONTRACTS[network].algorand; const client = getClient(network, rpc); const wallet: Account = mnemonicToSecretKey(key); - const CORE_ID = BigInt(parseInt(contracts.core)); - const TOKEN_BRIDGE_ID = BigInt(parseInt(contracts.token_bridge)); - const recipient = tryNativeToHexString(dstAddress, dstChain); + const CORE_ID = BigInt(parseInt(contracts.coreBridge(network, "Algorand"))); + const TOKEN_BRIDGE_ID = BigInt( + parseInt(contracts.tokenBridge(network, "Algorand")) + ); + const recipient = tryNativeToHexString(dstAddress, chainToChainId(dstChain)); if (!recipient) { throw new Error("Failed to convert recipient address"); } const assetId = tokenAddress === "native" ? BigInt(0) : BigInt(tokenAddress); + const txs = await transferFromAlgorand( client, TOKEN_BRIDGE_ID, @@ -169,7 +168,7 @@ export async function transferAlgorand( assetId, BigInt(amount), recipient, - dstChain, + toChainId(dstChain), BigInt(0) ); const result = await signSendAndConfirmAlgorand(client, txs, wallet); @@ -182,7 +181,7 @@ function getClient(network: Network, rpc: string) { algodServer: rpc, algodPort: "", }; - if (network === "DEVNET") { + if (network === "Devnet") { ALGORAND_HOST.algodToken = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"; ALGORAND_HOST.algodPort = "4001"; diff --git a/clients/js/src/aptos.ts b/clients/js/src/aptos.ts index 9b3c2bf4d9..49c98fb430 100644 --- a/clients/js/src/aptos.ts +++ b/clients/js/src/aptos.ts @@ -1,22 +1,21 @@ -import { - CONTRACTS, - ChainId, - ChainName, - assertChain, -} from "@certusone/wormhole-sdk/lib/esm/utils/consts"; import { transferFromAptos } from "@certusone/wormhole-sdk/lib/esm/token_bridge/transfer"; import { AptosAccount, AptosClient, BCS, TxnBuilderTypes, Types } from "aptos"; import { ethers } from "ethers"; import { sha3_256 } from "js-sha3"; import { NETWORKS } from "./consts"; -import { Network } from "./utils"; import { Payload, impossible } from "./vaa"; import { CHAINS, ensureHexPrefix } from "@certusone/wormhole-sdk"; import { TokenBridgeState } from "@certusone/wormhole-sdk/lib/esm/aptos/types"; +import { generateSignAndSubmitEntryFunction } from "@certusone/wormhole-sdk/lib/esm/utils"; import { - generateSignAndSubmitEntryFunction, - tryNativeToUint8Array, -} from "@certusone/wormhole-sdk/lib/esm/utils"; + Chain, + ChainId, + Network, + assertChainId, + contracts, + toChainId, +} from "@wormhole-foundation/sdk-base"; +import { tryNativeToUint8Array } from "./sdk/array"; export async function execute_aptos( payload: Payload, @@ -25,7 +24,7 @@ export async function execute_aptos( contract: string | undefined, rpc: string | undefined ) { - const chain = "aptos"; + const chain: Chain = "Aptos"; // turn VAA bytes into BCS format. That is, add a length prefix const serializer = new BCS.Serializer(); @@ -34,7 +33,7 @@ export async function execute_aptos( switch (payload.module) { case "Core": { - contract = contract ?? CONTRACTS[network][chain]["core"]; + contract = contract ?? contracts.coreBridge.get(network, chain); if (contract === undefined) { throw Error("core bridge contract is undefined"); } @@ -71,7 +70,7 @@ export async function execute_aptos( break; } case "NFTBridge": { - contract = contract ?? CONTRACTS[network][chain]["nft_bridge"]; + contract = contract ?? contracts.nftBridge.get(network, chain); if (contract === undefined) { throw Error("nft bridge contract is undefined"); } @@ -120,7 +119,7 @@ export async function execute_aptos( break; } case "TokenBridge": { - contract = contract ?? CONTRACTS[network][chain]["token_bridge"]; + contract = contract ?? contracts.tokenBridge.get(network, chain); if (contract === undefined) { throw Error("token bridge contract is undefined"); } @@ -180,7 +179,7 @@ export async function execute_aptos( // offline: const tokenAddress = payload.tokenAddress; const tokenChain = payload.tokenChain; - assertChain(tokenChain); + assertChainId(tokenChain); let wrappedContract = deriveWrappedAssetAddress( hex(contract), tokenChain, @@ -208,7 +207,7 @@ export async function execute_aptos( // TODO: only handles wrapped assets for now const tokenAddress = payload.tokenAddress; const tokenChain = payload.tokenChain; - assertChain(tokenChain); + assertChainId(tokenChain); let wrappedContract = deriveWrappedAssetAddress( hex(contract), tokenChain, @@ -243,22 +242,22 @@ export async function execute_aptos( } export async function transferAptos( - dstChain: ChainName, + dstChain: Chain, dstAddress: string, tokenAddress: string, amount: string, network: Network, rpc: string ) { - const { key } = NETWORKS[network].aptos; + const { key } = NETWORKS[network].Aptos; if (!key) { throw new Error("No key for aptos"); } - rpc = rpc ?? NETWORKS[network].aptos.rpc; + rpc = rpc ?? NETWORKS[network].Aptos.rpc; if (!rpc) { throw new Error("No rpc for aptos"); } - const { token_bridge } = CONTRACTS[network].aptos; + const token_bridge = contracts.tokenBridge.get(network, "Aptos"); if (!token_bridge) { throw new Error("token bridge contract is undefined"); } @@ -268,8 +267,8 @@ export async function transferAptos( token_bridge, tokenAddress === "native" ? "0x1::aptos_coin::AptosCoin" : tokenAddress, amount, - dstChain, - tryNativeToUint8Array(dstAddress, dstChain) + toChainId(dstChain), + tryNativeToUint8Array(dstAddress, toChainId(dstChain)) ); const tx = (await generateSignAndSubmitEntryFunction( client, @@ -321,14 +320,14 @@ export function deriveResourceAccount( } export async function callEntryFunc( - network: "MAINNET" | "TESTNET" | "DEVNET", + network: Network, rpc: string | undefined, module: string, func: string, ty_args: BCS.Seq, args: BCS.Seq ): Promise { - let key: string | undefined = NETWORKS[network]["aptos"].key; + let key: string | undefined = NETWORKS[network]["Aptos"].key; if (key === undefined) { throw new Error("No key for aptos"); } @@ -338,7 +337,7 @@ export async function callEntryFunc( if (typeof rpc != "undefined") { client = new AptosClient(rpc); } else { - client = new AptosClient(NETWORKS[network]["aptos"].rpc); + client = new AptosClient(NETWORKS[network]["Aptos"].rpc); } const [{ sequence_number: sequenceNumber }, chainId] = await Promise.all([ client.getAccount(accountFrom.address()), @@ -388,14 +387,13 @@ export async function queryRegistrationsAptos( network: Network, module: "Core" | "NFTBridge" | "TokenBridge" ): Promise { - const n = NETWORKS[network]["aptos"]; + const n = NETWORKS[network]["Aptos"]; const client = new AptosClient(n.rpc); - const contracts = CONTRACTS[network]["aptos"]; let stateObjectId: string | undefined; switch (module) { case "TokenBridge": - stateObjectId = contracts.token_bridge; + stateObjectId = contracts.tokenBridge.get(network, "Aptos"); if (stateObjectId === undefined) { throw Error(`Unknown token bridge contract on ${network} for Aptos`); } diff --git a/clients/js/src/chains/generic/getOriginalAsset.ts b/clients/js/src/chains/generic/getOriginalAsset.ts index 2bd7141ce0..51be57e9a7 100644 --- a/clients/js/src/chains/generic/getOriginalAsset.ts +++ b/clients/js/src/chains/generic/getOriginalAsset.ts @@ -10,25 +10,26 @@ import { getOriginalAssetXpla, } from "@certusone/wormhole-sdk/lib/esm/token_bridge/getOriginalAsset"; import { getOriginalAssetInjective } from "@certusone/wormhole-sdk/lib/esm/token_bridge/injective"; -import { - ChainId, - ChainName, - coalesceChainName, -} from "@certusone/wormhole-sdk/lib/esm/utils/consts"; -import { CONTRACTS } from "../../consts"; -import { Network } from "../../utils"; import { impossible } from "../../vaa"; import { getOriginalAssetSei } from "../sei/sdk"; import { getProviderForChain } from "./provider"; +import { + Chain, + ChainId, + Network, + contracts, + toChain, +} from "@wormhole-foundation/sdk-base"; +import { toChainId } from "@wormhole-foundation/sdk"; export const getOriginalAsset = async ( - chain: ChainId | ChainName, + chain: ChainId | Chain, network: Network, assetAddress: string, rpc?: string ): Promise => { - const chainName = coalesceChainName(chain); - const tokenBridgeAddress = CONTRACTS[network][chainName].token_bridge; + const chainName = toChain(chain); + const tokenBridgeAddress = contracts.tokenBridge.get(network, chainName); if (!tokenBridgeAddress) { throw new Error( `Token bridge address not defined for ${chainName} ${network}` @@ -36,69 +37,67 @@ export const getOriginalAsset = async ( } switch (chainName) { - case "unset": - throw new Error("Chain not set"); - case "solana": { + case "Solana": { const provider = getProviderForChain(chainName, network, { rpc }); return getOriginalAssetSolana(provider, tokenBridgeAddress, assetAddress); } - case "acala": - case "arbitrum": - case "aurora": - case "avalanche": - case "base": - case "bsc": - case "celo": - case "ethereum": - case "fantom": - case "gnosis": - case "karura": - case "klaytn": - case "moonbeam": - case "neon": - case "oasis": - case "optimism": - case "polygon": - // case "rootstock": - case "scroll": - case "mantle": - case "blast": - case "xlayer": - case "linea": - case "berachain": - case "seievm": - case "sepolia": - case "arbitrum_sepolia": - case "base_sepolia": - case "optimism_sepolia": - case "polygon_sepolia": - case "holesky": { + case "Acala": + case "Arbitrum": + case "Aurora": + case "Avalanche": + case "Base": + case "Bsc": + case "Celo": + case "Ethereum": + case "Fantom": + case "Gnosis": + case "Karura": + case "Klaytn": + case "Moonbeam": + case "Neon": + case "Oasis": + case "Optimism": + case "Polygon": + case "Scroll": + case "Mantle": + case "Blast": + case "Xlayer": + case "Linea": + case "Berachain": + case "Snaxchain": + case "Seievm": + case "Sepolia": + case "ArbitrumSepolia": + case "BaseSepolia": + case "OptimismSepolia": + case "PolygonSepolia": + case "Holesky": { const provider = getProviderForChain(chainName, network, { rpc }); return getOriginalAssetEth( tokenBridgeAddress, provider, assetAddress, - chain + toChainId(chain) ); } - case "terra": - case "terra2": { + case "Terra": + case "Terra2": { const provider = getProviderForChain(chainName, network, { rpc }); return getOriginalAssetTerra(provider, assetAddress); } - case "injective": { + case "Injective": { const provider = getProviderForChain(chainName, network, { rpc }); return getOriginalAssetInjective(assetAddress, provider); } - case "sei": { + case "Sei": { const provider = await getProviderForChain(chainName, network, { rpc }); return getOriginalAssetSei(assetAddress, provider); } - case "xpla": { + case "Xpla": { const provider = getProviderForChain(chainName, network, { rpc }); return getOriginalAssetXpla(provider, assetAddress); } - case "algorand": { + case "Algorand": { const provider = getProviderForChain(chainName, network, { rpc }); return getOriginalAssetAlgorand( provider, @@ -106,32 +105,32 @@ export const getOriginalAsset = async ( BigInt(assetAddress) ); } - case "near": { + case "Near": { const provider = await getProviderForChain(chainName, network, { rpc }); return getOriginalAssetNear(provider, tokenBridgeAddress, assetAddress); } - case "aptos": { + case "Aptos": { const provider = getProviderForChain(chainName, network, { rpc }); return getOriginalAssetAptos(provider, tokenBridgeAddress, assetAddress); } - case "sui": { + case "Sui": { const provider = getProviderForChain(chainName, network, { rpc }); return getOriginalAssetSui(provider, tokenBridgeAddress, assetAddress); } - case "btc": - case "osmosis": - case "pythnet": - case "wormchain": - case "cosmoshub": - case "evmos": - case "kujira": - case "neutron": - case "celestia": - case "stargaze": - case "seda": - case "dymension": - case "provenance": - case "rootstock": + case "Btc": + case "Osmosis": + case "Pythnet": + case "Wormchain": + case "Cosmoshub": + case "Evmos": + case "Kujira": + case "Neutron": + case "Celestia": + case "Stargaze": + case "Seda": + case "Dymension": + case "Provenance": + case "Rootstock": throw new Error(`${chainName} not supported`); default: impossible(chainName); diff --git a/clients/js/src/chains/generic/getWrappedAssetAddress.ts b/clients/js/src/chains/generic/getWrappedAssetAddress.ts index 1d752d5802..0a5194def2 100644 --- a/clients/js/src/chains/generic/getWrappedAssetAddress.ts +++ b/clients/js/src/chains/generic/getWrappedAssetAddress.ts @@ -9,31 +9,32 @@ import { getForeignAssetXpla, } from "@certusone/wormhole-sdk/lib/esm/token_bridge/getForeignAsset"; import { getForeignAssetInjective } from "@certusone/wormhole-sdk/lib/esm/token_bridge/injective"; -import { tryNativeToUint8Array } from "@certusone/wormhole-sdk/lib/esm/utils/array"; -import { - ChainId, - ChainName, - coalesceChainName, -} from "@certusone/wormhole-sdk/lib/esm/utils/consts"; -import { CONTRACTS } from "../../consts"; -import { Network } from "../../utils"; import { impossible } from "../../vaa"; import { getForeignAssetSei } from "../sei/sdk"; import { getProviderForChain } from "./provider"; +import { + Chain, + ChainId, + Network, + contracts, + toChain, + toChainId, +} from "@wormhole-foundation/sdk-base"; +import { tryNativeToUint8Array } from "../../sdk/array"; export const getWrappedAssetAddress = async ( - chain: ChainId | ChainName, + chain: ChainId | Chain, network: Network, - originChain: ChainId | ChainName, + originChain: ChainId | Chain, originAddress: string, rpc?: string ): Promise => { - const chainName = coalesceChainName(chain); + const chainName = toChain(chain); const originAddressUint8Array = tryNativeToUint8Array( originAddress, originChain ); - const tokenBridgeAddress = CONTRACTS[network][chainName].token_bridge; + const tokenBridgeAddress = contracts.tokenBridge.get(network, chainName); if (!tokenBridgeAddress) { throw new Error( `Token bridge address not defined for ${chainName} ${network}` @@ -41,143 +42,142 @@ export const getWrappedAssetAddress = async ( } switch (chainName) { - case "unset": - throw new Error("Chain not set"); - case "solana": { + case "Solana": { const provider = getProviderForChain(chainName, network, { rpc }); return getForeignAssetSolana( provider, tokenBridgeAddress, - originChain, + toChainId(originChain), originAddressUint8Array ); } - case "acala": - case "arbitrum": - case "aurora": - case "avalanche": - case "base": - case "bsc": - case "celo": - case "ethereum": - case "fantom": - case "gnosis": - case "karura": - case "klaytn": - case "moonbeam": - case "neon": - case "oasis": - case "optimism": - case "polygon": - // case "rootstock": - case "scroll": - case "mantle": - case "blast": - case "xlayer": - case "linea": - case "berachain": - case "seievm": - case "sepolia": - case "arbitrum_sepolia": - case "base_sepolia": - case "optimism_sepolia": - case "polygon_sepolia": - case "holesky": { + case "Acala": + case "Arbitrum": + case "Aurora": + case "Avalanche": + case "Base": + case "Bsc": + case "Celo": + case "Ethereum": + case "Fantom": + case "Gnosis": + case "Karura": + case "Klaytn": + case "Moonbeam": + case "Neon": + case "Oasis": + case "Optimism": + case "Polygon": + // case "Rootstock": + case "Scroll": + case "Mantle": + case "Blast": + case "Xlayer": + case "Linea": + case "Berachain": + case "Snaxchain": + case "Seievm": + case "Sepolia": + case "ArbitrumSepolia": + case "BaseSepolia": + case "OptimismSepolia": + case "PolygonSepolia": + case "Holesky": { const provider = getProviderForChain(chainName, network, { rpc }); return getForeignAssetEth( tokenBridgeAddress, provider, - originChain, + toChainId(originChain), originAddressUint8Array ); } - case "terra": - case "terra2": { + case "Terra": + case "Terra2": { const provider = getProviderForChain(chainName, network, { rpc }); return getForeignAssetTerra( tokenBridgeAddress, provider, - originChain, + toChainId(originChain), originAddressUint8Array ); } - case "injective": { + case "Injective": { const provider = getProviderForChain(chainName, network, { rpc }); return getForeignAssetInjective( tokenBridgeAddress, provider, - originChain, + toChainId(originChain), originAddressUint8Array ); } - case "sei": { + case "Sei": { const provider = await getProviderForChain(chainName, network, { rpc }); return getForeignAssetSei( tokenBridgeAddress, provider, - originChain, + toChainId(originChain), originAddressUint8Array ); } - case "xpla": { + case "Xpla": { const provider = getProviderForChain(chainName, network, { rpc }); return getForeignAssetXpla( tokenBridgeAddress, provider, - originChain, + toChainId(originChain), originAddressUint8Array ); } - case "algorand": { + case "Algorand": { const provider = getProviderForChain(chainName, network, { rpc }); return getForeignAssetAlgorand( provider, BigInt(tokenBridgeAddress), - originChain, + toChainId(originChain), originAddress ).then((x) => x?.toString() ?? null); } - case "near": { + case "Near": { const provider = await getProviderForChain(chainName, network, { rpc }); return getForeignAssetNear( provider, tokenBridgeAddress, - originChain, + toChainId(originChain), originAddress ); } - case "aptos": { + case "Aptos": { const provider = getProviderForChain(chainName, network, { rpc }); return getForeignAssetAptos( provider, tokenBridgeAddress, - originChain, + toChainId(originChain), originAddress ); } - case "sui": { + case "Sui": { const provider = getProviderForChain(chainName, network, { rpc }); return getForeignAssetSui( provider, tokenBridgeAddress, - originChain, + toChainId(originChain), originAddressUint8Array ); } - case "btc": - case "osmosis": - case "pythnet": - case "wormchain": - case "cosmoshub": - case "evmos": - case "kujira": - case "neutron": - case "celestia": - case "rootstock": - case "stargaze": - case "seda": - case "dymension": - case "provenance": + case "Btc": + case "Osmosis": + case "Pythnet": + case "Wormchain": + case "Cosmoshub": + case "Evmos": + case "Kujira": + case "Neutron": + case "Celestia": + case "Rootstock": + case "Stargaze": + case "Seda": + case "Dymension": + case "Provenance": throw new Error(`${chainName} not supported`); default: impossible(chainName); diff --git a/clients/js/src/chains/generic/provider.ts b/clients/js/src/chains/generic/provider.ts index 1594f5dc8d..610cd7cdc4 100644 --- a/clients/js/src/chains/generic/provider.ts +++ b/clients/js/src/chains/generic/provider.ts @@ -1,20 +1,3 @@ -import { - CHAIN_ID_ALGORAND, - CHAIN_ID_APTOS, - CHAIN_ID_INJECTIVE, - CHAIN_ID_NEAR, - CHAIN_ID_SEI, - CHAIN_ID_SOLANA, - CHAIN_ID_SUI, - CHAIN_ID_TERRA, - CHAIN_ID_TERRA2, - CHAIN_ID_XPLA, - ChainId, - ChainName, - EVMChainId, - EVMChainName, - coalesceChainName, -} from "@certusone/wormhole-sdk/lib/esm/utils/consts"; import { CosmWasmClient } from "@cosmjs/cosmwasm-stargate"; import { Network as InjectiveNetwork, @@ -32,104 +15,104 @@ import { ethers } from "ethers"; import { connect } from "near-api-js"; import { Provider as NearProvider } from "near-api-js/lib/providers"; import { NETWORKS } from "../../consts"; -import { Network } from "../../utils"; import { impossible } from "../../vaa"; +import { + Chain, + Network, + PlatformToChains, +} from "@wormhole-foundation/sdk-base"; -export type ChainProvider = T extends - | "algorand" - | typeof CHAIN_ID_ALGORAND +export type ChainProvider = T extends "Algorand" ? Algodv2 - : T extends "aptos" | typeof CHAIN_ID_APTOS + : T extends "Aptos" ? AptosClient - : T extends EVMChainName | EVMChainId + : T extends PlatformToChains<"Evm"> ? ethers.providers.JsonRpcProvider - : T extends "injective" | typeof CHAIN_ID_INJECTIVE + : T extends "Injective" ? ChainGrpcWasmApi - : T extends "near" | typeof CHAIN_ID_NEAR + : T extends "Near" ? Promise - : T extends - | "terra" - | "terra2" - | typeof CHAIN_ID_TERRA - | typeof CHAIN_ID_TERRA2 + : T extends "Terra" | "Terra2" ? TerraLCDClient - : T extends "sei" | typeof CHAIN_ID_SEI + : T extends "Sei" ? Promise - : T extends "solana" | typeof CHAIN_ID_SOLANA + : T extends "Solana" ? SolanaConnection - : T extends "sui" | typeof CHAIN_ID_SUI + : T extends "Sui" ? JsonRpcProvider - : T extends "xpla" | typeof CHAIN_ID_XPLA + : T extends "Xpla" ? XplaLCDClient : never; -export const getProviderForChain = ( +export const getProviderForChain = ( chain: T, network: Network, options?: { rpc?: string; [opt: string]: any } ): ChainProvider => { - const chainName = coalesceChainName(chain); - const rpc = options?.rpc ?? NETWORKS[network][chainName].rpc; + const rpc = options?.rpc ?? NETWORKS[network][chain].rpc; if (!rpc) { - throw new Error(`No ${network} rpc defined for ${chainName}`); + throw new Error(`No ${network} rpc defined for ${chain}`); } - switch (chainName) { - case "unset": - throw new Error("Chain not set"); - case "solana": + switch (chain) { + case "Solana": return new SolanaConnection(rpc, "confirmed") as ChainProvider; - case "acala": - case "arbitrum": - case "aurora": - case "avalanche": - case "base": - case "bsc": - case "celo": - case "ethereum": - case "fantom": - case "gnosis": - case "karura": - case "klaytn": - case "moonbeam": - case "neon": - case "oasis": - case "optimism": - case "polygon": - // case "rootstock": - case "scroll": - case "mantle": - case "blast": - case "xlayer": - case "linea": - case "berachain": - case "seievm": - case "sepolia": - case "arbitrum_sepolia": - case "base_sepolia": - case "optimism_sepolia": - case "polygon_sepolia": - case "holesky": + case "Acala": + case "Arbitrum": + case "Aurora": + case "Avalanche": + case "Base": + case "Bsc": + case "Celo": + case "Ethereum": + case "Fantom": + case "Gnosis": + case "Karura": + case "Klaytn": + case "Moonbeam": + case "Neon": + case "Oasis": + case "Optimism": + case "Polygon": + // case "Rootstock": + case "Scroll": + case "Mantle": + case "Blast": + case "Xlayer": + case "Linea": + case "Berachain": + case "Snaxchain": + case "Seievm": + case "Sepolia": + case "ArbitrumSepolia": + case "BaseSepolia": + case "OptimismSepolia": + case "PolygonSepolia": + case "Holesky": return new ethers.providers.JsonRpcProvider(rpc) as ChainProvider; - case "terra": - case "terra2": + case "Terra": + case "Terra2": + const chain_id = + chain === "Terra" + ? NETWORKS[network].Terra.chain_id + : NETWORKS[network].Terra2.chain_id; return new TerraLCDClient({ URL: rpc, - chainID: NETWORKS[network][chainName].chain_id, - isClassic: chainName === "terra", + chainID: chain_id, + isClassic: chain === "Terra", }) as ChainProvider; - case "injective": { + case "Injective": { const endpoints = getNetworkEndpoints( - network === "MAINNET" + network === "Mainnet" ? InjectiveNetwork.MainnetK8s : InjectiveNetwork.TestnetK8s ); return new ChainGrpcWasmApi(endpoints.grpc) as ChainProvider; } - case "sei": + case "Sei": return getCosmWasmClient(rpc) as ChainProvider; - case "xpla": { - const chainId = NETWORKS[network].xpla.chain_id; + case "Xpla": { + const chainId = NETWORKS[network].Xpla.chain_id; if (!chainId) { throw new Error(`No ${network} chain ID defined for XPLA.`); } @@ -139,7 +122,7 @@ export const getProviderForChain = ( chainID: chainId, }) as ChainProvider; } - case "algorand": { + case "Algorand": { const { token, port } = { ...{ token: @@ -150,34 +133,34 @@ export const getProviderForChain = ( }; return new Algodv2(token, rpc, port) as ChainProvider; } - case "near": + case "Near": return connect({ - networkId: NETWORKS[network].near.networkId, + networkId: NETWORKS[network].Near.networkId, nodeUrl: rpc, headers: {}, }).then(({ connection }) => connection.provider) as ChainProvider; - case "aptos": + case "Aptos": return new AptosClient(rpc) as ChainProvider; - case "sui": + case "Sui": return new JsonRpcProvider( new SuiConnection({ fullnode: rpc }) ) as ChainProvider; - case "btc": - case "osmosis": - case "pythnet": - case "wormchain": - case "cosmoshub": - case "evmos": - case "kujira": - case "neutron": - case "celestia": - case "stargaze": - case "seda": - case "dymension": - case "provenance": - case "rootstock": - throw new Error(`${chainName} not supported`); + case "Btc": + case "Osmosis": + case "Pythnet": + case "Wormchain": + case "Cosmoshub": + case "Evmos": + case "Kujira": + case "Neutron": + case "Celestia": + case "Stargaze": + case "Seda": + case "Dymension": + case "Provenance": + case "Rootstock": + throw new Error(`${chain} not supported`); default: - impossible(chainName); + impossible(chain); } }; diff --git a/clients/js/src/chains/sei/registrations.ts b/clients/js/src/chains/sei/registrations.ts index 124da327a7..0abfa9e506 100644 --- a/clients/js/src/chains/sei/registrations.ts +++ b/clients/js/src/chains/sei/registrations.ts @@ -1,28 +1,22 @@ import { getCosmWasmClient } from "@sei-js/core"; -import { - ChainName, - CHAINS, - CONTRACTS, -} from "@certusone/wormhole-sdk/lib/esm/utils/consts"; import { NETWORKS } from "../../consts/networks"; -import { Network } from "../../utils"; +import { Chain, Network, chains, contracts } from "@wormhole-foundation/sdk"; export async function queryRegistrationsSei( network: Network, module: "Core" | "NFTBridge" | "TokenBridge" ): Promise { - const chain = "sei" as ChainName; + const chain: Chain = "Sei"; const n = NETWORKS[network][chain]; - const contracts = CONTRACTS[network][chain]; let target_contract: string | undefined; switch (module) { case "TokenBridge": - target_contract = contracts.token_bridge; + target_contract = contracts.tokenBridge.get(network, chain); break; case "NFTBridge": - target_contract = contracts.nft_bridge; + target_contract = contracts.nftBridge.get(network, chain); break; default: throw new Error(`Invalid module: ${module}`); @@ -41,14 +35,14 @@ export async function queryRegistrationsSei( // Query the bridge registration for all the chains in parallel. const registrations = await Promise.all( - Object.entries(CHAINS) - .filter(([c_name, _]) => c_name !== chain && c_name !== "unset") - .map(async ([c_name, c_id]) => [ + chains + .filter((c_name) => c_name !== chain) + .map(async (c_name) => [ c_name, await (async () => { let query_msg = { chain_registration: { - chain: c_id, + chain: c_name, }, }; diff --git a/clients/js/src/chains/sei/sdk.ts b/clients/js/src/chains/sei/sdk.ts index 43729a59de..0a2fc2e724 100644 --- a/clients/js/src/chains/sei/sdk.ts +++ b/clients/js/src/chains/sei/sdk.ts @@ -5,13 +5,13 @@ import { } from "@certusone/wormhole-sdk/lib/esm/cosmwasm/address"; import { WormholeWrappedInfo } from "@certusone/wormhole-sdk/lib/esm/token_bridge/getOriginalAsset"; import { hexToUint8Array } from "@certusone/wormhole-sdk/lib/esm/utils/array"; +import { CosmWasmClient } from "@cosmjs/cosmwasm-stargate"; import { - CHAIN_ID_SEI, + Chain, ChainId, - ChainName, - coalesceChainId, -} from "@certusone/wormhole-sdk/lib/esm/utils/consts"; -import { CosmWasmClient } from "@cosmjs/cosmwasm-stargate"; + chainToChainId, + toChainId, +} from "@wormhole-foundation/sdk"; import { fromUint8Array } from "js-base64"; /** @@ -25,7 +25,7 @@ import { fromUint8Array } from "js-base64"; export async function getForeignAssetSei( tokenBridgeAddress: string, cosmwasmClient: CosmWasmClient, - originChain: ChainId | ChainName, + originChain: ChainId | Chain, originAsset: Uint8Array ): Promise { try { @@ -33,7 +33,7 @@ export async function getForeignAssetSei( tokenBridgeAddress, { wrapped_registry: { - chain: coalesceChainId(originChain), + chain: toChainId(originChain), address: fromUint8Array(originAsset), }, } @@ -74,7 +74,7 @@ export async function getOriginalAssetSei( wrappedAddress: string, client: CosmWasmClient ): Promise { - const chainId = CHAIN_ID_SEI; + const chainId = chainToChainId("Sei"); if (isNativeCosmWasmDenom(chainId, wrappedAddress)) { return { isWrapped: false, diff --git a/clients/js/src/chains/sei/submit.ts b/clients/js/src/chains/sei/submit.ts index 676a401304..cf99549dc3 100644 --- a/clients/js/src/chains/sei/submit.ts +++ b/clients/js/src/chains/sei/submit.ts @@ -5,10 +5,9 @@ import { toUtf8 } from "@cosmjs/encoding"; import { MsgExecuteContract } from "cosmjs-types/cosmwasm/wasm/v1/tx"; import { getSigningCosmWasmClient } from "@sei-js/core"; -import { CONTRACTS } from "@certusone/wormhole-sdk/lib/esm/utils/consts"; import { NETWORKS } from "../../consts"; -import { Network } from "../../utils"; import { impossible, Payload } from "../../vaa"; +import { contracts, Network } from "@wormhole-foundation/sdk"; export const submit = async ( payload: Payload, @@ -16,8 +15,7 @@ export const submit = async ( network: Network, rpc?: string ) => { - const contracts = CONTRACTS[network].sei; - const networkInfo = NETWORKS[network].sei; + const networkInfo = NETWORKS[network].Sei; rpc = rpc || networkInfo.rpc; const key = networkInfo.key; if (!key) { @@ -32,12 +30,12 @@ export const submit = async ( let execute_msg: object; switch (payload.module) { case "Core": { - if (!contracts.core) { + const core = contracts.coreBridge.get(network, "Sei"); + if (!core) { throw new Error(`Core bridge address not defined for Sei ${network}`); } - target_contract = contracts.core; - // sigh... + target_contract = core; execute_msg = { submit_v_a_a: { vaa: vaa.toString("base64"), @@ -59,14 +57,12 @@ export const submit = async ( break; } case "NFTBridge": { - if (!contracts.nft_bridge) { - // NOTE: this code can safely be removed once the sei NFT bridge is - // released, but it's fine for it to stay, as the condition will just be - // skipped once 'contracts.nft_bridge' is defined + const nft = contracts.nftBridge.get(network, "Sei"); + if (!nft) { throw new Error("NFT bridge not supported yet for Sei"); } - target_contract = contracts.nft_bridge; + target_contract = nft; execute_msg = { submit_vaa: { data: vaa.toString("base64"), @@ -91,11 +87,12 @@ export const submit = async ( break; } case "TokenBridge": { - if (!contracts.token_bridge) { + const tb = contracts.tokenBridge.get(network, "Sei"); + if (!tb) { throw new Error(`Token bridge address not defined for Sei ${network}`); } - target_contract = contracts.token_bridge; + target_contract = tb; execute_msg = { submit_vaa: { data: vaa.toString("base64"), diff --git a/clients/js/src/chains/sui/buildCoin.ts b/clients/js/src/chains/sui/buildCoin.ts index bc74e46b8f..6e5adb82f2 100644 --- a/clients/js/src/chains/sui/buildCoin.ts +++ b/clients/js/src/chains/sui/buildCoin.ts @@ -1,6 +1,5 @@ import { JsonRpcProvider } from "@mysten/sui.js"; import fs from "fs"; -import { Network } from "../../utils"; import { MoveToml } from "./MoveToml"; import { buildPackage, @@ -12,6 +11,7 @@ import { } from "./publish"; import { SuiBuildOutput } from "./types"; import { getPackageId } from "./utils"; +import { Network } from "@wormhole-foundation/sdk"; export const buildCoin = async ( provider: JsonRpcProvider, @@ -93,8 +93,8 @@ const setupCoin = ( for (const dependencyPath of paths) { // todo(aki): the 4th param is a hack that makes this work, but doesn't // necessarily make sense. We should probably revisit this later. - setupMainToml(dependencyPath, network, false, network !== "DEVNET"); - if (network === "DEVNET") { + setupMainToml(dependencyPath, network, false, network !== "Devnet"); + if (network === "Devnet") { const dependencyToml = new MoveToml(getDefaultTomlPath(dependencyPath)); switch (getPackageNameFromPath(dependencyPath)) { case "wormhole": diff --git a/clients/js/src/chains/sui/publish.ts b/clients/js/src/chains/sui/publish.ts index 6f5595550a..4976b46139 100644 --- a/clients/js/src/chains/sui/publish.ts +++ b/clients/js/src/chains/sui/publish.ts @@ -8,10 +8,10 @@ import { import { execSync } from "child_process"; import fs from "fs"; import { resolve } from "path"; -import { Network } from "../../utils"; import { MoveToml } from "./MoveToml"; import { SuiBuildOutput } from "./types"; import { executeTransactionBlock } from "./utils"; +import { Network } from "@wormhole-foundation/sdk"; export const buildPackage = (packagePath: string): SuiBuildOutput => { if (!fs.existsSync(packagePath)) { @@ -76,7 +76,7 @@ export const publishPackage = async ( // Publish contracts const tx = new TransactionBlock(); - if (network === "DEVNET") { + if (network === "Devnet") { // Avoid Error checking transaction input objects: GasBudgetTooHigh { gas_budget: 50000000000, max_budget: 10000000000 } tx.setGasBudget(10000000000); } @@ -186,7 +186,7 @@ export const setupMainToml = ( // don't have to manually reset them repeatedly during local development. // This is not recursive because we assume that packages are deployed bottom // up. - if (!isDependency && network === "DEVNET") { + if (!isDependency && network === "Devnet") { resetNetworkToml(packagePath, network); } diff --git a/clients/js/src/chains/sui/registrations.ts b/clients/js/src/chains/sui/registrations.ts index 500c206aed..ec2b275998 100644 --- a/clients/js/src/chains/sui/registrations.ts +++ b/clients/js/src/chains/sui/registrations.ts @@ -1,25 +1,24 @@ import { getObjectFields } from "@certusone/wormhole-sdk/lib/esm/sui"; -import { - CHAIN_ID_TO_NAME, - CONTRACTS, -} from "@certusone/wormhole-sdk/lib/esm/utils/consts"; import { NETWORKS } from "../../consts/networks"; -import { Network } from "../../utils"; import { getProvider } from "./utils"; -import { ChainId } from "@certusone/wormhole-sdk"; +import { + ChainId, + Network, + chainIdToChain, + contracts, +} from "@wormhole-foundation/sdk"; export async function queryRegistrationsSui( network: Network, module: "Core" | "NFTBridge" | "TokenBridge" ): Promise { - const n = NETWORKS[network]["sui"]; + const n = NETWORKS[network]["Sui"]; const provider = getProvider(network, n.rpc); - const contracts = CONTRACTS[network]["sui"]; let state_object_id: string; switch (module) { case "TokenBridge": - state_object_id = contracts.token_bridge; + state_object_id = contracts.tokenBridge(network, "Sui"); if (state_object_id === undefined) { throw Error(`Unknown token bridge contract on ${network} for Sui`); } @@ -49,7 +48,7 @@ export async function queryRegistrationsSui( const emitterAddress: Uint8Array = emitter.data?.content?.fields.value.fields.value.fields.data; const emitterAddrStr = Buffer.from(emitterAddress).toString("hex"); - results[CHAIN_ID_TO_NAME[chainId]] = emitterAddrStr; + results[chainIdToChain(chainId)] = emitterAddrStr; } } diff --git a/clients/js/src/chains/sui/submit.ts b/clients/js/src/chains/sui/submit.ts index efcd6cc19c..725df8b7a8 100644 --- a/clients/js/src/chains/sui/submit.ts +++ b/clients/js/src/chains/sui/submit.ts @@ -6,16 +6,7 @@ import { createWrappedOnSui, createWrappedOnSuiPrepare, } from "@certusone/wormhole-sdk/lib/esm/token_bridge/createWrapped"; -import { getForeignAssetSui } from "@certusone/wormhole-sdk/lib/esm/token_bridge/getForeignAsset"; -import { - CHAIN_ID_SUI, - CHAIN_ID_TO_NAME, - CONTRACTS, - assertChain, -} from "@certusone/wormhole-sdk/lib/esm/utils/consts"; -import { parseAttestMetaVaa } from "@certusone/wormhole-sdk/lib/esm/vaa/tokenBridge"; import { SUI_CLOCK_OBJECT_ID, TransactionBlock } from "@mysten/sui.js"; -import { Network } from "../../utils"; import { Payload, impossible } from "../../vaa"; import { assertSuccess, @@ -28,6 +19,15 @@ import { registerChain, setMaxGasBudgetDevnet, } from "./utils"; +import { + Chain, + Network, + VAA, + assertChain, + contracts, + deserialize, +} from "@wormhole-foundation/sdk"; +import { getForeignAssetSui } from "../../sdk/sui"; export const submit = async ( payload: Payload, @@ -39,13 +39,13 @@ export const submit = async ( const consoleWarnTemp = console.warn; console.warn = () => {}; - const chain = CHAIN_ID_TO_NAME[CHAIN_ID_SUI]; + const chain: Chain = "Sui"; const provider = getProvider(network, rpc); const signer = getSigner(provider, network, privateKey); switch (payload.module) { case "Core": { - const coreObjectId = CONTRACTS[network][chain].core; + const coreObjectId = contracts.coreBridge.get(network, chain); if (!coreObjectId) { throw Error("Core bridge object ID is undefined"); } @@ -103,12 +103,15 @@ export const submit = async ( throw new Error("NFT bridge not supported on Sui"); } case "TokenBridge": { - const coreBridgeStateObjectId = CONTRACTS[network][chain].core; + const coreBridgeStateObjectId = contracts.coreBridge.get(network, chain); if (!coreBridgeStateObjectId) { throw Error("Core bridge object ID is undefined"); } - const tokenBridgeStateObjectId = CONTRACTS[network][chain].token_bridge; + const tokenBridgeStateObjectId = contracts.tokenBridge.get( + network, + chain + ); if (!tokenBridgeStateObjectId) { throw Error("Token bridge object ID is undefined"); } @@ -116,13 +119,19 @@ export const submit = async ( switch (payload.type) { case "AttestMeta": { // Test attest VAA: 01000000000100d87023087588d8a482d6082c57f3c93649c9a61a98848fc3a0b271f4041394ff7b28abefc8e5e19b83f45243d073d677e122e41425c2dbae3eb5ae1c7c0ac0ee01000000c056a8000000020000000000000000000000000290fb167208af455bb137780163b7b7a9a10c16000000000000000001020000000000000000000000002d8be6bf0baa74e0a907016679cae9190e80dd0a000212544b4e0000000000000000000000000000000000000000000000000000000000457468657265756d205465737420546f6b656e00000000000000000000000000 - const { tokenChain, tokenAddress } = parseAttestMetaVaa(vaa); + const parsedAttest: VAA<"TokenBridge:AttestMeta"> = deserialize( + "TokenBridge:AttestMeta", + vaa + ); + const tokenChain = parsedAttest.payload.token.chain; assertChain(tokenChain); + const tokenAddress = parsedAttest.payload.token.address; + const decimals = parsedAttest.payload.decimals; const coinType = await getForeignAssetSui( provider, tokenBridgeStateObjectId, tokenChain, - tokenAddress + tokenAddress.toUint8Array() ); if (coinType) { // Coin already exists, so we update it @@ -135,7 +144,7 @@ export const submit = async ( provider, coreBridgeStateObjectId, tokenBridgeStateObjectId, - parseAttestMetaVaa(vaa).decimals, + decimals, await signer.getAddress() ); setMaxGasBudgetDevnet(network, prepareTx); @@ -153,7 +162,7 @@ export const submit = async ( console.log(` Published to ${coinPackageId}`); console.log(` Type ${getWrappedCoinType(coinPackageId)}`); - if (!rpc && network !== "DEVNET") { + if (!rpc && network !== "Devnet") { // Wait for wrapped asset creation to be propagated to other // nodes in case this complete registration call is load balanced // to another node. diff --git a/clients/js/src/chains/sui/transfer.ts b/clients/js/src/chains/sui/transfer.ts index 848aafc9b0..d66615658a 100644 --- a/clients/js/src/chains/sui/transfer.ts +++ b/clients/js/src/chains/sui/transfer.ts @@ -6,24 +6,26 @@ import { setMaxGasBudgetDevnet, } from "./utils"; import { - CONTRACTS, - ChainName, + Chain, Network, - tryNativeToUint8Array, -} from "@certusone/wormhole-sdk/lib/esm/utils"; + chainToChainId, + contracts, +} from "@wormhole-foundation/sdk-base"; +import { tryNativeToUint8Array } from "../../sdk/array"; export async function transferSui( - dstChain: ChainName, + dstChain: Chain, dstAddress: string, tokenAddress: string, amount: string, network: Network, rpc: string ) { - const { core, token_bridge } = CONTRACTS[network]["sui"]; + const core = contracts.coreBridge(network, "Sui"); if (!core) { throw Error("Core bridge object ID is undefined"); } + const token_bridge = contracts.tokenBridge.get(network, "Sui"); if (!token_bridge) { throw new Error("Token bridge object ID is undefined"); } @@ -44,8 +46,8 @@ export async function transferSui( coins, coinType, BigInt(amount), - dstChain, - tryNativeToUint8Array(dstAddress, dstChain) + chainToChainId(dstChain), + tryNativeToUint8Array(dstAddress, chainToChainId(dstChain)) ); setMaxGasBudgetDevnet(network, tx); const result = await executeTransactionBlock(signer, tx); diff --git a/clients/js/src/chains/sui/utils.ts b/clients/js/src/chains/sui/utils.ts index bd4a9ca52e..79f533873d 100644 --- a/clients/js/src/chains/sui/utils.ts +++ b/clients/js/src/chains/sui/utils.ts @@ -13,9 +13,10 @@ import { } from "@mysten/sui.js"; import { DynamicFieldPage } from "@mysten/sui.js/dist/types/dynamic_fields"; import { NETWORKS } from "../../consts"; -import { Network } from "../../utils"; import { Payload, VAA, parse, serialiseVAA } from "../../vaa"; import { SuiRpcValidationError } from "./error"; +import { Network } from "@wormhole-foundation/sdk"; +import { isValidSuiAddress } from "../../sdk/sui"; const UPGRADE_CAP_TYPE = "0x2::package::UpgradeCap"; @@ -207,7 +208,7 @@ export const getProvider = ( throw new Error("Must provide network or RPC to initialize provider"); } - rpc = rpc || NETWORKS[network!].sui.rpc; + rpc = rpc || NETWORKS[network!].Sui.rpc; if (!rpc) { throw new Error(`No default RPC found for Sui ${network}`); } @@ -235,7 +236,7 @@ export const getSigner = ( customPrivateKey?: string ): RawSigner => { const privateKey: string | undefined = - customPrivateKey || NETWORKS[network].sui.key; + customPrivateKey || NETWORKS[network].Sui.key; if (!privateKey) { throw new Error(`No private key found for Sui ${network}`); } @@ -323,9 +324,6 @@ export const isSuiPublishEvent = < event: T ): event is K => event?.type === "published"; -export const isValidSuiAddress = (objectId: string): boolean => - /^(0x)?[0-9a-f]{1,64}$/.test(objectId); - // todo(aki): this needs to correctly handle types such as // 0x2::dynamic_field::Field<0x3c6d386861470e6f9cb35f3c91f69e6c1f1737bd5d217ca06a15f582e1dc1ce3::state::MigrationControl, bool> export const normalizeSuiType = (type: string): string => { @@ -345,7 +343,7 @@ export const registerChain = async ( tokenBridgeStateObjectId: string, transactionBlock?: TransactionBlock ): Promise => { - if (network === "DEVNET") { + if (network === "Devnet") { // Modify the VAA to only have 1 guardian signature // TODO: remove this when we can deploy the devnet core contract // deterministically with multiple guardians in the initial guardian set @@ -418,7 +416,7 @@ export const setMaxGasBudgetDevnet = ( network: Network, tx: TransactionBlock ) => { - if (network === "DEVNET") { + if (network === "Devnet") { // Avoid Error checking transaction input objects: GasBudgetTooHigh { gas_budget: 50000000000, max_budget: 10000000000 } tx.setGasBudget(10000000000); } diff --git a/clients/js/src/cli.test.ts b/clients/js/src/cli.test.ts new file mode 100644 index 0000000000..92e03e9841 --- /dev/null +++ b/clients/js/src/cli.test.ts @@ -0,0 +1,1658 @@ +const { exec } = require("child_process"); + +describe("Info Tests", () => { + it("worm info contract mainnet ethereum TokenBridge", (done) => { + exec( + "node build/main.js info contract mainnet ethereum TokenBridge", + (error: any, stdout: string, stderr: any) => { + if (error) { + done(`Execution error: ${error}`); + return; + } + + const expectedOutput = "0x3ee18B2214AFF97000D974cf647E7C347E8fa585"; + + expect(stdout.trim()).toBe(expectedOutput.trim()); + done(); + } + ); + }); + + it("worm info contract mainnet Bsc NFTBridge", (done) => { + exec( + "node build/main.js info contract mainnet Bsc NFTBridge", + (error: any, stdout: string, stderr: any) => { + if (error) { + done(`Execution error: ${error}`); + return; + } + + const expectedOutput = "0x5a58505a96D1dbf8dF91cB21B54419FC36e93fdE"; + + expect(stdout.trim()).toBe(expectedOutput.trim()); + done(); + } + ); + }); + + it("worm info rpc mainnet Bsc", (done) => { + exec( + "node build/main.js info rpc mainnet Bsc", + (error: any, stdout: string, stderr: any) => { + if (error) { + done(`Execution error: ${error}`); + return; + } + + const expectedOutput = "https://bsc-dataseed.binance.org/"; + + expect(stdout.trim()).toBe(expectedOutput.trim()); + done(); + } + ); + }); + + it("worm info wrapped ethereum 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 sui", (done) => { + exec( + "node build/main.js info wrapped ethereum 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 sui", + (error: any, stdout: string, stderr: any) => { + if (error) { + done(`Execution error: ${error}`); + return; + } + + const expectedOutput = + "0x5d4b302506645c37ff133b98c4b50a5ae14841659738d6d733d59d0d217a93bf::coin::COIN"; + + expect(stdout.trim()).toBe(expectedOutput.trim()); + done(); + } + ); + }); + + it("worm info origin sui 0x5d4b302506645c37ff133b98c4b50a5ae14841659738d6d733d59d0d217a93bf::coin::COIN", (done) => { + exec( + "node build/main.js info origin sui 0x5d4b302506645c37ff133b98c4b50a5ae14841659738d6d733d59d0d217a93bf::coin::COIN", + (error: any, stdout: string, stderr: any) => { + if (error) { + return done(new Error(`Execution error: ${error}`)); + } + + try { + // Clean up the output to make it valid JSON + const cleanedOutput = stdout + .replace(/'/g, '"') // Replace single quotes with double quotes + .replace(/(\w+):/g, '"$1":') // Add double quotes around property names + .replace(/\x1b\[[0-9;]*m/g, "") // Remove ANSI color codes + .trim(); + + const outputObject = JSON.parse(cleanedOutput); + + const expectedOutput = { + isWrapped: true, + chainId: 2, + assetAddress: "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", + }; + + expect(outputObject.isWrapped).toBe(expectedOutput.isWrapped); + expect(outputObject.chainId).toBe(expectedOutput.chainId); + expect(outputObject.assetAddress).toBe(expectedOutput.assetAddress); + + done(); + } catch (e) { + done(`JSON parse error: ${e}`); + } + } + ); + }); + + it("worm info registrations mainnet ethereum TokenBridge -v", (done) => { + exec( + "node build/main.js info registrations mainnet ethereum TokenBridge -v", + (error: any, stdout: string, stderr: any) => { + try { + if (error) { + done(`Execution error: ${error}`); + return; + } + + // Use a regular expression to extract the relevant part of stdout + const regex = /succeeded|Mismatches/; + const match = stdout.match(regex); + if (!match) { + done("The command failed to execute successfully."); + } + + done(); + } catch (e) { + console.log("caught a weird error", e); + done(e); + } + } + ); + }); + + it("worm evm info -c Bsc -n mainnet -m TokenBridge", (done) => { + exec( + "node build/main.js evm info -c Bsc -n mainnet -m TokenBridge", + (error: any, stdout: string, stderr: any) => { + if (error) { + done(`Execution error: ${error}`); + return; + } + + try { + const outputObject = JSON.parse(stdout); + + const expectedOutput = { + address: "0xB6F6D86a8f9879A9c87f643768d9efc38c1Da6E7", + wormhole: "0x98f3c9e6E3fAce36bAAd05FE09d375Ef1464288B", + implementation: "0x621199f6beB2ba6fbD962E8A52A320EA4F6D4aA3", + isInitialized: true, + tokenImplementation: "0x7f8C5e730121657E17E452c5a1bA3fA1eF96f22a", + chainId: 4, + finality: 15, + evmChainId: "56", + isFork: false, + governanceChainId: 1, + governanceContract: + "0x0000000000000000000000000000000000000000000000000000000000000004", + WETH: "0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c", + registrations: { + Solana: + "0xec7372995d5cc8732397fb0ad35c0121e0eaa90d26f828a534cab54391b3a4f5", + Ethereum: + "0x0000000000000000000000003ee18b2214aff97000d974cf647e7c347e8fa585", + Terra: + "0x0000000000000000000000007cf7b764e38a0a5e967972c1df77d432510564e2", + Polygon: + "0x0000000000000000000000005a58505a96d1dbf8df91cb21b54419fc36e93fde", + Avalanche: + "0x0000000000000000000000000e082f06ff657d94310cb8ce8b0d9a04541d8052", + Oasis: + "0x0000000000000000000000005848c791e09901b40a9ef749f2a6735b418d7564", + Algorand: + "0x67e93fa6c8ac5c819990aa7340c0c16b508abb1178be9b30d024b8ac25193d45", + Aurora: + "0x00000000000000000000000051b5123a7b0f9b2ba265f9c4c8de7d78d52f510f", + Fantom: + "0x0000000000000000000000007c9fc5741288cdfdd83ceb07f3ea7e22618d79d2", + Karura: + "0x000000000000000000000000ae9d7fe007b3327aa64a32824aaac52c42a6e624", + Acala: + "0x000000000000000000000000ae9d7fe007b3327aa64a32824aaac52c42a6e624", + Klaytn: + "0x0000000000000000000000005b08ac39eaed75c0439fc750d9fe7e1f9dd0193f", + Celo: "0x000000000000000000000000796dff6d74f3e27060b71255fe517bfb23c93eed", + Near: "0x148410499d3fcda4dcfd68a1ebfcdddda16ab28326448d4aae4d2f0465cdfcb7", + Moonbeam: + "0x000000000000000000000000b1731c586ca89a23809861c6103f0b96b3f57d92", + Terra2: + "0xa463ad028fb79679cfc8ce1efba35ac0e77b35080a1abe9bebe83461f176b0a3", + Injective: + "0x00000000000000000000000045dbea4617971d93188eda21530bc6503d153313", + Sui: "0xccceeb29348f71bdd22ffef43a2a19c1f5b5e17c5cca5411529120182672ade5", + Aptos: + "0x0000000000000000000000000000000000000000000000000000000000000001", + Arbitrum: + "0x0000000000000000000000000b2402144bb366a632d14b83f244d2e0e21bd39c", + Optimism: + "0x0000000000000000000000001d68124e65fafc907325e3edbf8c4d84499daa8b", + Gnosis: + "0x0000000000000000000000000000000000000000000000000000000000000000", + Pythnet: + "0x0000000000000000000000000000000000000000000000000000000000000000", + Xpla: "0x8f9cf727175353b17a5f574270e370776123d90fd74956ae4277962b4fdee24c", + Base: "0x0000000000000000000000008d2de8d2f73f1f4cab472ac9a881c9b123c79627", + Sei: "0x86c5fd957e2db8389553e1728f9c27964b22a8154091ccba54d75f4b10c61f5e", + Rootstock: + "0x0000000000000000000000000000000000000000000000000000000000000000", + Scroll: + "0x00000000000000000000000024850c6f61c438823f01b7a3bf2b89b72174fa9d", + Mantle: + "0x00000000000000000000000024850c6f61c438823f01b7a3bf2b89b72174fa9d", + Blast: + "0x00000000000000000000000024850c6f61c438823f01b7a3bf2b89b72174fa9d", + Xlayer: + "0x0000000000000000000000005537857664b0f9efe38c9f320f75fef23234d904", + }, + }; + + expect(outputObject.address).toBe(expectedOutput.address); + expect(outputObject.wormhole).toBe(expectedOutput.wormhole); + expect(outputObject.implementation).toBe( + expectedOutput.implementation + ); + expect(outputObject.isInitialized).toBe(expectedOutput.isInitialized); + expect(outputObject.tokenImplementation).toBe( + expectedOutput.tokenImplementation + ); + expect(outputObject.chainId).toBe(expectedOutput.chainId); + expect(outputObject.finality).toBe(expectedOutput.finality); + expect(outputObject.evmChainId).toBe(expectedOutput.evmChainId); + expect(outputObject.isFork).toBe(expectedOutput.isFork); + expect(outputObject.governanceChainId).toBe( + expectedOutput.governanceChainId + ); + expect(outputObject.governanceContract).toBe( + expectedOutput.governanceContract + ); + expect(outputObject.WETH).toBe(expectedOutput.WETH); + expect(outputObject.registrations).toMatchObject( + expectedOutput.registrations + ); + + done(); + } catch (e) { + done(`JSON parse error: ${e}`); + } + } + ); + }); +}); + +describe("EVM Tests", () => { + it("worm evm address-from-secret 0xcfb12303a19cde580bb4dd771639b0d26bc68353645571a8cff516ab2ee113a0", (done) => { + exec( + "node build/main.js evm address-from-secret 0xcfb12303a19cde580bb4dd771639b0d26bc68353645571a8cff516ab2ee113a0", + (error: any, stdout: string, stderr: any) => { + if (error) { + done(`Execution error: ${error}`); + return; + } + + const expectedOutput = "0xbeFA429d57cD18b7F8A4d91A2da9AB4AF05d0FBe"; + + expect(stdout.trim()).toBe(expectedOutput.trim()); + done(); + } + ); + }); +}); + +describe("Generate Tests", () => { + it("worm generate registration", (done) => { + exec( + "node build/main.js generate registration --module NFTBridge --chain bsc --contract-address 0x706abc4E45D419950511e474C7B9Ed348A4a716c --guardian-secret cfb12303a19cde580bb4dd771639b0d26bc68353645571a8cff516ab2ee113a0", + (error: any, stdout: string, stderr: any) => { + if (error) { + return done(new Error(`Execution error during generation: ${error}`)); + } + + const vaa = stdout.trim(); + expect(vaa).not.toBeNull(); + + exec( + `node build/main.js parse ${vaa}`, + (error: any, stdout: string, stderr: any) => { + if (error) { + return done(new Error(`Execution error during parse: ${error}`)); + } + try { + const outputObject = JSON.parse(stdout); + + const expectedOutput = { + version: 1, + guardianSetIndex: 0, + signatures: [ + { + guardianSetIndex: 0, + signature: + "94f4939b482834dbdd5fc4391aeb42c3cedc26a24f057d01bdebfbafac33db98712c1d8ae8f4474108cd725f2371705e2de78a3ee8267d18623a6205f47b4be100", + }, + ], + timestamp: 1, + nonce: 1, + emitterChain: 1, + emitterAddress: + "0x0000000000000000000000000000000000000000000000000000000000000004", + sequence: "8577293", + consistencyLevel: 0, + payload: { + module: "NFTBridge", + type: "RegisterChain", + chain: 0, + emitterChain: 4, + emitterAddress: + "0x000000000000000000000000706abc4e45d419950511e474c7b9ed348a4a716c", + }, + digest: + "0x662f2eef2c8522846c34d312b3e48219d73b7d0af08f16bae95a6e4d8363c8ce", + }; + + // Can't check the signature, sequence, or digest because they are different each time. + expect(outputObject.version).toBe(expectedOutput.version); + expect(outputObject.guardianSetIndex).toBe( + expectedOutput.guardianSetIndex + ); + expect(outputObject.timestamp).toBe(expectedOutput.timestamp); + expect(outputObject.nonce).toBe(expectedOutput.nonce); + expect(outputObject.emitterChain).toBe( + expectedOutput.emitterChain + ); + expect(outputObject.emitterAddress).toBe( + expectedOutput.emitterAddress + ); + expect(outputObject.consistencyLevel).toBe( + expectedOutput.consistencyLevel + ); + expect(outputObject.payload).toMatchObject( + expectedOutput.payload + ); + done(); + } catch (e) { + done(`JSON parse error: ${e}`); + return; + } + } + ); + } + ); + }); + + it("worm generate attestation", (done) => { + exec( + "node build/main.js generate attestation --emitter-chain Ethereum --emitter-address 11111111111111111111111111111115 --chain Ethereum --token-address 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 --decimals 6 --symbol USDC --name USDC --guardian-secret cfb12303a19cde580bb4dd771639b0d26bc68353645571a8cff516ab2ee113a0", + (error: any, stdout: string, stderr: any) => { + if (error) { + return done(new Error(`Execution error during generation: ${error}`)); + } + + const vaa = stdout.trim(); + expect(vaa).not.toBeNull(); + + exec( + `node build/main.js parse ${vaa}`, + (error: any, stdout: string, stderr: any) => { + if (error) { + return done(new Error(`Execution error during parse: ${error}`)); + } + try { + const outputObject = JSON.parse(stdout); + + const expectedOutput = { + version: 1, + guardianSetIndex: 0, + signatures: [ + { + guardianSetIndex: 0, + signature: + "342fc4c226d53b85d3ac15f88bca0585b0e4990f0d32a1ef69f1437bb0040d4b7c3d07f388b7c95646eaaaf5343e9af5fee5abc87e98b0c46334cd935d0c423200", + }, + ], + timestamp: 1, + nonce: 1, + emitterChain: 2, + emitterAddress: + "0x0000000000000000000000000000000011111111111111111111111111111115", + sequence: "93992518", + consistencyLevel: 0, + payload: { + module: "TokenBridge", + chain: 0, + type: "AttestMeta", + tokenAddress: + "0x000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", + tokenChain: 2, + decimals: 6, + symbol: + "USDC\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000", + name: "USDC\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000", + }, + digest: + "0x898a01e89a1757d9cdefa63af43f7b3cce0883a2365f6c2c4103b4474e741a29", + }; + + // Can't check the signature, sequence, or digest because they are different each time. + expect(outputObject.version).toBe(expectedOutput.version); + expect(outputObject.guardianSetIndex).toBe( + expectedOutput.guardianSetIndex + ); + expect(outputObject.timestamp).toBe(expectedOutput.timestamp); + expect(outputObject.nonce).toBe(expectedOutput.nonce); + expect(outputObject.emitterChain).toBe( + expectedOutput.emitterChain + ); + expect(outputObject.emitterAddress).toBe( + expectedOutput.emitterAddress + ); + expect(outputObject.consistencyLevel).toBe( + expectedOutput.consistencyLevel + ); + expect(outputObject.payload).toMatchObject( + expectedOutput.payload + ); + done(); + } catch (e) { + done(`JSON parse error: ${e}`); + return; + } + } + ); + } + ); + }); +}); + +describe("Parse Tests", () => { + it("worm parse base64-1", (done) => { + exec( + "node build/main.js parse AQAAAAENAnOvPC9VmJBBsAaKTq66j4glEGAhmW3mFDlUwG/Ez61cPxq6bKlRGI6WLxElHCXKmGKGheL8K2XsYJRQz8TmURIAAwDGLrDeerPQKJIPGOEN9/KgTQDriLiUCie7zozmbGdSaILJbMUN04G9v/MLtluTR8rf8JZ2cpBDr2DWUqC5BjAABPB7D+bKsYvnroJ/4RyomS/wtaKjLWW+lYIxv4TPaxT7XuuKUa3hxwqluLjPg6/jwi00cUgb2jiW6ipwRp+WkrgABXTUlnKd3m4ZCVmheUXofNleI8EAR6su71x9Dsb5EgjHJ52KGx9KYAadJZMqZ9ZV8tC0IFkAPedf08p5kv3RsNQBBlHwarb9/ULzI4QKgYs4z9HJnSI2bId5A7mN9Ava8qIELrjNDlnEY35qgKGZsRCM12WbqDcPb5R2tHmDmFTYwaYAB3hLN8YQPHUs2XpYa+jhzv8ipuSIQzKE/zHNkItcfYfiRNp1FtB6D6aSaE+Cbl5si0UgBCBtb+W65Gr7HCGM9Q0ACQtszOZ+1QHLIPsG3na5CD8TKa1404RRepSrjpqmAb56DwC7YDs2UEp03cNnNZyOoH9czVAidyzBV+APVBVjceQBC+HmtxKiNT5JB5KcQFfVur74DcCf67PcKTT0QEh5Xu+VTpkQbLKbGo2TU2na7LuLrkUZLvw87bxXMV1n7J6oAAoADdzATNdVapTotBjcOooA77Eo1PdvcUMSR6kuehmoM/wCIV0f1p4OWW2lMepYeuKsLzbSDzsZMwYK1u8+nX2EdboBDsdiFklJBq7Y2DEMMaXkpUXqKvjb447rdKPRTwc03SsaIbmFDqIObCykIkh4i/sXQ503q9ol1wW1aLJlsRO5dsUAEMYf5uvqYfLK6JXDNJZQcEh9Oatr8EQoNArw92mf3dPAHgyG2uqetElwEkiiT6TA/3X7YAssATS9cheR9mcRbkIAERm3nKolDnXaFILH9BJocwjRPvcA9ya5lBe7da5t0UP8YZ+MnCnHP5lJr/0WKcwoamGRfteFN1SkZwKSC3bPkOsAErC6teGosyHpL509+SQwGD5IQ+V8b4wVwi1isvjkuM3CdZ8oVLjRIqzbS02JKLh99BmcxoMBHS6bfUGpbYtIDMwBAAAAADnEunYAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEJWTS79YITfAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAVG9rZW5CcmlkZ2UCAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJgw==", + (error: any, stdout: string, stderr: any) => { + if (error) { + done(`Execution error: ${error}`); + return; + } + try { + const outputObject = JSON.parse(stdout); + + const expectedOutput = { + version: 1, + guardianSetIndex: 1, + signatures: [ + { + guardianSetIndex: 2, + signature: + "73af3c2f55989041b0068a4eaeba8f8825106021996de6143954c06fc4cfad5c3f1aba6ca951188e962f11251c25ca98628685e2fc2b65ec609450cfc4e6511200", + }, + { + guardianSetIndex: 3, + signature: + "00c62eb0de7ab3d028920f18e10df7f2a04d00eb88b8940a27bbce8ce66c67526882c96cc50dd381bdbff30bb65b9347cadff09676729043af60d652a0b9063000", + }, + { + guardianSetIndex: 4, + signature: + "f07b0fe6cab18be7ae827fe11ca8992ff0b5a2a32d65be958231bf84cf6b14fb5eeb8a51ade1c70aa5b8b8cf83afe3c22d3471481bda3896ea2a70469f9692b800", + }, + { + guardianSetIndex: 5, + signature: + "74d496729dde6e190959a17945e87cd95e23c10047ab2eef5c7d0ec6f91208c7279d8a1b1f4a60069d25932a67d655f2d0b42059003de75fd3ca7992fdd1b0d401", + }, + { + guardianSetIndex: 6, + signature: + "51f06ab6fdfd42f323840a818b38cfd1c99d22366c877903b98df40bdaf2a2042eb8cd0e59c4637e6a80a199b1108cd7659ba8370f6f9476b479839854d8c1a600", + }, + { + guardianSetIndex: 7, + signature: + "784b37c6103c752cd97a586be8e1ceff22a6e488433284ff31cd908b5c7d87e244da7516d07a0fa692684f826e5e6c8b452004206d6fe5bae46afb1c218cf50d00", + }, + { + guardianSetIndex: 9, + signature: + "0b6ccce67ed501cb20fb06de76b9083f1329ad78d384517a94ab8e9aa601be7a0f00bb603b36504a74ddc367359c8ea07f5ccd5022772cc157e00f54156371e401", + }, + { + guardianSetIndex: 11, + signature: + "e1e6b712a2353e4907929c4057d5babef80dc09febb3dc2934f44048795eef954e99106cb29b1a8d935369daecbb8bae45192efc3cedbc57315d67ec9ea8000a00", + }, + { + guardianSetIndex: 13, + signature: + "dcc04cd7556a94e8b418dc3a8a00efb128d4f76f71431247a92e7a19a833fc02215d1fd69e0e596da531ea587ae2ac2f36d20f3b1933060ad6ef3e9d7d8475ba01", + }, + { + guardianSetIndex: 14, + signature: + "c76216494906aed8d8310c31a5e4a545ea2af8dbe38eeb74a3d14f0734dd2b1a21b9850ea20e6c2ca42248788bfb17439d37abda25d705b568b265b113b976c500", + }, + { + guardianSetIndex: 16, + signature: + "c61fe6ebea61f2cae895c334965070487d39ab6bf04428340af0f7699fddd3c01e0c86daea9eb449701248a24fa4c0ff75fb600b2c0134bd721791f667116e4200", + }, + { + guardianSetIndex: 17, + signature: + "19b79caa250e75da1482c7f412687308d13ef700f726b99417bb75ae6dd143fc619f8c9c29c73f9949affd1629cc286a61917ed7853754a46702920b76cf90eb00", + }, + { + guardianSetIndex: 18, + signature: + "b0bab5e1a8b321e92f9d3df92430183e4843e57c6f8c15c22d62b2f8e4b8cdc2759f2854b8d122acdb4b4d8928b87df4199cc683011d2e9b7d41a96d8b480ccc01", + }, + ], + timestamp: 0, + nonce: 969194102, + emitterChain: 1, + emitterAddress: + "0x0000000000000000000000000000000000000000000000000000000000000004", + sequence: "2694510404604284400", + consistencyLevel: 32, + payload: { + module: "TokenBridge", + type: "ContractUpgrade", + chain: 3, + address: + "0x0000000000000000000000000000000000000000000000000000000000000983", + }, + digest: + "0x1eb0950bc47db17fbf95bf5476a83445cf5bee90fcd14ae4d8ac851c2cbd824d", + }; + + expect(outputObject.version).toBe(expectedOutput.version); + expect(outputObject.guardianSetIndex).toBe( + expectedOutput.guardianSetIndex + ); + expect(outputObject.signatures).toMatchObject( + expectedOutput.signatures + ); + expect(outputObject.timestamp).toBe(expectedOutput.timestamp); + expect(outputObject.nonce).toBe(expectedOutput.nonce); + expect(outputObject.emitterChain).toBe(expectedOutput.emitterChain); + expect(outputObject.emitterAddress).toBe( + expectedOutput.emitterAddress + ); + expect(outputObject.sequence).toBe(expectedOutput.sequence); + expect(outputObject.consistencyLevel).toBe( + expectedOutput.consistencyLevel + ); + expect(outputObject.payload).toMatchObject(expectedOutput.payload); + expect(outputObject.digest).toBe(expectedOutput.digest); + + done(); + } catch (e) { + done(`JSON parse error: ${e}`); + } + } + ); + }); + + it("worm parse base64-2", (done) => { + exec( + "node build/main.js parse AQAAAAABAOKdOtGAsVPWjD9EXXXqpi/MmWkJRbqvStBGPpzkTyf3XaPUn3lyKSCqyBuivoD2iIlfF0lC/txAO8TlzjVVt3sAYrn3kQAAAAAAAgAAAAAAAAAAAAAAAPGaKgG3BRn2etswmplOyMaaln6LAAAAAAAAAAABRnJvbTogZXZtMFxuTXNnOiBIZWxsbyBXb3JsZCE=", + (error: any, stdout: string, stderr: any) => { + if (error) { + done(`Execution error: ${error}`); + return; + } + try { + const outputObject = JSON.parse(stdout); + + const expectedOutput = { + version: 1, + guardianSetIndex: 0, + signatures: [ + { + guardianSetIndex: 0, + signature: + "e29d3ad180b153d68c3f445d75eaa62fcc99690945baaf4ad0463e9ce44f27f75da3d49f79722920aac81ba2be80f688895f174942fedc403bc4e5ce3555b77b00", + }, + ], + timestamp: 1656354705, + nonce: 0, + emitterChain: 2, + emitterAddress: + "0x000000000000000000000000f19a2a01b70519f67adb309a994ec8c69a967e8b", + sequence: "0", + consistencyLevel: 1, + payload: { + type: "Other", + hex: "46726f6d3a2065766d305c6e4d73673a2048656c6c6f20576f726c6421", + ascii: "From: evm0\\nMsg: Hello World!", + }, + digest: + "0x8b7781f662ff1eed4827b770c0e735288948f0b56611f8cd73bf65e6b2a7a8ad", + }; + + expect(outputObject.version).toBe(expectedOutput.version); + expect(outputObject.guardianSetIndex).toBe( + expectedOutput.guardianSetIndex + ); + expect(outputObject.signatures).toMatchObject( + expectedOutput.signatures + ); + expect(outputObject.timestamp).toBe(expectedOutput.timestamp); + expect(outputObject.nonce).toBe(expectedOutput.nonce); + expect(outputObject.emitterChain).toBe(expectedOutput.emitterChain); + expect(outputObject.emitterAddress).toBe( + expectedOutput.emitterAddress + ); + expect(outputObject.sequence).toBe(expectedOutput.sequence); + expect(outputObject.consistencyLevel).toBe( + expectedOutput.consistencyLevel + ); + expect(outputObject.payload).toMatchObject(expectedOutput.payload); + expect(outputObject.digest).toBe(expectedOutput.digest); + + done(); + } catch (e) { + done(`JSON parse error: ${e}`); + } + } + ); + }); + + it("worm parse big-payload-3", (done) => { + exec( + "node build/main.js parse 01000000000100fd4cdd0e5a1afd9eb6555770fb132bf03ed8fa1f9e92c6adcec7881ace2ba4ba4c1b350f79da4110d3307053ceb217e4398eaf02be5474a90bd694b0d2ccbdcc0100000000baa551d500010000000000000000000000000000000000000000000000000000000000000004a3fff7bcbfc4b4ac200300000000000000000000000000000000000000000000000000000000000f4240165809739240a0ac03b98440fe8985548e3aa683cd0d4d9df5b5659669faa30100010000000000000000000000007c4dfd6be62406e7f5a05eec96300da4048e70ff0002000000000000000000000000000000000000000000000000000000000000000000000000000005de4c6f72656d20697073756d20646f6c6f722073697420616d65742c20636f6e73656374657475722061646970697363696e6720656c69742e204375726162697475722074656d7075732c206e6571756520656765742068656e64726572697420626962656e64756d2c20616e746520616e7465206469676e697373696d2065782c207175697320616363756d73616e20656c6974206175677565206e6563206c656f2e2050726f696e207669746165206a7573746f207669746165206c6163757320706f737565726520706f72747469746f722e204d61757269732073656420736167697474697320697073756d2e204d6f726269206d61737361206d61676e612c20706f7375657265206e6f6e20696163756c697320656765742c20756c74726963696573206174206c6967756c612e20446f6e656320756c74726963696573206e697369206573742c206574206c6f626f727469732073656d2073616769747469732073697420616d65742e20446f6e6563206665756769617420646f6c6f722061206f64696f2064696374756d2c20736564206c616f72656574206d61676e6120656765737461732e205175697371756520756c7472696369657320666163696c69736973206172637520617420616363756d73616e2e20496e20696163756c697320617420707572757320696e207472697374697175652e204d616563656e617320706f72747469746f722c206e69736c20612073656d706572206d616c6573756164612c2074656c6c7573206e65717565206d616c657375616461206c656f2c2071756973206d6f6c65737469652066656c6973206e69626820696e2065726f732e20446f6e656320766976657272612061726375206e6563206e756e63207072657469756d2c206567657420756c6c616d636f7270657220707572757320706f73756572652e2053757370656e646973736520706f74656e74692e204e616d2067726176696461206c656f206e6563207175616d2074696e636964756e7420766976657272612e205072616573656e74206163207375736369706974206f7263692e20566976616d757320736f64616c6573206d6178696d757320626c616e6469742e2050656c6c656e74657371756520696d706572646965742075726e61206174206e756e63206d616c6573756164612c20696e20617563746f72206d6173736120616c697175616d2e2050656c6c656e746573717565207363656c6572697371756520657569736d6f64206f64696f20612074656d706f722e204e756c6c612073656420706f7274612070757275732c20657520706f727461206f64696f2e20457469616d207175697320706c616365726174206e756c6c612e204e756e6320696e20636f6d6d6f646f206d692c20657520736f64616c6573206e756e632e20416c697175616d206c7563747573206c6f72656d2065742074696e636964756e74206c6163696e69612e20447569732076656c20697073756d206e69736c2e205072616573656e7420636f6e76616c6c697320656c6974206c6967756c612c206e656320706f72746120657374206d6178696d75732061632e204e756c6c61207072657469756d206c696265726f206567657420616e746520756c6c616d636f72706572206d61747469732e204e756c6c616d20766f6c75747061742c2074656c6c757320736564207363656c65726973717565206566666963697475722c206e69736c2061756775652070686172657472612066656c69732c2076656c2067726176696461206d61676e612075726e6120736564207175616d2e2044756973206964207072657469756d206475692e20496e74656765722072686f6e637573206d6174746973206a7573746f20612068656e6472657269742e20467573636520646f6c6f72206d61676e612c20706f72747469746f7220616320707572757320736f64616c65732c20657569736d6f6420766573746962756c756d20746f72746f722e20416c697175616d2070686172657472612065726174206a7573746f2c20696e20756c6c616d636f72706572207175616d2e", + (error: any, stdout: string, stderr: any) => { + if (error) { + done(`Execution error: ${error}`); + return; + } + try { + const outputObject = JSON.parse(stdout); + + const expectedOutput = { + version: 1, + guardianSetIndex: 0, + signatures: [ + { + guardianSetIndex: 0, + signature: + "fd4cdd0e5a1afd9eb6555770fb132bf03ed8fa1f9e92c6adcec7881ace2ba4ba4c1b350f79da4110d3307053ceb217e4398eaf02be5474a90bd694b0d2ccbdcc01", + }, + ], + timestamp: 0, + nonce: 3131396565, + emitterChain: 1, + emitterAddress: + "0x0000000000000000000000000000000000000000000000000000000000000004", + sequence: "11817436337286722732", + consistencyLevel: 32, + payload: { + module: "TokenBridge", + type: "TransferWithPayload", + amount: "1000000", + tokenAddress: + "0x165809739240a0ac03b98440fe8985548e3aa683cd0d4d9df5b5659669faa301", + tokenChain: 1, + toAddress: + "0x0000000000000000000000007c4dfd6be62406e7f5a05eec96300da4048e70ff", + chain: 2, + fromAddress: + "0x0000000000000000000000000000000000000000000000000000000000000000", + payload: + "0x00000000000005de4c6f72656d20697073756d20646f6c6f722073697420616d65742c20636f6e73656374657475722061646970697363696e6720656c69742e204375726162697475722074656d7075732c206e6571756520656765742068656e64726572697420626962656e64756d2c20616e746520616e7465206469676e697373696d2065782c207175697320616363756d73616e20656c6974206175677565206e6563206c656f2e2050726f696e207669746165206a7573746f207669746165206c6163757320706f737565726520706f72747469746f722e204d61757269732073656420736167697474697320697073756d2e204d6f726269206d61737361206d61676e612c20706f7375657265206e6f6e20696163756c697320656765742c20756c74726963696573206174206c6967756c612e20446f6e656320756c74726963696573206e697369206573742c206574206c6f626f727469732073656d2073616769747469732073697420616d65742e20446f6e6563206665756769617420646f6c6f722061206f64696f2064696374756d2c20736564206c616f72656574206d61676e6120656765737461732e205175697371756520756c7472696369657320666163696c69736973206172637520617420616363756d73616e2e20496e20696163756c697320617420707572757320696e207472697374697175652e204d616563656e617320706f72747469746f722c206e69736c20612073656d706572206d616c6573756164612c2074656c6c7573206e65717565206d616c657375616461206c656f2c2071756973206d6f6c65737469652066656c6973206e69626820696e2065726f732e20446f6e656320766976657272612061726375206e6563206e756e63207072657469756d2c206567657420756c6c616d636f7270657220707572757320706f73756572652e2053757370656e646973736520706f74656e74692e204e616d2067726176696461206c656f206e6563207175616d2074696e636964756e7420766976657272612e205072616573656e74206163207375736369706974206f7263692e20566976616d757320736f64616c6573206d6178696d757320626c616e6469742e2050656c6c656e74657371756520696d706572646965742075726e61206174206e756e63206d616c6573756164612c20696e20617563746f72206d6173736120616c697175616d2e2050656c6c656e746573717565207363656c6572697371756520657569736d6f64206f64696f20612074656d706f722e204e756c6c612073656420706f7274612070757275732c20657520706f727461206f64696f2e20457469616d207175697320706c616365726174206e756c6c612e204e756e6320696e20636f6d6d6f646f206d692c20657520736f64616c6573206e756e632e20416c697175616d206c7563747573206c6f72656d2065742074696e636964756e74206c6163696e69612e20447569732076656c20697073756d206e69736c2e205072616573656e7420636f6e76616c6c697320656c6974206c6967756c612c206e656320706f72746120657374206d6178696d75732061632e204e756c6c61207072657469756d206c696265726f206567657420616e746520756c6c616d636f72706572206d61747469732e204e756c6c616d20766f6c75747061742c2074656c6c757320736564207363656c65726973717565206566666963697475722c206e69736c2061756775652070686172657472612066656c69732c2076656c2067726176696461206d61676e612075726e6120736564207175616d2e2044756973206964207072657469756d206475692e20496e74656765722072686f6e637573206d6174746973206a7573746f20612068656e6472657269742e20467573636520646f6c6f72206d61676e612c20706f72747469746f7220616320707572757320736f64616c65732c20657569736d6f6420766573746962756c756d20746f72746f722e20416c697175616d2070686172657472612065726174206a7573746f2c20696e20756c6c616d636f72706572207175616d2e", + }, + digest: + "0xfc3ce17da88ca9085135a7180b5da44808f04fd9b55b26ed14b45cbec96a0e58", + }; + + expect(outputObject.version).toBe(expectedOutput.version); + expect(outputObject.guardianSetIndex).toBe( + expectedOutput.guardianSetIndex + ); + expect(outputObject.signatures).toMatchObject( + expectedOutput.signatures + ); + expect(outputObject.timestamp).toBe(expectedOutput.timestamp); + expect(outputObject.nonce).toBe(expectedOutput.nonce); + expect(outputObject.emitterChain).toBe(expectedOutput.emitterChain); + expect(outputObject.emitterAddress).toBe( + expectedOutput.emitterAddress + ); + expect(outputObject.sequence).toBe(expectedOutput.sequence); + expect(outputObject.consistencyLevel).toBe( + expectedOutput.consistencyLevel + ); + expect(outputObject.payload).toMatchObject(expectedOutput.payload); + expect(outputObject.digest).toBe(expectedOutput.digest); + + done(); + } catch (e) { + done(`JSON parse error: ${e}`); + } + } + ); + }); + + it("worm parse guardian-set-upgrade-1", (done) => { + exec( + "node build/main.js parse 010000000001007ac31b282c2aeeeb37f3385ee0de5f8e421d30b9e5ae8ba3d4375c1c77a86e77159bb697d9c456d6f8c02d22a94b1279b65b0d6a9957e7d3857423845ac758e300610ac1d2000000030001000000000000000000000000000000000000000000000000000000000000000400000000000005390000000000000000000000000000000000000000000000000000000000436f7265020000000000011358cc3ae5c097b213ce3c81979e1b9f9570746aa5ff6cb952589bde862c25ef4392132fb9d4a42157114de8460193bdf3a2fcf81f86a09765f4762fd1107a0086b32d7a0977926a205131d8731d39cbeb8c82b2fd82faed2711d59af0f2499d16e726f6b211b39756c042441be6d8650b69b54ebe715e234354ce5b4d348fb74b958e8966e2ec3dbd4958a7cdeb5f7389fa26941519f0863349c223b73a6ddee774a3bf913953d695260d88bc1aa25a4eee363ef0000ac0076727b35fbea2dac28fee5ccb0fea768eaf45ced136b9d9e24903464ae889f5c8a723fc14f93124b7c738843cbb89e864c862c38cddcccf95d2cc37a4dc036a8d232b48f62cdd4731412f4890da798f6896a3331f64b48c12d1d57fd9cbe7081171aa1be1d36cafe3867910f99c09e347899c19c38192b6e7387ccd768277c17dab1b7a5027c0b3cf178e21ad2e77ae06711549cfbb1f9c7a9d8096e85e1487f35515d02a92753504a8d75471b9f49edb6fbebc898f403e4773e95feb15e80c9a99c8348d", + (error: any, stdout: string, stderr: any) => { + if (error) { + done(`Execution error: ${error}`); + return; + } + try { + const outputObject = JSON.parse(stdout); + + const expectedOutput = { + version: 1, + guardianSetIndex: 0, + signatures: [ + { + guardianSetIndex: 0, + signature: + "7ac31b282c2aeeeb37f3385ee0de5f8e421d30b9e5ae8ba3d4375c1c77a86e77159bb697d9c456d6f8c02d22a94b1279b65b0d6a9957e7d3857423845ac758e300", + }, + ], + timestamp: 1628094930, + nonce: 3, + emitterChain: 1, + emitterAddress: + "0x0000000000000000000000000000000000000000000000000000000000000004", + sequence: "1337", + consistencyLevel: 0, + payload: { + module: "Core", + type: "GuardianSetUpgrade", + chain: 0, + newGuardianSetIndex: 1, + newGuardianSetLength: 19, + newGuardianSet: [ + "58cc3ae5c097b213ce3c81979e1b9f9570746aa5", + "ff6cb952589bde862c25ef4392132fb9d4a42157", + "114de8460193bdf3a2fcf81f86a09765f4762fd1", + "107a0086b32d7a0977926a205131d8731d39cbeb", + "8c82b2fd82faed2711d59af0f2499d16e726f6b2", + "11b39756c042441be6d8650b69b54ebe715e2343", + "54ce5b4d348fb74b958e8966e2ec3dbd4958a7cd", + "eb5f7389fa26941519f0863349c223b73a6ddee7", + "74a3bf913953d695260d88bc1aa25a4eee363ef0", + "000ac0076727b35fbea2dac28fee5ccb0fea768e", + "af45ced136b9d9e24903464ae889f5c8a723fc14", + "f93124b7c738843cbb89e864c862c38cddcccf95", + "d2cc37a4dc036a8d232b48f62cdd4731412f4890", + "da798f6896a3331f64b48c12d1d57fd9cbe70811", + "71aa1be1d36cafe3867910f99c09e347899c19c3", + "8192b6e7387ccd768277c17dab1b7a5027c0b3cf", + "178e21ad2e77ae06711549cfbb1f9c7a9d8096e8", + "5e1487f35515d02a92753504a8d75471b9f49edb", + "6fbebc898f403e4773e95feb15e80c9a99c8348d", + ], + }, + digest: + "0xed3a5600d44b9dcc889daf0178dd69ab1e9356308194ba3628a7b720ae48a8d5", + }; + + expect(outputObject.version).toBe(expectedOutput.version); + expect(outputObject.guardianSetIndex).toBe( + expectedOutput.guardianSetIndex + ); + expect(outputObject.signatures).toMatchObject( + expectedOutput.signatures + ); + expect(outputObject.timestamp).toBe(expectedOutput.timestamp); + expect(outputObject.nonce).toBe(expectedOutput.nonce); + expect(outputObject.emitterChain).toBe(expectedOutput.emitterChain); + expect(outputObject.emitterAddress).toBe( + expectedOutput.emitterAddress + ); + expect(outputObject.sequence).toBe(expectedOutput.sequence); + expect(outputObject.consistencyLevel).toBe( + expectedOutput.consistencyLevel + ); + expect(outputObject.payload).toMatchObject(expectedOutput.payload); + expect(outputObject.digest).toBe(expectedOutput.digest); + + done(); + } catch (e) { + done(`JSON parse error: ${e}`); + } + } + ); + }); + + it("worm parse nft-bridge-transfer-1", (done) => { + exec( + "node build/main.js parse 010000000000000000010000000100010000000000000000000000000000000000000000000000000000000000000004000000000277bb0b0001000000000000000000000000000000000000000000000000000000000000000400010000000000000000000000000000000000000000000000000000000000464f4f0000000000000000000000000000000000000000000000000000000000424152000000000000000000000000000000000000000000000000000000000000000a0a676f6f676c652e636f6d0000000000000000000000000000000000000000000000000000000000000004000a", + (error: any, stdout: string, stderr: any) => { + if (error) { + done(`Execution error: ${error}`); + return; + } + try { + const outputObject = JSON.parse(stdout); + + const expectedOutput = { + version: 1, + guardianSetIndex: 0, + signatures: [], + timestamp: 1, + nonce: 1, + emitterChain: 1, + emitterAddress: + "0x0000000000000000000000000000000000000000000000000000000000000004", + sequence: "41401099", + consistencyLevel: 0, + payload: { + module: "NFTBridge", + type: "Transfer", + tokenAddress: + "0x0000000000000000000000000000000000000000000000000000000000000004", + tokenChain: 1, + tokenSymbol: "FOO", + tokenName: "BAR", + tokenId: "10", + tokenURI: "google.com", + toAddress: + "0x0000000000000000000000000000000000000000000000000000000000000004", + chain: 10, + }, + digest: + "0x5e09cb958c8ee111319472907c3772f63bf4cc599b7126b1ef1bbac82f2fea7a", + }; + + expect(outputObject.version).toBe(expectedOutput.version); + expect(outputObject.guardianSetIndex).toBe( + expectedOutput.guardianSetIndex + ); + expect(outputObject.signatures).toMatchObject( + expectedOutput.signatures + ); + expect(outputObject.timestamp).toBe(expectedOutput.timestamp); + expect(outputObject.nonce).toBe(expectedOutput.nonce); + expect(outputObject.emitterChain).toBe(expectedOutput.emitterChain); + expect(outputObject.emitterAddress).toBe( + expectedOutput.emitterAddress + ); + expect(outputObject.sequence).toBe(expectedOutput.sequence); + expect(outputObject.consistencyLevel).toBe( + expectedOutput.consistencyLevel + ); + expect(outputObject.payload).toMatchObject(expectedOutput.payload); + expect(outputObject.digest).toBe(expectedOutput.digest); + + done(); + } catch (e) { + done(`JSON parse error: ${e}`); + } + } + ); + }); + + it("worm parse token-bridge-attestation-1", (done) => { + exec( + "node build/main.js parse 010000000001006cd3cdd701bbd878eb403f6505b5b797544eb9c486dadf79f0c445e9b8fa5cd474de1683e3a80f7e22dbfacd53b0ddc7b040ff6f974aafe7a6571c9355b8129b00000000007ce2ea3f000195f83a27e90c622a98c037353f271fd8f5f57b4dc18ebf5ff75a934724bd0491a43a1c0020f88a3e2002000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc200021200000000000000000000000000000000000000000000000000000000574554480000000000000000000000000000000000000057726170706564206574686572", + (error: any, stdout: string, stderr: any) => { + if (error) { + done(`Execution error: ${error}`); + return; + } + try { + const outputObject = JSON.parse(stdout); + + const expectedOutput = { + version: 1, + guardianSetIndex: 0, + signatures: [ + { + guardianSetIndex: 0, + signature: + "6cd3cdd701bbd878eb403f6505b5b797544eb9c486dadf79f0c445e9b8fa5cd474de1683e3a80f7e22dbfacd53b0ddc7b040ff6f974aafe7a6571c9355b8129b00", + }, + ], + timestamp: 0, + nonce: 2095245887, + emitterChain: 1, + emitterAddress: + "0x95f83a27e90c622a98c037353f271fd8f5f57b4dc18ebf5ff75a934724bd0491", + sequence: "11833801757748136510", + consistencyLevel: 32, + payload: { + module: "TokenBridge", + chain: 0, + type: "AttestMeta", + tokenAddress: + "0x000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + tokenChain: 2, + decimals: 18, + symbol: + "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000WETH", + name: "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000Wrapped ether", + }, + digest: + "0x4bb52b9a44ff6062ba5db1c47afc40c186f7485c8972b1c6261eb070ce0b1c6e", + }; + + expect(outputObject.version).toBe(expectedOutput.version); + expect(outputObject.guardianSetIndex).toBe( + expectedOutput.guardianSetIndex + ); + expect(outputObject.signatures).toMatchObject( + expectedOutput.signatures + ); + expect(outputObject.timestamp).toBe(expectedOutput.timestamp); + expect(outputObject.nonce).toBe(expectedOutput.nonce); + expect(outputObject.emitterChain).toBe(expectedOutput.emitterChain); + expect(outputObject.emitterAddress).toBe( + expectedOutput.emitterAddress + ); + expect(outputObject.sequence).toBe(expectedOutput.sequence); + expect(outputObject.consistencyLevel).toBe( + expectedOutput.consistencyLevel + ); + expect(outputObject.payload).toMatchObject(expectedOutput.payload); + expect(outputObject.digest).toBe(expectedOutput.digest); + + done(); + } catch (e) { + done(`JSON parse error: ${e}`); + } + } + ); + }); + + it("worm parse token-bridge-registration-1", (done) => { + exec( + "node build/main.js parse 010000000001001890714264dbbc8022a58df0c12b436d588b20b6304b38c383bda1d7fc101bb2443081e6d42719bce602116a1491b10d4666967da9f8d922079759c972ed37b40100000000191428f700010000000000000000000000000000000000000000000000000000000000000004f7c884f209e7158720000000000000000000000000000000000000000000546f6b656e427269646765010000000195f83a27e90c622a98c037353f271fd8f5f57b4dc18ebf5ff75a934724bd0491", + (error: any, stdout: string, stderr: any) => { + if (error) { + done(`Execution error: ${error}`); + return; + } + try { + const outputObject = JSON.parse(stdout); + + const expectedOutput = { + version: 1, + guardianSetIndex: 0, + signatures: [ + { + guardianSetIndex: 0, + signature: + "1890714264dbbc8022a58df0c12b436d588b20b6304b38c383bda1d7fc101bb2443081e6d42719bce602116a1491b10d4666967da9f8d922079759c972ed37b401", + }, + ], + timestamp: 0, + nonce: 420751607, + emitterChain: 1, + emitterAddress: + "0x0000000000000000000000000000000000000000000000000000000000000004", + sequence: "17854666897793422727", + consistencyLevel: 32, + payload: { + module: "TokenBridge", + type: "RegisterChain", + chain: 0, + emitterChain: 1, + emitterAddress: + "0x95f83a27e90c622a98c037353f271fd8f5f57b4dc18ebf5ff75a934724bd0491", + }, + digest: + "0xe596e88c14b9cd45c350bb4811b9a29bc1fc7069300e4204e034b1ab7c23d820", + }; + + expect(outputObject.version).toBe(expectedOutput.version); + expect(outputObject.guardianSetIndex).toBe( + expectedOutput.guardianSetIndex + ); + expect(outputObject.signatures).toMatchObject( + expectedOutput.signatures + ); + expect(outputObject.timestamp).toBe(expectedOutput.timestamp); + expect(outputObject.nonce).toBe(expectedOutput.nonce); + expect(outputObject.emitterChain).toBe(expectedOutput.emitterChain); + expect(outputObject.emitterAddress).toBe( + expectedOutput.emitterAddress + ); + expect(outputObject.sequence).toBe(expectedOutput.sequence); + expect(outputObject.consistencyLevel).toBe( + expectedOutput.consistencyLevel + ); + expect(outputObject.payload).toMatchObject(expectedOutput.payload); + expect(outputObject.digest).toBe(expectedOutput.digest); + + done(); + } catch (e) { + done(`JSON parse error: ${e}`); + } + } + ); + }); + + it("worm parse token-bridge-transfer-1", (done) => { + exec( + "node build/main.js parse 010000000001007d204ad9447c4dfd6be62406e7f5a05eec96300da4048e70ff530cfb52aec44807e98194990710ff166eb1b2eac942d38bc1cd6018f93662a6578d985e87c8d0016221346b0000b8bd0001c69a1b1a65dd336bf1df6a77afb501fc25db7fc0938cb08595a9ef473265cb4f0000000000000003200100000000000000000000000000000000000000000000000000000002540be400165809739240a0ac03b98440fe8985548e3aa683cd0d4d9df5b5659669faa3010001000000000000000000000000c10820983f33456ce7beb3a046f5a83fa34f027d00020000000000000000000000000000000000000000000000000000000000000000", + (error: any, stdout: string, stderr: any) => { + if (error) { + done(`Execution error: ${error}`); + return; + } + try { + const outputObject = JSON.parse(stdout); + + const expectedOutput = { + version: 1, + guardianSetIndex: 0, + signatures: [ + { + guardianSetIndex: 0, + signature: + "7d204ad9447c4dfd6be62406e7f5a05eec96300da4048e70ff530cfb52aec44807e98194990710ff166eb1b2eac942d38bc1cd6018f93662a6578d985e87c8d001", + }, + ], + timestamp: 1646343275, + nonce: 47293, + emitterChain: 1, + emitterAddress: + "0xc69a1b1a65dd336bf1df6a77afb501fc25db7fc0938cb08595a9ef473265cb4f", + sequence: "3", + consistencyLevel: 32, + payload: { + module: "TokenBridge", + type: "Transfer", + amount: "10000000000", + tokenAddress: + "0x165809739240a0ac03b98440fe8985548e3aa683cd0d4d9df5b5659669faa301", + tokenChain: 1, + toAddress: + "0x000000000000000000000000c10820983f33456ce7beb3a046f5a83fa34f027d", + chain: 2, + fee: "0", + }, + digest: + "0x2862e5873955ea104bb3e122831bdc43bbcb413da5b1123514640b950d038967", + }; + + expect(outputObject.version).toBe(expectedOutput.version); + expect(outputObject.guardianSetIndex).toBe( + expectedOutput.guardianSetIndex + ); + expect(outputObject.signatures).toMatchObject( + expectedOutput.signatures + ); + expect(outputObject.timestamp).toBe(expectedOutput.timestamp); + expect(outputObject.nonce).toBe(expectedOutput.nonce); + expect(outputObject.emitterChain).toBe(expectedOutput.emitterChain); + expect(outputObject.emitterAddress).toBe( + expectedOutput.emitterAddress + ); + expect(outputObject.sequence).toBe(expectedOutput.sequence); + expect(outputObject.consistencyLevel).toBe( + expectedOutput.consistencyLevel + ); + expect(outputObject.payload).toMatchObject(expectedOutput.payload); + expect(outputObject.digest).toBe(expectedOutput.digest); + + done(); + } catch (e) { + done(`JSON parse error: ${e}`); + } + } + ); + }); + + it("worm parse token-bridge-transfer-2", (done) => { + exec( + "node build/main.js parse 01000000010d0078588270e30e3b4cf74572b6ad4270cdd7932079692170fddaf369c7574722b75defcecf5d372cdd8fdba0f275c6b902434259b5d7da8402e25ca852ca5affaa0003a8888cf66158970861329efa69ff2461d847078cec22fd7f62606b17a1ae283127712fa50dc365faa1e6db339fefce57b13c74c2dce7d14b79051676c74bb685000487272398eb59763bb1e2466f9ebdea4e75c290b6c0386f07c20e1296b1976cb814547378922dbc5490b7fcf7279eafc0c08bd59ca97c4dbbcbd478967e17aa2d0006dd38ecb6233f1cd872a75cc0627ded36aa8f89095436f7dbe32e6655e27f217459fda35a3d7f1d656962160bfeee4e5fc6d2e1447559e7bc3ba760416317b86c010792d27a749b398dc5f085e7bcd2e0f18d6262a1ba1916787ec01854c0ccde0a8247f8892e6dff83fad6839fc054f32734255e9037ff9adc33499514e2300ba439010989f08688ae363783bfe3f25a5960a0791ce327bab7e7593393f91395e06fe50e3f7e13862ac86b9fd1f9720669bc4504e918f7e481c395f17a2fa131da05b9e7010a097d187970710297d188a2ebaedff0ad13efd16872566bae8a56377e28466b2c3c4e47853c60fe716109e55f8b453fb03a34bb1929c96f74ebd796a476ec7ab6000b68a19d198350b3caebd3c0159b8bbce022e0f026d013a1c83e40d6100c87e8bb0d692baca89cb77f4b6832dd7aaf3f2f7c482fd50be7221c046ae668228ec013000cd6f464a174d7e34797e2869785feb5f05ab614be989d238c9bd55259dbdbab2568c14f316d1820ac766e513bf5225185f16d30f0f01a092af5fb6b072ad577f0010d663f2f3ad62baa8ad541b9c38bb9df805d2cfa7072894526505b654293bacdee5e9e8c4ded7be92a3338b964482b3ce6d5275817d6a4b6a0663e1e84dcd1de3500105f773ea1d7e74770e78c4779abe4594b6a46f9131304948265bc185dcb1cdba8114915e3b1d864f48e4c694c9578524e22752e2d898af4b8e67383d72a11856700118bdbd5b5a820ecd215faf134b698402da04cc698e64464dd8df6692342e8c44314e1ae53bfde71fb2b00cd5691dae4f9b310c6150bdb551645a72863f4ff965c011286c673c4f2213969d273b939318f93a5b50c665efa8c9e245a3b8823522dafec209b1be127e74a6d5c924831e339f8bffb769f7b0f5772ed16231700bf7eece200624092e10000f4150001ec7372995d5cc8732397fb0ad35c0121e0eaa90d26f828a534cab54391b3a4f5000000000001aec5200100000000000000000000000000000000000000000000000000000000f4610900069b8857feab8184fb687f634618c035dac439dc1aeb3b5598a0f000000000010001000000000000000000000000efd4aa8f954ebdea82b8757c029fc8475a45e9cd00020000000000000000000000000000000000000000000000000000000000000000", + (error: any, stdout: string, stderr: any) => { + if (error) { + done(`Execution error: ${error}`); + return; + } + try { + const outputObject = JSON.parse(stdout); + + const expectedOutput = { + version: 1, + guardianSetIndex: 1, + signatures: [ + { + guardianSetIndex: 0, + signature: + "78588270e30e3b4cf74572b6ad4270cdd7932079692170fddaf369c7574722b75defcecf5d372cdd8fdba0f275c6b902434259b5d7da8402e25ca852ca5affaa00", + }, + { + guardianSetIndex: 3, + signature: + "a8888cf66158970861329efa69ff2461d847078cec22fd7f62606b17a1ae283127712fa50dc365faa1e6db339fefce57b13c74c2dce7d14b79051676c74bb68500", + }, + { + guardianSetIndex: 4, + signature: + "87272398eb59763bb1e2466f9ebdea4e75c290b6c0386f07c20e1296b1976cb814547378922dbc5490b7fcf7279eafc0c08bd59ca97c4dbbcbd478967e17aa2d00", + }, + { + guardianSetIndex: 6, + signature: + "dd38ecb6233f1cd872a75cc0627ded36aa8f89095436f7dbe32e6655e27f217459fda35a3d7f1d656962160bfeee4e5fc6d2e1447559e7bc3ba760416317b86c01", + }, + { + guardianSetIndex: 7, + signature: + "92d27a749b398dc5f085e7bcd2e0f18d6262a1ba1916787ec01854c0ccde0a8247f8892e6dff83fad6839fc054f32734255e9037ff9adc33499514e2300ba43901", + }, + { + guardianSetIndex: 9, + signature: + "89f08688ae363783bfe3f25a5960a0791ce327bab7e7593393f91395e06fe50e3f7e13862ac86b9fd1f9720669bc4504e918f7e481c395f17a2fa131da05b9e701", + }, + { + guardianSetIndex: 10, + signature: + "097d187970710297d188a2ebaedff0ad13efd16872566bae8a56377e28466b2c3c4e47853c60fe716109e55f8b453fb03a34bb1929c96f74ebd796a476ec7ab600", + }, + { + guardianSetIndex: 11, + signature: + "68a19d198350b3caebd3c0159b8bbce022e0f026d013a1c83e40d6100c87e8bb0d692baca89cb77f4b6832dd7aaf3f2f7c482fd50be7221c046ae668228ec01300", + }, + { + guardianSetIndex: 12, + signature: + "d6f464a174d7e34797e2869785feb5f05ab614be989d238c9bd55259dbdbab2568c14f316d1820ac766e513bf5225185f16d30f0f01a092af5fb6b072ad577f001", + }, + { + guardianSetIndex: 13, + signature: + "663f2f3ad62baa8ad541b9c38bb9df805d2cfa7072894526505b654293bacdee5e9e8c4ded7be92a3338b964482b3ce6d5275817d6a4b6a0663e1e84dcd1de3500", + }, + { + guardianSetIndex: 16, + signature: + "5f773ea1d7e74770e78c4779abe4594b6a46f9131304948265bc185dcb1cdba8114915e3b1d864f48e4c694c9578524e22752e2d898af4b8e67383d72a11856700", + }, + { + guardianSetIndex: 17, + signature: + "8bdbd5b5a820ecd215faf134b698402da04cc698e64464dd8df6692342e8c44314e1ae53bfde71fb2b00cd5691dae4f9b310c6150bdb551645a72863f4ff965c01", + }, + { + guardianSetIndex: 18, + signature: + "86c673c4f2213969d273b939318f93a5b50c665efa8c9e245a3b8823522dafec209b1be127e74a6d5c924831e339f8bffb769f7b0f5772ed16231700bf7eece200", + }, + ], + timestamp: 1648399073, + nonce: 62485, + emitterChain: 1, + emitterAddress: + "0xec7372995d5cc8732397fb0ad35c0121e0eaa90d26f828a534cab54391b3a4f5", + sequence: "110277", + consistencyLevel: 32, + payload: { + module: "TokenBridge", + type: "Transfer", + amount: "4100000000", + tokenAddress: + "0x069b8857feab8184fb687f634618c035dac439dc1aeb3b5598a0f00000000001", + tokenChain: 1, + toAddress: + "0x000000000000000000000000efd4aa8f954ebdea82b8757c029fc8475a45e9cd", + chain: 2, + fee: "0", + }, + digest: + "0xc90519b2bdfacac401d2d2c15a329d4e33e8ca15862685f0220ddc6074d7def5", + }; + + expect(outputObject.version).toBe(expectedOutput.version); + expect(outputObject.guardianSetIndex).toBe( + expectedOutput.guardianSetIndex + ); + expect(outputObject.signatures).toMatchObject( + expectedOutput.signatures + ); + expect(outputObject.timestamp).toBe(expectedOutput.timestamp); + expect(outputObject.nonce).toBe(expectedOutput.nonce); + expect(outputObject.emitterChain).toBe(expectedOutput.emitterChain); + expect(outputObject.emitterAddress).toBe( + expectedOutput.emitterAddress + ); + expect(outputObject.sequence).toBe(expectedOutput.sequence); + expect(outputObject.consistencyLevel).toBe( + expectedOutput.consistencyLevel + ); + expect(outputObject.payload).toMatchObject(expectedOutput.payload); + expect(outputObject.digest).toBe(expectedOutput.digest); + + done(); + } catch (e) { + done(`JSON parse error: ${e}`); + } + } + ); + }); + + it("worm parse token-bridge-transfer-4", (done) => { + exec( + "node build/main.js parse 010000000001001565b62bbf9978b1f9183ae985eb34f664fd4c850ec4ad8a38533281aec75eba2456f91c9a967cf4a70901aa0afed17ba39f1d779089b32eb88a47f7ea405e4b00000000002605c517000195f83a27e90c622a98c037353f271fd8f5f57b4dc18ebf5ff75a934724bd04914e4eb08ee374efbd200100000000000000000000000000000000000000000000000000000000000186a0165809739240a0ac03b98440fe8985548e3aa683cd0d4d9df5b5659669faa3010001000000000000000000000000c10820983f33456ce7beb3a046f5a83fa34f027d0c200000000000000000000000000000000000000000000000000000000000000000", + (error: any, stdout: string, stderr: any) => { + if (error) { + done(`Execution error: ${error}`); + return; + } + try { + const outputObject = JSON.parse(stdout); + + const expectedOutput = { + version: 1, + guardianSetIndex: 0, + signatures: [ + { + guardianSetIndex: 0, + signature: + "1565b62bbf9978b1f9183ae985eb34f664fd4c850ec4ad8a38533281aec75eba2456f91c9a967cf4a70901aa0afed17ba39f1d779089b32eb88a47f7ea405e4b00", + }, + ], + timestamp: 0, + nonce: 637912343, + emitterChain: 1, + emitterAddress: + "0x95f83a27e90c622a98c037353f271fd8f5f57b4dc18ebf5ff75a934724bd0491", + sequence: "5642641510889746365", + consistencyLevel: 32, + payload: { + module: "TokenBridge", + type: "Transfer", + amount: "100000", + tokenAddress: + "0x165809739240a0ac03b98440fe8985548e3aa683cd0d4d9df5b5659669faa301", + tokenChain: 1, + toAddress: + "0x000000000000000000000000c10820983f33456ce7beb3a046f5a83fa34f027d", + chain: 3104, + fee: "0", + }, + digest: + "0x559318082f6abb8b0fcf360d2a98be84a0ccf6602044882cc0d6764a374ae44d", + }; + + expect(outputObject.version).toBe(expectedOutput.version); + expect(outputObject.guardianSetIndex).toBe( + expectedOutput.guardianSetIndex + ); + expect(outputObject.signatures).toMatchObject( + expectedOutput.signatures + ); + expect(outputObject.timestamp).toBe(expectedOutput.timestamp); + expect(outputObject.nonce).toBe(expectedOutput.nonce); + expect(outputObject.emitterChain).toBe(expectedOutput.emitterChain); + expect(outputObject.emitterAddress).toBe( + expectedOutput.emitterAddress + ); + expect(outputObject.sequence).toBe(expectedOutput.sequence); + expect(outputObject.consistencyLevel).toBe( + expectedOutput.consistencyLevel + ); + expect(outputObject.payload).toMatchObject(expectedOutput.payload); + expect(outputObject.digest).toBe(expectedOutput.digest); + + done(); + } catch (e) { + done(`JSON parse error: ${e}`); + } + } + ); + }); + + it("worm parse token-bridge-upgrade-1", (done) => { + exec( + "node build/main.js parse 01000000000100e3db309303b712a562e6aa2adc68bc10ff22328ab31ddb6a83706943a9da97bf11ba6e3b96395515868786898dc19ecd737d197b0d1a1f3f3c6aead5c1fe7009000000000100000001000100000000000000000000000000000000000000000000000000000000000000040000000004c5d05a00000000000000000000000000000000000000000000546f6b656e42726964676502000a0000000000000000000000000046da7a0320dd999438b4435dac82bf1dac13d2", + (error: any, stdout: string, stderr: any) => { + if (error) { + done(`Execution error: ${error}`); + return; + } + try { + const outputObject = JSON.parse(stdout); + + const expectedOutput = { + version: 1, + guardianSetIndex: 0, + signatures: [ + { + guardianSetIndex: 0, + signature: + "e3db309303b712a562e6aa2adc68bc10ff22328ab31ddb6a83706943a9da97bf11ba6e3b96395515868786898dc19ecd737d197b0d1a1f3f3c6aead5c1fe700900", + }, + ], + timestamp: 1, + nonce: 1, + emitterChain: 1, + emitterAddress: + "0x0000000000000000000000000000000000000000000000000000000000000004", + sequence: "80072794", + consistencyLevel: 0, + payload: { + module: "TokenBridge", + type: "ContractUpgrade", + chain: 10, + address: + "0x0000000000000000000000000046da7a0320dd999438b4435dac82bf1dac13d2", + }, + digest: + "0xf5725025d1d3f69d77d189e88b9be290618f1ceae355c1b116cb2d97d63f6029", + }; + + expect(outputObject.version).toBe(expectedOutput.version); + expect(outputObject.guardianSetIndex).toBe( + expectedOutput.guardianSetIndex + ); + expect(outputObject.signatures).toMatchObject( + expectedOutput.signatures + ); + expect(outputObject.timestamp).toBe(expectedOutput.timestamp); + expect(outputObject.nonce).toBe(expectedOutput.nonce); + expect(outputObject.emitterChain).toBe(expectedOutput.emitterChain); + expect(outputObject.emitterAddress).toBe( + expectedOutput.emitterAddress + ); + expect(outputObject.sequence).toBe(expectedOutput.sequence); + expect(outputObject.consistencyLevel).toBe( + expectedOutput.consistencyLevel + ); + expect(outputObject.payload).toMatchObject(expectedOutput.payload); + expect(outputObject.digest).toBe(expectedOutput.digest); + + done(); + } catch (e) { + done(`JSON parse error: ${e}`); + } + } + ); + }); + + it("worm parse token-bridge-upgrade-2", (done) => { + exec( + "node build/main.js parse 010000000100000000005c14b8e300010000000000000000000000000000000000000000000000000000000000000004fd81c1b1836cc25620000000000000000000000000000000000000000000546f6b656e4272696467650200030000000000000000000000000000000000000000000000000000000000000fb2", + (error: any, stdout: string, stderr: any) => { + if (error) { + done(`Execution error: ${error}`); + return; + } + try { + const outputObject = JSON.parse(stdout); + + const expectedOutput = { + version: 1, + guardianSetIndex: 1, + signatures: [], + timestamp: 0, + nonce: 1544861923, + emitterChain: 1, + emitterAddress: + "0x0000000000000000000000000000000000000000000000000000000000000004", + sequence: "18267094531749757526", + consistencyLevel: 32, + payload: { + module: "TokenBridge", + type: "ContractUpgrade", + chain: 3, + address: + "0x0000000000000000000000000000000000000000000000000000000000000fb2", + }, + digest: + "0x7c8bd53e23a704a5476810d36335d2b9d65e4182e4863af3b27bd6a1ac8825e4", + }; + + expect(outputObject.version).toBe(expectedOutput.version); + expect(outputObject.guardianSetIndex).toBe( + expectedOutput.guardianSetIndex + ); + expect(outputObject.signatures).toMatchObject( + expectedOutput.signatures + ); + expect(outputObject.timestamp).toBe(expectedOutput.timestamp); + expect(outputObject.nonce).toBe(expectedOutput.nonce); + expect(outputObject.emitterChain).toBe(expectedOutput.emitterChain); + expect(outputObject.emitterAddress).toBe( + expectedOutput.emitterAddress + ); + expect(outputObject.sequence).toBe(expectedOutput.sequence); + expect(outputObject.consistencyLevel).toBe( + expectedOutput.consistencyLevel + ); + expect(outputObject.payload).toMatchObject(expectedOutput.payload); + expect(outputObject.digest).toBe(expectedOutput.digest); + + done(); + } catch (e) { + done(`JSON parse error: ${e}`); + } + } + ); + }); + + it("worm parse token-bridge-upgrade-3", (done) => { + exec( + "node build/main.js parse 01000000010d02aa3ffb28f2c401f90b8b5fb7af57bf9249204970053b1ba06bca147c2dab31b21d50c2a7695e8ebed00b07f0b1cb9c1658f41ee59a56b9fb4b289d9c15ce838f01030976bd5450631765db2c4017f33dd8fbd61dae364d1dfd43cdb866f72f8d4a4b47960026e64560a8823c422dce7c1e2a850aa5226c6b7092606c5224b69450e20104597391bda61d86dcb900d6b0062cf72b52b1ca250d625b3f62f89981041c16ec4b457038388058cdec9c5486baf6e84c1481e124c9f809ced7d73c235fcd400d0005c3356b43ed505d26fd55841925f8dcd4ae176990c4e9654742a20fe3438e0bb7367bd35019a546afe71af895f31e6e70de33ac800f75ee48a9dedac8f9817af5000609f9b2bd1c3f06bf23ed10eca5d13762b28872e1b44dbdb5d1f079c40c396f2a2ad2ac07278bd4cb140f61b86305f89a339dd0d39862f3a1f2cd8a9b7fd3eafe000779956931cd35e5e54934cadb37d9ad530164d58d9cbf2e39dbd73826a879705350ecd93ac7e48b21f64232b24b423d2d15b897e442dc4df9be7fdb92ebbaa2c100099af9249cfc3300edb5da61fd425371244a9a30fbfc93df455a3ac59cf3e56a4900da0566b38f8b56059f1795593b92c30c833dc6106657f4554a86f501b1f6b2010badf2b90028e98eef4aea4094c4cd0d3b411837f0469e13468b5016cc955510e808b4aafaa87aea8bc07c7506f3782d0428468df405b21fc36ed2ccfb32877642010da3f78c15d55d8efd5646a31a81c9316de35d61abd2c8a2df419b888a62a5c80771cd045db60a49d4f87c42f18de743faf6883313dba558c7da4ad209254b9b83010e5f398f609913e6d39420d44eaeff12e3431778ede50b119f0aa7ddd926de1aa34d855013984f2ca785e610e0efae0ffdb424d9caedac7f2e89ada0dee9ac6acb0110e19223db4b8837625732237d3c0f6041c28794c58178c0466ca6d646b9fb6c0941db7854a2f48a2383ea46d047e76a81f06185378c0598ead8535c0b080aa55b0111d8647c197db25ada7d55f559c65a7196fbd7361e92c68203c1842544b61bfd837117a8ab1ff10937737768c7a5fa93f65a39de2bb15370d714f1e0b4e24b6ea801127ec8835b907102f92a14a259054a1914a86afdf424108e83ae6b64b1dca0b69a6e55051cdce368fac7f3b4a50c8d9affae89d4253730eb4f12f38e056f1657ef01000000002c4929070001000000000000000000000000000000000000000000000000000000000000000411c7893f86b34cf020000000000000000000000000000000000000000000546f6b656e427269646765020004000000000000000000000000ee91c335eab126df5fdb3797ea9d6ad93aec9722", + (error: any, stdout: string, stderr: any) => { + if (error) { + done(`Execution error: ${error}`); + return; + } + try { + const outputObject = JSON.parse(stdout); + + const expectedOutput = { + version: 1, + guardianSetIndex: 1, + signatures: [ + { + guardianSetIndex: 2, + signature: + "aa3ffb28f2c401f90b8b5fb7af57bf9249204970053b1ba06bca147c2dab31b21d50c2a7695e8ebed00b07f0b1cb9c1658f41ee59a56b9fb4b289d9c15ce838f01", + }, + { + guardianSetIndex: 3, + signature: + "0976bd5450631765db2c4017f33dd8fbd61dae364d1dfd43cdb866f72f8d4a4b47960026e64560a8823c422dce7c1e2a850aa5226c6b7092606c5224b69450e201", + }, + { + guardianSetIndex: 4, + signature: + "597391bda61d86dcb900d6b0062cf72b52b1ca250d625b3f62f89981041c16ec4b457038388058cdec9c5486baf6e84c1481e124c9f809ced7d73c235fcd400d00", + }, + { + guardianSetIndex: 5, + signature: + "c3356b43ed505d26fd55841925f8dcd4ae176990c4e9654742a20fe3438e0bb7367bd35019a546afe71af895f31e6e70de33ac800f75ee48a9dedac8f9817af500", + }, + { + guardianSetIndex: 6, + signature: + "09f9b2bd1c3f06bf23ed10eca5d13762b28872e1b44dbdb5d1f079c40c396f2a2ad2ac07278bd4cb140f61b86305f89a339dd0d39862f3a1f2cd8a9b7fd3eafe00", + }, + { + guardianSetIndex: 7, + signature: + "79956931cd35e5e54934cadb37d9ad530164d58d9cbf2e39dbd73826a879705350ecd93ac7e48b21f64232b24b423d2d15b897e442dc4df9be7fdb92ebbaa2c100", + }, + { + guardianSetIndex: 9, + signature: + "9af9249cfc3300edb5da61fd425371244a9a30fbfc93df455a3ac59cf3e56a4900da0566b38f8b56059f1795593b92c30c833dc6106657f4554a86f501b1f6b201", + }, + { + guardianSetIndex: 11, + signature: + "adf2b90028e98eef4aea4094c4cd0d3b411837f0469e13468b5016cc955510e808b4aafaa87aea8bc07c7506f3782d0428468df405b21fc36ed2ccfb3287764201", + }, + { + guardianSetIndex: 13, + signature: + "a3f78c15d55d8efd5646a31a81c9316de35d61abd2c8a2df419b888a62a5c80771cd045db60a49d4f87c42f18de743faf6883313dba558c7da4ad209254b9b8301", + }, + { + guardianSetIndex: 14, + signature: + "5f398f609913e6d39420d44eaeff12e3431778ede50b119f0aa7ddd926de1aa34d855013984f2ca785e610e0efae0ffdb424d9caedac7f2e89ada0dee9ac6acb01", + }, + { + guardianSetIndex: 16, + signature: + "e19223db4b8837625732237d3c0f6041c28794c58178c0466ca6d646b9fb6c0941db7854a2f48a2383ea46d047e76a81f06185378c0598ead8535c0b080aa55b01", + }, + { + guardianSetIndex: 17, + signature: + "d8647c197db25ada7d55f559c65a7196fbd7361e92c68203c1842544b61bfd837117a8ab1ff10937737768c7a5fa93f65a39de2bb15370d714f1e0b4e24b6ea801", + }, + { + guardianSetIndex: 18, + signature: + "7ec8835b907102f92a14a259054a1914a86afdf424108e83ae6b64b1dca0b69a6e55051cdce368fac7f3b4a50c8d9affae89d4253730eb4f12f38e056f1657ef01", + }, + ], + timestamp: 0, + nonce: 742992135, + emitterChain: 1, + emitterAddress: + "0x0000000000000000000000000000000000000000000000000000000000000004", + sequence: "1281143524946038000", + consistencyLevel: 32, + payload: { + module: "TokenBridge", + type: "ContractUpgrade", + chain: 4, + address: + "0x000000000000000000000000ee91c335eab126df5fdb3797ea9d6ad93aec9722", + }, + digest: + "0x353bb7417bf9d0873091e29fc07a7b776adb780981aa217b51a6a167941c211a", + }; + + expect(outputObject.version).toBe(expectedOutput.version); + expect(outputObject.guardianSetIndex).toBe( + expectedOutput.guardianSetIndex + ); + expect(outputObject.signatures).toMatchObject( + expectedOutput.signatures + ); + expect(outputObject.timestamp).toBe(expectedOutput.timestamp); + expect(outputObject.nonce).toBe(expectedOutput.nonce); + expect(outputObject.emitterChain).toBe(expectedOutput.emitterChain); + expect(outputObject.emitterAddress).toBe( + expectedOutput.emitterAddress + ); + expect(outputObject.sequence).toBe(expectedOutput.sequence); + expect(outputObject.consistencyLevel).toBe( + expectedOutput.consistencyLevel + ); + expect(outputObject.payload).toMatchObject(expectedOutput.payload); + expect(outputObject.digest).toBe(expectedOutput.digest); + + done(); + } catch (e) { + done(`JSON parse error: ${e}`); + } + } + ); + }); + + it("worm parse token-bridge-upgrade-4", (done) => { + exec( + "node build/main.js parse 01000000010d020366c80e5ee7bed9a53f73a613072f5dedf4cbee2328ea3ab654c2ee74df1bfe0f5997aeec566ac4e5b07eea776275eb11ed74421afd18ce87501a2a4a36cbda0003385d03e9ac2739c73cbbc2a4065d3dbe103b0dd530a329b99752df31d95142ca398940a090efe7bae37f5bc5d741721b5b8fc050cedcc342904fdd4cbef6cbb20004d5ab927c8c6eb4ff77665bcfe782d761dce7d11b9d790df67f7a52ed212ca29c56f0fb7dd6fe9096f10be3339968beb60271c3956678e13711371da876908eab0105586c36c58e271b08888ed096b39ac3655e32d0b4e269b1323cf8318baf48d3ce3becaa972340b21dc5fc53287c1bf88f9cd45ed42a093a0d49d68efe824a7a90000653b21ce041d5f9a5577b65ef0fead13ce1e16abc9244296ceca2bf5a43b592dd2d2bc10d717f8c636cb3e85b6a865cf328387c009df5f600fc7ea3ac478956980007fd5c6ae5916a8002c701ce307455502aae48a8da551b919751099fb40b50f4045f22b06bcad15b9dd6a2828fc25fbcdfa6ea6b4e51a5ddeac11e1353b41bea750008558751e5db02ded0953e2b6e869d9e578d667215afb9e233d11806cfc056b83604994fb1e4ef6fea787484ad023aa9e9066052cb1a70d1ad6a7c6a8465ec4e620109bdd97efa546abbd82a8628d915af619ffd150123ba4f2cd96f9aac48c5817079474ecec60176af59b1a0bf6bce95ef973c0c5d1d2d6d2045477ff2e3031d0889000be146cbb720e243afb0d06ab1b9a732b4f09c6431beaa041c15bcac66883c8d487d294fe1c99b135cd0e6f4f964263cbee995580c5ac517708d50dba433822b59000c601a2106d69e668c9154de17edbf17eaf2a206f05d87100253c37b66f7cf58f744e42510979ddfb392964adf452a25f4c4fb86c9aadb2d02a8b54296aedb4fc8010dece66ba46b1ea485ebad2e79e6bd07fc7d4e4278edfeb79c4f5fc3eb741606ae113c0440eb40c82612390c05eddf569efab00438f19302c6c5a6769614f17c65000fb1e9f4348009f06dc34eed21fbb4f3108c4b1d9f6b6636556e95aade79979df20b6800c150dd19f0772ea393827d47f78051c1bca5e92d25834397089800012b0010f23cb11b21f103cf728b7e0d9ed4b7c1da5bbca7ca64f081bf5dc9fe1235df685c4d2265f61774b9e76f087ad115be62abbe9e3216837839c5cedab8ad0babf901000000000909bab100010000000000000000000000000000000000000000000000000000000000000004056c5c69aaf09b3420000000000000000000000000000000000000000000546f6b656e42726964676502000700000000000000000000000007b5bf20487bf1703dba0222b739fa4fc921fdd1", + (error: any, stdout: string, stderr: any) => { + if (error) { + done(`Execution error: ${error}`); + return; + } + try { + const outputObject = JSON.parse(stdout); + + const expectedOutput = { + version: 1, + guardianSetIndex: 1, + signatures: [ + { + guardianSetIndex: 2, + signature: + "0366c80e5ee7bed9a53f73a613072f5dedf4cbee2328ea3ab654c2ee74df1bfe0f5997aeec566ac4e5b07eea776275eb11ed74421afd18ce87501a2a4a36cbda00", + }, + { + guardianSetIndex: 3, + signature: + "385d03e9ac2739c73cbbc2a4065d3dbe103b0dd530a329b99752df31d95142ca398940a090efe7bae37f5bc5d741721b5b8fc050cedcc342904fdd4cbef6cbb200", + }, + { + guardianSetIndex: 4, + signature: + "d5ab927c8c6eb4ff77665bcfe782d761dce7d11b9d790df67f7a52ed212ca29c56f0fb7dd6fe9096f10be3339968beb60271c3956678e13711371da876908eab01", + }, + { + guardianSetIndex: 5, + signature: + "586c36c58e271b08888ed096b39ac3655e32d0b4e269b1323cf8318baf48d3ce3becaa972340b21dc5fc53287c1bf88f9cd45ed42a093a0d49d68efe824a7a9000", + }, + { + guardianSetIndex: 6, + signature: + "53b21ce041d5f9a5577b65ef0fead13ce1e16abc9244296ceca2bf5a43b592dd2d2bc10d717f8c636cb3e85b6a865cf328387c009df5f600fc7ea3ac4789569800", + }, + { + guardianSetIndex: 7, + signature: + "fd5c6ae5916a8002c701ce307455502aae48a8da551b919751099fb40b50f4045f22b06bcad15b9dd6a2828fc25fbcdfa6ea6b4e51a5ddeac11e1353b41bea7500", + }, + { + guardianSetIndex: 8, + signature: + "558751e5db02ded0953e2b6e869d9e578d667215afb9e233d11806cfc056b83604994fb1e4ef6fea787484ad023aa9e9066052cb1a70d1ad6a7c6a8465ec4e6201", + }, + { + guardianSetIndex: 9, + signature: + "bdd97efa546abbd82a8628d915af619ffd150123ba4f2cd96f9aac48c5817079474ecec60176af59b1a0bf6bce95ef973c0c5d1d2d6d2045477ff2e3031d088900", + }, + { + guardianSetIndex: 11, + signature: + "e146cbb720e243afb0d06ab1b9a732b4f09c6431beaa041c15bcac66883c8d487d294fe1c99b135cd0e6f4f964263cbee995580c5ac517708d50dba433822b5900", + }, + { + guardianSetIndex: 12, + signature: + "601a2106d69e668c9154de17edbf17eaf2a206f05d87100253c37b66f7cf58f744e42510979ddfb392964adf452a25f4c4fb86c9aadb2d02a8b54296aedb4fc801", + }, + { + guardianSetIndex: 13, + signature: + "ece66ba46b1ea485ebad2e79e6bd07fc7d4e4278edfeb79c4f5fc3eb741606ae113c0440eb40c82612390c05eddf569efab00438f19302c6c5a6769614f17c6500", + }, + { + guardianSetIndex: 15, + signature: + "b1e9f4348009f06dc34eed21fbb4f3108c4b1d9f6b6636556e95aade79979df20b6800c150dd19f0772ea393827d47f78051c1bca5e92d25834397089800012b00", + }, + { + guardianSetIndex: 16, + signature: + "f23cb11b21f103cf728b7e0d9ed4b7c1da5bbca7ca64f081bf5dc9fe1235df685c4d2265f61774b9e76f087ad115be62abbe9e3216837839c5cedab8ad0babf901", + }, + ], + timestamp: 0, + nonce: 151632561, + emitterChain: 1, + emitterAddress: + "0x0000000000000000000000000000000000000000000000000000000000000004", + sequence: "390788876583607092", + consistencyLevel: 32, + payload: { + module: "TokenBridge", + type: "ContractUpgrade", + chain: 7, + address: + "0x00000000000000000000000007b5bf20487bf1703dba0222b739fa4fc921fdd1", + }, + digest: + "0xf56a7a71e22bf768e99150e3231e201d9e7667ee28ebfb52c91260d8937b5574", + }; + + expect(outputObject.version).toBe(expectedOutput.version); + expect(outputObject.guardianSetIndex).toBe( + expectedOutput.guardianSetIndex + ); + expect(outputObject.signatures).toMatchObject( + expectedOutput.signatures + ); + expect(outputObject.timestamp).toBe(expectedOutput.timestamp); + expect(outputObject.nonce).toBe(expectedOutput.nonce); + expect(outputObject.emitterChain).toBe(expectedOutput.emitterChain); + expect(outputObject.emitterAddress).toBe( + expectedOutput.emitterAddress + ); + expect(outputObject.sequence).toBe(expectedOutput.sequence); + expect(outputObject.consistencyLevel).toBe( + expectedOutput.consistencyLevel + ); + expect(outputObject.payload).toMatchObject(expectedOutput.payload); + expect(outputObject.digest).toBe(expectedOutput.digest); + + done(); + } catch (e) { + done(`JSON parse error: ${e}`); + } + } + ); + }); +}); diff --git a/clients/js/src/cmds/aptos.ts b/clients/js/src/cmds/aptos.ts index 7f0384d168..b1d326ff5a 100644 --- a/clients/js/src/cmds/aptos.ts +++ b/clients/js/src/cmds/aptos.ts @@ -1,10 +1,3 @@ -import { APTOS_DEPLOYER_ADDRESS_DEVNET } from "@certusone/wormhole-sdk"; -import { - assertChain, - CHAIN_ID_APTOS, - coalesceChainId, - CONTRACTS, -} from "@certusone/wormhole-sdk/lib/esm/utils/consts"; import { BCS, FaucetClient } from "aptos"; import { spawnSync } from "child_process"; import fs from "fs"; @@ -25,13 +18,23 @@ import { RPC_OPTIONS, } from "../consts"; import { runCommand, VALIDATOR_OPTIONS } from "../startValidator"; -import { assertNetwork, checkBinary, evm_address, hex } from "../utils"; +import { checkBinary, evm_address, getNetwork, hex } from "../utils"; +import { + assertChain, + chainToChainId, + contracts, + toChain, + toChainId, +} from "@wormhole-foundation/sdk-base"; const APTOS_NODE_URL = "http://0.0.0.0:8080/v1"; const APTOS_FAUCET_URL = "http://0.0.0.0:8081"; const README_URL = "https://github.com/wormhole-foundation/wormhole/blob/main/aptos/README.md"; +export const APTOS_DEPLOYER_ADDRESS_DEVNET = + "277fa055b6a73c42c0662d5236c65c864ccbf2d4abd21f174a30c8b786eab84b"; + interface Package { meta_file: string; mv_files: string[]; @@ -56,12 +59,11 @@ export const builder = (y: typeof yargs) => (yargs) => yargs.option("network", NETWORK_OPTIONS).option("rpc", RPC_OPTIONS), async (argv) => { - const network = argv.network.toUpperCase(); - assertNetwork(network); + const network = getNetwork(argv.network); const contract_address = evm_address( - CONTRACTS[network].aptos.token_bridge + contracts.tokenBridge(network, "Aptos") ); - const rpc = argv.rpc ?? NETWORKS[network].aptos.rpc; + const rpc = argv.rpc ?? NETWORKS[network].Aptos.rpc; await callEntryFunc( network, rpc, @@ -82,7 +84,7 @@ export const builder = (y: typeof yargs) => .option("chain-id", { describe: "Chain id", type: "number", - default: CHAIN_ID_APTOS, + default: chainToChainId("Aptos"), demandOption: false, }) .option("governance-chain-id", { @@ -104,10 +106,11 @@ export const builder = (y: typeof yargs) => type: "string", }), async (argv) => { - const network = argv.network.toUpperCase(); - assertNetwork(network); + const network = getNetwork(argv.network); - const contract_address = evm_address(CONTRACTS[network].aptos.core); + const contract_address = evm_address( + contracts.coreBridge(network, "Aptos") + ); const guardian_addresses = argv["guardian-address"] .split(",") .map((address) => evm_address(address).substring(24)); @@ -127,7 +130,7 @@ export const builder = (y: typeof yargs) => BCS.bcsSerializeBytes(Buffer.from(governance_address, "hex")), guardians_serializer.getBytes(), ]; - const rpc = argv.rpc ?? NETWORKS[network].aptos.rpc; + const rpc = argv.rpc ?? NETWORKS[network].Aptos.rpc; await callEntryFunc( network, rpc, @@ -152,12 +155,11 @@ export const builder = (y: typeof yargs) => .option("rpc", RPC_OPTIONS) .option("named-addresses", NAMED_ADDRESSES_OPTIONS), async (argv) => { - const network = argv.network.toUpperCase(); - assertNetwork(network); + const network = getNetwork(argv.network); checkBinary("aptos", README_URL); const p = buildPackage(argv["package-dir"], argv["named-addresses"]); const b = serializePackage(p); - const rpc = argv.rpc ?? NETWORKS[network].aptos.rpc; + const rpc = argv.rpc ?? NETWORKS[network].Aptos.rpc; await callEntryFunc( network, rpc, @@ -188,21 +190,18 @@ export const builder = (y: typeof yargs) => .option("rpc", RPC_OPTIONS) .option("named-addresses", NAMED_ADDRESSES_OPTIONS), async (argv) => { - const network = argv.network.toUpperCase(); - assertNetwork(network); + const network = getNetwork(argv.network); checkBinary("aptos", README_URL); const p = buildPackage(argv["package-dir"], argv["named-addresses"]); const b = serializePackage(p); const seed = Buffer.from(argv["seed"], "ascii"); - // TODO(csongor): use deployer address from sdk (when it's there) - let module_name = - "0x277fa055b6a73c42c0662d5236c65c864ccbf2d4abd21f174a30c8b786eab84b::deployer"; - if (network == "TESTNET" || network == "MAINNET") { + let module_name = APTOS_DEPLOYER_ADDRESS_DEVNET + "::deployer"; + if (network == "Testnet" || network == "Mainnet") { module_name = "0x0108bc32f7de18a5f6e1e7d6ee7aff9f5fc858d0d87ac0da94dd8d2a5d267d6b::deployer"; } - const rpc = argv.rpc ?? NETWORKS[network].aptos.rpc; + const rpc = argv.rpc ?? NETWORKS[network].Aptos.rpc; await callEntryFunc( network, rpc, @@ -226,13 +225,10 @@ export const builder = (y: typeof yargs) => }) .option("network", NETWORK_OPTIONS), async (argv) => { - const network = argv.network.toUpperCase(); - assertNetwork(network); - const rpc = NETWORKS[network].aptos.rpc; - // TODO(csongor): use sdk address - let module_name = - "0x277fa055b6a73c42c0662d5236c65c864ccbf2d4abd21f174a30c8b786eab84b::sender"; - if (network == "TESTNET" || network == "MAINNET") { + const network = getNetwork(argv.network); + const rpc = NETWORKS[network].Aptos.rpc; + let module_name = APTOS_DEPLOYER_ADDRESS_DEVNET + "::sender"; + if (network == "Testnet" || network == "Mainnet") { module_name = "0x0108bc32f7de18a5f6e1e7d6ee7aff9f5fc858d0d87ac0da94dd8d2a5d267d6b::sender"; } @@ -287,13 +283,12 @@ export const builder = (y: typeof yargs) => }) .option("network", NETWORK_OPTIONS), async (argv) => { - const network = argv.network.toUpperCase(); - assertNetwork(network); - let address = CONTRACTS[network].aptos.token_bridge; + const network = getNetwork(argv.network); + let address: string = contracts.tokenBridge(network, "Aptos"); if (address.startsWith("0x")) address = address.substring(2); const token_bridge_address = Buffer.from(address, "hex"); - assertChain(argv.chain); - const chain = coalesceChainId(argv.chain); + assertChain(toChain(argv.chain)); + const chain = toChainId(argv.chain); const origin_address = Buffer.from( evm_address(argv["origin-address"]), "hex" @@ -343,12 +338,11 @@ export const builder = (y: typeof yargs) => .option("rpc", RPC_OPTIONS) .option("named-addresses", NAMED_ADDRESSES_OPTIONS), async (argv) => { - const network = argv.network.toUpperCase(); - assertNetwork(network); + const network = getNetwork(argv.network); checkBinary("aptos", README_URL); const p = buildPackage(argv["package-dir"], argv["named-addresses"]); const b = serializePackage(p); - const rpc = argv.rpc ?? NETWORKS[network].aptos.rpc; + const rpc = argv.rpc ?? NETWORKS[network].Aptos.rpc; // TODO(csongor): use deployer address from sdk (when it's there) const hash = await callEntryFunc( network, @@ -378,10 +372,9 @@ export const builder = (y: typeof yargs) => .option("network", NETWORK_OPTIONS) .option("rpc", RPC_OPTIONS), async (argv) => { - const network = argv.network.toUpperCase(); - assertNetwork(network); + const network = getNetwork(argv.network); checkBinary("aptos", README_URL); - const rpc = argv.rpc ?? NETWORKS[network].aptos.rpc; + const rpc = argv.rpc ?? NETWORKS[network].Aptos.rpc; // TODO(csongor): use deployer address from sdk (when it's there) const hash = await callEntryFunc( network, diff --git a/clients/js/src/cmds/chains.ts b/clients/js/src/cmds/chains.ts new file mode 100644 index 0000000000..f0e73d2029 --- /dev/null +++ b/clients/js/src/cmds/chains.ts @@ -0,0 +1,12 @@ +import yargs from "yargs"; +import { chains } from "@wormhole-foundation/sdk"; + +export const command = "chains"; +export const desc = "Print the list of supported chains"; +export const builder = (y: typeof yargs) => { + // No positional parameters needed + return y; +}; +export const handler = () => { + console.log(chains); +}; diff --git a/clients/js/src/cmds/editVaa.ts b/clients/js/src/cmds/editVaa.ts index 8c93ff76dd..5d5da91118 100644 --- a/clients/js/src/cmds/editVaa.ts +++ b/clients/js/src/cmds/editVaa.ts @@ -17,14 +17,14 @@ // import { Implementation__factory } from "@certusone/wormhole-sdk/lib/esm/ethers-contracts"; -import { CONTRACTS } from "@certusone/wormhole-sdk/lib/esm/utils/consts"; import { Other } from "@certusone/wormhole-sdk/lib/esm/vaa"; import axios from "axios"; import { ethers } from "ethers"; import yargs from "yargs"; import { NETWORK_OPTIONS, NETWORKS } from "../consts"; -import { assertNetwork, Network } from "../utils"; import { parse, Payload, serialiseVAA, sign, Signature, VAA } from "../vaa"; +import { contracts, Network } from "@wormhole-foundation/sdk-base"; +import { getNetwork } from "../utils"; export const command = "edit-vaa"; export const desc = "Edits or generates a VAA"; @@ -102,8 +102,7 @@ export const builder = (y: typeof yargs) => export const handler = async ( argv: Awaited["argv"]> ) => { - const network = argv.network.toUpperCase(); - assertNetwork(network); + const network = getNetwork(argv.network); let numSigs = 0; if (argv.signatures) { @@ -235,8 +234,8 @@ const getGuardianSet = async ( network: Network, guardianSetIndex: number ): Promise => { - let n = NETWORKS[network].ethereum; - let contract_address = CONTRACTS[network].ethereum.core; + let n = NETWORKS[network].Ethereum; + let contract_address = contracts.coreBridge(network, "Ethereum"); if (contract_address === undefined) { throw Error(`Unknown core contract on ${network} for ethereum`); } diff --git a/clients/js/src/cmds/evm.ts b/clients/js/src/cmds/evm.ts index 50133acbb0..1a1f126823 100644 --- a/clients/js/src/cmds/evm.ts +++ b/clients/js/src/cmds/evm.ts @@ -1,12 +1,3 @@ -import { - assertChain, - assertEVMChain, - ChainName, - CHAINS, - CONTRACTS, - isEVMChain, - toChainName, -} from "@certusone/wormhole-sdk/lib/esm/utils/consts"; import { ethers } from "ethers"; import { homedir } from "os"; import yargs from "yargs"; @@ -18,7 +9,13 @@ import { setStorageAt, } from "../evm"; import { runCommand, VALIDATOR_OPTIONS } from "../startValidator"; -import { assertNetwork, evm_address } from "../utils"; +import { + assertEVMChain, + chainToChain, + evm_address, + getNetwork, +} from "../utils"; +import { contracts, platformToChains } from "@wormhole-foundation/sdk-base"; export const command = "evm"; export const desc = "EVM utilities"; @@ -81,12 +78,7 @@ export const builder = function (y: typeof yargs) { } ) .command("chains", "Return all EVM chains", async (_) => { - console.log( - Object.values(CHAINS) - .map((id) => toChainName(id)) - .filter((name) => isEVMChain(name)) - .join(" ") - ); + console.log(...platformToChains("Evm")); }) .command( "info", @@ -95,8 +87,9 @@ export const builder = function (y: typeof yargs) { yargs .option("chain", { alias: "c", - describe: "Chain to query", - choices: Object.keys(CHAINS) as ChainName[], + describe: + "Chain to query. To see a list of supported chains, run `worm evm chains`", + type: "string", demandOption: true, } as const) .option("module", { @@ -120,11 +113,9 @@ export const builder = function (y: typeof yargs) { demandOption: false, }), async (argv) => { - const chain = argv.chain; - assertChain(chain); + const chain = chainToChain(argv.chain); assertEVMChain(chain); - const network = argv.network.toUpperCase(); - assertNetwork(network); + const network = getNetwork(argv.network); const module = argv.module; const rpc = argv.rpc ?? NETWORKS[network][chain].rpc; if (argv["implementation-only"]) { @@ -163,7 +154,7 @@ export const builder = function (y: typeof yargs) { alias: "a", describe: "Core contract address", type: "string", - default: CONTRACTS.MAINNET.ethereum.core, + default: contracts.coreBridge("Mainnet", "Ethereum"), }) .option("guardian-address", { alias: "g", @@ -180,7 +171,7 @@ export const builder = function (y: typeof yargs) { }), async (argv) => { const guardian_addresses = argv["guardian-address"].split(","); - let rpc = argv.rpc ?? NETWORKS.DEVNET.ethereum.rpc; + let rpc = argv.rpc ?? NETWORKS.Devnet.Ethereum.rpc; await hijack_evm( rpc, argv["core-contract-address"], diff --git a/clients/js/src/cmds/generate.ts b/clients/js/src/cmds/generate.ts index e59530660c..0b4682c557 100644 --- a/clients/js/src/cmds/generate.ts +++ b/clients/js/src/cmds/generate.ts @@ -1,21 +1,11 @@ -import { tryNativeToHexString } from "@certusone/wormhole-sdk/lib/esm/utils/array"; -import { - assertChain, - ChainName, - CHAINS, - isCosmWasmChain, - isEVMChain, - toChainId, -} from "@certusone/wormhole-sdk/lib/esm/utils/consts"; import { fromBech32, toHex } from "@cosmjs/encoding"; import base58 from "bs58"; import { sha3_256 } from "js-sha3"; import yargs from "yargs"; import { GOVERNANCE_CHAIN, GOVERNANCE_EMITTER } from "../consts"; -import { evm_address } from "../utils"; +import { chainToChain, evm_address } from "../utils"; import { ContractUpgrade, - impossible, Payload, PortalRegisterChain, RecoverChainId, @@ -25,6 +15,11 @@ import { VAA, WormholeRelayerSetDefaultDeliveryProvider, } from "../vaa"; +import { + Chain, + chainToPlatform, + toChainId, +} from "@wormhole-foundation/sdk-base"; function makeVAA( emitterChain: number, @@ -67,8 +62,9 @@ export const builder = function (y: typeof yargs) { yargs .option("chain", { alias: "c", - describe: "Chain to register", - choices: Object.keys(CHAINS) as ChainName[], + describe: + "Chain to register. To see a list of supported chains, run `worm chains`", + type: "string", demandOption: true, } as const) .option("contract-address", { @@ -85,13 +81,13 @@ export const builder = function (y: typeof yargs) { } as const), (argv) => { const module = argv["module"]; - assertChain(argv.chain); + const chain = chainToChain(argv.chain); const payload: PortalRegisterChain = { module, type: "RegisterChain", chain: 0, - emitterChain: toChainId(argv.chain), - emitterAddress: parseAddress(argv.chain, argv["contract-address"]), + emitterChain: toChainId(chain), + emitterAddress: parseAddress(chain, argv["contract-address"]), }; const vaa = makeVAA( GOVERNANCE_CHAIN, @@ -110,8 +106,9 @@ export const builder = function (y: typeof yargs) { yargs .option("chain", { alias: "c", - describe: "Chain to upgrade", - choices: Object.keys(CHAINS) as ChainName[], + describe: + "Chain to upgrade. To see a list of supported chains, run `worm chains`", + type: "string", demandOption: true, } as const) .option("contract-address", { @@ -127,13 +124,13 @@ export const builder = function (y: typeof yargs) { demandOption: true, } as const), (argv) => { - assertChain(argv.chain); + const chain = chainToChain(argv.chain); const module = argv["module"]; const payload: ContractUpgrade = { module, type: "ContractUpgrade", - chain: toChainId(argv.chain), - address: parseCodeAddress(argv.chain, argv["contract-address"]), + chain: toChainId(chain), + address: parseCodeAddress(chain, argv["contract-address"]), }; const vaa = makeVAA( GOVERNANCE_CHAIN, @@ -151,8 +148,9 @@ export const builder = function (y: typeof yargs) { yargs .option("emitter-chain", { alias: "e", - describe: "Emitter chain of the VAA", - choices: Object.keys(CHAINS) as ChainName[], + describe: + "Emitter chain of the VAA. To see a list of supported chains, run `worm chains`", + type: "string", demandOption: true, } as const) .option("emitter-address", { @@ -163,8 +161,9 @@ export const builder = function (y: typeof yargs) { }) .option("chain", { alias: "c", - describe: "Token's chain", - choices: Object.keys(CHAINS) as ChainName[], + describe: + "Token's chain. To see a list of supported chains, run `worm chains`", + type: "string", demandOption: true, } as const) .option("token-address", { @@ -192,15 +191,14 @@ export const builder = function (y: typeof yargs) { demandOption: true, }), (argv) => { - const emitter_chain = argv["emitter-chain"]; - assertChain(argv.chain); - assertChain(emitter_chain); + const emitter_chain = chainToChain(argv["emitter-chain"]); + const chain = chainToChain(argv.chain); const payload: TokenBridgeAttestMeta = { module: "TokenBridge", type: "AttestMeta", chain: 0, - tokenAddress: parseAddress(argv.chain, argv["token-address"]), - tokenChain: toChainId(argv.chain), + tokenAddress: parseAddress(chain, argv["token-address"]), + tokenChain: toChainId(chain), decimals: argv["decimals"], symbol: argv["symbol"], name: argv["name"], @@ -262,8 +260,9 @@ export const builder = function (y: typeof yargs) { return yargs .option("chain", { alias: "c", - describe: "Chain of Wormhole Relayer contract", - choices: Object.keys(CHAINS), + describe: + "Chain of Wormhole Relayer contract. To see a list of supported chains, run `worm chains`", + type: "string", demandOption: true, } as const) .option("delivery-provider-address", { @@ -274,13 +273,13 @@ export const builder = function (y: typeof yargs) { }); }, (argv) => { - assertChain(argv.chain); + const chain = chainToChain(argv.chain); const payload: WormholeRelayerSetDefaultDeliveryProvider = { module: "WormholeRelayer", type: "SetDefaultDeliveryProvider", - chain: toChainId(argv["chain"]), + chain: toChainId(chain), relayProviderAddress: parseAddress( - argv["chain"], + chain, argv["delivery-provider-address"] ), }; @@ -297,45 +296,43 @@ export const builder = function (y: typeof yargs) { }; export const handler = () => {}; -function parseAddress(chain: ChainName, address: string): string { - if (chain === "unset") { - throw Error("Chain unset"); - } else if (isEVMChain(chain)) { +function parseAddress(chain: Chain, address: string): string { + if (chainToPlatform(chain) === "Evm") { return "0x" + evm_address(address); - } else if (isCosmWasmChain(chain)) { + } else if (chainToPlatform(chain) === "Cosmwasm") { return "0x" + toHex(fromBech32(address).data).padStart(64, "0"); - } else if (chain === "solana" || chain === "pythnet") { + } else if (chain === "Solana" || chain === "Pythnet") { return "0x" + toHex(base58.decode(address)).padStart(64, "0"); - } else if (chain === "algorand") { + } else if (chain === "Algorand") { // TODO: is there a better native format for algorand? return "0x" + evm_address(address); - } else if (chain === "near") { + } else if (chain === "Near") { return "0x" + evm_address(address); - } else if (chain === "sui") { + } else if (chain === "Sui") { return "0x" + evm_address(address); - } else if (chain === "aptos") { + } else if (chain === "Aptos") { if (/^(0x)?[0-9a-fA-F]+$/.test(address)) { return "0x" + evm_address(address); } return sha3_256(Buffer.from(address)); // address is hash of fully qualified type - } else if (chain === "btc") { + } else if (chain === "Btc") { throw Error("btc is not supported yet"); - } else if (chain === "cosmoshub") { + } else if (chain === "Cosmoshub") { throw Error("cosmoshub is not supported yet"); - } else if (chain === "evmos") { + } else if (chain === "Evmos") { throw Error("evmos is not supported yet"); - } else if (chain === "kujira") { + } else if (chain === "Kujira") { throw Error("kujira is not supported yet"); - } else if (chain === "rootstock") { + } else if (chain === "Rootstock") { throw Error("rootstock is not supported yet"); } else { - impossible(chain); + throw Error(`Unsupported chain: ${chain}`); } } -function parseCodeAddress(chain: ChainName, address: string): string { - if (isCosmWasmChain(chain)) { +function parseCodeAddress(chain: Chain, address: string): string { + if (chainToPlatform(chain) === "Cosmwasm") { return "0x" + parseInt(address, 10).toString(16).padStart(64, "0"); } else { return parseAddress(chain, address); diff --git a/clients/js/src/cmds/index.ts b/clients/js/src/cmds/index.ts index ebf9f15c68..10dcb1e937 100644 --- a/clients/js/src/cmds/index.ts +++ b/clients/js/src/cmds/index.ts @@ -1,5 +1,6 @@ // https://github.com/yargs/yargs/blob/main/docs/advanced.md#example-command-hierarchy-using-indexmjs import * as aptos from "./aptos"; +import * as chains from "./chains"; import * as editVaa from "./editVaa"; import * as evm from "./evm"; import * as generate from "./generate"; @@ -17,6 +18,7 @@ import * as status from "./status"; // Documentation about command hierarchy can be found here: https://github.com/yargs/yargs/blob/main/docs/advanced.md#example-command-hierarchy-using-indexmjs export const CLI_COMMAND_MODULES = [ aptos, + chains, editVaa, evm, generate, diff --git a/clients/js/src/cmds/info/chainId.ts b/clients/js/src/cmds/info/chainId.ts index 2c76a6c3a3..d0354c5bdc 100644 --- a/clients/js/src/cmds/info/chainId.ts +++ b/clients/js/src/cmds/info/chainId.ts @@ -1,21 +1,19 @@ -import { - assertChain, - coalesceChainId, -} from "@certusone/wormhole-sdk/lib/esm/utils/consts"; import yargs from "yargs"; -import { CHAIN_ID_OR_NAME_CHOICES } from "../../consts"; +import { chainToChain } from "../../utils"; +import { chainToChainId } from "@wormhole-foundation/sdk"; export const command = "chain-id "; export const desc = "Print the wormhole chain ID integer associated with the specified chain name"; export const builder = (y: typeof yargs) => { return y.positional("chain", { - describe: "Chain to query", - choices: CHAIN_ID_OR_NAME_CHOICES, + describe: + "Chain to query. To see a list of supported chains, run `worm chains`", + type: "string", demandOption: true, } as const); }; export const handler = (argv: Awaited["argv"]>) => { - assertChain(argv.chain); - console.log(coalesceChainId(argv.chain)); + const inputChain = chainToChain(argv.chain); + console.log(chainToChainId(inputChain)); }; diff --git a/clients/js/src/cmds/info/contract.ts b/clients/js/src/cmds/info/contract.ts index 36a914e318..616d149107 100644 --- a/clients/js/src/cmds/info/contract.ts +++ b/clients/js/src/cmds/info/contract.ts @@ -1,13 +1,7 @@ -import { - CHAINS, - ChainName, - assertChain, -} from "@certusone/wormhole-sdk/lib/esm/utils/consts"; -import { relayer } from "@certusone/wormhole-sdk"; import yargs from "yargs"; -import { CONTRACTS } from "../../consts"; -import { assertNetwork } from "../../utils"; import { impossible } from "../../vaa"; +import { contracts } from "@wormhole-foundation/sdk-base"; +import { chainToChain, getNetwork } from "../../utils"; export const command = "contract "; export const desc = "Print contract address"; @@ -19,8 +13,9 @@ export const builder = (y: typeof yargs) => demandOption: true, } as const) .positional("chain", { - describe: "Chain to query", - choices: Object.keys(CHAINS) as ChainName[], + describe: + "Chain to query. To see a list of supported chains, run `worm chains`", + type: "string", demandOption: true, } as const) .positional("module", { @@ -31,30 +26,27 @@ export const builder = (y: typeof yargs) => export const handler = async ( argv: Awaited["argv"]> ) => { - const network = argv.network.toUpperCase(); - assertNetwork(network); - const chain = argv.chain; - assertChain(chain); + const network = getNetwork(argv.network); + const chain = chainToChain(argv.chain); const module = argv["module"]; let addr: string | undefined; switch (module) { case "Core": - addr = CONTRACTS[network][chain].core; + addr = contracts.coreBridge.get(network, chain); break; case "NFTBridge": - const addresses = CONTRACTS[network][chain]; - if (!("nft_bridge" in addresses)) { + addr = contracts.nftBridge.get(network, chain); + if (!addr) { throw new Error(`NFTBridge not deployed on ${chain}`); } - addr = addresses.nft_bridge; break; case "TokenBridge": - addr = CONTRACTS[network][chain].token_bridge; + addr = contracts.tokenBridge.get(network, chain); break; case "WormholeRelayer": - addr = relayer.RELAYER_CONTRACTS[network][chain]?.wormholeRelayerAddress; + addr = contracts.relayer.get(network, chain); break; default: impossible(module); diff --git a/clients/js/src/cmds/info/emitter.ts b/clients/js/src/cmds/info/emitter.ts index b8d1dc5f53..1a155be7b7 100644 --- a/clients/js/src/cmds/info/emitter.ts +++ b/clients/js/src/cmds/info/emitter.ts @@ -1,19 +1,15 @@ -import { - CHAINS, - ChainName, - assertChain, -} from "@certusone/wormhole-sdk/lib/esm/utils/consts"; import yargs from "yargs"; import { getEmitterAddress } from "../../emitter"; +import { chainToChain } from "../../utils"; export const command = "emitter
"; export const desc = "Print address in emitter address format"; export const builder = (y: typeof yargs) => y .positional("chain", { - describe: "Chain to query", + describe: + "Chain to query. To see a list of supported chains, run `worm chains`", type: "string", - choices: Object.keys(CHAINS) as ChainName[], demandOption: true, } as const) .positional("address", { @@ -24,6 +20,5 @@ export const builder = (y: typeof yargs) => export const handler = async ( argv: Awaited["argv"]> ) => { - assertChain(argv.chain); - console.log(await getEmitterAddress(argv.chain, argv.address)); + console.log(await getEmitterAddress(chainToChain(argv.chain), argv.address)); }; diff --git a/clients/js/src/cmds/info/origin.ts b/clients/js/src/cmds/info/origin.ts index a1cdfe772d..bb091898b1 100644 --- a/clients/js/src/cmds/info/origin.ts +++ b/clients/js/src/cmds/info/origin.ts @@ -1,16 +1,18 @@ -import { tryUint8ArrayToNative } from "@certusone/wormhole-sdk/lib/esm/utils"; import yargs from "yargs"; import { getOriginalAsset } from "../../chains/generic"; -import { CHAIN_ID_OR_NAME_CHOICES, RPC_OPTIONS } from "../../consts"; -import { assertNetwork } from "../../utils"; +import { RPC_OPTIONS } from "../../consts"; +import { getNetwork, chainToChain } from "../../utils"; +import { tryUint8ArrayToNative } from "../../sdk/array"; +import { toChain } from "@wormhole-foundation/sdk-base"; export const command = "origin
"; export const desc = `Print the origin chain and address of the asset that corresponds to the given chain and address.`; export const builder = (y: typeof yargs) => y .positional("chain", { - describe: "Chain that wrapped asset came from", - choices: CHAIN_ID_OR_NAME_CHOICES, + describe: + "Chain that wrapped asset came from. To see a list of supported chains, run `worm chains`", + type: "string", demandOption: true, } as const) .positional("address", { @@ -32,12 +34,15 @@ export const handler = async ( const consoleWarnTemp = console.warn; console.warn = () => {}; - const network = argv.network.toUpperCase(); - assertNetwork(network); - const res = await getOriginalAsset(argv.chain, network, argv.address); + const network = getNetwork(argv.network); + const res = await getOriginalAsset( + chainToChain(argv.chain), + network, + argv.address + ); console.log({ ...res, - assetAddress: tryUint8ArrayToNative(res.assetAddress, res.chainId), + assetAddress: tryUint8ArrayToNative(res.assetAddress, toChain(res.chainId)), }); console.warn = consoleWarnTemp; diff --git a/clients/js/src/cmds/info/registrations.ts b/clients/js/src/cmds/info/registrations.ts index eab567ce92..c158e788e5 100644 --- a/clients/js/src/cmds/info/registrations.ts +++ b/clients/js/src/cmds/info/registrations.ts @@ -3,16 +3,16 @@ // is defined in the consts.ts file in the SDK (to verify that all chains // are properly registered.) import yargs from "yargs"; -import { - assertChain, - ChainName, - CHAINS, - Contracts, - CONTRACTS, - isEVMChain, - isTerraChain, -} from "@certusone/wormhole-sdk/lib/esm/utils/consts"; import { getEmitterAddress } from "../../emitter"; +import { + Network, + chainToPlatform, + chains, + contracts, + toChain, +} from "@wormhole-foundation/sdk-base"; +import { chainToChain, getNetwork } from "../../utils"; +import { Chain } from "@wormhole-foundation/sdk"; export const command = "registrations "; export const desc = "Print chain registrations"; @@ -24,8 +24,9 @@ export const builder = (y: typeof yargs) => { demandOption: true, } as const) .positional("chain", { - describe: "Chain to query", - choices: Object.keys(CHAINS) as ChainName[], + describe: + "Chain to query. To see a list of supported chains, run `worm chains`", + type: "string", demandOption: true, } as const) .positional("module", { @@ -45,43 +46,39 @@ export const builder = (y: typeof yargs) => { export const handler = async ( argv: Awaited["argv"]> ) => { - assertChain(argv.chain); - const chain = argv.chain; - const network = argv.network.toUpperCase(); - if (network !== "MAINNET" && network !== "TESTNET" && network !== "DEVNET") { - throw Error(`Unknown network: ${network}`); - } + const chain = chainToChain(argv.chain); + const network = getNetwork(argv.network); const module = argv.module; if (module !== "TokenBridge" && module !== "NFTBridge") { throw Error(`Module must be TokenBridge or NFTBridge`); } let results: object; - if (chain === "solana") { + if (chain === "Solana") { const solana = require("../../solana"); results = await solana.queryRegistrationsSolana(network, module); - } else if (isEVMChain(chain)) { + } else if (chainToPlatform(chain) === "Evm") { const evm = require("../../evm"); results = await evm.queryRegistrationsEvm(network, chain, module); - } else if (isTerraChain(chain) || chain === "xpla") { + } else if (chain === "Terra" || chain === "Terra2" || chain === "Xpla") { const terra = require("../../terra"); results = await terra.queryRegistrationsTerra(network, chain, module); - } else if (chain === "injective") { + } else if (chain === "Injective") { const injective = require("../../injective"); results = await injective.queryRegistrationsInjective(network, module); - } else if (chain === "sei") { + } else if (chain === "Sei") { const sei = require("../../chains/sei/registrations"); results = await sei.queryRegistrationsSei(network, module); - } else if (chain === "sui") { + } else if (chain === "Sui") { const sui = require("../../chains/sui/registrations"); results = await sui.queryRegistrationsSui(network, module); - } else if (chain === "aptos") { + } else if (chain === "Aptos") { const aptos = require("../../aptos"); results = await aptos.queryRegistrationsAptos(network, module); } else { throw Error(`Command not supported for chain ${chain}`); } if (argv["verify"]) { - verifyRegistrations(network, chain as string, module, results); + verifyRegistrations(network, chain, module, results); } else { console.log(results); } @@ -89,8 +86,8 @@ export const handler = async ( // verifyRegistrations takes the results returned above and verifies them against the expected values in the consts file. async function verifyRegistrations( - network: "MAINNET" | "TESTNET" | "DEVNET", - chain: string, + network: Network, + chain: Chain, module: "NFTBridge" | "TokenBridge", input: Object ) { @@ -104,25 +101,21 @@ async function verifyRegistrations( // Loop over the chains and make sure everything is in our input, and the values match. const results: { [key: string]: string } = {}; - for (const chainStr in CHAINS) { - const thisChain = chainStr as ChainName; - if (thisChain === "unset" || thisChain === chain) { + for (const chainStr of chains) { + const thisChain = toChain(chainStr); + if (thisChain === chain) { continue; } - const contracts: Contracts = CONTRACTS[network][thisChain]; let expectedAddr: string | undefined; if (module === "TokenBridge") { - expectedAddr = contracts.token_bridge; + expectedAddr = contracts.tokenBridge.get(network, thisChain); } else { - expectedAddr = contracts.nft_bridge; + expectedAddr = contracts.nftBridge.get(network, thisChain); } if (expectedAddr !== undefined) { - expectedAddr = await getEmitterAddress( - thisChain as ChainName, - expectedAddr - ); + expectedAddr = await getEmitterAddress(thisChain, expectedAddr); if (!expectedAddr.startsWith("0x")) { expectedAddr = "0x" + expectedAddr; } diff --git a/clients/js/src/cmds/info/rpc.ts b/clients/js/src/cmds/info/rpc.ts index 030c6585a9..2d13a47f1a 100644 --- a/clients/js/src/cmds/info/rpc.ts +++ b/clients/js/src/cmds/info/rpc.ts @@ -1,11 +1,6 @@ -import { - CHAINS, - ChainName, - assertChain, -} from "@certusone/wormhole-sdk/lib/esm/utils/consts"; import yargs from "yargs"; import { NETWORKS } from "../../consts"; -import { assertNetwork } from "../../utils"; +import { chainToChain, getNetwork } from "../../utils"; export const command = "rpc "; export const desc = "Print RPC address"; @@ -17,15 +12,14 @@ export const builder = (y: typeof yargs) => demandOption: true, } as const) .positional("chain", { - describe: "Chain to query", - choices: Object.keys(CHAINS) as ChainName[], + describe: + "Chain to query. To see a list of supported chains, run `worm chains`", + type: "string", demandOption: true, } as const); export const handler = async ( argv: Awaited["argv"]> ) => { - assertChain(argv.chain); - const network = argv.network.toUpperCase(); - assertNetwork(network); - console.log(NETWORKS[network][argv.chain].rpc); + const network = getNetwork(argv.network); + console.log(NETWORKS[network][chainToChain(argv.chain)].rpc); }; diff --git a/clients/js/src/cmds/info/wrapped.ts b/clients/js/src/cmds/info/wrapped.ts index 5a96eb849a..20ab6898fb 100644 --- a/clients/js/src/cmds/info/wrapped.ts +++ b/clients/js/src/cmds/info/wrapped.ts @@ -1,8 +1,7 @@ -import { assertChain } from "@certusone/wormhole-sdk/lib/esm/utils/consts"; import yargs from "yargs"; import { getWrappedAssetAddress } from "../../chains/generic/getWrappedAssetAddress"; -import { CHAIN_ID_OR_NAME_CHOICES, RPC_OPTIONS } from "../../consts"; -import { assertNetwork } from "../../utils"; +import { RPC_OPTIONS } from "../../consts"; +import { chainToChain, getNetwork } from "../../utils"; export const command = "wrapped "; export const desc = @@ -10,8 +9,9 @@ export const desc = export const builder = (y: typeof yargs) => y .positional("origin-chain", { - describe: "Chain that wrapped asset came from", - choices: CHAIN_ID_OR_NAME_CHOICES, + describe: + "Chain that wrapped asset came from. To see a list of supported chains, run `worm chains`", + type: "string", demandOption: true, } as const) .positional("origin-address", { @@ -20,8 +20,9 @@ export const builder = (y: typeof yargs) => demandOption: true, }) .positional("target-chain", { - describe: "Chain to query for wrapped asset address", - choices: CHAIN_ID_OR_NAME_CHOICES, + describe: + "Chain to query for wrapped asset address. To see a list of supported chains, run `worm chains`", + type: "string", demandOption: true, } as const) .option("network", { @@ -42,14 +43,10 @@ export const handler = async ( const consoleWarnTemp = console.warn; console.warn = () => {}; - const originChain = argv["origin-chain"]; + const originChain = chainToChain(argv["origin-chain"]); const originAddress = argv["origin-address"]; - const targetChain = argv["target-chain"]; - const network = argv.network.toUpperCase(); - - assertChain(originChain); - assertChain(targetChain); - assertNetwork(network); + const targetChain = chainToChain(argv["target-chain"]); + const network = getNetwork(argv.network); console.log( await getWrappedAssetAddress( diff --git a/clients/js/src/cmds/near.ts b/clients/js/src/cmds/near.ts index 2a05aef149..7d61cb97a8 100644 --- a/clients/js/src/cmds/near.ts +++ b/clients/js/src/cmds/near.ts @@ -4,8 +4,9 @@ import { Account, KeyPair, connect } from "near-api-js"; import { InMemoryKeyStore } from "near-api-js/lib/key_stores"; import { parseSeedPhrase } from "near-seed-phrase"; import yargs from "yargs"; -import { CONTRACTS, NETWORKS, NETWORK_OPTIONS, RPC_OPTIONS } from "../consts"; -import { assertNetwork } from "../utils"; +import { NETWORKS, NETWORK_OPTIONS, RPC_OPTIONS } from "../consts"; +import { contracts } from "@wormhole-foundation/sdk-base"; +import { getNetwork } from "../utils"; // Near utilities export const command = "near"; @@ -55,14 +56,12 @@ export const builder = function (y: typeof yargs) { demandOption: true, }), async (argv) => { - const network = argv.network.toUpperCase(); - assertNetwork(network); - const contracts = CONTRACTS[network].near; + const network = getNetwork(argv.network); const { rpc: defaultRpc, key: defaultKey, networkId, - } = NETWORKS[network].near; + } = NETWORKS[network].Near; const key = argv.key ?? @@ -80,12 +79,12 @@ export const builder = function (y: typeof yargs) { let target = argv.target; if (!argv.target && argv.module) { if (argv.module === "Core") { - target = contracts.core; + target = contracts.coreBridge(network, "Near"); console.log("Setting target to core"); } if (argv.module === "TokenBridge") { - target = contracts.token_bridge; + target = contracts.tokenBridge(network, "Near"); console.log("Setting target to token_bridge"); } } @@ -125,14 +124,12 @@ export const builder = function (y: typeof yargs) { demandOption: true, }), async (argv) => { - const network = argv.network.toUpperCase(); - assertNetwork(network); - const contracts = CONTRACTS[network].near; + const network = getNetwork(argv.network); const { rpc: defaultRpc, key: defaultKey, networkId, - } = NETWORKS[network].near; + } = NETWORKS[network].Near; const key = argv.key ?? @@ -150,12 +147,12 @@ export const builder = function (y: typeof yargs) { let target = argv.target; if (!argv.target && argv.module) { if (argv.module === "Core") { - target = contracts.core; + target = contracts.coreBridge(network, "Near"); console.log("Setting target to core"); } if (argv.module === "TokenBridge") { - target = contracts.token_bridge; + target = contracts.tokenBridge(network, "Near"); console.log("Setting target to token_bridge"); } } diff --git a/clients/js/src/cmds/status.ts b/clients/js/src/cmds/status.ts index b9a4d45e8f..b04740b91b 100644 --- a/clients/js/src/cmds/status.ts +++ b/clients/js/src/cmds/status.ts @@ -1,14 +1,14 @@ +import yargs from "yargs"; +import { ethers } from "ethers"; +import { NETWORKS } from "../consts"; +import { chainToChain, getNetwork } from "../utils"; import { - CHAINS, - ChainName, + Chain, assertChain, -} from "@certusone/wormhole-sdk/lib/esm/utils/consts"; -import { relayer, Network } from "@certusone/wormhole-sdk"; -import yargs, { string } from "yargs"; -import { CONTRACTS, NETWORKS } from "../consts"; -import { assertNetwork } from "../utils"; -import { impossible } from "../vaa"; -import { ethers } from "ethers"; + chainToChainId, + contracts, +} from "@wormhole-foundation/sdk-base"; +import { ChainName, relayer, toChainName } from "@certusone/wormhole-sdk"; export const command = "status "; export const desc = @@ -21,8 +21,9 @@ export const builder = (y: typeof yargs) => demandOption: true, } as const) .positional("chain", { - describe: "Source chain", - choices: Object.keys(CHAINS) as ChainName[], + describe: + "Source chain. To see a list of supported chains, run `worm chains`", + type: "string", demandOption: true, } as const) .positional("tx", { @@ -33,31 +34,34 @@ export const builder = (y: typeof yargs) => export const handler = async ( argv: Awaited["argv"]> ) => { - const network = argv.network.toUpperCase(); - assertNetwork(network); - const chain = argv.chain; + const network = getNetwork(argv.network); + const chain = chainToChain(argv.chain); assertChain(chain); - const addr = - relayer.RELAYER_CONTRACTS[network][chain]?.wormholeRelayerAddress; + const addr = contracts.relayer.get(network, chain); if (!addr) { throw new Error(`Wormhole Relayer not deployed on ${chain} in ${network}`); } - const sourceRPC = NETWORKS[network as Network][chain as ChainName].rpc; + const sourceRPC = NETWORKS[network][chain].rpc; const sourceChainProvider = new ethers.providers.JsonRpcProvider(sourceRPC); const targetChainProviders = new Map(); for (const key in NETWORKS[network]) { targetChainProviders.set( - key as ChainName, - new ethers.providers.JsonRpcProvider( - NETWORKS[network as Network][key as ChainName].rpc - ) + toChainName(chainToChainId(key as Chain)), + new ethers.providers.JsonRpcProvider(NETWORKS[network][key as Chain].rpc) ); } - const info = await relayer.getWormholeRelayerInfo(chain, argv.tx, { - environment: network, + // TODO: Convert this over to sdkv2 + const v1ChainName = toChainName(chainToChainId(chain)); + const info = await relayer.getWormholeRelayerInfo(v1ChainName, argv.tx, { + environment: + network === "Devnet" + ? "DEVNET" + : network === "Testnet" + ? "TESTNET" + : "MAINNET", sourceChainProvider, targetChainProviders, }); diff --git a/clients/js/src/cmds/submit.ts b/clients/js/src/cmds/submit.ts index b85a1cb5e2..a89a3aa66d 100644 --- a/clients/js/src/cmds/submit.ts +++ b/clients/js/src/cmds/submit.ts @@ -1,15 +1,3 @@ -import { - assertChain, - ChainId, - ChainName, - CHAINS, - coalesceChainName, - Contracts, - CONTRACTS, - isEVMChain, - isTerraChain, - toChainName, -} from "@certusone/wormhole-sdk/lib/esm/utils/consts"; import yargs from "yargs"; import { execute_algorand } from "../algorand"; import { execute_aptos } from "../aptos"; @@ -21,11 +9,22 @@ import { execute_injective } from "../injective"; import { execute_near } from "../near"; import { execute_solana } from "../solana"; import { execute_terra } from "../terra"; -import { assertNetwork } from "../utils"; -import { assertKnownPayload, impossible, parse, Payload, VAA } from "../vaa"; +import { assertKnownPayload, parse, Payload, VAA } from "../vaa"; import { execute_xpla } from "../xpla"; import { NETWORKS } from "../consts"; -import { Network } from "../utils"; +import { chainToChain, getNetwork } from "../utils"; +import { + Chain, + Network, + PlatformToChains, + assertChain, + assertChainId, + chainIdToChain, + chainToPlatform, + chains, + contracts, + toChain, +} from "@wormhole-foundation/sdk"; export const command = "submit "; export const desc = "Execute a VAA"; @@ -38,8 +37,9 @@ export const builder = (y: typeof yargs) => }) .option("chain", { alias: "c", - describe: "chain name", - choices: Object.keys(CHAINS) as ChainName[], + describe: + "chain name. To see a list of supported chains, run `worm chains`", + type: "string", demandOption: false, } as const) .option("network", NETWORK_OPTIONS) @@ -72,8 +72,7 @@ export const handler = async ( assertKnownPayload(parsed_vaa); console.log(parsed_vaa.payload); - const network = argv.network.toUpperCase(); - assertNetwork(network); + const network = getNetwork(argv.network); if (argv["all-chains"]) { if (argv.rpc) { @@ -104,22 +103,34 @@ export const handler = async ( // get VAA chain const vaa_chain_id = "chain" in parsed_vaa.payload ? parsed_vaa.payload.chain : 0; - assertChain(vaa_chain_id); - const vaa_chain = toChainName(vaa_chain_id); + + // if vaa_chain_id is 0, it means the chain is not specified in the VAA. + // We don't have a notion of an unsupported chain, so we don't want to just assert. + let vaa_chain; + if (vaa_chain_id !== 0) { + assertChainId(vaa_chain_id); + vaa_chain = chainIdToChain(vaa_chain_id); + } // get chain from command line arg - const cli_chain = argv.chain; + const cli_chain = argv.chain ? chainToChain(argv.chain) : argv.chain; - let chain: ChainName; + let chain: Chain; if (cli_chain !== undefined) { assertChain(cli_chain); - if (vaa_chain !== "unset" && cli_chain !== vaa_chain) { + if (vaa_chain && cli_chain !== vaa_chain) { throw Error( `Specified target chain (${cli_chain}) does not match VAA target chain (${vaa_chain})` ); } - chain = coalesceChainName(cli_chain); + chain = toChain(cli_chain); } else { + if (!vaa_chain) { + throw Error( + `VAA does not specify a target chain and one was not provided, please specify one with --chain or -c` + ); + } + assertChain(vaa_chain); chain = vaa_chain; } @@ -139,75 +150,43 @@ async function executeSubmit( parsedVaa: VAA, buf: Buffer, network: Network, - chain: ChainName, + chain: Chain, rpc: string | undefined, contractAddress: string | undefined ) { - if (chain === "unset") { - throw Error( - "This VAA does not specify the target chain, please provide it by hand using the '--chain' flag." - ); - } else if (isEVMChain(chain)) { + if (chainToPlatform(chain) === "Evm") { await execute_evm( parsedVaa.payload, buf, network, - chain, + chain as PlatformToChains<"Evm">, contractAddress, rpc ); - } else if (isTerraChain(chain)) { + } else if (chain === "Terra" || chain === "Terra2") { await execute_terra(parsedVaa.payload, buf, network, chain); - } else if (chain === "solana" || chain === "pythnet") { + } else if (chain === "Solana" || chain === "Pythnet") { await execute_solana(parsedVaa, buf, network, chain); - } else if (chain === "algorand") { + } else if (chain === "Algorand") { await execute_algorand( parsedVaa.payload, new Uint8Array(Buffer.from(vaaHex, "hex")), network ); - } else if (chain === "near") { + } else if (chain === "Near") { await execute_near(parsedVaa.payload, vaaHex, network); - } else if (chain === "injective") { + } else if (chain === "Injective") { await execute_injective(parsedVaa.payload, buf, network); - } else if (chain === "xpla") { + } else if (chain === "Xpla") { await execute_xpla(parsedVaa.payload, buf, network); - } else if (chain === "sei") { + } else if (chain === "Sei") { await submitSei(parsedVaa.payload, buf, network, rpc); - } else if (chain === "osmosis") { - throw Error("OSMOSIS is not supported yet"); - } else if (chain === "sui") { + } else if (chain === "Sui") { await submitSui(parsedVaa.payload, buf, network, rpc); - } else if (chain === "aptos") { + } else if (chain === "Aptos") { await execute_aptos(parsedVaa.payload, buf, network, contractAddress, rpc); - } else if (chain === "wormchain") { - throw Error("Wormchain is not supported yet"); - } else if (chain === "btc") { - throw Error("btc is not supported yet"); - } else if (chain === "cosmoshub") { - throw Error("Cosmoshub is not supported yet"); - } else if (chain === "evmos") { - throw Error("Evmos is not supported yet"); - } else if (chain === "kujira") { - throw Error("kujira is not supported yet"); - } else if (chain === "neutron") { - throw Error("neutron is not supported yet"); - } else if (chain === "celestia") { - throw Error("celestia is not supported yet"); - } else if (chain === "stargaze") { - throw Error("stargaze is not supported yet"); - } else if (chain === "seda") { - throw Error("seda is not supported yet"); - } else if (chain === "dymension") { - throw Error("dymension is not supported yet"); - } else if (chain === "provenance") { - throw Error("provenance is not supported yet"); - } else if (chain === "rootstock") { - throw Error("rootstock is not supported yet"); } else { - // If you get a type error here, hover over `chain`'s type and it tells you - // which cases are not handled - impossible(chain); + throw new Error(`Unsupported chain: ${chain}`); } } @@ -217,24 +196,19 @@ async function submitToAll( buf: Buffer, network: Network ) { - let skip_chain: ChainName = "unset"; + let skip_chain: Chain; if (parsedVaa.payload.type === "RegisterChain") { - skip_chain = toChainName(parsedVaa.payload.emitterChain as ChainId); + skip_chain = toChain(parsedVaa.payload.emitterChain); } else if (parsedVaa.payload.type === "AttestMeta") { - skip_chain = toChainName(parsedVaa.payload.tokenChain as ChainId); + skip_chain = toChain(parsedVaa.payload.tokenChain); } else { throw Error( `Invalid VAA payload type (${parsedVaa.payload.type}), only "RegisterChain" and "AttestMeta" are supported with --all-chains` ); } - for (const chainStr in CHAINS) { - let chain = chainStr as ChainName; - if (chain === "unset") { - continue; - } + for (const chain of chains) { const n = NETWORKS[network][chain]; - const contracts: Contracts = CONTRACTS[network][chain]; if (chain == skip_chain) { console.log(`Skipping ${chain} because it's the origin chain`); continue; @@ -243,15 +217,11 @@ async function submitToAll( console.log(`Skipping ${chain} because the rpc is not defined`); continue; } - if (!contracts) { - console.log( - `Skipping ${chain} because the contract entry is not defined` - ); - return true; - } if ( - (parsedVaa.payload.module === "TokenBridge" && !contracts.token_bridge) || - (parsedVaa.payload.module === "NFTBridge" && !contracts.nft_bridge) + (parsedVaa.payload.module === "TokenBridge" && + !contracts.tokenBridge.get(network, chain)) || + (parsedVaa.payload.module === "NFTBridge" && + !contracts.nftBridge.get(network, chain)) ) { console.log(`Skipping ${chain} because the contract is not defined`); continue; diff --git a/clients/js/src/cmds/sui/build.ts b/clients/js/src/cmds/sui/build.ts index 3ebf90dd93..651514d4bd 100644 --- a/clients/js/src/cmds/sui/build.ts +++ b/clients/js/src/cmds/sui/build.ts @@ -1,14 +1,10 @@ import path from "path"; import yargs from "yargs"; import { buildCoin, getProvider } from "../../chains/sui"; -import { - CONTRACTS, - NETWORKS, - NETWORK_OPTIONS, - RPC_OPTIONS, -} from "../../consts"; -import { assertNetwork, checkBinary } from "../../utils"; +import { NETWORKS, NETWORK_OPTIONS, RPC_OPTIONS } from "../../consts"; +import { checkBinary, getNetwork } from "../../utils"; import { YargsAddCommandsFn } from "../Yargs"; +import { contracts } from "@wormhole-foundation/sdk"; const README_URL = "https://github.com/wormhole-foundation/wormhole/blob/main/sui/README.md"; @@ -58,17 +54,16 @@ export const addBuildCommands: YargsAddCommandsFn = (y: typeof yargs) => async (argv) => { checkBinary("sui", README_URL); - const network = argv.network.toUpperCase(); - assertNetwork(network); + const network = getNetwork(argv.network); const decimals = argv["decimals"]; const version = argv["version-struct"]; const packagePath = argv["package-path"] ?? path.resolve(__dirname, "../../../../../sui/examples"); const coreBridgeStateObjectId = - argv["wormhole-state"] ?? CONTRACTS[network].sui.core; + argv["wormhole-state"] ?? contracts.coreBridge(network, "Sui"); const tokenBridgeStateObjectId = - argv["token-bridge-state"] ?? CONTRACTS[network].sui.token_bridge; + argv["token-bridge-state"] ?? contracts.tokenBridge(network, "Sui"); if (!coreBridgeStateObjectId) { throw new Error( @@ -84,7 +79,7 @@ export const addBuildCommands: YargsAddCommandsFn = (y: typeof yargs) => const provider = getProvider( network, - argv.rpc ?? NETWORKS[network].sui.rpc + argv.rpc ?? NETWORKS[network].Sui.rpc ); const build = await buildCoin( provider, diff --git a/clients/js/src/cmds/sui/deploy.ts b/clients/js/src/cmds/sui/deploy.ts index e620b16563..e822ceb29a 100644 --- a/clients/js/src/cmds/sui/deploy.ts +++ b/clients/js/src/cmds/sui/deploy.ts @@ -17,8 +17,9 @@ import { PRIVATE_KEY_OPTIONS, RPC_OPTIONS, } from "../../consts"; -import { Network, assertNetwork, checkBinary } from "../../utils"; +import { checkBinary, getNetwork } from "../../utils"; import { YargsAddCommandsFn } from "../Yargs"; +import { Network } from "@wormhole-foundation/sdk"; const README_URL = "https://github.com/wormhole-foundation/wormhole/blob/main/sui/README.md"; @@ -42,8 +43,7 @@ export const addDeployCommands: YargsAddCommandsFn = (y: typeof yargs) => checkBinary("sui", README_URL); const packageDir = argv["package-dir"]; - const network = argv.network.toUpperCase(); - assertNetwork(network); + const network = getNetwork(argv.network); const debug = argv.debug ?? false; const privateKey = argv["private-key"]; const rpc = argv.rpc; @@ -66,7 +66,7 @@ export const deploy = async ( rpc?: string, privateKey?: string ): Promise => { - rpc = rpc ?? NETWORKS[network].sui.rpc; + rpc = rpc ?? NETWORKS[network].Sui.rpc; const provider = getProvider(network, rpc); const signer = getSigner(provider, network, privateKey); diff --git a/clients/js/src/cmds/sui/init.ts b/clients/js/src/cmds/sui/init.ts index 4d3f816035..0a7e231e9d 100644 --- a/clients/js/src/cmds/sui/init.ts +++ b/clients/js/src/cmds/sui/init.ts @@ -22,8 +22,9 @@ import { PRIVATE_KEY_OPTIONS, RPC_OPTIONS, } from "../../consts"; -import { Network, assertNetwork } from "../../utils"; import { YargsAddCommandsFn } from "../Yargs"; +import { getNetwork } from "../../utils"; +import { Network } from "@wormhole-foundation/sdk"; export const addInitCommands: YargsAddCommandsFn = (y: typeof yargs) => y @@ -48,8 +49,7 @@ export const addInitCommands: YargsAddCommandsFn = (y: typeof yargs) => .option("private-key", PRIVATE_KEY_OPTIONS) .option("rpc", RPC_OPTIONS), async (argv) => { - const network = argv.network.toUpperCase(); - assertNetwork(network); + const network = getNetwork(argv.network); const packageId = argv["package-id"]; const wormholeStateObjectId = argv["wormhole-state"]; const privateKey = argv["private-key"]; @@ -108,14 +108,13 @@ export const addInitCommands: YargsAddCommandsFn = (y: typeof yargs) => .option("private-key", PRIVATE_KEY_OPTIONS) .option("rpc", RPC_OPTIONS), async (argv) => { - const network = argv.network.toUpperCase(); - assertNetwork(network); + const network = getNetwork(argv.network); const packageId = argv["package-id"]; const wormholeStateObjectId = argv["wormhole-state"]; const governanceChainId = argv["governance-chain-id"]; const governanceContract = argv["governance-address"]; const privateKey = argv["private-key"]; - const rpc = argv.rpc ?? NETWORKS[network].sui.rpc; + const rpc = argv.rpc ?? NETWORKS[network].Sui.rpc; const res = await initTokenBridge( network, @@ -180,8 +179,7 @@ export const addInitCommands: YargsAddCommandsFn = (y: typeof yargs) => .option("private-key", PRIVATE_KEY_OPTIONS) .option("rpc", RPC_OPTIONS), async (argv) => { - const network = argv.network.toUpperCase(); - assertNetwork(network); + const network = getNetwork(argv.network); const packageId = argv["package-id"]; const initialGuardian = argv["initial-guardian"]; const debug = argv.debug ?? false; @@ -222,7 +220,7 @@ export const initExampleApp = async ( rpc?: string, privateKey?: string ): Promise => { - rpc = rpc ?? NETWORKS[network].sui.rpc; + rpc = rpc ?? NETWORKS[network].Sui.rpc; const provider = getProvider(network, rpc); const signer = getSigner(provider, network, privateKey); @@ -244,7 +242,7 @@ export const initTokenBridge = async ( rpc?: string, privateKey?: string ): Promise => { - rpc = rpc ?? NETWORKS[network].sui.rpc; + rpc = rpc ?? NETWORKS[network].Sui.rpc; const provider = getProvider(network, rpc); const signer = getSigner(provider, network, privateKey); const owner = await signer.getAddress(); @@ -307,7 +305,7 @@ export const initWormhole = async ( rpc?: string, privateKey?: string ): Promise => { - rpc = rpc ?? NETWORKS[network].sui.rpc; + rpc = rpc ?? NETWORKS[network].Sui.rpc; const provider = getProvider(network, rpc); const signer = getSigner(provider, network, privateKey); const owner = await signer.getAddress(); diff --git a/clients/js/src/cmds/sui/publishMessage.ts b/clients/js/src/cmds/sui/publishMessage.ts index 064709d24e..0722ef2105 100644 --- a/clients/js/src/cmds/sui/publishMessage.ts +++ b/clients/js/src/cmds/sui/publishMessage.ts @@ -13,8 +13,8 @@ import { setMaxGasBudgetDevnet, } from "../../chains/sui"; import { NETWORK_OPTIONS, NETWORKS, RPC_OPTIONS } from "../../consts"; -import { assertNetwork } from "../../utils"; import { YargsAddCommandsFn } from "../Yargs"; +import { getNetwork } from "../../utils"; export const addPublishMessageCommands: YargsAddCommandsFn = ( y: typeof yargs @@ -57,14 +57,13 @@ export const addPublishMessageCommands: YargsAddCommandsFn = ( }) .option("rpc", RPC_OPTIONS), async (argv) => { - const network = argv.network.toUpperCase(); - assertNetwork(network); + const network = getNetwork(argv.network); const packageId = argv["package-id"]; const stateObjectId = argv.state; const wormholeStateObjectId = argv["wormhole-state"]; const message = argv.message; const privateKey = argv["private-key"]; - const rpc = argv.rpc ?? NETWORKS[network].sui.rpc; + const rpc = argv.rpc ?? NETWORKS[network].Sui.rpc; const provider = getProvider(network, rpc); const signer = getSigner(provider, network, privateKey); diff --git a/clients/js/src/cmds/sui/setup.ts b/clients/js/src/cmds/sui/setup.ts index 380b99af9f..e73dcba650 100644 --- a/clients/js/src/cmds/sui/setup.ts +++ b/clients/js/src/cmds/sui/setup.ts @@ -1,8 +1,3 @@ -import { - ChainId, - ChainName, - coalesceChainName, -} from "@certusone/wormhole-sdk/lib/esm/utils/consts"; import { parseTokenBridgeRegisterChainVaa } from "@certusone/wormhole-sdk/lib/esm/vaa/tokenBridge"; import { JsonRpcProvider, @@ -36,6 +31,7 @@ import { import { YargsAddCommandsFn } from "../Yargs"; import { deploy } from "./deploy"; import { initExampleApp, initTokenBridge, initWormhole } from "./init"; +import { Chain, chainIdToChain, toChainId } from "@wormhole-foundation/sdk"; export const addSetupCommands: YargsAddCommandsFn = (y: typeof yargs) => y.command( @@ -51,9 +47,9 @@ export const addSetupCommands: YargsAddCommandsFn = (y: typeof yargs) => }) .option("rpc", RPC_OPTIONS), async (argv) => { - const network = "DEVNET"; + const network = "Devnet"; const privateKey = argv["private-key"]; - const rpc = argv.rpc ?? NETWORKS[network].sui.rpc; + const rpc = argv.rpc ?? NETWORKS[network].Sui.rpc; // Deploy core bridge console.log("[1/4] Deploying core bridge..."); @@ -200,15 +196,15 @@ export const addSetupCommands: YargsAddCommandsFn = (y: typeof yargs) => dotenv.config({ path: envPath }); const tx = new TransactionBlock(); - setMaxGasBudgetDevnet("DEVNET", tx); - const registrations: { chain: ChainName; module: string }[] = []; + setMaxGasBudgetDevnet("Devnet", tx); + const registrations: { chain: Chain; module: string }[] = []; for (const key in process.env) { if (/^REGISTER_(.+)_TOKEN_BRIDGE_VAA$/.test(key)) { // Get VAA info const vaa = Buffer.from(String(process.env[key]), "hex"); const { foreignChain, module } = parseTokenBridgeRegisterChainVaa(vaa); - const chain = coalesceChainName(foreignChain as ChainId); + const chain = chainIdToChain(toChainId(foreignChain)); registrations.push({ chain, module }); // Register diff --git a/clients/js/src/cmds/sui/utils.ts b/clients/js/src/cmds/sui/utils.ts index 6919781b76..1027a162b2 100644 --- a/clients/js/src/cmds/sui/utils.ts +++ b/clients/js/src/cmds/sui/utils.ts @@ -2,8 +2,8 @@ import { PaginatedObjectsResponse } from "@mysten/sui.js"; import yargs from "yargs"; import { getPackageId, getProvider } from "../../chains/sui"; import { NETWORKS, NETWORK_OPTIONS, RPC_OPTIONS } from "../../consts"; -import { assertNetwork } from "../../utils"; import { YargsAddCommandsFn } from "../Yargs"; +import { getNetwork } from "../../utils"; export const addUtilsCommands: YargsAddCommandsFn = (y: typeof yargs) => y @@ -20,9 +20,8 @@ export const addUtilsCommands: YargsAddCommandsFn = (y: typeof yargs) => .option("network", NETWORK_OPTIONS) .option("rpc", RPC_OPTIONS), async (argv) => { - const network = argv.network.toUpperCase(); - assertNetwork(network); - const rpc = argv.rpc ?? NETWORKS[network].sui.rpc; + const network = getNetwork(argv.network); + const rpc = argv.rpc ?? NETWORKS[network].Sui.rpc; const owner = argv.owner; const provider = getProvider(network, rpc); @@ -61,9 +60,8 @@ export const addUtilsCommands: YargsAddCommandsFn = (y: typeof yargs) => .option("network", NETWORK_OPTIONS) .option("rpc", RPC_OPTIONS), async (argv) => { - const network = argv.network.toUpperCase(); - assertNetwork(network); - const rpc = argv.rpc ?? NETWORKS[network].sui.rpc; + const network = getNetwork(argv.network); + const rpc = argv.rpc ?? NETWORKS[network].Sui.rpc; const provider = getProvider(network, rpc); console.log(await getPackageId(provider, argv["state-object-id"])); } @@ -89,9 +87,8 @@ export const addUtilsCommands: YargsAddCommandsFn = (y: typeof yargs) => } as const) .option("rpc", RPC_OPTIONS), async (argv) => { - const network = argv.network.toUpperCase(); - assertNetwork(network); - const rpc = argv.rpc ?? NETWORKS[network].sui.rpc; + const network = getNetwork(argv.network); + const rpc = argv.rpc ?? NETWORKS[network].Sui.rpc; const provider = getProvider(network, rpc); console.log( JSON.stringify( diff --git a/clients/js/src/cmds/transfer.ts b/clients/js/src/cmds/transfer.ts index bb3df464c7..bf3c0ba1ee 100644 --- a/clients/js/src/cmds/transfer.ts +++ b/clients/js/src/cmds/transfer.ts @@ -1,13 +1,6 @@ -import { - isCosmWasmChain, - isEVMChain, - isTerraChain, -} from "@certusone/wormhole-sdk/lib/esm/utils/consts"; import yargs from "yargs"; -import { impossible } from "../vaa"; import { transferEVM } from "../evm"; -import { CHAIN_NAME_CHOICES, NETWORK_OPTIONS, NETWORKS } from "../consts"; -import { assertNetwork } from "../utils"; +import { NETWORK_OPTIONS, NETWORKS } from "../consts"; import { transferTerra } from "../terra"; import { transferInjective } from "../injective"; import { transferXpla } from "../xpla"; @@ -16,19 +9,28 @@ import { transferAlgorand } from "../algorand"; import { transferNear } from "../near"; import { transferSui } from "../chains/sui/transfer"; import { transferAptos } from "../aptos"; +import { + Chain, + PlatformToChains, + chainToPlatform, + toChain, +} from "@wormhole-foundation/sdk-base"; +import { chainToChain, getNetwork } from "../utils"; export const command = "transfer"; export const desc = "Transfer a token"; export const builder = (y: typeof yargs) => y .option("src-chain", { - describe: "source chain", - choices: CHAIN_NAME_CHOICES, + describe: + "source chain. To see a list of supported chains, run `worm chains`", + type: "string", demandOption: true, }) .option("dst-chain", { - describe: "destination chain", - choices: CHAIN_NAME_CHOICES, + describe: + "destination chain. To see a list of supported chains, run `worm chains`", + type: "string", demandOption: true, }) .option("dst-addr", { @@ -58,16 +60,10 @@ export const builder = (y: typeof yargs) => export const handler = async ( argv: Awaited["argv"]> ) => { - const srcChain = argv["src-chain"]; - const dstChain = argv["dst-chain"]; - if (srcChain === "unset") { - throw new Error("source chain is unset"); - } - if (dstChain === "unset") { - throw new Error("destination chain is unset"); - } + const srcChain: Chain = chainToChain(argv["src-chain"]); + const dstChain: Chain = chainToChain(argv["dst-chain"]); // TODO: support transfers to sei - if (dstChain === "sei") { + if (dstChain === "Sei") { throw new Error("transfer to sei currently unsupported"); } if (srcChain === dstChain) { @@ -78,19 +74,18 @@ export const handler = async ( throw new Error("amount must be greater than 0"); } const tokenAddr = argv["token-addr"]; - if (tokenAddr === "native" && isCosmWasmChain(srcChain)) { + if (tokenAddr === "native" && chainToPlatform(srcChain) === "Cosmwasm") { throw new Error(`token-addr must be specified for ${srcChain}`); } const dstAddr = argv["dst-addr"]; - const network = argv.network.toUpperCase(); - assertNetwork(network); - const rpc = argv.rpc ?? NETWORKS[network][srcChain].rpc; + const network = getNetwork(argv.network); + const rpc = argv.rpc ?? NETWORKS[network][toChain(srcChain)].rpc; if (!rpc) { throw new Error(`No ${network} rpc defined for ${srcChain}`); } - if (isEVMChain(srcChain)) { + if (chainToPlatform(srcChain) === "Evm") { await transferEVM( - srcChain, + srcChain as PlatformToChains<"Evm">, dstChain, dstAddr, tokenAddr, @@ -98,7 +93,7 @@ export const handler = async ( network, rpc ); - } else if (isTerraChain(srcChain)) { + } else if (srcChain === "Terra" || srcChain === "Terra2") { await transferTerra( srcChain, dstChain, @@ -108,7 +103,7 @@ export const handler = async ( network, rpc ); - } else if (srcChain === "solana" || srcChain === "pythnet") { + } else if (srcChain === "Solana" || srcChain === "Pythnet") { await transferSolana( srcChain, dstChain, @@ -118,49 +113,19 @@ export const handler = async ( network, rpc ); - } else if (srcChain === "algorand") { + } else if (srcChain === "Algorand") { await transferAlgorand(dstChain, dstAddr, tokenAddr, amount, network, rpc); - } else if (srcChain === "near") { + } else if (srcChain === "Near") { await transferNear(dstChain, dstAddr, tokenAddr, amount, network, rpc); - } else if (srcChain === "injective") { + } else if (srcChain === "Injective") { await transferInjective(dstChain, dstAddr, tokenAddr, amount, network, rpc); - } else if (srcChain === "xpla") { + } else if (srcChain === "Xpla") { await transferXpla(dstChain, dstAddr, tokenAddr, amount, network, rpc); - } else if (srcChain === "sei") { - throw new Error("sei is not supported yet"); - } else if (srcChain === "osmosis") { - throw Error("OSMOSIS is not supported yet"); - } else if (srcChain === "sui") { + } else if (srcChain === "Sui") { await transferSui(dstChain, dstAddr, tokenAddr, amount, network, rpc); - } else if (srcChain === "aptos") { + } else if (srcChain === "Aptos") { await transferAptos(dstChain, dstAddr, tokenAddr, amount, network, rpc); - } else if (srcChain === "wormchain") { - throw Error("Wormchain is not supported yet"); - } else if (srcChain === "btc") { - throw Error("btc is not supported yet"); - } else if (srcChain === "cosmoshub") { - throw Error("cosmoshub is not supported yet"); - } else if (srcChain === "evmos") { - throw Error("evmos is not supported yet"); - } else if (srcChain === "kujira") { - throw Error("kujira is not supported yet"); - } else if (srcChain === "neutron") { - throw Error("neutron is not supported yet"); - } else if (srcChain === "celestia") { - throw Error("celestia is not supported yet"); - } else if (srcChain === "stargaze") { - throw Error("stargaze is not supported yet"); - } else if (srcChain === "seda") { - throw Error("seda is not supported yet"); - } else if (srcChain === "dymension") { - throw Error("dymension is not supported yet"); - } else if (srcChain === "provenance") { - throw Error("provenance is not supported yet"); - } else if (srcChain === "rootstock") { - throw Error("rootstock is not supported yet"); } else { - // If you get a type error here, hover over `chain`'s type and it tells you - // which cases are not handled - impossible(srcChain); + throw new Error(`${srcChain} is not supported yet`); } }; diff --git a/clients/js/src/cmds/verifyVaa.ts b/clients/js/src/cmds/verifyVaa.ts index 07700a18e8..21265c6be6 100644 --- a/clients/js/src/cmds/verifyVaa.ts +++ b/clients/js/src/cmds/verifyVaa.ts @@ -1,11 +1,11 @@ // The verify-vaa command invokes the parseAndVerifyVM method on the core contract on Ethereum to verify the specified VAA. import { Implementation__factory } from "@certusone/wormhole-sdk/lib/esm/ethers-contracts"; -import { CONTRACTS } from "@certusone/wormhole-sdk/lib/esm/utils/consts"; import { ethers } from "ethers"; import yargs from "yargs"; import { NETWORKS, NETWORK_OPTIONS } from "../consts"; -import { assertNetwork } from "../utils"; +import { getNetwork } from "../utils"; +import { contracts } from "@wormhole-foundation/sdk"; export const command = "verify-vaa"; export const desc = "Verifies a VAA by querying the core contract on Ethereum"; @@ -21,17 +21,16 @@ export const builder = (y: typeof yargs) => export const handler = async ( argv: Awaited["argv"]> ) => { - const network = argv.network.toUpperCase(); - assertNetwork(network); + const network = getNetwork(argv.network); const buf = Buffer.from(String(argv.vaa), "hex"); - const contract_address = CONTRACTS[network].ethereum.core; + const contract_address = contracts.coreBridge(network, "Ethereum"); if (!contract_address) { throw Error(`Unknown core contract on ${network} for ethereum`); } const provider = new ethers.providers.JsonRpcProvider( - NETWORKS[network].ethereum.rpc + NETWORKS[network].Ethereum.rpc ); const contract = Implementation__factory.connect(contract_address, provider); const result = await contract.parseAndVerifyVM(buf); diff --git a/clients/js/src/consts/contracts.ts b/clients/js/src/consts/contracts.ts index 69efe7bce2..831b09d47c 100644 --- a/clients/js/src/consts/contracts.ts +++ b/clients/js/src/consts/contracts.ts @@ -1,60 +1,6 @@ -import { - CHAIN_ID_SOLANA, - CONTRACTS as SDK_CONTRACTS, -} from "@certusone/wormhole-sdk/lib/esm/utils/consts"; +import { chainToChainId } from "@wormhole-foundation/sdk-base"; -const OVERRIDES = { - MAINNET: { - sui: { - core: "0xaeab97f96cf9877fee2883315d459552b2b921edc16d7ceac6eab944dd88919c", - token_bridge: - "0xc57508ee0d4595e5a8728974a4a93a787d38f339757230d441e895422c07aba9", - }, - aptos: { - token_bridge: - "0x576410486a2da45eee6c949c995670112ddf2fbeedab20350d506328eefc9d4f", - core: "0x5bc11445584a763c1fa7ed39081f1b920954da14e04b32440cba863d03e19625", - nft_bridge: - "0x1bdffae984043833ed7fe223f7af7a3f8902d04129b14f801823e64827da7130", - }, - }, - TESTNET: { - sui: { - core: "0x31358d198147da50db32eda2562951d53973a0c0ad5ed738e9b17d88b213d790", - token_bridge: - "0x6fb10cdb7aa299e9a4308752dadecb049ff55a892de92992a1edbd7912b3d6da", - }, - aptos: { - token_bridge: - "0x576410486a2da45eee6c949c995670112ddf2fbeedab20350d506328eefc9d4f", - core: "0x5bc11445584a763c1fa7ed39081f1b920954da14e04b32440cba863d03e19625", - nft_bridge: undefined, - }, - }, - DEVNET: { - sui: { - core: "0x12253210c90f89e7a8525e6c52d41309ff5bfb31f43f561b5fe6f50cd72f9668", // wormhole module State object ID - token_bridge: - "0x830ed228c6f1bcb40003bb49af3277df2cbf933d63a6bcdcb0ba4580a1a7654e", // token_bridge module State object ID - }, - aptos: { - token_bridge: - "0x84a5f374d29fc77e370014dce4fd6a55b58ad608de8074b0be5571701724da31", - core: "0xde0036a9600559e295d5f6802ef6f3f802f510366e0c23912b0655d972166017", - nft_bridge: - "0x46da3d4c569388af61f951bdd1153f4c875f90c2991f6b2d0a38e2161a40852c", - }, - }, -}; - -// TODO(aki): move this to SDK at some point -export const CONTRACTS = { - MAINNET: { ...SDK_CONTRACTS.MAINNET, ...OVERRIDES.MAINNET }, - TESTNET: { ...SDK_CONTRACTS.TESTNET, ...OVERRIDES.TESTNET }, - DEVNET: { ...SDK_CONTRACTS.DEVNET, ...OVERRIDES.DEVNET }, -}; - -export const GOVERNANCE_CHAIN = CHAIN_ID_SOLANA; +export const GOVERNANCE_CHAIN = chainToChainId("Solana"); export const GOVERNANCE_EMITTER = "0000000000000000000000000000000000000000000000000000000000000004"; export const INITIAL_GUARDIAN_DEVNET = diff --git a/clients/js/src/consts/networks.ts b/clients/js/src/consts/networks.ts index 8fb53b7fc7..3bf6f7b70c 100644 --- a/clients/js/src/consts/networks.ts +++ b/clients/js/src/consts/networks.ts @@ -1,4 +1,4 @@ -import { ChainName } from "@certusone/wormhole-sdk/lib/esm/utils/consts"; +import { Chain } from "@wormhole-foundation/sdk-base"; import { config } from "dotenv"; import { homedir } from "os"; @@ -12,785 +12,788 @@ export type Connection = { }; export type ChainConnections = { - [chain in ChainName]: Connection; + [chain in Chain]: Connection; }; -const MAINNET = { - unset: { - rpc: undefined, - key: undefined, - }, - solana: { +const Mainnet = { + Solana: { rpc: "https://api.mainnet-beta.solana.com", key: getEnvVar("SOLANA_KEY"), }, - terra: { + Terra: { rpc: "https://lcd.terra.dev", chain_id: "columbus-5", key: getEnvVar("TERRA_MNEMONIC"), }, - ethereum: { + Ethereum: { rpc: `https://rpc.ankr.com/eth`, key: getEnvVar("ETH_KEY"), chain_id: 1, }, - bsc: { + Bsc: { rpc: "https://bsc-dataseed.binance.org/", key: getEnvVar("ETH_KEY"), chain_id: 56, }, - polygon: { + Polygon: { rpc: "https://rpc.ankr.com/polygon", key: getEnvVar("ETH_KEY"), chain_id: 137, }, - avalanche: { + Avalanche: { rpc: "https://rpc.ankr.com/avalanche", key: getEnvVar("ETH_KEY"), chain_id: 43114, }, - algorand: { + Algorand: { rpc: "https://mainnet-api.algonode.cloud", key: getEnvVar("ALGORAND_KEY"), }, - oasis: { + Oasis: { rpc: "https://emerald.oasis.dev/", key: getEnvVar("ETH_KEY"), chain_id: 42262, }, - fantom: { + Fantom: { rpc: "https://rpc.ftm.tools/", key: getEnvVar("ETH_KEY"), chain_id: 250, }, - aurora: { + Aurora: { rpc: "https://mainnet.aurora.dev", key: getEnvVar("ETH_KEY"), chain_id: 1313161554, }, - karura: { + Karura: { rpc: "https://eth-rpc-karura.aca-api.network/", key: getEnvVar("ETH_KEY"), chain_id: 686, }, - acala: { + Acala: { rpc: "https://eth-rpc-acala.aca-api.network/", key: getEnvVar("ETH_KEY"), chain_id: 787, }, - klaytn: { + Klaytn: { rpc: "https://public-node-api.klaytnapi.com/v1/cypress", key: getEnvVar("ETH_KEY"), chain_id: 8217, }, - celo: { + Celo: { rpc: "https://forno.celo.org", key: getEnvVar("ETH_KEY"), chain_id: 42220, }, - near: { + Near: { rpc: "https://rpc.mainnet.near.org", key: getEnvVar("NEAR_KEY"), networkId: "mainnet", }, - injective: { + Injective: { rpc: "http://sentry0.injective.network:26657", chain_id: "injective-1", key: getEnvVar("INJECTIVE_KEY"), }, - osmosis: { + Osmosis: { rpc: undefined, key: undefined, }, - aptos: { + Aptos: { rpc: "https://fullnode.mainnet.aptoslabs.com/v1", key: getEnvVar("APTOS_KEY"), }, - sui: { + Sui: { rpc: "https://fullnode.mainnet.sui.io:443", key: getEnvVar("SUI_KEY"), }, - pythnet: { + Pythnet: { rpc: "http://api.pythnet.pyth.network:8899/", key: getEnvVar("SOLANA_KEY"), }, - xpla: { + Xpla: { rpc: "https://dimension-lcd.xpla.dev", chain_id: "dimension_37-1", key: getEnvVar("XPLA_KEY"), }, - btc: { + Btc: { rpc: undefined, key: undefined, }, - wormchain: { + Wormchain: { rpc: undefined, key: undefined, }, - moonbeam: { + Moonbeam: { rpc: "https://rpc.api.moonbeam.network", key: getEnvVar("ETH_KEY"), chain_id: 1284, }, - neon: { + Neon: { rpc: undefined, key: undefined, chain_id: undefined, }, - terra2: { + Terra2: { rpc: "https://phoenix-lcd.terra.dev", chain_id: "phoenix-1", key: getEnvVar("TERRA_MNEMONIC"), }, - arbitrum: { + Arbitrum: { rpc: "https://arb1.arbitrum.io/rpc", key: getEnvVar("ETH_KEY"), chain_id: 42161, }, - optimism: { + Optimism: { rpc: "https://mainnet.optimism.io", key: getEnvVar("ETH_KEY"), chain_id: 10, }, - gnosis: { + Gnosis: { rpc: "https://rpc.gnosischain.com/", key: getEnvVar("ETH_KEY"), chain_id: 100, }, - base: { + Base: { rpc: "https://mainnet.base.org", key: getEnvVar("ETH_KEY"), chain_id: 8453, }, - sei: { + Sei: { rpc: "https://sei-rpc.polkachu.com/", key: getEnvVar("SEI_KEY"), }, - rootstock: { + Rootstock: { rpc: "https://public-node.rsk.co", key: getEnvVar("ETH_KEY"), chain_id: 30, }, - scroll: { + Scroll: { rpc: "https://rpc.ankr.com/scroll", key: getEnvVar("ETH_KEY"), chain_id: 534352, }, - mantle: { + Mantle: { rpc: undefined, key: undefined, chain_id: undefined, }, - blast: { + Blast: { rpc: "https://rpc.ankr.com/blast", key: getEnvVar("ETH_KEY"), chain_id: 81457, }, - xlayer: { + Xlayer: { rpc: undefined, key: undefined, chain_id: undefined, }, - linea: { + Linea: { rpc: undefined, key: undefined, chain_id: undefined, }, - berachain: { + Berachain: { rpc: undefined, key: undefined, chain_id: undefined, }, - seievm: { + Snaxchain: { + rpc: "https://mainnet.snaxchain.io", + key: getEnvVar("ETH_KEY"), + chain_id: 2192, + }, + Seievm: { rpc: undefined, key: undefined, chain_id: undefined, }, - sepolia: { + Sepolia: { rpc: undefined, key: undefined, chain_id: undefined, }, - holesky: { + Holesky: { rpc: undefined, key: undefined, chain_id: undefined, }, - cosmoshub: { + Cosmoshub: { rpc: undefined, key: undefined, chain_id: undefined, }, - evmos: { + Evmos: { rpc: undefined, key: undefined, chain_id: undefined, }, - kujira: { + Kujira: { rpc: undefined, key: undefined, chain_id: undefined, }, - neutron: { + Neutron: { rpc: undefined, key: undefined, chain_id: undefined, }, - celestia: { + Celestia: { rpc: undefined, key: undefined, chain_id: undefined, }, - arbitrum_sepolia: { + ArbitrumSepolia: { rpc: undefined, key: undefined, chain_id: undefined, }, - base_sepolia: { + BaseSepolia: { rpc: undefined, key: undefined, chain_id: undefined, }, - optimism_sepolia: { + OptimismSepolia: { rpc: undefined, key: undefined, chain_id: undefined, }, - polygon_sepolia: { + PolygonSepolia: { rpc: undefined, key: undefined, chain_id: undefined, }, - stargaze: { + Stargaze: { rpc: undefined, key: undefined, chain_id: undefined, }, - seda: { + Seda: { rpc: undefined, key: undefined, chain_id: undefined, }, - dymension: { + Dymension: { rpc: undefined, key: undefined, chain_id: undefined, }, - provenance: { + Provenance: { rpc: undefined, key: undefined, chain_id: undefined, }, }; -const TESTNET = { - unset: { - rpc: undefined, - key: undefined, - }, - solana: { +const Testnet = { + Solana: { rpc: "https://api.devnet.solana.com", key: getEnvVar("SOLANA_KEY_TESTNET"), }, - terra: { + Terra: { rpc: "https://bombay-lcd.terra.dev", chain_id: "bombay-12", key: getEnvVar("TERRA_MNEMONIC_TESTNET"), }, - ethereum: { + Ethereum: { rpc: `https://rpc.ankr.com/eth_goerli`, key: getEnvVar("ETH_KEY_TESTNET"), chain_id: 5, }, - bsc: { + Bsc: { rpc: "https://data-seed-prebsc-1-s1.binance.org:8545", key: getEnvVar("ETH_KEY_TESTNET"), chain_id: 97, }, - polygon: { + Polygon: { rpc: `https://rpc.ankr.com/polygon_mumbai`, key: getEnvVar("ETH_KEY_TESTNET"), chain_id: 80001, }, - avalanche: { + Avalanche: { rpc: "https://rpc.ankr.com/avalanche_fuji", key: getEnvVar("ETH_KEY_TESTNET"), chain_id: 43113, }, - oasis: { + Oasis: { rpc: "https://testnet.emerald.oasis.dev", key: getEnvVar("ETH_KEY_TESTNET"), chain_id: 42261, }, - algorand: { + Algorand: { rpc: "https://testnet-api.algonode.cloud", key: getEnvVar("ALGORAND_KEY_TESTNET"), }, - fantom: { + Fantom: { rpc: "https://rpc.testnet.fantom.network", key: getEnvVar("ETH_KEY_TESTNET"), chain_id: 4002, }, - aurora: { + Aurora: { rpc: "https://testnet.aurora.dev", key: getEnvVar("ETH_KEY_TESTNET"), chain_id: 1313161555, }, - karura: { + Karura: { rpc: "https://eth-rpc-karura-testnet.aca-staging.network", key: getEnvVar("ETH_KEY_TESTNET"), chain_id: 596, }, - acala: { + Acala: { rpc: "https://eth-rpc-acala-testnet.aca-staging.network", key: getEnvVar("ETH_KEY_TESTNET"), - chain_id: 595, + chain_id: 597, }, - klaytn: { + Klaytn: { rpc: "https://api.baobab.klaytn.net:8651", key: getEnvVar("ETH_KEY_TESTNET"), chain_id: 1001, }, - celo: { + Celo: { rpc: "https://alfajores-forno.celo-testnet.org", key: getEnvVar("ETH_KEY_TESTNET"), chain_id: 44787, }, - near: { + Near: { rpc: "https://rpc.testnet.near.org", key: getEnvVar("NEAR_KEY_TESTNET"), networkId: "testnet", }, - injective: { + Injective: { rpc: "https://k8s.testnet.tm.injective.network:443", chain_id: "injective-888", key: getEnvVar("INJECTIVE_KEY_TESTNET"), }, - osmosis: { + Osmosis: { rpc: undefined, chain_id: "osmo-test-4", key: getEnvVar("OSMOSIS_KEY_TESTNET"), }, - aptos: { + Aptos: { rpc: "https://fullnode.testnet.aptoslabs.com/v1", key: getEnvVar("APTOS_TESTNET"), }, - sui: { + Sui: { rpc: "https://fullnode.testnet.sui.io:443", key: getEnvVar("SUI_KEY_TESTNET"), }, - pythnet: { + Pythnet: { rpc: "https://api.pythtest.pyth.network/", key: getEnvVar("SOLANA_KEY_TESTNET"), }, - xpla: { + Xpla: { rpc: "https://cube-lcd.xpla.dev:443", chain_id: "cube_47-5", key: getEnvVar("XPLA_KEY_TESTNET"), }, - sei: { + Sei: { rpc: "https://rpc.atlantic-2.seinetwork.io", key: getEnvVar("SEI_KEY_TESTNET"), }, - scroll: { + Scroll: { rpc: "https://rpc.ankr.com/scroll_sepolia_testnet", key: getEnvVar("ETH_KEY_TESTNET"), chain_id: 534353, }, - mantle: { + Mantle: { rpc: "https://mantle-sepolia.drpc.org", key: getEnvVar("ETH_KEY_TESTNET"), chain_id: 5003, }, - blast: { + Blast: { rpc: "https://blast-sepolia.drpc.org", key: getEnvVar("ETH_KEY_TESTNET"), chain_id: 168587773, }, - xlayer: { + Xlayer: { rpc: "https://testrpc.xlayer.tech/", key: getEnvVar("ETH_KEY_TESTNET"), chain_id: 195, }, - linea: { + Linea: { rpc: "https://rpc.sepolia.linea.build", key: getEnvVar("ETH_KEY_TESTNET"), chain_id: 59141, }, - berachain: { - rpc: "https://artio.rpc.berachain.com/", + Berachain: { + rpc: "https://bartio.rpc.berachain.com/", key: getEnvVar("ETH_KEY_TESTNET"), - chain_id: 80085, + chain_id: 80084, }, - seievm: { + Snaxchain: { + rpc: "https://testnet.snaxchain.io", + key: getEnvVar("ETH_KEY_TESTNET"), + chain_id: 13001, + }, + Seievm: { rpc: "https://evm-rpc-arctic-1.sei-apis.com/", key: getEnvVar("ETH_KEY_TESTNET"), chain_id: 713715, }, - sepolia: { + Sepolia: { rpc: "https://rpc.ankr.com/eth_sepolia", key: getEnvVar("ETH_KEY_TESTNET"), chain_id: 11155111, }, - holesky: { + Holesky: { rpc: "https://rpc.ankr.com/eth_holesky", key: getEnvVar("ETH_KEY_TESTNET"), chain_id: 17000, }, - btc: { + Btc: { rpc: undefined, key: undefined, }, - wormchain: { + Wormchain: { rpc: undefined, key: undefined, }, - moonbeam: { + Moonbeam: { rpc: "https://rpc.api.moonbase.moonbeam.network", key: getEnvVar("ETH_KEY_TESTNET"), chain_id: 1287, }, - neon: { + Neon: { rpc: "https://proxy.devnet.neonlabs.org/solana", key: getEnvVar("ETH_KEY_TESTNET"), chain_id: undefined, }, - terra2: { + Terra2: { rpc: "https://pisco-lcd.terra.dev", chain_id: "pisco-1", key: getEnvVar("TERRA_MNEMONIC_TESTNET"), }, - arbitrum: { + Arbitrum: { rpc: "https://goerli-rollup.arbitrum.io/rpc", key: getEnvVar("ETH_KEY_TESTNET"), chain_id: 421613, }, - optimism: { + Optimism: { rpc: "https://goerli.optimism.io", key: getEnvVar("ETH_KEY_TESTNET"), chain_id: 420, }, - gnosis: { + Gnosis: { rpc: "https://sokol.poa.network/", key: getEnvVar("ETH_KEY_TESTNET"), chain_id: 77, }, - base: { + Base: { rpc: "https://goerli.base.org", key: getEnvVar("ETH_KEY_TESTNET"), chain_id: 84531, }, - rootstock: { + Rootstock: { rpc: "https://public-node.testnet.rsk.co", key: getEnvVar("ETH_KEY_TESTNET"), chain_id: 31, }, - cosmoshub: { + Cosmoshub: { rpc: undefined, key: undefined, chain_id: undefined, }, - evmos: { + Evmos: { rpc: undefined, key: undefined, chain_id: undefined, }, - kujira: { + Kujira: { rpc: undefined, key: undefined, chain_id: undefined, }, - neutron: { + Neutron: { rpc: undefined, key: undefined, chain_id: undefined, }, - celestia: { + Celestia: { rpc: undefined, key: undefined, chain_id: undefined, }, - arbitrum_sepolia: { + ArbitrumSepolia: { rpc: "https://arbitrum-sepolia.publicnode.com", key: getEnvVar("ETH_KEY_TESTNET"), chain_id: 421614, }, - base_sepolia: { + BaseSepolia: { rpc: "https://sepolia.base.org", key: getEnvVar("ETH_KEY_TESTNET"), chain_id: 84532, }, - optimism_sepolia: { + OptimismSepolia: { rpc: "https://rpc.ankr.com/optimism_sepolia", key: getEnvVar("ETH_KEY_TESTNET"), chain_id: 11155420, }, - polygon_sepolia: { + PolygonSepolia: { rpc: "https://rpc-amoy.polygon.technology/", key: getEnvVar("ETH_KEY_TESTNET"), chain_id: 80002, }, - stargaze: { + Stargaze: { rpc: undefined, key: undefined, chain_id: undefined, }, - seda: { + Seda: { rpc: undefined, key: undefined, chain_id: undefined, }, - dymension: { + Dymension: { rpc: undefined, key: undefined, chain_id: undefined, }, - provenance: { + Provenance: { rpc: undefined, key: undefined, chain_id: undefined, }, }; -const DEVNET = { - unset: { - rpc: undefined, - key: undefined, - }, - solana: { +const Devnet = { + Solana: { rpc: "http://localhost:8899", key: "J2D4pwDred8P9ioyPEZVLPht885AeYpifsFGUyuzVmiKQosAvmZP4EegaKFrSprBC5vVP1xTvu61vYDWsxBNsYx", }, - terra: { + Terra: { rpc: "http://localhost:1317", chain_id: "columbus-5", key: "notice oak worry limit wrap speak medal online prefer cluster roof addict wrist behave treat actual wasp year salad speed social layer crew genius", }, - ethereum: { + Ethereum: { rpc: "http://localhost:8545", key: "0x4f3edf983ac636a65a842ce7c78d9aa706d3b113bce9c46f30d7d21715b23b1d", }, - bsc: { + Bsc: { rpc: "http://localhost:8546", key: "0x4f3edf983ac636a65a842ce7c78d9aa706d3b113bce9c46f30d7d21715b23b1d", }, - polygon: { + Polygon: { rpc: undefined, key: "0x4f3edf983ac636a65a842ce7c78d9aa706d3b113bce9c46f30d7d21715b23b1d", }, - avalanche: { + Avalanche: { rpc: undefined, key: "0x4f3edf983ac636a65a842ce7c78d9aa706d3b113bce9c46f30d7d21715b23b1d", }, - oasis: { + Oasis: { rpc: undefined, key: "0x4f3edf983ac636a65a842ce7c78d9aa706d3b113bce9c46f30d7d21715b23b1d", }, - algorand: { + Algorand: { rpc: "http://localhost", key: getEnvVar("ALGORAND_KEY_DEVNET"), }, - fantom: { + Fantom: { rpc: undefined, key: "0x4f3edf983ac636a65a842ce7c78d9aa706d3b113bce9c46f30d7d21715b23b1d", }, - aurora: { + Aurora: { rpc: undefined, key: "0x4f3edf983ac636a65a842ce7c78d9aa706d3b113bce9c46f30d7d21715b23b1d", }, - karura: { + Karura: { rpc: undefined, key: "0x4f3edf983ac636a65a842ce7c78d9aa706d3b113bce9c46f30d7d21715b23b1d", }, - acala: { + Acala: { rpc: undefined, key: "0x4f3edf983ac636a65a842ce7c78d9aa706d3b113bce9c46f30d7d21715b23b1d", }, - klaytn: { + Klaytn: { rpc: undefined, key: "0x4f3edf983ac636a65a842ce7c78d9aa706d3b113bce9c46f30d7d21715b23b1d", }, - celo: { + Celo: { rpc: undefined, key: "0x4f3edf983ac636a65a842ce7c78d9aa706d3b113bce9c46f30d7d21715b23b1d", }, - near: { + Near: { rpc: undefined, key: undefined, networkId: "sandbox", }, - injective: { + Injective: { rpc: undefined, key: undefined, }, - osmosis: { + Osmosis: { rpc: undefined, key: undefined, }, - pythnet: { + Pythnet: { rpc: undefined, key: undefined, }, - btc: { + Btc: { rpc: undefined, key: undefined, }, - xpla: { + Xpla: { rpc: undefined, chain_id: undefined, key: undefined, }, - sei: { + Sei: { rpc: undefined, key: undefined, }, - scroll: { + Scroll: { + rpc: undefined, + key: undefined, + chain_id: undefined, + }, + Mantle: { rpc: undefined, key: undefined, chain_id: undefined, }, - mantle: { + Blast: { rpc: undefined, key: undefined, chain_id: undefined, }, - blast: { + Xlayer: { rpc: undefined, key: undefined, chain_id: undefined, }, - xlayer: { + Linea: { rpc: undefined, key: undefined, chain_id: undefined, }, - linea: { + Berachain: { rpc: undefined, key: undefined, chain_id: undefined, }, - berachain: { + Snaxchain: { rpc: undefined, key: undefined, chain_id: undefined, }, - seievm: { + Seievm: { rpc: undefined, key: undefined, chain_id: undefined, }, - sepolia: { + Sepolia: { rpc: undefined, key: undefined, }, - holesky: { + Holesky: { rpc: undefined, key: undefined, }, - wormchain: { + Wormchain: { rpc: "http://localhost:1319", chain_id: "wormchain", key: undefined, }, - aptos: { + Aptos: { rpc: "http://0.0.0.0:8080", key: "537c1f91e56891445b491068f519b705f8c0f1a1e66111816dd5d4aa85b8113d", }, - sui: { + Sui: { rpc: "http://0.0.0.0:9000", key: "AGA20wtGcwbcNAG4nwapbQ5wIuXwkYQEWFUoSVAxctHb", }, - moonbeam: { + Moonbeam: { rpc: undefined, key: "0x4f3edf983ac636a65a842ce7c78d9aa706d3b113bce9c46f30d7d21715b23b1d", }, - neon: { + Neon: { rpc: undefined, key: "0x4f3edf983ac636a65a842ce7c78d9aa706d3b113bce9c46f30d7d21715b23b1d", }, - terra2: { + Terra2: { rpc: "http://localhost:1318", chain_id: "phoenix-1", key: "notice oak worry limit wrap speak medal online prefer cluster roof addict wrist behave treat actual wasp year salad speed social layer crew genius", }, - arbitrum: { + Arbitrum: { rpc: undefined, key: undefined, }, - optimism: { + Optimism: { rpc: undefined, key: undefined, }, - gnosis: { + Gnosis: { rpc: undefined, key: undefined, }, - base: { + Base: { rpc: undefined, key: undefined, }, - rootstock: { + Rootstock: { rpc: undefined, key: undefined, }, - cosmoshub: { + Cosmoshub: { rpc: undefined, key: undefined, }, - evmos: { + Evmos: { rpc: undefined, key: undefined, }, - kujira: { + Kujira: { rpc: undefined, key: undefined, }, - neutron: { + Neutron: { rpc: undefined, key: undefined, chain_id: undefined, }, - celestia: { + Celestia: { rpc: undefined, key: undefined, chain_id: undefined, }, - arbitrum_sepolia: { + ArbitrumSepolia: { rpc: undefined, key: undefined, chain_id: undefined, }, - base_sepolia: { + BaseSepolia: { rpc: undefined, key: undefined, chain_id: undefined, }, - optimism_sepolia: { + OptimismSepolia: { rpc: undefined, key: undefined, chain_id: undefined, }, - polygon_sepolia: { + PolygonSepolia: { rpc: undefined, key: undefined, chain_id: undefined, }, - stargaze: { + Stargaze: { rpc: undefined, key: undefined, chain_id: undefined, }, - seda: { + Seda: { rpc: undefined, key: undefined, chain_id: undefined, }, - dymension: { + Dymension: { rpc: undefined, key: undefined, chain_id: undefined, }, - provenance: { + Provenance: { rpc: undefined, key: undefined, chain_id: undefined, @@ -811,18 +814,18 @@ const DEVNET = { * * (Do not delete this declaration!) */ -const isTestnetConnections: ChainConnections = TESTNET; +const isTestnetConnections: ChainConnections = Testnet; /** * * See [[isTestnetContracts]] */ -const isMainnetConnections: ChainConnections = MAINNET; +const isMainnetConnections: ChainConnections = Mainnet; /** * * See [[isTestnetContracts]] */ -const isDevnetConnections: ChainConnections = DEVNET; +const isDevnetConnections: ChainConnections = Devnet; -export const NETWORKS = { MAINNET, TESTNET, DEVNET }; +export const NETWORKS = { Mainnet, Testnet, Devnet }; diff --git a/clients/js/src/consts/yargs.ts b/clients/js/src/consts/yargs.ts index 8de88081d9..cd607be28e 100644 --- a/clients/js/src/consts/yargs.ts +++ b/clients/js/src/consts/yargs.ts @@ -1,8 +1,9 @@ import { - CHAINS, + Chain, ChainId, - ChainName, -} from "@certusone/wormhole-sdk/lib/esm/utils/consts"; + chainIds, + chains, +} from "@wormhole-foundation/sdk-base"; export const DEBUG_OPTIONS = { alias: "d", @@ -38,11 +39,9 @@ export const RPC_OPTIONS = { demandOption: false, } as const; -export const CHAIN_ID_OR_NAME_CHOICES = [ - ...Object.keys(CHAINS), - ...Object.values(CHAINS), -] as (ChainName | ChainId)[]; +export const CHAIN_ID_OR_NAME_CHOICES = [...chains, ...chainIds] as ( + | Chain + | ChainId +)[]; -export const CHAIN_NAME_CHOICES = Object.keys(CHAINS).filter( - (c) => c !== "unset" -) as ChainName[]; +export const CHAIN_NAME_CHOICES = [...chains]; diff --git a/clients/js/src/emitter.ts b/clients/js/src/emitter.ts index c2481941e9..447e04e9e3 100644 --- a/clients/js/src/emitter.ts +++ b/clients/js/src/emitter.ts @@ -1,31 +1,35 @@ import { + Chain, ChainId, - ChainName, - isCosmWasmChain, -} from "@certusone/wormhole-sdk/lib/esm/utils/consts"; + chainToPlatform, + toChain, +} from "@wormhole-foundation/sdk-base"; +import { decodeAddress, getApplicationAddress } from "algosdk"; +import { uint8ArrayToHex } from "./sdk/array"; +import { arrayify, sha256, zeroPad } from "ethers/lib/utils"; +import { bech32 } from "bech32"; +import { PublicKey } from "@solana/web3.js"; -import { - getEmitterAddressAlgorand, - getEmitterAddressEth, - getEmitterAddressNear, - getEmitterAddressSolana, - getEmitterAddressTerra, -} from "@certusone/wormhole-sdk/lib/esm/bridge/getEmitterAddress"; - -export async function getEmitterAddress( - chain: ChainId | ChainName, - addr: string -) { - if (chain === "solana" || chain === "pythnet") { - // TODO: Create an isSolanaChain() - addr = getEmitterAddressSolana(addr); - } else if (isCosmWasmChain(chain)) { - addr = await getEmitterAddressTerra(addr); - } else if (chain === "algorand") { - addr = getEmitterAddressAlgorand(BigInt(addr)); - } else if (chain === "near") { - addr = getEmitterAddressNear(addr); - } else if (chain === "aptos") { +export async function getEmitterAddress(chain: ChainId | Chain, addr: string) { + const localChain = toChain(chain); + if (chainToPlatform(localChain) === "Solana") { + const seeds = [Buffer.from("emitter")]; + const programAddr = PublicKey.findProgramAddressSync( + seeds, + new PublicKey(addr) + )[0]; + addr = programAddr.toBuffer().toString("hex"); + } else if (chainToPlatform(localChain) === "Cosmwasm") { + addr = Buffer.from( + zeroPad(bech32.fromWords(bech32.decode(addr).words), 32) + ).toString("hex"); + } else if (localChain === "Algorand") { + const appAddr: string = getApplicationAddress(BigInt(addr)); + const decAppAddr: Uint8Array = decodeAddress(appAddr).publicKey; + addr = uint8ArrayToHex(decAppAddr); + } else if (localChain === "Near") { + addr = uint8ArrayToHex(arrayify(sha256(Buffer.from(addr, "utf8")))); + } else if (localChain === "Aptos") { // TODO: There should be something in the SDK to do this. if ( addr === @@ -42,7 +46,7 @@ export async function getEmitterAddress( } else { throw Error(`Unsupported Aptos address: ${addr}`); } - } else if (chain === "sui") { + } else if (localChain === "Sui") { // TODO: There should be something in the SDK to do this. if ( addr === @@ -61,7 +65,8 @@ export async function getEmitterAddress( throw Error(`Unsupported Sui address: ${addr}`); } } else { - addr = getEmitterAddressEth(addr); + // This is the Eth version + addr = Buffer.from(zeroPad(arrayify(addr), 32)).toString("hex"); } return addr; diff --git a/clients/js/src/evm.ts b/clients/js/src/evm.ts index 4f55a62d40..1cad5488bf 100644 --- a/clients/js/src/evm.ts +++ b/clients/js/src/evm.ts @@ -5,20 +5,10 @@ import { NFTBridgeImplementation__factory, } from "@certusone/wormhole-sdk/lib/esm/ethers-contracts"; import { WormholeRelayer__factory } from "@certusone/wormhole-sdk/lib/esm/ethers-relayer-contracts"; -import { getWormholeRelayerAddress } from "@certusone/wormhole-sdk/lib/esm/relayer"; -import { - CHAINS, - CONTRACTS, - ChainName, - Contracts, - EVMChainName, - toChainId, -} from "@certusone/wormhole-sdk/lib/esm/utils/consts"; import axios from "axios"; import { ethers } from "ethers"; import { solidityKeccak256 } from "ethers/lib/utils"; import { NETWORKS } from "./consts"; -import { Network } from "./utils"; import { Encoding, Payload, encode, impossible, typeWidth } from "./vaa"; import { approveEth, @@ -26,14 +16,22 @@ import { transferFromEth, transferFromEthNative, } from "@certusone/wormhole-sdk/lib/esm/token_bridge/transfer"; -import { tryNativeToUint8Array } from "@certusone/wormhole-sdk/lib/esm/utils"; +import { + Chain, + Network, + PlatformToChains, + chainToChainId, + chains, + contracts, +} from "@wormhole-foundation/sdk-base"; +import { tryNativeToUint8Array } from "./sdk/array"; const _IMPLEMENTATION_SLOT = "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc"; export async function query_contract_evm( network: Network, - chain: EVMChainName, + chain: PlatformToChains<"Evm">, module: "Core" | "NFTBridge" | "TokenBridge", contract_address: string | undefined, _rpc: string | undefined @@ -44,12 +42,13 @@ export async function query_contract_evm( throw Error(`No ${network} rpc defined for ${chain} (see networks.ts)`); } - const contracts: Contracts = CONTRACTS[network][chain]; const provider = new ethers.providers.JsonRpcProvider(rpc); const result: any = {}; switch (module) { case "Core": - contract_address = contract_address ? contract_address : contracts.core; + contract_address = contract_address + ? contract_address + : contracts.coreBridge.get(network, chain); if (!contract_address) { throw Error(`Unknown core contract on ${network} for ${chain}`); } @@ -105,7 +104,7 @@ export async function query_contract_evm( case "TokenBridge": contract_address = contract_address ? contract_address - : contracts.token_bridge; + : contracts.tokenBridge.get(network, chain); if (contract_address === undefined) { throw Error(`Unknown token bridge contract on ${network} for ${chain}`); } @@ -115,11 +114,11 @@ export async function query_contract_evm( ); result.address = contract_address; const registrationsPromise = Promise.all( - Object.entries(CHAINS) - .filter(([c_name, _]) => c_name !== chain && c_name !== "unset") - .map(async ([c_name, c_id]) => [ + chains + .filter((c_name) => c_name !== chain) + .map(async (c_name) => [ c_name, - await tb.bridgeContracts(c_id), + await tb.bridgeContracts(chainToChainId(c_name)), ]) ); const [ @@ -167,7 +166,7 @@ export async function query_contract_evm( case "NFTBridge": contract_address = contract_address ? contract_address - : contracts.nft_bridge; + : contracts.nftBridge.get(network, chain); if (contract_address === undefined) { throw Error(`Unknown nft bridge contract on ${network} for ${chain}`); } @@ -177,11 +176,11 @@ export async function query_contract_evm( ); result.address = contract_address; const registrationsPromiseNb = Promise.all( - Object.entries(CHAINS) - .filter(([c_name, _]) => c_name !== chain && c_name !== "unset") - .map(async ([c_name, c_id]) => [ + chains + .filter(([c_name, _]) => c_name !== chain) + .map(async (c_name) => [ c_name, - await nb.bridgeContracts(c_id), + await nb.bridgeContracts(chainToChainId(c_name)), ]) ); const [ @@ -232,7 +231,7 @@ export async function query_contract_evm( export async function getImplementation( network: Network, - chain: EVMChainName, + chain: PlatformToChains<"Evm">, module: "Core" | "NFTBridge" | "TokenBridge", contract_address: string | undefined, _rpc: string | undefined @@ -243,20 +242,21 @@ export async function getImplementation( throw Error(`No ${network} rpc defined for ${chain} (see networks.ts)`); } - const contracts: Contracts = CONTRACTS[network][chain]; switch (module) { case "Core": - contract_address = contract_address ? contract_address : contracts.core; + contract_address = contract_address + ? contract_address + : contracts.coreBridge.get(network, chain); break; case "TokenBridge": contract_address = contract_address ? contract_address - : contracts.token_bridge; + : contracts.tokenBridge.get(network, chain); break; case "NFTBridge": contract_address = contract_address ? contract_address - : contracts.nft_bridge; + : contracts.nftBridge.get(network, chain); break; default: impossible(module); @@ -271,10 +271,14 @@ export async function getImplementation( )[0]; } -async function getSigner(chain: EVMChainName, key: string, rpc: string) { +async function getSigner( + chain: PlatformToChains<"Evm">, + key: string, + rpc: string +) { let provider: ethers.providers.JsonRpcProvider; let signer: ethers.Wallet; - if (chain === "celo") { + if (chain === "Celo") { provider = new celo.CeloProvider(rpc); await provider.ready; signer = new celo.CeloWallet(key, provider); @@ -286,15 +290,15 @@ async function getSigner(chain: EVMChainName, key: string, rpc: string) { // NOTE: some of these might have only been tested on mainnet. If it fails in // testnet (or devnet), they might require additional guards let overrides: ethers.Overrides = {}; - if (chain === "karura" || chain == "acala") { + if (chain === "Karura" || chain == "Acala") { overrides = await getKaruraGasParams(rpc); - } else if (chain === "polygon") { + } else if (chain === "Polygon") { const feeData = await provider.getFeeData(); overrides = { maxFeePerGas: feeData.maxFeePerGas?.mul(50) || undefined, maxPriorityFeePerGas: feeData.maxPriorityFeePerGas?.mul(50) || undefined, }; - } else if (chain === "klaytn" || chain === "fantom") { + } else if (chain === "Klaytn" || chain === "Fantom") { overrides = { gasPrice: (await signer.getGasPrice()).toString() }; } return { @@ -308,7 +312,7 @@ export async function execute_evm( payload: Payload, vaa: Buffer, network: Network, - chain: EVMChainName, + chain: PlatformToChains<"Evm">, contract_address: string | undefined, _rpc: string | undefined ) { @@ -323,12 +327,14 @@ export async function execute_evm( } const key: string = n.key; - const contracts: Contracts = CONTRACTS[network][chain]; + // const contracts: Contracts = CONTRACTS[network][chain]; const { signer, overrides } = await getSigner(chain, key, rpc); switch (payload.module) { case "Core": { - contract_address = contract_address ? contract_address : contracts.core; + contract_address = contract_address + ? contract_address + : contracts.coreBridge.get(network, chain); if (contract_address === undefined) { throw Error(`Unknown core contract on ${network} for ${chain}`); } @@ -362,7 +368,7 @@ export async function execute_evm( case "NFTBridge": { contract_address = contract_address ? contract_address - : contracts.nft_bridge; + : contracts.nftBridge.get(network, chain); if (contract_address === undefined) { throw Error(`Unknown nft bridge contract on ${network} for ${chain}`); } @@ -401,7 +407,7 @@ export async function execute_evm( case "TokenBridge": { contract_address = contract_address ? contract_address - : contracts.token_bridge; + : contracts.tokenBridge.get(network, chain); if (contract_address === undefined) { throw Error(`Unknown token bridge contract on ${network} for ${chain}`); } @@ -451,7 +457,7 @@ export async function execute_evm( case "WormholeRelayer": contract_address = contract_address ? contract_address - : getWormholeRelayerAddress(chain, network); + : contracts.relayer.get(network, chain); if (contract_address === undefined) { throw Error( `Unknown Wormhole Relayer contract on ${network} for ${chain}` @@ -493,8 +499,8 @@ export async function execute_evm( } export async function transferEVM( - srcChain: EVMChainName, - dstChain: ChainName, + srcChain: PlatformToChains<"Evm">, + dstChain: Chain, dstAddress: string, tokenAddress: string, amount: string, @@ -505,7 +511,7 @@ export async function transferEVM( if (!n.key) { throw Error(`No ${network} key defined for ${srcChain} (see networks.ts)`); } - const { token_bridge } = CONTRACTS[network][srcChain]; + const token_bridge = contracts.tokenBridge.get(network, srcChain); if (!token_bridge) { throw Error(`Unknown token bridge contract on ${network} for ${srcChain}`); } @@ -516,8 +522,8 @@ export async function transferEVM( token_bridge, signer, amount, - toChainId(dstChain), - tryNativeToUint8Array(dstAddress, dstChain) + chainToChainId(dstChain), + tryNativeToUint8Array(dstAddress, chainToChainId(dstChain)) ); } else { const allowance = await getAllowanceEth(token_bridge, tokenAddress, signer); @@ -529,8 +535,8 @@ export async function transferEVM( signer, tokenAddress, amount, - dstChain, - tryNativeToUint8Array(dstAddress, dstChain), + chainToChainId(dstChain), + tryNativeToUint8Array(dstAddress, chainToChainId(dstChain)), undefined, overrides ); @@ -828,11 +834,10 @@ const isUnsupportedError = (e: any): e is { reason: string } => export async function queryRegistrationsEvm( network: Network, - chain: EVMChainName, + chain: PlatformToChains<"Evm">, module: "Core" | "NFTBridge" | "TokenBridge" ): Promise { const n = NETWORKS[network][chain]; - const contracts = CONTRACTS[network][chain]; let targetContract: string | undefined; let contract: any; @@ -841,7 +846,7 @@ export async function queryRegistrationsEvm( switch (module) { case "TokenBridge": - targetContract = contracts.token_bridge; + targetContract = contracts.tokenBridge.get(network, chain); if (targetContract === undefined) { throw Error(`Unknown token bridge contract on ${network} for ${chain}`); } @@ -851,7 +856,7 @@ export async function queryRegistrationsEvm( ); break; case "NFTBridge": - targetContract = contracts.nft_bridge; + targetContract = contracts.nftBridge.get(network, chain); if (targetContract === undefined) { throw Error(`Unknown NFT bridge contract on ${network} for ${chain}`); } @@ -865,9 +870,12 @@ export async function queryRegistrationsEvm( } const registrations: string[][] = await Promise.all( - Object.entries(CHAINS) - .filter(([cname, _]) => cname !== chain && cname !== "unset") - .map(async ([cname, cid]) => [cname, await contract.bridgeContracts(cid)]) + chains + .filter((cname) => cname !== chain) + .map(async (cname) => [ + cname, + await contract.bridgeContracts(chainToChainId(cname)), + ]) ); const results: { [key: string]: string } = {}; diff --git a/clients/js/src/injective.ts b/clients/js/src/injective.ts index 89623c1074..9b71966fd8 100644 --- a/clients/js/src/injective.ts +++ b/clients/js/src/injective.ts @@ -1,8 +1,3 @@ -import { - CHAINS, - CONTRACTS, - ChainName, -} from "@certusone/wormhole-sdk/lib/esm/utils/consts"; import { getNetworkInfo, Network as InjectiveNetwork, @@ -19,28 +14,33 @@ import { import { DEFAULT_STD_FEE, getStdFee } from "@injectivelabs/utils"; import { fromUint8Array } from "js-base64"; import { NETWORKS } from "./consts"; -import { Network } from "./utils"; import { impossible, Payload } from "./vaa"; import { transferFromInjective } from "@certusone/wormhole-sdk/lib/esm/token_bridge/injective"; -import { tryNativeToUint8Array } from "@certusone/wormhole-sdk/lib/esm/utils"; +import { + Chain, + chainToChainId, + contracts, + Network, +} from "@wormhole-foundation/sdk-base"; +import { chains } from "@wormhole-foundation/sdk"; +import { tryNativeToUint8Array } from "./sdk/array"; export async function execute_injective( payload: Payload, vaa: Buffer, network: Network ) { - if (network === "DEVNET") { + if (network === "Devnet") { throw new Error("Injective is not supported in DEVNET"); } - const chain = "injective"; + const chain = "Injective"; let { key } = NETWORKS[network][chain]; if (!key) { throw Error(`No ${network} key defined for Injective`); } - let contracts = CONTRACTS[network][chain]; const endPoint = - network === "MAINNET" + network === "Mainnet" ? InjectiveNetwork.MainnetK8s : InjectiveNetwork.TestnetK8s; @@ -55,7 +55,7 @@ export async function execute_injective( switch (payload.module) { case "Core": { - target_contract = contracts.core; + target_contract = contracts.coreBridge(network, "Injective"); action = "submit_v_a_a"; execute_msg = { vaa: fromUint8Array(vaa), @@ -76,14 +76,15 @@ export async function execute_injective( break; } case "NFTBridge": { - if (!contracts.nft_bridge) { + const nftContract = contracts.nftBridge.get(network, "Injective"); + if (!nftContract) { // NOTE: this code can safely be removed once the injective NFT bridge is // released, but it's fine for it to stay, as the condition will just be // skipped once 'contracts.nft_bridge' is defined throw new Error("NFT bridge not supported yet for injective"); } - target_contract = contracts.nft_bridge; + target_contract = nftContract; action = "submit_vaa"; execute_msg = { data: fromUint8Array(vaa), @@ -107,12 +108,12 @@ export async function execute_injective( break; } case "TokenBridge": { - console.log("contracts:", contracts); - if (!contracts.token_bridge) { + const tbContract = contracts.tokenBridge.get(network, "Injective"); + if (!tbContract) { throw new Error("contracts.token_bridge is undefined"); } - target_contract = contracts.token_bridge; + target_contract = tbContract; action = "submit_vaa"; execute_msg = { data: fromUint8Array(vaa), @@ -165,22 +166,22 @@ export async function execute_injective( } export async function transferInjective( - dstChain: ChainName, + dstChain: Chain, dstAddress: string, tokenAddress: string, amount: string, network: Network, rpc: string ) { - if (network === "DEVNET") { + if (network === "Devnet") { throw new Error("Injective is not supported in DEVNET"); } - const chain = "injective"; + const chain = "Injective"; const { key } = NETWORKS[network][chain]; if (!key) { throw Error(`No ${network} key defined for Injective`); } - const { token_bridge } = CONTRACTS[network][chain]; + const token_bridge = contracts.tokenBridge.get(network, "Injective"); if (token_bridge == undefined) { throw Error(`Unknown token bridge contract on ${network} for ${chain}`); } @@ -193,8 +194,8 @@ export async function transferInjective( token_bridge, tokenAddress, amount, - dstChain, - tryNativeToUint8Array(dstAddress, dstChain) + chainToChainId(dstChain), + tryNativeToUint8Array(dstAddress, chainToChainId(dstChain)) ); await signAndSendTx(walletPK, network, msgs); @@ -268,18 +269,17 @@ export async function queryRegistrationsInjective( network: Network, module: "Core" | "NFTBridge" | "TokenBridge" ) { - const chain = "injective"; + const chain = "Injective"; const n = NETWORKS[network][chain]; - const contracts = CONTRACTS[network][chain]; let targetContract: string | undefined; switch (module) { case "TokenBridge": - targetContract = contracts.token_bridge; + targetContract = contracts.tokenBridge.get(network, "Injective"); break; case "NFTBridge": - targetContract = contracts.nft_bridge; + targetContract = contracts.nftBridge.get(network, "Injective"); break; default: throw new Error(`Invalid module: ${module}`); @@ -297,14 +297,14 @@ export async function queryRegistrationsInjective( // Query the bridge registration for all the chains in parallel. const registrations: (any | null)[][] = await Promise.all( - Object.entries(CHAINS) - .filter(([cname, _]) => cname !== chain && cname !== "unset") - .map(async ([cname, cid]) => [ + chains + .filter((cname) => cname !== chain) + .map(async (cname) => [ cname, await (async () => { let query_msg = { chain_registration: { - chain: cid, + chain: chainToChainId(cname), }, }; diff --git a/clients/js/src/near.ts b/clients/js/src/near.ts index 59daee7f9d..3bdc584856 100644 --- a/clients/js/src/near.ts +++ b/clients/js/src/near.ts @@ -1,18 +1,19 @@ -import { - ChainName, - CONTRACTS, -} from "@certusone/wormhole-sdk/lib/esm/utils/consts"; import BN from "bn.js"; import { Account, connect, KeyPair } from "near-api-js"; import { InMemoryKeyStore } from "near-api-js/lib/key_stores"; import { NETWORKS } from "./consts"; -import { Network } from "./utils"; import { impossible, Payload } from "./vaa"; import { transferNearFromNear, transferTokenFromNear, } from "@certusone/wormhole-sdk/lib/esm/token_bridge/transfer"; -import { tryNativeToUint8Array } from "@certusone/wormhole-sdk/lib/esm/utils"; +import { + Chain, + chainToChainId, + contracts, + Network, +} from "@wormhole-foundation/sdk-base"; +import { tryNativeToUint8Array } from "./sdk/array"; export function keyPairToImplicitAccount(keyPair: KeyPair): string { return Buffer.from(keyPair.getPublicKey().data).toString("hex"); @@ -23,7 +24,7 @@ export const execute_near = async ( vaa: string, network: Network ): Promise => { - const { rpc, key, networkId } = NETWORKS[network].near; + const { rpc, key, networkId } = NETWORKS[network].Near; if (!key) { throw Error(`No ${network} key defined for NEAR`); } @@ -32,16 +33,15 @@ export const execute_near = async ( throw Error(`No ${network} rpc defined for NEAR`); } - const contracts = CONTRACTS[network].near; let target_contract: string; let numSubmits = 1; switch (payload.module) { case "Core": { - if (!contracts.core) { + const coreContract = contracts.coreBridge(network, "Near"); + if (!coreContract) { throw new Error(`Core bridge address not defined for NEAR ${network}`); } - - target_contract = contracts.core; + target_contract = coreContract; switch (payload.type) { case "GuardianSetUpgrade": console.log("Submitting new guardian set"); @@ -57,12 +57,13 @@ export const execute_near = async ( break; } case "NFTBridge": { - if (!contracts.nft_bridge) { + const nftContract = contracts.nftBridge.get(network, "Near"); + if (!nftContract) { throw new Error(`NFT bridge address not defined for NEAR ${network}`); } numSubmits = 2; - target_contract = contracts.nft_bridge; + target_contract = nftContract; switch (payload.type) { case "ContractUpgrade": console.log("Upgrading contract"); @@ -82,12 +83,13 @@ export const execute_near = async ( break; } case "TokenBridge": { - if (!contracts.token_bridge) { + const tbContract = contracts.tokenBridge(network, "Near"); + if (!tbContract) { throw new Error(`Token bridge address not defined for NEAR ${network}`); } numSubmits = 2; - target_contract = contracts.token_bridge; + target_contract = tbContract; switch (payload.type) { case "ContractUpgrade": console.log("Upgrading contract"); @@ -158,18 +160,19 @@ export const execute_near = async ( }; export async function transferNear( - dstChain: ChainName, + dstChain: Chain, dstAddress: string, tokenAddress: string, amount: string, network: Network, rpc: string ) { - const { key, networkId } = NETWORKS[network].near; + const { key, networkId } = NETWORKS[network].Near; if (!key) { throw Error(`No ${network} key defined for NEAR`); } - const { core, token_bridge } = CONTRACTS[network].near; + const core = contracts.coreBridge(network, "Near"); + const token_bridge = contracts.tokenBridge(network, "Near"); if (core === undefined) { throw Error(`Unknown core contract on ${network} for NEAR`); } @@ -193,8 +196,8 @@ export async function transferNear( core, token_bridge, BigInt(amount), - tryNativeToUint8Array(dstAddress, dstChain), - dstChain, + tryNativeToUint8Array(dstAddress, chainToChainId(dstChain)), + chainToChainId(dstChain), BigInt(0) ); const result = await nearAccount.functionCall(msg); @@ -207,8 +210,8 @@ export async function transferNear( token_bridge, tokenAddress, BigInt(amount), - tryNativeToUint8Array(dstAddress, dstChain), - dstChain, + tryNativeToUint8Array(dstAddress, chainToChainId(dstChain)), + chainToChainId(dstChain), BigInt(0) ); for (const msg of msgs) { diff --git a/clients/js/src/sdk/array.ts b/clients/js/src/sdk/array.ts new file mode 100644 index 0000000000..ff9f0fbead --- /dev/null +++ b/clients/js/src/sdk/array.ts @@ -0,0 +1,277 @@ +import { arrayify, zeroPad } from "@ethersproject/bytes"; +import { PublicKey } from "@solana/web3.js"; +import { + hexValue, + hexZeroPad, + keccak256, + sha256, + stripZeros, +} from "ethers/lib/utils"; +import { bech32 } from "bech32"; +import { + Chain, + ChainId, + chainToChainId, + chainToPlatform, + toChain, + toChainId, +} from "@wormhole-foundation/sdk-base"; +import { + PlatformToChains, + UniversalAddress, + encoding, +} from "@wormhole-foundation/sdk"; +import { + chainToNativeDenoms, + CosmwasmAddress, +} from "@wormhole-foundation/sdk-cosmwasm"; +import { isValidSuiAddress } from "@mysten/sui.js"; +import { sha3_256 } from "js-sha3"; +import { + nativeStringToHexAlgorand, + uint8ArrayToNativeStringAlgorand, +} from "@certusone/wormhole-sdk/lib/esm/algorand"; +import { isValidSuiType } from "@certusone/wormhole-sdk/lib/esm/sui"; + +/** + * + * Returns true iff the hex string represents a native Terra denom. + * + * Native assets on terra don't have an associated smart contract address, just + * like eth isn't an ERC-20 contract on Ethereum. + * + * The difference is that the EVM implementations of Portal don't support eth + * directly, and instead require swapping to an ERC-20 wrapped eth (WETH) + * contract first. + * + * The Terra implementation instead supports Terra-native denoms without + * wrapping to CW-20 token first. As these denoms don't have an address, they + * are encoded in the Portal payloads by the setting the first byte to 1. This + * encoding is safe, because the first 12 bytes of the 32-byte wormhole address + * space are not used on Terra otherwise, as cosmos addresses are 20 bytes wide. + */ +export const isHexNativeTerra = (h: string): boolean => h.startsWith("01"); + +const isLikely20ByteCosmwasm = (h: string): boolean => + h.startsWith("000000000000000000000000"); + +export const nativeTerraHexToDenom = (h: string): string => + Buffer.from(stripZeros(hexToUint8Array(h.substr(2)))).toString("ascii"); + +export const uint8ArrayToHex = (a: Uint8Array): string => + encoding.hex.encode(a); + +export const hexToUint8Array = (h: string): Uint8Array => + encoding.hex.decode(h); + +export function canonicalAddress(humanAddress: string) { + return new Uint8Array(bech32.fromWords(bech32.decode(humanAddress).words)); +} + +export function humanAddress( + hrp: string, + canonicalAddress: Uint8Array +): string { + return CosmwasmAddress.encode(hrp, canonicalAddress); +} + +export function buildTokenId( + chain: Exclude, "Seda">, + address: string +) { + return ( + (chainToNativeDenoms("Mainnet", chain) === address ? "01" : "00") + + keccak256(Buffer.from(address, "utf-8")).substring(4) + ); +} + +/** + * + * Convert an address in a wormhole's 32-byte array representation into a chain's + * native string representation. + * + * @throws if address is not the right length for the given chain + */ + +export const tryUint8ArrayToNative = ( + a: Uint8Array, + chain: ChainId | Chain +): string => { + const chainName = toChain(chain); + if (chainToPlatform(chainName) === "Evm") { + // if (isEVMChain(chainId)) { + return hexZeroPad(hexValue(a), 20); + } else if (chainToPlatform(chainName) === "Solana") { + return new PublicKey(a).toString(); + } else if (chainName === "Terra" || chainName === "Terra2") { + const h = uint8ArrayToHex(a); + if (isHexNativeTerra(h)) { + return nativeTerraHexToDenom(h); + } else { + if (chainName === "Terra2" && !isLikely20ByteCosmwasm(h)) { + // terra 2 has 32 byte addresses for contracts and 20 for wallets + return humanAddress("terra", a); + } + return humanAddress("terra", a.slice(-20)); + } + } else if (chainName === "Injective") { + const h = uint8ArrayToHex(a); + return humanAddress("inj", isLikely20ByteCosmwasm(h) ? a.slice(-20) : a); + } else if (chainName === "Algorand") { + return uint8ArrayToNativeStringAlgorand(a); + } else if (chainName == "Wormchain") { + const h = uint8ArrayToHex(a); + return humanAddress( + "wormhole", + isLikely20ByteCosmwasm(h) ? a.slice(-20) : a + ); + } else if (chainName === "Xpla") { + const h = uint8ArrayToHex(a); + return humanAddress("xpla", isLikely20ByteCosmwasm(h) ? a.slice(-20) : a); + } else if (chainName === "Sei") { + const h = uint8ArrayToHex(a); + return humanAddress("sei", isLikely20ByteCosmwasm(h) ? a.slice(-20) : a); + } else if (chainName === "Near") { + throw Error("uint8ArrayToNative: Use tryHexToNativeStringNear instead."); + } else if (chainName === "Osmosis") { + throw Error("uint8ArrayToNative: Osmosis not supported yet."); + } else if (chainName === "Cosmoshub") { + throw Error("uint8ArrayToNative: CosmosHub not supported yet."); + } else if (chainName === "Evmos") { + throw Error("uint8ArrayToNative: Evmos not supported yet."); + } else if (chainName === "Kujira") { + throw Error("uint8ArrayToNative: Kujira not supported yet."); + } else if (chainName === "Neutron") { + throw Error("uint8ArrayToNative: Neutron not supported yet."); + } else if (chainName === "Celestia") { + throw Error("uint8ArrayToNative: Celestia not supported yet."); + } else if (chainName === "Stargaze") { + throw Error("uint8ArrayToNative: Stargaze not supported yet."); + } else if (chainName === "Seda") { + throw Error("uint8ArrayToNative: Seda not supported yet."); + } else if (chainName === "Dymension") { + throw Error("uint8ArrayToNative: Dymension not supported yet."); + } else if (chainName === "Provenance") { + throw Error("uint8ArrayToNative: Provenance not supported yet."); + } else if (chainName === "Sui") { + throw Error("uint8ArrayToNative: Sui not supported yet."); + } else if (chainName === "Aptos") { + throw Error("uint8ArrayToNative: Aptos not supported yet."); + } else if (chainName === "Btc") { + throw Error("uint8ArrayToNative: Btc not supported"); + } else { + // This case is never reached + // const _: never = chainName; + throw Error("Don't know how to convert address for chain " + chainName); + } +}; + +/** + * + * Convert an address in a wormhole's 32-byte hex representation into a chain's native + * string representation. + * + * @throws if address is not the right length for the given chain + */ +export const tryHexToNativeAssetString = (h: string, c: ChainId): string => + c === chainToChainId("Algorand") + ? // Algorand assets are represented by their asset ids, not an address + new UniversalAddress(h).toNative("Algorand").toBigInt().toString() + : new UniversalAddress(h).toNative(toChain(c)).toString(); + +/** + * + * Convert an address in a chain's native representation into a 32-byte hex string + * understood by wormhole (UniversalAddress). + * + * @throws if address is a malformed string for the given chain id + */ +export const tryNativeToHexString = ( + address: string, + chain: ChainId | Chain +): string => { + const chainName = toChain(chain); + if (chainToPlatform(chainName) === "Evm") { + return uint8ArrayToHex(zeroPad(arrayify(address), 32)); + } else if (chainToPlatform(chainName) === "Solana") { + return uint8ArrayToHex(zeroPad(new PublicKey(address).toBytes(), 32)); + } else if (chainName === "Terra") { + if (chainToNativeDenoms("Mainnet", chainName) === address) { + return ( + "01" + + uint8ArrayToHex( + zeroPad(new Uint8Array(Buffer.from(address, "ascii")), 31) + ) + ); + } else { + return uint8ArrayToHex(zeroPad(canonicalAddress(address), 32)); + } + } else if ( + chainName === "Terra2" || + chainName === "Injective" || + chainName === "Xpla" || + chainName === "Sei" + ) { + return buildTokenId(chainName, address); + } else if (chainName === "Algorand") { + return nativeStringToHexAlgorand(address); + } else if (chainName == "Wormchain") { + return uint8ArrayToHex(zeroPad(canonicalAddress(address), 32)); + } else if (chainName === "Near") { + return uint8ArrayToHex(arrayify(sha256(Buffer.from(address)))); + } else if (chainName === "Sui") { + if (!isValidSuiType(address) && isValidSuiAddress(address)) { + return uint8ArrayToHex( + zeroPad(arrayify(address, { allowMissingPrefix: true }), 32) + ); + } + throw Error("nativeToHexString: Sui types not supported yet."); + } else if (chainName === "Aptos") { + if (isValidAptosType(address)) { + return getExternalAddressFromType(address); + } + + return uint8ArrayToHex( + zeroPad(arrayify(address, { allowMissingPrefix: true }), 32) + ); + } else { + // If this case is reached + throw Error(`nativeToHexString: ${chainName} not supported yet.`); + } +}; + +/** + * + * Convert an address in a chain's native representation into a 32-byte array + * understood by wormhole. + * + * @throws if address is a malformed string for the given chain id + */ +export function tryNativeToUint8Array( + address: string, + chain: ChainId | Chain +): Uint8Array { + const chainId = toChainId(chain); + return hexToUint8Array(tryNativeToHexString(address, chainId)); +} + +/** + * Test if given string is a valid fully qualified type of moduleAddress::moduleName::structName. + * @param str String to test + * @returns Whether or not given string is a valid type + */ +export const isValidAptosType = (str: string): boolean => + /^(0x)?[0-9a-fA-F]+::\w+::\w+$/.test(str); + +/** + * Hashes the given type. Because fully qualified types are a concept unique to Aptos, this + * output acts as the address on other chains. + * @param fullyQualifiedType Fully qualified type on Aptos + * @returns External address corresponding to given type + */ +export const getExternalAddressFromType = ( + fullyQualifiedType: string +): string => { + // hash the type so it fits into 32 bytes + return sha3_256(fullyQualifiedType); +}; diff --git a/clients/js/src/sdk/sui.ts b/clients/js/src/sdk/sui.ts new file mode 100644 index 0000000000..2d199cb03c --- /dev/null +++ b/clients/js/src/sdk/sui.ts @@ -0,0 +1,130 @@ +import { + JsonRpcProvider, + SuiObjectResponse, + isValidSuiAddress as isValidFullSuiAddress, + normalizeSuiAddress, +} from "@mysten/sui.js"; +import { Chain, chainToChainId } from "@wormhole-foundation/sdk"; + +export async function getForeignAssetSui( + provider: JsonRpcProvider, + tokenBridgeStateObjectId: string, + originChain: Chain, + originAddress: Uint8Array +): Promise { + const originChainId = chainToChainId(originChain); + return getTokenCoinType( + provider, + tokenBridgeStateObjectId, + originAddress, + originChainId + ); +} + +export const getTokenCoinType = async ( + provider: JsonRpcProvider, + tokenBridgeStateObjectId: string, + tokenAddress: Uint8Array, + tokenChain: number +): Promise => { + const tokenBridgeStateFields = await getObjectFields( + provider, + tokenBridgeStateObjectId + ); + if (!tokenBridgeStateFields) { + throw new Error("Unable to fetch object fields from token bridge state"); + } + + const coinTypes = tokenBridgeStateFields?.token_registry?.fields?.coin_types; + const coinTypesObjectId = coinTypes?.fields?.id?.id; + if (!coinTypesObjectId) { + throw new Error("Unable to fetch coin types"); + } + + const keyType = getTableKeyType(coinTypes?.type); + if (!keyType) { + throw new Error("Unable to get key type"); + } + + const response = await provider.getDynamicFieldObject({ + parentId: coinTypesObjectId, + name: { + type: keyType, + value: { + addr: [...tokenAddress], + chain: tokenChain, + }, + }, + }); + if (response.error) { + if (response.error.code === "dynamicFieldNotFound") { + return null; + } + throw new Error( + `Unexpected getDynamicFieldObject response ${response.error}` + ); + } + const fields = getFieldsFromObjectResponse(response); + return fields?.value ? trimSuiType(ensureHexPrefix(fields.value)) : null; +}; + +export const getObjectFields = async ( + provider: JsonRpcProvider, + objectId: string +): Promise | null> => { + if (!isValidSuiAddress(objectId)) { + throw new Error(`Invalid object ID: ${objectId}`); + } + + const res = await provider.getObject({ + id: objectId, + options: { + showContent: true, + }, + }); + return getFieldsFromObjectResponse(res); +}; + +export const getFieldsFromObjectResponse = (object: SuiObjectResponse) => { + const content = object.data?.content; + return content && content.dataType === "moveObject" ? content.fields : null; +}; + +export function ensureHexPrefix(x: string): string { + return x.substring(0, 2) !== "0x" ? `0x${x}` : x; +} + +/** + * This method validates any Sui address, even if it's not 32 bytes long, i.e. + * "0x2". This differs from Mysten's implementation, which requires that the + * given address is 32 bytes long. + * @param address Address to check + * @returns If given address is a valid Sui address or not + */ +export const isValidSuiAddress = (address: string): boolean => + isValidFullSuiAddress(normalizeSuiAddress(address)); + +export const getTableKeyType = (tableType: string): string | null => { + if (!tableType) return null; + const match = trimSuiType(tableType).match(/0x2::table::Table<(.*)>/); + if (!match) return null; + const [keyType] = match[1].split(","); + if (!isValidSuiType(keyType)) return null; + return keyType; +}; + +/** + * This method removes leading zeroes for types in order to normalize them + * since some types returned from the RPC have leading zeroes and others don't. + */ +export const trimSuiType = (type: string): string => + type.replace(/(0x)(0*)/g, "0x"); + +export const isValidSuiType = (type: string): boolean => { + const tokens = type.split("::"); + if (tokens.length !== 3) { + return false; + } + + return isValidSuiAddress(tokens[0]) && !!tokens[1] && !!tokens[2]; +}; diff --git a/clients/js/src/solana.ts b/clients/js/src/solana.ts index 1e8dfaf061..f0af5d7127 100644 --- a/clients/js/src/solana.ts +++ b/clients/js/src/solana.ts @@ -16,13 +16,6 @@ import { createUpgradeGuardianSetInstruction, createUpgradeContractInstruction as createWormholeUpgradeContractInstruction, } from "@certusone/wormhole-sdk/lib/esm/solana/wormhole"; -import { - CHAINS, - CONTRACTS, - ChainName, - Network, - SolanaChainName, -} from "@certusone/wormhole-sdk/lib/esm/utils/consts"; import * as web3s from "@solana/web3.js"; import base58 from "bs58"; import { NETWORKS } from "./consts"; @@ -32,19 +25,30 @@ import { transferFromSolana, transferNativeSol, } from "@certusone/wormhole-sdk/lib/esm/token_bridge/transfer"; -import { - hexToUint8Array, - tryNativeToUint8Array, -} from "@certusone/wormhole-sdk/lib/esm/utils"; import { PublicKey } from "@solana/web3.js"; import { getAssociatedTokenAddress } from "@solana/spl-token"; +import { + Chain, + Network, + PlatformToChains, + chainToChainId, + chainToPlatform, + chains, + contracts, + platformToChains, +} from "@wormhole-foundation/sdk-base"; +import { hexToUint8Array, tryNativeToUint8Array } from "./sdk/array"; export async function execute_solana( v: VAA, vaa: Buffer, - network: "MAINNET" | "TESTNET" | "DEVNET", - chain: SolanaChainName + network: Network, + chain: Chain ) { + if (chainToPlatform(chain) !== "Solana") { + // This "Solana" platform, also, includes Pythnet + throw new Error("Invalid chain"); + } const { rpc, key } = NETWORKS[network][chain]; if (!key) { throw Error(`No ${network} key defined for ${chain}`); @@ -57,22 +61,24 @@ export async function execute_solana( const connection = setupConnection(rpc); const from = web3s.Keypair.fromSecretKey(base58.decode(key)); - const contracts = CONTRACTS[network][chain]; - if (!contracts.core) { + const coreContract = contracts.coreBridge.get(network, chain); + if (!coreContract) { throw new Error(`Core bridge address not defined for ${chain} ${network}`); } - if (!contracts.nft_bridge) { + const nftContract = contracts.nftBridge.get(network, chain); + if (!nftContract) { throw new Error(`NFT bridge address not defined for ${chain} ${network}`); } - if (!contracts.token_bridge) { + const tbContract = contracts.tokenBridge.get(network, chain); + if (!tbContract) { throw new Error(`Token bridge address not defined for ${chain} ${network}`); } - const bridgeId = new web3s.PublicKey(contracts.core); - const tokenBridgeId = new web3s.PublicKey(contracts.token_bridge); - const nftBridgeId = new web3s.PublicKey(contracts.nft_bridge); + const bridgeId = new web3s.PublicKey(coreContract); + const tokenBridgeId = new web3s.PublicKey(tbContract); + const nftBridgeId = new web3s.PublicKey(nftContract); let ix: web3s.TransactionInstruction; switch (v.payload.module) { @@ -163,7 +169,7 @@ export async function execute_solana( break; case "Transfer": console.log("Completing transfer"); - if (payload.tokenChain === CHAINS[chain]) { + if (payload.tokenChain === chainToChainId(chain)) { ix = createCompleteTransferNativeInstruction( tokenBridgeId, bridgeId, @@ -228,14 +234,15 @@ export async function execute_solana( } export async function transferSolana( - srcChain: SolanaChainName, - dstChain: ChainName, + srcChain: PlatformToChains<"Solana">, + dstChain: Chain, dstAddress: string, tokenAddress: string, amount: string, network: Network, rpc: string ) { + platformToChains("Solana"); const { key } = NETWORKS[network][srcChain]; if (!key) { throw Error(`No ${network} key defined for ${srcChain}`); @@ -244,12 +251,13 @@ export async function transferSolana( const connection = setupConnection(rpc); const keypair = web3s.Keypair.fromSecretKey(base58.decode(key)); - const { core, token_bridge } = CONTRACTS[network][srcChain]; + const core = contracts.coreBridge.get(network, srcChain); if (!core) { throw new Error( `Core bridge address not defined for ${srcChain} ${network}` ); } + const token_bridge = contracts.tokenBridge.get(network, srcChain); if (!token_bridge) { throw new Error( `Token bridge address not defined for ${srcChain} ${network}` @@ -268,8 +276,8 @@ export async function transferSolana( tokenBridgeId, payerAddress, BigInt(amount), - tryNativeToUint8Array(dstAddress, dstChain), - dstChain + tryNativeToUint8Array(dstAddress, chainToChainId(dstChain)), + chainToChainId(dstChain) ); } else { // find the associated token account @@ -287,8 +295,8 @@ export async function transferSolana( fromAddress, tokenAddress, // mintAddress BigInt(amount), - tryNativeToUint8Array(dstAddress, dstChain), - dstChain + tryNativeToUint8Array(dstAddress, chainToChainId(dstChain)), + chainToChainId(dstChain) ); } @@ -316,18 +324,17 @@ export async function queryRegistrationsSolana( network: Network, module: "Core" | "NFTBridge" | "TokenBridge" ): Promise { - const chain = "solana" as ChainName; + const chain = "Solana"; const n = NETWORKS[network][chain]; - const contracts = CONTRACTS[network][chain]; let targetAddress: string | undefined; switch (module) { case "TokenBridge": - targetAddress = contracts.token_bridge; + targetAddress = contracts.tokenBridge(network, chain); break; case "NFTBridge": - targetAddress = contracts.nft_bridge; + targetAddress = contracts.nftBridge(network, chain); break; default: throw new Error(`Invalid module: ${module}`); @@ -346,26 +353,26 @@ export async function queryRegistrationsSolana( // Query the bridge registration for all the chains in parallel. const registrations: (string | null)[][] = await Promise.all( - Object.entries(CHAINS) - .filter(([cname, _]) => cname !== chain && cname !== "unset") - .map(async ([cstr, cid]) => [ + chains + .filter((cname) => cname !== chain) + .map(async (cstr) => [ cstr, await (async () => { - let cname = cstr as ChainName; + // let cname = cstr as Chain; let addr: string | undefined; if (module === "TokenBridge") { - addr = CONTRACTS[network][cname].token_bridge; + addr = contracts.tokenBridge.get(network, cstr); } else { - addr = CONTRACTS[network][cname].nft_bridge; + addr = contracts.nftBridge.get(network, cstr); } if (addr === undefined) { return null; } - let emitter_addr = await getEmitterAddress(cname as ChainName, addr); + let emitter_addr = await getEmitterAddress(cstr, addr); const endpoint = deriveEndpointKey( programId, - cid, + chainToChainId(cstr), hexToUint8Array(emitter_addr) ); diff --git a/clients/js/src/terra.ts b/clients/js/src/terra.ts index 0f3faac76a..30591b4197 100644 --- a/clients/js/src/terra.ts +++ b/clients/js/src/terra.ts @@ -1,9 +1,3 @@ -import { - CHAINS, - CONTRACTS, - ChainName, - TerraChainName, -} from "@certusone/wormhole-sdk/lib/esm/utils/consts"; import { Coin, Fee, @@ -15,24 +9,29 @@ import { import axios from "axios"; import { fromUint8Array } from "js-base64"; import { NETWORKS } from "./consts"; -import { Network } from "./utils"; import { Payload, impossible } from "./vaa"; import { transferFromTerra } from "@certusone/wormhole-sdk/lib/esm/token_bridge/transfer"; -import { tryNativeToUint8Array } from "@certusone/wormhole-sdk/lib/esm/utils"; +import { + Chain, + Network, + chains, + contracts, + toChainId, +} from "@wormhole-foundation/sdk-base"; +import { tryNativeToUint8Array } from "./sdk/array"; export async function execute_terra( payload: Payload, vaa: Buffer, network: Network, - chain: TerraChainName + chain: "Terra" | "Terra2" ): Promise { const { rpc, key, chain_id } = NETWORKS[network][chain]; - const contracts = CONTRACTS[network][chain]; const terra = new LCDClient({ URL: rpc, chainID: chain_id, - isClassic: chain === "terra", + isClassic: chain === "Terra", }); const wallet = terra.wallet( @@ -46,13 +45,14 @@ export async function execute_terra( switch (payload.module) { case "Core": { - if (!contracts.core) { + const coreContract = contracts.coreBridge(network, chain); + if (!coreContract) { throw new Error( `Core bridge address not defined for ${chain} ${network}` ); } - target_contract = contracts.core; + target_contract = coreContract; // sigh... execute_msg = { submit_v_a_a: { @@ -75,14 +75,15 @@ export async function execute_terra( break; } case "NFTBridge": { - if (!contracts.nft_bridge) { + const nftContract = contracts.nftBridge.get(network, chain); + if (!nftContract) { // NOTE: this code can safely be removed once the terra NFT bridge is // released, but it's fine for it to stay, as the condition will just be // skipped once 'contracts.nft_bridge' is defined throw new Error(`NFT bridge not supported yet for ${chain}`); } - target_contract = contracts.nft_bridge; + target_contract = nftContract; execute_msg = { submit_vaa: { data: fromUint8Array(vaa), @@ -107,13 +108,14 @@ export async function execute_terra( break; } case "TokenBridge": { - if (!contracts.token_bridge) { + const tbContract = contracts.tokenBridge.get(network, chain); + if (!tbContract) { throw new Error( `Token bridge address not defined for ${chain} ${network}` ); } - target_contract = contracts.token_bridge; + target_contract = tbContract; execute_msg = { submit_vaa: { data: fromUint8Array(vaa), @@ -160,8 +162,8 @@ export async function execute_terra( } export async function transferTerra( - srcChain: TerraChainName, - dstChain: ChainName, + srcChain: "Terra" | "Terra2", + dstChain: Chain, dstAddress: string, tokenAddress: string, amount: string, @@ -172,7 +174,7 @@ export async function transferTerra( if (!n.key) { throw Error(`No ${network} key defined for ${srcChain} (see networks.ts)`); } - const { token_bridge } = CONTRACTS[network][srcChain]; + const token_bridge = contracts.tokenBridge.get(network, srcChain); if (!token_bridge) { throw Error(`Unknown token bridge contract on ${network} for ${srcChain}`); } @@ -180,7 +182,7 @@ export async function transferTerra( const terra = new LCDClient({ URL: rpc, chainID: n.chain_id, - isClassic: srcChain === "terra", + isClassic: srcChain === "Terra", }); const wallet = terra.wallet( @@ -194,8 +196,8 @@ export async function transferTerra( token_bridge, tokenAddress, amount, - dstChain, - tryNativeToUint8Array(dstAddress, dstChain) + toChainId(dstChain), + tryNativeToUint8Array(dstAddress, toChainId(dstChain)) ); await signAndSendTx(terra, wallet, msgs); } @@ -242,20 +244,19 @@ async function signAndSendTx( export async function queryRegistrationsTerra( network: Network, - chain: TerraChainName, + chain: "Terra" | "Terra2", module: "Core" | "NFTBridge" | "TokenBridge" ): Promise { const n = NETWORKS[network][chain]; - const contracts = CONTRACTS[network][chain]; let targetContract: string | undefined; switch (module) { case "TokenBridge": - targetContract = contracts.token_bridge; + targetContract = contracts.tokenBridge(network, chain); break; case "NFTBridge": - targetContract = contracts.nft_bridge; + targetContract = contracts.nftBridge.get(network, chain); break; default: throw new Error(`Invalid module: ${module}`); @@ -276,19 +277,19 @@ export async function queryRegistrationsTerra( const client = new LCDClient({ URL: n.rpc, chainID: n.chain_id, - isClassic: chain === "terra", + isClassic: chain === "Terra", }); // Query the bridge registration for all the chains in parallel. const registrations: (string | null)[][] = await Promise.all( - Object.entries(CHAINS) - .filter(([cname, _]) => cname !== chain && cname !== "unset") - .map(async ([cname, cid]) => [ + chains + .filter((cname) => cname !== chain) + .map(async (cname) => [ cname, await (async () => { let query_msg = { chain_registration: { - chain: cid, + chain: toChainId(cname), }, }; diff --git a/clients/js/src/utils.ts b/clients/js/src/utils.ts index f1a76e4358..e7a3bec233 100644 --- a/clients/js/src/utils.ts +++ b/clients/js/src/utils.ts @@ -1,14 +1,14 @@ +import { + Chain, + ChainId, + Network, + PlatformToChains, + chainToPlatform, + toChain, +} from "@wormhole-foundation/sdk-base"; import { spawnSync } from "child_process"; import { ethers } from "ethers"; -export type Network = "MAINNET" | "TESTNET" | "DEVNET"; - -export function assertNetwork(n: string): asserts n is Network { - if (n !== "MAINNET" && n !== "TESTNET" && n !== "DEVNET") { - throw Error(`Unknown network: ${n}`); - } -} - export const checkBinary = (binaryName: string, readmeUrl?: string): void => { const binary = spawnSync(binaryName, ["--version"]); if (binary.status !== 0) { @@ -29,3 +29,33 @@ export const evm_address = (x: string): string => { export const hex = (x: string): string => { return ethers.utils.hexlify(x, { allowMissingPrefix: true }); }; + +export function assertEVMChain( + chain: ChainId | Chain +): asserts chain is PlatformToChains<"Evm"> { + if (chainToPlatform(toChain(chain)) !== "Evm") { + throw Error(`Expected an EVM chain, but ${chain} is not`); + } +} + +export function getNetwork(network: string): Network { + const lcNetwork: string = network.toLowerCase(); + if (lcNetwork === "mainnet") { + return "Mainnet"; + } + if (lcNetwork === "testnet") { + return "Testnet"; + } + if (lcNetwork === "devnet") { + return "Devnet"; + } + throw new Error(`Unknown network: ${network}`); +} + +export function chainToChain(input: string): Chain { + if (input.length < 2) { + throw new Error(`Invalid chain: ${input}`); + } + const chainStr = input[0].toUpperCase() + input.slice(1).toLowerCase(); + return toChain(chainStr); +} diff --git a/clients/js/src/xpla.ts b/clients/js/src/xpla.ts index f5c404c3f0..966372c15d 100644 --- a/clients/js/src/xpla.ts +++ b/clients/js/src/xpla.ts @@ -1,7 +1,3 @@ -import { - CONTRACTS, - ChainName, -} from "@certusone/wormhole-sdk/lib/esm/utils/consts"; import { Coin, Fee, @@ -12,18 +8,22 @@ import { } from "@xpla/xpla.js"; import { fromUint8Array } from "js-base64"; import { NETWORKS } from "./consts"; -import { Network } from "./utils"; import { Payload, impossible } from "./vaa"; import { transferFromXpla } from "@certusone/wormhole-sdk/lib/esm/token_bridge/transfer"; -import { tryNativeToUint8Array } from "@certusone/wormhole-sdk/lib/esm/utils"; +import { + Chain, + chainToChainId, + contracts, + Network, +} from "@wormhole-foundation/sdk-base"; +import { tryNativeToUint8Array } from "./sdk/array"; export async function execute_xpla( payload: Payload, vaa: Buffer, network: Network ) { - const { rpc, key, chain_id } = NETWORKS[network].xpla; - const contracts = CONTRACTS[network].xpla; + const { rpc, key, chain_id } = NETWORKS[network].Xpla; if (!key) { throw Error(`No ${network} key defined for XPLA`); } @@ -47,11 +47,12 @@ export async function execute_xpla( let execute_msg: object; switch (payload.module) { case "Core": { - if (!contracts.core) { + const coreContract = contracts.coreBridge.get(network, "Xpla"); + if (!coreContract) { throw new Error(`Core bridge address not defined for XPLA ${network}`); } - target_contract = contracts.core; + target_contract = coreContract; execute_msg = { submit_v_a_a: { vaa: fromUint8Array(vaa), @@ -73,14 +74,15 @@ export async function execute_xpla( break; } case "NFTBridge": { - if (!contracts.nft_bridge) { + const nftContract = contracts.nftBridge.get(network, "Xpla"); + if (!nftContract) { // NOTE: this code can safely be removed once the terra NFT bridge is // released, but it's fine for it to stay, as the condition will just be // skipped once 'contracts.nft_bridge' is defined throw new Error("NFT bridge not supported yet for XPLA"); } - target_contract = contracts.nft_bridge; + target_contract = nftContract; execute_msg = { submit_vaa: { data: fromUint8Array(vaa), @@ -105,11 +107,12 @@ export async function execute_xpla( break; } case "TokenBridge": { - if (!contracts.token_bridge) { + const tbContract = contracts.tokenBridge.get(network, "Xpla"); + if (!tbContract) { throw new Error(`Token bridge address not defined for XPLA ${network}`); } - target_contract = contracts.token_bridge; + target_contract = tbContract; execute_msg = { submit_vaa: { data: fromUint8Array(vaa), @@ -156,18 +159,18 @@ export async function execute_xpla( } export async function transferXpla( - dstChain: ChainName, + dstChain: Chain, dstAddress: string, tokenAddress: string, amount: string, network: Network, rpc: string ) { - const { key, chain_id } = NETWORKS[network].xpla; + const { key, chain_id } = NETWORKS[network].Xpla; if (!key) { throw Error(`No ${network} key defined for XPLA`); } - const { token_bridge } = CONTRACTS[network].xpla; + const token_bridge = contracts.tokenBridge.get(network, "Xpla"); if (token_bridge == undefined) { throw Error(`Unknown token bridge contract on ${network} for XPLA`); } @@ -185,8 +188,8 @@ export async function transferXpla( token_bridge, tokenAddress, amount, - dstChain, - tryNativeToUint8Array(dstAddress, dstChain) + chainToChainId(dstChain), + tryNativeToUint8Array(dstAddress, chainToChainId(dstChain)) ); await signAndSendTx(client, wallet, msgs); } diff --git a/clients/js/tsconfig.json b/clients/js/tsconfig.json index 7805542035..ce7a76b2bb 100644 --- a/clients/js/tsconfig.json +++ b/clients/js/tsconfig.json @@ -6,6 +6,7 @@ "outDir": "./build", "moduleResolution": "node", "esModuleInterop": true, + "skipLibCheck": true, "forceConsistentCasingInFileNames": true, "strict": true }, diff --git a/cosmwasm/contracts/ibc-translator/Cargo.toml b/cosmwasm/contracts/ibc-translator/Cargo.toml index d785959214..4e5c38e394 100644 --- a/cosmwasm/contracts/ibc-translator/Cargo.toml +++ b/cosmwasm/contracts/ibc-translator/Cargo.toml @@ -12,6 +12,9 @@ crate-type = ["cdylib", "rlib"] backtraces = ["cosmwasm-std/backtraces"] # use library feature to disable all instantiate/execute/query/reply exports library = [] +cosmwasm_1_2 = ["cosmwasm-std/cosmwasm_1_2"] +stargate = ["cosmwasm-std/stargate"] +staking = ["cosmwasm-std/staking"] [dependencies] anybuf = "0.1.0" @@ -35,4 +38,4 @@ wormhole-sdk = { workspace = true, features = ["schemars"] } cosmwasm-crypto = { version = "1.2.7" } hex = "0.4.3" prost = "0.11.0" -serde = { version = "1.0.103", features = ["derive", "alloc"]} \ No newline at end of file +serde = { version = "1.0.103", features = ["derive", "alloc"]} diff --git a/cosmwasm/contracts/wormchain-ibc-receiver/Cargo.toml b/cosmwasm/contracts/wormchain-ibc-receiver/Cargo.toml index 648afe6958..778fe83edb 100644 --- a/cosmwasm/contracts/wormchain-ibc-receiver/Cargo.toml +++ b/cosmwasm/contracts/wormchain-ibc-receiver/Cargo.toml @@ -9,6 +9,7 @@ crate-type = ["cdylib", "rlib"] [features] backtraces = ["cosmwasm-std/backtraces"] +library = [] [dependencies] cosmwasm-std = { version = "1.0.0", features = ["ibc3"] } @@ -19,4 +20,4 @@ semver = "1.0.16" thiserror = "1.0.31" wormhole-bindings = "0.1.0" wormhole-sdk = { workspace = true, features = ["schemars"] } -serde_wormhole.workspace = true \ No newline at end of file +serde_wormhole.workspace = true diff --git a/cosmwasm/contracts/wormchain-ibc-receiver/src/ibc.rs b/cosmwasm/contracts/wormchain-ibc-receiver/src/ibc.rs index fd341c35c2..8b24b75968 100644 --- a/cosmwasm/contracts/wormchain-ibc-receiver/src/ibc.rs +++ b/cosmwasm/contracts/wormchain-ibc-receiver/src/ibc.rs @@ -15,7 +15,7 @@ use crate::msg::WormholeIbcPacketMsg; pub const IBC_APP_VERSION: &str = "ibc-wormhole-v1"; /// 1. Opening a channel. Step 1 of handshake. Combines ChanOpenInit and ChanOpenTry from the spec. -/// The only valid action of the contract is to accept the channel or reject it. +/// The only valid action of the contract is to accept the channel or reject it. #[cfg_attr(not(feature = "library"), entry_point)] pub fn ibc_channel_open( _deps: DepsMut, @@ -150,7 +150,7 @@ fn encode_ibc_error(msg: impl Into) -> Binary { } /// 5. Acknowledging a packet. Called when the other chain successfully receives a packet from us. -/// Never should be called as this contract never sends packets +/// Never should be called as this contract never sends packets #[cfg_attr(not(feature = "library"), entry_point)] pub fn ibc_packet_ack( _deps: DepsMut, @@ -163,7 +163,7 @@ pub fn ibc_packet_ack( } /// 6. Timing out a packet. Called when the packet was not recieved on the other chain before the timeout. -/// Never should be called as this contract never sends packets +/// Never should be called as this contract never sends packets #[cfg_attr(not(feature = "library"), entry_point)] pub fn ibc_packet_timeout( _deps: DepsMut, diff --git a/cosmwasm/contracts/wormhole-ibc/Cargo.toml b/cosmwasm/contracts/wormhole-ibc/Cargo.toml index 130f78076d..805cb8cdb8 100644 --- a/cosmwasm/contracts/wormhole-ibc/Cargo.toml +++ b/cosmwasm/contracts/wormhole-ibc/Cargo.toml @@ -9,6 +9,7 @@ crate-type = ["cdylib", "rlib"] [features] backtraces = ["cosmwasm-std/backtraces"] +library = [] [dependencies] wormhole-cosmwasm = { version = "0.1.0", default-features = false, features = ["library", "full"] } @@ -24,4 +25,4 @@ serde_wormhole.workspace = true wormhole-sdk = { workspace = true, features = ["schemars"] } [dev-dependencies] -hex = "0.4.3" \ No newline at end of file +hex = "0.4.3" diff --git a/cosmwasm/contracts/wormhole-ibc/src/ibc.rs b/cosmwasm/contracts/wormhole-ibc/src/ibc.rs index af64b28006..41cf54c9b2 100644 --- a/cosmwasm/contracts/wormhole-ibc/src/ibc.rs +++ b/cosmwasm/contracts/wormhole-ibc/src/ibc.rs @@ -16,7 +16,7 @@ pub const IBC_APP_VERSION: &str = "ibc-wormhole-v1"; pub const PACKET_LIFETIME: u64 = 31_536_000; /// 1. Opening a channel. Step 1 of handshake. Combines ChanOpenInit and ChanOpenTry from the spec. -/// The only valid action of the contract is to accept the channel or reject it. +/// The only valid action of the contract is to accept the channel or reject it. #[cfg_attr(not(feature = "library"), entry_point)] pub fn ibc_channel_open( _deps: DepsMut, @@ -71,7 +71,7 @@ pub fn ibc_channel_close( } /// 4. Receiving a packet. -/// Never should be called as the other side never sends packets +/// Never should be called as the other side never sends packets #[cfg_attr(not(feature = "library"), entry_point)] pub fn ibc_packet_receive( _deps: DepsMut, diff --git a/cosmwasm/deployment/terra2/Makefile b/cosmwasm/deployment/terra2/Makefile index 312d5958fb..19b5e3f470 100644 --- a/cosmwasm/deployment/terra2/Makefile +++ b/cosmwasm/deployment/terra2/Makefile @@ -42,10 +42,10 @@ test/node_modules: test/package-lock.json ## Run unit and integration tests test: artifacts test/node_modules @if pgrep terrad; then echo "Error: terrad already running. Stop it before running tests"; exit 1; fi - cd devnet && DOCKER_BUILDKIT=1 docker-compose up --detach + cd devnet && DOCKER_BUILDKIT=1 docker compose up --detach sleep 10 - cd test && npm run test || (cd ../devnet && docker-compose down && exit 1) - cd devnet && docker-compose down + cd test && npm run test || (cd ../devnet && docker compose down && exit 1) + cd devnet && docker compose down .PHONY: clean clean: diff --git a/cspell-custom-words.txt b/cspell-custom-words.txt index 4b0a42794f..1cb8060b6f 100644 --- a/cspell-custom-words.txt +++ b/cspell-custom-words.txt @@ -155,6 +155,8 @@ seievm Sepolia serde setcap +snaxchain +SnaxChain solana Solana Solana's diff --git a/deployments/testnet/tokenBridgeVAAs.csv b/deployments/testnet/tokenBridgeVAAs.csv index 33704ba634..cc26424ed0 100644 --- a/deployments/testnet/tokenBridgeVAAs.csv +++ b/deployments/testnet/tokenBridgeVAAs.csv @@ -9,8 +9,8 @@ Oasis (7) Testnet Token Bridge,01000000000100eb109d6208ea838e9ae9ef091f4dc4a4d66 Algorand (8) Testnet Token Bridge,010000000001006e90fe2a505f0d67b6ca6221a42f55957bf59201451ffbecbfa4a3416a8491c45e8bcaa18a3c422f5548d98db788f89ac6c8c89d1fe6334860baccc8fedb7c3400626a9eed41c71ee1000100000000000000000000000000000000000000000000000000000000000000040000000041c71ee120000000000000000000000000000000000000000000546f6b656e42726964676501000000086241ffdc032b693bfb8544858f0403dec86f2e1720af9f34f8d65fe574b6238c Aurora (9) (NEAR) Testnet Token Bridge,0100000000010096e79a229cdd3717f0b47bf7fb65b88202c4ec5fd9cc7d5f319cbe27b0f57d0c2292204c9df25e060e7e9632a54fefca88f1ca95c76ca083a07a68d59de9964701000000010000000100010000000000000000000000000000000000000000000000000000000000000004000000000227003a00000000000000000000000000000000000000000000546f6b656e4272696467650100000009000000000000000000000000d05ed3ad637b890d68a854d607eeaf11af456fba Fantom (10) Testnet Token Bridge,010000000001007bc5bdc2253a6deec065a6e573f7bdd363383b91210054d8ce7558d9b8185a60157370f56f35d03fc434ecf90fc652cf31b9b4a2a15eb43c5ad8a664356ef81e00000000010000000100010000000000000000000000000000000000000000000000000000000000000004000000000351c06c00000000000000000000000000000000000000000000546f6b656e427269646765010000000a000000000000000000000000599cea2204b4faecd584ab1f2b6aca137a0afbe8 -Karura (11) Testnet Token Bridge,01000000000100c01c50054de5f481bb5cd8b4e5d906d86c7307ba969a0f9f042e410b859528387040360954dc4fd4834d4f68dfea9067f3da3bb4af127f61e3ae04f7d216fc300100000001000000010001000000000000000000000000000000000000000000000000000000000000000400000000026bcc5b00000000000000000000000000000000000000000000546f6b656e427269646765010000000b000000000000000000000000d11de1f930ea1f7dd0290fe3a2e35b9c91aefb37 -Acala (12) Testnet Token Bridge,01000000000100595f3b02b450ea71724c09a4b1a071f67eafb1471e0bd0d03d506e11ceedc81d788dd57dc81927cb74970ad6389e369d0589682d176eff033fe140dae1035155000000000100000001000100000000000000000000000000000000000000000000000000000000000000040000000002a49e7a00000000000000000000000000000000000000000000546f6b656e427269646765010000000c000000000000000000000000eba00cbe08992edd08ed7793e07ad6063c807004 +Karura (11) Testnet Token Bridge,01000000000100175e61ce980c99ed9e85a7519070a736bc418e3218349bfac7360f9699e852373ae786bc5646da9f3c5ce7b4d1fda26df9d9c0fc8262a0bc84bd4d01d33379020100000001000000010001000000000000000000000000000000000000000000000000000000000000000400000000007d92c400000000000000000000000000000000000000000000546f6b656e427269646765010000000b000000000000000000000000e157115ef34c93145fec2fe53706846853b07f42 +Acala (12) Testnet Token Bridge,010000000001006b565b943c90f3634b8352f9089e3b3a0a50e6f32edea47b91b5a1c15f190a0317a7ffc9fc76df4ed98eb25effe70c0218bdcb16ff9799d1ed8b33e756ca08990100000001000000010001000000000000000000000000000000000000000000000000000000000000000400000000059f9b1700000000000000000000000000000000000000000000546f6b656e427269646765010000000c000000000000000000000000e157115ef34c93145fec2fe53706846853b07f42 Klaytn (13) Testnet Token Bridge,0100000000010018f4c45a9e8e0b6767d84bef689987dcdf86190500b92c82aa67df532a5719451b5a1897c342ae4fb851fc84c090624ab3070b485f54a07b9cf9e7645069c8cf010000000100000001000100000000000000000000000000000000000000000000000000000000000000040000000004df8a7400000000000000000000000000000000000000000000546f6b656e427269646765010000000d000000000000000000000000c7a13be098720840dea132d860fdfa030884b09a Celo (14) Testnet Token Bridge,010000000001008a8e90d7053e7f2056a637de9cf525e949a2a8834b9c3a8ac05b6106dd83756443493fcc75a88f4c6fcd9cf1121a7b5f51807f8a9e3e63cebdd47904f30de70d000000000100000001000100000000000000000000000000000000000000000000000000000000000000040000000001b0920b00000000000000000000000000000000000000000000546f6b656e427269646765010000000e00000000000000000000000005ca6037ec51f8b712ed2e6fa72219feae74e153 Near (15) Testnet Token Bridge,010000000001004c49657df4c346b7f7f48e802ae42a5e9a4e8b1e26887f3989d8fca956ab7bd01b9a8b1bf73b1b890621e0e6a0790f6e70dc34e181090f8f761d1d02299a019b0000000001000000010001000000000000000000000000000000000000000000000000000000000000000400000000006948a500000000000000000000000000000000000000000000546f6b656e427269646765010000000fc2c0b6ecbbe9ecf91b2b7999f0264018ba68126c2e83bf413f59f712f3a1df55 @@ -30,6 +30,7 @@ Blast (36) Testnet Token Bridge,0100000000010052b4615add1ca354feb81a7f90b70a0d78 XLayer (37) Testnet Token Bridge,01000000000100c983babda02e84e346e49f823aa201d65c82e19c51cdfb555cc9aa2fa6809f4500f6344d86722b1a8023906d185c96bc9b4e332402ae2e05ec69d0d95c39ea81000000000100000001000100000000000000000000000000000000000000000000000000000000000000040000000005b1293100000000000000000000000000000000000000000000546f6b656e4272696467650100000025000000000000000000000000da91a06299bbf302091b053c6b9ef86eff0f930d Linea (38) Testnet Token Bridge,01000000000100411f65a20405ad0d85d6718a91bc16cf645a7eb7dbd29d4b2d0b9cc2d872dc01112cf96dc40c07ddf648325a5dcdba42c70612179126178e7fb9e9bcfef1cb4a01000000010000000100010000000000000000000000000000000000000000000000000000000000000004000000000183785600000000000000000000000000000000000000000000546f6b656e4272696467650100000026000000000000000000000000c7a204bdbfe983fcd8d8e61d02b475d4073ff97e Berachain (39) Testnet Token Bridge,01000000000100c19d35faa10139fef5b3244f120efb67ad22d2d9ece7d777bcb6e957506ba9f15e2e6fd91a18dcdd6bf434d96d624fd725f957437f2e86dfdcbb6d0e97f3eeb100000000010000000100010000000000000000000000000000000000000000000000000000000000000004000000000404250300000000000000000000000000000000000000000000546f6b656e4272696467650100000027000000000000000000000000a10f2ef61de1f19f586ab8b6f2eba89bace63f7a +Snaxchain (43) Testnet Token Bridge,010000000001008ed60dec76f13f6da695fc5f134c8cf3527f264712e7bb98d2e54a5f457759e0491e3f1cb42eed9b84edc60a96836df98a3752c8a4e10977801e6c35a39f211b000000000100000001000100000000000000000000000000000000000000000000000000000000000000040000000005ba971e00000000000000000000000000000000000000000000546f6b656e427269646765010000002b000000000000000000000000a10f2ef61de1f19f586ab8b6f2eba89bace63f7a Gateway (3104) Testnet Token Bridge,01000000000100117d1c7a124a9e2e29d82b3803b825be7c8a1dc7f19013669f7d11d42d448aa72339fe3657e4bd156c5c28dd10e78aab3e06e9e76c4bbd38c81e057533d577c40000000000d09296c5000100000000000000000000000000000000000000000000000000000000000000049ea4b9942b23298c20000000000000000000000000000000000000000000546f6b656e4272696467650100000c20ef5251ea1e99ae48732800ccc7b83b57881232a73eb796b63b1d86ed2ea44e27 Sepolia (10002) (Ethereum) Testnet Token Bridge,01000000000100a03841125d40e9df3cd80d027bc660191755587980e49f6a46e9baa1b5c3f6b46e51256c225bd242139ae11d3c84439acdc204a5f39a2e1acb750ae98bb759f1000000000100000001000100000000000000000000000000000000000000000000000000000000000000040000000005491ea100000000000000000000000000000000000000000000546f6b656e4272696467650100002712000000000000000000000000db5492265f6038831e89f495670ff909ade94bd9 Arbitrum Sepolia (10003) Testnet Token Bridge,010000000001001b0fbbcc7a3e8c491dc25f0a611075513032fe444d8e6585153e6ae2cf8c7514152b050e95a3e0af11e5b2705b2efb717bec3cfaa3b1617ff623c14e61a69224000000000100000001000100000000000000000000000000000000000000000000000000000000000000040000000001b8de3c00000000000000000000000000000000000000000000546f6b656e4272696467650100002713000000000000000000000000c7a204bdbfe983fcd8d8e61d02b475d4073ff97e diff --git a/devnet/node.yaml b/devnet/node.yaml index a2bb2bf924..b6407bc33a 100644 --- a/devnet/node.yaml +++ b/devnet/node.yaml @@ -182,8 +182,8 @@ metadata: name: node-wormchain-key type: Opaque data: - accountantKey0: LS0tLS1CRUdJTiBURU5ERVJNSU5UIFBSSVZBVEUgS0VZLS0tLS0Ka2RmOiBiY3J5cHQKc2FsdDogNDc2ODc2NkE3OEZEN0ZBQjMwMUJGOTM5MUYwQ0Y2M0YKdHlwZTogc2VjcDI1NmsxCgpkbEZuN1ZqRk02RnJjYkdaVDRWeE5yRlE3SUhQS2RyVVBCRTYraW8yK0w0VFZqcis5emNIQTF3dzNubWtqNVFlCnVSekJWMjQyeUdTc3hNTTJZckI2Q1ZXdzlaWXJJY3JFeks1c0FuST0KPXB2aHkKLS0tLS1FTkQgVEVOREVSTUlOVCBQUklWQVRFIEtFWS0tLS0t - accountantKey1: LS0tLS1CRUdJTiBURU5ERVJNSU5UIFBSSVZBVEUgS0VZLS0tLS0Ka2RmOiBiY3J5cHQKc2FsdDogNzc1M0NCQTBBMUQ0NTJCMkE2QzlERDM4ODc3MTg0NEEKdHlwZTogc2VjcDI1NmsxCgpSYnhRVWRnK2ZHcjMzZTAyVWFFQW1YTDFlNFkrTGJUMFdqbnl4RVR3OXBoL2JXOGI0MzdhWmErOWlCc3NBa0UyCnRScUwvb0J1NWFnQXJocHNnWUgxNlhOWjJHMXRwY0R3V0dQZ1VWVT0KPUd6YUwKLS0tLS1FTkQgVEVOREVSTUlOVCBQUklWQVRFIEtFWS0tLS0t + accountantKey0: LS0tLS1CRUdJTiBURU5ERVJNSU5UIFBSSVZBVEUgS0VZLS0tLS0Ka2RmOiBiY3J5cHQKc2FsdDogRjlGRUFBRDQ4NzJCNjQzN0JFRTI2MEU3QTUwOTFBOTEKdHlwZTogc2VjcDI1NmsxCgpxMEFsUHBqMFhxL1cvcStHUEUwRjVzOUZreVcwOHVZUFJKVFc5OENpbFNUZGhiQ3Z3T2kwWlVXb0pta2xoMm5ICnRmZEViTDF1NHEycnJjcDF5b0dLVHRNRmVOQm9aMW5IeWxlQ3lxMD0KPXk3cjAKLS0tLS1FTkQgVEVOREVSTUlOVCBQUklWQVRFIEtFWS0tLS0t + accountantKey1: LS0tLS1CRUdJTiBURU5ERVJNSU5UIFBSSVZBVEUgS0VZLS0tLS0Ka2RmOiBiY3J5cHQKc2FsdDogNzIyNDgyNzNBRjMzMDM4NTFDNjc0MURENzQ2MjMyNDAKdHlwZTogc2VjcDI1NmsxCgpaMmZwdHRRN0lCK1Y0NjBRZ0RqMGdqZmJIYlN5a0VCTGl6ZS9NQ1g4N2dBSkdyZzBIMTZPamtybUNQNkZVeERZClpadG1GOUx5ZEE5eVg3Z2pQbzd3ZlBGOW44cTFGMXV1RUVqQ3cvcz0KPU9nOXYKLS0tLS1FTkQgVEVOREVSTUlOVCBQUklWQVRFIEtFWS0tLS0t gwrelayerKey0: LS0tLS1CRUdJTiBURU5ERVJNSU5UIFBSSVZBVEUgS0VZLS0tLS0KdHlwZTogc2VjcDI1NmsxCmtkZjogYmNyeXB0CnNhbHQ6IDc4OUYzRTBCMkVGNDcyNjAyQzNFMUE0OUI2OENFQzlBCgpGWHAvSllPS3E4WmZtOWxHZ3ZFNEM3NXFyUXFNZFp2RHNWRjhObTdMQU1oR2dHbXBnZnpoZjUrZ3IwZ1hjYjVWCmtSTXA2c0p0NkxCVzRPYWF2ckk3ay84Vml2NWhMVU1la1dPMHg5bz0KPUxrb1MKLS0tLS1FTkQgVEVOREVSTUlOVCBQUklWQVRFIEtFWS0tLS0t gwrelayerKey1: LS0tLS1CRUdJTiBURU5ERVJNSU5UIFBSSVZBVEUgS0VZLS0tLS0Ka2RmOiBiY3J5cHQKc2FsdDogNDc5RDk3RDE2OTE0QkQ4QjlFNUUwQzkzMDA0RDA4RUEKdHlwZTogc2VjcDI1NmsxCgpvTEJ0aUkwT2pudXo5bHlzeVlZOFhQeEVkTnpwYUJOVWFkL0UySlJld2pFWFZNVVNTWll2QVZKbERiN3hEQjlSCmEvdm45SFNPM2hKOFc1QTBKOVFqUVZXRzVoZXBNZVpQUEI4M1FCUT0KPVJuTGEKLS0tLS1FTkQgVEVOREVSTUlOVCBQUklWQVRFIEtFWS0tLS0t accountantNttKey0: LS0tLS1CRUdJTiBURU5ERVJNSU5UIFBSSVZBVEUgS0VZLS0tLS0Ka2RmOiBiY3J5cHQKc2FsdDogNzI4NTBEREJFNDQ4NzZBN0Q1Q0YxNDlBQjBGQjNBQzEKdHlwZTogc2VjcDI1NmsxCgpYN1BGMUJaZFBZMmlvRHdVRm9KcXdVdVg4YlFmcFNGckk4UklPS2g1ZUg5cCtDUzZYMm5lM2hVWGFPTDB3YXhUCnM3QVduTzErU241L1g1V0NicklqNHdDVUcwUWdNb0IyN2VFQnB2ND0KPWJiSEkKLS0tLS1FTkQgVEVOREVSTUlOVCBQUklWQVRFIEtFWS0tLS0t diff --git a/devnet/query-server.yaml b/devnet/query-server.yaml index 1bf0b21a56..ba2e9f537a 100644 --- a/devnet/query-server.yaml +++ b/devnet/query-server.yaml @@ -57,7 +57,7 @@ spec: # Hardcoded devnet bootstrap (generated from deterministic key in guardiand) - --bootstrap - /dns4/guardian-0.guardian/udp/8996/quic/p2p/12D3KooWL3XJ9EMCyZvmmGXL2LMiVBtrVa2BuESsJiXkSj7333Jw - - --logLevel=info + - --logLevel=warn - --shutdownDelay1 - "0" ports: diff --git a/devnet/tests.yaml b/devnet/tests.yaml index 3f5d698108..b4cdff5c02 100644 --- a/devnet/tests.yaml +++ b/devnet/tests.yaml @@ -100,31 +100,6 @@ spec: --- kind: Job apiVersion: batch/v1 -metadata: - name: query-ci-tests -spec: - backoffLimit: 0 - template: - spec: - restartPolicy: Never - containers: - - name: query-ci-tests - image: guardiand-image - command: - - /bin/sh - - -c - - "cd /app/node/hack/query/test && bash test_query.sh && touch success" - readinessProbe: - exec: - command: - - test - - -e - - "/app/node/hack/query/test/success" - initialDelaySeconds: 5 - periodSeconds: 5 ---- -kind: Job -apiVersion: batch/v1 metadata: name: query-sdk-ci-tests spec: diff --git a/docs/governor.md b/docs/governor.md index 837206fe82..b1fde6134c 100644 --- a/docs/governor.md +++ b/docs/governor.md @@ -72,10 +72,12 @@ guardiand admin governor-drop-pending-vaa "emitted_chain_ID/address/sequence_num **Warning:** *Dropping a VAA should only be used in the context of confirmed fraud that directly affects the security of the Wormhole network. A super minority of Guardians are required to effectively censor a VAA.* ### Resetting Release Timer -To reset the release timer for a specified VAA to `maxEnqueuedTimeInHours` from the current time, Guardians can run the `governor-reset-release-timer` admin command as follows: +Guardians can reset the release timer to a specified number of days, from the current time, using the `governor-reset-release-timer` admin command as follows: ```bash -guardiand admin governor-reset-release-timer "emitted_chain_ID/address/sequence_number" --socket /path/to/admin.sock +guardiand admin governor-reset-release-timer "emitted_chain_ID/address/sequence_number" "number of days" --socket /path/to/admin.sock ``` +If the number of days is omitted, the command will reset the release timer to 24 hours from the current time. The number of days is capped to 7. + **Warning:** *Resetting a VAA should only be used in the context of needing more time to confirm fraud that directly affects the security of the Wormhole network. A super minority of Guardians are required to reset the timer for a given VAA.* diff --git a/docs/operations.md b/docs/operations.md index 0be443c169..cc43145c49 100644 --- a/docs/operations.md +++ b/docs/operations.md @@ -107,7 +107,37 @@ Refer to the [Terra Classic documentation](https://classic-docs.terra.money/docs All guardians **must run validators for wormchain**, the codename of [Wormhole Gateway](https://wormhole.com/gateway/). -The ``--wormchainURL` argument to the guardian node should point to `:9090` which is the `grpc` port +#### Pre-requisites +- Ensure you have [Go](https://golang.org/dl/) >= 1.21.9 installed. + +#### Building wormchaind binary +There is not a pre-built binary available. You need to check out the repo and build the +wormchaind binary from source: + +First, check out the version of the Wormhole repo that you want to deploy: + +```bash +git clone https://github.com/wormhole-foundation/wormhole && cd wormchain +``` + +Then, compile the release binary as an unprivileged build user: + +```bash +make build/wormchaind +``` +You'll find `wormchaind` binary in `wormchain/build/wormchaind`. + +#### Initialize environment +Initialize the Wormchain environment with the necessary configuration. + +```bash +/path/to/wormchain/bin/wormchaind init --chain-id wormchain --home /path/to/wormchain/directory +``` +This command will generate the private validator key. That key should be backed up. +This key is set in `config.toml` file under the `priv_validator_key_file` field. + +#### Generate configuration files +The `--wormchainURL` argument to the guardian node should point to `:9090` which is the `grpc` port in the app.toml. Example port setup: @@ -143,6 +173,31 @@ For signing, consider setting up a remote threshold signer such as [horcrux](https://github.com/strangelove-ventures/horcrux) and adopting the sentry node architecture with sentry nodes in front of your wormchain validator. +#### Retrieve the Genesis File +Download the genesis file from the wormhole repository. + +```bash +wget -O /path/to/wormchain/config/genesis.json https://raw.githubusercontent.com/wormhole-foundation/wormhole/main/wormchain//genesis.json +``` + +#### Generate wormchain keys +To generate wormchain keys, run the following command: + +```bash +/path/to/wormchain/bin/wormchaind keys add --keyring-backend file --home /path/to/wormchain/directory +``` + +This command will create a `.info` file. To extract the key, run the following command: +```bash +wormchaind keys export --home /path/to/wormchain/directory --keyring-dir . --keyring-backend file +``` +This command will ask for a passphrase to be created for it. Both `wormchain.key` and `passphrase` will be used by the following `guardiand` flags: +- `--accountantKeyPath` +- `--accountantKeyPassPhrase` + +**Note** +These steps could be executed directly on the `guardiand` node, having previously built the `wormchaind` binary. + #### Wormchain Useful Commands Check the latest guardian set: diff --git a/docs/query_proxy.md b/docs/query_proxy.md index 8d07c3bd2d..1baedd8f2b 100644 --- a/docs/query_proxy.md +++ b/docs/query_proxy.md @@ -95,6 +95,9 @@ The simplest file would look something like this ```json { + "allowAnythingSupported": false, + "defaultRateLimit": 0.5, + "defaultBurstSize": 1, "permissions": [ { "userName": "Monitor", @@ -111,6 +114,7 @@ The simplest file would look something like this } ] } + ] } ``` @@ -141,6 +145,11 @@ The following are the Solana call types. Both require the `chain` parameter plus The Solana account and and program address can be expressed as either a 32 byte hex string starting with "0x" or as a base 58 value. +#### Wild Card Contract Addresses + +For the eth calls, the `contractAddress` field may be set to `"*"` which means the specified call type and call may be made to any +contract address on the specified chain. + #### Creating New API Keys Each user must have an API key. These keys only have meaning to the proxy server. They are not passed to the guardians. @@ -153,6 +162,61 @@ The proxy server monitors the permissions file for changes. Whenever a change is it passes validation, switches to the new version. Care should be taken when editing the file while the proxy server is running, because as soon as you save the file, the changes will be picked up (whether they are logically complete or not). +#### The `allowAnything` flag + +The `allowAnything` flag may only be specified for a user if you are running in testnet and the `allowAnythingSupported` flag in the +permissions file is set to true. + +If this flag is specified for a user, then that user may make any call on any supported chain, without restriction. +If this flag is specified, then `allowedCalls` must not be specified. + +```json +{ + "permissions": [ + { + "userName": "Monitor", + "apiKey": "insert_generated_api_key_here", + "allowUnsigned": true, + "allowedAnything": true + } + ] +} +``` + +### Rate Limiting + +The query proxy server supports rate limiting by specifying two parameters. The rate limit, which is a floating point value, and the burst size, +which is an int. See [here](https://pkg.go.dev/golang.org/x/time/rate#Limiter) for a description of how the rate limiter works. + +Note that if the rate limits are not specified, or the rate is set to zero, rate limiting will be disabled, allowing unlimited queries per second. The burst size only has meaning if the rate limit is specified. It defaults to one, and zero is not a valid value. + +The rate limits may be specified at either of two levels. + +First, you may specify global defaults for rate limiting by specifying the `defaultRateLimit` and `defaultBurstSize` parameters +in the permissions file. If these parameters are specified, they apply to all users for which per-user parameters are not specified. +This means that each of these users will be allowed that many queries per second. + +Second, you may override the global defaults for a given user by specifying `rateLimit` and `burstSize` for that user. Also note that +you can disable rate limits for a given user (overriding the default) by setting their `rateLimit` to zero. + +### Validating Permissions File Changes + +The query server automatically detects changes to the permissions file and attempts to reload them. If there are errors in the updated +file, the server rejects the update and continues running on the old version. However, if the file is not fixed, those errors will prevent +the server from coming up on the next restart. You can avoid this problem by verifying any file updates before attempting to reload. + +To do this, you can copy the permissions file to some other file, make your changes to the copy, and then do the following: + +```sh +$ guardiand query-server --env mainnet --verifyPermissions --permFile new.permissions.file.json +``` + +where the `--env` flag should be either `mainnet` or `testnet` and `new.permissions.file.json` is the path to the updated file. +If the updated file is good, the program will exit immediately with no output and an exit code of zero. If the file contains +errors, the first error will be printed, and the exit code will be one. + +Once you are satisfied with your updates, you can copy the updated file to the official location. + ## Telemetry The proxy server provides two types of telemetry data, logs and metrics. diff --git a/ethereum/Dockerfile b/ethereum/Dockerfile index e265254952..d942d1f4f6 100644 --- a/ethereum/Dockerfile +++ b/ethereum/Dockerfile @@ -1,6 +1,6 @@ # syntax=docker.io/docker/dockerfile:1.3@sha256:42399d4635eddd7a9b8a24be879d2f9a930d0ed040a61324cfdf59ef1357b3b2 FROM const-gen AS const-export -FROM ghcr.io/foundry-rs/foundry:nightly-ea2eff95b5c17edd3ffbdfc6daab5ce5cc80afc0@sha256:2a774f86765258a0d176366fc46f92bc14f5040faae7a3c3ba59b1c24c5fa7cb as foundry +FROM ghcr.io/foundry-rs/foundry:nightly-55bf41564f605cae3ca4c95ac5d468b1f14447f9@sha256:8c15d322da81a6deaf827222e173f3f81c653136a3518d5eeb41250a0f2e17ea as foundry FROM node:19.6.1-slim@sha256:a1ba21bf0c92931d02a8416f0a54daad66cb36a85d2b73af9d73b044f5f57cfc # npm wants to clone random Git repositories - lovely. diff --git a/ethereum/Makefile b/ethereum/Makefile index a6fc693a79..afe8d9d62e 100644 --- a/ethereum/Makefile +++ b/ethereum/Makefile @@ -57,15 +57,7 @@ flattened: $(patsubst contracts/%, flattened/%, $(FLATTEN_FILES)) .env: .env.test cp $< $@ -test: test-forge test-identifiers test-ganache - -.PHONY: test-ganache -test-ganache: build .env dependencies - @if pgrep ganache-cli; then echo "Error: ganache-cli already running. Stop it before running tests"; exit 1; fi - . ./.env && npx ganache-cli --chain.vmErrorsOnRPCResponse --chain.chainId $$INIT_EVM_CHAIN_ID --wallet.defaultBalance 10000 --wallet.deterministic --chain.time="1970-01-01T00:00:00+00:00" --chain.asyncRequestProcessing=false > ganache.log & - sleep 5 - npm test || (pkill ganache-cli && exit 1) - pkill ganache-cli || true +test: test-forge test-identifiers .PHONY: test-upgrade test-upgrade: build .env node_modules @@ -87,4 +79,4 @@ test-push0: dependencies @if grep -qr --include \*.json PUSH0 ./build-forge; then echo "Contract uses PUSH0 instruction" 1>&2; exit 1; fi clean: - rm -rf ganache.log .env node_modules build flattened build-forge ethers-contracts lib/forge-std lib/openzeppelin-contracts + rm -rf .env node_modules build flattened build-forge ethers-contracts lib/forge-std lib/openzeppelin-contracts diff --git a/ethereum/README.md b/ethereum/README.md index e4c11a361b..febab6c22e 100644 --- a/ethereum/README.md +++ b/ethereum/README.md @@ -71,34 +71,12 @@ ethereum$ MNEMONIC= ./sh/upgrade.sh testnet TokenBridge blast #### Registering Other Chains on a New TokenBridge ```shell -ethereum$ MNEMONIC= ./sh/registerAllChainsOnTokenBridge.sh.sh testnet blast +ethereum$ MNEMONIC= ./sh/registerAllChainsOnTokenBridge.sh ``` -### Deploying using Truffle (deprecated) - -To deploy the bridge on Ethereum you first need to compile all smart contracts: -`npx truffle compile` - -To deploy you can either use the bytecode from the `build/contracts` folder or the oz cli `oz deploy ` -([Documentation](https://docs.openzeppelin.com/learn/deploying-and-interacting)). - -You first need to deploy one `Wrapped Asset` and initialize it using dummy data. - -Then deploy the `Wormhole` using the initial guardian key (`key_x,y_parity,0`) and the address of the previously deployed -`WrappedAsset`. The wrapped asset contract will be used as proxy library to all the creation of cheap proxy wrapped -assets. - ### Testing -For each test run: - -Run `npx ganache-cli --chain.vmErrorsOnRPCResponse --chain.chainId 1 --wallet.defaultBalance 10000 --wallet.deterministic --chain.time="1970-01-01T00:00:00+00:00" --chain.asyncRequestProcessing=false` to start a chain. - -Run the all ethereum tests using `DEV=True make test` - -Run a specific test file using `npx truffle test test/wormhole.js` - -Run a specific test file while skipping compile `npx truffle test test/wormhole.js --compile-none` +Run all ethereum tests using `make test` ### User methods diff --git a/ethereum/VERIFY.md b/ethereum/VERIFY.md index 82cc139dd4..764b96ccf7 100644 --- a/ethereum/VERIFY.md +++ b/ethereum/VERIFY.md @@ -9,7 +9,7 @@ transaction payloads according to the contract ABI. This document outlines the process of verification. In general, you will need an API key for the relevant explorer (this can be obtained by creating an account) and to know at which address the contract code lives. The API key is expected to -be set in the `ETHERSCAN_KEY` environment variable for all APIs (not just +be set in the `ETHERSCAN_API_KEY` environment variable for all APIs (not just etherscan, bit of a misnomer). Our contracts are structured as a separate proxy and an implementation. Both of @@ -19,39 +19,21 @@ verified each time it's upgraded. ## Verifying the proxy contract (first time) -The proxy contract is called `TokenBridge`. To verify it on e.g. avalanche, at contract address `0x0e082F06FF657D94310cB8cE8B0D9a04541d8052`, run +The proxy contract is called `TokenBridge`. To verify it on e.g. Ethereum, at contract address `0x3ee18B2214AFF97000D974cf647E7C347E8fa585`, run +```bash +forge verify-contract --etherscan-api-key $ETHERSCAN_API_KEY --verifier-url "https://api.etherscan.io/api" 0x3ee18B2214AFF97000D974cf647E7C347E8fa585 contracts/bridge/TokenBridge.sol:TokenBridge --watch ``` -ETHERSCAN_KEY=... npm run verify --module=TokenBridge --contract_address=0x0e082F06FF657D94310cB8cE8B0D9a04541d8052 --network=avalanche -``` - -(Note: the network name comes from the `truffle-config.json`). -(Note: In this case, the `ETHERSCAN_KEY` is your snowtrace API key). - ## Verifying the implementation contract (on each upgrade) -To verify the actual implementation, at address `0xa321448d90d4e5b0a732867c18ea198e75cac48e`, run +To verify the actual implementation, at address `0x381752f5458282d317d12c30d2bd4d6e1fd8841e`, run -```sh -ETHERSCAN_KEY=... npm run verify --module=BridgeImplementation --contract_address=0xa321448d90d4e5b0a732867c18ea198e75cac48e --network=avalanche +```bash +forge verify-contract --etherscan-api-key $ETHERSCAN_API_KEY --verifier-url "https://api.etherscan.io/api" 0x381752f5458282d317d12c30d2bd4d6e1fd8841e contracts/bridge/BridgeImplementation.sol:BridgeImplementation --watch ``` As a final step, when first registering the proxy contract, we need to verify that it's a proxy that points to the implementation we just verified. This can -be done on avalanche at -https://snowtrace.io/proxyContractChecker?a=0x0e082F06FF657D94310cB8cE8B0D9a04541d8052 - +be done on ethereum at https://etherscan.io/proxyContractChecker (other evm scanner sites have an identical page). - - -# Note -The `npm run verify` script uses the `truffle-plugin-verify` plugin under the -hood. The version of `truffle-plugin-verify` pinned in the repo (`^0.5.11` at -the time of writing) doesn't support the avalanche RPC. In later versions of the -plugin, support was added, but other stuff has changed as well in the transitive -dependencies, so it fails to parse the `HDWallet` arguments in our -`truffle-config.json`. As a quick workaround, we backport the patch to `0.5.11` -by applying the `truffle-verify-constants.patch` file, which the `npm run -verify` script does transparently. Once the toolchain has been upgraded and the -errors fixed, this patch can be removed. diff --git a/ethereum/devnet_mnemonic.txt b/ethereum/devnet_mnemonic.txt deleted file mode 100644 index 3390092c77..0000000000 --- a/ethereum/devnet_mnemonic.txt +++ /dev/null @@ -1 +0,0 @@ -myth like bonus scare over problem client lizard pioneer submit female collect diff --git a/ethereum/docs/token_verification.md b/ethereum/docs/token_verification.md index a0014afa5a..8ee4a04af5 100644 --- a/ethereum/docs/token_verification.md +++ b/ethereum/docs/token_verification.md @@ -47,11 +47,11 @@ https://moonscan.io/verifyContract and paste in contract address, in our case `0xab3f0245b83feb11d15aaffefd7ad465a59817ed`. Fill in the rest of the form with the following values, then continue. -| Field | Value | -| ---------------- | ------------------------- | -| Compiler type | Solidity (Single file) | -| Compiler version | v0.8.4+commit.c7e474f2 | -| License type | Apache-2 | +| Field | Value | +| ---------------- | ---------------------- | +| Compiler type | Solidity (Single file) | +| Compiler version | v0.8.4+commit.c7e474f2 | +| License type | Apache-2 | On the next page, select "optimizations: yes", and paste the contents of `token/Token.sol` from before into the source file textarea. @@ -61,7 +61,7 @@ default. ## ABI-encoded constructor arguments -The last missing piece is the ABI-encoded constructor arguments field. These +The last missing piece is the ABI-encoded constructor arguments field. These are the arguments that the contract was instantiated with, and it will be different for each wrapped contract. There are two ways to proceed. The first method is easier, but does not @@ -77,8 +77,8 @@ At this point, some explorers will just return a generic error message saying the bytecodes didn't match, without any additional information. If this is the case, go to method #2. -If the page shows what the *expected* bytecode was, and lists out the *actual* -bytecodes it found in the source file, then we may proceed here. The *expected* +If the page shows what the _expected_ bytecode was, and lists out the _actual_ +bytecodes it found in the source file, then we may proceed here. The _expected_ bytecode will be the same as the `BridgeToken` bytecode with the constructor arguments appended to the end. This means that the `BridgeToken` bytecode is a proper prefix of the expected bytecode. Just copy the rest of the bytes of the @@ -130,7 +130,7 @@ section. Click "Decode input data" which will show the hex value of the We copy this field and go back to our terminal. Run the following ``` -wormhole/ethereum $ forge script scripts/TokenABI.s.sol -s "token_constructor_args(bytes, address)" +wormhole/ethereum $ forge script forge-scripts/TokenABI.s.sol --tc BridgeScript -s "token_constructor_args(bytes, address)" ``` where in place of ``, substitute the hex sequence we just copied from @@ -143,5 +143,5 @@ Running that command prints the following: 0x000000000000000000000000b1731c586ca89a23809861c6103f0b96b3f57d9200000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000164c71f461500000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000000000000000000000000000000000000000012000000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000000014c53000000000000000000000000b1731c586ca89a23809861c6103f0b96b3f57d920000000000000000000000000000000000000000000000000000000000000002000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2000000000000000000000000000000000000000000000000000000000000000d57726170706564204574686572000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004574554480000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 ``` -Copy the hex *excluding* the 0x at the front, and paste that into the +Copy the hex _excluding_ the 0x at the front, and paste that into the constructor arguments field, then hit verify. The contract should now be verified. diff --git a/ethereum/env/.env.acala.testnet b/ethereum/env/.env.acala.testnet index 1295150551..35bb81b451 100644 --- a/ethereum/env/.env.acala.testnet +++ b/ethereum/env/.env.acala.testnet @@ -1,8 +1,8 @@ # Acala testnet env # Rename to .env to use with truffle migrations -# Gas price generated with ./sh/acala-gas-prices.sh -FORGE_ARGS="--legacy --with-gas-price 213314634730" +RPC_URL=https://eth-rpc-acala-testnet.aca-staging.network +FORGE_ARGS="--legacy" # Wormhole Core Migrations INIT_SIGNERS=["0x13947Bd48b18E53fdAeEe77F3473391aC727C638"] diff --git a/ethereum/env/.env.berachain.testnet b/ethereum/env/.env.berachain.testnet index 9b2501c172..80fce57e6b 100644 --- a/ethereum/env/.env.berachain.testnet +++ b/ethereum/env/.env.berachain.testnet @@ -2,19 +2,20 @@ # ethereum$ ln -s env/.env.berachain.testnet .env # Common config for forge deployment -RPC_URL=https://artio.rpc.berachain.com/ +RPC_URL=https://bartio.rpc.berachain.com/ +FORGE_ARGS="--legacy" # Wormhole Core Migrations INIT_SIGNERS=["0x13947Bd48b18E53fdAeEe77F3473391aC727C638"] INIT_CHAIN_ID=39 INIT_GOV_CHAIN_ID=0x1 INIT_GOV_CONTRACT=0x0000000000000000000000000000000000000000000000000000000000000004 -INIT_EVM_CHAIN_ID=80085 +INIT_EVM_CHAIN_ID=80084 # Bridge Migrations BRIDGE_INIT_CHAIN_ID=39 BRIDGE_INIT_GOV_CHAIN_ID=0x1 BRIDGE_INIT_GOV_CONTRACT=0x0000000000000000000000000000000000000000000000000000000000000004 -# Wrapped BERA: https://docs.berachain.com/developers/precompile-addresses#deployment-addresses -BRIDGE_INIT_WETH=0x5806E416dA447b267cEA759358cF22Cc41FAE80F +# Wrapped BERA: https://docs.berachain.com/developers/deployed-contracts#deployment-contract-addresses +BRIDGE_INIT_WETH=0x7507c1dc16935B82698e4C63f2746A2fCf994dF8 BRIDGE_INIT_FINALITY=1 diff --git a/ethereum/env/.env.gnosis.testnet b/ethereum/env/.env.gnosis.testnet index afbdbf3ba4..5eb8665a02 100644 --- a/ethereum/env/.env.gnosis.testnet +++ b/ethereum/env/.env.gnosis.testnet @@ -1,9 +1,16 @@ # Gnosis testnet read only env # Rename to .env to use with truffle migrations +RPC_URL=https://rpc.chiadochain.net + # Wormhole Core Migrations INIT_SIGNERS=["0x13947Bd48b18E53fdAeEe77F3473391aC727C638"] INIT_CHAIN_ID=25 INIT_GOV_CHAIN_ID=0x1 INIT_GOV_CONTRACT=0x0000000000000000000000000000000000000000000000000000000000000004 -INIT_EVM_CHAIN_ID=77 + +# Chiado +INIT_EVM_CHAIN_ID=10200 + +# Sokol is deprecated as of 6/2024. +#INIT_EVM_CHAIN_ID=77 diff --git a/ethereum/env/.env.karura.testnet b/ethereum/env/.env.karura.testnet index 778e80b584..da419ae01d 100644 --- a/ethereum/env/.env.karura.testnet +++ b/ethereum/env/.env.karura.testnet @@ -1,10 +1,9 @@ # Karura testnet env. To use for forge deployment, do: # ethereum$ ln -s env/.env.karura.testnet .env -# Gas price generated with ./sh/karura-gas-prices.sh -RPC_URL=https://eth-rpc-karura.aca-api.network/ -FORGE_ARGS="--legacy --with-gas-price 214844572650" - +RPC_URL=https://eth-rpc-karura-testnet.aca-staging.network +FORGE_ARGS="--slow --legacy" + # Wormhole Core Migrations INIT_SIGNERS=["0x13947Bd48b18E53fdAeEe77F3473391aC727C638"] INIT_CHAIN_ID=0xb diff --git a/ethereum/env/.env.snaxchain.testnet b/ethereum/env/.env.snaxchain.testnet new file mode 100644 index 0000000000..abf997ced8 --- /dev/null +++ b/ethereum/env/.env.snaxchain.testnet @@ -0,0 +1,21 @@ +# SnaxChain testnet env +# Rename to .env + +# Common config for forge deployment +RPC_URL="https://testnet.snaxchain.io" +FORGE_ARGS="--legacy" + +# Wormhole Core Migrations +INIT_SIGNERS=["0x13947Bd48b18E53fdAeEe77F3473391aC727C638"] +INIT_CHAIN_ID=43 +INIT_GOV_CHAIN_ID=0x1 +INIT_GOV_CONTRACT=0x0000000000000000000000000000000000000000000000000000000000000004 +INIT_EVM_CHAIN_ID=13001 + +# Bridge Migrations +BRIDGE_INIT_CHAIN_ID=43 +BRIDGE_INIT_GOV_CHAIN_ID=0x1 +BRIDGE_INIT_GOV_CONTRACT=0x0000000000000000000000000000000000000000000000000000000000000004 +BRIDGE_INIT_FINALITY=1 +# Snaxchain is an OP Stack chain and therefore has the same WETH address. https://docs.optimism.io/stack/protocol/features/custom-gas-token#what-is-the-wrapped-erc-20-gas-token +BRIDGE_INIT_WETH=0x4200000000000000000000000000000000000006 \ No newline at end of file diff --git a/ethereum/forge-scripts/DeployNFTBridgeImplementationOnly.s.sol b/ethereum/forge-scripts/DeployNFTBridgeImplementationOnly.s.sol new file mode 100644 index 0000000000..a06a4ba6bf --- /dev/null +++ b/ethereum/forge-scripts/DeployNFTBridgeImplementationOnly.s.sol @@ -0,0 +1,24 @@ + + +// SPDX-License-Identifier: UNLICENSED +pragma solidity ^0.8.4; +import {NFTBridgeImplementation} from "../contracts/nft/NFTBridgeImplementation.sol"; +import "forge-std/Script.sol"; + +contract DeployNFTBridgeImplementationOnly is Script { + // DryRun - Deploy the system + function dryRun() public { + _deploy(); + } + // Deploy the system + function run() public returns (address deployedAddress) { + vm.startBroadcast(); + deployedAddress = _deploy(); + vm.stopBroadcast(); + } + function _deploy() internal returns (address deployedAddress) { + NFTBridgeImplementation impl = new NFTBridgeImplementation(); + + return address(impl); + } +} diff --git a/ethereum/forge-scripts/DeployNFTBridgeShutdown.s.sol b/ethereum/forge-scripts/DeployNFTBridgeShutdown.s.sol index 29b1022ce0..4bcf68d1d9 100644 --- a/ethereum/forge-scripts/DeployNFTBridgeShutdown.s.sol +++ b/ethereum/forge-scripts/DeployNFTBridgeShutdown.s.sol @@ -1,7 +1,7 @@ // SPDX-License-Identifier: UNLICENSED -pragma solidity ^0.8.13; +pragma solidity ^0.8.4; import {NFTBridgeShutdown} from "../contracts/nft/NFTBridgeShutdown.sol"; import "forge-std/Script.sol"; @@ -21,4 +21,4 @@ contract DeployNFTBridgeShutdown is Script { return address(shutdown); } -} \ No newline at end of file +} diff --git a/ethereum/forge-scripts/TokenABI.s.sol b/ethereum/forge-scripts/TokenABI.s.sol new file mode 100644 index 0000000000..95e0ab8f2a --- /dev/null +++ b/ethereum/forge-scripts/TokenABI.s.sol @@ -0,0 +1,51 @@ +// SPDX-License-Identifier: Apache 2 + +pragma solidity ^0.8.0; + +import "forge-std/Script.sol"; +import "../contracts/Messages.sol"; +import "../contracts/Structs.sol"; +import "../contracts/bridge/Bridge.sol"; +import "../contracts/bridge/BridgeStructs.sol"; + +contract BridgeTest is Bridge { + + function token_constructor_args(bytes calldata encodedVM, address tokenBridge) public returns (bytes memory constructorArgs) { + Messages m = new Messages(); + Structs.VM memory vm = m.parseVM(encodedVM); + BridgeStructs.AssetMeta memory meta = parseAssetMeta(vm.payload); + constructorArgs = token_constructor_args(bytes32ToString(meta.name), bytes32ToString(meta.symbol), meta.decimals, vm.sequence, tokenBridge, meta.tokenChain, meta.tokenAddress); + } + + function token_constructor_args(string memory name, string memory symbol, uint8 decimals, uint64 sequence, address tokenBridge, uint16 tokenChain, bytes32 tokenAddress) pure public returns (bytes memory constructorArgs) { + bytes memory initialisationArgs = abi.encodeWithSelector( + TokenImplementation.initialize.selector, + name, + symbol, + decimals, + sequence, + + tokenBridge, + + tokenChain, + tokenAddress + ); + + constructorArgs = abi.encode(tokenBridge, initialisationArgs); + } +} + +contract BridgeScript is Script { + + // forge script forge-scripts/TokenABI.s.sol --tc BridgeScript -s "token_constructor_args(bytes, address)" 0x01000000020d00b7ba3819d44da891c74c583e29eb2222dd37dabbe7929bdbf4f2186bbcc721085d85d9906bbd8ca5ae62cdf30c7555dc4c57fd15f84a0161c27e91846203439c0102736caa697f6c17c2e6b0526291b0e6b4dec760a8494df7f69c93be3df1956224637ef962be9a28ef2dbeebe6bdb30311d9f2394966a1bb170634bd69913abfb200038c598c6e7c288c5dbb0f0008c38168d3f00ac8da7b3ad5420f30c8808c94a8a972c090d25da27558f1b8f8d30f894850d3139f4df92c8e8736be7803d397f33e0006649e6aca07694046fd94b5851ff3711783d4f4c8e0319f9de9431232cb153bce2ff2ac0f7bfad6f3db461571cd6ecffc99d7740a7b653d2f6a25908d821d9ca70107b31051fda4062585f80b291978a480cae6c9191d37a67bc2e1e61db8e97907fa71b5064d2ada48b4cd2f8c4def7fd50484004d1ceb3438a8f67ea071a31a6a88000af4842bbcd0fad425bd3b82bc3b1acefd72555fd1fbb49b71700ec2b41ac6309f20222e24c557f4ad6af35d96f1d4c38fb25177e027a22d2d071956d5d45985ba000bc0ebb4202aae662de331bce75d5e49ea97ac9a74df65006250c96ca9d82a16be6e78c577004a6059169aa7640436e1e5deef5d80bfa52784cf82f67bb368e066010d14586fa1f6f37d2c4d0eae78c42ecc3c9fc6bf17b3a57406382165d615cfb4a1651b979419c42e40a3f62fbe05eb3ff4bafac0af30c15a060e39d935776e54cc000e98d02eb76745301cb5fb12e6b0c7e3e9be347460ed51be360828c46be3bc40ef622f9234fb443b431db9e98980a7165b36eda10bd37abf6998156ebbdf96c4b6010fda503c3deb9c937709ab5742c4a44ed29f04664585c4c73568cd3b4863e1e2326b9cab4d1b139d9698585bb8abcbdc4072b3f98fdfe1b50fa35656c1451f862400106644b7697f41052d4d7c1685d342df4828c7ba7231f86c04476805271c58b4e30614ee43988072decec39f0400a48583f7b6d0fb109516385f73a64ce2a2b16501111cc03c23da18a3ed794cb944aa6d131306c243d13f207796c9ea9430a6c7da063b0ffbc75416c924b588ecc24c3d1c6136ea8e181a4f3d8c1d3d1831c7d4ae7301120b48f7b0c43cb43b4541d179f4bdfe6b9c83289b5b7cd494f6ea33eec062b36408606f4ad406365539d6b3a6b59b2eeae70baf0266c341fb476c8092d64ebd620062cb923534d80000000e000000000000000000000000796dff6d74f3e27060b71255fe517bfb23c93eed00000000000000560102000000000000000000000000765de816845861e75a25fca122bb6898b8b1282a000e12635553440000000000000000000000000000000000000000000000000000000043656c6f20446f6c6c6172000000000000000000000000000000000000000000 $(worm info contract mainnet ethereum TokenBridge) + function token_constructor_args(bytes calldata encodedVM, address tokenBridge) public { + BridgeTest bridge = new BridgeTest(); + console.logBytes(bridge.token_constructor_args(encodedVM, tokenBridge)); + } + + // forge script forge-scripts/TokenABI.s.sol --tc BridgeScript -s "token_constructor_args(string,string,uint8,uint64,address,uint16,bytes32)" "Wrapped Ether" "WETH" 18 69201 0x796Dff6D74F3E27060B71255Fe517BFb23C93eed 2 0x000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2 + function token_constructor_args(string memory name, string memory symbol, uint8 decimals, uint64 sequence, address tokenBridge, uint16 tokenChain, bytes32 tokenAddress) public { + BridgeTest bridge = new BridgeTest(); + console.logBytes(bridge.token_constructor_args(name, symbol, decimals, sequence, tokenBridge, tokenChain, tokenAddress)); + } +} diff --git a/ethereum/forge-test/Bridge.t.sol b/ethereum/forge-test/Bridge.t.sol index cca34964f0..99ef745aa6 100644 --- a/ethereum/forge-test/Bridge.t.sol +++ b/ethereum/forge-test/Bridge.t.sol @@ -3,10 +3,21 @@ pragma solidity ^0.8.0; import "../contracts/bridge/Bridge.sol"; +import "../contracts/bridge/BridgeSetup.sol"; +import "../contracts/bridge/BridgeImplementation.sol"; +import "../contracts/bridge/TokenBridge.sol"; +import "../contracts/interfaces/IWormhole.sol"; +import "../contracts/bridge/interfaces/ITokenBridge.sol"; +import "../contracts/bridge/token/TokenImplementation.sol"; +import "../contracts/bridge/mock/MockBridgeImplementation.sol"; +import "../contracts/bridge/mock/MockTokenBridgeIntegration.sol"; +import "../contracts/bridge/mock/MockFeeToken.sol"; import "forge-std/Test.sol"; +import "./Implementation.t.sol"; +import "../contracts/bridge/mock/MockWETH9.sol"; // @dev ensure some internal methods are public for testing -contract ExportedBridge is Bridge { +contract ExportedBridge is BridgeImplementation { function _truncateAddressPub(bytes32 b) public pure returns (address) { return super._truncateAddress(b); } @@ -20,26 +31,105 @@ contract ExportedBridge is Bridge { } } +interface ITokenBridgeTest is ITokenBridge { + function _truncateAddressPub(bytes32 b) external pure returns (address); + + function setChainIdPub(uint16 chainId) external; + + function setEvmChainIdPub(uint256 evmChainId) external; +} + contract TestBridge is Test { - ExportedBridge bridge; + BridgeSetup bridgeSetup; + ExportedBridge bridgeImpl; + ITokenBridgeTest bridge; + IWormhole wormhole; + TestImplementation implementationTest; + TokenImplementation tokenImpl; + IERC20 weth; + uint16 testChainId; + uint256 testEvmChainId; + uint16 governanceChainId; + bytes32 governanceContract; + uint8 constant finality = 15; + + // "TokenBridge" (left padded) + bytes32 constant tokenBridgeModule = + 0x000000000000000000000000000000000000000000546f6b656e427269646765; + uint8 actionRegisterChain = 1; + uint8 actionContractUpgrade = 2; + uint8 actionRecoverChainId = 3; + + uint16 fakeChainId = 1337; + uint256 fakeEvmChainId = 10001; + + uint16 testForeignChainId = 1; + bytes32 testForeignBridgeContract = + 0x0000000000000000000000000000000000000000000000000000000000000004; + uint16 testBridgedAssetChain = 1; + bytes32 testBridgedAssetAddress = + 0x000000000000000000000000b7a2211e8165943192ad04f5dd21bedc29ff003e; + + uint256 public constant testGuardian = + 93941733246223705020089879371323733820373732307041878556247502674739205313440; function setUp() public { - bridge = new ExportedBridge(); + // Setup wormhole + implementationTest = new TestImplementation(); + implementationTest.setUp(); + + // Get wormhole from implementation tests + wormhole = IWormhole(address(implementationTest.proxied())); + + // Deploy setup + bridgeSetup = new BridgeSetup(); + // Deploy implementation contract + bridgeImpl = new ExportedBridge(); + // Deploy token implementation + tokenImpl = new TokenImplementation(); + // Deploy WETH + weth = IERC20(address(new MockWETH9())); + + testChainId = implementationTest.testChainId(); + testEvmChainId = implementationTest.testEvmChainId(); + vm.chainId(testEvmChainId); + governanceChainId = implementationTest.governanceChainId(); + governanceContract = implementationTest.governanceContract(); + + bytes memory setupAbi = abi.encodeWithSelector( + BridgeSetup.setup.selector, + address(bridgeImpl), + testChainId, + address(wormhole), + governanceChainId, + governanceContract, + address(tokenImpl), + address(weth), + finality, + testEvmChainId + ); + + // Deploy proxy + bridge = ITokenBridgeTest( + address(new TokenBridge(address(bridgeSetup), setupAbi)) + ); } function testTruncate(bytes32 b) public { bool invalidAddress = bytes12(b) != 0; if (invalidAddress) { - vm.expectRevert( "invalid EVM address"); + vm.expectRevert("invalid EVM address"); } - bytes32 converted = bytes32(uint256(uint160(bytes20(bridge._truncateAddressPub(b))))); + bytes32 converted = bytes32( + uint256(uint160(bytes20(bridge._truncateAddressPub(b)))) + ); if (!invalidAddress) { require(converted == b, "truncate does not roundrip"); } } - function testEvmChainId() public { + function testSetEvmChainId() public { vm.chainId(1); bridge.setChainIdPub(1); bridge.setEvmChainIdPub(1); @@ -56,6 +146,1289 @@ contract TestBridge is Test { // evmChainId must equal block.chainid vm.expectRevert("invalid evmChainId"); bridge.setEvmChainIdPub(1337); + } + + function testShouldBeInitializedWithTheCorrectSignersAndValues() public { + assertEq(address(bridge.WETH()), address(weth)); + assertEq(bridge.tokenImplementation(), address(tokenImpl)); + // test beacon functionality + assertEq(bridge.implementation(), address(tokenImpl)); + assertEq(bridge.chainId(), testChainId); + assertEq(bridge.evmChainId(), testEvmChainId); + assertEq(bridge.finality(), finality); + + // governance + uint16 readGovernanceChainId = bridge.governanceChainId(); + bytes32 readGovernanceContract = bridge.governanceContract(); + assertEq( + readGovernanceChainId, + governanceChainId, + "Wrong governance chain ID" + ); + assertEq( + readGovernanceContract, + governanceContract, + "Wrong governance contract" + ); + } + + function testShouldRegisterAForeignBridgeImplementationCorrectly() public { + bytes memory data = abi.encodePacked( + tokenBridgeModule, + actionRegisterChain, + uint16(0), + testForeignChainId, + testForeignBridgeContract + ); + bytes memory vaa = signAndEncodeVM( + 1, + 1, + governanceChainId, + governanceContract, + 0, + data, + uint256Array(testGuardian), + 0, + 0 + ); + + assertEq( + bridge.bridgeContracts(testForeignChainId), + bytes32( + 0x0000000000000000000000000000000000000000000000000000000000000000 + ) + ); + bridge.registerChain(vaa); + assertEq( + bridge.bridgeContracts(testForeignChainId), + testForeignBridgeContract + ); + } + + function testShouldAcceptAValidUpgrade() public { + MockBridgeImplementation mock = new MockBridgeImplementation(); + bytes memory data = abi.encodePacked( + tokenBridgeModule, + actionContractUpgrade, + testChainId, + addressToBytes32(address(mock)) + ); + bytes memory vaa = signAndEncodeVM( + 1, + 1, + governanceChainId, + governanceContract, + 0, + data, + uint256Array(testGuardian), + 0, + 0 + ); + + bytes32 IMPLEMENTATION_STORAGE_SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc; + assertEq( + vm.load(address(bridge), IMPLEMENTATION_STORAGE_SLOT), + addressToBytes32(address(bridgeImpl)) + ); + bridge.upgrade(vaa); + assertEq( + vm.load(address(bridge), IMPLEMENTATION_STORAGE_SLOT), + addressToBytes32(address(mock)) + ); + + assertTrue( + MockBridgeImplementation(payable(address(bridge))) + .testNewImplementationActive(), + "implementation not active" + ); + } + + function testBridgedTokensShouldOnlyBeMintAndBurnableByOwner() public { + address owner = address(this); + address notOwner = address(0x1); + tokenImpl.initialize("TestToken", "TT", 18, 0, owner, 0, 0x0); + tokenImpl.mint(owner, 10); + tokenImpl.burn(owner, 5); + + vm.expectRevert("caller is not the owner"); + vm.prank(address(notOwner)); + tokenImpl.mint(owner, 10); + + vm.expectRevert("caller is not the owner"); + vm.prank(address(notOwner)); + tokenImpl.burn(owner, 5); + } + + event LogMessagePublished( + address indexed sender, + uint64 sequence, + uint32 nonce, + bytes payload, + uint8 consistencyLevel + ); + + function testShouldAttestATokenCorrectly() public { + tokenImpl.initialize("TestToken", "TT", 18, 0, address(this), 0, 0x0); + bytes memory attestPayload = abi.encodePacked( + uint8(2), + addressToBytes32(address(tokenImpl)), + testChainId, + // decimals + uint8(18), + // symbol (TT) + bytes32( + 0x5454000000000000000000000000000000000000000000000000000000000000 + ), + // name (TestToken) + bytes32( + 0x54657374546f6b656e0000000000000000000000000000000000000000000000 + ) + ); + vm.expectEmit(); + emit LogMessagePublished( + address(bridge), + uint64(0), + uint32(234), + attestPayload, + uint8(finality) + ); + bridge.attestToken(address(tokenImpl), 234); + } + + function testShouldCorrectlyDeployAWrappedAssetForATokenAttestation() + public + { + testShouldRegisterAForeignBridgeImplementationCorrectly(); + testShouldAttestATokenCorrectly(); + bytes memory data = abi.encodePacked( + uint8(2), + testBridgedAssetAddress, + testBridgedAssetChain, + uint8(18), + // symbol (TT) + bytes32( + 0x5454000000000000000000000000000000000000000000000000000000000000 + ), + // name (TestToken) + bytes32( + 0x54657374546f6b656e0000000000000000000000000000000000000000000000 + ) + ); + bytes memory vaa = signAndEncodeVM( + 0, + 0, + testForeignChainId, + testForeignBridgeContract, + 0, + data, + uint256Array(testGuardian), + 0, + 0 + ); + + bridge.createWrapped(vaa); + address wrappedAddress = bridge.wrappedAsset( + testBridgedAssetChain, + testBridgedAssetAddress + ); + assertTrue( + bridge.isWrappedAsset(wrappedAddress), + "Wrapped asset is not a wrapped asset" + ); + + TokenImplementation wrapped = TokenImplementation(wrappedAddress); + + assertEq(wrapped.symbol(), "TT"); + assertEq(wrapped.name(), "TestToken"); + assertEq(wrapped.decimals(), 18); + assertEq(wrapped.chainId(), testBridgedAssetChain); + assertEq(wrapped.nativeContract(), testBridgedAssetAddress); + } + + function testShouldCorrectlyUpdateAWrappedAssetForATokenAttestation() + public + { + testShouldCorrectlyDeployAWrappedAssetForATokenAttestation(); + bytes memory data = abi.encodePacked( + uint8(2), + testBridgedAssetAddress, + testBridgedAssetChain, + uint8(18), + // symbol + bytes32( + 0x5555000000000000000000000000000000000000000000000000000000000000 + ), + // name + bytes32( + 0x5472656500000000000000000000000000000000000000000000000000000000 + ) + ); + + bytes memory vaa = signAndEncodeVM( + 0, + 0, + testForeignChainId, + testForeignBridgeContract, + 0, + data, + uint256Array(testGuardian), + 0, + 0 + ); + + vm.expectRevert("current metadata is up to date"); + bridge.updateWrapped(vaa); + + vaa = signAndEncodeVM( + 0, + 0, + testForeignChainId, + testForeignBridgeContract, + 1, + data, + uint256Array(testGuardian), + 0, + 0 + ); + + bridge.updateWrapped(vaa); + + address wrappedAddress = bridge.wrappedAsset( + testBridgedAssetChain, + testBridgedAssetAddress + ); + assertTrue( + bridge.isWrappedAsset(wrappedAddress), + "Wrapped asset is not a wrapped asset" + ); + + TokenImplementation wrapped = TokenImplementation(wrappedAddress); + + assertEq(wrapped.symbol(), "UU"); + assertEq(wrapped.name(), "Tree"); + assertEq(wrapped.decimals(), 18); + assertEq(wrapped.chainId(), testBridgedAssetChain); + assertEq(wrapped.nativeContract(), testBridgedAssetAddress); + } + + function testShouldDepositAndLogTransfersCorrectly() public { + testShouldCorrectlyDeployAWrappedAssetForATokenAttestation(); + uint256 amount = 1_000_000_000_000_000_000; + uint256 fee = 100_000_000_000_000_000; + tokenImpl.mint(address(this), amount); + tokenImpl.approve(address(bridge), amount); + + uint256 accountBalanceBefore = tokenImpl.balanceOf(address(this)); + uint256 bridgeBalanceBefore = tokenImpl.balanceOf(address(bridge)); + + assertEq(accountBalanceBefore, amount); + assertEq(bridgeBalanceBefore, 0); + + uint16 toChain = testForeignChainId; + bytes32 toAddress = testForeignBridgeContract; + + bytes memory transferPayload = abi.encodePacked( + uint8(1), + amount / 1e10, + addressToBytes32(address(tokenImpl)), + testChainId, + toAddress, + toChain, + fee / 1e10 + ); + vm.expectEmit(); + emit LogMessagePublished( + address(bridge), + uint64(1), + uint32(234), + transferPayload, + uint8(finality) + ); + bridge.transferTokens( + address(tokenImpl), + amount, + toChain, + toAddress, + fee, + 234 + ); + + uint256 accountBalanceAfter = tokenImpl.balanceOf(address(this)); + uint256 bridgeBalanceAfter = tokenImpl.balanceOf(address(bridge)); + + assertEq(accountBalanceAfter, 0); + assertEq(bridgeBalanceAfter, amount); + } + + function testShouldDepositAndLogFeeTokenTransfersCorrectly() public { + testShouldCorrectlyDeployAWrappedAssetForATokenAttestation(); + uint256 mintAmount = 10_000_000_000_000_000_000; + uint256 amount = 1_000_000_000_000_000_000; + uint256 fee = 100_000_000_000_000_000; + + uint16 toChain = testForeignChainId; + bytes32 toAddress = testForeignBridgeContract; + + FeeToken feeToken = new FeeToken(); + feeToken.initialize("Test", "TST", 18, 123, address(this), 0, 0x0); + feeToken.mint(address(this), mintAmount); + feeToken.approve(address(bridge), mintAmount); + + uint256 feeAmount = (amount * 9) / 10; + + bytes memory transferPayload = abi.encodePacked( + uint8(1), + feeAmount / 1e10, + addressToBytes32(address(feeToken)), + testChainId, + toAddress, + toChain, + fee / 1e10 + ); + vm.expectEmit(); + emit LogMessagePublished( + address(bridge), + uint64(1), + uint32(234), + transferPayload, + uint8(finality) + ); + bridge.transferTokens( + address(feeToken), + amount, + toChain, + toAddress, + fee, + 234 + ); + + uint256 bridgeBalanceAfter = feeToken.balanceOf(address(bridge)); + assertEq(bridgeBalanceAfter, feeAmount, "Bridge balance is incorrect"); + } + + event TransferRedeemed( + uint16 indexed emitterChainId, + bytes32 indexed emitterAddress, + uint64 indexed sequence + ); + + function testShouldTransferOutLockedAssetsForAValidTransferVM() public { + testShouldDepositAndLogTransfersCorrectly(); + + uint256 amount = 1_000_000_000_000_000_000; + uint64 sequence = 1697; + + uint256 accountBalanceBefore = tokenImpl.balanceOf(address(this)); + uint256 bridgeBalanceBefore = tokenImpl.balanceOf(address(bridge)); + assertEq(accountBalanceBefore, 0); + assertEq(bridgeBalanceBefore, amount); + + bytes memory transferPayload = abi.encodePacked( + uint8(1), + amount / 1e10, + addressToBytes32(address(tokenImpl)), + testChainId, + addressToBytes32(address(this)), + testChainId, + uint256(0) + ); + + bytes memory vaa = signAndEncodeVM( + 0, + 0, + testForeignChainId, + testForeignBridgeContract, + sequence, + transferPayload, + uint256Array(testGuardian), + 0, + 0 + ); + + vm.expectEmit(); + emit TransferRedeemed( + testForeignChainId, + testForeignBridgeContract, + sequence + ); + bridge.completeTransfer(vaa); + + uint256 accountBalanceAfter = tokenImpl.balanceOf(address(this)); + uint256 bridgeBalanceAfter = tokenImpl.balanceOf(address(bridge)); + assertEq(accountBalanceAfter, amount); + assertEq(bridgeBalanceAfter, 0); + } + + function testShouldDepositAndLogTransferWithPayloadCorrectly() public { + testShouldCorrectlyDeployAWrappedAssetForATokenAttestation(); + uint256 amount = 1_000_000_000_000_000_000; + tokenImpl.mint(address(this), amount); + tokenImpl.approve(address(bridge), amount); + + uint256 accountBalanceBefore = tokenImpl.balanceOf(address(this)); + uint256 bridgeBalanceBefore = tokenImpl.balanceOf(address(bridge)); + + assertEq(accountBalanceBefore, amount); + assertEq(bridgeBalanceBefore, 0); + + bytes memory additionalPayload = bytes("abc123"); + + uint16 toChain = testForeignChainId; + bytes32 toAddress = testForeignBridgeContract; + + bytes memory transferPayload = abi.encodePacked( + uint8(3), + amount / 1e10, + addressToBytes32(address(tokenImpl)), + testChainId, + toAddress, + toChain, + addressToBytes32(address(this)), + additionalPayload + ); + vm.expectEmit(); + emit LogMessagePublished( + address(bridge), + uint64(1), + uint32(234), + transferPayload, + uint8(finality) + ); + bridge.transferTokensWithPayload( + address(tokenImpl), + amount, + toChain, + toAddress, + 234, + additionalPayload + ); + + uint256 accountBalanceAfter = tokenImpl.balanceOf(address(this)); + uint256 bridgeBalanceAfter = tokenImpl.balanceOf(address(bridge)); + + assertEq(accountBalanceAfter, 0); + assertEq(bridgeBalanceAfter, amount); + } + + function testShouldTransferOutLockedAssetsForAValidTransferWithPayloadVM() + public + { + testShouldDepositAndLogTransfersCorrectly(); + + uint256 amount = 1_000_000_000_000_000_000; + uint64 sequence = 1111; + + uint256 accountBalanceBefore = tokenImpl.balanceOf(address(this)); + uint256 bridgeBalanceBefore = tokenImpl.balanceOf(address(bridge)); + assertEq(accountBalanceBefore, 0); + assertEq(bridgeBalanceBefore, amount); + + bytes memory transferPayload = abi.encodePacked( + uint8(3), + amount / 1e10, + addressToBytes32(address(tokenImpl)), + testChainId, + addressToBytes32(address(this)), + testChainId, + uint256(0), + bytes("abc123") + ); + + bytes memory vaa = signAndEncodeVM( + 0, + 0, + testForeignChainId, + testForeignBridgeContract, + sequence, + transferPayload, + uint256Array(testGuardian), + 0, + 0 + ); + + vm.expectEmit(); + emit TransferRedeemed( + testForeignChainId, + testForeignBridgeContract, + sequence + ); + bridge.completeTransferWithPayload(vaa); + + uint256 accountBalanceAfter = tokenImpl.balanceOf(address(this)); + uint256 bridgeBalanceAfter = tokenImpl.balanceOf(address(bridge)); + assertEq(accountBalanceAfter, amount); + assertEq(bridgeBalanceAfter, 0); + } + + function testShouldMintBridgedAssetWrappersOnTransferFromAnotherChainAndHandleFeesCorrectly() + public + { + testShouldTransferOutLockedAssetsForAValidTransferWithPayloadVM(); + + uint256 amount = 1_000_000_000_000_000_000; + uint256 fee = 100_000_000_000_000_000; + + address wrappedAddress = bridge.wrappedAsset( + testBridgedAssetChain, + testBridgedAssetAddress + ); + TokenImplementation wrapped = TokenImplementation(wrappedAddress); + + assertEq(wrapped.totalSupply(), 0, "Wrong total supply"); + + bytes memory data = abi.encodePacked( + uint8(1), + amount / 1e10, + testBridgedAssetAddress, + testBridgedAssetChain, + addressToBytes32(address(this)), + testChainId, + fee / 1e10 + ); + + bytes memory vaa = signAndEncodeVM( + 0, + 0, + testForeignChainId, + testForeignBridgeContract, + 0, + data, + uint256Array(testGuardian), + 0, + 0 + ); + + address sender = address(0x1); + vm.prank(sender); + bridge.completeTransfer(vaa); + + uint256 accountBalanceAfter = wrapped.balanceOf(address(this)); + uint256 senderBalanceAfter = wrapped.balanceOf(address(sender)); + assertEq(accountBalanceAfter, amount - fee); + assertEq(senderBalanceAfter, fee); + assertEq(wrapped.totalSupply(), amount); + + vm.prank(sender); + wrapped.transfer(address(this), fee); } + + function testShouldNotAllowARedemptionFromMsgSenderOtherThanToOnTokenBridgeTransferWithPayload() + public + { + testShouldTransferOutLockedAssetsForAValidTransferWithPayloadVM(); + + uint256 amount = 1_000_000_000_000_000_000; + + address wrappedAddress = bridge.wrappedAsset( + testBridgedAssetChain, + testBridgedAssetAddress + ); + TokenImplementation wrapped = TokenImplementation(wrappedAddress); + + assertEq(wrapped.totalSupply(), 0, "Wrong total supply"); + + address fromAddress = address(0x2); + bytes memory additionalPayload = bytes("abc123"); + + bytes memory data = abi.encodePacked( + uint8(3), + amount / 1e10, + testBridgedAssetAddress, + testBridgedAssetChain, + addressToBytes32(address(this)), + testChainId, + addressToBytes32(fromAddress), + additionalPayload + ); + + bytes memory vaa = signAndEncodeVM( + 0, + 0, + testForeignChainId, + testForeignBridgeContract, + 0, + data, + uint256Array(testGuardian), + 0, + 0 + ); + + address sender = address(0x1); + + vm.expectRevert("invalid sender"); + vm.prank(sender); + bridge.completeTransferWithPayload(vaa); + } + + function testShouldAllowARedemptionFromMsgSenderIsToOnTokenBridgeTransferWithPayloadAndCheckThatSenderReceivesFees() + public + { + testShouldTransferOutLockedAssetsForAValidTransferWithPayloadVM(); + + uint256 amount = 1_000_000_000_000_000_000; + + address wrappedAddress = bridge.wrappedAsset( + testBridgedAssetChain, + testBridgedAssetAddress + ); + TokenImplementation wrapped = TokenImplementation(wrappedAddress); + + assertEq(wrapped.totalSupply(), 0, "Wrong total supply"); + + address fromAddress = address(0x2); + bytes memory additionalPayload = bytes("abc123"); + + bytes memory data = abi.encodePacked( + uint8(3), + amount / 1e10, + testBridgedAssetAddress, + testBridgedAssetChain, + addressToBytes32(address(this)), + testChainId, + addressToBytes32(fromAddress), + additionalPayload + ); + + bytes memory vaa = signAndEncodeVM( + 0, + 0, + testForeignChainId, + testForeignBridgeContract, + 0, + data, + uint256Array(testGuardian), + 0, + 0 + ); + + bridge.completeTransferWithPayload(vaa); + + uint256 accountBalanceAfter = wrapped.balanceOf(address(this)); + assertEq(accountBalanceAfter, amount); + assertEq(wrapped.totalSupply(), amount); + } + + function testShouldBurnBridgedAssetsWrappersOnTransferToAnotherChain() + public + { + testShouldMintBridgedAssetWrappersOnTransferFromAnotherChainAndHandleFeesCorrectly(); + + uint256 amount = 1_000_000_000_000_000_000; + + address wrappedAddress = bridge.wrappedAsset( + testBridgedAssetChain, + testBridgedAssetAddress + ); + TokenImplementation wrapped = TokenImplementation(wrappedAddress); + wrapped.approve(address(bridge), amount); + + assertEq(wrapped.balanceOf(address(this)), amount); + assertEq(wrapped.totalSupply(), amount); + + bridge.transferTokens( + wrappedAddress, + amount, + 11, + testForeignBridgeContract, + 0, + 234 + ); + + assertEq(wrapped.balanceOf(address(this)), 0); + assertEq(wrapped.balanceOf(address(bridge)), 0); + assertEq(wrapped.totalSupply(), 0); + } + + function testShouldHandleETHDepositsCorrectly() public { + testShouldRegisterAForeignBridgeImplementationCorrectly(); + uint256 amount = 1_000_000_000_000_000_000; + uint256 fee = 100_000_000_000_000_000; + + vm.deal(address(this), amount); + + uint256 totalWETHsupply = weth.totalSupply(); + uint256 bridgeBalanceBefore = weth.balanceOf(address(bridge)); + + assertEq(totalWETHsupply, 0); + assertEq(bridgeBalanceBefore, 0); + + uint16 toChain = testForeignChainId; + bytes32 toAddress = testForeignBridgeContract; + + bytes memory transferPayload = abi.encodePacked( + uint8(1), + amount / 1e10, + addressToBytes32(address(weth)), + testChainId, + toAddress, + toChain, + fee / 1e10 + ); + vm.expectEmit(); + emit LogMessagePublished( + address(bridge), + uint64(0), + uint32(234), + transferPayload, + uint8(finality) + ); + bridge.wrapAndTransferETH{value: amount}(toChain, toAddress, fee, 234); + + uint256 totalWETHSupplyAfter = weth.totalSupply(); + uint256 bridgeBalanceAfter = weth.balanceOf(address(bridge)); + + assertEq(totalWETHSupplyAfter, amount); + assertEq(bridgeBalanceAfter, amount); + } + + function testShouldHandleETHWithdrawalsAndFeesCorrectly() public { + testShouldHandleETHDepositsCorrectly(); + uint256 amount = 1_000_000_000_000_000_000; + uint256 fee = 500_000_000_000_000_000; + uint64 sequence = 235; + address feeRecipient = address( + 0x1234123412341234123412341234123412341234 + ); + + uint256 accountBalanceBefore = weth.balanceOf(address(this)); + uint256 feeRecipientBalanceBefore = weth.balanceOf(feeRecipient); + uint256 bridgeBalanceBefore = weth.balanceOf(address(bridge)); + assertEq(accountBalanceBefore, 0); + assertEq(feeRecipientBalanceBefore, 0); + assertEq(bridgeBalanceBefore, amount); + + bytes memory transferPayload = abi.encodePacked( + uint8(1), + amount / 1e10, + addressToBytes32(address(weth)), + testChainId, + addressToBytes32(address(this)), + testChainId, + fee / 1e10 + ); + + bytes memory vaa = signAndEncodeVM( + 0, + 0, + testForeignChainId, + testForeignBridgeContract, + sequence, + transferPayload, + uint256Array(testGuardian), + 0, + 0 + ); + + vm.expectEmit(); + emit TransferRedeemed( + testForeignChainId, + testForeignBridgeContract, + sequence + ); + vm.prank(feeRecipient); + bridge.completeTransferAndUnwrapETH(vaa); + + uint256 totalSupplyAfter = weth.totalSupply(); + assertEq(totalSupplyAfter, 0); + + uint256 bridgeBalanceAfter = weth.balanceOf(address(bridge)); + uint256 accountBalanceAfter = address(this).balance; + uint256 feeRecipientBalanceAfter = feeRecipient.balance; + assertEq(accountBalanceAfter, amount - fee); + assertEq(bridgeBalanceAfter, 0); + assertEq(feeRecipientBalanceAfter, fee); + } + + function testShouldHandleETHDepositsWithPayloadCorrectly() public { + testShouldRegisterAForeignBridgeImplementationCorrectly(); + uint256 amount = 1_000_000_000_000_000_000; + + vm.deal(address(this), amount); + + uint256 totalWETHsupply = weth.totalSupply(); + uint256 bridgeBalanceBefore = weth.balanceOf(address(bridge)); + + assertEq(totalWETHsupply, 0); + assertEq(bridgeBalanceBefore, 0); + + uint16 toChain = testForeignChainId; + bytes32 toAddress = testForeignBridgeContract; + + bytes memory additionalPayload = bytes("abc123"); + + bytes memory transferPayload = abi.encodePacked( + uint8(3), + amount / 1e10, + addressToBytes32(address(weth)), + testChainId, + toAddress, + toChain, + addressToBytes32(address(this)), + additionalPayload + ); + vm.expectEmit(); + emit LogMessagePublished( + address(bridge), + uint64(0), + uint32(234), + transferPayload, + uint8(finality) + ); + bridge.wrapAndTransferETHWithPayload{value: amount}( + toChain, + toAddress, + 234, + additionalPayload + ); + + uint256 totalWETHSupplyAfter = weth.totalSupply(); + uint256 bridgeBalanceAfter = weth.balanceOf(address(bridge)); + + assertEq(totalWETHSupplyAfter, amount); + assertEq(bridgeBalanceAfter, amount); + } + + function testShouldHandleETHWithdrawalsWithPayloadCorrectly() public { + testShouldHandleETHDepositsWithPayloadCorrectly(); + uint256 amount = 1_000_000_000_000_000_000; + uint64 sequence = 235; + + uint256 accountBalanceBefore = weth.balanceOf(address(this)); + uint256 bridgeBalanceBefore = weth.balanceOf(address(bridge)); + assertEq(accountBalanceBefore, 0); + assertEq(bridgeBalanceBefore, amount); + assertEq(weth.totalSupply(), amount); + + address receiver = address(0x2); + + bytes memory additionalPayload = bytes("abc123"); + + bytes memory transferPayload = abi.encodePacked( + uint8(3), + amount / 1e10, + addressToBytes32(address(weth)), + testChainId, + addressToBytes32(receiver), + testChainId, + uint256(0), + additionalPayload + ); + + bytes memory vaa = signAndEncodeVM( + 0, + 0, + testForeignChainId, + testForeignBridgeContract, + sequence, + transferPayload, + uint256Array(testGuardian), + 0, + 0 + ); + + vm.expectEmit(); + emit TransferRedeemed( + testForeignChainId, + testForeignBridgeContract, + sequence + ); + vm.prank(receiver); + bridge.completeTransferAndUnwrapETHWithPayload(vaa); + + uint256 totalSupplyAfter = weth.totalSupply(); + assertEq(totalSupplyAfter, 0); + + uint256 bridgeBalanceAfter = weth.balanceOf(address(bridge)); + uint256 receiverBalanceAfter = address(receiver).balance; + assertEq(receiverBalanceAfter, amount); + assertEq(bridgeBalanceAfter, 0); + } + + function testShouldRevertOnTransferOutOfATotalOfMaxUint64Tokens() public { + uint256 amount = 184467440737095516160000000000; + uint256 firstTransfer = 1000000000000; + + testShouldCorrectlyDeployAWrappedAssetForATokenAttestation(); + tokenImpl.mint(address(this), amount); + tokenImpl.approve(address(bridge), amount); + + uint16 toChain = testForeignChainId; + bytes32 toAddress = testForeignBridgeContract; + + bridge.transferTokens( + address(tokenImpl), + firstTransfer, + toChain, + toAddress, + 0, + 234 + ); + + vm.expectRevert( + "transfer exceeds max outstanding bridged token amount" + ); + bridge.transferTokens( + address(tokenImpl), + amount - firstTransfer, + toChain, + toAddress, + 0, + 234 + ); + } + + function addressToBytes32(address input) internal pure returns (bytes32 output) { + return bytes32(uint256(uint160(input))); + } + + function uint256Array( + uint256 member + ) internal pure returns (uint256[] memory arr) { + arr = new uint256[](1); + arr[0] = member; + } + + function signAndEncodeVM( + uint32 timestamp, + uint32 nonce, + uint16 emitterChainId, + bytes32 emitterAddress, + uint64 sequence, + bytes memory data, + uint256[] memory signers, + uint32 guardianSetIndex, + uint8 consistencyLevel + ) public pure returns (bytes memory signedMessage) { + bytes memory body = abi.encodePacked( + timestamp, + nonce, + emitterChainId, + emitterAddress, + sequence, + consistencyLevel, + data + ); + bytes32 bodyHash = keccak256(abi.encodePacked(keccak256(body))); + + // Sign the hash with the devnet guardian private key + IWormhole.Signature[] memory sigs = new IWormhole.Signature[]( + signers.length + ); + for (uint256 i = 0; i < signers.length; i++) { + (sigs[i].v, sigs[i].r, sigs[i].s) = vm.sign(signers[i], bodyHash); + sigs[i].guardianIndex = 0; + } + + signedMessage = abi.encodePacked( + uint8(1), + guardianSetIndex, + uint8(sigs.length) + ); + + for (uint256 i = 0; i < signers.length; i++) { + signedMessage = abi.encodePacked( + signedMessage, + sigs[i].guardianIndex, + sigs[i].r, + sigs[i].s, + sigs[i].v - 27 + ); + } + + signedMessage = abi.encodePacked(signedMessage, body); + } + + function testShouldRejectSmartContractUpgradesOnForks() public { + uint32 timestamp = 1000; + uint32 nonce = 1001; + + // Perform a successful upgrade + MockBridgeImplementation mock = new MockBridgeImplementation(); + + bytes memory data = abi.encodePacked( + tokenBridgeModule, + actionContractUpgrade, + testChainId, + addressToBytes32(address(mock)) + ); + bytes memory vaa = signAndEncodeVM( + timestamp, + nonce, + governanceChainId, + governanceContract, + 0, + data, + uint256Array(testGuardian), + 0, + 2 + ); + + bytes32 IMPLEMENTATION_STORAGE_SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc; + + bridge.upgrade(vaa); + + bytes32 afterUpgrade = vm.load( + address(bridge), + IMPLEMENTATION_STORAGE_SLOT + ); + assertEq(afterUpgrade, addressToBytes32(address(mock))); + assertEq( + MockBridgeImplementation(payable(address(bridge))) + .testNewImplementationActive(), + true, + "New implementation not active" + ); + + // Overwrite EVM Chain ID + MockBridgeImplementation(payable(address(bridge))) + .testOverwriteEVMChainId(fakeChainId, fakeEvmChainId); + assertEq( + bridge.chainId(), + fakeChainId, + "Overwrite didn't work for chain ID" + ); + assertEq( + bridge.evmChainId(), + fakeEvmChainId, + "Overwrite didn't work for evm chain ID" + ); + + data = abi.encodePacked( + tokenBridgeModule, + actionContractUpgrade, + testChainId, + addressToBytes32(address(mock)) + ); + vaa = signAndEncodeVM( + timestamp, + nonce, + governanceChainId, + governanceContract, + 0, + data, + uint256Array(testGuardian), + 0, + 2 + ); + + vm.expectRevert("invalid fork"); + bridge.upgrade(vaa); + } + + function testShouldAllowRecoverChainIDGovernancePacketsForks() public { + uint32 timestamp = 1000; + uint32 nonce = 1001; + + // Perform a successful upgrade + MockBridgeImplementation mock = new MockBridgeImplementation(); + + bytes memory data = abi.encodePacked( + tokenBridgeModule, + actionContractUpgrade, + testChainId, + addressToBytes32(address(mock)) + ); + bytes memory vaa = signAndEncodeVM( + timestamp, + nonce, + governanceChainId, + governanceContract, + 0, + data, + uint256Array(testGuardian), + 0, + 2 + ); + + bytes32 IMPLEMENTATION_STORAGE_SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc; + + bridge.upgrade(vaa); + + bytes32 afterUpgrade = vm.load( + address(bridge), + IMPLEMENTATION_STORAGE_SLOT + ); + assertEq(afterUpgrade, bytes32(uint256(uint160(address(mock))))); + assertEq( + MockBridgeImplementation(payable(address(bridge))) + .testNewImplementationActive(), + true, + "New implementation not active" + ); + + // Overwrite EVM Chain ID + MockBridgeImplementation(payable(address(bridge))) + .testOverwriteEVMChainId(fakeChainId, fakeEvmChainId); + assertEq( + bridge.chainId(), + fakeChainId, + "Overwrite didn't work for chain ID" + ); + assertEq( + bridge.evmChainId(), + fakeEvmChainId, + "Overwrite didn't work for evm chain ID" + ); + + // recover chain ID + data = abi.encodePacked( + tokenBridgeModule, + actionRecoverChainId, + testEvmChainId, + testChainId + ); + vaa = signAndEncodeVM( + timestamp, + nonce, + governanceChainId, + governanceContract, + 0, + data, + uint256Array(testGuardian), + 0, + 2 + ); + + bridge.submitRecoverChainId(vaa); + + assertEq( + bridge.chainId(), + testChainId, + "Recover didn't work for chain ID" + ); + assertEq( + bridge.evmChainId(), + testEvmChainId, + "Recover didn't work for evm chain ID" + ); + } + + function testShouldAcceptSmartContractUpgradesAfterChainIdHasBeenRecovered() + public + { + uint32 timestamp = 1000; + uint32 nonce = 1001; + + // Perform a successful upgrade + MockBridgeImplementation mock = new MockBridgeImplementation(); + + bytes memory data = abi.encodePacked( + tokenBridgeModule, + actionContractUpgrade, + testChainId, + addressToBytes32(address(mock)) + ); + bytes memory vaa = signAndEncodeVM( + timestamp, + nonce, + governanceChainId, + governanceContract, + 0, + data, + uint256Array(testGuardian), + 0, + 2 + ); + + bytes32 IMPLEMENTATION_STORAGE_SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc; + bytes32 before = vm.load(address(bridge), IMPLEMENTATION_STORAGE_SLOT); + + bridge.upgrade(vaa); + + bytes32 afterUpgrade = vm.load( + address(bridge), + IMPLEMENTATION_STORAGE_SLOT + ); + assertEq(afterUpgrade, bytes32(uint256(uint160(address(mock))))); + assertEq( + MockBridgeImplementation(payable(address(bridge))) + .testNewImplementationActive(), + true, + "New implementation not active" + ); + + // Overwrite EVM Chain ID + MockBridgeImplementation(payable(address(bridge))) + .testOverwriteEVMChainId(fakeChainId, fakeEvmChainId); + assertEq( + bridge.chainId(), + fakeChainId, + "Overwrite didn't work for chain ID" + ); + assertEq( + bridge.evmChainId(), + fakeEvmChainId, + "Overwrite didn't work for evm chain ID" + ); + + // recover chain ID + data = abi.encodePacked( + tokenBridgeModule, + actionRecoverChainId, + testEvmChainId, + testChainId + ); + vaa = signAndEncodeVM( + timestamp, + nonce, + governanceChainId, + governanceContract, + 0, + data, + uint256Array(testGuardian), + 0, + 2 + ); + + bridge.submitRecoverChainId(vaa); + + assertEq( + bridge.chainId(), + testChainId, + "Recover didn't work for chain ID" + ); + assertEq( + bridge.evmChainId(), + testEvmChainId, + "Recover didn't work for evm chain ID" + ); + + // Perform a successful upgrade + mock = new MockBridgeImplementation(); + + data = abi.encodePacked( + tokenBridgeModule, + actionContractUpgrade, + testChainId, + addressToBytes32(address(mock)) + ); + vaa = signAndEncodeVM( + timestamp, + nonce, + governanceChainId, + governanceContract, + 0, + data, + uint256Array(testGuardian), + 0, + 2 + ); + + before = vm.load(address(bridge), IMPLEMENTATION_STORAGE_SLOT); + + bridge.upgrade(vaa); + + afterUpgrade = vm.load(address(bridge), IMPLEMENTATION_STORAGE_SLOT); + assertEq(afterUpgrade, bytes32(uint256(uint160(address(mock))))); + assertEq( + MockBridgeImplementation(payable(address(bridge))) + .testNewImplementationActive(), + true, + "New implementation not active" + ); + } + + fallback() external payable {} + receive() external payable {} } diff --git a/ethereum/forge-test/Implementation.t.sol b/ethereum/forge-test/Implementation.t.sol index e9b0c81583..04e679a605 100644 --- a/ethereum/forge-test/Implementation.t.sol +++ b/ethereum/forge-test/Implementation.t.sol @@ -9,21 +9,55 @@ import "../contracts/Wormhole.sol"; import "../contracts/interfaces/IWormhole.sol"; import "forge-std/Test.sol"; import "forge-test/rv-helpers/TestUtils.sol"; +import "../contracts/mock/MockImplementation.sol"; contract TestImplementation is TestUtils { - event LogMessagePublished(address indexed sender, uint64 sequence, uint32 nonce, bytes payload, uint8 consistencyLevel); + event LogMessagePublished( + address indexed sender, + uint64 sequence, + uint32 nonce, + bytes payload, + uint8 consistencyLevel + ); Wormhole proxy; Implementation impl; Setup setup; Setup proxiedSetup; - IWormhole proxied; + IWormhole public proxied; - uint256 constant testGuardian = 93941733246223705020089879371323733820373732307041878556247502674739205313440; - bytes32 constant governanceContract = 0x0000000000000000000000000000000000000000000000000000000000000004; + uint256 public constant testGuardian = + 93941733246223705020089879371323733820373732307041878556247502674739205313440; + uint16 public governanceChainId = 1; + bytes32 public constant governanceContract = + 0x0000000000000000000000000000000000000000000000000000000000000004; bytes32 constant MESSAGEFEE_STORAGESLOT = bytes32(uint256(7)); bytes32 constant SEQUENCES_SLOT = bytes32(uint256(4)); + uint256 constant testBadSigner1PK = + 61380885381456947260501717894649826485638944763666157704556612272461980735996; + uint256 constant testSigner1 = + 93941733246223705020089879371323733820373732307041878556247502674739205313440; + uint256 constant testSigner2 = + 62029033948131772461620424086954761227341731979036746506078649711513083917822; + uint256 constant testSigner3 = + 61380885381456947260501717894649826485638944763666157704556612272461980735995; + + // "Core" (left padded) + bytes32 constant core = + 0x00000000000000000000000000000000000000000000000000000000436f7265; + uint8 actionContractUpgrade = 1; + uint8 actionGuardianSetUpgrade = 2; + uint8 actionMessageFee = 3; + uint8 actionTransferFee = 4; + uint8 actionRecoverChainId = 5; + + uint16 public testChainId = 2; + uint256 public testEvmChainId = 1; + + uint16 fakeChainId = 1337; + uint256 fakeEvmChainId = 10001; + function setUp() public { // Deploy setup setup = new Setup(); @@ -39,19 +73,26 @@ contract TestImplementation is TestUtils { //proxied setup proxiedSetup = Setup(address(proxy)); - vm.chainId(1); + vm.chainId(testEvmChainId); proxiedSetup.setup({ implementation: address(impl), initialGuardians: keys, - chainId: 2, + chainId: testChainId, governanceChainId: 1, governanceContract: governanceContract, - evmChainId: 1 + evmChainId: testEvmChainId }); proxied = IWormhole(address(proxy)); } + function uint256Array( + uint256 member + ) internal pure returns (uint256[] memory arr) { + arr = new uint256[](1); + arr[0] = member; + } + function testPublishMessage( bytes32 storageSlot, uint256 messageFee, @@ -59,22 +100,24 @@ contract TestImplementation is TestUtils { uint256 aliceBalance, uint32 nonce, bytes memory payload, - uint8 consistencyLevel) - public - unchangedStorage(address(proxied), storageSlot) - { + uint8 consistencyLevel + ) public unchangedStorage(address(proxied), storageSlot) { uint64 sequence = proxied.nextSequence(alice); - bytes32 storageLocation = hashedLocation(alice, SEQUENCES_SLOT); + bytes32 storageLocation = hashedLocation(alice, SEQUENCES_SLOT); vm.assume(aliceBalance >= messageFee); vm.assume(storageSlot != storageLocation); vm.assume(storageSlot != MESSAGEFEE_STORAGESLOT); vm.store(address(proxied), MESSAGEFEE_STORAGESLOT, bytes32(messageFee)); - vm.deal(address(alice),aliceBalance); + vm.deal(address(alice), aliceBalance); vm.prank(alice); - proxied.publishMessage{value: messageFee}(nonce, payload, consistencyLevel); + proxied.publishMessage{value: messageFee}( + nonce, + payload, + consistencyLevel + ); assertEq(sequence + 1, proxied.nextSequence(alice)); } @@ -86,25 +129,33 @@ contract TestImplementation is TestUtils { uint256 aliceBalance, uint32 nonce, bytes memory payload, - uint8 consistencyLevel) - public - unchangedStorage(address(proxied), storageSlot) - { + uint8 consistencyLevel + ) public unchangedStorage(address(proxied), storageSlot) { uint64 sequence = proxied.nextSequence(alice); - bytes32 storageLocation = hashedLocation(alice, SEQUENCES_SLOT); + bytes32 storageLocation = hashedLocation(alice, SEQUENCES_SLOT); vm.assume(aliceBalance >= messageFee); vm.assume(storageSlot != storageLocation); vm.assume(storageSlot != MESSAGEFEE_STORAGESLOT); vm.store(address(proxied), MESSAGEFEE_STORAGESLOT, bytes32(messageFee)); - vm.deal(address(alice),aliceBalance); + vm.deal(address(alice), aliceBalance); vm.prank(alice); vm.expectEmit(true, true, true, true); - emit LogMessagePublished(alice, sequence, nonce, payload, consistencyLevel); + emit LogMessagePublished( + alice, + sequence, + nonce, + payload, + consistencyLevel + ); - proxied.publishMessage{value: messageFee}(nonce, payload, consistencyLevel); + proxied.publishMessage{value: messageFee}( + nonce, + payload, + consistencyLevel + ); } function testPublishMessage_Revert_InvalidFee( @@ -115,20 +166,22 @@ contract TestImplementation is TestUtils { uint256 aliceFee, uint32 nonce, bytes memory payload, - uint8 consistencyLevel) - public - unchangedStorage(address(proxied), storageSlot) - { + uint8 consistencyLevel + ) public unchangedStorage(address(proxied), storageSlot) { vm.assume(aliceBalance >= aliceFee); vm.assume(aliceFee != messageFee); vm.assume(storageSlot != MESSAGEFEE_STORAGESLOT); vm.store(address(proxied), MESSAGEFEE_STORAGESLOT, bytes32(messageFee)); - vm.deal(address(alice),aliceBalance); + vm.deal(address(alice), aliceBalance); vm.prank(alice); vm.expectRevert("invalid fee"); - proxied.publishMessage{value: aliceFee}(nonce, payload, consistencyLevel); + proxied.publishMessage{value: aliceFee}( + nonce, + payload, + consistencyLevel + ); } function testPublishMessage_Revert_OutOfFunds( @@ -138,18 +191,1079 @@ contract TestImplementation is TestUtils { uint256 aliceBalance, uint32 nonce, bytes memory payload, - uint8 consistencyLevel) - public - unchangedStorage(address(proxied), storageSlot) - { + uint8 consistencyLevel + ) public unchangedStorage(address(proxied), storageSlot) { vm.assume(aliceBalance < messageFee); vm.assume(storageSlot != MESSAGEFEE_STORAGESLOT); vm.store(address(proxied), MESSAGEFEE_STORAGESLOT, bytes32(messageFee)); - vm.deal(address(alice),aliceBalance); + vm.deal(address(alice), aliceBalance); vm.prank(alice); vm.expectRevert(); - proxied.publishMessage{value: messageFee}(nonce, payload, consistencyLevel); + proxied.publishMessage{value: messageFee}( + nonce, + payload, + consistencyLevel + ); + } + + function testShouldBeInitializedWithCorrectSignersAndValues() public { + uint32 index = proxied.getCurrentGuardianSetIndex(); + IWormhole.GuardianSet memory set = proxied.getGuardianSet(index); + + // check set + assertEq(set.keys.length, 1, "Guardian set length wrong"); + assertEq(set.keys[0], vm.addr(testGuardian), "Guardian wrong"); + + // check expiration + assertEq(set.expirationTime, 0); + + // chain id + uint16 chainId = proxied.chainId(); + assertEq(chainId, testChainId, "Wrong Chain ID"); + + // evm chain id + uint256 evmChainId = proxied.evmChainId(); + assertEq(evmChainId, testEvmChainId, "Wrong EVM Chain ID"); + + // governance + uint16 readGovernanceChainId = proxied.governanceChainId(); + bytes32 readGovernanceContract = proxied.governanceContract(); + assertEq( + readGovernanceChainId, + governanceChainId, + "Wrong governance chain ID" + ); + assertEq( + readGovernanceContract, + governanceContract, + "Wrong governance contract" + ); + } + + function testShouldLogAPublishedMessageCorrectly() public { + vm.expectEmit(); + emit LogMessagePublished( + address(this), + uint64(0), + uint32(291), + bytes(hex"123321"), + uint8(32) + ); + proxied.publishMessage(0x123, hex"123321", 32); + } + + function testShouldIncreaseTheSequenceForAnAccount() public { + proxied.publishMessage(0x1, hex"01", 32); + uint64 sequence = proxied.publishMessage(0x1, hex"01", 32); + assertEq(sequence, 1, "Sequence number didn't increase"); + } + + function signAndEncodeVMFixedIndex( + uint32 timestamp, + uint32 nonce, + uint16 emitterChainId, + bytes32 emitterAddress, + uint64 sequence, + bytes memory data, + uint256[] memory signers, + uint32 guardianSetIndex, + uint8 consistencyLevel + ) public pure returns (bytes memory signedMessage) { + bytes memory body = abi.encodePacked( + timestamp, + nonce, + emitterChainId, + emitterAddress, + sequence, + consistencyLevel, + data + ); + bytes32 bodyHash = keccak256(abi.encodePacked(keccak256(body))); + + // Sign the hash with the devnet guardian private key + IWormhole.Signature[] memory sigs = new IWormhole.Signature[]( + signers.length + ); + for (uint256 i = 0; i < signers.length; i++) { + (sigs[i].v, sigs[i].r, sigs[i].s) = vm.sign(signers[i], bodyHash); + sigs[i].guardianIndex = 0; + } + + signedMessage = abi.encodePacked( + uint8(1), + guardianSetIndex, + uint8(sigs.length) + ); + + for (uint256 i = 0; i < signers.length; i++) { + signedMessage = abi.encodePacked( + signedMessage, + uint8(0), + sigs[i].r, + sigs[i].s, + sigs[i].v - 27 + ); + } + + signedMessage = abi.encodePacked(signedMessage, body); + } + + function signAndEncodeVM( + uint32 timestamp, + uint32 nonce, + uint16 emitterChainId, + bytes32 emitterAddress, + uint64 sequence, + bytes memory data, + uint256[] memory signers, + uint32 guardianSetIndex, + uint8 consistencyLevel + ) public pure returns (bytes memory signedMessage) { + bytes memory body = abi.encodePacked( + timestamp, + nonce, + emitterChainId, + emitterAddress, + sequence, + consistencyLevel, + data + ); + bytes32 bodyHash = keccak256(abi.encodePacked(keccak256(body))); + + // Sign the hash with the devnet guardian private key + IWormhole.Signature[] memory sigs = new IWormhole.Signature[]( + signers.length + ); + for (uint256 i = 0; i < signers.length; i++) { + (sigs[i].v, sigs[i].r, sigs[i].s) = vm.sign(signers[i], bodyHash); + sigs[i].guardianIndex = 0; + } + + signedMessage = abi.encodePacked( + uint8(1), + guardianSetIndex, + uint8(sigs.length) + ); + + for (uint256 i = 0; i < signers.length; i++) { + signedMessage = abi.encodePacked( + signedMessage, + sigs[i].guardianIndex, + sigs[i].r, + sigs[i].s, + sigs[i].v - 27 + ); + } + + signedMessage = abi.encodePacked(signedMessage, body); + } + + function testParseVMsCorrectly() public { + uint32 timestamp = 1000; + uint32 nonce = 1001; + uint16 emitterChainId = 11; + bytes32 emitterAddress = 0x0000000000000000000000000000000000000000000000000000000000000eee; + uint64 sequence = 0; + uint8 consistencyLevel = 2; + uint32 guardianSetIndex = 0; + bytes memory data = hex"aaaaaa"; + + bytes memory signedMessage = signAndEncodeVM( + timestamp, + nonce, + emitterChainId, + emitterAddress, + sequence, + data, + uint256Array(testGuardian), + guardianSetIndex, + consistencyLevel + ); + + (IWormhole.VM memory parsed, bool valid, string memory reason) = proxied + .parseAndVerifyVM(signedMessage); + + assertEq(parsed.version, 1, "Wrong VM version"); + assertEq(parsed.timestamp, timestamp, "Wrong VM timestamp"); + assertEq(parsed.nonce, nonce, "Wrong VM nonce"); + assertEq( + parsed.emitterChainId, + emitterChainId, + "Wrong emitter chain id" + ); + assertEq( + parsed.emitterAddress, + emitterAddress, + "Wrong emitter address" + ); + assertEq(parsed.payload, data, "Wrong VM payload"); + assertEq(parsed.guardianSetIndex, 0, "Wrong VM guardian set index"); + assertEq(parsed.sequence, sequence, "Wrong VM sequence"); + assertEq( + parsed.consistencyLevel, + consistencyLevel, + "Wrong VM consistency level" + ); + assertEq(valid, true, "Signed vaa not valid"); + assertEq(reason, "", "Wrong reason"); + } + + function testShouldFailQuorumOnVMsWithNoSigners() public { + uint32 timestamp = 1000; + uint32 nonce = 1001; + uint16 emitterChainId = 11; + bytes32 emitterAddress = 0x0000000000000000000000000000000000000000000000000000000000000eee; + uint64 sequence = 0; + uint8 consistencyLevel = 2; + uint32 guardianSetIndex = 0; + bytes memory data = hex"aaaaaa"; + + bytes memory signedMessage = signAndEncodeVM( + timestamp, + nonce, + emitterChainId, + emitterAddress, + sequence, + data, + new uint256[](0), + guardianSetIndex, + consistencyLevel + ); + + (, bool valid, string memory reason) = proxied.parseAndVerifyVM( + signedMessage + ); + + assertEq(valid, false, "Signed vaa shouldn't be valid"); + assertEq(reason, "no quorum", "Wrong reason"); + } + + function testShouldFailToVerifyOnVMsWithBadSigner() public { + uint32 timestamp = 1000; + uint32 nonce = 1001; + uint16 emitterChainId = 11; + bytes32 emitterAddress = 0x0000000000000000000000000000000000000000000000000000000000000eee; + uint64 sequence = 0; + uint8 consistencyLevel = 2; + uint32 guardianSetIndex = 0; + bytes memory data = hex"aaaaaa"; + + bytes memory signedMessage = signAndEncodeVM( + timestamp, + nonce, + emitterChainId, + emitterAddress, + sequence, + data, + uint256Array(testBadSigner1PK), + guardianSetIndex, + consistencyLevel + ); + + (, bool valid, string memory reason) = proxied.parseAndVerifyVM( + signedMessage + ); + + assertEq(valid, false, "Signed vaa shouldn't be valid"); + assertEq(reason, "VM signature invalid", "Wrong reason"); + } + + function testShouldErrorOnVMsWithInvalidGuardianSetIndex() public { + uint32 timestamp = 1000; + uint32 nonce = 1001; + uint16 emitterChainId = 11; + bytes32 emitterAddress = 0x0000000000000000000000000000000000000000000000000000000000000eee; + uint64 sequence = 0; + uint8 consistencyLevel = 2; + uint32 guardianSetIndex = 200; + bytes memory data = hex"aaaaaa"; + + bytes memory signedMessage = signAndEncodeVM( + timestamp, + nonce, + emitterChainId, + emitterAddress, + sequence, + data, + uint256Array(testGuardian), + guardianSetIndex, + consistencyLevel + ); + + (, bool valid, string memory reason) = proxied + .parseAndVerifyVM(signedMessage); + + assertEq(valid, false, "Signed vaa shouldn't be valid"); + assertEq(reason, "invalid guardian set", "Wrong reason"); + } + + function testShouldRevertOnVMsWithDuplicateNonMonotonicSignatureIndexes() + public + { + uint32 timestamp = 1000; + uint32 nonce = 1001; + uint16 emitterChainId = 11; + bytes32 emitterAddress = 0x0000000000000000000000000000000000000000000000000000000000000eee; + uint64 sequence = 0; + uint8 consistencyLevel = 2; + uint32 guardianSetIndex = 0; + bytes memory data = hex"aaaaaa"; + uint256[] memory signers = new uint256[](3); + signers[0] = testSigner1; + signers[1] = testSigner2; + signers[2] = testSigner3; + bytes memory signedMessage = signAndEncodeVMFixedIndex( + timestamp, + nonce, + emitterChainId, + emitterAddress, + sequence, + data, + signers, + guardianSetIndex, + consistencyLevel + ); + + vm.expectRevert("signature indices must be ascending"); + proxied.parseAndVerifyVM(signedMessage); + } + + function testShouldSetAndEnforceFees() public { + uint32 timestamp = 1000; + uint32 nonce = 1001; + uint256 messageFee = 1111; + bytes memory data = abi.encodePacked( + core, + actionMessageFee, + testChainId, + messageFee + ); + bytes memory vaa = signAndEncodeVM( + timestamp, + nonce, + governanceChainId, + governanceContract, + 0, + data, + uint256Array(testGuardian), + 0, + 2 + ); + + uint256 before = proxied.messageFee(); + proxied.submitSetMessageFee(vaa); + uint256 afterSettingFee = proxied.messageFee(); + assertTrue(before != afterSettingFee, "message fee did not update"); + assertEq(afterSettingFee, messageFee, "wrong message fee"); + } + + function testShouldTransferOutCollectedFees() public { + address receiver = address(0x1234123412341234123412341234123412341234); + + uint32 timestamp = 1000; + uint32 nonce = 1001; + uint256 amount = 11; + + vm.deal(address(proxied), amount); + bytes memory data = abi.encodePacked( + core, + actionTransferFee, + testChainId, + amount, + addressToBytes32(receiver) + ); + bytes memory vaa = signAndEncodeVM( + timestamp, + nonce, + governanceChainId, + governanceContract, + 0, + data, + uint256Array(testGuardian), + 0, + 2 + ); + + uint256 receiverBefore = receiver.balance; + uint256 whBefore = address(proxied).balance; + proxied.submitTransferFees(vaa); + uint256 receiverAfter = receiver.balance; + uint256 whAfter = address(proxied).balance; + assertEq( + receiverAfter - receiverBefore, + amount, + "Receiver balance didn't change correctly" + ); + assertEq( + whBefore - whAfter, + amount, + "WH Core balance didn't change correctly" + ); + } + + function testShouldRevertWhenSubmittingANewGuardianSetWithTheZeroAddress() + public + { + uint32 timestamp = 1000; + uint32 nonce = 1001; + address zeroAddress = address(0x0); + + uint32 oldGuardianSetIndex = proxied.getCurrentGuardianSetIndex(); + + bytes memory data = abi.encodePacked( + core, + actionGuardianSetUpgrade, + testChainId, + oldGuardianSetIndex + 1, + uint8(3), + vm.addr(testSigner1), + vm.addr(testSigner2), + zeroAddress + ); + bytes memory vaa = signAndEncodeVM( + timestamp, + nonce, + governanceChainId, + governanceContract, + 0, + data, + uint256Array(testGuardian), + 0, + 2 + ); + + vm.expectRevert("Invalid key"); + proxied.submitNewGuardianSet(vaa); + } + + function testShouldAcceptANewGuardianSet() public { + uint32 timestamp = 1000; + uint32 nonce = 1001; + + uint32 oldGuardianSetIndex = proxied.getCurrentGuardianSetIndex(); + + bytes memory data = abi.encodePacked( + core, + actionGuardianSetUpgrade, + testChainId, + oldGuardianSetIndex + 1, + uint8(3), + vm.addr(testSigner1), + vm.addr(testSigner2), + vm.addr(testSigner3) + ); + bytes memory vaa = signAndEncodeVM( + timestamp, + nonce, + governanceChainId, + governanceContract, + 0, + data, + uint256Array(testGuardian), + 0, + 2 + ); + + proxied.submitNewGuardianSet(vaa); + + uint32 newIndex = proxied.getCurrentGuardianSetIndex(); + assertEq( + oldGuardianSetIndex + 1, + newIndex, + "New index is one more than old index" + ); + + IWormhole.GuardianSet memory guardianSet = proxied.getGuardianSet( + newIndex + ); + + assertEq(guardianSet.expirationTime, 0, "Wrong expiration time"); + assertEq(guardianSet.keys[0], vm.addr(testSigner1), "Wrong guardian"); + assertEq(guardianSet.keys[1], vm.addr(testSigner2), "Wrong guardian"); + assertEq(guardianSet.keys[2], vm.addr(testSigner3), "Wrong guardian"); + + IWormhole.GuardianSet memory oldGuardianSet = proxied.getGuardianSet( + oldGuardianSetIndex + ); + + assertTrue( + (oldGuardianSet.expirationTime > block.timestamp + 86000) && + (oldGuardianSet.expirationTime < block.timestamp + 88000), + "Wrong expiration time" + ); + assertEq( + oldGuardianSet.keys[0], + vm.addr(testGuardian), + "Wrong guardian" + ); + } + + function testShouldAcceptSmartContractUpgrades() public { + uint32 timestamp = 1000; + uint32 nonce = 1001; + + MockImplementation mock = new MockImplementation(); + + bytes memory data = abi.encodePacked( + core, + actionContractUpgrade, + testChainId, + addressToBytes32(address(mock)) + ); + bytes memory vaa = signAndEncodeVM( + timestamp, + nonce, + governanceChainId, + governanceContract, + 0, + data, + uint256Array(testGuardian), + 0, + 2 + ); + + bytes32 IMPLEMENTATION_STORAGE_SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc; + + proxied.submitContractUpgrade(vaa); + + bytes32 afterUpgrade = vm.load( + address(proxied), + IMPLEMENTATION_STORAGE_SLOT + ); + assertEq(afterUpgrade, addressToBytes32(address(mock))); + assertEq( + MockImplementation(payable(address(proxied))) + .testNewImplementationActive(), + true, + "New implementation not active" + ); + } + + function testShouldRevertRecoverChainIDGovernancePacketsOnCanonicalChainsNonFork() + public + { + uint32 timestamp = 1000; + uint32 nonce = 1001; + + bytes memory data = abi.encodePacked( + core, + actionRecoverChainId, + testEvmChainId, + testChainId + ); + + bytes memory vaa = signAndEncodeVM( + timestamp, + nonce, + governanceChainId, + governanceContract, + 0, + data, + uint256Array(testGuardian), + 0, + 2 + ); + + vm.expectRevert("not a fork"); + proxied.submitRecoverChainId(vaa); + } + + function testShouldRevertGovernancePacketsFromOldGuardianSet() public { + uint32 timestamp = 1000; + uint32 nonce = 1001; + + // upgrade guardian set + bytes memory data = abi.encodePacked( + core, + actionGuardianSetUpgrade, + testChainId, + uint32(1), + uint8(3), + vm.addr(testSigner1), + vm.addr(testSigner2), + vm.addr(testSigner3) + ); + bytes memory vaa = signAndEncodeVM( + timestamp, + nonce, + governanceChainId, + governanceContract, + 0, + data, + uint256Array(testGuardian), + 0, + 2 + ); + + proxied.submitNewGuardianSet(vaa); + + data = abi.encodePacked( + core, + actionTransferFee, + testChainId, + uint256(1), + address(0) + ); + vaa = signAndEncodeVM( + timestamp, + nonce, + governanceChainId, + governanceContract, + 0, + data, + uint256Array(testGuardian), + 0, + 2 + ); + + vm.expectRevert("not signed by current guardian set"); + proxied.submitTransferFees(vaa); + } + + function testShouldTimeOutOldGuardians() public { + uint32 timestamp = 1000; + uint32 nonce = 1001; + + // upgrade guardian set + bytes memory data = abi.encodePacked( + core, + actionGuardianSetUpgrade, + testChainId, + uint32(1), + uint8(3), + vm.addr(testSigner1), + vm.addr(testSigner2), + vm.addr(testSigner3) + ); + bytes memory vaa = signAndEncodeVM( + timestamp, + nonce, + governanceChainId, + governanceContract, + 0, + data, + uint256Array(testGuardian), + 0, + 2 + ); + + proxied.submitNewGuardianSet(vaa); + + data = hex"aaaaaa"; + vaa = signAndEncodeVM( + timestamp, + nonce, + governanceChainId, + governanceContract, + 0, + data, + uint256Array(testGuardian), + 0, + 2 + ); + + (, bool valid, ) = proxied.parseAndVerifyVM(vaa); + + assertEq(valid, true, "Vaa should be valid"); + + skip(100000); + + (, valid, ) = proxied.parseAndVerifyVM(vaa); + + assertEq(valid, false, "Vaa should be expired"); + } + + function testShouldRevertGovernancePacketsFromWrongGovernanceChain() + public + { + uint32 timestamp = 1000; + uint32 nonce = 1001; + + bytes memory data = abi.encodePacked( + core, + actionTransferFee, + testChainId, + uint256(1), + address(0) + ); + bytes memory vaa = signAndEncodeVM( + timestamp, + nonce, + 999, + governanceContract, + 0, + data, + uint256Array(testGuardian), + 0, + 2 + ); + + vm.expectRevert("wrong governance chain"); + proxied.submitTransferFees(vaa); + } + + function testShouldRevertGovernancePacketsFromWrongGovernanceContract() + public + { + uint32 timestamp = 1000; + uint32 nonce = 1001; + + bytes memory data = abi.encodePacked( + core, + actionTransferFee, + testChainId, + uint256(1), + address(0) + ); + bytes memory vaa = signAndEncodeVM( + timestamp, + nonce, + governanceChainId, + core, + 0, + data, + uint256Array(testGuardian), + 0, + 2 + ); + + vm.expectRevert("wrong governance contract"); + proxied.submitTransferFees(vaa); + } + + function testShouldRevertGovernancePacketsThatAlreadyHaveBeenApplied() + public + { + uint32 timestamp = 1000; + uint32 nonce = 1001; + + uint256 amount = 1; + vm.deal(address(proxied), amount); + + bytes memory data = abi.encodePacked( + core, + actionTransferFee, + testChainId, + amount, + addressToBytes32(address(0)) + ); + bytes memory vaa = signAndEncodeVM( + timestamp, + nonce, + governanceChainId, + governanceContract, + 0, + data, + uint256Array(testGuardian), + 0, + 2 + ); + + proxied.submitTransferFees(vaa); + + vm.expectRevert("governance action already consumed"); + proxied.submitTransferFees(vaa); + } + + function addressToBytes32(address input) internal pure returns (bytes32 output) { + return bytes32(uint256(uint160(input))); + } + + function testShouldRejectSmartContractUpgradesOnForks() public { + uint32 timestamp = 1000; + uint32 nonce = 1001; + + // Perform a successful upgrade + MockImplementation mock = new MockImplementation(); + + bytes memory data = abi.encodePacked( + core, + actionContractUpgrade, + testChainId, + addressToBytes32(address(mock)) + ); + bytes memory vaa = signAndEncodeVM( + timestamp, + nonce, + governanceChainId, + governanceContract, + 0, + data, + uint256Array(testGuardian), + 0, + 2 + ); + + bytes32 IMPLEMENTATION_STORAGE_SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc; + + proxied.submitContractUpgrade(vaa); + + bytes32 afterUpgrade = vm.load( + address(proxied), + IMPLEMENTATION_STORAGE_SLOT + ); + assertEq(afterUpgrade, addressToBytes32(address(mock))); + assertEq( + MockImplementation(payable(address(proxied))) + .testNewImplementationActive(), + true, + "New implementation not active" + ); + + // Overwrite EVM Chain ID + MockImplementation(payable(address(proxied))).testOverwriteEVMChainId( + fakeChainId, + fakeEvmChainId + ); + assertEq( + proxied.chainId(), + fakeChainId, + "Overwrite didn't work for chain ID" + ); + assertEq( + proxied.evmChainId(), + fakeEvmChainId, + "Overwrite didn't work for evm chain ID" + ); + + data = abi.encodePacked( + core, + actionContractUpgrade, + testChainId, + addressToBytes32(address(mock)) + ); + vaa = signAndEncodeVM( + timestamp, + nonce, + governanceChainId, + governanceContract, + 0, + data, + uint256Array(testGuardian), + 0, + 2 + ); + + vm.expectRevert("invalid fork"); + proxied.submitContractUpgrade(vaa); + } + + function testShouldAllowRecoverChainIDGovernancePacketsForks() public { + uint32 timestamp = 1000; + uint32 nonce = 1001; + + // Perform a successful upgrade + MockImplementation mock = new MockImplementation(); + + bytes memory data = abi.encodePacked( + core, + actionContractUpgrade, + testChainId, + addressToBytes32(address(mock)) + ); + bytes memory vaa = signAndEncodeVM( + timestamp, + nonce, + governanceChainId, + governanceContract, + 0, + data, + uint256Array(testGuardian), + 0, + 2 + ); + + bytes32 IMPLEMENTATION_STORAGE_SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc; + + proxied.submitContractUpgrade(vaa); + + bytes32 afterUpgrade = vm.load( + address(proxied), + IMPLEMENTATION_STORAGE_SLOT + ); + assertEq(afterUpgrade, addressToBytes32(address(mock))); + assertEq( + MockImplementation(payable(address(proxied))) + .testNewImplementationActive(), + true, + "New implementation not active" + ); + + // Overwrite EVM Chain ID + MockImplementation(payable(address(proxied))).testOverwriteEVMChainId( + fakeChainId, + fakeEvmChainId + ); + assertEq( + proxied.chainId(), + fakeChainId, + "Overwrite didn't work for chain ID" + ); + assertEq( + proxied.evmChainId(), + fakeEvmChainId, + "Overwrite didn't work for evm chain ID" + ); + + // recover chain ID + data = abi.encodePacked( + core, + actionRecoverChainId, + testEvmChainId, + testChainId + ); + vaa = signAndEncodeVM( + timestamp, + nonce, + governanceChainId, + governanceContract, + 0, + data, + uint256Array(testGuardian), + 0, + 2 + ); + + proxied.submitRecoverChainId(vaa); + + assertEq( + proxied.chainId(), + testChainId, + "Recover didn't work for chain ID" + ); + assertEq( + proxied.evmChainId(), + testEvmChainId, + "Recover didn't work for evm chain ID" + ); + } + + function testShouldAcceptSmartContractUpgradesAfterChainIdHasBeenRecovered() + public + { + uint32 timestamp = 1000; + uint32 nonce = 1001; + + // Perform a successful upgrade + MockImplementation mock = new MockImplementation(); + + bytes memory data = abi.encodePacked( + core, + actionContractUpgrade, + testChainId, + addressToBytes32(address(mock)) + ); + bytes memory vaa = signAndEncodeVM( + timestamp, + nonce, + governanceChainId, + governanceContract, + 0, + data, + uint256Array(testGuardian), + 0, + 2 + ); + + bytes32 IMPLEMENTATION_STORAGE_SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc; + bytes32 before = vm.load(address(proxied), IMPLEMENTATION_STORAGE_SLOT); + + proxied.submitContractUpgrade(vaa); + + bytes32 afterUpgrade = vm.load( + address(proxied), + IMPLEMENTATION_STORAGE_SLOT + ); + assertEq(afterUpgrade, addressToBytes32(address(mock))); + assertEq( + MockImplementation(payable(address(proxied))) + .testNewImplementationActive(), + true, + "New implementation not active" + ); + + // Overwrite EVM Chain ID + MockImplementation(payable(address(proxied))).testOverwriteEVMChainId( + fakeChainId, + fakeEvmChainId + ); + assertEq( + proxied.chainId(), + fakeChainId, + "Overwrite didn't work for chain ID" + ); + assertEq( + proxied.evmChainId(), + fakeEvmChainId, + "Overwrite didn't work for evm chain ID" + ); + + // recover chain ID + data = abi.encodePacked( + core, + actionRecoverChainId, + testEvmChainId, + testChainId + ); + vaa = signAndEncodeVM( + timestamp, + nonce, + governanceChainId, + governanceContract, + 0, + data, + uint256Array(testGuardian), + 0, + 2 + ); + + proxied.submitRecoverChainId(vaa); + + assertEq( + proxied.chainId(), + testChainId, + "Recover didn't work for chain ID" + ); + assertEq( + proxied.evmChainId(), + testEvmChainId, + "Recover didn't work for evm chain ID" + ); + + // Perform a successful upgrade + mock = new MockImplementation(); + + data = abi.encodePacked( + core, + actionContractUpgrade, + testChainId, + addressToBytes32(address(mock)) + ); + vaa = signAndEncodeVM( + timestamp, + nonce, + governanceChainId, + governanceContract, + 0, + data, + uint256Array(testGuardian), + 0, + 2 + ); + + before = vm.load(address(proxied), IMPLEMENTATION_STORAGE_SLOT); + + proxied.submitContractUpgrade(vaa); + + afterUpgrade = vm.load(address(proxied), IMPLEMENTATION_STORAGE_SLOT); + assertEq(afterUpgrade, addressToBytes32(address(mock))); + assertEq( + MockImplementation(payable(address(proxied))) + .testNewImplementationActive(), + true, + "New implementation not active" + ); } } diff --git a/ethereum/forge-test/NFT.t.sol b/ethereum/forge-test/NFT.t.sol new file mode 100644 index 0000000000..92461bd92b --- /dev/null +++ b/ethereum/forge-test/NFT.t.sol @@ -0,0 +1,975 @@ +// SPDX-License-Identifier: Apache 2 + +pragma solidity ^0.8.0; + +import "../contracts/nft/NFTBridge.sol"; +import "../contracts/nft/NFTBridgeSetup.sol"; +import "../contracts/nft/NFTBridgeImplementation.sol"; +import "../contracts/nft/NFTBridgeEntrypoint.sol"; +import "../contracts/interfaces/IWormhole.sol"; +import "../contracts/nft/interfaces/INFTBridge.sol"; + +import "../contracts/nft/interfaces/INFTBridge.sol"; +import "../contracts/nft/token/NFTImplementation.sol"; +import "../contracts/nft/mock/MockNFTImplementation.sol"; +import "../contracts/nft/mock/MockNFTBridgeImplementation.sol"; +import "forge-std/Test.sol"; +import "./Implementation.t.sol"; +import "../contracts/bridge/mock/MockWETH9.sol"; + +contract TestNFTBridge is Test { + NFTBridgeSetup bridgeSetup; + NFTBridgeImplementation bridgeImpl; + NFTImplementation tokenImpl; + INFTBridge bridge; + IWormhole wormhole; + + TestImplementation implementationTest; + + uint16 testChainId; + uint256 testEvmChainId; + uint16 governanceChainId; + bytes32 governanceContract; + uint8 constant finality = 15; + + // "NFTBridge" (left padded) + bytes32 constant NFTBridgeModule = + 0x00000000000000000000000000000000000000000000004e4654427269646765; + uint8 actionRegisterChain = 1; + uint8 actionContractUpgrade = 2; + uint8 actionRecoverChainId = 3; + + uint16 fakeChainId = 1337; + uint256 fakeEvmChainId = 10001; + + uint16 testForeignChainId = 1; + bytes32 testForeignBridgeContract = + 0x000000000000000000000000000000000000000000000000000000000000ffff; + uint16 testBridgedAssetChain = 3; + bytes32 testBridgedAssetAddress = + 0x000000000000000000000000b7a2211e8165943192ad04f5dd21bedc29ff003e; + + uint256 public constant testGuardian = + 93941733246223705020089879371323733820373732307041878556247502674739205313440; + + function setUp() public { + // Setup wormhole + implementationTest = new TestImplementation(); + implementationTest.setUp(); + + // Get wormhole from implementation tests + wormhole = IWormhole(address(implementationTest.proxied())); + + // Deploy setup + bridgeSetup = new NFTBridgeSetup(); + // Deploy implementation contract + bridgeImpl = new NFTBridgeImplementation(); + // Deploy token implementation + tokenImpl = new NFTImplementation(); + + testChainId = implementationTest.testChainId(); + testEvmChainId = implementationTest.testEvmChainId(); + vm.chainId(testEvmChainId); + governanceChainId = implementationTest.governanceChainId(); + governanceContract = implementationTest.governanceContract(); + + bytes memory setupAbi = abi.encodeWithSelector( + NFTBridgeSetup.setup.selector, + address(bridgeImpl), + testChainId, + address(wormhole), + governanceChainId, + governanceContract, + address(tokenImpl), + finality, + testEvmChainId + ); + + // Deploy proxy + bridge = INFTBridge( + address(new NFTBridgeEntrypoint(address(bridgeSetup), setupAbi)) + ); + } + + function testShouldBeInitializedWithTheCorrectSignersAndValues() public { + assertEq(bridge.tokenImplementation(), address(tokenImpl)); + // test beacon functionality + assertEq(bridge.implementation(), address(tokenImpl)); + assertEq(bridge.chainId(), testChainId); + assertEq(bridge.evmChainId(), testEvmChainId); + assertEq(bridge.finality(), finality); + + // governance + uint16 readGovernanceChainId = bridge.governanceChainId(); + bytes32 readGovernanceContract = bridge.governanceContract(); + assertEq( + readGovernanceChainId, + governanceChainId, + "Wrong governance chain ID" + ); + assertEq( + readGovernanceContract, + governanceContract, + "Wrong governance contract" + ); + } + + function testShouldRegisterAForeignBridgeImplementationCorrectly() public { + bytes memory data = abi.encodePacked( + NFTBridgeModule, + actionRegisterChain, + uint16(0), + testForeignChainId, + testForeignBridgeContract + ); + bytes memory vaa = signAndEncodeVM( + 1, + 1, + governanceChainId, + governanceContract, + 0, + data, + uint256Array(testGuardian), + 0, + 0 + ); + + assertEq( + bridge.bridgeContracts(testForeignChainId), + bytes32( + 0x0000000000000000000000000000000000000000000000000000000000000000 + ) + ); + bridge.registerChain(vaa); + assertEq( + bridge.bridgeContracts(testForeignChainId), + testForeignBridgeContract + ); + } + + function testShouldAcceptAValidUpgrade() public { + MockNFTBridgeImplementation mock = new MockNFTBridgeImplementation(); + bytes memory data = abi.encodePacked( + NFTBridgeModule, + actionContractUpgrade, + testChainId, + addressToBytes32(address(mock)) + ); + bytes memory vaa = signAndEncodeVM( + 1, + 1, + governanceChainId, + governanceContract, + 0, + data, + uint256Array(testGuardian), + 0, + 0 + ); + + bytes32 IMPLEMENTATION_STORAGE_SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc; + assertEq( + vm.load(address(bridge), IMPLEMENTATION_STORAGE_SLOT), + addressToBytes32(address(bridgeImpl)) + ); + bridge.upgrade(vaa); + assertEq( + vm.load(address(bridge), IMPLEMENTATION_STORAGE_SLOT), + addressToBytes32(address(mock)) + ); + + assertTrue( + MockNFTBridgeImplementation(address(bridge)) + .testNewImplementationActive(), + "implementation not active" + ); + } + + function testBridgedTokensShouldOnlyBeMintAndBurnableByOwner() public { + address owner = address(this); + address notOwner = address(0x1); + tokenImpl.initialize("TestToken", "TT", owner, 0, 0x0); + tokenImpl.mint(owner, 10, ""); + + vm.expectRevert("caller is not the owner"); + vm.prank(address(notOwner)); + tokenImpl.mint(owner, 11, ""); + + vm.expectRevert("caller is not the owner"); + vm.prank(address(notOwner)); + tokenImpl.burn(10); + + tokenImpl.burn(10); + } + + event LogMessagePublished( + address indexed sender, + uint64 sequence, + uint32 nonce, + bytes payload, + uint8 consistencyLevel + ); + + function testShouldDepositAndLogTransfersCorrectly() public { + testShouldRegisterAForeignBridgeImplementationCorrectly(); + testBridgedTokensShouldOnlyBeMintAndBurnableByOwner(); + + uint256 tokenId = 1000000000000000000; + + tokenImpl.mint(address(this), tokenId, "abcd"); + tokenImpl.approve(address(bridge), tokenId); + + address ownerBefore = tokenImpl.ownerOf(tokenId); + assertEq(ownerBefore, address(this)); + + uint16 toChain = testForeignChainId; + bytes32 toAddress = testForeignBridgeContract; + + bytes memory transferPayload = abi.encodePacked( + uint8(1), + addressToBytes32(address(tokenImpl)), + testChainId, + bytes32("TT"), + bytes32("TestToken"), + tokenId, + uint8(4), + hex"61626364", + toAddress, + toChain + ); + vm.expectEmit(); + emit LogMessagePublished( + address(bridge), + uint64(0), + uint32(234), + transferPayload, + uint8(finality) + ); + bridge.transferNFT( + address(tokenImpl), + tokenId, + toChain, + toAddress, + 234 + ); + + address ownerAfter = tokenImpl.ownerOf(tokenId); + assertEq(ownerAfter, address(bridge)); + } + + function testShouldTransferOutLockedAssetsForAValidTransferVM() public { + testShouldDepositAndLogTransfersCorrectly(); + + uint256 tokenId = 1000000000000000000; + + uint16 toChain = testChainId; + bytes32 toAddress = addressToBytes32(address(this)); + + address ownerBefore = tokenImpl.ownerOf(tokenId); + assertEq(ownerBefore, address(bridge)); + + bytes memory transferPayload = abi.encodePacked( + uint8(1), + addressToBytes32(address(tokenImpl)), + testChainId, + bytes32(0x0), + bytes32(0x0), + tokenId, + uint8(0), + hex"", + toAddress, + toChain + ); + + bytes memory vaa = signAndEncodeVM( + 0, + 0, + testForeignChainId, + testForeignBridgeContract, + 294, // sequence + transferPayload, + uint256Array(testGuardian), + 0, + 0 + ); + + bridge.completeTransfer(vaa); + + address ownerAfter = tokenImpl.ownerOf(tokenId); + assertEq(ownerAfter, address(this)); + } + + function testShouldMintBridgedAssetWrappersOnTransferFromAnotherChainAndHandleFeesCorrectly() + public + { + testShouldTransferOutLockedAssetsForAValidTransferVM(); + + uint256 tokenId = 1000000000000000001; + + bytes memory transferPayload = abi.encodePacked( + uint8(1), + testBridgedAssetAddress, + testBridgedAssetChain, + // symbol + bytes32( + 0x464f520000000000000000000000000000000000000000000000000000000000 + ), + // name + bytes32( + 0x466f726569676e20436861696e204e4654000000000000000000000000000000 + ), + tokenId, + // no URL + uint8(0), + hex"", + addressToBytes32(address(this)), + testChainId + ); + + bytes memory vaa = signAndEncodeVM( + 0, + 0, + testForeignChainId, + testForeignBridgeContract, + 0, + transferPayload, + uint256Array(testGuardian), + 0, + 0 + ); + + address sender = address(0x1); + vm.prank(sender); + bridge.completeTransfer(vaa); + + address wrappedAddress = bridge.wrappedAsset( + testBridgedAssetChain, + testBridgedAssetAddress + ); + NFTImplementation wrapped = NFTImplementation(wrappedAddress); + + assertTrue( + bridge.isWrappedAsset(address(wrapped)), + "not wrapped asset" + ); + + address ownerAfter = wrapped.ownerOf(tokenId); + assertEq(ownerAfter, address(this)); + + assertEq(wrapped.symbol(), "FOR"); + assertEq(wrapped.name(), "Foreign Chain NFT"); + assertEq(wrapped.chainId(), testBridgedAssetChain); + assertEq(wrapped.nativeContract(), testBridgedAssetAddress); + + tokenId = 1000000000000000002; + transferPayload = abi.encodePacked( + uint8(1), + testBridgedAssetAddress, + testBridgedAssetChain, + // symbol + bytes32( + 0x464f520000000000000000000000000000000000000000000000000000000000 + ), + // name + bytes32( + 0x466f726569676e20436861696e204e4654000000000000000000000000000000 + ), + tokenId, + // no URL + uint8(0), + hex"", + addressToBytes32(address(this)), + testChainId + ); + + vaa = signAndEncodeVM( + 0, + 0, + testForeignChainId, + testForeignBridgeContract, + 0, + transferPayload, + uint256Array(testGuardian), + 0, + 0 + ); + + sender = address(0x1); + vm.prank(sender); + bridge.completeTransfer(vaa); + + ownerAfter = wrapped.ownerOf(tokenId); + assertEq(ownerAfter, address(this)); + } + + function testShouldMintBridgedAssetsFromSolanaUnderUnifiedNameCachingTheOriginal() + public + { + testShouldTransferOutLockedAssetsForAValidTransferVM(); + + uint256 tokenId = 1000000000000000001; + + bytes memory transferPayload = abi.encodePacked( + uint8(1), + testBridgedAssetAddress, + uint16(1), // solana + // symbol + bytes32( + 0x464f520000000000000000000000000000000000000000000000000000000000 + ), + // name + bytes32( + 0x466f726569676e20436861696e204e4654000000000000000000000000000000 + ), + tokenId, + // no URL + uint8(0), + hex"", + addressToBytes32(address(this)), + testChainId + ); + + bytes memory vaa = signAndEncodeVM( + 0, + 0, + testForeignChainId, + testForeignBridgeContract, + 0, + transferPayload, + uint256Array(testGuardian), + 0, + 0 + ); + + address sender = address(0x1); + vm.prank(sender); + bridge.completeTransfer(vaa); + + address wrappedAddress = bridge.wrappedAsset( + 1, + testBridgedAssetAddress + ); + NFTImplementation wrapped = NFTImplementation(wrappedAddress); + + INFTBridge.SPLCache memory cache = bridge.splCache(tokenId); + assertEq( + cache.symbol, + bytes32( + 0x464f520000000000000000000000000000000000000000000000000000000000 + ) + ); + assertEq( + cache.name, + bytes32( + 0x466f726569676e20436861696e204e4654000000000000000000000000000000 + ) + ); + + address ownerAfter = wrapped.ownerOf(tokenId); + assertEq(ownerAfter, address(this)); + + assertEq(wrapped.symbol(), "WORMSPLNFT"); + assertEq(wrapped.name(), "Wormhole Bridged Solana-NFT"); + assertEq(wrapped.chainId(), 1); + assertEq(wrapped.nativeContract(), testBridgedAssetAddress); + } + + function testCachedSPLNamesAreLoadedWhenTransferringOutCacheIsCleared() + public + { + testShouldMintBridgedAssetsFromSolanaUnderUnifiedNameCachingTheOriginal(); + address wrappedAddress = bridge.wrappedAsset( + 1, + testBridgedAssetAddress + ); + NFTImplementation wrapped = NFTImplementation(wrappedAddress); + + uint256 tokenId = 1000000000000000001; + + bytes memory transferPayload = abi.encodePacked( + uint8(1), + testBridgedAssetAddress, + uint16(1), + bytes32( + 0x464f520000000000000000000000000000000000000000000000000000000000 + ), + bytes32( + 0x466f726569676e20436861696e204e4654000000000000000000000000000000 + ), + tokenId, + uint8(0), + hex"", + testBridgedAssetAddress, // to address + testBridgedAssetChain // to chain + ); + + wrapped.approve(address(bridge), tokenId); + + vm.expectEmit(); + emit LogMessagePublished( + address(bridge), + uint64(1), + uint32(2345), + transferPayload, + uint8(finality) + ); + bridge.transferNFT( + wrappedAddress, + tokenId, + testBridgedAssetChain, // to chain + testBridgedAssetAddress, // to address + 2345 + ); + + INFTBridge.SPLCache memory cache = bridge.splCache(tokenId); + assertEq( + cache.symbol, + bytes32( + 0x0000000000000000000000000000000000000000000000000000000000000000 + ) + ); + assertEq( + cache.name, + bytes32( + 0x0000000000000000000000000000000000000000000000000000000000000000 + ) + ); + } + + function testShouldFailDepositUnapprovedNFTs() public { + testShouldRegisterAForeignBridgeImplementationCorrectly(); + testBridgedTokensShouldOnlyBeMintAndBurnableByOwner(); + + uint256 tokenId = 1000000000000000000; + + tokenImpl.mint(address(this), tokenId, "abcd"); + // tokenImpl.approve(address(bridge), tokenId); + + address ownerBefore = tokenImpl.ownerOf(tokenId); + assertEq(ownerBefore, address(this)); + + uint16 toChain = testForeignChainId; + bytes32 toAddress = testForeignBridgeContract; + + vm.expectRevert("ERC721: transfer caller is not owner nor approved"); + bridge.transferNFT( + address(tokenImpl), + tokenId, + toChain, + toAddress, + 234 + ); + } + + function testShouldRefuseToBurnWrappersNotHeldByMsgSender() public { + testShouldMintBridgedAssetWrappersOnTransferFromAnotherChainAndHandleFeesCorrectly(); + address wrappedAddress = bridge.wrappedAsset( + testBridgedAssetChain, + testBridgedAssetAddress + ); + NFTImplementation wrapped = NFTImplementation(wrappedAddress); + + uint256 tokenId = 1000000000000000001; + + wrapped.approve(address(bridge), tokenId); + + vm.expectRevert("ERC721: transfer of token that is not own"); + vm.prank(address(0x1)); + bridge.transferNFT( + wrappedAddress, + tokenId, + testBridgedAssetChain, // to chain + testBridgedAssetAddress, // to address + 2345 + ); + } + + function testShouldDepositAndBurnApprovedBridgedAssetWrapperOnTransferToAnotherChain() + public + { + testShouldMintBridgedAssetWrappersOnTransferFromAnotherChainAndHandleFeesCorrectly(); + address wrappedAddress = bridge.wrappedAsset( + testBridgedAssetChain, + testBridgedAssetAddress + ); + NFTImplementation wrapped = NFTImplementation(wrappedAddress); + + uint256 tokenId = 1000000000000000001; + + wrapped.approve(address(bridge), tokenId); + + bridge.transferNFT( + wrappedAddress, + tokenId, + testBridgedAssetChain, // to chain + testBridgedAssetAddress, // to address + 2345 + ); + + vm.expectRevert("ERC721: owner query for nonexistent token"); + wrapped.ownerOf(tokenId); + } + + function addressToBytes32(address input) internal pure returns (bytes32 output) { + return bytes32(uint256(uint160(input))); + } + + function uint256Array( + uint256 member + ) internal pure returns (uint256[] memory arr) { + arr = new uint256[](1); + arr[0] = member; + } + + function signAndEncodeVM( + uint32 timestamp, + uint32 nonce, + uint16 emitterChainId, + bytes32 emitterAddress, + uint64 sequence, + bytes memory data, + uint256[] memory signers, + uint32 guardianSetIndex, + uint8 consistencyLevel + ) public pure returns (bytes memory signedMessage) { + bytes memory body = abi.encodePacked( + timestamp, + nonce, + emitterChainId, + emitterAddress, + sequence, + consistencyLevel, + data + ); + bytes32 bodyHash = keccak256(abi.encodePacked(keccak256(body))); + + // Sign the hash with the devnet guardian private key + IWormhole.Signature[] memory sigs = new IWormhole.Signature[]( + signers.length + ); + for (uint256 i = 0; i < signers.length; i++) { + (sigs[i].v, sigs[i].r, sigs[i].s) = vm.sign(signers[i], bodyHash); + sigs[i].guardianIndex = 0; + } + + signedMessage = abi.encodePacked( + uint8(1), + guardianSetIndex, + uint8(sigs.length) + ); + + for (uint256 i = 0; i < signers.length; i++) { + signedMessage = abi.encodePacked( + signedMessage, + sigs[i].guardianIndex, + sigs[i].r, + sigs[i].s, + sigs[i].v - 27 + ); + } + + signedMessage = abi.encodePacked(signedMessage, body); + } + + function testShouldRejectSmartContractUpgradesOnForks() public { + uint32 timestamp = 1000; + uint32 nonce = 1001; + + // Perform a successful upgrade + MockNFTBridgeImplementation mock = new MockNFTBridgeImplementation(); + + bytes memory data = abi.encodePacked( + NFTBridgeModule, + actionContractUpgrade, + testChainId, + addressToBytes32(address(mock)) + ); + bytes memory vaa = signAndEncodeVM( + timestamp, + nonce, + governanceChainId, + governanceContract, + 0, + data, + uint256Array(testGuardian), + 0, + 2 + ); + + bytes32 IMPLEMENTATION_STORAGE_SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc; + + bridge.upgrade(vaa); + + bytes32 afterUpgrade = vm.load( + address(bridge), + IMPLEMENTATION_STORAGE_SLOT + ); + assertEq(afterUpgrade, addressToBytes32(address(mock))); + assertEq( + MockNFTBridgeImplementation(payable(address(bridge))) + .testNewImplementationActive(), + true, + "New implementation not active" + ); + + // Overwrite EVM Chain ID + MockNFTBridgeImplementation(payable(address(bridge))) + .testOverwriteEVMChainId(fakeChainId, fakeEvmChainId); + assertEq( + bridge.chainId(), + fakeChainId, + "Overwrite didn't work for chain ID" + ); + assertEq( + bridge.evmChainId(), + fakeEvmChainId, + "Overwrite didn't work for evm chain ID" + ); + + data = abi.encodePacked( + NFTBridgeModule, + actionContractUpgrade, + testChainId, + addressToBytes32(address(mock)) + ); + vaa = signAndEncodeVM( + timestamp, + nonce, + governanceChainId, + governanceContract, + 0, + data, + uint256Array(testGuardian), + 0, + 2 + ); + + vm.expectRevert("invalid fork"); + bridge.upgrade(vaa); + } + + function testShouldAllowRecoverChainIDGovernancePacketsForks() public { + uint32 timestamp = 1000; + uint32 nonce = 1001; + + // Perform a successful upgrade + MockNFTBridgeImplementation mock = new MockNFTBridgeImplementation(); + + bytes memory data = abi.encodePacked( + NFTBridgeModule, + actionContractUpgrade, + testChainId, + addressToBytes32(address(mock)) + ); + bytes memory vaa = signAndEncodeVM( + timestamp, + nonce, + governanceChainId, + governanceContract, + 0, + data, + uint256Array(testGuardian), + 0, + 2 + ); + + bytes32 IMPLEMENTATION_STORAGE_SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc; + + bridge.upgrade(vaa); + + bytes32 afterUpgrade = vm.load( + address(bridge), + IMPLEMENTATION_STORAGE_SLOT + ); + assertEq(afterUpgrade, bytes32(uint256(uint160(address(mock))))); + assertEq( + MockNFTBridgeImplementation(payable(address(bridge))) + .testNewImplementationActive(), + true, + "New implementation not active" + ); + + // Overwrite EVM Chain ID + MockNFTBridgeImplementation(payable(address(bridge))) + .testOverwriteEVMChainId(fakeChainId, fakeEvmChainId); + assertEq( + bridge.chainId(), + fakeChainId, + "Overwrite didn't work for chain ID" + ); + assertEq( + bridge.evmChainId(), + fakeEvmChainId, + "Overwrite didn't work for evm chain ID" + ); + + // recover chain ID + data = abi.encodePacked( + NFTBridgeModule, + actionRecoverChainId, + testEvmChainId, + testChainId + ); + vaa = signAndEncodeVM( + timestamp, + nonce, + governanceChainId, + governanceContract, + 0, + data, + uint256Array(testGuardian), + 0, + 2 + ); + + bridge.submitRecoverChainId(vaa); + + assertEq( + bridge.chainId(), + testChainId, + "Recover didn't work for chain ID" + ); + assertEq( + bridge.evmChainId(), + testEvmChainId, + "Recover didn't work for evm chain ID" + ); + } + + function testShouldAcceptSmartContractUpgradesAfterChainIdHasBeenRecovered() + public + { + uint32 timestamp = 1000; + uint32 nonce = 1001; + + // Perform a successful upgrade + MockNFTBridgeImplementation mock = new MockNFTBridgeImplementation(); + + bytes memory data = abi.encodePacked( + NFTBridgeModule, + actionContractUpgrade, + testChainId, + addressToBytes32(address(mock)) + ); + bytes memory vaa = signAndEncodeVM( + timestamp, + nonce, + governanceChainId, + governanceContract, + 0, + data, + uint256Array(testGuardian), + 0, + 2 + ); + + bytes32 IMPLEMENTATION_STORAGE_SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc; + bytes32 before = vm.load(address(bridge), IMPLEMENTATION_STORAGE_SLOT); + + bridge.upgrade(vaa); + + bytes32 afterUpgrade = vm.load( + address(bridge), + IMPLEMENTATION_STORAGE_SLOT + ); + assertEq(afterUpgrade, bytes32(uint256(uint160(address(mock))))); + assertEq( + MockNFTBridgeImplementation(payable(address(bridge))) + .testNewImplementationActive(), + true, + "New implementation not active" + ); + + // Overwrite EVM Chain ID + MockNFTBridgeImplementation(payable(address(bridge))) + .testOverwriteEVMChainId(fakeChainId, fakeEvmChainId); + assertEq( + bridge.chainId(), + fakeChainId, + "Overwrite didn't work for chain ID" + ); + assertEq( + bridge.evmChainId(), + fakeEvmChainId, + "Overwrite didn't work for evm chain ID" + ); + + // recover chain ID + data = abi.encodePacked( + NFTBridgeModule, + actionRecoverChainId, + testEvmChainId, + testChainId + ); + vaa = signAndEncodeVM( + timestamp, + nonce, + governanceChainId, + governanceContract, + 0, + data, + uint256Array(testGuardian), + 0, + 2 + ); + + bridge.submitRecoverChainId(vaa); + + assertEq( + bridge.chainId(), + testChainId, + "Recover didn't work for chain ID" + ); + assertEq( + bridge.evmChainId(), + testEvmChainId, + "Recover didn't work for evm chain ID" + ); + + // Perform a successful upgrade + mock = new MockNFTBridgeImplementation(); + + data = abi.encodePacked( + NFTBridgeModule, + actionContractUpgrade, + testChainId, + addressToBytes32(address(mock)) + ); + vaa = signAndEncodeVM( + timestamp, + nonce, + governanceChainId, + governanceContract, + 0, + data, + uint256Array(testGuardian), + 0, + 2 + ); + + before = vm.load(address(bridge), IMPLEMENTATION_STORAGE_SLOT); + + bridge.upgrade(vaa); + + afterUpgrade = vm.load(address(bridge), IMPLEMENTATION_STORAGE_SLOT); + assertEq(afterUpgrade, bytes32(uint256(uint160(address(mock))))); + assertEq( + MockNFTBridgeImplementation(payable(address(bridge))) + .testNewImplementationActive(), + true, + "New implementation not active" + ); + } + + function onERC721Received( + address, + address, + uint256, + bytes calldata + ) external pure returns (bytes4) { + return 0x150b7a02; + } + + fallback() external payable {} + receive() external payable {} +} diff --git a/ethereum/forge-test/TokenMigrator.t.sol b/ethereum/forge-test/TokenMigrator.t.sol new file mode 100644 index 0000000000..d309906402 --- /dev/null +++ b/ethereum/forge-test/TokenMigrator.t.sol @@ -0,0 +1,91 @@ +// test/Messages.sol +// SPDX-License-Identifier: Apache 2 + +pragma solidity ^0.8.0; + +import "../contracts/bridge/token/TokenImplementation.sol"; +import "../contracts/Setters.sol"; +import "../contracts/bridge/utils/Migrator.sol"; +import "forge-std/Test.sol"; + +contract TestTokenMigrator is Test { + TokenImplementation fromToken; + TokenImplementation toToken; + uint8 fromDecimals = 8; + uint8 toDecimals = 18; + Migrator migrator; + + function setUp() public { + fromToken = new TokenImplementation(); + fromToken.initialize( + "TestFrom", + "FROM", + fromDecimals, + 0, + address(this), + 0, + bytes32(0x0) + ); + + toToken = new TokenImplementation(); + toToken.initialize( + "TestTo", + "TO", + toDecimals, + 0, + address(this), + 0, + bytes32(0x0) + ); + migrator = new Migrator(address(fromToken), address(toToken)); + + assertEq(address(migrator.fromAsset()), address(fromToken)); + assertEq(address(migrator.toAsset()), address(toToken)); + assertEq(migrator.fromDecimals(), fromDecimals); + assertEq(migrator.toDecimals(), toDecimals); + } + + function testShouldGiveOutLPTokens1to1ForAToTokenDeposit() public { + uint256 amount = 1000000000000000000; + toToken.mint(address(this), amount); + toToken.approve(address(migrator), amount); + migrator.add(amount); + assertEq(migrator.balanceOf(address(this)), amount); + assertEq(toToken.balanceOf(address(migrator)), amount); + } + + function testShouldRefundToTokenForLPTokens() public { + testShouldGiveOutLPTokens1to1ForAToTokenDeposit(); + uint256 amount = 500000000000000000; + migrator.remove(amount); + assertEq(migrator.balanceOf(address(this)), amount); + assertEq(toToken.balanceOf(address(migrator)), amount); + assertEq(toToken.balanceOf(address(this)), amount); + } + + function testShouldRedeemFromTokenToToTokenAdjustingForDecimals() public { + testShouldRefundToTokenForLPTokens(); + address newAddr = address(0x1); + fromToken.mint(newAddr, 50000000); + vm.prank(newAddr); + fromToken.approve(address(migrator), 50000000); + vm.prank(newAddr); + migrator.migrate(50000000); + + assertEq(toToken.balanceOf(newAddr), 500000000000000000); + assertEq(toToken.balanceOf(address(migrator)), 0); + assertEq(fromToken.balanceOf(newAddr), 0); + assertEq(fromToken.balanceOf(address(migrator)), 50000000); + } + + function testFromTokenShouldBeClaimableForLPTokensAdjustingForDecimals() + public + { + testShouldRedeemFromTokenToToTokenAdjustingForDecimals(); + migrator.claim(500000000000000000); + + assertEq(fromToken.balanceOf(address(this)), 50000000); + assertEq(fromToken.balanceOf(address(migrator)), 0); + assertEq(migrator.balanceOf(address(this)), 0); + } +} diff --git a/ethereum/migrations/10_deploy_batched_vaa_sender.js b/ethereum/migrations/10_deploy_batched_vaa_sender.js deleted file mode 100644 index 91188be9e8..0000000000 --- a/ethereum/migrations/10_deploy_batched_vaa_sender.js +++ /dev/null @@ -1,15 +0,0 @@ -require('dotenv').config({ path: "../.env" }); - -const Wormhole = artifacts.require("Wormhole"); -const MockBatchedVAASender = artifacts.require("MockBatchedVAASender"); - -module.exports = async function (deployer, network, accounts) { - - await deployer.deploy(MockBatchedVAASender) - - const contract = new web3.eth.Contract(MockBatchedVAASender.abi, MockBatchedVAASender.address); - - await contract.methods.setup( - Wormhole.address - ).send({from: accounts[0]}) -}; diff --git a/ethereum/migrations/1_initial_migration.js b/ethereum/migrations/1_initial_migration.js deleted file mode 100644 index c8e518d833..0000000000 --- a/ethereum/migrations/1_initial_migration.js +++ /dev/null @@ -1,6 +0,0 @@ -var Migrations = artifacts.require("Migrations"); - -module.exports = function(deployer) { - // Deploy the Migrations contract as our only task - deployer.deploy(Migrations); -}; \ No newline at end of file diff --git a/ethereum/migrations/2_deploy_wormhole.js b/ethereum/migrations/2_deploy_wormhole.js deleted file mode 100644 index ed46c5ba28..0000000000 --- a/ethereum/migrations/2_deploy_wormhole.js +++ /dev/null @@ -1,34 +0,0 @@ -require('dotenv').config({ path: "../.env" }); - -const Setup = artifacts.require("Setup"); -const Implementation = artifacts.require("Implementation"); -const Wormhole = artifacts.require("Wormhole"); - -// CONFIG -const initialSigners = JSON.parse(process.env.INIT_SIGNERS); -const chainId = process.env.INIT_CHAIN_ID; -const governanceChainId = process.env.INIT_GOV_CHAIN_ID; -const governanceContract = process.env.INIT_GOV_CONTRACT; // bytes32 -const evmChainId = process.env.INIT_EVM_CHAIN_ID; - -module.exports = async function (deployer) { - // deploy setup - await deployer.deploy(Setup); - - // deploy implementation - await deployer.deploy(Implementation); - - // encode initialisation data - const setup = new web3.eth.Contract(Setup.abi, Setup.address); - const initData = setup.methods.setup( - Implementation.address, - initialSigners, - chainId, - governanceChainId, - governanceContract, - evmChainId - ).encodeABI(); - - // deploy proxy - await deployer.deploy(Wormhole, Setup.address, initData); -}; diff --git a/ethereum/migrations/3_deploy_bridge.js b/ethereum/migrations/3_deploy_bridge.js deleted file mode 100644 index 4fa289a717..0000000000 --- a/ethereum/migrations/3_deploy_bridge.js +++ /dev/null @@ -1,42 +0,0 @@ -require('dotenv').config({ path: "../.env" }); - -const TokenBridge = artifacts.require("TokenBridge"); -const BridgeImplementation = artifacts.require("BridgeImplementation"); -const BridgeSetup = artifacts.require("BridgeSetup"); -const TokenImplementation = artifacts.require("TokenImplementation"); -const Wormhole = artifacts.require("Wormhole"); - -const chainId = process.env.BRIDGE_INIT_CHAIN_ID; -const governanceChainId = process.env.BRIDGE_INIT_GOV_CHAIN_ID; -const governanceContract = process.env.BRIDGE_INIT_GOV_CONTRACT; // bytes32 -const WETH = process.env.BRIDGE_INIT_WETH; -const finality = process.env.BRIDGE_INIT_FINALITY; -const evmChainId = process.env.INIT_EVM_CHAIN_ID; - -module.exports = async function (deployer) { - // deploy token implementation - await deployer.deploy(TokenImplementation); - - // deploy setup - await deployer.deploy(BridgeSetup); - - // deploy implementation - await deployer.deploy(BridgeImplementation); - - // encode initialisation data - const setup = new web3.eth.Contract(BridgeSetup.abi, BridgeSetup.address); - const initData = setup.methods.setup( - BridgeImplementation.address, - chainId, - (await Wormhole.deployed()).address, - governanceChainId, - governanceContract, - TokenImplementation.address, - WETH, - finality, - evmChainId - ).encodeABI(); - - // deploy proxy - await deployer.deploy(TokenBridge, BridgeSetup.address, initData); -}; diff --git a/ethereum/migrations/4_deploy_nft_bridge.js b/ethereum/migrations/4_deploy_nft_bridge.js deleted file mode 100644 index 49fd4c3b20..0000000000 --- a/ethereum/migrations/4_deploy_nft_bridge.js +++ /dev/null @@ -1,40 +0,0 @@ -require('dotenv').config({ path: "../.env" }); - -const TokenBridge = artifacts.require("NFTBridgeEntrypoint"); -const BridgeImplementation = artifacts.require("NFTBridgeImplementation"); -const BridgeSetup = artifacts.require("NFTBridgeSetup"); -const TokenImplementation = artifacts.require("NFTImplementation"); -const Wormhole = artifacts.require("Wormhole"); - -const chainId = process.env.BRIDGE_INIT_CHAIN_ID; -const governanceChainId = process.env.BRIDGE_INIT_GOV_CHAIN_ID; -const governanceContract = process.env.BRIDGE_INIT_GOV_CONTRACT; // bytes32 -const finality = process.env.BRIDGE_INIT_FINALITY; -const evmChainId = process.env.INIT_EVM_CHAIN_ID; - -module.exports = async function (deployer) { - // deploy token implementation - await deployer.deploy(TokenImplementation); - - // deploy setup - await deployer.deploy(BridgeSetup); - - // deploy implementation - await deployer.deploy(BridgeImplementation); - - // encode initialisation data - const setup = new web3.eth.Contract(BridgeSetup.abi, BridgeSetup.address); - const initData = setup.methods.setup( - BridgeImplementation.address, - chainId, - (await Wormhole.deployed()).address, - governanceChainId, - governanceContract, - TokenImplementation.address, - finality, - evmChainId - ).encodeABI(); - - // deploy proxy - await deployer.deploy(TokenBridge, BridgeSetup.address, initData); -}; diff --git a/ethereum/migrations/6_deploy_bridge_implementation_only.js b/ethereum/migrations/6_deploy_bridge_implementation_only.js deleted file mode 100644 index 877d531480..0000000000 --- a/ethereum/migrations/6_deploy_bridge_implementation_only.js +++ /dev/null @@ -1,13 +0,0 @@ -// run with: -// npm run deploy-bridge-implementation-only -// e.g. Ethereum Mainnet -// INFURA_KEY="" MNEMONIC="" npm run deploy-bridge-implementation-only -- --network mainnet -// e.g. BSC -// MNEMONIC="" npm run deploy-bridge-implementation-only -- --network binance -// e.g. Polygon -// MNEMONIC="" npm run deploy-bridge-implementation-only -- --network polygon -const BridgeImplementation = artifacts.require("BridgeImplementation"); -module.exports = async function(deployer, network) { - if (network === "test") return; - await deployer.deploy(BridgeImplementation); -}; diff --git a/ethereum/migrations/7_deploy_token_implementation_only.js b/ethereum/migrations/7_deploy_token_implementation_only.js deleted file mode 100644 index 2139559b4d..0000000000 --- a/ethereum/migrations/7_deploy_token_implementation_only.js +++ /dev/null @@ -1,13 +0,0 @@ -// run with: -// npm run deploy-token-implementation-only -// e.g. Ethereum Mainnet -// INFURA_KEY="" MNEMONIC="" npm run deploy-token-implementation-only -- --network mainnet -// e.g. BSC -// MNEMONIC="" npm run deploy-token-implementation-only -- --network binance -// e.g. Polygon -// MNEMONIC="" npm run deploy-token-implementation-only -- --network polygon -const TokenImplementation = artifacts.require("TokenImplementation"); -module.exports = async function(deployer, network) { - if (network === "test") return; - await deployer.deploy(TokenImplementation); -}; diff --git a/ethereum/migrations/9_deploy_weth9.js b/ethereum/migrations/9_deploy_weth9.js deleted file mode 100644 index b57ff06c56..0000000000 --- a/ethereum/migrations/9_deploy_weth9.js +++ /dev/null @@ -1,5 +0,0 @@ -var WETH9 = artifacts.require("MockWETH9"); - -module.exports = function(deployer) { - deployer.deploy(WETH9); -}; diff --git a/ethereum/package-lock.json b/ethereum/package-lock.json index 10edaff37c..559e7a2945 100644 --- a/ethereum/package-lock.json +++ b/ethereum/package-lock.json @@ -7,1097 +7,806 @@ "": { "name": "@wormhole-foundation/contracts-ethereum", "version": "0.0.1", - "license": "ISC", + "license": "Apache-2.0", "dependencies": { "@typechain/ethers-v5": "^10.2.0", - "dotenv": "^10.0.0", - "elliptic": "^6.5.2", - "jsonfile": "^4.0.0", - "truffle-hdwallet-provider-klaytn": "^1.4.2", "typechain": "^8.1.1" }, "devDependencies": { - "@chainsafe/truffle-plugin-abigen": "0.0.1", - "@openzeppelin/cli": "^2.8.2", - "@openzeppelin/contracts": "^4.3.1", - "@truffle/hdwallet-provider": "^1.7.0", - "chai": "^4.3.7", - "mocha": "^8.4.0", - "truffle": "5.8.4", - "truffle-flattener": "^1.6.0", - "truffle-plugin-verify": "^0.5.11", - "ts-node": "^10.9.1", - "typescript": "^4.9.5" + "@openzeppelin/contracts": "^4.3.1" } }, - "node_modules/@apollo/protobufjs": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/@apollo/protobufjs/-/protobufjs-1.2.7.tgz", - "integrity": "sha512-Lahx5zntHPZia35myYDBRuF58tlwPskwHc5CWBZC/4bMKB6siTBWwtMrkqXcsNwQiFSzSx5hKdRPUmemrEp3Gg==", - "dev": true, - "hasInstallScript": true, - "optional": true, + "node_modules/@ethersproject/abi": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/abi/-/abi-5.7.0.tgz", + "integrity": "sha512-351ktp42TiRcYB3H1OP8yajPeAQstMW/yCFokj/AthP9bLHzQFPlOrxOcwYEDkUAICmOHljvN4K39OMTMUa9RA==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "peer": true, "dependencies": { - "@protobufjs/aspromise": "^1.1.2", - "@protobufjs/base64": "^1.1.2", - "@protobufjs/codegen": "^2.0.4", - "@protobufjs/eventemitter": "^1.1.0", - "@protobufjs/fetch": "^1.1.0", - "@protobufjs/float": "^1.0.2", - "@protobufjs/inquire": "^1.1.0", - "@protobufjs/path": "^1.1.2", - "@protobufjs/pool": "^1.1.0", - "@protobufjs/utf8": "^1.1.0", - "@types/long": "^4.0.0", - "long": "^4.0.0" - }, - "bin": { - "apollo-pbjs": "bin/pbjs", - "apollo-pbts": "bin/pbts" + "@ethersproject/address": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/hash": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/strings": "^5.7.0" } }, - "node_modules/@apollo/usage-reporting-protobuf": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/@apollo/usage-reporting-protobuf/-/usage-reporting-protobuf-4.1.0.tgz", - "integrity": "sha512-hXouMuw5pQVkzi8dgMybmr6Y11+eRmMQVoB5TF0HyTwAg9SOq/v3OCuiYqcVUKdBcskU9Msp+XvjAk0GKpWCwQ==", - "dev": true, - "optional": true, + "node_modules/@ethersproject/abstract-provider": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/abstract-provider/-/abstract-provider-5.7.0.tgz", + "integrity": "sha512-R41c9UkchKCpAqStMYUpdunjo3pkEvZC3FAwZn5S5MGbXoMQOHIdHItezTETxAO5bevtMApSyEhn9+CHcDsWBw==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "peer": true, "dependencies": { - "@apollo/protobufjs": "1.2.7" - } - }, - "node_modules/@apollo/utils.dropunuseddefinitions": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@apollo/utils.dropunuseddefinitions/-/utils.dropunuseddefinitions-1.1.0.tgz", - "integrity": "sha512-jU1XjMr6ec9pPoL+BFWzEPW7VHHulVdGKMkPAMiCigpVIT11VmCbnij0bWob8uS3ODJ65tZLYKAh/55vLw2rbg==", - "dev": true, - "optional": true, - "engines": { - "node": ">=12.13.0" - }, - "peerDependencies": { - "graphql": "14.x || 15.x || 16.x" + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/networks": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/transactions": "^5.7.0", + "@ethersproject/web": "^5.7.0" } }, - "node_modules/@apollo/utils.keyvaluecache": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@apollo/utils.keyvaluecache/-/utils.keyvaluecache-1.0.2.tgz", - "integrity": "sha512-p7PVdLPMnPzmXSQVEsy27cYEjVON+SH/Wb7COyW3rQN8+wJgT1nv9jZouYtztWW8ZgTkii5T6tC9qfoDREd4mg==", - "dev": true, - "optional": true, + "node_modules/@ethersproject/abstract-signer": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/abstract-signer/-/abstract-signer-5.7.0.tgz", + "integrity": "sha512-a16V8bq1/Cz+TGCkE2OPMTOUDLS3grCpdjoJCYNnVBbdYEMSgKrU0+B90s8b6H+ByYTBZN7a3g76jdIJi7UfKQ==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "peer": true, "dependencies": { - "@apollo/utils.logger": "^1.0.0", - "lru-cache": "7.10.1 - 7.13.1" - } - }, - "node_modules/@apollo/utils.keyvaluecache/node_modules/lru-cache": { - "version": "7.13.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.13.1.tgz", - "integrity": "sha512-CHqbAq7NFlW3RSnoWXLJBxCWaZVBrfa9UEHId2M3AW8iEBurbqduNexEUCGc3SHc6iCYXNJCDi903LajSVAEPQ==", - "dev": true, - "optional": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/@apollo/utils.logger": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@apollo/utils.logger/-/utils.logger-1.0.1.tgz", - "integrity": "sha512-XdlzoY7fYNK4OIcvMD2G94RoFZbzTQaNP0jozmqqMudmaGo2I/2Jx71xlDJ801mWA/mbYRihyaw6KJii7k5RVA==", - "dev": true, - "optional": true - }, - "node_modules/@apollo/utils.printwithreducedwhitespace": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@apollo/utils.printwithreducedwhitespace/-/utils.printwithreducedwhitespace-1.1.0.tgz", - "integrity": "sha512-GfFSkAv3n1toDZ4V6u2d7L4xMwLA+lv+6hqXicMN9KELSJ9yy9RzuEXaX73c/Ry+GzRsBy/fdSUGayGqdHfT2Q==", - "dev": true, - "optional": true, - "engines": { - "node": ">=12.13.0" - }, - "peerDependencies": { - "graphql": "14.x || 15.x || 16.x" - } - }, - "node_modules/@apollo/utils.removealiases": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@apollo/utils.removealiases/-/utils.removealiases-1.0.0.tgz", - "integrity": "sha512-6cM8sEOJW2LaGjL/0vHV0GtRaSekrPQR4DiywaApQlL9EdROASZU5PsQibe2MWeZCOhNrPRuHh4wDMwPsWTn8A==", - "dev": true, - "optional": true, - "engines": { - "node": ">=12.13.0" - }, - "peerDependencies": { - "graphql": "14.x || 15.x || 16.x" + "@ethersproject/abstract-provider": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0" } }, - "node_modules/@apollo/utils.sortast": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@apollo/utils.sortast/-/utils.sortast-1.1.0.tgz", - "integrity": "sha512-VPlTsmUnOwzPK5yGZENN069y6uUHgeiSlpEhRnLFYwYNoJHsuJq2vXVwIaSmts015WTPa2fpz1inkLYByeuRQA==", - "dev": true, - "optional": true, + "node_modules/@ethersproject/address": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/address/-/address-5.7.0.tgz", + "integrity": "sha512-9wYhYt7aghVGo758POM5nqcOMaE168Q6aRLJZwUmiqSrAungkG74gSSeKEIR7ukixesdRZGPgVqme6vmxs1fkA==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "peer": true, "dependencies": { - "lodash.sortby": "^4.7.0" - }, - "engines": { - "node": ">=12.13.0" - }, - "peerDependencies": { - "graphql": "14.x || 15.x || 16.x" - } - }, - "node_modules/@apollo/utils.stripsensitiveliterals": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@apollo/utils.stripsensitiveliterals/-/utils.stripsensitiveliterals-1.2.0.tgz", - "integrity": "sha512-E41rDUzkz/cdikM5147d8nfCFVKovXxKBcjvLEQ7bjZm/cg9zEcXvS6vFY8ugTubI3fn6zoqo0CyU8zT+BGP9w==", - "dev": true, - "optional": true, - "engines": { - "node": ">=12.13.0" - }, - "peerDependencies": { - "graphql": "14.x || 15.x || 16.x" + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/rlp": "^5.7.0" } }, - "node_modules/@apollo/utils.usagereporting": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@apollo/utils.usagereporting/-/utils.usagereporting-1.0.1.tgz", - "integrity": "sha512-6dk+0hZlnDbahDBB2mP/PZ5ybrtCJdLMbeNJD+TJpKyZmSY6bA3SjI8Cr2EM9QA+AdziywuWg+SgbWUF3/zQqQ==", - "dev": true, - "optional": true, + "node_modules/@ethersproject/base64": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/base64/-/base64-5.7.0.tgz", + "integrity": "sha512-Dr8tcHt2mEbsZr/mwTPIQAf3Ai0Bks/7gTw9dSqk1mQvhW3XvRlmDJr/4n+wg1JmCl16NZue17CDh8xb/vZ0sQ==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "peer": true, "dependencies": { - "@apollo/usage-reporting-protobuf": "^4.0.0", - "@apollo/utils.dropunuseddefinitions": "^1.1.0", - "@apollo/utils.printwithreducedwhitespace": "^1.1.0", - "@apollo/utils.removealiases": "1.0.0", - "@apollo/utils.sortast": "^1.1.0", - "@apollo/utils.stripsensitiveliterals": "^1.2.0" - }, - "engines": { - "node": ">=12.13.0" - }, - "peerDependencies": { - "graphql": "14.x || 15.x || 16.x" - } - }, - "node_modules/@apollographql/apollo-tools": { - "version": "0.5.4", - "resolved": "https://registry.npmjs.org/@apollographql/apollo-tools/-/apollo-tools-0.5.4.tgz", - "integrity": "sha512-shM3q7rUbNyXVVRkQJQseXv6bnYM3BUma/eZhwXR4xsuM+bqWnJKvW7SAfRjP7LuSCocrexa5AXhjjawNHrIlw==", - "dev": true, - "optional": true, - "engines": { - "node": ">=8", - "npm": ">=6" - }, - "peerDependencies": { - "graphql": "^14.2.1 || ^15.0.0 || ^16.0.0" + "@ethersproject/bytes": "^5.7.0" } }, - "node_modules/@apollographql/graphql-playground-html": { - "version": "1.6.29", - "resolved": "https://registry.npmjs.org/@apollographql/graphql-playground-html/-/graphql-playground-html-1.6.29.tgz", - "integrity": "sha512-xCcXpoz52rI4ksJSdOCxeOCn2DLocxwHf9dVT/Q90Pte1LX+LY+91SFtJF3KXVHH8kEin+g1KKCQPKBjZJfWNA==", - "dev": true, - "optional": true, + "node_modules/@ethersproject/basex": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@ethersproject/basex/-/basex-5.4.0.tgz", + "integrity": "sha512-J07+QCVJ7np2bcpxydFVf/CuYo9mZ7T73Pe7KQY4c1lRlrixMeblauMxHXD0MPwFmUHZIILDNViVkykFBZylbg==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "peer": true, "dependencies": { - "xss": "^1.0.8" + "@ethersproject/bytes": "^5.4.0", + "@ethersproject/properties": "^5.4.0" } }, - "node_modules/@babel/code-frame": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.7.tgz", - "integrity": "sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==", + "node_modules/@ethersproject/bignumber": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/bignumber/-/bignumber-5.7.0.tgz", + "integrity": "sha512-n1CAdIHRWjSucQO3MC1zPSVgV/6dy/fjL9pMrPP9peL+QxEg9wOsVqwD4+818B6LUEtaXzVHQiuivzRoxPxUGw==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "peer": true, "dependencies": { - "@babel/highlight": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "bn.js": "^5.2.1" } }, - "node_modules/@babel/compat-data": { - "version": "7.14.0", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.14.0.tgz", - "integrity": "sha512-vu9V3uMM/1o5Hl5OekMUowo3FqXLJSw+s+66nt0fSWVWTtmosdzn45JHOB3cPtZoe6CTBDzvSw0RdOY85Q37+Q==" + "node_modules/@ethersproject/bignumber/node_modules/bn.js": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", + "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==", + "peer": true }, - "node_modules/@babel/core": { - "version": "7.14.2", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.14.2.tgz", - "integrity": "sha512-OgC1mON+l4U4B4wiohJlQNUU3H73mpTyYY3j/c8U9dr9UagGGSm+WFpzjy/YLdoyjiG++c1kIDgxCo/mLwQJeQ==", + "node_modules/@ethersproject/bytes": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/bytes/-/bytes-5.7.0.tgz", + "integrity": "sha512-nsbxwgFXWh9NyYWo+U8atvmMsSdKJprTcICAkvbBffT75qDocbuggBU0SJiVK2MuTrp0q+xvLkTnGMPK1+uA9A==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], "peer": true, "dependencies": { - "@babel/code-frame": "^7.12.13", - "@babel/generator": "^7.14.2", - "@babel/helper-compilation-targets": "^7.13.16", - "@babel/helper-module-transforms": "^7.14.2", - "@babel/helpers": "^7.14.0", - "@babel/parser": "^7.14.2", - "@babel/template": "^7.12.13", - "@babel/traverse": "^7.14.2", - "@babel/types": "^7.14.2", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.1.2", - "semver": "^6.3.0", - "source-map": "^0.5.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/babel" + "@ethersproject/logger": "^5.7.0" } }, - "node_modules/@babel/core/node_modules/@babel/traverse": { - "version": "7.14.2", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.14.2.tgz", - "integrity": "sha512-TsdRgvBFHMyHOOzcP9S6QU0QQtjxlRpEYOy3mcCO5RgmC305ki42aSAmfZEMSSYBla2oZ9BMqYlncBaKmD/7iA==", + "node_modules/@ethersproject/constants": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/constants/-/constants-5.7.0.tgz", + "integrity": "sha512-DHI+y5dBNvkpYUMiRQyxRBYBefZkJfo70VUkUAsRjcPs47muV9evftfZ0PJVCXYbAiCgght0DtcF9srFQmIgWA==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], "peer": true, "dependencies": { - "@babel/code-frame": "^7.12.13", - "@babel/generator": "^7.14.2", - "@babel/helper-function-name": "^7.14.2", - "@babel/helper-split-export-declaration": "^7.12.13", - "@babel/parser": "^7.14.2", - "@babel/types": "^7.14.2", - "debug": "^4.1.0", - "globals": "^11.1.0" + "@ethersproject/bignumber": "^5.7.0" } }, - "node_modules/@babel/core/node_modules/@babel/types": { - "version": "7.14.2", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.14.2.tgz", - "integrity": "sha512-SdjAG/3DikRHpUOjxZgnkbR11xUlyDMUFJdvnIgZEE16mqmY0BINMmc4//JMJglEmn6i7sq6p+mGrFWyZ98EEw==", + "node_modules/@ethersproject/hash": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/hash/-/hash-5.7.0.tgz", + "integrity": "sha512-qX5WrQfnah1EFnO5zJv1v46a8HW0+E5xuBBDTwMFZLuVTx0tbU2kkx15NqdjxecrLGatQN9FGQKpb1FKdHCt+g==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], "peer": true, "dependencies": { - "@babel/helper-validator-identifier": "^7.14.0", - "to-fast-properties": "^2.0.0" - } - }, - "node_modules/@babel/core/node_modules/debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", - "peer": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } + "@ethersproject/abstract-signer": "^5.7.0", + "@ethersproject/address": "^5.7.0", + "@ethersproject/base64": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/strings": "^5.7.0" } }, - "node_modules/@babel/core/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==", + "node_modules/@ethersproject/keccak256": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/keccak256/-/keccak256-5.7.0.tgz", + "integrity": "sha512-2UcPboeL/iW+pSg6vZ6ydF8tCnv3Iu/8tUmLLzWWGzxWKFFqOBQFLo6uLUv6BDrLgCDfN28RJ/wtByx+jZ4KBg==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], "peer": true, - "engines": { - "node": ">=4" + "dependencies": { + "@ethersproject/bytes": "^5.7.0", + "js-sha3": "0.8.0" } }, - "node_modules/@babel/core/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "node_modules/@ethersproject/keccak256/node_modules/js-sha3": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.8.0.tgz", + "integrity": "sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q==", "peer": true }, - "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==", - "peer": true, - "bin": { - "semver": "bin/semver.js" - } + "node_modules/@ethersproject/logger": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/logger/-/logger-5.7.0.tgz", + "integrity": "sha512-0odtFdXu/XHtjQXJYA3u9G0G8btm0ND5Cu8M7i5vhEcE8/HmF4Lbdqanwyv4uQTr2tx6b7fQRmgLrsnpQlmnig==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "peer": true }, - "node_modules/@babel/core/node_modules/source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "node_modules/@ethersproject/networks": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/@ethersproject/networks/-/networks-5.7.1.tgz", + "integrity": "sha512-n/MufjFYv3yFcUyfhnXotyDlNdFb7onmkSy8aQERi2PjNcnWQ66xXxa3XlS8nCcA8aJKJjIIMNJTC7tu80GwpQ==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], "peer": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@babel/generator": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.16.8.tgz", - "integrity": "sha512-1ojZwE9+lOXzcWdWmO6TbUzDfqLD39CmEhN8+2cX9XkDo5yW1OpgfejfliysR2AWLpMamTiOiAp/mtroaymhpw==", - "dependencies": { - "@babel/types": "^7.16.8", - "jsesc": "^2.5.1", - "source-map": "^0.5.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/generator/node_modules/@babel/types": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.16.8.tgz", - "integrity": "sha512-smN2DQc5s4M7fntyjGtyIPbRJv6wW4rU/94fmYJ7PKQuZkC0qGMHXJbg6sNGt12JmVr4k5YaptI/XtiLJBnmIg==", "dependencies": { - "@babel/helper-validator-identifier": "^7.16.7", - "to-fast-properties": "^2.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/generator/node_modules/source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "engines": { - "node": ">=0.10.0" + "@ethersproject/logger": "^5.7.0" } }, - "node_modules/@babel/helper-compilation-targets": { - "version": "7.13.16", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.13.16.tgz", - "integrity": "sha512-3gmkYIrpqsLlieFwjkGgLaSHmhnvlAYzZLlYVjlW+QwI+1zE17kGxuJGmIqDQdYp56XdmGeD+Bswx0UTyG18xA==", + "node_modules/@ethersproject/properties": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/properties/-/properties-5.7.0.tgz", + "integrity": "sha512-J87jy8suntrAkIZtecpxEPxY//szqr1mlBaYlQ0r4RCaiD2hjheqF9s1LVE8vVuJCXisjIP+JgtK/Do54ej4Sw==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "peer": true, "dependencies": { - "@babel/compat-data": "^7.13.15", - "@babel/helper-validator-option": "^7.12.17", - "browserslist": "^4.14.5", - "semver": "^6.3.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==", - "bin": { - "semver": "bin/semver.js" + "@ethersproject/logger": "^5.7.0" } }, - "node_modules/@babel/helper-define-polyfill-provider": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.0.tgz", - "integrity": "sha512-7hfT8lUljl/tM3h+izTX/pO3W3frz2ok6Pk+gzys8iJqDfZrZy2pXjRTZAvG2YmfHun1X4q8/UZRLatMfqc5Tg==", + "node_modules/@ethersproject/providers": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/@ethersproject/providers/-/providers-5.4.1.tgz", + "integrity": "sha512-p06eiFKz8nu/5Ju0kIX024gzEQIgE5pvvGrBCngpyVjpuLtUIWT3097Agw4mTn9/dEA0FMcfByzFqacBMSgCVg==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "peer": true, "dependencies": { - "@babel/helper-compilation-targets": "^7.13.0", - "@babel/helper-module-imports": "^7.12.13", - "@babel/helper-plugin-utils": "^7.13.0", - "@babel/traverse": "^7.13.0", - "debug": "^4.1.1", - "lodash.debounce": "^4.0.8", - "resolve": "^1.14.2", - "semver": "^6.1.2" - }, - "peerDependencies": { - "@babel/core": "^7.4.0-0" + "@ethersproject/abstract-provider": "^5.4.0", + "@ethersproject/abstract-signer": "^5.4.0", + "@ethersproject/address": "^5.4.0", + "@ethersproject/basex": "^5.4.0", + "@ethersproject/bignumber": "^5.4.0", + "@ethersproject/bytes": "^5.4.0", + "@ethersproject/constants": "^5.4.0", + "@ethersproject/hash": "^5.4.0", + "@ethersproject/logger": "^5.4.0", + "@ethersproject/networks": "^5.4.0", + "@ethersproject/properties": "^5.4.0", + "@ethersproject/random": "^5.4.0", + "@ethersproject/rlp": "^5.4.0", + "@ethersproject/sha2": "^5.4.0", + "@ethersproject/strings": "^5.4.0", + "@ethersproject/transactions": "^5.4.0", + "@ethersproject/web": "^5.4.0", + "bech32": "1.1.4", + "ws": "7.4.6" } }, - "node_modules/@babel/helper-define-polyfill-provider/node_modules/@babel/traverse": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.16.8.tgz", - "integrity": "sha512-xe+H7JlvKsDQwXRsBhSnq1/+9c+LlQcCK3Tn/l5sbx02HYns/cn7ibp9+RV1sIUqu7hKg91NWsgHurO9dowITQ==", - "dependencies": { - "@babel/code-frame": "^7.16.7", - "@babel/generator": "^7.16.8", - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-function-name": "^7.16.7", - "@babel/helper-hoist-variables": "^7.16.7", - "@babel/helper-split-export-declaration": "^7.16.7", - "@babel/parser": "^7.16.8", - "@babel/types": "^7.16.8", - "debug": "^4.1.0", - "globals": "^11.1.0" - }, - "engines": { - "node": ">=6.9.0" - } + "node_modules/@ethersproject/providers/node_modules/bech32": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/bech32/-/bech32-1.1.4.tgz", + "integrity": "sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ==", + "peer": true }, - "node_modules/@babel/helper-define-polyfill-provider/node_modules/@babel/types": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.16.8.tgz", - "integrity": "sha512-smN2DQc5s4M7fntyjGtyIPbRJv6wW4rU/94fmYJ7PKQuZkC0qGMHXJbg6sNGt12JmVr4k5YaptI/XtiLJBnmIg==", - "dependencies": { - "@babel/helper-validator-identifier": "^7.16.7", - "to-fast-properties": "^2.0.0" - }, + "node_modules/@ethersproject/providers/node_modules/ws": { + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz", + "integrity": "sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==", + "peer": true, "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-define-polyfill-provider/node_modules/debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", - "dependencies": { - "ms": "2.1.2" + "node": ">=8.3.0" }, - "engines": { - "node": ">=6.0" + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" }, "peerDependenciesMeta": { - "supports-color": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { "optional": true } } }, - "node_modules/@babel/helper-define-polyfill-provider/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==", - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/helper-define-polyfill-provider/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/@babel/helper-define-polyfill-provider/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "bin": { - "semver": "bin/semver.js" + "node_modules/@ethersproject/random": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@ethersproject/random/-/random-5.4.0.tgz", + "integrity": "sha512-pnpWNQlf0VAZDEOVp1rsYQosmv2o0ITS/PecNw+mS2/btF8eYdspkN0vIXrCMtkX09EAh9bdk8GoXmFXM1eAKw==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "peer": true, + "dependencies": { + "@ethersproject/bytes": "^5.4.0", + "@ethersproject/logger": "^5.4.0" } }, - "node_modules/@babel/helper-environment-visitor": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.16.7.tgz", - "integrity": "sha512-SLLb0AAn6PkUeAfKJCCOl9e1R53pQlGAfc4y4XuMRZfqeMYLE0dM1LMhqbGAlGQY0lfw5/ohoYWAe9V1yibRag==", + "node_modules/@ethersproject/rlp": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/rlp/-/rlp-5.7.0.tgz", + "integrity": "sha512-rBxzX2vK8mVF7b0Tol44t5Tb8gomOHkj5guL+HhzQ1yBh/ydjGnpw6at+X6Iw0Kp3OzzzkcKp8N9r0W4kYSs9w==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "peer": true, "dependencies": { - "@babel/types": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0" } }, - "node_modules/@babel/helper-environment-visitor/node_modules/@babel/types": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.16.8.tgz", - "integrity": "sha512-smN2DQc5s4M7fntyjGtyIPbRJv6wW4rU/94fmYJ7PKQuZkC0qGMHXJbg6sNGt12JmVr4k5YaptI/XtiLJBnmIg==", + "node_modules/@ethersproject/sha2": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@ethersproject/sha2/-/sha2-5.4.0.tgz", + "integrity": "sha512-siheo36r1WD7Cy+bDdE1BJ8y0bDtqXCOxRMzPa4bV1TGt/eTUUt03BHoJNB6reWJD8A30E/pdJ8WFkq+/uz4Gg==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "peer": true, "dependencies": { - "@babel/helper-validator-identifier": "^7.16.7", - "to-fast-properties": "^2.0.0" - }, - "engines": { - "node": ">=6.9.0" + "@ethersproject/bytes": "^5.4.0", + "@ethersproject/logger": "^5.4.0", + "hash.js": "1.1.7" } }, - "node_modules/@babel/helper-function-name": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.16.7.tgz", - "integrity": "sha512-QfDfEnIUyyBSR3HtrtGECuZ6DAyCkYFp7GHl75vFtTnn6pjKeK0T1DB5lLkFvBea8MdaiUABx3osbgLyInoejA==", + "node_modules/@ethersproject/sha2/node_modules/hash.js": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", + "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", + "peer": true, "dependencies": { - "@babel/helper-get-function-arity": "^7.16.7", - "@babel/template": "^7.16.7", - "@babel/types": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.1" } }, - "node_modules/@babel/helper-function-name/node_modules/@babel/types": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.16.8.tgz", - "integrity": "sha512-smN2DQc5s4M7fntyjGtyIPbRJv6wW4rU/94fmYJ7PKQuZkC0qGMHXJbg6sNGt12JmVr4k5YaptI/XtiLJBnmIg==", - "dependencies": { - "@babel/helper-validator-identifier": "^7.16.7", - "to-fast-properties": "^2.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-get-function-arity": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.16.7.tgz", - "integrity": "sha512-flc+RLSOBXzNzVhcLu6ujeHUrD6tANAOU5ojrRx/as+tbzf8+stUCj7+IfRRoAbEZqj/ahXEMsjhOhgeZsrnTw==", - "dependencies": { - "@babel/types": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-get-function-arity/node_modules/@babel/types": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.16.8.tgz", - "integrity": "sha512-smN2DQc5s4M7fntyjGtyIPbRJv6wW4rU/94fmYJ7PKQuZkC0qGMHXJbg6sNGt12JmVr4k5YaptI/XtiLJBnmIg==", - "dependencies": { - "@babel/helper-validator-identifier": "^7.16.7", - "to-fast-properties": "^2.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-hoist-variables": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.7.tgz", - "integrity": "sha512-m04d/0Op34H5v7pbZw6pSKP7weA6lsMvfiIAMeIvkY/R4xQtBSMFEigu9QTZ2qB/9l22vsxtM8a+Q8CzD255fg==", - "dependencies": { - "@babel/types": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-hoist-variables/node_modules/@babel/types": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.16.8.tgz", - "integrity": "sha512-smN2DQc5s4M7fntyjGtyIPbRJv6wW4rU/94fmYJ7PKQuZkC0qGMHXJbg6sNGt12JmVr4k5YaptI/XtiLJBnmIg==", - "dependencies": { - "@babel/helper-validator-identifier": "^7.16.7", - "to-fast-properties": "^2.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-member-expression-to-functions": { - "version": "7.13.12", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.13.12.tgz", - "integrity": "sha512-48ql1CLL59aKbU94Y88Xgb2VFy7a95ykGRbJJaaVv+LX5U8wFpLfiGXJJGUozsmA1oEh/o5Bp60Voq7ACyA/Sw==", - "peer": true, - "dependencies": { - "@babel/types": "^7.13.12" - } - }, - "node_modules/@babel/helper-member-expression-to-functions/node_modules/@babel/types": { - "version": "7.14.2", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.14.2.tgz", - "integrity": "sha512-SdjAG/3DikRHpUOjxZgnkbR11xUlyDMUFJdvnIgZEE16mqmY0BINMmc4//JMJglEmn6i7sq6p+mGrFWyZ98EEw==", + "node_modules/@ethersproject/signing-key": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/signing-key/-/signing-key-5.7.0.tgz", + "integrity": "sha512-MZdy2nL3wO0u7gkB4nA/pEf8lu1TlFswPNmy8AiYkfKTdO6eXBJyUdmHO/ehm/htHw9K/qF8ujnTyUAD+Ry54Q==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], "peer": true, "dependencies": { - "@babel/helper-validator-identifier": "^7.14.0", - "to-fast-properties": "^2.0.0" + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "bn.js": "^5.2.1", + "elliptic": "6.5.4", + "hash.js": "1.1.7" } }, - "node_modules/@babel/helper-module-imports": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.16.7.tgz", - "integrity": "sha512-LVtS6TqjJHFc+nYeITRo6VLXve70xmq7wPhWTqDJusJEgGmkAACWwMiTNrvfoQo6hEhFwAIixNkvB0jPXDL8Wg==", - "dependencies": { - "@babel/types": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - } + "node_modules/@ethersproject/signing-key/node_modules/bn.js": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", + "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==", + "peer": true }, - "node_modules/@babel/helper-module-imports/node_modules/@babel/types": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.16.8.tgz", - "integrity": "sha512-smN2DQc5s4M7fntyjGtyIPbRJv6wW4rU/94fmYJ7PKQuZkC0qGMHXJbg6sNGt12JmVr4k5YaptI/XtiLJBnmIg==", + "node_modules/@ethersproject/signing-key/node_modules/hash.js": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", + "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", + "peer": true, "dependencies": { - "@babel/helper-validator-identifier": "^7.16.7", - "to-fast-properties": "^2.0.0" - }, - "engines": { - "node": ">=6.9.0" + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.1" } }, - "node_modules/@babel/helper-module-transforms": { - "version": "7.14.2", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.14.2.tgz", - "integrity": "sha512-OznJUda/soKXv0XhpvzGWDnml4Qnwp16GN+D/kZIdLsWoHj05kyu8Rm5kXmMef+rVJZ0+4pSGLkeixdqNUATDA==", + "node_modules/@ethersproject/strings": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/strings/-/strings-5.7.0.tgz", + "integrity": "sha512-/9nu+lj0YswRNSH0NXYqrh8775XNyEdUQAuf3f+SmOrnVewcJ5SBNAjF7lpgehKi4abvNNXyf+HX86czCdJ8Mg==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], "peer": true, "dependencies": { - "@babel/helper-module-imports": "^7.13.12", - "@babel/helper-replace-supers": "^7.13.12", - "@babel/helper-simple-access": "^7.13.12", - "@babel/helper-split-export-declaration": "^7.12.13", - "@babel/helper-validator-identifier": "^7.14.0", - "@babel/template": "^7.12.13", - "@babel/traverse": "^7.14.2", - "@babel/types": "^7.14.2" + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/logger": "^5.7.0" } }, - "node_modules/@babel/helper-module-transforms/node_modules/@babel/traverse": { - "version": "7.14.2", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.14.2.tgz", - "integrity": "sha512-TsdRgvBFHMyHOOzcP9S6QU0QQtjxlRpEYOy3mcCO5RgmC305ki42aSAmfZEMSSYBla2oZ9BMqYlncBaKmD/7iA==", + "node_modules/@ethersproject/transactions": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/transactions/-/transactions-5.7.0.tgz", + "integrity": "sha512-kmcNicCp1lp8qanMTC3RIikGgoJ80ztTyvtsFvCYpSCfkjhD0jZ2LOrnbcuxuToLIUYYf+4XwD1rP+B/erDIhQ==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], "peer": true, "dependencies": { - "@babel/code-frame": "^7.12.13", - "@babel/generator": "^7.14.2", - "@babel/helper-function-name": "^7.14.2", - "@babel/helper-split-export-declaration": "^7.12.13", - "@babel/parser": "^7.14.2", - "@babel/types": "^7.14.2", - "debug": "^4.1.0", - "globals": "^11.1.0" + "@ethersproject/address": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/rlp": "^5.7.0", + "@ethersproject/signing-key": "^5.7.0" } }, - "node_modules/@babel/helper-module-transforms/node_modules/@babel/types": { - "version": "7.14.2", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.14.2.tgz", - "integrity": "sha512-SdjAG/3DikRHpUOjxZgnkbR11xUlyDMUFJdvnIgZEE16mqmY0BINMmc4//JMJglEmn6i7sq6p+mGrFWyZ98EEw==", + "node_modules/@ethersproject/web": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/@ethersproject/web/-/web-5.7.1.tgz", + "integrity": "sha512-Gueu8lSvyjBWL4cYsWsjh6MtMwM0+H4HvqFPZfB6dV8ctbP9zFAO73VG1cMWae0FLPCtz0peKPpZY8/ugJJX2w==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], "peer": true, "dependencies": { - "@babel/helper-validator-identifier": "^7.14.0", - "to-fast-properties": "^2.0.0" + "@ethersproject/base64": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/strings": "^5.7.0" } }, - "node_modules/@babel/helper-module-transforms/node_modules/debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", - "peer": true, + "node_modules/@morgan-stanley/ts-mocking-bird": { + "version": "0.6.4", + "resolved": "https://registry.npmjs.org/@morgan-stanley/ts-mocking-bird/-/ts-mocking-bird-0.6.4.tgz", + "integrity": "sha512-57VJIflP8eR2xXa9cD1LUawh+Gh+BVQfVu0n6GALyg/AqV/Nz25kDRvws3i9kIe1PTrbsZZOYpsYp6bXPd6nVA==", "dependencies": { - "ms": "2.1.2" + "lodash": "^4.17.16", + "uuid": "^7.0.3" }, - "engines": { - "node": ">=6.0" + "peerDependencies": { + "jasmine": "2.x || 3.x || 4.x", + "jest": "26.x || 27.x || 28.x", + "typescript": ">=4.2" }, "peerDependenciesMeta": { - "supports-color": { + "jasmine": { + "optional": true + }, + "jest": { "optional": true } } }, - "node_modules/@babel/helper-module-transforms/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==", - "peer": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/helper-module-transforms/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "peer": true - }, - "node_modules/@babel/helper-optimise-call-expression": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.12.13.tgz", - "integrity": "sha512-BdWQhoVJkp6nVjB7nkFWcn43dkprYauqtk++Py2eaf/GRDFm5BxRqEIZCiHlZUGAVmtwKcsVL1dC68WmzeFmiA==", - "peer": true, - "dependencies": { - "@babel/types": "^7.12.13" + "node_modules/@morgan-stanley/ts-mocking-bird/node_modules/uuid": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-7.0.3.tgz", + "integrity": "sha512-DPSke0pXhTZgoF/d+WSt2QaKMCFSfx7QegxEWT+JOuHF5aWrKEn0G+ztjuJg/gG8/ItK+rbPCD/yNv8yyih6Cg==", + "bin": { + "uuid": "dist/bin/uuid" } }, - "node_modules/@babel/helper-plugin-utils": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz", - "integrity": "sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA==", - "engines": { - "node": ">=6.9.0" - } + "node_modules/@openzeppelin/contracts": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/@openzeppelin/contracts/-/contracts-4.3.1.tgz", + "integrity": "sha512-QjgbPPlmDK2clK1hzjw2ROfY8KA5q+PfhDUUxZFEBCZP9fi6d5FuNoh/Uq0oCTMEKPmue69vhX2jcl0N/tFKGw==", + "dev": true }, - "node_modules/@babel/helper-replace-supers": { - "version": "7.13.12", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.13.12.tgz", - "integrity": "sha512-Gz1eiX+4yDO8mT+heB94aLVNCL+rbuT2xy4YfyNqu8F+OI6vMvJK891qGBTqL9Uc8wxEvRW92Id6G7sDen3fFw==", - "peer": true, + "node_modules/@typechain/ethers-v5": { + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/@typechain/ethers-v5/-/ethers-v5-10.2.0.tgz", + "integrity": "sha512-ikaq0N/w9fABM+G01OFmU3U3dNnyRwEahkdvi9mqy1a3XwKiPZaF/lu54OcNaEWnpvEYyhhS0N7buCtLQqC92w==", "dependencies": { - "@babel/helper-member-expression-to-functions": "^7.13.12", - "@babel/helper-optimise-call-expression": "^7.12.13", - "@babel/traverse": "^7.13.0", - "@babel/types": "^7.13.12" + "lodash": "^4.17.15", + "ts-essentials": "^7.0.1" + }, + "peerDependencies": { + "@ethersproject/abi": "^5.0.0", + "@ethersproject/bytes": "^5.0.0", + "@ethersproject/providers": "^5.0.0", + "ethers": "^5.1.3", + "typechain": "^8.1.1", + "typescript": ">=4.3.0" } }, - "node_modules/@babel/helper-replace-supers/node_modules/@babel/traverse": { - "version": "7.14.2", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.14.2.tgz", - "integrity": "sha512-TsdRgvBFHMyHOOzcP9S6QU0QQtjxlRpEYOy3mcCO5RgmC305ki42aSAmfZEMSSYBla2oZ9BMqYlncBaKmD/7iA==", - "peer": true, - "dependencies": { - "@babel/code-frame": "^7.12.13", - "@babel/generator": "^7.14.2", - "@babel/helper-function-name": "^7.14.2", - "@babel/helper-split-export-declaration": "^7.12.13", - "@babel/parser": "^7.14.2", - "@babel/types": "^7.14.2", - "debug": "^4.1.0", - "globals": "^11.1.0" + "node_modules/@typechain/ethers-v5/node_modules/ts-essentials": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/ts-essentials/-/ts-essentials-7.0.3.tgz", + "integrity": "sha512-8+gr5+lqO3G84KdiTSMRLtuyJ+nTBVRKuCrK4lidMPdVeEp0uqC875uE5NMcaA7YYMN7XsNiFQuMvasF8HT/xQ==", + "peerDependencies": { + "typescript": ">=3.7.0" } }, - "node_modules/@babel/helper-replace-supers/node_modules/@babel/types": { - "version": "7.14.2", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.14.2.tgz", - "integrity": "sha512-SdjAG/3DikRHpUOjxZgnkbR11xUlyDMUFJdvnIgZEE16mqmY0BINMmc4//JMJglEmn6i7sq6p+mGrFWyZ98EEw==", - "peer": true, - "dependencies": { - "@babel/helper-validator-identifier": "^7.14.0", - "to-fast-properties": "^2.0.0" - } + "node_modules/aes-js": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/aes-js/-/aes-js-3.0.0.tgz", + "integrity": "sha1-4h3xCtbCBTKVvLuNq0Cwnb6ofk0=", + "peer": true }, - "node_modules/@babel/helper-replace-supers/node_modules/debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", - "peer": true, + "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": { - "ms": "2.1.2" + "color-convert": "^1.9.0" }, "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } + "node": ">=4" } }, - "node_modules/@babel/helper-replace-supers/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==", - "peer": true, + "node_modules/array-back": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-3.1.0.tgz", + "integrity": "sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q==", "engines": { - "node": ">=4" + "node": ">=6" } }, - "node_modules/@babel/helper-replace-supers/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "node_modules/balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" + }, + "node_modules/bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", "peer": true }, - "node_modules/@babel/helper-simple-access": { - "version": "7.13.12", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.13.12.tgz", - "integrity": "sha512-7FEjbrx5SL9cWvXioDbnlYTppcZGuCY6ow3/D5vMggb2Ywgu4dMrpTJX0JdQAIcRRUElOIxF3yEooa9gUb9ZbA==", - "peer": true, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dependencies": { - "@babel/types": "^7.13.12" + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" } }, - "node_modules/@babel/helper-simple-access/node_modules/@babel/types": { - "version": "7.14.2", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.14.2.tgz", - "integrity": "sha512-SdjAG/3DikRHpUOjxZgnkbR11xUlyDMUFJdvnIgZEE16mqmY0BINMmc4//JMJglEmn6i7sq6p+mGrFWyZ98EEw==", - "peer": true, - "dependencies": { - "@babel/helper-validator-identifier": "^7.14.0", - "to-fast-properties": "^2.0.0" - } + "node_modules/brorand": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", + "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=", + "peer": true }, - "node_modules/@babel/helper-split-export-declaration": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.7.tgz", - "integrity": "sha512-xbWoy/PFoxSWazIToT9Sif+jJTlrMcndIsaOKvTA6u7QEo7ilkRZpjew18/W3c7nm8fXdUDXh02VXTbZ0pGDNw==", + "node_modules/bufferutil": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/bufferutil/-/bufferutil-4.0.7.tgz", + "integrity": "sha512-kukuqc39WOHtdxtw4UScxF/WVnMFVSQVKhtx3AjZJzhd0RGZZldcrfSEbVsWWe6KNH253574cq5F+wpv0G9pJw==", + "hasInstallScript": true, + "optional": true, + "peer": true, "dependencies": { - "@babel/types": "^7.16.7" + "node-gyp-build": "^4.3.0" }, "engines": { - "node": ">=6.9.0" + "node": ">=6.14.2" } }, - "node_modules/@babel/helper-split-export-declaration/node_modules/@babel/types": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.16.8.tgz", - "integrity": "sha512-smN2DQc5s4M7fntyjGtyIPbRJv6wW4rU/94fmYJ7PKQuZkC0qGMHXJbg6sNGt12JmVr4k5YaptI/XtiLJBnmIg==", - "dependencies": { - "@babel/helper-validator-identifier": "^7.16.7", - "to-fast-properties": "^2.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-identifier": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz", - "integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-option": { - "version": "7.12.17", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.12.17.tgz", - "integrity": "sha512-TopkMDmLzq8ngChwRlyjR6raKD6gMSae4JdYDB8bByKreQgG0RBTuKe9LRxW3wFtUnjxOPRKBDwEH6Mg5KeDfw==" - }, - "node_modules/@babel/helpers": { - "version": "7.14.0", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.14.0.tgz", - "integrity": "sha512-+ufuXprtQ1D1iZTO/K9+EBRn+qPWMJjZSw/S0KlFrxCw4tkrzv9grgpDHkY9MeQTjTY8i2sp7Jep8DfU6tN9Mg==", - "peer": true, - "dependencies": { - "@babel/template": "^7.12.13", - "@babel/traverse": "^7.14.0", - "@babel/types": "^7.14.0" - } - }, - "node_modules/@babel/helpers/node_modules/@babel/traverse": { - "version": "7.14.2", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.14.2.tgz", - "integrity": "sha512-TsdRgvBFHMyHOOzcP9S6QU0QQtjxlRpEYOy3mcCO5RgmC305ki42aSAmfZEMSSYBla2oZ9BMqYlncBaKmD/7iA==", - "peer": true, - "dependencies": { - "@babel/code-frame": "^7.12.13", - "@babel/generator": "^7.14.2", - "@babel/helper-function-name": "^7.14.2", - "@babel/helper-split-export-declaration": "^7.12.13", - "@babel/parser": "^7.14.2", - "@babel/types": "^7.14.2", - "debug": "^4.1.0", - "globals": "^11.1.0" - } - }, - "node_modules/@babel/helpers/node_modules/@babel/types": { - "version": "7.14.2", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.14.2.tgz", - "integrity": "sha512-SdjAG/3DikRHpUOjxZgnkbR11xUlyDMUFJdvnIgZEE16mqmY0BINMmc4//JMJglEmn6i7sq6p+mGrFWyZ98EEw==", - "peer": true, - "dependencies": { - "@babel/helper-validator-identifier": "^7.14.0", - "to-fast-properties": "^2.0.0" - } - }, - "node_modules/@babel/helpers/node_modules/debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", - "peer": true, + "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==", "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/@babel/helpers/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==", - "peer": true, "engines": { "node": ">=4" } }, - "node_modules/@babel/helpers/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "peer": true - }, - "node_modules/@babel/highlight": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.16.7.tgz", - "integrity": "sha512-aKpPMfLvGO3Q97V0qhw/V2SWNWlwfJknuwAunU7wZLSfrM4xTBvg7E5opUVi1kJTBKihE38CPg4nBiqX83PWYw==", + "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": { - "@babel/helper-validator-identifier": "^7.16.7", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - }, - "engines": { - "node": ">=6.9.0" + "color-name": "1.1.3" } }, - "node_modules/@babel/parser": { - "version": "7.17.10", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.17.10.tgz", - "integrity": "sha512-n2Q6i+fnJqzOaq2VkdXxy2TCPCWQZHiCo0XqmrCvDWcZQKRyZzYi4Z0yxlBuN0w+r2ZHmre+Q087DSrw3pbJDQ==", - "bin": { - "parser": "bin/babel-parser.js" - }, - "engines": { - "node": ">=6.0.0" - } + "node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" }, - "node_modules/@babel/plugin-transform-runtime": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.16.8.tgz", - "integrity": "sha512-6Kg2XHPFnIarNweZxmzbgYnnWsXxkx9WQUVk2sksBRL80lBC1RAQV3wQagWxdCHiYHqPN+oenwNIuttlYgIbQQ==", + "node_modules/command-line-args": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/command-line-args/-/command-line-args-5.2.1.tgz", + "integrity": "sha512-H4UfQhZyakIjC74I9d34fGYDwk3XpSr17QhEd0Q3I9Xq1CETHo4Hcuo87WyWHpAF1aSLjLRf5lD9ZGX2qStUvg==", "dependencies": { - "@babel/helper-module-imports": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "babel-plugin-polyfill-corejs2": "^0.3.0", - "babel-plugin-polyfill-corejs3": "^0.5.0", - "babel-plugin-polyfill-regenerator": "^0.3.0", - "semver": "^6.3.0" + "array-back": "^3.1.0", + "find-replace": "^3.0.0", + "lodash.camelcase": "^4.3.0", + "typical": "^4.0.0" }, "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-runtime/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "bin": { - "semver": "bin/semver.js" + "node": ">=4.0.0" } }, - "node_modules/@babel/runtime": { - "version": "7.20.13", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.20.13.tgz", - "integrity": "sha512-gt3PKXs0DBoL9xCvOIIZ2NEqAGZqHjAnmVbfQtB620V0uReIQutpel14KcneZuer7UioY8ALKZ7iocavvzTNFA==", + "node_modules/command-line-usage": { + "version": "6.1.3", + "resolved": "https://registry.npmjs.org/command-line-usage/-/command-line-usage-6.1.3.tgz", + "integrity": "sha512-sH5ZSPr+7UStsloltmDh7Ce5fb8XPlHyoPzTpyyMuYCtervL65+ubVZ6Q61cFtFl62UyJlc8/JwERRbAFPUqgw==", "dependencies": { - "regenerator-runtime": "^0.13.11" + "array-back": "^4.0.2", + "chalk": "^2.4.2", + "table-layout": "^1.0.2", + "typical": "^5.2.0" }, "engines": { - "node": ">=6.9.0" + "node": ">=8.0.0" } }, - "node_modules/@babel/template": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.16.7.tgz", - "integrity": "sha512-I8j/x8kHUrbYRTUxXrrMbfCa7jxkE7tZre39x3kjr9hvI82cK1FfqLygotcWN5kdPGWcLdWMHpSBavse5tWw3w==", - "dependencies": { - "@babel/code-frame": "^7.16.7", - "@babel/parser": "^7.16.7", - "@babel/types": "^7.16.7" - }, + "node_modules/command-line-usage/node_modules/array-back": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-4.0.2.tgz", + "integrity": "sha512-NbdMezxqf94cnNfWLL7V/im0Ub+Anbb0IoZhvzie8+4HJ4nMQuzHuy49FkGYCJK2yAloZ3meiB6AVMClbrI1vg==", "engines": { - "node": ">=6.9.0" + "node": ">=8" } }, - "node_modules/@babel/template/node_modules/@babel/types": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.16.8.tgz", - "integrity": "sha512-smN2DQc5s4M7fntyjGtyIPbRJv6wW4rU/94fmYJ7PKQuZkC0qGMHXJbg6sNGt12JmVr4k5YaptI/XtiLJBnmIg==", - "dependencies": { - "@babel/helper-validator-identifier": "^7.16.7", - "to-fast-properties": "^2.0.0" - }, + "node_modules/command-line-usage/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": ">=6.9.0" - } - }, - "node_modules/@babel/types": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.13.tgz", - "integrity": "sha512-oKrdZTld2im1z8bDwTOQvUbxKwE+854zc16qWZQlcTqMN00pWxHQ4ZeOq0yDMnisOpRykH2/5Qqcrk/OlbAjiQ==", - "peer": true, - "dependencies": { - "@babel/helper-validator-identifier": "^7.12.11", - "lodash": "^4.17.19", - "to-fast-properties": "^2.0.0" + "node": ">=8" } }, - "node_modules/@chainsafe/truffle-plugin-abigen": { + "node_modules/concat-map": { "version": "0.0.1", - "resolved": "https://registry.npmjs.org/@chainsafe/truffle-plugin-abigen/-/truffle-plugin-abigen-0.0.1.tgz", - "integrity": "sha512-/8wPXE2HCEdngSQCXJdjMtzpPVjjG9RGR+GwOZf4ve0o2LpOc2gPzxYvd67g6IOkI6pJwfAHoFb3L+qtc9G5pQ==", - "dev": true, - "dependencies": { - "cli-logger": "^0.5.40", - "eslint": "^6.8.0" - } - }, - "node_modules/@cspotcode/source-map-support": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", - "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", - "dev": true, - "dependencies": { - "@jridgewell/trace-mapping": "0.3.9" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/@ethereumjs/common": { - "version": "2.6.5", - "resolved": "https://registry.npmjs.org/@ethereumjs/common/-/common-2.6.5.tgz", - "integrity": "sha512-lRyVQOeCDaIVtgfbowla32pzeDv2Obr8oR8Put5RdUBNRGr1VGPGQNGP6elWIpgK3YdpzqTOh4GyUGOureVeeA==", - "dev": true, - "dependencies": { - "crc-32": "^1.2.0", - "ethereumjs-util": "^7.1.5" - } - }, - "node_modules/@ethereumjs/common/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==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@ethereumjs/common/node_modules/bn.js": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", - "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==", - "dev": true + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" }, - "node_modules/@ethereumjs/common/node_modules/ethereumjs-util": { - "version": "7.1.5", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.5.tgz", - "integrity": "sha512-SDl5kKrQAudFBUe5OJM9Ac6WmMyYmXX/6sTmLZ3ffG2eY6ZIGBes3pEDxNN6V72WyOw4CPD5RomKdsa8DAAwLg==", - "dev": true, - "dependencies": { - "@types/bn.js": "^5.1.0", - "bn.js": "^5.1.2", - "create-hash": "^1.1.2", - "ethereum-cryptography": "^0.1.3", - "rlp": "^2.2.4" - }, + "node_modules/deep-extend": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/@ethereumjs/tx": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/@ethereumjs/tx/-/tx-3.5.2.tgz", - "integrity": "sha512-gQDNJWKrSDGu2w7w0PzVXVBNMzb7wwdDOmOqczmhNjqFxFuIbhVJDwiGEnxFNC2/b8ifcZzY7MLcluizohRzNw==", - "dev": true, - "dependencies": { - "@ethereumjs/common": "^2.6.4", - "ethereumjs-util": "^7.1.5" + "node": ">=4.0.0" } }, - "node_modules/@ethereumjs/tx/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==", - "dev": true, + "node_modules/elliptic": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", + "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", + "peer": true, "dependencies": { - "@types/node": "*" + "bn.js": "^4.11.9", + "brorand": "^1.1.0", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.1", + "inherits": "^2.0.4", + "minimalistic-assert": "^1.0.1", + "minimalistic-crypto-utils": "^1.0.1" } }, - "node_modules/@ethereumjs/tx/node_modules/bn.js": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", - "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==", - "dev": true - }, - "node_modules/@ethereumjs/tx/node_modules/ethereumjs-util": { - "version": "7.1.5", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.5.tgz", - "integrity": "sha512-SDl5kKrQAudFBUe5OJM9Ac6WmMyYmXX/6sTmLZ3ffG2eY6ZIGBes3pEDxNN6V72WyOw4CPD5RomKdsa8DAAwLg==", - "dev": true, - "dependencies": { - "@types/bn.js": "^5.1.0", - "bn.js": "^5.1.2", - "create-hash": "^1.1.2", - "ethereum-cryptography": "^0.1.3", - "rlp": "^2.2.4" - }, + "node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", "engines": { - "node": ">=10.0.0" + "node": ">=0.8.0" } }, - "node_modules/@ethersproject/abi": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/abi/-/abi-5.7.0.tgz", - "integrity": "sha512-351ktp42TiRcYB3H1OP8yajPeAQstMW/yCFokj/AthP9bLHzQFPlOrxOcwYEDkUAICmOHljvN4K39OMTMUa9RA==", + "node_modules/ethers": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/ethers/-/ethers-5.7.2.tgz", + "integrity": "sha512-wswUsmWo1aOK8rR7DIKiWSw9DbLWe6x98Jrn8wcTflTVvaXhAMaB5zGAXy0GYQEQp9iO1iSHWVyARQm11zUtyg==", "funding": [ { "type": "individual", @@ -1108,22 +817,44 @@ "url": "https://www.buymeacoffee.com/ricmoo" } ], + "peer": true, "dependencies": { - "@ethersproject/address": "^5.7.0", - "@ethersproject/bignumber": "^5.7.0", - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/constants": "^5.7.0", - "@ethersproject/hash": "^5.7.0", - "@ethersproject/keccak256": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/properties": "^5.7.0", - "@ethersproject/strings": "^5.7.0" + "@ethersproject/abi": "5.7.0", + "@ethersproject/abstract-provider": "5.7.0", + "@ethersproject/abstract-signer": "5.7.0", + "@ethersproject/address": "5.7.0", + "@ethersproject/base64": "5.7.0", + "@ethersproject/basex": "5.7.0", + "@ethersproject/bignumber": "5.7.0", + "@ethersproject/bytes": "5.7.0", + "@ethersproject/constants": "5.7.0", + "@ethersproject/contracts": "5.7.0", + "@ethersproject/hash": "5.7.0", + "@ethersproject/hdnode": "5.7.0", + "@ethersproject/json-wallets": "5.7.0", + "@ethersproject/keccak256": "5.7.0", + "@ethersproject/logger": "5.7.0", + "@ethersproject/networks": "5.7.1", + "@ethersproject/pbkdf2": "5.7.0", + "@ethersproject/properties": "5.7.0", + "@ethersproject/providers": "5.7.2", + "@ethersproject/random": "5.7.0", + "@ethersproject/rlp": "5.7.0", + "@ethersproject/sha2": "5.7.0", + "@ethersproject/signing-key": "5.7.0", + "@ethersproject/solidity": "5.7.0", + "@ethersproject/strings": "5.7.0", + "@ethersproject/transactions": "5.7.0", + "@ethersproject/units": "5.7.0", + "@ethersproject/wallet": "5.7.0", + "@ethersproject/web": "5.7.1", + "@ethersproject/wordlists": "5.7.0" } }, - "node_modules/@ethersproject/abstract-provider": { + "node_modules/ethers/node_modules/@ethersproject/basex": { "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/abstract-provider/-/abstract-provider-5.7.0.tgz", - "integrity": "sha512-R41c9UkchKCpAqStMYUpdunjo3pkEvZC3FAwZn5S5MGbXoMQOHIdHItezTETxAO5bevtMApSyEhn9+CHcDsWBw==", + "resolved": "https://registry.npmjs.org/@ethersproject/basex/-/basex-5.7.0.tgz", + "integrity": "sha512-ywlh43GwZLv2Voc2gQVTKBoVQ1mti3d8HK5aMxsfu/nRDnMmNqaSJ3r3n85HBByT8OpoY96SXM1FogC533T4zw==", "funding": [ { "type": "individual", @@ -1134,20 +865,16 @@ "url": "https://www.buymeacoffee.com/ricmoo" } ], + "peer": true, "dependencies": { - "@ethersproject/bignumber": "^5.7.0", "@ethersproject/bytes": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/networks": "^5.7.0", - "@ethersproject/properties": "^5.7.0", - "@ethersproject/transactions": "^5.7.0", - "@ethersproject/web": "^5.7.0" + "@ethersproject/properties": "^5.7.0" } }, - "node_modules/@ethersproject/abstract-signer": { + "node_modules/ethers/node_modules/@ethersproject/contracts": { "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/abstract-signer/-/abstract-signer-5.7.0.tgz", - "integrity": "sha512-a16V8bq1/Cz+TGCkE2OPMTOUDLS3grCpdjoJCYNnVBbdYEMSgKrU0+B90s8b6H+ByYTBZN7a3g76jdIJi7UfKQ==", + "resolved": "https://registry.npmjs.org/@ethersproject/contracts/-/contracts-5.7.0.tgz", + "integrity": "sha512-5GJbzEU3X+d33CdfPhcyS+z8MzsTrBGk/sc+G+59+tPa9yFkl6HQ9D6L0QMgNTA9q8dT0XKxxkyp883XsQvbbg==", "funding": [ { "type": "individual", @@ -1158,18 +885,24 @@ "url": "https://www.buymeacoffee.com/ricmoo" } ], + "peer": true, "dependencies": { + "@ethersproject/abi": "^5.7.0", "@ethersproject/abstract-provider": "^5.7.0", + "@ethersproject/abstract-signer": "^5.7.0", + "@ethersproject/address": "^5.7.0", "@ethersproject/bignumber": "^5.7.0", "@ethersproject/bytes": "^5.7.0", + "@ethersproject/constants": "^5.7.0", "@ethersproject/logger": "^5.7.0", - "@ethersproject/properties": "^5.7.0" + "@ethersproject/properties": "^5.7.0", + "@ethersproject/transactions": "^5.7.0" } }, - "node_modules/@ethersproject/address": { + "node_modules/ethers/node_modules/@ethersproject/hdnode": { "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/address/-/address-5.7.0.tgz", - "integrity": "sha512-9wYhYt7aghVGo758POM5nqcOMaE168Q6aRLJZwUmiqSrAungkG74gSSeKEIR7ukixesdRZGPgVqme6vmxs1fkA==", + "resolved": "https://registry.npmjs.org/@ethersproject/hdnode/-/hdnode-5.7.0.tgz", + "integrity": "sha512-OmyYo9EENBPPf4ERhR7oj6uAtUAhYGqOnIS+jE5pTXvdKBS99ikzq1E7Iv0ZQZ5V36Lqx1qZLeak0Ra16qpeOg==", "funding": [ { "type": "individual", @@ -1180,18 +913,26 @@ "url": "https://www.buymeacoffee.com/ricmoo" } ], + "peer": true, "dependencies": { + "@ethersproject/abstract-signer": "^5.7.0", + "@ethersproject/basex": "^5.7.0", "@ethersproject/bignumber": "^5.7.0", "@ethersproject/bytes": "^5.7.0", - "@ethersproject/keccak256": "^5.7.0", "@ethersproject/logger": "^5.7.0", - "@ethersproject/rlp": "^5.7.0" + "@ethersproject/pbkdf2": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/sha2": "^5.7.0", + "@ethersproject/signing-key": "^5.7.0", + "@ethersproject/strings": "^5.7.0", + "@ethersproject/transactions": "^5.7.0", + "@ethersproject/wordlists": "^5.7.0" } }, - "node_modules/@ethersproject/base64": { + "node_modules/ethers/node_modules/@ethersproject/json-wallets": { "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/base64/-/base64-5.7.0.tgz", - "integrity": "sha512-Dr8tcHt2mEbsZr/mwTPIQAf3Ai0Bks/7gTw9dSqk1mQvhW3XvRlmDJr/4n+wg1JmCl16NZue17CDh8xb/vZ0sQ==", + "resolved": "https://registry.npmjs.org/@ethersproject/json-wallets/-/json-wallets-5.7.0.tgz", + "integrity": "sha512-8oee5Xgu6+RKgJTkvEMl2wDgSPSAQ9MB/3JYjFV9jlKvcYHUXZC+cQp0njgmxdHkYWn8s6/IqIZYm0YWCjO/0g==", "funding": [ { "type": "individual", @@ -1202,14 +943,27 @@ "url": "https://www.buymeacoffee.com/ricmoo" } ], + "peer": true, "dependencies": { - "@ethersproject/bytes": "^5.7.0" + "@ethersproject/abstract-signer": "^5.7.0", + "@ethersproject/address": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/hdnode": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/pbkdf2": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/random": "^5.7.0", + "@ethersproject/strings": "^5.7.0", + "@ethersproject/transactions": "^5.7.0", + "aes-js": "3.0.0", + "scrypt-js": "3.0.1" } }, - "node_modules/@ethersproject/basex": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/@ethersproject/basex/-/basex-5.4.0.tgz", - "integrity": "sha512-J07+QCVJ7np2bcpxydFVf/CuYo9mZ7T73Pe7KQY4c1lRlrixMeblauMxHXD0MPwFmUHZIILDNViVkykFBZylbg==", + "node_modules/ethers/node_modules/@ethersproject/pbkdf2": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/pbkdf2/-/pbkdf2-5.7.0.tgz", + "integrity": "sha512-oR/dBRZR6GTyaofd86DehG72hY6NpAjhabkhxgr3X2FpJtJuodEl2auADWBZfhDHgVCbu3/H/Ocq2uC6dpNjjw==", "funding": [ { "type": "individual", @@ -1222,14 +976,14 @@ ], "peer": true, "dependencies": { - "@ethersproject/bytes": "^5.4.0", - "@ethersproject/properties": "^5.4.0" + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/sha2": "^5.7.0" } }, - "node_modules/@ethersproject/bignumber": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/bignumber/-/bignumber-5.7.0.tgz", - "integrity": "sha512-n1CAdIHRWjSucQO3MC1zPSVgV/6dy/fjL9pMrPP9peL+QxEg9wOsVqwD4+818B6LUEtaXzVHQiuivzRoxPxUGw==", + "node_modules/ethers/node_modules/@ethersproject/providers": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/@ethersproject/providers/-/providers-5.7.2.tgz", + "integrity": "sha512-g34EWZ1WWAVgr4aptGlVBF8mhl3VWjv+8hoAnzStu8Ah22VHBsuGzP17eb6xDVRzw895G4W7vvx60lFFur/1Rg==", "funding": [ { "type": "individual", @@ -1240,21 +994,34 @@ "url": "https://www.buymeacoffee.com/ricmoo" } ], + "peer": true, "dependencies": { + "@ethersproject/abstract-provider": "^5.7.0", + "@ethersproject/abstract-signer": "^5.7.0", + "@ethersproject/address": "^5.7.0", + "@ethersproject/base64": "^5.7.0", + "@ethersproject/basex": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", "@ethersproject/bytes": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/hash": "^5.7.0", "@ethersproject/logger": "^5.7.0", - "bn.js": "^5.2.1" + "@ethersproject/networks": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/random": "^5.7.0", + "@ethersproject/rlp": "^5.7.0", + "@ethersproject/sha2": "^5.7.0", + "@ethersproject/strings": "^5.7.0", + "@ethersproject/transactions": "^5.7.0", + "@ethersproject/web": "^5.7.0", + "bech32": "1.1.4", + "ws": "7.4.6" } }, - "node_modules/@ethersproject/bignumber/node_modules/bn.js": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", - "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==" - }, - "node_modules/@ethersproject/bytes": { + "node_modules/ethers/node_modules/@ethersproject/random": { "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/bytes/-/bytes-5.7.0.tgz", - "integrity": "sha512-nsbxwgFXWh9NyYWo+U8atvmMsSdKJprTcICAkvbBffT75qDocbuggBU0SJiVK2MuTrp0q+xvLkTnGMPK1+uA9A==", + "resolved": "https://registry.npmjs.org/@ethersproject/random/-/random-5.7.0.tgz", + "integrity": "sha512-19WjScqRA8IIeWclFme75VMXSBvi4e6InrUNuaR4s5pTF2qNhcGdCUwdxUVGtDDqC00sDLCO93jPQoDUH4HVmQ==", "funding": [ { "type": "individual", @@ -1265,14 +1032,16 @@ "url": "https://www.buymeacoffee.com/ricmoo" } ], + "peer": true, "dependencies": { + "@ethersproject/bytes": "^5.7.0", "@ethersproject/logger": "^5.7.0" } }, - "node_modules/@ethersproject/constants": { + "node_modules/ethers/node_modules/@ethersproject/sha2": { "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/constants/-/constants-5.7.0.tgz", - "integrity": "sha512-DHI+y5dBNvkpYUMiRQyxRBYBefZkJfo70VUkUAsRjcPs47muV9evftfZ0PJVCXYbAiCgght0DtcF9srFQmIgWA==", + "resolved": "https://registry.npmjs.org/@ethersproject/sha2/-/sha2-5.7.0.tgz", + "integrity": "sha512-gKlH42riwb3KYp0reLsFTokByAKoJdgFCwI+CCiX/k+Jm2mbNs6oOaCjYQSlI1+XBVejwH2KrmCbMAT/GnRDQw==", "funding": [ { "type": "individual", @@ -1283,14 +1052,17 @@ "url": "https://www.buymeacoffee.com/ricmoo" } ], + "peer": true, "dependencies": { - "@ethersproject/bignumber": "^5.7.0" + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "hash.js": "1.1.7" } }, - "node_modules/@ethersproject/hash": { + "node_modules/ethers/node_modules/@ethersproject/solidity": { "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/hash/-/hash-5.7.0.tgz", - "integrity": "sha512-qX5WrQfnah1EFnO5zJv1v46a8HW0+E5xuBBDTwMFZLuVTx0tbU2kkx15NqdjxecrLGatQN9FGQKpb1FKdHCt+g==", + "resolved": "https://registry.npmjs.org/@ethersproject/solidity/-/solidity-5.7.0.tgz", + "integrity": "sha512-HmabMd2Dt/raavyaGukF4XxizWKhKQ24DoLtdNbBmNKUOPqwjsKQSdV9GQtj9CBEea9DlzETlVER1gYeXXBGaA==", "funding": [ { "type": "individual", @@ -1301,61 +1073,20 @@ "url": "https://www.buymeacoffee.com/ricmoo" } ], + "peer": true, "dependencies": { - "@ethersproject/abstract-signer": "^5.7.0", - "@ethersproject/address": "^5.7.0", - "@ethersproject/base64": "^5.7.0", "@ethersproject/bignumber": "^5.7.0", "@ethersproject/bytes": "^5.7.0", "@ethersproject/keccak256": "^5.7.0", "@ethersproject/logger": "^5.7.0", - "@ethersproject/properties": "^5.7.0", + "@ethersproject/sha2": "^5.7.0", "@ethersproject/strings": "^5.7.0" } }, - "node_modules/@ethersproject/keccak256": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/keccak256/-/keccak256-5.7.0.tgz", - "integrity": "sha512-2UcPboeL/iW+pSg6vZ6ydF8tCnv3Iu/8tUmLLzWWGzxWKFFqOBQFLo6uLUv6BDrLgCDfN28RJ/wtByx+jZ4KBg==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/bytes": "^5.7.0", - "js-sha3": "0.8.0" - } - }, - "node_modules/@ethersproject/keccak256/node_modules/js-sha3": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.8.0.tgz", - "integrity": "sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q==" - }, - "node_modules/@ethersproject/logger": { + "node_modules/ethers/node_modules/@ethersproject/units": { "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/logger/-/logger-5.7.0.tgz", - "integrity": "sha512-0odtFdXu/XHtjQXJYA3u9G0G8btm0ND5Cu8M7i5vhEcE8/HmF4Lbdqanwyv4uQTr2tx6b7fQRmgLrsnpQlmnig==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ] - }, - "node_modules/@ethersproject/networks": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/@ethersproject/networks/-/networks-5.7.1.tgz", - "integrity": "sha512-n/MufjFYv3yFcUyfhnXotyDlNdFb7onmkSy8aQERi2PjNcnWQ66xXxa3XlS8nCcA8aJKJjIIMNJTC7tu80GwpQ==", + "resolved": "https://registry.npmjs.org/@ethersproject/units/-/units-5.7.0.tgz", + "integrity": "sha512-pD3xLMy3SJu9kG5xDGI7+xhTEmGXlEqXU4OfNapmfnxLVY4EMSSRp7j1k7eezutBPH7RBN/7QPnwR7hzNlEFeg==", "funding": [ { "type": "individual", @@ -1366,14 +1097,17 @@ "url": "https://www.buymeacoffee.com/ricmoo" } ], + "peer": true, "dependencies": { + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/constants": "^5.7.0", "@ethersproject/logger": "^5.7.0" } }, - "node_modules/@ethersproject/properties": { + "node_modules/ethers/node_modules/@ethersproject/wallet": { "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/properties/-/properties-5.7.0.tgz", - "integrity": "sha512-J87jy8suntrAkIZtecpxEPxY//szqr1mlBaYlQ0r4RCaiD2hjheqF9s1LVE8vVuJCXisjIP+JgtK/Do54ej4Sw==", + "resolved": "https://registry.npmjs.org/@ethersproject/wallet/-/wallet-5.7.0.tgz", + "integrity": "sha512-MhmXlJXEJFBFVKrDLB4ZdDzxcBxQ3rLyCkhNqVu3CDYvR97E+8r01UgrI+TI99Le+aYm/in/0vp86guJuM7FCA==", "funding": [ { "type": "individual", @@ -1384,14 +1118,29 @@ "url": "https://www.buymeacoffee.com/ricmoo" } ], + "peer": true, "dependencies": { - "@ethersproject/logger": "^5.7.0" + "@ethersproject/abstract-provider": "^5.7.0", + "@ethersproject/abstract-signer": "^5.7.0", + "@ethersproject/address": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/hash": "^5.7.0", + "@ethersproject/hdnode": "^5.7.0", + "@ethersproject/json-wallets": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/random": "^5.7.0", + "@ethersproject/signing-key": "^5.7.0", + "@ethersproject/transactions": "^5.7.0", + "@ethersproject/wordlists": "^5.7.0" } }, - "node_modules/@ethersproject/providers": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/@ethersproject/providers/-/providers-5.4.1.tgz", - "integrity": "sha512-p06eiFKz8nu/5Ju0kIX024gzEQIgE5pvvGrBCngpyVjpuLtUIWT3097Agw4mTn9/dEA0FMcfByzFqacBMSgCVg==", + "node_modules/ethers/node_modules/@ethersproject/wordlists": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/wordlists/-/wordlists-5.7.0.tgz", + "integrity": "sha512-S2TFNJNfHWVHNE6cNDjbVlZ6MgE17MIxMbMg2zv3wn+3XSJGosL1m9ZVv3GXCf/2ymSsQ+hRI5IzoMJTG6aoVA==", "funding": [ { "type": "individual", @@ -1404,34 +1153,36 @@ ], "peer": true, "dependencies": { - "@ethersproject/abstract-provider": "^5.4.0", - "@ethersproject/abstract-signer": "^5.4.0", - "@ethersproject/address": "^5.4.0", - "@ethersproject/basex": "^5.4.0", - "@ethersproject/bignumber": "^5.4.0", - "@ethersproject/bytes": "^5.4.0", - "@ethersproject/constants": "^5.4.0", - "@ethersproject/hash": "^5.4.0", - "@ethersproject/logger": "^5.4.0", - "@ethersproject/networks": "^5.4.0", - "@ethersproject/properties": "^5.4.0", - "@ethersproject/random": "^5.4.0", - "@ethersproject/rlp": "^5.4.0", - "@ethersproject/sha2": "^5.4.0", - "@ethersproject/strings": "^5.4.0", - "@ethersproject/transactions": "^5.4.0", - "@ethersproject/web": "^5.4.0", - "bech32": "1.1.4", - "ws": "7.4.6" + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/hash": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/strings": "^5.7.0" } }, - "node_modules/@ethersproject/providers/node_modules/bech32": { + "node_modules/ethers/node_modules/bech32": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/bech32/-/bech32-1.1.4.tgz", "integrity": "sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ==", "peer": true }, - "node_modules/@ethersproject/providers/node_modules/ws": { + "node_modules/ethers/node_modules/hash.js": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", + "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", + "peer": true, + "dependencies": { + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.1" + } + }, + "node_modules/ethers/node_modules/scrypt-js": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-3.0.1.tgz", + "integrity": "sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA==", + "peer": true + }, + "node_modules/ethers/node_modules/ws": { "version": "7.4.6", "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz", "integrity": "sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==", @@ -1452,43666 +1203,1396 @@ } } }, - "node_modules/@ethersproject/random": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/@ethersproject/random/-/random-5.4.0.tgz", - "integrity": "sha512-pnpWNQlf0VAZDEOVp1rsYQosmv2o0ITS/PecNw+mS2/btF8eYdspkN0vIXrCMtkX09EAh9bdk8GoXmFXM1eAKw==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "peer": true, + "node_modules/find-replace": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-replace/-/find-replace-3.0.0.tgz", + "integrity": "sha512-6Tb2myMioCAgv5kfvP5/PkZZ/ntTpVK39fHY7WkWBgvbeE+VHd/tZuZ4mrC+bxh4cfOZeYKVPaJIZtZXV7GNCQ==", "dependencies": { - "@ethersproject/bytes": "^5.4.0", - "@ethersproject/logger": "^5.4.0" + "array-back": "^3.0.1" + }, + "engines": { + "node": ">=4.0.0" } }, - "node_modules/@ethersproject/rlp": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/rlp/-/rlp-5.7.0.tgz", - "integrity": "sha512-rBxzX2vK8mVF7b0Tol44t5Tb8gomOHkj5guL+HhzQ1yBh/ydjGnpw6at+X6Iw0Kp3OzzzkcKp8N9r0W4kYSs9w==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], + "node_modules/fs-extra": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", + "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", "dependencies": { - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/logger": "^5.7.0" + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + }, + "engines": { + "node": ">=6 <7 || >=8" } }, - "node_modules/@ethersproject/sha2": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/@ethersproject/sha2/-/sha2-5.4.0.tgz", - "integrity": "sha512-siheo36r1WD7Cy+bDdE1BJ8y0bDtqXCOxRMzPa4bV1TGt/eTUUt03BHoJNB6reWJD8A30E/pdJ8WFkq+/uz4Gg==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "peer": true, - "dependencies": { - "@ethersproject/bytes": "^5.4.0", - "@ethersproject/logger": "^5.4.0", - "hash.js": "1.1.7" - } + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" }, - "node_modules/@ethersproject/sha2/node_modules/hash.js": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", - "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", - "peer": true, - "dependencies": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.1" - } + "node_modules/graceful-fs": { + "version": "4.2.10", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", + "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==" }, - "node_modules/@ethersproject/signing-key": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/signing-key/-/signing-key-5.7.0.tgz", - "integrity": "sha512-MZdy2nL3wO0u7gkB4nA/pEf8lu1TlFswPNmy8AiYkfKTdO6eXBJyUdmHO/ehm/htHw9K/qF8ujnTyUAD+Ry54Q==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/properties": "^5.7.0", - "bn.js": "^5.2.1", - "elliptic": "6.5.4", - "hash.js": "1.1.7" + "node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "engines": { + "node": ">=4" } }, - "node_modules/@ethersproject/signing-key/node_modules/bn.js": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", - "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==" - }, - "node_modules/@ethersproject/signing-key/node_modules/hash.js": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", - "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", + "node_modules/hash.js": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.3.tgz", + "integrity": "sha512-/UETyP0W22QILqS+6HowevwhEFJ3MBJnwTf75Qob9Wz9t0DPuisL8kW8YZMK62dHAKE1c1p+gY1TtOLY+USEHA==", + "peer": true, "dependencies": { "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.1" + "minimalistic-assert": "^1.0.0" } }, - "node_modules/@ethersproject/strings": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/strings/-/strings-5.7.0.tgz", - "integrity": "sha512-/9nu+lj0YswRNSH0NXYqrh8775XNyEdUQAuf3f+SmOrnVewcJ5SBNAjF7lpgehKi4abvNNXyf+HX86czCdJ8Mg==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], + "node_modules/hmac-drbg": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", + "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", + "peer": true, "dependencies": { - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/constants": "^5.7.0", - "@ethersproject/logger": "^5.7.0" + "hash.js": "^1.0.3", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.1" } }, - "node_modules/@ethersproject/transactions": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/transactions/-/transactions-5.7.0.tgz", - "integrity": "sha512-kmcNicCp1lp8qanMTC3RIikGgoJ80ztTyvtsFvCYpSCfkjhD0jZ2LOrnbcuxuToLIUYYf+4XwD1rP+B/erDIhQ==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", "dependencies": { - "@ethersproject/address": "^5.7.0", - "@ethersproject/bignumber": "^5.7.0", - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/constants": "^5.7.0", - "@ethersproject/keccak256": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/properties": "^5.7.0", - "@ethersproject/rlp": "^5.7.0", - "@ethersproject/signing-key": "^5.7.0" + "once": "^1.3.0", + "wrappy": "1" } }, - "node_modules/@ethersproject/web": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/@ethersproject/web/-/web-5.7.1.tgz", - "integrity": "sha512-Gueu8lSvyjBWL4cYsWsjh6MtMwM0+H4HvqFPZfB6dV8ctbP9zFAO73VG1cMWae0FLPCtz0peKPpZY8/ugJJX2w==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/base64": "^5.7.0", - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/properties": "^5.7.0", - "@ethersproject/strings": "^5.7.0" - } + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" }, - "node_modules/@firebase/analytics": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/@firebase/analytics/-/analytics-0.4.1.tgz", - "integrity": "sha512-y5ZuhqX/PwLi0t7AKxNAi3NnlEwXe0rpknulUWUg3/1dALqtd2RrAOATQoV5FNnKK6YUH5UmK0Jb9KcSjsFeNw==", - "dev": true, + "node_modules/jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", "dependencies": { - "@firebase/analytics-types": "0.3.1", - "@firebase/component": "0.1.17", - "@firebase/installations": "0.4.15", - "@firebase/logger": "0.2.6", - "@firebase/util": "0.3.0", - "tslib": "^1.11.1" + "graceful-fs": "^4.1.6" } }, - "node_modules/@firebase/analytics-types": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/@firebase/analytics-types/-/analytics-types-0.3.1.tgz", - "integrity": "sha512-63vVJ5NIBh/JF8l9LuPrQYSzFimk7zYHySQB4Dk9rVdJ8kV/vGQoVTvRu1UW05sEc2Ug5PqtEChtTHU+9hvPcA==", - "dev": true + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" }, - "node_modules/@firebase/app": { - "version": "0.6.9", - "resolved": "https://registry.npmjs.org/@firebase/app/-/app-0.6.9.tgz", - "integrity": "sha512-X2riRgK49IK8LCQ3j7BKLu3zqHDTJSaT6YgcLewtHuOVwtpHfGODiS1cL5VMvKm3ogxP84GA70tN3sdoL/vTog==", - "dev": true, - "dependencies": { - "@firebase/app-types": "0.6.1", - "@firebase/component": "0.1.17", - "@firebase/logger": "0.2.6", - "@firebase/util": "0.3.0", - "dom-storage": "2.1.0", - "tslib": "^1.11.1", - "xmlhttprequest": "1.8.0" - } + "node_modules/lodash.camelcase": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", + "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY=" }, - "node_modules/@firebase/app-types": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/@firebase/app-types/-/app-types-0.6.1.tgz", - "integrity": "sha512-L/ZnJRAq7F++utfuoTKX4CLBG5YR7tFO3PLzG1/oXXKEezJ0kRL3CMRoueBEmTCzVb/6SIs2Qlaw++uDgi5Xyg==", - "dev": true + "node_modules/minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", + "peer": true + }, + "node_modules/minimalistic-crypto-utils": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", + "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=", + "peer": true }, - "node_modules/@firebase/auth": { - "version": "0.14.9", - "resolved": "https://registry.npmjs.org/@firebase/auth/-/auth-0.14.9.tgz", - "integrity": "sha512-PxYa2r5qUEdheXTvqROFrMstK8W4uPiP7NVfp+2Bec+AjY5PxZapCx/YFDLkU0D7YBI82H74PtZrzdJZw7TJ4w==", - "dev": true, + "node_modules/minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "dependencies": { - "@firebase/auth-types": "0.10.1" + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" } }, - "node_modules/@firebase/auth-interop-types": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/@firebase/auth-interop-types/-/auth-interop-types-0.1.5.tgz", - "integrity": "sha512-88h74TMQ6wXChPA6h9Q3E1Jg6TkTHep2+k63OWg3s0ozyGVMeY+TTOti7PFPzq5RhszQPQOoCi59es4MaRvgCw==", - "dev": true - }, - "node_modules/@firebase/auth-types": { - "version": "0.10.1", - "resolved": "https://registry.npmjs.org/@firebase/auth-types/-/auth-types-0.10.1.tgz", - "integrity": "sha512-/+gBHb1O9x/YlG7inXfxff/6X3BPZt4zgBv4kql6HEmdzNQCodIRlEYnI+/da+lN+dha7PjaFH7C7ewMmfV7rw==", - "dev": true - }, - "node_modules/@firebase/component": { - "version": "0.1.17", - "resolved": "https://registry.npmjs.org/@firebase/component/-/component-0.1.17.tgz", - "integrity": "sha512-/tN5iLcFp9rdpTfCJPfQ/o2ziGHlDxOzNx6XD2FoHlu4pG/PPGu+59iRfQXIowBGhxcTGD/l7oJhZEY/PVg0KQ==", - "dev": true, - "dependencies": { - "@firebase/util": "0.3.0", - "tslib": "^1.11.1" + "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/@firebase/database": { - "version": "0.6.9", - "resolved": "https://registry.npmjs.org/@firebase/database/-/database-0.6.9.tgz", - "integrity": "sha512-+X2dNFDpcLEcDRdXp2Hgkf0RnNz3AOIC+Y7UFMQYadm9buB+snXomlnlkMzOj6o+Cp3V7GnpBrKKeeFqzF6wGQ==", - "dev": true, - "dependencies": { - "@firebase/auth-interop-types": "0.1.5", - "@firebase/component": "0.1.17", - "@firebase/database-types": "0.5.1", - "@firebase/logger": "0.2.6", - "@firebase/util": "0.3.0", - "faye-websocket": "0.11.3", - "tslib": "^1.11.1" + "node_modules/node-gyp-build": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.6.0.tgz", + "integrity": "sha512-NTZVKn9IylLwUzaKjkas1e4u2DLNcV4rdYagA4PWdPwW87Bi7z+BznyKSRwS/761tV/lzCGXplWsiaMjLqP2zQ==", + "optional": true, + "peer": true, + "bin": { + "node-gyp-build": "bin.js", + "node-gyp-build-optional": "optional.js", + "node-gyp-build-test": "build-test.js" } }, - "node_modules/@firebase/database-types": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/@firebase/database-types/-/database-types-0.5.1.tgz", - "integrity": "sha512-onQxom1ZBYBJ648w/VNRzUewovEDAH7lvnrrpCd69ukkyrMk6rGEO/PQ9BcNEbhlNtukpsqRS0oNOFlHs0FaSA==", - "dev": true, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", "dependencies": { - "@firebase/app-types": "0.6.1" + "wrappy": "1" } }, - "node_modules/@firebase/firestore": { - "version": "1.16.2", - "resolved": "https://registry.npmjs.org/@firebase/firestore/-/firestore-1.16.2.tgz", - "integrity": "sha512-iIkAL860oD/QA1uYI9JBbWqBYFWd+DnuSj//BIbOGn3DNAruDFy07g8re1vn+0MMas9bMk6CZATJNCFPeH8AsQ==", - "dev": true, - "dependencies": { - "@firebase/component": "0.1.17", - "@firebase/firestore-types": "1.12.0", - "@firebase/logger": "0.2.6", - "@firebase/util": "0.3.0", - "@firebase/webchannel-wrapper": "0.2.41", - "@grpc/grpc-js": "^1.0.0", - "@grpc/proto-loader": "^0.5.0", - "tslib": "^1.11.1" - }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", "engines": { - "node": "^8.13.0 || >=10.10.0" + "node": ">=0.10.0" } }, - "node_modules/@firebase/firestore-types": { - "version": "1.12.0", - "resolved": "https://registry.npmjs.org/@firebase/firestore-types/-/firestore-types-1.12.0.tgz", - "integrity": "sha512-OqNxVb63wPZdUc7YnpacAW1WNIMSKERSewCRi+unCQ0YI0KNfrDSypyGCyel+S3GdOtKMk9KnvDknaGbnaFX4g==", - "dev": true - }, - "node_modules/@firebase/functions": { - "version": "0.4.49", - "resolved": "https://registry.npmjs.org/@firebase/functions/-/functions-0.4.49.tgz", - "integrity": "sha512-ma3+z1wMKervmEJCLWxwIjbSV+n3/BTfFPSZdTjt18Wgiso5q4BzEObFkorxaXZiyT3KpZ0qOO97lgcoth2hIA==", - "dev": true, - "dependencies": { - "@firebase/component": "0.1.17", - "@firebase/functions-types": "0.3.17", - "@firebase/messaging-types": "0.4.5", - "isomorphic-fetch": "2.2.1", - "tslib": "^1.11.1" + "node_modules/reduce-flatten": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/reduce-flatten/-/reduce-flatten-2.0.0.tgz", + "integrity": "sha512-EJ4UNY/U1t2P/2k6oqotuX2Cc3T6nxJwsM0N0asT7dhrtH1ltUxDn4NalSYmPE2rCkVpcf/X6R0wDwcFpzhd4w==", + "engines": { + "node": ">=6" } }, - "node_modules/@firebase/functions-types": { - "version": "0.3.17", - "resolved": "https://registry.npmjs.org/@firebase/functions-types/-/functions-types-0.3.17.tgz", - "integrity": "sha512-DGR4i3VI55KnYk4IxrIw7+VG7Q3gA65azHnZxo98Il8IvYLr2UTBlSh72dTLlDf25NW51HqvJgYJDKvSaAeyHQ==", - "dev": true + "node_modules/string-format": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/string-format/-/string-format-2.0.0.tgz", + "integrity": "sha512-bbEs3scLeYNXLecRRuk6uJxdXUSj6le/8rNPHChIJTn2V79aXVTR1EH2OH5zLKKoz0V02fOUKZZcw01pLUShZA==" }, - "node_modules/@firebase/installations": { - "version": "0.4.15", - "resolved": "https://registry.npmjs.org/@firebase/installations/-/installations-0.4.15.tgz", - "integrity": "sha512-6uGgDocDGu5gI7FeDBDcLaH4npz0cm2f0kctOFK+5N1CyK8Tv2YGv5/uGqlrTtSwDW+8tgKNo/5XXJJOPr9Jsw==", - "dev": true, + "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==", "dependencies": { - "@firebase/component": "0.1.17", - "@firebase/installations-types": "0.3.4", - "@firebase/util": "0.3.0", - "idb": "3.0.2", - "tslib": "^1.11.1" - } - }, - "node_modules/@firebase/installations-types": { - "version": "0.3.4", - "resolved": "https://registry.npmjs.org/@firebase/installations-types/-/installations-types-0.3.4.tgz", - "integrity": "sha512-RfePJFovmdIXb6rYwtngyxuEcWnOrzdZd9m7xAW0gRxDIjBT20n3BOhjpmgRWXo/DAxRmS7bRjWAyTHY9cqN7Q==", - "dev": true - }, - "node_modules/@firebase/logger": { - "version": "0.2.6", - "resolved": "https://registry.npmjs.org/@firebase/logger/-/logger-0.2.6.tgz", - "integrity": "sha512-KIxcUvW/cRGWlzK9Vd2KB864HlUnCfdTH0taHE0sXW5Xl7+W68suaeau1oKNEqmc3l45azkd4NzXTCWZRZdXrw==", - "dev": true - }, - "node_modules/@firebase/messaging": { - "version": "0.6.21", - "resolved": "https://registry.npmjs.org/@firebase/messaging/-/messaging-0.6.21.tgz", - "integrity": "sha512-cunbFNCtUy25Zp4/jn5lenYUPqgHpjKNUwRjKc7vIzYb4IT2Vu/7kaEptO3K0KQBC6O0QV3ZtqQxKrI9aLiSHg==", - "dev": true, - "dependencies": { - "@firebase/component": "0.1.17", - "@firebase/installations": "0.4.15", - "@firebase/messaging-types": "0.4.5", - "@firebase/util": "0.3.0", - "idb": "3.0.2", - "tslib": "^1.11.1" + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" } }, - "node_modules/@firebase/messaging-types": { - "version": "0.4.5", - "resolved": "https://registry.npmjs.org/@firebase/messaging-types/-/messaging-types-0.4.5.tgz", - "integrity": "sha512-sux4fgqr/0KyIxqzHlatI04Ajs5rc3WM+WmtCpxrKP1E5Bke8xu/0M+2oy4lK/sQ7nov9z15n3iltAHCgTRU3Q==", - "dev": true - }, - "node_modules/@firebase/performance": { - "version": "0.3.10", - "resolved": "https://registry.npmjs.org/@firebase/performance/-/performance-0.3.10.tgz", - "integrity": "sha512-j/hsx2xfOO1hZulmz7KxemoTIVXxrv94rt79x8qO1HzysT7ziViNvQ9cQGjDZWwVSO29TpLH31GOWLVnwmnxWQ==", - "dev": true, + "node_modules/table-layout": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/table-layout/-/table-layout-1.0.2.tgz", + "integrity": "sha512-qd/R7n5rQTRFi+Zf2sk5XVVd9UQl6ZkduPFC3S7WEGJAmetDTjY3qPN50eSKzwuzEyQKy5TN2TiZdkIjos2L6A==", "dependencies": { - "@firebase/component": "0.1.17", - "@firebase/installations": "0.4.15", - "@firebase/logger": "0.2.6", - "@firebase/performance-types": "0.0.13", - "@firebase/util": "0.3.0", - "tslib": "^1.11.1" + "array-back": "^4.0.1", + "deep-extend": "~0.6.0", + "typical": "^5.2.0", + "wordwrapjs": "^4.0.0" + }, + "engines": { + "node": ">=8.0.0" } }, - "node_modules/@firebase/performance-types": { - "version": "0.0.13", - "resolved": "https://registry.npmjs.org/@firebase/performance-types/-/performance-types-0.0.13.tgz", - "integrity": "sha512-6fZfIGjQpwo9S5OzMpPyqgYAUZcFzZxHFqOyNtorDIgNXq33nlldTL/vtaUZA8iT9TT5cJlCrF/jthKU7X21EA==", - "dev": true - }, - "node_modules/@firebase/polyfill": { - "version": "0.3.36", - "resolved": "https://registry.npmjs.org/@firebase/polyfill/-/polyfill-0.3.36.tgz", - "integrity": "sha512-zMM9oSJgY6cT2jx3Ce9LYqb0eIpDE52meIzd/oe/y70F+v9u1LDqk5kUF5mf16zovGBWMNFmgzlsh6Wj0OsFtg==", - "dev": true, - "dependencies": { - "core-js": "3.6.5", - "promise-polyfill": "8.1.3", - "whatwg-fetch": "2.0.4" + "node_modules/table-layout/node_modules/array-back": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-4.0.2.tgz", + "integrity": "sha512-NbdMezxqf94cnNfWLL7V/im0Ub+Anbb0IoZhvzie8+4HJ4nMQuzHuy49FkGYCJK2yAloZ3meiB6AVMClbrI1vg==", + "engines": { + "node": ">=8" } }, - "node_modules/@firebase/polyfill/node_modules/whatwg-fetch": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-2.0.4.tgz", - "integrity": "sha512-dcQ1GWpOD/eEQ97k66aiEVpNnapVj90/+R+SXTPYGHpYBBypfKJEQjLrvMZ7YXbKm21gXd4NcuxUTjiv1YtLng==", - "dev": true - }, - "node_modules/@firebase/remote-config": { - "version": "0.1.26", - "resolved": "https://registry.npmjs.org/@firebase/remote-config/-/remote-config-0.1.26.tgz", - "integrity": "sha512-B6+nARVNcswysd6C16nK5tdGECgEpr1wdH6LyqylEQ8hUxYWN18qe49b9uPu+ktaHq0gFLg03gayZvQs7fxJOg==", - "dev": true, - "dependencies": { - "@firebase/component": "0.1.17", - "@firebase/installations": "0.4.15", - "@firebase/logger": "0.2.6", - "@firebase/remote-config-types": "0.1.9", - "@firebase/util": "0.3.0", - "tslib": "^1.11.1" + "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/@firebase/remote-config-types": { - "version": "0.1.9", - "resolved": "https://registry.npmjs.org/@firebase/remote-config-types/-/remote-config-types-0.1.9.tgz", - "integrity": "sha512-G96qnF3RYGbZsTRut7NBX0sxyczxt1uyCgXQuH/eAfUCngxjEGcZQnBdy6mvSdqdJh5mC31rWPO4v9/s7HwtzA==", - "dev": true - }, - "node_modules/@firebase/storage": { - "version": "0.3.41", - "resolved": "https://registry.npmjs.org/@firebase/storage/-/storage-0.3.41.tgz", - "integrity": "sha512-2imzI78HcB7FjUqXMRHsGLlZnTYkaCHBjJflSbypwLrEty0hreR6vx3ThOO5y0MFH93WwifqUFJAa+Twkx6CIA==", - "dev": true, + "node_modules/ts-command-line-args": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/ts-command-line-args/-/ts-command-line-args-2.4.2.tgz", + "integrity": "sha512-mJLQQBOdyD4XI/ZWQY44PIdYde47JhV2xl380O7twPkTQ+Y5vFDHsk8LOeXKuz7dVY5aDCfAzRarNfSqtKOkQQ==", "dependencies": { - "@firebase/component": "0.1.17", - "@firebase/storage-types": "0.3.13", - "@firebase/util": "0.3.0", - "tslib": "^1.11.1" + "@morgan-stanley/ts-mocking-bird": "^0.6.2", + "chalk": "^4.1.0", + "command-line-args": "^5.1.1", + "command-line-usage": "^6.1.0", + "string-format": "^2.0.0" + }, + "bin": { + "write-markdown": "dist/write-markdown.js" } }, - "node_modules/@firebase/storage-types": { - "version": "0.3.13", - "resolved": "https://registry.npmjs.org/@firebase/storage-types/-/storage-types-0.3.13.tgz", - "integrity": "sha512-pL7b8d5kMNCCL0w9hF7pr16POyKkb3imOW7w0qYrhBnbyJTdVxMWZhb0HxCFyQWC0w3EiIFFmxoz8NTFZDEFog==", - "dev": true - }, - "node_modules/@firebase/util": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/@firebase/util/-/util-0.3.0.tgz", - "integrity": "sha512-GTwC+FSLeCPc44/TXCDReNQ5FPRIS5cb8Gr1XcD1TgiNBOvmyx61Om2YLwHp2GnN++6m6xmwmXARm06HOukATA==", - "dev": true, + "node_modules/ts-command-line-args/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dependencies": { - "tslib": "^1.11.1" + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/@firebase/webchannel-wrapper": { - "version": "0.2.41", - "resolved": "https://registry.npmjs.org/@firebase/webchannel-wrapper/-/webchannel-wrapper-0.2.41.tgz", - "integrity": "sha512-XcdMT5PSZHiuf7LJIhzKIe+RyYa25S3LHRRvLnZc6iFjwXkrSDJ8J/HWO6VT8d2ZTbawp3VcLEjRF/VN8glCrA==", - "dev": true - }, - "node_modules/@graphql-tools/batch-execute": { - "version": "8.5.1", - "resolved": "https://registry.npmjs.org/@graphql-tools/batch-execute/-/batch-execute-8.5.1.tgz", - "integrity": "sha512-hRVDduX0UDEneVyEWtc2nu5H2PxpfSfM/riUlgZvo/a/nG475uyehxR5cFGvTEPEQUKY3vGIlqvtRigzqTfCew==", - "dev": true, - "optional": true, + "node_modules/ts-command-line-args/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": { - "@graphql-tools/utils": "8.9.0", - "dataloader": "2.1.0", - "tslib": "^2.4.0", - "value-or-promise": "1.0.11" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, - "peerDependencies": { - "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/@graphql-tools/batch-execute/node_modules/tslib": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz", - "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==", - "dev": true, - "optional": true - }, - "node_modules/@graphql-tools/delegate": { - "version": "8.8.1", - "resolved": "https://registry.npmjs.org/@graphql-tools/delegate/-/delegate-8.8.1.tgz", - "integrity": "sha512-NDcg3GEQmdEHlnF7QS8b4lM1PSF+DKeFcIlLEfZFBvVq84791UtJcDj8734sIHLukmyuAxXMfA1qLd2l4lZqzA==", - "dev": true, - "optional": true, + "node_modules/ts-command-line-args/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dependencies": { - "@graphql-tools/batch-execute": "8.5.1", - "@graphql-tools/schema": "8.5.1", - "@graphql-tools/utils": "8.9.0", - "dataloader": "2.1.0", - "tslib": "~2.4.0", - "value-or-promise": "1.0.11" + "color-name": "~1.1.4" }, - "peerDependencies": { - "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + "engines": { + "node": ">=7.0.0" } }, - "node_modules/@graphql-tools/delegate/node_modules/tslib": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz", - "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==", - "dev": true, - "optional": true + "node_modules/ts-command-line-args/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, - "node_modules/@graphql-tools/merge": { - "version": "8.3.1", - "resolved": "https://registry.npmjs.org/@graphql-tools/merge/-/merge-8.3.1.tgz", - "integrity": "sha512-BMm99mqdNZbEYeTPK3it9r9S6rsZsQKtlqJsSBknAclXq2pGEfOxjcIZi+kBSkHZKPKCRrYDd5vY0+rUmIHVLg==", - "dev": true, - "optional": true, - "dependencies": { - "@graphql-tools/utils": "8.9.0", - "tslib": "^2.4.0" - }, - "peerDependencies": { - "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + "node_modules/ts-command-line-args/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" } }, - "node_modules/@graphql-tools/merge/node_modules/tslib": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz", - "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==", - "dev": true, - "optional": true - }, - "node_modules/@graphql-tools/mock": { - "version": "8.7.20", - "resolved": "https://registry.npmjs.org/@graphql-tools/mock/-/mock-8.7.20.tgz", - "integrity": "sha512-ljcHSJWjC/ZyzpXd5cfNhPI7YljRVvabKHPzKjEs5ElxWu2cdlLGvyNYepApXDsM/OJG/2xuhGM+9GWu5gEAPQ==", - "dev": true, - "optional": true, + "node_modules/ts-command-line-args/node_modules/supports-color": { + "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": { - "@graphql-tools/schema": "^9.0.18", - "@graphql-tools/utils": "^9.2.1", - "fast-json-stable-stringify": "^2.1.0", - "tslib": "^2.4.0" + "has-flag": "^4.0.0" }, - "peerDependencies": { - "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + "engines": { + "node": ">=8" } }, - "node_modules/@graphql-tools/mock/node_modules/@graphql-tools/merge": { - "version": "8.4.1", - "resolved": "https://registry.npmjs.org/@graphql-tools/merge/-/merge-8.4.1.tgz", - "integrity": "sha512-hssnPpZ818mxgl5+GfyOOSnnflAxiaTn1A1AojZcIbh4J52sS1Q0gSuBR5VrnUDjuxiqoCotpXdAQl+K+U6KLQ==", - "dev": true, - "optional": true, + "node_modules/typechain": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/typechain/-/typechain-8.1.1.tgz", + "integrity": "sha512-uF/sUvnXTOVF2FHKhQYnxHk4su4JjZR8vr4mA2mBaRwHTbwh0jIlqARz9XJr1tA0l7afJGvEa1dTSi4zt039LQ==", "dependencies": { - "@graphql-tools/utils": "^9.2.1", - "tslib": "^2.4.0" + "@types/prettier": "^2.1.1", + "debug": "^4.3.1", + "fs-extra": "^7.0.0", + "glob": "7.1.7", + "js-sha3": "^0.8.0", + "lodash": "^4.17.15", + "mkdirp": "^1.0.4", + "prettier": "^2.3.1", + "ts-command-line-args": "^2.2.0", + "ts-essentials": "^7.0.1" + }, + "bin": { + "typechain": "dist/cli/cli.js" }, "peerDependencies": { - "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + "typescript": ">=4.3.0" } }, - "node_modules/@graphql-tools/mock/node_modules/@graphql-tools/schema": { - "version": "9.0.19", - "resolved": "https://registry.npmjs.org/@graphql-tools/schema/-/schema-9.0.19.tgz", - "integrity": "sha512-oBRPoNBtCkk0zbUsyP4GaIzCt8C0aCI4ycIRUL67KK5pOHljKLBBtGT+Jr6hkzA74C8Gco8bpZPe7aWFjiaK2w==", - "dev": true, - "optional": true, + "node_modules/typechain/node_modules/@types/prettier": { + "version": "2.7.2", + "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.7.2.tgz", + "integrity": "sha512-KufADq8uQqo1pYKVIYzfKbJfBAc0sOeXqGbFaSpv8MRmC/zXgowNZmFcbngndGk922QDmOASEXUZCaY48gs4cg==" + }, + "node_modules/typechain/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", "dependencies": { - "@graphql-tools/merge": "^8.4.1", - "@graphql-tools/utils": "^9.2.1", - "tslib": "^2.4.0", - "value-or-promise": "^1.0.12" + "ms": "2.1.2" }, - "peerDependencies": { - "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } } }, - "node_modules/@graphql-tools/mock/node_modules/@graphql-tools/utils": { - "version": "9.2.1", - "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-9.2.1.tgz", - "integrity": "sha512-WUw506Ql6xzmOORlriNrD6Ugx+HjVgYxt9KCXD9mHAak+eaXSwuGGPyE60hy9xaDEoXKBsG7SkG69ybitaVl6A==", - "dev": true, - "optional": true, + "node_modules/typechain/node_modules/glob": { + "version": "7.1.7", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz", + "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==", "dependencies": { - "@graphql-typed-document-node/core": "^3.1.1", - "tslib": "^2.4.0" + "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" }, - "peerDependencies": { - "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/@graphql-tools/mock/node_modules/tslib": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz", - "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==", - "dev": true, - "optional": true + "node_modules/typechain/node_modules/js-sha3": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.8.0.tgz", + "integrity": "sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q==" + }, + "node_modules/typechain/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" }, - "node_modules/@graphql-tools/mock/node_modules/value-or-promise": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/value-or-promise/-/value-or-promise-1.0.12.tgz", - "integrity": "sha512-Z6Uz+TYwEqE7ZN50gwn+1LCVo9ZVrpxRPOhOLnncYkY1ZzOYtrX8Fwf/rFktZ8R5mJms6EZf5TqNOMeZmnPq9Q==", - "dev": true, - "optional": true, + "node_modules/typechain/node_modules/prettier": { + "version": "2.8.7", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.7.tgz", + "integrity": "sha512-yPngTo3aXUUmyuTjeTUT75txrf+aMh9FiD7q9ZE/i6r0bPb22g4FsE6Y338PQX1bmfy08i9QQCB7/rcUAVntfw==", + "bin": { + "prettier": "bin-prettier.js" + }, "engines": { - "node": ">=12" + "node": ">=10.13.0" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" } }, - "node_modules/@graphql-tools/schema": { - "version": "8.5.1", - "resolved": "https://registry.npmjs.org/@graphql-tools/schema/-/schema-8.5.1.tgz", - "integrity": "sha512-0Esilsh0P/qYcB5DKQpiKeQs/jevzIadNTaT0jeWklPMwNbT7yMX4EqZany7mbeRRlSRwMzNzL5olyFdffHBZg==", - "dev": true, - "optional": true, - "dependencies": { - "@graphql-tools/merge": "8.3.1", - "@graphql-tools/utils": "8.9.0", - "tslib": "^2.4.0", - "value-or-promise": "1.0.11" - }, + "node_modules/typechain/node_modules/ts-essentials": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/ts-essentials/-/ts-essentials-7.0.3.tgz", + "integrity": "sha512-8+gr5+lqO3G84KdiTSMRLtuyJ+nTBVRKuCrK4lidMPdVeEp0uqC875uE5NMcaA7YYMN7XsNiFQuMvasF8HT/xQ==", "peerDependencies": { - "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + "typescript": ">=3.7.0" } }, - "node_modules/@graphql-tools/schema/node_modules/tslib": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz", - "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==", - "dev": true, - "optional": true - }, - "node_modules/@graphql-tools/utils": { - "version": "8.9.0", - "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-8.9.0.tgz", - "integrity": "sha512-pjJIWH0XOVnYGXCqej8g/u/tsfV4LvLlj0eATKQu5zwnxd/TiTHq7Cg313qUPTFFHZ3PP5wJ15chYVtLDwaymg==", - "dev": true, - "optional": true, - "dependencies": { - "tslib": "^2.4.0" + "node_modules/typescript": { + "version": "4.9.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz", + "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", + "peer": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" }, - "peerDependencies": { - "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + "engines": { + "node": ">=4.2.0" } }, - "node_modules/@graphql-tools/utils/node_modules/tslib": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz", - "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==", - "dev": true, - "optional": true + "node_modules/typical": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/typical/-/typical-4.0.0.tgz", + "integrity": "sha512-VAH4IvQ7BDFYglMd7BPRDfLgxZZX4O4TFcRDA6EN5X7erNJJq+McIEp8np9aVtxrCJ6qx4GTYVfOWNjcqwZgRw==", + "engines": { + "node": ">=8" + } }, - "node_modules/@graphql-typed-document-node/core": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/@graphql-typed-document-node/core/-/core-3.2.0.tgz", - "integrity": "sha512-mB9oAsNCm9aM3/SOv4YtBMqZbYj10R7dkq8byBqxGY/ncFwhf2oQzMV+LCRlWoDSEBJ3COiR1yeDvMtsoOsuFQ==", - "dev": true, - "optional": true, - "peerDependencies": { - "graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + "node_modules/universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "engines": { + "node": ">= 4.0.0" } }, - "node_modules/@grpc/grpc-js": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.1.3.tgz", - "integrity": "sha512-HtOsk2YUofBcm1GkPqGzb6pwHhv+74eC2CUO229USIDKRtg30ycbZmqC+HdNtY3nHqoc9IgcRlntFgopyQoYCA==", - "dev": true, + "node_modules/utf-8-validate": { + "version": "5.0.10", + "resolved": "https://registry.npmjs.org/utf-8-validate/-/utf-8-validate-5.0.10.tgz", + "integrity": "sha512-Z6czzLq4u8fPOyx7TU6X3dvUZVvoJmxSQ+IcrlmagKhilxlhZgxPK6C5Jqbkw1IDUmFTM+cz9QDnnLTwDz/2gQ==", + "hasInstallScript": true, + "optional": true, + "peer": true, "dependencies": { - "semver": "^6.2.0" + "node-gyp-build": "^4.3.0" }, "engines": { - "node": "^8.13.0 || >=10.10.0" - } - }, - "node_modules/@grpc/grpc-js/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": ">=6.14.2" } }, - "node_modules/@grpc/proto-loader": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/@grpc/proto-loader/-/proto-loader-0.5.5.tgz", - "integrity": "sha512-WwN9jVNdHRQoOBo9FDH7qU+mgfjPc8GygPYms3M+y3fbQLfnCe/Kv/E01t7JRgnrsOHH8euvSbed3mIalXhwqQ==", - "dev": true, + "node_modules/wordwrapjs": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/wordwrapjs/-/wordwrapjs-4.0.1.tgz", + "integrity": "sha512-kKlNACbvHrkpIw6oPeYDSmdCTu2hdMHoyXLTcUKala++lx5Y+wjJ/e474Jqv5abnVmwxw08DiTuHmw69lJGksA==", "dependencies": { - "lodash.camelcase": "^4.3.0", - "protobufjs": "^6.8.6" + "reduce-flatten": "^2.0.0", + "typical": "^5.2.0" }, "engines": { - "node": ">=6" + "node": ">=8.0.0" } }, - "node_modules/@josephg/resolvable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@josephg/resolvable/-/resolvable-1.0.1.tgz", - "integrity": "sha512-CtzORUwWTTOTqfVtHaKRJ0I1kNQd1bpn3sUh8I3nJDVY+5/M/Oe1DnEWzPQvqq/xPIIkzzzIP7mfCoAjFRvDhg==", - "dev": true, - "optional": true - }, - "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz", - "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==", - "dev": true, + "node_modules/wordwrapjs/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": ">=6.0.0" - } - }, - "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 - }, - "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.9", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", - "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", - "dev": true, - "dependencies": { - "@jridgewell/resolve-uri": "^3.0.3", - "@jridgewell/sourcemap-codec": "^1.4.10" + "node": ">=8" } }, - "node_modules/@morgan-stanley/ts-mocking-bird": { - "version": "0.6.4", - "resolved": "https://registry.npmjs.org/@morgan-stanley/ts-mocking-bird/-/ts-mocking-bird-0.6.4.tgz", - "integrity": "sha512-57VJIflP8eR2xXa9cD1LUawh+Gh+BVQfVu0n6GALyg/AqV/Nz25kDRvws3i9kIe1PTrbsZZOYpsYp6bXPd6nVA==", - "dependencies": { - "lodash": "^4.17.16", - "uuid": "^7.0.3" - }, - "peerDependencies": { - "jasmine": "2.x || 3.x || 4.x", - "jest": "26.x || 27.x || 28.x", - "typescript": ">=4.2" - }, - "peerDependenciesMeta": { - "jasmine": { - "optional": true - }, - "jest": { - "optional": true - } + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + } + }, + "dependencies": { + "@ethersproject/abi": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/abi/-/abi-5.7.0.tgz", + "integrity": "sha512-351ktp42TiRcYB3H1OP8yajPeAQstMW/yCFokj/AthP9bLHzQFPlOrxOcwYEDkUAICmOHljvN4K39OMTMUa9RA==", + "peer": true, + "requires": { + "@ethersproject/address": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/hash": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/strings": "^5.7.0" } }, - "node_modules/@morgan-stanley/ts-mocking-bird/node_modules/uuid": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-7.0.3.tgz", - "integrity": "sha512-DPSke0pXhTZgoF/d+WSt2QaKMCFSfx7QegxEWT+JOuHF5aWrKEn0G+ztjuJg/gG8/ItK+rbPCD/yNv8yyih6Cg==", - "bin": { - "uuid": "dist/bin/uuid" + "@ethersproject/abstract-provider": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/abstract-provider/-/abstract-provider-5.7.0.tgz", + "integrity": "sha512-R41c9UkchKCpAqStMYUpdunjo3pkEvZC3FAwZn5S5MGbXoMQOHIdHItezTETxAO5bevtMApSyEhn9+CHcDsWBw==", + "peer": true, + "requires": { + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/networks": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/transactions": "^5.7.0", + "@ethersproject/web": "^5.7.0" } }, - "node_modules/@multiformats/base-x": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@multiformats/base-x/-/base-x-4.0.1.tgz", - "integrity": "sha512-eMk0b9ReBbV23xXU693TAIrLyeO5iTgBZGSJfpqriG8UkYvr/hC9u9pyMlAakDNHWmbhMZCDs6KQO0jzKD8OTw==" - }, - "node_modules/@openzeppelin/cli": { - "version": "2.8.2", - "resolved": "https://registry.npmjs.org/@openzeppelin/cli/-/cli-2.8.2.tgz", - "integrity": "sha512-K0m1UAywnweAwzbwwmqI+JSezDRnqDRWkKQMI2VV6T03LOXcG/L9oqO9KRORI8md+KbxBW9v5rmNV63wGQIRlA==", - "dev": true, - "dependencies": { - "@openzeppelin/fuzzy-solidity-import-parser": "^0.1.2", - "@openzeppelin/upgrades": "2.8.0", - "@types/fs-extra": "^7.0.0", - "@types/npm": "^2.0.29", - "@types/semver": "^5.5.0", - "ajv": "^6.10.0", - "axios": "^0.18.0", - "bignumber.js": "^8.0.2", - "chalk": "^2.4.1", - "cheerio": "^1.0.0-rc.2", - "commander": "^2.15.1", - "env-paths": "^2.2.0", - "ethereumjs-util": "^6.1.0", - "find-up": "^3.0.0", - "firebase": "^7.8.0", - "fs-extra": "^7.0.1", - "glob": "^7.1.6", - "inquirer": "^6.4.1", - "is-url": "^1.2.4", - "lockfile": "^1.0.4", - "npm-programmatic": "0.0.12", - "rlp": "^2.2.3", - "semver": "^5.5.0", - "simple-git": "^1.110.0", - "solc-wrapper": "^0.6.3", - "spinnies": "^0.3.0", - "toposort": "^2.0.2", - "truffle-config": "1.1.16", - "ts-generator": "^0.0.8", - "typechain": "^1.0.3", - "typechain-target-truffle": "^1.0.1", - "typechain-target-web3-v1": "^1.0.1", - "underscore": "^1.9.1", - "uuid": "^3.3.3", - "web3": "1.2.2", - "web3-eth": "1.2.2", - "web3-eth-contract": "1.2.2", - "web3-utils": "1.2.2" - }, - "bin": { - "openzeppelin": "lib/bin/oz-cli.js", - "oz": "lib/bin/oz-cli.js", - "zos": "lib/bin/oz-cli.js" + "@ethersproject/abstract-signer": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/abstract-signer/-/abstract-signer-5.7.0.tgz", + "integrity": "sha512-a16V8bq1/Cz+TGCkE2OPMTOUDLS3grCpdjoJCYNnVBbdYEMSgKrU0+B90s8b6H+ByYTBZN7a3g76jdIJi7UfKQ==", + "peer": true, + "requires": { + "@ethersproject/abstract-provider": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0" } }, - "node_modules/@openzeppelin/cli/node_modules/array-back": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-2.0.0.tgz", - "integrity": "sha512-eJv4pLLufP3g5kcZry0j6WXpIbzYw9GUB4mVJZno9wfwiBxbizTnHCw3VJb07cBihbFX48Y7oSrW9y+gt4glyw==", - "dev": true, - "dependencies": { - "typical": "^2.6.1" - }, - "engines": { - "node": ">=4" + "@ethersproject/address": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/address/-/address-5.7.0.tgz", + "integrity": "sha512-9wYhYt7aghVGo758POM5nqcOMaE168Q6aRLJZwUmiqSrAungkG74gSSeKEIR7ukixesdRZGPgVqme6vmxs1fkA==", + "peer": true, + "requires": { + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/rlp": "^5.7.0" } }, - "node_modules/@openzeppelin/cli/node_modules/command-line-args": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/command-line-args/-/command-line-args-4.0.7.tgz", - "integrity": "sha512-aUdPvQRAyBvQd2n7jXcsMDz68ckBJELXNzBybCHOibUWEg0mWTnaYCSRU8h9R+aNRSvDihJtssSRCiDRpLaezA==", - "dev": true, - "dependencies": { - "array-back": "^2.0.0", - "find-replace": "^1.0.3", - "typical": "^2.6.1" - }, - "bin": { - "command-line-args": "bin/cli.js" + "@ethersproject/base64": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/base64/-/base64-5.7.0.tgz", + "integrity": "sha512-Dr8tcHt2mEbsZr/mwTPIQAf3Ai0Bks/7gTw9dSqk1mQvhW3XvRlmDJr/4n+wg1JmCl16NZue17CDh8xb/vZ0sQ==", + "peer": true, + "requires": { + "@ethersproject/bytes": "^5.7.0" } }, - "node_modules/@openzeppelin/cli/node_modules/find-replace": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/find-replace/-/find-replace-1.0.3.tgz", - "integrity": "sha512-KrUnjzDCD9426YnCP56zGYy/eieTnhtK6Vn++j+JJzmlsWWwEkDnsyVF575spT6HJ6Ow9tlbT3TQTDsa+O4UWA==", - "dev": true, - "dependencies": { - "array-back": "^1.0.4", - "test-value": "^2.1.0" - }, - "engines": { - "node": ">=4.0.0" + "@ethersproject/basex": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@ethersproject/basex/-/basex-5.4.0.tgz", + "integrity": "sha512-J07+QCVJ7np2bcpxydFVf/CuYo9mZ7T73Pe7KQY4c1lRlrixMeblauMxHXD0MPwFmUHZIILDNViVkykFBZylbg==", + "peer": true, + "requires": { + "@ethersproject/bytes": "^5.4.0", + "@ethersproject/properties": "^5.4.0" } }, - "node_modules/@openzeppelin/cli/node_modules/find-replace/node_modules/array-back": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-1.0.4.tgz", - "integrity": "sha512-1WxbZvrmyhkNoeYcizokbmh5oiOCIfyvGtcqbK3Ls1v1fKcquzxnQSceOx6tzq7jmai2kFLWIpGND2cLhH6TPw==", - "dev": true, - "dependencies": { - "typical": "^2.6.0" + "@ethersproject/bignumber": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/bignumber/-/bignumber-5.7.0.tgz", + "integrity": "sha512-n1CAdIHRWjSucQO3MC1zPSVgV/6dy/fjL9pMrPP9peL+QxEg9wOsVqwD4+818B6LUEtaXzVHQiuivzRoxPxUGw==", + "peer": true, + "requires": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "bn.js": "^5.2.1" }, - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/@openzeppelin/cli/node_modules/js-sha3": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.8.0.tgz", - "integrity": "sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q==", - "dev": true - }, - "node_modules/@openzeppelin/cli/node_modules/typechain": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/typechain/-/typechain-1.0.5.tgz", - "integrity": "sha512-gbQmJXPKuYQ0p3tK+dMhpdQql/UPtSnkPQXw2QM/aqwCengI86z2vEM2e5rVQpmk/blFx1PYNdApSDxE12rR1Q==", - "dev": true, "dependencies": { - "command-line-args": "^4.0.7", - "debug": "^3.0.1", - "fs-extra": "^7.0.0", - "js-sha3": "^0.8.0", - "lodash": "^4.17.15", - "ts-generator": "^0.0.8" - }, - "bin": { - "typechain": "dist/cli/cli.js" + "bn.js": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", + "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==", + "peer": true + } } }, - "node_modules/@openzeppelin/cli/node_modules/typical": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/typical/-/typical-2.6.1.tgz", - "integrity": "sha512-ofhi8kjIje6npGozTip9Fr8iecmYfEbS06i0JnIg+rh51KakryWF4+jX8lLKZVhy6N+ID45WYSFCxPOdTWCzNg==", - "dev": true - }, - "node_modules/@openzeppelin/contracts": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/@openzeppelin/contracts/-/contracts-4.3.1.tgz", - "integrity": "sha512-QjgbPPlmDK2clK1hzjw2ROfY8KA5q+PfhDUUxZFEBCZP9fi6d5FuNoh/Uq0oCTMEKPmue69vhX2jcl0N/tFKGw==", - "dev": true - }, - "node_modules/@openzeppelin/fuzzy-solidity-import-parser": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/@openzeppelin/fuzzy-solidity-import-parser/-/fuzzy-solidity-import-parser-0.1.2.tgz", - "integrity": "sha512-leqEwfs8GlrPDrVcVc8Hv6LJ62ZzR0RgjwQNCkpT6H5jW9RB8YdR0a3inHoricSvw+sKI1b1hOqsCtPPZNnhng==", - "dev": true - }, - "node_modules/@openzeppelin/upgrades": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/@openzeppelin/upgrades/-/upgrades-2.8.0.tgz", - "integrity": "sha512-LzjTQPeljPsgHDPdZyH9cMCbIHZILgd2cpNcYEkdsC2IylBYRHShlbEDXJV9snnqg9JWfzPiKIqyj3XVliwtqQ==", - "dev": true, - "dependencies": { - "@types/cbor": "^2.0.0", - "axios": "^0.18.0", - "bignumber.js": "^7.2.0", - "cbor": "^4.1.5", - "chalk": "^2.4.1", - "ethers": "^4.0.20", - "glob": "^7.1.3", - "lodash": "^4.17.15", - "semver": "^5.5.1", - "spinnies": "^0.4.2", - "truffle-flattener": "^1.4.0", - "web3": "1.2.2", - "web3-eth": "1.2.2", - "web3-eth-contract": "1.2.2", - "web3-utils": "1.2.2" + "@ethersproject/bytes": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/bytes/-/bytes-5.7.0.tgz", + "integrity": "sha512-nsbxwgFXWh9NyYWo+U8atvmMsSdKJprTcICAkvbBffT75qDocbuggBU0SJiVK2MuTrp0q+xvLkTnGMPK1+uA9A==", + "peer": true, + "requires": { + "@ethersproject/logger": "^5.7.0" } }, - "node_modules/@openzeppelin/upgrades/node_modules/bignumber.js": { - "version": "7.2.1", - "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-7.2.1.tgz", - "integrity": "sha512-S4XzBk5sMB+Rcb/LNcpzXr57VRTxgAvaAEDAl1AwRx27j00hT84O6OkteE7u8UB3NuaaygCRrEpqox4uDOrbdQ==", - "dev": true, - "engines": { - "node": "*" + "@ethersproject/constants": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/constants/-/constants-5.7.0.tgz", + "integrity": "sha512-DHI+y5dBNvkpYUMiRQyxRBYBefZkJfo70VUkUAsRjcPs47muV9evftfZ0PJVCXYbAiCgght0DtcF9srFQmIgWA==", + "peer": true, + "requires": { + "@ethersproject/bignumber": "^5.7.0" } }, - "node_modules/@openzeppelin/upgrades/node_modules/ethers": { - "version": "4.0.49", - "resolved": "https://registry.npmjs.org/ethers/-/ethers-4.0.49.tgz", - "integrity": "sha512-kPltTvWiyu+OktYy1IStSO16i2e7cS9D9OxZ81q2UUaiNPVrm/RTcbxamCXF9VUSKzJIdJV68EAIhTEVBalRWg==", - "dev": true, - "dependencies": { - "aes-js": "3.0.0", - "bn.js": "^4.11.9", - "elliptic": "6.5.4", - "hash.js": "1.1.3", - "js-sha3": "0.5.7", - "scrypt-js": "2.0.4", - "setimmediate": "1.0.4", - "uuid": "2.0.1", - "xmlhttprequest": "1.8.0" + "@ethersproject/hash": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/hash/-/hash-5.7.0.tgz", + "integrity": "sha512-qX5WrQfnah1EFnO5zJv1v46a8HW0+E5xuBBDTwMFZLuVTx0tbU2kkx15NqdjxecrLGatQN9FGQKpb1FKdHCt+g==", + "peer": true, + "requires": { + "@ethersproject/abstract-signer": "^5.7.0", + "@ethersproject/address": "^5.7.0", + "@ethersproject/base64": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/strings": "^5.7.0" } }, - "node_modules/@openzeppelin/upgrades/node_modules/spinnies": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/spinnies/-/spinnies-0.4.3.tgz", - "integrity": "sha512-TTA2vWXrXJpfThWAl2t2hchBnCMI1JM5Wmb2uyI7Zkefdw/xO98LDy6/SBYwQPiYXL3swx3Eb44ZxgoS8X5wpA==", - "dev": true, + "@ethersproject/keccak256": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/keccak256/-/keccak256-5.7.0.tgz", + "integrity": "sha512-2UcPboeL/iW+pSg6vZ6ydF8tCnv3Iu/8tUmLLzWWGzxWKFFqOBQFLo6uLUv6BDrLgCDfN28RJ/wtByx+jZ4KBg==", + "peer": true, + "requires": { + "@ethersproject/bytes": "^5.7.0", + "js-sha3": "0.8.0" + }, "dependencies": { - "chalk": "^2.4.2", - "cli-cursor": "^3.0.0", - "strip-ansi": "^5.2.0" + "js-sha3": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.8.0.tgz", + "integrity": "sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q==", + "peer": true + } } }, - "node_modules/@openzeppelin/upgrades/node_modules/uuid": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-2.0.1.tgz", - "integrity": "sha512-nWg9+Oa3qD2CQzHIP4qKUqwNfzKn8P0LtFhotaCTFchsV7ZfDhAybeip/HZVeMIpZi9JgY1E3nUlwaCmZT1sEg==", - "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", - "dev": true - }, - "node_modules/@protobufjs/aspromise": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", - "integrity": "sha1-m4sMxmPWaafY9vXQiToU00jzD78=", - "dev": true - }, - "node_modules/@protobufjs/base64": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz", - "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==", - "dev": true - }, - "node_modules/@protobufjs/codegen": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz", - "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==", - "dev": true + "@ethersproject/logger": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/logger/-/logger-5.7.0.tgz", + "integrity": "sha512-0odtFdXu/XHtjQXJYA3u9G0G8btm0ND5Cu8M7i5vhEcE8/HmF4Lbdqanwyv4uQTr2tx6b7fQRmgLrsnpQlmnig==", + "peer": true }, - "node_modules/@protobufjs/eventemitter": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz", - "integrity": "sha1-NVy8mLr61ZePntCV85diHx0Ga3A=", - "dev": true + "@ethersproject/networks": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/@ethersproject/networks/-/networks-5.7.1.tgz", + "integrity": "sha512-n/MufjFYv3yFcUyfhnXotyDlNdFb7onmkSy8aQERi2PjNcnWQ66xXxa3XlS8nCcA8aJKJjIIMNJTC7tu80GwpQ==", + "peer": true, + "requires": { + "@ethersproject/logger": "^5.7.0" + } }, - "node_modules/@protobufjs/fetch": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz", - "integrity": "sha1-upn7WYYUr2VwDBYZ/wbUVLDYTEU=", - "dev": true, - "dependencies": { - "@protobufjs/aspromise": "^1.1.1", - "@protobufjs/inquire": "^1.1.0" + "@ethersproject/properties": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/properties/-/properties-5.7.0.tgz", + "integrity": "sha512-J87jy8suntrAkIZtecpxEPxY//szqr1mlBaYlQ0r4RCaiD2hjheqF9s1LVE8vVuJCXisjIP+JgtK/Do54ej4Sw==", + "peer": true, + "requires": { + "@ethersproject/logger": "^5.7.0" } }, - "node_modules/@protobufjs/float": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz", - "integrity": "sha1-Xp4avctz/Ap8uLKR33jIy9l7h9E=", - "dev": true - }, - "node_modules/@protobufjs/inquire": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz", - "integrity": "sha1-/yAOPnzyQp4tyvwRQIKOjMY48Ik=", - "dev": true - }, - "node_modules/@protobufjs/path": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz", - "integrity": "sha1-bMKyDFya1q0NzP0hynZz2Nf79o0=", - "dev": true - }, - "node_modules/@protobufjs/pool": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz", - "integrity": "sha1-Cf0V8tbTq/qbZbw2ZQbWrXhG/1Q=", - "dev": true - }, - "node_modules/@protobufjs/utf8": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", - "integrity": "sha1-p3c2C1s5oaLlEG+OhY8v0tBgxXA=", - "dev": true - }, - "node_modules/@redux-saga/core": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/@redux-saga/core/-/core-1.2.3.tgz", - "integrity": "sha512-U1JO6ncFBAklFTwoQ3mjAeQZ6QGutsJzwNBjgVLSWDpZTRhobUzuVDS1qH3SKGJD8fvqoaYOjp6XJ3gCmeZWgA==", - "dev": true, - "dependencies": { - "@babel/runtime": "^7.6.3", - "@redux-saga/deferred": "^1.2.1", - "@redux-saga/delay-p": "^1.2.1", - "@redux-saga/is": "^1.1.3", - "@redux-saga/symbols": "^1.1.3", - "@redux-saga/types": "^1.2.1", - "redux": "^4.0.4", - "typescript-tuple": "^2.2.1" + "@ethersproject/providers": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/@ethersproject/providers/-/providers-5.4.1.tgz", + "integrity": "sha512-p06eiFKz8nu/5Ju0kIX024gzEQIgE5pvvGrBCngpyVjpuLtUIWT3097Agw4mTn9/dEA0FMcfByzFqacBMSgCVg==", + "peer": true, + "requires": { + "@ethersproject/abstract-provider": "^5.4.0", + "@ethersproject/abstract-signer": "^5.4.0", + "@ethersproject/address": "^5.4.0", + "@ethersproject/basex": "^5.4.0", + "@ethersproject/bignumber": "^5.4.0", + "@ethersproject/bytes": "^5.4.0", + "@ethersproject/constants": "^5.4.0", + "@ethersproject/hash": "^5.4.0", + "@ethersproject/logger": "^5.4.0", + "@ethersproject/networks": "^5.4.0", + "@ethersproject/properties": "^5.4.0", + "@ethersproject/random": "^5.4.0", + "@ethersproject/rlp": "^5.4.0", + "@ethersproject/sha2": "^5.4.0", + "@ethersproject/strings": "^5.4.0", + "@ethersproject/transactions": "^5.4.0", + "@ethersproject/web": "^5.4.0", + "bech32": "1.1.4", + "ws": "7.4.6" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/redux-saga" - } - }, - "node_modules/@redux-saga/core/node_modules/redux": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/redux/-/redux-4.2.1.tgz", - "integrity": "sha512-LAUYz4lc+Do8/g7aeRa8JkyDErK6ekstQaqWQrNRW//MY1TvCEpMtpTWvlQ+FPbWCx+Xixu/6SHt5N0HR+SB4w==", - "dev": true, - "dependencies": { - "@babel/runtime": "^7.9.2" - } - }, - "node_modules/@redux-saga/deferred": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@redux-saga/deferred/-/deferred-1.2.1.tgz", - "integrity": "sha512-cmin3IuuzMdfQjA0lG4B+jX+9HdTgHZZ+6u3jRAOwGUxy77GSlTi4Qp2d6PM1PUoTmQUR5aijlA39scWWPF31g==", - "dev": true - }, - "node_modules/@redux-saga/delay-p": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@redux-saga/delay-p/-/delay-p-1.2.1.tgz", - "integrity": "sha512-MdiDxZdvb1m+Y0s4/hgdcAXntpUytr9g0hpcOO1XFVyyzkrDu3SKPgBFOtHn7lhu7n24ZKIAT1qtKyQjHqRd+w==", - "dev": true, "dependencies": { - "@redux-saga/symbols": "^1.1.3" + "bech32": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/bech32/-/bech32-1.1.4.tgz", + "integrity": "sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ==", + "peer": true + }, + "ws": { + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz", + "integrity": "sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==", + "peer": true, + "requires": {} + } } }, - "node_modules/@redux-saga/is": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@redux-saga/is/-/is-1.1.3.tgz", - "integrity": "sha512-naXrkETG1jLRfVfhOx/ZdLj0EyAzHYbgJWkXbB3qFliPcHKiWbv/ULQryOAEKyjrhiclmr6AMdgsXFyx7/yE6Q==", - "dev": true, - "dependencies": { - "@redux-saga/symbols": "^1.1.3", - "@redux-saga/types": "^1.2.1" + "@ethersproject/random": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@ethersproject/random/-/random-5.4.0.tgz", + "integrity": "sha512-pnpWNQlf0VAZDEOVp1rsYQosmv2o0ITS/PecNw+mS2/btF8eYdspkN0vIXrCMtkX09EAh9bdk8GoXmFXM1eAKw==", + "peer": true, + "requires": { + "@ethersproject/bytes": "^5.4.0", + "@ethersproject/logger": "^5.4.0" } }, - "node_modules/@redux-saga/symbols": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@redux-saga/symbols/-/symbols-1.1.3.tgz", - "integrity": "sha512-hCx6ZvU4QAEUojETnX8EVg4ubNLBFl1Lps4j2tX7o45x/2qg37m3c6v+kSp8xjDJY+2tJw4QB3j8o8dsl1FDXg==", - "dev": true - }, - "node_modules/@redux-saga/types": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@redux-saga/types/-/types-1.2.1.tgz", - "integrity": "sha512-1dgmkh+3so0+LlBWRhGA33ua4MYr7tUOj+a9Si28vUi0IUFNbff1T3sgpeDJI/LaC75bBYnQ0A3wXjn0OrRNBA==", - "dev": true - }, - "node_modules/@resolver-engine/core": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/@resolver-engine/core/-/core-0.2.1.tgz", - "integrity": "sha512-nsLQHmPJ77QuifqsIvqjaF5B9aHnDzJjp73Q1z6apY3e9nqYrx4Dtowhpsf7Jwftg/XzVDEMQC+OzUBNTS+S1A==", - "dev": true, - "dependencies": { - "debug": "^3.1.0", - "request": "^2.85.0" + "@ethersproject/rlp": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/rlp/-/rlp-5.7.0.tgz", + "integrity": "sha512-rBxzX2vK8mVF7b0Tol44t5Tb8gomOHkj5guL+HhzQ1yBh/ydjGnpw6at+X6Iw0Kp3OzzzkcKp8N9r0W4kYSs9w==", + "peer": true, + "requires": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0" } }, - "node_modules/@resolver-engine/fs": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/@resolver-engine/fs/-/fs-0.2.1.tgz", - "integrity": "sha512-7kJInM1Qo2LJcKyDhuYzh9ZWd+mal/fynfL9BNjWOiTcOpX+jNfqb/UmGUqros5pceBITlWGqS4lU709yHFUbg==", - "dev": true, + "@ethersproject/sha2": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@ethersproject/sha2/-/sha2-5.4.0.tgz", + "integrity": "sha512-siheo36r1WD7Cy+bDdE1BJ8y0bDtqXCOxRMzPa4bV1TGt/eTUUt03BHoJNB6reWJD8A30E/pdJ8WFkq+/uz4Gg==", + "peer": true, + "requires": { + "@ethersproject/bytes": "^5.4.0", + "@ethersproject/logger": "^5.4.0", + "hash.js": "1.1.7" + }, "dependencies": { - "@resolver-engine/core": "^0.2.1", - "debug": "^3.1.0" + "hash.js": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", + "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", + "peer": true, + "requires": { + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.1" + } + } } }, - "node_modules/@resolver-engine/imports": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/@resolver-engine/imports/-/imports-0.2.2.tgz", - "integrity": "sha512-u5/HUkvo8q34AA+hnxxqqXGfby5swnH0Myw91o3Sm2TETJlNKXibFGSKBavAH+wvWdBi4Z5gS2Odu0PowgVOUg==", - "dev": true, + "@ethersproject/signing-key": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/signing-key/-/signing-key-5.7.0.tgz", + "integrity": "sha512-MZdy2nL3wO0u7gkB4nA/pEf8lu1TlFswPNmy8AiYkfKTdO6eXBJyUdmHO/ehm/htHw9K/qF8ujnTyUAD+Ry54Q==", + "peer": true, + "requires": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "bn.js": "^5.2.1", + "elliptic": "6.5.4", + "hash.js": "1.1.7" + }, "dependencies": { - "@resolver-engine/core": "^0.2.1", - "debug": "^3.1.0", - "hosted-git-info": "^2.6.0" + "bn.js": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", + "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==", + "peer": true + }, + "hash.js": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", + "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", + "peer": true, + "requires": { + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.1" + } + } } }, - "node_modules/@resolver-engine/imports-fs": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/@resolver-engine/imports-fs/-/imports-fs-0.2.2.tgz", - "integrity": "sha512-gFCgMvCwyppjwq0UzIjde/WI+yDs3oatJhozG9xdjJdewwtd7LiF0T5i9lrHAUtqrQbqoFE4E+ZMRVHWpWHpKQ==", - "dev": true, - "dependencies": { - "@resolver-engine/fs": "^0.2.1", - "@resolver-engine/imports": "^0.2.2", - "debug": "^3.1.0" + "@ethersproject/strings": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/strings/-/strings-5.7.0.tgz", + "integrity": "sha512-/9nu+lj0YswRNSH0NXYqrh8775XNyEdUQAuf3f+SmOrnVewcJ5SBNAjF7lpgehKi4abvNNXyf+HX86czCdJ8Mg==", + "peer": true, + "requires": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/logger": "^5.7.0" } }, - "node_modules/@sindresorhus/is": { - "version": "0.14.0", - "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", - "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==", - "dev": true, - "engines": { - "node": ">=6" + "@ethersproject/transactions": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/transactions/-/transactions-5.7.0.tgz", + "integrity": "sha512-kmcNicCp1lp8qanMTC3RIikGgoJ80ztTyvtsFvCYpSCfkjhD0jZ2LOrnbcuxuToLIUYYf+4XwD1rP+B/erDIhQ==", + "peer": true, + "requires": { + "@ethersproject/address": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/rlp": "^5.7.0", + "@ethersproject/signing-key": "^5.7.0" } }, - "node_modules/@solidity-parser/parser": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/@solidity-parser/parser/-/parser-0.14.5.tgz", - "integrity": "sha512-6dKnHZn7fg/iQATVEzqyUOyEidbn05q7YA2mQ9hC0MMXhhV3/JrsxmFSYZAcr7j1yUP700LLhTruvJ3MiQmjJg==", - "dev": true, - "dependencies": { - "antlr4ts": "^0.5.0-alpha.4" + "@ethersproject/web": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/@ethersproject/web/-/web-5.7.1.tgz", + "integrity": "sha512-Gueu8lSvyjBWL4cYsWsjh6MtMwM0+H4HvqFPZfB6dV8ctbP9zFAO73VG1cMWae0FLPCtz0peKPpZY8/ugJJX2w==", + "peer": true, + "requires": { + "@ethersproject/base64": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/strings": "^5.7.0" } }, - "node_modules/@szmarczak/http-timer": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz", - "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==", - "dev": true, - "dependencies": { - "defer-to-connect": "^1.0.1" + "@morgan-stanley/ts-mocking-bird": { + "version": "0.6.4", + "resolved": "https://registry.npmjs.org/@morgan-stanley/ts-mocking-bird/-/ts-mocking-bird-0.6.4.tgz", + "integrity": "sha512-57VJIflP8eR2xXa9cD1LUawh+Gh+BVQfVu0n6GALyg/AqV/Nz25kDRvws3i9kIe1PTrbsZZOYpsYp6bXPd6nVA==", + "requires": { + "lodash": "^4.17.16", + "uuid": "^7.0.3" }, - "engines": { - "node": ">=6" - } - }, - "node_modules/@truffle/abi-utils": { - "version": "0.3.9", - "resolved": "https://registry.npmjs.org/@truffle/abi-utils/-/abi-utils-0.3.9.tgz", - "integrity": "sha512-G5dqgwRHx5zwlXjz3QT8OJVfB2cOqWwD6DwKso0KttUt/zejhCjnkKq72rSgyeLMkz7wBB9ERLOsupLBILM8MA==", - "dev": true, "dependencies": { - "change-case": "3.0.2", - "fast-check": "3.1.1", - "web3-utils": "1.8.2" - } - }, - "node_modules/@truffle/abi-utils/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==", - "dev": true, - "dependencies": { - "@types/node": "*" + "uuid": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-7.0.3.tgz", + "integrity": "sha512-DPSke0pXhTZgoF/d+WSt2QaKMCFSfx7QegxEWT+JOuHF5aWrKEn0G+ztjuJg/gG8/ItK+rbPCD/yNv8yyih6Cg==" + } } }, - "node_modules/@truffle/abi-utils/node_modules/bn.js": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", - "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==", + "@openzeppelin/contracts": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/@openzeppelin/contracts/-/contracts-4.3.1.tgz", + "integrity": "sha512-QjgbPPlmDK2clK1hzjw2ROfY8KA5q+PfhDUUxZFEBCZP9fi6d5FuNoh/Uq0oCTMEKPmue69vhX2jcl0N/tFKGw==", "dev": true }, - "node_modules/@truffle/abi-utils/node_modules/ethereumjs-util": { - "version": "7.1.5", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.5.tgz", - "integrity": "sha512-SDl5kKrQAudFBUe5OJM9Ac6WmMyYmXX/6sTmLZ3ffG2eY6ZIGBes3pEDxNN6V72WyOw4CPD5RomKdsa8DAAwLg==", - "dev": true, - "dependencies": { - "@types/bn.js": "^5.1.0", - "bn.js": "^5.1.2", - "create-hash": "^1.1.2", - "ethereum-cryptography": "^0.1.3", - "rlp": "^2.2.4" + "@typechain/ethers-v5": { + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/@typechain/ethers-v5/-/ethers-v5-10.2.0.tgz", + "integrity": "sha512-ikaq0N/w9fABM+G01OFmU3U3dNnyRwEahkdvi9mqy1a3XwKiPZaF/lu54OcNaEWnpvEYyhhS0N7buCtLQqC92w==", + "requires": { + "lodash": "^4.17.15", + "ts-essentials": "^7.0.1" }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/@truffle/abi-utils/node_modules/web3-utils": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.8.2.tgz", - "integrity": "sha512-v7j6xhfLQfY7xQDrUP0BKbaNrmZ2/+egbqP9q3KYmOiPpnvAfol+32slgL0WX/5n8VPvKCK5EZ1HGrAVICSToA==", - "dev": true, "dependencies": { - "bn.js": "^5.2.1", - "ethereum-bloom-filters": "^1.0.6", - "ethereumjs-util": "^7.1.0", - "ethjs-unit": "0.1.6", - "number-to-bn": "1.7.0", - "randombytes": "^2.1.0", - "utf8": "3.0.0" - }, - "engines": { - "node": ">=8.0.0" + "ts-essentials": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/ts-essentials/-/ts-essentials-7.0.3.tgz", + "integrity": "sha512-8+gr5+lqO3G84KdiTSMRLtuyJ+nTBVRKuCrK4lidMPdVeEp0uqC875uE5NMcaA7YYMN7XsNiFQuMvasF8HT/xQ==", + "requires": {} + } } }, - "node_modules/@truffle/code-utils": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@truffle/code-utils/-/code-utils-3.0.2.tgz", - "integrity": "sha512-Q4FyYIX9G4GyMa8RJDk19kvgiyGZ1CGEx2RmVcXoCDZqEyiHLzqjvCRp+/fuBz2fv7szO6d+60LO1gLCGS1drQ==", - "dev": true, - "dependencies": { - "cbor": "^5.2.0" - } + "aes-js": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/aes-js/-/aes-js-3.0.0.tgz", + "integrity": "sha1-4h3xCtbCBTKVvLuNq0Cwnb6ofk0=", + "peer": true }, - "node_modules/@truffle/code-utils/node_modules/bignumber.js": { - "version": "9.1.1", - "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.1.1.tgz", - "integrity": "sha512-pHm4LsMJ6lzgNGVfZHjMoO8sdoRhOzOH4MLmY65Jg70bpxCKu5iOHNJyfF6OyvYw7t8Fpf35RuzUyqnQsj8Vig==", - "dev": true, - "engines": { - "node": "*" + "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==", + "requires": { + "color-convert": "^1.9.0" } }, - "node_modules/@truffle/code-utils/node_modules/cbor": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/cbor/-/cbor-5.2.0.tgz", - "integrity": "sha512-5IMhi9e1QU76ppa5/ajP1BmMWZ2FHkhAhjeVKQ/EFCgYSEaeVaoGtL7cxJskf9oCCk+XjzaIdc3IuU/dbA/o2A==", - "dev": true, - "dependencies": { - "bignumber.js": "^9.0.1", - "nofilter": "^1.0.4" - }, - "engines": { - "node": ">=6.0.0" - } + "array-back": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-3.1.0.tgz", + "integrity": "sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q==" }, - "node_modules/@truffle/compile-common": { - "version": "0.9.4", - "resolved": "https://registry.npmjs.org/@truffle/compile-common/-/compile-common-0.9.4.tgz", - "integrity": "sha512-mnqJB/hLiPHNf+WKwt/2MH6lv34xSG/SFCib7+ckAklutUqVLeFo8EwQxinuHNkU7LY0C+YgZXhK1WTCO5YRJQ==", - "dev": true, - "dependencies": { - "@truffle/error": "^0.2.0", - "colors": "1.4.0" - } + "balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" }, - "node_modules/@truffle/compile-common/node_modules/@truffle/error": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/@truffle/error/-/error-0.2.0.tgz", - "integrity": "sha512-Fe0/z4WWb7IP2gBnv3l6zqP87Y0kSMs7oiSLakKJq17q3GUunrHSdioKuNspdggxkXIBhEQLhi8C+LJdwmHKWQ==", - "dev": true + "bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", + "peer": true }, - "node_modules/@truffle/config": { - "version": "1.3.55", - "resolved": "https://registry.npmjs.org/@truffle/config/-/config-1.3.55.tgz", - "integrity": "sha512-18nLgtnkDCwMiTB3fyJxXzRzuO28wtJyY3YIgJBMg4ujKYpAxeI6hOPafhrp9qGqR7tC0Pj1o+ip3wFxEZJtuQ==", - "dev": true, - "optional": true, - "dependencies": { - "@truffle/error": "^0.2.0", - "@truffle/events": "^0.1.22", - "@truffle/provider": "^0.3.8", - "conf": "^10.1.2", - "debug": "^4.3.1", - "find-up": "^2.1.0", - "lodash": "^4.17.21", - "original-require": "^1.0.1" - } - }, - "node_modules/@truffle/config/node_modules/@truffle/error": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/@truffle/error/-/error-0.2.0.tgz", - "integrity": "sha512-Fe0/z4WWb7IP2gBnv3l6zqP87Y0kSMs7oiSLakKJq17q3GUunrHSdioKuNspdggxkXIBhEQLhi8C+LJdwmHKWQ==", - "dev": true, - "optional": true - }, - "node_modules/@truffle/config/node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "optional": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/@truffle/config/node_modules/find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ==", - "dev": true, - "optional": true, - "dependencies": { - "locate-path": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@truffle/config/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true, - "optional": true - }, - "node_modules/@truffle/dashboard-message-bus-client": { - "version": "0.1.10", - "resolved": "https://registry.npmjs.org/@truffle/dashboard-message-bus-client/-/dashboard-message-bus-client-0.1.10.tgz", - "integrity": "sha512-r9GpdR96T8xzk2Z3Qq5lowixT6hQwDZ9F3D3oNjOv2AOwBrC7dGkt1Ra1FQRsABn4K7LUVvnjjn6rALlsatAdw==", - "dev": true, - "optional": true, - "dependencies": { - "@truffle/dashboard-message-bus-common": "^0.1.5", - "@truffle/promise-tracker": "^0.1.5", - "axios": "1.2.4", - "debug": "^4.3.1", - "delay": "^5.0.0", - "isomorphic-ws": "^4.0.1", - "node-abort-controller": "^3.0.1", - "tiny-typed-emitter": "^2.1.0", - "ws": "^7.2.0" - } - }, - "node_modules/@truffle/dashboard-message-bus-client/node_modules/axios": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.2.4.tgz", - "integrity": "sha512-lIQuCfBJvZB/Bv7+RWUqEJqNShGOVpk9v7P0ZWx5Ip0qY6u7JBAU6dzQPMLasU9vHL2uD8av/1FDJXj7n6c39w==", - "dev": true, - "optional": true, - "dependencies": { - "follow-redirects": "^1.15.0", - "form-data": "^4.0.0", - "proxy-from-env": "^1.1.0" - } - }, - "node_modules/@truffle/dashboard-message-bus-client/node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "optional": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/@truffle/dashboard-message-bus-client/node_modules/follow-redirects": { - "version": "1.15.2", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", - "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://github.com/sponsors/RubenVerborgh" - } - ], - "optional": true, - "engines": { - "node": ">=4.0" - }, - "peerDependenciesMeta": { - "debug": { - "optional": true - } - } - }, - "node_modules/@truffle/dashboard-message-bus-client/node_modules/form-data": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", - "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", - "dev": true, - "optional": true, - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/@truffle/dashboard-message-bus-client/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true, - "optional": true - }, - "node_modules/@truffle/dashboard-message-bus-client/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, - "engines": { - "node": ">=8.3.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": "^5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, - "node_modules/@truffle/dashboard-message-bus-common": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/@truffle/dashboard-message-bus-common/-/dashboard-message-bus-common-0.1.5.tgz", - "integrity": "sha512-F4RfXi7ymNA3HFOlaujRJxAb3I8ciErCRQq+MZVaqjSPF9LSw23IizZsGpLaY43K2bGoBSxyNQRZWxsUEBujPQ==", - "dev": true, - "optional": true - }, - "node_modules/@truffle/db": { - "version": "2.0.23", - "resolved": "https://registry.npmjs.org/@truffle/db/-/db-2.0.23.tgz", - "integrity": "sha512-MoeqjxL5++plcBjZpm7eSFYovMzz6AF/FmMUvai94zdmgukbBmSHFegGLh2VruDvouFIpHw6IW5H6LEEkdddNg==", - "dev": true, - "optional": true, - "dependencies": { - "@graphql-tools/delegate": "^8.4.3", - "@graphql-tools/schema": "^8.3.1", - "@truffle/abi-utils": "^0.3.9", - "@truffle/code-utils": "^3.0.2", - "@truffle/config": "^1.3.55", - "abstract-leveldown": "^7.2.0", - "apollo-server": "^3.11.0", - "debug": "^4.3.1", - "fs-extra": "^9.1.0", - "graphql": "^15.3.0", - "graphql-tag": "^2.12.6", - "json-stable-stringify": "^1.0.1", - "pascal-case": "^2.0.1", - "pluralize": "^8.0.0", - "pouchdb": "7.3.0", - "pouchdb-adapter-memory": "^7.1.1", - "pouchdb-debug": "^7.1.1", - "pouchdb-find": "^7.0.0", - "web3-utils": "1.8.2" - } - }, - "node_modules/@truffle/db-loader": { - "version": "0.2.23", - "resolved": "https://registry.npmjs.org/@truffle/db-loader/-/db-loader-0.2.23.tgz", - "integrity": "sha512-YFsiyb0+gcGJJgk6/xihTnoom5lf8JS0nCeHGnKM1eIUtOcGTLgFs+jeXOpNa3DIgHHjZ3/p1CVWuZnXslf9UA==", - "dev": true, - "optionalDependencies": { - "@truffle/db": "^2.0.23" - } - }, - "node_modules/@truffle/db/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==", - "dev": true, - "optional": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@truffle/db/node_modules/abstract-leveldown": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-7.2.0.tgz", - "integrity": "sha512-DnhQwcFEaYsvYDnACLZhMmCWd3rkOeEvglpa4q5i/5Jlm3UIsWaxVzuXvDLFCSCWRO3yy2/+V/G7FusFgejnfQ==", - "dev": true, - "optional": true, - "dependencies": { - "buffer": "^6.0.3", - "catering": "^2.0.0", - "is-buffer": "^2.0.5", - "level-concat-iterator": "^3.0.0", - "level-supports": "^2.0.1", - "queue-microtask": "^1.2.3" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@truffle/db/node_modules/bn.js": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", - "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==", - "dev": true, - "optional": true - }, - "node_modules/@truffle/db/node_modules/buffer": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", - "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "optional": true, - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" - } - }, - "node_modules/@truffle/db/node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "optional": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/@truffle/db/node_modules/ethereumjs-util": { - "version": "7.1.5", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.5.tgz", - "integrity": "sha512-SDl5kKrQAudFBUe5OJM9Ac6WmMyYmXX/6sTmLZ3ffG2eY6ZIGBes3pEDxNN6V72WyOw4CPD5RomKdsa8DAAwLg==", - "dev": true, - "optional": true, - "dependencies": { - "@types/bn.js": "^5.1.0", - "bn.js": "^5.1.2", - "create-hash": "^1.1.2", - "ethereum-cryptography": "^0.1.3", - "rlp": "^2.2.4" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/@truffle/db/node_modules/fs-extra": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", - "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", - "dev": true, - "optional": true, - "dependencies": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@truffle/db/node_modules/jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", - "dev": true, - "optional": true, - "dependencies": { - "universalify": "^2.0.0" - }, - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/@truffle/db/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true, - "optional": true - }, - "node_modules/@truffle/db/node_modules/universalify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", - "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", - "dev": true, - "optional": true, - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/@truffle/db/node_modules/web3-utils": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.8.2.tgz", - "integrity": "sha512-v7j6xhfLQfY7xQDrUP0BKbaNrmZ2/+egbqP9q3KYmOiPpnvAfol+32slgL0WX/5n8VPvKCK5EZ1HGrAVICSToA==", - "dev": true, - "optional": true, - "dependencies": { - "bn.js": "^5.2.1", - "ethereum-bloom-filters": "^1.0.6", - "ethereumjs-util": "^7.1.0", - "ethjs-unit": "0.1.6", - "number-to-bn": "1.7.0", - "randombytes": "^2.1.0", - "utf8": "3.0.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@truffle/debugger": { - "version": "11.0.34", - "resolved": "https://registry.npmjs.org/@truffle/debugger/-/debugger-11.0.34.tgz", - "integrity": "sha512-24mJiH7o16OMxFHyH241yu0QnWOwbc7MOl8gFrOgWxoXwhkcNv0fy3++i/k7pi9EZdOGK84ppe4KuMTvW0x9Sg==", - "dev": true, - "dependencies": { - "@truffle/abi-utils": "^0.3.9", - "@truffle/codec": "^0.14.17", - "@truffle/source-map-utils": "^1.3.110", - "bn.js": "^5.1.3", - "debug": "^4.3.1", - "json-pointer": "^0.6.1", - "json-stable-stringify": "^1.0.1", - "lodash": "^4.17.21", - "redux": "^3.7.2", - "redux-saga": "1.0.0", - "reselect-tree": "^1.3.7", - "semver": "7.3.7", - "web3": "1.8.2", - "web3-eth-abi": "1.8.2" - } - }, - "node_modules/@truffle/debugger/node_modules/@ethereumjs/common": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@ethereumjs/common/-/common-2.5.0.tgz", - "integrity": "sha512-DEHjW6e38o+JmB/NO3GZBpW4lpaiBpkFgXF6jLcJ6gETBYpEyaA5nTimsWBUJR3Vmtm/didUEbNjajskugZORg==", - "dev": true, - "dependencies": { - "crc-32": "^1.2.0", - "ethereumjs-util": "^7.1.1" - } - }, - "node_modules/@truffle/debugger/node_modules/@ethereumjs/tx": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/@ethereumjs/tx/-/tx-3.3.2.tgz", - "integrity": "sha512-6AaJhwg4ucmwTvw/1qLaZUX5miWrwZ4nLOUsKyb/HtzS3BMw/CasKhdi1ims9mBKeK9sOJCH4qGKOBGyJCeeog==", - "dev": true, - "dependencies": { - "@ethereumjs/common": "^2.5.0", - "ethereumjs-util": "^7.1.2" - } - }, - "node_modules/@truffle/debugger/node_modules/@sindresorhus/is": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.6.0.tgz", - "integrity": "sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/is?sponsor=1" - } - }, - "node_modules/@truffle/debugger/node_modules/@szmarczak/http-timer": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-5.0.1.tgz", - "integrity": "sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw==", - "dev": true, - "dependencies": { - "defer-to-connect": "^2.0.1" - }, - "engines": { - "node": ">=14.16" - } - }, - "node_modules/@truffle/debugger/node_modules/@truffle/codec": { - "version": "0.14.17", - "resolved": "https://registry.npmjs.org/@truffle/codec/-/codec-0.14.17.tgz", - "integrity": "sha512-kD4dD86huLeaBEq5R8D1zleJEu6NsXbyYLdXl1V1TKdiO8odw5CBC6Y/+wdu5d3t1dyEYrTbhn1dqknZa52pmw==", - "dev": true, - "dependencies": { - "@truffle/abi-utils": "^0.3.9", - "@truffle/compile-common": "^0.9.4", - "big.js": "^6.0.3", - "bn.js": "^5.1.3", - "cbor": "^5.2.0", - "debug": "^4.3.1", - "lodash": "^4.17.21", - "semver": "7.3.7", - "utf8": "^3.0.0", - "web3-utils": "1.8.2" - } - }, - "node_modules/@truffle/debugger/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==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@truffle/debugger/node_modules/@types/node": { - "version": "12.20.55", - "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.55.tgz", - "integrity": "sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==", - "dev": true - }, - "node_modules/@truffle/debugger/node_modules/big.js": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/big.js/-/big.js-6.2.1.tgz", - "integrity": "sha512-bCtHMwL9LeDIozFn+oNhhFoq+yQ3BNdnsLSASUxLciOb1vgvpHsIO1dsENiGMgbb4SkP5TrzWzRiLddn8ahVOQ==", - "dev": true, - "engines": { - "node": "*" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/bigjs" - } - }, - "node_modules/@truffle/debugger/node_modules/bignumber.js": { - "version": "9.1.1", - "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.1.1.tgz", - "integrity": "sha512-pHm4LsMJ6lzgNGVfZHjMoO8sdoRhOzOH4MLmY65Jg70bpxCKu5iOHNJyfF6OyvYw7t8Fpf35RuzUyqnQsj8Vig==", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/@truffle/debugger/node_modules/bn.js": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", - "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==", - "dev": true - }, - "node_modules/@truffle/debugger/node_modules/cacheable-request": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-7.0.2.tgz", - "integrity": "sha512-pouW8/FmiPQbuGpkXQ9BAPv/Mo5xDGANgSNXzTzJ8DrKGuXOssM4wIQRjfanNRh3Yu5cfYPvcorqbhg2KIJtew==", - "dev": true, - "dependencies": { - "clone-response": "^1.0.2", - "get-stream": "^5.1.0", - "http-cache-semantics": "^4.0.0", - "keyv": "^4.0.0", - "lowercase-keys": "^2.0.0", - "normalize-url": "^6.0.1", - "responselike": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@truffle/debugger/node_modules/cacheable-request/node_modules/get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "dev": true, - "dependencies": { - "pump": "^3.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@truffle/debugger/node_modules/cacheable-request/node_modules/lowercase-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", - "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/@truffle/debugger/node_modules/cbor": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/cbor/-/cbor-5.2.0.tgz", - "integrity": "sha512-5IMhi9e1QU76ppa5/ajP1BmMWZ2FHkhAhjeVKQ/EFCgYSEaeVaoGtL7cxJskf9oCCk+XjzaIdc3IuU/dbA/o2A==", - "dev": true, - "dependencies": { - "bignumber.js": "^9.0.1", - "nofilter": "^1.0.4" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@truffle/debugger/node_modules/cross-fetch": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.5.tgz", - "integrity": "sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw==", - "dev": true, - "dependencies": { - "node-fetch": "2.6.7" - } - }, - "node_modules/@truffle/debugger/node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/@truffle/debugger/node_modules/decompress-response": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", - "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", - "dev": true, - "dependencies": { - "mimic-response": "^3.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@truffle/debugger/node_modules/defer-to-connect": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz", - "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/@truffle/debugger/node_modules/ethereumjs-util": { - "version": "7.1.5", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.5.tgz", - "integrity": "sha512-SDl5kKrQAudFBUe5OJM9Ac6WmMyYmXX/6sTmLZ3ffG2eY6ZIGBes3pEDxNN6V72WyOw4CPD5RomKdsa8DAAwLg==", - "dev": true, - "dependencies": { - "@types/bn.js": "^5.1.0", - "bn.js": "^5.1.2", - "create-hash": "^1.1.2", - "ethereum-cryptography": "^0.1.3", - "rlp": "^2.2.4" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/@truffle/debugger/node_modules/eventemitter3": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.4.tgz", - "integrity": "sha512-rlaVLnVxtxvoyLsQQFBx53YmXHDxRIzzTLbdfxqi4yocpSjAxXwkU0cScM5JgSKMqEhrZpnvQ2D9gjylR0AimQ==", - "dev": true - }, - "node_modules/@truffle/debugger/node_modules/fs-extra": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-4.0.3.tgz", - "integrity": "sha512-q6rbdDd1o2mAnQreO7YADIxf/Whx4AHBiRf6d+/cVT8h44ss+lHgxf1FemcqDnQt9X3ct4McHr+JMGlYSsK7Cg==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - }, - "node_modules/@truffle/debugger/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/@truffle/debugger/node_modules/got": { - "version": "12.1.0", - "resolved": "https://registry.npmjs.org/got/-/got-12.1.0.tgz", - "integrity": "sha512-hBv2ty9QN2RdbJJMK3hesmSkFTjVIHyIDDbssCKnSmq62edGgImJWD10Eb1k77TiV1bxloxqcFAVK8+9pkhOig==", - "dev": true, - "dependencies": { - "@sindresorhus/is": "^4.6.0", - "@szmarczak/http-timer": "^5.0.1", - "@types/cacheable-request": "^6.0.2", - "@types/responselike": "^1.0.0", - "cacheable-lookup": "^6.0.4", - "cacheable-request": "^7.0.2", - "decompress-response": "^6.0.0", - "form-data-encoder": "1.7.1", - "get-stream": "^6.0.1", - "http2-wrapper": "^2.1.10", - "lowercase-keys": "^3.0.0", - "p-cancelable": "^3.0.0", - "responselike": "^2.0.0" - }, - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sindresorhus/got?sponsor=1" - } - }, - "node_modules/@truffle/debugger/node_modules/json-buffer": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", - "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", - "dev": true - }, - "node_modules/@truffle/debugger/node_modules/keyv": { - "version": "4.5.2", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.2.tgz", - "integrity": "sha512-5MHbFaKn8cNSmVW7BYnijeAVlE4cYA/SVkifVgrh7yotnfhKmjuXpDKjrABLnT0SfHWV21P8ow07OGfRrNDg8g==", - "dev": true, - "dependencies": { - "json-buffer": "3.0.1" - } - }, - "node_modules/@truffle/debugger/node_modules/lowercase-keys": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-3.0.0.tgz", - "integrity": "sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ==", - "dev": true, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@truffle/debugger/node_modules/mimic-response": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", - "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@truffle/debugger/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "node_modules/@truffle/debugger/node_modules/node-fetch": { - "version": "2.6.7", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", - "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", - "dev": true, - "dependencies": { - "whatwg-url": "^5.0.0" - }, - "engines": { - "node": "4.x || >=6.0.0" - }, - "peerDependencies": { - "encoding": "^0.1.0" - }, - "peerDependenciesMeta": { - "encoding": { - "optional": true - } - } - }, - "node_modules/@truffle/debugger/node_modules/normalize-url": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", - "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@truffle/debugger/node_modules/oboe": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/oboe/-/oboe-2.1.5.tgz", - "integrity": "sha512-zRFWiF+FoicxEs3jNI/WYUrVEgA7DeET/InK0XQuudGHRg8iIob3cNPrJTKaz4004uaA9Pbe+Dwa8iluhjLZWA==", - "dev": true, - "dependencies": { - "http-https": "^1.0.0" - } - }, - "node_modules/@truffle/debugger/node_modules/p-cancelable": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-3.0.0.tgz", - "integrity": "sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw==", - "dev": true, - "engines": { - "node": ">=12.20" - } - }, - "node_modules/@truffle/debugger/node_modules/responselike": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/responselike/-/responselike-2.0.1.tgz", - "integrity": "sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw==", - "dev": true, - "dependencies": { - "lowercase-keys": "^2.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@truffle/debugger/node_modules/responselike/node_modules/lowercase-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", - "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/@truffle/debugger/node_modules/scrypt-js": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-3.0.1.tgz", - "integrity": "sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA==", - "dev": true - }, - "node_modules/@truffle/debugger/node_modules/semver": { - "version": "7.3.7", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", - "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@truffle/debugger/node_modules/setimmediate": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", - "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==", - "dev": true - }, - "node_modules/@truffle/debugger/node_modules/swarm-js": { - "version": "0.1.42", - "resolved": "https://registry.npmjs.org/swarm-js/-/swarm-js-0.1.42.tgz", - "integrity": "sha512-BV7c/dVlA3R6ya1lMlSSNPLYrntt0LUq4YMgy3iwpCIc6rZnS5W2wUoctarZ5pXlpKtxDDf9hNziEkcfrxdhqQ==", - "dev": true, - "dependencies": { - "bluebird": "^3.5.0", - "buffer": "^5.0.5", - "eth-lib": "^0.1.26", - "fs-extra": "^4.0.2", - "got": "^11.8.5", - "mime-types": "^2.1.16", - "mkdirp-promise": "^5.0.1", - "mock-fs": "^4.1.0", - "setimmediate": "^1.0.5", - "tar": "^4.0.2", - "xhr-request": "^1.0.1" - } - }, - "node_modules/@truffle/debugger/node_modules/swarm-js/node_modules/@szmarczak/http-timer": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-4.0.6.tgz", - "integrity": "sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==", - "dev": true, - "dependencies": { - "defer-to-connect": "^2.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@truffle/debugger/node_modules/swarm-js/node_modules/cacheable-lookup": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz", - "integrity": "sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==", - "dev": true, - "engines": { - "node": ">=10.6.0" - } - }, - "node_modules/@truffle/debugger/node_modules/swarm-js/node_modules/got": { - "version": "11.8.6", - "resolved": "https://registry.npmjs.org/got/-/got-11.8.6.tgz", - "integrity": "sha512-6tfZ91bOr7bOXnK7PRDCGBLa1H4U080YHNaAQ2KsMGlLEzRbk44nsZF2E1IeRc3vtJHPVbKCYgdFbaGO2ljd8g==", - "dev": true, - "dependencies": { - "@sindresorhus/is": "^4.0.0", - "@szmarczak/http-timer": "^4.0.5", - "@types/cacheable-request": "^6.0.1", - "@types/responselike": "^1.0.0", - "cacheable-lookup": "^5.0.3", - "cacheable-request": "^7.0.2", - "decompress-response": "^6.0.0", - "http2-wrapper": "^1.0.0-beta.5.2", - "lowercase-keys": "^2.0.0", - "p-cancelable": "^2.0.0", - "responselike": "^2.0.0" - }, - "engines": { - "node": ">=10.19.0" - }, - "funding": { - "url": "https://github.com/sindresorhus/got?sponsor=1" - } - }, - "node_modules/@truffle/debugger/node_modules/swarm-js/node_modules/http2-wrapper": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-1.0.3.tgz", - "integrity": "sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg==", - "dev": true, - "dependencies": { - "quick-lru": "^5.1.1", - "resolve-alpn": "^1.0.0" - }, - "engines": { - "node": ">=10.19.0" - } - }, - "node_modules/@truffle/debugger/node_modules/swarm-js/node_modules/lowercase-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", - "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/@truffle/debugger/node_modules/swarm-js/node_modules/p-cancelable": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.1.1.tgz", - "integrity": "sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/@truffle/debugger/node_modules/uuid": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.0.tgz", - "integrity": "sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg==", - "dev": true, - "bin": { - "uuid": "dist/bin/uuid" - } - }, - "node_modules/@truffle/debugger/node_modules/web3": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/web3/-/web3-1.8.2.tgz", - "integrity": "sha512-92h0GdEHW9wqDICQQKyG4foZBYi0OQkyg4CRml2F7XBl/NG+fu9o6J19kzfFXzSBoA4DnJXbyRgj/RHZv5LRiw==", - "dev": true, - "hasInstallScript": true, - "dependencies": { - "web3-bzz": "1.8.2", - "web3-core": "1.8.2", - "web3-eth": "1.8.2", - "web3-eth-personal": "1.8.2", - "web3-net": "1.8.2", - "web3-shh": "1.8.2", - "web3-utils": "1.8.2" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@truffle/debugger/node_modules/web3-bzz": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/web3-bzz/-/web3-bzz-1.8.2.tgz", - "integrity": "sha512-1EEnxjPnFnvNWw3XeeKuTR8PBxYd0+XWzvaLK7OJC/Go9O8llLGxrxICbKV+8cgIE0sDRBxiYx02X+6OhoAQ9w==", - "dev": true, - "hasInstallScript": true, - "dependencies": { - "@types/node": "^12.12.6", - "got": "12.1.0", - "swarm-js": "^0.1.40" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@truffle/debugger/node_modules/web3-core": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/web3-core/-/web3-core-1.8.2.tgz", - "integrity": "sha512-DJTVEAYcNqxkqruJE+Rxp3CIv0y5AZMwPHQmOkz/cz+MM75SIzMTc0AUdXzGyTS8xMF8h3YWMQGgGEy8SBf1PQ==", - "dev": true, - "dependencies": { - "@types/bn.js": "^5.1.0", - "@types/node": "^12.12.6", - "bignumber.js": "^9.0.0", - "web3-core-helpers": "1.8.2", - "web3-core-method": "1.8.2", - "web3-core-requestmanager": "1.8.2", - "web3-utils": "1.8.2" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@truffle/debugger/node_modules/web3-core-helpers": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.8.2.tgz", - "integrity": "sha512-6B1eLlq9JFrfealZBomd1fmlq1o4A09vrCVQSa51ANoib/jllT3atZrRDr0zt1rfI7TSZTZBXdN/aTdeN99DWw==", - "dev": true, - "dependencies": { - "web3-eth-iban": "1.8.2", - "web3-utils": "1.8.2" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@truffle/debugger/node_modules/web3-core-method": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/web3-core-method/-/web3-core-method-1.8.2.tgz", - "integrity": "sha512-1qnr5mw5wVyULzLOrk4B+ryO3gfGjGd/fx8NR+J2xCGLf1e6OSjxT9vbfuQ3fErk/NjSTWWreieYWLMhaogcRA==", - "dev": true, - "dependencies": { - "@ethersproject/transactions": "^5.6.2", - "web3-core-helpers": "1.8.2", - "web3-core-promievent": "1.8.2", - "web3-core-subscriptions": "1.8.2", - "web3-utils": "1.8.2" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@truffle/debugger/node_modules/web3-core-promievent": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/web3-core-promievent/-/web3-core-promievent-1.8.2.tgz", - "integrity": "sha512-nvkJWDVgoOSsolJldN33tKW6bKKRJX3MCPDYMwP5SUFOA/mCzDEoI88N0JFofDTXkh1k7gOqp1pvwi9heuaxGg==", - "dev": true, - "dependencies": { - "eventemitter3": "4.0.4" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@truffle/debugger/node_modules/web3-core-requestmanager": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/web3-core-requestmanager/-/web3-core-requestmanager-1.8.2.tgz", - "integrity": "sha512-p1d090RYs5Mu7DK1yyc3GCBVZB/03rBtFhYFoS2EruGzOWs/5Q0grgtpwS/DScdRAm8wB8mYEBhY/RKJWF6B2g==", - "dev": true, - "dependencies": { - "util": "^0.12.5", - "web3-core-helpers": "1.8.2", - "web3-providers-http": "1.8.2", - "web3-providers-ipc": "1.8.2", - "web3-providers-ws": "1.8.2" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@truffle/debugger/node_modules/web3-core-subscriptions": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/web3-core-subscriptions/-/web3-core-subscriptions-1.8.2.tgz", - "integrity": "sha512-vXQogHDmAIQcKpXvGiMddBUeP9lnKgYF64+yQJhPNE5PnWr1sAibXuIPV7mIPihpFr/n/DORRj6Wh1pUv9zaTw==", - "dev": true, - "dependencies": { - "eventemitter3": "4.0.4", - "web3-core-helpers": "1.8.2" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@truffle/debugger/node_modules/web3-eth": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/web3-eth/-/web3-eth-1.8.2.tgz", - "integrity": "sha512-JoTiWWc4F4TInpbvDUGb0WgDYJsFhuIjJlinc5ByjWD88Gvh+GKLsRjjFdbqe5YtwIGT4NymwoC5LQd1K6u/QQ==", - "dev": true, - "dependencies": { - "web3-core": "1.8.2", - "web3-core-helpers": "1.8.2", - "web3-core-method": "1.8.2", - "web3-core-subscriptions": "1.8.2", - "web3-eth-abi": "1.8.2", - "web3-eth-accounts": "1.8.2", - "web3-eth-contract": "1.8.2", - "web3-eth-ens": "1.8.2", - "web3-eth-iban": "1.8.2", - "web3-eth-personal": "1.8.2", - "web3-net": "1.8.2", - "web3-utils": "1.8.2" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@truffle/debugger/node_modules/web3-eth-abi": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/web3-eth-abi/-/web3-eth-abi-1.8.2.tgz", - "integrity": "sha512-Om9g3kaRNjqiNPAgKwGT16y+ZwtBzRe4ZJFGjLiSs6v5I7TPNF+rRMWuKnR6jq0azQZDj6rblvKFMA49/k48Og==", - "dev": true, - "dependencies": { - "@ethersproject/abi": "^5.6.3", - "web3-utils": "1.8.2" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@truffle/debugger/node_modules/web3-eth-accounts": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/web3-eth-accounts/-/web3-eth-accounts-1.8.2.tgz", - "integrity": "sha512-c367Ij63VCz9YdyjiHHWLFtN85l6QghgwMQH2B1eM/p9Y5lTlTX7t/Eg/8+f1yoIStXbk2w/PYM2lk+IkbqdLA==", - "dev": true, - "dependencies": { - "@ethereumjs/common": "2.5.0", - "@ethereumjs/tx": "3.3.2", - "eth-lib": "0.2.8", - "ethereumjs-util": "^7.1.5", - "scrypt-js": "^3.0.1", - "uuid": "^9.0.0", - "web3-core": "1.8.2", - "web3-core-helpers": "1.8.2", - "web3-core-method": "1.8.2", - "web3-utils": "1.8.2" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@truffle/debugger/node_modules/web3-eth-accounts/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - }, - "node_modules/@truffle/debugger/node_modules/web3-eth-accounts/node_modules/eth-lib": { - "version": "0.2.8", - "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.8.tgz", - "integrity": "sha512-ArJ7x1WcWOlSpzdoTBX8vkwlkSQ85CjjifSZtV4co64vWxSV8geWfPI9x4SVYu3DSxnX4yWFVTtGL+j9DUFLNw==", - "dev": true, - "dependencies": { - "bn.js": "^4.11.6", - "elliptic": "^6.4.0", - "xhr-request-promise": "^0.1.2" - } - }, - "node_modules/@truffle/debugger/node_modules/web3-eth-contract": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/web3-eth-contract/-/web3-eth-contract-1.8.2.tgz", - "integrity": "sha512-ID5A25tHTSBNwOPjiXSVzxruz006ULRIDbzWTYIFTp7NJ7vXu/kynKK2ag/ObuTqBpMbobP8nXcA9b5EDkIdQA==", - "dev": true, - "dependencies": { - "@types/bn.js": "^5.1.0", - "web3-core": "1.8.2", - "web3-core-helpers": "1.8.2", - "web3-core-method": "1.8.2", - "web3-core-promievent": "1.8.2", - "web3-core-subscriptions": "1.8.2", - "web3-eth-abi": "1.8.2", - "web3-utils": "1.8.2" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@truffle/debugger/node_modules/web3-eth-ens": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/web3-eth-ens/-/web3-eth-ens-1.8.2.tgz", - "integrity": "sha512-PWph7C/CnqdWuu1+SH4U4zdrK4t2HNt0I4XzPYFdv9ugE8EuojselioPQXsVGvjql+Nt3jDLvQvggPqlMbvwRw==", - "dev": true, - "dependencies": { - "content-hash": "^2.5.2", - "eth-ens-namehash": "2.0.8", - "web3-core": "1.8.2", - "web3-core-helpers": "1.8.2", - "web3-core-promievent": "1.8.2", - "web3-eth-abi": "1.8.2", - "web3-eth-contract": "1.8.2", - "web3-utils": "1.8.2" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@truffle/debugger/node_modules/web3-eth-iban": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/web3-eth-iban/-/web3-eth-iban-1.8.2.tgz", - "integrity": "sha512-h3vNblDWkWMuYx93Q27TAJz6lhzpP93EiC3+45D6xoz983p6si773vntoQ+H+5aZhwglBtoiBzdh7PSSOnP/xQ==", - "dev": true, - "dependencies": { - "bn.js": "^5.2.1", - "web3-utils": "1.8.2" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@truffle/debugger/node_modules/web3-eth-personal": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/web3-eth-personal/-/web3-eth-personal-1.8.2.tgz", - "integrity": "sha512-Vg4HfwCr7doiUF/RC+Jz0wT4+cYaXcOWMAW2AHIjHX6Z7Xwa8nrURIeQgeEE62qcEHAzajyAdB1u6bJyTfuCXw==", - "dev": true, - "dependencies": { - "@types/node": "^12.12.6", - "web3-core": "1.8.2", - "web3-core-helpers": "1.8.2", - "web3-core-method": "1.8.2", - "web3-net": "1.8.2", - "web3-utils": "1.8.2" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@truffle/debugger/node_modules/web3-net": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/web3-net/-/web3-net-1.8.2.tgz", - "integrity": "sha512-1itkDMGmbgb83Dg9nporFes9/fxsU7smJ3oRXlFkg4ZHn8YJyP1MSQFPJWWwSc+GrcCFt4O5IrUTvEkHqE3xag==", - "dev": true, - "dependencies": { - "web3-core": "1.8.2", - "web3-core-method": "1.8.2", - "web3-utils": "1.8.2" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@truffle/debugger/node_modules/web3-providers-http": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/web3-providers-http/-/web3-providers-http-1.8.2.tgz", - "integrity": "sha512-2xY94IIEQd16+b+vIBF4IC1p7GVaz9q4EUFscvMUjtEq4ru4Atdzjs9GP+jmcoo49p70II0UV3bqQcz0TQfVyQ==", - "dev": true, - "dependencies": { - "abortcontroller-polyfill": "^1.7.3", - "cross-fetch": "^3.1.4", - "es6-promise": "^4.2.8", - "web3-core-helpers": "1.8.2" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@truffle/debugger/node_modules/web3-providers-ipc": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/web3-providers-ipc/-/web3-providers-ipc-1.8.2.tgz", - "integrity": "sha512-p6fqKVGFg+WiXGHWnB1hu43PbvPkDHTz4RgoEzbXugv5rtv5zfYLqm8Ba6lrJOS5ks9kGKR21a0y3NzE3u7V4w==", - "dev": true, - "dependencies": { - "oboe": "2.1.5", - "web3-core-helpers": "1.8.2" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@truffle/debugger/node_modules/web3-providers-ws": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/web3-providers-ws/-/web3-providers-ws-1.8.2.tgz", - "integrity": "sha512-3s/4K+wHgbiN+Zrp9YjMq2eqAF6QGABw7wFftPdx+m5hWImV27/MoIx57c6HffNRqZXmCHnfWWFCNHHsi7wXnA==", - "dev": true, - "dependencies": { - "eventemitter3": "4.0.4", - "web3-core-helpers": "1.8.2", - "websocket": "^1.0.32" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@truffle/debugger/node_modules/web3-shh": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/web3-shh/-/web3-shh-1.8.2.tgz", - "integrity": "sha512-uZ+3MAoNcaJsXXNCDnizKJ5viBNeHOFYsCbFhV755Uu52FswzTOw6DtE7yK9nYXMtIhiSgi7nwl1RYzP8pystw==", - "dev": true, - "hasInstallScript": true, - "dependencies": { - "web3-core": "1.8.2", - "web3-core-method": "1.8.2", - "web3-core-subscriptions": "1.8.2", - "web3-net": "1.8.2" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@truffle/debugger/node_modules/web3-utils": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.8.2.tgz", - "integrity": "sha512-v7j6xhfLQfY7xQDrUP0BKbaNrmZ2/+egbqP9q3KYmOiPpnvAfol+32slgL0WX/5n8VPvKCK5EZ1HGrAVICSToA==", - "dev": true, - "dependencies": { - "bn.js": "^5.2.1", - "ethereum-bloom-filters": "^1.0.6", - "ethereumjs-util": "^7.1.0", - "ethjs-unit": "0.1.6", - "number-to-bn": "1.7.0", - "randombytes": "^2.1.0", - "utf8": "3.0.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@truffle/debugger/node_modules/websocket": { - "version": "1.0.34", - "resolved": "https://registry.npmjs.org/websocket/-/websocket-1.0.34.tgz", - "integrity": "sha512-PRDso2sGwF6kM75QykIesBijKSVceR6jL2G8NGYyq2XrItNC2P5/qL5XeR056GhA+Ly7JMFvJb9I312mJfmqnQ==", - "dev": true, - "dependencies": { - "bufferutil": "^4.0.1", - "debug": "^2.2.0", - "es5-ext": "^0.10.50", - "typedarray-to-buffer": "^3.1.5", - "utf-8-validate": "^5.0.2", - "yaeti": "^0.0.6" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/@truffle/debugger/node_modules/websocket/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/@truffle/debugger/node_modules/websocket/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true - }, - "node_modules/@truffle/error": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/@truffle/error/-/error-0.0.6.tgz", - "integrity": "sha512-QUM9ZWiwlXGixFGpV18g5I6vua6/r+ZV9W/5DQA5go9A3eZUNPHPaTKMIQPJLYn6+ZV5jg5H28zCHq56LHF3yA==", - "dev": true - }, - "node_modules/@truffle/events": { - "version": "0.1.22", - "resolved": "https://registry.npmjs.org/@truffle/events/-/events-0.1.22.tgz", - "integrity": "sha512-WBEfaQ5zagS3J1M66J8wQ8N1As/EnBjLQsRlCCFs3/KbmeWhsoalVZ5Effhe0Vxd+e+k7lvwbloQBdS6roc+wg==", - "dev": true, - "optional": true, - "dependencies": { - "@truffle/dashboard-message-bus-client": "^0.1.10", - "@truffle/spinners": "^0.2.3", - "debug": "^4.3.1", - "emittery": "^0.4.1", - "web3-utils": "1.8.2" - } - }, - "node_modules/@truffle/events/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==", - "dev": true, - "optional": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@truffle/events/node_modules/bn.js": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", - "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==", - "dev": true, - "optional": true - }, - "node_modules/@truffle/events/node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "optional": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/@truffle/events/node_modules/ethereumjs-util": { - "version": "7.1.5", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.5.tgz", - "integrity": "sha512-SDl5kKrQAudFBUe5OJM9Ac6WmMyYmXX/6sTmLZ3ffG2eY6ZIGBes3pEDxNN6V72WyOw4CPD5RomKdsa8DAAwLg==", - "dev": true, - "optional": true, - "dependencies": { - "@types/bn.js": "^5.1.0", - "bn.js": "^5.1.2", - "create-hash": "^1.1.2", - "ethereum-cryptography": "^0.1.3", - "rlp": "^2.2.4" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/@truffle/events/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true, - "optional": true - }, - "node_modules/@truffle/events/node_modules/web3-utils": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.8.2.tgz", - "integrity": "sha512-v7j6xhfLQfY7xQDrUP0BKbaNrmZ2/+egbqP9q3KYmOiPpnvAfol+32slgL0WX/5n8VPvKCK5EZ1HGrAVICSToA==", - "dev": true, - "optional": true, - "dependencies": { - "bn.js": "^5.2.1", - "ethereum-bloom-filters": "^1.0.6", - "ethereumjs-util": "^7.1.0", - "ethjs-unit": "0.1.6", - "number-to-bn": "1.7.0", - "randombytes": "^2.1.0", - "utf8": "3.0.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@truffle/hdwallet-provider": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/@truffle/hdwallet-provider/-/hdwallet-provider-1.7.0.tgz", - "integrity": "sha512-nT7BPJJ2jPCLJc5uZdVtRnRMny5he5d3kO9Hi80ZSqe5xlnK905grBptM/+CwOfbeqHKQirI1btwm6r3wIBM8A==", - "dev": true, - "dependencies": { - "@ethereumjs/common": "^2.4.0", - "@ethereumjs/tx": "^3.3.0", - "@trufflesuite/web3-provider-engine": "15.0.14", - "eth-sig-util": "^3.0.1", - "ethereum-cryptography": "^0.1.3", - "ethereum-protocol": "^1.0.1", - "ethereumjs-util": "^6.1.0", - "ethereumjs-wallet": "^1.0.1" - } - }, - "node_modules/@truffle/hdwallet-provider/node_modules/@types/bn.js": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-5.1.0.tgz", - "integrity": "sha512-QSSVYj7pYFN49kW77o2s9xTCwZ8F2xLbjLLSEVh8D2F4JUhZtPAGOFLTD+ffqksBx/u4cE/KImFjyhqCjn/LIA==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@truffle/hdwallet-provider/node_modules/aes-js": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/aes-js/-/aes-js-3.1.2.tgz", - "integrity": "sha512-e5pEa2kBnBOgR4Y/p20pskXI74UEz7de8ZGVo58asOtvSVG5YAbJeELPZxOmt+Bnz3rX753YKhfIn4X4l1PPRQ==", - "dev": true - }, - "node_modules/@truffle/hdwallet-provider/node_modules/bn.js": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.0.tgz", - "integrity": "sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw==", - "dev": true - }, - "node_modules/@truffle/hdwallet-provider/node_modules/ethereumjs-wallet": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/ethereumjs-wallet/-/ethereumjs-wallet-1.0.2.tgz", - "integrity": "sha512-CCWV4RESJgRdHIvFciVQFnCHfqyhXWchTPlkfp28Qc53ufs+doi5I/cV2+xeK9+qEo25XCWfP9MiL+WEPAZfdA==", - "dev": true, - "dependencies": { - "aes-js": "^3.1.2", - "bs58check": "^2.1.2", - "ethereum-cryptography": "^0.1.3", - "ethereumjs-util": "^7.1.2", - "randombytes": "^2.1.0", - "scrypt-js": "^3.0.1", - "utf8": "^3.0.0", - "uuid": "^8.3.2" - } - }, - "node_modules/@truffle/hdwallet-provider/node_modules/ethereumjs-wallet/node_modules/ethereumjs-util": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.3.tgz", - "integrity": "sha512-y+82tEbyASO0K0X1/SRhbJJoAlfcvq8JbrG4a5cjrOks7HS/36efU/0j2flxCPOUM++HFahk33kr/ZxyC4vNuw==", - "dev": true, - "dependencies": { - "@types/bn.js": "^5.1.0", - "bn.js": "^5.1.2", - "create-hash": "^1.1.2", - "ethereum-cryptography": "^0.1.3", - "rlp": "^2.2.4" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/@truffle/hdwallet-provider/node_modules/scrypt-js": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-3.0.1.tgz", - "integrity": "sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA==", - "dev": true - }, - "node_modules/@truffle/hdwallet-provider/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/@truffle/promise-tracker": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/@truffle/promise-tracker/-/promise-tracker-0.1.5.tgz", - "integrity": "sha512-wZx8eeu/6rcwwkmRF0Y832/NSQR9A9u6pyhTozv+j77jklnd/KZvu2JlACaAjP30eL5SOtSrSOzAMcSh/trJjg==", - "dev": true, - "optional": true - }, - "node_modules/@truffle/provider": { - "version": "0.3.8", - "resolved": "https://registry.npmjs.org/@truffle/provider/-/provider-0.3.8.tgz", - "integrity": "sha512-qukkmGOZPsbV7WeKlj/bfYWOu/dbHWlF67QHDhV2KHBVardN06VDf40aB8WeeVkONHijb623hkUI/DE4DpHO+Q==", - "dev": true, - "optional": true, - "dependencies": { - "@truffle/error": "^0.2.0", - "@truffle/interface-adapter": "^0.5.32", - "debug": "^4.3.1", - "web3": "1.8.2" - } - }, - "node_modules/@truffle/provider/node_modules/@ethereumjs/common": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@ethereumjs/common/-/common-2.5.0.tgz", - "integrity": "sha512-DEHjW6e38o+JmB/NO3GZBpW4lpaiBpkFgXF6jLcJ6gETBYpEyaA5nTimsWBUJR3Vmtm/didUEbNjajskugZORg==", - "dev": true, - "optional": true, - "dependencies": { - "crc-32": "^1.2.0", - "ethereumjs-util": "^7.1.1" - } - }, - "node_modules/@truffle/provider/node_modules/@ethereumjs/tx": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/@ethereumjs/tx/-/tx-3.3.2.tgz", - "integrity": "sha512-6AaJhwg4ucmwTvw/1qLaZUX5miWrwZ4nLOUsKyb/HtzS3BMw/CasKhdi1ims9mBKeK9sOJCH4qGKOBGyJCeeog==", - "dev": true, - "optional": true, - "dependencies": { - "@ethereumjs/common": "^2.5.0", - "ethereumjs-util": "^7.1.2" - } - }, - "node_modules/@truffle/provider/node_modules/@sindresorhus/is": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.6.0.tgz", - "integrity": "sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==", - "dev": true, - "optional": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/is?sponsor=1" - } - }, - "node_modules/@truffle/provider/node_modules/@szmarczak/http-timer": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-5.0.1.tgz", - "integrity": "sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw==", - "dev": true, - "optional": true, - "dependencies": { - "defer-to-connect": "^2.0.1" - }, - "engines": { - "node": ">=14.16" - } - }, - "node_modules/@truffle/provider/node_modules/@truffle/error": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/@truffle/error/-/error-0.2.0.tgz", - "integrity": "sha512-Fe0/z4WWb7IP2gBnv3l6zqP87Y0kSMs7oiSLakKJq17q3GUunrHSdioKuNspdggxkXIBhEQLhi8C+LJdwmHKWQ==", - "dev": true, - "optional": true - }, - "node_modules/@truffle/provider/node_modules/@truffle/interface-adapter": { - "version": "0.5.32", - "resolved": "https://registry.npmjs.org/@truffle/interface-adapter/-/interface-adapter-0.5.32.tgz", - "integrity": "sha512-7Hgmdb4nJUcWtq4vvgWY7Mr2RLOTOp5FZaWyMiFmjkcEEhDlezm2QstALWAXgT0W6q7tDmDBpw3vTIFenRhHBA==", - "dev": true, - "optional": true, - "dependencies": { - "bn.js": "^5.1.3", - "ethers": "^4.0.32", - "web3": "1.8.2" - } - }, - "node_modules/@truffle/provider/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==", - "dev": true, - "optional": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@truffle/provider/node_modules/@types/node": { - "version": "12.20.55", - "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.55.tgz", - "integrity": "sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==", - "dev": true, - "optional": true - }, - "node_modules/@truffle/provider/node_modules/bignumber.js": { - "version": "9.1.1", - "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.1.1.tgz", - "integrity": "sha512-pHm4LsMJ6lzgNGVfZHjMoO8sdoRhOzOH4MLmY65Jg70bpxCKu5iOHNJyfF6OyvYw7t8Fpf35RuzUyqnQsj8Vig==", - "dev": true, - "optional": true, - "engines": { - "node": "*" - } - }, - "node_modules/@truffle/provider/node_modules/bn.js": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", - "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==", - "dev": true, - "optional": true - }, - "node_modules/@truffle/provider/node_modules/cacheable-request": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-7.0.2.tgz", - "integrity": "sha512-pouW8/FmiPQbuGpkXQ9BAPv/Mo5xDGANgSNXzTzJ8DrKGuXOssM4wIQRjfanNRh3Yu5cfYPvcorqbhg2KIJtew==", - "dev": true, - "optional": true, - "dependencies": { - "clone-response": "^1.0.2", - "get-stream": "^5.1.0", - "http-cache-semantics": "^4.0.0", - "keyv": "^4.0.0", - "lowercase-keys": "^2.0.0", - "normalize-url": "^6.0.1", - "responselike": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@truffle/provider/node_modules/cacheable-request/node_modules/get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "dev": true, - "optional": true, - "dependencies": { - "pump": "^3.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@truffle/provider/node_modules/cacheable-request/node_modules/lowercase-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", - "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", - "dev": true, - "optional": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/@truffle/provider/node_modules/cross-fetch": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.5.tgz", - "integrity": "sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw==", - "dev": true, - "optional": true, - "dependencies": { - "node-fetch": "2.6.7" - } - }, - "node_modules/@truffle/provider/node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "optional": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/@truffle/provider/node_modules/decompress-response": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", - "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", - "dev": true, - "optional": true, - "dependencies": { - "mimic-response": "^3.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@truffle/provider/node_modules/defer-to-connect": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz", - "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==", - "dev": true, - "optional": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/@truffle/provider/node_modules/ethereumjs-util": { - "version": "7.1.5", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.5.tgz", - "integrity": "sha512-SDl5kKrQAudFBUe5OJM9Ac6WmMyYmXX/6sTmLZ3ffG2eY6ZIGBes3pEDxNN6V72WyOw4CPD5RomKdsa8DAAwLg==", - "dev": true, - "optional": true, - "dependencies": { - "@types/bn.js": "^5.1.0", - "bn.js": "^5.1.2", - "create-hash": "^1.1.2", - "ethereum-cryptography": "^0.1.3", - "rlp": "^2.2.4" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/@truffle/provider/node_modules/ethers": { - "version": "4.0.49", - "resolved": "https://registry.npmjs.org/ethers/-/ethers-4.0.49.tgz", - "integrity": "sha512-kPltTvWiyu+OktYy1IStSO16i2e7cS9D9OxZ81q2UUaiNPVrm/RTcbxamCXF9VUSKzJIdJV68EAIhTEVBalRWg==", - "dev": true, - "optional": true, - "dependencies": { - "aes-js": "3.0.0", - "bn.js": "^4.11.9", - "elliptic": "6.5.4", - "hash.js": "1.1.3", - "js-sha3": "0.5.7", - "scrypt-js": "2.0.4", - "setimmediate": "1.0.4", - "uuid": "2.0.1", - "xmlhttprequest": "1.8.0" - } - }, - "node_modules/@truffle/provider/node_modules/ethers/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true, - "optional": true - }, - "node_modules/@truffle/provider/node_modules/eventemitter3": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.4.tgz", - "integrity": "sha512-rlaVLnVxtxvoyLsQQFBx53YmXHDxRIzzTLbdfxqi4yocpSjAxXwkU0cScM5JgSKMqEhrZpnvQ2D9gjylR0AimQ==", - "dev": true, - "optional": true - }, - "node_modules/@truffle/provider/node_modules/fs-extra": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-4.0.3.tgz", - "integrity": "sha512-q6rbdDd1o2mAnQreO7YADIxf/Whx4AHBiRf6d+/cVT8h44ss+lHgxf1FemcqDnQt9X3ct4McHr+JMGlYSsK7Cg==", - "dev": true, - "optional": true, - "dependencies": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - }, - "node_modules/@truffle/provider/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, - "optional": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@truffle/provider/node_modules/got": { - "version": "12.1.0", - "resolved": "https://registry.npmjs.org/got/-/got-12.1.0.tgz", - "integrity": "sha512-hBv2ty9QN2RdbJJMK3hesmSkFTjVIHyIDDbssCKnSmq62edGgImJWD10Eb1k77TiV1bxloxqcFAVK8+9pkhOig==", - "dev": true, - "optional": true, - "dependencies": { - "@sindresorhus/is": "^4.6.0", - "@szmarczak/http-timer": "^5.0.1", - "@types/cacheable-request": "^6.0.2", - "@types/responselike": "^1.0.0", - "cacheable-lookup": "^6.0.4", - "cacheable-request": "^7.0.2", - "decompress-response": "^6.0.0", - "form-data-encoder": "1.7.1", - "get-stream": "^6.0.1", - "http2-wrapper": "^2.1.10", - "lowercase-keys": "^3.0.0", - "p-cancelable": "^3.0.0", - "responselike": "^2.0.0" - }, - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sindresorhus/got?sponsor=1" - } - }, - "node_modules/@truffle/provider/node_modules/json-buffer": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", - "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", - "dev": true, - "optional": true - }, - "node_modules/@truffle/provider/node_modules/keyv": { - "version": "4.5.2", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.2.tgz", - "integrity": "sha512-5MHbFaKn8cNSmVW7BYnijeAVlE4cYA/SVkifVgrh7yotnfhKmjuXpDKjrABLnT0SfHWV21P8ow07OGfRrNDg8g==", - "dev": true, - "optional": true, - "dependencies": { - "json-buffer": "3.0.1" - } - }, - "node_modules/@truffle/provider/node_modules/lowercase-keys": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-3.0.0.tgz", - "integrity": "sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ==", - "dev": true, - "optional": true, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@truffle/provider/node_modules/mimic-response": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", - "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==", - "dev": true, - "optional": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@truffle/provider/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true, - "optional": true - }, - "node_modules/@truffle/provider/node_modules/node-fetch": { - "version": "2.6.7", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", - "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", - "dev": true, - "optional": true, - "dependencies": { - "whatwg-url": "^5.0.0" - }, - "engines": { - "node": "4.x || >=6.0.0" - }, - "peerDependencies": { - "encoding": "^0.1.0" - }, - "peerDependenciesMeta": { - "encoding": { - "optional": true - } - } - }, - "node_modules/@truffle/provider/node_modules/normalize-url": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", - "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==", - "dev": true, - "optional": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@truffle/provider/node_modules/oboe": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/oboe/-/oboe-2.1.5.tgz", - "integrity": "sha512-zRFWiF+FoicxEs3jNI/WYUrVEgA7DeET/InK0XQuudGHRg8iIob3cNPrJTKaz4004uaA9Pbe+Dwa8iluhjLZWA==", - "dev": true, - "optional": true, - "dependencies": { - "http-https": "^1.0.0" - } - }, - "node_modules/@truffle/provider/node_modules/p-cancelable": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-3.0.0.tgz", - "integrity": "sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw==", - "dev": true, - "optional": true, - "engines": { - "node": ">=12.20" - } - }, - "node_modules/@truffle/provider/node_modules/responselike": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/responselike/-/responselike-2.0.1.tgz", - "integrity": "sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw==", - "dev": true, - "optional": true, - "dependencies": { - "lowercase-keys": "^2.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@truffle/provider/node_modules/responselike/node_modules/lowercase-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", - "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", - "dev": true, - "optional": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/@truffle/provider/node_modules/swarm-js": { - "version": "0.1.42", - "resolved": "https://registry.npmjs.org/swarm-js/-/swarm-js-0.1.42.tgz", - "integrity": "sha512-BV7c/dVlA3R6ya1lMlSSNPLYrntt0LUq4YMgy3iwpCIc6rZnS5W2wUoctarZ5pXlpKtxDDf9hNziEkcfrxdhqQ==", - "dev": true, - "optional": true, - "dependencies": { - "bluebird": "^3.5.0", - "buffer": "^5.0.5", - "eth-lib": "^0.1.26", - "fs-extra": "^4.0.2", - "got": "^11.8.5", - "mime-types": "^2.1.16", - "mkdirp-promise": "^5.0.1", - "mock-fs": "^4.1.0", - "setimmediate": "^1.0.5", - "tar": "^4.0.2", - "xhr-request": "^1.0.1" - } - }, - "node_modules/@truffle/provider/node_modules/swarm-js/node_modules/@szmarczak/http-timer": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-4.0.6.tgz", - "integrity": "sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==", - "dev": true, - "optional": true, - "dependencies": { - "defer-to-connect": "^2.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@truffle/provider/node_modules/swarm-js/node_modules/cacheable-lookup": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz", - "integrity": "sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==", - "dev": true, - "optional": true, - "engines": { - "node": ">=10.6.0" - } - }, - "node_modules/@truffle/provider/node_modules/swarm-js/node_modules/got": { - "version": "11.8.6", - "resolved": "https://registry.npmjs.org/got/-/got-11.8.6.tgz", - "integrity": "sha512-6tfZ91bOr7bOXnK7PRDCGBLa1H4U080YHNaAQ2KsMGlLEzRbk44nsZF2E1IeRc3vtJHPVbKCYgdFbaGO2ljd8g==", - "dev": true, - "optional": true, - "dependencies": { - "@sindresorhus/is": "^4.0.0", - "@szmarczak/http-timer": "^4.0.5", - "@types/cacheable-request": "^6.0.1", - "@types/responselike": "^1.0.0", - "cacheable-lookup": "^5.0.3", - "cacheable-request": "^7.0.2", - "decompress-response": "^6.0.0", - "http2-wrapper": "^1.0.0-beta.5.2", - "lowercase-keys": "^2.0.0", - "p-cancelable": "^2.0.0", - "responselike": "^2.0.0" - }, - "engines": { - "node": ">=10.19.0" - }, - "funding": { - "url": "https://github.com/sindresorhus/got?sponsor=1" - } - }, - "node_modules/@truffle/provider/node_modules/swarm-js/node_modules/http2-wrapper": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-1.0.3.tgz", - "integrity": "sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg==", - "dev": true, - "optional": true, - "dependencies": { - "quick-lru": "^5.1.1", - "resolve-alpn": "^1.0.0" - }, - "engines": { - "node": ">=10.19.0" - } - }, - "node_modules/@truffle/provider/node_modules/swarm-js/node_modules/lowercase-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", - "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", - "dev": true, - "optional": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/@truffle/provider/node_modules/swarm-js/node_modules/p-cancelable": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.1.1.tgz", - "integrity": "sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==", - "dev": true, - "optional": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/@truffle/provider/node_modules/swarm-js/node_modules/setimmediate": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", - "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==", - "dev": true, - "optional": true - }, - "node_modules/@truffle/provider/node_modules/uuid": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-2.0.1.tgz", - "integrity": "sha512-nWg9+Oa3qD2CQzHIP4qKUqwNfzKn8P0LtFhotaCTFchsV7ZfDhAybeip/HZVeMIpZi9JgY1E3nUlwaCmZT1sEg==", - "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", - "dev": true, - "optional": true - }, - "node_modules/@truffle/provider/node_modules/web3": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/web3/-/web3-1.8.2.tgz", - "integrity": "sha512-92h0GdEHW9wqDICQQKyG4foZBYi0OQkyg4CRml2F7XBl/NG+fu9o6J19kzfFXzSBoA4DnJXbyRgj/RHZv5LRiw==", - "dev": true, - "hasInstallScript": true, - "optional": true, - "dependencies": { - "web3-bzz": "1.8.2", - "web3-core": "1.8.2", - "web3-eth": "1.8.2", - "web3-eth-personal": "1.8.2", - "web3-net": "1.8.2", - "web3-shh": "1.8.2", - "web3-utils": "1.8.2" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@truffle/provider/node_modules/web3-bzz": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/web3-bzz/-/web3-bzz-1.8.2.tgz", - "integrity": "sha512-1EEnxjPnFnvNWw3XeeKuTR8PBxYd0+XWzvaLK7OJC/Go9O8llLGxrxICbKV+8cgIE0sDRBxiYx02X+6OhoAQ9w==", - "dev": true, - "hasInstallScript": true, - "optional": true, - "dependencies": { - "@types/node": "^12.12.6", - "got": "12.1.0", - "swarm-js": "^0.1.40" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@truffle/provider/node_modules/web3-core": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/web3-core/-/web3-core-1.8.2.tgz", - "integrity": "sha512-DJTVEAYcNqxkqruJE+Rxp3CIv0y5AZMwPHQmOkz/cz+MM75SIzMTc0AUdXzGyTS8xMF8h3YWMQGgGEy8SBf1PQ==", - "dev": true, - "optional": true, - "dependencies": { - "@types/bn.js": "^5.1.0", - "@types/node": "^12.12.6", - "bignumber.js": "^9.0.0", - "web3-core-helpers": "1.8.2", - "web3-core-method": "1.8.2", - "web3-core-requestmanager": "1.8.2", - "web3-utils": "1.8.2" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@truffle/provider/node_modules/web3-core-helpers": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.8.2.tgz", - "integrity": "sha512-6B1eLlq9JFrfealZBomd1fmlq1o4A09vrCVQSa51ANoib/jllT3atZrRDr0zt1rfI7TSZTZBXdN/aTdeN99DWw==", - "dev": true, - "optional": true, - "dependencies": { - "web3-eth-iban": "1.8.2", - "web3-utils": "1.8.2" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@truffle/provider/node_modules/web3-core-method": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/web3-core-method/-/web3-core-method-1.8.2.tgz", - "integrity": "sha512-1qnr5mw5wVyULzLOrk4B+ryO3gfGjGd/fx8NR+J2xCGLf1e6OSjxT9vbfuQ3fErk/NjSTWWreieYWLMhaogcRA==", - "dev": true, - "optional": true, - "dependencies": { - "@ethersproject/transactions": "^5.6.2", - "web3-core-helpers": "1.8.2", - "web3-core-promievent": "1.8.2", - "web3-core-subscriptions": "1.8.2", - "web3-utils": "1.8.2" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@truffle/provider/node_modules/web3-core-promievent": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/web3-core-promievent/-/web3-core-promievent-1.8.2.tgz", - "integrity": "sha512-nvkJWDVgoOSsolJldN33tKW6bKKRJX3MCPDYMwP5SUFOA/mCzDEoI88N0JFofDTXkh1k7gOqp1pvwi9heuaxGg==", - "dev": true, - "optional": true, - "dependencies": { - "eventemitter3": "4.0.4" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@truffle/provider/node_modules/web3-core-requestmanager": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/web3-core-requestmanager/-/web3-core-requestmanager-1.8.2.tgz", - "integrity": "sha512-p1d090RYs5Mu7DK1yyc3GCBVZB/03rBtFhYFoS2EruGzOWs/5Q0grgtpwS/DScdRAm8wB8mYEBhY/RKJWF6B2g==", - "dev": true, - "optional": true, - "dependencies": { - "util": "^0.12.5", - "web3-core-helpers": "1.8.2", - "web3-providers-http": "1.8.2", - "web3-providers-ipc": "1.8.2", - "web3-providers-ws": "1.8.2" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@truffle/provider/node_modules/web3-core-subscriptions": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/web3-core-subscriptions/-/web3-core-subscriptions-1.8.2.tgz", - "integrity": "sha512-vXQogHDmAIQcKpXvGiMddBUeP9lnKgYF64+yQJhPNE5PnWr1sAibXuIPV7mIPihpFr/n/DORRj6Wh1pUv9zaTw==", - "dev": true, - "optional": true, - "dependencies": { - "eventemitter3": "4.0.4", - "web3-core-helpers": "1.8.2" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@truffle/provider/node_modules/web3-eth": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/web3-eth/-/web3-eth-1.8.2.tgz", - "integrity": "sha512-JoTiWWc4F4TInpbvDUGb0WgDYJsFhuIjJlinc5ByjWD88Gvh+GKLsRjjFdbqe5YtwIGT4NymwoC5LQd1K6u/QQ==", - "dev": true, - "optional": true, - "dependencies": { - "web3-core": "1.8.2", - "web3-core-helpers": "1.8.2", - "web3-core-method": "1.8.2", - "web3-core-subscriptions": "1.8.2", - "web3-eth-abi": "1.8.2", - "web3-eth-accounts": "1.8.2", - "web3-eth-contract": "1.8.2", - "web3-eth-ens": "1.8.2", - "web3-eth-iban": "1.8.2", - "web3-eth-personal": "1.8.2", - "web3-net": "1.8.2", - "web3-utils": "1.8.2" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@truffle/provider/node_modules/web3-eth-abi": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/web3-eth-abi/-/web3-eth-abi-1.8.2.tgz", - "integrity": "sha512-Om9g3kaRNjqiNPAgKwGT16y+ZwtBzRe4ZJFGjLiSs6v5I7TPNF+rRMWuKnR6jq0azQZDj6rblvKFMA49/k48Og==", - "dev": true, - "optional": true, - "dependencies": { - "@ethersproject/abi": "^5.6.3", - "web3-utils": "1.8.2" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@truffle/provider/node_modules/web3-eth-accounts": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/web3-eth-accounts/-/web3-eth-accounts-1.8.2.tgz", - "integrity": "sha512-c367Ij63VCz9YdyjiHHWLFtN85l6QghgwMQH2B1eM/p9Y5lTlTX7t/Eg/8+f1yoIStXbk2w/PYM2lk+IkbqdLA==", - "dev": true, - "optional": true, - "dependencies": { - "@ethereumjs/common": "2.5.0", - "@ethereumjs/tx": "3.3.2", - "eth-lib": "0.2.8", - "ethereumjs-util": "^7.1.5", - "scrypt-js": "^3.0.1", - "uuid": "^9.0.0", - "web3-core": "1.8.2", - "web3-core-helpers": "1.8.2", - "web3-core-method": "1.8.2", - "web3-utils": "1.8.2" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@truffle/provider/node_modules/web3-eth-accounts/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true, - "optional": true - }, - "node_modules/@truffle/provider/node_modules/web3-eth-accounts/node_modules/eth-lib": { - "version": "0.2.8", - "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.8.tgz", - "integrity": "sha512-ArJ7x1WcWOlSpzdoTBX8vkwlkSQ85CjjifSZtV4co64vWxSV8geWfPI9x4SVYu3DSxnX4yWFVTtGL+j9DUFLNw==", - "dev": true, - "optional": true, - "dependencies": { - "bn.js": "^4.11.6", - "elliptic": "^6.4.0", - "xhr-request-promise": "^0.1.2" - } - }, - "node_modules/@truffle/provider/node_modules/web3-eth-accounts/node_modules/scrypt-js": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-3.0.1.tgz", - "integrity": "sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA==", - "dev": true, - "optional": true - }, - "node_modules/@truffle/provider/node_modules/web3-eth-accounts/node_modules/uuid": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.0.tgz", - "integrity": "sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg==", - "dev": true, - "optional": true, - "bin": { - "uuid": "dist/bin/uuid" - } - }, - "node_modules/@truffle/provider/node_modules/web3-eth-contract": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/web3-eth-contract/-/web3-eth-contract-1.8.2.tgz", - "integrity": "sha512-ID5A25tHTSBNwOPjiXSVzxruz006ULRIDbzWTYIFTp7NJ7vXu/kynKK2ag/ObuTqBpMbobP8nXcA9b5EDkIdQA==", - "dev": true, - "optional": true, - "dependencies": { - "@types/bn.js": "^5.1.0", - "web3-core": "1.8.2", - "web3-core-helpers": "1.8.2", - "web3-core-method": "1.8.2", - "web3-core-promievent": "1.8.2", - "web3-core-subscriptions": "1.8.2", - "web3-eth-abi": "1.8.2", - "web3-utils": "1.8.2" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@truffle/provider/node_modules/web3-eth-ens": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/web3-eth-ens/-/web3-eth-ens-1.8.2.tgz", - "integrity": "sha512-PWph7C/CnqdWuu1+SH4U4zdrK4t2HNt0I4XzPYFdv9ugE8EuojselioPQXsVGvjql+Nt3jDLvQvggPqlMbvwRw==", - "dev": true, - "optional": true, - "dependencies": { - "content-hash": "^2.5.2", - "eth-ens-namehash": "2.0.8", - "web3-core": "1.8.2", - "web3-core-helpers": "1.8.2", - "web3-core-promievent": "1.8.2", - "web3-eth-abi": "1.8.2", - "web3-eth-contract": "1.8.2", - "web3-utils": "1.8.2" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@truffle/provider/node_modules/web3-eth-iban": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/web3-eth-iban/-/web3-eth-iban-1.8.2.tgz", - "integrity": "sha512-h3vNblDWkWMuYx93Q27TAJz6lhzpP93EiC3+45D6xoz983p6si773vntoQ+H+5aZhwglBtoiBzdh7PSSOnP/xQ==", - "dev": true, - "optional": true, - "dependencies": { - "bn.js": "^5.2.1", - "web3-utils": "1.8.2" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@truffle/provider/node_modules/web3-eth-personal": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/web3-eth-personal/-/web3-eth-personal-1.8.2.tgz", - "integrity": "sha512-Vg4HfwCr7doiUF/RC+Jz0wT4+cYaXcOWMAW2AHIjHX6Z7Xwa8nrURIeQgeEE62qcEHAzajyAdB1u6bJyTfuCXw==", - "dev": true, - "optional": true, - "dependencies": { - "@types/node": "^12.12.6", - "web3-core": "1.8.2", - "web3-core-helpers": "1.8.2", - "web3-core-method": "1.8.2", - "web3-net": "1.8.2", - "web3-utils": "1.8.2" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@truffle/provider/node_modules/web3-net": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/web3-net/-/web3-net-1.8.2.tgz", - "integrity": "sha512-1itkDMGmbgb83Dg9nporFes9/fxsU7smJ3oRXlFkg4ZHn8YJyP1MSQFPJWWwSc+GrcCFt4O5IrUTvEkHqE3xag==", - "dev": true, - "optional": true, - "dependencies": { - "web3-core": "1.8.2", - "web3-core-method": "1.8.2", - "web3-utils": "1.8.2" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@truffle/provider/node_modules/web3-providers-http": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/web3-providers-http/-/web3-providers-http-1.8.2.tgz", - "integrity": "sha512-2xY94IIEQd16+b+vIBF4IC1p7GVaz9q4EUFscvMUjtEq4ru4Atdzjs9GP+jmcoo49p70II0UV3bqQcz0TQfVyQ==", - "dev": true, - "optional": true, - "dependencies": { - "abortcontroller-polyfill": "^1.7.3", - "cross-fetch": "^3.1.4", - "es6-promise": "^4.2.8", - "web3-core-helpers": "1.8.2" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@truffle/provider/node_modules/web3-providers-ipc": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/web3-providers-ipc/-/web3-providers-ipc-1.8.2.tgz", - "integrity": "sha512-p6fqKVGFg+WiXGHWnB1hu43PbvPkDHTz4RgoEzbXugv5rtv5zfYLqm8Ba6lrJOS5ks9kGKR21a0y3NzE3u7V4w==", - "dev": true, - "optional": true, - "dependencies": { - "oboe": "2.1.5", - "web3-core-helpers": "1.8.2" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@truffle/provider/node_modules/web3-providers-ws": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/web3-providers-ws/-/web3-providers-ws-1.8.2.tgz", - "integrity": "sha512-3s/4K+wHgbiN+Zrp9YjMq2eqAF6QGABw7wFftPdx+m5hWImV27/MoIx57c6HffNRqZXmCHnfWWFCNHHsi7wXnA==", - "dev": true, - "optional": true, - "dependencies": { - "eventemitter3": "4.0.4", - "web3-core-helpers": "1.8.2", - "websocket": "^1.0.32" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@truffle/provider/node_modules/web3-shh": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/web3-shh/-/web3-shh-1.8.2.tgz", - "integrity": "sha512-uZ+3MAoNcaJsXXNCDnizKJ5viBNeHOFYsCbFhV755Uu52FswzTOw6DtE7yK9nYXMtIhiSgi7nwl1RYzP8pystw==", - "dev": true, - "hasInstallScript": true, - "optional": true, - "dependencies": { - "web3-core": "1.8.2", - "web3-core-method": "1.8.2", - "web3-core-subscriptions": "1.8.2", - "web3-net": "1.8.2" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@truffle/provider/node_modules/web3-utils": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.8.2.tgz", - "integrity": "sha512-v7j6xhfLQfY7xQDrUP0BKbaNrmZ2/+egbqP9q3KYmOiPpnvAfol+32slgL0WX/5n8VPvKCK5EZ1HGrAVICSToA==", - "dev": true, - "optional": true, - "dependencies": { - "bn.js": "^5.2.1", - "ethereum-bloom-filters": "^1.0.6", - "ethereumjs-util": "^7.1.0", - "ethjs-unit": "0.1.6", - "number-to-bn": "1.7.0", - "randombytes": "^2.1.0", - "utf8": "3.0.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@truffle/provider/node_modules/websocket": { - "version": "1.0.34", - "resolved": "https://registry.npmjs.org/websocket/-/websocket-1.0.34.tgz", - "integrity": "sha512-PRDso2sGwF6kM75QykIesBijKSVceR6jL2G8NGYyq2XrItNC2P5/qL5XeR056GhA+Ly7JMFvJb9I312mJfmqnQ==", - "dev": true, - "optional": true, - "dependencies": { - "bufferutil": "^4.0.1", - "debug": "^2.2.0", - "es5-ext": "^0.10.50", - "typedarray-to-buffer": "^3.1.5", - "utf-8-validate": "^5.0.2", - "yaeti": "^0.0.6" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/@truffle/provider/node_modules/websocket/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "optional": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/@truffle/provider/node_modules/websocket/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true, - "optional": true - }, - "node_modules/@truffle/source-map-utils": { - "version": "1.3.110", - "resolved": "https://registry.npmjs.org/@truffle/source-map-utils/-/source-map-utils-1.3.110.tgz", - "integrity": "sha512-lkKWwLxGfQITRXjH9fWdy95jSIIzyfX+ggUi5rgkjz5rUUEXFaJ/YX3mxQLQJMi18kKn/yv0ZiGju84aMR3qoA==", - "dev": true, - "dependencies": { - "@truffle/code-utils": "^3.0.2", - "@truffle/codec": "^0.14.17", - "debug": "^4.3.1", - "json-pointer": "^0.6.1", - "node-interval-tree": "^1.3.3", - "web3-utils": "1.8.2" - } - }, - "node_modules/@truffle/source-map-utils/node_modules/@truffle/codec": { - "version": "0.14.17", - "resolved": "https://registry.npmjs.org/@truffle/codec/-/codec-0.14.17.tgz", - "integrity": "sha512-kD4dD86huLeaBEq5R8D1zleJEu6NsXbyYLdXl1V1TKdiO8odw5CBC6Y/+wdu5d3t1dyEYrTbhn1dqknZa52pmw==", - "dev": true, - "dependencies": { - "@truffle/abi-utils": "^0.3.9", - "@truffle/compile-common": "^0.9.4", - "big.js": "^6.0.3", - "bn.js": "^5.1.3", - "cbor": "^5.2.0", - "debug": "^4.3.1", - "lodash": "^4.17.21", - "semver": "7.3.7", - "utf8": "^3.0.0", - "web3-utils": "1.8.2" - } - }, - "node_modules/@truffle/source-map-utils/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==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@truffle/source-map-utils/node_modules/big.js": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/big.js/-/big.js-6.2.1.tgz", - "integrity": "sha512-bCtHMwL9LeDIozFn+oNhhFoq+yQ3BNdnsLSASUxLciOb1vgvpHsIO1dsENiGMgbb4SkP5TrzWzRiLddn8ahVOQ==", - "dev": true, - "engines": { - "node": "*" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/bigjs" - } - }, - "node_modules/@truffle/source-map-utils/node_modules/bignumber.js": { - "version": "9.1.1", - "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.1.1.tgz", - "integrity": "sha512-pHm4LsMJ6lzgNGVfZHjMoO8sdoRhOzOH4MLmY65Jg70bpxCKu5iOHNJyfF6OyvYw7t8Fpf35RuzUyqnQsj8Vig==", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/@truffle/source-map-utils/node_modules/bn.js": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", - "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==", - "dev": true - }, - "node_modules/@truffle/source-map-utils/node_modules/cbor": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/cbor/-/cbor-5.2.0.tgz", - "integrity": "sha512-5IMhi9e1QU76ppa5/ajP1BmMWZ2FHkhAhjeVKQ/EFCgYSEaeVaoGtL7cxJskf9oCCk+XjzaIdc3IuU/dbA/o2A==", - "dev": true, - "dependencies": { - "bignumber.js": "^9.0.1", - "nofilter": "^1.0.4" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@truffle/source-map-utils/node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/@truffle/source-map-utils/node_modules/ethereumjs-util": { - "version": "7.1.5", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.5.tgz", - "integrity": "sha512-SDl5kKrQAudFBUe5OJM9Ac6WmMyYmXX/6sTmLZ3ffG2eY6ZIGBes3pEDxNN6V72WyOw4CPD5RomKdsa8DAAwLg==", - "dev": true, - "dependencies": { - "@types/bn.js": "^5.1.0", - "bn.js": "^5.1.2", - "create-hash": "^1.1.2", - "ethereum-cryptography": "^0.1.3", - "rlp": "^2.2.4" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/@truffle/source-map-utils/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "node_modules/@truffle/source-map-utils/node_modules/semver": { - "version": "7.3.7", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", - "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@truffle/source-map-utils/node_modules/web3-utils": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.8.2.tgz", - "integrity": "sha512-v7j6xhfLQfY7xQDrUP0BKbaNrmZ2/+egbqP9q3KYmOiPpnvAfol+32slgL0WX/5n8VPvKCK5EZ1HGrAVICSToA==", - "dev": true, - "dependencies": { - "bn.js": "^5.2.1", - "ethereum-bloom-filters": "^1.0.6", - "ethereumjs-util": "^7.1.0", - "ethjs-unit": "0.1.6", - "number-to-bn": "1.7.0", - "randombytes": "^2.1.0", - "utf8": "3.0.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@truffle/spinners": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/@truffle/spinners/-/spinners-0.2.3.tgz", - "integrity": "sha512-YnaQ+oBRQ1I1+/P18i8oSW4orUYi6vwpZQxauEZ5X0L8atjKq+RWdiNaza6J6L+KOLunXM4+pWxnNzuUmxlJZw==", - "dev": true, - "optional": true, - "dependencies": { - "@trufflesuite/spinnies": "^0.1.1" - } - }, - "node_modules/@trufflesuite/eth-json-rpc-filters": { - "version": "4.1.2-1", - "resolved": "https://registry.npmjs.org/@trufflesuite/eth-json-rpc-filters/-/eth-json-rpc-filters-4.1.2-1.tgz", - "integrity": "sha512-/MChvC5dw2ck9NU1cZmdovCz2VKbOeIyR4tcxDvA5sT+NaL0rA2/R5U0yI7zsbo1zD+pgqav77rQHTzpUdDNJQ==", - "dependencies": { - "@trufflesuite/eth-json-rpc-middleware": "^4.4.2-0", - "await-semaphore": "^0.1.3", - "eth-query": "^2.1.2", - "json-rpc-engine": "^5.1.3", - "lodash.flatmap": "^4.5.0", - "safe-event-emitter": "^1.0.1" - } - }, - "node_modules/@trufflesuite/eth-json-rpc-infura": { - "version": "4.0.3-0", - "resolved": "https://registry.npmjs.org/@trufflesuite/eth-json-rpc-infura/-/eth-json-rpc-infura-4.0.3-0.tgz", - "integrity": "sha512-xaUanOmo0YLqRsL0SfXpFienhdw5bpQ1WEXxMTRi57az4lwpZBv4tFUDvcerdwJrxX9wQqNmgUgd1BrR01dumw==", - "dependencies": { - "@trufflesuite/eth-json-rpc-middleware": "^4.4.2-1", - "cross-fetch": "^2.1.1", - "eth-json-rpc-errors": "^1.0.1", - "json-rpc-engine": "^5.1.3" - } - }, - "node_modules/@trufflesuite/eth-json-rpc-infura/node_modules/eth-json-rpc-errors": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/eth-json-rpc-errors/-/eth-json-rpc-errors-1.1.1.tgz", - "integrity": "sha512-WT5shJ5KfNqHi9jOZD+ID8I1kuYWNrigtZat7GOQkvwo99f8SzAVaEcWhJUv656WiZOAg3P1RiJQANtUmDmbIg==", - "deprecated": "Package renamed: https://www.npmjs.com/package/eth-rpc-errors", - "dependencies": { - "fast-safe-stringify": "^2.0.6" - } - }, - "node_modules/@trufflesuite/eth-json-rpc-middleware": { - "version": "4.4.2-1", - "resolved": "https://registry.npmjs.org/@trufflesuite/eth-json-rpc-middleware/-/eth-json-rpc-middleware-4.4.2-1.tgz", - "integrity": "sha512-iEy9H8ja7/8aYES5HfrepGBKU9n/Y4OabBJEklVd/zIBlhCCBAWBqkIZgXt11nBXO/rYAeKwYuE3puH3ByYnLA==", - "dependencies": { - "@trufflesuite/eth-sig-util": "^1.4.2", - "btoa": "^1.2.1", - "clone": "^2.1.1", - "eth-json-rpc-errors": "^1.0.1", - "eth-query": "^2.1.2", - "ethereumjs-block": "^1.6.0", - "ethereumjs-tx": "^1.3.7", - "ethereumjs-util": "^5.1.2", - "ethereumjs-vm": "^2.6.0", - "fetch-ponyfill": "^4.0.0", - "json-rpc-engine": "^5.1.3", - "json-stable-stringify": "^1.0.1", - "pify": "^3.0.0", - "safe-event-emitter": "^1.0.1" - } - }, - "node_modules/@trufflesuite/eth-json-rpc-middleware/node_modules/eth-json-rpc-errors": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/eth-json-rpc-errors/-/eth-json-rpc-errors-1.1.1.tgz", - "integrity": "sha512-WT5shJ5KfNqHi9jOZD+ID8I1kuYWNrigtZat7GOQkvwo99f8SzAVaEcWhJUv656WiZOAg3P1RiJQANtUmDmbIg==", - "deprecated": "Package renamed: https://www.npmjs.com/package/eth-rpc-errors", - "dependencies": { - "fast-safe-stringify": "^2.0.6" - } - }, - "node_modules/@trufflesuite/eth-json-rpc-middleware/node_modules/ethereum-common": { - "version": "0.0.18", - "resolved": "https://registry.npmjs.org/ethereum-common/-/ethereum-common-0.0.18.tgz", - "integrity": "sha1-L9w1dvIykDNYl26znaeDIT/5Uj8=" - }, - "node_modules/@trufflesuite/eth-json-rpc-middleware/node_modules/ethereumjs-tx": { - "version": "1.3.7", - "resolved": "https://registry.npmjs.org/ethereumjs-tx/-/ethereumjs-tx-1.3.7.tgz", - "integrity": "sha512-wvLMxzt1RPhAQ9Yi3/HKZTn0FZYpnsmQdbKYfUUpi4j1SEIcbkd9tndVjcPrufY3V7j2IebOpC00Zp2P/Ay2kA==", - "deprecated": "New package name format for new versions: @ethereumjs/tx. Please update.", - "dependencies": { - "ethereum-common": "^0.0.18", - "ethereumjs-util": "^5.0.0" - } - }, - "node_modules/@trufflesuite/eth-json-rpc-middleware/node_modules/ethereumjs-util": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", - "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", - "dependencies": { - "bn.js": "^4.11.0", - "create-hash": "^1.1.2", - "elliptic": "^6.5.2", - "ethereum-cryptography": "^0.1.3", - "ethjs-util": "^0.1.3", - "rlp": "^2.0.0", - "safe-buffer": "^5.1.1" - } - }, - "node_modules/@trufflesuite/eth-json-rpc-middleware/node_modules/pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", - "engines": { - "node": ">=4" - } - }, - "node_modules/@trufflesuite/eth-sig-util": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/@trufflesuite/eth-sig-util/-/eth-sig-util-1.4.2.tgz", - "integrity": "sha512-+GyfN6b0LNW77hbQlH3ufZ/1eCON7mMrGym6tdYf7xiNw9Vv3jBO72bmmos1EId2NgBvPMhmYYm6DSLQFTmzrA==", - "dependencies": { - "ethereumjs-abi": "^0.6.8", - "ethereumjs-util": "^5.1.1" - } - }, - "node_modules/@trufflesuite/eth-sig-util/node_modules/ethereumjs-util": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", - "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", - "dependencies": { - "bn.js": "^4.11.0", - "create-hash": "^1.1.2", - "elliptic": "^6.5.2", - "ethereum-cryptography": "^0.1.3", - "ethjs-util": "^0.1.3", - "rlp": "^2.0.0", - "safe-buffer": "^5.1.1" - } - }, - "node_modules/@trufflesuite/spinnies": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@trufflesuite/spinnies/-/spinnies-0.1.1.tgz", - "integrity": "sha512-jltEtmFJj6xmQqr85gP8OqBHCEiId+zw+uAsb3DyLLRD17O6sySW6Afa2Z/jpzSafj+32ssDfLJ+c0of1NLqcA==", - "dev": true, - "optional": true, - "dependencies": { - "chalk": "^4.1.2", - "cli-cursor": "^3.1.0", - "strip-ansi": "^6.0.0" - } - }, - "node_modules/@trufflesuite/spinnies/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "optional": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/@trufflesuite/spinnies/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "optional": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/@trufflesuite/spinnies/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "optional": true, - "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/@trufflesuite/spinnies/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "optional": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/@trufflesuite/spinnies/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true, - "optional": true - }, - "node_modules/@trufflesuite/spinnies/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "optional": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/@trufflesuite/spinnies/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "optional": true, - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@trufflesuite/spinnies/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "optional": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@trufflesuite/web3-provider-engine": { - "version": "15.0.14", - "resolved": "https://registry.npmjs.org/@trufflesuite/web3-provider-engine/-/web3-provider-engine-15.0.14.tgz", - "integrity": "sha512-6/LoWvNMxYf0oaYzJldK2a9AdnkAdIeJhHW4nuUBAeO29eK9xezEaEYQ0ph1QRTaICxGxvn+1Azp4u8bQ8NEZw==", - "dev": true, - "dependencies": { - "@ethereumjs/tx": "^3.3.0", - "@trufflesuite/eth-json-rpc-filters": "^4.1.2-1", - "@trufflesuite/eth-json-rpc-infura": "^4.0.3-0", - "@trufflesuite/eth-json-rpc-middleware": "^4.4.2-1", - "@trufflesuite/eth-sig-util": "^1.4.2", - "async": "^2.5.0", - "backoff": "^2.5.0", - "clone": "^2.0.0", - "cross-fetch": "^2.1.0", - "eth-block-tracker": "^4.4.2", - "eth-json-rpc-errors": "^2.0.2", - "ethereumjs-block": "^1.2.2", - "ethereumjs-util": "^5.1.5", - "ethereumjs-vm": "^2.3.4", - "json-stable-stringify": "^1.0.1", - "promise-to-callback": "^1.0.0", - "readable-stream": "^2.2.9", - "request": "^2.85.0", - "semaphore": "^1.0.3", - "ws": "^5.1.1", - "xhr": "^2.2.0", - "xtend": "^4.0.1" - } - }, - "node_modules/@trufflesuite/web3-provider-engine/node_modules/ethereumjs-util": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", - "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", - "dev": true, - "dependencies": { - "bn.js": "^4.11.0", - "create-hash": "^1.1.2", - "elliptic": "^6.5.2", - "ethereum-cryptography": "^0.1.3", - "ethjs-util": "^0.1.3", - "rlp": "^2.0.0", - "safe-buffer": "^5.1.1" - } - }, - "node_modules/@trufflesuite/web3-provider-engine/node_modules/ws": { - "version": "5.2.3", - "resolved": "https://registry.npmjs.org/ws/-/ws-5.2.3.tgz", - "integrity": "sha512-jZArVERrMsKUatIdnLzqvcfydI85dvd/Fp1u/VOpfdDWQ4c9qWXe+VIeAbQ5FrDwciAkr+lzofXLz3Kuf26AOA==", - "dev": true, - "dependencies": { - "async-limiter": "~1.0.0" - } - }, - "node_modules/@tsconfig/node10": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.9.tgz", - "integrity": "sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==", - "dev": true - }, - "node_modules/@tsconfig/node12": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz", - "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==", - "dev": true - }, - "node_modules/@tsconfig/node14": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz", - "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==", - "dev": true - }, - "node_modules/@tsconfig/node16": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.4.tgz", - "integrity": "sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==", - "dev": true - }, - "node_modules/@typechain/ethers-v5": { - "version": "10.2.0", - "resolved": "https://registry.npmjs.org/@typechain/ethers-v5/-/ethers-v5-10.2.0.tgz", - "integrity": "sha512-ikaq0N/w9fABM+G01OFmU3U3dNnyRwEahkdvi9mqy1a3XwKiPZaF/lu54OcNaEWnpvEYyhhS0N7buCtLQqC92w==", - "dependencies": { - "lodash": "^4.17.15", - "ts-essentials": "^7.0.1" - }, - "peerDependencies": { - "@ethersproject/abi": "^5.0.0", - "@ethersproject/bytes": "^5.0.0", - "@ethersproject/providers": "^5.0.0", - "ethers": "^5.1.3", - "typechain": "^8.1.1", - "typescript": ">=4.3.0" - } - }, - "node_modules/@typechain/ethers-v5/node_modules/ts-essentials": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/ts-essentials/-/ts-essentials-7.0.3.tgz", - "integrity": "sha512-8+gr5+lqO3G84KdiTSMRLtuyJ+nTBVRKuCrK4lidMPdVeEp0uqC875uE5NMcaA7YYMN7XsNiFQuMvasF8HT/xQ==", - "peerDependencies": { - "typescript": ">=3.7.0" - } - }, - "node_modules/@types/accepts": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/@types/accepts/-/accepts-1.3.5.tgz", - "integrity": "sha512-jOdnI/3qTpHABjM5cx1Hc0sKsPoYCp+DP/GJRGtDlPd7fiV9oXGGIcjW/ZOxLIvjGz8MA+uMZI9metHlgqbgwQ==", - "dev": true, - "optional": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/bn.js": { - "version": "4.11.6", - "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-4.11.6.tgz", - "integrity": "sha512-pqr857jrp2kPuO9uRjZ3PwnJTjoQy+fcdxvBTvHm6dkmEL9q+hDD/2j/0ELOBPtPnS8LjCX0gI9nbl8lVkadpg==", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/body-parser": { - "version": "1.19.2", - "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.2.tgz", - "integrity": "sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==", - "dev": true, - "optional": true, - "dependencies": { - "@types/connect": "*", - "@types/node": "*" - } - }, - "node_modules/@types/cacheable-request": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/@types/cacheable-request/-/cacheable-request-6.0.3.tgz", - "integrity": "sha512-IQ3EbTzGxIigb1I3qPZc1rWJnH0BmSKv5QYTalEwweFvyBDLSAe24zP0le/hyi7ecGfZVlIVAg4BZqb8WBwKqw==", - "dev": true, - "dependencies": { - "@types/http-cache-semantics": "*", - "@types/keyv": "^3.1.4", - "@types/node": "*", - "@types/responselike": "^1.0.0" - } - }, - "node_modules/@types/cbor": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@types/cbor/-/cbor-2.0.0.tgz", - "integrity": "sha1-xievwu4i8j8jN/7LNGKKT5fGr7s=", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/color-name": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz", - "integrity": "sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==", - "dev": true - }, - "node_modules/@types/connect": { - "version": "3.4.35", - "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz", - "integrity": "sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==", - "dev": true, - "optional": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/cors": { - "version": "2.8.12", - "resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.12.tgz", - "integrity": "sha512-vt+kDhq/M2ayberEtJcIN/hxXy1Pk+59g2FV/ZQceeaTyCtCucjL2Q7FXlFjtWn4n15KCr1NE2lNNFhp0lEThw==", - "dev": true, - "optional": true - }, - "node_modules/@types/express": { - "version": "4.17.14", - "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.14.tgz", - "integrity": "sha512-TEbt+vaPFQ+xpxFLFssxUDXj5cWCxZJjIcB7Yg0k0GMHGtgtQgpvx/MUQUeAkNbA9AAGrwkAsoeItdTgS7FMyg==", - "dev": true, - "optional": true, - "dependencies": { - "@types/body-parser": "*", - "@types/express-serve-static-core": "^4.17.18", - "@types/qs": "*", - "@types/serve-static": "*" - } - }, - "node_modules/@types/express-serve-static-core": { - "version": "4.17.34", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.34.tgz", - "integrity": "sha512-fvr49XlCGoUj2Pp730AItckfjat4WNb0lb3kfrLWffd+RLeoGAMsq7UOy04PAPtoL01uKwcp6u8nhzpgpDYr3w==", - "dev": true, - "optional": true, - "dependencies": { - "@types/node": "*", - "@types/qs": "*", - "@types/range-parser": "*", - "@types/send": "*" - } - }, - "node_modules/@types/fs-extra": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-7.0.0.tgz", - "integrity": "sha512-ndoMMbGyuToTy4qB6Lex/inR98nPiNHacsgMPvy+zqMLgSxbt8VtWpDArpGp69h1fEDQHn1KB+9DWD++wgbwYA==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/http-cache-semantics": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.1.tgz", - "integrity": "sha512-SZs7ekbP8CN0txVG2xVRH6EgKmEm31BOxA07vkFaETzZz1xh+cbt8BcI0slpymvwhx5dlFnQG2rTlPVQn+iRPQ==", - "dev": true - }, - "node_modules/@types/keyv": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/@types/keyv/-/keyv-3.1.4.tgz", - "integrity": "sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/long": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/@types/long/-/long-4.0.2.tgz", - "integrity": "sha512-MqTGEo5bj5t157U6fA/BiDynNkn0YknVdh48CMPkTSpFTVmvao5UQmm7uEF6xBEo7qIMAlY/JSleYaE6VOdpaA==", - "dev": true - }, - "node_modules/@types/mime": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.2.tgz", - "integrity": "sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw==", - "dev": true, - "optional": true - }, - "node_modules/@types/mkdirp": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/@types/mkdirp/-/mkdirp-0.5.2.tgz", - "integrity": "sha512-U5icWpv7YnZYGsN4/cmh3WD2onMY0aJIiTE6+51TwJCttdHvtCYmkBNOobHlXwrJRL0nkH9jH4kD+1FAdMN4Tg==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "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/@types/npm": { - "version": "2.0.31", - "resolved": "https://registry.npmjs.org/@types/npm/-/npm-2.0.31.tgz", - "integrity": "sha512-v4JpUx83wVGItleYsnYeZrM8NTLSnYDfTE/iGm4owy6zZPNFNmnsvvrxiYtG3cVHt/XutzTjUBQ9Bh8bnvEkCw==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/pbkdf2": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@types/pbkdf2/-/pbkdf2-3.1.0.tgz", - "integrity": "sha512-Cf63Rv7jCQ0LaL8tNXmEyqTHuIJxRdlS5vMh1mj5voN4+QFhVZnlZruezqpWYDiJ8UTzhP0VmeLXCmBk66YrMQ==", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/prettier": { - "version": "1.19.1", - "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-1.19.1.tgz", - "integrity": "sha512-5qOlnZscTn4xxM5MeGXAMOsIOIKIbh9e85zJWfBRVPlRMEVawzoPhINYbRGkBZCI8LxvBe7tJCdWiarA99OZfQ==", - "dev": true - }, - "node_modules/@types/qs": { - "version": "6.9.7", - "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.7.tgz", - "integrity": "sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==", - "dev": true, - "optional": true - }, - "node_modules/@types/range-parser": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.4.tgz", - "integrity": "sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==", - "dev": true, - "optional": true - }, - "node_modules/@types/resolve": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-0.0.8.tgz", - "integrity": "sha512-auApPaJf3NPfe18hSoJkp8EbZzer2ISk7o8mCC3M9he/a04+gbMF97NkpD2S8riMGvm4BMRI59/SZQSaLTKpsQ==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/responselike": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@types/responselike/-/responselike-1.0.0.tgz", - "integrity": "sha512-85Y2BjiufFzaMIlvJDvTTB8Fxl2xfLo4HgmHzVBz08w4wDePCTjYw66PdrolO0kzli3yam/YCgRufyo1DdQVTA==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/secp256k1": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@types/secp256k1/-/secp256k1-4.0.1.tgz", - "integrity": "sha512-+ZjSA8ELlOp8SlKi0YLB2tz9d5iPNEmOBd+8Rz21wTMdaXQIa9b6TEnD6l5qKOCypE7FSyPyck12qZJxSDNoog==", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/semver": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/@types/semver/-/semver-5.5.0.tgz", - "integrity": "sha512-41qEJgBH/TWgo5NFSvBCJ1qkoi3Q6ONSF2avrHq1LVEZfYpdHmj0y9SuTK+u9ZhG1sYQKBL1AWXKyLWP4RaUoQ==", - "dev": true - }, - "node_modules/@types/send": { - "version": "0.17.1", - "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.1.tgz", - "integrity": "sha512-Cwo8LE/0rnvX7kIIa3QHCkcuF21c05Ayb0ZfxPiv0W8VRiZiNW/WuRupHKpqqGVGf7SUA44QSOUKaEd9lIrd/Q==", - "dev": true, - "optional": true, - "dependencies": { - "@types/mime": "^1", - "@types/node": "*" - } - }, - "node_modules/@types/serve-static": { - "version": "1.15.1", - "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.1.tgz", - "integrity": "sha512-NUo5XNiAdULrJENtJXZZ3fHtfMolzZwczzBbnAeBbqBwG+LaG6YaJtuwzwGSQZ2wsCrxjEhNNjAkKigy3n8teQ==", - "dev": true, - "optional": true, - "dependencies": { - "@types/mime": "*", - "@types/node": "*" - } - }, - "node_modules/@ungap/promise-all-settled": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@ungap/promise-all-settled/-/promise-all-settled-1.1.2.tgz", - "integrity": "sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q==" - }, - "node_modules/@web3-js/scrypt-shim": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/@web3-js/scrypt-shim/-/scrypt-shim-0.1.0.tgz", - "integrity": "sha512-ZtZeWCc/s0nMcdx/+rZwY1EcuRdemOK9ag21ty9UsHkFxsNb/AaoucUz0iPuyGe0Ku+PFuRmWZG7Z7462p9xPw==", - "deprecated": "This package is deprecated, for a pure JS implementation please use scrypt-js", - "hasInstallScript": true, - "dependencies": { - "scryptsy": "^2.1.0", - "semver": "^6.3.0" - } - }, - "node_modules/@web3-js/scrypt-shim/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@webassemblyjs/helper-code-frame": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.9.0.tgz", - "integrity": "sha512-ERCYdJBkD9Vu4vtjUYe8LZruWuNIToYq/ME22igL+2vj2dQ2OOujIZr3MEFvfEaqKoVqpsFKAGsRdBSBjrIvZA==", - "dependencies": { - "@webassemblyjs/wast-printer": "1.9.0" - } - }, - "node_modules/@webassemblyjs/helper-code-frame/node_modules/@webassemblyjs/ast": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.9.0.tgz", - "integrity": "sha512-C6wW5L+b7ogSDVqymbkkvuW9kruN//YisMED04xzeBBqjHa2FYnmvOlS6Xj68xWQRgWvI9cIglsjFowH/RJyEA==", - "dependencies": { - "@webassemblyjs/helper-module-context": "1.9.0", - "@webassemblyjs/helper-wasm-bytecode": "1.9.0", - "@webassemblyjs/wast-parser": "1.9.0" - } - }, - "node_modules/@webassemblyjs/helper-code-frame/node_modules/@webassemblyjs/helper-wasm-bytecode": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.9.0.tgz", - "integrity": "sha512-R7FStIzyNcd7xKxCZH5lE0Bqy+hGTwS3LJjuv1ZVxd9O7eHCedSdrId/hMOd20I+v8wDXEn+bjfKDLzTepoaUw==" - }, - "node_modules/@webassemblyjs/helper-code-frame/node_modules/@webassemblyjs/wast-printer": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.9.0.tgz", - "integrity": "sha512-2J0nE95rHXHyQ24cWjMKJ1tqB/ds8z/cyeOZxJhcb+rW+SQASVjuznUSmdz5GpVJTzU8JkhYut0D3siFDD6wsA==", - "dependencies": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/wast-parser": "1.9.0", - "@xtuc/long": "4.2.2" - } - }, - "node_modules/@webassemblyjs/helper-fsm": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-fsm/-/helper-fsm-1.9.0.tgz", - "integrity": "sha512-OPRowhGbshCb5PxJ8LocpdX9Kl0uB4XsAjl6jH/dWKlk/mzsANvhwbiULsaiqT5GZGT9qinTICdj6PLuM5gslw==" - }, - "node_modules/@webassemblyjs/helper-module-context": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-module-context/-/helper-module-context-1.9.0.tgz", - "integrity": "sha512-MJCW8iGC08tMk2enck1aPW+BE5Cw8/7ph/VGZxwyvGbJwjktKkDK7vy7gAmMDx88D7mhDTCNKAW5tED+gZ0W8g==", - "dependencies": { - "@webassemblyjs/ast": "1.9.0" - } - }, - "node_modules/@webassemblyjs/helper-module-context/node_modules/@webassemblyjs/ast": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.9.0.tgz", - "integrity": "sha512-C6wW5L+b7ogSDVqymbkkvuW9kruN//YisMED04xzeBBqjHa2FYnmvOlS6Xj68xWQRgWvI9cIglsjFowH/RJyEA==", - "dependencies": { - "@webassemblyjs/helper-module-context": "1.9.0", - "@webassemblyjs/helper-wasm-bytecode": "1.9.0", - "@webassemblyjs/wast-parser": "1.9.0" - } - }, - "node_modules/@webassemblyjs/helper-module-context/node_modules/@webassemblyjs/helper-wasm-bytecode": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.9.0.tgz", - "integrity": "sha512-R7FStIzyNcd7xKxCZH5lE0Bqy+hGTwS3LJjuv1ZVxd9O7eHCedSdrId/hMOd20I+v8wDXEn+bjfKDLzTepoaUw==" - }, - "node_modules/@webassemblyjs/wast-parser": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-parser/-/wast-parser-1.9.0.tgz", - "integrity": "sha512-qsqSAP3QQ3LyZjNC/0jBJ/ToSxfYJ8kYyuiGvtn/8MK89VrNEfwj7BPQzJVHi0jGTRK2dGdJ5PRqhtjzoww+bw==", - "dependencies": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/floating-point-hex-parser": "1.9.0", - "@webassemblyjs/helper-api-error": "1.9.0", - "@webassemblyjs/helper-code-frame": "1.9.0", - "@webassemblyjs/helper-fsm": "1.9.0", - "@xtuc/long": "4.2.2" - } - }, - "node_modules/@webassemblyjs/wast-parser/node_modules/@webassemblyjs/ast": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.9.0.tgz", - "integrity": "sha512-C6wW5L+b7ogSDVqymbkkvuW9kruN//YisMED04xzeBBqjHa2FYnmvOlS6Xj68xWQRgWvI9cIglsjFowH/RJyEA==", - "dependencies": { - "@webassemblyjs/helper-module-context": "1.9.0", - "@webassemblyjs/helper-wasm-bytecode": "1.9.0", - "@webassemblyjs/wast-parser": "1.9.0" - } - }, - "node_modules/@webassemblyjs/wast-parser/node_modules/@webassemblyjs/floating-point-hex-parser": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.9.0.tgz", - "integrity": "sha512-TG5qcFsS8QB4g4MhrxK5TqfdNe7Ey/7YL/xN+36rRjl/BlGE/NcBvJcqsRgCP6Z92mRE+7N50pRIi8SmKUbcQA==" - }, - "node_modules/@webassemblyjs/wast-parser/node_modules/@webassemblyjs/helper-api-error": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.9.0.tgz", - "integrity": "sha512-NcMLjoFMXpsASZFxJ5h2HZRcEhDkvnNFOAKneP5RbKRzaWJN36NC4jqQHKwStIhGXu5mUWlUUk7ygdtrO8lbmw==" - }, - "node_modules/@webassemblyjs/wast-parser/node_modules/@webassemblyjs/helper-wasm-bytecode": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.9.0.tgz", - "integrity": "sha512-R7FStIzyNcd7xKxCZH5lE0Bqy+hGTwS3LJjuv1ZVxd9O7eHCedSdrId/hMOd20I+v8wDXEn+bjfKDLzTepoaUw==" - }, - "node_modules/@xtuc/ieee754": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", - "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==" - }, - "node_modules/@xtuc/long": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", - "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==" - }, - "node_modules/abort-controller": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", - "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", - "dependencies": { - "event-target-shim": "^5.0.0" - }, - "engines": { - "node": ">=6.5" - } - }, - "node_modules/abortcontroller-polyfill": { - "version": "1.7.5", - "resolved": "https://registry.npmjs.org/abortcontroller-polyfill/-/abortcontroller-polyfill-1.7.5.tgz", - "integrity": "sha512-JMJ5soJWP18htbbxJjG7bG6yuI6pRhgJ0scHHTfkUjf6wjP912xZWvM+A4sJK3gqd9E8fcPbDnOefbA9Th/FIQ==", - "dev": true - }, - "node_modules/abstract-leveldown": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-2.6.3.tgz", - "integrity": "sha512-2++wDf/DYqkPR3o5tbfdhF96EfMApo1GpPfzOsR/ZYXdkSmELlvOOEAl9iKkRsktMPHdGjO4rtkBpf2I7TiTeA==", - "dependencies": { - "xtend": "~4.0.0" - } - }, - "node_modules/accepts": { - "version": "1.3.7", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", - "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", - "dev": true, - "dependencies": { - "mime-types": "~2.1.24", - "negotiator": "0.6.2" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/acorn": { - "version": "7.4.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.0.tgz", - "integrity": "sha512-+G7P8jJmCHr+S+cLfQxygbWhXy+8YTVGzAkpEbcLo2mLoL7tij/VG41QSHACSf5QgYRhMZYHuNc6drJaO0Da+w==", - "dev": true, - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/acorn-jsx": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.2.0.tgz", - "integrity": "sha512-HiUX/+K2YpkpJ+SzBffkM/AQ2YE03S0U1kjTLVpoJdhZMOWy8qvXVN9JdLqv2QsaQ6MPYQIuNmwD8zOiYUofLQ==", - "dev": true - }, - "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, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/aes-js": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/aes-js/-/aes-js-3.0.0.tgz", - "integrity": "sha1-4h3xCtbCBTKVvLuNq0Cwnb6ofk0=" - }, - "node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/ajv-errors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/ajv-errors/-/ajv-errors-1.0.1.tgz", - "integrity": "sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ==", - "peerDependencies": { - "ajv": ">=5.0.0" - } - }, - "node_modules/ajv-formats": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", - "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", - "dev": true, - "optional": true, - "dependencies": { - "ajv": "^8.0.0" - }, - "peerDependencies": { - "ajv": "^8.0.0" - }, - "peerDependenciesMeta": { - "ajv": { - "optional": true - } - } - }, - "node_modules/ajv-formats/node_modules/ajv": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", - "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", - "dev": true, - "optional": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/ajv-formats/node_modules/json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true, - "optional": true - }, - "node_modules/ajv-keywords": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", - "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "peerDependencies": { - "ajv": "^6.9.1" - } - }, - "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": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz", - "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "engines": { - "node": ">=6" - } - }, - "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/antlr4ts": { - "version": "0.5.0-alpha.4", - "resolved": "https://registry.npmjs.org/antlr4ts/-/antlr4ts-0.5.0-alpha.4.tgz", - "integrity": "sha512-WPQDt1B74OfPv/IMS2ekXAKkTZIHl88uMetg6q3OTqgFxZ/dxDXI0EWLyZid/1Pe6hTftyg5N7gel5wNAGxXyQ==", - "dev": true - }, - "node_modules/any-promise": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", - "integrity": "sha1-q8av7tzqUugJzcA3au0845Y10X8=" - }, - "node_modules/anymatch": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", - "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", - "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/apollo-datasource": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/apollo-datasource/-/apollo-datasource-3.3.2.tgz", - "integrity": "sha512-L5TiS8E2Hn/Yz7SSnWIVbZw0ZfEIXZCa5VUiVxD9P53JvSrf4aStvsFDlGWPvpIdCR+aly2CfoB79B9/JjKFqg==", - "deprecated": "The `apollo-datasource` package is part of Apollo Server v2 and v3, which are now deprecated (end-of-life October 22nd 2023). See https://www.apollographql.com/docs/apollo-server/previous-versions/ for more details.", - "dev": true, - "optional": true, - "dependencies": { - "@apollo/utils.keyvaluecache": "^1.0.1", - "apollo-server-env": "^4.2.1" - }, - "engines": { - "node": ">=12.0" - } - }, - "node_modules/apollo-reporting-protobuf": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/apollo-reporting-protobuf/-/apollo-reporting-protobuf-3.4.0.tgz", - "integrity": "sha512-h0u3EbC/9RpihWOmcSsvTW2O6RXVaD/mPEjfrPkxRPTEPWqncsgOoRJw+wih4OqfH3PvTJvoEIf4LwKrUaqWog==", - "deprecated": "The `apollo-reporting-protobuf` package is part of Apollo Server v2 and v3, which are now deprecated (end-of-life October 22nd 2023). This package's functionality is now found in the `@apollo/usage-reporting-protobuf` package. See https://www.apollographql.com/docs/apollo-server/previous-versions/ for more details.", - "dev": true, - "optional": true, - "dependencies": { - "@apollo/protobufjs": "1.2.6" - } - }, - "node_modules/apollo-reporting-protobuf/node_modules/@apollo/protobufjs": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/@apollo/protobufjs/-/protobufjs-1.2.6.tgz", - "integrity": "sha512-Wqo1oSHNUj/jxmsVp4iR3I480p6qdqHikn38lKrFhfzcDJ7lwd7Ck7cHRl4JE81tWNArl77xhnG/OkZhxKBYOw==", - "dev": true, - "hasInstallScript": true, - "optional": true, - "dependencies": { - "@protobufjs/aspromise": "^1.1.2", - "@protobufjs/base64": "^1.1.2", - "@protobufjs/codegen": "^2.0.4", - "@protobufjs/eventemitter": "^1.1.0", - "@protobufjs/fetch": "^1.1.0", - "@protobufjs/float": "^1.0.2", - "@protobufjs/inquire": "^1.1.0", - "@protobufjs/path": "^1.1.2", - "@protobufjs/pool": "^1.1.0", - "@protobufjs/utf8": "^1.1.0", - "@types/long": "^4.0.0", - "@types/node": "^10.1.0", - "long": "^4.0.0" - }, - "bin": { - "apollo-pbjs": "bin/pbjs", - "apollo-pbts": "bin/pbts" - } - }, - "node_modules/apollo-reporting-protobuf/node_modules/@types/node": { - "version": "10.17.60", - "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.60.tgz", - "integrity": "sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw==", - "dev": true, - "optional": true - }, - "node_modules/apollo-server": { - "version": "3.12.0", - "resolved": "https://registry.npmjs.org/apollo-server/-/apollo-server-3.12.0.tgz", - "integrity": "sha512-wZHLgBoIdGxr/YpPTG5RwNnS+B2y70T/nCegCnU6Yl+H3PXB92OIguLMhdJIZVjukIOhiQT12dNIehqLQ+1hMQ==", - "deprecated": "The `apollo-server` package is part of Apollo Server v2 and v3, which are now deprecated (end-of-life October 22nd 2023). This package's functionality is now found in the `@apollo/server` package. See https://www.apollographql.com/docs/apollo-server/previous-versions/ for more details.", - "dev": true, - "optional": true, - "dependencies": { - "@types/express": "4.17.14", - "apollo-server-core": "^3.12.0", - "apollo-server-express": "^3.12.0", - "express": "^4.17.1" - }, - "peerDependencies": { - "graphql": "^15.3.0 || ^16.0.0" - } - }, - "node_modules/apollo-server-core": { - "version": "3.12.0", - "resolved": "https://registry.npmjs.org/apollo-server-core/-/apollo-server-core-3.12.0.tgz", - "integrity": "sha512-hq7iH6Cgldgmnjs9FVSZeKWRpi0/ZR+iJ1arzeD2VXGxxgk1mAm/cz1Tx0TYgegZI+FvvrRl0UhKEx7sLnIxIg==", - "deprecated": "The `apollo-server-core` package is part of Apollo Server v2 and v3, which are now deprecated (end-of-life October 22nd 2023). This package's functionality is now found in the `@apollo/server` package. See https://www.apollographql.com/docs/apollo-server/previous-versions/ for more details.", - "dev": true, - "optional": true, - "dependencies": { - "@apollo/utils.keyvaluecache": "^1.0.1", - "@apollo/utils.logger": "^1.0.0", - "@apollo/utils.usagereporting": "^1.0.0", - "@apollographql/apollo-tools": "^0.5.3", - "@apollographql/graphql-playground-html": "1.6.29", - "@graphql-tools/mock": "^8.1.2", - "@graphql-tools/schema": "^8.0.0", - "@josephg/resolvable": "^1.0.0", - "apollo-datasource": "^3.3.2", - "apollo-reporting-protobuf": "^3.4.0", - "apollo-server-env": "^4.2.1", - "apollo-server-errors": "^3.3.1", - "apollo-server-plugin-base": "^3.7.2", - "apollo-server-types": "^3.8.0", - "async-retry": "^1.2.1", - "fast-json-stable-stringify": "^2.1.0", - "graphql-tag": "^2.11.0", - "loglevel": "^1.6.8", - "lru-cache": "^6.0.0", - "node-abort-controller": "^3.0.1", - "sha.js": "^2.4.11", - "uuid": "^9.0.0", - "whatwg-mimetype": "^3.0.0" - }, - "engines": { - "node": ">=12.0" - }, - "peerDependencies": { - "graphql": "^15.3.0 || ^16.0.0" - } - }, - "node_modules/apollo-server-core/node_modules/uuid": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.0.tgz", - "integrity": "sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg==", - "dev": true, - "optional": true, - "bin": { - "uuid": "dist/bin/uuid" - } - }, - "node_modules/apollo-server-env": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/apollo-server-env/-/apollo-server-env-4.2.1.tgz", - "integrity": "sha512-vm/7c7ld+zFMxibzqZ7SSa5tBENc4B0uye9LTfjJwGoQFY5xsUPH5FpO5j0bMUDZ8YYNbrF9SNtzc5Cngcr90g==", - "deprecated": "The `apollo-server-env` package is part of Apollo Server v2 and v3, which are now deprecated (end-of-life October 22nd 2023). This package's functionality is now found in the `@apollo/utils.fetcher` package. See https://www.apollographql.com/docs/apollo-server/previous-versions/ for more details.", - "dev": true, - "optional": true, - "dependencies": { - "node-fetch": "^2.6.7" - }, - "engines": { - "node": ">=12.0" - } - }, - "node_modules/apollo-server-env/node_modules/node-fetch": { - "version": "2.6.11", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.11.tgz", - "integrity": "sha512-4I6pdBY1EthSqDmJkiNk3JIT8cswwR9nfeW/cPdUagJYEQG7R95WRH74wpz7ma8Gh/9dI9FP+OU+0E4FvtA55w==", - "dev": true, - "optional": true, - "dependencies": { - "whatwg-url": "^5.0.0" - }, - "engines": { - "node": "4.x || >=6.0.0" - }, - "peerDependencies": { - "encoding": "^0.1.0" - }, - "peerDependenciesMeta": { - "encoding": { - "optional": true - } - } - }, - "node_modules/apollo-server-errors": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/apollo-server-errors/-/apollo-server-errors-3.3.1.tgz", - "integrity": "sha512-xnZJ5QWs6FixHICXHxUfm+ZWqqxrNuPlQ+kj5m6RtEgIpekOPssH/SD9gf2B4HuWV0QozorrygwZnux8POvyPA==", - "deprecated": "The `apollo-server-errors` package is part of Apollo Server v2 and v3, which are now deprecated (end-of-life October 22nd 2023). This package's functionality is now found in the `@apollo/server` package. See https://www.apollographql.com/docs/apollo-server/previous-versions/ for more details.", - "dev": true, - "optional": true, - "engines": { - "node": ">=12.0" - }, - "peerDependencies": { - "graphql": "^15.3.0 || ^16.0.0" - } - }, - "node_modules/apollo-server-express": { - "version": "3.12.0", - "resolved": "https://registry.npmjs.org/apollo-server-express/-/apollo-server-express-3.12.0.tgz", - "integrity": "sha512-m8FaGPUfDOEGSm7QRWRmUUGjG/vqvpQoorkId9/FXkC57fz/A59kEdrzkMt9538Xgsa5AV+X4MEWLJhTvlW3LQ==", - "deprecated": "The `apollo-server-express` package is part of Apollo Server v2 and v3, which are now deprecated (end-of-life October 22nd 2023). This package's functionality is now found in the `@apollo/server` package. See https://www.apollographql.com/docs/apollo-server/previous-versions/ for more details.", - "dev": true, - "optional": true, - "dependencies": { - "@types/accepts": "^1.3.5", - "@types/body-parser": "1.19.2", - "@types/cors": "2.8.12", - "@types/express": "4.17.14", - "@types/express-serve-static-core": "4.17.31", - "accepts": "^1.3.5", - "apollo-server-core": "^3.12.0", - "apollo-server-types": "^3.8.0", - "body-parser": "^1.19.0", - "cors": "^2.8.5", - "parseurl": "^1.3.3" - }, - "engines": { - "node": ">=12.0" - }, - "peerDependencies": { - "express": "^4.17.1", - "graphql": "^15.3.0 || ^16.0.0" - } - }, - "node_modules/apollo-server-express/node_modules/@types/express-serve-static-core": { - "version": "4.17.31", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.31.tgz", - "integrity": "sha512-DxMhY+NAsTwMMFHBTtJFNp5qiHKJ7TeqOo23zVEM9alT1Ml27Q3xcTH0xwxn7Q0BbMcVEJOs/7aQtUWupUQN3Q==", - "dev": true, - "optional": true, - "dependencies": { - "@types/node": "*", - "@types/qs": "*", - "@types/range-parser": "*" - } - }, - "node_modules/apollo-server-plugin-base": { - "version": "3.7.2", - "resolved": "https://registry.npmjs.org/apollo-server-plugin-base/-/apollo-server-plugin-base-3.7.2.tgz", - "integrity": "sha512-wE8dwGDvBOGehSsPTRZ8P/33Jan6/PmL0y0aN/1Z5a5GcbFhDaaJCjK5cav6npbbGL2DPKK0r6MPXi3k3N45aw==", - "deprecated": "The `apollo-server-plugin-base` package is part of Apollo Server v2 and v3, which are now deprecated (end-of-life October 22nd 2023). This package's functionality is now found in the `@apollo/server` package. See https://www.apollographql.com/docs/apollo-server/previous-versions/ for more details.", - "dev": true, - "optional": true, - "dependencies": { - "apollo-server-types": "^3.8.0" - }, - "engines": { - "node": ">=12.0" - }, - "peerDependencies": { - "graphql": "^15.3.0 || ^16.0.0" - } - }, - "node_modules/apollo-server-types": { - "version": "3.8.0", - "resolved": "https://registry.npmjs.org/apollo-server-types/-/apollo-server-types-3.8.0.tgz", - "integrity": "sha512-ZI/8rTE4ww8BHktsVpb91Sdq7Cb71rdSkXELSwdSR0eXu600/sY+1UXhTWdiJvk+Eq5ljqoHLwLbY2+Clq2b9A==", - "deprecated": "The `apollo-server-types` package is part of Apollo Server v2 and v3, which are now deprecated (end-of-life October 22nd 2023). This package's functionality is now found in the `@apollo/server` package. See https://www.apollographql.com/docs/apollo-server/previous-versions/ for more details.", - "dev": true, - "optional": true, - "dependencies": { - "@apollo/utils.keyvaluecache": "^1.0.1", - "@apollo/utils.logger": "^1.0.0", - "apollo-reporting-protobuf": "^3.4.0", - "apollo-server-env": "^4.2.1" - }, - "engines": { - "node": ">=12.0" - }, - "peerDependencies": { - "graphql": "^15.3.0 || ^16.0.0" - } - }, - "node_modules/app-module-path": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/app-module-path/-/app-module-path-2.2.0.tgz", - "integrity": "sha1-ZBqlXft9am8KgUHEucCqULbCTdU=", - "dev": true - }, - "node_modules/aproba": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", - "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==" - }, - "node_modules/arg": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", - "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", - "dev": true - }, - "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/argsarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/argsarray/-/argsarray-0.0.1.tgz", - "integrity": "sha512-u96dg2GcAKtpTrBdDoFIM7PjcBA+6rSP0OR94MOReNRyUECL6MtQt5XXmRr4qrftYaef9+l5hcpO5te7sML1Cg==", - "dev": true, - "optional": true - }, - "node_modules/arr-diff": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/arr-flatten": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", - "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/arr-union": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", - "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/array-back": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-3.1.0.tgz", - "integrity": "sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q==", - "engines": { - "node": ">=6" - } - }, - "node_modules/array-filter": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/array-filter/-/array-filter-1.0.0.tgz", - "integrity": "sha1-uveeYubvTCpMC4MSMtr/7CUfnYM=", - "dev": true - }, - "node_modules/array-flatten": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", - "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=", - "dev": true - }, - "node_modules/array-unique": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/asn1": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", - "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", - "dependencies": { - "safer-buffer": "~2.1.0" - } - }, - "node_modules/asn1.js": { - "version": "4.10.1", - "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.10.1.tgz", - "integrity": "sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==", - "dependencies": { - "bn.js": "^4.0.0", - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0" - } - }, - "node_modules/assert": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/assert/-/assert-1.5.0.tgz", - "integrity": "sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA==", - "dependencies": { - "object-assign": "^4.1.1", - "util": "0.10.3" - } - }, - "node_modules/assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", - "engines": { - "node": ">=0.8" - } - }, - "node_modules/assert/node_modules/inherits": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", - "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=" - }, - "node_modules/assert/node_modules/util": { - "version": "0.10.3", - "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", - "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", - "dependencies": { - "inherits": "2.0.1" - } - }, - "node_modules/assertion-error": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", - "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", - "engines": { - "node": "*" - } - }, - "node_modules/assign-symbols": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", - "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/astral-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz", - "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/async": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", - "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", - "dependencies": { - "lodash": "^4.17.14" - } - }, - "node_modules/async-each": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz", - "integrity": "sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==", - "optional": true - }, - "node_modules/async-eventemitter": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/async-eventemitter/-/async-eventemitter-0.2.4.tgz", - "integrity": "sha512-pd20BwL7Yt1zwDFy+8MX8F1+WCT8aQeKj0kQnTrH9WaeRETlRamVhD0JtRPmrV4GfOJ2F9CvdQkZeZhnh2TuHw==", - "dependencies": { - "async": "^2.4.0" - } - }, - "node_modules/async-iterator-to-pull-stream": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/async-iterator-to-pull-stream/-/async-iterator-to-pull-stream-1.3.0.tgz", - "integrity": "sha512-NjyhAEz/sx32olqgKIk/2xbWEM6o8qef1yetIgb0U/R3oBgndP1kE/0CslowH3jvnA94BO4I6OXpOkTKH7Z1AA==", - "dependencies": { - "get-iterator": "^1.0.2", - "pull-stream-to-async-iterator": "^1.0.1" - } - }, - "node_modules/async-limiter": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz", - "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==" - }, - "node_modules/async-retry": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/async-retry/-/async-retry-1.3.3.tgz", - "integrity": "sha512-wfr/jstw9xNi/0teMHrRW7dsz3Lt5ARhYNZ2ewpadnhaIp5mbALhOAP+EAdsC7t4Z6wqsDVv9+W6gm1Dk9mEyw==", - "dev": true, - "optional": true, - "dependencies": { - "retry": "0.13.1" - } - }, - "node_modules/asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" - }, - "node_modules/at-least-node": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", - "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", - "dev": true, - "optional": true, - "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/atob": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", - "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", - "bin": { - "atob": "bin/atob.js" - }, - "engines": { - "node": ">= 4.5.0" - } - }, - "node_modules/atomically": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/atomically/-/atomically-1.7.0.tgz", - "integrity": "sha512-Xcz9l0z7y9yQ9rdDaxlmaI4uJHf/T8g9hOEzJcsEqX2SjCj4J20uK7+ldkDHMbpJDK76wF7xEIgxc/vSlsfw5w==", - "dev": true, - "optional": true, - "engines": { - "node": ">=10.12.0" - } - }, - "node_modules/available-typed-arrays": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.2.tgz", - "integrity": "sha512-XWX3OX8Onv97LMk/ftVyBibpGwY5a8SmuxZPzeOxqmuEqUCOM9ZE+uIaD1VNJ5QnvU2UQusvmKbuM1FR8QWGfQ==", - "dev": true, - "dependencies": { - "array-filter": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/await-semaphore": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/await-semaphore/-/await-semaphore-0.1.3.tgz", - "integrity": "sha512-d1W2aNSYcz/sxYO4pMGX9vq65qOTu0P800epMud+6cYYX0QcT7zyqcxec3VWzpgvdXo57UWmVbZpLMjX2m1I7Q==" - }, - "node_modules/aws-sign2": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", - "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", - "engines": { - "node": "*" - } - }, - "node_modules/aws4": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.10.0.tgz", - "integrity": "sha512-3YDiu347mtVtjpyV3u5kVqQLP242c06zwDOgpeRnybmXlYYsLbtTrUBUm8i8srONt+FWobl5aibnU1030PeeuA==" - }, - "node_modules/axios": { - "version": "0.18.1", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.18.1.tgz", - "integrity": "sha512-0BfJq4NSfQXd+SkFdrvFbG7addhYSBA2mQwISr46pD6E5iqkWg02RAs8vyTT/j0RTnoYmeXauBuSv1qKwR179g==", - "dev": true, - "dependencies": { - "follow-redirects": "1.5.10", - "is-buffer": "^2.0.2" - } - }, - "node_modules/babel-plugin-polyfill-corejs2": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.0.tgz", - "integrity": "sha512-wMDoBJ6uG4u4PNFh72Ty6t3EgfA91puCuAwKIazbQlci+ENb/UU9A3xG5lutjUIiXCIn1CY5L15r9LimiJyrSA==", - "dependencies": { - "@babel/compat-data": "^7.13.11", - "@babel/helper-define-polyfill-provider": "^0.3.0", - "semver": "^6.1.1" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/babel-plugin-polyfill-corejs2/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/babel-plugin-polyfill-corejs3": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.5.0.tgz", - "integrity": "sha512-Hcrgnmkf+4JTj73GbK3bBhlVPiLL47owUAnoJIf69Hakl3q+KfodbDXiZWGMM7iqCZTxCG3Z2VRfPNYES4rXqQ==", - "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.3.0", - "core-js-compat": "^3.20.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/babel-plugin-polyfill-regenerator": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.3.0.tgz", - "integrity": "sha512-dhAPTDLGoMW5/84wkgwiLRwMnio2i1fUe53EuvtKMv0pn2p3S8OCoV1xAzfJPl0KOX7IB89s2ib85vbYiea3jg==", - "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.3.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/backoff": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/backoff/-/backoff-2.5.0.tgz", - "integrity": "sha1-9hbtqdPktmuMp/ynn2lXIsX44m8=", - "dependencies": { - "precond": "0.2" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/balanced-match": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" - }, - "node_modules/base": { - "version": "0.11.2", - "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", - "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", - "dependencies": { - "cache-base": "^1.0.1", - "class-utils": "^0.3.5", - "component-emitter": "^1.2.1", - "define-property": "^1.0.0", - "isobject": "^3.0.1", - "mixin-deep": "^1.2.0", - "pascalcase": "^0.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/base-x": { - "version": "3.0.8", - "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.8.tgz", - "integrity": "sha512-Rl/1AWP4J/zRrk54hhlxH4drNxPJXYUaKffODVI53/dAsV4t9fBxyxYKAVPU1XBHxYwOWP9h9H0hM2MVw4YfJA==", - "dependencies": { - "safe-buffer": "^5.0.1" - } - }, - "node_modules/base/node_modules/define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dependencies": { - "is-descriptor": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", - "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/bcrypt-pbkdf": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", - "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", - "dependencies": { - "tweetnacl": "^0.14.3" - } - }, - "node_modules/big.js": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", - "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", - "engines": { - "node": "*" - } - }, - "node_modules/bignumber.js": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-8.1.1.tgz", - "integrity": "sha512-QD46ppGintwPGuL1KqmwhR0O+N2cZUg8JG/VzwI2e28sM9TqHjQB10lI4QAaMHVbLzwVLLAwEglpKPViWX+5NQ==", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/binary-extensions": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.1.0.tgz", - "integrity": "sha512-1Yj8h9Q+QDF5FzhMs/c9+6UntbD5MkRfRwac8DoEm9ZfUBZ7tZ55YcGVAzEe4bXsdQHEk+s9S5wsOKVdZrw0tQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/bindings": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", - "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", - "dependencies": { - "file-uri-to-path": "1.0.0" - } - }, - "node_modules/bip66": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/bip66/-/bip66-1.1.5.tgz", - "integrity": "sha1-AfqHSHhcpwlV1QESF9GzE5lpyiI=", - "dependencies": { - "safe-buffer": "^5.0.1" - } - }, - "node_modules/bl": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/bl/-/bl-1.2.2.tgz", - "integrity": "sha512-e8tQYnZodmebYDWGH7KMRvtzKXaJHx3BbilrgZCfvyLUYdKpK1t5PSPmpkny/SgiTSCnjfLW7v5rlONXVFkQEA==", - "dev": true, - "dependencies": { - "readable-stream": "^2.3.5", - "safe-buffer": "^5.1.1" - } - }, - "node_modules/blakejs": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/blakejs/-/blakejs-1.1.0.tgz", - "integrity": "sha1-ad+S75U6qIylGjLfarHFShVfx6U=" - }, - "node_modules/bluebird": { - "version": "3.7.2", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", - "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==" - }, - "node_modules/bn.js": { - "version": "4.11.9", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", - "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==" - }, - "node_modules/body-parser": { - "version": "1.19.0", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz", - "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==", - "dev": true, - "dependencies": { - "bytes": "3.1.0", - "content-type": "~1.0.4", - "debug": "2.6.9", - "depd": "~1.1.2", - "http-errors": "1.7.2", - "iconv-lite": "0.4.24", - "on-finished": "~2.3.0", - "qs": "6.7.0", - "raw-body": "2.4.0", - "type-is": "~1.6.17" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/body-parser/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/body-parser/node_modules/qs": { - "version": "6.7.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", - "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==", - "dev": true, - "engines": { - "node": ">=0.6" - } - }, - "node_modules/boolbase": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", - "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=", - "dev": true - }, - "node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/braces": { - "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" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/brorand": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", - "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=" - }, - "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/browserify-aes": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", - "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", - "dependencies": { - "buffer-xor": "^1.0.3", - "cipher-base": "^1.0.0", - "create-hash": "^1.1.0", - "evp_bytestokey": "^1.0.3", - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "node_modules/browserify-cipher": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", - "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", - "dependencies": { - "browserify-aes": "^1.0.4", - "browserify-des": "^1.0.0", - "evp_bytestokey": "^1.0.0" - } - }, - "node_modules/browserify-des": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", - "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", - "dependencies": { - "cipher-base": "^1.0.1", - "des.js": "^1.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "node_modules/browserify-rsa": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz", - "integrity": "sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ=", - "dependencies": { - "bn.js": "^4.1.0", - "randombytes": "^2.0.1" - } - }, - "node_modules/browserify-sign": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.0.tgz", - "integrity": "sha512-hEZC1KEeYuoHRqhGhTy6gWrpJA3ZDjFWv0DE61643ZnOXAKJb3u7yWcrU0mMc9SwAqK1n7myPGndkp0dFG7NFA==", - "dependencies": { - "bn.js": "^5.1.1", - "browserify-rsa": "^4.0.1", - "create-hash": "^1.2.0", - "create-hmac": "^1.1.7", - "elliptic": "^6.5.2", - "inherits": "^2.0.4", - "parse-asn1": "^5.1.5", - "readable-stream": "^3.6.0", - "safe-buffer": "^5.2.0" - } - }, - "node_modules/browserify-sign/node_modules/bn.js": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.1.2.tgz", - "integrity": "sha512-40rZaf3bUNKTVYu9sIeeEGOg7g14Yvnj9kH7b50EiwX0Q7A6umbvfI5tvHaOERH0XigqKkfLkFQxzb4e6CIXnA==" - }, - "node_modules/browserify-sign/node_modules/readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/browserify-zlib": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", - "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", - "dependencies": { - "pako": "~1.0.5" - } - }, - "node_modules/browserslist": { - "version": "4.19.1", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.19.1.tgz", - "integrity": "sha512-u2tbbG5PdKRTUoctO3NBD8FQ5HdPh1ZXPHzp1rwaa5jTc+RV9/+RlWiAIKmjRPQF+xbGM9Kklj5bZQFa2s/38A==", - "dependencies": { - "caniuse-lite": "^1.0.30001286", - "electron-to-chromium": "^1.4.17", - "escalade": "^3.1.1", - "node-releases": "^2.0.1", - "picocolors": "^1.0.0" - }, - "bin": { - "browserslist": "cli.js" - }, - "engines": { - "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - } - }, - "node_modules/bs58": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz", - "integrity": "sha1-vhYedsNU9veIrkBx9j806MTwpCo=", - "dependencies": { - "base-x": "^3.0.2" - } - }, - "node_modules/bs58check": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/bs58check/-/bs58check-2.1.2.tgz", - "integrity": "sha512-0TS1jicxdU09dwJMNZtVAfzPi6Q6QeN0pM1Fkzrjn+XYHvzMKPU3pHVpva+769iNVSfIYWf7LJ6WR+BuuMf8cA==", - "dependencies": { - "bs58": "^4.0.0", - "create-hash": "^1.1.0", - "safe-buffer": "^5.1.2" - } - }, - "node_modules/btoa": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/btoa/-/btoa-1.2.1.tgz", - "integrity": "sha512-SB4/MIGlsiVkMcHmT+pSmIPoNDoHg+7cMzmt3Uxt628MTz2487DKSqK/fuhFBrkuqrYv5UCEnACpF4dTFNKc/g==", - "bin": { - "btoa": "bin/btoa.js" - }, - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/buffer": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" - } - }, - "node_modules/buffer-alloc": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/buffer-alloc/-/buffer-alloc-1.2.0.tgz", - "integrity": "sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow==", - "dev": true, - "dependencies": { - "buffer-alloc-unsafe": "^1.1.0", - "buffer-fill": "^1.0.0" - } - }, - "node_modules/buffer-alloc-unsafe": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz", - "integrity": "sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg==", - "dev": true - }, - "node_modules/buffer-crc32": { - "version": "0.2.13", - "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", - "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/buffer-fill": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/buffer-fill/-/buffer-fill-1.0.0.tgz", - "integrity": "sha1-+PeLdniYiO858gXNY39o5wISKyw=", - "dev": true - }, - "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==" - }, - "node_modules/buffer-to-arraybuffer": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/buffer-to-arraybuffer/-/buffer-to-arraybuffer-0.0.5.tgz", - "integrity": "sha1-YGSkD6dutDxyOrqe+PbhIW0QURo=" - }, - "node_modules/buffer-xor": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", - "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=" - }, - "node_modules/bufferutil": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/bufferutil/-/bufferutil-4.0.7.tgz", - "integrity": "sha512-kukuqc39WOHtdxtw4UScxF/WVnMFVSQVKhtx3AjZJzhd0RGZZldcrfSEbVsWWe6KNH253574cq5F+wpv0G9pJw==", - "devOptional": true, - "hasInstallScript": true, - "dependencies": { - "node-gyp-build": "^4.3.0" - }, - "engines": { - "node": ">=6.14.2" - } - }, - "node_modules/builtin-status-codes": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", - "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=" - }, - "node_modules/bytes": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", - "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/cacache": { - "version": "12.0.4", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-12.0.4.tgz", - "integrity": "sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ==", - "dependencies": { - "bluebird": "^3.5.5", - "chownr": "^1.1.1", - "figgy-pudding": "^3.5.1", - "glob": "^7.1.4", - "graceful-fs": "^4.1.15", - "infer-owner": "^1.0.3", - "lru-cache": "^5.1.1", - "mississippi": "^3.0.0", - "mkdirp": "^0.5.1", - "move-concurrently": "^1.0.1", - "promise-inflight": "^1.0.1", - "rimraf": "^2.6.3", - "ssri": "^6.0.1", - "unique-filename": "^1.1.1", - "y18n": "^4.0.0" - } - }, - "node_modules/cacache/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==", - "dependencies": { - "yallist": "^3.0.2" - } - }, - "node_modules/cacache/node_modules/mkdirp": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", - "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", - "dependencies": { - "minimist": "^1.2.6" - }, - "bin": { - "mkdirp": "bin/cmd.js" - } - }, - "node_modules/cache-base": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", - "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", - "dependencies": { - "collection-visit": "^1.0.0", - "component-emitter": "^1.2.1", - "get-value": "^2.0.6", - "has-value": "^1.0.0", - "isobject": "^3.0.1", - "set-value": "^2.0.0", - "to-object-path": "^0.3.0", - "union-value": "^1.0.0", - "unset-value": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/cacheable-lookup": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-6.1.0.tgz", - "integrity": "sha512-KJ/Dmo1lDDhmW2XDPMo+9oiy/CeqosPguPCrgcVzKyZrL6pM1gU2GmPY/xo6OQPTUaA/c0kwHuywB4E6nmT9ww==", - "dev": true, - "engines": { - "node": ">=10.6.0" - } - }, - "node_modules/cacheable-request": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz", - "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==", - "dev": true, - "dependencies": { - "clone-response": "^1.0.2", - "get-stream": "^5.1.0", - "http-cache-semantics": "^4.0.0", - "keyv": "^3.0.0", - "lowercase-keys": "^2.0.0", - "normalize-url": "^4.1.0", - "responselike": "^1.0.2" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/cacheable-request/node_modules/get-stream": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.1.0.tgz", - "integrity": "sha512-EXr1FOzrzTfGeL0gQdeFEvOMm2mzMOglyiOXSTpPC+iAjAKftbr3jpCMWynogwYnM+eSj9sHGc6wjIcDvYiygw==", - "dev": true, - "dependencies": { - "pump": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/cacheable-request/node_modules/lowercase-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", - "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/call-bind": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", - "dev": true, - "dependencies": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "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, - "engines": { - "node": ">=6" - } - }, - "node_modules/camel-case": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-3.0.0.tgz", - "integrity": "sha512-+MbKztAYHXPr1jNTSKQF52VpcFjwY5RkR7fxksV8Doo4KAYc5Fl4UJRgthBbTmEx8C54DqahhbLJkDwjI3PI/w==", - "dev": true, - "dependencies": { - "no-case": "^2.2.0", - "upper-case": "^1.1.1" - } - }, - "node_modules/caniuse-lite": { - "version": "1.0.30001299", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001299.tgz", - "integrity": "sha512-iujN4+x7QzqA2NCSrS5VUy+4gLmRd4xv6vbBBsmfVqTx8bLAD8097euLqQgKxSVLvxjSDcvF1T/i9ocgnUFexw==", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - } - }, - "node_modules/caseless": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=" - }, - "node_modules/catering": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/catering/-/catering-2.1.1.tgz", - "integrity": "sha512-K7Qy8O9p76sL3/3m7/zLKbRkyOlSZAgzEaLhyj2mXS8PsCud2Eo4hAb8aLtZqHh0QGqLcb9dlJSu6lHRVENm1w==", - "dev": true, - "optional": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/cbor": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/cbor/-/cbor-4.3.0.tgz", - "integrity": "sha512-CvzaxQlaJVa88sdtTWvLJ++MbdtPHtZOBBNjm7h3YKUHILMs9nQyD4AC6hvFZy7GBVB3I6bRibJcxeHydyT2IQ==", - "dev": true, - "dependencies": { - "bignumber.js": "^9.0.0", - "commander": "^3.0.0", - "json-text-sequence": "^0.1", - "nofilter": "^1.0.3" - }, - "bin": { - "cbor2comment": "bin/cbor2comment", - "cbor2diag": "bin/cbor2diag", - "cbor2json": "bin/cbor2json", - "json2cbor": "bin/json2cbor" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/cbor/node_modules/bignumber.js": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.0.0.tgz", - "integrity": "sha512-t/OYhhJ2SD+YGBQcjY8GzzDHEk9f3nerxjtfa6tlMXfe7frs/WozhvCNoGvpM0P3bNf3Gq5ZRMlGr5f3r4/N8A==", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/cbor/node_modules/commander": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/commander/-/commander-3.0.2.tgz", - "integrity": "sha512-Gar0ASD4BDyKC4hl4DwHqDrmvjoxWKZigVnAbn5H1owvm4CxCPdb0HQDehwNYMJpla5+M2tPmPARzhtYuwpHow==", - "dev": true - }, - "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, - "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" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/chai/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" - }, - "engines": { - "node": ">=6" - } - }, - "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==", - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/change-case": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/change-case/-/change-case-3.0.2.tgz", - "integrity": "sha512-Mww+SLF6MZ0U6kdg11algyKd5BARbyM4TbFBepwowYSR5ClfQGCGtxNXgykpN0uF/bstWeaGDT4JWaDh8zWAHA==", - "dev": true, - "dependencies": { - "camel-case": "^3.0.0", - "constant-case": "^2.0.0", - "dot-case": "^2.1.0", - "header-case": "^1.0.0", - "is-lower-case": "^1.1.0", - "is-upper-case": "^1.1.0", - "lower-case": "^1.1.1", - "lower-case-first": "^1.0.0", - "no-case": "^2.3.2", - "param-case": "^2.1.0", - "pascal-case": "^2.0.0", - "path-case": "^2.1.0", - "sentence-case": "^2.1.0", - "snake-case": "^2.1.0", - "swap-case": "^1.1.0", - "title-case": "^2.1.0", - "upper-case": "^1.1.1", - "upper-case-first": "^1.1.0" - } - }, - "node_modules/chardet": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", - "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", - "dev": true - }, - "node_modules/check-error": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz", - "integrity": "sha1-V00xLt2Iu13YkS6Sht1sCu1KrII=", - "engines": { - "node": "*" - } - }, - "node_modules/checkpoint-store": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/checkpoint-store/-/checkpoint-store-1.1.0.tgz", - "integrity": "sha1-BOTLUWuRQziTWB5tRgGnjpVS6gY=", - "dependencies": { - "functional-red-black-tree": "^1.0.1" - } - }, - "node_modules/cheerio": { - "version": "1.0.0-rc.3", - "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.3.tgz", - "integrity": "sha512-0td5ijfUPuubwLUu0OBoe98gZj8C/AA+RW3v67GPlGOrvxWjZmBXiBCRU+I8VEiNyJzjth40POfHiz2RB3gImA==", - "dev": true, - "dependencies": { - "css-select": "~1.2.0", - "dom-serializer": "~0.1.1", - "entities": "~1.1.1", - "htmlparser2": "^3.9.1", - "lodash": "^4.15.0", - "parse5": "^3.0.1" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/chokidar": { - "version": "3.5.1", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.1.tgz", - "integrity": "sha512-9+s+Od+W0VJJzawDma/gvBNQqkTiqYTWLuZoyAsivsI4AaWTCzHG06/TMjsf1cYe9Cb97UCEhjz7HvnPk2p/tw==", - "dependencies": { - "anymatch": "~3.1.1", - "braces": "~3.0.2", - "glob-parent": "~5.1.0", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.5.0" - }, - "engines": { - "node": ">= 8.10.0" - }, - "optionalDependencies": { - "fsevents": "~2.3.1" - } - }, - "node_modules/chownr": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", - "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==" - }, - "node_modules/chrome-trace-event": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", - "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==", - "engines": { - "node": ">=6.0" - } - }, - "node_modules/cids": { - "version": "0.7.5", - "resolved": "https://registry.npmjs.org/cids/-/cids-0.7.5.tgz", - "integrity": "sha512-zT7mPeghoWAu+ppn8+BS1tQ5qGmbMfB4AregnQjA/qHY3GC1m1ptI9GkWNlgeu38r7CuRdXB47uY2XgAYt6QVA==", - "dependencies": { - "buffer": "^5.5.0", - "class-is": "^1.1.0", - "multibase": "~0.6.0", - "multicodec": "^1.0.0", - "multihashes": "~0.4.15" - }, - "engines": { - "node": ">=4.0.0", - "npm": ">=3.0.0" - } - }, - "node_modules/cids/node_modules/multicodec": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/multicodec/-/multicodec-1.0.4.tgz", - "integrity": "sha512-NDd7FeS3QamVtbgfvu5h7fd1IlbaC4EQ0/pgU4zqE2vdHCmBGsUa0TiM8/TdSeG6BMPC92OOCf8F1ocE/Wkrrg==", - "dependencies": { - "buffer": "^5.6.0", - "varint": "^5.0.0" - } - }, - "node_modules/cipher-base": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", - "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", - "dependencies": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "node_modules/circular": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/circular/-/circular-1.0.5.tgz", - "integrity": "sha1-fad6+Yu96c5LWzWM1Va13e0tMUk=", - "dev": true - }, - "node_modules/class-is": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/class-is/-/class-is-1.1.0.tgz", - "integrity": "sha512-rhjH9AG1fvabIDoGRVH587413LPjTZgmDF9fOFCbFJQV4yuocX1mHxxvXI4g3cGwbVY9wAYIoKlg1N79frJKQw==" - }, - "node_modules/class-utils": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", - "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", - "dependencies": { - "arr-union": "^3.1.0", - "define-property": "^0.2.5", - "isobject": "^3.0.0", - "static-extend": "^0.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/class-utils/node_modules/define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dependencies": { - "is-descriptor": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/class-utils/node_modules/is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/class-utils/node_modules/is-accessor-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/class-utils/node_modules/is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" - }, - "node_modules/class-utils/node_modules/is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/class-utils/node_modules/is-data-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/class-utils/node_modules/is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dependencies": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/class-utils/node_modules/kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/cli-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", - "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", - "dev": true, - "dependencies": { - "restore-cursor": "^3.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/cli-logger": { - "version": "0.5.40", - "resolved": "https://registry.npmjs.org/cli-logger/-/cli-logger-0.5.40.tgz", - "integrity": "sha1-CX8OEbByx8aYomxH9YiinCC0iws=", - "dev": true, - "dependencies": { - "circular": "^1.0.5", - "cli-util": "~1.1.27" - } - }, - "node_modules/cli-regexp": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/cli-regexp/-/cli-regexp-0.1.2.tgz", - "integrity": "sha1-a82TsJ+y7RAl0woRVdWZeVSlNRI=", - "dev": true - }, - "node_modules/cli-util": { - "version": "1.1.27", - "resolved": "https://registry.npmjs.org/cli-util/-/cli-util-1.1.27.tgz", - "integrity": "sha1-QtaeNqBAoyH8nPhRwVE8rcUJMFQ=", - "dev": true, - "dependencies": { - "cli-regexp": "~0.1.0" - } - }, - "node_modules/cli-width": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.1.tgz", - "integrity": "sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw==", - "dev": true - }, - "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/cliui/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": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/clone": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", - "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=", - "engines": { - "node": ">=0.8" - } - }, - "node_modules/clone-buffer": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/clone-buffer/-/clone-buffer-1.0.0.tgz", - "integrity": "sha512-KLLTJWrvwIP+OPfMn0x2PheDEP20RPUcGXj/ERegTgdmPEZylALQldygiqrPPu8P45uNuPs7ckmReLY6v/iA5g==", - "dev": true, - "optional": true, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/clone-response": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", - "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=", - "dev": true, - "dependencies": { - "mimic-response": "^1.0.0" - } - }, - "node_modules/co": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", - "engines": { - "iojs": ">= 1.0.0", - "node": ">= 0.12.0" - } - }, - "node_modules/collection-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", - "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", - "dependencies": { - "map-visit": "^1.0.0", - "object-visit": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "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/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" - }, - "node_modules/colors": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", - "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", - "dev": true, - "engines": { - "node": ">=0.1.90" - } - }, - "node_modules/combined-stream": { - "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" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/command-exists": { - "version": "1.2.9", - "resolved": "https://registry.npmjs.org/command-exists/-/command-exists-1.2.9.tgz", - "integrity": "sha512-LTQ/SGc+s0Xc0Fu5WaKnR0YiygZkm9eKFvyS+fRsU7/ZWFF8ykFM6Pc9aCVf1+xasOOZpO3BAVgVrKvsqKHV7w==", - "dev": true - }, - "node_modules/command-line-args": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/command-line-args/-/command-line-args-5.2.1.tgz", - "integrity": "sha512-H4UfQhZyakIjC74I9d34fGYDwk3XpSr17QhEd0Q3I9Xq1CETHo4Hcuo87WyWHpAF1aSLjLRf5lD9ZGX2qStUvg==", - "dependencies": { - "array-back": "^3.1.0", - "find-replace": "^3.0.0", - "lodash.camelcase": "^4.3.0", - "typical": "^4.0.0" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/command-line-usage": { - "version": "6.1.3", - "resolved": "https://registry.npmjs.org/command-line-usage/-/command-line-usage-6.1.3.tgz", - "integrity": "sha512-sH5ZSPr+7UStsloltmDh7Ce5fb8XPlHyoPzTpyyMuYCtervL65+ubVZ6Q61cFtFl62UyJlc8/JwERRbAFPUqgw==", - "dependencies": { - "array-back": "^4.0.2", - "chalk": "^2.4.2", - "table-layout": "^1.0.2", - "typical": "^5.2.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/command-line-usage/node_modules/array-back": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-4.0.2.tgz", - "integrity": "sha512-NbdMezxqf94cnNfWLL7V/im0Ub+Anbb0IoZhvzie8+4HJ4nMQuzHuy49FkGYCJK2yAloZ3meiB6AVMClbrI1vg==", - "engines": { - "node": ">=8" - } - }, - "node_modules/command-line-usage/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/commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" - }, - "node_modules/commondir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=" - }, - "node_modules/component-emitter": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", - "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==" - }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" - }, - "node_modules/concat-stream": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.5.1.tgz", - "integrity": "sha1-87gKz54fSOOHXAaItBtsMWAu6hw=", - "engines": [ - "node >= 0.8" - ], - "dependencies": { - "inherits": "~2.0.1", - "readable-stream": "~2.0.0", - "typedarray": "~0.0.5" - } - }, - "node_modules/concat-stream/node_modules/process-nextick-args": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", - "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=" - }, - "node_modules/concat-stream/node_modules/readable-stream": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.6.tgz", - "integrity": "sha1-j5A0HmilPMySh4jaz80Rs265t44=", - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "~1.0.0", - "process-nextick-args": "~1.0.6", - "string_decoder": "~0.10.x", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/concat-stream/node_modules/string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" - }, - "node_modules/conf": { - "version": "10.2.0", - "resolved": "https://registry.npmjs.org/conf/-/conf-10.2.0.tgz", - "integrity": "sha512-8fLl9F04EJqjSqH+QjITQfJF8BrOVaYr1jewVgSRAEWePfxT0sku4w2hrGQ60BC/TNLGQ2pgxNlTbWQmMPFvXg==", - "dev": true, - "optional": true, - "dependencies": { - "ajv": "^8.6.3", - "ajv-formats": "^2.1.1", - "atomically": "^1.7.0", - "debounce-fn": "^4.0.0", - "dot-prop": "^6.0.1", - "env-paths": "^2.2.1", - "json-schema-typed": "^7.0.3", - "onetime": "^5.1.2", - "pkg-up": "^3.1.0", - "semver": "^7.3.5" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/conf/node_modules/ajv": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", - "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", - "dev": true, - "optional": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/conf/node_modules/dot-prop": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-6.0.1.tgz", - "integrity": "sha512-tE7ztYzXHIeyvc7N+hR3oi7FIbf/NIjVP9hmAt3yMXzrQ072/fpjGLx2GxNxGxUl5V73MEqYzioOMoVhGMJ5cA==", - "dev": true, - "optional": true, - "dependencies": { - "is-obj": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/conf/node_modules/is-obj": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", - "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", - "dev": true, - "optional": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/conf/node_modules/json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true, - "optional": true - }, - "node_modules/conf/node_modules/semver": { - "version": "7.5.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.0.tgz", - "integrity": "sha512-+XC0AD/R7Q2mPSRuy2Id0+CGTZ98+8f+KvwirxOKIEyid+XSx6HbC63p+O4IndTHuX5Z+JxQ0TghCkO5Cg/2HA==", - "dev": true, - "optional": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/configstore": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/configstore/-/configstore-4.0.0.tgz", - "integrity": "sha512-CmquAXFBocrzaSM8mtGPMM/HiWmyIpr4CcJl/rgY2uCObZ/S7cKU0silxslqJejl+t/T9HS8E0PUNQD81JGUEQ==", - "dev": true, - "dependencies": { - "dot-prop": "^4.1.0", - "graceful-fs": "^4.1.2", - "make-dir": "^1.0.0", - "unique-string": "^1.0.0", - "write-file-atomic": "^2.0.0", - "xdg-basedir": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/console-browserify": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz", - "integrity": "sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==" - }, - "node_modules/constant-case": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/constant-case/-/constant-case-2.0.0.tgz", - "integrity": "sha512-eS0N9WwmjTqrOmR3o83F5vW8Z+9R1HnVz3xmzT2PMFug9ly+Au/fxRWlEBSb6LcZwspSsEn9Xs1uw9YgzAg1EQ==", - "dev": true, - "dependencies": { - "snake-case": "^2.1.0", - "upper-case": "^1.1.1" - } - }, - "node_modules/constants-browserify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", - "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=" - }, - "node_modules/content-disposition": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz", - "integrity": "sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==", - "dev": true, - "dependencies": { - "safe-buffer": "5.1.2" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/content-disposition/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, - "node_modules/content-hash": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/content-hash/-/content-hash-2.5.2.tgz", - "integrity": "sha512-FvIQKy0S1JaWV10sMsA7TRx8bpU+pqPkhbsfvOJAdjRXvYxEckAwQWGwtRjiaJfh+E0DvcWUGqcdjwMGFjsSdw==", - "dev": true, - "dependencies": { - "cids": "^0.7.1", - "multicodec": "^0.5.5", - "multihashes": "^0.4.15" - } - }, - "node_modules/content-type": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", - "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/convert-source-map": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz", - "integrity": "sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==", - "peer": true, - "dependencies": { - "safe-buffer": "~5.1.1" - } - }, - "node_modules/convert-source-map/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "peer": true - }, - "node_modules/cookie": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz", - "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/cookie-signature": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=", - "dev": true - }, - "node_modules/cookiejar": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/cookiejar/-/cookiejar-2.1.2.tgz", - "integrity": "sha512-Mw+adcfzPxcPeI+0WlvRrr/3lGVO0bD75SxX6811cxSh1Wbxx7xZBGK1eVtDf6si8rg2lhnUjsVLMFMfbRIuwA==" - }, - "node_modules/copy-concurrently": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz", - "integrity": "sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==", - "dependencies": { - "aproba": "^1.1.1", - "fs-write-stream-atomic": "^1.0.8", - "iferr": "^0.1.5", - "mkdirp": "^0.5.1", - "rimraf": "^2.5.4", - "run-queue": "^1.0.0" - } - }, - "node_modules/copy-concurrently/node_modules/mkdirp": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", - "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", - "dependencies": { - "minimist": "^1.2.6" - }, - "bin": { - "mkdirp": "bin/cmd.js" - } - }, - "node_modules/copy-descriptor": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", - "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/core-js": { - "version": "3.6.5", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.6.5.tgz", - "integrity": "sha512-vZVEEwZoIsI+vPEuoF9Iqf5H7/M3eeQqWlQnYa8FSKKePuYTf5MWnxb5SDAzCa60b3JBRS5g9b+Dq7b1y/RCrA==", - "dev": true, - "hasInstallScript": true - }, - "node_modules/core-js-compat": { - "version": "3.20.2", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.20.2.tgz", - "integrity": "sha512-qZEzVQ+5Qh6cROaTPFLNS4lkvQ6mBzE3R6A6EEpssj7Zr2egMHgsy4XapdifqJDGC9CBiNv7s+ejI96rLNQFdg==", - "dependencies": { - "browserslist": "^4.19.1", - "semver": "7.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/core-js" - } - }, - "node_modules/core-js-compat/node_modules/semver": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", - "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" - }, - "node_modules/cors": { - "version": "2.8.5", - "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", - "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", - "dev": true, - "dependencies": { - "object-assign": "^4", - "vary": "^1" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/crc-32": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/crc-32/-/crc-32-1.2.0.tgz", - "integrity": "sha512-1uBwHxF+Y/4yF5G48fwnKq6QsIXheor3ZLPT80yGBV1oEUwpPojlEhQbWKVw1VwcTQyMGHK1/XMmTjmlsmTTGA==", - "dev": true, - "dependencies": { - "exit-on-epipe": "~1.0.1", - "printj": "~1.1.0" - }, - "bin": { - "crc32": "bin/crc32.njs" - }, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/create-ecdh": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.3.tgz", - "integrity": "sha512-GbEHQPMOswGpKXM9kCWVrremUcBmjteUaQ01T9rkKCPDXfUHX0IoP9LpHYo2NPFampa4e+/pFDc3jQdxrxQLaw==", - "dependencies": { - "bn.js": "^4.1.0", - "elliptic": "^6.0.0" - } - }, - "node_modules/create-hash": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", - "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", - "dependencies": { - "cipher-base": "^1.0.1", - "inherits": "^2.0.1", - "md5.js": "^1.3.4", - "ripemd160": "^2.0.1", - "sha.js": "^2.4.0" - } - }, - "node_modules/create-hmac": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", - "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", - "dependencies": { - "cipher-base": "^1.0.3", - "create-hash": "^1.1.0", - "inherits": "^2.0.1", - "ripemd160": "^2.0.0", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" - } - }, - "node_modules/create-require": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", - "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", - "dev": true - }, - "node_modules/cross-fetch": { - "version": "2.2.5", - "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-2.2.5.tgz", - "integrity": "sha512-xqYAhQb4NhCJSRym03dwxpP1bYXpK3y7UN83Bo2WFi3x1Zmzn0SL/6xGoPr+gpt4WmNrgCCX3HPysvOwFOW36w==", - "dependencies": { - "node-fetch": "2.6.1", - "whatwg-fetch": "2.0.4" - } - }, - "node_modules/cross-fetch/node_modules/node-fetch": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz", - "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==", - "engines": { - "node": "4.x || >=6.0.0" - } - }, - "node_modules/cross-fetch/node_modules/whatwg-fetch": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-2.0.4.tgz", - "integrity": "sha512-dcQ1GWpOD/eEQ97k66aiEVpNnapVj90/+R+SXTPYGHpYBBypfKJEQjLrvMZ7YXbKm21gXd4NcuxUTjiv1YtLng==" - }, - "node_modules/cross-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", - "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", - "dependencies": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - }, - "engines": { - "node": ">=4.8" - } - }, - "node_modules/cross-spawn/node_modules/which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "which": "bin/which" - } - }, - "node_modules/crypto-browserify": { - "version": "3.12.0", - "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", - "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", - "dependencies": { - "browserify-cipher": "^1.0.0", - "browserify-sign": "^4.0.0", - "create-ecdh": "^4.0.0", - "create-hash": "^1.1.0", - "create-hmac": "^1.1.0", - "diffie-hellman": "^5.0.0", - "inherits": "^2.0.1", - "pbkdf2": "^3.0.3", - "public-encrypt": "^4.0.0", - "randombytes": "^2.0.0", - "randomfill": "^1.0.3" - }, - "engines": { - "node": "*" - } - }, - "node_modules/crypto-random-string": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-1.0.0.tgz", - "integrity": "sha1-ojD2T1aDEOFJgAmUB5DsmVRbyn4=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/css-select": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-1.2.0.tgz", - "integrity": "sha1-KzoRBTnFNV8c2NMUYj6HCxIeyFg=", - "dev": true, - "dependencies": { - "boolbase": "~1.0.0", - "css-what": "2.1", - "domutils": "1.5.1", - "nth-check": "~1.0.1" - } - }, - "node_modules/css-what": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/css-what/-/css-what-2.1.3.tgz", - "integrity": "sha512-a+EPoD+uZiNfh+5fxw2nO9QwFa6nJe2Or35fGY6Ipw1R3R4AGz1d1TEZrCegvw2YTmZ0jXirGYlzxxpYSHwpEg==", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/cssfilter": { - "version": "0.0.10", - "resolved": "https://registry.npmjs.org/cssfilter/-/cssfilter-0.0.10.tgz", - "integrity": "sha512-FAaLDaplstoRsDR8XGYH51znUN0UY7nMc6Z9/fvE8EXGwvJE9hu7W2vHwx1+bd6gCYnln9nLbzxFTrcO9YQDZw==", - "dev": true, - "optional": true - }, - "node_modules/cyclist": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-1.0.1.tgz", - "integrity": "sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk=" - }, - "node_modules/d": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz", - "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==", - "dependencies": { - "es5-ext": "^0.10.50", - "type": "^1.0.1" - } - }, - "node_modules/dashdash": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", - "dependencies": { - "assert-plus": "^1.0.0" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/dataloader": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/dataloader/-/dataloader-2.1.0.tgz", - "integrity": "sha512-qTcEYLen3r7ojZNgVUaRggOI+KM7jrKxXeSHhogh/TWxYMeONEMqY+hmkobiYQozsGIyg9OYVzO4ZIfoB4I0pQ==", - "dev": true, - "optional": true - }, - "node_modules/debounce-fn": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/debounce-fn/-/debounce-fn-4.0.0.tgz", - "integrity": "sha512-8pYCQiL9Xdcg0UPSD3d+0KMlOjp+KGU5EPwYddgzQ7DATsg4fuUDjQtsYLmWjnk2obnNHgV3vE2Y4jejSOJVBQ==", - "dev": true, - "optional": true, - "dependencies": { - "mimic-fn": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/debounce-fn/node_modules/mimic-fn": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-3.1.0.tgz", - "integrity": "sha512-Ysbi9uYW9hFyfrThdDEQuykN4Ey6BuwPD2kpI5ES/nFTDn/98yxYNLZJcgUAKPT/mcrLLKaGzJR9YVxJrIdASQ==", - "dev": true, - "optional": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/decode-uri-component": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", - "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", - "engines": { - "node": ">=0.10" - } - }, - "node_modules/decompress": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/decompress/-/decompress-4.2.1.tgz", - "integrity": "sha512-e48kc2IjU+2Zw8cTb6VZcJQ3lgVbS4uuB1TfCHbiZIP/haNXm+SVyhu+87jts5/3ROpd82GSVCoNs/z8l4ZOaQ==", - "dev": true, - "dependencies": { - "decompress-tar": "^4.0.0", - "decompress-tarbz2": "^4.0.0", - "decompress-targz": "^4.0.0", - "decompress-unzip": "^4.0.1", - "graceful-fs": "^4.1.10", - "make-dir": "^1.0.0", - "pify": "^2.3.0", - "strip-dirs": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/decompress-response": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", - "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", - "dependencies": { - "mimic-response": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/decompress-tar": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/decompress-tar/-/decompress-tar-4.1.1.tgz", - "integrity": "sha512-JdJMaCrGpB5fESVyxwpCx4Jdj2AagLmv3y58Qy4GE6HMVjWz1FeVQk1Ct4Kye7PftcdOo/7U7UKzYBJgqnGeUQ==", - "dev": true, - "dependencies": { - "file-type": "^5.2.0", - "is-stream": "^1.1.0", - "tar-stream": "^1.5.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/decompress-tarbz2": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/decompress-tarbz2/-/decompress-tarbz2-4.1.1.tgz", - "integrity": "sha512-s88xLzf1r81ICXLAVQVzaN6ZmX4A6U4z2nMbOwobxkLoIIfjVMBg7TeguTUXkKeXni795B6y5rnvDw7rxhAq9A==", - "dev": true, - "dependencies": { - "decompress-tar": "^4.1.0", - "file-type": "^6.1.0", - "is-stream": "^1.1.0", - "seek-bzip": "^1.0.5", - "unbzip2-stream": "^1.0.9" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/decompress-tarbz2/node_modules/file-type": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/file-type/-/file-type-6.2.0.tgz", - "integrity": "sha512-YPcTBDV+2Tm0VqjybVd32MHdlEGAtuxS3VAYsumFokDSMG+ROT5wawGlnHDoz7bfMcMDt9hxuXvXwoKUx2fkOg==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/decompress-targz": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/decompress-targz/-/decompress-targz-4.1.1.tgz", - "integrity": "sha512-4z81Znfr6chWnRDNfFNqLwPvm4db3WuZkqV+UgXQzSngG3CEKdBkw5jrv3axjjL96glyiiKjsxJG3X6WBZwX3w==", - "dev": true, - "dependencies": { - "decompress-tar": "^4.1.1", - "file-type": "^5.2.0", - "is-stream": "^1.1.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/decompress-unzip": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/decompress-unzip/-/decompress-unzip-4.0.1.tgz", - "integrity": "sha1-3qrM39FK6vhVePczroIQ+bSEj2k=", - "dev": true, - "dependencies": { - "file-type": "^3.8.0", - "get-stream": "^2.2.0", - "pify": "^2.3.0", - "yauzl": "^2.4.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/decompress-unzip/node_modules/file-type": { - "version": "3.9.0", - "resolved": "https://registry.npmjs.org/file-type/-/file-type-3.9.0.tgz", - "integrity": "sha1-JXoHg4TR24CHvESdEH1SpSZyuek=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/decompress-unzip/node_modules/get-stream": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-2.3.1.tgz", - "integrity": "sha1-Xzj5PzRgCWZu4BUKBUFn+Rvdld4=", - "dev": true, - "dependencies": { - "object-assign": "^4.0.1", - "pinkie-promise": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/deep-eql": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-3.0.1.tgz", - "integrity": "sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==", - "dependencies": { - "type-detect": "^4.0.0" - }, - "engines": { - "node": ">=0.12" - } - }, - "node_modules/deep-extend": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", - "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/deep-is": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", - "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", - "dev": true - }, - "node_modules/defer-to-connect": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz", - "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==", - "dev": true - }, - "node_modules/deferred-leveldown": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/deferred-leveldown/-/deferred-leveldown-1.2.2.tgz", - "integrity": "sha512-uukrWD2bguRtXilKt6cAWKyoXrTSMo5m7crUdLfWQmu8kIm88w3QZoUL+6nhpfKVmhHANER6Re3sKoNoZ3IKMA==", - "dependencies": { - "abstract-leveldown": "~2.6.0" - } - }, - "node_modules/define-properties": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", - "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", - "dev": true, - "dependencies": { - "object-keys": "^1.0.12" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/define-property": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", - "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", - "dependencies": { - "is-descriptor": "^1.0.2", - "isobject": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/delay": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/delay/-/delay-5.0.0.tgz", - "integrity": "sha512-ReEBKkIfe4ya47wlPYf/gu5ib6yUG0/Aez0JQZQz94kiWtRQvZIQbTiehsnwHvLSWJnQdhVeqYue7Id1dKr0qw==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/delimit-stream": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/delimit-stream/-/delimit-stream-0.1.0.tgz", - "integrity": "sha1-m4MZR3wOX4rrPONXrjBfwl6hzSs=", - "dev": true - }, - "node_modules/depd": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/des.js": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz", - "integrity": "sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==", - "dependencies": { - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0" - } - }, - "node_modules/destroy": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", - "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=", - "dev": true - }, - "node_modules/detect-file": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/detect-file/-/detect-file-1.0.0.tgz", - "integrity": "sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/diff": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", - "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", - "dev": true, - "engines": { - "node": ">=0.3.1" - } - }, - "node_modules/diffie-hellman": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", - "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", - "dependencies": { - "bn.js": "^4.1.0", - "miller-rabin": "^4.0.0", - "randombytes": "^2.0.0" - } - }, - "node_modules/doctrine": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", - "dev": true, - "dependencies": { - "esutils": "^2.0.2" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/dom-serializer": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.1.tgz", - "integrity": "sha512-l0IU0pPzLWSHBcieZbpOKgkIn3ts3vAh7ZuFyXNwJxJXk/c4Gwj9xaTJwIDVQCXawWD0qb3IzMGH5rglQaO0XA==", - "dev": true, - "dependencies": { - "domelementtype": "^1.3.0", - "entities": "^1.1.1" - } - }, - "node_modules/dom-storage": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/dom-storage/-/dom-storage-2.1.0.tgz", - "integrity": "sha512-g6RpyWXzl0RR6OTElHKBl7nwnK87GUyZMYC7JWsB/IA73vpqK2K6LT39x4VepLxlSsWBFrPVLnsSR5Jyty0+2Q==", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/dom-walk": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/dom-walk/-/dom-walk-0.1.2.tgz", - "integrity": "sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w==" - }, - "node_modules/domain-browser": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz", - "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==", - "engines": { - "node": ">=0.4", - "npm": ">=1.2" - } - }, - "node_modules/domelementtype": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz", - "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==", - "dev": true - }, - "node_modules/domhandler": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.4.2.tgz", - "integrity": "sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==", - "dev": true, - "dependencies": { - "domelementtype": "1" - } - }, - "node_modules/domutils": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz", - "integrity": "sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=", - "dev": true, - "dependencies": { - "dom-serializer": "0", - "domelementtype": "1" - } - }, - "node_modules/dot-case": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-2.1.1.tgz", - "integrity": "sha512-HnM6ZlFqcajLsyudHq7LeeLDr2rFAVYtDv/hV5qchQEidSck8j9OPUsXY9KwJv/lHMtYlX4DjRQqwFYa+0r8Ug==", - "dev": true, - "dependencies": { - "no-case": "^2.2.0" - } - }, - "node_modules/dot-notes": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/dot-notes/-/dot-notes-3.1.1.tgz", - "integrity": "sha1-eufhqUgTRSnzdosvsT9Mj6kqV88=" - }, - "node_modules/dot-prop": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-4.2.0.tgz", - "integrity": "sha512-tUMXrxlExSW6U2EXiiKGSBVdYgtV8qlHL+C10TsW4PURY/ic+eaysnSkwB4kA/mBlCyy/IKDJ+Lc3wbWeaXtuQ==", - "dev": true, - "dependencies": { - "is-obj": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/dotenv": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-10.0.0.tgz", - "integrity": "sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q==", - "engines": { - "node": ">=10" - } - }, - "node_modules/double-ended-queue": { - "version": "2.1.0-0", - "resolved": "https://registry.npmjs.org/double-ended-queue/-/double-ended-queue-2.1.0-0.tgz", - "integrity": "sha512-+BNfZ+deCo8hMNpDqDnvT+c0XpJ5cUa6mqYq89bho2Ifze4URTqRkcwR399hWoTrTkbZ/XJYDgP6rc7pRgffEQ==", - "dev": true, - "optional": true - }, - "node_modules/drbg.js": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/drbg.js/-/drbg.js-1.0.1.tgz", - "integrity": "sha1-Pja2xCs3BDgjzbwzLVjzHiRFSAs=", - "dependencies": { - "browserify-aes": "^1.0.6", - "create-hash": "^1.1.2", - "create-hmac": "^1.1.4" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/duplexer3": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", - "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=", - "dev": true - }, - "node_modules/duplexify": { - "version": "3.7.1", - "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz", - "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==", - "dependencies": { - "end-of-stream": "^1.0.0", - "inherits": "^2.0.1", - "readable-stream": "^2.0.0", - "stream-shift": "^1.0.0" - } - }, - "node_modules/ecc-jsbn": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", - "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", - "dependencies": { - "jsbn": "~0.1.0", - "safer-buffer": "^2.1.0" - } - }, - "node_modules/ee-first": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=", - "dev": true - }, - "node_modules/electron-to-chromium": { - "version": "1.4.45", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.45.tgz", - "integrity": "sha512-czF9eYVuOmlY/vxyMQz2rGlNSjZpxNQYBe1gmQv7al171qOIhgyO9k7D5AKlgeTCSPKk+LHhj5ZyIdmEub9oNg==" - }, - "node_modules/elliptic": { - "version": "6.5.4", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", - "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", - "dependencies": { - "bn.js": "^4.11.9", - "brorand": "^1.1.0", - "hash.js": "^1.0.0", - "hmac-drbg": "^1.0.1", - "inherits": "^2.0.4", - "minimalistic-assert": "^1.0.1", - "minimalistic-crypto-utils": "^1.0.1" - } - }, - "node_modules/emittery": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.4.1.tgz", - "integrity": "sha512-r4eRSeStEGf6M5SKdrQhhLK5bOwOBxQhIE3YSTnZE3GpKiLfnnhE+tPtrJE79+eDJgm39BM6LSoI8SCx4HbwlQ==", - "dev": true, - "optional": true, - "engines": { - "node": ">=6" - } - }, - "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/emojis-list": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", - "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", - "engines": { - "node": ">= 4" - } - }, - "node_modules/encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/encoding": { - "version": "0.1.13", - "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", - "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", - "dependencies": { - "iconv-lite": "^0.6.2" - } - }, - "node_modules/encoding-down": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/encoding-down/-/encoding-down-6.3.0.tgz", - "integrity": "sha512-QKrV0iKR6MZVJV08QY0wp1e7vF6QbhnbQhb07bwpEyuz4uZiZgPlEGdkCROuFkUwdxlFaiPIhjyarH1ee/3vhw==", - "dev": true, - "optional": true, - "dependencies": { - "abstract-leveldown": "^6.2.1", - "inherits": "^2.0.3", - "level-codec": "^9.0.0", - "level-errors": "^2.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/encoding-down/node_modules/abstract-leveldown": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-6.3.0.tgz", - "integrity": "sha512-TU5nlYgta8YrBMNpc9FwQzRbiXsj49gsALsXadbGHt9CROPzX5fB0rWDR5mtdpOOKa5XqRFpbj1QroPAoPzVjQ==", - "dev": true, - "optional": true, - "dependencies": { - "buffer": "^5.5.0", - "immediate": "^3.2.3", - "level-concat-iterator": "~2.0.0", - "level-supports": "~1.0.0", - "xtend": "~4.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/encoding-down/node_modules/level-codec": { - "version": "9.0.2", - "resolved": "https://registry.npmjs.org/level-codec/-/level-codec-9.0.2.tgz", - "integrity": "sha512-UyIwNb1lJBChJnGfjmO0OR+ezh2iVu1Kas3nvBS/BzGnx79dv6g7unpKIDNPMhfdTEGoc7mC8uAu51XEtX+FHQ==", - "dev": true, - "optional": true, - "dependencies": { - "buffer": "^5.6.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/encoding-down/node_modules/level-concat-iterator": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/level-concat-iterator/-/level-concat-iterator-2.0.1.tgz", - "integrity": "sha512-OTKKOqeav2QWcERMJR7IS9CUo1sHnke2C0gkSmcR7QuEtFNLLzHQAvnMw8ykvEcv0Qtkg0p7FOwP1v9e5Smdcw==", - "dev": true, - "optional": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/encoding-down/node_modules/level-errors": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/level-errors/-/level-errors-2.0.1.tgz", - "integrity": "sha512-UVprBJXite4gPS+3VznfgDSU8PTRuVX0NXwoWW50KLxd2yw4Y1t2JUR5In1itQnudZqRMT9DlAM3Q//9NCjCFw==", - "dev": true, - "optional": true, - "dependencies": { - "errno": "~0.1.1" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/encoding-down/node_modules/level-supports": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/level-supports/-/level-supports-1.0.1.tgz", - "integrity": "sha512-rXM7GYnW8gsl1vedTJIbzOrRv85c/2uCMpiiCzO2fndd06U/kUXEEU9evYn4zFggBOg36IsBW8LzqIpETwwQzg==", - "dev": true, - "optional": true, - "dependencies": { - "xtend": "^4.0.2" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/encoding/node_modules/iconv-lite": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.2.tgz", - "integrity": "sha512-2y91h5OpQlolefMPmUlivelittSWy0rP+oYVpn6A7GwVHNE8AWzoYOBNmlwks3LobaJxgHCYZAnyNo2GgpNRNQ==", - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "dependencies": { - "once": "^1.4.0" - } - }, - "node_modules/end-stream": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/end-stream/-/end-stream-0.1.0.tgz", - "integrity": "sha512-Brl10T8kYnc75IepKizW6Y9liyW8ikz1B7n/xoHrJxoVSSjoqPn30sb7XVFfQERK4QfUMYRGs9dhWwtt2eu6uA==", - "dev": true, - "optional": true, - "dependencies": { - "write-stream": "~0.4.3" - } - }, - "node_modules/entities": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz", - "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==", - "dev": true - }, - "node_modules/env-paths": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", - "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/errno": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.7.tgz", - "integrity": "sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg==", - "dependencies": { - "prr": "~1.0.1" - }, - "bin": { - "errno": "cli.js" - } - }, - "node_modules/es-abstract": { - "version": "1.18.0", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.0.tgz", - "integrity": "sha512-LJzK7MrQa8TS0ja2w3YNLzUgJCGPdPOV1yVvezjNnS89D+VR08+Szt2mz3YB2Dck/+w5tfIq/RoUAFqJJGM2yw==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "get-intrinsic": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.2", - "is-callable": "^1.2.3", - "is-negative-zero": "^2.0.1", - "is-regex": "^1.1.2", - "is-string": "^1.0.5", - "object-inspect": "^1.9.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.2", - "string.prototype.trimend": "^1.0.4", - "string.prototype.trimstart": "^1.0.4", - "unbox-primitive": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/es-abstract/node_modules/object.assign": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", - "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "has-symbols": "^1.0.1", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/es-to-primitive": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", - "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", - "dev": true, - "dependencies": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es5-ext": { - "version": "0.10.53", - "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.53.tgz", - "integrity": "sha512-Xs2Stw6NiNHWypzRTY1MtaG/uJlwCk8kH81920ma8mvN8Xq1gsfhZvpkImLQArw8AHnv8MT2I45J3c0R8slE+Q==", - "dependencies": { - "es6-iterator": "~2.0.3", - "es6-symbol": "~3.1.3", - "next-tick": "~1.0.0" - } - }, - "node_modules/es6-iterator": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", - "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=", - "dependencies": { - "d": "1", - "es5-ext": "^0.10.35", - "es6-symbol": "^3.1.1" - } - }, - "node_modules/es6-promise": { - "version": "4.2.8", - "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz", - "integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==", - "dev": true - }, - "node_modules/es6-symbol": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz", - "integrity": "sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==", - "dependencies": { - "d": "^1.0.1", - "ext": "^1.1.2" - } - }, - "node_modules/escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", - "engines": { - "node": ">=6" - } - }, - "node_modules/escape-html": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=", - "dev": true - }, - "node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/eslint": { - "version": "6.8.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-6.8.0.tgz", - "integrity": "sha512-K+Iayyo2LtyYhDSYwz5D5QdWw0hCacNzyq1Y821Xna2xSJj7cijoLLYmLxTQgcgZ9mC61nryMy9S7GRbYpI5Ig==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.0.0", - "ajv": "^6.10.0", - "chalk": "^2.1.0", - "cross-spawn": "^6.0.5", - "debug": "^4.0.1", - "doctrine": "^3.0.0", - "eslint-scope": "^5.0.0", - "eslint-utils": "^1.4.3", - "eslint-visitor-keys": "^1.1.0", - "espree": "^6.1.2", - "esquery": "^1.0.1", - "esutils": "^2.0.2", - "file-entry-cache": "^5.0.1", - "functional-red-black-tree": "^1.0.1", - "glob-parent": "^5.0.0", - "globals": "^12.1.0", - "ignore": "^4.0.6", - "import-fresh": "^3.0.0", - "imurmurhash": "^0.1.4", - "inquirer": "^7.0.0", - "is-glob": "^4.0.0", - "js-yaml": "^3.13.1", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.3.0", - "lodash": "^4.17.14", - "minimatch": "^3.0.4", - "mkdirp": "^0.5.1", - "natural-compare": "^1.4.0", - "optionator": "^0.8.3", - "progress": "^2.0.0", - "regexpp": "^2.0.1", - "semver": "^6.1.2", - "strip-ansi": "^5.2.0", - "strip-json-comments": "^3.0.1", - "table": "^5.2.3", - "text-table": "^0.2.0", - "v8-compile-cache": "^2.0.3" - }, - "bin": { - "eslint": "bin/eslint.js" - }, - "engines": { - "node": "^8.10.0 || ^10.13.0 || >=11.10.1" - } - }, - "node_modules/eslint-scope": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", - "dev": true, - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/eslint-utils": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-1.4.3.tgz", - "integrity": "sha512-fbBN5W2xdY45KulGXmLHZ3c3FHfVYmKg0IrAKGOkT/464PQsx2UeIzfz1RmEci+KLm1bBaAzZAh8+/E+XAeZ8Q==", - "dev": true, - "dependencies": { - "eslint-visitor-keys": "^1.1.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/eslint-visitor-keys": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", - "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/eslint/node_modules/ansi-escapes": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.1.tgz", - "integrity": "sha512-JWF7ocqNrp8u9oqpgV+wH5ftbt+cfvv+PTjOvKLT3AdYly/LmORARfEVT1iyjwN+4MqE5UmVKoAdIBqeoCHgLA==", - "dev": true, - "dependencies": { - "type-fest": "^0.11.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/eslint/node_modules/ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/eslint/node_modules/ansi-styles": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", - "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", - "dev": true, - "dependencies": { - "@types/color-name": "^1.1.1", - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/eslint/node_modules/cli-width": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz", - "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==", - "dev": true, - "engines": { - "node": ">= 10" - } - }, - "node_modules/eslint/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/eslint/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/eslint/node_modules/debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", - "dev": true, - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/eslint/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==", - "dev": true - }, - "node_modules/eslint/node_modules/figures": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", - "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", - "dev": true, - "dependencies": { - "escape-string-regexp": "^1.0.5" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/eslint/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/eslint/node_modules/inquirer": { - "version": "7.3.3", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.3.3.tgz", - "integrity": "sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA==", - "dev": true, - "dependencies": { - "ansi-escapes": "^4.2.1", - "chalk": "^4.1.0", - "cli-cursor": "^3.1.0", - "cli-width": "^3.0.0", - "external-editor": "^3.0.3", - "figures": "^3.0.0", - "lodash": "^4.17.19", - "mute-stream": "0.0.8", - "run-async": "^2.4.0", - "rxjs": "^6.6.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0", - "through": "^2.3.6" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/eslint/node_modules/inquirer/node_modules/chalk": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/eslint/node_modules/inquirer/node_modules/strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/eslint/node_modules/is-fullwidth-code-point": { - "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==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/eslint/node_modules/mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "dev": true, - "dependencies": { - "minimist": "^1.2.5" - }, - "bin": { - "mkdirp": "bin/cmd.js" - } - }, - "node_modules/eslint/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "node_modules/eslint/node_modules/mute-stream": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", - "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", - "dev": true - }, - "node_modules/eslint/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/eslint/node_modules/string-width": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", - "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", - "dev": true, - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/eslint/node_modules/string-width/node_modules/strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/eslint/node_modules/supports-color": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", - "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/eslint/node_modules/type-fest": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.11.0.tgz", - "integrity": "sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/espree": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-6.2.1.tgz", - "integrity": "sha512-ysCxRQY3WaXJz9tdbWOwuWr5Y/XrPTGX9Kiz3yoUXwW0VZ4w30HTkQLaGx/+ttFjF8i+ACbArnB4ce68a9m5hw==", - "dev": true, - "dependencies": { - "acorn": "^7.1.1", - "acorn-jsx": "^5.2.0", - "eslint-visitor-keys": "^1.1.0" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/esprima": { - "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, - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/esquery": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.3.1.tgz", - "integrity": "sha512-olpvt9QG0vniUBZspVRN6lwB7hOZoTRtT+jzR+tS4ffYx2mzbw+z0XCOk44aaLYKApNX5nMm+E+P6o25ip/DHQ==", - "dev": true, - "dependencies": { - "estraverse": "^5.1.0" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/esquery/node_modules/estraverse": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", - "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/esrecurse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", - "dependencies": { - "estraverse": "^5.2.0" - }, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/esrecurse/node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "engines": { - "node": ">=4.0" - } - }, - "node_modules/estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "engines": { - "node": ">=4.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, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/etag": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/eth-block-tracker": { - "version": "4.4.3", - "resolved": "https://registry.npmjs.org/eth-block-tracker/-/eth-block-tracker-4.4.3.tgz", - "integrity": "sha512-A8tG4Z4iNg4mw5tP1Vung9N9IjgMNqpiMoJ/FouSFwNCGHv2X0mmOYwtQOJzki6XN7r7Tyo01S29p7b224I4jw==", - "dependencies": { - "@babel/plugin-transform-runtime": "^7.5.5", - "@babel/runtime": "^7.5.5", - "eth-query": "^2.1.0", - "json-rpc-random-id": "^1.0.1", - "pify": "^3.0.0", - "safe-event-emitter": "^1.0.1" - } - }, - "node_modules/eth-block-tracker/node_modules/pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", - "engines": { - "node": ">=4" - } - }, - "node_modules/eth-ens-namehash": { - "version": "2.0.8", - "resolved": "https://registry.npmjs.org/eth-ens-namehash/-/eth-ens-namehash-2.0.8.tgz", - "integrity": "sha1-IprEbsqG1S4MmR58sq74P/D2i88=", - "dev": true, - "dependencies": { - "idna-uts46-hx": "^2.3.1", - "js-sha3": "^0.5.7" - } - }, - "node_modules/eth-json-rpc-errors": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/eth-json-rpc-errors/-/eth-json-rpc-errors-2.0.2.tgz", - "integrity": "sha512-uBCRM2w2ewusRHGxN8JhcuOb2RN3ueAOYH/0BhqdFmQkZx5lj5+fLKTz0mIVOzd4FG5/kUksCzCD7eTEim6gaA==", - "deprecated": "Package renamed: https://www.npmjs.com/package/eth-rpc-errors", - "dependencies": { - "fast-safe-stringify": "^2.0.6" - } - }, - "node_modules/eth-lib": { - "version": "0.1.29", - "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.1.29.tgz", - "integrity": "sha512-bfttrr3/7gG4E02HoWTDUcDDslN003OlOoBxk9virpAZQ1ja/jDgwkWB8QfJF7ojuEowrqy+lzp9VcJG7/k5bQ==", - "dev": true, - "dependencies": { - "bn.js": "^4.11.6", - "elliptic": "^6.4.0", - "nano-json-stream-parser": "^0.1.2", - "servify": "^0.1.12", - "ws": "^3.0.0", - "xhr-request-promise": "^0.1.2" - } - }, - "node_modules/eth-query": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/eth-query/-/eth-query-2.1.2.tgz", - "integrity": "sha1-1nQdkAAQa1FRDHLbktY2VFam2l4=", - "dependencies": { - "json-rpc-random-id": "^1.0.0", - "xtend": "^4.0.1" - } - }, - "node_modules/eth-rpc-errors": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/eth-rpc-errors/-/eth-rpc-errors-3.0.0.tgz", - "integrity": "sha512-iPPNHPrLwUlR9xCSYm7HHQjWBasor3+KZfRvwEWxMz3ca0yqnlBeJrnyphkGIXZ4J7AMAaOLmwy4AWhnxOiLxg==", - "dependencies": { - "fast-safe-stringify": "^2.0.6" - } - }, - "node_modules/eth-sig-util": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/eth-sig-util/-/eth-sig-util-3.0.1.tgz", - "integrity": "sha512-0Us50HiGGvZgjtWTyAI/+qTzYPMLy5Q451D0Xy68bxq1QMWdoOddDwGvsqcFT27uohKgalM9z/yxplyt+mY2iQ==", - "deprecated": "Deprecated in favor of '@metamask/eth-sig-util'", - "dev": true, - "dependencies": { - "ethereumjs-abi": "^0.6.8", - "ethereumjs-util": "^5.1.1", - "tweetnacl": "^1.0.3", - "tweetnacl-util": "^0.15.0" - } - }, - "node_modules/eth-sig-util/node_modules/ethereumjs-util": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", - "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", - "dev": true, - "dependencies": { - "bn.js": "^4.11.0", - "create-hash": "^1.1.2", - "elliptic": "^6.5.2", - "ethereum-cryptography": "^0.1.3", - "ethjs-util": "^0.1.3", - "rlp": "^2.0.0", - "safe-buffer": "^5.1.1" - } - }, - "node_modules/eth-sig-util/node_modules/tweetnacl": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.3.tgz", - "integrity": "sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==", - "dev": true - }, - "node_modules/ethereum-bloom-filters": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/ethereum-bloom-filters/-/ethereum-bloom-filters-1.0.7.tgz", - "integrity": "sha512-cDcJJSJ9GMAcURiAWO3DxIEhTL/uWqlQnvgKpuYQzYPrt/izuGU+1ntQmHt0IRq6ADoSYHFnB+aCEFIldjhkMQ==", - "dev": true, - "dependencies": { - "js-sha3": "^0.8.0" - } - }, - "node_modules/ethereum-bloom-filters/node_modules/js-sha3": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.8.0.tgz", - "integrity": "sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q==", - "dev": true - }, - "node_modules/ethereum-common": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/ethereum-common/-/ethereum-common-0.2.0.tgz", - "integrity": "sha512-XOnAR/3rntJgbCdGhqdaLIxDLWKLmsZOGhHdBKadEr6gEnJLH52k93Ou+TUdFaPN3hJc3isBZBal3U/XZ15abA==" - }, - "node_modules/ethereum-cryptography": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz", - "integrity": "sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ==", - "dependencies": { - "@types/pbkdf2": "^3.0.0", - "@types/secp256k1": "^4.0.1", - "blakejs": "^1.1.0", - "browserify-aes": "^1.2.0", - "bs58check": "^2.1.2", - "create-hash": "^1.2.0", - "create-hmac": "^1.1.7", - "hash.js": "^1.1.7", - "keccak": "^3.0.0", - "pbkdf2": "^3.0.17", - "randombytes": "^2.1.0", - "safe-buffer": "^5.1.2", - "scrypt-js": "^3.0.0", - "secp256k1": "^4.0.1", - "setimmediate": "^1.0.5" - } - }, - "node_modules/ethereum-cryptography/node_modules/hash.js": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", - "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", - "dependencies": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.1" - } - }, - "node_modules/ethereum-cryptography/node_modules/scrypt-js": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-3.0.1.tgz", - "integrity": "sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA==" - }, - "node_modules/ethereum-cryptography/node_modules/setimmediate": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", - "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=" - }, - "node_modules/ethereum-protocol": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/ethereum-protocol/-/ethereum-protocol-1.0.1.tgz", - "integrity": "sha512-3KLX1mHuEsBW0dKG+c6EOJS1NBNqdCICvZW9sInmZTt5aY0oxmHVggYRE0lJu1tcnMD1K+AKHdLi6U43Awm1Vg==" - }, - "node_modules/ethereumjs-abi": { - "version": "0.6.8", - "resolved": "https://registry.npmjs.org/ethereumjs-abi/-/ethereumjs-abi-0.6.8.tgz", - "integrity": "sha512-Tx0r/iXI6r+lRsdvkFDlut0N08jWMnKRZ6Gkq+Nmw75lZe4e6o3EkSnkaBP5NF6+m5PTGAr9JP43N3LyeoglsA==", - "dependencies": { - "bn.js": "^4.11.8", - "ethereumjs-util": "^6.0.0" - } - }, - "node_modules/ethereumjs-account": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/ethereumjs-account/-/ethereumjs-account-2.0.5.tgz", - "integrity": "sha512-bgDojnXGjhMwo6eXQC0bY6UK2liSFUSMwwylOmQvZbSl/D7NXQ3+vrGO46ZeOgjGfxXmgIeVNDIiHw7fNZM4VA==", - "dependencies": { - "ethereumjs-util": "^5.0.0", - "rlp": "^2.0.0", - "safe-buffer": "^5.1.1" - } - }, - "node_modules/ethereumjs-account/node_modules/ethereumjs-util": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", - "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", - "dependencies": { - "bn.js": "^4.11.0", - "create-hash": "^1.1.2", - "elliptic": "^6.5.2", - "ethereum-cryptography": "^0.1.3", - "ethjs-util": "^0.1.3", - "rlp": "^2.0.0", - "safe-buffer": "^5.1.1" - } - }, - "node_modules/ethereumjs-block": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/ethereumjs-block/-/ethereumjs-block-1.7.1.tgz", - "integrity": "sha512-B+sSdtqm78fmKkBq78/QLKJbu/4Ts4P2KFISdgcuZUPDm9x+N7qgBPIIFUGbaakQh8bzuquiRVbdmvPKqbILRg==", - "deprecated": "New package name format for new versions: @ethereumjs/block. Please update.", - "dependencies": { - "async": "^2.0.1", - "ethereum-common": "0.2.0", - "ethereumjs-tx": "^1.2.2", - "ethereumjs-util": "^5.0.0", - "merkle-patricia-tree": "^2.1.2" - } - }, - "node_modules/ethereumjs-block/node_modules/ethereumjs-tx": { - "version": "1.3.7", - "resolved": "https://registry.npmjs.org/ethereumjs-tx/-/ethereumjs-tx-1.3.7.tgz", - "integrity": "sha512-wvLMxzt1RPhAQ9Yi3/HKZTn0FZYpnsmQdbKYfUUpi4j1SEIcbkd9tndVjcPrufY3V7j2IebOpC00Zp2P/Ay2kA==", - "deprecated": "New package name format for new versions: @ethereumjs/tx. Please update.", - "dependencies": { - "ethereum-common": "^0.0.18", - "ethereumjs-util": "^5.0.0" - } - }, - "node_modules/ethereumjs-block/node_modules/ethereumjs-tx/node_modules/ethereum-common": { - "version": "0.0.18", - "resolved": "https://registry.npmjs.org/ethereum-common/-/ethereum-common-0.0.18.tgz", - "integrity": "sha1-L9w1dvIykDNYl26znaeDIT/5Uj8=" - }, - "node_modules/ethereumjs-block/node_modules/ethereumjs-util": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", - "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", - "dependencies": { - "bn.js": "^4.11.0", - "create-hash": "^1.1.2", - "elliptic": "^6.5.2", - "ethereum-cryptography": "^0.1.3", - "ethjs-util": "^0.1.3", - "rlp": "^2.0.0", - "safe-buffer": "^5.1.1" - } - }, - "node_modules/ethereumjs-common": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/ethereumjs-common/-/ethereumjs-common-1.5.1.tgz", - "integrity": "sha512-aVUPRLgmXORGXXEVkFYgPhr9TGtpBY2tGhZ9Uh0A3lIUzUDr1x6kQx33SbjPUkLkX3eniPQnIL/2psjkjrOfcQ==" - }, - "node_modules/ethereumjs-tx": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ethereumjs-tx/-/ethereumjs-tx-2.1.2.tgz", - "integrity": "sha512-zZEK1onCeiORb0wyCXUvg94Ve5It/K6GD1K+26KfFKodiBiS6d9lfCXlUKGBBdQ+bv7Day+JK0tj1K+BeNFRAw==", - "dependencies": { - "ethereumjs-common": "^1.5.0", - "ethereumjs-util": "^6.0.0" - } - }, - "node_modules/ethereumjs-util": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-6.2.1.tgz", - "integrity": "sha512-W2Ktez4L01Vexijrm5EB6w7dg4n/TgpoYU4avuT5T3Vmnw/eCRtiBrJfQYS/DCSvDIOLn2k57GcHdeBcgVxAqw==", - "dependencies": { - "@types/bn.js": "^4.11.3", - "bn.js": "^4.11.0", - "create-hash": "^1.1.2", - "elliptic": "^6.5.2", - "ethereum-cryptography": "^0.1.3", - "ethjs-util": "0.1.6", - "rlp": "^2.2.3" - } - }, - "node_modules/ethereumjs-vm": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/ethereumjs-vm/-/ethereumjs-vm-2.6.0.tgz", - "integrity": "sha512-r/XIUik/ynGbxS3y+mvGnbOKnuLo40V5Mj1J25+HEO63aWYREIqvWeRO/hnROlMBE5WoniQmPmhiaN0ctiHaXw==", - "deprecated": "New package name format for new versions: @ethereumjs/vm. Please update.", - "dependencies": { - "async": "^2.1.2", - "async-eventemitter": "^0.2.2", - "ethereumjs-account": "^2.0.3", - "ethereumjs-block": "~2.2.0", - "ethereumjs-common": "^1.1.0", - "ethereumjs-util": "^6.0.0", - "fake-merkle-patricia-tree": "^1.0.1", - "functional-red-black-tree": "^1.0.1", - "merkle-patricia-tree": "^2.3.2", - "rustbn.js": "~0.2.0", - "safe-buffer": "^5.1.1" - } - }, - "node_modules/ethereumjs-vm/node_modules/ethereumjs-block": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/ethereumjs-block/-/ethereumjs-block-2.2.2.tgz", - "integrity": "sha512-2p49ifhek3h2zeg/+da6XpdFR3GlqY3BIEiqxGF8j9aSRIgkb7M1Ky+yULBKJOu8PAZxfhsYA+HxUk2aCQp3vg==", - "deprecated": "New package name format for new versions: @ethereumjs/block. Please update.", - "dependencies": { - "async": "^2.0.1", - "ethereumjs-common": "^1.5.0", - "ethereumjs-tx": "^2.1.1", - "ethereumjs-util": "^5.0.0", - "merkle-patricia-tree": "^2.1.2" - } - }, - "node_modules/ethereumjs-vm/node_modules/ethereumjs-block/node_modules/ethereumjs-util": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", - "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", - "dependencies": { - "bn.js": "^4.11.0", - "create-hash": "^1.1.2", - "elliptic": "^6.5.2", - "ethereum-cryptography": "^0.1.3", - "ethjs-util": "^0.1.3", - "rlp": "^2.0.0", - "safe-buffer": "^5.1.1" - } - }, - "node_modules/ethers": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/ethers/-/ethers-5.7.2.tgz", - "integrity": "sha512-wswUsmWo1aOK8rR7DIKiWSw9DbLWe6x98Jrn8wcTflTVvaXhAMaB5zGAXy0GYQEQp9iO1iSHWVyARQm11zUtyg==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "peer": true, - "dependencies": { - "@ethersproject/abi": "5.7.0", - "@ethersproject/abstract-provider": "5.7.0", - "@ethersproject/abstract-signer": "5.7.0", - "@ethersproject/address": "5.7.0", - "@ethersproject/base64": "5.7.0", - "@ethersproject/basex": "5.7.0", - "@ethersproject/bignumber": "5.7.0", - "@ethersproject/bytes": "5.7.0", - "@ethersproject/constants": "5.7.0", - "@ethersproject/contracts": "5.7.0", - "@ethersproject/hash": "5.7.0", - "@ethersproject/hdnode": "5.7.0", - "@ethersproject/json-wallets": "5.7.0", - "@ethersproject/keccak256": "5.7.0", - "@ethersproject/logger": "5.7.0", - "@ethersproject/networks": "5.7.1", - "@ethersproject/pbkdf2": "5.7.0", - "@ethersproject/properties": "5.7.0", - "@ethersproject/providers": "5.7.2", - "@ethersproject/random": "5.7.0", - "@ethersproject/rlp": "5.7.0", - "@ethersproject/sha2": "5.7.0", - "@ethersproject/signing-key": "5.7.0", - "@ethersproject/solidity": "5.7.0", - "@ethersproject/strings": "5.7.0", - "@ethersproject/transactions": "5.7.0", - "@ethersproject/units": "5.7.0", - "@ethersproject/wallet": "5.7.0", - "@ethersproject/web": "5.7.1", - "@ethersproject/wordlists": "5.7.0" - } - }, - "node_modules/ethers/node_modules/@ethersproject/basex": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/basex/-/basex-5.7.0.tgz", - "integrity": "sha512-ywlh43GwZLv2Voc2gQVTKBoVQ1mti3d8HK5aMxsfu/nRDnMmNqaSJ3r3n85HBByT8OpoY96SXM1FogC533T4zw==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "peer": true, - "dependencies": { - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/properties": "^5.7.0" - } - }, - "node_modules/ethers/node_modules/@ethersproject/contracts": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/contracts/-/contracts-5.7.0.tgz", - "integrity": "sha512-5GJbzEU3X+d33CdfPhcyS+z8MzsTrBGk/sc+G+59+tPa9yFkl6HQ9D6L0QMgNTA9q8dT0XKxxkyp883XsQvbbg==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "peer": true, - "dependencies": { - "@ethersproject/abi": "^5.7.0", - "@ethersproject/abstract-provider": "^5.7.0", - "@ethersproject/abstract-signer": "^5.7.0", - "@ethersproject/address": "^5.7.0", - "@ethersproject/bignumber": "^5.7.0", - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/constants": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/properties": "^5.7.0", - "@ethersproject/transactions": "^5.7.0" - } - }, - "node_modules/ethers/node_modules/@ethersproject/hdnode": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/hdnode/-/hdnode-5.7.0.tgz", - "integrity": "sha512-OmyYo9EENBPPf4ERhR7oj6uAtUAhYGqOnIS+jE5pTXvdKBS99ikzq1E7Iv0ZQZ5V36Lqx1qZLeak0Ra16qpeOg==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "peer": true, - "dependencies": { - "@ethersproject/abstract-signer": "^5.7.0", - "@ethersproject/basex": "^5.7.0", - "@ethersproject/bignumber": "^5.7.0", - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/pbkdf2": "^5.7.0", - "@ethersproject/properties": "^5.7.0", - "@ethersproject/sha2": "^5.7.0", - "@ethersproject/signing-key": "^5.7.0", - "@ethersproject/strings": "^5.7.0", - "@ethersproject/transactions": "^5.7.0", - "@ethersproject/wordlists": "^5.7.0" - } - }, - "node_modules/ethers/node_modules/@ethersproject/json-wallets": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/json-wallets/-/json-wallets-5.7.0.tgz", - "integrity": "sha512-8oee5Xgu6+RKgJTkvEMl2wDgSPSAQ9MB/3JYjFV9jlKvcYHUXZC+cQp0njgmxdHkYWn8s6/IqIZYm0YWCjO/0g==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "peer": true, - "dependencies": { - "@ethersproject/abstract-signer": "^5.7.0", - "@ethersproject/address": "^5.7.0", - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/hdnode": "^5.7.0", - "@ethersproject/keccak256": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/pbkdf2": "^5.7.0", - "@ethersproject/properties": "^5.7.0", - "@ethersproject/random": "^5.7.0", - "@ethersproject/strings": "^5.7.0", - "@ethersproject/transactions": "^5.7.0", - "aes-js": "3.0.0", - "scrypt-js": "3.0.1" - } - }, - "node_modules/ethers/node_modules/@ethersproject/pbkdf2": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/pbkdf2/-/pbkdf2-5.7.0.tgz", - "integrity": "sha512-oR/dBRZR6GTyaofd86DehG72hY6NpAjhabkhxgr3X2FpJtJuodEl2auADWBZfhDHgVCbu3/H/Ocq2uC6dpNjjw==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "peer": true, - "dependencies": { - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/sha2": "^5.7.0" - } - }, - "node_modules/ethers/node_modules/@ethersproject/providers": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/@ethersproject/providers/-/providers-5.7.2.tgz", - "integrity": "sha512-g34EWZ1WWAVgr4aptGlVBF8mhl3VWjv+8hoAnzStu8Ah22VHBsuGzP17eb6xDVRzw895G4W7vvx60lFFur/1Rg==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "peer": true, - "dependencies": { - "@ethersproject/abstract-provider": "^5.7.0", - "@ethersproject/abstract-signer": "^5.7.0", - "@ethersproject/address": "^5.7.0", - "@ethersproject/base64": "^5.7.0", - "@ethersproject/basex": "^5.7.0", - "@ethersproject/bignumber": "^5.7.0", - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/constants": "^5.7.0", - "@ethersproject/hash": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/networks": "^5.7.0", - "@ethersproject/properties": "^5.7.0", - "@ethersproject/random": "^5.7.0", - "@ethersproject/rlp": "^5.7.0", - "@ethersproject/sha2": "^5.7.0", - "@ethersproject/strings": "^5.7.0", - "@ethersproject/transactions": "^5.7.0", - "@ethersproject/web": "^5.7.0", - "bech32": "1.1.4", - "ws": "7.4.6" - } - }, - "node_modules/ethers/node_modules/@ethersproject/random": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/random/-/random-5.7.0.tgz", - "integrity": "sha512-19WjScqRA8IIeWclFme75VMXSBvi4e6InrUNuaR4s5pTF2qNhcGdCUwdxUVGtDDqC00sDLCO93jPQoDUH4HVmQ==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "peer": true, - "dependencies": { - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/logger": "^5.7.0" - } - }, - "node_modules/ethers/node_modules/@ethersproject/sha2": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/sha2/-/sha2-5.7.0.tgz", - "integrity": "sha512-gKlH42riwb3KYp0reLsFTokByAKoJdgFCwI+CCiX/k+Jm2mbNs6oOaCjYQSlI1+XBVejwH2KrmCbMAT/GnRDQw==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "peer": true, - "dependencies": { - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "hash.js": "1.1.7" - } - }, - "node_modules/ethers/node_modules/@ethersproject/solidity": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/solidity/-/solidity-5.7.0.tgz", - "integrity": "sha512-HmabMd2Dt/raavyaGukF4XxizWKhKQ24DoLtdNbBmNKUOPqwjsKQSdV9GQtj9CBEea9DlzETlVER1gYeXXBGaA==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "peer": true, - "dependencies": { - "@ethersproject/bignumber": "^5.7.0", - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/keccak256": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/sha2": "^5.7.0", - "@ethersproject/strings": "^5.7.0" - } - }, - "node_modules/ethers/node_modules/@ethersproject/units": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/units/-/units-5.7.0.tgz", - "integrity": "sha512-pD3xLMy3SJu9kG5xDGI7+xhTEmGXlEqXU4OfNapmfnxLVY4EMSSRp7j1k7eezutBPH7RBN/7QPnwR7hzNlEFeg==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "peer": true, - "dependencies": { - "@ethersproject/bignumber": "^5.7.0", - "@ethersproject/constants": "^5.7.0", - "@ethersproject/logger": "^5.7.0" - } - }, - "node_modules/ethers/node_modules/@ethersproject/wallet": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/wallet/-/wallet-5.7.0.tgz", - "integrity": "sha512-MhmXlJXEJFBFVKrDLB4ZdDzxcBxQ3rLyCkhNqVu3CDYvR97E+8r01UgrI+TI99Le+aYm/in/0vp86guJuM7FCA==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "peer": true, - "dependencies": { - "@ethersproject/abstract-provider": "^5.7.0", - "@ethersproject/abstract-signer": "^5.7.0", - "@ethersproject/address": "^5.7.0", - "@ethersproject/bignumber": "^5.7.0", - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/hash": "^5.7.0", - "@ethersproject/hdnode": "^5.7.0", - "@ethersproject/json-wallets": "^5.7.0", - "@ethersproject/keccak256": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/properties": "^5.7.0", - "@ethersproject/random": "^5.7.0", - "@ethersproject/signing-key": "^5.7.0", - "@ethersproject/transactions": "^5.7.0", - "@ethersproject/wordlists": "^5.7.0" - } - }, - "node_modules/ethers/node_modules/@ethersproject/wordlists": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/wordlists/-/wordlists-5.7.0.tgz", - "integrity": "sha512-S2TFNJNfHWVHNE6cNDjbVlZ6MgE17MIxMbMg2zv3wn+3XSJGosL1m9ZVv3GXCf/2ymSsQ+hRI5IzoMJTG6aoVA==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "peer": true, - "dependencies": { - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/hash": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/properties": "^5.7.0", - "@ethersproject/strings": "^5.7.0" - } - }, - "node_modules/ethers/node_modules/bech32": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/bech32/-/bech32-1.1.4.tgz", - "integrity": "sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ==", - "peer": true - }, - "node_modules/ethers/node_modules/hash.js": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", - "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", - "peer": true, - "dependencies": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.1" - } - }, - "node_modules/ethers/node_modules/scrypt-js": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-3.0.1.tgz", - "integrity": "sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA==", - "peer": true - }, - "node_modules/ethers/node_modules/ws": { - "version": "7.4.6", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz", - "integrity": "sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==", - "peer": true, - "engines": { - "node": ">=8.3.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": "^5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, - "node_modules/ethjs-unit": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/ethjs-unit/-/ethjs-unit-0.1.6.tgz", - "integrity": "sha1-xmWSHkduh7ziqdWIpv4EBbLEFpk=", - "dependencies": { - "bn.js": "4.11.6", - "number-to-bn": "1.7.0" - }, - "engines": { - "node": ">=6.5.0", - "npm": ">=3" - } - }, - "node_modules/ethjs-unit/node_modules/bn.js": { - "version": "4.11.6", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz", - "integrity": "sha1-UzRK2xRhehP26N0s4okF0cC6MhU=" - }, - "node_modules/ethjs-util": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/ethjs-util/-/ethjs-util-0.1.6.tgz", - "integrity": "sha512-CUnVOQq7gSpDHZVVrQW8ExxUETWrnrvXYvYz55wOU8Uj4VCgw56XC2B/fVqQN+f7gmrnRHSLVnFAwsCuNwji8w==", - "dependencies": { - "is-hex-prefixed": "1.0.0", - "strip-hex-prefix": "1.0.0" - }, - "engines": { - "node": ">=6.5.0", - "npm": ">=3" - } - }, - "node_modules/event-target-shim": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", - "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==", - "engines": { - "node": ">=6" - } - }, - "node_modules/eventemitter3": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-3.1.2.tgz", - "integrity": "sha512-tvtQIeLVHjDkJYnzf2dgVMxfuSGJeM/7UCG17TT4EumTfNtF+0nebF/4zWOIkCreAbtNqhGEboB6BWrwqNaw4Q==", - "dev": true - }, - "node_modules/events": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", - "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", - "engines": { - "node": ">=0.8.x" - } - }, - "node_modules/evp_bytestokey": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", - "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", - "dependencies": { - "md5.js": "^1.3.4", - "safe-buffer": "^5.1.1" - } - }, - "node_modules/exit-on-epipe": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/exit-on-epipe/-/exit-on-epipe-1.0.1.tgz", - "integrity": "sha512-h2z5mrROTxce56S+pnvAV890uu7ls7f1kEvVGJbw1OlFH3/mlJ5bkXu0KRyW94v37zzHPiUd55iLn3DA7TjWpw==", - "dev": true, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/expand-brackets": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", - "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", - "dependencies": { - "debug": "^2.3.3", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "posix-character-classes": "^0.1.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-brackets/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/expand-brackets/node_modules/define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dependencies": { - "is-descriptor": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-brackets/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-brackets/node_modules/is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-brackets/node_modules/is-accessor-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-brackets/node_modules/is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" - }, - "node_modules/expand-brackets/node_modules/is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-brackets/node_modules/is-data-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-brackets/node_modules/is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dependencies": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-brackets/node_modules/is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-brackets/node_modules/kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-tilde": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz", - "integrity": "sha1-l+gBqgUt8CRU3kawK/YhZCzchQI=", - "dependencies": { - "homedir-polyfill": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/explain-error": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/explain-error/-/explain-error-1.0.4.tgz", - "integrity": "sha1-p5PTrAytTGq1cemWj7urbLJTKSk=" - }, - "node_modules/express": { - "version": "4.17.1", - "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz", - "integrity": "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==", - "dev": true, - "dependencies": { - "accepts": "~1.3.7", - "array-flatten": "1.1.1", - "body-parser": "1.19.0", - "content-disposition": "0.5.3", - "content-type": "~1.0.4", - "cookie": "0.4.0", - "cookie-signature": "1.0.6", - "debug": "2.6.9", - "depd": "~1.1.2", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "finalhandler": "~1.1.2", - "fresh": "0.5.2", - "merge-descriptors": "1.0.1", - "methods": "~1.1.2", - "on-finished": "~2.3.0", - "parseurl": "~1.3.3", - "path-to-regexp": "0.1.7", - "proxy-addr": "~2.0.5", - "qs": "6.7.0", - "range-parser": "~1.2.1", - "safe-buffer": "5.1.2", - "send": "0.17.1", - "serve-static": "1.14.1", - "setprototypeof": "1.1.1", - "statuses": "~1.5.0", - "type-is": "~1.6.18", - "utils-merge": "1.0.1", - "vary": "~1.1.2" - }, - "engines": { - "node": ">= 0.10.0" - } - }, - "node_modules/express/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/express/node_modules/qs": { - "version": "6.7.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", - "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==", - "dev": true, - "engines": { - "node": ">=0.6" - } - }, - "node_modules/express/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, - "node_modules/ext": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/ext/-/ext-1.4.0.tgz", - "integrity": "sha512-Key5NIsUxdqKg3vIsdw9dSuXpPCQ297y6wBjL30edxwPgt2E44WcWBZey/ZvUc6sERLTxKdyCu4gZFmUbk1Q7A==", - "dependencies": { - "type": "^2.0.0" - } - }, - "node_modules/ext/node_modules/type": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/type/-/type-2.0.0.tgz", - "integrity": "sha512-KBt58xCHry4Cejnc2ISQAF7QY+ORngsWfxezO68+12hKV6lQY8P/psIkcbjeHWn7MqcgciWJyCCevFMJdIXpow==" - }, - "node_modules/extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" - }, - "node_modules/extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", - "dependencies": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/external-editor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", - "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", - "dev": true, - "dependencies": { - "chardet": "^0.7.0", - "iconv-lite": "^0.4.24", - "tmp": "^0.0.33" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/extglob": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", - "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", - "dependencies": { - "array-unique": "^0.3.2", - "define-property": "^1.0.0", - "expand-brackets": "^2.1.4", - "extend-shallow": "^2.0.1", - "fragment-cache": "^0.2.1", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/extglob/node_modules/define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dependencies": { - "is-descriptor": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/extglob/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/extglob/node_modules/is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/extsprintf": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", - "engines": [ - "node >=0.6.0" - ] - }, - "node_modules/fake-merkle-patricia-tree": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/fake-merkle-patricia-tree/-/fake-merkle-patricia-tree-1.0.1.tgz", - "integrity": "sha1-S4w6z7Ugr635hgsfFM2M40As3dM=", - "dependencies": { - "checkpoint-store": "^1.1.0" - } - }, - "node_modules/fast-check": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/fast-check/-/fast-check-3.1.1.tgz", - "integrity": "sha512-3vtXinVyuUKCKFKYcwXhGE6NtGWkqF8Yh3rvMZNzmwz8EPrgoc/v4pDdLHyLnCyCI5MZpZZkDEwFyXyEONOxpA==", - "dev": true, - "dependencies": { - "pure-rand": "^5.0.1" - }, - "engines": { - "node": ">=8.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/fast-check" - } - }, - "node_modules/fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" - }, - "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==" - }, - "node_modules/fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", - "dev": true - }, - "node_modules/fast-safe-stringify": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz", - "integrity": "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==" - }, - "node_modules/faye-websocket": { - "version": "0.11.3", - "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.3.tgz", - "integrity": "sha512-D2y4bovYpzziGgbHYtGCMjlJM36vAl/y+xUyn1C+FVx8szd1E+86KwVw6XvYSzOP8iMpm1X0I4xJD+QtUb36OA==", - "dev": true, - "dependencies": { - "websocket-driver": ">=0.5.1" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/fd-slicer": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", - "integrity": "sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4=", - "dev": true, - "dependencies": { - "pend": "~1.2.0" - } - }, - "node_modules/fetch-cookie": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/fetch-cookie/-/fetch-cookie-0.11.0.tgz", - "integrity": "sha512-BQm7iZLFhMWFy5CZ/162sAGjBfdNWb7a8LEqqnzsHFhxT/X/SVj/z2t2nu3aJvjlbQkrAlTUApplPRjWyH4mhA==", - "dev": true, - "optional": true, - "dependencies": { - "tough-cookie": "^2.3.3 || ^3.0.1 || ^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/fetch-ponyfill": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/fetch-ponyfill/-/fetch-ponyfill-4.1.0.tgz", - "integrity": "sha1-rjzl9zLGReq4fkroeTQUcJsjmJM=", - "dependencies": { - "node-fetch": "~1.7.1" - } - }, - "node_modules/figgy-pudding": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.2.tgz", - "integrity": "sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw==" - }, - "node_modules/figures": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", - "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", - "dev": true, - "dependencies": { - "escape-string-regexp": "^1.0.5" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/file-entry-cache": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-5.0.1.tgz", - "integrity": "sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g==", - "dev": true, - "dependencies": { - "flat-cache": "^2.0.1" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/file-type": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/file-type/-/file-type-5.2.0.tgz", - "integrity": "sha1-LdvqfHP/42No365J3DOMBYwritY=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/file-uri-to-path": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", - "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==" - }, - "node_modules/fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/finalhandler": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", - "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", - "dev": true, - "dependencies": { - "debug": "2.6.9", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "on-finished": "~2.3.0", - "parseurl": "~1.3.3", - "statuses": "~1.5.0", - "unpipe": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/finalhandler/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/find-cache-dir": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz", - "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==", - "dependencies": { - "commondir": "^1.0.1", - "make-dir": "^2.0.0", - "pkg-dir": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/find-cache-dir/node_modules/make-dir": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", - "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", - "dependencies": { - "pify": "^4.0.1", - "semver": "^5.6.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/find-cache-dir/node_modules/pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", - "engines": { - "node": ">=6" - } - }, - "node_modules/find-replace": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-replace/-/find-replace-3.0.0.tgz", - "integrity": "sha512-6Tb2myMioCAgv5kfvP5/PkZZ/ntTpVK39fHY7WkWBgvbeE+VHd/tZuZ4mrC+bxh4cfOZeYKVPaJIZtZXV7GNCQ==", - "dependencies": { - "array-back": "^3.0.1" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "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": { - "locate-path": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/find-up/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/find-up/node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/find-up/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/find-up/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==", - "engines": { - "node": ">=6" - } - }, - "node_modules/findup-sync": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-3.0.0.tgz", - "integrity": "sha512-YbffarhcicEhOrm4CtrwdKBdCuz576RLdhJDsIfvNtxUuhdRet1qZcsMjqbePtAseKdAnDyM/IyXbu7PRPRLYg==", - "dependencies": { - "detect-file": "^1.0.0", - "is-glob": "^4.0.0", - "micromatch": "^3.0.4", - "resolve-dir": "^1.0.1" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/firebase": { - "version": "7.17.1", - "resolved": "https://registry.npmjs.org/firebase/-/firebase-7.17.1.tgz", - "integrity": "sha512-g2Wkk2fz8VoeSrxv2PIQizm2j74EtbpxQ+wd2AvH2iEF5LRaJOsk3zVBtIlyJIQ3vGTmlutIxtyyoDAQcPO9TA==", - "dev": true, - "dependencies": { - "@firebase/analytics": "0.4.1", - "@firebase/app": "0.6.9", - "@firebase/app-types": "0.6.1", - "@firebase/auth": "0.14.9", - "@firebase/database": "0.6.9", - "@firebase/firestore": "1.16.2", - "@firebase/functions": "0.4.49", - "@firebase/installations": "0.4.15", - "@firebase/messaging": "0.6.21", - "@firebase/performance": "0.3.10", - "@firebase/polyfill": "0.3.36", - "@firebase/remote-config": "0.1.26", - "@firebase/storage": "0.3.41", - "@firebase/util": "0.3.0" - }, - "engines": { - "node": "^8.13.0 || >=10.10.0" - } - }, - "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/flat-cache": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-2.0.1.tgz", - "integrity": "sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA==", - "dev": true, - "dependencies": { - "flatted": "^2.0.0", - "rimraf": "2.6.3", - "write": "1.0.3" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/flat-cache/node_modules/rimraf": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", - "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", - "dev": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - } - }, - "node_modules/flatted": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.2.tgz", - "integrity": "sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==", - "dev": true - }, - "node_modules/flush-write-stream": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz", - "integrity": "sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==", - "dependencies": { - "inherits": "^2.0.3", - "readable-stream": "^2.3.6" - } - }, - "node_modules/follow-redirects": { - "version": "1.5.10", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.5.10.tgz", - "integrity": "sha512-0V5l4Cizzvqt5D44aTXbFZz+FtyXV1vrDN6qrelxtfYQKW0KO0W2T/hkE8xvGa/540LkZlkaUjO4ailYTFtHVQ==", - "dev": true, - "dependencies": { - "debug": "=3.1.0" - }, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/for-in": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", - "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/foreach": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz", - "integrity": "sha1-C+4AUBiusmDQo6865ljdATbsG5k=", - "dev": true - }, - "node_modules/forever-agent": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", - "engines": { - "node": "*" - } - }, - "node_modules/form-data": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", - "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 0.12" - } - }, - "node_modules/form-data-encoder": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/form-data-encoder/-/form-data-encoder-1.7.1.tgz", - "integrity": "sha512-EFRDrsMm/kyqbTQocNvRXMLjc7Es2Vk+IQFx/YW7hkUH1eBl4J1fqiP34l74Yt0pFLCNpc06fkbVk00008mzjg==", - "dev": true - }, - "node_modules/forwarded": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz", - "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/fragment-cache": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", - "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", - "dependencies": { - "map-cache": "^0.2.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/fresh": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/from2": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", - "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", - "dependencies": { - "inherits": "^2.0.1", - "readable-stream": "^2.0.0" - } - }, - "node_modules/fs-constants": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", - "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==", - "dev": true - }, - "node_modules/fs-extra": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", - "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", - "dependencies": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - }, - "engines": { - "node": ">=6 <7 || >=8" - } - }, - "node_modules/fs-minipass": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.7.tgz", - "integrity": "sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==", - "dev": true, - "dependencies": { - "minipass": "^2.6.0" - } - }, - "node_modules/fs-write-stream-atomic": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz", - "integrity": "sha1-tH31NJPvkR33VzHnCp3tAYnbQMk=", - "dependencies": { - "graceful-fs": "^4.1.2", - "iferr": "^0.1.5", - "imurmurhash": "^0.1.4", - "readable-stream": "1 || 2" - } - }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" - }, - "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/functional-red-black-tree": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", - "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=" - }, - "node_modules/ganache": { - "version": "7.8.0", - "resolved": "https://registry.npmjs.org/ganache/-/ganache-7.8.0.tgz", - "integrity": "sha512-IrUYvsaE/m2/NaVIZ7D/gCnsmyU/buechnH6MhUipzG1qJcZIwIp/DoP/LZUcHyhy0Bv0NKZD2pGOjpRhn7l7A==", - "bundleDependencies": [ - "@trufflesuite/bigint-buffer", - "keccak", - "leveldown", - "secp256k1" - ], - "dev": true, - "hasShrinkwrap": true, - "dependencies": { - "@trufflesuite/bigint-buffer": "1.1.10", - "@trufflesuite/uws-js-unofficial": "20.10.0-unofficial.2", - "@types/bn.js": "^5.1.0", - "@types/lru-cache": "5.1.1", - "@types/seedrandom": "3.0.1", - "abstract-level": "1.0.3", - "abstract-leveldown": "7.2.0", - "async-eventemitter": "0.2.4", - "emittery": "0.10.0", - "keccak": "3.0.2", - "leveldown": "6.1.0", - "secp256k1": "4.0.3" - }, - "bin": { - "ganache": "dist/node/cli.js", - "ganache-cli": "dist/node/cli.js" - }, - "optionalDependencies": { - "bufferutil": "4.0.5", - "utf-8-validate": "5.0.7" - } - }, - "node_modules/ganache/node_modules/@trufflesuite/bigint-buffer": { - "version": "1.1.10", - "resolved": "https://registry.npmjs.org/@trufflesuite/bigint-buffer/-/bigint-buffer-1.1.10.tgz", - "integrity": "sha512-pYIQC5EcMmID74t26GCC67946mgTJFiLXOT/BYozgrd4UEY2JHEGLhWi9cMiQCt5BSqFEvKkCHNnoj82SRjiEw==", - "dev": true, - "hasInstallScript": true, - "inBundle": true, - "license": "Apache-2.0", - "dependencies": { - "node-gyp-build": "4.4.0" - }, - "engines": { - "node": ">= 14.0.0" - } - }, - "node_modules/ganache/node_modules/@trufflesuite/bigint-buffer/node_modules/node-gyp-build": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.4.0.tgz", - "integrity": "sha512-amJnQCcgtRVw9SvoebO3BKGESClrfXGCUTX9hSn1OuGQTQBOZmVd0Z0OlecpuRksKvbsUqALE8jls/ErClAPuQ==", - "dev": true, - "inBundle": true, - "license": "MIT", - "bin": { - "node-gyp-build": "bin.js", - "node-gyp-build-optional": "optional.js", - "node-gyp-build-test": "build-test.js" - } - }, - "node_modules/ganache/node_modules/@trufflesuite/uws-js-unofficial": { - "version": "20.10.0-unofficial.2", - "resolved": "https://registry.npmjs.org/@trufflesuite/uws-js-unofficial/-/uws-js-unofficial-20.10.0-unofficial.2.tgz", - "integrity": "sha512-oQQlnS3oNeGsgS4K3KCSSavJgSb0W9D5ktZs4FacX9VbM7b+NlhjH96d6/G4fMrz+bc5MXRyco419on0X0dvRA==", - "dev": true, - "dependencies": { - "ws": "8.2.3" - }, - "optionalDependencies": { - "bufferutil": "4.0.5", - "utf-8-validate": "5.0.7" - } - }, - "node_modules/ganache/node_modules/@types/bn.js": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-5.1.0.tgz", - "integrity": "sha512-QSSVYj7pYFN49kW77o2s9xTCwZ8F2xLbjLLSEVh8D2F4JUhZtPAGOFLTD+ffqksBx/u4cE/KImFjyhqCjn/LIA==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/ganache/node_modules/@types/lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/@types/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-ssE3Vlrys7sdIzs5LOxCzTVMsU7i9oa/IaW92wF32JFb3CVczqOkru2xspuKczHEbG3nvmPY7IFqVmGGHdNbYw==", - "dev": true - }, - "node_modules/ganache/node_modules/@types/node": { - "version": "17.0.0", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.0.tgz", - "integrity": "sha512-eMhwJXc931Ihh4tkU+Y7GiLzT/y/DBNpNtr4yU9O2w3SYBsr9NaOPhQlLKRmoWtI54uNwuo0IOUFQjVOTZYRvw==", - "dev": true - }, - "node_modules/ganache/node_modules/@types/seedrandom": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@types/seedrandom/-/seedrandom-3.0.1.tgz", - "integrity": "sha512-giB9gzDeiCeloIXDgzFBCgjj1k4WxcDrZtGl6h1IqmUPlxF+Nx8Ve+96QCyDZ/HseB/uvDsKbpib9hU5cU53pw==", - "dev": true - }, - "node_modules/ganache/node_modules/abstract-level": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/abstract-level/-/abstract-level-1.0.3.tgz", - "integrity": "sha512-t6jv+xHy+VYwc4xqZMn2Pa9DjcdzvzZmQGRjTFc8spIbRGHgBrEKbPq+rYXc7CCo0lxgYvSgKVg9qZAhpVQSjA==", - "dev": true, - "dependencies": { - "buffer": "^6.0.3", - "catering": "^2.1.0", - "is-buffer": "^2.0.5", - "level-supports": "^4.0.0", - "level-transcoder": "^1.0.1", - "module-error": "^1.0.1", - "queue-microtask": "^1.2.3" - } - }, - "node_modules/ganache/node_modules/abstract-level/node_modules/level-supports": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/level-supports/-/level-supports-4.0.1.tgz", - "integrity": "sha512-PbXpve8rKeNcZ9C1mUicC9auIYFyGpkV9/i6g76tLgANwWhtG2v7I4xNBUlkn3lE2/dZF3Pi0ygYGtLc4RXXdA==", - "dev": true - }, - "node_modules/ganache/node_modules/abstract-leveldown": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-7.2.0.tgz", - "integrity": "sha512-DnhQwcFEaYsvYDnACLZhMmCWd3rkOeEvglpa4q5i/5Jlm3UIsWaxVzuXvDLFCSCWRO3yy2/+V/G7FusFgejnfQ==", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "buffer": "^6.0.3", - "catering": "^2.0.0", - "is-buffer": "^2.0.5", - "level-concat-iterator": "^3.0.0", - "level-supports": "^2.0.1", - "queue-microtask": "^1.2.3" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/ganache/node_modules/async": { - "version": "2.6.4", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.4.tgz", - "integrity": "sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==", - "dev": true, - "dependencies": { - "lodash": "^4.17.14" - } - }, - "node_modules/ganache/node_modules/async-eventemitter": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/async-eventemitter/-/async-eventemitter-0.2.4.tgz", - "integrity": "sha512-pd20BwL7Yt1zwDFy+8MX8F1+WCT8aQeKj0kQnTrH9WaeRETlRamVhD0JtRPmrV4GfOJ2F9CvdQkZeZhnh2TuHw==", - "dev": true, - "dependencies": { - "async": "^2.4.0" - } - }, - "node_modules/ganache/node_modules/base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "inBundle": true, - "license": "MIT" - }, - "node_modules/ganache/node_modules/brorand": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", - "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=", - "dev": true, - "inBundle": true, - "license": "MIT" - }, - "node_modules/ganache/node_modules/buffer": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", - "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "inBundle": true, - "license": "MIT", - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" - } - }, - "node_modules/ganache/node_modules/bufferutil": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/bufferutil/-/bufferutil-4.0.5.tgz", - "integrity": "sha512-HTm14iMQKK2FjFLRTM5lAVcyaUzOnqbPtesFIvREgXpJHdQm8bWS+GkQgIkfaBYRHuCnea7w8UVNfwiAQhlr9A==", - "dev": true, - "optional": true, - "dependencies": { - "node-gyp-build": "^4.3.0" - } - }, - "node_modules/ganache/node_modules/catering": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/catering/-/catering-2.1.0.tgz", - "integrity": "sha512-M5imwzQn6y+ODBfgi+cfgZv2hIUI6oYU/0f35Mdb1ujGeqeoI5tOnl9Q13DTH7LW+7er+NYq8stNOKZD/Z3U/A==", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "queue-tick": "^1.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/ganache/node_modules/elliptic": { - "version": "6.5.4", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", - "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "bn.js": "^4.11.9", - "brorand": "^1.1.0", - "hash.js": "^1.0.0", - "hmac-drbg": "^1.0.1", - "inherits": "^2.0.4", - "minimalistic-assert": "^1.0.1", - "minimalistic-crypto-utils": "^1.0.1" - } - }, - "node_modules/ganache/node_modules/elliptic/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true, - "inBundle": true, - "license": "MIT" - }, - "node_modules/ganache/node_modules/emittery": { - "version": "0.10.0", - "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.10.0.tgz", - "integrity": "sha512-AGvFfs+d0JKCJQ4o01ASQLGPmSCxgfU9RFXvzPvZdjKK8oscynksuJhWrSTSw7j7Ep/sZct5b5ZhYCi8S/t0HQ==", - "dev": true - }, - "node_modules/ganache/node_modules/hash.js": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", - "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.1" - } - }, - "node_modules/ganache/node_modules/hmac-drbg": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", - "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "hash.js": "^1.0.3", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.1" - } - }, - "node_modules/ganache/node_modules/ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "inBundle": true, - "license": "BSD-3-Clause" - }, - "node_modules/ganache/node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true, - "inBundle": true, - "license": "ISC" - }, - "node_modules/ganache/node_modules/is-buffer": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz", - "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/ganache/node_modules/keccak": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/keccak/-/keccak-3.0.2.tgz", - "integrity": "sha512-PyKKjkH53wDMLGrvmRGSNWgmSxZOUqbnXwKL9tmgbFYA1iAYqW21kfR7mZXV0MlESiefxQQE9X9fTa3X+2MPDQ==", - "dev": true, - "hasInstallScript": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "node-addon-api": "^2.0.0", - "node-gyp-build": "^4.2.0", - "readable-stream": "^3.6.0" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/ganache/node_modules/level-concat-iterator": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/level-concat-iterator/-/level-concat-iterator-3.1.0.tgz", - "integrity": "sha512-BWRCMHBxbIqPxJ8vHOvKUsaO0v1sLYZtjN3K2iZJsRBYtp+ONsY6Jfi6hy9K3+zolgQRryhIn2NRZjZnWJ9NmQ==", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "catering": "^2.1.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/ganache/node_modules/level-supports": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/level-supports/-/level-supports-2.1.0.tgz", - "integrity": "sha512-E486g1NCjW5cF78KGPrMDRBYzPuueMZ6VBXHT6gC7A8UYWGiM14fGgp+s/L1oFfDWSPV/+SFkYCmZ0SiESkRKA==", - "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=10" - } - }, - "node_modules/ganache/node_modules/level-transcoder": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/level-transcoder/-/level-transcoder-1.0.1.tgz", - "integrity": "sha512-t7bFwFtsQeD8cl8NIoQ2iwxA0CL/9IFw7/9gAjOonH0PWTTiRfY7Hq+Ejbsxh86tXobDQ6IOiddjNYIfOBs06w==", - "dev": true, - "dependencies": { - "buffer": "^6.0.3", - "module-error": "^1.0.1" - } - }, - "node_modules/ganache/node_modules/leveldown": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/leveldown/-/leveldown-6.1.0.tgz", - "integrity": "sha512-8C7oJDT44JXxh04aSSsfcMI8YiaGRhOFI9/pMEL7nWJLVsWajDPTRxsSHTM2WcTVY5nXM+SuRHzPPi0GbnDX+w==", - "dev": true, - "hasInstallScript": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "abstract-leveldown": "^7.2.0", - "napi-macros": "~2.0.0", - "node-gyp-build": "^4.3.0" - }, - "engines": { - "node": ">=10.12.0" - } - }, - "node_modules/ganache/node_modules/lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "dev": true - }, - "node_modules/ganache/node_modules/minimalistic-assert": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", - "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", - "dev": true, - "inBundle": true, - "license": "ISC" - }, - "node_modules/ganache/node_modules/minimalistic-crypto-utils": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", - "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=", - "dev": true, - "inBundle": true, - "license": "MIT" - }, - "node_modules/ganache/node_modules/module-error": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/module-error/-/module-error-1.0.2.tgz", - "integrity": "sha512-0yuvsqSCv8LbaOKhnsQ/T5JhyFlCYLPXK3U2sgV10zoKQwzs/MyfuQUOZQ1V/6OCOJsK/TRgNVrPuPDqtdMFtA==", - "dev": true - }, - "node_modules/ganache/node_modules/napi-macros": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/napi-macros/-/napi-macros-2.0.0.tgz", - "integrity": "sha512-A0xLykHtARfueITVDernsAWdtIMbOJgKgcluwENp3AlsKN/PloyO10HtmoqnFAQAcxPkgZN7wdfPfEd0zNGxbg==", - "dev": true, - "inBundle": true, - "license": "MIT" - }, - "node_modules/ganache/node_modules/node-addon-api": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-2.0.2.tgz", - "integrity": "sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA==", - "dev": true, - "inBundle": true, - "license": "MIT" - }, - "node_modules/ganache/node_modules/node-gyp-build": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.3.0.tgz", - "integrity": "sha512-iWjXZvmboq0ja1pUGULQBexmxq8CV4xBhX7VDOTbL7ZR4FOowwY/VOtRxBN/yKxmdGoIp4j5ysNT4u3S2pDQ3Q==", - "dev": true, - "inBundle": true, - "license": "MIT", - "bin": { - "node-gyp-build": "bin.js", - "node-gyp-build-optional": "optional.js", - "node-gyp-build-test": "build-test.js" - } - }, - "node_modules/ganache/node_modules/queue-microtask": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "inBundle": true, - "license": "MIT" - }, - "node_modules/ganache/node_modules/queue-tick": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/queue-tick/-/queue-tick-1.0.0.tgz", - "integrity": "sha512-ULWhjjE8BmiICGn3G8+1L9wFpERNxkf8ysxkAer4+TFdRefDaXOCV5m92aMB9FtBVmn/8sETXLXY6BfW7hyaWQ==", - "dev": true, - "inBundle": true, - "license": "MIT" - }, - "node_modules/ganache/node_modules/readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/ganache/node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "inBundle": true, - "license": "MIT" - }, - "node_modules/ganache/node_modules/secp256k1": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-4.0.3.tgz", - "integrity": "sha512-NLZVf+ROMxwtEj3Xa562qgv2BK5e2WNmXPiOdVIPLgs6lyTzMvBq0aWTYMI5XCP9jZMVKOcqZLw/Wc4vDkuxhA==", - "dev": true, - "hasInstallScript": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "elliptic": "^6.5.4", - "node-addon-api": "^2.0.0", - "node-gyp-build": "^4.2.0" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/ganache/node_modules/string_decoder": { - "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==", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "safe-buffer": "~5.2.0" - } - }, - "node_modules/ganache/node_modules/utf-8-validate": { - "version": "5.0.7", - "resolved": "https://registry.npmjs.org/utf-8-validate/-/utf-8-validate-5.0.7.tgz", - "integrity": "sha512-vLt1O5Pp+flcArHGIyKEQq883nBt8nN8tVBcoL0qUXj2XT1n7p70yGIq2VK98I5FdZ1YHc0wk/koOnHjnXWk1Q==", - "dev": true, - "optional": true, - "dependencies": { - "node-gyp-build": "^4.3.0" - } - }, - "node_modules/ganache/node_modules/util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", - "dev": true, - "inBundle": true, - "license": "MIT" - }, - "node_modules/ganache/node_modules/ws": { - "version": "8.2.3", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.2.3.tgz", - "integrity": "sha512-wBuoj1BDpC6ZQ1B7DWQBYVLphPWkm8i9Y0/3YdHjHKHiohOJ1ws+3OccDWtH+PoC9DZD5WOTrJvNbWvjS6JWaA==", - "dev": true - }, - "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==", - "peer": 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", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "engines": { - "node": "6.* || 8.* || >= 10.*" - } - }, - "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": "sha1-6td0q+5y4gQJQzoGY2YCPdaIekE=", - "engines": { - "node": "*" - } - }, - "node_modules/get-intrinsic": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", - "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", - "dev": true, - "dependencies": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/get-iterator": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/get-iterator/-/get-iterator-1.0.2.tgz", - "integrity": "sha512-v+dm9bNVfOYsY1OrhaCrmyOcYoSeVvbt+hHZ0Au+T+p1y+0Uyj9aMaGIeUTT6xdpRbWzDeYKvfOslPhggQMcsg==" - }, - "node_modules/get-stream": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", - "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", - "dev": true, - "dependencies": { - "pump": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/get-value": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", - "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/getpass": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", - "dependencies": { - "assert-plus": "^1.0.0" - } - }, - "node_modules/glob": { - "version": "7.1.6", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", - "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", - "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": "*" - } - }, - "node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/global": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/global/-/global-4.3.2.tgz", - "integrity": "sha1-52mJJopsdMOJCLEwWxD8DjlOnQ8=", - "dependencies": { - "min-document": "^2.19.0", - "process": "~0.5.1" - } - }, - "node_modules/global-modules": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz", - "integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==", - "dependencies": { - "global-prefix": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/global-prefix": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz", - "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==", - "dependencies": { - "ini": "^1.3.5", - "kind-of": "^6.0.2", - "which": "^1.3.1" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/global-prefix/node_modules/which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "which": "bin/which" - } - }, - "node_modules/globals": { - "version": "12.4.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-12.4.0.tgz", - "integrity": "sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg==", - "dev": true, - "dependencies": { - "type-fest": "^0.8.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/got": { - "version": "9.6.0", - "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz", - "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==", - "dev": true, - "dependencies": { - "@sindresorhus/is": "^0.14.0", - "@szmarczak/http-timer": "^1.1.2", - "cacheable-request": "^6.0.0", - "decompress-response": "^3.3.0", - "duplexer3": "^0.1.4", - "get-stream": "^4.1.0", - "lowercase-keys": "^1.0.1", - "mimic-response": "^1.0.1", - "p-cancelable": "^1.0.0", - "to-readable-stream": "^1.0.0", - "url-parse-lax": "^3.0.0" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/graceful-fs": { - "version": "4.2.10", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", - "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==" - }, - "node_modules/graceful-readlink": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz", - "integrity": "sha1-TK+tdrxi8C+gObL5Tpo906ORpyU=", - "dev": true - }, - "node_modules/graphql": { - "version": "15.8.0", - "resolved": "https://registry.npmjs.org/graphql/-/graphql-15.8.0.tgz", - "integrity": "sha512-5gghUc24tP9HRznNpV2+FIoq3xKkj5dTQqf4v0CpdPbFVwFkWoxOM+o+2OC9ZSvjEMTjfmG9QT+gcvggTwW1zw==", - "dev": true, - "optional": true, - "engines": { - "node": ">= 10.x" - } - }, - "node_modules/graphql-tag": { - "version": "2.12.6", - "resolved": "https://registry.npmjs.org/graphql-tag/-/graphql-tag-2.12.6.tgz", - "integrity": "sha512-FdSNcu2QQcWnM2VNvSCCDCVS5PpPqpzgFT8+GXzqJuoDd0CBncxCY278u4mhRO7tMgo2JjgJA5aZ+nWSQ/Z+xg==", - "dev": true, - "optional": true, - "dependencies": { - "tslib": "^2.1.0" - }, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "graphql": "^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0" - } - }, - "node_modules/graphql-tag/node_modules/tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==", - "dev": true, - "optional": true - }, - "node_modules/growl": { - "version": "1.10.5", - "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz", - "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==", - "engines": { - "node": ">=4.x" - } - }, - "node_modules/har-schema": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", - "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", - "engines": { - "node": ">=4" - } - }, - "node_modules/har-validator": { - "version": "5.1.5", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", - "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", - "deprecated": "this library is no longer supported", - "dev": true, - "dependencies": { - "ajv": "^6.12.3", - "har-schema": "^2.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "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-bigints": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz", - "integrity": "sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "engines": { - "node": ">=4" - } - }, - "node_modules/has-symbol-support-x": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/has-symbol-support-x/-/has-symbol-support-x-1.4.2.tgz", - "integrity": "sha512-3ToOva++HaW+eCpgqZrCfN51IPB+7bJNVT6CUATzueB5Heb8o6Nam0V3HG5dlDvZU1Gn5QLcbahiKw/XVk5JJw==", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/has-symbols": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", - "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-to-string-tag-x": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/has-to-string-tag-x/-/has-to-string-tag-x-1.4.1.tgz", - "integrity": "sha512-vdbKfmw+3LoOYVr+mtxHaX5a96+0f3DljYd8JOqvOLsf5mw2Otda2qCDT9qRqLAhrjyQ0h7ual5nOiASpsGNFw==", - "dev": true, - "dependencies": { - "has-symbol-support-x": "^1.4.1" - }, - "engines": { - "node": "*" - } - }, - "node_modules/has-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", - "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", - "dependencies": { - "get-value": "^2.0.6", - "has-values": "^1.0.0", - "isobject": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/has-values": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", - "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", - "dependencies": { - "is-number": "^3.0.0", - "kind-of": "^4.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/has-values/node_modules/is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" - }, - "node_modules/has-values/node_modules/is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/has-values/node_modules/is-number/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/has-values/node_modules/kind-of": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", - "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/hash-base": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", - "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", - "dependencies": { - "inherits": "^2.0.4", - "readable-stream": "^3.6.0", - "safe-buffer": "^5.2.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/hash-base/node_modules/readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/hash.js": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.3.tgz", - "integrity": "sha512-/UETyP0W22QILqS+6HowevwhEFJ3MBJnwTf75Qob9Wz9t0DPuisL8kW8YZMK62dHAKE1c1p+gY1TtOLY+USEHA==", - "dependencies": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.0" - } - }, - "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/header-case": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/header-case/-/header-case-1.0.1.tgz", - "integrity": "sha512-i0q9mkOeSuhXw6bGgiQCCBgY/jlZuV/7dZXyZ9c6LcBrqwvT8eT719E9uxE5LiZftdl+z81Ugbg/VvXV4OJOeQ==", - "dev": true, - "dependencies": { - "no-case": "^2.2.0", - "upper-case": "^1.1.3" - } - }, - "node_modules/hmac-drbg": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", - "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", - "dependencies": { - "hash.js": "^1.0.3", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.1" - } - }, - "node_modules/homedir-polyfill": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz", - "integrity": "sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==", - "dependencies": { - "parse-passwd": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/hosted-git-info": { - "version": "2.8.8", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz", - "integrity": "sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==", - "dev": true - }, - "node_modules/htmlparser2": { - "version": "3.10.1", - "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.10.1.tgz", - "integrity": "sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ==", - "dev": true, - "dependencies": { - "domelementtype": "^1.3.1", - "domhandler": "^2.3.0", - "domutils": "^1.5.1", - "entities": "^1.1.1", - "inherits": "^2.0.1", - "readable-stream": "^3.1.1" - } - }, - "node_modules/htmlparser2/node_modules/readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dev": true, - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/http-cache-semantics": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", - "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==", - "dev": true - }, - "node_modules/http-errors": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz", - "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==", - "dev": true, - "dependencies": { - "depd": "~1.1.2", - "inherits": "2.0.3", - "setprototypeof": "1.1.1", - "statuses": ">= 1.5.0 < 2", - "toidentifier": "1.0.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/http-errors/node_modules/inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", - "dev": true - }, - "node_modules/http-https": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/http-https/-/http-https-1.0.0.tgz", - "integrity": "sha1-L5CN1fHbQGjAWM1ubUzjkskTOJs=" - }, - "node_modules/http-parser-js": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.2.tgz", - "integrity": "sha512-opCO9ASqg5Wy2FNo7A0sxy71yGbbkJJXLdgMK04Tcypw9jr2MgWbyubb0+WdmDmGnFflO7fRbqbaihh/ENDlRQ==", - "dev": true - }, - "node_modules/http-signature": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", - "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", - "dependencies": { - "assert-plus": "^1.0.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" - }, - "engines": { - "node": ">=0.8", - "npm": ">=1.3.7" - } - }, - "node_modules/http2-wrapper": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-2.2.0.tgz", - "integrity": "sha512-kZB0wxMo0sh1PehyjJUWRFEd99KC5TLjZ2cULC4f9iqJBAmKQQXEICjxl5iPJRwP40dpeHFqqhm7tYCvODpqpQ==", - "dev": true, - "dependencies": { - "quick-lru": "^5.1.1", - "resolve-alpn": "^1.2.0" - }, - "engines": { - "node": ">=10.19.0" - } - }, - "node_modules/https-browserify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", - "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=" - }, - "node_modules/iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "dev": true, - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/idb": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/idb/-/idb-3.0.2.tgz", - "integrity": "sha512-+FLa/0sTXqyux0o6C+i2lOR0VoS60LU/jzUo5xjfY6+7sEEgy4Gz1O7yFBXvjd7N0NyIGWIRg8DcQSLEG+VSPw==", - "dev": true - }, - "node_modules/idna-uts46-hx": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/idna-uts46-hx/-/idna-uts46-hx-2.3.1.tgz", - "integrity": "sha512-PWoF9Keq6laYdIRwwCdhTPl60xRqAloYNMQLiyUnG42VjT53oW07BXIRM+NK7eQjzXjAk2gUvX9caRxlnF9TAA==", - "dev": true, - "dependencies": { - "punycode": "2.1.0" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/idna-uts46-hx/node_modules/punycode": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.0.tgz", - "integrity": "sha1-X4Y+3Im5bbCQdLrXlHvwkFbKTn0=", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "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/iferr": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz", - "integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=" - }, - "node_modules/ignore": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", - "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", - "dev": true, - "engines": { - "node": ">= 4" - } - }, - "node_modules/immediate": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.3.0.tgz", - "integrity": "sha512-HR7EVodfFUdQCTIeySw+WDRFJlPcLOJbXfwwZ7Oom6tjsvZ3bOkCDJHehQC3nxJrv7+f9XecwazynjU8e4Vw3Q==" - }, - "node_modules/import-fresh": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.2.1.tgz", - "integrity": "sha512-6e1q1cnWP2RXD9/keSkxHScg508CdXqXWgWBaETNhyuBFz+kUZlKboh+ISK+bU++DmbHimVBrOz/zzPe0sZ3sQ==", - "dev": true, - "dependencies": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/import-local": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/import-local/-/import-local-2.0.0.tgz", - "integrity": "sha512-b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ==", - "dependencies": { - "pkg-dir": "^3.0.0", - "resolve-cwd": "^2.0.0" - }, - "bin": { - "import-local-fixture": "fixtures/cli.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", - "engines": { - "node": ">=0.8.19" - } - }, - "node_modules/infer-owner": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", - "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==" - }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" - }, - "node_modules/ini": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" - }, - "node_modules/inquirer": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-6.5.2.tgz", - "integrity": "sha512-cntlB5ghuB0iuO65Ovoi8ogLHiWGs/5yNrtUcKjFhSSiVeAIVpD7koaSU9RM8mpXw5YDi9RdYXGQMaOURB7ycQ==", - "dev": true, - "dependencies": { - "ansi-escapes": "^3.2.0", - "chalk": "^2.4.2", - "cli-cursor": "^2.1.0", - "cli-width": "^2.0.0", - "external-editor": "^3.0.3", - "figures": "^2.0.0", - "lodash": "^4.17.12", - "mute-stream": "0.0.7", - "run-async": "^2.2.0", - "rxjs": "^6.4.0", - "string-width": "^2.1.0", - "strip-ansi": "^5.1.0", - "through": "^2.3.6" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/inquirer/node_modules/cli-cursor": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", - "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", - "dev": true, - "dependencies": { - "restore-cursor": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/inquirer/node_modules/mimic-fn": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", - "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/inquirer/node_modules/onetime": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", - "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", - "dev": true, - "dependencies": { - "mimic-fn": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/inquirer/node_modules/restore-cursor": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", - "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", - "dev": true, - "dependencies": { - "onetime": "^2.0.0", - "signal-exit": "^3.0.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/interpret": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", - "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==", - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/ipaddr.js": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", - "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", - "dev": true, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/ipfs-http-client-lite": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/ipfs-http-client-lite/-/ipfs-http-client-lite-0.3.0.tgz", - "integrity": "sha512-fmxEctpzqaPd0gooBuvjMwxSoqz15rwjjm2ZF3Ns4Ckz/zz5JEmiDKuwlMOfwkARd5Wsiy2FqQpQEvBTJ8R7Og==", - "dependencies": { - "abort-controller": "^3.0.0", - "async-iterator-to-pull-stream": "^1.3.0", - "buffer": "^5.2.1", - "cids": "^0.7.1", - "explain-error": "^1.0.4", - "form-data": "^2.4.0", - "iterable-ndjson": "^1.1.0", - "node-fetch": "^2.6.0", - "pull-stream-to-async-iterator": "^1.0.2", - "querystring": "^0.2.0" - }, - "engines": { - "node": ">=10.0.0", - "npm": ">=5.6.0" - } - }, - "node_modules/ipfs-http-client-lite/node_modules/form-data": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.5.1.tgz", - "integrity": "sha512-m21N3WOmEEURgk6B9GLOE4RuWOFf28Lhh9qGYeNlGq4VDXUlJy2th2slBNU8Gp8EzloYZOibZJ7t5ecIrFSjVA==", - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 0.12" - } - }, - "node_modules/ipfs-http-client-lite/node_modules/node-fetch": { - "version": "2.6.7", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", - "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", - "dependencies": { - "whatwg-url": "^5.0.0" - }, - "engines": { - "node": "4.x || >=6.0.0" - }, - "peerDependencies": { - "encoding": "^0.1.0" - }, - "peerDependenciesMeta": { - "encoding": { - "optional": true - } - } - }, - "node_modules/is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dependencies": { - "kind-of": "^6.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-arguments": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.0.4.tgz", - "integrity": "sha512-xPh0Rmt8NE65sNzvyUmWgI1tz3mKq74lGA0mL8LYZcoIzKOzDh6HmrYm3d18k60nHerC8A9Km8kYu87zfSFnLA==", - "dev": true, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/is-bigint": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.2.tgz", - "integrity": "sha512-0JV5+SOCQkIdzjBK9buARcV804Ddu7A0Qet6sHi3FimE9ne6m4BGQZfRn+NZiXbBk4F4XmHfDZIipLj9pX8dSA==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dependencies": { - "binary-extensions": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-boolean-object": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.1.tgz", - "integrity": "sha512-bXdQWkECBUIAcCkeH1unwJLIpZYaa5VvuygSyS/c2lf719mTKZDU5UdDRlpd01UjADgmW8RfqaP+mRaVPdr/Ng==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-buffer": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz", - "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "engines": { - "node": ">=4" - } - }, - "node_modules/is-callable": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.3.tgz", - "integrity": "sha512-J1DcMe8UYTBSrKezuIUTUwjXsho29693unXM2YhJUTR2txK/eG47bvNa/wipPFmZFgr/N6f1GA66dv0mEyTIyQ==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dependencies": { - "kind-of": "^6.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-date-object": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz", - "integrity": "sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==", - "dev": true, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dependencies": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dependencies": { - "is-plain-object": "^2.0.4" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-fn": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fn/-/is-fn-1.0.0.tgz", - "integrity": "sha1-lUPV3nvPWwiiLsiiC65uKG1RDYw=", - "engines": { - "node": ">=0.10.0" - } - }, - "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": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "engines": { - "node": ">=4" - } - }, - "node_modules/is-function": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-function/-/is-function-1.0.2.tgz", - "integrity": "sha512-lw7DUp0aWXYg+CBCN+JKkcE0Q2RayZnSvnZBlwgxHBQhqt5pZNVy4Ri7H9GmmXkdu7LUthszM+Tor1u/2iBcpQ==" - }, - "node_modules/is-generator-function": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.9.tgz", - "integrity": "sha512-ZJ34p1uvIfptHCN7sFTjGibB9/oBg17sHqzDLfuwhvmN/qLVvIQXRQ8licZQ35WJ8KuEQt/etnnzQFI9C9Ue/A==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-glob": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", - "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", - "dependencies": { - "is-extglob": "^2.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-hex-prefixed": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-hex-prefixed/-/is-hex-prefixed-1.0.0.tgz", - "integrity": "sha1-fY035q135dEnFIkTxXPggtd39VQ=", - "engines": { - "node": ">=6.5.0", - "npm": ">=3" - } - }, - "node_modules/is-lower-case": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/is-lower-case/-/is-lower-case-1.1.3.tgz", - "integrity": "sha512-+5A1e/WJpLLXZEDlgz4G//WYSHyQBD32qa4Jd3Lw06qQlv3fJHnp3YIHjTQSGzHMgzmVKz2ZP3rBxTHkPw/lxA==", - "dev": true, - "dependencies": { - "lower-case": "^1.1.0" - } - }, - "node_modules/is-natural-number": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/is-natural-number/-/is-natural-number-4.0.1.tgz", - "integrity": "sha1-q5124dtM7VHjXeDHLr7PCfc0zeg=", - "dev": true - }, - "node_modules/is-negative-zero": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.1.tgz", - "integrity": "sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/is-number-object": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.5.tgz", - "integrity": "sha512-RU0lI/n95pMoUKu9v1BZP5MBcZuNSVJkMkAG2dJqC4z2GlkGUNeH68SuHuBKBD/XFe+LHZ+f9BKkLET60Niedw==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-obj": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", - "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-object": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-object/-/is-object-1.0.1.tgz", - "integrity": "sha1-iVJojF7C/9awPsyF52ngKQMINHA=", - "dev": true - }, - "node_modules/is-plain-obj": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", - "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "dependencies": { - "isobject": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-regex": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.3.tgz", - "integrity": "sha512-qSVXFz28HM7y+IWX6vLCsexdlvzT1PJNFSBuaQLQ5o0IEw8UDYW6/2+eCMVyIsbM8CNLX2a/QWmSpyxYEHY7CQ==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "has-symbols": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-retry-allowed": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.2.0.tgz", - "integrity": "sha512-RUbUeKwvm3XG2VYamhJL1xFktgjvPzL0Hq8C+6yrWIswDy3BIXGqCxhxkc30N9jqK311gVU137K8Ei55/zVJRg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-stream": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-string": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.5.tgz", - "integrity": "sha512-buY6VNRjhQMiF1qWDouloZlQbRhDPCebwxSjxMjxgemYT46YMd2NR0/H+fBhEfWX4A/w9TBJ+ol+okqJKFE6vQ==", - "dev": true, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/is-symbol": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz", - "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==", - "dev": true, - "dependencies": { - "has-symbols": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/is-typed-array": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.5.tgz", - "integrity": "sha512-S+GRDgJlR3PyEbsX/Fobd9cqpZBuvUS+8asRqYDMLCb2qMzt1oz5m5oxQCxOgUDxiWsOVNi4yaF+/uvdlHlYug==", - "dev": true, - "dependencies": { - "available-typed-arrays": "^1.0.2", - "call-bind": "^1.0.2", - "es-abstract": "^1.18.0-next.2", - "foreach": "^2.0.5", - "has-symbols": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" - }, - "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==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-upper-case": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/is-upper-case/-/is-upper-case-1.1.2.tgz", - "integrity": "sha512-GQYSJMgfeAmVwh9ixyk888l7OIhNAGKtY6QA+IrWlu9MDTCaXmeozOZ2S9Knj7bQwBO/H6J2kb+pbyTUiMNbsw==", - "dev": true, - "dependencies": { - "upper-case": "^1.1.0" - } - }, - "node_modules/is-url": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/is-url/-/is-url-1.2.4.tgz", - "integrity": "sha512-ITvGim8FhRiYe4IQ5uHSkj7pVaPDrCTkNd3yq3cV7iZAcJdHTUMPMEHcqSOy9xZ9qFenQCvi+2wjH9a1nXqHww==", - "dev": true - }, - "node_modules/is-windows": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", - "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-wsl": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", - "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=", - "engines": { - "node": ">=4" - } - }, - "node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" - }, - "node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" - }, - "node_modules/isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/isomorphic-fetch": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz", - "integrity": "sha1-YRrhrPFPXoH3KVB0coGf6XM1WKk=", - "dev": true, - "dependencies": { - "node-fetch": "^1.0.1", - "whatwg-fetch": ">=0.10.0" - } - }, - "node_modules/isomorphic-ws": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/isomorphic-ws/-/isomorphic-ws-4.0.1.tgz", - "integrity": "sha512-BhBvN2MBpWTaSHdWRb/bwdZJ1WaehQ2L1KngkCkfLUGF0mAWAT1sQUQacEmQ0jXkFw/czDXPNQSL5u2/Krsz1w==", - "dev": true, - "optional": true, - "peerDependencies": { - "ws": "*" - } - }, - "node_modules/isstream": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" - }, - "node_modules/isurl": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isurl/-/isurl-1.0.0.tgz", - "integrity": "sha512-1P/yWsxPlDtn7QeRD+ULKQPaIaN6yF368GZ2vDfv0AL0NwpStafjWCDDdn0k8wgFMWpVAqG7oJhxHnlud42i9w==", - "dev": true, - "dependencies": { - "has-to-string-tag-x": "^1.2.0", - "is-object": "^1.0.1" - }, - "engines": { - "node": ">= 4" - } - }, - "node_modules/it-each": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/it-each/-/it-each-0.4.0.tgz", - "integrity": "sha512-fbOxSUiOByQnkgoFUEKPfzAuoUZ0mQRAXdWWsfI53gMJZ2oyhPcJBOCFx8yuMM36yP6OUUL3LgilYEqBiSACmQ==", - "dependencies": { - "dot-notes": "3.1.1" - } - }, - "node_modules/iterable-ndjson": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/iterable-ndjson/-/iterable-ndjson-1.1.0.tgz", - "integrity": "sha512-OOp1Lb0o3k5MkXHx1YaIY5Z0ELosZfTnBaas9f8opJVcZGBIONA2zY/6CYE+LKkqrSDooIneZbrBGgOZnHPkrg==", - "dependencies": { - "string_decoder": "^1.2.0" - } - }, - "node_modules/iterable-ndjson/node_modules/string_decoder": { - "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" - } - }, - "node_modules/js-sha3": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.5.7.tgz", - "integrity": "sha1-DU/9gALVMzqrr0oj7tL2N0yfKOc=" - }, - "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==" - }, - "node_modules/js-yaml": { - "version": "3.13.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz", - "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==", - "dev": true, - "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=" - }, - "node_modules/jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", - "bin": { - "jsesc": "bin/jsesc" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/json-buffer": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", - "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=", - "dev": true - }, - "node_modules/json-parse-better-errors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", - "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==" - }, - "node_modules/json-pointer": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/json-pointer/-/json-pointer-0.6.2.tgz", - "integrity": "sha512-vLWcKbOaXlO+jvRy4qNd+TI1QUPZzfJj1tpJ3vAXDych5XJf93ftpUKe5pKCrzyIIwgBJcOcCVRUfqQP25afBw==", - "dev": true, - "dependencies": { - "foreach": "^2.0.4" - } - }, - "node_modules/json-rpc-engine": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/json-rpc-engine/-/json-rpc-engine-5.4.0.tgz", - "integrity": "sha512-rAffKbPoNDjuRnXkecTjnsE3xLLrb00rEkdgalINhaYVYIxDwWtvYBr9UFbhTvPB1B2qUOLoFd/cV6f4Q7mh7g==", - "dependencies": { - "eth-rpc-errors": "^3.0.0", - "safe-event-emitter": "^1.0.1" - } - }, - "node_modules/json-rpc-random-id": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-rpc-random-id/-/json-rpc-random-id-1.0.1.tgz", - "integrity": "sha1-uknZat7RRE27jaPSA3SKy7zeyMg=" - }, - "node_modules/json-schema": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", - "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=" - }, - "node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" - }, - "node_modules/json-schema-typed": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/json-schema-typed/-/json-schema-typed-7.0.3.tgz", - "integrity": "sha512-7DE8mpG+/fVw+dTpjbxnx47TaMnDfOI1jwft9g1VybltZCduyRQPJPvc+zzKY9WPHxhPWczyFuYa6I8Mw4iU5A==", - "dev": true, - "optional": true - }, - "node_modules/json-stable-stringify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz", - "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=", - "dependencies": { - "jsonify": "~0.0.0" - } - }, - "node_modules/json-stable-stringify-without-jsonify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", - "dev": true - }, - "node_modules/json-stringify-safe": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" - }, - "node_modules/json-text-sequence": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/json-text-sequence/-/json-text-sequence-0.1.1.tgz", - "integrity": "sha1-py8hfcSvxGKf/1/rME3BvVGi89I=", - "dev": true, - "dependencies": { - "delimit-stream": "0.1.0" - } - }, - "node_modules/json5": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz", - "integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==", - "peer": true, - "dependencies": { - "minimist": "^1.2.5" - }, - "bin": { - "json5": "lib/cli.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", - "dependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/jsonify": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", - "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=" - }, - "node_modules/jsprim": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", - "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", - "engines": [ - "node >=0.6.0" - ], - "dependencies": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.2.3", - "verror": "1.10.0" - } - }, - "node_modules/keccak": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/keccak/-/keccak-3.0.3.tgz", - "integrity": "sha512-JZrLIAJWuZxKbCilMpNz5Vj7Vtb4scDG3dMXLOsbzBmQGyjwE61BbW7bJkfKKCShXiQZt3T6sBgALRtmd+nZaQ==", - "hasInstallScript": true, - "dependencies": { - "node-addon-api": "^2.0.0", - "node-gyp-build": "^4.2.0", - "readable-stream": "^3.6.0" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/keccak/node_modules/readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/keyv": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz", - "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==", - "dev": true, - "dependencies": { - "json-buffer": "3.0.0" - } - }, - "node_modules/kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/klaw": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/klaw/-/klaw-1.3.1.tgz", - "integrity": "sha1-QIhDO0azsbolnXh4XY6W9zugJDk=", - "dev": true, - "dependencies": { - "graceful-fs": "^4.1.9" - } - }, - "node_modules/level": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/level/-/level-6.0.1.tgz", - "integrity": "sha512-psRSqJZCsC/irNhfHzrVZbmPYXDcEYhA5TVNwr+V92jF44rbf86hqGp8fiT702FyiArScYIlPSBTDUASCVNSpw==", - "dev": true, - "optional": true, - "dependencies": { - "level-js": "^5.0.0", - "level-packager": "^5.1.0", - "leveldown": "^5.4.0" - }, - "engines": { - "node": ">=8.6.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/level" - } - }, - "node_modules/level-codec": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/level-codec/-/level-codec-7.0.1.tgz", - "integrity": "sha512-Ua/R9B9r3RasXdRmOtd+t9TCOEIIlts+TN/7XTT2unhDaL6sJn83S3rUyljbr6lVtw49N3/yA0HHjpV6Kzb2aQ==" - }, - "node_modules/level-concat-iterator": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/level-concat-iterator/-/level-concat-iterator-3.1.0.tgz", - "integrity": "sha512-BWRCMHBxbIqPxJ8vHOvKUsaO0v1sLYZtjN3K2iZJsRBYtp+ONsY6Jfi6hy9K3+zolgQRryhIn2NRZjZnWJ9NmQ==", - "dev": true, - "optional": true, - "dependencies": { - "catering": "^2.1.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/level-errors": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/level-errors/-/level-errors-1.0.5.tgz", - "integrity": "sha512-/cLUpQduF6bNrWuAC4pwtUKA5t669pCsCi2XbmojG2tFeOr9j6ShtdDCtFFQO1DRt+EVZhx9gPzP9G2bUaG4ig==", - "dependencies": { - "errno": "~0.1.1" - } - }, - "node_modules/level-iterator-stream": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/level-iterator-stream/-/level-iterator-stream-1.3.1.tgz", - "integrity": "sha1-5Dt4sagUPm+pek9IXrjqUwNS8u0=", - "dependencies": { - "inherits": "^2.0.1", - "level-errors": "^1.0.3", - "readable-stream": "^1.0.33", - "xtend": "^4.0.0" - } - }, - "node_modules/level-iterator-stream/node_modules/isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" - }, - "node_modules/level-iterator-stream/node_modules/readable-stream": { - "version": "1.1.14", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", - "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" - } - }, - "node_modules/level-iterator-stream/node_modules/string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" - }, - "node_modules/level-js": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/level-js/-/level-js-5.0.2.tgz", - "integrity": "sha512-SnBIDo2pdO5VXh02ZmtAyPP6/+6YTJg2ibLtl9C34pWvmtMEmRTWpra+qO/hifkUtBTOtfx6S9vLDjBsBK4gRg==", - "dev": true, - "optional": true, - "dependencies": { - "abstract-leveldown": "~6.2.3", - "buffer": "^5.5.0", - "inherits": "^2.0.3", - "ltgt": "^2.1.2" - } - }, - "node_modules/level-js/node_modules/abstract-leveldown": { - "version": "6.2.3", - "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-6.2.3.tgz", - "integrity": "sha512-BsLm5vFMRUrrLeCcRc+G0t2qOaTzpoJQLOubq2XM72eNpjF5UdU5o/5NvlNhx95XHcAvcl8OMXr4mlg/fRgUXQ==", - "dev": true, - "optional": true, - "dependencies": { - "buffer": "^5.5.0", - "immediate": "^3.2.3", - "level-concat-iterator": "~2.0.0", - "level-supports": "~1.0.0", - "xtend": "~4.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/level-js/node_modules/level-concat-iterator": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/level-concat-iterator/-/level-concat-iterator-2.0.1.tgz", - "integrity": "sha512-OTKKOqeav2QWcERMJR7IS9CUo1sHnke2C0gkSmcR7QuEtFNLLzHQAvnMw8ykvEcv0Qtkg0p7FOwP1v9e5Smdcw==", - "dev": true, - "optional": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/level-js/node_modules/level-supports": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/level-supports/-/level-supports-1.0.1.tgz", - "integrity": "sha512-rXM7GYnW8gsl1vedTJIbzOrRv85c/2uCMpiiCzO2fndd06U/kUXEEU9evYn4zFggBOg36IsBW8LzqIpETwwQzg==", - "dev": true, - "optional": true, - "dependencies": { - "xtend": "^4.0.2" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/level-packager": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/level-packager/-/level-packager-5.1.1.tgz", - "integrity": "sha512-HMwMaQPlTC1IlcwT3+swhqf/NUO+ZhXVz6TY1zZIIZlIR0YSn8GtAAWmIvKjNY16ZkEg/JcpAuQskxsXqC0yOQ==", - "dev": true, - "optional": true, - "dependencies": { - "encoding-down": "^6.3.0", - "levelup": "^4.3.2" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/level-packager/node_modules/abstract-leveldown": { - "version": "6.2.3", - "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-6.2.3.tgz", - "integrity": "sha512-BsLm5vFMRUrrLeCcRc+G0t2qOaTzpoJQLOubq2XM72eNpjF5UdU5o/5NvlNhx95XHcAvcl8OMXr4mlg/fRgUXQ==", - "dev": true, - "optional": true, - "dependencies": { - "buffer": "^5.5.0", - "immediate": "^3.2.3", - "level-concat-iterator": "~2.0.0", - "level-supports": "~1.0.0", - "xtend": "~4.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/level-packager/node_modules/deferred-leveldown": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/deferred-leveldown/-/deferred-leveldown-5.3.0.tgz", - "integrity": "sha512-a59VOT+oDy7vtAbLRCZwWgxu2BaCfd5Hk7wxJd48ei7I+nsg8Orlb9CLG0PMZienk9BSUKgeAqkO2+Lw+1+Ukw==", - "dev": true, - "optional": true, - "dependencies": { - "abstract-leveldown": "~6.2.1", - "inherits": "^2.0.3" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/level-packager/node_modules/level-concat-iterator": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/level-concat-iterator/-/level-concat-iterator-2.0.1.tgz", - "integrity": "sha512-OTKKOqeav2QWcERMJR7IS9CUo1sHnke2C0gkSmcR7QuEtFNLLzHQAvnMw8ykvEcv0Qtkg0p7FOwP1v9e5Smdcw==", - "dev": true, - "optional": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/level-packager/node_modules/level-errors": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/level-errors/-/level-errors-2.0.1.tgz", - "integrity": "sha512-UVprBJXite4gPS+3VznfgDSU8PTRuVX0NXwoWW50KLxd2yw4Y1t2JUR5In1itQnudZqRMT9DlAM3Q//9NCjCFw==", - "dev": true, - "optional": true, - "dependencies": { - "errno": "~0.1.1" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/level-packager/node_modules/level-iterator-stream": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/level-iterator-stream/-/level-iterator-stream-4.0.2.tgz", - "integrity": "sha512-ZSthfEqzGSOMWoUGhTXdX9jv26d32XJuHz/5YnuHZzH6wldfWMOVwI9TBtKcya4BKTyTt3XVA0A3cF3q5CY30Q==", - "dev": true, - "optional": true, - "dependencies": { - "inherits": "^2.0.4", - "readable-stream": "^3.4.0", - "xtend": "^4.0.2" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/level-packager/node_modules/level-supports": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/level-supports/-/level-supports-1.0.1.tgz", - "integrity": "sha512-rXM7GYnW8gsl1vedTJIbzOrRv85c/2uCMpiiCzO2fndd06U/kUXEEU9evYn4zFggBOg36IsBW8LzqIpETwwQzg==", - "dev": true, - "optional": true, - "dependencies": { - "xtend": "^4.0.2" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/level-packager/node_modules/levelup": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/levelup/-/levelup-4.4.0.tgz", - "integrity": "sha512-94++VFO3qN95cM/d6eBXvd894oJE0w3cInq9USsyQzzoJxmiYzPAocNcuGCPGGjoXqDVJcr3C1jzt1TSjyaiLQ==", - "dev": true, - "optional": true, - "dependencies": { - "deferred-leveldown": "~5.3.0", - "level-errors": "~2.0.0", - "level-iterator-stream": "~4.0.0", - "level-supports": "~1.0.0", - "xtend": "~4.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/level-packager/node_modules/readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "dev": true, - "optional": true, - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/level-supports": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/level-supports/-/level-supports-2.1.0.tgz", - "integrity": "sha512-E486g1NCjW5cF78KGPrMDRBYzPuueMZ6VBXHT6gC7A8UYWGiM14fGgp+s/L1oFfDWSPV/+SFkYCmZ0SiESkRKA==", - "dev": true, - "optional": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/level-write-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/level-write-stream/-/level-write-stream-1.0.0.tgz", - "integrity": "sha512-bBNKOEOMl8msO+uIM9YX/gUO6ckokZ/4pCwTm/lwvs46x6Xs8Zy0sn3Vh37eDqse4mhy4fOMIb/JsSM2nyQFtw==", - "dev": true, - "optional": true, - "dependencies": { - "end-stream": "~0.1.0" - } - }, - "node_modules/level-ws": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/level-ws/-/level-ws-0.0.0.tgz", - "integrity": "sha1-Ny5RIXeSSgBCSwtDrvK7QkltIos=", - "dependencies": { - "readable-stream": "~1.0.15", - "xtend": "~2.1.1" - } - }, - "node_modules/level-ws/node_modules/isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" - }, - "node_modules/level-ws/node_modules/object-keys": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-0.4.0.tgz", - "integrity": "sha1-KKaq50KN0sOpLz2V8hM13SBOAzY=" - }, - "node_modules/level-ws/node_modules/readable-stream": { - "version": "1.0.34", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", - "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" - } - }, - "node_modules/level-ws/node_modules/string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" - }, - "node_modules/level-ws/node_modules/xtend": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-2.1.2.tgz", - "integrity": "sha1-bv7MKk2tjmlixJAbM3znuoe10os=", - "dependencies": { - "object-keys": "~0.4.0" - }, - "engines": { - "node": ">=0.4" - } - }, - "node_modules/leveldown": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/leveldown/-/leveldown-5.6.0.tgz", - "integrity": "sha512-iB8O/7Db9lPaITU1aA2txU/cBEXAt4vWwKQRrrWuS6XDgbP4QZGj9BL2aNbwb002atoQ/lIotJkfyzz+ygQnUQ==", - "dev": true, - "hasInstallScript": true, - "optional": true, - "dependencies": { - "abstract-leveldown": "~6.2.1", - "napi-macros": "~2.0.0", - "node-gyp-build": "~4.1.0" - }, - "engines": { - "node": ">=8.6.0" - } - }, - "node_modules/leveldown/node_modules/abstract-leveldown": { - "version": "6.2.3", - "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-6.2.3.tgz", - "integrity": "sha512-BsLm5vFMRUrrLeCcRc+G0t2qOaTzpoJQLOubq2XM72eNpjF5UdU5o/5NvlNhx95XHcAvcl8OMXr4mlg/fRgUXQ==", - "dev": true, - "optional": true, - "dependencies": { - "buffer": "^5.5.0", - "immediate": "^3.2.3", - "level-concat-iterator": "~2.0.0", - "level-supports": "~1.0.0", - "xtend": "~4.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/leveldown/node_modules/level-concat-iterator": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/level-concat-iterator/-/level-concat-iterator-2.0.1.tgz", - "integrity": "sha512-OTKKOqeav2QWcERMJR7IS9CUo1sHnke2C0gkSmcR7QuEtFNLLzHQAvnMw8ykvEcv0Qtkg0p7FOwP1v9e5Smdcw==", - "dev": true, - "optional": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/leveldown/node_modules/level-supports": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/level-supports/-/level-supports-1.0.1.tgz", - "integrity": "sha512-rXM7GYnW8gsl1vedTJIbzOrRv85c/2uCMpiiCzO2fndd06U/kUXEEU9evYn4zFggBOg36IsBW8LzqIpETwwQzg==", - "dev": true, - "optional": true, - "dependencies": { - "xtend": "^4.0.2" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/leveldown/node_modules/node-gyp-build": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.1.1.tgz", - "integrity": "sha512-dSq1xmcPDKPZ2EED2S6zw/b9NKsqzXRE6dVr8TVQnI3FJOTteUMuqF3Qqs6LZg+mLGYJWqQzMbIjMtJqTv87nQ==", - "dev": true, - "optional": true, - "bin": { - "node-gyp-build": "bin.js", - "node-gyp-build-optional": "optional.js", - "node-gyp-build-test": "build-test.js" - } - }, - "node_modules/levelup": { - "version": "1.3.9", - "resolved": "https://registry.npmjs.org/levelup/-/levelup-1.3.9.tgz", - "integrity": "sha512-VVGHfKIlmw8w1XqpGOAGwq6sZm2WwWLmlDcULkKWQXEA5EopA8OBNJ2Ck2v6bdk8HeEZSbCSEgzXadyQFm76sQ==", - "dependencies": { - "deferred-leveldown": "~1.2.1", - "level-codec": "~7.0.0", - "level-errors": "~1.0.3", - "level-iterator-stream": "~1.3.0", - "prr": "~1.0.1", - "semver": "~5.4.1", - "xtend": "~4.0.0" - } - }, - "node_modules/levelup/node_modules/semver": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.4.1.tgz", - "integrity": "sha512-WfG/X9+oATh81XtllIo/I8gOiY9EXRdv1cQdyykeXK17YcUW3EXUAi2To4pcH6nZtJPr7ZOpM5OMyWJZm+8Rsg==", - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/levn": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", - "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", - "dev": true, - "dependencies": { - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/loader-utils": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", - "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", - "dependencies": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^1.0.1" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/loader-utils/node_modules/json5": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", - "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", - "dependencies": { - "minimist": "^1.2.0" - }, - "bin": { - "json5": "lib/cli.js" - } - }, - "node_modules/locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", - "dev": true, - "dependencies": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/lockfile": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/lockfile/-/lockfile-1.0.4.tgz", - "integrity": "sha512-cvbTwETRfsFh4nHsL1eGWapU1XFi5Ot9E85sWAwia7Y7EgB7vfqcZhTKZ+l7hCGxSPoushMv5GKhT5PdLv03WA==", - "dev": true, - "dependencies": { - "signal-exit": "^3.0.2" - } - }, - "node_modules/lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" - }, - "node_modules/lodash-es": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz", - "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==", - "dev": true - }, - "node_modules/lodash.camelcase": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", - "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY=" - }, - "node_modules/lodash.debounce": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", - "integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168=" - }, - "node_modules/lodash.flatmap": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.flatmap/-/lodash.flatmap-4.5.0.tgz", - "integrity": "sha1-74y/QI9uSCaGYzRTBcaswLd4cC4=" - }, - "node_modules/lodash.sortby": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", - "integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=", - "dev": true, - "optional": true - }, - "node_modules/log-symbols": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.0.0.tgz", - "integrity": "sha512-FN8JBzLx6CzeMrB0tg6pqlGU1wCrXW+ZXGH481kfsBqer0hToTIiHdjH4Mq8xJUbvATujKCvaREGWpGUionraA==", - "dependencies": { - "chalk": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/log-symbols/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/log-symbols/node_modules/chalk": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/log-symbols/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/log-symbols/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "node_modules/log-symbols/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/log-symbols/node_modules/supports-color": { - "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" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/loglevel": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.8.1.tgz", - "integrity": "sha512-tCRIJM51SHjAayKwC+QAg8hT8vg6z7GSgLJKGvzuPb1Wc+hLzqtuVLxp6/HzSPOozuK+8ErAhy7U/sVzw8Dgfg==", - "dev": true, - "optional": true, - "engines": { - "node": ">= 0.6.0" - }, - "funding": { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/loglevel" - } - }, - "node_modules/long": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz", - "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==", - "dev": true - }, - "node_modules/loose-envify": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", - "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", - "dev": true, - "dependencies": { - "js-tokens": "^3.0.0 || ^4.0.0" - }, - "bin": { - "loose-envify": "cli.js" - } - }, - "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, - "dependencies": { - "get-func-name": "^2.0.0" - } - }, - "node_modules/lower-case": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz", - "integrity": "sha512-2Fgx1Ycm599x+WGpIYwJOvsjmXFzTSc34IwDWALRA/8AopUKAVPwfJ+h5+f85BCp0PWmmJcWzEpxOpoXycMpdA==", - "dev": true - }, - "node_modules/lower-case-first": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/lower-case-first/-/lower-case-first-1.0.2.tgz", - "integrity": "sha512-UuxaYakO7XeONbKrZf5FEgkantPf5DUqDayzP5VXZrtRPdH86s4kN47I8B3TW10S4QKiE3ziHNf3kRN//okHjA==", - "dev": true, - "dependencies": { - "lower-case": "^1.1.2" - } - }, - "node_modules/lowercase-keys": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", - "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "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==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/lru-cache/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, - "node_modules/ltgt": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ltgt/-/ltgt-2.2.1.tgz", - "integrity": "sha1-81ypHEk/e3PaDgdJUwTxezH4fuU=" - }, - "node_modules/make-dir": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", - "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", - "dev": true, - "dependencies": { - "pify": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/make-dir/node_modules/pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "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/map-cache": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", - "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/map-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", - "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", - "dependencies": { - "object-visit": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/md5.js": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", - "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", - "dependencies": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "node_modules/media-typer": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/memdown": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/memdown/-/memdown-1.4.1.tgz", - "integrity": "sha1-tOThkhdGZP+65BNhqlAPMRnv4hU=", - "dependencies": { - "abstract-leveldown": "~2.7.1", - "functional-red-black-tree": "^1.0.1", - "immediate": "^3.2.3", - "inherits": "~2.0.1", - "ltgt": "~2.2.0", - "safe-buffer": "~5.1.1" - } - }, - "node_modules/memdown/node_modules/abstract-leveldown": { - "version": "2.7.2", - "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-2.7.2.tgz", - "integrity": "sha512-+OVvxH2rHVEhWLdbudP6p0+dNMXu8JA1CbhP19T8paTYAcX7oJ4OVjT+ZUVpv7mITxXHqDMej+GdqXBmXkw09w==", - "dependencies": { - "xtend": "~4.0.0" - } - }, - "node_modules/memdown/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, - "node_modules/memory-fs": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz", - "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=", - "dependencies": { - "errno": "^0.1.3", - "readable-stream": "^2.0.1" - } - }, - "node_modules/memorystream": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/memorystream/-/memorystream-0.3.1.tgz", - "integrity": "sha1-htcJCzDORV1j+64S3aUaR93K+bI=", - "dev": true, - "engines": { - "node": ">= 0.10.0" - } - }, - "node_modules/merge-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=", - "dev": true - }, - "node_modules/merkle-patricia-tree": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/merkle-patricia-tree/-/merkle-patricia-tree-2.3.2.tgz", - "integrity": "sha512-81PW5m8oz/pz3GvsAwbauj7Y00rqm81Tzad77tHBwU7pIAtN+TJnMSOJhxBKflSVYhptMMb9RskhqHqrSm1V+g==", - "dependencies": { - "async": "^1.4.2", - "ethereumjs-util": "^5.0.0", - "level-ws": "0.0.0", - "levelup": "^1.2.1", - "memdown": "^1.0.0", - "readable-stream": "^2.0.0", - "rlp": "^2.0.0", - "semaphore": ">=1.0.1" - } - }, - "node_modules/merkle-patricia-tree/node_modules/async": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", - "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=" - }, - "node_modules/merkle-patricia-tree/node_modules/ethereumjs-util": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", - "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", - "dependencies": { - "bn.js": "^4.11.0", - "create-hash": "^1.1.2", - "elliptic": "^6.5.2", - "ethereum-cryptography": "^0.1.3", - "ethjs-util": "^0.1.3", - "rlp": "^2.0.0", - "safe-buffer": "^5.1.1" - } - }, - "node_modules/methods": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "dependencies": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/micromatch/node_modules/braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "dependencies": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/micromatch/node_modules/braces/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/micromatch/node_modules/fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "dependencies": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/micromatch/node_modules/fill-range/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/micromatch/node_modules/is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" - }, - "node_modules/micromatch/node_modules/is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/micromatch/node_modules/is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/micromatch/node_modules/is-number/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/micromatch/node_modules/to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", - "dependencies": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/miller-rabin": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", - "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", - "dependencies": { - "bn.js": "^4.0.0", - "brorand": "^1.0.1" - }, - "bin": { - "miller-rabin": "bin/miller-rabin" - } - }, - "node_modules/mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", - "dev": true, - "bin": { - "mime": "cli.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/mime-db": { - "version": "1.44.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.44.0.tgz", - "integrity": "sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mime-types": { - "version": "2.1.27", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.27.tgz", - "integrity": "sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w==", - "dependencies": { - "mime-db": "1.44.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/mimic-response": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", - "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", - "engines": { - "node": ">=4" - } - }, - "node_modules/min-document": { - "version": "2.19.0", - "resolved": "https://registry.npmjs.org/min-document/-/min-document-2.19.0.tgz", - "integrity": "sha1-e9KC4/WELtKVu3SM3Z8f+iyCRoU=", - "dependencies": { - "dom-walk": "^0.1.0" - } - }, - "node_modules/minimalistic-assert": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", - "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==" - }, - "node_modules/minimalistic-crypto-utils": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", - "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=" - }, - "node_modules/minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/minimist": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", - "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==" - }, - "node_modules/minipass": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz", - "integrity": "sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==", - "dev": true, - "dependencies": { - "safe-buffer": "^5.1.2", - "yallist": "^3.0.0" - } - }, - "node_modules/minizlib": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.3.3.tgz", - "integrity": "sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==", - "dev": true, - "dependencies": { - "minipass": "^2.9.0" - } - }, - "node_modules/mississippi": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-3.0.0.tgz", - "integrity": "sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA==", - "dependencies": { - "concat-stream": "^1.5.0", - "duplexify": "^3.4.2", - "end-of-stream": "^1.1.0", - "flush-write-stream": "^1.0.0", - "from2": "^2.1.0", - "parallel-transform": "^1.1.0", - "pump": "^3.0.0", - "pumpify": "^1.3.3", - "stream-each": "^1.1.0", - "through2": "^2.0.0" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/mississippi/node_modules/through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", - "dependencies": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" - } - }, - "node_modules/mixin-deep": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", - "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", - "dependencies": { - "for-in": "^1.0.2", - "is-extendable": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "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/mkdirp-promise": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/mkdirp-promise/-/mkdirp-promise-5.0.1.tgz", - "integrity": "sha1-6bj2jlUsaKnBcTuEiD96HdA5uKE=", - "dev": true, - "dependencies": { - "mkdirp": "*" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/mocha": { - "version": "8.4.0", - "resolved": "https://registry.npmjs.org/mocha/-/mocha-8.4.0.tgz", - "integrity": "sha512-hJaO0mwDXmZS4ghXsvPVriOhsxQ7ofcpQdm8dE+jISUOKopitvnXFQmpRR7jd2K6VBG6E26gU3IAbXXGIbu4sQ==", - "dev": true, - "dependencies": { - "@ungap/promise-all-settled": "1.1.2", - "ansi-colors": "4.1.1", - "browser-stdout": "1.3.1", - "chokidar": "3.5.1", - "debug": "4.3.1", - "diff": "5.0.0", - "escape-string-regexp": "4.0.0", - "find-up": "5.0.0", - "glob": "7.1.6", - "growl": "1.10.5", - "he": "1.2.0", - "js-yaml": "4.0.0", - "log-symbols": "4.0.0", - "minimatch": "3.0.4", - "ms": "2.1.3", - "nanoid": "3.1.20", - "serialize-javascript": "5.0.1", - "strip-json-comments": "3.1.1", - "supports-color": "8.1.1", - "which": "2.0.2", - "wide-align": "1.1.3", - "workerpool": "6.1.0", - "yargs": "16.2.0", - "yargs-parser": "20.2.4", - "yargs-unparser": "2.0.0" - }, - "bin": { - "_mocha": "bin/_mocha", - "mocha": "bin/mocha" - }, - "engines": { - "node": ">= 10.12.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/mochajs" - } - }, - "node_modules/mocha/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/mocha/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "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==", - "dev": true - }, - "node_modules/mocha/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==", - "dev": true, - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" - } - }, - "node_modules/mocha/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/mocha/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/mocha/node_modules/debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", - "dev": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/mocha/node_modules/debug/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "node_modules/mocha/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==", - "dev": true, - "engines": { - "node": ">=0.3.1" - } - }, - "node_modules/mocha/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==", - "dev": true - }, - "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==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "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==", - "dev": true, - "dependencies": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/mocha/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/mocha/node_modules/is-fullwidth-code-point": { - "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==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/mocha/node_modules/js-yaml": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.0.0.tgz", - "integrity": "sha512-pqon0s+4ScYUvX30wxQi3PogGFAlUyH0awepWvwkj4jD4v+ova3RiYw8bmA6x2rDrEaj8i/oWKoRxpVNW+Re8Q==", - "dev": true, - "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==", - "dev": true, - "dependencies": { - "p-locate": "^5.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "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==", - "dev": true - }, - "node_modules/mocha/node_modules/p-limit": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.0.2.tgz", - "integrity": "sha512-iwqZSOoWIW+Ew4kAGUlN16J4M7OB3ysMLSZtnhmqx7njIHFPlxWBX8xo3lVTyFVq6mI/lL9qt2IsN1sHwaxJkg==", - "dev": true, - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "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==", - "dev": true, - "dependencies": { - "p-limit": "^3.0.2" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/mocha/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/mocha/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==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/mocha/node_modules/serialize-javascript": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-5.0.1.tgz", - "integrity": "sha512-SaaNal9imEO737H2c05Og0/8LUXG7EnsZyMa8MzkmuHoELfT6txuj0cMqRj6zfPKnmQ1yasR4PCJc8x+M4JSPA==", - "dev": true, - "dependencies": { - "randombytes": "^2.1.0" - } - }, - "node_modules/mocha/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/mocha/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "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==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" - } - }, - "node_modules/mocha/node_modules/workerpool": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.1.0.tgz", - "integrity": "sha512-toV7q9rWNYha963Pl/qyeZ6wG+3nnsyvolaNUS8+R5Wtw6qJPTxIlOP1ZSvcGhEJw+l3HMMmtiNo9Gl61G4GVg==", - "dev": true - }, - "node_modules/mocha/node_modules/wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/mocha/node_modules/y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/mocha/node_modules/yargs": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", - "dev": true, - "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/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==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/mock-fs": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/mock-fs/-/mock-fs-4.12.0.tgz", - "integrity": "sha512-/P/HtrlvBxY4o/PzXY9cCNBrdylDNxg7gnrv2sMNxj+UJ2m8jSpl0/A6fuJeNAWr99ZvGWH8XCbE0vmnM5KupQ==", - "dev": true - }, - "node_modules/move-concurrently": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz", - "integrity": "sha1-viwAX9oy4LKa8fBdfEszIUxwH5I=", - "dependencies": { - "aproba": "^1.1.1", - "copy-concurrently": "^1.0.0", - "fs-write-stream-atomic": "^1.0.8", - "mkdirp": "^0.5.1", - "rimraf": "^2.5.4", - "run-queue": "^1.0.3" - } - }, - "node_modules/move-concurrently/node_modules/mkdirp": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", - "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", - "dependencies": { - "minimist": "^1.2.6" - }, - "bin": { - "mkdirp": "bin/cmd.js" - } - }, - "node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "node_modules/multibase": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/multibase/-/multibase-0.6.1.tgz", - "integrity": "sha512-pFfAwyTjbbQgNc3G7D48JkJxWtoJoBMaR4xQUOuB8RnCgRqaYmWNFeJTTvrJ2w51bjLq2zTby6Rqj9TQ9elSUw==", - "dependencies": { - "base-x": "^3.0.8", - "buffer": "^5.5.0" - } - }, - "node_modules/multicodec": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/multicodec/-/multicodec-0.5.7.tgz", - "integrity": "sha512-PscoRxm3f+88fAtELwUnZxGDkduE2HD9Q6GHUOywQLjOGT/HAdhjLDYNZ1e7VR0s0TP0EwZ16LNUTFpoBGivOA==", - "dev": true, - "dependencies": { - "varint": "^5.0.0" - } - }, - "node_modules/multiformats": { - "version": "9.6.4", - "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-9.6.4.tgz", - "integrity": "sha512-fCCB6XMrr6CqJiHNjfFNGT0v//dxOBMrOMqUIzpPc/mmITweLEyhvMpY9bF+jZ9z3vaMAau5E8B68DW77QMXkg==" - }, - "node_modules/multihashes": { - "version": "0.4.21", - "resolved": "https://registry.npmjs.org/multihashes/-/multihashes-0.4.21.tgz", - "integrity": "sha512-uVSvmeCWf36pU2nB4/1kzYZjsXD9vofZKpgudqkceYY5g2aZZXJ5r9lxuzoRLl1OAp28XljXsEJ/X/85ZsKmKw==", - "dependencies": { - "buffer": "^5.5.0", - "multibase": "^0.7.0", - "varint": "^5.0.0" - } - }, - "node_modules/multihashes/node_modules/multibase": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/multibase/-/multibase-0.7.0.tgz", - "integrity": "sha512-TW8q03O0f6PNFTQDvh3xxH03c8CjGaaYrjkl9UQPG6rz53TQzzxJVCIWVjzcbN/Q5Y53Zd0IBQBMVktVgNx4Fg==", - "dependencies": { - "base-x": "^3.0.8", - "buffer": "^5.5.0" - } - }, - "node_modules/mute-stream": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", - "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=", - "dev": true - }, - "node_modules/nan": { - "version": "2.14.2", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.2.tgz", - "integrity": "sha512-M2ufzIiINKCuDfBSAUr1vWQ+vuVcA9kqx8JJUsbQi6yf1uGRyb7HfpdfUr5qLXf3B/t8dPvcjhKMmlfnP47EzQ==" - }, - "node_modules/nano-json-stream-parser": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/nano-json-stream-parser/-/nano-json-stream-parser-0.1.2.tgz", - "integrity": "sha1-DMj20OK2IrR5xA1JnEbWS3Vcb18=", - "dev": true - }, - "node_modules/nanoid": { - "version": "3.1.20", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.20.tgz", - "integrity": "sha512-a1cQNyczgKbLX9jwbS/+d7W8fX/RfgYR7lVWwWOGIPNgK2m0MWvrGF6/m4kk6U3QcFMnZf3RIhL0v2Jgh/0Uxw==", - "bin": { - "nanoid": "bin/nanoid.cjs" - }, - "engines": { - "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" - } - }, - "node_modules/nanomatch": { - "version": "1.2.13", - "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", - "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", - "dependencies": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "fragment-cache": "^0.2.1", - "is-windows": "^1.0.2", - "kind-of": "^6.0.2", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/napi-macros": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/napi-macros/-/napi-macros-2.0.0.tgz", - "integrity": "sha512-A0xLykHtARfueITVDernsAWdtIMbOJgKgcluwENp3AlsKN/PloyO10HtmoqnFAQAcxPkgZN7wdfPfEd0zNGxbg==", - "dev": true, - "optional": true - }, - "node_modules/natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", - "dev": true - }, - "node_modules/negotiator": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", - "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/neo-async": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", - "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==" - }, - "node_modules/next-tick": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz", - "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw=" - }, - "node_modules/nice-try": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", - "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==" - }, - "node_modules/no-case": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/no-case/-/no-case-2.3.2.tgz", - "integrity": "sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ==", - "dev": true, - "dependencies": { - "lower-case": "^1.1.1" - } - }, - "node_modules/node-abort-controller": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/node-abort-controller/-/node-abort-controller-3.1.1.tgz", - "integrity": "sha512-AGK2yQKIjRuqnc6VkX2Xj5d+QW8xZ87pa1UK6yA6ouUyuxfHuMP6umE5QK7UmTeOAymo+Zx1Fxiuw9rVx8taHQ==", - "dev": true, - "optional": true - }, - "node_modules/node-addon-api": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-2.0.2.tgz", - "integrity": "sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA==" - }, - "node_modules/node-fetch": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-1.7.3.tgz", - "integrity": "sha512-NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ==", - "dependencies": { - "encoding": "^0.1.11", - "is-stream": "^1.0.1" - } - }, - "node_modules/node-gyp-build": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.6.0.tgz", - "integrity": "sha512-NTZVKn9IylLwUzaKjkas1e4u2DLNcV4rdYagA4PWdPwW87Bi7z+BznyKSRwS/761tV/lzCGXplWsiaMjLqP2zQ==", - "bin": { - "node-gyp-build": "bin.js", - "node-gyp-build-optional": "optional.js", - "node-gyp-build-test": "build-test.js" - } - }, - "node_modules/node-interval-tree": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/node-interval-tree/-/node-interval-tree-1.3.3.tgz", - "integrity": "sha512-K9vk96HdTK5fEipJwxSvIIqwTqr4e3HRJeJrNxBSeVMNSC/JWARRaX7etOLOuTmrRMeOI/K5TCJu3aWIwZiNTw==", - "dev": true, - "dependencies": { - "shallowequal": "^1.0.2" - }, - "engines": { - "node": ">= 7.6.0" - } - }, - "node_modules/node-libs-browser": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.1.tgz", - "integrity": "sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q==", - "dependencies": { - "assert": "^1.1.1", - "browserify-zlib": "^0.2.0", - "buffer": "^4.3.0", - "console-browserify": "^1.1.0", - "constants-browserify": "^1.0.0", - "crypto-browserify": "^3.11.0", - "domain-browser": "^1.1.1", - "events": "^3.0.0", - "https-browserify": "^1.0.0", - "os-browserify": "^0.3.0", - "path-browserify": "0.0.1", - "process": "^0.11.10", - "punycode": "^1.2.4", - "querystring-es3": "^0.2.0", - "readable-stream": "^2.3.3", - "stream-browserify": "^2.0.1", - "stream-http": "^2.7.2", - "string_decoder": "^1.0.0", - "timers-browserify": "^2.0.4", - "tty-browserify": "0.0.0", - "url": "^0.11.0", - "util": "^0.11.0", - "vm-browserify": "^1.0.1" - } - }, - "node_modules/node-libs-browser/node_modules/buffer": { - "version": "4.9.2", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz", - "integrity": "sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==", - "dependencies": { - "base64-js": "^1.0.2", - "ieee754": "^1.1.4", - "isarray": "^1.0.0" - } - }, - "node_modules/node-libs-browser/node_modules/inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" - }, - "node_modules/node-libs-browser/node_modules/process": { - "version": "0.11.10", - "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", - "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=", - "engines": { - "node": ">= 0.6.0" - } - }, - "node_modules/node-libs-browser/node_modules/punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=" - }, - "node_modules/node-libs-browser/node_modules/stream-browserify": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz", - "integrity": "sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==", - "dependencies": { - "inherits": "~2.0.1", - "readable-stream": "^2.0.2" - } - }, - "node_modules/node-libs-browser/node_modules/stream-http": { - "version": "2.8.3", - "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz", - "integrity": "sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==", - "dependencies": { - "builtin-status-codes": "^3.0.0", - "inherits": "^2.0.1", - "readable-stream": "^2.3.6", - "to-arraybuffer": "^1.0.0", - "xtend": "^4.0.0" - } - }, - "node_modules/node-libs-browser/node_modules/util": { - "version": "0.11.1", - "resolved": "https://registry.npmjs.org/util/-/util-0.11.1.tgz", - "integrity": "sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ==", - "dependencies": { - "inherits": "2.0.3" - } - }, - "node_modules/node-releases": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.1.tgz", - "integrity": "sha512-CqyzN6z7Q6aMeF/ktcMVTzhAHCEpf8SOarwpzpf8pNBY2k5/oM34UHldUwp8VKI7uxct2HxSRdJjBaZeESzcxA==" - }, - "node_modules/nofilter": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/nofilter/-/nofilter-1.0.4.tgz", - "integrity": "sha512-N8lidFp+fCz+TD51+haYdbDGrcBWwuHX40F5+z0qkUjMJ5Tp+rdSuAkMJ9N9eoolDlEVTf6u5icM+cNKkKW2mA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/normalize-url": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.0.tgz", - "integrity": "sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/npm-programmatic": { - "version": "0.0.12", - "resolved": "https://registry.npmjs.org/npm-programmatic/-/npm-programmatic-0.0.12.tgz", - "integrity": "sha512-fvZdiJS038ZH31z59cEiIywOcgX1u23aLc0wAKF4btyhbYQxE93wTQjzs/URERK+GhS/QghDILQmEvgxu77/zQ==", - "dev": true, - "dependencies": { - "bluebird": "^3.4.1" - } - }, - "node_modules/nth-check": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz", - "integrity": "sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==", - "dev": true, - "dependencies": { - "boolbase": "~1.0.0" - } - }, - "node_modules/number-to-bn": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/number-to-bn/-/number-to-bn-1.7.0.tgz", - "integrity": "sha1-uzYjWS9+X54AMLGXe9QaDFP+HqA=", - "dependencies": { - "bn.js": "4.11.6", - "strip-hex-prefix": "1.0.0" - }, - "engines": { - "node": ">=6.5.0", - "npm": ">=3" - } - }, - "node_modules/number-to-bn/node_modules/bn.js": { - "version": "4.11.6", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz", - "integrity": "sha1-UzRK2xRhehP26N0s4okF0cC6MhU=" - }, - "node_modules/oauth-sign": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", - "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-copy": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", - "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", - "dependencies": { - "copy-descriptor": "^0.1.0", - "define-property": "^0.2.5", - "kind-of": "^3.0.3" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-copy/node_modules/define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dependencies": { - "is-descriptor": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-copy/node_modules/is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-copy/node_modules/is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" - }, - "node_modules/object-copy/node_modules/is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-copy/node_modules/is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dependencies": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-copy/node_modules/is-descriptor/node_modules/kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-copy/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-inspect": { - "version": "1.10.3", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.10.3.tgz", - "integrity": "sha512-e5mCJlSH7poANfC8z8S9s9S2IN5/4Zb3aZ33f5s8YqoazCFzNLloLU8r5VCG+G7WoqLvAAZoVMcy3tp/3X0Plw==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "dev": true, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/object-visit": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", - "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", - "dependencies": { - "isobject": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object.pick": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", - "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", - "dependencies": { - "isobject": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/oboe": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/oboe/-/oboe-2.1.4.tgz", - "integrity": "sha1-IMiM2wwVNxuwQRklfU/dNLCqSfY=", - "dev": true, - "dependencies": { - "http-https": "^1.0.0" - } - }, - "node_modules/on-finished": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", - "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", - "dev": true, - "dependencies": { - "ee-first": "1.1.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "dev": true, - "dependencies": { - "mimic-fn": "^2.1.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/optionator": { - "version": "0.8.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", - "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", - "dev": true, - "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" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/original-require": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/original-require/-/original-require-1.0.1.tgz", - "integrity": "sha1-DxMEcVhM0zURxew4yNWSE/msXiA=", - "dev": true - }, - "node_modules/os-browserify": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", - "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=" - }, - "node_modules/os-tmpdir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/p-cancelable": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz", - "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/p-finally": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", - "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", - "dev": true, - "dependencies": { - "p-try": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", - "dev": true, - "dependencies": { - "p-limit": "^1.1.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/p-timeout": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-1.2.1.tgz", - "integrity": "sha1-XrOzU7f86Z8QGhA4iAuwVOu+o4Y=", - "dev": true, - "dependencies": { - "p-finally": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/pako": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", - "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==" - }, - "node_modules/parallel-transform": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.2.0.tgz", - "integrity": "sha512-P2vSmIu38uIlvdcU7fDkyrxj33gTUy/ABO5ZUbGowxNCopBq/OoD42bP4UmMrJoPyk4Uqf0mu3mtWBhHCZD8yg==", - "dependencies": { - "cyclist": "^1.0.1", - "inherits": "^2.0.3", - "readable-stream": "^2.1.5" - } - }, - "node_modules/param-case": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/param-case/-/param-case-2.1.1.tgz", - "integrity": "sha512-eQE845L6ot89sk2N8liD8HAuH4ca6Vvr7VWAWwt7+kvvG5aBcPmmphQ68JsEG2qa9n1TykS2DLeMt363AAH8/w==", - "dev": true, - "dependencies": { - "no-case": "^2.2.0" - } - }, - "node_modules/parent-module": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", - "dev": true, - "dependencies": { - "callsites": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/parse-asn1": { - "version": "5.1.5", - "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.5.tgz", - "integrity": "sha512-jkMYn1dcJqF6d5CpU689bq7w/b5ALS9ROVSpQDPrZsqqesUJii9qutvoT5ltGedNXMO2e16YUWIghG9KxaViTQ==", - "dependencies": { - "asn1.js": "^4.0.0", - "browserify-aes": "^1.0.0", - "create-hash": "^1.1.0", - "evp_bytestokey": "^1.0.0", - "pbkdf2": "^3.0.3", - "safe-buffer": "^5.1.1" - } - }, - "node_modules/parse-headers": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/parse-headers/-/parse-headers-2.0.3.tgz", - "integrity": "sha512-QhhZ+DCCit2Coi2vmAKbq5RGTRcQUOE2+REgv8vdyu7MnYx2eZztegqtTx99TZ86GTIwqiy3+4nQTWZ2tgmdCA==" - }, - "node_modules/parse-passwd": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz", - "integrity": "sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/parse5": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-3.0.3.tgz", - "integrity": "sha512-rgO9Zg5LLLkfJF9E6CCmXlSE4UVceloys8JrFqCcHloC3usd/kJCyPDwH2SOlzix2j3xaP9sUX3e8+kvkuleAA==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/parseurl": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/pascal-case": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-2.0.1.tgz", - "integrity": "sha512-qjS4s8rBOJa2Xm0jmxXiyh1+OFf6ekCWOvUaRgAQSktzlTbMotS0nmG9gyYAybCWBcuP4fsBeRCKNwGBnMe2OQ==", - "dev": true, - "dependencies": { - "camel-case": "^3.0.0", - "upper-case-first": "^1.1.0" - } - }, - "node_modules/pascalcase": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", - "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/path-browserify": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.1.tgz", - "integrity": "sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==" - }, - "node_modules/path-case": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/path-case/-/path-case-2.1.1.tgz", - "integrity": "sha512-Ou0N05MioItesaLr9q8TtHVWmJ6fxWdqKB2RohFmNWVyJ+2zeKIeDNWAN6B/Pe7wpzWChhZX6nONYmOnMeJQ/Q==", - "dev": true, - "dependencies": { - "no-case": "^2.2.0" - } - }, - "node_modules/path-dirname": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", - "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=", - "optional": true - }, - "node_modules/path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "engines": { - "node": ">=4" - } - }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/path-key": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", - "engines": { - "node": ">=4" - } - }, - "node_modules/path-parse": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", - "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==" - }, - "node_modules/path-to-regexp": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", - "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=", - "dev": true - }, - "node_modules/pathval": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz", - "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==", - "engines": { - "node": "*" - } - }, - "node_modules/pbkdf2": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.1.tgz", - "integrity": "sha512-4Ejy1OPxi9f2tt1rRV7Go7zmfDQ+ZectEQz3VGUQhgq62HtIRPDyG/JtnwIxs6x3uNMwo2V7q1fMvKjb+Tnpqg==", - "dependencies": { - "create-hash": "^1.1.2", - "create-hmac": "^1.1.4", - "ripemd160": "^2.0.1", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" - }, - "engines": { - "node": ">=0.12" - } - }, - "node_modules/pend": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", - "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=", - "dev": true - }, - "node_modules/performance-now": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" - }, - "node_modules/picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" - }, - "node_modules/picomatch": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.3.tgz", - "integrity": "sha512-KpELjfwcCDUb9PeigTs2mBJzXUPzAuP2oPcA989He8Rte0+YUAjw1JVedDhuTKPkHjSYzMN3npC9luThGYEKdg==", - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/pinkie": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", - "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/pinkie-promise": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", - "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", - "dev": true, - "dependencies": { - "pinkie": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/pkg-dir": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", - "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", - "dependencies": { - "find-up": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/pkg-up": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-3.1.0.tgz", - "integrity": "sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==", - "dev": true, - "optional": true, - "dependencies": { - "find-up": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/pluralize": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-8.0.0.tgz", - "integrity": "sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==", - "dev": true, - "optional": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/posix-character-classes": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", - "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/pouchdb": { - "version": "7.3.0", - "resolved": "https://registry.npmjs.org/pouchdb/-/pouchdb-7.3.0.tgz", - "integrity": "sha512-OwsIQGXsfx3TrU1pLruj6PGSwFH+h5k4hGNxFkZ76Um7/ZI8F5TzUHFrpldVVIhfXYi2vP31q0q7ot1FSLFYOw==", - "dev": true, - "optional": true, - "dependencies": { - "abort-controller": "3.0.0", - "argsarray": "0.0.1", - "buffer-from": "1.1.2", - "clone-buffer": "1.0.0", - "double-ended-queue": "2.1.0-0", - "fetch-cookie": "0.11.0", - "immediate": "3.3.0", - "inherits": "2.0.4", - "level": "6.0.1", - "level-codec": "9.0.2", - "level-write-stream": "1.0.0", - "leveldown": "5.6.0", - "levelup": "4.4.0", - "ltgt": "2.2.1", - "node-fetch": "2.6.7", - "readable-stream": "1.1.14", - "spark-md5": "3.0.2", - "through2": "3.0.2", - "uuid": "8.3.2", - "vuvuzela": "1.0.3" - } - }, - "node_modules/pouchdb-abstract-mapreduce": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/pouchdb-abstract-mapreduce/-/pouchdb-abstract-mapreduce-7.3.1.tgz", - "integrity": "sha512-0zKXVFBvrfc1KnN0ggrB762JDmZnUpePHywo9Bq3Jy+L1FnoG7fXM5luFfvv5/T0gEw+ZTIwoocZECMnESBI9w==", - "dev": true, - "optional": true, - "dependencies": { - "pouchdb-binary-utils": "7.3.1", - "pouchdb-collate": "7.3.1", - "pouchdb-collections": "7.3.1", - "pouchdb-errors": "7.3.1", - "pouchdb-fetch": "7.3.1", - "pouchdb-mapreduce-utils": "7.3.1", - "pouchdb-md5": "7.3.1", - "pouchdb-utils": "7.3.1" - } - }, - "node_modules/pouchdb-adapter-leveldb-core": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/pouchdb-adapter-leveldb-core/-/pouchdb-adapter-leveldb-core-7.3.1.tgz", - "integrity": "sha512-mxShHlqLMPz2gChrgtA9okV1ogFmQrRAoM/O4EN0CrQWPLXqYtpL1f7sI2asIvFe7SmpnvbLx7kkZyFmLTfwjA==", - "dev": true, - "optional": true, - "dependencies": { - "argsarray": "0.0.1", - "buffer-from": "1.1.2", - "double-ended-queue": "2.1.0-0", - "levelup": "4.4.0", - "pouchdb-adapter-utils": "7.3.1", - "pouchdb-binary-utils": "7.3.1", - "pouchdb-collections": "7.3.1", - "pouchdb-errors": "7.3.1", - "pouchdb-json": "7.3.1", - "pouchdb-md5": "7.3.1", - "pouchdb-merge": "7.3.1", - "pouchdb-utils": "7.3.1", - "sublevel-pouchdb": "7.3.1", - "through2": "3.0.2" - } - }, - "node_modules/pouchdb-adapter-leveldb-core/node_modules/abstract-leveldown": { - "version": "6.2.3", - "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-6.2.3.tgz", - "integrity": "sha512-BsLm5vFMRUrrLeCcRc+G0t2qOaTzpoJQLOubq2XM72eNpjF5UdU5o/5NvlNhx95XHcAvcl8OMXr4mlg/fRgUXQ==", - "dev": true, - "optional": true, - "dependencies": { - "buffer": "^5.5.0", - "immediate": "^3.2.3", - "level-concat-iterator": "~2.0.0", - "level-supports": "~1.0.0", - "xtend": "~4.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/pouchdb-adapter-leveldb-core/node_modules/deferred-leveldown": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/deferred-leveldown/-/deferred-leveldown-5.3.0.tgz", - "integrity": "sha512-a59VOT+oDy7vtAbLRCZwWgxu2BaCfd5Hk7wxJd48ei7I+nsg8Orlb9CLG0PMZienk9BSUKgeAqkO2+Lw+1+Ukw==", - "dev": true, - "optional": true, - "dependencies": { - "abstract-leveldown": "~6.2.1", - "inherits": "^2.0.3" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/pouchdb-adapter-leveldb-core/node_modules/level-concat-iterator": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/level-concat-iterator/-/level-concat-iterator-2.0.1.tgz", - "integrity": "sha512-OTKKOqeav2QWcERMJR7IS9CUo1sHnke2C0gkSmcR7QuEtFNLLzHQAvnMw8ykvEcv0Qtkg0p7FOwP1v9e5Smdcw==", - "dev": true, - "optional": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/pouchdb-adapter-leveldb-core/node_modules/level-errors": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/level-errors/-/level-errors-2.0.1.tgz", - "integrity": "sha512-UVprBJXite4gPS+3VznfgDSU8PTRuVX0NXwoWW50KLxd2yw4Y1t2JUR5In1itQnudZqRMT9DlAM3Q//9NCjCFw==", - "dev": true, - "optional": true, - "dependencies": { - "errno": "~0.1.1" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/pouchdb-adapter-leveldb-core/node_modules/level-iterator-stream": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/level-iterator-stream/-/level-iterator-stream-4.0.2.tgz", - "integrity": "sha512-ZSthfEqzGSOMWoUGhTXdX9jv26d32XJuHz/5YnuHZzH6wldfWMOVwI9TBtKcya4BKTyTt3XVA0A3cF3q5CY30Q==", - "dev": true, - "optional": true, - "dependencies": { - "inherits": "^2.0.4", - "readable-stream": "^3.4.0", - "xtend": "^4.0.2" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/pouchdb-adapter-leveldb-core/node_modules/level-supports": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/level-supports/-/level-supports-1.0.1.tgz", - "integrity": "sha512-rXM7GYnW8gsl1vedTJIbzOrRv85c/2uCMpiiCzO2fndd06U/kUXEEU9evYn4zFggBOg36IsBW8LzqIpETwwQzg==", - "dev": true, - "optional": true, - "dependencies": { - "xtend": "^4.0.2" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/pouchdb-adapter-leveldb-core/node_modules/levelup": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/levelup/-/levelup-4.4.0.tgz", - "integrity": "sha512-94++VFO3qN95cM/d6eBXvd894oJE0w3cInq9USsyQzzoJxmiYzPAocNcuGCPGGjoXqDVJcr3C1jzt1TSjyaiLQ==", - "dev": true, - "optional": true, - "dependencies": { - "deferred-leveldown": "~5.3.0", - "level-errors": "~2.0.0", - "level-iterator-stream": "~4.0.0", - "level-supports": "~1.0.0", - "xtend": "~4.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/pouchdb-adapter-leveldb-core/node_modules/readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "dev": true, - "optional": true, - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/pouchdb-adapter-memory": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/pouchdb-adapter-memory/-/pouchdb-adapter-memory-7.3.1.tgz", - "integrity": "sha512-iHdWGJAHONqQv0we3Oi1MYen69ZS8McLW9wUyaAYcWTJnAIIAr2ZM0/TeTDVSHfMUwYqEYk7X8jRtJZEMwLnwg==", - "dev": true, - "optional": true, - "dependencies": { - "memdown": "1.4.1", - "pouchdb-adapter-leveldb-core": "7.3.1", - "pouchdb-utils": "7.3.1" - } - }, - "node_modules/pouchdb-adapter-utils": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/pouchdb-adapter-utils/-/pouchdb-adapter-utils-7.3.1.tgz", - "integrity": "sha512-uKLG6dClwTs/sLIJ4WkLAi9wlnDBpOnfyhpeAgOjlOGN/XLz5nKHrA4UJRnURDyc+uv79S9r/Unc4hVpmbSPUw==", - "dev": true, - "optional": true, - "dependencies": { - "pouchdb-binary-utils": "7.3.1", - "pouchdb-collections": "7.3.1", - "pouchdb-errors": "7.3.1", - "pouchdb-md5": "7.3.1", - "pouchdb-merge": "7.3.1", - "pouchdb-utils": "7.3.1" - } - }, - "node_modules/pouchdb-binary-utils": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/pouchdb-binary-utils/-/pouchdb-binary-utils-7.3.1.tgz", - "integrity": "sha512-crZJNfAEOnUoRk977Qtmk4cxEv6sNKllQ6vDDKgQrQLFjMUXma35EHzNyIJr1s76J77Q4sqKQAmxz9Y40yHGtw==", - "dev": true, - "optional": true, - "dependencies": { - "buffer-from": "1.1.2" - } - }, - "node_modules/pouchdb-collate": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/pouchdb-collate/-/pouchdb-collate-7.3.1.tgz", - "integrity": "sha512-o4gyGqDMLMSNzf6EDTr3eHaH/JRMoqRhdc+eV+oA8u00nTBtr9wD+jypVe2LbgKLJ4NWqx2qVkXiTiQdUFtsLQ==", - "dev": true, - "optional": true - }, - "node_modules/pouchdb-collections": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/pouchdb-collections/-/pouchdb-collections-7.3.1.tgz", - "integrity": "sha512-yUyDqR+OJmtwgExOSJegpBJXDLAEC84TWnbAYycyh+DZoA51Yw0+XVQF5Vh8Ii90/Ut2xo88fmrmp0t6kqom8w==", - "dev": true, - "optional": true - }, - "node_modules/pouchdb-debug": { - "version": "7.2.1", - "resolved": "https://registry.npmjs.org/pouchdb-debug/-/pouchdb-debug-7.2.1.tgz", - "integrity": "sha512-eP3ht/AKavLF2RjTzBM6S9gaI2/apcW6xvaKRQhEdOfiANqerFuksFqHCal3aikVQuDO+cB/cw+a4RyJn/glBw==", - "dev": true, - "optional": true, - "dependencies": { - "debug": "3.1.0" - } - }, - "node_modules/pouchdb-errors": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/pouchdb-errors/-/pouchdb-errors-7.3.1.tgz", - "integrity": "sha512-Zktz4gnXEUcZcty8FmyvtYUYsHskoST05m6H5/E2gg/0mCfEXq/XeyyLkZHaZmqD0ZPS9yNmASB1VaFWEKEaDw==", - "dev": true, - "optional": true, - "dependencies": { - "inherits": "2.0.4" - } - }, - "node_modules/pouchdb-fetch": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/pouchdb-fetch/-/pouchdb-fetch-7.3.1.tgz", - "integrity": "sha512-205xAtvdHRPQ4fp1h9+RmT9oQabo9gafuPmWsS9aEl3ER54WbY8Vaj1JHZGbU4KtMTYvW7H5088zLS7Nrusuag==", - "dev": true, - "optional": true, - "dependencies": { - "abort-controller": "3.0.0", - "fetch-cookie": "0.11.0", - "node-fetch": "2.6.7" - } - }, - "node_modules/pouchdb-fetch/node_modules/node-fetch": { - "version": "2.6.7", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", - "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", - "dev": true, - "optional": true, - "dependencies": { - "whatwg-url": "^5.0.0" - }, - "engines": { - "node": "4.x || >=6.0.0" - }, - "peerDependencies": { - "encoding": "^0.1.0" - }, - "peerDependenciesMeta": { - "encoding": { - "optional": true - } - } - }, - "node_modules/pouchdb-find": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/pouchdb-find/-/pouchdb-find-7.3.1.tgz", - "integrity": "sha512-AeqUfAVY1c7IFaY36BRT0vIz9r4VTKq/YOWTmiqndOZUQ/pDGxyO2fNFal6NN3PyYww0JijlD377cPvhnrhJVA==", - "dev": true, - "optional": true, - "dependencies": { - "pouchdb-abstract-mapreduce": "7.3.1", - "pouchdb-collate": "7.3.1", - "pouchdb-errors": "7.3.1", - "pouchdb-fetch": "7.3.1", - "pouchdb-md5": "7.3.1", - "pouchdb-selector-core": "7.3.1", - "pouchdb-utils": "7.3.1" - } - }, - "node_modules/pouchdb-json": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/pouchdb-json/-/pouchdb-json-7.3.1.tgz", - "integrity": "sha512-AyOKsmc85/GtHjMZyEacqzja8qLVfycS1hh1oskR+Bm5PIITX52Fb8zyi0hEetV6VC0yuGbn0RqiLjJxQePeqQ==", - "dev": true, - "optional": true, - "dependencies": { - "vuvuzela": "1.0.3" - } - }, - "node_modules/pouchdb-mapreduce-utils": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/pouchdb-mapreduce-utils/-/pouchdb-mapreduce-utils-7.3.1.tgz", - "integrity": "sha512-oUMcq82+4pTGQ6dtrhgORHOVHZSr6w/5tFIUGlv7RABIDvJarL4snMawADjlpiEwPdiQ/ESG8Fqt8cxqvqsIgg==", - "dev": true, - "optional": true, - "dependencies": { - "argsarray": "0.0.1", - "inherits": "2.0.4", - "pouchdb-collections": "7.3.1", - "pouchdb-utils": "7.3.1" - } - }, - "node_modules/pouchdb-md5": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/pouchdb-md5/-/pouchdb-md5-7.3.1.tgz", - "integrity": "sha512-aDV8ui/mprnL3xmt0gT/81DFtTtJiKyn+OxIAbwKPMfz/rDFdPYvF0BmDC9QxMMzGfkV+JJUjU6at0PPs2mRLg==", - "dev": true, - "optional": true, - "dependencies": { - "pouchdb-binary-utils": "7.3.1", - "spark-md5": "3.0.2" - } - }, - "node_modules/pouchdb-merge": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/pouchdb-merge/-/pouchdb-merge-7.3.1.tgz", - "integrity": "sha512-FeK3r35mKimokf2PQ2tUI523QWyZ4lYZ0Yd75FfSch/SPY6wIokz5XBZZ6PHdu5aOJsEKzoLUxr8CpSg9DhcAw==", - "dev": true, - "optional": true - }, - "node_modules/pouchdb-selector-core": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/pouchdb-selector-core/-/pouchdb-selector-core-7.3.1.tgz", - "integrity": "sha512-HBX+nNGXcaL9z0uNpwSMRq2GNZd3EZXW+fe9rJHS0hvJohjZL7aRJLoaXfEdHPRTNW+CpjM3Rny60eGekQdI/w==", - "dev": true, - "optional": true, - "dependencies": { - "pouchdb-collate": "7.3.1", - "pouchdb-utils": "7.3.1" - } - }, - "node_modules/pouchdb-utils": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/pouchdb-utils/-/pouchdb-utils-7.3.1.tgz", - "integrity": "sha512-R3hHBo1zTdTu/NFs3iqkcaQAPwhIH0gMIdfVKd5lbDYlmP26rCG5pdS+v7NuoSSFLJ4xxnaGV+Gjf4duYsJ8wQ==", - "dev": true, - "optional": true, - "dependencies": { - "argsarray": "0.0.1", - "clone-buffer": "1.0.0", - "immediate": "3.3.0", - "inherits": "2.0.4", - "pouchdb-collections": "7.3.1", - "pouchdb-errors": "7.3.1", - "pouchdb-md5": "7.3.1", - "uuid": "8.3.2" - } - }, - "node_modules/pouchdb-utils/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, - "optional": true, - "bin": { - "uuid": "dist/bin/uuid" - } - }, - "node_modules/pouchdb/node_modules/abstract-leveldown": { - "version": "6.2.3", - "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-6.2.3.tgz", - "integrity": "sha512-BsLm5vFMRUrrLeCcRc+G0t2qOaTzpoJQLOubq2XM72eNpjF5UdU5o/5NvlNhx95XHcAvcl8OMXr4mlg/fRgUXQ==", - "dev": true, - "optional": true, - "dependencies": { - "buffer": "^5.5.0", - "immediate": "^3.2.3", - "level-concat-iterator": "~2.0.0", - "level-supports": "~1.0.0", - "xtend": "~4.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/pouchdb/node_modules/deferred-leveldown": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/deferred-leveldown/-/deferred-leveldown-5.3.0.tgz", - "integrity": "sha512-a59VOT+oDy7vtAbLRCZwWgxu2BaCfd5Hk7wxJd48ei7I+nsg8Orlb9CLG0PMZienk9BSUKgeAqkO2+Lw+1+Ukw==", - "dev": true, - "optional": true, - "dependencies": { - "abstract-leveldown": "~6.2.1", - "inherits": "^2.0.3" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/pouchdb/node_modules/isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==", - "dev": true, - "optional": true - }, - "node_modules/pouchdb/node_modules/level-codec": { - "version": "9.0.2", - "resolved": "https://registry.npmjs.org/level-codec/-/level-codec-9.0.2.tgz", - "integrity": "sha512-UyIwNb1lJBChJnGfjmO0OR+ezh2iVu1Kas3nvBS/BzGnx79dv6g7unpKIDNPMhfdTEGoc7mC8uAu51XEtX+FHQ==", - "dev": true, - "optional": true, - "dependencies": { - "buffer": "^5.6.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/pouchdb/node_modules/level-concat-iterator": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/level-concat-iterator/-/level-concat-iterator-2.0.1.tgz", - "integrity": "sha512-OTKKOqeav2QWcERMJR7IS9CUo1sHnke2C0gkSmcR7QuEtFNLLzHQAvnMw8ykvEcv0Qtkg0p7FOwP1v9e5Smdcw==", - "dev": true, - "optional": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/pouchdb/node_modules/level-errors": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/level-errors/-/level-errors-2.0.1.tgz", - "integrity": "sha512-UVprBJXite4gPS+3VznfgDSU8PTRuVX0NXwoWW50KLxd2yw4Y1t2JUR5In1itQnudZqRMT9DlAM3Q//9NCjCFw==", - "dev": true, - "optional": true, - "dependencies": { - "errno": "~0.1.1" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/pouchdb/node_modules/level-iterator-stream": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/level-iterator-stream/-/level-iterator-stream-4.0.2.tgz", - "integrity": "sha512-ZSthfEqzGSOMWoUGhTXdX9jv26d32XJuHz/5YnuHZzH6wldfWMOVwI9TBtKcya4BKTyTt3XVA0A3cF3q5CY30Q==", - "dev": true, - "optional": true, - "dependencies": { - "inherits": "^2.0.4", - "readable-stream": "^3.4.0", - "xtend": "^4.0.2" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/pouchdb/node_modules/level-iterator-stream/node_modules/readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "dev": true, - "optional": true, - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/pouchdb/node_modules/level-supports": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/level-supports/-/level-supports-1.0.1.tgz", - "integrity": "sha512-rXM7GYnW8gsl1vedTJIbzOrRv85c/2uCMpiiCzO2fndd06U/kUXEEU9evYn4zFggBOg36IsBW8LzqIpETwwQzg==", - "dev": true, - "optional": true, - "dependencies": { - "xtend": "^4.0.2" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/pouchdb/node_modules/levelup": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/levelup/-/levelup-4.4.0.tgz", - "integrity": "sha512-94++VFO3qN95cM/d6eBXvd894oJE0w3cInq9USsyQzzoJxmiYzPAocNcuGCPGGjoXqDVJcr3C1jzt1TSjyaiLQ==", - "dev": true, - "optional": true, - "dependencies": { - "deferred-leveldown": "~5.3.0", - "level-errors": "~2.0.0", - "level-iterator-stream": "~4.0.0", - "level-supports": "~1.0.0", - "xtend": "~4.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/pouchdb/node_modules/node-fetch": { - "version": "2.6.7", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", - "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", - "dev": true, - "optional": true, - "dependencies": { - "whatwg-url": "^5.0.0" - }, - "engines": { - "node": "4.x || >=6.0.0" - }, - "peerDependencies": { - "encoding": "^0.1.0" - }, - "peerDependenciesMeta": { - "encoding": { - "optional": true - } - } - }, - "node_modules/pouchdb/node_modules/readable-stream": { - "version": "1.1.14", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", - "integrity": "sha512-+MeVjFf4L44XUkhM1eYbD8fyEsxcV81pqMSR5gblfcLCHfZvbrqy4/qYHE+/R5HoBUT11WV5O08Cr1n3YXkWVQ==", - "dev": true, - "optional": true, - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" - } - }, - "node_modules/pouchdb/node_modules/readable-stream/node_modules/string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==", - "dev": true, - "optional": true - }, - "node_modules/pouchdb/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, - "optional": true, - "bin": { - "uuid": "dist/bin/uuid" - } - }, - "node_modules/precond": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/precond/-/precond-0.2.3.tgz", - "integrity": "sha1-qpWRvKokkj8eD0hJ0kD0fvwQdaw=", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/prelude-ls": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", - "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", - "dev": true, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/prepend-http": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", - "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/prettier": { - "version": "1.19.1", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-1.19.1.tgz", - "integrity": "sha512-s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew==", - "dev": true, - "bin": { - "prettier": "bin-prettier.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/printj": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/printj/-/printj-1.1.2.tgz", - "integrity": "sha512-zA2SmoLaxZyArQTOPj5LXecR+RagfPSU5Kw1qP+jkWeNlrq+eJZyY2oS68SU1Z/7/myXM4lo9716laOFAVStCQ==", - "dev": true, - "bin": { - "printj": "bin/printj.njs" - }, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/process": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/process/-/process-0.5.2.tgz", - "integrity": "sha1-FjjYqONML0QKkduVq5rrZ3/Bhc8=", - "engines": { - "node": ">= 0.6.0" - } - }, - "node_modules/process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" - }, - "node_modules/progress": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", - "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", - "dev": true, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/promise-inflight": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", - "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=" - }, - "node_modules/promise-polyfill": { - "version": "8.1.3", - "resolved": "https://registry.npmjs.org/promise-polyfill/-/promise-polyfill-8.1.3.tgz", - "integrity": "sha512-MG5r82wBzh7pSKDRa9y+vllNHz3e3d4CNj1PQE4BQYxLme0gKYYBm9YENq+UkEikyZ0XbiGWxYlVw3Rl9O/U8g==", - "dev": true - }, - "node_modules/promise-to-callback": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/promise-to-callback/-/promise-to-callback-1.0.0.tgz", - "integrity": "sha1-XSp0kBC/tn2WNZj805YHRqaP7vc=", - "dependencies": { - "is-fn": "^1.0.0", - "set-immediate-shim": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/protobufjs": { - "version": "6.11.2", - "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-6.11.2.tgz", - "integrity": "sha512-4BQJoPooKJl2G9j3XftkIXjoC9C0Av2NOrWmbLWT1vH32GcSUHjM0Arra6UfTsVyfMAuFzaLucXn1sadxJydAw==", - "dev": true, - "hasInstallScript": true, - "dependencies": { - "@protobufjs/aspromise": "^1.1.2", - "@protobufjs/base64": "^1.1.2", - "@protobufjs/codegen": "^2.0.4", - "@protobufjs/eventemitter": "^1.1.0", - "@protobufjs/fetch": "^1.1.0", - "@protobufjs/float": "^1.0.2", - "@protobufjs/inquire": "^1.1.0", - "@protobufjs/path": "^1.1.2", - "@protobufjs/pool": "^1.1.0", - "@protobufjs/utf8": "^1.1.0", - "@types/long": "^4.0.1", - "@types/node": ">=13.7.0", - "long": "^4.0.0" - }, - "bin": { - "pbjs": "bin/pbjs", - "pbts": "bin/pbts" - } - }, - "node_modules/proxy-addr": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.6.tgz", - "integrity": "sha512-dh/frvCBVmSsDYzw6n926jv974gddhkFPfiN8hPOi30Wax25QZyZEGveluCgliBnqmuM+UJmBErbAUFIoDbjOw==", - "dev": true, - "dependencies": { - "forwarded": "~0.1.2", - "ipaddr.js": "1.9.1" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/proxy-from-env": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", - "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", - "dev": true, - "optional": true - }, - "node_modules/prr": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", - "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=" - }, - "node_modules/psl": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", - "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==", - "dev": true - }, - "node_modules/public-encrypt": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", - "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", - "dependencies": { - "bn.js": "^4.1.0", - "browserify-rsa": "^4.0.0", - "create-hash": "^1.1.0", - "parse-asn1": "^5.0.0", - "randombytes": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "node_modules/pull-stream": { - "version": "3.6.14", - "resolved": "https://registry.npmjs.org/pull-stream/-/pull-stream-3.6.14.tgz", - "integrity": "sha512-KIqdvpqHHaTUA2mCYcLG1ibEbu/LCKoJZsBWyv9lSYtPkJPBq8m3Hxa103xHi6D2thj5YXa0TqK3L3GUkwgnew==" - }, - "node_modules/pull-stream-to-async-iterator": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/pull-stream-to-async-iterator/-/pull-stream-to-async-iterator-1.0.2.tgz", - "integrity": "sha512-c3KRs2EneuxP7b6pG9fvQTIjatf33RbIErhbQ75s5r2MI6E8R74NZC1nJgXc8kcmqiQxmr+TWY+WwK2mWaUnlA==", - "dependencies": { - "pull-stream": "^3.6.9" - } - }, - "node_modules/pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "dependencies": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "node_modules/pumpify": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz", - "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==", - "dependencies": { - "duplexify": "^3.6.0", - "inherits": "^2.0.3", - "pump": "^2.0.0" - } - }, - "node_modules/pumpify/node_modules/pump": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", - "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", - "dependencies": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "node_modules/punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", - "engines": { - "node": ">=6" - } - }, - "node_modules/pure-rand": { - "version": "5.0.5", - "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-5.0.5.tgz", - "integrity": "sha512-BwQpbqxSCBJVpamI6ydzcKqyFmnd5msMWUGvzXLm1aXvusbbgkbOto/EUPM00hjveJEaJtdbhUjKSzWRhQVkaw==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://github.com/sponsors/dubzzz" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/fast-check" - } - ] - }, - "node_modules/qs": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", - "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", - "engines": { - "node": ">=0.6" - } - }, - "node_modules/query-string": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/query-string/-/query-string-5.1.1.tgz", - "integrity": "sha512-gjWOsm2SoGlgLEdAGt7a6slVOk9mGiXmPFMqrEhLQ68rhQuBnpfs3+EmlvqKyxnCo9/PPlF+9MtY02S1aFg+Jw==", - "dependencies": { - "decode-uri-component": "^0.2.0", - "object-assign": "^4.1.0", - "strict-uri-encode": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/querystring": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.1.tgz", - "integrity": "sha512-wkvS7mL/JMugcup3/rMitHmd9ecIGd2lhFhK9N3UUQ450h66d1r3Y9nvXzQAW1Lq+wyx61k/1pfKS5KuKiyEbg==", - "engines": { - "node": ">=0.4.x" - } - }, - "node_modules/querystring-es3": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", - "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=", - "engines": { - "node": ">=0.4.x" - } - }, - "node_modules/queue-microtask": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "optional": true - }, - "node_modules/quick-lru": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", - "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "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/randomfill": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", - "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", - "dependencies": { - "randombytes": "^2.0.5", - "safe-buffer": "^5.1.0" - } - }, - "node_modules/randomhex": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/randomhex/-/randomhex-0.1.5.tgz", - "integrity": "sha1-us7vmCMpCRQA8qKRLGzQLxCU9YU=", - "dev": true - }, - "node_modules/range-parser": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", - "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/raw-body": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz", - "integrity": "sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==", - "dev": true, - "dependencies": { - "bytes": "3.1.0", - "http-errors": "1.7.2", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/readable-stream/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, - "node_modules/readdirp": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.5.0.tgz", - "integrity": "sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ==", - "dependencies": { - "picomatch": "^2.2.1" - }, - "engines": { - "node": ">=8.10.0" - } - }, - "node_modules/reduce-flatten": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/reduce-flatten/-/reduce-flatten-2.0.0.tgz", - "integrity": "sha512-EJ4UNY/U1t2P/2k6oqotuX2Cc3T6nxJwsM0N0asT7dhrtH1ltUxDn4NalSYmPE2rCkVpcf/X6R0wDwcFpzhd4w==", - "engines": { - "node": ">=6" - } - }, - "node_modules/redux": { - "version": "3.7.2", - "resolved": "https://registry.npmjs.org/redux/-/redux-3.7.2.tgz", - "integrity": "sha512-pNqnf9q1hI5HHZRBkj3bAngGZW/JMCmexDlOxw4XagXY2o1327nHH54LoTjiPJ0gizoqPDRqWyX/00g0hD6w+A==", - "dev": true, - "dependencies": { - "lodash": "^4.2.1", - "lodash-es": "^4.2.1", - "loose-envify": "^1.1.0", - "symbol-observable": "^1.0.3" - } - }, - "node_modules/redux-saga": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/redux-saga/-/redux-saga-1.0.0.tgz", - "integrity": "sha512-GvJWs/SzMvEQgeaw6sRMXnS2FghlvEGsHiEtTLpJqc/FHF3I5EE/B+Hq5lyHZ8LSoT2r/X/46uWvkdCnK9WgHA==", - "dev": true, - "dependencies": { - "@redux-saga/core": "^1.0.0" - } - }, - "node_modules/regenerator-runtime": { - "version": "0.13.11", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", - "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==" - }, - "node_modules/regex-not": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", - "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", - "dependencies": { - "extend-shallow": "^3.0.2", - "safe-regex": "^1.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/regexpp": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-2.0.1.tgz", - "integrity": "sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw==", - "dev": true, - "engines": { - "node": ">=6.5.0" - } - }, - "node_modules/remove-trailing-separator": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", - "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", - "optional": true - }, - "node_modules/repeat-element": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.4.tgz", - "integrity": "sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/repeat-string": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", - "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", - "engines": { - "node": ">=0.10" - } - }, - "node_modules/request": { - "version": "2.88.2", - "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", - "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", - "deprecated": "request has been deprecated, see https://github.com/request/request/issues/3142", - "dev": true, - "dependencies": { - "aws-sign2": "~0.7.0", - "aws4": "^1.8.0", - "caseless": "~0.12.0", - "combined-stream": "~1.0.6", - "extend": "~3.0.2", - "forever-agent": "~0.6.1", - "form-data": "~2.3.2", - "har-validator": "~5.1.3", - "http-signature": "~1.2.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.19", - "oauth-sign": "~0.9.0", - "performance-now": "^2.1.0", - "qs": "~6.5.2", - "safe-buffer": "^5.1.2", - "tough-cookie": "~2.5.0", - "tunnel-agent": "^0.6.0", - "uuid": "^3.3.2" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/require-from-string": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", - "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", - "dev": true, - "engines": { - "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/reselect": { - "version": "4.1.8", - "resolved": "https://registry.npmjs.org/reselect/-/reselect-4.1.8.tgz", - "integrity": "sha512-ab9EmR80F/zQTMNeneUr4cv+jSwPJgIlvEmVwLerwrWVbpLlBuls9XHzIeTFy4cegU2NHBp3va0LKOzU5qFEYQ==", - "dev": true - }, - "node_modules/reselect-tree": { - "version": "1.3.7", - "resolved": "https://registry.npmjs.org/reselect-tree/-/reselect-tree-1.3.7.tgz", - "integrity": "sha512-kZN+C1cVJ6fFN2smSb0l4UvYZlRzttgnu183svH4NrU22cBY++ikgr2QT75Uuk4MYpv5gXSVijw4c5U6cx6GKg==", - "dev": true, - "dependencies": { - "debug": "^3.1.0", - "json-pointer": "^0.6.1", - "reselect": "^4.0.0" - } - }, - "node_modules/resolve": { - "version": "1.17.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz", - "integrity": "sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==", - "dependencies": { - "path-parse": "^1.0.6" - } - }, - "node_modules/resolve-alpn": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz", - "integrity": "sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==", - "dev": true - }, - "node_modules/resolve-cwd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-2.0.0.tgz", - "integrity": "sha1-AKn3OHVW4nA46uIyyqNypqWbZlo=", - "dependencies": { - "resolve-from": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/resolve-cwd/node_modules/resolve-from": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", - "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", - "engines": { - "node": ">=4" - } - }, - "node_modules/resolve-dir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz", - "integrity": "sha1-eaQGRMNivoLybv/nOcm7U4IEb0M=", - "dependencies": { - "expand-tilde": "^2.0.0", - "global-modules": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/resolve-dir/node_modules/global-modules": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz", - "integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==", - "dependencies": { - "global-prefix": "^1.0.1", - "is-windows": "^1.0.1", - "resolve-dir": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/resolve-dir/node_modules/global-prefix": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz", - "integrity": "sha1-2/dDxsFJklk8ZVVoy2btMsASLr4=", - "dependencies": { - "expand-tilde": "^2.0.2", - "homedir-polyfill": "^1.0.1", - "ini": "^1.3.4", - "is-windows": "^1.0.1", - "which": "^1.2.14" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/resolve-dir/node_modules/which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "which": "bin/which" - } - }, - "node_modules/resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/resolve-url": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", - "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", - "deprecated": "https://github.com/lydell/resolve-url#deprecated" - }, - "node_modules/responselike": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", - "integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=", - "dev": true, - "dependencies": { - "lowercase-keys": "^1.0.0" - } - }, - "node_modules/restore-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", - "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", - "dev": true, - "dependencies": { - "onetime": "^5.1.0", - "signal-exit": "^3.0.2" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/ret": { - "version": "0.1.15", - "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", - "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", - "engines": { - "node": ">=0.12" - } - }, - "node_modules/retry": { - "version": "0.13.1", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz", - "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==", - "dev": true, - "optional": true, - "engines": { - "node": ">= 4" - } - }, - "node_modules/rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - } - }, - "node_modules/ripemd160": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", - "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", - "dependencies": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1" - } - }, - "node_modules/rlp": { - "version": "2.2.6", - "resolved": "https://registry.npmjs.org/rlp/-/rlp-2.2.6.tgz", - "integrity": "sha512-HAfAmL6SDYNWPUOJNrM500x4Thn4PZsEy5pijPh40U9WfNk0z15hUYzO9xVIMAdIHdFtD8CBDHd75Td1g36Mjg==", - "dependencies": { - "bn.js": "^4.11.1" - }, - "bin": { - "rlp": "bin/rlp" - } - }, - "node_modules/run-async": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", - "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==", - "dev": true, - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/run-queue": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz", - "integrity": "sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec=", - "dependencies": { - "aproba": "^1.1.1" - } - }, - "node_modules/rustbn.js": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/rustbn.js/-/rustbn.js-0.2.0.tgz", - "integrity": "sha512-4VlvkRUuCJvr2J6Y0ImW7NvTCriMi7ErOAqWk1y69vAdoNIzCF3yPmgeNzx+RQTLEDFq5sHfscn1MwHxP9hNfA==" - }, - "node_modules/rxjs": { - "version": "6.6.0", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.0.tgz", - "integrity": "sha512-3HMA8z/Oz61DUHe+SdOiQyzIf4tOx5oQHmMir7IZEu6TMqCLHT4LRcmNaUS0NwOz8VLvmmBduMsoaUvMaIiqzg==", - "dev": true, - "dependencies": { - "tslib": "^1.9.0" - }, - "engines": { - "npm": ">=2.0.0" - } - }, - "node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" - }, - "node_modules/safe-event-emitter": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/safe-event-emitter/-/safe-event-emitter-1.0.1.tgz", - "integrity": "sha512-e1wFe99A91XYYxoQbcq2ZJUWurxEyP8vfz7A7vuUe1s95q8r5ebraVaA1BukYJcpM6V16ugWoD9vngi8Ccu5fg==", - "deprecated": "Renamed to @metamask/safe-event-emitter", - "dependencies": { - "events": "^3.0.0" - } - }, - "node_modules/safe-regex": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", - "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", - "dependencies": { - "ret": "~0.1.10" - } - }, - "node_modules/safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" - }, - "node_modules/scrypt-js": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-2.0.4.tgz", - "integrity": "sha512-4KsaGcPnuhtCZQCxFxN3GVYIhKFPTdLd8PLC552XwbMndtD0cjRFAhDuuydXQ0h08ZfPgzqe6EKHozpuH74iDw==", - "dev": true - }, - "node_modules/scrypt-shim": { - "resolved": "git+ssh://git@github.com/web3-js/scrypt-shim.git#aafdadda13e660e25e1c525d1f5b2443f5eb1ebb", - "dev": true, - "hasInstallScript": true, - "dependencies": { - "scryptsy": "^2.1.0", - "semver": "^6.3.0" - } - }, - "node_modules/scrypt-shim/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/scryptsy": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/scryptsy/-/scryptsy-2.1.0.tgz", - "integrity": "sha512-1CdSqHQowJBnMAFyPEBRfqag/YP9OF394FV+4YREIJX4ljD7OxvQRDayyoyyCk+senRjSkP6VnUNQmVQqB6g7w==" - }, - "node_modules/secp256k1": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-4.0.2.tgz", - "integrity": "sha512-UDar4sKvWAksIlfX3xIaQReADn+WFnHvbVujpcbr+9Sf/69odMwy2MUsz5CKLQgX9nsIyrjuxL2imVyoNHa3fg==", - "hasInstallScript": true, - "dependencies": { - "elliptic": "^6.5.2", - "node-addon-api": "^2.0.0", - "node-gyp-build": "^4.2.0" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/seek-bzip": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/seek-bzip/-/seek-bzip-1.0.5.tgz", - "integrity": "sha1-z+kXyz0nS8/6x5J1ivUxc+sfq9w=", - "dev": true, - "dependencies": { - "commander": "~2.8.1" - }, - "bin": { - "seek-bunzip": "bin/seek-bunzip", - "seek-table": "bin/seek-bzip-table" - } - }, - "node_modules/seek-bzip/node_modules/commander": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.8.1.tgz", - "integrity": "sha1-Br42f+v9oMMwqh4qBy09yXYkJdQ=", - "dev": true, - "dependencies": { - "graceful-readlink": ">= 1.0.0" - }, - "engines": { - "node": ">= 0.6.x" - } - }, - "node_modules/semaphore": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/semaphore/-/semaphore-1.1.0.tgz", - "integrity": "sha512-O4OZEaNtkMd/K0i6js9SL+gqy0ZCBMgUvlSqHKi4IBdjhe7wB8pwztUk1BbZ1fmrvpwFrPbHzqd2w5pTcJH6LA==", - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/send": { - "version": "0.17.1", - "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz", - "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==", - "dev": true, - "dependencies": { - "debug": "2.6.9", - "depd": "~1.1.2", - "destroy": "~1.0.4", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "fresh": "0.5.2", - "http-errors": "~1.7.2", - "mime": "1.6.0", - "ms": "2.1.1", - "on-finished": "~2.3.0", - "range-parser": "~1.2.1", - "statuses": "~1.5.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/send/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/send/node_modules/debug/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, - "node_modules/send/node_modules/ms": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", - "dev": true - }, - "node_modules/sentence-case": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/sentence-case/-/sentence-case-2.1.1.tgz", - "integrity": "sha512-ENl7cYHaK/Ktwk5OTD+aDbQ3uC8IByu/6Bkg+HDv8Mm+XnBnppVNalcfJTNsp1ibstKh030/JKQQWglDvtKwEQ==", - "dev": true, - "dependencies": { - "no-case": "^2.2.0", - "upper-case-first": "^1.1.2" - } - }, - "node_modules/serialize-javascript": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz", - "integrity": "sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==", - "dependencies": { - "randombytes": "^2.1.0" - } - }, - "node_modules/serve-static": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz", - "integrity": "sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==", - "dev": true, - "dependencies": { - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "parseurl": "~1.3.3", - "send": "0.17.1" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/servify": { - "version": "0.1.12", - "resolved": "https://registry.npmjs.org/servify/-/servify-0.1.12.tgz", - "integrity": "sha512-/xE6GvsKKqyo1BAY+KxOWXcLpPsUUyji7Qg3bVD7hh1eRze5bR1uYiuDA/k3Gof1s9BTzQZEJK8sNcNGFIzeWw==", - "dev": true, - "dependencies": { - "body-parser": "^1.16.0", - "cors": "^2.8.1", - "express": "^4.14.0", - "request": "^2.79.0", - "xhr": "^2.3.3" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" - }, - "node_modules/set-immediate-shim": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz", - "integrity": "sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/set-value": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", - "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", - "dependencies": { - "extend-shallow": "^2.0.1", - "is-extendable": "^0.1.1", - "is-plain-object": "^2.0.3", - "split-string": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/set-value/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/set-value/node_modules/is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/setimmediate": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.4.tgz", - "integrity": "sha1-IOgd5iLUoCWIzgyNqJc8vPHTE48=" - }, - "node_modules/setprototypeof": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", - "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==", - "dev": true - }, - "node_modules/sha.js": { - "version": "2.4.11", - "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", - "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", - "dependencies": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - }, - "bin": { - "sha.js": "bin.js" - } - }, - "node_modules/shallowequal": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/shallowequal/-/shallowequal-1.1.0.tgz", - "integrity": "sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==", - "dev": true - }, - "node_modules/shebang-command": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", - "dependencies": { - "shebang-regex": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/shebang-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/signal-exit": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", - "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==", - "dev": true - }, - "node_modules/simple-concat": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz", - "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==" - }, - "node_modules/simple-get": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-2.8.1.tgz", - "integrity": "sha512-lSSHRSw3mQNUGPAYRqo7xy9dhKmxFXIjLjp4KHpf99GEH2VH7C3AM+Qfx6du6jhfUi6Vm7XnbEVEf7Wb6N8jRw==", - "dependencies": { - "decompress-response": "^3.3.0", - "once": "^1.3.1", - "simple-concat": "^1.0.0" - } - }, - "node_modules/simple-git": { - "version": "1.132.0", - "resolved": "https://registry.npmjs.org/simple-git/-/simple-git-1.132.0.tgz", - "integrity": "sha512-xauHm1YqCTom1sC9eOjfq3/9RKiUA9iPnxBbrY2DdL8l4ADMu0jjM5l5lphQP5YWNqAL2aXC/OeuQ76vHtW5fg==", - "dev": true, - "dependencies": { - "debug": "^4.0.1" - } - }, - "node_modules/simple-git/node_modules/debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", - "dev": true, - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/simple-git/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "node_modules/slice-ansi": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz", - "integrity": "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.0", - "astral-regex": "^1.0.0", - "is-fullwidth-code-point": "^2.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/snake-case": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/snake-case/-/snake-case-2.1.0.tgz", - "integrity": "sha512-FMR5YoPFwOLuh4rRz92dywJjyKYZNLpMn1R5ujVpIYkbA9p01fq8RMg0FkO4M+Yobt4MjHeLTJVm5xFFBHSV2Q==", - "dev": true, - "dependencies": { - "no-case": "^2.2.0" - } - }, - "node_modules/snapdragon": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", - "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", - "dependencies": { - "base": "^0.11.1", - "debug": "^2.2.0", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "map-cache": "^0.2.2", - "source-map": "^0.5.6", - "source-map-resolve": "^0.5.0", - "use": "^3.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon-node": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", - "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", - "dependencies": { - "define-property": "^1.0.0", - "isobject": "^3.0.0", - "snapdragon-util": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon-node/node_modules/define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dependencies": { - "is-descriptor": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon-util": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", - "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", - "dependencies": { - "kind-of": "^3.2.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon-util/node_modules/is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" - }, - "node_modules/snapdragon-util/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/snapdragon/node_modules/define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dependencies": { - "is-descriptor": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon/node_modules/is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon/node_modules/is-accessor-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon/node_modules/is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" - }, - "node_modules/snapdragon/node_modules/is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon/node_modules/is-data-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon/node_modules/is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dependencies": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon/node_modules/is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon/node_modules/kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon/node_modules/source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/solc-wrapper": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/solc-wrapper/-/solc-wrapper-0.6.3.tgz", - "integrity": "sha512-FWBnuQfU537SVSsBxuE4XkOKcK88a/bpLMVde2gc3BZcj0VmPc38wYO0Hkqqxsek7ZLK2lmXuEDLmgXhXl8Kyw==", - "dev": true, - "dependencies": { - "command-exists": "^1.2.8", - "fs-extra": "^0.30.0", - "js-sha3": "0.8.0", - "memorystream": "^0.3.1", - "require-from-string": "^2.0.0", - "semver": "^5.5.0", - "tmp": "0.0.33" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/solc-wrapper/node_modules/fs-extra": { - "version": "0.30.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-0.30.0.tgz", - "integrity": "sha1-8jP/zAjU2n1DLapEl3aYnbHfk/A=", - "dev": true, - "dependencies": { - "graceful-fs": "^4.1.2", - "jsonfile": "^2.1.0", - "klaw": "^1.0.0", - "path-is-absolute": "^1.0.0", - "rimraf": "^2.2.8" - } - }, - "node_modules/solc-wrapper/node_modules/js-sha3": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.8.0.tgz", - "integrity": "sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q==", - "dev": true - }, - "node_modules/solc-wrapper/node_modules/jsonfile": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz", - "integrity": "sha1-NzaitCi4e72gzIO1P6PWM6NcKug=", - "dev": true, - "dependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/source-list-map": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz", - "integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==" - }, - "node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/source-map-resolve": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", - "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", - "deprecated": "See https://github.com/lydell/source-map-resolve#deprecated", - "dependencies": { - "atob": "^2.1.2", - "decode-uri-component": "^0.2.0", - "resolve-url": "^0.2.1", - "source-map-url": "^0.4.0", - "urix": "^0.1.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==", - "dependencies": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "node_modules/source-map-url": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz", - "integrity": "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==", - "deprecated": "See https://github.com/lydell/source-map-url#deprecated" - }, - "node_modules/spark-md5": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/spark-md5/-/spark-md5-3.0.2.tgz", - "integrity": "sha512-wcFzz9cDfbuqe0FZzfi2or1sgyIrsDwmPwfZC4hiNidPdPINjeUwNfv5kldczoEAcjl9Y1L3SM7Uz2PUEQzxQw==", - "dev": true, - "optional": true - }, - "node_modules/spinnies": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/spinnies/-/spinnies-0.3.2.tgz", - "integrity": "sha512-WOvGI8X3h2XbAu/VBzIG99qJTeWCZ5RjyZtuLc4Q6qwAIv1/OPA2aL9j5wYEhwNsWLbBDHH5bLk/bOJTpexljw==", - "dev": true, - "dependencies": { - "chalk": "^2.4.2", - "cli-cursor": "^3.0.0" - } - }, - "node_modules/split-string": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", - "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", - "dependencies": { - "extend-shallow": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", - "dev": true - }, - "node_modules/sshpk": { - "version": "1.16.1", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", - "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", - "dependencies": { - "asn1": "~0.2.3", - "assert-plus": "^1.0.0", - "bcrypt-pbkdf": "^1.0.0", - "dashdash": "^1.12.0", - "ecc-jsbn": "~0.1.1", - "getpass": "^0.1.1", - "jsbn": "~0.1.0", - "safer-buffer": "^2.0.2", - "tweetnacl": "~0.14.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ssri": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.2.tgz", - "integrity": "sha512-cepbSq/neFK7xB6A50KHN0xHDotYzq58wWCa5LeWqnPrHG8GzfEjO/4O8kpmcGW+oaxkvhEJCWgbgNk4/ZV93Q==", - "dependencies": { - "figgy-pudding": "^3.5.1" - } - }, - "node_modules/static-extend": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", - "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", - "dependencies": { - "define-property": "^0.2.5", - "object-copy": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/static-extend/node_modules/define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dependencies": { - "is-descriptor": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/static-extend/node_modules/is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/static-extend/node_modules/is-accessor-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/static-extend/node_modules/is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" - }, - "node_modules/static-extend/node_modules/is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/static-extend/node_modules/is-data-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/static-extend/node_modules/is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dependencies": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/static-extend/node_modules/kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/statuses": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/stream-each": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/stream-each/-/stream-each-1.2.3.tgz", - "integrity": "sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw==", - "dependencies": { - "end-of-stream": "^1.1.0", - "stream-shift": "^1.0.0" - } - }, - "node_modules/stream-shift": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz", - "integrity": "sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==" - }, - "node_modules/strict-uri-encode": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz", - "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/string_decoder/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, - "node_modules/string-format": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/string-format/-/string-format-2.0.0.tgz", - "integrity": "sha512-bbEs3scLeYNXLecRRuk6uJxdXUSj6le/8rNPHChIJTn2V79aXVTR1EH2OH5zLKKoz0V02fOUKZZcw01pLUShZA==" - }, - "node_modules/string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", - "dependencies": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/string-width/node_modules/ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "engines": { - "node": ">=4" - } - }, - "node_modules/string-width/node_modules/strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dependencies": { - "ansi-regex": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/string.prototype.trimend": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz", - "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/string.prototype.trimstart": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz", - "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "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-regex": "^4.1.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/strip-dirs": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/strip-dirs/-/strip-dirs-2.1.0.tgz", - "integrity": "sha512-JOCxOeKLm2CAS73y/U4ZeZPTkE+gNVCzKt7Eox84Iej1LT/2pTWYpZKJuxwQpvX1LiZb1xokNR7RLfuBAa7T3g==", - "dev": true, - "dependencies": { - "is-natural-number": "^4.0.1" - } - }, - "node_modules/strip-hex-prefix": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-hex-prefix/-/strip-hex-prefix-1.0.0.tgz", - "integrity": "sha1-DF8VX+8RUTczd96du1iNoFUA428=", - "dependencies": { - "is-hex-prefixed": "1.0.0" - }, - "engines": { - "node": ">=6.5.0", - "npm": ">=3" - } - }, - "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/sublevel-pouchdb": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/sublevel-pouchdb/-/sublevel-pouchdb-7.3.1.tgz", - "integrity": "sha512-n+4fK72F/ORdqPwoGgMGYeOrW2HaPpW9o9k80bT1B3Cim5BSvkKkr9WbWOWynni/GHkbCEdvLVFJL1ktosAdhQ==", - "dev": true, - "optional": true, - "dependencies": { - "inherits": "2.0.4", - "level-codec": "9.0.2", - "ltgt": "2.2.1", - "readable-stream": "1.1.14" - } - }, - "node_modules/sublevel-pouchdb/node_modules/isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==", - "dev": true, - "optional": true - }, - "node_modules/sublevel-pouchdb/node_modules/level-codec": { - "version": "9.0.2", - "resolved": "https://registry.npmjs.org/level-codec/-/level-codec-9.0.2.tgz", - "integrity": "sha512-UyIwNb1lJBChJnGfjmO0OR+ezh2iVu1Kas3nvBS/BzGnx79dv6g7unpKIDNPMhfdTEGoc7mC8uAu51XEtX+FHQ==", - "dev": true, - "optional": true, - "dependencies": { - "buffer": "^5.6.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/sublevel-pouchdb/node_modules/readable-stream": { - "version": "1.1.14", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", - "integrity": "sha512-+MeVjFf4L44XUkhM1eYbD8fyEsxcV81pqMSR5gblfcLCHfZvbrqy4/qYHE+/R5HoBUT11WV5O08Cr1n3YXkWVQ==", - "dev": true, - "optional": true, - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" - } - }, - "node_modules/sublevel-pouchdb/node_modules/string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==", - "dev": true, - "optional": true - }, - "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==", - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/swap-case": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/swap-case/-/swap-case-1.1.2.tgz", - "integrity": "sha512-BAmWG6/bx8syfc6qXPprof3Mn5vQgf5dwdUNJhsNqU9WdPt5P+ES/wQ5bxfijy8zwZgZZHslC3iAsxsuQMCzJQ==", - "dev": true, - "dependencies": { - "lower-case": "^1.1.1", - "upper-case": "^1.1.1" - } - }, - "node_modules/swarm-js": { - "version": "0.1.39", - "resolved": "https://registry.npmjs.org/swarm-js/-/swarm-js-0.1.39.tgz", - "integrity": "sha512-QLMqL2rzF6n5s50BptyD6Oi0R1aWlJC5Y17SRIVXRj6OR1DRIPM7nepvrxxkjA1zNzFz6mUOMjfeqeDaWB7OOg==", - "dev": true, - "dependencies": { - "bluebird": "^3.5.0", - "buffer": "^5.0.5", - "decompress": "^4.0.0", - "eth-lib": "^0.1.26", - "fs-extra": "^4.0.2", - "got": "^7.1.0", - "mime-types": "^2.1.16", - "mkdirp-promise": "^5.0.1", - "mock-fs": "^4.1.0", - "setimmediate": "^1.0.5", - "tar": "^4.0.2", - "xhr-request-promise": "^0.1.2" - } - }, - "node_modules/swarm-js/node_modules/fs-extra": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-4.0.3.tgz", - "integrity": "sha512-q6rbdDd1o2mAnQreO7YADIxf/Whx4AHBiRf6d+/cVT8h44ss+lHgxf1FemcqDnQt9X3ct4McHr+JMGlYSsK7Cg==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - }, - "node_modules/swarm-js/node_modules/get-stream": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", - "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/swarm-js/node_modules/got": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/got/-/got-7.1.0.tgz", - "integrity": "sha512-Y5WMo7xKKq1muPsxD+KmrR8DH5auG7fBdDVueZwETwV6VytKyU9OX/ddpq2/1hp1vIPvVb4T81dKQz3BivkNLw==", - "dev": true, - "dependencies": { - "decompress-response": "^3.2.0", - "duplexer3": "^0.1.4", - "get-stream": "^3.0.0", - "is-plain-obj": "^1.1.0", - "is-retry-allowed": "^1.0.0", - "is-stream": "^1.0.0", - "isurl": "^1.0.0-alpha5", - "lowercase-keys": "^1.0.0", - "p-cancelable": "^0.3.0", - "p-timeout": "^1.1.1", - "safe-buffer": "^5.0.1", - "timed-out": "^4.0.0", - "url-parse-lax": "^1.0.0", - "url-to-options": "^1.0.1" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/swarm-js/node_modules/p-cancelable": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-0.3.0.tgz", - "integrity": "sha512-RVbZPLso8+jFeq1MfNvgXtCRED2raz/dKpacfTNxsx6pLEpEomM7gah6VeHSYV3+vo0OAi4MkArtQcWWXuQoyw==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/swarm-js/node_modules/prepend-http": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", - "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/swarm-js/node_modules/setimmediate": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", - "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=", - "dev": true - }, - "node_modules/swarm-js/node_modules/url-parse-lax": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz", - "integrity": "sha1-evjzA2Rem9eaJy56FKxovAYJ2nM=", - "dev": true, - "dependencies": { - "prepend-http": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/symbol-observable": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.2.0.tgz", - "integrity": "sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/table": { - "version": "5.4.6", - "resolved": "https://registry.npmjs.org/table/-/table-5.4.6.tgz", - "integrity": "sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug==", - "dev": true, - "dependencies": { - "ajv": "^6.10.2", - "lodash": "^4.17.14", - "slice-ansi": "^2.1.0", - "string-width": "^3.0.0" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/table-layout": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/table-layout/-/table-layout-1.0.2.tgz", - "integrity": "sha512-qd/R7n5rQTRFi+Zf2sk5XVVd9UQl6ZkduPFC3S7WEGJAmetDTjY3qPN50eSKzwuzEyQKy5TN2TiZdkIjos2L6A==", - "dependencies": { - "array-back": "^4.0.1", - "deep-extend": "~0.6.0", - "typical": "^5.2.0", - "wordwrapjs": "^4.0.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/table-layout/node_modules/array-back": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-4.0.2.tgz", - "integrity": "sha512-NbdMezxqf94cnNfWLL7V/im0Ub+Anbb0IoZhvzie8+4HJ4nMQuzHuy49FkGYCJK2yAloZ3meiB6AVMClbrI1vg==", - "engines": { - "node": ">=8" - } - }, - "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/table/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==", - "dev": true, - "dependencies": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/tar": { - "version": "4.4.13", - "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.13.tgz", - "integrity": "sha512-w2VwSrBoHa5BsSyH+KxEqeQBAllHhccyMFVHtGtdMpF4W7IRWfZjFiQceJPChOeTsSDVUpER2T8FA93pr0L+QA==", - "dev": true, - "dependencies": { - "chownr": "^1.1.1", - "fs-minipass": "^1.2.5", - "minipass": "^2.8.6", - "minizlib": "^1.2.1", - "mkdirp": "^0.5.0", - "safe-buffer": "^5.1.2", - "yallist": "^3.0.3" - }, - "engines": { - "node": ">=4.5" - } - }, - "node_modules/tar-stream": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-1.6.2.tgz", - "integrity": "sha512-rzS0heiNf8Xn7/mpdSVVSMAWAoy9bfb1WOTYC78Z0UQKeKa/CWS8FOq0lKGNa8DWKAn9gxjCvMLYc5PGXYlK2A==", - "dev": true, - "dependencies": { - "bl": "^1.0.0", - "buffer-alloc": "^1.2.0", - "end-of-stream": "^1.0.0", - "fs-constants": "^1.0.0", - "readable-stream": "^2.3.0", - "to-buffer": "^1.1.1", - "xtend": "^4.0.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/tar/node_modules/mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "dev": true, - "dependencies": { - "minimist": "^1.2.5" - }, - "bin": { - "mkdirp": "bin/cmd.js" - } - }, - "node_modules/test-value": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/test-value/-/test-value-2.1.0.tgz", - "integrity": "sha512-+1epbAxtKeXttkGFMTX9H42oqzOTufR1ceCF+GYA5aOmvaPq9wd4PUS8329fn2RRLGNeUkgRLnVpycjx8DsO2w==", - "dev": true, - "dependencies": { - "array-back": "^1.0.3", - "typical": "^2.6.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/test-value/node_modules/array-back": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-1.0.4.tgz", - "integrity": "sha512-1WxbZvrmyhkNoeYcizokbmh5oiOCIfyvGtcqbK3Ls1v1fKcquzxnQSceOx6tzq7jmai2kFLWIpGND2cLhH6TPw==", - "dev": true, - "dependencies": { - "typical": "^2.6.0" - }, - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/test-value/node_modules/typical": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/typical/-/typical-2.6.1.tgz", - "integrity": "sha512-ofhi8kjIje6npGozTip9Fr8iecmYfEbS06i0JnIg+rh51KakryWF4+jX8lLKZVhy6N+ID45WYSFCxPOdTWCzNg==", - "dev": true - }, - "node_modules/text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", - "dev": true - }, - "node_modules/through": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", - "dev": true - }, - "node_modules/through2": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/through2/-/through2-3.0.2.tgz", - "integrity": "sha512-enaDQ4MUyP2W6ZyT6EsMzqBPZaM/avg8iuo+l2d3QCs0J+6RaqkHV/2/lOwDTueBHeJ/2LG9lrLW3d5rWPucuQ==", - "dev": true, - "optional": true, - "dependencies": { - "inherits": "^2.0.4", - "readable-stream": "2 || 3" - } - }, - "node_modules/timed-out": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz", - "integrity": "sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/timers-browserify": { - "version": "2.0.12", - "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.12.tgz", - "integrity": "sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ==", - "dependencies": { - "setimmediate": "^1.0.4" - }, - "engines": { - "node": ">=0.6.0" - } - }, - "node_modules/tiny-typed-emitter": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/tiny-typed-emitter/-/tiny-typed-emitter-2.1.0.tgz", - "integrity": "sha512-qVtvMxeXbVej0cQWKqVSSAHmKZEHAvxdF8HEUBFWts8h+xEo5m/lEiPakuyZ3BnCBjOD8i24kzNOiOLLgsSxhA==", - "dev": true, - "optional": true - }, - "node_modules/title-case": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/title-case/-/title-case-2.1.1.tgz", - "integrity": "sha512-EkJoZ2O3zdCz3zJsYCsxyq2OC5hrxR9mfdd5I+w8h/tmFfeOxJ+vvkxsKxdmN0WtS9zLdHEgfgVOiMVgv+Po4Q==", - "dev": true, - "dependencies": { - "no-case": "^2.2.0", - "upper-case": "^1.0.3" - } - }, - "node_modules/tmp": { - "version": "0.0.33", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", - "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", - "dev": true, - "dependencies": { - "os-tmpdir": "~1.0.2" - }, - "engines": { - "node": ">=0.6.0" - } - }, - "node_modules/to-arraybuffer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", - "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=" - }, - "node_modules/to-buffer": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/to-buffer/-/to-buffer-1.1.1.tgz", - "integrity": "sha512-lx9B5iv7msuFYE3dytT+KE5tap+rNYw+K4jVkb9R/asAb+pbBSM17jtunHplhBe6RRJdZx3Pn2Jph24O32mOVg==", - "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": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", - "engines": { - "node": ">=4" - } - }, - "node_modules/to-object-path": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", - "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/to-object-path/node_modules/is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" - }, - "node_modules/to-object-path/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/to-readable-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz", - "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/to-regex": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", - "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", - "dependencies": { - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "regex-not": "^1.0.2", - "safe-regex": "^1.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/toidentifier": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", - "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==", - "dev": true, - "engines": { - "node": ">=0.6" - } - }, - "node_modules/toposort": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/toposort/-/toposort-2.0.2.tgz", - "integrity": "sha1-riF2gXXRVZ1IvvNUILL0li8JwzA=", - "dev": true - }, - "node_modules/tough-cookie": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", - "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", - "dev": true, - "dependencies": { - "psl": "^1.1.28", - "punycode": "^2.1.1" - }, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=" - }, - "node_modules/truffle": { - "version": "5.8.4", - "resolved": "https://registry.npmjs.org/truffle/-/truffle-5.8.4.tgz", - "integrity": "sha512-wl5q6geB1Elq+A8knQ5zW9v9ARDiiawDkZOJZF7D0CN8zXmgGzdO4+EFZ4Ig3O4U70c0J2F2s27Oxj2XB4/SiA==", - "dev": true, - "hasInstallScript": true, - "dependencies": { - "@truffle/db-loader": "^0.2.23", - "@truffle/debugger": "^11.0.34", - "app-module-path": "^2.2.0", - "ganache": "7.8.0", - "mocha": "10.1.0", - "original-require": "^1.0.1" - }, - "bin": { - "truffle": "build/cli.bundled.js" - }, - "optionalDependencies": { - "@truffle/db": "^2.0.23" - } - }, - "node_modules/truffle-config": { - "version": "1.1.16", - "resolved": "https://registry.npmjs.org/truffle-config/-/truffle-config-1.1.16.tgz", - "integrity": "sha512-of9wKDjXAKIA4kpdQbxnSxRl4EOPi6ipkoOn01J3yC1UJ942jeyLm7hUrTRdxcL8Nz3G47xO+xTMX5T7UYbdTA==", - "dev": true, - "dependencies": { - "configstore": "^4.0.0", - "find-up": "^2.1.0", - "lodash": "^4.17.13", - "original-require": "1.0.1", - "truffle-error": "^0.0.5", - "truffle-provider": "^0.1.12" - } - }, - "node_modules/truffle-config/node_modules/find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "dev": true, - "dependencies": { - "locate-path": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/truffle-error": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/truffle-error/-/truffle-error-0.0.5.tgz", - "integrity": "sha512-JpzPLMPSCE0vaZ3vH5NO5u42GpMj/Y1SRBkQ6b69PSw3xMSH1umApN32cEcg1nnh8q5FNYc5FnKu0m4tiBffyQ==", - "dev": true - }, - "node_modules/truffle-flattener": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/truffle-flattener/-/truffle-flattener-1.6.0.tgz", - "integrity": "sha512-scS5Bsi4CZyvlrmD4iQcLHTiG2RQFUXVheTgWeH6PuafmI+Lk5U87Es98loM3w3ImqC9/fPHq+3QIXbcPuoJ1Q==", - "dev": true, - "dependencies": { - "@resolver-engine/imports-fs": "^0.2.2", - "@solidity-parser/parser": "^0.14.1", - "find-up": "^2.1.0", - "mkdirp": "^1.0.4", - "tsort": "0.0.1" - }, - "bin": { - "truffle-flattener": "index.js" - } - }, - "node_modules/truffle-flattener/node_modules/find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "dev": true, - "dependencies": { - "locate-path": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/truffle-hdwallet-provider-klaytn/-/truffle-hdwallet-provider-klaytn-1.4.2.tgz", - "integrity": "sha512-ECsaulUnVIYwSXzgh71FX7qKcCGSNj77GdoqQWNls5jJR0T3ufdG8lmH85TEnz9JOHEeEnLeLvUJ/Tcn2U4OMw==", - "dependencies": { - "@trufflesuite/web3-provider-engine": "15.0.13-1", - "any-promise": "1.3.0", - "bindings": "1.5.0", - "caver-js": "1.6.3", - "ethereum-cryptography": "0.1.3", - "ethereum-protocol": "1.0.1", - "ethereumjs-util": "6.2.0", - "ethereumjs-wallet": "1.0.1" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/@babel/runtime": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.3.1.tgz", - "integrity": "sha512-7jGW8ppV0ant637pIqAcFfQDDH1orEPGJb8aXfUozuCU3QqX7rX4DA8iwrbPrR1hcH0FTTHz47yQnk+bl5xHQA==", - "dependencies": { - "regenerator-runtime": "^0.12.0" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/@ethersproject/abi": { - "version": "5.0.7", - "resolved": "https://registry.npmjs.org/@ethersproject/abi/-/abi-5.0.7.tgz", - "integrity": "sha512-Cqktk+hSIckwP/W8O47Eef60VwmoSC/L3lY0+dIBhQPCNn9E4V7rwmm2aFrNRRDJfFlGuZ1khkQUOc3oBX+niw==", - "dependencies": { - "@ethersproject/address": "^5.0.4", - "@ethersproject/bignumber": "^5.0.7", - "@ethersproject/bytes": "^5.0.4", - "@ethersproject/constants": "^5.0.4", - "@ethersproject/hash": "^5.0.4", - "@ethersproject/keccak256": "^5.0.3", - "@ethersproject/logger": "^5.0.5", - "@ethersproject/properties": "^5.0.3", - "@ethersproject/strings": "^5.0.4" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/@ethersproject/abstract-provider": { - "version": "5.0.10", - "resolved": "https://registry.npmjs.org/@ethersproject/abstract-provider/-/abstract-provider-5.0.10.tgz", - "integrity": "sha512-OSReY5iz94iIaPlRvLiJP8YVIvQLx4aUvMMnHWSaA/vTU8QHZmgNlt4OBdYV1+aFY8Xl+VRYiWBHq72ZDKXXCQ==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/bignumber": "^5.0.13", - "@ethersproject/bytes": "^5.0.9", - "@ethersproject/logger": "^5.0.8", - "@ethersproject/networks": "^5.0.7", - "@ethersproject/properties": "^5.0.7", - "@ethersproject/transactions": "^5.0.9", - "@ethersproject/web": "^5.0.12" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/@ethersproject/abstract-signer": { - "version": "5.0.14", - "resolved": "https://registry.npmjs.org/@ethersproject/abstract-signer/-/abstract-signer-5.0.14.tgz", - "integrity": "sha512-JztBwVO7o5OHLh2vyjordlS4/1EjRyaECtc8vPdXTF1i4dXN+J0coeRoPN6ZFbBvi/YbaB6br2fvqhst1VQD/g==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/abstract-provider": "^5.0.8", - "@ethersproject/bignumber": "^5.0.13", - "@ethersproject/bytes": "^5.0.9", - "@ethersproject/logger": "^5.0.8", - "@ethersproject/properties": "^5.0.7" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/@ethersproject/address": { - "version": "5.0.11", - "resolved": "https://registry.npmjs.org/@ethersproject/address/-/address-5.0.11.tgz", - "integrity": "sha512-Et4GBdD8/tsBGjCEOKee9upN29qjL5kbRcmJifb4Penmiuh9GARXL2/xpXvEp5EW+EIW/rfCHFJrkYBgoQFQBw==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/bignumber": "^5.0.13", - "@ethersproject/bytes": "^5.0.9", - "@ethersproject/keccak256": "^5.0.7", - "@ethersproject/logger": "^5.0.8", - "@ethersproject/rlp": "^5.0.7" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/@ethersproject/base64": { - "version": "5.0.9", - "resolved": "https://registry.npmjs.org/@ethersproject/base64/-/base64-5.0.9.tgz", - "integrity": "sha512-37RBz5LEZ9SlTNGiWCYFttnIN9J7qVs9Xo2EbqGqDH5LfW9EIji66S+YDMpXVo1zWDax1FkEldAoatxHK2gfgA==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/bytes": "^5.0.9" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/@ethersproject/basex": { - "version": "5.0.9", - "resolved": "https://registry.npmjs.org/@ethersproject/basex/-/basex-5.0.9.tgz", - "integrity": "sha512-FANswl1IN3PS0eltQxH2aM2+utPrkLUVG4XVFi6SafRG9EpAqXCgycxC8PU90mPGhigYTpg9cnTB5mCZ6ejQjw==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/bytes": "^5.0.9", - "@ethersproject/properties": "^5.0.7" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/@ethersproject/bignumber": { - "version": "5.0.15", - "resolved": "https://registry.npmjs.org/@ethersproject/bignumber/-/bignumber-5.0.15.tgz", - "integrity": "sha512-MTADqnyacvdRwtKh7o9ujwNDSM1SDJjYDMYAzjIgjoi9rh6TY4suMbhCa3i2vh3SUXiXSICyTI8ui+NPdrZ9Lw==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/bytes": "^5.0.9", - "@ethersproject/logger": "^5.0.8", - "bn.js": "^4.4.0" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/@ethersproject/bytes": { - "version": "5.0.11", - "resolved": "https://registry.npmjs.org/@ethersproject/bytes/-/bytes-5.0.11.tgz", - "integrity": "sha512-D51plLYY5qF05AsoVQwIZVLqlBkaTPVHVP/1WmmBIWyHB0cRW0C9kh0kx5Exo51rB63Hk8PfHxc7SmpoaQFEyg==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/logger": "^5.0.8" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/@ethersproject/constants": { - "version": "5.0.10", - "resolved": "https://registry.npmjs.org/@ethersproject/constants/-/constants-5.0.10.tgz", - "integrity": "sha512-OSo8jxkHLDXieCy8bgOFR7lMfgPxEzKvSDdP+WAWHCDM8+orwch0B6wzkTmiQFgryAtIctrBt5glAdJikZ3hGw==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/bignumber": "^5.0.13" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/@ethersproject/contracts": { - "version": "5.0.12", - "resolved": "https://registry.npmjs.org/@ethersproject/contracts/-/contracts-5.0.12.tgz", - "integrity": "sha512-srijy31idjz8bE+gL1I6IRj2H4I9dUwfQ+QroLrIgNdGArqY8y2iFUKa3QTy+JBX26fJsdYiCQi1kKkaNpnMpQ==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/abi": "^5.0.10", - "@ethersproject/abstract-provider": "^5.0.8", - "@ethersproject/abstract-signer": "^5.0.10", - "@ethersproject/address": "^5.0.9", - "@ethersproject/bignumber": "^5.0.13", - "@ethersproject/bytes": "^5.0.9", - "@ethersproject/constants": "^5.0.8", - "@ethersproject/logger": "^5.0.8", - "@ethersproject/properties": "^5.0.7" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/@ethersproject/contracts/node_modules/@ethersproject/abi": { - "version": "5.6.1", - "resolved": "https://registry.npmjs.org/@ethersproject/abi/-/abi-5.6.1.tgz", - "integrity": "sha512-0cqssYh6FXjlwKWBmLm3+zH2BNARoS5u/hxbz+LpQmcDB3w0W553h2btWui1/uZp2GBM/SI3KniTuMcYyHpA5w==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/address": "^5.6.0", - "@ethersproject/bignumber": "^5.6.0", - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/constants": "^5.6.0", - "@ethersproject/hash": "^5.6.0", - "@ethersproject/keccak256": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/properties": "^5.6.0", - "@ethersproject/strings": "^5.6.0" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/@ethersproject/contracts/node_modules/@ethersproject/abstract-provider": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/@ethersproject/abstract-provider/-/abstract-provider-5.6.0.tgz", - "integrity": "sha512-oPMFlKLN+g+y7a79cLK3WiLcjWFnZQtXWgnLAbHZcN3s7L4v90UHpTOrLk+m3yr0gt+/h9STTM6zrr7PM8uoRw==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/bignumber": "^5.6.0", - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/networks": "^5.6.0", - "@ethersproject/properties": "^5.6.0", - "@ethersproject/transactions": "^5.6.0", - "@ethersproject/web": "^5.6.0" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/@ethersproject/contracts/node_modules/@ethersproject/abstract-signer": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/@ethersproject/abstract-signer/-/abstract-signer-5.6.0.tgz", - "integrity": "sha512-WOqnG0NJKtI8n0wWZPReHtaLkDByPL67tn4nBaDAhmVq8sjHTPbCdz4DRhVu/cfTOvfy9w3iq5QZ7BX7zw56BQ==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/abstract-provider": "^5.6.0", - "@ethersproject/bignumber": "^5.6.0", - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/properties": "^5.6.0" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/@ethersproject/contracts/node_modules/@ethersproject/address": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/@ethersproject/address/-/address-5.6.0.tgz", - "integrity": "sha512-6nvhYXjbXsHPS+30sHZ+U4VMagFC/9zAk6Gd/h3S21YW4+yfb0WfRtaAIZ4kfM4rrVwqiy284LP0GtL5HXGLxQ==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/bignumber": "^5.6.0", - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/keccak256": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/rlp": "^5.6.0" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/@ethersproject/contracts/node_modules/@ethersproject/base64": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/@ethersproject/base64/-/base64-5.6.0.tgz", - "integrity": "sha512-2Neq8wxJ9xHxCF9TUgmKeSh9BXJ6OAxWfeGWvbauPh8FuHEjamgHilllx8KkSd5ErxyHIX7Xv3Fkcud2kY9ezw==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/bytes": "^5.6.0" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/@ethersproject/contracts/node_modules/@ethersproject/bignumber": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/@ethersproject/bignumber/-/bignumber-5.6.0.tgz", - "integrity": "sha512-VziMaXIUHQlHJmkv1dlcd6GY2PmT0khtAqaMctCIDogxkrarMzA9L94KN1NeXqqOfFD6r0sJT3vCTOFSmZ07DA==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "bn.js": "^4.11.9" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/@ethersproject/contracts/node_modules/@ethersproject/bytes": { - "version": "5.6.1", - "resolved": "https://registry.npmjs.org/@ethersproject/bytes/-/bytes-5.6.1.tgz", - "integrity": "sha512-NwQt7cKn5+ZE4uDn+X5RAXLp46E1chXoaMmrxAyA0rblpxz8t58lVkrHXoRIn0lz1joQElQ8410GqhTqMOwc6g==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/logger": "^5.6.0" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/@ethersproject/contracts/node_modules/@ethersproject/constants": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/@ethersproject/constants/-/constants-5.6.0.tgz", - "integrity": "sha512-SrdaJx2bK0WQl23nSpV/b1aq293Lh0sUaZT/yYKPDKn4tlAbkH96SPJwIhwSwTsoQQZxuh1jnqsKwyymoiBdWA==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/bignumber": "^5.6.0" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/@ethersproject/contracts/node_modules/@ethersproject/hash": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/@ethersproject/hash/-/hash-5.6.0.tgz", - "integrity": "sha512-fFd+k9gtczqlr0/BruWLAu7UAOas1uRRJvOR84uDf4lNZ+bTkGl366qvniUZHKtlqxBRU65MkOobkmvmpHU+jA==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/abstract-signer": "^5.6.0", - "@ethersproject/address": "^5.6.0", - "@ethersproject/bignumber": "^5.6.0", - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/keccak256": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/properties": "^5.6.0", - "@ethersproject/strings": "^5.6.0" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/@ethersproject/contracts/node_modules/@ethersproject/keccak256": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/@ethersproject/keccak256/-/keccak256-5.6.0.tgz", - "integrity": "sha512-tk56BJ96mdj/ksi7HWZVWGjCq0WVl/QvfhFQNeL8fxhBlGoP+L80uDCiQcpJPd+2XxkivS3lwRm3E0CXTfol0w==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/bytes": "^5.6.0", - "js-sha3": "0.8.0" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/@ethersproject/contracts/node_modules/@ethersproject/logger": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/@ethersproject/logger/-/logger-5.6.0.tgz", - "integrity": "sha512-BiBWllUROH9w+P21RzoxJKzqoqpkyM1pRnEKG69bulE9TSQD8SAIvTQqIMZmmCO8pUNkgLP1wndX1gKghSpBmg==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ] - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/@ethersproject/contracts/node_modules/@ethersproject/networks": { - "version": "5.6.2", - "resolved": "https://registry.npmjs.org/@ethersproject/networks/-/networks-5.6.2.tgz", - "integrity": "sha512-9uEzaJY7j5wpYGTojGp8U89mSsgQLc40PCMJLMCnFXTs7nhBveZ0t7dbqWUNrepWTszDbFkYD6WlL8DKx5huHA==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/logger": "^5.6.0" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/@ethersproject/contracts/node_modules/@ethersproject/properties": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/@ethersproject/properties/-/properties-5.6.0.tgz", - "integrity": "sha512-szoOkHskajKePTJSZ46uHUWWkbv7TzP2ypdEK6jGMqJaEt2sb0jCgfBo0gH0m2HBpRixMuJ6TBRaQCF7a9DoCg==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/logger": "^5.6.0" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/@ethersproject/contracts/node_modules/@ethersproject/rlp": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/@ethersproject/rlp/-/rlp-5.6.0.tgz", - "integrity": "sha512-dz9WR1xpcTL+9DtOT/aDO+YyxSSdO8YIS0jyZwHHSlAmnxA6cKU3TrTd4Xc/bHayctxTgGLYNuVVoiXE4tTq1g==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/logger": "^5.6.0" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/@ethersproject/contracts/node_modules/@ethersproject/signing-key": { - "version": "5.6.1", - "resolved": "https://registry.npmjs.org/@ethersproject/signing-key/-/signing-key-5.6.1.tgz", - "integrity": "sha512-XvqQ20DH0D+bS3qlrrgh+axRMth5kD1xuvqUQUTeezxUTXBOeR6hWz2/C6FBEu39FRytyybIWrYf7YLSAKr1LQ==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/properties": "^5.6.0", - "bn.js": "^4.11.9", - "elliptic": "6.5.4", - "hash.js": "1.1.7" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/@ethersproject/contracts/node_modules/@ethersproject/strings": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/@ethersproject/strings/-/strings-5.6.0.tgz", - "integrity": "sha512-uv10vTtLTZqrJuqBZR862ZQjTIa724wGPWQqZrofaPI/kUsf53TBG0I0D+hQ1qyNtllbNzaW+PDPHHUI6/65Mg==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/constants": "^5.6.0", - "@ethersproject/logger": "^5.6.0" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/@ethersproject/contracts/node_modules/@ethersproject/transactions": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/@ethersproject/transactions/-/transactions-5.6.0.tgz", - "integrity": "sha512-4HX+VOhNjXHZyGzER6E/LVI2i6lf9ejYeWD6l4g50AdmimyuStKc39kvKf1bXWQMg7QNVh+uC7dYwtaZ02IXeg==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/address": "^5.6.0", - "@ethersproject/bignumber": "^5.6.0", - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/constants": "^5.6.0", - "@ethersproject/keccak256": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/properties": "^5.6.0", - "@ethersproject/rlp": "^5.6.0", - "@ethersproject/signing-key": "^5.6.0" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/@ethersproject/contracts/node_modules/@ethersproject/web": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/@ethersproject/web/-/web-5.6.0.tgz", - "integrity": "sha512-G/XHj0hV1FxI2teHRfCGvfBUHFmU+YOSbCxlAMqJklxSa7QMiHFQfAxvwY2PFqgvdkxEKwRNr/eCjfAPEm2Ctg==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/base64": "^5.6.0", - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/properties": "^5.6.0", - "@ethersproject/strings": "^5.6.0" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/@ethersproject/contracts/node_modules/hash.js": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", - "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", - "dependencies": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.1" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/@ethersproject/contracts/node_modules/js-sha3": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.8.0.tgz", - "integrity": "sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q==" - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/@ethersproject/hash": { - "version": "5.0.12", - "resolved": "https://registry.npmjs.org/@ethersproject/hash/-/hash-5.0.12.tgz", - "integrity": "sha512-kn4QN+fhNFbUgX3XZTZUaQixi0oyfIEY+hfW+KtkHu+rq7dV76oAIvaLEEynu1/4npOL38E4X4YI42gGZk+C0Q==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/abstract-signer": "^5.0.10", - "@ethersproject/address": "^5.0.9", - "@ethersproject/bignumber": "^5.0.13", - "@ethersproject/bytes": "^5.0.9", - "@ethersproject/keccak256": "^5.0.7", - "@ethersproject/logger": "^5.0.8", - "@ethersproject/properties": "^5.0.7", - "@ethersproject/strings": "^5.0.8" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/@ethersproject/hdnode": { - "version": "5.0.10", - "resolved": "https://registry.npmjs.org/@ethersproject/hdnode/-/hdnode-5.0.10.tgz", - "integrity": "sha512-ZLwMtIcXK7xz2lSITDCl40W04CtRq4K9NwBxhCzdzPdaz6XnoJMwGz2YMVLg+8ksseq+RYtTwIIXtlK6vyvQyg==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/abstract-signer": "^5.0.10", - "@ethersproject/basex": "^5.0.7", - "@ethersproject/bignumber": "^5.0.13", - "@ethersproject/bytes": "^5.0.9", - "@ethersproject/logger": "^5.0.8", - "@ethersproject/pbkdf2": "^5.0.7", - "@ethersproject/properties": "^5.0.7", - "@ethersproject/sha2": "^5.0.7", - "@ethersproject/signing-key": "^5.0.8", - "@ethersproject/strings": "^5.0.8", - "@ethersproject/transactions": "^5.0.9", - "@ethersproject/wordlists": "^5.0.8" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/@ethersproject/json-wallets": { - "version": "5.0.12", - "resolved": "https://registry.npmjs.org/@ethersproject/json-wallets/-/json-wallets-5.0.12.tgz", - "integrity": "sha512-nac553zGZnOewpjlqbfy7WBl8m3y7qudzRsI2dCxrediYtPIVIs9f6Pbnou8vDmmp8X4/U4W788d+Ma88o+Gbg==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/abstract-signer": "^5.0.10", - "@ethersproject/address": "^5.0.9", - "@ethersproject/bytes": "^5.0.9", - "@ethersproject/hdnode": "^5.0.8", - "@ethersproject/keccak256": "^5.0.7", - "@ethersproject/logger": "^5.0.8", - "@ethersproject/pbkdf2": "^5.0.7", - "@ethersproject/properties": "^5.0.7", - "@ethersproject/random": "^5.0.7", - "@ethersproject/strings": "^5.0.8", - "@ethersproject/transactions": "^5.0.9", - "aes-js": "3.0.0", - "scrypt-js": "3.0.1" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/@ethersproject/json-wallets/node_modules/aes-js": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/aes-js/-/aes-js-3.0.0.tgz", - "integrity": "sha1-4h3xCtbCBTKVvLuNq0Cwnb6ofk0=" - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/@ethersproject/keccak256": { - "version": "5.0.9", - "resolved": "https://registry.npmjs.org/@ethersproject/keccak256/-/keccak256-5.0.9.tgz", - "integrity": "sha512-zhdUTj6RGtCJSgU+bDrWF6cGbvW453LoIC1DSNWrTlXzC7WuH4a+EiPrgc7/kNoRxerKuA/cxYlI8GwNtVtDlw==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/bytes": "^5.0.9", - "js-sha3": "0.5.7" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/@ethersproject/logger": { - "version": "5.0.10", - "resolved": "https://registry.npmjs.org/@ethersproject/logger/-/logger-5.0.10.tgz", - "integrity": "sha512-0y2T2NqykDrbPM3Zw9RSbPkDOxwChAL8detXaom76CfYoGxsOnRP/zTX8OUAV+x9LdwzgbWvWmeXrc0M7SuDZw==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ] - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/@ethersproject/networks": { - "version": "5.0.9", - "resolved": "https://registry.npmjs.org/@ethersproject/networks/-/networks-5.0.9.tgz", - "integrity": "sha512-L8+VCQwArBLGkxZb/5Ns/OH/OxP38AcaveXIxhUTq+VWpXYjrObG3E7RDQIKkUx1S1IcQl/UWTz5w4DK0UitJg==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/logger": "^5.0.8" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/@ethersproject/pbkdf2": { - "version": "5.0.9", - "resolved": "https://registry.npmjs.org/@ethersproject/pbkdf2/-/pbkdf2-5.0.9.tgz", - "integrity": "sha512-ItE/wQ/WVw/ajEHPUVgfu0aEvksPgOQc+278bke8sGKnGO3ppjmqp0MHh17tHc1EBTzJbSms5aLIqc56qZ/oiA==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/bytes": "^5.0.9", - "@ethersproject/sha2": "^5.0.7" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/@ethersproject/properties": { - "version": "5.0.9", - "resolved": "https://registry.npmjs.org/@ethersproject/properties/-/properties-5.0.9.tgz", - "integrity": "sha512-ZCjzbHYTw+rF1Pn8FDCEmx3gQttwIHcm/6Xee8g/M3Ga3SfW4tccNMbs5zqnBH0E4RoOPaeNgyg1O68TaF0tlg==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/logger": "^5.0.8" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/@ethersproject/providers": { - "version": "5.0.24", - "resolved": "https://registry.npmjs.org/@ethersproject/providers/-/providers-5.0.24.tgz", - "integrity": "sha512-M4Iw1r4gGJkt7ZUa++iREuviKL/DIpmIMsaUlVlXtV+ZrUXeN8xQ3zOTrbz7R4h9W9oljBZM7i4D3Kn1krJ30A==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/abstract-provider": "^5.0.8", - "@ethersproject/abstract-signer": "^5.0.10", - "@ethersproject/address": "^5.0.9", - "@ethersproject/basex": "^5.0.7", - "@ethersproject/bignumber": "^5.0.13", - "@ethersproject/bytes": "^5.0.9", - "@ethersproject/constants": "^5.0.8", - "@ethersproject/hash": "^5.0.10", - "@ethersproject/logger": "^5.0.8", - "@ethersproject/networks": "^5.0.7", - "@ethersproject/properties": "^5.0.7", - "@ethersproject/random": "^5.0.7", - "@ethersproject/rlp": "^5.0.7", - "@ethersproject/sha2": "^5.0.7", - "@ethersproject/strings": "^5.0.8", - "@ethersproject/transactions": "^5.0.9", - "@ethersproject/web": "^5.0.12", - "bech32": "1.1.4", - "ws": "7.2.3" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/@ethersproject/providers/node_modules/ws": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.2.3.tgz", - "integrity": "sha512-HTDl9G9hbkNDk98naoR/cHDws7+EyYMOdL1BmjsZXRUjf7d+MficC4B7HLUPlSiho0vg+CWKrGIt/VJBd1xunQ==", - "engines": { - "node": ">=8.3.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": "^5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/@ethersproject/random": { - "version": "5.0.9", - "resolved": "https://registry.npmjs.org/@ethersproject/random/-/random-5.0.9.tgz", - "integrity": "sha512-DANG8THsKqFbJOantrxumtG6gyETNE54VfbsWa+SQAT8WKpDo9W/X5Zhh73KuhClaey1UI32uVmISZeq/Zxn1A==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/bytes": "^5.0.9", - "@ethersproject/logger": "^5.0.8" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/@ethersproject/rlp": { - "version": "5.0.9", - "resolved": "https://registry.npmjs.org/@ethersproject/rlp/-/rlp-5.0.9.tgz", - "integrity": "sha512-ns1U7ZMVeruUW6JXc4om+1w3w4ynHN/0fpwmeNTsAjwGKoF8SAUgue6ylKpHKWSti2idx7jDxbn8hNNFHk67CA==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/bytes": "^5.0.9", - "@ethersproject/logger": "^5.0.8" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/@ethersproject/sha2": { - "version": "5.0.9", - "resolved": "https://registry.npmjs.org/@ethersproject/sha2/-/sha2-5.0.9.tgz", - "integrity": "sha512-5FH4s47gM7N1fFAYQ1+m7aX0SbLg0Xr+6tvqndmNqc382/qBIbzXiGlUookrsjlPb6gLNurnTssCXjNM72J6lQ==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/bytes": "^5.0.9", - "@ethersproject/logger": "^5.0.8", - "hash.js": "1.1.3" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/@ethersproject/signing-key": { - "version": "5.0.11", - "resolved": "https://registry.npmjs.org/@ethersproject/signing-key/-/signing-key-5.0.11.tgz", - "integrity": "sha512-Jfcru/BGwdkXhLxT+8WCZtFy7LL0TPFZw05FAb5asxB/MyVsEfNdNxGDtjVE9zXfmRSPe/EusXYY4K7wcygOyQ==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/bytes": "^5.0.9", - "@ethersproject/logger": "^5.0.8", - "@ethersproject/properties": "^5.0.7", - "elliptic": "6.5.4" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/@ethersproject/solidity": { - "version": "5.0.10", - "resolved": "https://registry.npmjs.org/@ethersproject/solidity/-/solidity-5.0.10.tgz", - "integrity": "sha512-8OG3HLqynWXDA6mVIHuHfF/ojTTwBahON7hc9GAKCqglzXCkVA3OpyxOJXPzjHClRIAUUiU7r9oy9Z/nsjtT/g==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/bignumber": "^5.0.13", - "@ethersproject/bytes": "^5.0.9", - "@ethersproject/keccak256": "^5.0.7", - "@ethersproject/sha2": "^5.0.7", - "@ethersproject/strings": "^5.0.8" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/@ethersproject/strings": { - "version": "5.0.10", - "resolved": "https://registry.npmjs.org/@ethersproject/strings/-/strings-5.0.10.tgz", - "integrity": "sha512-KAeoS1tZ9/5ECXiIZA6S6hywbD0so2VmuW+Wfyo5EDXeyZ6Na1nxTPhTnW7voQmjbeYJffCrOc0qLFJeylyg7w==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/bytes": "^5.0.9", - "@ethersproject/constants": "^5.0.8", - "@ethersproject/logger": "^5.0.8" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/@ethersproject/transactions": { - "version": "5.0.11", - "resolved": "https://registry.npmjs.org/@ethersproject/transactions/-/transactions-5.0.11.tgz", - "integrity": "sha512-ftsRvR9+gQp7L63F6+XmstvsZ4w8GtWvQB08e/zB+oB86Fnhq8+i/tkgpJplSHC8I/qgiCisva+M3u2GVhDFPA==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/address": "^5.0.9", - "@ethersproject/bignumber": "^5.0.13", - "@ethersproject/bytes": "^5.0.9", - "@ethersproject/constants": "^5.0.8", - "@ethersproject/keccak256": "^5.0.7", - "@ethersproject/logger": "^5.0.8", - "@ethersproject/properties": "^5.0.7", - "@ethersproject/rlp": "^5.0.7", - "@ethersproject/signing-key": "^5.0.8" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/@ethersproject/units": { - "version": "5.0.11", - "resolved": "https://registry.npmjs.org/@ethersproject/units/-/units-5.0.11.tgz", - "integrity": "sha512-nOSPmcCWyB/dwoBRhhTtPGCsTbiXqmc7Q0Adwvafc432AC7hy3Fj3IFZtnSXsbtJ/GdHCIUIoA8gtvxSsFuBJg==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/bignumber": "^5.0.13", - "@ethersproject/constants": "^5.0.8", - "@ethersproject/logger": "^5.0.8" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/@ethersproject/wallet": { - "version": "5.0.12", - "resolved": "https://registry.npmjs.org/@ethersproject/wallet/-/wallet-5.0.12.tgz", - "integrity": "sha512-rboJebGf47/KPZrKZQdYg9BAYuXbc/OwcUyML1K1f2jnJeo1ObWV11U1PAWTjTbhhSy6/Fg+34GO2yMb5Dt1Rw==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/abstract-provider": "^5.0.8", - "@ethersproject/abstract-signer": "^5.0.10", - "@ethersproject/address": "^5.0.9", - "@ethersproject/bignumber": "^5.0.13", - "@ethersproject/bytes": "^5.0.9", - "@ethersproject/hash": "^5.0.10", - "@ethersproject/hdnode": "^5.0.8", - "@ethersproject/json-wallets": "^5.0.10", - "@ethersproject/keccak256": "^5.0.7", - "@ethersproject/logger": "^5.0.8", - "@ethersproject/properties": "^5.0.7", - "@ethersproject/random": "^5.0.7", - "@ethersproject/signing-key": "^5.0.8", - "@ethersproject/transactions": "^5.0.9", - "@ethersproject/wordlists": "^5.0.8" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/@ethersproject/web": { - "version": "5.0.14", - "resolved": "https://registry.npmjs.org/@ethersproject/web/-/web-5.0.14.tgz", - "integrity": "sha512-QpTgplslwZ0Sp9oKNLoRuS6TKxnkwfaEk3gr7zd7XLF8XBsYejsrQO/03fNfnMx/TAT/RR6WEw/mbOwpRSeVRA==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/base64": "^5.0.7", - "@ethersproject/bytes": "^5.0.9", - "@ethersproject/logger": "^5.0.8", - "@ethersproject/properties": "^5.0.7", - "@ethersproject/strings": "^5.0.8" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/@ethersproject/wordlists": { - "version": "5.0.10", - "resolved": "https://registry.npmjs.org/@ethersproject/wordlists/-/wordlists-5.0.10.tgz", - "integrity": "sha512-jWsEm1iJzpg9SCXnNfFz+tcp4Ofzv0TJb6mj+soCNcar9GcT0yGz62ZsHC3pLQWaF4LkCzGwRJHJTXKjHQfG1A==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/bytes": "^5.0.9", - "@ethersproject/hash": "^5.0.10", - "@ethersproject/logger": "^5.0.8", - "@ethersproject/properties": "^5.0.7", - "@ethersproject/strings": "^5.0.8" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/@trufflesuite/web3-provider-engine": { - "version": "15.0.13-1", - "resolved": "https://registry.npmjs.org/@trufflesuite/web3-provider-engine/-/web3-provider-engine-15.0.13-1.tgz", - "integrity": "sha512-6u3x/iIN5fyj8pib5QTUDmIOUiwAGhaqdSTXdqCu6v9zo2BEwdCqgEJd1uXDh3DBmPRDfiZ/ge8oUPy7LerpHg==", - "dependencies": { - "@trufflesuite/eth-json-rpc-filters": "^4.1.2-1", - "@trufflesuite/eth-json-rpc-infura": "^4.0.3-0", - "@trufflesuite/eth-json-rpc-middleware": "^4.4.2-1", - "@trufflesuite/eth-sig-util": "^1.4.2", - "async": "^2.5.0", - "backoff": "^2.5.0", - "clone": "^2.0.0", - "cross-fetch": "^2.1.0", - "eth-block-tracker": "^4.4.2", - "eth-json-rpc-errors": "^2.0.2", - "ethereumjs-block": "^1.2.2", - "ethereumjs-tx": "^1.2.0", - "ethereumjs-util": "^5.1.5", - "ethereumjs-vm": "^2.3.4", - "json-stable-stringify": "^1.0.1", - "promise-to-callback": "^1.0.0", - "readable-stream": "^2.2.9", - "request": "^2.85.0", - "semaphore": "^1.0.3", - "ws": "^5.1.1", - "xhr": "^2.2.0", - "xtend": "^4.0.1" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/@trufflesuite/web3-provider-engine/node_modules/ethereumjs-util": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", - "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", - "dependencies": { - "bn.js": "^4.11.0", - "create-hash": "^1.1.2", - "elliptic": "^6.5.2", - "ethereum-cryptography": "^0.1.3", - "ethjs-util": "^0.1.3", - "rlp": "^2.0.0", - "safe-buffer": "^5.1.1" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/@webassemblyjs/ast": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.9.0.tgz", - "integrity": "sha512-C6wW5L+b7ogSDVqymbkkvuW9kruN//YisMED04xzeBBqjHa2FYnmvOlS6Xj68xWQRgWvI9cIglsjFowH/RJyEA==", - "dependencies": { - "@webassemblyjs/helper-module-context": "1.9.0", - "@webassemblyjs/helper-wasm-bytecode": "1.9.0", - "@webassemblyjs/wast-parser": "1.9.0" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/@webassemblyjs/helper-api-error": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.9.0.tgz", - "integrity": "sha512-NcMLjoFMXpsASZFxJ5h2HZRcEhDkvnNFOAKneP5RbKRzaWJN36NC4jqQHKwStIhGXu5mUWlUUk7ygdtrO8lbmw==" - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/@webassemblyjs/helper-buffer": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.9.0.tgz", - "integrity": "sha512-qZol43oqhq6yBPx7YM3m9Bv7WMV9Eevj6kMi6InKOuZxhw+q9hOkvq5e/PpKSiLfyetpaBnogSbNCfBwyB00CA==" - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/@webassemblyjs/helper-wasm-bytecode": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.9.0.tgz", - "integrity": "sha512-R7FStIzyNcd7xKxCZH5lE0Bqy+hGTwS3LJjuv1ZVxd9O7eHCedSdrId/hMOd20I+v8wDXEn+bjfKDLzTepoaUw==" - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/@webassemblyjs/helper-wasm-section": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.9.0.tgz", - "integrity": "sha512-XnMB8l3ek4tvrKUUku+IVaXNHz2YsJyOOmz+MMkZvh8h1uSJpSen6vYnw3IoQ7WwEuAhL8Efjms1ZWjqh2agvw==", - "dependencies": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-buffer": "1.9.0", - "@webassemblyjs/helper-wasm-bytecode": "1.9.0", - "@webassemblyjs/wasm-gen": "1.9.0" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/@webassemblyjs/ieee754": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.9.0.tgz", - "integrity": "sha512-dcX8JuYU/gvymzIHc9DgxTzUUTLexWwt8uCTWP3otys596io0L5aW02Gb1RjYpx2+0Jus1h4ZFqjla7umFniTg==", - "dependencies": { - "@xtuc/ieee754": "^1.2.0" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/@webassemblyjs/leb128": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.9.0.tgz", - "integrity": "sha512-ENVzM5VwV1ojs9jam6vPys97B/S65YQtv/aanqnU7D8aSoHFX8GyhGg0CMfyKNIHBuAVjy3tlzd5QMMINa7wpw==", - "dependencies": { - "@xtuc/long": "4.2.2" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/@webassemblyjs/utf8": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.9.0.tgz", - "integrity": "sha512-GZbQlWtopBTP0u7cHrEx+73yZKrQoBMpwkGEIqlacljhXCkVM1kMQge/Mf+csMJAjEdSwhOyLAS0AoR3AG5P8w==" - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/@webassemblyjs/wasm-edit": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.9.0.tgz", - "integrity": "sha512-FgHzBm80uwz5M8WKnMTn6j/sVbqilPdQXTWraSjBwFXSYGirpkSWE2R9Qvz9tNiTKQvoKILpCuTjBKzOIm0nxw==", - "dependencies": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-buffer": "1.9.0", - "@webassemblyjs/helper-wasm-bytecode": "1.9.0", - "@webassemblyjs/helper-wasm-section": "1.9.0", - "@webassemblyjs/wasm-gen": "1.9.0", - "@webassemblyjs/wasm-opt": "1.9.0", - "@webassemblyjs/wasm-parser": "1.9.0", - "@webassemblyjs/wast-printer": "1.9.0" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/@webassemblyjs/wasm-gen": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.9.0.tgz", - "integrity": "sha512-cPE3o44YzOOHvlsb4+E9qSqjc9Qf9Na1OO/BHFy4OI91XDE14MjFN4lTMezzaIWdPqHnsTodGGNP+iRSYfGkjA==", - "dependencies": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-wasm-bytecode": "1.9.0", - "@webassemblyjs/ieee754": "1.9.0", - "@webassemblyjs/leb128": "1.9.0", - "@webassemblyjs/utf8": "1.9.0" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/@webassemblyjs/wasm-opt": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.9.0.tgz", - "integrity": "sha512-Qkjgm6Anhm+OMbIL0iokO7meajkzQD71ioelnfPEj6r4eOFuqm4YC3VBPqXjFyyNwowzbMD+hizmprP/Fwkl2A==", - "dependencies": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-buffer": "1.9.0", - "@webassemblyjs/wasm-gen": "1.9.0", - "@webassemblyjs/wasm-parser": "1.9.0" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/@webassemblyjs/wasm-parser": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.9.0.tgz", - "integrity": "sha512-9+wkMowR2AmdSWQzsPEjFU7njh8HTO5MqO8vjwEHuM+AMHioNqSBONRdr0NQQ3dVQrzp0s8lTcYqzUdb7YgELA==", - "dependencies": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-api-error": "1.9.0", - "@webassemblyjs/helper-wasm-bytecode": "1.9.0", - "@webassemblyjs/ieee754": "1.9.0", - "@webassemblyjs/leb128": "1.9.0", - "@webassemblyjs/utf8": "1.9.0" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/@webassemblyjs/wast-printer": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.9.0.tgz", - "integrity": "sha512-2J0nE95rHXHyQ24cWjMKJ1tqB/ds8z/cyeOZxJhcb+rW+SQASVjuznUSmdz5GpVJTzU8JkhYut0D3siFDD6wsA==", - "dependencies": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/wast-parser": "1.9.0", - "@xtuc/long": "4.2.2" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/acorn": { - "version": "6.4.2", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.2.tgz", - "integrity": "sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ==", - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/aes-js": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/aes-js/-/aes-js-3.1.2.tgz", - "integrity": "sha512-e5pEa2kBnBOgR4Y/p20pskXI74UEz7de8ZGVo58asOtvSVG5YAbJeELPZxOmt+Bnz3rX753YKhfIn4X4l1PPRQ==" - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/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/truffle-hdwallet-provider-klaytn/node_modules/bech32": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/bech32/-/bech32-1.1.4.tgz", - "integrity": "sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ==" - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/bignumber.js": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-8.0.2.tgz", - "integrity": "sha512-EiuvFrnbv0jFixEQ9f58jo7X0qI2lNGIr/MxntmVzQc5JUweDSh8y8hbTCAomFtqwUPIOWcLXP0VEOSZTG7FFw==", - "engines": { - "node": "*" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/caver-js": { - "version": "1.6.3", - "resolved": "https://registry.npmjs.org/caver-js/-/caver-js-1.6.3.tgz", - "integrity": "sha512-xSPnawdVFregH6eTO+1TF1rDAueiyFkgphKOAgSaPSw8DGz9jcRliTU2OH0jCghyTt0k9yntAR0NzlIKTc/76A==", - "dependencies": { - "@babel/runtime": "7.3.1", - "@ethersproject/abi": "5.0.7", - "@web3-js/scrypt-shim": "0.1.0", - "any-promise": "1.3.0", - "bignumber.js": "8.0.2", - "bn.js": "4.11.6", - "chai": "4.1.2", - "crypto-browserify": "3.12.0", - "dotenv": "8.2.0", - "elliptic": "6.5.4", - "eth-lib": "0.2.8", - "ethers": "5.0.32", - "ethjs-unit": "0.1.6", - "eventemitter3": "4.0.0", - "ipfs-http-client-lite": "0.3.0", - "it-each": "0.4.0", - "lodash": "4.17.21", - "mocha": "8.3.2", - "multihashes": "4.0.2", - "node-fetch": "2.6.1", - "number-to-bn": "1.7.0", - "oboe": "2.1.3", - "request": "2.87.0", - "requestretry": "2.0.2", - "scrypt-js": "3.0.1", - "semver": "6.2.0", - "utf8": "2.1.1", - "uuid": "3.0.0", - "webpack": "4.44.2", - "webpack-cli": "3.3.12", - "websocket": "1.0.31", - "xhr2-cookies": "1.1.0" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/caver-js/node_modules/bn.js": { - "version": "4.11.6", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz", - "integrity": "sha1-UzRK2xRhehP26N0s4okF0cC6MhU=" - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/caver-js/node_modules/utf8": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/utf8/-/utf8-2.1.1.tgz", - "integrity": "sha1-LgHbAvfY0JRPdxBPFgnrDDBM92g=" - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/caver-js/node_modules/uuid": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.0.0.tgz", - "integrity": "sha1-Zyj8BFnEUNeWqZwxg3VpvfZy1yg=", - "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", - "bin": { - "uuid": "bin/uuid" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/chai": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chai/-/chai-4.1.2.tgz", - "integrity": "sha1-D2RYS6ZC8PKs4oBiefTwbKI61zw=", - "dependencies": { - "assertion-error": "^1.0.1", - "check-error": "^1.0.1", - "deep-eql": "^3.0.0", - "get-func-name": "^2.0.0", - "pathval": "^1.0.0", - "type-detect": "^4.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/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/truffle-hdwallet-provider-klaytn/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/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/truffle-hdwallet-provider-klaytn/node_modules/dotenv": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-8.2.0.tgz", - "integrity": "sha512-8sJ78ElpbDJBHNeBzUbUVLsqKdccaa/BXF1uPTw3GrvQTBgrQrtObr2mUrE38vzYd8cEv+m/JBfDLioYcfXoaw==", - "engines": { - "node": ">=8" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/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/truffle-hdwallet-provider-klaytn/node_modules/enhanced-resolve": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.5.0.tgz", - "integrity": "sha512-Nv9m36S/vxpsI+Hc4/ZGRs0n9mXqSWGGq49zxb/cJfPAQMbUtttJAlNPS4AQzaBdw/pKskw5bMbekT/Y7W/Wlg==", - "dependencies": { - "graceful-fs": "^4.1.2", - "memory-fs": "^0.5.0", - "tapable": "^1.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/enhanced-resolve/node_modules/memory-fs": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.5.0.tgz", - "integrity": "sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA==", - "dependencies": { - "errno": "^0.1.3", - "readable-stream": "^2.0.1" - }, - "engines": { - "node": ">=4.3.0 <5.0.0 || >=5.10" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/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/truffle-hdwallet-provider-klaytn/node_modules/eslint-scope": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.3.tgz", - "integrity": "sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg==", - "dependencies": { - "esrecurse": "^4.1.0", - "estraverse": "^4.1.1" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/eth-lib": { - "version": "0.2.8", - "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.8.tgz", - "integrity": "sha512-ArJ7x1WcWOlSpzdoTBX8vkwlkSQ85CjjifSZtV4co64vWxSV8geWfPI9x4SVYu3DSxnX4yWFVTtGL+j9DUFLNw==", - "dependencies": { - "bn.js": "^4.11.6", - "elliptic": "^6.4.0", - "xhr-request-promise": "^0.1.2" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/ethereum-common": { - "version": "0.0.18", - "resolved": "https://registry.npmjs.org/ethereum-common/-/ethereum-common-0.0.18.tgz", - "integrity": "sha1-L9w1dvIykDNYl26znaeDIT/5Uj8=" - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/ethereumjs-tx": { - "version": "1.3.7", - "resolved": "https://registry.npmjs.org/ethereumjs-tx/-/ethereumjs-tx-1.3.7.tgz", - "integrity": "sha512-wvLMxzt1RPhAQ9Yi3/HKZTn0FZYpnsmQdbKYfUUpi4j1SEIcbkd9tndVjcPrufY3V7j2IebOpC00Zp2P/Ay2kA==", - "deprecated": "New package name format for new versions: @ethereumjs/tx. Please update.", - "dependencies": { - "ethereum-common": "^0.0.18", - "ethereumjs-util": "^5.0.0" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/ethereumjs-tx/node_modules/ethereumjs-util": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", - "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", - "dependencies": { - "bn.js": "^4.11.0", - "create-hash": "^1.1.2", - "elliptic": "^6.5.2", - "ethereum-cryptography": "^0.1.3", - "ethjs-util": "^0.1.3", - "rlp": "^2.0.0", - "safe-buffer": "^5.1.1" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/ethereumjs-util": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-6.2.0.tgz", - "integrity": "sha512-vb0XN9J2QGdZGIEKG2vXM+kUdEivUfU6Wmi5y0cg+LRhDYKnXIZ/Lz7XjFbHRR9VIKq2lVGLzGBkA++y2nOdOQ==", - "dependencies": { - "@types/bn.js": "^4.11.3", - "bn.js": "^4.11.0", - "create-hash": "^1.1.2", - "ethjs-util": "0.1.6", - "keccak": "^2.0.0", - "rlp": "^2.2.3", - "secp256k1": "^3.0.1" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/ethereumjs-wallet": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/ethereumjs-wallet/-/ethereumjs-wallet-1.0.1.tgz", - "integrity": "sha512-3Z5g1hG1das0JWU6cQ9HWWTY2nt9nXCcwj7eXVNAHKbo00XAZO8+NHlwdgXDWrL0SXVQMvTWN8Q/82DRH/JhPw==", - "dependencies": { - "aes-js": "^3.1.1", - "bs58check": "^2.1.2", - "ethereum-cryptography": "^0.1.3", - "ethereumjs-util": "^7.0.2", - "randombytes": "^2.0.6", - "scrypt-js": "^3.0.1", - "utf8": "^3.0.0", - "uuid": "^3.3.2" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/ethereumjs-wallet/node_modules/@types/bn.js": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-5.1.0.tgz", - "integrity": "sha512-QSSVYj7pYFN49kW77o2s9xTCwZ8F2xLbjLLSEVh8D2F4JUhZtPAGOFLTD+ffqksBx/u4cE/KImFjyhqCjn/LIA==", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/ethereumjs-wallet/node_modules/bn.js": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.0.tgz", - "integrity": "sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw==" - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/ethereumjs-wallet/node_modules/ethereumjs-util": { - "version": "7.1.4", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.4.tgz", - "integrity": "sha512-p6KmuPCX4mZIqsQzXfmSx9Y0l2hqf+VkAiwSisW3UKUFdk8ZkAt+AYaor83z2nSi6CU2zSsXMlD80hAbNEGM0A==", - "dependencies": { - "@types/bn.js": "^5.1.0", - "bn.js": "^5.1.2", - "create-hash": "^1.1.2", - "ethereum-cryptography": "^0.1.3", - "rlp": "^2.2.4" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/ethers": { - "version": "5.0.32", - "resolved": "https://registry.npmjs.org/ethers/-/ethers-5.0.32.tgz", - "integrity": "sha512-rORfGWR0HsA4pjKMMcWZorw12DHsXqfIAuPVHJsXt+vI24jvXcVqx+rLsSvgOoLdaCMdxiN5qlIq2+4axKG31g==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/abi": "5.0.13", - "@ethersproject/abstract-provider": "5.0.10", - "@ethersproject/abstract-signer": "5.0.14", - "@ethersproject/address": "5.0.11", - "@ethersproject/base64": "5.0.9", - "@ethersproject/basex": "5.0.9", - "@ethersproject/bignumber": "5.0.15", - "@ethersproject/bytes": "5.0.11", - "@ethersproject/constants": "5.0.10", - "@ethersproject/contracts": "5.0.12", - "@ethersproject/hash": "5.0.12", - "@ethersproject/hdnode": "5.0.10", - "@ethersproject/json-wallets": "5.0.12", - "@ethersproject/keccak256": "5.0.9", - "@ethersproject/logger": "5.0.10", - "@ethersproject/networks": "5.0.9", - "@ethersproject/pbkdf2": "5.0.9", - "@ethersproject/properties": "5.0.9", - "@ethersproject/providers": "5.0.24", - "@ethersproject/random": "5.0.9", - "@ethersproject/rlp": "5.0.9", - "@ethersproject/sha2": "5.0.9", - "@ethersproject/signing-key": "5.0.11", - "@ethersproject/solidity": "5.0.10", - "@ethersproject/strings": "5.0.10", - "@ethersproject/transactions": "5.0.11", - "@ethersproject/units": "5.0.11", - "@ethersproject/wallet": "5.0.12", - "@ethersproject/web": "5.0.14", - "@ethersproject/wordlists": "5.0.10" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/ethers/node_modules/@ethersproject/abi": { - "version": "5.0.13", - "resolved": "https://registry.npmjs.org/@ethersproject/abi/-/abi-5.0.13.tgz", - "integrity": "sha512-2coOH3D7ra1lwamKEH0HVc+Jbcsw5yfeCgmY8ekhCDualEiyyovD2qDcMBBcY3+kjoLHVTmo7ost6MNClxdOrg==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/address": "^5.0.9", - "@ethersproject/bignumber": "^5.0.13", - "@ethersproject/bytes": "^5.0.9", - "@ethersproject/constants": "^5.0.8", - "@ethersproject/hash": "^5.0.10", - "@ethersproject/keccak256": "^5.0.7", - "@ethersproject/logger": "^5.0.8", - "@ethersproject/properties": "^5.0.7", - "@ethersproject/strings": "^5.0.8" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/eventemitter3": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.0.tgz", - "integrity": "sha512-qerSRB0p+UDEssxTtm6EDKcE7W4OaoisfIMl4CngyEhjpYglocpNg6UEqCvemdGhosAsg4sO2dXJOdyBifPGCg==" - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/fast-deep-equal": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz", - "integrity": "sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ=" - }, - "node_modules/truffle-hdwallet-provider-klaytn/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/truffle-hdwallet-provider-klaytn/node_modules/har-validator": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.0.3.tgz", - "integrity": "sha1-ukAsJmGU8VlW7xXg/PJCmT9qff0=", - "deprecated": "this library is no longer supported", - "dependencies": { - "ajv": "^5.1.0", - "har-schema": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/har-validator/node_modules/ajv": { - "version": "5.5.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", - "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", - "dependencies": { - "co": "^4.6.0", - "fast-deep-equal": "^1.0.0", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.3.0" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/is-fullwidth-code-point": { - "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==", - "engines": { - "node": ">=8" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/js-yaml": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.0.0.tgz", - "integrity": "sha512-pqon0s+4ScYUvX30wxQi3PogGFAlUyH0awepWvwkj4jD4v+ova3RiYw8bmA6x2rDrEaj8i/oWKoRxpVNW+Re8Q==", - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/json-schema-traverse": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz", - "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=" - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/keccak": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/keccak/-/keccak-2.1.0.tgz", - "integrity": "sha512-m1wbJRTo+gWbctZWay9i26v5fFnYkOn7D5PCxJ3fZUGUEb49dE1Pm4BREUYCt/aoO6di7jeoGmhvqN9Nzylm3Q==", - "hasInstallScript": true, - "dependencies": { - "bindings": "^1.5.0", - "inherits": "^2.0.4", - "nan": "^2.14.0", - "safe-buffer": "^5.2.0" - }, - "engines": { - "node": ">=5.12.0" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/loader-runner": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.4.0.tgz", - "integrity": "sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw==", - "engines": { - "node": ">=4.3.0 <5.0.0 || >=5.10" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/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/truffle-hdwallet-provider-klaytn/node_modules/mkdirp": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", - "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", - "dependencies": { - "minimist": "^1.2.6" - }, - "bin": { - "mkdirp": "bin/cmd.js" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/mocha": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/mocha/-/mocha-8.3.2.tgz", - "integrity": "sha512-UdmISwr/5w+uXLPKspgoV7/RXZwKRTiTjJ2/AC5ZiEztIoOYdfKb19+9jNmEInzx5pBsCyJQzarAxqIGBNYJhg==", - "dependencies": { - "@ungap/promise-all-settled": "1.1.2", - "ansi-colors": "4.1.1", - "browser-stdout": "1.3.1", - "chokidar": "3.5.1", - "debug": "4.3.1", - "diff": "5.0.0", - "escape-string-regexp": "4.0.0", - "find-up": "5.0.0", - "glob": "7.1.6", - "growl": "1.10.5", - "he": "1.2.0", - "js-yaml": "4.0.0", - "log-symbols": "4.0.0", - "minimatch": "3.0.4", - "ms": "2.1.3", - "nanoid": "3.1.20", - "serialize-javascript": "5.0.1", - "strip-json-comments": "3.1.1", - "supports-color": "8.1.1", - "which": "2.0.2", - "wide-align": "1.1.3", - "workerpool": "6.1.0", - "yargs": "16.2.0", - "yargs-parser": "20.2.4", - "yargs-unparser": "2.0.0" - }, - "bin": { - "_mocha": "bin/_mocha", - "mocha": "bin/mocha" - }, - "engines": { - "node": ">= 10.12.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/mochajs" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/mocha/node_modules/debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/mocha/node_modules/debug/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/mocha/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/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/truffle-hdwallet-provider-klaytn/node_modules/mocha/node_modules/serialize-javascript": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-5.0.1.tgz", - "integrity": "sha512-SaaNal9imEO737H2c05Og0/8LUXG7EnsZyMa8MzkmuHoELfT6txuj0cMqRj6zfPKnmQ1yasR4PCJc8x+M4JSPA==", - "dependencies": { - "randombytes": "^2.1.0" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/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/truffle-hdwallet-provider-klaytn/node_modules/mocha/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/truffle-hdwallet-provider-klaytn/node_modules/multibase": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/multibase/-/multibase-4.0.6.tgz", - "integrity": "sha512-x23pDe5+svdLz/k5JPGCVdfn7Q5mZVMBETiC+ORfO+sor9Sgs0smJzAjfTbM5tckeCqnaUuMYoz+k3RXMmJClQ==", - "deprecated": "This module has been superseded by the multiformats module", - "dependencies": { - "@multiformats/base-x": "^4.0.1" - }, - "engines": { - "node": ">=12.0.0", - "npm": ">=6.0.0" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/multihashes": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/multihashes/-/multihashes-4.0.2.tgz", - "integrity": "sha512-xpx++1iZr4ZQHjN1mcrXS6904R36LWLxX/CBifczjtmrtCXEX623DMWOF1eiNSg+pFpiZDFVBgou/4v6ayCHSQ==", - "dependencies": { - "multibase": "^4.0.1", - "uint8arrays": "^2.1.3", - "varint": "^5.0.2" - }, - "engines": { - "node": ">=12.0.0", - "npm": ">=6.0.0" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/node-fetch": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz", - "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==", - "engines": { - "node": "4.x || >=6.0.0" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/oauth-sign": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz", - "integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM=", - "engines": { - "node": "*" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/oboe": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/oboe/-/oboe-2.1.3.tgz", - "integrity": "sha1-K0hl29Rr6BIlcT9Om/5Lz09oCk8=", - "dependencies": { - "http-https": "^1.0.0" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/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/truffle-hdwallet-provider-klaytn/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/truffle-hdwallet-provider-klaytn/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" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=" - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/regenerator-runtime": { - "version": "0.12.1", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.12.1.tgz", - "integrity": "sha512-odxIc1/vDlo4iZcfXqRYFj0vpXFNoGdKMAUieAlFYO6m/nl5e9KR/beGf41z4a1FI+aQgtjhuaSlDxQ0hmkrHg==" - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/request": { - "version": "2.87.0", - "resolved": "https://registry.npmjs.org/request/-/request-2.87.0.tgz", - "integrity": "sha512-fcogkm7Az5bsS6Sl0sibkbhcKsnyon/jV1kF3ajGmF0c8HrttdKTPRT9hieOaQHA5HEq6r8OyWOo/o781C1tNw==", - "deprecated": "request has been deprecated, see https://github.com/request/request/issues/3142", - "dependencies": { - "aws-sign2": "~0.7.0", - "aws4": "^1.6.0", - "caseless": "~0.12.0", - "combined-stream": "~1.0.5", - "extend": "~3.0.1", - "forever-agent": "~0.6.1", - "form-data": "~2.3.1", - "har-validator": "~5.0.3", - "http-signature": "~1.2.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.17", - "oauth-sign": "~0.8.2", - "performance-now": "^2.1.0", - "qs": "~6.5.1", - "safe-buffer": "^5.1.1", - "tough-cookie": "~2.3.3", - "tunnel-agent": "^0.6.0", - "uuid": "^3.1.0" - }, - "engines": { - "node": ">= 4" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/requestretry": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/requestretry/-/requestretry-2.0.2.tgz", - "integrity": "sha512-wBIylIEvvGHnFAYRXIKCARGzWxChn+mo7X3KjXPgtofB+c0ejcZFdZ5k6RFhBV+IOf80fkemcVuVdUKqovnj8A==", - "dependencies": { - "extend": "^3.0.2", - "lodash": "^4.17.10", - "when": "^3.7.7" - }, - "peerDependencies": { - "request": "~2.87.0" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/schema-utils": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", - "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", - "dependencies": { - "ajv": "^6.1.0", - "ajv-errors": "^1.0.0", - "ajv-keywords": "^3.1.0" - }, - "engines": { - "node": ">= 4" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/scrypt-js": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-3.0.1.tgz", - "integrity": "sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA==" - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/secp256k1": { - "version": "3.8.0", - "resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-3.8.0.tgz", - "integrity": "sha512-k5ke5avRZbtl9Tqx/SA7CbY3NF6Ro+Sj9cZxezFzuBlLDmyqPiL8hJJ+EmzD8Ig4LUDByHJ3/iPOVoRixs/hmw==", - "hasInstallScript": true, - "dependencies": { - "bindings": "^1.5.0", - "bip66": "^1.1.5", - "bn.js": "^4.11.8", - "create-hash": "^1.2.0", - "drbg.js": "^1.0.1", - "elliptic": "^6.5.2", - "nan": "^2.14.0", - "safe-buffer": "^5.1.2" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/semver": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.2.0.tgz", - "integrity": "sha512-jdFC1VdUGT/2Scgbimf7FSx9iJLXoqfglSF+gJeuNWVpiE37OIbc1jywR/GJyFdz3mnkz2/id0L0J/cr0izR5A==", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/tapable": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz", - "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==", - "engines": { - "node": ">=6" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/terser": { - "version": "4.8.0", - "resolved": "https://registry.npmjs.org/terser/-/terser-4.8.0.tgz", - "integrity": "sha512-EAPipTNeWsb/3wLPeup1tVPaXfIaU68xMnVdPafIL1TV05OhASArYyIfFvnvJCNrR2NIOvDVNNTFRa+Re2MWyw==", - "dependencies": { - "commander": "^2.20.0", - "source-map": "~0.6.1", - "source-map-support": "~0.5.12" - }, - "bin": { - "terser": "bin/terser" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/terser-webpack-plugin": { - "version": "1.4.5", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.4.5.tgz", - "integrity": "sha512-04Rfe496lN8EYruwi6oPQkG0vo8C+HT49X687FZnpPF0qMAIHONI6HEXYPKDOE8e5HjXTyKfqRd/agHtH0kOtw==", - "dependencies": { - "cacache": "^12.0.2", - "find-cache-dir": "^2.1.0", - "is-wsl": "^1.1.0", - "schema-utils": "^1.0.0", - "serialize-javascript": "^4.0.0", - "source-map": "^0.6.1", - "terser": "^4.1.2", - "webpack-sources": "^1.4.0", - "worker-farm": "^1.7.0" - }, - "engines": { - "node": ">= 6.9.0" - }, - "peerDependencies": { - "webpack": "^4.0.0" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/tough-cookie": { - "version": "2.3.4", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.4.tgz", - "integrity": "sha512-TZ6TTfI5NtZnuyy/Kecv+CnoROnyXn2DN97LontgQpCwsX2XyLYCC0ENhYkehSOwAp8rTQKc/NUIF7BkQ5rKLA==", - "dependencies": { - "punycode": "^1.4.1" - }, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/uint8arrays": { - "version": "2.1.10", - "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-2.1.10.tgz", - "integrity": "sha512-Q9/hhJa2836nQfEJSZTmr+pg9+cDJS9XEAp7N2Vg5MzL3bK/mkMVfjscRGYruP9jNda6MAdf4QD/y78gSzkp6A==", - "dependencies": { - "multiformats": "^9.4.2" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/watchpack": { - "version": "1.7.5", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.7.5.tgz", - "integrity": "sha512-9P3MWk6SrKjHsGkLT2KHXdQ/9SNkyoJbabxnKOoJepsvJjJG8uYTR3yTPxPQvNDI3w4Nz1xnE0TLHK4RIVe/MQ==", - "dependencies": { - "graceful-fs": "^4.1.2", - "neo-async": "^2.5.0" - }, - "optionalDependencies": { - "chokidar": "^3.4.1", - "watchpack-chokidar2": "^2.0.1" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/webpack": { - "version": "4.44.2", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.44.2.tgz", - "integrity": "sha512-6KJVGlCxYdISyurpQ0IPTklv+DULv05rs2hseIXer6D7KrUicRDLFb4IUM1S6LUAKypPM/nSiVSuv8jHu1m3/Q==", - "dependencies": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-module-context": "1.9.0", - "@webassemblyjs/wasm-edit": "1.9.0", - "@webassemblyjs/wasm-parser": "1.9.0", - "acorn": "^6.4.1", - "ajv": "^6.10.2", - "ajv-keywords": "^3.4.1", - "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^4.3.0", - "eslint-scope": "^4.0.3", - "json-parse-better-errors": "^1.0.2", - "loader-runner": "^2.4.0", - "loader-utils": "^1.2.3", - "memory-fs": "^0.4.1", - "micromatch": "^3.1.10", - "mkdirp": "^0.5.3", - "neo-async": "^2.6.1", - "node-libs-browser": "^2.2.1", - "schema-utils": "^1.0.0", - "tapable": "^1.1.3", - "terser-webpack-plugin": "^1.4.3", - "watchpack": "^1.7.4", - "webpack-sources": "^1.4.1" - }, - "bin": { - "webpack": "bin/webpack.js" - }, - "engines": { - "node": ">=6.11.5" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependenciesMeta": { - "webpack-cli": { - "optional": true - }, - "webpack-command": { - "optional": true - } - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/webpack-cli": { - "version": "3.3.12", - "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-3.3.12.tgz", - "integrity": "sha512-NVWBaz9k839ZH/sinurM+HcDvJOTXwSjYp1ku+5XKeOC03z8v5QitnK/x+lAxGXFyhdayoIf/GOpv85z3/xPag==", - "dependencies": { - "chalk": "^2.4.2", - "cross-spawn": "^6.0.5", - "enhanced-resolve": "^4.1.1", - "findup-sync": "^3.0.0", - "global-modules": "^2.0.0", - "import-local": "^2.0.0", - "interpret": "^1.4.0", - "loader-utils": "^1.4.0", - "supports-color": "^6.1.0", - "v8-compile-cache": "^2.1.1", - "yargs": "^13.3.2" - }, - "bin": { - "webpack-cli": "bin/cli.js" - }, - "engines": { - "node": ">=6.11.5" - }, - "peerDependencies": { - "webpack": "4.x.x" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/webpack-sources": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz", - "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==", - "dependencies": { - "source-list-map": "^2.0.0", - "source-map": "~0.6.1" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/websocket": { - "version": "1.0.31", - "resolved": "https://registry.npmjs.org/websocket/-/websocket-1.0.31.tgz", - "integrity": "sha512-VAouplvGKPiKFDTeCCO65vYHsyay8DqoBSlzIO3fayrfOgU94lQN5a1uWVnFrMLceTJw/+fQXR5PGbUVRaHshQ==", - "hasInstallScript": true, - "dependencies": { - "debug": "^2.2.0", - "es5-ext": "^0.10.50", - "nan": "^2.14.0", - "typedarray-to-buffer": "^3.1.5", - "yaeti": "^0.0.6" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/workerpool": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.1.0.tgz", - "integrity": "sha512-toV7q9rWNYha963Pl/qyeZ6wG+3nnsyvolaNUS8+R5Wtw6qJPTxIlOP1ZSvcGhEJw+l3HMMmtiNo9Gl61G4GVg==" - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/ws": { - "version": "5.2.3", - "resolved": "https://registry.npmjs.org/ws/-/ws-5.2.3.tgz", - "integrity": "sha512-jZArVERrMsKUatIdnLzqvcfydI85dvd/Fp1u/VOpfdDWQ4c9qWXe+VIeAbQ5FrDwciAkr+lzofXLz3Kuf26AOA==", - "dependencies": { - "async-limiter": "~1.0.0" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "engines": { - "node": ">=10" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/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==", - "engines": { - "node": ">=10" - } - }, - "node_modules/truffle-interface-adapter": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/truffle-interface-adapter/-/truffle-interface-adapter-0.2.5.tgz", - "integrity": "sha512-EL39OpP8FcZ99ne1Rno3jImfb92Nectd4iVsZzoEUCBfbwHe7sr0k+i45guoruSoP8nMUE81Mov2s8I5pi6d9Q==", - "dev": true, - "dependencies": { - "bn.js": "^4.11.8", - "ethers": "^4.0.32", - "lodash": "^4.17.13", - "web3": "1.2.1" - } - }, - "node_modules/truffle-interface-adapter/node_modules/@types/node": { - "version": "10.17.28", - "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.28.tgz", - "integrity": "sha512-dzjES1Egb4c1a89C7lKwQh8pwjYmlOAG9dW1pBgxEk57tMrLnssOfEthz8kdkNaBd7lIqQx7APm5+mZ619IiCQ==", - "dev": true - }, - "node_modules/truffle-interface-adapter/node_modules/eth-lib": { - "version": "0.2.7", - "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.7.tgz", - "integrity": "sha1-L5Pxex4jrsN1nNSj/iDBKGo/wco=", - "dev": true, - "dependencies": { - "bn.js": "^4.11.6", - "elliptic": "^6.4.0", - "xhr-request-promise": "^0.1.2" - } - }, - "node_modules/truffle-interface-adapter/node_modules/ethers": { - "version": "4.0.49", - "resolved": "https://registry.npmjs.org/ethers/-/ethers-4.0.49.tgz", - "integrity": "sha512-kPltTvWiyu+OktYy1IStSO16i2e7cS9D9OxZ81q2UUaiNPVrm/RTcbxamCXF9VUSKzJIdJV68EAIhTEVBalRWg==", - "dev": true, - "dependencies": { - "aes-js": "3.0.0", - "bn.js": "^4.11.9", - "elliptic": "6.5.4", - "hash.js": "1.1.3", - "js-sha3": "0.5.7", - "scrypt-js": "2.0.4", - "setimmediate": "1.0.4", - "uuid": "2.0.1", - "xmlhttprequest": "1.8.0" - } - }, - "node_modules/truffle-interface-adapter/node_modules/ethers/node_modules/scrypt-js": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-2.0.4.tgz", - "integrity": "sha512-4KsaGcPnuhtCZQCxFxN3GVYIhKFPTdLd8PLC552XwbMndtD0cjRFAhDuuydXQ0h08ZfPgzqe6EKHozpuH74iDw==", - "dev": true - }, - "node_modules/truffle-interface-adapter/node_modules/scrypt-js": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-2.0.3.tgz", - "integrity": "sha1-uwBAvgMEPamgEqLOqfyfhSz8h9Q=", - "dev": true - }, - "node_modules/truffle-interface-adapter/node_modules/semver": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.2.0.tgz", - "integrity": "sha512-jdFC1VdUGT/2Scgbimf7FSx9iJLXoqfglSF+gJeuNWVpiE37OIbc1jywR/GJyFdz3mnkz2/id0L0J/cr0izR5A==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/truffle-interface-adapter/node_modules/underscore": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.9.1.tgz", - "integrity": "sha512-5/4etnCkd9c8gwgowi5/om/mYO5ajCaOgdzj/oW+0eQV9WxKBDZw5+ycmKmeaTXjInS/W0BzpGLo2xR2aBwZdg==", - "dev": true - }, - "node_modules/truffle-interface-adapter/node_modules/uuid": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-2.0.1.tgz", - "integrity": "sha1-wqMN7bPlNdcsz4LjQ5QaULqFM6w=", - "dev": true - }, - "node_modules/truffle-interface-adapter/node_modules/web3": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3/-/web3-1.2.1.tgz", - "integrity": "sha512-nNMzeCK0agb5i/oTWNdQ1aGtwYfXzHottFP2Dz0oGIzavPMGSKyVlr8ibVb1yK5sJBjrWVnTdGaOC2zKDFuFRw==", - "dev": true, - "dependencies": { - "web3-bzz": "1.2.1", - "web3-core": "1.2.1", - "web3-eth": "1.2.1", - "web3-eth-personal": "1.2.1", - "web3-net": "1.2.1", - "web3-shh": "1.2.1", - "web3-utils": "1.2.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/truffle-interface-adapter/node_modules/web3-bzz": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-bzz/-/web3-bzz-1.2.1.tgz", - "integrity": "sha512-LdOO44TuYbGIPfL4ilkuS89GQovxUpmLz6C1UC7VYVVRILeZS740FVB3j9V4P4FHUk1RenaDfKhcntqgVCHtjw==", - "dev": true, - "dependencies": { - "got": "9.6.0", - "swarm-js": "0.1.39", - "underscore": "1.9.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/truffle-interface-adapter/node_modules/web3-core": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-core/-/web3-core-1.2.1.tgz", - "integrity": "sha512-5ODwIqgl8oIg/0+Ai4jsLxkKFWJYE0uLuE1yUKHNVCL4zL6n3rFjRMpKPokd6id6nJCNgeA64KdWQ4XfpnjdMg==", - "dev": true, - "dependencies": { - "web3-core-helpers": "1.2.1", - "web3-core-method": "1.2.1", - "web3-core-requestmanager": "1.2.1", - "web3-utils": "1.2.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/truffle-interface-adapter/node_modules/web3-core-helpers": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.2.1.tgz", - "integrity": "sha512-Gx3sTEajD5r96bJgfuW377PZVFmXIH4TdqDhgGwd2lZQCcMi+DA4TgxJNJGxn0R3aUVzyyE76j4LBrh412mXrw==", - "dev": true, - "dependencies": { - "underscore": "1.9.1", - "web3-eth-iban": "1.2.1", - "web3-utils": "1.2.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/truffle-interface-adapter/node_modules/web3-core-method": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-core-method/-/web3-core-method-1.2.1.tgz", - "integrity": "sha512-Ghg2WS23qi6Xj8Od3VCzaImLHseEA7/usvnOItluiIc5cKs00WYWsNy2YRStzU9a2+z8lwQywPYp0nTzR/QXdQ==", - "dev": true, - "dependencies": { - "underscore": "1.9.1", - "web3-core-helpers": "1.2.1", - "web3-core-promievent": "1.2.1", - "web3-core-subscriptions": "1.2.1", - "web3-utils": "1.2.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/truffle-interface-adapter/node_modules/web3-core-promievent": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-core-promievent/-/web3-core-promievent-1.2.1.tgz", - "integrity": "sha512-IVUqgpIKoeOYblwpex4Hye6npM0aMR+kU49VP06secPeN0rHMyhGF0ZGveWBrGvf8WDPI7jhqPBFIC6Jf3Q3zw==", - "dev": true, - "dependencies": { - "any-promise": "1.3.0", - "eventemitter3": "3.1.2" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/truffle-interface-adapter/node_modules/web3-core-requestmanager": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-core-requestmanager/-/web3-core-requestmanager-1.2.1.tgz", - "integrity": "sha512-xfknTC69RfYmLKC+83Jz73IC3/sS2ZLhGtX33D4Q5nQ8yc39ElyAolxr9sJQS8kihOcM6u4J+8gyGMqsLcpIBg==", - "dev": true, - "dependencies": { - "underscore": "1.9.1", - "web3-core-helpers": "1.2.1", - "web3-providers-http": "1.2.1", - "web3-providers-ipc": "1.2.1", - "web3-providers-ws": "1.2.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/truffle-interface-adapter/node_modules/web3-core-subscriptions": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-core-subscriptions/-/web3-core-subscriptions-1.2.1.tgz", - "integrity": "sha512-nmOwe3NsB8V8UFsY1r+sW6KjdOS68h8nuh7NzlWxBQT/19QSUGiERRTaZXWu5BYvo1EoZRMxCKyCQpSSXLc08g==", - "dev": true, - "dependencies": { - "eventemitter3": "3.1.2", - "underscore": "1.9.1", - "web3-core-helpers": "1.2.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/truffle-interface-adapter/node_modules/web3-eth": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-eth/-/web3-eth-1.2.1.tgz", - "integrity": "sha512-/2xly4Yry5FW1i+uygPjhfvgUP/MS/Dk+PDqmzp5M88tS86A+j8BzKc23GrlA8sgGs0645cpZK/999LpEF5UdA==", - "dev": true, - "dependencies": { - "underscore": "1.9.1", - "web3-core": "1.2.1", - "web3-core-helpers": "1.2.1", - "web3-core-method": "1.2.1", - "web3-core-subscriptions": "1.2.1", - "web3-eth-abi": "1.2.1", - "web3-eth-accounts": "1.2.1", - "web3-eth-contract": "1.2.1", - "web3-eth-ens": "1.2.1", - "web3-eth-iban": "1.2.1", - "web3-eth-personal": "1.2.1", - "web3-net": "1.2.1", - "web3-utils": "1.2.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/truffle-interface-adapter/node_modules/web3-eth-abi": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-eth-abi/-/web3-eth-abi-1.2.1.tgz", - "integrity": "sha512-jI/KhU2a/DQPZXHjo2GW0myEljzfiKOn+h1qxK1+Y9OQfTcBMxrQJyH5AP89O6l6NZ1QvNdq99ThAxBFoy5L+g==", - "dev": true, - "dependencies": { - "ethers": "4.0.0-beta.3", - "underscore": "1.9.1", - "web3-utils": "1.2.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/truffle-interface-adapter/node_modules/web3-eth-abi/node_modules/elliptic": { - "version": "6.3.3", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.3.3.tgz", - "integrity": "sha1-VILZZG1UvLif19mU/J4ulWiHbj8=", - "dev": true, - "dependencies": { - "bn.js": "^4.4.0", - "brorand": "^1.0.1", - "hash.js": "^1.0.0", - "inherits": "^2.0.1" - } - }, - "node_modules/truffle-interface-adapter/node_modules/web3-eth-abi/node_modules/ethers": { - "version": "4.0.0-beta.3", - "resolved": "https://registry.npmjs.org/ethers/-/ethers-4.0.0-beta.3.tgz", - "integrity": "sha512-YYPogooSknTwvHg3+Mv71gM/3Wcrx+ZpCzarBj3mqs9njjRkrOo2/eufzhHloOCo3JSoNI4TQJJ6yU5ABm3Uog==", - "dev": true, - "dependencies": { - "@types/node": "^10.3.2", - "aes-js": "3.0.0", - "bn.js": "^4.4.0", - "elliptic": "6.3.3", - "hash.js": "1.1.3", - "js-sha3": "0.5.7", - "scrypt-js": "2.0.3", - "setimmediate": "1.0.4", - "uuid": "2.0.1", - "xmlhttprequest": "1.8.0" - } - }, - "node_modules/truffle-interface-adapter/node_modules/web3-eth-accounts": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-eth-accounts/-/web3-eth-accounts-1.2.1.tgz", - "integrity": "sha512-26I4qq42STQ8IeKUyur3MdQ1NzrzCqPsmzqpux0j6X/XBD7EjZ+Cs0lhGNkSKH5dI3V8CJasnQ5T1mNKeWB7nQ==", - "dev": true, - "dependencies": { - "any-promise": "1.3.0", - "crypto-browserify": "3.12.0", - "eth-lib": "0.2.7", - "scryptsy": "2.1.0", - "semver": "6.2.0", - "underscore": "1.9.1", - "uuid": "3.3.2", - "web3-core": "1.2.1", - "web3-core-helpers": "1.2.1", - "web3-core-method": "1.2.1", - "web3-utils": "1.2.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/truffle-interface-adapter/node_modules/web3-eth-accounts/node_modules/uuid": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", - "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==", - "dev": true, - "bin": { - "uuid": "bin/uuid" - } - }, - "node_modules/truffle-interface-adapter/node_modules/web3-eth-contract": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-eth-contract/-/web3-eth-contract-1.2.1.tgz", - "integrity": "sha512-kYFESbQ3boC9bl2rYVghj7O8UKMiuKaiMkxvRH5cEDHil8V7MGEGZNH0slSdoyeftZVlaWSMqkRP/chfnKND0g==", - "dev": true, - "dependencies": { - "underscore": "1.9.1", - "web3-core": "1.2.1", - "web3-core-helpers": "1.2.1", - "web3-core-method": "1.2.1", - "web3-core-promievent": "1.2.1", - "web3-core-subscriptions": "1.2.1", - "web3-eth-abi": "1.2.1", - "web3-utils": "1.2.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/truffle-interface-adapter/node_modules/web3-eth-ens": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-eth-ens/-/web3-eth-ens-1.2.1.tgz", - "integrity": "sha512-lhP1kFhqZr2nnbu3CGIFFrAnNxk2veXpOXBY48Tub37RtobDyHijHgrj+xTh+mFiPokyrapVjpFsbGa+Xzye4Q==", - "dev": true, - "dependencies": { - "eth-ens-namehash": "2.0.8", - "underscore": "1.9.1", - "web3-core": "1.2.1", - "web3-core-helpers": "1.2.1", - "web3-core-promievent": "1.2.1", - "web3-eth-abi": "1.2.1", - "web3-eth-contract": "1.2.1", - "web3-utils": "1.2.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/truffle-interface-adapter/node_modules/web3-eth-iban": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-eth-iban/-/web3-eth-iban-1.2.1.tgz", - "integrity": "sha512-9gkr4QPl1jCU+wkgmZ8EwODVO3ovVj6d6JKMos52ggdT2YCmlfvFVF6wlGLwi0VvNa/p+0BjJzaqxnnG/JewjQ==", - "dev": true, - "dependencies": { - "bn.js": "4.11.8", - "web3-utils": "1.2.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/truffle-interface-adapter/node_modules/web3-eth-iban/node_modules/bn.js": { - "version": "4.11.8", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz", - "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==", - "dev": true - }, - "node_modules/truffle-interface-adapter/node_modules/web3-eth-personal": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-eth-personal/-/web3-eth-personal-1.2.1.tgz", - "integrity": "sha512-RNDVSiaSoY4aIp8+Hc7z+X72H7lMb3fmAChuSBADoEc7DsJrY/d0R5qQDK9g9t2BO8oxgLrLNyBP/9ub2Hc6Bg==", - "dev": true, - "dependencies": { - "web3-core": "1.2.1", - "web3-core-helpers": "1.2.1", - "web3-core-method": "1.2.1", - "web3-net": "1.2.1", - "web3-utils": "1.2.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/truffle-interface-adapter/node_modules/web3-net": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-net/-/web3-net-1.2.1.tgz", - "integrity": "sha512-Yt1Bs7WgnLESPe0rri/ZoPWzSy55ovioaP35w1KZydrNtQ5Yq4WcrAdhBzcOW7vAkIwrsLQsvA+hrOCy7mNauw==", - "dev": true, - "dependencies": { - "web3-core": "1.2.1", - "web3-core-method": "1.2.1", - "web3-utils": "1.2.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/truffle-interface-adapter/node_modules/web3-providers-http": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-providers-http/-/web3-providers-http-1.2.1.tgz", - "integrity": "sha512-BDtVUVolT9b3CAzeGVA/np1hhn7RPUZ6YYGB/sYky+GjeO311Yoq8SRDUSezU92x8yImSC2B+SMReGhd1zL+bQ==", - "dev": true, - "dependencies": { - "web3-core-helpers": "1.2.1", - "xhr2-cookies": "1.1.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/truffle-interface-adapter/node_modules/web3-providers-ipc": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-providers-ipc/-/web3-providers-ipc-1.2.1.tgz", - "integrity": "sha512-oPEuOCwxVx8L4CPD0TUdnlOUZwGBSRKScCz/Ws2YHdr9Ium+whm+0NLmOZjkjQp5wovQbyBzNa6zJz1noFRvFA==", - "dev": true, - "dependencies": { - "oboe": "2.1.4", - "underscore": "1.9.1", - "web3-core-helpers": "1.2.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/truffle-interface-adapter/node_modules/web3-providers-ws": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-providers-ws/-/web3-providers-ws-1.2.1.tgz", - "integrity": "sha512-oqsQXzu+ejJACVHy864WwIyw+oB21nw/pI65/sD95Zi98+/HQzFfNcIFneF1NC4bVF3VNX4YHTNq2I2o97LAiA==", - "dev": true, - "dependencies": { - "underscore": "1.9.1", - "web3-core-helpers": "1.2.1", - "websocket": "github:web3-js/WebSocket-Node#polyfill/globalThis" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/truffle-interface-adapter/node_modules/web3-shh": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-shh/-/web3-shh-1.2.1.tgz", - "integrity": "sha512-/3Cl04nza5kuFn25bV3FJWa0s3Vafr5BlT933h26xovQ6HIIz61LmvNQlvX1AhFL+SNJOTcQmK1SM59vcyC8bA==", - "dev": true, - "dependencies": { - "web3-core": "1.2.1", - "web3-core-method": "1.2.1", - "web3-core-subscriptions": "1.2.1", - "web3-net": "1.2.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/truffle-interface-adapter/node_modules/web3-utils": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.2.1.tgz", - "integrity": "sha512-Mrcn3l58L+yCKz3zBryM6JZpNruWuT0OCbag8w+reeNROSGVlXzUQkU+gtAwc9JCZ7tKUyg67+2YUGqUjVcyBA==", - "dev": true, - "dependencies": { - "bn.js": "4.11.8", - "eth-lib": "0.2.7", - "ethjs-unit": "0.1.6", - "number-to-bn": "1.7.0", - "randomhex": "0.1.5", - "underscore": "1.9.1", - "utf8": "3.0.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/truffle-interface-adapter/node_modules/web3-utils/node_modules/bn.js": { - "version": "4.11.8", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz", - "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==", - "dev": true - }, - "node_modules/truffle-plugin-verify": { - "version": "0.5.11", - "resolved": "https://registry.npmjs.org/truffle-plugin-verify/-/truffle-plugin-verify-0.5.11.tgz", - "integrity": "sha512-IL8DDsA3YCUQcrRXtarTEXoZJeb2Rlj8jwNjdiWWyDZ7r/EQZndJooorWo19qDpZf9s8ydpvTE/Bb/uyna6Zag==", - "dev": true, - "dependencies": { - "axios": "^0.21.1", - "cli-logger": "^0.5.40", - "delay": "^5.0.0", - "querystring": "^0.2.1" - } - }, - "node_modules/truffle-plugin-verify/node_modules/axios": { - "version": "0.21.1", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.1.tgz", - "integrity": "sha512-dKQiRHxGD9PPRIUNIWvZhPTPpl1rf/OxTYKsqKUDjBwYylTvV7SjSHJb9ratfyzM6wCdLCOYLzs73qpg5c4iGA==", - "dev": true, - "dependencies": { - "follow-redirects": "^1.10.0" - } - }, - "node_modules/truffle-plugin-verify/node_modules/follow-redirects": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.1.tgz", - "integrity": "sha512-HWqDgT7ZEkqRzBvc2s64vSZ/hfOceEol3ac/7tKwzuvEyWx3/4UegXh5oBOIotkGsObyk3xznnSRVADBgWSQVg==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://github.com/sponsors/RubenVerborgh" - } - ], - "engines": { - "node": ">=4.0" - }, - "peerDependenciesMeta": { - "debug": { - "optional": true - } - } - }, - "node_modules/truffle-provider": { - "version": "0.1.16", - "resolved": "https://registry.npmjs.org/truffle-provider/-/truffle-provider-0.1.16.tgz", - "integrity": "sha512-3d5WqSKIzZcpgW44mdfF97s+Tgh2a/3Ly6vHJirBV9OZDUtiAzP6WVnlRNvmlDJXFCDqt6Yb9qQWoXFHbYoR6w==", - "dev": true, - "dependencies": { - "@truffle/error": "^0.0.6", - "truffle-interface-adapter": "^0.2.5", - "web3": "1.2.1" - } - }, - "node_modules/truffle-provider/node_modules/@types/node": { - "version": "10.17.28", - "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.28.tgz", - "integrity": "sha512-dzjES1Egb4c1a89C7lKwQh8pwjYmlOAG9dW1pBgxEk57tMrLnssOfEthz8kdkNaBd7lIqQx7APm5+mZ619IiCQ==", - "dev": true - }, - "node_modules/truffle-provider/node_modules/bn.js": { - "version": "4.11.8", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz", - "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==", - "dev": true - }, - "node_modules/truffle-provider/node_modules/eth-lib": { - "version": "0.2.7", - "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.7.tgz", - "integrity": "sha1-L5Pxex4jrsN1nNSj/iDBKGo/wco=", - "dev": true, - "dependencies": { - "bn.js": "^4.11.6", - "elliptic": "^6.4.0", - "xhr-request-promise": "^0.1.2" - } - }, - "node_modules/truffle-provider/node_modules/ethers": { - "version": "4.0.0-beta.3", - "resolved": "https://registry.npmjs.org/ethers/-/ethers-4.0.0-beta.3.tgz", - "integrity": "sha512-YYPogooSknTwvHg3+Mv71gM/3Wcrx+ZpCzarBj3mqs9njjRkrOo2/eufzhHloOCo3JSoNI4TQJJ6yU5ABm3Uog==", - "dev": true, - "dependencies": { - "@types/node": "^10.3.2", - "aes-js": "3.0.0", - "bn.js": "^4.4.0", - "elliptic": "6.3.3", - "hash.js": "1.1.3", - "js-sha3": "0.5.7", - "scrypt-js": "2.0.3", - "setimmediate": "1.0.4", - "uuid": "2.0.1", - "xmlhttprequest": "1.8.0" - } - }, - "node_modules/truffle-provider/node_modules/ethers/node_modules/elliptic": { - "version": "6.3.3", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.3.3.tgz", - "integrity": "sha1-VILZZG1UvLif19mU/J4ulWiHbj8=", - "dev": true, - "dependencies": { - "bn.js": "^4.4.0", - "brorand": "^1.0.1", - "hash.js": "^1.0.0", - "inherits": "^2.0.1" - } - }, - "node_modules/truffle-provider/node_modules/scrypt-js": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-2.0.3.tgz", - "integrity": "sha1-uwBAvgMEPamgEqLOqfyfhSz8h9Q=", - "dev": true - }, - "node_modules/truffle-provider/node_modules/semver": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.2.0.tgz", - "integrity": "sha512-jdFC1VdUGT/2Scgbimf7FSx9iJLXoqfglSF+gJeuNWVpiE37OIbc1jywR/GJyFdz3mnkz2/id0L0J/cr0izR5A==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/truffle-provider/node_modules/underscore": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.9.1.tgz", - "integrity": "sha512-5/4etnCkd9c8gwgowi5/om/mYO5ajCaOgdzj/oW+0eQV9WxKBDZw5+ycmKmeaTXjInS/W0BzpGLo2xR2aBwZdg==", - "dev": true - }, - "node_modules/truffle-provider/node_modules/uuid": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-2.0.1.tgz", - "integrity": "sha1-wqMN7bPlNdcsz4LjQ5QaULqFM6w=", - "dev": true - }, - "node_modules/truffle-provider/node_modules/web3": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3/-/web3-1.2.1.tgz", - "integrity": "sha512-nNMzeCK0agb5i/oTWNdQ1aGtwYfXzHottFP2Dz0oGIzavPMGSKyVlr8ibVb1yK5sJBjrWVnTdGaOC2zKDFuFRw==", - "dev": true, - "dependencies": { - "web3-bzz": "1.2.1", - "web3-core": "1.2.1", - "web3-eth": "1.2.1", - "web3-eth-personal": "1.2.1", - "web3-net": "1.2.1", - "web3-shh": "1.2.1", - "web3-utils": "1.2.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/truffle-provider/node_modules/web3-bzz": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-bzz/-/web3-bzz-1.2.1.tgz", - "integrity": "sha512-LdOO44TuYbGIPfL4ilkuS89GQovxUpmLz6C1UC7VYVVRILeZS740FVB3j9V4P4FHUk1RenaDfKhcntqgVCHtjw==", - "dev": true, - "dependencies": { - "got": "9.6.0", - "swarm-js": "0.1.39", - "underscore": "1.9.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/truffle-provider/node_modules/web3-core": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-core/-/web3-core-1.2.1.tgz", - "integrity": "sha512-5ODwIqgl8oIg/0+Ai4jsLxkKFWJYE0uLuE1yUKHNVCL4zL6n3rFjRMpKPokd6id6nJCNgeA64KdWQ4XfpnjdMg==", - "dev": true, - "dependencies": { - "web3-core-helpers": "1.2.1", - "web3-core-method": "1.2.1", - "web3-core-requestmanager": "1.2.1", - "web3-utils": "1.2.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/truffle-provider/node_modules/web3-core-helpers": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.2.1.tgz", - "integrity": "sha512-Gx3sTEajD5r96bJgfuW377PZVFmXIH4TdqDhgGwd2lZQCcMi+DA4TgxJNJGxn0R3aUVzyyE76j4LBrh412mXrw==", - "dev": true, - "dependencies": { - "underscore": "1.9.1", - "web3-eth-iban": "1.2.1", - "web3-utils": "1.2.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/truffle-provider/node_modules/web3-core-method": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-core-method/-/web3-core-method-1.2.1.tgz", - "integrity": "sha512-Ghg2WS23qi6Xj8Od3VCzaImLHseEA7/usvnOItluiIc5cKs00WYWsNy2YRStzU9a2+z8lwQywPYp0nTzR/QXdQ==", - "dev": true, - "dependencies": { - "underscore": "1.9.1", - "web3-core-helpers": "1.2.1", - "web3-core-promievent": "1.2.1", - "web3-core-subscriptions": "1.2.1", - "web3-utils": "1.2.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/truffle-provider/node_modules/web3-core-promievent": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-core-promievent/-/web3-core-promievent-1.2.1.tgz", - "integrity": "sha512-IVUqgpIKoeOYblwpex4Hye6npM0aMR+kU49VP06secPeN0rHMyhGF0ZGveWBrGvf8WDPI7jhqPBFIC6Jf3Q3zw==", - "dev": true, - "dependencies": { - "any-promise": "1.3.0", - "eventemitter3": "3.1.2" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/truffle-provider/node_modules/web3-core-requestmanager": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-core-requestmanager/-/web3-core-requestmanager-1.2.1.tgz", - "integrity": "sha512-xfknTC69RfYmLKC+83Jz73IC3/sS2ZLhGtX33D4Q5nQ8yc39ElyAolxr9sJQS8kihOcM6u4J+8gyGMqsLcpIBg==", - "dev": true, - "dependencies": { - "underscore": "1.9.1", - "web3-core-helpers": "1.2.1", - "web3-providers-http": "1.2.1", - "web3-providers-ipc": "1.2.1", - "web3-providers-ws": "1.2.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/truffle-provider/node_modules/web3-core-subscriptions": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-core-subscriptions/-/web3-core-subscriptions-1.2.1.tgz", - "integrity": "sha512-nmOwe3NsB8V8UFsY1r+sW6KjdOS68h8nuh7NzlWxBQT/19QSUGiERRTaZXWu5BYvo1EoZRMxCKyCQpSSXLc08g==", - "dev": true, - "dependencies": { - "eventemitter3": "3.1.2", - "underscore": "1.9.1", - "web3-core-helpers": "1.2.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/truffle-provider/node_modules/web3-eth": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-eth/-/web3-eth-1.2.1.tgz", - "integrity": "sha512-/2xly4Yry5FW1i+uygPjhfvgUP/MS/Dk+PDqmzp5M88tS86A+j8BzKc23GrlA8sgGs0645cpZK/999LpEF5UdA==", - "dev": true, - "dependencies": { - "underscore": "1.9.1", - "web3-core": "1.2.1", - "web3-core-helpers": "1.2.1", - "web3-core-method": "1.2.1", - "web3-core-subscriptions": "1.2.1", - "web3-eth-abi": "1.2.1", - "web3-eth-accounts": "1.2.1", - "web3-eth-contract": "1.2.1", - "web3-eth-ens": "1.2.1", - "web3-eth-iban": "1.2.1", - "web3-eth-personal": "1.2.1", - "web3-net": "1.2.1", - "web3-utils": "1.2.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/truffle-provider/node_modules/web3-eth-abi": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-eth-abi/-/web3-eth-abi-1.2.1.tgz", - "integrity": "sha512-jI/KhU2a/DQPZXHjo2GW0myEljzfiKOn+h1qxK1+Y9OQfTcBMxrQJyH5AP89O6l6NZ1QvNdq99ThAxBFoy5L+g==", - "dev": true, - "dependencies": { - "ethers": "4.0.0-beta.3", - "underscore": "1.9.1", - "web3-utils": "1.2.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/truffle-provider/node_modules/web3-eth-accounts": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-eth-accounts/-/web3-eth-accounts-1.2.1.tgz", - "integrity": "sha512-26I4qq42STQ8IeKUyur3MdQ1NzrzCqPsmzqpux0j6X/XBD7EjZ+Cs0lhGNkSKH5dI3V8CJasnQ5T1mNKeWB7nQ==", - "dev": true, - "dependencies": { - "any-promise": "1.3.0", - "crypto-browserify": "3.12.0", - "eth-lib": "0.2.7", - "scryptsy": "2.1.0", - "semver": "6.2.0", - "underscore": "1.9.1", - "uuid": "3.3.2", - "web3-core": "1.2.1", - "web3-core-helpers": "1.2.1", - "web3-core-method": "1.2.1", - "web3-utils": "1.2.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/truffle-provider/node_modules/web3-eth-accounts/node_modules/uuid": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", - "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==", - "dev": true, - "bin": { - "uuid": "bin/uuid" - } - }, - "node_modules/truffle-provider/node_modules/web3-eth-contract": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-eth-contract/-/web3-eth-contract-1.2.1.tgz", - "integrity": "sha512-kYFESbQ3boC9bl2rYVghj7O8UKMiuKaiMkxvRH5cEDHil8V7MGEGZNH0slSdoyeftZVlaWSMqkRP/chfnKND0g==", - "dev": true, - "dependencies": { - "underscore": "1.9.1", - "web3-core": "1.2.1", - "web3-core-helpers": "1.2.1", - "web3-core-method": "1.2.1", - "web3-core-promievent": "1.2.1", - "web3-core-subscriptions": "1.2.1", - "web3-eth-abi": "1.2.1", - "web3-utils": "1.2.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/truffle-provider/node_modules/web3-eth-ens": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-eth-ens/-/web3-eth-ens-1.2.1.tgz", - "integrity": "sha512-lhP1kFhqZr2nnbu3CGIFFrAnNxk2veXpOXBY48Tub37RtobDyHijHgrj+xTh+mFiPokyrapVjpFsbGa+Xzye4Q==", - "dev": true, - "dependencies": { - "eth-ens-namehash": "2.0.8", - "underscore": "1.9.1", - "web3-core": "1.2.1", - "web3-core-helpers": "1.2.1", - "web3-core-promievent": "1.2.1", - "web3-eth-abi": "1.2.1", - "web3-eth-contract": "1.2.1", - "web3-utils": "1.2.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/truffle-provider/node_modules/web3-eth-iban": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-eth-iban/-/web3-eth-iban-1.2.1.tgz", - "integrity": "sha512-9gkr4QPl1jCU+wkgmZ8EwODVO3ovVj6d6JKMos52ggdT2YCmlfvFVF6wlGLwi0VvNa/p+0BjJzaqxnnG/JewjQ==", - "dev": true, - "dependencies": { - "bn.js": "4.11.8", - "web3-utils": "1.2.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/truffle-provider/node_modules/web3-eth-personal": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-eth-personal/-/web3-eth-personal-1.2.1.tgz", - "integrity": "sha512-RNDVSiaSoY4aIp8+Hc7z+X72H7lMb3fmAChuSBADoEc7DsJrY/d0R5qQDK9g9t2BO8oxgLrLNyBP/9ub2Hc6Bg==", - "dev": true, - "dependencies": { - "web3-core": "1.2.1", - "web3-core-helpers": "1.2.1", - "web3-core-method": "1.2.1", - "web3-net": "1.2.1", - "web3-utils": "1.2.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/truffle-provider/node_modules/web3-net": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-net/-/web3-net-1.2.1.tgz", - "integrity": "sha512-Yt1Bs7WgnLESPe0rri/ZoPWzSy55ovioaP35w1KZydrNtQ5Yq4WcrAdhBzcOW7vAkIwrsLQsvA+hrOCy7mNauw==", - "dev": true, - "dependencies": { - "web3-core": "1.2.1", - "web3-core-method": "1.2.1", - "web3-utils": "1.2.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/truffle-provider/node_modules/web3-providers-http": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-providers-http/-/web3-providers-http-1.2.1.tgz", - "integrity": "sha512-BDtVUVolT9b3CAzeGVA/np1hhn7RPUZ6YYGB/sYky+GjeO311Yoq8SRDUSezU92x8yImSC2B+SMReGhd1zL+bQ==", - "dev": true, - "dependencies": { - "web3-core-helpers": "1.2.1", - "xhr2-cookies": "1.1.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/truffle-provider/node_modules/web3-providers-ipc": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-providers-ipc/-/web3-providers-ipc-1.2.1.tgz", - "integrity": "sha512-oPEuOCwxVx8L4CPD0TUdnlOUZwGBSRKScCz/Ws2YHdr9Ium+whm+0NLmOZjkjQp5wovQbyBzNa6zJz1noFRvFA==", - "dev": true, - "dependencies": { - "oboe": "2.1.4", - "underscore": "1.9.1", - "web3-core-helpers": "1.2.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/truffle-provider/node_modules/web3-providers-ws": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-providers-ws/-/web3-providers-ws-1.2.1.tgz", - "integrity": "sha512-oqsQXzu+ejJACVHy864WwIyw+oB21nw/pI65/sD95Zi98+/HQzFfNcIFneF1NC4bVF3VNX4YHTNq2I2o97LAiA==", - "dev": true, - "dependencies": { - "underscore": "1.9.1", - "web3-core-helpers": "1.2.1", - "websocket": "github:web3-js/WebSocket-Node#polyfill/globalThis" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/truffle-provider/node_modules/web3-shh": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-shh/-/web3-shh-1.2.1.tgz", - "integrity": "sha512-/3Cl04nza5kuFn25bV3FJWa0s3Vafr5BlT933h26xovQ6HIIz61LmvNQlvX1AhFL+SNJOTcQmK1SM59vcyC8bA==", - "dev": true, - "dependencies": { - "web3-core": "1.2.1", - "web3-core-method": "1.2.1", - "web3-core-subscriptions": "1.2.1", - "web3-net": "1.2.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/truffle-provider/node_modules/web3-utils": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.2.1.tgz", - "integrity": "sha512-Mrcn3l58L+yCKz3zBryM6JZpNruWuT0OCbag8w+reeNROSGVlXzUQkU+gtAwc9JCZ7tKUyg67+2YUGqUjVcyBA==", - "dev": true, - "dependencies": { - "bn.js": "4.11.8", - "eth-lib": "0.2.7", - "ethjs-unit": "0.1.6", - "number-to-bn": "1.7.0", - "randomhex": "0.1.5", - "underscore": "1.9.1", - "utf8": "3.0.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/truffle/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/truffle/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/truffle/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==", - "dev": true - }, - "node_modules/truffle/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==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/truffle/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "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/truffle/node_modules/chalk/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/truffle/node_modules/chokidar": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", - "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ], - "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" - } - }, - "node_modules/truffle/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==", - "dev": true, - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" - } - }, - "node_modules/truffle/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/truffle/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/truffle/node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/truffle/node_modules/debug/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "node_modules/truffle/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==", - "dev": true, - "engines": { - "node": ">=0.3.1" - } - }, - "node_modules/truffle/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==", - "dev": true - }, - "node_modules/truffle/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==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/truffle/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==", - "dev": true, - "dependencies": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/truffle/node_modules/glob": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", - "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", - "dev": true, - "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/truffle/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/truffle/node_modules/is-fullwidth-code-point": { - "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==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/truffle/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==", - "dev": true, - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/truffle/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==", - "dev": true, - "dependencies": { - "p-locate": "^5.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/truffle/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==", - "dev": true, - "dependencies": { - "chalk": "^4.1.0", - "is-unicode-supported": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/truffle/node_modules/mocha": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/mocha/-/mocha-10.1.0.tgz", - "integrity": "sha512-vUF7IYxEoN7XhQpFLxQAEMtE4W91acW4B6En9l97MwE9stL1A9gusXfoHZCLVHDUJ/7V5+lbCM6yMqzo5vNymg==", - "dev": true, - "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/truffle/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==", - "dev": true, - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/truffle/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==", - "dev": true - }, - "node_modules/truffle/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==", - "dev": true, - "bin": { - "nanoid": "bin/nanoid.cjs" - }, - "engines": { - "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" - } - }, - "node_modules/truffle/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==", - "dev": true, - "dependencies": { - "yocto-queue": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/truffle/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==", - "dev": true, - "dependencies": { - "p-limit": "^3.0.2" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/truffle/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==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/truffle/node_modules/readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "dev": true, - "dependencies": { - "picomatch": "^2.2.1" - }, - "engines": { - "node": ">=8.10.0" - } - }, - "node_modules/truffle/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==", - "dev": true, - "dependencies": { - "randombytes": "^2.1.0" - } - }, - "node_modules/truffle/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/truffle/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/truffle/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_modules/truffle/node_modules/wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/truffle/node_modules/y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/truffle/node_modules/yargs": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", - "dev": true, - "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/truffle/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==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/ts-command-line-args": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/ts-command-line-args/-/ts-command-line-args-2.4.2.tgz", - "integrity": "sha512-mJLQQBOdyD4XI/ZWQY44PIdYde47JhV2xl380O7twPkTQ+Y5vFDHsk8LOeXKuz7dVY5aDCfAzRarNfSqtKOkQQ==", - "dependencies": { - "@morgan-stanley/ts-mocking-bird": "^0.6.2", - "chalk": "^4.1.0", - "command-line-args": "^5.1.1", - "command-line-usage": "^6.1.0", - "string-format": "^2.0.0" - }, - "bin": { - "write-markdown": "dist/write-markdown.js" - } - }, - "node_modules/ts-command-line-args/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/ts-command-line-args/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/ts-command-line-args/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/ts-command-line-args/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "node_modules/ts-command-line-args/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/ts-command-line-args/node_modules/supports-color": { - "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" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/ts-essentials": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/ts-essentials/-/ts-essentials-1.0.4.tgz", - "integrity": "sha512-q3N1xS4vZpRouhYHDPwO0bDW3EZ6SK9CrrDHxi/D6BPReSjpVgWIOpLS2o0gSBZm+7q/wyKp6RVM1AeeW7uyfQ==", - "dev": true - }, - "node_modules/ts-generator": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/ts-generator/-/ts-generator-0.0.8.tgz", - "integrity": "sha512-Gi+aZCELpVL7Mqb+GuMgM+n8JZ/arZZib1iD/R9Ok8JDjOCOCrqS9b1lr72ku7J45WeDCFZxyJoRsiQvhokCnw==", - "dev": true, - "dependencies": { - "@types/mkdirp": "^0.5.2", - "@types/prettier": "^1.13.2", - "@types/resolve": "^0.0.8", - "chalk": "^2.4.1", - "glob": "^7.1.2", - "mkdirp": "^0.5.1", - "prettier": "^1.14.2", - "resolve": "^1.8.1", - "ts-essentials": "^1.0.0" - }, - "bin": { - "ts-generator": "dist/cli/run.js" - } - }, - "node_modules/ts-generator/node_modules/mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "dev": true, - "dependencies": { - "minimist": "^1.2.5" - }, - "bin": { - "mkdirp": "bin/cmd.js" - } - }, - "node_modules/ts-node": { - "version": "10.9.1", - "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.1.tgz", - "integrity": "sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==", - "dev": true, - "dependencies": { - "@cspotcode/source-map-support": "^0.8.0", - "@tsconfig/node10": "^1.0.7", - "@tsconfig/node12": "^1.0.7", - "@tsconfig/node14": "^1.0.0", - "@tsconfig/node16": "^1.0.2", - "acorn": "^8.4.1", - "acorn-walk": "^8.1.1", - "arg": "^4.1.0", - "create-require": "^1.1.0", - "diff": "^4.0.1", - "make-error": "^1.1.1", - "v8-compile-cache-lib": "^3.0.1", - "yn": "3.1.1" - }, - "bin": { - "ts-node": "dist/bin.js", - "ts-node-cwd": "dist/bin-cwd.js", - "ts-node-esm": "dist/bin-esm.js", - "ts-node-script": "dist/bin-script.js", - "ts-node-transpile-only": "dist/bin-transpile.js", - "ts-script": "dist/bin-script-deprecated.js" - }, - "peerDependencies": { - "@swc/core": ">=1.2.50", - "@swc/wasm": ">=1.2.50", - "@types/node": "*", - "typescript": ">=2.7" - }, - "peerDependenciesMeta": { - "@swc/core": { - "optional": true - }, - "@swc/wasm": { - "optional": true - } - } - }, - "node_modules/ts-node/node_modules/acorn": { - "version": "8.8.2", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz", - "integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==", - "dev": true, - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/tslib": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.13.0.tgz", - "integrity": "sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q==", - "dev": true - }, - "node_modules/tsort": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/tsort/-/tsort-0.0.1.tgz", - "integrity": "sha1-4igPXoF/i/QnVlf9D5rr1E9aJ4Y=", - "dev": true - }, - "node_modules/tty-browserify": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", - "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=" - }, - "node_modules/tunnel-agent": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", - "dependencies": { - "safe-buffer": "^5.0.1" - }, - "engines": { - "node": "*" - } - }, - "node_modules/tweetnacl": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=" - }, - "node_modules/tweetnacl-util": { - "version": "0.15.1", - "resolved": "https://registry.npmjs.org/tweetnacl-util/-/tweetnacl-util-0.15.1.tgz", - "integrity": "sha512-RKJBIj8lySrShN4w6i/BonWp2Z/uxwC3h4y7xsRrpP59ZboCd0GpEVsOnMDYLMmKBpYhb5TgHzZXy7wTfYFBRw==", - "dev": true - }, - "node_modules/type": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/type/-/type-1.2.0.tgz", - "integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==" - }, - "node_modules/type-check": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", - "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", - "dev": true, - "dependencies": { - "prelude-ls": "~1.1.2" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/type-detect": { - "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==", - "engines": { - "node": ">=4" - } - }, - "node_modules/type-fest": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", - "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/type-is": { - "version": "1.6.18", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", - "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", - "dev": true, - "dependencies": { - "media-typer": "0.3.0", - "mime-types": "~2.1.24" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/typechain": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/typechain/-/typechain-8.1.1.tgz", - "integrity": "sha512-uF/sUvnXTOVF2FHKhQYnxHk4su4JjZR8vr4mA2mBaRwHTbwh0jIlqARz9XJr1tA0l7afJGvEa1dTSi4zt039LQ==", - "dependencies": { - "@types/prettier": "^2.1.1", - "debug": "^4.3.1", - "fs-extra": "^7.0.0", - "glob": "7.1.7", - "js-sha3": "^0.8.0", - "lodash": "^4.17.15", - "mkdirp": "^1.0.4", - "prettier": "^2.3.1", - "ts-command-line-args": "^2.2.0", - "ts-essentials": "^7.0.1" - }, - "bin": { - "typechain": "dist/cli/cli.js" - }, - "peerDependencies": { - "typescript": ">=4.3.0" - } - }, - "node_modules/typechain-target-truffle": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/typechain-target-truffle/-/typechain-target-truffle-1.0.2.tgz", - "integrity": "sha512-XF3Iq2IzR+Pqvx6fcKIKGXNEk3lEcY24vYv9VqoVPfPB6vUM09PRLJCeLm1/ag6Pr2PICKUA0f4Es+YTR3ESKA==", - "dev": true, - "dependencies": { - "lodash": "^4.17.15" - } - }, - "node_modules/typechain-target-web3-v1": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/typechain-target-web3-v1/-/typechain-target-web3-v1-1.0.4.tgz", - "integrity": "sha512-jQ6eCfY7QorBq6kQDjSy5LMuImZGkp6IXR6FXZp7/ulITIxAfb6Dxh+yvh0NN/zboLnMPvvSJi6tHWCqlwfSDA==", - "dev": true, - "dependencies": { - "lodash": "^4.17.15", - "web3": "^1.2.4" - } - }, - "node_modules/typechain-target-web3-v1/node_modules/@ethersproject/abi": { - "version": "5.0.0-beta.153", - "resolved": "https://registry.npmjs.org/@ethersproject/abi/-/abi-5.0.0-beta.153.tgz", - "integrity": "sha512-aXweZ1Z7vMNzJdLpR1CZUAIgnwjrZeUSvN9syCwlBaEBUFJmFY+HHnfuTI5vIhVs/mRkfJVrbEyl51JZQqyjAg==", - "dev": true, - "dependencies": { - "@ethersproject/address": ">=5.0.0-beta.128", - "@ethersproject/bignumber": ">=5.0.0-beta.130", - "@ethersproject/bytes": ">=5.0.0-beta.129", - "@ethersproject/constants": ">=5.0.0-beta.128", - "@ethersproject/hash": ">=5.0.0-beta.128", - "@ethersproject/keccak256": ">=5.0.0-beta.127", - "@ethersproject/logger": ">=5.0.0-beta.129", - "@ethersproject/properties": ">=5.0.0-beta.131", - "@ethersproject/strings": ">=5.0.0-beta.130" - } - }, - "node_modules/typechain-target-web3-v1/node_modules/@types/node": { - "version": "12.12.53", - "resolved": "https://registry.npmjs.org/@types/node/-/node-12.12.53.tgz", - "integrity": "sha512-51MYTDTyCziHb70wtGNFRwB4l+5JNvdqzFSkbDvpbftEgVUBEE+T5f7pROhWMp/fxp07oNIEQZd5bbfAH22ohQ==", - "dev": true - }, - "node_modules/typechain-target-web3-v1/node_modules/bignumber.js": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.0.0.tgz", - "integrity": "sha512-t/OYhhJ2SD+YGBQcjY8GzzDHEk9f3nerxjtfa6tlMXfe7frs/WozhvCNoGvpM0P3bNf3Gq5ZRMlGr5f3r4/N8A==", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/typechain-target-web3-v1/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/typechain-target-web3-v1/node_modules/eventemitter3": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.4.tgz", - "integrity": "sha512-rlaVLnVxtxvoyLsQQFBx53YmXHDxRIzzTLbdfxqi4yocpSjAxXwkU0cScM5JgSKMqEhrZpnvQ2D9gjylR0AimQ==", - "dev": true - }, - "node_modules/typechain-target-web3-v1/node_modules/fs-extra": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-4.0.3.tgz", - "integrity": "sha512-q6rbdDd1o2mAnQreO7YADIxf/Whx4AHBiRf6d+/cVT8h44ss+lHgxf1FemcqDnQt9X3ct4McHr+JMGlYSsK7Cg==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - }, - "node_modules/typechain-target-web3-v1/node_modules/get-stream": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", - "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/typechain-target-web3-v1/node_modules/p-cancelable": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-0.3.0.tgz", - "integrity": "sha512-RVbZPLso8+jFeq1MfNvgXtCRED2raz/dKpacfTNxsx6pLEpEomM7gah6VeHSYV3+vo0OAi4MkArtQcWWXuQoyw==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/typechain-target-web3-v1/node_modules/prepend-http": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", - "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/typechain-target-web3-v1/node_modules/scrypt-js": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-3.0.1.tgz", - "integrity": "sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA==", - "dev": true - }, - "node_modules/typechain-target-web3-v1/node_modules/setimmediate": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", - "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=", - "dev": true - }, - "node_modules/typechain-target-web3-v1/node_modules/swarm-js": { - "version": "0.1.40", - "resolved": "https://registry.npmjs.org/swarm-js/-/swarm-js-0.1.40.tgz", - "integrity": "sha512-yqiOCEoA4/IShXkY3WKwP5PvZhmoOOD8clsKA7EEcRILMkTEYHCQ21HDCAcVpmIxZq4LyZvWeRJ6quIyHk1caA==", - "dev": true, - "dependencies": { - "bluebird": "^3.5.0", - "buffer": "^5.0.5", - "eth-lib": "^0.1.26", - "fs-extra": "^4.0.2", - "got": "^7.1.0", - "mime-types": "^2.1.16", - "mkdirp-promise": "^5.0.1", - "mock-fs": "^4.1.0", - "setimmediate": "^1.0.5", - "tar": "^4.0.2", - "xhr-request": "^1.0.1" - } - }, - "node_modules/typechain-target-web3-v1/node_modules/swarm-js/node_modules/got": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/got/-/got-7.1.0.tgz", - "integrity": "sha512-Y5WMo7xKKq1muPsxD+KmrR8DH5auG7fBdDVueZwETwV6VytKyU9OX/ddpq2/1hp1vIPvVb4T81dKQz3BivkNLw==", - "dev": true, - "dependencies": { - "decompress-response": "^3.2.0", - "duplexer3": "^0.1.4", - "get-stream": "^3.0.0", - "is-plain-obj": "^1.1.0", - "is-retry-allowed": "^1.0.0", - "is-stream": "^1.0.0", - "isurl": "^1.0.0-alpha5", - "lowercase-keys": "^1.0.0", - "p-cancelable": "^0.3.0", - "p-timeout": "^1.1.1", - "safe-buffer": "^5.0.1", - "timed-out": "^4.0.0", - "url-parse-lax": "^1.0.0", - "url-to-options": "^1.0.1" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/typechain-target-web3-v1/node_modules/underscore": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.9.1.tgz", - "integrity": "sha512-5/4etnCkd9c8gwgowi5/om/mYO5ajCaOgdzj/oW+0eQV9WxKBDZw5+ycmKmeaTXjInS/W0BzpGLo2xR2aBwZdg==", - "dev": true - }, - "node_modules/typechain-target-web3-v1/node_modules/url-parse-lax": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz", - "integrity": "sha1-evjzA2Rem9eaJy56FKxovAYJ2nM=", - "dev": true, - "dependencies": { - "prepend-http": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/typechain-target-web3-v1/node_modules/uuid": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", - "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==", - "dev": true, - "bin": { - "uuid": "bin/uuid" - } - }, - "node_modules/typechain-target-web3-v1/node_modules/web3": { - "version": "1.2.11", - "resolved": "https://registry.npmjs.org/web3/-/web3-1.2.11.tgz", - "integrity": "sha512-mjQ8HeU41G6hgOYm1pmeH0mRAeNKJGnJEUzDMoerkpw7QUQT4exVREgF1MYPvL/z6vAshOXei25LE/t/Bxl8yQ==", - "dev": true, - "hasInstallScript": true, - "dependencies": { - "web3-bzz": "1.2.11", - "web3-core": "1.2.11", - "web3-eth": "1.2.11", - "web3-eth-personal": "1.2.11", - "web3-net": "1.2.11", - "web3-shh": "1.2.11", - "web3-utils": "1.2.11" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/typechain-target-web3-v1/node_modules/web3-bzz": { - "version": "1.2.11", - "resolved": "https://registry.npmjs.org/web3-bzz/-/web3-bzz-1.2.11.tgz", - "integrity": "sha512-XGpWUEElGypBjeFyUhTkiPXFbDVD6Nr/S5jznE3t8cWUA0FxRf1n3n/NuIZeb0H9RkN2Ctd/jNma/k8XGa3YKg==", - "dev": true, - "dependencies": { - "@types/node": "^12.12.6", - "got": "9.6.0", - "swarm-js": "^0.1.40", - "underscore": "1.9.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/typechain-target-web3-v1/node_modules/web3-core": { - "version": "1.2.11", - "resolved": "https://registry.npmjs.org/web3-core/-/web3-core-1.2.11.tgz", - "integrity": "sha512-CN7MEYOY5ryo5iVleIWRE3a3cZqVaLlIbIzDPsvQRUfzYnvzZQRZBm9Mq+ttDi2STOOzc1MKylspz/o3yq/LjQ==", - "dev": true, - "dependencies": { - "@types/bn.js": "^4.11.5", - "@types/node": "^12.12.6", - "bignumber.js": "^9.0.0", - "web3-core-helpers": "1.2.11", - "web3-core-method": "1.2.11", - "web3-core-requestmanager": "1.2.11", - "web3-utils": "1.2.11" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/typechain-target-web3-v1/node_modules/web3-core-helpers": { - "version": "1.2.11", - "resolved": "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.2.11.tgz", - "integrity": "sha512-PEPoAoZd5ME7UfbnCZBdzIerpe74GEvlwT4AjOmHeCVZoIFk7EqvOZDejJHt+feJA6kMVTdd0xzRNN295UhC1A==", - "dev": true, - "dependencies": { - "underscore": "1.9.1", - "web3-eth-iban": "1.2.11", - "web3-utils": "1.2.11" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/typechain-target-web3-v1/node_modules/web3-core-method": { - "version": "1.2.11", - "resolved": "https://registry.npmjs.org/web3-core-method/-/web3-core-method-1.2.11.tgz", - "integrity": "sha512-ff0q76Cde94HAxLDZ6DbdmKniYCQVtvuaYh+rtOUMB6kssa5FX0q3vPmixi7NPooFnbKmmZCM6NvXg4IreTPIw==", - "dev": true, - "dependencies": { - "@ethersproject/transactions": "^5.0.0-beta.135", - "underscore": "1.9.1", - "web3-core-helpers": "1.2.11", - "web3-core-promievent": "1.2.11", - "web3-core-subscriptions": "1.2.11", - "web3-utils": "1.2.11" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/typechain-target-web3-v1/node_modules/web3-core-promievent": { - "version": "1.2.11", - "resolved": "https://registry.npmjs.org/web3-core-promievent/-/web3-core-promievent-1.2.11.tgz", - "integrity": "sha512-il4McoDa/Ox9Agh4kyfQ8Ak/9ABYpnF8poBLL33R/EnxLsJOGQG2nZhkJa3I067hocrPSjEdlPt/0bHXsln4qA==", - "dev": true, - "dependencies": { - "eventemitter3": "4.0.4" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/typechain-target-web3-v1/node_modules/web3-core-requestmanager": { - "version": "1.2.11", - "resolved": "https://registry.npmjs.org/web3-core-requestmanager/-/web3-core-requestmanager-1.2.11.tgz", - "integrity": "sha512-oFhBtLfOiIbmfl6T6gYjjj9igOvtyxJ+fjS+byRxiwFJyJ5BQOz4/9/17gWR1Cq74paTlI7vDGxYfuvfE/mKvA==", - "dev": true, - "dependencies": { - "underscore": "1.9.1", - "web3-core-helpers": "1.2.11", - "web3-providers-http": "1.2.11", - "web3-providers-ipc": "1.2.11", - "web3-providers-ws": "1.2.11" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/typechain-target-web3-v1/node_modules/web3-core-subscriptions": { - "version": "1.2.11", - "resolved": "https://registry.npmjs.org/web3-core-subscriptions/-/web3-core-subscriptions-1.2.11.tgz", - "integrity": "sha512-qEF/OVqkCvQ7MPs1JylIZCZkin0aKK9lDxpAtQ1F8niEDGFqn7DT8E/vzbIa0GsOjL2fZjDhWJsaW+BSoAW1gg==", - "dev": true, - "dependencies": { - "eventemitter3": "4.0.4", - "underscore": "1.9.1", - "web3-core-helpers": "1.2.11" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/typechain-target-web3-v1/node_modules/web3-eth": { - "version": "1.2.11", - "resolved": "https://registry.npmjs.org/web3-eth/-/web3-eth-1.2.11.tgz", - "integrity": "sha512-REvxW1wJ58AgHPcXPJOL49d1K/dPmuw4LjPLBPStOVkQjzDTVmJEIsiLwn2YeuNDd4pfakBwT8L3bz1G1/wVsQ==", - "dev": true, - "dependencies": { - "underscore": "1.9.1", - "web3-core": "1.2.11", - "web3-core-helpers": "1.2.11", - "web3-core-method": "1.2.11", - "web3-core-subscriptions": "1.2.11", - "web3-eth-abi": "1.2.11", - "web3-eth-accounts": "1.2.11", - "web3-eth-contract": "1.2.11", - "web3-eth-ens": "1.2.11", - "web3-eth-iban": "1.2.11", - "web3-eth-personal": "1.2.11", - "web3-net": "1.2.11", - "web3-utils": "1.2.11" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/typechain-target-web3-v1/node_modules/web3-eth-abi": { - "version": "1.2.11", - "resolved": "https://registry.npmjs.org/web3-eth-abi/-/web3-eth-abi-1.2.11.tgz", - "integrity": "sha512-PkRYc0+MjuLSgg03QVWqWlQivJqRwKItKtEpRUaxUAeLE7i/uU39gmzm2keHGcQXo3POXAbOnMqkDvOep89Crg==", - "dev": true, - "dependencies": { - "@ethersproject/abi": "5.0.0-beta.153", - "underscore": "1.9.1", - "web3-utils": "1.2.11" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/typechain-target-web3-v1/node_modules/web3-eth-accounts": { - "version": "1.2.11", - "resolved": "https://registry.npmjs.org/web3-eth-accounts/-/web3-eth-accounts-1.2.11.tgz", - "integrity": "sha512-6FwPqEpCfKIh3nSSGeo3uBm2iFSnFJDfwL3oS9pyegRBXNsGRVpgiW63yhNzL0796StsvjHWwQnQHsZNxWAkGw==", - "dev": true, - "dependencies": { - "crypto-browserify": "3.12.0", - "eth-lib": "0.2.8", - "ethereumjs-common": "^1.3.2", - "ethereumjs-tx": "^2.1.1", - "scrypt-js": "^3.0.1", - "underscore": "1.9.1", - "uuid": "3.3.2", - "web3-core": "1.2.11", - "web3-core-helpers": "1.2.11", - "web3-core-method": "1.2.11", - "web3-utils": "1.2.11" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/typechain-target-web3-v1/node_modules/web3-eth-accounts/node_modules/eth-lib": { - "version": "0.2.8", - "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.8.tgz", - "integrity": "sha512-ArJ7x1WcWOlSpzdoTBX8vkwlkSQ85CjjifSZtV4co64vWxSV8geWfPI9x4SVYu3DSxnX4yWFVTtGL+j9DUFLNw==", - "dev": true, - "dependencies": { - "bn.js": "^4.11.6", - "elliptic": "^6.4.0", - "xhr-request-promise": "^0.1.2" - } - }, - "node_modules/typechain-target-web3-v1/node_modules/web3-eth-contract": { - "version": "1.2.11", - "resolved": "https://registry.npmjs.org/web3-eth-contract/-/web3-eth-contract-1.2.11.tgz", - "integrity": "sha512-MzYuI/Rq2o6gn7vCGcnQgco63isPNK5lMAan2E51AJLknjSLnOxwNY3gM8BcKoy4Z+v5Dv00a03Xuk78JowFow==", - "dev": true, - "dependencies": { - "@types/bn.js": "^4.11.5", - "underscore": "1.9.1", - "web3-core": "1.2.11", - "web3-core-helpers": "1.2.11", - "web3-core-method": "1.2.11", - "web3-core-promievent": "1.2.11", - "web3-core-subscriptions": "1.2.11", - "web3-eth-abi": "1.2.11", - "web3-utils": "1.2.11" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/typechain-target-web3-v1/node_modules/web3-eth-ens": { - "version": "1.2.11", - "resolved": "https://registry.npmjs.org/web3-eth-ens/-/web3-eth-ens-1.2.11.tgz", - "integrity": "sha512-dbW7dXP6HqT1EAPvnniZVnmw6TmQEKF6/1KgAxbo8iBBYrVTMDGFQUUnZ+C4VETGrwwaqtX4L9d/FrQhZ6SUiA==", - "dev": true, - "dependencies": { - "content-hash": "^2.5.2", - "eth-ens-namehash": "2.0.8", - "underscore": "1.9.1", - "web3-core": "1.2.11", - "web3-core-helpers": "1.2.11", - "web3-core-promievent": "1.2.11", - "web3-eth-abi": "1.2.11", - "web3-eth-contract": "1.2.11", - "web3-utils": "1.2.11" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/typechain-target-web3-v1/node_modules/web3-eth-iban": { - "version": "1.2.11", - "resolved": "https://registry.npmjs.org/web3-eth-iban/-/web3-eth-iban-1.2.11.tgz", - "integrity": "sha512-ozuVlZ5jwFC2hJY4+fH9pIcuH1xP0HEFhtWsR69u9uDIANHLPQQtWYmdj7xQ3p2YT4bQLq/axKhZi7EZVetmxQ==", - "dev": true, - "dependencies": { - "bn.js": "^4.11.9", - "web3-utils": "1.2.11" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/typechain-target-web3-v1/node_modules/web3-eth-personal": { - "version": "1.2.11", - "resolved": "https://registry.npmjs.org/web3-eth-personal/-/web3-eth-personal-1.2.11.tgz", - "integrity": "sha512-42IzUtKq9iHZ8K9VN0vAI50iSU9tOA1V7XU2BhF/tb7We2iKBVdkley2fg26TxlOcKNEHm7o6HRtiiFsVK4Ifw==", - "dev": true, - "dependencies": { - "@types/node": "^12.12.6", - "web3-core": "1.2.11", - "web3-core-helpers": "1.2.11", - "web3-core-method": "1.2.11", - "web3-net": "1.2.11", - "web3-utils": "1.2.11" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/typechain-target-web3-v1/node_modules/web3-net": { - "version": "1.2.11", - "resolved": "https://registry.npmjs.org/web3-net/-/web3-net-1.2.11.tgz", - "integrity": "sha512-sjrSDj0pTfZouR5BSTItCuZ5K/oZPVdVciPQ6981PPPIwJJkCMeVjD7I4zO3qDPCnBjBSbWvVnLdwqUBPtHxyg==", - "dev": true, - "dependencies": { - "web3-core": "1.2.11", - "web3-core-method": "1.2.11", - "web3-utils": "1.2.11" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/typechain-target-web3-v1/node_modules/web3-providers-http": { - "version": "1.2.11", - "resolved": "https://registry.npmjs.org/web3-providers-http/-/web3-providers-http-1.2.11.tgz", - "integrity": "sha512-psh4hYGb1+ijWywfwpB2cvvOIMISlR44F/rJtYkRmQ5jMvG4FOCPlQJPiHQZo+2cc3HbktvvSJzIhkWQJdmvrA==", - "dev": true, - "dependencies": { - "web3-core-helpers": "1.2.11", - "xhr2-cookies": "1.1.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/typechain-target-web3-v1/node_modules/web3-providers-ipc": { - "version": "1.2.11", - "resolved": "https://registry.npmjs.org/web3-providers-ipc/-/web3-providers-ipc-1.2.11.tgz", - "integrity": "sha512-yhc7Y/k8hBV/KlELxynWjJDzmgDEDjIjBzXK+e0rHBsYEhdCNdIH5Psa456c+l0qTEU2YzycF8VAjYpWfPnBpQ==", - "dev": true, - "dependencies": { - "oboe": "2.1.4", - "underscore": "1.9.1", - "web3-core-helpers": "1.2.11" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/typechain-target-web3-v1/node_modules/web3-providers-ws": { - "version": "1.2.11", - "resolved": "https://registry.npmjs.org/web3-providers-ws/-/web3-providers-ws-1.2.11.tgz", - "integrity": "sha512-ZxnjIY1Er8Ty+cE4migzr43zA/+72AF1myzsLaU5eVgdsfV7Jqx7Dix1hbevNZDKFlSoEyq/3j/jYalh3So1Zg==", - "dev": true, - "dependencies": { - "eventemitter3": "4.0.4", - "underscore": "1.9.1", - "web3-core-helpers": "1.2.11", - "websocket": "^1.0.31" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/typechain-target-web3-v1/node_modules/web3-shh": { - "version": "1.2.11", - "resolved": "https://registry.npmjs.org/web3-shh/-/web3-shh-1.2.11.tgz", - "integrity": "sha512-B3OrO3oG1L+bv3E1sTwCx66injW1A8hhwpknDUbV+sw3fehFazA06z9SGXUefuFI1kVs4q2vRi0n4oCcI4dZDg==", - "dev": true, - "dependencies": { - "web3-core": "1.2.11", - "web3-core-method": "1.2.11", - "web3-core-subscriptions": "1.2.11", - "web3-net": "1.2.11" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/typechain-target-web3-v1/node_modules/web3-utils": { - "version": "1.2.11", - "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.2.11.tgz", - "integrity": "sha512-3Tq09izhD+ThqHEaWYX4VOT7dNPdZiO+c/1QMA0s5X2lDFKK/xHJb7cyTRRVzN2LvlHbR7baS1tmQhSua51TcQ==", - "dev": true, - "dependencies": { - "bn.js": "^4.11.9", - "eth-lib": "0.2.8", - "ethereum-bloom-filters": "^1.0.6", - "ethjs-unit": "0.1.6", - "number-to-bn": "1.7.0", - "randombytes": "^2.1.0", - "underscore": "1.9.1", - "utf8": "3.0.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/typechain-target-web3-v1/node_modules/web3-utils/node_modules/eth-lib": { - "version": "0.2.8", - "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.8.tgz", - "integrity": "sha512-ArJ7x1WcWOlSpzdoTBX8vkwlkSQ85CjjifSZtV4co64vWxSV8geWfPI9x4SVYu3DSxnX4yWFVTtGL+j9DUFLNw==", - "dev": true, - "dependencies": { - "bn.js": "^4.11.6", - "elliptic": "^6.4.0", - "xhr-request-promise": "^0.1.2" - } - }, - "node_modules/typechain-target-web3-v1/node_modules/websocket": { - "version": "1.0.31", - "resolved": "https://registry.npmjs.org/websocket/-/websocket-1.0.31.tgz", - "integrity": "sha512-VAouplvGKPiKFDTeCCO65vYHsyay8DqoBSlzIO3fayrfOgU94lQN5a1uWVnFrMLceTJw/+fQXR5PGbUVRaHshQ==", - "dev": true, - "hasInstallScript": true, - "dependencies": { - "debug": "^2.2.0", - "es5-ext": "^0.10.50", - "nan": "^2.14.0", - "typedarray-to-buffer": "^3.1.5", - "yaeti": "^0.0.6" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/typechain/node_modules/@types/prettier": { - "version": "2.7.2", - "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.7.2.tgz", - "integrity": "sha512-KufADq8uQqo1pYKVIYzfKbJfBAc0sOeXqGbFaSpv8MRmC/zXgowNZmFcbngndGk922QDmOASEXUZCaY48gs4cg==" - }, - "node_modules/typechain/node_modules/debug": { - "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" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/typechain/node_modules/glob": { - "version": "7.1.7", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz", - "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==", - "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/typechain/node_modules/js-sha3": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.8.0.tgz", - "integrity": "sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q==" - }, - "node_modules/typechain/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/typechain/node_modules/prettier": { - "version": "2.8.7", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.7.tgz", - "integrity": "sha512-yPngTo3aXUUmyuTjeTUT75txrf+aMh9FiD7q9ZE/i6r0bPb22g4FsE6Y338PQX1bmfy08i9QQCB7/rcUAVntfw==", - "bin": { - "prettier": "bin-prettier.js" - }, - "engines": { - "node": ">=10.13.0" - }, - "funding": { - "url": "https://github.com/prettier/prettier?sponsor=1" - } - }, - "node_modules/typechain/node_modules/ts-essentials": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/ts-essentials/-/ts-essentials-7.0.3.tgz", - "integrity": "sha512-8+gr5+lqO3G84KdiTSMRLtuyJ+nTBVRKuCrK4lidMPdVeEp0uqC875uE5NMcaA7YYMN7XsNiFQuMvasF8HT/xQ==", - "peerDependencies": { - "typescript": ">=3.7.0" - } - }, - "node_modules/typedarray": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=" - }, - "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==", - "dependencies": { - "is-typedarray": "^1.0.0" - } - }, - "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": ">=4.2.0" - } - }, - "node_modules/typescript-compare": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/typescript-compare/-/typescript-compare-0.0.2.tgz", - "integrity": "sha512-8ja4j7pMHkfLJQO2/8tut7ub+J3Lw2S3061eJLFQcvs3tsmJKp8KG5NtpLn7KcY2w08edF74BSVN7qJS0U6oHA==", - "dev": true, - "dependencies": { - "typescript-logic": "^0.0.0" - } - }, - "node_modules/typescript-logic": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/typescript-logic/-/typescript-logic-0.0.0.tgz", - "integrity": "sha512-zXFars5LUkI3zP492ls0VskH3TtdeHCqu0i7/duGt60i5IGPIpAHE/DWo5FqJ6EjQ15YKXrt+AETjv60Dat34Q==", - "dev": true - }, - "node_modules/typescript-tuple": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/typescript-tuple/-/typescript-tuple-2.2.1.tgz", - "integrity": "sha512-Zcr0lbt8z5ZdEzERHAMAniTiIKerFCMgd7yjq1fPnDJ43et/k9twIFQMUYff9k5oXcsQ0WpvFcgzK2ZKASoW6Q==", - "dev": true, - "dependencies": { - "typescript-compare": "^0.0.2" - } - }, - "node_modules/typical": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/typical/-/typical-4.0.0.tgz", - "integrity": "sha512-VAH4IvQ7BDFYglMd7BPRDfLgxZZX4O4TFcRDA6EN5X7erNJJq+McIEp8np9aVtxrCJ6qx4GTYVfOWNjcqwZgRw==", - "engines": { - "node": ">=8" - } - }, - "node_modules/ultron": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ultron/-/ultron-1.1.1.tgz", - "integrity": "sha512-UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og==", - "dev": true - }, - "node_modules/unbox-primitive": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz", - "integrity": "sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==", - "dev": true, - "dependencies": { - "function-bind": "^1.1.1", - "has-bigints": "^1.0.1", - "has-symbols": "^1.0.2", - "which-boxed-primitive": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/unbzip2-stream": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz", - "integrity": "sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg==", - "dev": true, - "dependencies": { - "buffer": "^5.2.1", - "through": "^2.3.8" - } - }, - "node_modules/underscore": { - "version": "1.13.3", - "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.13.3.tgz", - "integrity": "sha512-QvjkYpiD+dJJraRA8+dGAU4i7aBbb2s0S3jA45TFOvg2VgqvdCDd/3N6CqA8gluk1W91GLoXg5enMUx560QzuA==", - "dev": true - }, - "node_modules/union-value": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", - "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", - "dependencies": { - "arr-union": "^3.1.0", - "get-value": "^2.0.6", - "is-extendable": "^0.1.1", - "set-value": "^2.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/union-value/node_modules/is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/unique-filename": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", - "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", - "dependencies": { - "unique-slug": "^2.0.0" - } - }, - "node_modules/unique-slug": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz", - "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==", - "dependencies": { - "imurmurhash": "^0.1.4" - } - }, - "node_modules/unique-string": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-1.0.0.tgz", - "integrity": "sha1-nhBXzKhRq7kzmPizOuGHuZyuwRo=", - "dev": true, - "dependencies": { - "crypto-random-string": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", - "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/unpipe": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/unset-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", - "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", - "dependencies": { - "has-value": "^0.3.1", - "isobject": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/unset-value/node_modules/has-value": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", - "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", - "dependencies": { - "get-value": "^2.0.3", - "has-values": "^0.1.4", - "isobject": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/unset-value/node_modules/has-value/node_modules/isobject": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", - "dependencies": { - "isarray": "1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/unset-value/node_modules/has-values": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", - "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/upath": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", - "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==", - "optional": true, - "engines": { - "node": ">=4", - "yarn": "*" - } - }, - "node_modules/upper-case": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/upper-case/-/upper-case-1.1.3.tgz", - "integrity": "sha512-WRbjgmYzgXkCV7zNVpy5YgrHgbBv126rMALQQMrmzOVC4GM2waQ9x7xtm8VU+1yF2kWyPzI9zbZ48n4vSxwfSA==", - "dev": true - }, - "node_modules/upper-case-first": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/upper-case-first/-/upper-case-first-1.1.2.tgz", - "integrity": "sha512-wINKYvI3Db8dtjikdAqoBbZoP6Q+PZUyfMR7pmwHzjC2quzSkUq5DmPrTtPEqHaz8AGtmsB4TqwapMTM1QAQOQ==", - "dev": true, - "dependencies": { - "upper-case": "^1.1.1" - } - }, - "node_modules/uri-js": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", - "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", - "dependencies": { - "punycode": "^2.1.0" - } - }, - "node_modules/urix": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", - "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", - "deprecated": "Please see https://github.com/lydell/urix#deprecated" - }, - "node_modules/url": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", - "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", - "dependencies": { - "punycode": "1.3.2", - "querystring": "0.2.0" - } - }, - "node_modules/url-parse-lax": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", - "integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=", - "dev": true, - "dependencies": { - "prepend-http": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/url-set-query": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/url-set-query/-/url-set-query-1.0.0.tgz", - "integrity": "sha1-AW6M/Xwg7gXK/neV6JK9BwL6ozk=" - }, - "node_modules/url-to-options": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/url-to-options/-/url-to-options-1.0.1.tgz", - "integrity": "sha1-FQWgOiiaSMvXpDTvuu7FBV9WM6k=", - "dev": true, - "engines": { - "node": ">= 4" - } - }, - "node_modules/url/node_modules/punycode": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", - "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=" - }, - "node_modules/url/node_modules/querystring": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", - "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", - "deprecated": "The querystring API is considered Legacy. new code should use the URLSearchParams API instead.", - "engines": { - "node": ">=0.4.x" - } - }, - "node_modules/use": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", - "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/utf-8-validate": { - "version": "5.0.10", - "resolved": "https://registry.npmjs.org/utf-8-validate/-/utf-8-validate-5.0.10.tgz", - "integrity": "sha512-Z6czzLq4u8fPOyx7TU6X3dvUZVvoJmxSQ+IcrlmagKhilxlhZgxPK6C5Jqbkw1IDUmFTM+cz9QDnnLTwDz/2gQ==", - "devOptional": true, - "hasInstallScript": true, - "dependencies": { - "node-gyp-build": "^4.3.0" - }, - "engines": { - "node": ">=6.14.2" - } - }, - "node_modules/utf8": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/utf8/-/utf8-3.0.0.tgz", - "integrity": "sha512-E8VjFIQ/TyQgp+TZfS6l8yp/xWppSAHzidGiRrqe4bK4XP9pTRyKFgGJpO3SN7zdX4DeomTrwaseCHovfpFcqQ==" - }, - "node_modules/util": { - "version": "0.12.5", - "resolved": "https://registry.npmjs.org/util/-/util-0.12.5.tgz", - "integrity": "sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==", - "dev": true, - "dependencies": { - "inherits": "^2.0.3", - "is-arguments": "^1.0.4", - "is-generator-function": "^1.0.7", - "is-typed-array": "^1.1.3", - "which-typed-array": "^1.1.2" - } - }, - "node_modules/util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" - }, - "node_modules/utils-merge": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=", - "dev": true, - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/uuid": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", - "bin": { - "uuid": "bin/uuid" - } - }, - "node_modules/v8-compile-cache": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.1.1.tgz", - "integrity": "sha512-8OQ9CL+VWyt3JStj7HX7/ciTL2V3Rl1Wf5OL+SNTm0yK1KvtReVulksyeRnCANHHuUxHlQig+JJDlUhBt1NQDQ==" - }, - "node_modules/v8-compile-cache-lib": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", - "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==", - "dev": true - }, - "node_modules/value-or-promise": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/value-or-promise/-/value-or-promise-1.0.11.tgz", - "integrity": "sha512-41BrgH+dIbCFXClcSapVs5M6GkENd3gQOJpEfPDNa71LsUGMXDL0jMWpI/Rh7WhX+Aalfz2TTS3Zt5pUsbnhLg==", - "dev": true, - "optional": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/varint": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/varint/-/varint-5.0.2.tgz", - "integrity": "sha512-lKxKYG6H03yCZUpAGOPOsMcGxd1RHCu1iKvEHYDPmTyq2HueGhD73ssNBqqQWfvYs04G9iUFRvmAVLW20Jw6ow==" - }, - "node_modules/vary": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/verror": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", - "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", - "engines": [ - "node >=0.6.0" - ], - "dependencies": { - "assert-plus": "^1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" - } - }, - "node_modules/vm-browserify": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz", - "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==" - }, - "node_modules/vuvuzela": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/vuvuzela/-/vuvuzela-1.0.3.tgz", - "integrity": "sha512-Tm7jR1xTzBbPW+6y1tknKiEhz04Wf/1iZkcTJjSFcpNko43+dFW6+OOeQe9taJIug3NdfUAjFKgUSyQrIKaDvQ==", - "dev": true, - "optional": true - }, - "node_modules/watchpack-chokidar2": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/watchpack-chokidar2/-/watchpack-chokidar2-2.0.1.tgz", - "integrity": "sha512-nCFfBIPKr5Sh61s4LPpy1Wtfi0HE8isJ3d2Yb5/Ppw2P2B/3eVSEBjKfN0fmHJSK14+31KwMKmcrzs2GM4P0Ww==", - "optional": true, - "dependencies": { - "chokidar": "^2.1.8" - } - }, - "node_modules/watchpack-chokidar2/node_modules/anymatch": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", - "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", - "optional": true, - "dependencies": { - "micromatch": "^3.1.4", - "normalize-path": "^2.1.1" - } - }, - "node_modules/watchpack-chokidar2/node_modules/anymatch/node_modules/normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", - "optional": true, - "dependencies": { - "remove-trailing-separator": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/watchpack-chokidar2/node_modules/binary-extensions": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", - "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/watchpack-chokidar2/node_modules/braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "optional": true, - "dependencies": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/watchpack-chokidar2/node_modules/chokidar": { - "version": "2.1.8", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", - "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", - "deprecated": "Chokidar 2 does not receive security updates since 2019. Upgrade to chokidar 3 with 15x fewer dependencies", - "optional": true, - "dependencies": { - "anymatch": "^2.0.0", - "async-each": "^1.0.1", - "braces": "^2.3.2", - "glob-parent": "^3.1.0", - "inherits": "^2.0.3", - "is-binary-path": "^1.0.0", - "is-glob": "^4.0.0", - "normalize-path": "^3.0.0", - "path-is-absolute": "^1.0.0", - "readdirp": "^2.2.1", - "upath": "^1.1.1" - }, - "optionalDependencies": { - "fsevents": "^1.2.7" - } - }, - "node_modules/watchpack-chokidar2/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "optional": true, - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/watchpack-chokidar2/node_modules/fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "optional": true, - "dependencies": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/watchpack-chokidar2/node_modules/glob-parent": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", - "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", - "optional": true, - "dependencies": { - "is-glob": "^3.1.0", - "path-dirname": "^1.0.0" - } - }, - "node_modules/watchpack-chokidar2/node_modules/glob-parent/node_modules/is-glob": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", - "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", - "optional": true, - "dependencies": { - "is-extglob": "^2.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/watchpack-chokidar2/node_modules/is-binary-path": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", - "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", - "optional": true, - "dependencies": { - "binary-extensions": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/watchpack-chokidar2/node_modules/is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", - "optional": true - }, - "node_modules/watchpack-chokidar2/node_modules/is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/watchpack-chokidar2/node_modules/is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "optional": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/watchpack-chokidar2/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "optional": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/watchpack-chokidar2/node_modules/readdirp": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", - "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", - "optional": true, - "dependencies": { - "graceful-fs": "^4.1.11", - "micromatch": "^3.1.10", - "readable-stream": "^2.0.2" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/watchpack-chokidar2/node_modules/to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", - "optional": true, - "dependencies": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/web3": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/web3/-/web3-1.2.2.tgz", - "integrity": "sha512-/ChbmB6qZpfGx6eNpczt5YSUBHEA5V2+iUCbn85EVb3Zv6FVxrOo5Tv7Lw0gE2tW7EEjASbCyp3mZeiZaCCngg==", - "dev": true, - "hasInstallScript": true, - "dependencies": { - "@types/node": "^12.6.1", - "web3-bzz": "1.2.2", - "web3-core": "1.2.2", - "web3-eth": "1.2.2", - "web3-eth-personal": "1.2.2", - "web3-net": "1.2.2", - "web3-shh": "1.2.2", - "web3-utils": "1.2.2" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-bzz": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/web3-bzz/-/web3-bzz-1.2.2.tgz", - "integrity": "sha512-b1O2ObsqUN1lJxmFSjvnEC4TsaCbmh7Owj3IAIWTKqL9qhVgx7Qsu5O9cD13pBiSPNZJ68uJPaKq380QB4NWeA==", - "dev": true, - "dependencies": { - "@types/node": "^10.12.18", - "got": "9.6.0", - "swarm-js": "0.1.39", - "underscore": "1.9.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-bzz/node_modules/@types/node": { - "version": "10.17.28", - "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.28.tgz", - "integrity": "sha512-dzjES1Egb4c1a89C7lKwQh8pwjYmlOAG9dW1pBgxEk57tMrLnssOfEthz8kdkNaBd7lIqQx7APm5+mZ619IiCQ==", - "dev": true - }, - "node_modules/web3-bzz/node_modules/underscore": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.9.1.tgz", - "integrity": "sha512-5/4etnCkd9c8gwgowi5/om/mYO5ajCaOgdzj/oW+0eQV9WxKBDZw5+ycmKmeaTXjInS/W0BzpGLo2xR2aBwZdg==", - "dev": true - }, - "node_modules/web3-core": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/web3-core/-/web3-core-1.2.2.tgz", - "integrity": "sha512-miHAX3qUgxV+KYfaOY93Hlc3kLW2j5fH8FJy6kSxAv+d4d5aH0wwrU2IIoJylQdT+FeenQ38sgsCnFu9iZ1hCQ==", - "dev": true, - "dependencies": { - "@types/bn.js": "^4.11.4", - "@types/node": "^12.6.1", - "web3-core-helpers": "1.2.2", - "web3-core-method": "1.2.2", - "web3-core-requestmanager": "1.2.2", - "web3-utils": "1.2.2" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-core-helpers": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.2.2.tgz", - "integrity": "sha512-HJrRsIGgZa1jGUIhvGz4S5Yh6wtOIo/TMIsSLe+Xay+KVnbseJpPprDI5W3s7H2ODhMQTbogmmUFquZweW2ImQ==", - "dev": true, - "dependencies": { - "underscore": "1.9.1", - "web3-eth-iban": "1.2.2", - "web3-utils": "1.2.2" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-core-helpers/node_modules/underscore": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.9.1.tgz", - "integrity": "sha512-5/4etnCkd9c8gwgowi5/om/mYO5ajCaOgdzj/oW+0eQV9WxKBDZw5+ycmKmeaTXjInS/W0BzpGLo2xR2aBwZdg==", - "dev": true - }, - "node_modules/web3-core-method": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/web3-core-method/-/web3-core-method-1.2.2.tgz", - "integrity": "sha512-szR4fDSBxNHaF1DFqE+j6sFR/afv9Aa36OW93saHZnrh+iXSrYeUUDfugeNcRlugEKeUCkd4CZylfgbK2SKYJA==", - "dev": true, - "dependencies": { - "underscore": "1.9.1", - "web3-core-helpers": "1.2.2", - "web3-core-promievent": "1.2.2", - "web3-core-subscriptions": "1.2.2", - "web3-utils": "1.2.2" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-core-method/node_modules/underscore": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.9.1.tgz", - "integrity": "sha512-5/4etnCkd9c8gwgowi5/om/mYO5ajCaOgdzj/oW+0eQV9WxKBDZw5+ycmKmeaTXjInS/W0BzpGLo2xR2aBwZdg==", - "dev": true - }, - "node_modules/web3-core-promievent": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/web3-core-promievent/-/web3-core-promievent-1.2.2.tgz", - "integrity": "sha512-tKvYeT8bkUfKABcQswK6/X79blKTKYGk949urZKcLvLDEaWrM3uuzDwdQT3BNKzQ3vIvTggFPX9BwYh0F1WwqQ==", - "dev": true, - "dependencies": { - "any-promise": "1.3.0", - "eventemitter3": "3.1.2" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-core-requestmanager": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/web3-core-requestmanager/-/web3-core-requestmanager-1.2.2.tgz", - "integrity": "sha512-a+gSbiBRHtHvkp78U2bsntMGYGF2eCb6219aMufuZWeAZGXJ63Wc2321PCbA8hF9cQrZI4EoZ4kVLRI4OF15Hw==", - "dev": true, - "dependencies": { - "underscore": "1.9.1", - "web3-core-helpers": "1.2.2", - "web3-providers-http": "1.2.2", - "web3-providers-ipc": "1.2.2", - "web3-providers-ws": "1.2.2" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-core-requestmanager/node_modules/underscore": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.9.1.tgz", - "integrity": "sha512-5/4etnCkd9c8gwgowi5/om/mYO5ajCaOgdzj/oW+0eQV9WxKBDZw5+ycmKmeaTXjInS/W0BzpGLo2xR2aBwZdg==", - "dev": true - }, - "node_modules/web3-core-subscriptions": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/web3-core-subscriptions/-/web3-core-subscriptions-1.2.2.tgz", - "integrity": "sha512-QbTgigNuT4eicAWWr7ahVpJyM8GbICsR1Ys9mJqzBEwpqS+RXTRVSkwZ2IsxO+iqv6liMNwGregbJLq4urMFcQ==", - "dev": true, - "dependencies": { - "eventemitter3": "3.1.2", - "underscore": "1.9.1", - "web3-core-helpers": "1.2.2" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-core-subscriptions/node_modules/underscore": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.9.1.tgz", - "integrity": "sha512-5/4etnCkd9c8gwgowi5/om/mYO5ajCaOgdzj/oW+0eQV9WxKBDZw5+ycmKmeaTXjInS/W0BzpGLo2xR2aBwZdg==", - "dev": true - }, - "node_modules/web3-core/node_modules/@types/node": { - "version": "12.12.53", - "resolved": "https://registry.npmjs.org/@types/node/-/node-12.12.53.tgz", - "integrity": "sha512-51MYTDTyCziHb70wtGNFRwB4l+5JNvdqzFSkbDvpbftEgVUBEE+T5f7pROhWMp/fxp07oNIEQZd5bbfAH22ohQ==", - "dev": true - }, - "node_modules/web3-eth": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/web3-eth/-/web3-eth-1.2.2.tgz", - "integrity": "sha512-UXpC74mBQvZzd4b+baD4Ocp7g+BlwxhBHumy9seyE/LMIcMlePXwCKzxve9yReNpjaU16Mmyya6ZYlyiKKV8UA==", - "dev": true, - "dependencies": { - "underscore": "1.9.1", - "web3-core": "1.2.2", - "web3-core-helpers": "1.2.2", - "web3-core-method": "1.2.2", - "web3-core-subscriptions": "1.2.2", - "web3-eth-abi": "1.2.2", - "web3-eth-accounts": "1.2.2", - "web3-eth-contract": "1.2.2", - "web3-eth-ens": "1.2.2", - "web3-eth-iban": "1.2.2", - "web3-eth-personal": "1.2.2", - "web3-net": "1.2.2", - "web3-utils": "1.2.2" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-eth-abi": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/web3-eth-abi/-/web3-eth-abi-1.2.2.tgz", - "integrity": "sha512-Yn/ZMgoOLxhTVxIYtPJ0eS6pnAnkTAaJgUJh1JhZS4ekzgswMfEYXOwpMaD5eiqPJLpuxmZFnXnBZlnQ1JMXsw==", - "dev": true, - "dependencies": { - "ethers": "4.0.0-beta.3", - "underscore": "1.9.1", - "web3-utils": "1.2.2" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-eth-abi/node_modules/@types/node": { - "version": "10.17.28", - "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.28.tgz", - "integrity": "sha512-dzjES1Egb4c1a89C7lKwQh8pwjYmlOAG9dW1pBgxEk57tMrLnssOfEthz8kdkNaBd7lIqQx7APm5+mZ619IiCQ==", - "dev": true - }, - "node_modules/web3-eth-abi/node_modules/elliptic": { - "version": "6.3.3", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.3.3.tgz", - "integrity": "sha1-VILZZG1UvLif19mU/J4ulWiHbj8=", - "dev": true, - "dependencies": { - "bn.js": "^4.4.0", - "brorand": "^1.0.1", - "hash.js": "^1.0.0", - "inherits": "^2.0.1" - } - }, - "node_modules/web3-eth-abi/node_modules/ethers": { - "version": "4.0.0-beta.3", - "resolved": "https://registry.npmjs.org/ethers/-/ethers-4.0.0-beta.3.tgz", - "integrity": "sha512-YYPogooSknTwvHg3+Mv71gM/3Wcrx+ZpCzarBj3mqs9njjRkrOo2/eufzhHloOCo3JSoNI4TQJJ6yU5ABm3Uog==", - "dev": true, - "dependencies": { - "@types/node": "^10.3.2", - "aes-js": "3.0.0", - "bn.js": "^4.4.0", - "elliptic": "6.3.3", - "hash.js": "1.1.3", - "js-sha3": "0.5.7", - "scrypt-js": "2.0.3", - "setimmediate": "1.0.4", - "uuid": "2.0.1", - "xmlhttprequest": "1.8.0" - } - }, - "node_modules/web3-eth-abi/node_modules/scrypt-js": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-2.0.3.tgz", - "integrity": "sha1-uwBAvgMEPamgEqLOqfyfhSz8h9Q=", - "dev": true - }, - "node_modules/web3-eth-abi/node_modules/underscore": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.9.1.tgz", - "integrity": "sha512-5/4etnCkd9c8gwgowi5/om/mYO5ajCaOgdzj/oW+0eQV9WxKBDZw5+ycmKmeaTXjInS/W0BzpGLo2xR2aBwZdg==", - "dev": true - }, - "node_modules/web3-eth-abi/node_modules/uuid": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-2.0.1.tgz", - "integrity": "sha1-wqMN7bPlNdcsz4LjQ5QaULqFM6w=", - "dev": true - }, - "node_modules/web3-eth-accounts": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/web3-eth-accounts/-/web3-eth-accounts-1.2.2.tgz", - "integrity": "sha512-KzHOEyXOEZ13ZOkWN3skZKqSo5f4Z1ogPFNn9uZbKCz+kSp+gCAEKxyfbOsB/JMAp5h7o7pb6eYsPCUBJmFFiA==", - "dev": true, - "dependencies": { - "any-promise": "1.3.0", - "crypto-browserify": "3.12.0", - "eth-lib": "0.2.7", - "ethereumjs-common": "^1.3.2", - "ethereumjs-tx": "^2.1.1", - "scrypt-shim": "github:web3-js/scrypt-shim", - "underscore": "1.9.1", - "uuid": "3.3.2", - "web3-core": "1.2.2", - "web3-core-helpers": "1.2.2", - "web3-core-method": "1.2.2", - "web3-utils": "1.2.2" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-eth-accounts/node_modules/eth-lib": { - "version": "0.2.7", - "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.7.tgz", - "integrity": "sha1-L5Pxex4jrsN1nNSj/iDBKGo/wco=", - "dev": true, - "dependencies": { - "bn.js": "^4.11.6", - "elliptic": "^6.4.0", - "xhr-request-promise": "^0.1.2" - } - }, - "node_modules/web3-eth-accounts/node_modules/underscore": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.9.1.tgz", - "integrity": "sha512-5/4etnCkd9c8gwgowi5/om/mYO5ajCaOgdzj/oW+0eQV9WxKBDZw5+ycmKmeaTXjInS/W0BzpGLo2xR2aBwZdg==", - "dev": true - }, - "node_modules/web3-eth-accounts/node_modules/uuid": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", - "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==", - "dev": true, - "bin": { - "uuid": "bin/uuid" - } - }, - "node_modules/web3-eth-contract": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/web3-eth-contract/-/web3-eth-contract-1.2.2.tgz", - "integrity": "sha512-EKT2yVFws3FEdotDQoNsXTYL798+ogJqR2//CaGwx3p0/RvQIgfzEwp8nbgA6dMxCsn9KOQi7OtklzpnJMkjtA==", - "dev": true, - "dependencies": { - "@types/bn.js": "^4.11.4", - "underscore": "1.9.1", - "web3-core": "1.2.2", - "web3-core-helpers": "1.2.2", - "web3-core-method": "1.2.2", - "web3-core-promievent": "1.2.2", - "web3-core-subscriptions": "1.2.2", - "web3-eth-abi": "1.2.2", - "web3-utils": "1.2.2" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-eth-contract/node_modules/underscore": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.9.1.tgz", - "integrity": "sha512-5/4etnCkd9c8gwgowi5/om/mYO5ajCaOgdzj/oW+0eQV9WxKBDZw5+ycmKmeaTXjInS/W0BzpGLo2xR2aBwZdg==", - "dev": true - }, - "node_modules/web3-eth-ens": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/web3-eth-ens/-/web3-eth-ens-1.2.2.tgz", - "integrity": "sha512-CFjkr2HnuyMoMFBoNUWojyguD4Ef+NkyovcnUc/iAb9GP4LHohKrODG4pl76R5u61TkJGobC2ij6TyibtsyVYg==", - "dev": true, - "dependencies": { - "eth-ens-namehash": "2.0.8", - "underscore": "1.9.1", - "web3-core": "1.2.2", - "web3-core-helpers": "1.2.2", - "web3-core-promievent": "1.2.2", - "web3-eth-abi": "1.2.2", - "web3-eth-contract": "1.2.2", - "web3-utils": "1.2.2" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-eth-ens/node_modules/underscore": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.9.1.tgz", - "integrity": "sha512-5/4etnCkd9c8gwgowi5/om/mYO5ajCaOgdzj/oW+0eQV9WxKBDZw5+ycmKmeaTXjInS/W0BzpGLo2xR2aBwZdg==", - "dev": true - }, - "node_modules/web3-eth-iban": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/web3-eth-iban/-/web3-eth-iban-1.2.2.tgz", - "integrity": "sha512-gxKXBoUhaTFHr0vJB/5sd4i8ejF/7gIsbM/VvemHT3tF5smnmY6hcwSMmn7sl5Gs+83XVb/BngnnGkf+I/rsrQ==", - "dev": true, - "dependencies": { - "bn.js": "4.11.8", - "web3-utils": "1.2.2" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-eth-iban/node_modules/bn.js": { - "version": "4.11.8", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz", - "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==", - "dev": true - }, - "node_modules/web3-eth-personal": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/web3-eth-personal/-/web3-eth-personal-1.2.2.tgz", - "integrity": "sha512-4w+GLvTlFqW3+q4xDUXvCEMU7kRZ+xm/iJC8gm1Li1nXxwwFbs+Y+KBK6ZYtoN1qqAnHR+plYpIoVo27ixI5Rg==", - "dev": true, - "dependencies": { - "@types/node": "^12.6.1", - "web3-core": "1.2.2", - "web3-core-helpers": "1.2.2", - "web3-core-method": "1.2.2", - "web3-net": "1.2.2", - "web3-utils": "1.2.2" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-eth-personal/node_modules/@types/node": { - "version": "12.12.53", - "resolved": "https://registry.npmjs.org/@types/node/-/node-12.12.53.tgz", - "integrity": "sha512-51MYTDTyCziHb70wtGNFRwB4l+5JNvdqzFSkbDvpbftEgVUBEE+T5f7pROhWMp/fxp07oNIEQZd5bbfAH22ohQ==", - "dev": true - }, - "node_modules/web3-eth/node_modules/underscore": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.9.1.tgz", - "integrity": "sha512-5/4etnCkd9c8gwgowi5/om/mYO5ajCaOgdzj/oW+0eQV9WxKBDZw5+ycmKmeaTXjInS/W0BzpGLo2xR2aBwZdg==", - "dev": true - }, - "node_modules/web3-net": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/web3-net/-/web3-net-1.2.2.tgz", - "integrity": "sha512-K07j2DXq0x4UOJgae65rWZKraOznhk8v5EGSTdFqASTx7vWE/m+NqBijBYGEsQY1lSMlVaAY9UEQlcXK5HzXTw==", - "dev": true, - "dependencies": { - "web3-core": "1.2.2", - "web3-core-method": "1.2.2", - "web3-utils": "1.2.2" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-providers-http": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/web3-providers-http/-/web3-providers-http-1.2.2.tgz", - "integrity": "sha512-BNZ7Hguy3eBszsarH5gqr9SIZNvqk9eKwqwmGH1LQS1FL3NdoOn7tgPPdddrXec4fL94CwgNk4rCU+OjjZRNDg==", - "dev": true, - "dependencies": { - "web3-core-helpers": "1.2.2", - "xhr2-cookies": "1.1.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-providers-ipc": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/web3-providers-ipc/-/web3-providers-ipc-1.2.2.tgz", - "integrity": "sha512-t97w3zi5Kn/LEWGA6D9qxoO0LBOG+lK2FjlEdCwDQatffB/+vYrzZ/CLYVQSoyFZAlsDoBasVoYSWZK1n39aHA==", - "dev": true, - "dependencies": { - "oboe": "2.1.4", - "underscore": "1.9.1", - "web3-core-helpers": "1.2.2" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-providers-ipc/node_modules/underscore": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.9.1.tgz", - "integrity": "sha512-5/4etnCkd9c8gwgowi5/om/mYO5ajCaOgdzj/oW+0eQV9WxKBDZw5+ycmKmeaTXjInS/W0BzpGLo2xR2aBwZdg==", - "dev": true - }, - "node_modules/web3-providers-ws": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/web3-providers-ws/-/web3-providers-ws-1.2.2.tgz", - "integrity": "sha512-Wb1mrWTGMTXOpJkL0yGvL/WYLt8fUIXx8k/l52QB2IiKzvyd42dTWn4+j8IKXGSYYzOm7NMqv6nhA5VDk12VfA==", - "dev": true, - "dependencies": { - "underscore": "1.9.1", - "web3-core-helpers": "1.2.2", - "websocket": "github:web3-js/WebSocket-Node#polyfill/globalThis" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-providers-ws/node_modules/underscore": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.9.1.tgz", - "integrity": "sha512-5/4etnCkd9c8gwgowi5/om/mYO5ajCaOgdzj/oW+0eQV9WxKBDZw5+ycmKmeaTXjInS/W0BzpGLo2xR2aBwZdg==", - "dev": true - }, - "node_modules/web3-shh": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/web3-shh/-/web3-shh-1.2.2.tgz", - "integrity": "sha512-og258NPhlBn8yYrDWjoWBBb6zo1OlBgoWGT+LL5/LPqRbjPe09hlOYHgscAAr9zZGtohTOty7RrxYw6Z6oDWCg==", - "dev": true, - "dependencies": { - "web3-core": "1.2.2", - "web3-core-method": "1.2.2", - "web3-core-subscriptions": "1.2.2", - "web3-net": "1.2.2" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-utils": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.2.2.tgz", - "integrity": "sha512-joF+s3243TY5cL7Z7y4h1JsJpUCf/kmFmj+eJar7Y2yNIGVcW961VyrAms75tjUysSuHaUQ3eQXjBEUJueT52A==", - "dev": true, - "dependencies": { - "bn.js": "4.11.8", - "eth-lib": "0.2.7", - "ethereum-bloom-filters": "^1.0.6", - "ethjs-unit": "0.1.6", - "number-to-bn": "1.7.0", - "randombytes": "^2.1.0", - "underscore": "1.9.1", - "utf8": "3.0.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-utils/node_modules/bn.js": { - "version": "4.11.8", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz", - "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==", - "dev": true - }, - "node_modules/web3-utils/node_modules/eth-lib": { - "version": "0.2.7", - "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.7.tgz", - "integrity": "sha1-L5Pxex4jrsN1nNSj/iDBKGo/wco=", - "dev": true, - "dependencies": { - "bn.js": "^4.11.6", - "elliptic": "^6.4.0", - "xhr-request-promise": "^0.1.2" - } - }, - "node_modules/web3-utils/node_modules/underscore": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.9.1.tgz", - "integrity": "sha512-5/4etnCkd9c8gwgowi5/om/mYO5ajCaOgdzj/oW+0eQV9WxKBDZw5+ycmKmeaTXjInS/W0BzpGLo2xR2aBwZdg==", - "dev": true - }, - "node_modules/web3/node_modules/@types/node": { - "version": "12.12.53", - "resolved": "https://registry.npmjs.org/@types/node/-/node-12.12.53.tgz", - "integrity": "sha512-51MYTDTyCziHb70wtGNFRwB4l+5JNvdqzFSkbDvpbftEgVUBEE+T5f7pROhWMp/fxp07oNIEQZd5bbfAH22ohQ==", - "dev": true - }, - "node_modules/webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=" - }, - "node_modules/websocket": { - "resolved": "git+ssh://git@github.com/web3-js/WebSocket-Node.git#ef5ea2f41daf4a2113b80c9223df884b4d56c400", - "dev": true, - "hasInstallScript": true, - "dependencies": { - "debug": "^2.2.0", - "es5-ext": "^0.10.50", - "nan": "^2.14.0", - "typedarray-to-buffer": "^3.1.5", - "yaeti": "^0.0.6" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/websocket-driver": { - "version": "0.7.4", - "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz", - "integrity": "sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==", - "dev": true, - "dependencies": { - "http-parser-js": ">=0.5.1", - "safe-buffer": ">=5.1.0", - "websocket-extensions": ">=0.1.1" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/websocket-extensions": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz", - "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/websocket/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/whatwg-fetch": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.2.0.tgz", - "integrity": "sha512-SdGPoQMMnzVYThUbSrEvqTlkvC1Ux27NehaJ/GUHBfNrh5Mjg+1/uRyFMwVnxO2MrikMWvWAqUGgQOfVU4hT7w==", - "dev": true - }, - "node_modules/whatwg-mimetype": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-3.0.0.tgz", - "integrity": "sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==", - "dev": true, - "optional": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha1-lmRU6HZUYuN2RNNib2dCzotwll0=", - "dependencies": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } - }, - "node_modules/when": { - "version": "3.7.8", - "resolved": "https://registry.npmjs.org/when/-/when-3.7.8.tgz", - "integrity": "sha1-xxMLan6gRpPoQs3J56Hyqjmjn4I=" - }, - "node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/which-boxed-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", - "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", - "dev": true, - "dependencies": { - "is-bigint": "^1.0.1", - "is-boolean-object": "^1.1.0", - "is-number-object": "^1.0.4", - "is-string": "^1.0.5", - "is-symbol": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/which-module": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", - "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=" - }, - "node_modules/which-typed-array": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.4.tgz", - "integrity": "sha512-49E0SpUe90cjpoc7BOJwyPHRqSAd12c10Qm2amdEZrJPCY2NDxaW01zHITrem+rnETY3dwrbH3UUrUwagfCYDA==", - "dev": true, - "dependencies": { - "available-typed-arrays": "^1.0.2", - "call-bind": "^1.0.0", - "es-abstract": "^1.18.0-next.1", - "foreach": "^2.0.5", - "function-bind": "^1.1.1", - "has-symbols": "^1.0.1", - "is-typed-array": "^1.1.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/wide-align": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", - "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", - "dependencies": { - "string-width": "^1.0.2 || 2" - } - }, - "node_modules/word-wrap": { - "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, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/wordwrapjs": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/wordwrapjs/-/wordwrapjs-4.0.1.tgz", - "integrity": "sha512-kKlNACbvHrkpIw6oPeYDSmdCTu2hdMHoyXLTcUKala++lx5Y+wjJ/e474Jqv5abnVmwxw08DiTuHmw69lJGksA==", - "dependencies": { - "reduce-flatten": "^2.0.0", - "typical": "^5.2.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/wordwrapjs/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/worker-farm": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/worker-farm/-/worker-farm-1.7.0.tgz", - "integrity": "sha512-rvw3QTZc8lAxyVrqcSGVm5yP/IJ2UcB3U0graE3LCFoZ0Yn2x4EoVSqJKdB/T5M+FLcRPjz4TDacRf3OCfNUzw==", - "dependencies": { - "errno": "~0.1.7" - } - }, - "node_modules/workerpool": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.2.1.tgz", - "integrity": "sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw==", - "dev": true - }, - "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": ">=6" - } - }, - "node_modules/wrap-ansi/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": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" - }, - "node_modules/write": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/write/-/write-1.0.3.tgz", - "integrity": "sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig==", - "dev": true, - "dependencies": { - "mkdirp": "^0.5.1" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/write-file-atomic": { - "version": "2.4.3", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.4.3.tgz", - "integrity": "sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.1.11", - "imurmurhash": "^0.1.4", - "signal-exit": "^3.0.2" - } - }, - "node_modules/write-stream": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/write-stream/-/write-stream-0.4.3.tgz", - "integrity": "sha512-IJrvkhbAnj89W/GAVdVgbnPiVw5Ntg/B4tc/MUCIEwj/g6JIww1DWJyB/yBMT3yw2/TkT6IUZ0+IYef3flEw8A==", - "dev": true, - "optional": true, - "dependencies": { - "readable-stream": "~0.0.2" - } - }, - "node_modules/write-stream/node_modules/readable-stream": { - "version": "0.0.4", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-0.0.4.tgz", - "integrity": "sha512-azrivNydKRYt7zwLV5wWUK7YzKTWs3q87xSmY6DlHapPrCvaT6ZrukvM5erV+yCSSPmZT8zkSdttOHQpWWm9zw==", - "dev": true, - "optional": true - }, - "node_modules/write/node_modules/mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "dev": true, - "dependencies": { - "minimist": "^1.2.5" - }, - "bin": { - "mkdirp": "bin/cmd.js" - } - }, - "node_modules/ws": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/ws/-/ws-3.3.3.tgz", - "integrity": "sha512-nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA==", - "dev": true, - "dependencies": { - "async-limiter": "~1.0.0", - "safe-buffer": "~5.1.0", - "ultron": "~1.1.0" - } - }, - "node_modules/ws/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, - "node_modules/xdg-basedir": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-3.0.0.tgz", - "integrity": "sha1-SWsswQnsqNus/i3HK2A8F8WHCtQ=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/xhr": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/xhr/-/xhr-2.5.0.tgz", - "integrity": "sha512-4nlO/14t3BNUZRXIXfXe+3N6w3s1KoxcJUUURctd64BLRe67E4gRwp4PjywtDY72fXpZ1y6Ch0VZQRY/gMPzzQ==", - "dependencies": { - "global": "~4.3.0", - "is-function": "^1.0.1", - "parse-headers": "^2.0.0", - "xtend": "^4.0.0" - } - }, - "node_modules/xhr-request": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/xhr-request/-/xhr-request-1.1.0.tgz", - "integrity": "sha512-Y7qzEaR3FDtL3fP30k9wO/e+FBnBByZeybKOhASsGP30NIkRAAkKD/sCnLvgEfAIEC1rcmK7YG8f4oEnIrrWzA==", - "dependencies": { - "buffer-to-arraybuffer": "^0.0.5", - "object-assign": "^4.1.1", - "query-string": "^5.0.1", - "simple-get": "^2.7.0", - "timed-out": "^4.0.1", - "url-set-query": "^1.0.0", - "xhr": "^2.0.4" - } - }, - "node_modules/xhr-request-promise": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/xhr-request-promise/-/xhr-request-promise-0.1.3.tgz", - "integrity": "sha512-YUBytBsuwgitWtdRzXDDkWAXzhdGB8bYm0sSzMPZT7Z2MBjMSTHFsyCT1yCRATY+XC69DUrQraRAEgcoCRaIPg==", - "dependencies": { - "xhr-request": "^1.1.0" - } - }, - "node_modules/xhr2-cookies": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/xhr2-cookies/-/xhr2-cookies-1.1.0.tgz", - "integrity": "sha1-fXdEnQmZGX8VXLc7I99yUF7YnUg=", - "dependencies": { - "cookiejar": "^2.1.1" - } - }, - "node_modules/xmlhttprequest": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/xmlhttprequest/-/xmlhttprequest-1.8.0.tgz", - "integrity": "sha1-Z/4HXFwk/vOfnWX197f+dRcZaPw=", - "dev": true, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/xss": { - "version": "1.0.14", - "resolved": "https://registry.npmjs.org/xss/-/xss-1.0.14.tgz", - "integrity": "sha512-og7TEJhXvn1a7kzZGQ7ETjdQVS2UfZyTlsEdDOqvQF7GoxNfY+0YLCzBy1kPdsDDx4QuNAonQPddpsn6Xl/7sw==", - "dev": true, - "optional": true, - "dependencies": { - "commander": "^2.20.3", - "cssfilter": "0.0.10" - }, - "bin": { - "xss": "bin/xss" - }, - "engines": { - "node": ">= 0.10.0" - } - }, - "node_modules/xtend": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", - "engines": { - "node": ">=0.4" - } - }, - "node_modules/y18n": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", - "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==" - }, - "node_modules/yaeti": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/yaeti/-/yaeti-0.0.6.tgz", - "integrity": "sha1-8m9ITXJoTPQr7ft2lwqhYI+/lXc=", - "engines": { - "node": ">=0.10.32" - } - }, - "node_modules/yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" - }, - "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/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": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - } - }, - "node_modules/yargs-parser/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/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" - } - }, - "node_modules/yargs-unparser/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/yargs-unparser/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/yargs/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": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/yauzl": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", - "integrity": "sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=", - "dev": true, - "dependencies": { - "buffer-crc32": "~0.2.3", - "fd-slicer": "~1.1.0" - } - }, - "node_modules/yn": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", - "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "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==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - } - }, - "dependencies": { - "@apollo/protobufjs": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/@apollo/protobufjs/-/protobufjs-1.2.7.tgz", - "integrity": "sha512-Lahx5zntHPZia35myYDBRuF58tlwPskwHc5CWBZC/4bMKB6siTBWwtMrkqXcsNwQiFSzSx5hKdRPUmemrEp3Gg==", - "dev": true, - "optional": true, - "requires": { - "@protobufjs/aspromise": "^1.1.2", - "@protobufjs/base64": "^1.1.2", - "@protobufjs/codegen": "^2.0.4", - "@protobufjs/eventemitter": "^1.1.0", - "@protobufjs/fetch": "^1.1.0", - "@protobufjs/float": "^1.0.2", - "@protobufjs/inquire": "^1.1.0", - "@protobufjs/path": "^1.1.2", - "@protobufjs/pool": "^1.1.0", - "@protobufjs/utf8": "^1.1.0", - "@types/long": "^4.0.0", - "long": "^4.0.0" - } - }, - "@apollo/usage-reporting-protobuf": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/@apollo/usage-reporting-protobuf/-/usage-reporting-protobuf-4.1.0.tgz", - "integrity": "sha512-hXouMuw5pQVkzi8dgMybmr6Y11+eRmMQVoB5TF0HyTwAg9SOq/v3OCuiYqcVUKdBcskU9Msp+XvjAk0GKpWCwQ==", - "dev": true, - "optional": true, - "requires": { - "@apollo/protobufjs": "1.2.7" - } - }, - "@apollo/utils.dropunuseddefinitions": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@apollo/utils.dropunuseddefinitions/-/utils.dropunuseddefinitions-1.1.0.tgz", - "integrity": "sha512-jU1XjMr6ec9pPoL+BFWzEPW7VHHulVdGKMkPAMiCigpVIT11VmCbnij0bWob8uS3ODJ65tZLYKAh/55vLw2rbg==", - "dev": true, - "optional": true, - "requires": {} - }, - "@apollo/utils.keyvaluecache": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@apollo/utils.keyvaluecache/-/utils.keyvaluecache-1.0.2.tgz", - "integrity": "sha512-p7PVdLPMnPzmXSQVEsy27cYEjVON+SH/Wb7COyW3rQN8+wJgT1nv9jZouYtztWW8ZgTkii5T6tC9qfoDREd4mg==", - "dev": true, - "optional": true, - "requires": { - "@apollo/utils.logger": "^1.0.0", - "lru-cache": "7.10.1 - 7.13.1" - }, - "dependencies": { - "lru-cache": { - "version": "7.13.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.13.1.tgz", - "integrity": "sha512-CHqbAq7NFlW3RSnoWXLJBxCWaZVBrfa9UEHId2M3AW8iEBurbqduNexEUCGc3SHc6iCYXNJCDi903LajSVAEPQ==", - "dev": true, - "optional": true - } - } - }, - "@apollo/utils.logger": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@apollo/utils.logger/-/utils.logger-1.0.1.tgz", - "integrity": "sha512-XdlzoY7fYNK4OIcvMD2G94RoFZbzTQaNP0jozmqqMudmaGo2I/2Jx71xlDJ801mWA/mbYRihyaw6KJii7k5RVA==", - "dev": true, - "optional": true - }, - "@apollo/utils.printwithreducedwhitespace": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@apollo/utils.printwithreducedwhitespace/-/utils.printwithreducedwhitespace-1.1.0.tgz", - "integrity": "sha512-GfFSkAv3n1toDZ4V6u2d7L4xMwLA+lv+6hqXicMN9KELSJ9yy9RzuEXaX73c/Ry+GzRsBy/fdSUGayGqdHfT2Q==", - "dev": true, - "optional": true, - "requires": {} - }, - "@apollo/utils.removealiases": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@apollo/utils.removealiases/-/utils.removealiases-1.0.0.tgz", - "integrity": "sha512-6cM8sEOJW2LaGjL/0vHV0GtRaSekrPQR4DiywaApQlL9EdROASZU5PsQibe2MWeZCOhNrPRuHh4wDMwPsWTn8A==", - "dev": true, - "optional": true, - "requires": {} - }, - "@apollo/utils.sortast": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@apollo/utils.sortast/-/utils.sortast-1.1.0.tgz", - "integrity": "sha512-VPlTsmUnOwzPK5yGZENN069y6uUHgeiSlpEhRnLFYwYNoJHsuJq2vXVwIaSmts015WTPa2fpz1inkLYByeuRQA==", - "dev": true, - "optional": true, - "requires": { - "lodash.sortby": "^4.7.0" - } - }, - "@apollo/utils.stripsensitiveliterals": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@apollo/utils.stripsensitiveliterals/-/utils.stripsensitiveliterals-1.2.0.tgz", - "integrity": "sha512-E41rDUzkz/cdikM5147d8nfCFVKovXxKBcjvLEQ7bjZm/cg9zEcXvS6vFY8ugTubI3fn6zoqo0CyU8zT+BGP9w==", - "dev": true, - "optional": true, - "requires": {} - }, - "@apollo/utils.usagereporting": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@apollo/utils.usagereporting/-/utils.usagereporting-1.0.1.tgz", - "integrity": "sha512-6dk+0hZlnDbahDBB2mP/PZ5ybrtCJdLMbeNJD+TJpKyZmSY6bA3SjI8Cr2EM9QA+AdziywuWg+SgbWUF3/zQqQ==", - "dev": true, - "optional": true, - "requires": { - "@apollo/usage-reporting-protobuf": "^4.0.0", - "@apollo/utils.dropunuseddefinitions": "^1.1.0", - "@apollo/utils.printwithreducedwhitespace": "^1.1.0", - "@apollo/utils.removealiases": "1.0.0", - "@apollo/utils.sortast": "^1.1.0", - "@apollo/utils.stripsensitiveliterals": "^1.2.0" - } - }, - "@apollographql/apollo-tools": { - "version": "0.5.4", - "resolved": "https://registry.npmjs.org/@apollographql/apollo-tools/-/apollo-tools-0.5.4.tgz", - "integrity": "sha512-shM3q7rUbNyXVVRkQJQseXv6bnYM3BUma/eZhwXR4xsuM+bqWnJKvW7SAfRjP7LuSCocrexa5AXhjjawNHrIlw==", - "dev": true, - "optional": true, - "requires": {} - }, - "@apollographql/graphql-playground-html": { - "version": "1.6.29", - "resolved": "https://registry.npmjs.org/@apollographql/graphql-playground-html/-/graphql-playground-html-1.6.29.tgz", - "integrity": "sha512-xCcXpoz52rI4ksJSdOCxeOCn2DLocxwHf9dVT/Q90Pte1LX+LY+91SFtJF3KXVHH8kEin+g1KKCQPKBjZJfWNA==", - "dev": true, - "optional": true, - "requires": { - "xss": "^1.0.8" - } - }, - "@babel/code-frame": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.7.tgz", - "integrity": "sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==", - "requires": { - "@babel/highlight": "^7.16.7" - } - }, - "@babel/compat-data": { - "version": "7.14.0", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.14.0.tgz", - "integrity": "sha512-vu9V3uMM/1o5Hl5OekMUowo3FqXLJSw+s+66nt0fSWVWTtmosdzn45JHOB3cPtZoe6CTBDzvSw0RdOY85Q37+Q==" - }, - "@babel/core": { - "version": "7.14.2", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.14.2.tgz", - "integrity": "sha512-OgC1mON+l4U4B4wiohJlQNUU3H73mpTyYY3j/c8U9dr9UagGGSm+WFpzjy/YLdoyjiG++c1kIDgxCo/mLwQJeQ==", - "peer": true, - "requires": { - "@babel/code-frame": "^7.12.13", - "@babel/generator": "^7.14.2", - "@babel/helper-compilation-targets": "^7.13.16", - "@babel/helper-module-transforms": "^7.14.2", - "@babel/helpers": "^7.14.0", - "@babel/parser": "^7.14.2", - "@babel/template": "^7.12.13", - "@babel/traverse": "^7.14.2", - "@babel/types": "^7.14.2", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.1.2", - "semver": "^6.3.0", - "source-map": "^0.5.0" - }, - "dependencies": { - "@babel/traverse": { - "version": "7.14.2", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.14.2.tgz", - "integrity": "sha512-TsdRgvBFHMyHOOzcP9S6QU0QQtjxlRpEYOy3mcCO5RgmC305ki42aSAmfZEMSSYBla2oZ9BMqYlncBaKmD/7iA==", - "peer": true, - "requires": { - "@babel/code-frame": "^7.12.13", - "@babel/generator": "^7.14.2", - "@babel/helper-function-name": "^7.14.2", - "@babel/helper-split-export-declaration": "^7.12.13", - "@babel/parser": "^7.14.2", - "@babel/types": "^7.14.2", - "debug": "^4.1.0", - "globals": "^11.1.0" - } - }, - "@babel/types": { - "version": "7.14.2", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.14.2.tgz", - "integrity": "sha512-SdjAG/3DikRHpUOjxZgnkbR11xUlyDMUFJdvnIgZEE16mqmY0BINMmc4//JMJglEmn6i7sq6p+mGrFWyZ98EEw==", - "peer": true, - "requires": { - "@babel/helper-validator-identifier": "^7.14.0", - "to-fast-properties": "^2.0.0" - } - }, - "debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", - "peer": true, - "requires": { - "ms": "2.1.2" - } - }, - "globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "peer": true - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "peer": true - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "peer": true - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "peer": true - } - } - }, - "@babel/generator": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.16.8.tgz", - "integrity": "sha512-1ojZwE9+lOXzcWdWmO6TbUzDfqLD39CmEhN8+2cX9XkDo5yW1OpgfejfliysR2AWLpMamTiOiAp/mtroaymhpw==", - "requires": { - "@babel/types": "^7.16.8", - "jsesc": "^2.5.1", - "source-map": "^0.5.0" - }, - "dependencies": { - "@babel/types": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.16.8.tgz", - "integrity": "sha512-smN2DQc5s4M7fntyjGtyIPbRJv6wW4rU/94fmYJ7PKQuZkC0qGMHXJbg6sNGt12JmVr4k5YaptI/XtiLJBnmIg==", - "requires": { - "@babel/helper-validator-identifier": "^7.16.7", - "to-fast-properties": "^2.0.0" - } - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" - } - } - }, - "@babel/helper-compilation-targets": { - "version": "7.13.16", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.13.16.tgz", - "integrity": "sha512-3gmkYIrpqsLlieFwjkGgLaSHmhnvlAYzZLlYVjlW+QwI+1zE17kGxuJGmIqDQdYp56XdmGeD+Bswx0UTyG18xA==", - "requires": { - "@babel/compat-data": "^7.13.15", - "@babel/helper-validator-option": "^7.12.17", - "browserslist": "^4.14.5", - "semver": "^6.3.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" - } - } - }, - "@babel/helper-define-polyfill-provider": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.0.tgz", - "integrity": "sha512-7hfT8lUljl/tM3h+izTX/pO3W3frz2ok6Pk+gzys8iJqDfZrZy2pXjRTZAvG2YmfHun1X4q8/UZRLatMfqc5Tg==", - "requires": { - "@babel/helper-compilation-targets": "^7.13.0", - "@babel/helper-module-imports": "^7.12.13", - "@babel/helper-plugin-utils": "^7.13.0", - "@babel/traverse": "^7.13.0", - "debug": "^4.1.1", - "lodash.debounce": "^4.0.8", - "resolve": "^1.14.2", - "semver": "^6.1.2" - }, - "dependencies": { - "@babel/traverse": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.16.8.tgz", - "integrity": "sha512-xe+H7JlvKsDQwXRsBhSnq1/+9c+LlQcCK3Tn/l5sbx02HYns/cn7ibp9+RV1sIUqu7hKg91NWsgHurO9dowITQ==", - "requires": { - "@babel/code-frame": "^7.16.7", - "@babel/generator": "^7.16.8", - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-function-name": "^7.16.7", - "@babel/helper-hoist-variables": "^7.16.7", - "@babel/helper-split-export-declaration": "^7.16.7", - "@babel/parser": "^7.16.8", - "@babel/types": "^7.16.8", - "debug": "^4.1.0", - "globals": "^11.1.0" - } - }, - "@babel/types": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.16.8.tgz", - "integrity": "sha512-smN2DQc5s4M7fntyjGtyIPbRJv6wW4rU/94fmYJ7PKQuZkC0qGMHXJbg6sNGt12JmVr4k5YaptI/XtiLJBnmIg==", - "requires": { - "@babel/helper-validator-identifier": "^7.16.7", - "to-fast-properties": "^2.0.0" - } - }, - "debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", - "requires": { - "ms": "2.1.2" - } - }, - "globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==" - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" - } - } - }, - "@babel/helper-environment-visitor": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.16.7.tgz", - "integrity": "sha512-SLLb0AAn6PkUeAfKJCCOl9e1R53pQlGAfc4y4XuMRZfqeMYLE0dM1LMhqbGAlGQY0lfw5/ohoYWAe9V1yibRag==", - "requires": { - "@babel/types": "^7.16.7" - }, - "dependencies": { - "@babel/types": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.16.8.tgz", - "integrity": "sha512-smN2DQc5s4M7fntyjGtyIPbRJv6wW4rU/94fmYJ7PKQuZkC0qGMHXJbg6sNGt12JmVr4k5YaptI/XtiLJBnmIg==", - "requires": { - "@babel/helper-validator-identifier": "^7.16.7", - "to-fast-properties": "^2.0.0" - } - } - } - }, - "@babel/helper-function-name": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.16.7.tgz", - "integrity": "sha512-QfDfEnIUyyBSR3HtrtGECuZ6DAyCkYFp7GHl75vFtTnn6pjKeK0T1DB5lLkFvBea8MdaiUABx3osbgLyInoejA==", - "requires": { - "@babel/helper-get-function-arity": "^7.16.7", - "@babel/template": "^7.16.7", - "@babel/types": "^7.16.7" - }, - "dependencies": { - "@babel/types": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.16.8.tgz", - "integrity": "sha512-smN2DQc5s4M7fntyjGtyIPbRJv6wW4rU/94fmYJ7PKQuZkC0qGMHXJbg6sNGt12JmVr4k5YaptI/XtiLJBnmIg==", - "requires": { - "@babel/helper-validator-identifier": "^7.16.7", - "to-fast-properties": "^2.0.0" - } - } - } - }, - "@babel/helper-get-function-arity": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.16.7.tgz", - "integrity": "sha512-flc+RLSOBXzNzVhcLu6ujeHUrD6tANAOU5ojrRx/as+tbzf8+stUCj7+IfRRoAbEZqj/ahXEMsjhOhgeZsrnTw==", - "requires": { - "@babel/types": "^7.16.7" - }, - "dependencies": { - "@babel/types": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.16.8.tgz", - "integrity": "sha512-smN2DQc5s4M7fntyjGtyIPbRJv6wW4rU/94fmYJ7PKQuZkC0qGMHXJbg6sNGt12JmVr4k5YaptI/XtiLJBnmIg==", - "requires": { - "@babel/helper-validator-identifier": "^7.16.7", - "to-fast-properties": "^2.0.0" - } - } - } - }, - "@babel/helper-hoist-variables": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.7.tgz", - "integrity": "sha512-m04d/0Op34H5v7pbZw6pSKP7weA6lsMvfiIAMeIvkY/R4xQtBSMFEigu9QTZ2qB/9l22vsxtM8a+Q8CzD255fg==", - "requires": { - "@babel/types": "^7.16.7" - }, - "dependencies": { - "@babel/types": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.16.8.tgz", - "integrity": "sha512-smN2DQc5s4M7fntyjGtyIPbRJv6wW4rU/94fmYJ7PKQuZkC0qGMHXJbg6sNGt12JmVr4k5YaptI/XtiLJBnmIg==", - "requires": { - "@babel/helper-validator-identifier": "^7.16.7", - "to-fast-properties": "^2.0.0" - } - } - } - }, - "@babel/helper-member-expression-to-functions": { - "version": "7.13.12", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.13.12.tgz", - "integrity": "sha512-48ql1CLL59aKbU94Y88Xgb2VFy7a95ykGRbJJaaVv+LX5U8wFpLfiGXJJGUozsmA1oEh/o5Bp60Voq7ACyA/Sw==", - "peer": true, - "requires": { - "@babel/types": "^7.13.12" - }, - "dependencies": { - "@babel/types": { - "version": "7.14.2", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.14.2.tgz", - "integrity": "sha512-SdjAG/3DikRHpUOjxZgnkbR11xUlyDMUFJdvnIgZEE16mqmY0BINMmc4//JMJglEmn6i7sq6p+mGrFWyZ98EEw==", - "peer": true, - "requires": { - "@babel/helper-validator-identifier": "^7.14.0", - "to-fast-properties": "^2.0.0" - } - } - } - }, - "@babel/helper-module-imports": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.16.7.tgz", - "integrity": "sha512-LVtS6TqjJHFc+nYeITRo6VLXve70xmq7wPhWTqDJusJEgGmkAACWwMiTNrvfoQo6hEhFwAIixNkvB0jPXDL8Wg==", - "requires": { - "@babel/types": "^7.16.7" - }, - "dependencies": { - "@babel/types": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.16.8.tgz", - "integrity": "sha512-smN2DQc5s4M7fntyjGtyIPbRJv6wW4rU/94fmYJ7PKQuZkC0qGMHXJbg6sNGt12JmVr4k5YaptI/XtiLJBnmIg==", - "requires": { - "@babel/helper-validator-identifier": "^7.16.7", - "to-fast-properties": "^2.0.0" - } - } - } - }, - "@babel/helper-module-transforms": { - "version": "7.14.2", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.14.2.tgz", - "integrity": "sha512-OznJUda/soKXv0XhpvzGWDnml4Qnwp16GN+D/kZIdLsWoHj05kyu8Rm5kXmMef+rVJZ0+4pSGLkeixdqNUATDA==", - "peer": true, - "requires": { - "@babel/helper-module-imports": "^7.13.12", - "@babel/helper-replace-supers": "^7.13.12", - "@babel/helper-simple-access": "^7.13.12", - "@babel/helper-split-export-declaration": "^7.12.13", - "@babel/helper-validator-identifier": "^7.14.0", - "@babel/template": "^7.12.13", - "@babel/traverse": "^7.14.2", - "@babel/types": "^7.14.2" - }, - "dependencies": { - "@babel/traverse": { - "version": "7.14.2", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.14.2.tgz", - "integrity": "sha512-TsdRgvBFHMyHOOzcP9S6QU0QQtjxlRpEYOy3mcCO5RgmC305ki42aSAmfZEMSSYBla2oZ9BMqYlncBaKmD/7iA==", - "peer": true, - "requires": { - "@babel/code-frame": "^7.12.13", - "@babel/generator": "^7.14.2", - "@babel/helper-function-name": "^7.14.2", - "@babel/helper-split-export-declaration": "^7.12.13", - "@babel/parser": "^7.14.2", - "@babel/types": "^7.14.2", - "debug": "^4.1.0", - "globals": "^11.1.0" - } - }, - "@babel/types": { - "version": "7.14.2", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.14.2.tgz", - "integrity": "sha512-SdjAG/3DikRHpUOjxZgnkbR11xUlyDMUFJdvnIgZEE16mqmY0BINMmc4//JMJglEmn6i7sq6p+mGrFWyZ98EEw==", - "peer": true, - "requires": { - "@babel/helper-validator-identifier": "^7.14.0", - "to-fast-properties": "^2.0.0" - } - }, - "debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", - "peer": true, - "requires": { - "ms": "2.1.2" - } - }, - "globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "peer": true - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "peer": true - } - } - }, - "@babel/helper-optimise-call-expression": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.12.13.tgz", - "integrity": "sha512-BdWQhoVJkp6nVjB7nkFWcn43dkprYauqtk++Py2eaf/GRDFm5BxRqEIZCiHlZUGAVmtwKcsVL1dC68WmzeFmiA==", - "peer": true, - "requires": { - "@babel/types": "^7.12.13" - } - }, - "@babel/helper-plugin-utils": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz", - "integrity": "sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA==" - }, - "@babel/helper-replace-supers": { - "version": "7.13.12", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.13.12.tgz", - "integrity": "sha512-Gz1eiX+4yDO8mT+heB94aLVNCL+rbuT2xy4YfyNqu8F+OI6vMvJK891qGBTqL9Uc8wxEvRW92Id6G7sDen3fFw==", - "peer": true, - "requires": { - "@babel/helper-member-expression-to-functions": "^7.13.12", - "@babel/helper-optimise-call-expression": "^7.12.13", - "@babel/traverse": "^7.13.0", - "@babel/types": "^7.13.12" - }, - "dependencies": { - "@babel/traverse": { - "version": "7.14.2", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.14.2.tgz", - "integrity": "sha512-TsdRgvBFHMyHOOzcP9S6QU0QQtjxlRpEYOy3mcCO5RgmC305ki42aSAmfZEMSSYBla2oZ9BMqYlncBaKmD/7iA==", - "peer": true, - "requires": { - "@babel/code-frame": "^7.12.13", - "@babel/generator": "^7.14.2", - "@babel/helper-function-name": "^7.14.2", - "@babel/helper-split-export-declaration": "^7.12.13", - "@babel/parser": "^7.14.2", - "@babel/types": "^7.14.2", - "debug": "^4.1.0", - "globals": "^11.1.0" - } - }, - "@babel/types": { - "version": "7.14.2", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.14.2.tgz", - "integrity": "sha512-SdjAG/3DikRHpUOjxZgnkbR11xUlyDMUFJdvnIgZEE16mqmY0BINMmc4//JMJglEmn6i7sq6p+mGrFWyZ98EEw==", - "peer": true, - "requires": { - "@babel/helper-validator-identifier": "^7.14.0", - "to-fast-properties": "^2.0.0" - } - }, - "debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", - "peer": true, - "requires": { - "ms": "2.1.2" - } - }, - "globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "peer": true - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "peer": true - } - } - }, - "@babel/helper-simple-access": { - "version": "7.13.12", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.13.12.tgz", - "integrity": "sha512-7FEjbrx5SL9cWvXioDbnlYTppcZGuCY6ow3/D5vMggb2Ywgu4dMrpTJX0JdQAIcRRUElOIxF3yEooa9gUb9ZbA==", - "peer": true, - "requires": { - "@babel/types": "^7.13.12" - }, - "dependencies": { - "@babel/types": { - "version": "7.14.2", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.14.2.tgz", - "integrity": "sha512-SdjAG/3DikRHpUOjxZgnkbR11xUlyDMUFJdvnIgZEE16mqmY0BINMmc4//JMJglEmn6i7sq6p+mGrFWyZ98EEw==", - "peer": true, - "requires": { - "@babel/helper-validator-identifier": "^7.14.0", - "to-fast-properties": "^2.0.0" - } - } - } - }, - "@babel/helper-split-export-declaration": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.7.tgz", - "integrity": "sha512-xbWoy/PFoxSWazIToT9Sif+jJTlrMcndIsaOKvTA6u7QEo7ilkRZpjew18/W3c7nm8fXdUDXh02VXTbZ0pGDNw==", - "requires": { - "@babel/types": "^7.16.7" - }, - "dependencies": { - "@babel/types": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.16.8.tgz", - "integrity": "sha512-smN2DQc5s4M7fntyjGtyIPbRJv6wW4rU/94fmYJ7PKQuZkC0qGMHXJbg6sNGt12JmVr4k5YaptI/XtiLJBnmIg==", - "requires": { - "@babel/helper-validator-identifier": "^7.16.7", - "to-fast-properties": "^2.0.0" - } - } - } - }, - "@babel/helper-validator-identifier": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz", - "integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==" - }, - "@babel/helper-validator-option": { - "version": "7.12.17", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.12.17.tgz", - "integrity": "sha512-TopkMDmLzq8ngChwRlyjR6raKD6gMSae4JdYDB8bByKreQgG0RBTuKe9LRxW3wFtUnjxOPRKBDwEH6Mg5KeDfw==" - }, - "@babel/helpers": { - "version": "7.14.0", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.14.0.tgz", - "integrity": "sha512-+ufuXprtQ1D1iZTO/K9+EBRn+qPWMJjZSw/S0KlFrxCw4tkrzv9grgpDHkY9MeQTjTY8i2sp7Jep8DfU6tN9Mg==", - "peer": true, - "requires": { - "@babel/template": "^7.12.13", - "@babel/traverse": "^7.14.0", - "@babel/types": "^7.14.0" - }, - "dependencies": { - "@babel/traverse": { - "version": "7.14.2", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.14.2.tgz", - "integrity": "sha512-TsdRgvBFHMyHOOzcP9S6QU0QQtjxlRpEYOy3mcCO5RgmC305ki42aSAmfZEMSSYBla2oZ9BMqYlncBaKmD/7iA==", - "peer": true, - "requires": { - "@babel/code-frame": "^7.12.13", - "@babel/generator": "^7.14.2", - "@babel/helper-function-name": "^7.14.2", - "@babel/helper-split-export-declaration": "^7.12.13", - "@babel/parser": "^7.14.2", - "@babel/types": "^7.14.2", - "debug": "^4.1.0", - "globals": "^11.1.0" - } - }, - "@babel/types": { - "version": "7.14.2", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.14.2.tgz", - "integrity": "sha512-SdjAG/3DikRHpUOjxZgnkbR11xUlyDMUFJdvnIgZEE16mqmY0BINMmc4//JMJglEmn6i7sq6p+mGrFWyZ98EEw==", - "peer": true, - "requires": { - "@babel/helper-validator-identifier": "^7.14.0", - "to-fast-properties": "^2.0.0" - } - }, - "debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", - "peer": true, - "requires": { - "ms": "2.1.2" - } - }, - "globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "peer": true - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "peer": true - } - } - }, - "@babel/highlight": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.16.7.tgz", - "integrity": "sha512-aKpPMfLvGO3Q97V0qhw/V2SWNWlwfJknuwAunU7wZLSfrM4xTBvg7E5opUVi1kJTBKihE38CPg4nBiqX83PWYw==", - "requires": { - "@babel/helper-validator-identifier": "^7.16.7", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - } - }, - "@babel/parser": { - "version": "7.17.10", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.17.10.tgz", - "integrity": "sha512-n2Q6i+fnJqzOaq2VkdXxy2TCPCWQZHiCo0XqmrCvDWcZQKRyZzYi4Z0yxlBuN0w+r2ZHmre+Q087DSrw3pbJDQ==" - }, - "@babel/plugin-transform-runtime": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.16.8.tgz", - "integrity": "sha512-6Kg2XHPFnIarNweZxmzbgYnnWsXxkx9WQUVk2sksBRL80lBC1RAQV3wQagWxdCHiYHqPN+oenwNIuttlYgIbQQ==", - "requires": { - "@babel/helper-module-imports": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "babel-plugin-polyfill-corejs2": "^0.3.0", - "babel-plugin-polyfill-corejs3": "^0.5.0", - "babel-plugin-polyfill-regenerator": "^0.3.0", - "semver": "^6.3.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" - } - } - }, - "@babel/runtime": { - "version": "7.20.13", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.20.13.tgz", - "integrity": "sha512-gt3PKXs0DBoL9xCvOIIZ2NEqAGZqHjAnmVbfQtB620V0uReIQutpel14KcneZuer7UioY8ALKZ7iocavvzTNFA==", - "requires": { - "regenerator-runtime": "^0.13.11" - } - }, - "@babel/template": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.16.7.tgz", - "integrity": "sha512-I8j/x8kHUrbYRTUxXrrMbfCa7jxkE7tZre39x3kjr9hvI82cK1FfqLygotcWN5kdPGWcLdWMHpSBavse5tWw3w==", - "requires": { - "@babel/code-frame": "^7.16.7", - "@babel/parser": "^7.16.7", - "@babel/types": "^7.16.7" - }, - "dependencies": { - "@babel/types": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.16.8.tgz", - "integrity": "sha512-smN2DQc5s4M7fntyjGtyIPbRJv6wW4rU/94fmYJ7PKQuZkC0qGMHXJbg6sNGt12JmVr4k5YaptI/XtiLJBnmIg==", - "requires": { - "@babel/helper-validator-identifier": "^7.16.7", - "to-fast-properties": "^2.0.0" - } - } - } - }, - "@babel/types": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.13.tgz", - "integrity": "sha512-oKrdZTld2im1z8bDwTOQvUbxKwE+854zc16qWZQlcTqMN00pWxHQ4ZeOq0yDMnisOpRykH2/5Qqcrk/OlbAjiQ==", - "peer": true, - "requires": { - "@babel/helper-validator-identifier": "^7.12.11", - "lodash": "^4.17.19", - "to-fast-properties": "^2.0.0" - } - }, - "@chainsafe/truffle-plugin-abigen": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/@chainsafe/truffle-plugin-abigen/-/truffle-plugin-abigen-0.0.1.tgz", - "integrity": "sha512-/8wPXE2HCEdngSQCXJdjMtzpPVjjG9RGR+GwOZf4ve0o2LpOc2gPzxYvd67g6IOkI6pJwfAHoFb3L+qtc9G5pQ==", - "dev": true, - "requires": { - "cli-logger": "^0.5.40", - "eslint": "^6.8.0" - } - }, - "@cspotcode/source-map-support": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", - "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", - "dev": true, - "requires": { - "@jridgewell/trace-mapping": "0.3.9" - } - }, - "@ethereumjs/common": { - "version": "2.6.5", - "resolved": "https://registry.npmjs.org/@ethereumjs/common/-/common-2.6.5.tgz", - "integrity": "sha512-lRyVQOeCDaIVtgfbowla32pzeDv2Obr8oR8Put5RdUBNRGr1VGPGQNGP6elWIpgK3YdpzqTOh4GyUGOureVeeA==", - "dev": true, - "requires": { - "crc-32": "^1.2.0", - "ethereumjs-util": "^7.1.5" - }, - "dependencies": { - "@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==", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "bn.js": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", - "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==", - "dev": true - }, - "ethereumjs-util": { - "version": "7.1.5", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.5.tgz", - "integrity": "sha512-SDl5kKrQAudFBUe5OJM9Ac6WmMyYmXX/6sTmLZ3ffG2eY6ZIGBes3pEDxNN6V72WyOw4CPD5RomKdsa8DAAwLg==", - "dev": true, - "requires": { - "@types/bn.js": "^5.1.0", - "bn.js": "^5.1.2", - "create-hash": "^1.1.2", - "ethereum-cryptography": "^0.1.3", - "rlp": "^2.2.4" - } - } - } - }, - "@ethereumjs/tx": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/@ethereumjs/tx/-/tx-3.5.2.tgz", - "integrity": "sha512-gQDNJWKrSDGu2w7w0PzVXVBNMzb7wwdDOmOqczmhNjqFxFuIbhVJDwiGEnxFNC2/b8ifcZzY7MLcluizohRzNw==", - "dev": true, - "requires": { - "@ethereumjs/common": "^2.6.4", - "ethereumjs-util": "^7.1.5" - }, - "dependencies": { - "@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==", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "bn.js": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", - "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==", - "dev": true - }, - "ethereumjs-util": { - "version": "7.1.5", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.5.tgz", - "integrity": "sha512-SDl5kKrQAudFBUe5OJM9Ac6WmMyYmXX/6sTmLZ3ffG2eY6ZIGBes3pEDxNN6V72WyOw4CPD5RomKdsa8DAAwLg==", - "dev": true, - "requires": { - "@types/bn.js": "^5.1.0", - "bn.js": "^5.1.2", - "create-hash": "^1.1.2", - "ethereum-cryptography": "^0.1.3", - "rlp": "^2.2.4" - } - } - } - }, - "@ethersproject/abi": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/abi/-/abi-5.7.0.tgz", - "integrity": "sha512-351ktp42TiRcYB3H1OP8yajPeAQstMW/yCFokj/AthP9bLHzQFPlOrxOcwYEDkUAICmOHljvN4K39OMTMUa9RA==", - "requires": { - "@ethersproject/address": "^5.7.0", - "@ethersproject/bignumber": "^5.7.0", - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/constants": "^5.7.0", - "@ethersproject/hash": "^5.7.0", - "@ethersproject/keccak256": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/properties": "^5.7.0", - "@ethersproject/strings": "^5.7.0" - } - }, - "@ethersproject/abstract-provider": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/abstract-provider/-/abstract-provider-5.7.0.tgz", - "integrity": "sha512-R41c9UkchKCpAqStMYUpdunjo3pkEvZC3FAwZn5S5MGbXoMQOHIdHItezTETxAO5bevtMApSyEhn9+CHcDsWBw==", - "requires": { - "@ethersproject/bignumber": "^5.7.0", - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/networks": "^5.7.0", - "@ethersproject/properties": "^5.7.0", - "@ethersproject/transactions": "^5.7.0", - "@ethersproject/web": "^5.7.0" - } - }, - "@ethersproject/abstract-signer": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/abstract-signer/-/abstract-signer-5.7.0.tgz", - "integrity": "sha512-a16V8bq1/Cz+TGCkE2OPMTOUDLS3grCpdjoJCYNnVBbdYEMSgKrU0+B90s8b6H+ByYTBZN7a3g76jdIJi7UfKQ==", - "requires": { - "@ethersproject/abstract-provider": "^5.7.0", - "@ethersproject/bignumber": "^5.7.0", - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/properties": "^5.7.0" - } - }, - "@ethersproject/address": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/address/-/address-5.7.0.tgz", - "integrity": "sha512-9wYhYt7aghVGo758POM5nqcOMaE168Q6aRLJZwUmiqSrAungkG74gSSeKEIR7ukixesdRZGPgVqme6vmxs1fkA==", - "requires": { - "@ethersproject/bignumber": "^5.7.0", - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/keccak256": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/rlp": "^5.7.0" - } - }, - "@ethersproject/base64": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/base64/-/base64-5.7.0.tgz", - "integrity": "sha512-Dr8tcHt2mEbsZr/mwTPIQAf3Ai0Bks/7gTw9dSqk1mQvhW3XvRlmDJr/4n+wg1JmCl16NZue17CDh8xb/vZ0sQ==", - "requires": { - "@ethersproject/bytes": "^5.7.0" - } - }, - "@ethersproject/basex": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/@ethersproject/basex/-/basex-5.4.0.tgz", - "integrity": "sha512-J07+QCVJ7np2bcpxydFVf/CuYo9mZ7T73Pe7KQY4c1lRlrixMeblauMxHXD0MPwFmUHZIILDNViVkykFBZylbg==", - "peer": true, - "requires": { - "@ethersproject/bytes": "^5.4.0", - "@ethersproject/properties": "^5.4.0" - } - }, - "@ethersproject/bignumber": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/bignumber/-/bignumber-5.7.0.tgz", - "integrity": "sha512-n1CAdIHRWjSucQO3MC1zPSVgV/6dy/fjL9pMrPP9peL+QxEg9wOsVqwD4+818B6LUEtaXzVHQiuivzRoxPxUGw==", - "requires": { - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "bn.js": "^5.2.1" - }, - "dependencies": { - "bn.js": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", - "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==" - } - } - }, - "@ethersproject/bytes": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/bytes/-/bytes-5.7.0.tgz", - "integrity": "sha512-nsbxwgFXWh9NyYWo+U8atvmMsSdKJprTcICAkvbBffT75qDocbuggBU0SJiVK2MuTrp0q+xvLkTnGMPK1+uA9A==", - "requires": { - "@ethersproject/logger": "^5.7.0" - } - }, - "@ethersproject/constants": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/constants/-/constants-5.7.0.tgz", - "integrity": "sha512-DHI+y5dBNvkpYUMiRQyxRBYBefZkJfo70VUkUAsRjcPs47muV9evftfZ0PJVCXYbAiCgght0DtcF9srFQmIgWA==", - "requires": { - "@ethersproject/bignumber": "^5.7.0" - } - }, - "@ethersproject/hash": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/hash/-/hash-5.7.0.tgz", - "integrity": "sha512-qX5WrQfnah1EFnO5zJv1v46a8HW0+E5xuBBDTwMFZLuVTx0tbU2kkx15NqdjxecrLGatQN9FGQKpb1FKdHCt+g==", - "requires": { - "@ethersproject/abstract-signer": "^5.7.0", - "@ethersproject/address": "^5.7.0", - "@ethersproject/base64": "^5.7.0", - "@ethersproject/bignumber": "^5.7.0", - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/keccak256": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/properties": "^5.7.0", - "@ethersproject/strings": "^5.7.0" - } - }, - "@ethersproject/keccak256": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/keccak256/-/keccak256-5.7.0.tgz", - "integrity": "sha512-2UcPboeL/iW+pSg6vZ6ydF8tCnv3Iu/8tUmLLzWWGzxWKFFqOBQFLo6uLUv6BDrLgCDfN28RJ/wtByx+jZ4KBg==", - "requires": { - "@ethersproject/bytes": "^5.7.0", - "js-sha3": "0.8.0" - }, - "dependencies": { - "js-sha3": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.8.0.tgz", - "integrity": "sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q==" - } - } - }, - "@ethersproject/logger": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/logger/-/logger-5.7.0.tgz", - "integrity": "sha512-0odtFdXu/XHtjQXJYA3u9G0G8btm0ND5Cu8M7i5vhEcE8/HmF4Lbdqanwyv4uQTr2tx6b7fQRmgLrsnpQlmnig==" - }, - "@ethersproject/networks": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/@ethersproject/networks/-/networks-5.7.1.tgz", - "integrity": "sha512-n/MufjFYv3yFcUyfhnXotyDlNdFb7onmkSy8aQERi2PjNcnWQ66xXxa3XlS8nCcA8aJKJjIIMNJTC7tu80GwpQ==", - "requires": { - "@ethersproject/logger": "^5.7.0" - } - }, - "@ethersproject/properties": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/properties/-/properties-5.7.0.tgz", - "integrity": "sha512-J87jy8suntrAkIZtecpxEPxY//szqr1mlBaYlQ0r4RCaiD2hjheqF9s1LVE8vVuJCXisjIP+JgtK/Do54ej4Sw==", - "requires": { - "@ethersproject/logger": "^5.7.0" - } - }, - "@ethersproject/providers": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/@ethersproject/providers/-/providers-5.4.1.tgz", - "integrity": "sha512-p06eiFKz8nu/5Ju0kIX024gzEQIgE5pvvGrBCngpyVjpuLtUIWT3097Agw4mTn9/dEA0FMcfByzFqacBMSgCVg==", - "peer": true, - "requires": { - "@ethersproject/abstract-provider": "^5.4.0", - "@ethersproject/abstract-signer": "^5.4.0", - "@ethersproject/address": "^5.4.0", - "@ethersproject/basex": "^5.4.0", - "@ethersproject/bignumber": "^5.4.0", - "@ethersproject/bytes": "^5.4.0", - "@ethersproject/constants": "^5.4.0", - "@ethersproject/hash": "^5.4.0", - "@ethersproject/logger": "^5.4.0", - "@ethersproject/networks": "^5.4.0", - "@ethersproject/properties": "^5.4.0", - "@ethersproject/random": "^5.4.0", - "@ethersproject/rlp": "^5.4.0", - "@ethersproject/sha2": "^5.4.0", - "@ethersproject/strings": "^5.4.0", - "@ethersproject/transactions": "^5.4.0", - "@ethersproject/web": "^5.4.0", - "bech32": "1.1.4", - "ws": "7.4.6" - }, - "dependencies": { - "bech32": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/bech32/-/bech32-1.1.4.tgz", - "integrity": "sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ==", - "peer": true - }, - "ws": { - "version": "7.4.6", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz", - "integrity": "sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==", - "peer": true, - "requires": {} - } - } - }, - "@ethersproject/random": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/@ethersproject/random/-/random-5.4.0.tgz", - "integrity": "sha512-pnpWNQlf0VAZDEOVp1rsYQosmv2o0ITS/PecNw+mS2/btF8eYdspkN0vIXrCMtkX09EAh9bdk8GoXmFXM1eAKw==", - "peer": true, - "requires": { - "@ethersproject/bytes": "^5.4.0", - "@ethersproject/logger": "^5.4.0" - } - }, - "@ethersproject/rlp": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/rlp/-/rlp-5.7.0.tgz", - "integrity": "sha512-rBxzX2vK8mVF7b0Tol44t5Tb8gomOHkj5guL+HhzQ1yBh/ydjGnpw6at+X6Iw0Kp3OzzzkcKp8N9r0W4kYSs9w==", - "requires": { - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/logger": "^5.7.0" - } - }, - "@ethersproject/sha2": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/@ethersproject/sha2/-/sha2-5.4.0.tgz", - "integrity": "sha512-siheo36r1WD7Cy+bDdE1BJ8y0bDtqXCOxRMzPa4bV1TGt/eTUUt03BHoJNB6reWJD8A30E/pdJ8WFkq+/uz4Gg==", - "peer": true, - "requires": { - "@ethersproject/bytes": "^5.4.0", - "@ethersproject/logger": "^5.4.0", - "hash.js": "1.1.7" - }, - "dependencies": { - "hash.js": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", - "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", - "peer": true, - "requires": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.1" - } - } - } - }, - "@ethersproject/signing-key": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/signing-key/-/signing-key-5.7.0.tgz", - "integrity": "sha512-MZdy2nL3wO0u7gkB4nA/pEf8lu1TlFswPNmy8AiYkfKTdO6eXBJyUdmHO/ehm/htHw9K/qF8ujnTyUAD+Ry54Q==", - "requires": { - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/properties": "^5.7.0", - "bn.js": "^5.2.1", - "elliptic": "6.5.4", - "hash.js": "1.1.7" - }, - "dependencies": { - "bn.js": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", - "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==" - }, - "hash.js": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", - "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", - "requires": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.1" - } - } - } - }, - "@ethersproject/strings": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/strings/-/strings-5.7.0.tgz", - "integrity": "sha512-/9nu+lj0YswRNSH0NXYqrh8775XNyEdUQAuf3f+SmOrnVewcJ5SBNAjF7lpgehKi4abvNNXyf+HX86czCdJ8Mg==", - "requires": { - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/constants": "^5.7.0", - "@ethersproject/logger": "^5.7.0" - } - }, - "@ethersproject/transactions": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/transactions/-/transactions-5.7.0.tgz", - "integrity": "sha512-kmcNicCp1lp8qanMTC3RIikGgoJ80ztTyvtsFvCYpSCfkjhD0jZ2LOrnbcuxuToLIUYYf+4XwD1rP+B/erDIhQ==", - "requires": { - "@ethersproject/address": "^5.7.0", - "@ethersproject/bignumber": "^5.7.0", - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/constants": "^5.7.0", - "@ethersproject/keccak256": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/properties": "^5.7.0", - "@ethersproject/rlp": "^5.7.0", - "@ethersproject/signing-key": "^5.7.0" - } - }, - "@ethersproject/web": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/@ethersproject/web/-/web-5.7.1.tgz", - "integrity": "sha512-Gueu8lSvyjBWL4cYsWsjh6MtMwM0+H4HvqFPZfB6dV8ctbP9zFAO73VG1cMWae0FLPCtz0peKPpZY8/ugJJX2w==", - "requires": { - "@ethersproject/base64": "^5.7.0", - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/properties": "^5.7.0", - "@ethersproject/strings": "^5.7.0" - } - }, - "@firebase/analytics": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/@firebase/analytics/-/analytics-0.4.1.tgz", - "integrity": "sha512-y5ZuhqX/PwLi0t7AKxNAi3NnlEwXe0rpknulUWUg3/1dALqtd2RrAOATQoV5FNnKK6YUH5UmK0Jb9KcSjsFeNw==", - "dev": true, - "requires": { - "@firebase/analytics-types": "0.3.1", - "@firebase/component": "0.1.17", - "@firebase/installations": "0.4.15", - "@firebase/logger": "0.2.6", - "@firebase/util": "0.3.0", - "tslib": "^1.11.1" - } - }, - "@firebase/analytics-types": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/@firebase/analytics-types/-/analytics-types-0.3.1.tgz", - "integrity": "sha512-63vVJ5NIBh/JF8l9LuPrQYSzFimk7zYHySQB4Dk9rVdJ8kV/vGQoVTvRu1UW05sEc2Ug5PqtEChtTHU+9hvPcA==", - "dev": true - }, - "@firebase/app": { - "version": "0.6.9", - "resolved": "https://registry.npmjs.org/@firebase/app/-/app-0.6.9.tgz", - "integrity": "sha512-X2riRgK49IK8LCQ3j7BKLu3zqHDTJSaT6YgcLewtHuOVwtpHfGODiS1cL5VMvKm3ogxP84GA70tN3sdoL/vTog==", - "dev": true, - "requires": { - "@firebase/app-types": "0.6.1", - "@firebase/component": "0.1.17", - "@firebase/logger": "0.2.6", - "@firebase/util": "0.3.0", - "dom-storage": "2.1.0", - "tslib": "^1.11.1", - "xmlhttprequest": "1.8.0" - } - }, - "@firebase/app-types": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/@firebase/app-types/-/app-types-0.6.1.tgz", - "integrity": "sha512-L/ZnJRAq7F++utfuoTKX4CLBG5YR7tFO3PLzG1/oXXKEezJ0kRL3CMRoueBEmTCzVb/6SIs2Qlaw++uDgi5Xyg==", - "dev": true - }, - "@firebase/auth": { - "version": "0.14.9", - "resolved": "https://registry.npmjs.org/@firebase/auth/-/auth-0.14.9.tgz", - "integrity": "sha512-PxYa2r5qUEdheXTvqROFrMstK8W4uPiP7NVfp+2Bec+AjY5PxZapCx/YFDLkU0D7YBI82H74PtZrzdJZw7TJ4w==", - "dev": true, - "requires": { - "@firebase/auth-types": "0.10.1" - } - }, - "@firebase/auth-interop-types": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/@firebase/auth-interop-types/-/auth-interop-types-0.1.5.tgz", - "integrity": "sha512-88h74TMQ6wXChPA6h9Q3E1Jg6TkTHep2+k63OWg3s0ozyGVMeY+TTOti7PFPzq5RhszQPQOoCi59es4MaRvgCw==", - "dev": true - }, - "@firebase/auth-types": { - "version": "0.10.1", - "resolved": "https://registry.npmjs.org/@firebase/auth-types/-/auth-types-0.10.1.tgz", - "integrity": "sha512-/+gBHb1O9x/YlG7inXfxff/6X3BPZt4zgBv4kql6HEmdzNQCodIRlEYnI+/da+lN+dha7PjaFH7C7ewMmfV7rw==", - "dev": true - }, - "@firebase/component": { - "version": "0.1.17", - "resolved": "https://registry.npmjs.org/@firebase/component/-/component-0.1.17.tgz", - "integrity": "sha512-/tN5iLcFp9rdpTfCJPfQ/o2ziGHlDxOzNx6XD2FoHlu4pG/PPGu+59iRfQXIowBGhxcTGD/l7oJhZEY/PVg0KQ==", - "dev": true, - "requires": { - "@firebase/util": "0.3.0", - "tslib": "^1.11.1" - } - }, - "@firebase/database": { - "version": "0.6.9", - "resolved": "https://registry.npmjs.org/@firebase/database/-/database-0.6.9.tgz", - "integrity": "sha512-+X2dNFDpcLEcDRdXp2Hgkf0RnNz3AOIC+Y7UFMQYadm9buB+snXomlnlkMzOj6o+Cp3V7GnpBrKKeeFqzF6wGQ==", - "dev": true, - "requires": { - "@firebase/auth-interop-types": "0.1.5", - "@firebase/component": "0.1.17", - "@firebase/database-types": "0.5.1", - "@firebase/logger": "0.2.6", - "@firebase/util": "0.3.0", - "faye-websocket": "0.11.3", - "tslib": "^1.11.1" - } - }, - "@firebase/database-types": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/@firebase/database-types/-/database-types-0.5.1.tgz", - "integrity": "sha512-onQxom1ZBYBJ648w/VNRzUewovEDAH7lvnrrpCd69ukkyrMk6rGEO/PQ9BcNEbhlNtukpsqRS0oNOFlHs0FaSA==", - "dev": true, - "requires": { - "@firebase/app-types": "0.6.1" - } - }, - "@firebase/firestore": { - "version": "1.16.2", - "resolved": "https://registry.npmjs.org/@firebase/firestore/-/firestore-1.16.2.tgz", - "integrity": "sha512-iIkAL860oD/QA1uYI9JBbWqBYFWd+DnuSj//BIbOGn3DNAruDFy07g8re1vn+0MMas9bMk6CZATJNCFPeH8AsQ==", - "dev": true, - "requires": { - "@firebase/component": "0.1.17", - "@firebase/firestore-types": "1.12.0", - "@firebase/logger": "0.2.6", - "@firebase/util": "0.3.0", - "@firebase/webchannel-wrapper": "0.2.41", - "@grpc/grpc-js": "^1.0.0", - "@grpc/proto-loader": "^0.5.0", - "tslib": "^1.11.1" - } - }, - "@firebase/firestore-types": { - "version": "1.12.0", - "resolved": "https://registry.npmjs.org/@firebase/firestore-types/-/firestore-types-1.12.0.tgz", - "integrity": "sha512-OqNxVb63wPZdUc7YnpacAW1WNIMSKERSewCRi+unCQ0YI0KNfrDSypyGCyel+S3GdOtKMk9KnvDknaGbnaFX4g==", - "dev": true - }, - "@firebase/functions": { - "version": "0.4.49", - "resolved": "https://registry.npmjs.org/@firebase/functions/-/functions-0.4.49.tgz", - "integrity": "sha512-ma3+z1wMKervmEJCLWxwIjbSV+n3/BTfFPSZdTjt18Wgiso5q4BzEObFkorxaXZiyT3KpZ0qOO97lgcoth2hIA==", - "dev": true, - "requires": { - "@firebase/component": "0.1.17", - "@firebase/functions-types": "0.3.17", - "@firebase/messaging-types": "0.4.5", - "isomorphic-fetch": "2.2.1", - "tslib": "^1.11.1" - } - }, - "@firebase/functions-types": { - "version": "0.3.17", - "resolved": "https://registry.npmjs.org/@firebase/functions-types/-/functions-types-0.3.17.tgz", - "integrity": "sha512-DGR4i3VI55KnYk4IxrIw7+VG7Q3gA65azHnZxo98Il8IvYLr2UTBlSh72dTLlDf25NW51HqvJgYJDKvSaAeyHQ==", - "dev": true - }, - "@firebase/installations": { - "version": "0.4.15", - "resolved": "https://registry.npmjs.org/@firebase/installations/-/installations-0.4.15.tgz", - "integrity": "sha512-6uGgDocDGu5gI7FeDBDcLaH4npz0cm2f0kctOFK+5N1CyK8Tv2YGv5/uGqlrTtSwDW+8tgKNo/5XXJJOPr9Jsw==", - "dev": true, - "requires": { - "@firebase/component": "0.1.17", - "@firebase/installations-types": "0.3.4", - "@firebase/util": "0.3.0", - "idb": "3.0.2", - "tslib": "^1.11.1" - } - }, - "@firebase/installations-types": { - "version": "0.3.4", - "resolved": "https://registry.npmjs.org/@firebase/installations-types/-/installations-types-0.3.4.tgz", - "integrity": "sha512-RfePJFovmdIXb6rYwtngyxuEcWnOrzdZd9m7xAW0gRxDIjBT20n3BOhjpmgRWXo/DAxRmS7bRjWAyTHY9cqN7Q==", - "dev": true - }, - "@firebase/logger": { - "version": "0.2.6", - "resolved": "https://registry.npmjs.org/@firebase/logger/-/logger-0.2.6.tgz", - "integrity": "sha512-KIxcUvW/cRGWlzK9Vd2KB864HlUnCfdTH0taHE0sXW5Xl7+W68suaeau1oKNEqmc3l45azkd4NzXTCWZRZdXrw==", - "dev": true - }, - "@firebase/messaging": { - "version": "0.6.21", - "resolved": "https://registry.npmjs.org/@firebase/messaging/-/messaging-0.6.21.tgz", - "integrity": "sha512-cunbFNCtUy25Zp4/jn5lenYUPqgHpjKNUwRjKc7vIzYb4IT2Vu/7kaEptO3K0KQBC6O0QV3ZtqQxKrI9aLiSHg==", - "dev": true, - "requires": { - "@firebase/component": "0.1.17", - "@firebase/installations": "0.4.15", - "@firebase/messaging-types": "0.4.5", - "@firebase/util": "0.3.0", - "idb": "3.0.2", - "tslib": "^1.11.1" - } - }, - "@firebase/messaging-types": { - "version": "0.4.5", - "resolved": "https://registry.npmjs.org/@firebase/messaging-types/-/messaging-types-0.4.5.tgz", - "integrity": "sha512-sux4fgqr/0KyIxqzHlatI04Ajs5rc3WM+WmtCpxrKP1E5Bke8xu/0M+2oy4lK/sQ7nov9z15n3iltAHCgTRU3Q==", - "dev": true - }, - "@firebase/performance": { - "version": "0.3.10", - "resolved": "https://registry.npmjs.org/@firebase/performance/-/performance-0.3.10.tgz", - "integrity": "sha512-j/hsx2xfOO1hZulmz7KxemoTIVXxrv94rt79x8qO1HzysT7ziViNvQ9cQGjDZWwVSO29TpLH31GOWLVnwmnxWQ==", - "dev": true, - "requires": { - "@firebase/component": "0.1.17", - "@firebase/installations": "0.4.15", - "@firebase/logger": "0.2.6", - "@firebase/performance-types": "0.0.13", - "@firebase/util": "0.3.0", - "tslib": "^1.11.1" - } - }, - "@firebase/performance-types": { - "version": "0.0.13", - "resolved": "https://registry.npmjs.org/@firebase/performance-types/-/performance-types-0.0.13.tgz", - "integrity": "sha512-6fZfIGjQpwo9S5OzMpPyqgYAUZcFzZxHFqOyNtorDIgNXq33nlldTL/vtaUZA8iT9TT5cJlCrF/jthKU7X21EA==", - "dev": true - }, - "@firebase/polyfill": { - "version": "0.3.36", - "resolved": "https://registry.npmjs.org/@firebase/polyfill/-/polyfill-0.3.36.tgz", - "integrity": "sha512-zMM9oSJgY6cT2jx3Ce9LYqb0eIpDE52meIzd/oe/y70F+v9u1LDqk5kUF5mf16zovGBWMNFmgzlsh6Wj0OsFtg==", - "dev": true, - "requires": { - "core-js": "3.6.5", - "promise-polyfill": "8.1.3", - "whatwg-fetch": "2.0.4" - }, - "dependencies": { - "whatwg-fetch": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-2.0.4.tgz", - "integrity": "sha512-dcQ1GWpOD/eEQ97k66aiEVpNnapVj90/+R+SXTPYGHpYBBypfKJEQjLrvMZ7YXbKm21gXd4NcuxUTjiv1YtLng==", - "dev": true - } - } - }, - "@firebase/remote-config": { - "version": "0.1.26", - "resolved": "https://registry.npmjs.org/@firebase/remote-config/-/remote-config-0.1.26.tgz", - "integrity": "sha512-B6+nARVNcswysd6C16nK5tdGECgEpr1wdH6LyqylEQ8hUxYWN18qe49b9uPu+ktaHq0gFLg03gayZvQs7fxJOg==", - "dev": true, - "requires": { - "@firebase/component": "0.1.17", - "@firebase/installations": "0.4.15", - "@firebase/logger": "0.2.6", - "@firebase/remote-config-types": "0.1.9", - "@firebase/util": "0.3.0", - "tslib": "^1.11.1" - } - }, - "@firebase/remote-config-types": { - "version": "0.1.9", - "resolved": "https://registry.npmjs.org/@firebase/remote-config-types/-/remote-config-types-0.1.9.tgz", - "integrity": "sha512-G96qnF3RYGbZsTRut7NBX0sxyczxt1uyCgXQuH/eAfUCngxjEGcZQnBdy6mvSdqdJh5mC31rWPO4v9/s7HwtzA==", - "dev": true - }, - "@firebase/storage": { - "version": "0.3.41", - "resolved": "https://registry.npmjs.org/@firebase/storage/-/storage-0.3.41.tgz", - "integrity": "sha512-2imzI78HcB7FjUqXMRHsGLlZnTYkaCHBjJflSbypwLrEty0hreR6vx3ThOO5y0MFH93WwifqUFJAa+Twkx6CIA==", - "dev": true, - "requires": { - "@firebase/component": "0.1.17", - "@firebase/storage-types": "0.3.13", - "@firebase/util": "0.3.0", - "tslib": "^1.11.1" - } - }, - "@firebase/storage-types": { - "version": "0.3.13", - "resolved": "https://registry.npmjs.org/@firebase/storage-types/-/storage-types-0.3.13.tgz", - "integrity": "sha512-pL7b8d5kMNCCL0w9hF7pr16POyKkb3imOW7w0qYrhBnbyJTdVxMWZhb0HxCFyQWC0w3EiIFFmxoz8NTFZDEFog==", - "dev": true - }, - "@firebase/util": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/@firebase/util/-/util-0.3.0.tgz", - "integrity": "sha512-GTwC+FSLeCPc44/TXCDReNQ5FPRIS5cb8Gr1XcD1TgiNBOvmyx61Om2YLwHp2GnN++6m6xmwmXARm06HOukATA==", - "dev": true, - "requires": { - "tslib": "^1.11.1" - } - }, - "@firebase/webchannel-wrapper": { - "version": "0.2.41", - "resolved": "https://registry.npmjs.org/@firebase/webchannel-wrapper/-/webchannel-wrapper-0.2.41.tgz", - "integrity": "sha512-XcdMT5PSZHiuf7LJIhzKIe+RyYa25S3LHRRvLnZc6iFjwXkrSDJ8J/HWO6VT8d2ZTbawp3VcLEjRF/VN8glCrA==", - "dev": true - }, - "@graphql-tools/batch-execute": { - "version": "8.5.1", - "resolved": "https://registry.npmjs.org/@graphql-tools/batch-execute/-/batch-execute-8.5.1.tgz", - "integrity": "sha512-hRVDduX0UDEneVyEWtc2nu5H2PxpfSfM/riUlgZvo/a/nG475uyehxR5cFGvTEPEQUKY3vGIlqvtRigzqTfCew==", - "dev": true, - "optional": true, - "requires": { - "@graphql-tools/utils": "8.9.0", - "dataloader": "2.1.0", - "tslib": "^2.4.0", - "value-or-promise": "1.0.11" - }, - "dependencies": { - "tslib": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz", - "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==", - "dev": true, - "optional": true - } - } - }, - "@graphql-tools/delegate": { - "version": "8.8.1", - "resolved": "https://registry.npmjs.org/@graphql-tools/delegate/-/delegate-8.8.1.tgz", - "integrity": "sha512-NDcg3GEQmdEHlnF7QS8b4lM1PSF+DKeFcIlLEfZFBvVq84791UtJcDj8734sIHLukmyuAxXMfA1qLd2l4lZqzA==", - "dev": true, - "optional": true, - "requires": { - "@graphql-tools/batch-execute": "8.5.1", - "@graphql-tools/schema": "8.5.1", - "@graphql-tools/utils": "8.9.0", - "dataloader": "2.1.0", - "tslib": "~2.4.0", - "value-or-promise": "1.0.11" - }, - "dependencies": { - "tslib": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz", - "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==", - "dev": true, - "optional": true - } - } - }, - "@graphql-tools/merge": { - "version": "8.3.1", - "resolved": "https://registry.npmjs.org/@graphql-tools/merge/-/merge-8.3.1.tgz", - "integrity": "sha512-BMm99mqdNZbEYeTPK3it9r9S6rsZsQKtlqJsSBknAclXq2pGEfOxjcIZi+kBSkHZKPKCRrYDd5vY0+rUmIHVLg==", - "dev": true, - "optional": true, - "requires": { - "@graphql-tools/utils": "8.9.0", - "tslib": "^2.4.0" - }, - "dependencies": { - "tslib": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz", - "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==", - "dev": true, - "optional": true - } - } - }, - "@graphql-tools/mock": { - "version": "8.7.20", - "resolved": "https://registry.npmjs.org/@graphql-tools/mock/-/mock-8.7.20.tgz", - "integrity": "sha512-ljcHSJWjC/ZyzpXd5cfNhPI7YljRVvabKHPzKjEs5ElxWu2cdlLGvyNYepApXDsM/OJG/2xuhGM+9GWu5gEAPQ==", - "dev": true, - "optional": true, - "requires": { - "@graphql-tools/schema": "^9.0.18", - "@graphql-tools/utils": "^9.2.1", - "fast-json-stable-stringify": "^2.1.0", - "tslib": "^2.4.0" - }, - "dependencies": { - "@graphql-tools/merge": { - "version": "8.4.1", - "resolved": "https://registry.npmjs.org/@graphql-tools/merge/-/merge-8.4.1.tgz", - "integrity": "sha512-hssnPpZ818mxgl5+GfyOOSnnflAxiaTn1A1AojZcIbh4J52sS1Q0gSuBR5VrnUDjuxiqoCotpXdAQl+K+U6KLQ==", - "dev": true, - "optional": true, - "requires": { - "@graphql-tools/utils": "^9.2.1", - "tslib": "^2.4.0" - } - }, - "@graphql-tools/schema": { - "version": "9.0.19", - "resolved": "https://registry.npmjs.org/@graphql-tools/schema/-/schema-9.0.19.tgz", - "integrity": "sha512-oBRPoNBtCkk0zbUsyP4GaIzCt8C0aCI4ycIRUL67KK5pOHljKLBBtGT+Jr6hkzA74C8Gco8bpZPe7aWFjiaK2w==", - "dev": true, - "optional": true, - "requires": { - "@graphql-tools/merge": "^8.4.1", - "@graphql-tools/utils": "^9.2.1", - "tslib": "^2.4.0", - "value-or-promise": "^1.0.12" - } - }, - "@graphql-tools/utils": { - "version": "9.2.1", - "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-9.2.1.tgz", - "integrity": "sha512-WUw506Ql6xzmOORlriNrD6Ugx+HjVgYxt9KCXD9mHAak+eaXSwuGGPyE60hy9xaDEoXKBsG7SkG69ybitaVl6A==", - "dev": true, - "optional": true, - "requires": { - "@graphql-typed-document-node/core": "^3.1.1", - "tslib": "^2.4.0" - } - }, - "tslib": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz", - "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==", - "dev": true, - "optional": true - }, - "value-or-promise": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/value-or-promise/-/value-or-promise-1.0.12.tgz", - "integrity": "sha512-Z6Uz+TYwEqE7ZN50gwn+1LCVo9ZVrpxRPOhOLnncYkY1ZzOYtrX8Fwf/rFktZ8R5mJms6EZf5TqNOMeZmnPq9Q==", - "dev": true, - "optional": true - } - } - }, - "@graphql-tools/schema": { - "version": "8.5.1", - "resolved": "https://registry.npmjs.org/@graphql-tools/schema/-/schema-8.5.1.tgz", - "integrity": "sha512-0Esilsh0P/qYcB5DKQpiKeQs/jevzIadNTaT0jeWklPMwNbT7yMX4EqZany7mbeRRlSRwMzNzL5olyFdffHBZg==", - "dev": true, - "optional": true, - "requires": { - "@graphql-tools/merge": "8.3.1", - "@graphql-tools/utils": "8.9.0", - "tslib": "^2.4.0", - "value-or-promise": "1.0.11" - }, - "dependencies": { - "tslib": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz", - "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==", - "dev": true, - "optional": true - } - } - }, - "@graphql-tools/utils": { - "version": "8.9.0", - "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-8.9.0.tgz", - "integrity": "sha512-pjJIWH0XOVnYGXCqej8g/u/tsfV4LvLlj0eATKQu5zwnxd/TiTHq7Cg313qUPTFFHZ3PP5wJ15chYVtLDwaymg==", - "dev": true, - "optional": true, - "requires": { - "tslib": "^2.4.0" - }, - "dependencies": { - "tslib": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz", - "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==", - "dev": true, - "optional": true - } - } - }, - "@graphql-typed-document-node/core": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/@graphql-typed-document-node/core/-/core-3.2.0.tgz", - "integrity": "sha512-mB9oAsNCm9aM3/SOv4YtBMqZbYj10R7dkq8byBqxGY/ncFwhf2oQzMV+LCRlWoDSEBJ3COiR1yeDvMtsoOsuFQ==", - "dev": true, - "optional": true, - "requires": {} - }, - "@grpc/grpc-js": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.1.3.tgz", - "integrity": "sha512-HtOsk2YUofBcm1GkPqGzb6pwHhv+74eC2CUO229USIDKRtg30ycbZmqC+HdNtY3nHqoc9IgcRlntFgopyQoYCA==", - "dev": true, - "requires": { - "semver": "^6.2.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } - } - }, - "@grpc/proto-loader": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/@grpc/proto-loader/-/proto-loader-0.5.5.tgz", - "integrity": "sha512-WwN9jVNdHRQoOBo9FDH7qU+mgfjPc8GygPYms3M+y3fbQLfnCe/Kv/E01t7JRgnrsOHH8euvSbed3mIalXhwqQ==", - "dev": true, - "requires": { - "lodash.camelcase": "^4.3.0", - "protobufjs": "^6.8.6" - } - }, - "@josephg/resolvable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@josephg/resolvable/-/resolvable-1.0.1.tgz", - "integrity": "sha512-CtzORUwWTTOTqfVtHaKRJ0I1kNQd1bpn3sUh8I3nJDVY+5/M/Oe1DnEWzPQvqq/xPIIkzzzIP7mfCoAjFRvDhg==", - "dev": true, - "optional": true - }, - "@jridgewell/resolve-uri": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz", - "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==", - "dev": true - }, - "@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 - }, - "@jridgewell/trace-mapping": { - "version": "0.3.9", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", - "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", - "dev": true, - "requires": { - "@jridgewell/resolve-uri": "^3.0.3", - "@jridgewell/sourcemap-codec": "^1.4.10" - } - }, - "@morgan-stanley/ts-mocking-bird": { - "version": "0.6.4", - "resolved": "https://registry.npmjs.org/@morgan-stanley/ts-mocking-bird/-/ts-mocking-bird-0.6.4.tgz", - "integrity": "sha512-57VJIflP8eR2xXa9cD1LUawh+Gh+BVQfVu0n6GALyg/AqV/Nz25kDRvws3i9kIe1PTrbsZZOYpsYp6bXPd6nVA==", - "requires": { - "lodash": "^4.17.16", - "uuid": "^7.0.3" - }, - "dependencies": { - "uuid": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-7.0.3.tgz", - "integrity": "sha512-DPSke0pXhTZgoF/d+WSt2QaKMCFSfx7QegxEWT+JOuHF5aWrKEn0G+ztjuJg/gG8/ItK+rbPCD/yNv8yyih6Cg==" - } - } - }, - "@multiformats/base-x": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@multiformats/base-x/-/base-x-4.0.1.tgz", - "integrity": "sha512-eMk0b9ReBbV23xXU693TAIrLyeO5iTgBZGSJfpqriG8UkYvr/hC9u9pyMlAakDNHWmbhMZCDs6KQO0jzKD8OTw==" - }, - "@openzeppelin/cli": { - "version": "2.8.2", - "resolved": "https://registry.npmjs.org/@openzeppelin/cli/-/cli-2.8.2.tgz", - "integrity": "sha512-K0m1UAywnweAwzbwwmqI+JSezDRnqDRWkKQMI2VV6T03LOXcG/L9oqO9KRORI8md+KbxBW9v5rmNV63wGQIRlA==", - "dev": true, - "requires": { - "@openzeppelin/fuzzy-solidity-import-parser": "^0.1.2", - "@openzeppelin/upgrades": "2.8.0", - "@types/fs-extra": "^7.0.0", - "@types/npm": "^2.0.29", - "@types/semver": "^5.5.0", - "ajv": "^6.10.0", - "axios": "^0.18.0", - "bignumber.js": "^8.0.2", - "chalk": "^2.4.1", - "cheerio": "^1.0.0-rc.2", - "commander": "^2.15.1", - "env-paths": "^2.2.0", - "ethereumjs-util": "^6.1.0", - "find-up": "^3.0.0", - "firebase": "^7.8.0", - "fs-extra": "^7.0.1", - "glob": "^7.1.6", - "inquirer": "^6.4.1", - "is-url": "^1.2.4", - "lockfile": "^1.0.4", - "npm-programmatic": "0.0.12", - "rlp": "^2.2.3", - "semver": "^5.5.0", - "simple-git": "^1.110.0", - "solc-wrapper": "^0.6.3", - "spinnies": "^0.3.0", - "toposort": "^2.0.2", - "truffle-config": "1.1.16", - "ts-generator": "^0.0.8", - "typechain": "^1.0.3", - "typechain-target-truffle": "^1.0.1", - "typechain-target-web3-v1": "^1.0.1", - "underscore": "^1.9.1", - "uuid": "^3.3.3", - "web3": "1.2.2", - "web3-eth": "1.2.2", - "web3-eth-contract": "1.2.2", - "web3-utils": "1.2.2" - }, - "dependencies": { - "array-back": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-2.0.0.tgz", - "integrity": "sha512-eJv4pLLufP3g5kcZry0j6WXpIbzYw9GUB4mVJZno9wfwiBxbizTnHCw3VJb07cBihbFX48Y7oSrW9y+gt4glyw==", - "dev": true, - "requires": { - "typical": "^2.6.1" - } - }, - "command-line-args": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/command-line-args/-/command-line-args-4.0.7.tgz", - "integrity": "sha512-aUdPvQRAyBvQd2n7jXcsMDz68ckBJELXNzBybCHOibUWEg0mWTnaYCSRU8h9R+aNRSvDihJtssSRCiDRpLaezA==", - "dev": true, - "requires": { - "array-back": "^2.0.0", - "find-replace": "^1.0.3", - "typical": "^2.6.1" - } - }, - "find-replace": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/find-replace/-/find-replace-1.0.3.tgz", - "integrity": "sha512-KrUnjzDCD9426YnCP56zGYy/eieTnhtK6Vn++j+JJzmlsWWwEkDnsyVF575spT6HJ6Ow9tlbT3TQTDsa+O4UWA==", - "dev": true, - "requires": { - "array-back": "^1.0.4", - "test-value": "^2.1.0" - }, - "dependencies": { - "array-back": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-1.0.4.tgz", - "integrity": "sha512-1WxbZvrmyhkNoeYcizokbmh5oiOCIfyvGtcqbK3Ls1v1fKcquzxnQSceOx6tzq7jmai2kFLWIpGND2cLhH6TPw==", - "dev": true, - "requires": { - "typical": "^2.6.0" - } - } - } - }, - "js-sha3": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.8.0.tgz", - "integrity": "sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q==", - "dev": true - }, - "typechain": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/typechain/-/typechain-1.0.5.tgz", - "integrity": "sha512-gbQmJXPKuYQ0p3tK+dMhpdQql/UPtSnkPQXw2QM/aqwCengI86z2vEM2e5rVQpmk/blFx1PYNdApSDxE12rR1Q==", - "dev": true, - "requires": { - "command-line-args": "^4.0.7", - "debug": "^3.0.1", - "fs-extra": "^7.0.0", - "js-sha3": "^0.8.0", - "lodash": "^4.17.15", - "ts-generator": "^0.0.8" - } - }, - "typical": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/typical/-/typical-2.6.1.tgz", - "integrity": "sha512-ofhi8kjIje6npGozTip9Fr8iecmYfEbS06i0JnIg+rh51KakryWF4+jX8lLKZVhy6N+ID45WYSFCxPOdTWCzNg==", - "dev": true - } - } - }, - "@openzeppelin/contracts": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/@openzeppelin/contracts/-/contracts-4.3.1.tgz", - "integrity": "sha512-QjgbPPlmDK2clK1hzjw2ROfY8KA5q+PfhDUUxZFEBCZP9fi6d5FuNoh/Uq0oCTMEKPmue69vhX2jcl0N/tFKGw==", - "dev": true - }, - "@openzeppelin/fuzzy-solidity-import-parser": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/@openzeppelin/fuzzy-solidity-import-parser/-/fuzzy-solidity-import-parser-0.1.2.tgz", - "integrity": "sha512-leqEwfs8GlrPDrVcVc8Hv6LJ62ZzR0RgjwQNCkpT6H5jW9RB8YdR0a3inHoricSvw+sKI1b1hOqsCtPPZNnhng==", - "dev": true - }, - "@openzeppelin/upgrades": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/@openzeppelin/upgrades/-/upgrades-2.8.0.tgz", - "integrity": "sha512-LzjTQPeljPsgHDPdZyH9cMCbIHZILgd2cpNcYEkdsC2IylBYRHShlbEDXJV9snnqg9JWfzPiKIqyj3XVliwtqQ==", - "dev": true, - "requires": { - "@types/cbor": "^2.0.0", - "axios": "^0.18.0", - "bignumber.js": "^7.2.0", - "cbor": "^4.1.5", - "chalk": "^2.4.1", - "ethers": "^4.0.20", - "glob": "^7.1.3", - "lodash": "^4.17.15", - "semver": "^5.5.1", - "spinnies": "^0.4.2", - "truffle-flattener": "^1.4.0", - "web3": "1.2.2", - "web3-eth": "1.2.2", - "web3-eth-contract": "1.2.2", - "web3-utils": "1.2.2" - }, - "dependencies": { - "bignumber.js": { - "version": "7.2.1", - "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-7.2.1.tgz", - "integrity": "sha512-S4XzBk5sMB+Rcb/LNcpzXr57VRTxgAvaAEDAl1AwRx27j00hT84O6OkteE7u8UB3NuaaygCRrEpqox4uDOrbdQ==", - "dev": true - }, - "ethers": { - "version": "4.0.49", - "resolved": "https://registry.npmjs.org/ethers/-/ethers-4.0.49.tgz", - "integrity": "sha512-kPltTvWiyu+OktYy1IStSO16i2e7cS9D9OxZ81q2UUaiNPVrm/RTcbxamCXF9VUSKzJIdJV68EAIhTEVBalRWg==", - "dev": true, - "requires": { - "aes-js": "3.0.0", - "bn.js": "^4.11.9", - "elliptic": "6.5.4", - "hash.js": "1.1.3", - "js-sha3": "0.5.7", - "scrypt-js": "2.0.4", - "setimmediate": "1.0.4", - "uuid": "2.0.1", - "xmlhttprequest": "1.8.0" - } - }, - "spinnies": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/spinnies/-/spinnies-0.4.3.tgz", - "integrity": "sha512-TTA2vWXrXJpfThWAl2t2hchBnCMI1JM5Wmb2uyI7Zkefdw/xO98LDy6/SBYwQPiYXL3swx3Eb44ZxgoS8X5wpA==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "cli-cursor": "^3.0.0", - "strip-ansi": "^5.2.0" - } - }, - "uuid": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-2.0.1.tgz", - "integrity": "sha512-nWg9+Oa3qD2CQzHIP4qKUqwNfzKn8P0LtFhotaCTFchsV7ZfDhAybeip/HZVeMIpZi9JgY1E3nUlwaCmZT1sEg==", - "dev": true - } - } - }, - "@protobufjs/aspromise": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", - "integrity": "sha1-m4sMxmPWaafY9vXQiToU00jzD78=", - "dev": true - }, - "@protobufjs/base64": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz", - "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==", - "dev": true - }, - "@protobufjs/codegen": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz", - "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==", - "dev": true - }, - "@protobufjs/eventemitter": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz", - "integrity": "sha1-NVy8mLr61ZePntCV85diHx0Ga3A=", - "dev": true - }, - "@protobufjs/fetch": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz", - "integrity": "sha1-upn7WYYUr2VwDBYZ/wbUVLDYTEU=", - "dev": true, - "requires": { - "@protobufjs/aspromise": "^1.1.1", - "@protobufjs/inquire": "^1.1.0" - } - }, - "@protobufjs/float": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz", - "integrity": "sha1-Xp4avctz/Ap8uLKR33jIy9l7h9E=", - "dev": true - }, - "@protobufjs/inquire": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz", - "integrity": "sha1-/yAOPnzyQp4tyvwRQIKOjMY48Ik=", - "dev": true - }, - "@protobufjs/path": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz", - "integrity": "sha1-bMKyDFya1q0NzP0hynZz2Nf79o0=", - "dev": true - }, - "@protobufjs/pool": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz", - "integrity": "sha1-Cf0V8tbTq/qbZbw2ZQbWrXhG/1Q=", - "dev": true - }, - "@protobufjs/utf8": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", - "integrity": "sha1-p3c2C1s5oaLlEG+OhY8v0tBgxXA=", - "dev": true - }, - "@redux-saga/core": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/@redux-saga/core/-/core-1.2.3.tgz", - "integrity": "sha512-U1JO6ncFBAklFTwoQ3mjAeQZ6QGutsJzwNBjgVLSWDpZTRhobUzuVDS1qH3SKGJD8fvqoaYOjp6XJ3gCmeZWgA==", - "dev": true, - "requires": { - "@babel/runtime": "^7.6.3", - "@redux-saga/deferred": "^1.2.1", - "@redux-saga/delay-p": "^1.2.1", - "@redux-saga/is": "^1.1.3", - "@redux-saga/symbols": "^1.1.3", - "@redux-saga/types": "^1.2.1", - "redux": "^4.0.4", - "typescript-tuple": "^2.2.1" - }, - "dependencies": { - "redux": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/redux/-/redux-4.2.1.tgz", - "integrity": "sha512-LAUYz4lc+Do8/g7aeRa8JkyDErK6ekstQaqWQrNRW//MY1TvCEpMtpTWvlQ+FPbWCx+Xixu/6SHt5N0HR+SB4w==", - "dev": true, - "requires": { - "@babel/runtime": "^7.9.2" - } - } - } - }, - "@redux-saga/deferred": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@redux-saga/deferred/-/deferred-1.2.1.tgz", - "integrity": "sha512-cmin3IuuzMdfQjA0lG4B+jX+9HdTgHZZ+6u3jRAOwGUxy77GSlTi4Qp2d6PM1PUoTmQUR5aijlA39scWWPF31g==", - "dev": true - }, - "@redux-saga/delay-p": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@redux-saga/delay-p/-/delay-p-1.2.1.tgz", - "integrity": "sha512-MdiDxZdvb1m+Y0s4/hgdcAXntpUytr9g0hpcOO1XFVyyzkrDu3SKPgBFOtHn7lhu7n24ZKIAT1qtKyQjHqRd+w==", - "dev": true, - "requires": { - "@redux-saga/symbols": "^1.1.3" - } - }, - "@redux-saga/is": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@redux-saga/is/-/is-1.1.3.tgz", - "integrity": "sha512-naXrkETG1jLRfVfhOx/ZdLj0EyAzHYbgJWkXbB3qFliPcHKiWbv/ULQryOAEKyjrhiclmr6AMdgsXFyx7/yE6Q==", - "dev": true, - "requires": { - "@redux-saga/symbols": "^1.1.3", - "@redux-saga/types": "^1.2.1" - } - }, - "@redux-saga/symbols": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@redux-saga/symbols/-/symbols-1.1.3.tgz", - "integrity": "sha512-hCx6ZvU4QAEUojETnX8EVg4ubNLBFl1Lps4j2tX7o45x/2qg37m3c6v+kSp8xjDJY+2tJw4QB3j8o8dsl1FDXg==", - "dev": true - }, - "@redux-saga/types": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@redux-saga/types/-/types-1.2.1.tgz", - "integrity": "sha512-1dgmkh+3so0+LlBWRhGA33ua4MYr7tUOj+a9Si28vUi0IUFNbff1T3sgpeDJI/LaC75bBYnQ0A3wXjn0OrRNBA==", - "dev": true - }, - "@resolver-engine/core": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/@resolver-engine/core/-/core-0.2.1.tgz", - "integrity": "sha512-nsLQHmPJ77QuifqsIvqjaF5B9aHnDzJjp73Q1z6apY3e9nqYrx4Dtowhpsf7Jwftg/XzVDEMQC+OzUBNTS+S1A==", - "dev": true, - "requires": { - "debug": "^3.1.0", - "request": "^2.85.0" - } - }, - "@resolver-engine/fs": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/@resolver-engine/fs/-/fs-0.2.1.tgz", - "integrity": "sha512-7kJInM1Qo2LJcKyDhuYzh9ZWd+mal/fynfL9BNjWOiTcOpX+jNfqb/UmGUqros5pceBITlWGqS4lU709yHFUbg==", - "dev": true, - "requires": { - "@resolver-engine/core": "^0.2.1", - "debug": "^3.1.0" - } - }, - "@resolver-engine/imports": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/@resolver-engine/imports/-/imports-0.2.2.tgz", - "integrity": "sha512-u5/HUkvo8q34AA+hnxxqqXGfby5swnH0Myw91o3Sm2TETJlNKXibFGSKBavAH+wvWdBi4Z5gS2Odu0PowgVOUg==", - "dev": true, - "requires": { - "@resolver-engine/core": "^0.2.1", - "debug": "^3.1.0", - "hosted-git-info": "^2.6.0" - } - }, - "@resolver-engine/imports-fs": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/@resolver-engine/imports-fs/-/imports-fs-0.2.2.tgz", - "integrity": "sha512-gFCgMvCwyppjwq0UzIjde/WI+yDs3oatJhozG9xdjJdewwtd7LiF0T5i9lrHAUtqrQbqoFE4E+ZMRVHWpWHpKQ==", - "dev": true, - "requires": { - "@resolver-engine/fs": "^0.2.1", - "@resolver-engine/imports": "^0.2.2", - "debug": "^3.1.0" - } - }, - "@sindresorhus/is": { - "version": "0.14.0", - "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", - "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==", - "dev": true - }, - "@solidity-parser/parser": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/@solidity-parser/parser/-/parser-0.14.5.tgz", - "integrity": "sha512-6dKnHZn7fg/iQATVEzqyUOyEidbn05q7YA2mQ9hC0MMXhhV3/JrsxmFSYZAcr7j1yUP700LLhTruvJ3MiQmjJg==", - "dev": true, - "requires": { - "antlr4ts": "^0.5.0-alpha.4" - } - }, - "@szmarczak/http-timer": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz", - "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==", - "dev": true, - "requires": { - "defer-to-connect": "^1.0.1" - } - }, - "@truffle/abi-utils": { - "version": "0.3.9", - "resolved": "https://registry.npmjs.org/@truffle/abi-utils/-/abi-utils-0.3.9.tgz", - "integrity": "sha512-G5dqgwRHx5zwlXjz3QT8OJVfB2cOqWwD6DwKso0KttUt/zejhCjnkKq72rSgyeLMkz7wBB9ERLOsupLBILM8MA==", - "dev": true, - "requires": { - "change-case": "3.0.2", - "fast-check": "3.1.1", - "web3-utils": "1.8.2" - }, - "dependencies": { - "@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==", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "bn.js": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", - "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==", - "dev": true - }, - "ethereumjs-util": { - "version": "7.1.5", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.5.tgz", - "integrity": "sha512-SDl5kKrQAudFBUe5OJM9Ac6WmMyYmXX/6sTmLZ3ffG2eY6ZIGBes3pEDxNN6V72WyOw4CPD5RomKdsa8DAAwLg==", - "dev": true, - "requires": { - "@types/bn.js": "^5.1.0", - "bn.js": "^5.1.2", - "create-hash": "^1.1.2", - "ethereum-cryptography": "^0.1.3", - "rlp": "^2.2.4" - } - }, - "web3-utils": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.8.2.tgz", - "integrity": "sha512-v7j6xhfLQfY7xQDrUP0BKbaNrmZ2/+egbqP9q3KYmOiPpnvAfol+32slgL0WX/5n8VPvKCK5EZ1HGrAVICSToA==", - "dev": true, - "requires": { - "bn.js": "^5.2.1", - "ethereum-bloom-filters": "^1.0.6", - "ethereumjs-util": "^7.1.0", - "ethjs-unit": "0.1.6", - "number-to-bn": "1.7.0", - "randombytes": "^2.1.0", - "utf8": "3.0.0" - } - } - } - }, - "@truffle/code-utils": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@truffle/code-utils/-/code-utils-3.0.2.tgz", - "integrity": "sha512-Q4FyYIX9G4GyMa8RJDk19kvgiyGZ1CGEx2RmVcXoCDZqEyiHLzqjvCRp+/fuBz2fv7szO6d+60LO1gLCGS1drQ==", - "dev": true, - "requires": { - "cbor": "^5.2.0" - }, - "dependencies": { - "bignumber.js": { - "version": "9.1.1", - "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.1.1.tgz", - "integrity": "sha512-pHm4LsMJ6lzgNGVfZHjMoO8sdoRhOzOH4MLmY65Jg70bpxCKu5iOHNJyfF6OyvYw7t8Fpf35RuzUyqnQsj8Vig==", - "dev": true - }, - "cbor": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/cbor/-/cbor-5.2.0.tgz", - "integrity": "sha512-5IMhi9e1QU76ppa5/ajP1BmMWZ2FHkhAhjeVKQ/EFCgYSEaeVaoGtL7cxJskf9oCCk+XjzaIdc3IuU/dbA/o2A==", - "dev": true, - "requires": { - "bignumber.js": "^9.0.1", - "nofilter": "^1.0.4" - } - } - } - }, - "@truffle/compile-common": { - "version": "0.9.4", - "resolved": "https://registry.npmjs.org/@truffle/compile-common/-/compile-common-0.9.4.tgz", - "integrity": "sha512-mnqJB/hLiPHNf+WKwt/2MH6lv34xSG/SFCib7+ckAklutUqVLeFo8EwQxinuHNkU7LY0C+YgZXhK1WTCO5YRJQ==", - "dev": true, - "requires": { - "@truffle/error": "^0.2.0", - "colors": "1.4.0" - }, - "dependencies": { - "@truffle/error": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/@truffle/error/-/error-0.2.0.tgz", - "integrity": "sha512-Fe0/z4WWb7IP2gBnv3l6zqP87Y0kSMs7oiSLakKJq17q3GUunrHSdioKuNspdggxkXIBhEQLhi8C+LJdwmHKWQ==", - "dev": true - } - } - }, - "@truffle/config": { - "version": "1.3.55", - "resolved": "https://registry.npmjs.org/@truffle/config/-/config-1.3.55.tgz", - "integrity": "sha512-18nLgtnkDCwMiTB3fyJxXzRzuO28wtJyY3YIgJBMg4ujKYpAxeI6hOPafhrp9qGqR7tC0Pj1o+ip3wFxEZJtuQ==", - "dev": true, - "optional": true, - "requires": { - "@truffle/error": "^0.2.0", - "@truffle/events": "^0.1.22", - "@truffle/provider": "^0.3.8", - "conf": "^10.1.2", - "debug": "^4.3.1", - "find-up": "^2.1.0", - "lodash": "^4.17.21", - "original-require": "^1.0.1" - }, - "dependencies": { - "@truffle/error": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/@truffle/error/-/error-0.2.0.tgz", - "integrity": "sha512-Fe0/z4WWb7IP2gBnv3l6zqP87Y0kSMs7oiSLakKJq17q3GUunrHSdioKuNspdggxkXIBhEQLhi8C+LJdwmHKWQ==", - "dev": true, - "optional": true - }, - "debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "optional": true, - "requires": { - "ms": "2.1.2" - } - }, - "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ==", - "dev": true, - "optional": true, - "requires": { - "locate-path": "^2.0.0" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true, - "optional": true - } - } - }, - "@truffle/dashboard-message-bus-client": { - "version": "0.1.10", - "resolved": "https://registry.npmjs.org/@truffle/dashboard-message-bus-client/-/dashboard-message-bus-client-0.1.10.tgz", - "integrity": "sha512-r9GpdR96T8xzk2Z3Qq5lowixT6hQwDZ9F3D3oNjOv2AOwBrC7dGkt1Ra1FQRsABn4K7LUVvnjjn6rALlsatAdw==", - "dev": true, - "optional": true, - "requires": { - "@truffle/dashboard-message-bus-common": "^0.1.5", - "@truffle/promise-tracker": "^0.1.5", - "axios": "1.2.4", - "debug": "^4.3.1", - "delay": "^5.0.0", - "isomorphic-ws": "^4.0.1", - "node-abort-controller": "^3.0.1", - "tiny-typed-emitter": "^2.1.0", - "ws": "^7.2.0" - }, - "dependencies": { - "axios": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.2.4.tgz", - "integrity": "sha512-lIQuCfBJvZB/Bv7+RWUqEJqNShGOVpk9v7P0ZWx5Ip0qY6u7JBAU6dzQPMLasU9vHL2uD8av/1FDJXj7n6c39w==", - "dev": true, - "optional": true, - "requires": { - "follow-redirects": "^1.15.0", - "form-data": "^4.0.0", - "proxy-from-env": "^1.1.0" - } - }, - "debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "optional": true, - "requires": { - "ms": "2.1.2" - } - }, - "follow-redirects": { - "version": "1.15.2", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", - "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==", - "dev": true, - "optional": true - }, - "form-data": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", - "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", - "dev": true, - "optional": true, - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true, - "optional": true - }, - "ws": { - "version": "7.5.9", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz", - "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==", - "dev": true, - "optional": true, - "requires": {} - } - } - }, - "@truffle/dashboard-message-bus-common": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/@truffle/dashboard-message-bus-common/-/dashboard-message-bus-common-0.1.5.tgz", - "integrity": "sha512-F4RfXi7ymNA3HFOlaujRJxAb3I8ciErCRQq+MZVaqjSPF9LSw23IizZsGpLaY43K2bGoBSxyNQRZWxsUEBujPQ==", - "dev": true, - "optional": true - }, - "@truffle/db": { - "version": "2.0.23", - "resolved": "https://registry.npmjs.org/@truffle/db/-/db-2.0.23.tgz", - "integrity": "sha512-MoeqjxL5++plcBjZpm7eSFYovMzz6AF/FmMUvai94zdmgukbBmSHFegGLh2VruDvouFIpHw6IW5H6LEEkdddNg==", - "dev": true, - "optional": true, - "requires": { - "@graphql-tools/delegate": "^8.4.3", - "@graphql-tools/schema": "^8.3.1", - "@truffle/abi-utils": "^0.3.9", - "@truffle/code-utils": "^3.0.2", - "@truffle/config": "^1.3.55", - "abstract-leveldown": "^7.2.0", - "apollo-server": "^3.11.0", - "debug": "^4.3.1", - "fs-extra": "^9.1.0", - "graphql": "^15.3.0", - "graphql-tag": "^2.12.6", - "json-stable-stringify": "^1.0.1", - "pascal-case": "^2.0.1", - "pluralize": "^8.0.0", - "pouchdb": "7.3.0", - "pouchdb-adapter-memory": "^7.1.1", - "pouchdb-debug": "^7.1.1", - "pouchdb-find": "^7.0.0", - "web3-utils": "1.8.2" - }, - "dependencies": { - "@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==", - "dev": true, - "optional": true, - "requires": { - "@types/node": "*" - } - }, - "abstract-leveldown": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-7.2.0.tgz", - "integrity": "sha512-DnhQwcFEaYsvYDnACLZhMmCWd3rkOeEvglpa4q5i/5Jlm3UIsWaxVzuXvDLFCSCWRO3yy2/+V/G7FusFgejnfQ==", - "dev": true, - "optional": true, - "requires": { - "buffer": "^6.0.3", - "catering": "^2.0.0", - "is-buffer": "^2.0.5", - "level-concat-iterator": "^3.0.0", - "level-supports": "^2.0.1", - "queue-microtask": "^1.2.3" - } - }, - "bn.js": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", - "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==", - "dev": true, - "optional": true - }, - "buffer": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", - "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", - "dev": true, - "optional": true, - "requires": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" - } - }, - "debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "optional": true, - "requires": { - "ms": "2.1.2" - } - }, - "ethereumjs-util": { - "version": "7.1.5", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.5.tgz", - "integrity": "sha512-SDl5kKrQAudFBUe5OJM9Ac6WmMyYmXX/6sTmLZ3ffG2eY6ZIGBes3pEDxNN6V72WyOw4CPD5RomKdsa8DAAwLg==", - "dev": true, - "optional": true, - "requires": { - "@types/bn.js": "^5.1.0", - "bn.js": "^5.1.2", - "create-hash": "^1.1.2", - "ethereum-cryptography": "^0.1.3", - "rlp": "^2.2.4" - } - }, - "fs-extra": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", - "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", - "dev": true, - "optional": true, - "requires": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - } - }, - "jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", - "dev": true, - "optional": true, - "requires": { - "graceful-fs": "^4.1.6", - "universalify": "^2.0.0" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true, - "optional": true - }, - "universalify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", - "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", - "dev": true, - "optional": true - }, - "web3-utils": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.8.2.tgz", - "integrity": "sha512-v7j6xhfLQfY7xQDrUP0BKbaNrmZ2/+egbqP9q3KYmOiPpnvAfol+32slgL0WX/5n8VPvKCK5EZ1HGrAVICSToA==", - "dev": true, - "optional": true, - "requires": { - "bn.js": "^5.2.1", - "ethereum-bloom-filters": "^1.0.6", - "ethereumjs-util": "^7.1.0", - "ethjs-unit": "0.1.6", - "number-to-bn": "1.7.0", - "randombytes": "^2.1.0", - "utf8": "3.0.0" - } - } - } - }, - "@truffle/db-loader": { - "version": "0.2.23", - "resolved": "https://registry.npmjs.org/@truffle/db-loader/-/db-loader-0.2.23.tgz", - "integrity": "sha512-YFsiyb0+gcGJJgk6/xihTnoom5lf8JS0nCeHGnKM1eIUtOcGTLgFs+jeXOpNa3DIgHHjZ3/p1CVWuZnXslf9UA==", - "dev": true, - "requires": { - "@truffle/db": "^2.0.23" - } - }, - "@truffle/debugger": { - "version": "11.0.34", - "resolved": "https://registry.npmjs.org/@truffle/debugger/-/debugger-11.0.34.tgz", - "integrity": "sha512-24mJiH7o16OMxFHyH241yu0QnWOwbc7MOl8gFrOgWxoXwhkcNv0fy3++i/k7pi9EZdOGK84ppe4KuMTvW0x9Sg==", - "dev": true, - "requires": { - "@truffle/abi-utils": "^0.3.9", - "@truffle/codec": "^0.14.17", - "@truffle/source-map-utils": "^1.3.110", - "bn.js": "^5.1.3", - "debug": "^4.3.1", - "json-pointer": "^0.6.1", - "json-stable-stringify": "^1.0.1", - "lodash": "^4.17.21", - "redux": "^3.7.2", - "redux-saga": "1.0.0", - "reselect-tree": "^1.3.7", - "semver": "7.3.7", - "web3": "1.8.2", - "web3-eth-abi": "1.8.2" - }, - "dependencies": { - "@ethereumjs/common": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@ethereumjs/common/-/common-2.5.0.tgz", - "integrity": "sha512-DEHjW6e38o+JmB/NO3GZBpW4lpaiBpkFgXF6jLcJ6gETBYpEyaA5nTimsWBUJR3Vmtm/didUEbNjajskugZORg==", - "dev": true, - "requires": { - "crc-32": "^1.2.0", - "ethereumjs-util": "^7.1.1" - } - }, - "@ethereumjs/tx": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/@ethereumjs/tx/-/tx-3.3.2.tgz", - "integrity": "sha512-6AaJhwg4ucmwTvw/1qLaZUX5miWrwZ4nLOUsKyb/HtzS3BMw/CasKhdi1ims9mBKeK9sOJCH4qGKOBGyJCeeog==", - "dev": true, - "requires": { - "@ethereumjs/common": "^2.5.0", - "ethereumjs-util": "^7.1.2" - } - }, - "@sindresorhus/is": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.6.0.tgz", - "integrity": "sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==", - "dev": true - }, - "@szmarczak/http-timer": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-5.0.1.tgz", - "integrity": "sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw==", - "dev": true, - "requires": { - "defer-to-connect": "^2.0.1" - } - }, - "@truffle/codec": { - "version": "0.14.17", - "resolved": "https://registry.npmjs.org/@truffle/codec/-/codec-0.14.17.tgz", - "integrity": "sha512-kD4dD86huLeaBEq5R8D1zleJEu6NsXbyYLdXl1V1TKdiO8odw5CBC6Y/+wdu5d3t1dyEYrTbhn1dqknZa52pmw==", - "dev": true, - "requires": { - "@truffle/abi-utils": "^0.3.9", - "@truffle/compile-common": "^0.9.4", - "big.js": "^6.0.3", - "bn.js": "^5.1.3", - "cbor": "^5.2.0", - "debug": "^4.3.1", - "lodash": "^4.17.21", - "semver": "7.3.7", - "utf8": "^3.0.0", - "web3-utils": "1.8.2" - } - }, - "@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==", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "@types/node": { - "version": "12.20.55", - "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.55.tgz", - "integrity": "sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==", - "dev": true - }, - "big.js": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/big.js/-/big.js-6.2.1.tgz", - "integrity": "sha512-bCtHMwL9LeDIozFn+oNhhFoq+yQ3BNdnsLSASUxLciOb1vgvpHsIO1dsENiGMgbb4SkP5TrzWzRiLddn8ahVOQ==", - "dev": true - }, - "bignumber.js": { - "version": "9.1.1", - "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.1.1.tgz", - "integrity": "sha512-pHm4LsMJ6lzgNGVfZHjMoO8sdoRhOzOH4MLmY65Jg70bpxCKu5iOHNJyfF6OyvYw7t8Fpf35RuzUyqnQsj8Vig==", - "dev": true - }, - "bn.js": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", - "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==", - "dev": true - }, - "cacheable-request": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-7.0.2.tgz", - "integrity": "sha512-pouW8/FmiPQbuGpkXQ9BAPv/Mo5xDGANgSNXzTzJ8DrKGuXOssM4wIQRjfanNRh3Yu5cfYPvcorqbhg2KIJtew==", - "dev": true, - "requires": { - "clone-response": "^1.0.2", - "get-stream": "^5.1.0", - "http-cache-semantics": "^4.0.0", - "keyv": "^4.0.0", - "lowercase-keys": "^2.0.0", - "normalize-url": "^6.0.1", - "responselike": "^2.0.0" - }, - "dependencies": { - "get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "dev": true, - "requires": { - "pump": "^3.0.0" - } - }, - "lowercase-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", - "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", - "dev": true - } - } - }, - "cbor": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/cbor/-/cbor-5.2.0.tgz", - "integrity": "sha512-5IMhi9e1QU76ppa5/ajP1BmMWZ2FHkhAhjeVKQ/EFCgYSEaeVaoGtL7cxJskf9oCCk+XjzaIdc3IuU/dbA/o2A==", - "dev": true, - "requires": { - "bignumber.js": "^9.0.1", - "nofilter": "^1.0.4" - } - }, - "cross-fetch": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.5.tgz", - "integrity": "sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw==", - "dev": true, - "requires": { - "node-fetch": "2.6.7" - } - }, - "debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "requires": { - "ms": "2.1.2" - } - }, - "decompress-response": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", - "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", - "dev": true, - "requires": { - "mimic-response": "^3.1.0" - } - }, - "defer-to-connect": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz", - "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==", - "dev": true - }, - "ethereumjs-util": { - "version": "7.1.5", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.5.tgz", - "integrity": "sha512-SDl5kKrQAudFBUe5OJM9Ac6WmMyYmXX/6sTmLZ3ffG2eY6ZIGBes3pEDxNN6V72WyOw4CPD5RomKdsa8DAAwLg==", - "dev": true, - "requires": { - "@types/bn.js": "^5.1.0", - "bn.js": "^5.1.2", - "create-hash": "^1.1.2", - "ethereum-cryptography": "^0.1.3", - "rlp": "^2.2.4" - } - }, - "eventemitter3": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.4.tgz", - "integrity": "sha512-rlaVLnVxtxvoyLsQQFBx53YmXHDxRIzzTLbdfxqi4yocpSjAxXwkU0cScM5JgSKMqEhrZpnvQ2D9gjylR0AimQ==", - "dev": true - }, - "fs-extra": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-4.0.3.tgz", - "integrity": "sha512-q6rbdDd1o2mAnQreO7YADIxf/Whx4AHBiRf6d+/cVT8h44ss+lHgxf1FemcqDnQt9X3ct4McHr+JMGlYSsK7Cg==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - }, - "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 - }, - "got": { - "version": "12.1.0", - "resolved": "https://registry.npmjs.org/got/-/got-12.1.0.tgz", - "integrity": "sha512-hBv2ty9QN2RdbJJMK3hesmSkFTjVIHyIDDbssCKnSmq62edGgImJWD10Eb1k77TiV1bxloxqcFAVK8+9pkhOig==", - "dev": true, - "requires": { - "@sindresorhus/is": "^4.6.0", - "@szmarczak/http-timer": "^5.0.1", - "@types/cacheable-request": "^6.0.2", - "@types/responselike": "^1.0.0", - "cacheable-lookup": "^6.0.4", - "cacheable-request": "^7.0.2", - "decompress-response": "^6.0.0", - "form-data-encoder": "1.7.1", - "get-stream": "^6.0.1", - "http2-wrapper": "^2.1.10", - "lowercase-keys": "^3.0.0", - "p-cancelable": "^3.0.0", - "responselike": "^2.0.0" - } - }, - "json-buffer": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", - "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", - "dev": true - }, - "keyv": { - "version": "4.5.2", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.2.tgz", - "integrity": "sha512-5MHbFaKn8cNSmVW7BYnijeAVlE4cYA/SVkifVgrh7yotnfhKmjuXpDKjrABLnT0SfHWV21P8ow07OGfRrNDg8g==", - "dev": true, - "requires": { - "json-buffer": "3.0.1" - } - }, - "lowercase-keys": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-3.0.0.tgz", - "integrity": "sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ==", - "dev": true - }, - "mimic-response": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", - "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==", - "dev": true - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "node-fetch": { - "version": "2.6.7", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", - "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", - "dev": true, - "requires": { - "whatwg-url": "^5.0.0" - } - }, - "normalize-url": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", - "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==", - "dev": true - }, - "oboe": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/oboe/-/oboe-2.1.5.tgz", - "integrity": "sha512-zRFWiF+FoicxEs3jNI/WYUrVEgA7DeET/InK0XQuudGHRg8iIob3cNPrJTKaz4004uaA9Pbe+Dwa8iluhjLZWA==", - "dev": true, - "requires": { - "http-https": "^1.0.0" - } - }, - "p-cancelable": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-3.0.0.tgz", - "integrity": "sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw==", - "dev": true - }, - "responselike": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/responselike/-/responselike-2.0.1.tgz", - "integrity": "sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw==", - "dev": true, - "requires": { - "lowercase-keys": "^2.0.0" - }, - "dependencies": { - "lowercase-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", - "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", - "dev": true - } - } - }, - "scrypt-js": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-3.0.1.tgz", - "integrity": "sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA==", - "dev": true - }, - "semver": { - "version": "7.3.7", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", - "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - }, - "setimmediate": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", - "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==", - "dev": true - }, - "swarm-js": { - "version": "0.1.42", - "resolved": "https://registry.npmjs.org/swarm-js/-/swarm-js-0.1.42.tgz", - "integrity": "sha512-BV7c/dVlA3R6ya1lMlSSNPLYrntt0LUq4YMgy3iwpCIc6rZnS5W2wUoctarZ5pXlpKtxDDf9hNziEkcfrxdhqQ==", - "dev": true, - "requires": { - "bluebird": "^3.5.0", - "buffer": "^5.0.5", - "eth-lib": "^0.1.26", - "fs-extra": "^4.0.2", - "got": "^11.8.5", - "mime-types": "^2.1.16", - "mkdirp-promise": "^5.0.1", - "mock-fs": "^4.1.0", - "setimmediate": "^1.0.5", - "tar": "^4.0.2", - "xhr-request": "^1.0.1" - }, - "dependencies": { - "@szmarczak/http-timer": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-4.0.6.tgz", - "integrity": "sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==", - "dev": true, - "requires": { - "defer-to-connect": "^2.0.0" - } - }, - "cacheable-lookup": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz", - "integrity": "sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==", - "dev": true - }, - "got": { - "version": "11.8.6", - "resolved": "https://registry.npmjs.org/got/-/got-11.8.6.tgz", - "integrity": "sha512-6tfZ91bOr7bOXnK7PRDCGBLa1H4U080YHNaAQ2KsMGlLEzRbk44nsZF2E1IeRc3vtJHPVbKCYgdFbaGO2ljd8g==", - "dev": true, - "requires": { - "@sindresorhus/is": "^4.0.0", - "@szmarczak/http-timer": "^4.0.5", - "@types/cacheable-request": "^6.0.1", - "@types/responselike": "^1.0.0", - "cacheable-lookup": "^5.0.3", - "cacheable-request": "^7.0.2", - "decompress-response": "^6.0.0", - "http2-wrapper": "^1.0.0-beta.5.2", - "lowercase-keys": "^2.0.0", - "p-cancelable": "^2.0.0", - "responselike": "^2.0.0" - } - }, - "http2-wrapper": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-1.0.3.tgz", - "integrity": "sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg==", - "dev": true, - "requires": { - "quick-lru": "^5.1.1", - "resolve-alpn": "^1.0.0" - } - }, - "lowercase-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", - "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", - "dev": true - }, - "p-cancelable": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.1.1.tgz", - "integrity": "sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==", - "dev": true - } - } - }, - "uuid": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.0.tgz", - "integrity": "sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg==", - "dev": true - }, - "web3": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/web3/-/web3-1.8.2.tgz", - "integrity": "sha512-92h0GdEHW9wqDICQQKyG4foZBYi0OQkyg4CRml2F7XBl/NG+fu9o6J19kzfFXzSBoA4DnJXbyRgj/RHZv5LRiw==", - "dev": true, - "requires": { - "web3-bzz": "1.8.2", - "web3-core": "1.8.2", - "web3-eth": "1.8.2", - "web3-eth-personal": "1.8.2", - "web3-net": "1.8.2", - "web3-shh": "1.8.2", - "web3-utils": "1.8.2" - } - }, - "web3-bzz": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/web3-bzz/-/web3-bzz-1.8.2.tgz", - "integrity": "sha512-1EEnxjPnFnvNWw3XeeKuTR8PBxYd0+XWzvaLK7OJC/Go9O8llLGxrxICbKV+8cgIE0sDRBxiYx02X+6OhoAQ9w==", - "dev": true, - "requires": { - "@types/node": "^12.12.6", - "got": "12.1.0", - "swarm-js": "^0.1.40" - } - }, - "web3-core": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/web3-core/-/web3-core-1.8.2.tgz", - "integrity": "sha512-DJTVEAYcNqxkqruJE+Rxp3CIv0y5AZMwPHQmOkz/cz+MM75SIzMTc0AUdXzGyTS8xMF8h3YWMQGgGEy8SBf1PQ==", - "dev": true, - "requires": { - "@types/bn.js": "^5.1.0", - "@types/node": "^12.12.6", - "bignumber.js": "^9.0.0", - "web3-core-helpers": "1.8.2", - "web3-core-method": "1.8.2", - "web3-core-requestmanager": "1.8.2", - "web3-utils": "1.8.2" - } - }, - "web3-core-helpers": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.8.2.tgz", - "integrity": "sha512-6B1eLlq9JFrfealZBomd1fmlq1o4A09vrCVQSa51ANoib/jllT3atZrRDr0zt1rfI7TSZTZBXdN/aTdeN99DWw==", - "dev": true, - "requires": { - "web3-eth-iban": "1.8.2", - "web3-utils": "1.8.2" - } - }, - "web3-core-method": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/web3-core-method/-/web3-core-method-1.8.2.tgz", - "integrity": "sha512-1qnr5mw5wVyULzLOrk4B+ryO3gfGjGd/fx8NR+J2xCGLf1e6OSjxT9vbfuQ3fErk/NjSTWWreieYWLMhaogcRA==", - "dev": true, - "requires": { - "@ethersproject/transactions": "^5.6.2", - "web3-core-helpers": "1.8.2", - "web3-core-promievent": "1.8.2", - "web3-core-subscriptions": "1.8.2", - "web3-utils": "1.8.2" - } - }, - "web3-core-promievent": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/web3-core-promievent/-/web3-core-promievent-1.8.2.tgz", - "integrity": "sha512-nvkJWDVgoOSsolJldN33tKW6bKKRJX3MCPDYMwP5SUFOA/mCzDEoI88N0JFofDTXkh1k7gOqp1pvwi9heuaxGg==", - "dev": true, - "requires": { - "eventemitter3": "4.0.4" - } - }, - "web3-core-requestmanager": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/web3-core-requestmanager/-/web3-core-requestmanager-1.8.2.tgz", - "integrity": "sha512-p1d090RYs5Mu7DK1yyc3GCBVZB/03rBtFhYFoS2EruGzOWs/5Q0grgtpwS/DScdRAm8wB8mYEBhY/RKJWF6B2g==", - "dev": true, - "requires": { - "util": "^0.12.5", - "web3-core-helpers": "1.8.2", - "web3-providers-http": "1.8.2", - "web3-providers-ipc": "1.8.2", - "web3-providers-ws": "1.8.2" - } - }, - "web3-core-subscriptions": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/web3-core-subscriptions/-/web3-core-subscriptions-1.8.2.tgz", - "integrity": "sha512-vXQogHDmAIQcKpXvGiMddBUeP9lnKgYF64+yQJhPNE5PnWr1sAibXuIPV7mIPihpFr/n/DORRj6Wh1pUv9zaTw==", - "dev": true, - "requires": { - "eventemitter3": "4.0.4", - "web3-core-helpers": "1.8.2" - } - }, - "web3-eth": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/web3-eth/-/web3-eth-1.8.2.tgz", - "integrity": "sha512-JoTiWWc4F4TInpbvDUGb0WgDYJsFhuIjJlinc5ByjWD88Gvh+GKLsRjjFdbqe5YtwIGT4NymwoC5LQd1K6u/QQ==", - "dev": true, - "requires": { - "web3-core": "1.8.2", - "web3-core-helpers": "1.8.2", - "web3-core-method": "1.8.2", - "web3-core-subscriptions": "1.8.2", - "web3-eth-abi": "1.8.2", - "web3-eth-accounts": "1.8.2", - "web3-eth-contract": "1.8.2", - "web3-eth-ens": "1.8.2", - "web3-eth-iban": "1.8.2", - "web3-eth-personal": "1.8.2", - "web3-net": "1.8.2", - "web3-utils": "1.8.2" - } - }, - "web3-eth-abi": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/web3-eth-abi/-/web3-eth-abi-1.8.2.tgz", - "integrity": "sha512-Om9g3kaRNjqiNPAgKwGT16y+ZwtBzRe4ZJFGjLiSs6v5I7TPNF+rRMWuKnR6jq0azQZDj6rblvKFMA49/k48Og==", - "dev": true, - "requires": { - "@ethersproject/abi": "^5.6.3", - "web3-utils": "1.8.2" - } - }, - "web3-eth-accounts": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/web3-eth-accounts/-/web3-eth-accounts-1.8.2.tgz", - "integrity": "sha512-c367Ij63VCz9YdyjiHHWLFtN85l6QghgwMQH2B1eM/p9Y5lTlTX7t/Eg/8+f1yoIStXbk2w/PYM2lk+IkbqdLA==", - "dev": true, - "requires": { - "@ethereumjs/common": "2.5.0", - "@ethereumjs/tx": "3.3.2", - "eth-lib": "0.2.8", - "ethereumjs-util": "^7.1.5", - "scrypt-js": "^3.0.1", - "uuid": "^9.0.0", - "web3-core": "1.8.2", - "web3-core-helpers": "1.8.2", - "web3-core-method": "1.8.2", - "web3-utils": "1.8.2" - }, - "dependencies": { - "bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - }, - "eth-lib": { - "version": "0.2.8", - "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.8.tgz", - "integrity": "sha512-ArJ7x1WcWOlSpzdoTBX8vkwlkSQ85CjjifSZtV4co64vWxSV8geWfPI9x4SVYu3DSxnX4yWFVTtGL+j9DUFLNw==", - "dev": true, - "requires": { - "bn.js": "^4.11.6", - "elliptic": "^6.4.0", - "xhr-request-promise": "^0.1.2" - } - } - } - }, - "web3-eth-contract": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/web3-eth-contract/-/web3-eth-contract-1.8.2.tgz", - "integrity": "sha512-ID5A25tHTSBNwOPjiXSVzxruz006ULRIDbzWTYIFTp7NJ7vXu/kynKK2ag/ObuTqBpMbobP8nXcA9b5EDkIdQA==", - "dev": true, - "requires": { - "@types/bn.js": "^5.1.0", - "web3-core": "1.8.2", - "web3-core-helpers": "1.8.2", - "web3-core-method": "1.8.2", - "web3-core-promievent": "1.8.2", - "web3-core-subscriptions": "1.8.2", - "web3-eth-abi": "1.8.2", - "web3-utils": "1.8.2" - } - }, - "web3-eth-ens": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/web3-eth-ens/-/web3-eth-ens-1.8.2.tgz", - "integrity": "sha512-PWph7C/CnqdWuu1+SH4U4zdrK4t2HNt0I4XzPYFdv9ugE8EuojselioPQXsVGvjql+Nt3jDLvQvggPqlMbvwRw==", - "dev": true, - "requires": { - "content-hash": "^2.5.2", - "eth-ens-namehash": "2.0.8", - "web3-core": "1.8.2", - "web3-core-helpers": "1.8.2", - "web3-core-promievent": "1.8.2", - "web3-eth-abi": "1.8.2", - "web3-eth-contract": "1.8.2", - "web3-utils": "1.8.2" - } - }, - "web3-eth-iban": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/web3-eth-iban/-/web3-eth-iban-1.8.2.tgz", - "integrity": "sha512-h3vNblDWkWMuYx93Q27TAJz6lhzpP93EiC3+45D6xoz983p6si773vntoQ+H+5aZhwglBtoiBzdh7PSSOnP/xQ==", - "dev": true, - "requires": { - "bn.js": "^5.2.1", - "web3-utils": "1.8.2" - } - }, - "web3-eth-personal": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/web3-eth-personal/-/web3-eth-personal-1.8.2.tgz", - "integrity": "sha512-Vg4HfwCr7doiUF/RC+Jz0wT4+cYaXcOWMAW2AHIjHX6Z7Xwa8nrURIeQgeEE62qcEHAzajyAdB1u6bJyTfuCXw==", - "dev": true, - "requires": { - "@types/node": "^12.12.6", - "web3-core": "1.8.2", - "web3-core-helpers": "1.8.2", - "web3-core-method": "1.8.2", - "web3-net": "1.8.2", - "web3-utils": "1.8.2" - } - }, - "web3-net": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/web3-net/-/web3-net-1.8.2.tgz", - "integrity": "sha512-1itkDMGmbgb83Dg9nporFes9/fxsU7smJ3oRXlFkg4ZHn8YJyP1MSQFPJWWwSc+GrcCFt4O5IrUTvEkHqE3xag==", - "dev": true, - "requires": { - "web3-core": "1.8.2", - "web3-core-method": "1.8.2", - "web3-utils": "1.8.2" - } - }, - "web3-providers-http": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/web3-providers-http/-/web3-providers-http-1.8.2.tgz", - "integrity": "sha512-2xY94IIEQd16+b+vIBF4IC1p7GVaz9q4EUFscvMUjtEq4ru4Atdzjs9GP+jmcoo49p70II0UV3bqQcz0TQfVyQ==", - "dev": true, - "requires": { - "abortcontroller-polyfill": "^1.7.3", - "cross-fetch": "^3.1.4", - "es6-promise": "^4.2.8", - "web3-core-helpers": "1.8.2" - } - }, - "web3-providers-ipc": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/web3-providers-ipc/-/web3-providers-ipc-1.8.2.tgz", - "integrity": "sha512-p6fqKVGFg+WiXGHWnB1hu43PbvPkDHTz4RgoEzbXugv5rtv5zfYLqm8Ba6lrJOS5ks9kGKR21a0y3NzE3u7V4w==", - "dev": true, - "requires": { - "oboe": "2.1.5", - "web3-core-helpers": "1.8.2" - } - }, - "web3-providers-ws": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/web3-providers-ws/-/web3-providers-ws-1.8.2.tgz", - "integrity": "sha512-3s/4K+wHgbiN+Zrp9YjMq2eqAF6QGABw7wFftPdx+m5hWImV27/MoIx57c6HffNRqZXmCHnfWWFCNHHsi7wXnA==", - "dev": true, - "requires": { - "eventemitter3": "4.0.4", - "web3-core-helpers": "1.8.2", - "websocket": "^1.0.32" - } - }, - "web3-shh": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/web3-shh/-/web3-shh-1.8.2.tgz", - "integrity": "sha512-uZ+3MAoNcaJsXXNCDnizKJ5viBNeHOFYsCbFhV755Uu52FswzTOw6DtE7yK9nYXMtIhiSgi7nwl1RYzP8pystw==", - "dev": true, - "requires": { - "web3-core": "1.8.2", - "web3-core-method": "1.8.2", - "web3-core-subscriptions": "1.8.2", - "web3-net": "1.8.2" - } - }, - "web3-utils": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.8.2.tgz", - "integrity": "sha512-v7j6xhfLQfY7xQDrUP0BKbaNrmZ2/+egbqP9q3KYmOiPpnvAfol+32slgL0WX/5n8VPvKCK5EZ1HGrAVICSToA==", - "dev": true, - "requires": { - "bn.js": "^5.2.1", - "ethereum-bloom-filters": "^1.0.6", - "ethereumjs-util": "^7.1.0", - "ethjs-unit": "0.1.6", - "number-to-bn": "1.7.0", - "randombytes": "^2.1.0", - "utf8": "3.0.0" - } - }, - "websocket": { - "version": "1.0.34", - "resolved": "https://registry.npmjs.org/websocket/-/websocket-1.0.34.tgz", - "integrity": "sha512-PRDso2sGwF6kM75QykIesBijKSVceR6jL2G8NGYyq2XrItNC2P5/qL5XeR056GhA+Ly7JMFvJb9I312mJfmqnQ==", - "dev": true, - "requires": { - "bufferutil": "^4.0.1", - "debug": "^2.2.0", - "es5-ext": "^0.10.50", - "typedarray-to-buffer": "^3.1.5", - "utf-8-validate": "^5.0.2", - "yaeti": "^0.0.6" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true - } - } - } - } - }, - "@truffle/error": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/@truffle/error/-/error-0.0.6.tgz", - "integrity": "sha512-QUM9ZWiwlXGixFGpV18g5I6vua6/r+ZV9W/5DQA5go9A3eZUNPHPaTKMIQPJLYn6+ZV5jg5H28zCHq56LHF3yA==", - "dev": true - }, - "@truffle/events": { - "version": "0.1.22", - "resolved": "https://registry.npmjs.org/@truffle/events/-/events-0.1.22.tgz", - "integrity": "sha512-WBEfaQ5zagS3J1M66J8wQ8N1As/EnBjLQsRlCCFs3/KbmeWhsoalVZ5Effhe0Vxd+e+k7lvwbloQBdS6roc+wg==", - "dev": true, - "optional": true, - "requires": { - "@truffle/dashboard-message-bus-client": "^0.1.10", - "@truffle/spinners": "^0.2.3", - "debug": "^4.3.1", - "emittery": "^0.4.1", - "web3-utils": "1.8.2" - }, - "dependencies": { - "@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==", - "dev": true, - "optional": true, - "requires": { - "@types/node": "*" - } - }, - "bn.js": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", - "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==", - "dev": true, - "optional": true - }, - "debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "optional": true, - "requires": { - "ms": "2.1.2" - } - }, - "ethereumjs-util": { - "version": "7.1.5", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.5.tgz", - "integrity": "sha512-SDl5kKrQAudFBUe5OJM9Ac6WmMyYmXX/6sTmLZ3ffG2eY6ZIGBes3pEDxNN6V72WyOw4CPD5RomKdsa8DAAwLg==", - "dev": true, - "optional": true, - "requires": { - "@types/bn.js": "^5.1.0", - "bn.js": "^5.1.2", - "create-hash": "^1.1.2", - "ethereum-cryptography": "^0.1.3", - "rlp": "^2.2.4" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true, - "optional": true - }, - "web3-utils": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.8.2.tgz", - "integrity": "sha512-v7j6xhfLQfY7xQDrUP0BKbaNrmZ2/+egbqP9q3KYmOiPpnvAfol+32slgL0WX/5n8VPvKCK5EZ1HGrAVICSToA==", - "dev": true, - "optional": true, - "requires": { - "bn.js": "^5.2.1", - "ethereum-bloom-filters": "^1.0.6", - "ethereumjs-util": "^7.1.0", - "ethjs-unit": "0.1.6", - "number-to-bn": "1.7.0", - "randombytes": "^2.1.0", - "utf8": "3.0.0" - } - } - } - }, - "@truffle/hdwallet-provider": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/@truffle/hdwallet-provider/-/hdwallet-provider-1.7.0.tgz", - "integrity": "sha512-nT7BPJJ2jPCLJc5uZdVtRnRMny5he5d3kO9Hi80ZSqe5xlnK905grBptM/+CwOfbeqHKQirI1btwm6r3wIBM8A==", - "dev": true, - "requires": { - "@ethereumjs/common": "^2.4.0", - "@ethereumjs/tx": "^3.3.0", - "@trufflesuite/web3-provider-engine": "15.0.14", - "eth-sig-util": "^3.0.1", - "ethereum-cryptography": "^0.1.3", - "ethereum-protocol": "^1.0.1", - "ethereumjs-util": "^6.1.0", - "ethereumjs-wallet": "^1.0.1" - }, - "dependencies": { - "@types/bn.js": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-5.1.0.tgz", - "integrity": "sha512-QSSVYj7pYFN49kW77o2s9xTCwZ8F2xLbjLLSEVh8D2F4JUhZtPAGOFLTD+ffqksBx/u4cE/KImFjyhqCjn/LIA==", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "aes-js": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/aes-js/-/aes-js-3.1.2.tgz", - "integrity": "sha512-e5pEa2kBnBOgR4Y/p20pskXI74UEz7de8ZGVo58asOtvSVG5YAbJeELPZxOmt+Bnz3rX753YKhfIn4X4l1PPRQ==", - "dev": true - }, - "bn.js": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.0.tgz", - "integrity": "sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw==", - "dev": true - }, - "ethereumjs-wallet": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/ethereumjs-wallet/-/ethereumjs-wallet-1.0.2.tgz", - "integrity": "sha512-CCWV4RESJgRdHIvFciVQFnCHfqyhXWchTPlkfp28Qc53ufs+doi5I/cV2+xeK9+qEo25XCWfP9MiL+WEPAZfdA==", - "dev": true, - "requires": { - "aes-js": "^3.1.2", - "bs58check": "^2.1.2", - "ethereum-cryptography": "^0.1.3", - "ethereumjs-util": "^7.1.2", - "randombytes": "^2.1.0", - "scrypt-js": "^3.0.1", - "utf8": "^3.0.0", - "uuid": "^8.3.2" - }, - "dependencies": { - "ethereumjs-util": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.3.tgz", - "integrity": "sha512-y+82tEbyASO0K0X1/SRhbJJoAlfcvq8JbrG4a5cjrOks7HS/36efU/0j2flxCPOUM++HFahk33kr/ZxyC4vNuw==", - "dev": true, - "requires": { - "@types/bn.js": "^5.1.0", - "bn.js": "^5.1.2", - "create-hash": "^1.1.2", - "ethereum-cryptography": "^0.1.3", - "rlp": "^2.2.4" - } - } - } - }, - "scrypt-js": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-3.0.1.tgz", - "integrity": "sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA==", - "dev": true - }, - "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 - } - } - }, - "@truffle/promise-tracker": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/@truffle/promise-tracker/-/promise-tracker-0.1.5.tgz", - "integrity": "sha512-wZx8eeu/6rcwwkmRF0Y832/NSQR9A9u6pyhTozv+j77jklnd/KZvu2JlACaAjP30eL5SOtSrSOzAMcSh/trJjg==", - "dev": true, - "optional": true - }, - "@truffle/provider": { - "version": "0.3.8", - "resolved": "https://registry.npmjs.org/@truffle/provider/-/provider-0.3.8.tgz", - "integrity": "sha512-qukkmGOZPsbV7WeKlj/bfYWOu/dbHWlF67QHDhV2KHBVardN06VDf40aB8WeeVkONHijb623hkUI/DE4DpHO+Q==", - "dev": true, - "optional": true, - "requires": { - "@truffle/error": "^0.2.0", - "@truffle/interface-adapter": "^0.5.32", - "debug": "^4.3.1", - "web3": "1.8.2" - }, - "dependencies": { - "@ethereumjs/common": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@ethereumjs/common/-/common-2.5.0.tgz", - "integrity": "sha512-DEHjW6e38o+JmB/NO3GZBpW4lpaiBpkFgXF6jLcJ6gETBYpEyaA5nTimsWBUJR3Vmtm/didUEbNjajskugZORg==", - "dev": true, - "optional": true, - "requires": { - "crc-32": "^1.2.0", - "ethereumjs-util": "^7.1.1" - } - }, - "@ethereumjs/tx": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/@ethereumjs/tx/-/tx-3.3.2.tgz", - "integrity": "sha512-6AaJhwg4ucmwTvw/1qLaZUX5miWrwZ4nLOUsKyb/HtzS3BMw/CasKhdi1ims9mBKeK9sOJCH4qGKOBGyJCeeog==", - "dev": true, - "optional": true, - "requires": { - "@ethereumjs/common": "^2.5.0", - "ethereumjs-util": "^7.1.2" - } - }, - "@sindresorhus/is": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.6.0.tgz", - "integrity": "sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==", - "dev": true, - "optional": true - }, - "@szmarczak/http-timer": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-5.0.1.tgz", - "integrity": "sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw==", - "dev": true, - "optional": true, - "requires": { - "defer-to-connect": "^2.0.1" - } - }, - "@truffle/error": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/@truffle/error/-/error-0.2.0.tgz", - "integrity": "sha512-Fe0/z4WWb7IP2gBnv3l6zqP87Y0kSMs7oiSLakKJq17q3GUunrHSdioKuNspdggxkXIBhEQLhi8C+LJdwmHKWQ==", - "dev": true, - "optional": true - }, - "@truffle/interface-adapter": { - "version": "0.5.32", - "resolved": "https://registry.npmjs.org/@truffle/interface-adapter/-/interface-adapter-0.5.32.tgz", - "integrity": "sha512-7Hgmdb4nJUcWtq4vvgWY7Mr2RLOTOp5FZaWyMiFmjkcEEhDlezm2QstALWAXgT0W6q7tDmDBpw3vTIFenRhHBA==", - "dev": true, - "optional": true, - "requires": { - "bn.js": "^5.1.3", - "ethers": "^4.0.32", - "web3": "1.8.2" - } - }, - "@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==", - "dev": true, - "optional": true, - "requires": { - "@types/node": "*" - } - }, - "@types/node": { - "version": "12.20.55", - "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.55.tgz", - "integrity": "sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==", - "dev": true, - "optional": true - }, - "bignumber.js": { - "version": "9.1.1", - "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.1.1.tgz", - "integrity": "sha512-pHm4LsMJ6lzgNGVfZHjMoO8sdoRhOzOH4MLmY65Jg70bpxCKu5iOHNJyfF6OyvYw7t8Fpf35RuzUyqnQsj8Vig==", - "dev": true, - "optional": true - }, - "bn.js": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", - "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==", - "dev": true, - "optional": true - }, - "cacheable-request": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-7.0.2.tgz", - "integrity": "sha512-pouW8/FmiPQbuGpkXQ9BAPv/Mo5xDGANgSNXzTzJ8DrKGuXOssM4wIQRjfanNRh3Yu5cfYPvcorqbhg2KIJtew==", - "dev": true, - "optional": true, - "requires": { - "clone-response": "^1.0.2", - "get-stream": "^5.1.0", - "http-cache-semantics": "^4.0.0", - "keyv": "^4.0.0", - "lowercase-keys": "^2.0.0", - "normalize-url": "^6.0.1", - "responselike": "^2.0.0" - }, - "dependencies": { - "get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "dev": true, - "optional": true, - "requires": { - "pump": "^3.0.0" - } - }, - "lowercase-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", - "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", - "dev": true, - "optional": true - } - } - }, - "cross-fetch": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.5.tgz", - "integrity": "sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw==", - "dev": true, - "optional": true, - "requires": { - "node-fetch": "2.6.7" - } - }, - "debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "optional": true, - "requires": { - "ms": "2.1.2" - } - }, - "decompress-response": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", - "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", - "dev": true, - "optional": true, - "requires": { - "mimic-response": "^3.1.0" - } - }, - "defer-to-connect": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz", - "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==", - "dev": true, - "optional": true - }, - "ethereumjs-util": { - "version": "7.1.5", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.5.tgz", - "integrity": "sha512-SDl5kKrQAudFBUe5OJM9Ac6WmMyYmXX/6sTmLZ3ffG2eY6ZIGBes3pEDxNN6V72WyOw4CPD5RomKdsa8DAAwLg==", - "dev": true, - "optional": true, - "requires": { - "@types/bn.js": "^5.1.0", - "bn.js": "^5.1.2", - "create-hash": "^1.1.2", - "ethereum-cryptography": "^0.1.3", - "rlp": "^2.2.4" - } - }, - "ethers": { - "version": "4.0.49", - "resolved": "https://registry.npmjs.org/ethers/-/ethers-4.0.49.tgz", - "integrity": "sha512-kPltTvWiyu+OktYy1IStSO16i2e7cS9D9OxZ81q2UUaiNPVrm/RTcbxamCXF9VUSKzJIdJV68EAIhTEVBalRWg==", - "dev": true, - "optional": true, - "requires": { - "aes-js": "3.0.0", - "bn.js": "^4.11.9", - "elliptic": "6.5.4", - "hash.js": "1.1.3", - "js-sha3": "0.5.7", - "scrypt-js": "2.0.4", - "setimmediate": "1.0.4", - "uuid": "2.0.1", - "xmlhttprequest": "1.8.0" - }, - "dependencies": { - "bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true, - "optional": true - } - } - }, - "eventemitter3": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.4.tgz", - "integrity": "sha512-rlaVLnVxtxvoyLsQQFBx53YmXHDxRIzzTLbdfxqi4yocpSjAxXwkU0cScM5JgSKMqEhrZpnvQ2D9gjylR0AimQ==", - "dev": true, - "optional": true - }, - "fs-extra": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-4.0.3.tgz", - "integrity": "sha512-q6rbdDd1o2mAnQreO7YADIxf/Whx4AHBiRf6d+/cVT8h44ss+lHgxf1FemcqDnQt9X3ct4McHr+JMGlYSsK7Cg==", - "dev": true, - "optional": true, - "requires": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - }, - "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, - "optional": true - }, - "got": { - "version": "12.1.0", - "resolved": "https://registry.npmjs.org/got/-/got-12.1.0.tgz", - "integrity": "sha512-hBv2ty9QN2RdbJJMK3hesmSkFTjVIHyIDDbssCKnSmq62edGgImJWD10Eb1k77TiV1bxloxqcFAVK8+9pkhOig==", - "dev": true, - "optional": true, - "requires": { - "@sindresorhus/is": "^4.6.0", - "@szmarczak/http-timer": "^5.0.1", - "@types/cacheable-request": "^6.0.2", - "@types/responselike": "^1.0.0", - "cacheable-lookup": "^6.0.4", - "cacheable-request": "^7.0.2", - "decompress-response": "^6.0.0", - "form-data-encoder": "1.7.1", - "get-stream": "^6.0.1", - "http2-wrapper": "^2.1.10", - "lowercase-keys": "^3.0.0", - "p-cancelable": "^3.0.0", - "responselike": "^2.0.0" - } - }, - "json-buffer": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", - "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", - "dev": true, - "optional": true - }, - "keyv": { - "version": "4.5.2", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.2.tgz", - "integrity": "sha512-5MHbFaKn8cNSmVW7BYnijeAVlE4cYA/SVkifVgrh7yotnfhKmjuXpDKjrABLnT0SfHWV21P8ow07OGfRrNDg8g==", - "dev": true, - "optional": true, - "requires": { - "json-buffer": "3.0.1" - } - }, - "lowercase-keys": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-3.0.0.tgz", - "integrity": "sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ==", - "dev": true, - "optional": true - }, - "mimic-response": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", - "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==", - "dev": true, - "optional": true - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true, - "optional": true - }, - "node-fetch": { - "version": "2.6.7", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", - "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", - "dev": true, - "optional": true, - "requires": { - "whatwg-url": "^5.0.0" - } - }, - "normalize-url": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", - "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==", - "dev": true, - "optional": true - }, - "oboe": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/oboe/-/oboe-2.1.5.tgz", - "integrity": "sha512-zRFWiF+FoicxEs3jNI/WYUrVEgA7DeET/InK0XQuudGHRg8iIob3cNPrJTKaz4004uaA9Pbe+Dwa8iluhjLZWA==", - "dev": true, - "optional": true, - "requires": { - "http-https": "^1.0.0" - } - }, - "p-cancelable": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-3.0.0.tgz", - "integrity": "sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw==", - "dev": true, - "optional": true - }, - "responselike": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/responselike/-/responselike-2.0.1.tgz", - "integrity": "sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw==", - "dev": true, - "optional": true, - "requires": { - "lowercase-keys": "^2.0.0" - }, - "dependencies": { - "lowercase-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", - "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", - "dev": true, - "optional": true - } - } - }, - "swarm-js": { - "version": "0.1.42", - "resolved": "https://registry.npmjs.org/swarm-js/-/swarm-js-0.1.42.tgz", - "integrity": "sha512-BV7c/dVlA3R6ya1lMlSSNPLYrntt0LUq4YMgy3iwpCIc6rZnS5W2wUoctarZ5pXlpKtxDDf9hNziEkcfrxdhqQ==", - "dev": true, - "optional": true, - "requires": { - "bluebird": "^3.5.0", - "buffer": "^5.0.5", - "eth-lib": "^0.1.26", - "fs-extra": "^4.0.2", - "got": "^11.8.5", - "mime-types": "^2.1.16", - "mkdirp-promise": "^5.0.1", - "mock-fs": "^4.1.0", - "setimmediate": "^1.0.5", - "tar": "^4.0.2", - "xhr-request": "^1.0.1" - }, - "dependencies": { - "@szmarczak/http-timer": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-4.0.6.tgz", - "integrity": "sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==", - "dev": true, - "optional": true, - "requires": { - "defer-to-connect": "^2.0.0" - } - }, - "cacheable-lookup": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz", - "integrity": "sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==", - "dev": true, - "optional": true - }, - "got": { - "version": "11.8.6", - "resolved": "https://registry.npmjs.org/got/-/got-11.8.6.tgz", - "integrity": "sha512-6tfZ91bOr7bOXnK7PRDCGBLa1H4U080YHNaAQ2KsMGlLEzRbk44nsZF2E1IeRc3vtJHPVbKCYgdFbaGO2ljd8g==", - "dev": true, - "optional": true, - "requires": { - "@sindresorhus/is": "^4.0.0", - "@szmarczak/http-timer": "^4.0.5", - "@types/cacheable-request": "^6.0.1", - "@types/responselike": "^1.0.0", - "cacheable-lookup": "^5.0.3", - "cacheable-request": "^7.0.2", - "decompress-response": "^6.0.0", - "http2-wrapper": "^1.0.0-beta.5.2", - "lowercase-keys": "^2.0.0", - "p-cancelable": "^2.0.0", - "responselike": "^2.0.0" - } - }, - "http2-wrapper": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-1.0.3.tgz", - "integrity": "sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg==", - "dev": true, - "optional": true, - "requires": { - "quick-lru": "^5.1.1", - "resolve-alpn": "^1.0.0" - } - }, - "lowercase-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", - "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", - "dev": true, - "optional": true - }, - "p-cancelable": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.1.1.tgz", - "integrity": "sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==", - "dev": true, - "optional": true - }, - "setimmediate": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", - "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==", - "dev": true, - "optional": true - } - } - }, - "uuid": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-2.0.1.tgz", - "integrity": "sha512-nWg9+Oa3qD2CQzHIP4qKUqwNfzKn8P0LtFhotaCTFchsV7ZfDhAybeip/HZVeMIpZi9JgY1E3nUlwaCmZT1sEg==", - "dev": true, - "optional": true - }, - "web3": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/web3/-/web3-1.8.2.tgz", - "integrity": "sha512-92h0GdEHW9wqDICQQKyG4foZBYi0OQkyg4CRml2F7XBl/NG+fu9o6J19kzfFXzSBoA4DnJXbyRgj/RHZv5LRiw==", - "dev": true, - "optional": true, - "requires": { - "web3-bzz": "1.8.2", - "web3-core": "1.8.2", - "web3-eth": "1.8.2", - "web3-eth-personal": "1.8.2", - "web3-net": "1.8.2", - "web3-shh": "1.8.2", - "web3-utils": "1.8.2" - } - }, - "web3-bzz": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/web3-bzz/-/web3-bzz-1.8.2.tgz", - "integrity": "sha512-1EEnxjPnFnvNWw3XeeKuTR8PBxYd0+XWzvaLK7OJC/Go9O8llLGxrxICbKV+8cgIE0sDRBxiYx02X+6OhoAQ9w==", - "dev": true, - "optional": true, - "requires": { - "@types/node": "^12.12.6", - "got": "12.1.0", - "swarm-js": "^0.1.40" - } - }, - "web3-core": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/web3-core/-/web3-core-1.8.2.tgz", - "integrity": "sha512-DJTVEAYcNqxkqruJE+Rxp3CIv0y5AZMwPHQmOkz/cz+MM75SIzMTc0AUdXzGyTS8xMF8h3YWMQGgGEy8SBf1PQ==", - "dev": true, - "optional": true, - "requires": { - "@types/bn.js": "^5.1.0", - "@types/node": "^12.12.6", - "bignumber.js": "^9.0.0", - "web3-core-helpers": "1.8.2", - "web3-core-method": "1.8.2", - "web3-core-requestmanager": "1.8.2", - "web3-utils": "1.8.2" - } - }, - "web3-core-helpers": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.8.2.tgz", - "integrity": "sha512-6B1eLlq9JFrfealZBomd1fmlq1o4A09vrCVQSa51ANoib/jllT3atZrRDr0zt1rfI7TSZTZBXdN/aTdeN99DWw==", - "dev": true, - "optional": true, - "requires": { - "web3-eth-iban": "1.8.2", - "web3-utils": "1.8.2" - } - }, - "web3-core-method": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/web3-core-method/-/web3-core-method-1.8.2.tgz", - "integrity": "sha512-1qnr5mw5wVyULzLOrk4B+ryO3gfGjGd/fx8NR+J2xCGLf1e6OSjxT9vbfuQ3fErk/NjSTWWreieYWLMhaogcRA==", - "dev": true, - "optional": true, - "requires": { - "@ethersproject/transactions": "^5.6.2", - "web3-core-helpers": "1.8.2", - "web3-core-promievent": "1.8.2", - "web3-core-subscriptions": "1.8.2", - "web3-utils": "1.8.2" - } - }, - "web3-core-promievent": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/web3-core-promievent/-/web3-core-promievent-1.8.2.tgz", - "integrity": "sha512-nvkJWDVgoOSsolJldN33tKW6bKKRJX3MCPDYMwP5SUFOA/mCzDEoI88N0JFofDTXkh1k7gOqp1pvwi9heuaxGg==", - "dev": true, - "optional": true, - "requires": { - "eventemitter3": "4.0.4" - } - }, - "web3-core-requestmanager": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/web3-core-requestmanager/-/web3-core-requestmanager-1.8.2.tgz", - "integrity": "sha512-p1d090RYs5Mu7DK1yyc3GCBVZB/03rBtFhYFoS2EruGzOWs/5Q0grgtpwS/DScdRAm8wB8mYEBhY/RKJWF6B2g==", - "dev": true, - "optional": true, - "requires": { - "util": "^0.12.5", - "web3-core-helpers": "1.8.2", - "web3-providers-http": "1.8.2", - "web3-providers-ipc": "1.8.2", - "web3-providers-ws": "1.8.2" - } - }, - "web3-core-subscriptions": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/web3-core-subscriptions/-/web3-core-subscriptions-1.8.2.tgz", - "integrity": "sha512-vXQogHDmAIQcKpXvGiMddBUeP9lnKgYF64+yQJhPNE5PnWr1sAibXuIPV7mIPihpFr/n/DORRj6Wh1pUv9zaTw==", - "dev": true, - "optional": true, - "requires": { - "eventemitter3": "4.0.4", - "web3-core-helpers": "1.8.2" - } - }, - "web3-eth": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/web3-eth/-/web3-eth-1.8.2.tgz", - "integrity": "sha512-JoTiWWc4F4TInpbvDUGb0WgDYJsFhuIjJlinc5ByjWD88Gvh+GKLsRjjFdbqe5YtwIGT4NymwoC5LQd1K6u/QQ==", - "dev": true, - "optional": true, - "requires": { - "web3-core": "1.8.2", - "web3-core-helpers": "1.8.2", - "web3-core-method": "1.8.2", - "web3-core-subscriptions": "1.8.2", - "web3-eth-abi": "1.8.2", - "web3-eth-accounts": "1.8.2", - "web3-eth-contract": "1.8.2", - "web3-eth-ens": "1.8.2", - "web3-eth-iban": "1.8.2", - "web3-eth-personal": "1.8.2", - "web3-net": "1.8.2", - "web3-utils": "1.8.2" - } - }, - "web3-eth-abi": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/web3-eth-abi/-/web3-eth-abi-1.8.2.tgz", - "integrity": "sha512-Om9g3kaRNjqiNPAgKwGT16y+ZwtBzRe4ZJFGjLiSs6v5I7TPNF+rRMWuKnR6jq0azQZDj6rblvKFMA49/k48Og==", - "dev": true, - "optional": true, - "requires": { - "@ethersproject/abi": "^5.6.3", - "web3-utils": "1.8.2" - } - }, - "web3-eth-accounts": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/web3-eth-accounts/-/web3-eth-accounts-1.8.2.tgz", - "integrity": "sha512-c367Ij63VCz9YdyjiHHWLFtN85l6QghgwMQH2B1eM/p9Y5lTlTX7t/Eg/8+f1yoIStXbk2w/PYM2lk+IkbqdLA==", - "dev": true, - "optional": true, - "requires": { - "@ethereumjs/common": "2.5.0", - "@ethereumjs/tx": "3.3.2", - "eth-lib": "0.2.8", - "ethereumjs-util": "^7.1.5", - "scrypt-js": "^3.0.1", - "uuid": "^9.0.0", - "web3-core": "1.8.2", - "web3-core-helpers": "1.8.2", - "web3-core-method": "1.8.2", - "web3-utils": "1.8.2" - }, - "dependencies": { - "bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true, - "optional": true - }, - "eth-lib": { - "version": "0.2.8", - "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.8.tgz", - "integrity": "sha512-ArJ7x1WcWOlSpzdoTBX8vkwlkSQ85CjjifSZtV4co64vWxSV8geWfPI9x4SVYu3DSxnX4yWFVTtGL+j9DUFLNw==", - "dev": true, - "optional": true, - "requires": { - "bn.js": "^4.11.6", - "elliptic": "^6.4.0", - "xhr-request-promise": "^0.1.2" - } - }, - "scrypt-js": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-3.0.1.tgz", - "integrity": "sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA==", - "dev": true, - "optional": true - }, - "uuid": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.0.tgz", - "integrity": "sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg==", - "dev": true, - "optional": true - } - } - }, - "web3-eth-contract": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/web3-eth-contract/-/web3-eth-contract-1.8.2.tgz", - "integrity": "sha512-ID5A25tHTSBNwOPjiXSVzxruz006ULRIDbzWTYIFTp7NJ7vXu/kynKK2ag/ObuTqBpMbobP8nXcA9b5EDkIdQA==", - "dev": true, - "optional": true, - "requires": { - "@types/bn.js": "^5.1.0", - "web3-core": "1.8.2", - "web3-core-helpers": "1.8.2", - "web3-core-method": "1.8.2", - "web3-core-promievent": "1.8.2", - "web3-core-subscriptions": "1.8.2", - "web3-eth-abi": "1.8.2", - "web3-utils": "1.8.2" - } - }, - "web3-eth-ens": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/web3-eth-ens/-/web3-eth-ens-1.8.2.tgz", - "integrity": "sha512-PWph7C/CnqdWuu1+SH4U4zdrK4t2HNt0I4XzPYFdv9ugE8EuojselioPQXsVGvjql+Nt3jDLvQvggPqlMbvwRw==", - "dev": true, - "optional": true, - "requires": { - "content-hash": "^2.5.2", - "eth-ens-namehash": "2.0.8", - "web3-core": "1.8.2", - "web3-core-helpers": "1.8.2", - "web3-core-promievent": "1.8.2", - "web3-eth-abi": "1.8.2", - "web3-eth-contract": "1.8.2", - "web3-utils": "1.8.2" - } - }, - "web3-eth-iban": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/web3-eth-iban/-/web3-eth-iban-1.8.2.tgz", - "integrity": "sha512-h3vNblDWkWMuYx93Q27TAJz6lhzpP93EiC3+45D6xoz983p6si773vntoQ+H+5aZhwglBtoiBzdh7PSSOnP/xQ==", - "dev": true, - "optional": true, - "requires": { - "bn.js": "^5.2.1", - "web3-utils": "1.8.2" - } - }, - "web3-eth-personal": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/web3-eth-personal/-/web3-eth-personal-1.8.2.tgz", - "integrity": "sha512-Vg4HfwCr7doiUF/RC+Jz0wT4+cYaXcOWMAW2AHIjHX6Z7Xwa8nrURIeQgeEE62qcEHAzajyAdB1u6bJyTfuCXw==", - "dev": true, - "optional": true, - "requires": { - "@types/node": "^12.12.6", - "web3-core": "1.8.2", - "web3-core-helpers": "1.8.2", - "web3-core-method": "1.8.2", - "web3-net": "1.8.2", - "web3-utils": "1.8.2" - } - }, - "web3-net": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/web3-net/-/web3-net-1.8.2.tgz", - "integrity": "sha512-1itkDMGmbgb83Dg9nporFes9/fxsU7smJ3oRXlFkg4ZHn8YJyP1MSQFPJWWwSc+GrcCFt4O5IrUTvEkHqE3xag==", - "dev": true, - "optional": true, - "requires": { - "web3-core": "1.8.2", - "web3-core-method": "1.8.2", - "web3-utils": "1.8.2" - } - }, - "web3-providers-http": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/web3-providers-http/-/web3-providers-http-1.8.2.tgz", - "integrity": "sha512-2xY94IIEQd16+b+vIBF4IC1p7GVaz9q4EUFscvMUjtEq4ru4Atdzjs9GP+jmcoo49p70II0UV3bqQcz0TQfVyQ==", - "dev": true, - "optional": true, - "requires": { - "abortcontroller-polyfill": "^1.7.3", - "cross-fetch": "^3.1.4", - "es6-promise": "^4.2.8", - "web3-core-helpers": "1.8.2" - } - }, - "web3-providers-ipc": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/web3-providers-ipc/-/web3-providers-ipc-1.8.2.tgz", - "integrity": "sha512-p6fqKVGFg+WiXGHWnB1hu43PbvPkDHTz4RgoEzbXugv5rtv5zfYLqm8Ba6lrJOS5ks9kGKR21a0y3NzE3u7V4w==", - "dev": true, - "optional": true, - "requires": { - "oboe": "2.1.5", - "web3-core-helpers": "1.8.2" - } - }, - "web3-providers-ws": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/web3-providers-ws/-/web3-providers-ws-1.8.2.tgz", - "integrity": "sha512-3s/4K+wHgbiN+Zrp9YjMq2eqAF6QGABw7wFftPdx+m5hWImV27/MoIx57c6HffNRqZXmCHnfWWFCNHHsi7wXnA==", - "dev": true, - "optional": true, - "requires": { - "eventemitter3": "4.0.4", - "web3-core-helpers": "1.8.2", - "websocket": "^1.0.32" - } - }, - "web3-shh": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/web3-shh/-/web3-shh-1.8.2.tgz", - "integrity": "sha512-uZ+3MAoNcaJsXXNCDnizKJ5viBNeHOFYsCbFhV755Uu52FswzTOw6DtE7yK9nYXMtIhiSgi7nwl1RYzP8pystw==", - "dev": true, - "optional": true, - "requires": { - "web3-core": "1.8.2", - "web3-core-method": "1.8.2", - "web3-core-subscriptions": "1.8.2", - "web3-net": "1.8.2" - } - }, - "web3-utils": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.8.2.tgz", - "integrity": "sha512-v7j6xhfLQfY7xQDrUP0BKbaNrmZ2/+egbqP9q3KYmOiPpnvAfol+32slgL0WX/5n8VPvKCK5EZ1HGrAVICSToA==", - "dev": true, - "optional": true, - "requires": { - "bn.js": "^5.2.1", - "ethereum-bloom-filters": "^1.0.6", - "ethereumjs-util": "^7.1.0", - "ethjs-unit": "0.1.6", - "number-to-bn": "1.7.0", - "randombytes": "^2.1.0", - "utf8": "3.0.0" - } - }, - "websocket": { - "version": "1.0.34", - "resolved": "https://registry.npmjs.org/websocket/-/websocket-1.0.34.tgz", - "integrity": "sha512-PRDso2sGwF6kM75QykIesBijKSVceR6jL2G8NGYyq2XrItNC2P5/qL5XeR056GhA+Ly7JMFvJb9I312mJfmqnQ==", - "dev": true, - "optional": true, - "requires": { - "bufferutil": "^4.0.1", - "debug": "^2.2.0", - "es5-ext": "^0.10.50", - "typedarray-to-buffer": "^3.1.5", - "utf-8-validate": "^5.0.2", - "yaeti": "^0.0.6" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "optional": true, - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true, - "optional": true - } - } - } - } - }, - "@truffle/source-map-utils": { - "version": "1.3.110", - "resolved": "https://registry.npmjs.org/@truffle/source-map-utils/-/source-map-utils-1.3.110.tgz", - "integrity": "sha512-lkKWwLxGfQITRXjH9fWdy95jSIIzyfX+ggUi5rgkjz5rUUEXFaJ/YX3mxQLQJMi18kKn/yv0ZiGju84aMR3qoA==", - "dev": true, - "requires": { - "@truffle/code-utils": "^3.0.2", - "@truffle/codec": "^0.14.17", - "debug": "^4.3.1", - "json-pointer": "^0.6.1", - "node-interval-tree": "^1.3.3", - "web3-utils": "1.8.2" - }, - "dependencies": { - "@truffle/codec": { - "version": "0.14.17", - "resolved": "https://registry.npmjs.org/@truffle/codec/-/codec-0.14.17.tgz", - "integrity": "sha512-kD4dD86huLeaBEq5R8D1zleJEu6NsXbyYLdXl1V1TKdiO8odw5CBC6Y/+wdu5d3t1dyEYrTbhn1dqknZa52pmw==", - "dev": true, - "requires": { - "@truffle/abi-utils": "^0.3.9", - "@truffle/compile-common": "^0.9.4", - "big.js": "^6.0.3", - "bn.js": "^5.1.3", - "cbor": "^5.2.0", - "debug": "^4.3.1", - "lodash": "^4.17.21", - "semver": "7.3.7", - "utf8": "^3.0.0", - "web3-utils": "1.8.2" - } - }, - "@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==", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "big.js": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/big.js/-/big.js-6.2.1.tgz", - "integrity": "sha512-bCtHMwL9LeDIozFn+oNhhFoq+yQ3BNdnsLSASUxLciOb1vgvpHsIO1dsENiGMgbb4SkP5TrzWzRiLddn8ahVOQ==", - "dev": true - }, - "bignumber.js": { - "version": "9.1.1", - "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.1.1.tgz", - "integrity": "sha512-pHm4LsMJ6lzgNGVfZHjMoO8sdoRhOzOH4MLmY65Jg70bpxCKu5iOHNJyfF6OyvYw7t8Fpf35RuzUyqnQsj8Vig==", - "dev": true - }, - "bn.js": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", - "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==", - "dev": true - }, - "cbor": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/cbor/-/cbor-5.2.0.tgz", - "integrity": "sha512-5IMhi9e1QU76ppa5/ajP1BmMWZ2FHkhAhjeVKQ/EFCgYSEaeVaoGtL7cxJskf9oCCk+XjzaIdc3IuU/dbA/o2A==", - "dev": true, - "requires": { - "bignumber.js": "^9.0.1", - "nofilter": "^1.0.4" - } - }, - "debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "requires": { - "ms": "2.1.2" - } - }, - "ethereumjs-util": { - "version": "7.1.5", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.5.tgz", - "integrity": "sha512-SDl5kKrQAudFBUe5OJM9Ac6WmMyYmXX/6sTmLZ3ffG2eY6ZIGBes3pEDxNN6V72WyOw4CPD5RomKdsa8DAAwLg==", - "dev": true, - "requires": { - "@types/bn.js": "^5.1.0", - "bn.js": "^5.1.2", - "create-hash": "^1.1.2", - "ethereum-cryptography": "^0.1.3", - "rlp": "^2.2.4" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "semver": { - "version": "7.3.7", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", - "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - }, - "web3-utils": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.8.2.tgz", - "integrity": "sha512-v7j6xhfLQfY7xQDrUP0BKbaNrmZ2/+egbqP9q3KYmOiPpnvAfol+32slgL0WX/5n8VPvKCK5EZ1HGrAVICSToA==", - "dev": true, - "requires": { - "bn.js": "^5.2.1", - "ethereum-bloom-filters": "^1.0.6", - "ethereumjs-util": "^7.1.0", - "ethjs-unit": "0.1.6", - "number-to-bn": "1.7.0", - "randombytes": "^2.1.0", - "utf8": "3.0.0" - } - } - } - }, - "@truffle/spinners": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/@truffle/spinners/-/spinners-0.2.3.tgz", - "integrity": "sha512-YnaQ+oBRQ1I1+/P18i8oSW4orUYi6vwpZQxauEZ5X0L8atjKq+RWdiNaza6J6L+KOLunXM4+pWxnNzuUmxlJZw==", - "dev": true, - "optional": true, - "requires": { - "@trufflesuite/spinnies": "^0.1.1" - } - }, - "@trufflesuite/eth-json-rpc-filters": { - "version": "4.1.2-1", - "resolved": "https://registry.npmjs.org/@trufflesuite/eth-json-rpc-filters/-/eth-json-rpc-filters-4.1.2-1.tgz", - "integrity": "sha512-/MChvC5dw2ck9NU1cZmdovCz2VKbOeIyR4tcxDvA5sT+NaL0rA2/R5U0yI7zsbo1zD+pgqav77rQHTzpUdDNJQ==", - "requires": { - "@trufflesuite/eth-json-rpc-middleware": "^4.4.2-0", - "await-semaphore": "^0.1.3", - "eth-query": "^2.1.2", - "json-rpc-engine": "^5.1.3", - "lodash.flatmap": "^4.5.0", - "safe-event-emitter": "^1.0.1" - } - }, - "@trufflesuite/eth-json-rpc-infura": { - "version": "4.0.3-0", - "resolved": "https://registry.npmjs.org/@trufflesuite/eth-json-rpc-infura/-/eth-json-rpc-infura-4.0.3-0.tgz", - "integrity": "sha512-xaUanOmo0YLqRsL0SfXpFienhdw5bpQ1WEXxMTRi57az4lwpZBv4tFUDvcerdwJrxX9wQqNmgUgd1BrR01dumw==", - "requires": { - "@trufflesuite/eth-json-rpc-middleware": "^4.4.2-1", - "cross-fetch": "^2.1.1", - "eth-json-rpc-errors": "^1.0.1", - "json-rpc-engine": "^5.1.3" - }, - "dependencies": { - "eth-json-rpc-errors": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/eth-json-rpc-errors/-/eth-json-rpc-errors-1.1.1.tgz", - "integrity": "sha512-WT5shJ5KfNqHi9jOZD+ID8I1kuYWNrigtZat7GOQkvwo99f8SzAVaEcWhJUv656WiZOAg3P1RiJQANtUmDmbIg==", - "requires": { - "fast-safe-stringify": "^2.0.6" - } - } - } - }, - "@trufflesuite/eth-json-rpc-middleware": { - "version": "4.4.2-1", - "resolved": "https://registry.npmjs.org/@trufflesuite/eth-json-rpc-middleware/-/eth-json-rpc-middleware-4.4.2-1.tgz", - "integrity": "sha512-iEy9H8ja7/8aYES5HfrepGBKU9n/Y4OabBJEklVd/zIBlhCCBAWBqkIZgXt11nBXO/rYAeKwYuE3puH3ByYnLA==", - "requires": { - "@trufflesuite/eth-sig-util": "^1.4.2", - "btoa": "^1.2.1", - "clone": "^2.1.1", - "eth-json-rpc-errors": "^1.0.1", - "eth-query": "^2.1.2", - "ethereumjs-block": "^1.6.0", - "ethereumjs-tx": "^1.3.7", - "ethereumjs-util": "^5.1.2", - "ethereumjs-vm": "^2.6.0", - "fetch-ponyfill": "^4.0.0", - "json-rpc-engine": "^5.1.3", - "json-stable-stringify": "^1.0.1", - "pify": "^3.0.0", - "safe-event-emitter": "^1.0.1" - }, - "dependencies": { - "eth-json-rpc-errors": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/eth-json-rpc-errors/-/eth-json-rpc-errors-1.1.1.tgz", - "integrity": "sha512-WT5shJ5KfNqHi9jOZD+ID8I1kuYWNrigtZat7GOQkvwo99f8SzAVaEcWhJUv656WiZOAg3P1RiJQANtUmDmbIg==", - "requires": { - "fast-safe-stringify": "^2.0.6" - } - }, - "ethereum-common": { - "version": "0.0.18", - "resolved": "https://registry.npmjs.org/ethereum-common/-/ethereum-common-0.0.18.tgz", - "integrity": "sha1-L9w1dvIykDNYl26znaeDIT/5Uj8=" - }, - "ethereumjs-tx": { - "version": "1.3.7", - "resolved": "https://registry.npmjs.org/ethereumjs-tx/-/ethereumjs-tx-1.3.7.tgz", - "integrity": "sha512-wvLMxzt1RPhAQ9Yi3/HKZTn0FZYpnsmQdbKYfUUpi4j1SEIcbkd9tndVjcPrufY3V7j2IebOpC00Zp2P/Ay2kA==", - "requires": { - "ethereum-common": "^0.0.18", - "ethereumjs-util": "^5.0.0" - } - }, - "ethereumjs-util": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", - "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", - "requires": { - "bn.js": "^4.11.0", - "create-hash": "^1.1.2", - "elliptic": "^6.5.2", - "ethereum-cryptography": "^0.1.3", - "ethjs-util": "^0.1.3", - "rlp": "^2.0.0", - "safe-buffer": "^5.1.1" - } - }, - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" - } - } - }, - "@trufflesuite/eth-sig-util": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/@trufflesuite/eth-sig-util/-/eth-sig-util-1.4.2.tgz", - "integrity": "sha512-+GyfN6b0LNW77hbQlH3ufZ/1eCON7mMrGym6tdYf7xiNw9Vv3jBO72bmmos1EId2NgBvPMhmYYm6DSLQFTmzrA==", - "requires": { - "ethereumjs-abi": "^0.6.8", - "ethereumjs-util": "^5.1.1" - }, - "dependencies": { - "ethereumjs-util": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", - "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", - "requires": { - "bn.js": "^4.11.0", - "create-hash": "^1.1.2", - "elliptic": "^6.5.2", - "ethereum-cryptography": "^0.1.3", - "ethjs-util": "^0.1.3", - "rlp": "^2.0.0", - "safe-buffer": "^5.1.1" - } - } - } - }, - "@trufflesuite/spinnies": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@trufflesuite/spinnies/-/spinnies-0.1.1.tgz", - "integrity": "sha512-jltEtmFJj6xmQqr85gP8OqBHCEiId+zw+uAsb3DyLLRD17O6sySW6Afa2Z/jpzSafj+32ssDfLJ+c0of1NLqcA==", - "dev": true, - "optional": true, - "requires": { - "chalk": "^4.1.2", - "cli-cursor": "^3.1.0", - "strip-ansi": "^6.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "optional": true - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "optional": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "optional": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "optional": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true, - "optional": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "optional": true - }, - "strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "optional": true, - "requires": { - "ansi-regex": "^5.0.1" - } - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "optional": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "@trufflesuite/web3-provider-engine": { - "version": "15.0.14", - "resolved": "https://registry.npmjs.org/@trufflesuite/web3-provider-engine/-/web3-provider-engine-15.0.14.tgz", - "integrity": "sha512-6/LoWvNMxYf0oaYzJldK2a9AdnkAdIeJhHW4nuUBAeO29eK9xezEaEYQ0ph1QRTaICxGxvn+1Azp4u8bQ8NEZw==", - "dev": true, - "requires": { - "@ethereumjs/tx": "^3.3.0", - "@trufflesuite/eth-json-rpc-filters": "^4.1.2-1", - "@trufflesuite/eth-json-rpc-infura": "^4.0.3-0", - "@trufflesuite/eth-json-rpc-middleware": "^4.4.2-1", - "@trufflesuite/eth-sig-util": "^1.4.2", - "async": "^2.5.0", - "backoff": "^2.5.0", - "clone": "^2.0.0", - "cross-fetch": "^2.1.0", - "eth-block-tracker": "^4.4.2", - "eth-json-rpc-errors": "^2.0.2", - "ethereumjs-block": "^1.2.2", - "ethereumjs-util": "^5.1.5", - "ethereumjs-vm": "^2.3.4", - "json-stable-stringify": "^1.0.1", - "promise-to-callback": "^1.0.0", - "readable-stream": "^2.2.9", - "request": "^2.85.0", - "semaphore": "^1.0.3", - "ws": "^5.1.1", - "xhr": "^2.2.0", - "xtend": "^4.0.1" - }, - "dependencies": { - "ethereumjs-util": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", - "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", - "dev": true, - "requires": { - "bn.js": "^4.11.0", - "create-hash": "^1.1.2", - "elliptic": "^6.5.2", - "ethereum-cryptography": "^0.1.3", - "ethjs-util": "^0.1.3", - "rlp": "^2.0.0", - "safe-buffer": "^5.1.1" - } - }, - "ws": { - "version": "5.2.3", - "resolved": "https://registry.npmjs.org/ws/-/ws-5.2.3.tgz", - "integrity": "sha512-jZArVERrMsKUatIdnLzqvcfydI85dvd/Fp1u/VOpfdDWQ4c9qWXe+VIeAbQ5FrDwciAkr+lzofXLz3Kuf26AOA==", - "dev": true, - "requires": { - "async-limiter": "~1.0.0" - } - } - } - }, - "@tsconfig/node10": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.9.tgz", - "integrity": "sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==", - "dev": true - }, - "@tsconfig/node12": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz", - "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==", - "dev": true - }, - "@tsconfig/node14": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz", - "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==", - "dev": true - }, - "@tsconfig/node16": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.4.tgz", - "integrity": "sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==", - "dev": true - }, - "@typechain/ethers-v5": { - "version": "10.2.0", - "resolved": "https://registry.npmjs.org/@typechain/ethers-v5/-/ethers-v5-10.2.0.tgz", - "integrity": "sha512-ikaq0N/w9fABM+G01OFmU3U3dNnyRwEahkdvi9mqy1a3XwKiPZaF/lu54OcNaEWnpvEYyhhS0N7buCtLQqC92w==", - "requires": { - "lodash": "^4.17.15", - "ts-essentials": "^7.0.1" - }, - "dependencies": { - "ts-essentials": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/ts-essentials/-/ts-essentials-7.0.3.tgz", - "integrity": "sha512-8+gr5+lqO3G84KdiTSMRLtuyJ+nTBVRKuCrK4lidMPdVeEp0uqC875uE5NMcaA7YYMN7XsNiFQuMvasF8HT/xQ==", - "requires": {} - } - } - }, - "@types/accepts": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/@types/accepts/-/accepts-1.3.5.tgz", - "integrity": "sha512-jOdnI/3qTpHABjM5cx1Hc0sKsPoYCp+DP/GJRGtDlPd7fiV9oXGGIcjW/ZOxLIvjGz8MA+uMZI9metHlgqbgwQ==", - "dev": true, - "optional": true, - "requires": { - "@types/node": "*" - } - }, - "@types/bn.js": { - "version": "4.11.6", - "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-4.11.6.tgz", - "integrity": "sha512-pqr857jrp2kPuO9uRjZ3PwnJTjoQy+fcdxvBTvHm6dkmEL9q+hDD/2j/0ELOBPtPnS8LjCX0gI9nbl8lVkadpg==", - "requires": { - "@types/node": "*" - } - }, - "@types/body-parser": { - "version": "1.19.2", - "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.2.tgz", - "integrity": "sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==", - "dev": true, - "optional": true, - "requires": { - "@types/connect": "*", - "@types/node": "*" - } - }, - "@types/cacheable-request": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/@types/cacheable-request/-/cacheable-request-6.0.3.tgz", - "integrity": "sha512-IQ3EbTzGxIigb1I3qPZc1rWJnH0BmSKv5QYTalEwweFvyBDLSAe24zP0le/hyi7ecGfZVlIVAg4BZqb8WBwKqw==", - "dev": true, - "requires": { - "@types/http-cache-semantics": "*", - "@types/keyv": "^3.1.4", - "@types/node": "*", - "@types/responselike": "^1.0.0" - } - }, - "@types/cbor": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@types/cbor/-/cbor-2.0.0.tgz", - "integrity": "sha1-xievwu4i8j8jN/7LNGKKT5fGr7s=", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "@types/color-name": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz", - "integrity": "sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==", - "dev": true - }, - "@types/connect": { - "version": "3.4.35", - "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz", - "integrity": "sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==", - "dev": true, - "optional": true, - "requires": { - "@types/node": "*" - } - }, - "@types/cors": { - "version": "2.8.12", - "resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.12.tgz", - "integrity": "sha512-vt+kDhq/M2ayberEtJcIN/hxXy1Pk+59g2FV/ZQceeaTyCtCucjL2Q7FXlFjtWn4n15KCr1NE2lNNFhp0lEThw==", - "dev": true, - "optional": true - }, - "@types/express": { - "version": "4.17.14", - "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.14.tgz", - "integrity": "sha512-TEbt+vaPFQ+xpxFLFssxUDXj5cWCxZJjIcB7Yg0k0GMHGtgtQgpvx/MUQUeAkNbA9AAGrwkAsoeItdTgS7FMyg==", - "dev": true, - "optional": true, - "requires": { - "@types/body-parser": "*", - "@types/express-serve-static-core": "^4.17.18", - "@types/qs": "*", - "@types/serve-static": "*" - } - }, - "@types/express-serve-static-core": { - "version": "4.17.34", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.34.tgz", - "integrity": "sha512-fvr49XlCGoUj2Pp730AItckfjat4WNb0lb3kfrLWffd+RLeoGAMsq7UOy04PAPtoL01uKwcp6u8nhzpgpDYr3w==", - "dev": true, - "optional": true, - "requires": { - "@types/node": "*", - "@types/qs": "*", - "@types/range-parser": "*", - "@types/send": "*" - } - }, - "@types/fs-extra": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-7.0.0.tgz", - "integrity": "sha512-ndoMMbGyuToTy4qB6Lex/inR98nPiNHacsgMPvy+zqMLgSxbt8VtWpDArpGp69h1fEDQHn1KB+9DWD++wgbwYA==", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "@types/http-cache-semantics": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.1.tgz", - "integrity": "sha512-SZs7ekbP8CN0txVG2xVRH6EgKmEm31BOxA07vkFaETzZz1xh+cbt8BcI0slpymvwhx5dlFnQG2rTlPVQn+iRPQ==", - "dev": true - }, - "@types/keyv": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/@types/keyv/-/keyv-3.1.4.tgz", - "integrity": "sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "@types/long": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/@types/long/-/long-4.0.2.tgz", - "integrity": "sha512-MqTGEo5bj5t157U6fA/BiDynNkn0YknVdh48CMPkTSpFTVmvao5UQmm7uEF6xBEo7qIMAlY/JSleYaE6VOdpaA==", - "dev": true - }, - "@types/mime": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.2.tgz", - "integrity": "sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw==", - "dev": true, - "optional": true - }, - "@types/mkdirp": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/@types/mkdirp/-/mkdirp-0.5.2.tgz", - "integrity": "sha512-U5icWpv7YnZYGsN4/cmh3WD2onMY0aJIiTE6+51TwJCttdHvtCYmkBNOobHlXwrJRL0nkH9jH4kD+1FAdMN4Tg==", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "@types/node": { - "version": "18.15.11", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.15.11.tgz", - "integrity": "sha512-E5Kwq2n4SbMzQOn6wnmBjuK9ouqlURrcZDVfbo9ftDDTFt3nk7ZKK4GMOzoYgnpQJKcxwQw+lGaBvvlMo0qN/Q==" - }, - "@types/npm": { - "version": "2.0.31", - "resolved": "https://registry.npmjs.org/@types/npm/-/npm-2.0.31.tgz", - "integrity": "sha512-v4JpUx83wVGItleYsnYeZrM8NTLSnYDfTE/iGm4owy6zZPNFNmnsvvrxiYtG3cVHt/XutzTjUBQ9Bh8bnvEkCw==", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "@types/pbkdf2": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@types/pbkdf2/-/pbkdf2-3.1.0.tgz", - "integrity": "sha512-Cf63Rv7jCQ0LaL8tNXmEyqTHuIJxRdlS5vMh1mj5voN4+QFhVZnlZruezqpWYDiJ8UTzhP0VmeLXCmBk66YrMQ==", - "requires": { - "@types/node": "*" - } - }, - "@types/prettier": { - "version": "1.19.1", - "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-1.19.1.tgz", - "integrity": "sha512-5qOlnZscTn4xxM5MeGXAMOsIOIKIbh9e85zJWfBRVPlRMEVawzoPhINYbRGkBZCI8LxvBe7tJCdWiarA99OZfQ==", - "dev": true - }, - "@types/qs": { - "version": "6.9.7", - "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.7.tgz", - "integrity": "sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==", - "dev": true, - "optional": true - }, - "@types/range-parser": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.4.tgz", - "integrity": "sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==", - "dev": true, - "optional": true - }, - "@types/resolve": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-0.0.8.tgz", - "integrity": "sha512-auApPaJf3NPfe18hSoJkp8EbZzer2ISk7o8mCC3M9he/a04+gbMF97NkpD2S8riMGvm4BMRI59/SZQSaLTKpsQ==", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "@types/responselike": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@types/responselike/-/responselike-1.0.0.tgz", - "integrity": "sha512-85Y2BjiufFzaMIlvJDvTTB8Fxl2xfLo4HgmHzVBz08w4wDePCTjYw66PdrolO0kzli3yam/YCgRufyo1DdQVTA==", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "@types/secp256k1": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@types/secp256k1/-/secp256k1-4.0.1.tgz", - "integrity": "sha512-+ZjSA8ELlOp8SlKi0YLB2tz9d5iPNEmOBd+8Rz21wTMdaXQIa9b6TEnD6l5qKOCypE7FSyPyck12qZJxSDNoog==", - "requires": { - "@types/node": "*" - } - }, - "@types/semver": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/@types/semver/-/semver-5.5.0.tgz", - "integrity": "sha512-41qEJgBH/TWgo5NFSvBCJ1qkoi3Q6ONSF2avrHq1LVEZfYpdHmj0y9SuTK+u9ZhG1sYQKBL1AWXKyLWP4RaUoQ==", - "dev": true - }, - "@types/send": { - "version": "0.17.1", - "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.1.tgz", - "integrity": "sha512-Cwo8LE/0rnvX7kIIa3QHCkcuF21c05Ayb0ZfxPiv0W8VRiZiNW/WuRupHKpqqGVGf7SUA44QSOUKaEd9lIrd/Q==", - "dev": true, - "optional": true, - "requires": { - "@types/mime": "^1", - "@types/node": "*" - } - }, - "@types/serve-static": { - "version": "1.15.1", - "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.1.tgz", - "integrity": "sha512-NUo5XNiAdULrJENtJXZZ3fHtfMolzZwczzBbnAeBbqBwG+LaG6YaJtuwzwGSQZ2wsCrxjEhNNjAkKigy3n8teQ==", - "dev": true, - "optional": true, - "requires": { - "@types/mime": "*", - "@types/node": "*" - } - }, - "@ungap/promise-all-settled": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@ungap/promise-all-settled/-/promise-all-settled-1.1.2.tgz", - "integrity": "sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q==" - }, - "@web3-js/scrypt-shim": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/@web3-js/scrypt-shim/-/scrypt-shim-0.1.0.tgz", - "integrity": "sha512-ZtZeWCc/s0nMcdx/+rZwY1EcuRdemOK9ag21ty9UsHkFxsNb/AaoucUz0iPuyGe0Ku+PFuRmWZG7Z7462p9xPw==", - "requires": { - "scryptsy": "^2.1.0", - "semver": "^6.3.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" - } - } - }, - "@webassemblyjs/helper-code-frame": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.9.0.tgz", - "integrity": "sha512-ERCYdJBkD9Vu4vtjUYe8LZruWuNIToYq/ME22igL+2vj2dQ2OOujIZr3MEFvfEaqKoVqpsFKAGsRdBSBjrIvZA==", - "requires": { - "@webassemblyjs/wast-printer": "1.9.0" - }, - "dependencies": { - "@webassemblyjs/ast": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.9.0.tgz", - "integrity": "sha512-C6wW5L+b7ogSDVqymbkkvuW9kruN//YisMED04xzeBBqjHa2FYnmvOlS6Xj68xWQRgWvI9cIglsjFowH/RJyEA==", - "requires": { - "@webassemblyjs/helper-module-context": "1.9.0", - "@webassemblyjs/helper-wasm-bytecode": "1.9.0", - "@webassemblyjs/wast-parser": "1.9.0" - } - }, - "@webassemblyjs/helper-wasm-bytecode": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.9.0.tgz", - "integrity": "sha512-R7FStIzyNcd7xKxCZH5lE0Bqy+hGTwS3LJjuv1ZVxd9O7eHCedSdrId/hMOd20I+v8wDXEn+bjfKDLzTepoaUw==" - }, - "@webassemblyjs/wast-printer": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.9.0.tgz", - "integrity": "sha512-2J0nE95rHXHyQ24cWjMKJ1tqB/ds8z/cyeOZxJhcb+rW+SQASVjuznUSmdz5GpVJTzU8JkhYut0D3siFDD6wsA==", - "requires": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/wast-parser": "1.9.0", - "@xtuc/long": "4.2.2" - } - } - } - }, - "@webassemblyjs/helper-fsm": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-fsm/-/helper-fsm-1.9.0.tgz", - "integrity": "sha512-OPRowhGbshCb5PxJ8LocpdX9Kl0uB4XsAjl6jH/dWKlk/mzsANvhwbiULsaiqT5GZGT9qinTICdj6PLuM5gslw==" - }, - "@webassemblyjs/helper-module-context": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-module-context/-/helper-module-context-1.9.0.tgz", - "integrity": "sha512-MJCW8iGC08tMk2enck1aPW+BE5Cw8/7ph/VGZxwyvGbJwjktKkDK7vy7gAmMDx88D7mhDTCNKAW5tED+gZ0W8g==", - "requires": { - "@webassemblyjs/ast": "1.9.0" - }, - "dependencies": { - "@webassemblyjs/ast": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.9.0.tgz", - "integrity": "sha512-C6wW5L+b7ogSDVqymbkkvuW9kruN//YisMED04xzeBBqjHa2FYnmvOlS6Xj68xWQRgWvI9cIglsjFowH/RJyEA==", - "requires": { - "@webassemblyjs/helper-module-context": "1.9.0", - "@webassemblyjs/helper-wasm-bytecode": "1.9.0", - "@webassemblyjs/wast-parser": "1.9.0" - } - }, - "@webassemblyjs/helper-wasm-bytecode": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.9.0.tgz", - "integrity": "sha512-R7FStIzyNcd7xKxCZH5lE0Bqy+hGTwS3LJjuv1ZVxd9O7eHCedSdrId/hMOd20I+v8wDXEn+bjfKDLzTepoaUw==" - } - } - }, - "@webassemblyjs/wast-parser": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-parser/-/wast-parser-1.9.0.tgz", - "integrity": "sha512-qsqSAP3QQ3LyZjNC/0jBJ/ToSxfYJ8kYyuiGvtn/8MK89VrNEfwj7BPQzJVHi0jGTRK2dGdJ5PRqhtjzoww+bw==", - "requires": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/floating-point-hex-parser": "1.9.0", - "@webassemblyjs/helper-api-error": "1.9.0", - "@webassemblyjs/helper-code-frame": "1.9.0", - "@webassemblyjs/helper-fsm": "1.9.0", - "@xtuc/long": "4.2.2" - }, - "dependencies": { - "@webassemblyjs/ast": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.9.0.tgz", - "integrity": "sha512-C6wW5L+b7ogSDVqymbkkvuW9kruN//YisMED04xzeBBqjHa2FYnmvOlS6Xj68xWQRgWvI9cIglsjFowH/RJyEA==", - "requires": { - "@webassemblyjs/helper-module-context": "1.9.0", - "@webassemblyjs/helper-wasm-bytecode": "1.9.0", - "@webassemblyjs/wast-parser": "1.9.0" - } - }, - "@webassemblyjs/floating-point-hex-parser": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.9.0.tgz", - "integrity": "sha512-TG5qcFsS8QB4g4MhrxK5TqfdNe7Ey/7YL/xN+36rRjl/BlGE/NcBvJcqsRgCP6Z92mRE+7N50pRIi8SmKUbcQA==" - }, - "@webassemblyjs/helper-api-error": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.9.0.tgz", - "integrity": "sha512-NcMLjoFMXpsASZFxJ5h2HZRcEhDkvnNFOAKneP5RbKRzaWJN36NC4jqQHKwStIhGXu5mUWlUUk7ygdtrO8lbmw==" - }, - "@webassemblyjs/helper-wasm-bytecode": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.9.0.tgz", - "integrity": "sha512-R7FStIzyNcd7xKxCZH5lE0Bqy+hGTwS3LJjuv1ZVxd9O7eHCedSdrId/hMOd20I+v8wDXEn+bjfKDLzTepoaUw==" - } - } - }, - "@xtuc/ieee754": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", - "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==" - }, - "@xtuc/long": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", - "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==" - }, - "abort-controller": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", - "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", - "requires": { - "event-target-shim": "^5.0.0" - } - }, - "abortcontroller-polyfill": { - "version": "1.7.5", - "resolved": "https://registry.npmjs.org/abortcontroller-polyfill/-/abortcontroller-polyfill-1.7.5.tgz", - "integrity": "sha512-JMJ5soJWP18htbbxJjG7bG6yuI6pRhgJ0scHHTfkUjf6wjP912xZWvM+A4sJK3gqd9E8fcPbDnOefbA9Th/FIQ==", - "dev": true - }, - "abstract-leveldown": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-2.6.3.tgz", - "integrity": "sha512-2++wDf/DYqkPR3o5tbfdhF96EfMApo1GpPfzOsR/ZYXdkSmELlvOOEAl9iKkRsktMPHdGjO4rtkBpf2I7TiTeA==", - "requires": { - "xtend": "~4.0.0" - } - }, - "accepts": { - "version": "1.3.7", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", - "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", - "dev": true, - "requires": { - "mime-types": "~2.1.24", - "negotiator": "0.6.2" - } - }, - "acorn": { - "version": "7.4.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.0.tgz", - "integrity": "sha512-+G7P8jJmCHr+S+cLfQxygbWhXy+8YTVGzAkpEbcLo2mLoL7tij/VG41QSHACSf5QgYRhMZYHuNc6drJaO0Da+w==", - "dev": true - }, - "acorn-jsx": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.2.0.tgz", - "integrity": "sha512-HiUX/+K2YpkpJ+SzBffkM/AQ2YE03S0U1kjTLVpoJdhZMOWy8qvXVN9JdLqv2QsaQ6MPYQIuNmwD8zOiYUofLQ==", - "dev": true - }, - "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 - }, - "aes-js": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/aes-js/-/aes-js-3.0.0.tgz", - "integrity": "sha1-4h3xCtbCBTKVvLuNq0Cwnb6ofk0=" - }, - "ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "ajv-errors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/ajv-errors/-/ajv-errors-1.0.1.tgz", - "integrity": "sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ==", - "requires": {} - }, - "ajv-formats": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", - "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", - "dev": true, - "optional": true, - "requires": { - "ajv": "^8.0.0" - }, - "dependencies": { - "ajv": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", - "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", - "dev": true, - "optional": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - } - }, - "json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true, - "optional": true - } - } - }, - "ajv-keywords": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", - "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "requires": {} - }, - "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==" - }, - "ansi-escapes": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz", - "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==", - "dev": true - }, - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==" - }, - "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==", - "requires": { - "color-convert": "^1.9.0" - } - }, - "antlr4ts": { - "version": "0.5.0-alpha.4", - "resolved": "https://registry.npmjs.org/antlr4ts/-/antlr4ts-0.5.0-alpha.4.tgz", - "integrity": "sha512-WPQDt1B74OfPv/IMS2ekXAKkTZIHl88uMetg6q3OTqgFxZ/dxDXI0EWLyZid/1Pe6hTftyg5N7gel5wNAGxXyQ==", - "dev": true - }, - "any-promise": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", - "integrity": "sha1-q8av7tzqUugJzcA3au0845Y10X8=" - }, - "anymatch": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", - "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", - "requires": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - } - }, - "apollo-datasource": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/apollo-datasource/-/apollo-datasource-3.3.2.tgz", - "integrity": "sha512-L5TiS8E2Hn/Yz7SSnWIVbZw0ZfEIXZCa5VUiVxD9P53JvSrf4aStvsFDlGWPvpIdCR+aly2CfoB79B9/JjKFqg==", - "dev": true, - "optional": true, - "requires": { - "@apollo/utils.keyvaluecache": "^1.0.1", - "apollo-server-env": "^4.2.1" - } - }, - "apollo-reporting-protobuf": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/apollo-reporting-protobuf/-/apollo-reporting-protobuf-3.4.0.tgz", - "integrity": "sha512-h0u3EbC/9RpihWOmcSsvTW2O6RXVaD/mPEjfrPkxRPTEPWqncsgOoRJw+wih4OqfH3PvTJvoEIf4LwKrUaqWog==", - "dev": true, - "optional": true, - "requires": { - "@apollo/protobufjs": "1.2.6" - }, - "dependencies": { - "@apollo/protobufjs": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/@apollo/protobufjs/-/protobufjs-1.2.6.tgz", - "integrity": "sha512-Wqo1oSHNUj/jxmsVp4iR3I480p6qdqHikn38lKrFhfzcDJ7lwd7Ck7cHRl4JE81tWNArl77xhnG/OkZhxKBYOw==", - "dev": true, - "optional": true, - "requires": { - "@protobufjs/aspromise": "^1.1.2", - "@protobufjs/base64": "^1.1.2", - "@protobufjs/codegen": "^2.0.4", - "@protobufjs/eventemitter": "^1.1.0", - "@protobufjs/fetch": "^1.1.0", - "@protobufjs/float": "^1.0.2", - "@protobufjs/inquire": "^1.1.0", - "@protobufjs/path": "^1.1.2", - "@protobufjs/pool": "^1.1.0", - "@protobufjs/utf8": "^1.1.0", - "@types/long": "^4.0.0", - "@types/node": "^10.1.0", - "long": "^4.0.0" - } - }, - "@types/node": { - "version": "10.17.60", - "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.60.tgz", - "integrity": "sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw==", - "dev": true, - "optional": true - } - } - }, - "apollo-server": { - "version": "3.12.0", - "resolved": "https://registry.npmjs.org/apollo-server/-/apollo-server-3.12.0.tgz", - "integrity": "sha512-wZHLgBoIdGxr/YpPTG5RwNnS+B2y70T/nCegCnU6Yl+H3PXB92OIguLMhdJIZVjukIOhiQT12dNIehqLQ+1hMQ==", - "dev": true, - "optional": true, - "requires": { - "@types/express": "4.17.14", - "apollo-server-core": "^3.12.0", - "apollo-server-express": "^3.12.0", - "express": "^4.17.1" - } - }, - "apollo-server-core": { - "version": "3.12.0", - "resolved": "https://registry.npmjs.org/apollo-server-core/-/apollo-server-core-3.12.0.tgz", - "integrity": "sha512-hq7iH6Cgldgmnjs9FVSZeKWRpi0/ZR+iJ1arzeD2VXGxxgk1mAm/cz1Tx0TYgegZI+FvvrRl0UhKEx7sLnIxIg==", - "dev": true, - "optional": true, - "requires": { - "@apollo/utils.keyvaluecache": "^1.0.1", - "@apollo/utils.logger": "^1.0.0", - "@apollo/utils.usagereporting": "^1.0.0", - "@apollographql/apollo-tools": "^0.5.3", - "@apollographql/graphql-playground-html": "1.6.29", - "@graphql-tools/mock": "^8.1.2", - "@graphql-tools/schema": "^8.0.0", - "@josephg/resolvable": "^1.0.0", - "apollo-datasource": "^3.3.2", - "apollo-reporting-protobuf": "^3.4.0", - "apollo-server-env": "^4.2.1", - "apollo-server-errors": "^3.3.1", - "apollo-server-plugin-base": "^3.7.2", - "apollo-server-types": "^3.8.0", - "async-retry": "^1.2.1", - "fast-json-stable-stringify": "^2.1.0", - "graphql-tag": "^2.11.0", - "loglevel": "^1.6.8", - "lru-cache": "^6.0.0", - "node-abort-controller": "^3.0.1", - "sha.js": "^2.4.11", - "uuid": "^9.0.0", - "whatwg-mimetype": "^3.0.0" - }, - "dependencies": { - "uuid": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.0.tgz", - "integrity": "sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg==", - "dev": true, - "optional": true - } - } - }, - "apollo-server-env": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/apollo-server-env/-/apollo-server-env-4.2.1.tgz", - "integrity": "sha512-vm/7c7ld+zFMxibzqZ7SSa5tBENc4B0uye9LTfjJwGoQFY5xsUPH5FpO5j0bMUDZ8YYNbrF9SNtzc5Cngcr90g==", - "dev": true, - "optional": true, - "requires": { - "node-fetch": "^2.6.7" - }, - "dependencies": { - "node-fetch": { - "version": "2.6.11", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.11.tgz", - "integrity": "sha512-4I6pdBY1EthSqDmJkiNk3JIT8cswwR9nfeW/cPdUagJYEQG7R95WRH74wpz7ma8Gh/9dI9FP+OU+0E4FvtA55w==", - "dev": true, - "optional": true, - "requires": { - "whatwg-url": "^5.0.0" - } - } - } - }, - "apollo-server-errors": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/apollo-server-errors/-/apollo-server-errors-3.3.1.tgz", - "integrity": "sha512-xnZJ5QWs6FixHICXHxUfm+ZWqqxrNuPlQ+kj5m6RtEgIpekOPssH/SD9gf2B4HuWV0QozorrygwZnux8POvyPA==", - "dev": true, - "optional": true, - "requires": {} - }, - "apollo-server-express": { - "version": "3.12.0", - "resolved": "https://registry.npmjs.org/apollo-server-express/-/apollo-server-express-3.12.0.tgz", - "integrity": "sha512-m8FaGPUfDOEGSm7QRWRmUUGjG/vqvpQoorkId9/FXkC57fz/A59kEdrzkMt9538Xgsa5AV+X4MEWLJhTvlW3LQ==", - "dev": true, - "optional": true, - "requires": { - "@types/accepts": "^1.3.5", - "@types/body-parser": "1.19.2", - "@types/cors": "2.8.12", - "@types/express": "4.17.14", - "@types/express-serve-static-core": "4.17.31", - "accepts": "^1.3.5", - "apollo-server-core": "^3.12.0", - "apollo-server-types": "^3.8.0", - "body-parser": "^1.19.0", - "cors": "^2.8.5", - "parseurl": "^1.3.3" - }, - "dependencies": { - "@types/express-serve-static-core": { - "version": "4.17.31", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.31.tgz", - "integrity": "sha512-DxMhY+NAsTwMMFHBTtJFNp5qiHKJ7TeqOo23zVEM9alT1Ml27Q3xcTH0xwxn7Q0BbMcVEJOs/7aQtUWupUQN3Q==", - "dev": true, - "optional": true, - "requires": { - "@types/node": "*", - "@types/qs": "*", - "@types/range-parser": "*" - } - } - } - }, - "apollo-server-plugin-base": { - "version": "3.7.2", - "resolved": "https://registry.npmjs.org/apollo-server-plugin-base/-/apollo-server-plugin-base-3.7.2.tgz", - "integrity": "sha512-wE8dwGDvBOGehSsPTRZ8P/33Jan6/PmL0y0aN/1Z5a5GcbFhDaaJCjK5cav6npbbGL2DPKK0r6MPXi3k3N45aw==", - "dev": true, - "optional": true, - "requires": { - "apollo-server-types": "^3.8.0" - } - }, - "apollo-server-types": { - "version": "3.8.0", - "resolved": "https://registry.npmjs.org/apollo-server-types/-/apollo-server-types-3.8.0.tgz", - "integrity": "sha512-ZI/8rTE4ww8BHktsVpb91Sdq7Cb71rdSkXELSwdSR0eXu600/sY+1UXhTWdiJvk+Eq5ljqoHLwLbY2+Clq2b9A==", - "dev": true, - "optional": true, - "requires": { - "@apollo/utils.keyvaluecache": "^1.0.1", - "@apollo/utils.logger": "^1.0.0", - "apollo-reporting-protobuf": "^3.4.0", - "apollo-server-env": "^4.2.1" - } - }, - "app-module-path": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/app-module-path/-/app-module-path-2.2.0.tgz", - "integrity": "sha1-ZBqlXft9am8KgUHEucCqULbCTdU=", - "dev": true - }, - "aproba": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", - "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==" - }, - "arg": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", - "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", - "dev": true - }, - "argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dev": true, - "requires": { - "sprintf-js": "~1.0.2" - } - }, - "argsarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/argsarray/-/argsarray-0.0.1.tgz", - "integrity": "sha512-u96dg2GcAKtpTrBdDoFIM7PjcBA+6rSP0OR94MOReNRyUECL6MtQt5XXmRr4qrftYaef9+l5hcpO5te7sML1Cg==", - "dev": true, - "optional": true - }, - "arr-diff": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=" - }, - "arr-flatten": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", - "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==" - }, - "arr-union": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", - "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=" - }, - "array-back": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-3.1.0.tgz", - "integrity": "sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q==" - }, - "array-filter": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/array-filter/-/array-filter-1.0.0.tgz", - "integrity": "sha1-uveeYubvTCpMC4MSMtr/7CUfnYM=", - "dev": true - }, - "array-flatten": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", - "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=", - "dev": true - }, - "array-unique": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=" - }, - "asn1": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", - "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", - "requires": { - "safer-buffer": "~2.1.0" - } - }, - "asn1.js": { - "version": "4.10.1", - "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.10.1.tgz", - "integrity": "sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==", - "requires": { - "bn.js": "^4.0.0", - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0" - } - }, - "assert": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/assert/-/assert-1.5.0.tgz", - "integrity": "sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA==", - "requires": { - "object-assign": "^4.1.1", - "util": "0.10.3" - }, - "dependencies": { - "inherits": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", - "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=" - }, - "util": { - "version": "0.10.3", - "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", - "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", - "requires": { - "inherits": "2.0.1" - } - } - } - }, - "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" - }, - "assertion-error": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", - "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==" - }, - "assign-symbols": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", - "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=" - }, - "astral-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz", - "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==", - "dev": true - }, - "async": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", - "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", - "requires": { - "lodash": "^4.17.14" - } - }, - "async-each": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz", - "integrity": "sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==", - "optional": true - }, - "async-eventemitter": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/async-eventemitter/-/async-eventemitter-0.2.4.tgz", - "integrity": "sha512-pd20BwL7Yt1zwDFy+8MX8F1+WCT8aQeKj0kQnTrH9WaeRETlRamVhD0JtRPmrV4GfOJ2F9CvdQkZeZhnh2TuHw==", - "requires": { - "async": "^2.4.0" - } - }, - "async-iterator-to-pull-stream": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/async-iterator-to-pull-stream/-/async-iterator-to-pull-stream-1.3.0.tgz", - "integrity": "sha512-NjyhAEz/sx32olqgKIk/2xbWEM6o8qef1yetIgb0U/R3oBgndP1kE/0CslowH3jvnA94BO4I6OXpOkTKH7Z1AA==", - "requires": { - "get-iterator": "^1.0.2", - "pull-stream-to-async-iterator": "^1.0.1" - } - }, - "async-limiter": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz", - "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==" - }, - "async-retry": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/async-retry/-/async-retry-1.3.3.tgz", - "integrity": "sha512-wfr/jstw9xNi/0teMHrRW7dsz3Lt5ARhYNZ2ewpadnhaIp5mbALhOAP+EAdsC7t4Z6wqsDVv9+W6gm1Dk9mEyw==", - "dev": true, - "optional": true, - "requires": { - "retry": "0.13.1" - } - }, - "asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" - }, - "at-least-node": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", - "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", - "dev": true, - "optional": true - }, - "atob": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", - "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==" - }, - "atomically": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/atomically/-/atomically-1.7.0.tgz", - "integrity": "sha512-Xcz9l0z7y9yQ9rdDaxlmaI4uJHf/T8g9hOEzJcsEqX2SjCj4J20uK7+ldkDHMbpJDK76wF7xEIgxc/vSlsfw5w==", - "dev": true, - "optional": true - }, - "available-typed-arrays": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.2.tgz", - "integrity": "sha512-XWX3OX8Onv97LMk/ftVyBibpGwY5a8SmuxZPzeOxqmuEqUCOM9ZE+uIaD1VNJ5QnvU2UQusvmKbuM1FR8QWGfQ==", - "dev": true, - "requires": { - "array-filter": "^1.0.0" - } - }, - "await-semaphore": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/await-semaphore/-/await-semaphore-0.1.3.tgz", - "integrity": "sha512-d1W2aNSYcz/sxYO4pMGX9vq65qOTu0P800epMud+6cYYX0QcT7zyqcxec3VWzpgvdXo57UWmVbZpLMjX2m1I7Q==" - }, - "aws-sign2": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", - "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=" - }, - "aws4": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.10.0.tgz", - "integrity": "sha512-3YDiu347mtVtjpyV3u5kVqQLP242c06zwDOgpeRnybmXlYYsLbtTrUBUm8i8srONt+FWobl5aibnU1030PeeuA==" - }, - "axios": { - "version": "0.18.1", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.18.1.tgz", - "integrity": "sha512-0BfJq4NSfQXd+SkFdrvFbG7addhYSBA2mQwISr46pD6E5iqkWg02RAs8vyTT/j0RTnoYmeXauBuSv1qKwR179g==", - "dev": true, - "requires": { - "follow-redirects": "1.5.10", - "is-buffer": "^2.0.2" - } - }, - "babel-plugin-polyfill-corejs2": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.0.tgz", - "integrity": "sha512-wMDoBJ6uG4u4PNFh72Ty6t3EgfA91puCuAwKIazbQlci+ENb/UU9A3xG5lutjUIiXCIn1CY5L15r9LimiJyrSA==", - "requires": { - "@babel/compat-data": "^7.13.11", - "@babel/helper-define-polyfill-provider": "^0.3.0", - "semver": "^6.1.1" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" - } - } - }, - "babel-plugin-polyfill-corejs3": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.5.0.tgz", - "integrity": "sha512-Hcrgnmkf+4JTj73GbK3bBhlVPiLL47owUAnoJIf69Hakl3q+KfodbDXiZWGMM7iqCZTxCG3Z2VRfPNYES4rXqQ==", - "requires": { - "@babel/helper-define-polyfill-provider": "^0.3.0", - "core-js-compat": "^3.20.0" - } - }, - "babel-plugin-polyfill-regenerator": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.3.0.tgz", - "integrity": "sha512-dhAPTDLGoMW5/84wkgwiLRwMnio2i1fUe53EuvtKMv0pn2p3S8OCoV1xAzfJPl0KOX7IB89s2ib85vbYiea3jg==", - "requires": { - "@babel/helper-define-polyfill-provider": "^0.3.0" - } - }, - "backoff": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/backoff/-/backoff-2.5.0.tgz", - "integrity": "sha1-9hbtqdPktmuMp/ynn2lXIsX44m8=", - "requires": { - "precond": "0.2" - } - }, - "balanced-match": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" - }, - "base": { - "version": "0.11.2", - "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", - "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", - "requires": { - "cache-base": "^1.0.1", - "class-utils": "^0.3.5", - "component-emitter": "^1.2.1", - "define-property": "^1.0.0", - "isobject": "^3.0.1", - "mixin-deep": "^1.2.0", - "pascalcase": "^0.1.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "requires": { - "is-descriptor": "^1.0.0" - } - } - } - }, - "base-x": { - "version": "3.0.8", - "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.8.tgz", - "integrity": "sha512-Rl/1AWP4J/zRrk54hhlxH4drNxPJXYUaKffODVI53/dAsV4t9fBxyxYKAVPU1XBHxYwOWP9h9H0hM2MVw4YfJA==", - "requires": { - "safe-buffer": "^5.0.1" - } - }, - "base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==" - }, - "bcrypt-pbkdf": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", - "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", - "requires": { - "tweetnacl": "^0.14.3" - } - }, - "big.js": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", - "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==" - }, - "bignumber.js": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-8.1.1.tgz", - "integrity": "sha512-QD46ppGintwPGuL1KqmwhR0O+N2cZUg8JG/VzwI2e28sM9TqHjQB10lI4QAaMHVbLzwVLLAwEglpKPViWX+5NQ==", - "dev": true - }, - "binary-extensions": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.1.0.tgz", - "integrity": "sha512-1Yj8h9Q+QDF5FzhMs/c9+6UntbD5MkRfRwac8DoEm9ZfUBZ7tZ55YcGVAzEe4bXsdQHEk+s9S5wsOKVdZrw0tQ==" - }, - "bindings": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", - "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", - "requires": { - "file-uri-to-path": "1.0.0" - } - }, - "bip66": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/bip66/-/bip66-1.1.5.tgz", - "integrity": "sha1-AfqHSHhcpwlV1QESF9GzE5lpyiI=", - "requires": { - "safe-buffer": "^5.0.1" - } - }, - "bl": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/bl/-/bl-1.2.2.tgz", - "integrity": "sha512-e8tQYnZodmebYDWGH7KMRvtzKXaJHx3BbilrgZCfvyLUYdKpK1t5PSPmpkny/SgiTSCnjfLW7v5rlONXVFkQEA==", - "dev": true, - "requires": { - "readable-stream": "^2.3.5", - "safe-buffer": "^5.1.1" - } - }, - "blakejs": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/blakejs/-/blakejs-1.1.0.tgz", - "integrity": "sha1-ad+S75U6qIylGjLfarHFShVfx6U=" - }, - "bluebird": { - "version": "3.7.2", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", - "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==" - }, - "bn.js": { - "version": "4.11.9", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", - "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==" - }, - "body-parser": { - "version": "1.19.0", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz", - "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==", - "dev": true, - "requires": { - "bytes": "3.1.0", - "content-type": "~1.0.4", - "debug": "2.6.9", - "depd": "~1.1.2", - "http-errors": "1.7.2", - "iconv-lite": "0.4.24", - "on-finished": "~2.3.0", - "qs": "6.7.0", - "raw-body": "2.4.0", - "type-is": "~1.6.17" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "qs": { - "version": "6.7.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", - "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==", - "dev": true - } - } - }, - "boolbase": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", - "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=", - "dev": true - }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "requires": { - "fill-range": "^7.0.1" - } - }, - "brorand": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", - "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=" - }, - "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==" - }, - "browserify-aes": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", - "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", - "requires": { - "buffer-xor": "^1.0.3", - "cipher-base": "^1.0.0", - "create-hash": "^1.1.0", - "evp_bytestokey": "^1.0.3", - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "browserify-cipher": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", - "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", - "requires": { - "browserify-aes": "^1.0.4", - "browserify-des": "^1.0.0", - "evp_bytestokey": "^1.0.0" - } - }, - "browserify-des": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", - "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", - "requires": { - "cipher-base": "^1.0.1", - "des.js": "^1.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "browserify-rsa": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz", - "integrity": "sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ=", - "requires": { - "bn.js": "^4.1.0", - "randombytes": "^2.0.1" - } - }, - "browserify-sign": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.0.tgz", - "integrity": "sha512-hEZC1KEeYuoHRqhGhTy6gWrpJA3ZDjFWv0DE61643ZnOXAKJb3u7yWcrU0mMc9SwAqK1n7myPGndkp0dFG7NFA==", - "requires": { - "bn.js": "^5.1.1", - "browserify-rsa": "^4.0.1", - "create-hash": "^1.2.0", - "create-hmac": "^1.1.7", - "elliptic": "^6.5.2", - "inherits": "^2.0.4", - "parse-asn1": "^5.1.5", - "readable-stream": "^3.6.0", - "safe-buffer": "^5.2.0" - }, - "dependencies": { - "bn.js": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.1.2.tgz", - "integrity": "sha512-40rZaf3bUNKTVYu9sIeeEGOg7g14Yvnj9kH7b50EiwX0Q7A6umbvfI5tvHaOERH0XigqKkfLkFQxzb4e6CIXnA==" - }, - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - } - } - }, - "browserify-zlib": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", - "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", - "requires": { - "pako": "~1.0.5" - } - }, - "browserslist": { - "version": "4.19.1", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.19.1.tgz", - "integrity": "sha512-u2tbbG5PdKRTUoctO3NBD8FQ5HdPh1ZXPHzp1rwaa5jTc+RV9/+RlWiAIKmjRPQF+xbGM9Kklj5bZQFa2s/38A==", - "requires": { - "caniuse-lite": "^1.0.30001286", - "electron-to-chromium": "^1.4.17", - "escalade": "^3.1.1", - "node-releases": "^2.0.1", - "picocolors": "^1.0.0" - } - }, - "bs58": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz", - "integrity": "sha1-vhYedsNU9veIrkBx9j806MTwpCo=", - "requires": { - "base-x": "^3.0.2" - } - }, - "bs58check": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/bs58check/-/bs58check-2.1.2.tgz", - "integrity": "sha512-0TS1jicxdU09dwJMNZtVAfzPi6Q6QeN0pM1Fkzrjn+XYHvzMKPU3pHVpva+769iNVSfIYWf7LJ6WR+BuuMf8cA==", - "requires": { - "bs58": "^4.0.0", - "create-hash": "^1.1.0", - "safe-buffer": "^5.1.2" - } - }, - "btoa": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/btoa/-/btoa-1.2.1.tgz", - "integrity": "sha512-SB4/MIGlsiVkMcHmT+pSmIPoNDoHg+7cMzmt3Uxt628MTz2487DKSqK/fuhFBrkuqrYv5UCEnACpF4dTFNKc/g==" - }, - "buffer": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", - "requires": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" - } - }, - "buffer-alloc": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/buffer-alloc/-/buffer-alloc-1.2.0.tgz", - "integrity": "sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow==", - "dev": true, - "requires": { - "buffer-alloc-unsafe": "^1.1.0", - "buffer-fill": "^1.0.0" - } - }, - "buffer-alloc-unsafe": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz", - "integrity": "sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg==", - "dev": true - }, - "buffer-crc32": { - "version": "0.2.13", - "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", - "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=", - "dev": true - }, - "buffer-fill": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/buffer-fill/-/buffer-fill-1.0.0.tgz", - "integrity": "sha1-+PeLdniYiO858gXNY39o5wISKyw=", - "dev": true - }, - "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==" - }, - "buffer-to-arraybuffer": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/buffer-to-arraybuffer/-/buffer-to-arraybuffer-0.0.5.tgz", - "integrity": "sha1-YGSkD6dutDxyOrqe+PbhIW0QURo=" - }, - "buffer-xor": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", - "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=" - }, - "bufferutil": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/bufferutil/-/bufferutil-4.0.7.tgz", - "integrity": "sha512-kukuqc39WOHtdxtw4UScxF/WVnMFVSQVKhtx3AjZJzhd0RGZZldcrfSEbVsWWe6KNH253574cq5F+wpv0G9pJw==", - "devOptional": true, - "requires": { - "node-gyp-build": "^4.3.0" - } - }, - "builtin-status-codes": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", - "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=" - }, - "bytes": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", - "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==", - "dev": true - }, - "cacache": { - "version": "12.0.4", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-12.0.4.tgz", - "integrity": "sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ==", - "requires": { - "bluebird": "^3.5.5", - "chownr": "^1.1.1", - "figgy-pudding": "^3.5.1", - "glob": "^7.1.4", - "graceful-fs": "^4.1.15", - "infer-owner": "^1.0.3", - "lru-cache": "^5.1.1", - "mississippi": "^3.0.0", - "mkdirp": "^0.5.1", - "move-concurrently": "^1.0.1", - "promise-inflight": "^1.0.1", - "rimraf": "^2.6.3", - "ssri": "^6.0.1", - "unique-filename": "^1.1.1", - "y18n": "^4.0.0" - }, - "dependencies": { - "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==", - "requires": { - "yallist": "^3.0.2" - } - }, - "mkdirp": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", - "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", - "requires": { - "minimist": "^1.2.6" - } - } - } - }, - "cache-base": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", - "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", - "requires": { - "collection-visit": "^1.0.0", - "component-emitter": "^1.2.1", - "get-value": "^2.0.6", - "has-value": "^1.0.0", - "isobject": "^3.0.1", - "set-value": "^2.0.0", - "to-object-path": "^0.3.0", - "union-value": "^1.0.0", - "unset-value": "^1.0.0" - } - }, - "cacheable-lookup": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-6.1.0.tgz", - "integrity": "sha512-KJ/Dmo1lDDhmW2XDPMo+9oiy/CeqosPguPCrgcVzKyZrL6pM1gU2GmPY/xo6OQPTUaA/c0kwHuywB4E6nmT9ww==", - "dev": true - }, - "cacheable-request": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz", - "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==", - "dev": true, - "requires": { - "clone-response": "^1.0.2", - "get-stream": "^5.1.0", - "http-cache-semantics": "^4.0.0", - "keyv": "^3.0.0", - "lowercase-keys": "^2.0.0", - "normalize-url": "^4.1.0", - "responselike": "^1.0.2" - }, - "dependencies": { - "get-stream": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.1.0.tgz", - "integrity": "sha512-EXr1FOzrzTfGeL0gQdeFEvOMm2mzMOglyiOXSTpPC+iAjAKftbr3jpCMWynogwYnM+eSj9sHGc6wjIcDvYiygw==", - "dev": true, - "requires": { - "pump": "^3.0.0" - } - }, - "lowercase-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", - "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", - "dev": true - } - } - }, - "call-bind": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", - "dev": true, - "requires": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" - } - }, - "callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "dev": true - }, - "camel-case": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-3.0.0.tgz", - "integrity": "sha512-+MbKztAYHXPr1jNTSKQF52VpcFjwY5RkR7fxksV8Doo4KAYc5Fl4UJRgthBbTmEx8C54DqahhbLJkDwjI3PI/w==", - "dev": true, - "requires": { - "no-case": "^2.2.0", - "upper-case": "^1.1.1" - } - }, - "caniuse-lite": { - "version": "1.0.30001299", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001299.tgz", - "integrity": "sha512-iujN4+x7QzqA2NCSrS5VUy+4gLmRd4xv6vbBBsmfVqTx8bLAD8097euLqQgKxSVLvxjSDcvF1T/i9ocgnUFexw==" - }, - "caseless": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=" - }, - "catering": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/catering/-/catering-2.1.1.tgz", - "integrity": "sha512-K7Qy8O9p76sL3/3m7/zLKbRkyOlSZAgzEaLhyj2mXS8PsCud2Eo4hAb8aLtZqHh0QGqLcb9dlJSu6lHRVENm1w==", - "dev": true, - "optional": true - }, - "cbor": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/cbor/-/cbor-4.3.0.tgz", - "integrity": "sha512-CvzaxQlaJVa88sdtTWvLJ++MbdtPHtZOBBNjm7h3YKUHILMs9nQyD4AC6hvFZy7GBVB3I6bRibJcxeHydyT2IQ==", - "dev": true, - "requires": { - "bignumber.js": "^9.0.0", - "commander": "^3.0.0", - "json-text-sequence": "^0.1", - "nofilter": "^1.0.3" - }, - "dependencies": { - "bignumber.js": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.0.0.tgz", - "integrity": "sha512-t/OYhhJ2SD+YGBQcjY8GzzDHEk9f3nerxjtfa6tlMXfe7frs/WozhvCNoGvpM0P3bNf3Gq5ZRMlGr5f3r4/N8A==", - "dev": true - }, - "commander": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/commander/-/commander-3.0.2.tgz", - "integrity": "sha512-Gar0ASD4BDyKC4hl4DwHqDrmvjoxWKZigVnAbn5H1owvm4CxCPdb0HQDehwNYMJpla5+M2tPmPARzhtYuwpHow==", - "dev": true - } - } - }, - "chai": { - "version": "4.3.7", - "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.7.tgz", - "integrity": "sha512-HLnAzZ2iupm25PlN0xFreAlBA5zaBSv3og0DdeGA4Ar6h6rJ3A0rolRUKJhSF2V10GZKDgWF/VmAEsNWjCRB+A==", - "dev": true, - "requires": { - "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" - }, - "dependencies": { - "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, - "requires": { - "type-detect": "^4.0.0" - } - } - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "change-case": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/change-case/-/change-case-3.0.2.tgz", - "integrity": "sha512-Mww+SLF6MZ0U6kdg11algyKd5BARbyM4TbFBepwowYSR5ClfQGCGtxNXgykpN0uF/bstWeaGDT4JWaDh8zWAHA==", - "dev": true, - "requires": { - "camel-case": "^3.0.0", - "constant-case": "^2.0.0", - "dot-case": "^2.1.0", - "header-case": "^1.0.0", - "is-lower-case": "^1.1.0", - "is-upper-case": "^1.1.0", - "lower-case": "^1.1.1", - "lower-case-first": "^1.0.0", - "no-case": "^2.3.2", - "param-case": "^2.1.0", - "pascal-case": "^2.0.0", - "path-case": "^2.1.0", - "sentence-case": "^2.1.0", - "snake-case": "^2.1.0", - "swap-case": "^1.1.0", - "title-case": "^2.1.0", - "upper-case": "^1.1.1", - "upper-case-first": "^1.1.0" - } - }, - "chardet": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", - "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", - "dev": true - }, - "check-error": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz", - "integrity": "sha1-V00xLt2Iu13YkS6Sht1sCu1KrII=" - }, - "checkpoint-store": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/checkpoint-store/-/checkpoint-store-1.1.0.tgz", - "integrity": "sha1-BOTLUWuRQziTWB5tRgGnjpVS6gY=", - "requires": { - "functional-red-black-tree": "^1.0.1" - } - }, - "cheerio": { - "version": "1.0.0-rc.3", - "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.3.tgz", - "integrity": "sha512-0td5ijfUPuubwLUu0OBoe98gZj8C/AA+RW3v67GPlGOrvxWjZmBXiBCRU+I8VEiNyJzjth40POfHiz2RB3gImA==", - "dev": true, - "requires": { - "css-select": "~1.2.0", - "dom-serializer": "~0.1.1", - "entities": "~1.1.1", - "htmlparser2": "^3.9.1", - "lodash": "^4.15.0", - "parse5": "^3.0.1" - } - }, - "chokidar": { - "version": "3.5.1", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.1.tgz", - "integrity": "sha512-9+s+Od+W0VJJzawDma/gvBNQqkTiqYTWLuZoyAsivsI4AaWTCzHG06/TMjsf1cYe9Cb97UCEhjz7HvnPk2p/tw==", - "requires": { - "anymatch": "~3.1.1", - "braces": "~3.0.2", - "fsevents": "~2.3.1", - "glob-parent": "~5.1.0", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.5.0" - } - }, - "chownr": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", - "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==" - }, - "chrome-trace-event": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", - "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==" - }, - "cids": { - "version": "0.7.5", - "resolved": "https://registry.npmjs.org/cids/-/cids-0.7.5.tgz", - "integrity": "sha512-zT7mPeghoWAu+ppn8+BS1tQ5qGmbMfB4AregnQjA/qHY3GC1m1ptI9GkWNlgeu38r7CuRdXB47uY2XgAYt6QVA==", - "requires": { - "buffer": "^5.5.0", - "class-is": "^1.1.0", - "multibase": "~0.6.0", - "multicodec": "^1.0.0", - "multihashes": "~0.4.15" - }, - "dependencies": { - "multicodec": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/multicodec/-/multicodec-1.0.4.tgz", - "integrity": "sha512-NDd7FeS3QamVtbgfvu5h7fd1IlbaC4EQ0/pgU4zqE2vdHCmBGsUa0TiM8/TdSeG6BMPC92OOCf8F1ocE/Wkrrg==", - "requires": { - "buffer": "^5.6.0", - "varint": "^5.0.0" - } - } - } - }, - "cipher-base": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", - "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", - "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "circular": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/circular/-/circular-1.0.5.tgz", - "integrity": "sha1-fad6+Yu96c5LWzWM1Va13e0tMUk=", - "dev": true - }, - "class-is": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/class-is/-/class-is-1.1.0.tgz", - "integrity": "sha512-rhjH9AG1fvabIDoGRVH587413LPjTZgmDF9fOFCbFJQV4yuocX1mHxxvXI4g3cGwbVY9wAYIoKlg1N79frJKQw==" - }, - "class-utils": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", - "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", - "requires": { - "arr-union": "^3.1.0", - "define-property": "^0.2.5", - "isobject": "^3.0.0", - "static-extend": "^0.1.1" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - } - }, - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" - } - } - }, - "cli-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", - "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", - "dev": true, - "requires": { - "restore-cursor": "^3.1.0" - } - }, - "cli-logger": { - "version": "0.5.40", - "resolved": "https://registry.npmjs.org/cli-logger/-/cli-logger-0.5.40.tgz", - "integrity": "sha1-CX8OEbByx8aYomxH9YiinCC0iws=", - "dev": true, - "requires": { - "circular": "^1.0.5", - "cli-util": "~1.1.27" - } - }, - "cli-regexp": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/cli-regexp/-/cli-regexp-0.1.2.tgz", - "integrity": "sha1-a82TsJ+y7RAl0woRVdWZeVSlNRI=", - "dev": true - }, - "cli-util": { - "version": "1.1.27", - "resolved": "https://registry.npmjs.org/cli-util/-/cli-util-1.1.27.tgz", - "integrity": "sha1-QtaeNqBAoyH8nPhRwVE8rcUJMFQ=", - "dev": true, - "requires": { - "cli-regexp": "~0.1.0" - } - }, - "cli-width": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.1.tgz", - "integrity": "sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw==", - "dev": true - }, - "cliui": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", - "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", - "requires": { - "string-width": "^3.1.0", - "strip-ansi": "^5.2.0", - "wrap-ansi": "^5.1.0" - }, - "dependencies": { - "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==", - "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - } - } - } - }, - "clone": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", - "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=" - }, - "clone-buffer": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/clone-buffer/-/clone-buffer-1.0.0.tgz", - "integrity": "sha512-KLLTJWrvwIP+OPfMn0x2PheDEP20RPUcGXj/ERegTgdmPEZylALQldygiqrPPu8P45uNuPs7ckmReLY6v/iA5g==", - "dev": true, - "optional": true - }, - "clone-response": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", - "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=", - "dev": true, - "requires": { - "mimic-response": "^1.0.0" - } - }, - "co": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=" - }, - "collection-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", - "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", - "requires": { - "map-visit": "^1.0.0", - "object-visit": "^1.0.0" - } - }, - "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==", - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" - }, - "colors": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", - "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", - "dev": true - }, - "combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "requires": { - "delayed-stream": "~1.0.0" - } - }, - "command-exists": { - "version": "1.2.9", - "resolved": "https://registry.npmjs.org/command-exists/-/command-exists-1.2.9.tgz", - "integrity": "sha512-LTQ/SGc+s0Xc0Fu5WaKnR0YiygZkm9eKFvyS+fRsU7/ZWFF8ykFM6Pc9aCVf1+xasOOZpO3BAVgVrKvsqKHV7w==", - "dev": true - }, - "command-line-args": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/command-line-args/-/command-line-args-5.2.1.tgz", - "integrity": "sha512-H4UfQhZyakIjC74I9d34fGYDwk3XpSr17QhEd0Q3I9Xq1CETHo4Hcuo87WyWHpAF1aSLjLRf5lD9ZGX2qStUvg==", - "requires": { - "array-back": "^3.1.0", - "find-replace": "^3.0.0", - "lodash.camelcase": "^4.3.0", - "typical": "^4.0.0" - } - }, - "command-line-usage": { - "version": "6.1.3", - "resolved": "https://registry.npmjs.org/command-line-usage/-/command-line-usage-6.1.3.tgz", - "integrity": "sha512-sH5ZSPr+7UStsloltmDh7Ce5fb8XPlHyoPzTpyyMuYCtervL65+ubVZ6Q61cFtFl62UyJlc8/JwERRbAFPUqgw==", - "requires": { - "array-back": "^4.0.2", - "chalk": "^2.4.2", - "table-layout": "^1.0.2", - "typical": "^5.2.0" - }, - "dependencies": { - "array-back": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-4.0.2.tgz", - "integrity": "sha512-NbdMezxqf94cnNfWLL7V/im0Ub+Anbb0IoZhvzie8+4HJ4nMQuzHuy49FkGYCJK2yAloZ3meiB6AVMClbrI1vg==" - }, - "typical": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/typical/-/typical-5.2.0.tgz", - "integrity": "sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg==" - } - } - }, - "commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" - }, - "commondir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=" - }, - "component-emitter": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", - "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==" - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" - }, - "concat-stream": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.5.1.tgz", - "integrity": "sha1-87gKz54fSOOHXAaItBtsMWAu6hw=", - "requires": { - "inherits": "~2.0.1", - "readable-stream": "~2.0.0", - "typedarray": "~0.0.5" - }, - "dependencies": { - "process-nextick-args": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", - "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=" - }, - "readable-stream": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.6.tgz", - "integrity": "sha1-j5A0HmilPMySh4jaz80Rs265t44=", - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "~1.0.0", - "process-nextick-args": "~1.0.6", - "string_decoder": "~0.10.x", - "util-deprecate": "~1.0.1" - } - }, - "string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" - } - } - }, - "conf": { - "version": "10.2.0", - "resolved": "https://registry.npmjs.org/conf/-/conf-10.2.0.tgz", - "integrity": "sha512-8fLl9F04EJqjSqH+QjITQfJF8BrOVaYr1jewVgSRAEWePfxT0sku4w2hrGQ60BC/TNLGQ2pgxNlTbWQmMPFvXg==", - "dev": true, - "optional": true, - "requires": { - "ajv": "^8.6.3", - "ajv-formats": "^2.1.1", - "atomically": "^1.7.0", - "debounce-fn": "^4.0.0", - "dot-prop": "^6.0.1", - "env-paths": "^2.2.1", - "json-schema-typed": "^7.0.3", - "onetime": "^5.1.2", - "pkg-up": "^3.1.0", - "semver": "^7.3.5" - }, - "dependencies": { - "ajv": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", - "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", - "dev": true, - "optional": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - } - }, - "dot-prop": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-6.0.1.tgz", - "integrity": "sha512-tE7ztYzXHIeyvc7N+hR3oi7FIbf/NIjVP9hmAt3yMXzrQ072/fpjGLx2GxNxGxUl5V73MEqYzioOMoVhGMJ5cA==", - "dev": true, - "optional": true, - "requires": { - "is-obj": "^2.0.0" - } - }, - "is-obj": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", - "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", - "dev": true, - "optional": true - }, - "json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true, - "optional": true - }, - "semver": { - "version": "7.5.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.0.tgz", - "integrity": "sha512-+XC0AD/R7Q2mPSRuy2Id0+CGTZ98+8f+KvwirxOKIEyid+XSx6HbC63p+O4IndTHuX5Z+JxQ0TghCkO5Cg/2HA==", - "dev": true, - "optional": true, - "requires": { - "lru-cache": "^6.0.0" - } - } - } - }, - "configstore": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/configstore/-/configstore-4.0.0.tgz", - "integrity": "sha512-CmquAXFBocrzaSM8mtGPMM/HiWmyIpr4CcJl/rgY2uCObZ/S7cKU0silxslqJejl+t/T9HS8E0PUNQD81JGUEQ==", - "dev": true, - "requires": { - "dot-prop": "^4.1.0", - "graceful-fs": "^4.1.2", - "make-dir": "^1.0.0", - "unique-string": "^1.0.0", - "write-file-atomic": "^2.0.0", - "xdg-basedir": "^3.0.0" - } - }, - "console-browserify": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz", - "integrity": "sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==" - }, - "constant-case": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/constant-case/-/constant-case-2.0.0.tgz", - "integrity": "sha512-eS0N9WwmjTqrOmR3o83F5vW8Z+9R1HnVz3xmzT2PMFug9ly+Au/fxRWlEBSb6LcZwspSsEn9Xs1uw9YgzAg1EQ==", - "dev": true, - "requires": { - "snake-case": "^2.1.0", - "upper-case": "^1.1.1" - } - }, - "constants-browserify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", - "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=" - }, - "content-disposition": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz", - "integrity": "sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==", - "dev": true, - "requires": { - "safe-buffer": "5.1.2" - }, - "dependencies": { - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - } - } - }, - "content-hash": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/content-hash/-/content-hash-2.5.2.tgz", - "integrity": "sha512-FvIQKy0S1JaWV10sMsA7TRx8bpU+pqPkhbsfvOJAdjRXvYxEckAwQWGwtRjiaJfh+E0DvcWUGqcdjwMGFjsSdw==", - "dev": true, - "requires": { - "cids": "^0.7.1", - "multicodec": "^0.5.5", - "multihashes": "^0.4.15" - } - }, - "content-type": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", - "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==", - "dev": true - }, - "convert-source-map": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz", - "integrity": "sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==", - "peer": true, - "requires": { - "safe-buffer": "~5.1.1" - }, - "dependencies": { - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "peer": true - } - } - }, - "cookie": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz", - "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==", - "dev": true - }, - "cookie-signature": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=", - "dev": true - }, - "cookiejar": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/cookiejar/-/cookiejar-2.1.2.tgz", - "integrity": "sha512-Mw+adcfzPxcPeI+0WlvRrr/3lGVO0bD75SxX6811cxSh1Wbxx7xZBGK1eVtDf6si8rg2lhnUjsVLMFMfbRIuwA==" - }, - "copy-concurrently": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz", - "integrity": "sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==", - "requires": { - "aproba": "^1.1.1", - "fs-write-stream-atomic": "^1.0.8", - "iferr": "^0.1.5", - "mkdirp": "^0.5.1", - "rimraf": "^2.5.4", - "run-queue": "^1.0.0" - }, - "dependencies": { - "mkdirp": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", - "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", - "requires": { - "minimist": "^1.2.6" - } - } - } - }, - "copy-descriptor": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", - "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=" - }, - "core-js": { - "version": "3.6.5", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.6.5.tgz", - "integrity": "sha512-vZVEEwZoIsI+vPEuoF9Iqf5H7/M3eeQqWlQnYa8FSKKePuYTf5MWnxb5SDAzCa60b3JBRS5g9b+Dq7b1y/RCrA==", - "dev": true - }, - "core-js-compat": { - "version": "3.20.2", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.20.2.tgz", - "integrity": "sha512-qZEzVQ+5Qh6cROaTPFLNS4lkvQ6mBzE3R6A6EEpssj7Zr2egMHgsy4XapdifqJDGC9CBiNv7s+ejI96rLNQFdg==", - "requires": { - "browserslist": "^4.19.1", - "semver": "7.0.0" - }, - "dependencies": { - "semver": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", - "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==" - } - } - }, - "core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" - }, - "cors": { - "version": "2.8.5", - "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", - "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", - "dev": true, - "requires": { - "object-assign": "^4", - "vary": "^1" - } - }, - "crc-32": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/crc-32/-/crc-32-1.2.0.tgz", - "integrity": "sha512-1uBwHxF+Y/4yF5G48fwnKq6QsIXheor3ZLPT80yGBV1oEUwpPojlEhQbWKVw1VwcTQyMGHK1/XMmTjmlsmTTGA==", - "dev": true, - "requires": { - "exit-on-epipe": "~1.0.1", - "printj": "~1.1.0" - } - }, - "create-ecdh": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.3.tgz", - "integrity": "sha512-GbEHQPMOswGpKXM9kCWVrremUcBmjteUaQ01T9rkKCPDXfUHX0IoP9LpHYo2NPFampa4e+/pFDc3jQdxrxQLaw==", - "requires": { - "bn.js": "^4.1.0", - "elliptic": "^6.0.0" - } - }, - "create-hash": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", - "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", - "requires": { - "cipher-base": "^1.0.1", - "inherits": "^2.0.1", - "md5.js": "^1.3.4", - "ripemd160": "^2.0.1", - "sha.js": "^2.4.0" - } - }, - "create-hmac": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", - "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", - "requires": { - "cipher-base": "^1.0.3", - "create-hash": "^1.1.0", - "inherits": "^2.0.1", - "ripemd160": "^2.0.0", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" - } - }, - "create-require": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", - "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", - "dev": true - }, - "cross-fetch": { - "version": "2.2.5", - "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-2.2.5.tgz", - "integrity": "sha512-xqYAhQb4NhCJSRym03dwxpP1bYXpK3y7UN83Bo2WFi3x1Zmzn0SL/6xGoPr+gpt4WmNrgCCX3HPysvOwFOW36w==", - "requires": { - "node-fetch": "2.6.1", - "whatwg-fetch": "2.0.4" - }, - "dependencies": { - "node-fetch": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz", - "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==" - }, - "whatwg-fetch": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-2.0.4.tgz", - "integrity": "sha512-dcQ1GWpOD/eEQ97k66aiEVpNnapVj90/+R+SXTPYGHpYBBypfKJEQjLrvMZ7YXbKm21gXd4NcuxUTjiv1YtLng==" - } - } - }, - "cross-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", - "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", - "requires": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - }, - "dependencies": { - "which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "requires": { - "isexe": "^2.0.0" - } - } - } - }, - "crypto-browserify": { - "version": "3.12.0", - "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", - "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", - "requires": { - "browserify-cipher": "^1.0.0", - "browserify-sign": "^4.0.0", - "create-ecdh": "^4.0.0", - "create-hash": "^1.1.0", - "create-hmac": "^1.1.0", - "diffie-hellman": "^5.0.0", - "inherits": "^2.0.1", - "pbkdf2": "^3.0.3", - "public-encrypt": "^4.0.0", - "randombytes": "^2.0.0", - "randomfill": "^1.0.3" - } - }, - "crypto-random-string": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-1.0.0.tgz", - "integrity": "sha1-ojD2T1aDEOFJgAmUB5DsmVRbyn4=", - "dev": true - }, - "css-select": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-1.2.0.tgz", - "integrity": "sha1-KzoRBTnFNV8c2NMUYj6HCxIeyFg=", - "dev": true, - "requires": { - "boolbase": "~1.0.0", - "css-what": "2.1", - "domutils": "1.5.1", - "nth-check": "~1.0.1" - } - }, - "css-what": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/css-what/-/css-what-2.1.3.tgz", - "integrity": "sha512-a+EPoD+uZiNfh+5fxw2nO9QwFa6nJe2Or35fGY6Ipw1R3R4AGz1d1TEZrCegvw2YTmZ0jXirGYlzxxpYSHwpEg==", - "dev": true - }, - "cssfilter": { - "version": "0.0.10", - "resolved": "https://registry.npmjs.org/cssfilter/-/cssfilter-0.0.10.tgz", - "integrity": "sha512-FAaLDaplstoRsDR8XGYH51znUN0UY7nMc6Z9/fvE8EXGwvJE9hu7W2vHwx1+bd6gCYnln9nLbzxFTrcO9YQDZw==", - "dev": true, - "optional": true - }, - "cyclist": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-1.0.1.tgz", - "integrity": "sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk=" - }, - "d": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz", - "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==", - "requires": { - "es5-ext": "^0.10.50", - "type": "^1.0.1" - } - }, - "dashdash": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", - "requires": { - "assert-plus": "^1.0.0" - } - }, - "dataloader": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/dataloader/-/dataloader-2.1.0.tgz", - "integrity": "sha512-qTcEYLen3r7ojZNgVUaRggOI+KM7jrKxXeSHhogh/TWxYMeONEMqY+hmkobiYQozsGIyg9OYVzO4ZIfoB4I0pQ==", - "dev": true, - "optional": true - }, - "debounce-fn": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/debounce-fn/-/debounce-fn-4.0.0.tgz", - "integrity": "sha512-8pYCQiL9Xdcg0UPSD3d+0KMlOjp+KGU5EPwYddgzQ7DATsg4fuUDjQtsYLmWjnk2obnNHgV3vE2Y4jejSOJVBQ==", - "dev": true, - "optional": true, - "requires": { - "mimic-fn": "^3.0.0" - }, - "dependencies": { - "mimic-fn": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-3.1.0.tgz", - "integrity": "sha512-Ysbi9uYW9hFyfrThdDEQuykN4Ey6BuwPD2kpI5ES/nFTDn/98yxYNLZJcgUAKPT/mcrLLKaGzJR9YVxJrIdASQ==", - "dev": true, - "optional": true - } - } - }, - "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=" - }, - "decode-uri-component": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", - "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=" - }, - "decompress": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/decompress/-/decompress-4.2.1.tgz", - "integrity": "sha512-e48kc2IjU+2Zw8cTb6VZcJQ3lgVbS4uuB1TfCHbiZIP/haNXm+SVyhu+87jts5/3ROpd82GSVCoNs/z8l4ZOaQ==", - "dev": true, - "requires": { - "decompress-tar": "^4.0.0", - "decompress-tarbz2": "^4.0.0", - "decompress-targz": "^4.0.0", - "decompress-unzip": "^4.0.1", - "graceful-fs": "^4.1.10", - "make-dir": "^1.0.0", - "pify": "^2.3.0", - "strip-dirs": "^2.0.0" - } - }, - "decompress-response": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", - "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", - "requires": { - "mimic-response": "^1.0.0" - } - }, - "decompress-tar": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/decompress-tar/-/decompress-tar-4.1.1.tgz", - "integrity": "sha512-JdJMaCrGpB5fESVyxwpCx4Jdj2AagLmv3y58Qy4GE6HMVjWz1FeVQk1Ct4Kye7PftcdOo/7U7UKzYBJgqnGeUQ==", - "dev": true, - "requires": { - "file-type": "^5.2.0", - "is-stream": "^1.1.0", - "tar-stream": "^1.5.2" - } - }, - "decompress-tarbz2": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/decompress-tarbz2/-/decompress-tarbz2-4.1.1.tgz", - "integrity": "sha512-s88xLzf1r81ICXLAVQVzaN6ZmX4A6U4z2nMbOwobxkLoIIfjVMBg7TeguTUXkKeXni795B6y5rnvDw7rxhAq9A==", - "dev": true, - "requires": { - "decompress-tar": "^4.1.0", - "file-type": "^6.1.0", - "is-stream": "^1.1.0", - "seek-bzip": "^1.0.5", - "unbzip2-stream": "^1.0.9" - }, - "dependencies": { - "file-type": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/file-type/-/file-type-6.2.0.tgz", - "integrity": "sha512-YPcTBDV+2Tm0VqjybVd32MHdlEGAtuxS3VAYsumFokDSMG+ROT5wawGlnHDoz7bfMcMDt9hxuXvXwoKUx2fkOg==", - "dev": true - } - } - }, - "decompress-targz": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/decompress-targz/-/decompress-targz-4.1.1.tgz", - "integrity": "sha512-4z81Znfr6chWnRDNfFNqLwPvm4db3WuZkqV+UgXQzSngG3CEKdBkw5jrv3axjjL96glyiiKjsxJG3X6WBZwX3w==", - "dev": true, - "requires": { - "decompress-tar": "^4.1.1", - "file-type": "^5.2.0", - "is-stream": "^1.1.0" - } - }, - "decompress-unzip": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/decompress-unzip/-/decompress-unzip-4.0.1.tgz", - "integrity": "sha1-3qrM39FK6vhVePczroIQ+bSEj2k=", - "dev": true, - "requires": { - "file-type": "^3.8.0", - "get-stream": "^2.2.0", - "pify": "^2.3.0", - "yauzl": "^2.4.2" - }, - "dependencies": { - "file-type": { - "version": "3.9.0", - "resolved": "https://registry.npmjs.org/file-type/-/file-type-3.9.0.tgz", - "integrity": "sha1-JXoHg4TR24CHvESdEH1SpSZyuek=", - "dev": true - }, - "get-stream": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-2.3.1.tgz", - "integrity": "sha1-Xzj5PzRgCWZu4BUKBUFn+Rvdld4=", - "dev": true, - "requires": { - "object-assign": "^4.0.1", - "pinkie-promise": "^2.0.0" - } - } - } - }, - "deep-eql": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-3.0.1.tgz", - "integrity": "sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==", - "requires": { - "type-detect": "^4.0.0" - } - }, - "deep-extend": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", - "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==" - }, - "deep-is": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", - "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", - "dev": true - }, - "defer-to-connect": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz", - "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==", - "dev": true - }, - "deferred-leveldown": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/deferred-leveldown/-/deferred-leveldown-1.2.2.tgz", - "integrity": "sha512-uukrWD2bguRtXilKt6cAWKyoXrTSMo5m7crUdLfWQmu8kIm88w3QZoUL+6nhpfKVmhHANER6Re3sKoNoZ3IKMA==", - "requires": { - "abstract-leveldown": "~2.6.0" - } - }, - "define-properties": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", - "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", - "dev": true, - "requires": { - "object-keys": "^1.0.12" - } - }, - "define-property": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", - "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", - "requires": { - "is-descriptor": "^1.0.2", - "isobject": "^3.0.1" - } - }, - "delay": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/delay/-/delay-5.0.0.tgz", - "integrity": "sha512-ReEBKkIfe4ya47wlPYf/gu5ib6yUG0/Aez0JQZQz94kiWtRQvZIQbTiehsnwHvLSWJnQdhVeqYue7Id1dKr0qw==", - "dev": true - }, - "delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" - }, - "delimit-stream": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/delimit-stream/-/delimit-stream-0.1.0.tgz", - "integrity": "sha1-m4MZR3wOX4rrPONXrjBfwl6hzSs=", - "dev": true - }, - "depd": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", - "dev": true - }, - "des.js": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz", - "integrity": "sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==", - "requires": { - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0" - } - }, - "destroy": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", - "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=", - "dev": true - }, - "detect-file": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/detect-file/-/detect-file-1.0.0.tgz", - "integrity": "sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc=" - }, - "diff": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", - "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", - "dev": true - }, - "diffie-hellman": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", - "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", - "requires": { - "bn.js": "^4.1.0", - "miller-rabin": "^4.0.0", - "randombytes": "^2.0.0" - } - }, - "doctrine": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", - "dev": true, - "requires": { - "esutils": "^2.0.2" - } - }, - "dom-serializer": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.1.tgz", - "integrity": "sha512-l0IU0pPzLWSHBcieZbpOKgkIn3ts3vAh7ZuFyXNwJxJXk/c4Gwj9xaTJwIDVQCXawWD0qb3IzMGH5rglQaO0XA==", - "dev": true, - "requires": { - "domelementtype": "^1.3.0", - "entities": "^1.1.1" - } - }, - "dom-storage": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/dom-storage/-/dom-storage-2.1.0.tgz", - "integrity": "sha512-g6RpyWXzl0RR6OTElHKBl7nwnK87GUyZMYC7JWsB/IA73vpqK2K6LT39x4VepLxlSsWBFrPVLnsSR5Jyty0+2Q==", - "dev": true - }, - "dom-walk": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/dom-walk/-/dom-walk-0.1.2.tgz", - "integrity": "sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w==" - }, - "domain-browser": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz", - "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==" - }, - "domelementtype": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz", - "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==", - "dev": true - }, - "domhandler": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.4.2.tgz", - "integrity": "sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==", - "dev": true, - "requires": { - "domelementtype": "1" - } - }, - "domutils": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz", - "integrity": "sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=", - "dev": true, - "requires": { - "dom-serializer": "0", - "domelementtype": "1" - } - }, - "dot-case": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-2.1.1.tgz", - "integrity": "sha512-HnM6ZlFqcajLsyudHq7LeeLDr2rFAVYtDv/hV5qchQEidSck8j9OPUsXY9KwJv/lHMtYlX4DjRQqwFYa+0r8Ug==", - "dev": true, - "requires": { - "no-case": "^2.2.0" - } - }, - "dot-notes": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/dot-notes/-/dot-notes-3.1.1.tgz", - "integrity": "sha1-eufhqUgTRSnzdosvsT9Mj6kqV88=" - }, - "dot-prop": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-4.2.0.tgz", - "integrity": "sha512-tUMXrxlExSW6U2EXiiKGSBVdYgtV8qlHL+C10TsW4PURY/ic+eaysnSkwB4kA/mBlCyy/IKDJ+Lc3wbWeaXtuQ==", - "dev": true, - "requires": { - "is-obj": "^1.0.0" - } - }, - "dotenv": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-10.0.0.tgz", - "integrity": "sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q==" - }, - "double-ended-queue": { - "version": "2.1.0-0", - "resolved": "https://registry.npmjs.org/double-ended-queue/-/double-ended-queue-2.1.0-0.tgz", - "integrity": "sha512-+BNfZ+deCo8hMNpDqDnvT+c0XpJ5cUa6mqYq89bho2Ifze4URTqRkcwR399hWoTrTkbZ/XJYDgP6rc7pRgffEQ==", - "dev": true, - "optional": true - }, - "drbg.js": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/drbg.js/-/drbg.js-1.0.1.tgz", - "integrity": "sha1-Pja2xCs3BDgjzbwzLVjzHiRFSAs=", - "requires": { - "browserify-aes": "^1.0.6", - "create-hash": "^1.1.2", - "create-hmac": "^1.1.4" - } - }, - "duplexer3": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", - "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=", - "dev": true - }, - "duplexify": { - "version": "3.7.1", - "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz", - "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==", - "requires": { - "end-of-stream": "^1.0.0", - "inherits": "^2.0.1", - "readable-stream": "^2.0.0", - "stream-shift": "^1.0.0" - } - }, - "ecc-jsbn": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", - "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", - "requires": { - "jsbn": "~0.1.0", - "safer-buffer": "^2.1.0" - } - }, - "ee-first": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=", - "dev": true - }, - "electron-to-chromium": { - "version": "1.4.45", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.45.tgz", - "integrity": "sha512-czF9eYVuOmlY/vxyMQz2rGlNSjZpxNQYBe1gmQv7al171qOIhgyO9k7D5AKlgeTCSPKk+LHhj5ZyIdmEub9oNg==" - }, - "elliptic": { - "version": "6.5.4", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", - "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", - "requires": { - "bn.js": "^4.11.9", - "brorand": "^1.1.0", - "hash.js": "^1.0.0", - "hmac-drbg": "^1.0.1", - "inherits": "^2.0.4", - "minimalistic-assert": "^1.0.1", - "minimalistic-crypto-utils": "^1.0.1" - } - }, - "emittery": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.4.1.tgz", - "integrity": "sha512-r4eRSeStEGf6M5SKdrQhhLK5bOwOBxQhIE3YSTnZE3GpKiLfnnhE+tPtrJE79+eDJgm39BM6LSoI8SCx4HbwlQ==", - "dev": true, - "optional": true - }, - "emoji-regex": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==" - }, - "emojis-list": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", - "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==" - }, - "encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", - "dev": true - }, - "encoding": { - "version": "0.1.13", - "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", - "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", - "requires": { - "iconv-lite": "^0.6.2" - }, - "dependencies": { - "iconv-lite": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.2.tgz", - "integrity": "sha512-2y91h5OpQlolefMPmUlivelittSWy0rP+oYVpn6A7GwVHNE8AWzoYOBNmlwks3LobaJxgHCYZAnyNo2GgpNRNQ==", - "requires": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - } - } - } - }, - "encoding-down": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/encoding-down/-/encoding-down-6.3.0.tgz", - "integrity": "sha512-QKrV0iKR6MZVJV08QY0wp1e7vF6QbhnbQhb07bwpEyuz4uZiZgPlEGdkCROuFkUwdxlFaiPIhjyarH1ee/3vhw==", - "dev": true, - "optional": true, - "requires": { - "abstract-leveldown": "^6.2.1", - "inherits": "^2.0.3", - "level-codec": "^9.0.0", - "level-errors": "^2.0.0" - }, - "dependencies": { - "abstract-leveldown": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-6.3.0.tgz", - "integrity": "sha512-TU5nlYgta8YrBMNpc9FwQzRbiXsj49gsALsXadbGHt9CROPzX5fB0rWDR5mtdpOOKa5XqRFpbj1QroPAoPzVjQ==", - "dev": true, - "optional": true, - "requires": { - "buffer": "^5.5.0", - "immediate": "^3.2.3", - "level-concat-iterator": "~2.0.0", - "level-supports": "~1.0.0", - "xtend": "~4.0.0" - } - }, - "level-codec": { - "version": "9.0.2", - "resolved": "https://registry.npmjs.org/level-codec/-/level-codec-9.0.2.tgz", - "integrity": "sha512-UyIwNb1lJBChJnGfjmO0OR+ezh2iVu1Kas3nvBS/BzGnx79dv6g7unpKIDNPMhfdTEGoc7mC8uAu51XEtX+FHQ==", - "dev": true, - "optional": true, - "requires": { - "buffer": "^5.6.0" - } - }, - "level-concat-iterator": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/level-concat-iterator/-/level-concat-iterator-2.0.1.tgz", - "integrity": "sha512-OTKKOqeav2QWcERMJR7IS9CUo1sHnke2C0gkSmcR7QuEtFNLLzHQAvnMw8ykvEcv0Qtkg0p7FOwP1v9e5Smdcw==", - "dev": true, - "optional": true - }, - "level-errors": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/level-errors/-/level-errors-2.0.1.tgz", - "integrity": "sha512-UVprBJXite4gPS+3VznfgDSU8PTRuVX0NXwoWW50KLxd2yw4Y1t2JUR5In1itQnudZqRMT9DlAM3Q//9NCjCFw==", - "dev": true, - "optional": true, - "requires": { - "errno": "~0.1.1" - } - }, - "level-supports": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/level-supports/-/level-supports-1.0.1.tgz", - "integrity": "sha512-rXM7GYnW8gsl1vedTJIbzOrRv85c/2uCMpiiCzO2fndd06U/kUXEEU9evYn4zFggBOg36IsBW8LzqIpETwwQzg==", - "dev": true, - "optional": true, - "requires": { - "xtend": "^4.0.2" - } - } - } - }, - "end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "requires": { - "once": "^1.4.0" - } - }, - "end-stream": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/end-stream/-/end-stream-0.1.0.tgz", - "integrity": "sha512-Brl10T8kYnc75IepKizW6Y9liyW8ikz1B7n/xoHrJxoVSSjoqPn30sb7XVFfQERK4QfUMYRGs9dhWwtt2eu6uA==", - "dev": true, - "optional": true, - "requires": { - "write-stream": "~0.4.3" - } - }, - "entities": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz", - "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==", - "dev": true - }, - "env-paths": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", - "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", - "dev": true - }, - "errno": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.7.tgz", - "integrity": "sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg==", - "requires": { - "prr": "~1.0.1" - } - }, - "es-abstract": { - "version": "1.18.0", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.0.tgz", - "integrity": "sha512-LJzK7MrQa8TS0ja2w3YNLzUgJCGPdPOV1yVvezjNnS89D+VR08+Szt2mz3YB2Dck/+w5tfIq/RoUAFqJJGM2yw==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "get-intrinsic": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.2", - "is-callable": "^1.2.3", - "is-negative-zero": "^2.0.1", - "is-regex": "^1.1.2", - "is-string": "^1.0.5", - "object-inspect": "^1.9.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.2", - "string.prototype.trimend": "^1.0.4", - "string.prototype.trimstart": "^1.0.4", - "unbox-primitive": "^1.0.0" - }, - "dependencies": { - "object.assign": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", - "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", - "dev": true, - "requires": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "has-symbols": "^1.0.1", - "object-keys": "^1.1.1" - } - } - } - }, - "es-to-primitive": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", - "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", - "dev": true, - "requires": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - } - }, - "es5-ext": { - "version": "0.10.53", - "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.53.tgz", - "integrity": "sha512-Xs2Stw6NiNHWypzRTY1MtaG/uJlwCk8kH81920ma8mvN8Xq1gsfhZvpkImLQArw8AHnv8MT2I45J3c0R8slE+Q==", - "requires": { - "es6-iterator": "~2.0.3", - "es6-symbol": "~3.1.3", - "next-tick": "~1.0.0" - } - }, - "es6-iterator": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", - "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=", - "requires": { - "d": "1", - "es5-ext": "^0.10.35", - "es6-symbol": "^3.1.1" - } - }, - "es6-promise": { - "version": "4.2.8", - "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz", - "integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==", - "dev": true - }, - "es6-symbol": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz", - "integrity": "sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==", - "requires": { - "d": "^1.0.1", - "ext": "^1.1.2" - } - }, - "escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==" - }, - "escape-html": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=", - "dev": true - }, - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" - }, - "eslint": { - "version": "6.8.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-6.8.0.tgz", - "integrity": "sha512-K+Iayyo2LtyYhDSYwz5D5QdWw0hCacNzyq1Y821Xna2xSJj7cijoLLYmLxTQgcgZ9mC61nryMy9S7GRbYpI5Ig==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.0.0", - "ajv": "^6.10.0", - "chalk": "^2.1.0", - "cross-spawn": "^6.0.5", - "debug": "^4.0.1", - "doctrine": "^3.0.0", - "eslint-scope": "^5.0.0", - "eslint-utils": "^1.4.3", - "eslint-visitor-keys": "^1.1.0", - "espree": "^6.1.2", - "esquery": "^1.0.1", - "esutils": "^2.0.2", - "file-entry-cache": "^5.0.1", - "functional-red-black-tree": "^1.0.1", - "glob-parent": "^5.0.0", - "globals": "^12.1.0", - "ignore": "^4.0.6", - "import-fresh": "^3.0.0", - "imurmurhash": "^0.1.4", - "inquirer": "^7.0.0", - "is-glob": "^4.0.0", - "js-yaml": "^3.13.1", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.3.0", - "lodash": "^4.17.14", - "minimatch": "^3.0.4", - "mkdirp": "^0.5.1", - "natural-compare": "^1.4.0", - "optionator": "^0.8.3", - "progress": "^2.0.0", - "regexpp": "^2.0.1", - "semver": "^6.1.2", - "strip-ansi": "^5.2.0", - "strip-json-comments": "^3.0.1", - "table": "^5.2.3", - "text-table": "^0.2.0", - "v8-compile-cache": "^2.0.3" - }, - "dependencies": { - "ansi-escapes": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.1.tgz", - "integrity": "sha512-JWF7ocqNrp8u9oqpgV+wH5ftbt+cfvv+PTjOvKLT3AdYly/LmORARfEVT1iyjwN+4MqE5UmVKoAdIBqeoCHgLA==", - "dev": true, - "requires": { - "type-fest": "^0.11.0" - } - }, - "ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", - "dev": true - }, - "ansi-styles": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", - "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", - "dev": true, - "requires": { - "@types/color-name": "^1.1.1", - "color-convert": "^2.0.1" - } - }, - "cli-width": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz", - "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==", - "dev": true - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - }, - "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==", - "dev": true - }, - "figures": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", - "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", - "dev": true, - "requires": { - "escape-string-regexp": "^1.0.5" - } - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "inquirer": { - "version": "7.3.3", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.3.3.tgz", - "integrity": "sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA==", - "dev": true, - "requires": { - "ansi-escapes": "^4.2.1", - "chalk": "^4.1.0", - "cli-cursor": "^3.1.0", - "cli-width": "^3.0.0", - "external-editor": "^3.0.3", - "figures": "^3.0.0", - "lodash": "^4.17.19", - "mute-stream": "0.0.8", - "run-async": "^2.4.0", - "rxjs": "^6.6.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0", - "through": "^2.3.6" - }, - "dependencies": { - "chalk": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.0" - } - } - } - }, - "is-fullwidth-code-point": { - "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==", - "dev": true - }, - "mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "dev": true, - "requires": { - "minimist": "^1.2.5" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "mute-stream": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", - "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", - "dev": true - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - }, - "string-width": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", - "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", - "dev": true, - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" - }, - "dependencies": { - "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.0" - } - } - } - }, - "supports-color": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", - "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - }, - "type-fest": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.11.0.tgz", - "integrity": "sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ==", - "dev": true - } - } - }, - "eslint-scope": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", - "dev": true, - "requires": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" - } - }, - "eslint-utils": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-1.4.3.tgz", - "integrity": "sha512-fbBN5W2xdY45KulGXmLHZ3c3FHfVYmKg0IrAKGOkT/464PQsx2UeIzfz1RmEci+KLm1bBaAzZAh8+/E+XAeZ8Q==", - "dev": true, - "requires": { - "eslint-visitor-keys": "^1.1.0" - } - }, - "eslint-visitor-keys": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", - "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", - "dev": true - }, - "espree": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-6.2.1.tgz", - "integrity": "sha512-ysCxRQY3WaXJz9tdbWOwuWr5Y/XrPTGX9Kiz3yoUXwW0VZ4w30HTkQLaGx/+ttFjF8i+ACbArnB4ce68a9m5hw==", - "dev": true, - "requires": { - "acorn": "^7.1.1", - "acorn-jsx": "^5.2.0", - "eslint-visitor-keys": "^1.1.0" - } - }, - "esprima": { - "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 - }, - "esquery": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.3.1.tgz", - "integrity": "sha512-olpvt9QG0vniUBZspVRN6lwB7hOZoTRtT+jzR+tS4ffYx2mzbw+z0XCOk44aaLYKApNX5nMm+E+P6o25ip/DHQ==", - "dev": true, - "requires": { - "estraverse": "^5.1.0" - }, - "dependencies": { - "estraverse": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", - "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", - "dev": true - } - } - }, - "esrecurse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", - "requires": { - "estraverse": "^5.2.0" - }, - "dependencies": { - "estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==" - } - } - }, - "estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==" - }, - "esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "dev": true - }, - "etag": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=", - "dev": true - }, - "eth-block-tracker": { - "version": "4.4.3", - "resolved": "https://registry.npmjs.org/eth-block-tracker/-/eth-block-tracker-4.4.3.tgz", - "integrity": "sha512-A8tG4Z4iNg4mw5tP1Vung9N9IjgMNqpiMoJ/FouSFwNCGHv2X0mmOYwtQOJzki6XN7r7Tyo01S29p7b224I4jw==", - "requires": { - "@babel/plugin-transform-runtime": "^7.5.5", - "@babel/runtime": "^7.5.5", - "eth-query": "^2.1.0", - "json-rpc-random-id": "^1.0.1", - "pify": "^3.0.0", - "safe-event-emitter": "^1.0.1" - }, - "dependencies": { - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" - } - } - }, - "eth-ens-namehash": { - "version": "2.0.8", - "resolved": "https://registry.npmjs.org/eth-ens-namehash/-/eth-ens-namehash-2.0.8.tgz", - "integrity": "sha1-IprEbsqG1S4MmR58sq74P/D2i88=", - "dev": true, - "requires": { - "idna-uts46-hx": "^2.3.1", - "js-sha3": "^0.5.7" - } - }, - "eth-json-rpc-errors": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/eth-json-rpc-errors/-/eth-json-rpc-errors-2.0.2.tgz", - "integrity": "sha512-uBCRM2w2ewusRHGxN8JhcuOb2RN3ueAOYH/0BhqdFmQkZx5lj5+fLKTz0mIVOzd4FG5/kUksCzCD7eTEim6gaA==", - "requires": { - "fast-safe-stringify": "^2.0.6" - } - }, - "eth-lib": { - "version": "0.1.29", - "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.1.29.tgz", - "integrity": "sha512-bfttrr3/7gG4E02HoWTDUcDDslN003OlOoBxk9virpAZQ1ja/jDgwkWB8QfJF7ojuEowrqy+lzp9VcJG7/k5bQ==", - "dev": true, - "requires": { - "bn.js": "^4.11.6", - "elliptic": "^6.4.0", - "nano-json-stream-parser": "^0.1.2", - "servify": "^0.1.12", - "ws": "^3.0.0", - "xhr-request-promise": "^0.1.2" - } - }, - "eth-query": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/eth-query/-/eth-query-2.1.2.tgz", - "integrity": "sha1-1nQdkAAQa1FRDHLbktY2VFam2l4=", - "requires": { - "json-rpc-random-id": "^1.0.0", - "xtend": "^4.0.1" - } - }, - "eth-rpc-errors": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/eth-rpc-errors/-/eth-rpc-errors-3.0.0.tgz", - "integrity": "sha512-iPPNHPrLwUlR9xCSYm7HHQjWBasor3+KZfRvwEWxMz3ca0yqnlBeJrnyphkGIXZ4J7AMAaOLmwy4AWhnxOiLxg==", - "requires": { - "fast-safe-stringify": "^2.0.6" - } - }, - "eth-sig-util": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/eth-sig-util/-/eth-sig-util-3.0.1.tgz", - "integrity": "sha512-0Us50HiGGvZgjtWTyAI/+qTzYPMLy5Q451D0Xy68bxq1QMWdoOddDwGvsqcFT27uohKgalM9z/yxplyt+mY2iQ==", - "dev": true, - "requires": { - "ethereumjs-abi": "^0.6.8", - "ethereumjs-util": "^5.1.1", - "tweetnacl": "^1.0.3", - "tweetnacl-util": "^0.15.0" - }, - "dependencies": { - "ethereumjs-util": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", - "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", - "dev": true, - "requires": { - "bn.js": "^4.11.0", - "create-hash": "^1.1.2", - "elliptic": "^6.5.2", - "ethereum-cryptography": "^0.1.3", - "ethjs-util": "^0.1.3", - "rlp": "^2.0.0", - "safe-buffer": "^5.1.1" - } - }, - "tweetnacl": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.3.tgz", - "integrity": "sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==", - "dev": true - } - } - }, - "ethereum-bloom-filters": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/ethereum-bloom-filters/-/ethereum-bloom-filters-1.0.7.tgz", - "integrity": "sha512-cDcJJSJ9GMAcURiAWO3DxIEhTL/uWqlQnvgKpuYQzYPrt/izuGU+1ntQmHt0IRq6ADoSYHFnB+aCEFIldjhkMQ==", - "dev": true, - "requires": { - "js-sha3": "^0.8.0" - }, - "dependencies": { - "js-sha3": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.8.0.tgz", - "integrity": "sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q==", - "dev": true - } - } - }, - "ethereum-common": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/ethereum-common/-/ethereum-common-0.2.0.tgz", - "integrity": "sha512-XOnAR/3rntJgbCdGhqdaLIxDLWKLmsZOGhHdBKadEr6gEnJLH52k93Ou+TUdFaPN3hJc3isBZBal3U/XZ15abA==" - }, - "ethereum-cryptography": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz", - "integrity": "sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ==", - "requires": { - "@types/pbkdf2": "^3.0.0", - "@types/secp256k1": "^4.0.1", - "blakejs": "^1.1.0", - "browserify-aes": "^1.2.0", - "bs58check": "^2.1.2", - "create-hash": "^1.2.0", - "create-hmac": "^1.1.7", - "hash.js": "^1.1.7", - "keccak": "^3.0.0", - "pbkdf2": "^3.0.17", - "randombytes": "^2.1.0", - "safe-buffer": "^5.1.2", - "scrypt-js": "^3.0.0", - "secp256k1": "^4.0.1", - "setimmediate": "^1.0.5" - }, - "dependencies": { - "hash.js": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", - "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", - "requires": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.1" - } - }, - "scrypt-js": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-3.0.1.tgz", - "integrity": "sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA==" - }, - "setimmediate": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", - "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=" - } - } - }, - "ethereum-protocol": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/ethereum-protocol/-/ethereum-protocol-1.0.1.tgz", - "integrity": "sha512-3KLX1mHuEsBW0dKG+c6EOJS1NBNqdCICvZW9sInmZTt5aY0oxmHVggYRE0lJu1tcnMD1K+AKHdLi6U43Awm1Vg==" - }, - "ethereumjs-abi": { - "version": "0.6.8", - "resolved": "https://registry.npmjs.org/ethereumjs-abi/-/ethereumjs-abi-0.6.8.tgz", - "integrity": "sha512-Tx0r/iXI6r+lRsdvkFDlut0N08jWMnKRZ6Gkq+Nmw75lZe4e6o3EkSnkaBP5NF6+m5PTGAr9JP43N3LyeoglsA==", - "requires": { - "bn.js": "^4.11.8", - "ethereumjs-util": "^6.0.0" - } - }, - "ethereumjs-account": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/ethereumjs-account/-/ethereumjs-account-2.0.5.tgz", - "integrity": "sha512-bgDojnXGjhMwo6eXQC0bY6UK2liSFUSMwwylOmQvZbSl/D7NXQ3+vrGO46ZeOgjGfxXmgIeVNDIiHw7fNZM4VA==", - "requires": { - "ethereumjs-util": "^5.0.0", - "rlp": "^2.0.0", - "safe-buffer": "^5.1.1" - }, - "dependencies": { - "ethereumjs-util": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", - "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", - "requires": { - "bn.js": "^4.11.0", - "create-hash": "^1.1.2", - "elliptic": "^6.5.2", - "ethereum-cryptography": "^0.1.3", - "ethjs-util": "^0.1.3", - "rlp": "^2.0.0", - "safe-buffer": "^5.1.1" - } - } - } - }, - "ethereumjs-block": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/ethereumjs-block/-/ethereumjs-block-1.7.1.tgz", - "integrity": "sha512-B+sSdtqm78fmKkBq78/QLKJbu/4Ts4P2KFISdgcuZUPDm9x+N7qgBPIIFUGbaakQh8bzuquiRVbdmvPKqbILRg==", - "requires": { - "async": "^2.0.1", - "ethereum-common": "0.2.0", - "ethereumjs-tx": "^1.2.2", - "ethereumjs-util": "^5.0.0", - "merkle-patricia-tree": "^2.1.2" - }, - "dependencies": { - "ethereumjs-tx": { - "version": "1.3.7", - "resolved": "https://registry.npmjs.org/ethereumjs-tx/-/ethereumjs-tx-1.3.7.tgz", - "integrity": "sha512-wvLMxzt1RPhAQ9Yi3/HKZTn0FZYpnsmQdbKYfUUpi4j1SEIcbkd9tndVjcPrufY3V7j2IebOpC00Zp2P/Ay2kA==", - "requires": { - "ethereum-common": "^0.0.18", - "ethereumjs-util": "^5.0.0" - }, - "dependencies": { - "ethereum-common": { - "version": "0.0.18", - "resolved": "https://registry.npmjs.org/ethereum-common/-/ethereum-common-0.0.18.tgz", - "integrity": "sha1-L9w1dvIykDNYl26znaeDIT/5Uj8=" - } - } - }, - "ethereumjs-util": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", - "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", - "requires": { - "bn.js": "^4.11.0", - "create-hash": "^1.1.2", - "elliptic": "^6.5.2", - "ethereum-cryptography": "^0.1.3", - "ethjs-util": "^0.1.3", - "rlp": "^2.0.0", - "safe-buffer": "^5.1.1" - } - } - } - }, - "ethereumjs-common": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/ethereumjs-common/-/ethereumjs-common-1.5.1.tgz", - "integrity": "sha512-aVUPRLgmXORGXXEVkFYgPhr9TGtpBY2tGhZ9Uh0A3lIUzUDr1x6kQx33SbjPUkLkX3eniPQnIL/2psjkjrOfcQ==" - }, - "ethereumjs-tx": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ethereumjs-tx/-/ethereumjs-tx-2.1.2.tgz", - "integrity": "sha512-zZEK1onCeiORb0wyCXUvg94Ve5It/K6GD1K+26KfFKodiBiS6d9lfCXlUKGBBdQ+bv7Day+JK0tj1K+BeNFRAw==", - "requires": { - "ethereumjs-common": "^1.5.0", - "ethereumjs-util": "^6.0.0" - } - }, - "ethereumjs-util": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-6.2.1.tgz", - "integrity": "sha512-W2Ktez4L01Vexijrm5EB6w7dg4n/TgpoYU4avuT5T3Vmnw/eCRtiBrJfQYS/DCSvDIOLn2k57GcHdeBcgVxAqw==", - "requires": { - "@types/bn.js": "^4.11.3", - "bn.js": "^4.11.0", - "create-hash": "^1.1.2", - "elliptic": "^6.5.2", - "ethereum-cryptography": "^0.1.3", - "ethjs-util": "0.1.6", - "rlp": "^2.2.3" - } - }, - "ethereumjs-vm": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/ethereumjs-vm/-/ethereumjs-vm-2.6.0.tgz", - "integrity": "sha512-r/XIUik/ynGbxS3y+mvGnbOKnuLo40V5Mj1J25+HEO63aWYREIqvWeRO/hnROlMBE5WoniQmPmhiaN0ctiHaXw==", - "requires": { - "async": "^2.1.2", - "async-eventemitter": "^0.2.2", - "ethereumjs-account": "^2.0.3", - "ethereumjs-block": "~2.2.0", - "ethereumjs-common": "^1.1.0", - "ethereumjs-util": "^6.0.0", - "fake-merkle-patricia-tree": "^1.0.1", - "functional-red-black-tree": "^1.0.1", - "merkle-patricia-tree": "^2.3.2", - "rustbn.js": "~0.2.0", - "safe-buffer": "^5.1.1" - }, - "dependencies": { - "ethereumjs-block": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/ethereumjs-block/-/ethereumjs-block-2.2.2.tgz", - "integrity": "sha512-2p49ifhek3h2zeg/+da6XpdFR3GlqY3BIEiqxGF8j9aSRIgkb7M1Ky+yULBKJOu8PAZxfhsYA+HxUk2aCQp3vg==", - "requires": { - "async": "^2.0.1", - "ethereumjs-common": "^1.5.0", - "ethereumjs-tx": "^2.1.1", - "ethereumjs-util": "^5.0.0", - "merkle-patricia-tree": "^2.1.2" - }, - "dependencies": { - "ethereumjs-util": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", - "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", - "requires": { - "bn.js": "^4.11.0", - "create-hash": "^1.1.2", - "elliptic": "^6.5.2", - "ethereum-cryptography": "^0.1.3", - "ethjs-util": "^0.1.3", - "rlp": "^2.0.0", - "safe-buffer": "^5.1.1" - } - } - } - } - } - }, - "ethers": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/ethers/-/ethers-5.7.2.tgz", - "integrity": "sha512-wswUsmWo1aOK8rR7DIKiWSw9DbLWe6x98Jrn8wcTflTVvaXhAMaB5zGAXy0GYQEQp9iO1iSHWVyARQm11zUtyg==", - "peer": true, - "requires": { - "@ethersproject/abi": "5.7.0", - "@ethersproject/abstract-provider": "5.7.0", - "@ethersproject/abstract-signer": "5.7.0", - "@ethersproject/address": "5.7.0", - "@ethersproject/base64": "5.7.0", - "@ethersproject/basex": "5.7.0", - "@ethersproject/bignumber": "5.7.0", - "@ethersproject/bytes": "5.7.0", - "@ethersproject/constants": "5.7.0", - "@ethersproject/contracts": "5.7.0", - "@ethersproject/hash": "5.7.0", - "@ethersproject/hdnode": "5.7.0", - "@ethersproject/json-wallets": "5.7.0", - "@ethersproject/keccak256": "5.7.0", - "@ethersproject/logger": "5.7.0", - "@ethersproject/networks": "5.7.1", - "@ethersproject/pbkdf2": "5.7.0", - "@ethersproject/properties": "5.7.0", - "@ethersproject/providers": "5.7.2", - "@ethersproject/random": "5.7.0", - "@ethersproject/rlp": "5.7.0", - "@ethersproject/sha2": "5.7.0", - "@ethersproject/signing-key": "5.7.0", - "@ethersproject/solidity": "5.7.0", - "@ethersproject/strings": "5.7.0", - "@ethersproject/transactions": "5.7.0", - "@ethersproject/units": "5.7.0", - "@ethersproject/wallet": "5.7.0", - "@ethersproject/web": "5.7.1", - "@ethersproject/wordlists": "5.7.0" - }, - "dependencies": { - "@ethersproject/basex": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/basex/-/basex-5.7.0.tgz", - "integrity": "sha512-ywlh43GwZLv2Voc2gQVTKBoVQ1mti3d8HK5aMxsfu/nRDnMmNqaSJ3r3n85HBByT8OpoY96SXM1FogC533T4zw==", - "peer": true, - "requires": { - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/properties": "^5.7.0" - } - }, - "@ethersproject/contracts": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/contracts/-/contracts-5.7.0.tgz", - "integrity": "sha512-5GJbzEU3X+d33CdfPhcyS+z8MzsTrBGk/sc+G+59+tPa9yFkl6HQ9D6L0QMgNTA9q8dT0XKxxkyp883XsQvbbg==", - "peer": true, - "requires": { - "@ethersproject/abi": "^5.7.0", - "@ethersproject/abstract-provider": "^5.7.0", - "@ethersproject/abstract-signer": "^5.7.0", - "@ethersproject/address": "^5.7.0", - "@ethersproject/bignumber": "^5.7.0", - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/constants": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/properties": "^5.7.0", - "@ethersproject/transactions": "^5.7.0" - } - }, - "@ethersproject/hdnode": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/hdnode/-/hdnode-5.7.0.tgz", - "integrity": "sha512-OmyYo9EENBPPf4ERhR7oj6uAtUAhYGqOnIS+jE5pTXvdKBS99ikzq1E7Iv0ZQZ5V36Lqx1qZLeak0Ra16qpeOg==", - "peer": true, - "requires": { - "@ethersproject/abstract-signer": "^5.7.0", - "@ethersproject/basex": "^5.7.0", - "@ethersproject/bignumber": "^5.7.0", - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/pbkdf2": "^5.7.0", - "@ethersproject/properties": "^5.7.0", - "@ethersproject/sha2": "^5.7.0", - "@ethersproject/signing-key": "^5.7.0", - "@ethersproject/strings": "^5.7.0", - "@ethersproject/transactions": "^5.7.0", - "@ethersproject/wordlists": "^5.7.0" - } - }, - "@ethersproject/json-wallets": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/json-wallets/-/json-wallets-5.7.0.tgz", - "integrity": "sha512-8oee5Xgu6+RKgJTkvEMl2wDgSPSAQ9MB/3JYjFV9jlKvcYHUXZC+cQp0njgmxdHkYWn8s6/IqIZYm0YWCjO/0g==", - "peer": true, - "requires": { - "@ethersproject/abstract-signer": "^5.7.0", - "@ethersproject/address": "^5.7.0", - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/hdnode": "^5.7.0", - "@ethersproject/keccak256": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/pbkdf2": "^5.7.0", - "@ethersproject/properties": "^5.7.0", - "@ethersproject/random": "^5.7.0", - "@ethersproject/strings": "^5.7.0", - "@ethersproject/transactions": "^5.7.0", - "aes-js": "3.0.0", - "scrypt-js": "3.0.1" - } - }, - "@ethersproject/pbkdf2": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/pbkdf2/-/pbkdf2-5.7.0.tgz", - "integrity": "sha512-oR/dBRZR6GTyaofd86DehG72hY6NpAjhabkhxgr3X2FpJtJuodEl2auADWBZfhDHgVCbu3/H/Ocq2uC6dpNjjw==", - "peer": true, - "requires": { - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/sha2": "^5.7.0" - } - }, - "@ethersproject/providers": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/@ethersproject/providers/-/providers-5.7.2.tgz", - "integrity": "sha512-g34EWZ1WWAVgr4aptGlVBF8mhl3VWjv+8hoAnzStu8Ah22VHBsuGzP17eb6xDVRzw895G4W7vvx60lFFur/1Rg==", - "peer": true, - "requires": { - "@ethersproject/abstract-provider": "^5.7.0", - "@ethersproject/abstract-signer": "^5.7.0", - "@ethersproject/address": "^5.7.0", - "@ethersproject/base64": "^5.7.0", - "@ethersproject/basex": "^5.7.0", - "@ethersproject/bignumber": "^5.7.0", - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/constants": "^5.7.0", - "@ethersproject/hash": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/networks": "^5.7.0", - "@ethersproject/properties": "^5.7.0", - "@ethersproject/random": "^5.7.0", - "@ethersproject/rlp": "^5.7.0", - "@ethersproject/sha2": "^5.7.0", - "@ethersproject/strings": "^5.7.0", - "@ethersproject/transactions": "^5.7.0", - "@ethersproject/web": "^5.7.0", - "bech32": "1.1.4", - "ws": "7.4.6" - } - }, - "@ethersproject/random": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/random/-/random-5.7.0.tgz", - "integrity": "sha512-19WjScqRA8IIeWclFme75VMXSBvi4e6InrUNuaR4s5pTF2qNhcGdCUwdxUVGtDDqC00sDLCO93jPQoDUH4HVmQ==", - "peer": true, - "requires": { - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/logger": "^5.7.0" - } - }, - "@ethersproject/sha2": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/sha2/-/sha2-5.7.0.tgz", - "integrity": "sha512-gKlH42riwb3KYp0reLsFTokByAKoJdgFCwI+CCiX/k+Jm2mbNs6oOaCjYQSlI1+XBVejwH2KrmCbMAT/GnRDQw==", - "peer": true, - "requires": { - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "hash.js": "1.1.7" - } - }, - "@ethersproject/solidity": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/solidity/-/solidity-5.7.0.tgz", - "integrity": "sha512-HmabMd2Dt/raavyaGukF4XxizWKhKQ24DoLtdNbBmNKUOPqwjsKQSdV9GQtj9CBEea9DlzETlVER1gYeXXBGaA==", - "peer": true, - "requires": { - "@ethersproject/bignumber": "^5.7.0", - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/keccak256": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/sha2": "^5.7.0", - "@ethersproject/strings": "^5.7.0" - } - }, - "@ethersproject/units": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/units/-/units-5.7.0.tgz", - "integrity": "sha512-pD3xLMy3SJu9kG5xDGI7+xhTEmGXlEqXU4OfNapmfnxLVY4EMSSRp7j1k7eezutBPH7RBN/7QPnwR7hzNlEFeg==", - "peer": true, - "requires": { - "@ethersproject/bignumber": "^5.7.0", - "@ethersproject/constants": "^5.7.0", - "@ethersproject/logger": "^5.7.0" - } - }, - "@ethersproject/wallet": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/wallet/-/wallet-5.7.0.tgz", - "integrity": "sha512-MhmXlJXEJFBFVKrDLB4ZdDzxcBxQ3rLyCkhNqVu3CDYvR97E+8r01UgrI+TI99Le+aYm/in/0vp86guJuM7FCA==", - "peer": true, - "requires": { - "@ethersproject/abstract-provider": "^5.7.0", - "@ethersproject/abstract-signer": "^5.7.0", - "@ethersproject/address": "^5.7.0", - "@ethersproject/bignumber": "^5.7.0", - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/hash": "^5.7.0", - "@ethersproject/hdnode": "^5.7.0", - "@ethersproject/json-wallets": "^5.7.0", - "@ethersproject/keccak256": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/properties": "^5.7.0", - "@ethersproject/random": "^5.7.0", - "@ethersproject/signing-key": "^5.7.0", - "@ethersproject/transactions": "^5.7.0", - "@ethersproject/wordlists": "^5.7.0" - } - }, - "@ethersproject/wordlists": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/wordlists/-/wordlists-5.7.0.tgz", - "integrity": "sha512-S2TFNJNfHWVHNE6cNDjbVlZ6MgE17MIxMbMg2zv3wn+3XSJGosL1m9ZVv3GXCf/2ymSsQ+hRI5IzoMJTG6aoVA==", - "peer": true, - "requires": { - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/hash": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/properties": "^5.7.0", - "@ethersproject/strings": "^5.7.0" - } - }, - "bech32": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/bech32/-/bech32-1.1.4.tgz", - "integrity": "sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ==", - "peer": true - }, - "hash.js": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", - "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", - "peer": true, - "requires": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.1" - } - }, - "scrypt-js": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-3.0.1.tgz", - "integrity": "sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA==", - "peer": true - }, - "ws": { - "version": "7.4.6", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz", - "integrity": "sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==", - "peer": true, - "requires": {} - } - } - }, - "ethjs-unit": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/ethjs-unit/-/ethjs-unit-0.1.6.tgz", - "integrity": "sha1-xmWSHkduh7ziqdWIpv4EBbLEFpk=", - "requires": { - "bn.js": "4.11.6", - "number-to-bn": "1.7.0" - }, - "dependencies": { - "bn.js": { - "version": "4.11.6", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz", - "integrity": "sha1-UzRK2xRhehP26N0s4okF0cC6MhU=" - } - } - }, - "ethjs-util": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/ethjs-util/-/ethjs-util-0.1.6.tgz", - "integrity": "sha512-CUnVOQq7gSpDHZVVrQW8ExxUETWrnrvXYvYz55wOU8Uj4VCgw56XC2B/fVqQN+f7gmrnRHSLVnFAwsCuNwji8w==", - "requires": { - "is-hex-prefixed": "1.0.0", - "strip-hex-prefix": "1.0.0" - } - }, - "event-target-shim": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", - "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==" - }, - "eventemitter3": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-3.1.2.tgz", - "integrity": "sha512-tvtQIeLVHjDkJYnzf2dgVMxfuSGJeM/7UCG17TT4EumTfNtF+0nebF/4zWOIkCreAbtNqhGEboB6BWrwqNaw4Q==", - "dev": true - }, - "events": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", - "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==" - }, - "evp_bytestokey": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", - "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", - "requires": { - "md5.js": "^1.3.4", - "safe-buffer": "^5.1.1" - } - }, - "exit-on-epipe": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/exit-on-epipe/-/exit-on-epipe-1.0.1.tgz", - "integrity": "sha512-h2z5mrROTxce56S+pnvAV890uu7ls7f1kEvVGJbw1OlFH3/mlJ5bkXu0KRyW94v37zzHPiUd55iLn3DA7TjWpw==", - "dev": true - }, - "expand-brackets": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", - "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", - "requires": { - "debug": "^2.3.3", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "posix-character-classes": "^0.1.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } - }, - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "^0.1.0" - } - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - } - }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=" - }, - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" - } - } - }, - "expand-tilde": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz", - "integrity": "sha1-l+gBqgUt8CRU3kawK/YhZCzchQI=", - "requires": { - "homedir-polyfill": "^1.0.1" - } - }, - "explain-error": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/explain-error/-/explain-error-1.0.4.tgz", - "integrity": "sha1-p5PTrAytTGq1cemWj7urbLJTKSk=" - }, - "express": { - "version": "4.17.1", - "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz", - "integrity": "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==", - "dev": true, - "requires": { - "accepts": "~1.3.7", - "array-flatten": "1.1.1", - "body-parser": "1.19.0", - "content-disposition": "0.5.3", - "content-type": "~1.0.4", - "cookie": "0.4.0", - "cookie-signature": "1.0.6", - "debug": "2.6.9", - "depd": "~1.1.2", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "finalhandler": "~1.1.2", - "fresh": "0.5.2", - "merge-descriptors": "1.0.1", - "methods": "~1.1.2", - "on-finished": "~2.3.0", - "parseurl": "~1.3.3", - "path-to-regexp": "0.1.7", - "proxy-addr": "~2.0.5", - "qs": "6.7.0", - "range-parser": "~1.2.1", - "safe-buffer": "5.1.2", - "send": "0.17.1", - "serve-static": "1.14.1", - "setprototypeof": "1.1.1", - "statuses": "~1.5.0", - "type-is": "~1.6.18", - "utils-merge": "1.0.1", - "vary": "~1.1.2" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "qs": { - "version": "6.7.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", - "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==", - "dev": true - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - } - } - }, - "ext": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/ext/-/ext-1.4.0.tgz", - "integrity": "sha512-Key5NIsUxdqKg3vIsdw9dSuXpPCQ297y6wBjL30edxwPgt2E44WcWBZey/ZvUc6sERLTxKdyCu4gZFmUbk1Q7A==", - "requires": { - "type": "^2.0.0" - }, - "dependencies": { - "type": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/type/-/type-2.0.0.tgz", - "integrity": "sha512-KBt58xCHry4Cejnc2ISQAF7QY+ORngsWfxezO68+12hKV6lQY8P/psIkcbjeHWn7MqcgciWJyCCevFMJdIXpow==" - } - } - }, - "extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" - }, - "extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", - "requires": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - } - }, - "external-editor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", - "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", - "dev": true, - "requires": { - "chardet": "^0.7.0", - "iconv-lite": "^0.4.24", - "tmp": "^0.0.33" - } - }, - "extglob": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", - "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", - "requires": { - "array-unique": "^0.3.2", - "define-property": "^1.0.0", - "expand-brackets": "^2.1.4", - "extend-shallow": "^2.0.1", - "fragment-cache": "^0.2.1", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "^0.1.0" - } - }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=" - } - } - }, - "extsprintf": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=" - }, - "fake-merkle-patricia-tree": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/fake-merkle-patricia-tree/-/fake-merkle-patricia-tree-1.0.1.tgz", - "integrity": "sha1-S4w6z7Ugr635hgsfFM2M40As3dM=", - "requires": { - "checkpoint-store": "^1.1.0" - } - }, - "fast-check": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/fast-check/-/fast-check-3.1.1.tgz", - "integrity": "sha512-3vtXinVyuUKCKFKYcwXhGE6NtGWkqF8Yh3rvMZNzmwz8EPrgoc/v4pDdLHyLnCyCI5MZpZZkDEwFyXyEONOxpA==", - "dev": true, - "requires": { - "pure-rand": "^5.0.1" - } - }, - "fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" - }, - "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==" - }, - "fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", - "dev": true - }, - "fast-safe-stringify": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz", - "integrity": "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==" - }, - "faye-websocket": { - "version": "0.11.3", - "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.3.tgz", - "integrity": "sha512-D2y4bovYpzziGgbHYtGCMjlJM36vAl/y+xUyn1C+FVx8szd1E+86KwVw6XvYSzOP8iMpm1X0I4xJD+QtUb36OA==", - "dev": true, - "requires": { - "websocket-driver": ">=0.5.1" - } - }, - "fd-slicer": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", - "integrity": "sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4=", - "dev": true, - "requires": { - "pend": "~1.2.0" - } - }, - "fetch-cookie": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/fetch-cookie/-/fetch-cookie-0.11.0.tgz", - "integrity": "sha512-BQm7iZLFhMWFy5CZ/162sAGjBfdNWb7a8LEqqnzsHFhxT/X/SVj/z2t2nu3aJvjlbQkrAlTUApplPRjWyH4mhA==", - "dev": true, - "optional": true, - "requires": { - "tough-cookie": "^2.3.3 || ^3.0.1 || ^4.0.0" - } - }, - "fetch-ponyfill": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/fetch-ponyfill/-/fetch-ponyfill-4.1.0.tgz", - "integrity": "sha1-rjzl9zLGReq4fkroeTQUcJsjmJM=", - "requires": { - "node-fetch": "~1.7.1" - } - }, - "figgy-pudding": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.2.tgz", - "integrity": "sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw==" - }, - "figures": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", - "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", - "dev": true, - "requires": { - "escape-string-regexp": "^1.0.5" - } - }, - "file-entry-cache": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-5.0.1.tgz", - "integrity": "sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g==", - "dev": true, - "requires": { - "flat-cache": "^2.0.1" - } - }, - "file-type": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/file-type/-/file-type-5.2.0.tgz", - "integrity": "sha1-LdvqfHP/42No365J3DOMBYwritY=", - "dev": true - }, - "file-uri-to-path": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", - "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==" - }, - "fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "requires": { - "to-regex-range": "^5.0.1" - } - }, - "finalhandler": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", - "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", - "dev": true, - "requires": { - "debug": "2.6.9", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "on-finished": "~2.3.0", - "parseurl": "~1.3.3", - "statuses": "~1.5.0", - "unpipe": "~1.0.0" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - } - } - }, - "find-cache-dir": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz", - "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==", - "requires": { - "commondir": "^1.0.1", - "make-dir": "^2.0.0", - "pkg-dir": "^3.0.0" - }, - "dependencies": { - "make-dir": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", - "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", - "requires": { - "pify": "^4.0.1", - "semver": "^5.6.0" - } - }, - "pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==" - } - } - }, - "find-replace": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-replace/-/find-replace-3.0.0.tgz", - "integrity": "sha512-6Tb2myMioCAgv5kfvP5/PkZZ/ntTpVK39fHY7WkWBgvbeE+VHd/tZuZ4mrC+bxh4cfOZeYKVPaJIZtZXV7GNCQ==", - "requires": { - "array-back": "^3.0.1" - } - }, - "find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "requires": { - "locate-path": "^3.0.0" - }, - "dependencies": { - "locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", - "requires": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - } - }, - "p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "requires": { - "p-try": "^2.0.0" - } - }, - "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==", - "requires": { - "p-limit": "^2.0.0" - } - }, - "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==" - } - } - }, - "findup-sync": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-3.0.0.tgz", - "integrity": "sha512-YbffarhcicEhOrm4CtrwdKBdCuz576RLdhJDsIfvNtxUuhdRet1qZcsMjqbePtAseKdAnDyM/IyXbu7PRPRLYg==", - "requires": { - "detect-file": "^1.0.0", - "is-glob": "^4.0.0", - "micromatch": "^3.0.4", - "resolve-dir": "^1.0.1" - } - }, - "firebase": { - "version": "7.17.1", - "resolved": "https://registry.npmjs.org/firebase/-/firebase-7.17.1.tgz", - "integrity": "sha512-g2Wkk2fz8VoeSrxv2PIQizm2j74EtbpxQ+wd2AvH2iEF5LRaJOsk3zVBtIlyJIQ3vGTmlutIxtyyoDAQcPO9TA==", - "dev": true, - "requires": { - "@firebase/analytics": "0.4.1", - "@firebase/app": "0.6.9", - "@firebase/app-types": "0.6.1", - "@firebase/auth": "0.14.9", - "@firebase/database": "0.6.9", - "@firebase/firestore": "1.16.2", - "@firebase/functions": "0.4.49", - "@firebase/installations": "0.4.15", - "@firebase/messaging": "0.6.21", - "@firebase/performance": "0.3.10", - "@firebase/polyfill": "0.3.36", - "@firebase/remote-config": "0.1.26", - "@firebase/storage": "0.3.41", - "@firebase/util": "0.3.0" - } - }, - "flat": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", - "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==" - }, - "flat-cache": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-2.0.1.tgz", - "integrity": "sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA==", - "dev": true, - "requires": { - "flatted": "^2.0.0", - "rimraf": "2.6.3", - "write": "1.0.3" - }, - "dependencies": { - "rimraf": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", - "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - } - } - }, - "flatted": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.2.tgz", - "integrity": "sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==", - "dev": true - }, - "flush-write-stream": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz", - "integrity": "sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==", - "requires": { - "inherits": "^2.0.3", - "readable-stream": "^2.3.6" - } - }, - "follow-redirects": { - "version": "1.5.10", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.5.10.tgz", - "integrity": "sha512-0V5l4Cizzvqt5D44aTXbFZz+FtyXV1vrDN6qrelxtfYQKW0KO0W2T/hkE8xvGa/540LkZlkaUjO4ailYTFtHVQ==", - "dev": true, - "requires": { - "debug": "=3.1.0" - } - }, - "for-in": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", - "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=" - }, - "foreach": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz", - "integrity": "sha1-C+4AUBiusmDQo6865ljdATbsG5k=", - "dev": true - }, - "forever-agent": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=" - }, - "form-data": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", - "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", - "mime-types": "^2.1.12" - } - }, - "form-data-encoder": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/form-data-encoder/-/form-data-encoder-1.7.1.tgz", - "integrity": "sha512-EFRDrsMm/kyqbTQocNvRXMLjc7Es2Vk+IQFx/YW7hkUH1eBl4J1fqiP34l74Yt0pFLCNpc06fkbVk00008mzjg==", - "dev": true - }, - "forwarded": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz", - "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=", - "dev": true - }, - "fragment-cache": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", - "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", - "requires": { - "map-cache": "^0.2.2" - } - }, - "fresh": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", - "dev": true - }, - "from2": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", - "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", - "requires": { - "inherits": "^2.0.1", - "readable-stream": "^2.0.0" - } - }, - "fs-constants": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", - "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==", - "dev": true - }, - "fs-extra": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", - "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", - "requires": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - }, - "fs-minipass": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.7.tgz", - "integrity": "sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==", - "dev": true, - "requires": { - "minipass": "^2.6.0" - } - }, - "fs-write-stream-atomic": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz", - "integrity": "sha1-tH31NJPvkR33VzHnCp3tAYnbQMk=", - "requires": { - "graceful-fs": "^4.1.2", - "iferr": "^0.1.5", - "imurmurhash": "^0.1.4", - "readable-stream": "1 || 2" - } - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" - }, - "function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "dev": true - }, - "functional-red-black-tree": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", - "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=" - }, - "ganache": { - "version": "7.8.0", - "resolved": "https://registry.npmjs.org/ganache/-/ganache-7.8.0.tgz", - "integrity": "sha512-IrUYvsaE/m2/NaVIZ7D/gCnsmyU/buechnH6MhUipzG1qJcZIwIp/DoP/LZUcHyhy0Bv0NKZD2pGOjpRhn7l7A==", - "dev": true, - "requires": { - "@trufflesuite/bigint-buffer": "1.1.10", - "@trufflesuite/uws-js-unofficial": "20.10.0-unofficial.2", - "@types/bn.js": "^5.1.0", - "@types/lru-cache": "5.1.1", - "@types/seedrandom": "3.0.1", - "abstract-level": "1.0.3", - "abstract-leveldown": "7.2.0", - "async-eventemitter": "0.2.4", - "bufferutil": "4.0.5", - "emittery": "0.10.0", - "keccak": "3.0.2", - "leveldown": "6.1.0", - "secp256k1": "4.0.3", - "utf-8-validate": "5.0.7" - }, - "dependencies": { - "@trufflesuite/bigint-buffer": { - "version": "1.1.10", - "resolved": "https://registry.npmjs.org/@trufflesuite/bigint-buffer/-/bigint-buffer-1.1.10.tgz", - "integrity": "sha512-pYIQC5EcMmID74t26GCC67946mgTJFiLXOT/BYozgrd4UEY2JHEGLhWi9cMiQCt5BSqFEvKkCHNnoj82SRjiEw==", - "bundled": true, - "dev": true, - "requires": { - "node-gyp-build": "4.4.0" - }, - "dependencies": { - "node-gyp-build": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.4.0.tgz", - "integrity": "sha512-amJnQCcgtRVw9SvoebO3BKGESClrfXGCUTX9hSn1OuGQTQBOZmVd0Z0OlecpuRksKvbsUqALE8jls/ErClAPuQ==", - "bundled": true, - "dev": true - } - } - }, - "@trufflesuite/uws-js-unofficial": { - "version": "20.10.0-unofficial.2", - "resolved": "https://registry.npmjs.org/@trufflesuite/uws-js-unofficial/-/uws-js-unofficial-20.10.0-unofficial.2.tgz", - "integrity": "sha512-oQQlnS3oNeGsgS4K3KCSSavJgSb0W9D5ktZs4FacX9VbM7b+NlhjH96d6/G4fMrz+bc5MXRyco419on0X0dvRA==", - "dev": true, - "requires": { - "bufferutil": "4.0.5", - "utf-8-validate": "5.0.7", - "ws": "8.2.3" - } - }, - "@types/bn.js": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-5.1.0.tgz", - "integrity": "sha512-QSSVYj7pYFN49kW77o2s9xTCwZ8F2xLbjLLSEVh8D2F4JUhZtPAGOFLTD+ffqksBx/u4cE/KImFjyhqCjn/LIA==", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "@types/lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/@types/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-ssE3Vlrys7sdIzs5LOxCzTVMsU7i9oa/IaW92wF32JFb3CVczqOkru2xspuKczHEbG3nvmPY7IFqVmGGHdNbYw==", - "dev": true - }, - "@types/node": { - "version": "17.0.0", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.0.tgz", - "integrity": "sha512-eMhwJXc931Ihh4tkU+Y7GiLzT/y/DBNpNtr4yU9O2w3SYBsr9NaOPhQlLKRmoWtI54uNwuo0IOUFQjVOTZYRvw==", - "dev": true - }, - "@types/seedrandom": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@types/seedrandom/-/seedrandom-3.0.1.tgz", - "integrity": "sha512-giB9gzDeiCeloIXDgzFBCgjj1k4WxcDrZtGl6h1IqmUPlxF+Nx8Ve+96QCyDZ/HseB/uvDsKbpib9hU5cU53pw==", - "dev": true - }, - "abstract-level": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/abstract-level/-/abstract-level-1.0.3.tgz", - "integrity": "sha512-t6jv+xHy+VYwc4xqZMn2Pa9DjcdzvzZmQGRjTFc8spIbRGHgBrEKbPq+rYXc7CCo0lxgYvSgKVg9qZAhpVQSjA==", - "dev": true, - "requires": { - "buffer": "^6.0.3", - "catering": "^2.1.0", - "is-buffer": "^2.0.5", - "level-supports": "^4.0.0", - "level-transcoder": "^1.0.1", - "module-error": "^1.0.1", - "queue-microtask": "^1.2.3" - }, - "dependencies": { - "level-supports": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/level-supports/-/level-supports-4.0.1.tgz", - "integrity": "sha512-PbXpve8rKeNcZ9C1mUicC9auIYFyGpkV9/i6g76tLgANwWhtG2v7I4xNBUlkn3lE2/dZF3Pi0ygYGtLc4RXXdA==", - "dev": true - } - } - }, - "abstract-leveldown": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-7.2.0.tgz", - "integrity": "sha512-DnhQwcFEaYsvYDnACLZhMmCWd3rkOeEvglpa4q5i/5Jlm3UIsWaxVzuXvDLFCSCWRO3yy2/+V/G7FusFgejnfQ==", - "bundled": true, - "dev": true, - "requires": { - "buffer": "^6.0.3", - "catering": "^2.0.0", - "is-buffer": "^2.0.5", - "level-concat-iterator": "^3.0.0", - "level-supports": "^2.0.1", - "queue-microtask": "^1.2.3" - } - }, - "async": { - "version": "2.6.4", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.4.tgz", - "integrity": "sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==", - "dev": true, - "requires": { - "lodash": "^4.17.14" - } - }, - "async-eventemitter": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/async-eventemitter/-/async-eventemitter-0.2.4.tgz", - "integrity": "sha512-pd20BwL7Yt1zwDFy+8MX8F1+WCT8aQeKj0kQnTrH9WaeRETlRamVhD0JtRPmrV4GfOJ2F9CvdQkZeZhnh2TuHw==", - "dev": true, - "requires": { - "async": "^2.4.0" - } - }, - "base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", - "bundled": true, - "dev": true - }, - "brorand": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", - "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=", - "bundled": true, - "dev": true - }, - "buffer": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", - "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", - "bundled": true, - "dev": true, - "requires": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" - } - }, - "bufferutil": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/bufferutil/-/bufferutil-4.0.5.tgz", - "integrity": "sha512-HTm14iMQKK2FjFLRTM5lAVcyaUzOnqbPtesFIvREgXpJHdQm8bWS+GkQgIkfaBYRHuCnea7w8UVNfwiAQhlr9A==", - "dev": true, - "optional": true, - "requires": { - "node-gyp-build": "^4.3.0" - } - }, - "catering": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/catering/-/catering-2.1.0.tgz", - "integrity": "sha512-M5imwzQn6y+ODBfgi+cfgZv2hIUI6oYU/0f35Mdb1ujGeqeoI5tOnl9Q13DTH7LW+7er+NYq8stNOKZD/Z3U/A==", - "bundled": true, - "dev": true, - "requires": { - "queue-tick": "^1.0.0" - } - }, - "elliptic": { - "version": "6.5.4", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", - "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", - "bundled": true, - "dev": true, - "requires": { - "bn.js": "^4.11.9", - "brorand": "^1.1.0", - "hash.js": "^1.0.0", - "hmac-drbg": "^1.0.1", - "inherits": "^2.0.4", - "minimalistic-assert": "^1.0.1", - "minimalistic-crypto-utils": "^1.0.1" - }, - "dependencies": { - "bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "bundled": true, - "dev": true - } - } - }, - "emittery": { - "version": "0.10.0", - "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.10.0.tgz", - "integrity": "sha512-AGvFfs+d0JKCJQ4o01ASQLGPmSCxgfU9RFXvzPvZdjKK8oscynksuJhWrSTSw7j7Ep/sZct5b5ZhYCi8S/t0HQ==", - "dev": true - }, - "hash.js": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", - "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", - "bundled": true, - "dev": true, - "requires": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.1" - } - }, - "hmac-drbg": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", - "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", - "bundled": true, - "dev": true, - "requires": { - "hash.js": "^1.0.3", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.1" - } - }, - "ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", - "bundled": true, - "dev": true - }, - "inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "bundled": true, - "dev": true - }, - "is-buffer": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz", - "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==", - "bundled": true, - "dev": true - }, - "keccak": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/keccak/-/keccak-3.0.2.tgz", - "integrity": "sha512-PyKKjkH53wDMLGrvmRGSNWgmSxZOUqbnXwKL9tmgbFYA1iAYqW21kfR7mZXV0MlESiefxQQE9X9fTa3X+2MPDQ==", - "bundled": true, - "dev": true, - "requires": { - "node-addon-api": "^2.0.0", - "node-gyp-build": "^4.2.0", - "readable-stream": "^3.6.0" - } - }, - "level-concat-iterator": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/level-concat-iterator/-/level-concat-iterator-3.1.0.tgz", - "integrity": "sha512-BWRCMHBxbIqPxJ8vHOvKUsaO0v1sLYZtjN3K2iZJsRBYtp+ONsY6Jfi6hy9K3+zolgQRryhIn2NRZjZnWJ9NmQ==", - "bundled": true, - "dev": true, - "requires": { - "catering": "^2.1.0" - } - }, - "level-supports": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/level-supports/-/level-supports-2.1.0.tgz", - "integrity": "sha512-E486g1NCjW5cF78KGPrMDRBYzPuueMZ6VBXHT6gC7A8UYWGiM14fGgp+s/L1oFfDWSPV/+SFkYCmZ0SiESkRKA==", - "bundled": true, - "dev": true - }, - "level-transcoder": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/level-transcoder/-/level-transcoder-1.0.1.tgz", - "integrity": "sha512-t7bFwFtsQeD8cl8NIoQ2iwxA0CL/9IFw7/9gAjOonH0PWTTiRfY7Hq+Ejbsxh86tXobDQ6IOiddjNYIfOBs06w==", - "dev": true, - "requires": { - "buffer": "^6.0.3", - "module-error": "^1.0.1" - } - }, - "leveldown": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/leveldown/-/leveldown-6.1.0.tgz", - "integrity": "sha512-8C7oJDT44JXxh04aSSsfcMI8YiaGRhOFI9/pMEL7nWJLVsWajDPTRxsSHTM2WcTVY5nXM+SuRHzPPi0GbnDX+w==", - "bundled": true, - "dev": true, - "requires": { - "abstract-leveldown": "^7.2.0", - "napi-macros": "~2.0.0", - "node-gyp-build": "^4.3.0" - } - }, - "lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "dev": true - }, - "minimalistic-assert": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", - "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", - "bundled": true, - "dev": true - }, - "minimalistic-crypto-utils": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", - "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=", - "bundled": true, - "dev": true - }, - "module-error": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/module-error/-/module-error-1.0.2.tgz", - "integrity": "sha512-0yuvsqSCv8LbaOKhnsQ/T5JhyFlCYLPXK3U2sgV10zoKQwzs/MyfuQUOZQ1V/6OCOJsK/TRgNVrPuPDqtdMFtA==", - "dev": true - }, - "napi-macros": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/napi-macros/-/napi-macros-2.0.0.tgz", - "integrity": "sha512-A0xLykHtARfueITVDernsAWdtIMbOJgKgcluwENp3AlsKN/PloyO10HtmoqnFAQAcxPkgZN7wdfPfEd0zNGxbg==", - "bundled": true, - "dev": true - }, - "node-addon-api": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-2.0.2.tgz", - "integrity": "sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA==", - "bundled": true, - "dev": true - }, - "node-gyp-build": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.3.0.tgz", - "integrity": "sha512-iWjXZvmboq0ja1pUGULQBexmxq8CV4xBhX7VDOTbL7ZR4FOowwY/VOtRxBN/yKxmdGoIp4j5ysNT4u3S2pDQ3Q==", - "bundled": true, - "dev": true - }, - "queue-microtask": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", - "bundled": true, - "dev": true - }, - "queue-tick": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/queue-tick/-/queue-tick-1.0.0.tgz", - "integrity": "sha512-ULWhjjE8BmiICGn3G8+1L9wFpERNxkf8ysxkAer4+TFdRefDaXOCV5m92aMB9FtBVmn/8sETXLXY6BfW7hyaWQ==", - "bundled": true, - "dev": true - }, - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "bundled": true, - "dev": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - }, - "safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "bundled": true, - "dev": true - }, - "secp256k1": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-4.0.3.tgz", - "integrity": "sha512-NLZVf+ROMxwtEj3Xa562qgv2BK5e2WNmXPiOdVIPLgs6lyTzMvBq0aWTYMI5XCP9jZMVKOcqZLw/Wc4vDkuxhA==", - "bundled": true, - "dev": true, - "requires": { - "elliptic": "^6.5.4", - "node-addon-api": "^2.0.0", - "node-gyp-build": "^4.2.0" - } - }, - "string_decoder": { - "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==", - "bundled": true, - "dev": true, - "requires": { - "safe-buffer": "~5.2.0" - } - }, - "utf-8-validate": { - "version": "5.0.7", - "resolved": "https://registry.npmjs.org/utf-8-validate/-/utf-8-validate-5.0.7.tgz", - "integrity": "sha512-vLt1O5Pp+flcArHGIyKEQq883nBt8nN8tVBcoL0qUXj2XT1n7p70yGIq2VK98I5FdZ1YHc0wk/koOnHjnXWk1Q==", - "dev": true, - "optional": true, - "requires": { - "node-gyp-build": "^4.3.0" - } - }, - "util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", - "bundled": true, - "dev": true - }, - "ws": { - "version": "8.2.3", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.2.3.tgz", - "integrity": "sha512-wBuoj1BDpC6ZQ1B7DWQBYVLphPWkm8i9Y0/3YdHjHKHiohOJ1ws+3OccDWtH+PoC9DZD5WOTrJvNbWvjS6JWaA==", - "dev": true - } - } - }, - "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==", - "peer": true - }, - "get-caller-file": { - "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": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz", - "integrity": "sha1-6td0q+5y4gQJQzoGY2YCPdaIekE=" - }, - "get-intrinsic": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", - "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", - "dev": true, - "requires": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1" - } - }, - "get-iterator": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/get-iterator/-/get-iterator-1.0.2.tgz", - "integrity": "sha512-v+dm9bNVfOYsY1OrhaCrmyOcYoSeVvbt+hHZ0Au+T+p1y+0Uyj9aMaGIeUTT6xdpRbWzDeYKvfOslPhggQMcsg==" - }, - "get-stream": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", - "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", - "dev": true, - "requires": { - "pump": "^3.0.0" - } - }, - "get-value": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", - "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=" - }, - "getpass": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", - "requires": { - "assert-plus": "^1.0.0" - } - }, - "glob": { - "version": "7.1.6", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", - "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", - "requires": { - "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" - } - }, - "glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "requires": { - "is-glob": "^4.0.1" - } - }, - "global": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/global/-/global-4.3.2.tgz", - "integrity": "sha1-52mJJopsdMOJCLEwWxD8DjlOnQ8=", - "requires": { - "min-document": "^2.19.0", - "process": "~0.5.1" - } - }, - "global-modules": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz", - "integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==", - "requires": { - "global-prefix": "^3.0.0" - } - }, - "global-prefix": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz", - "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==", - "requires": { - "ini": "^1.3.5", - "kind-of": "^6.0.2", - "which": "^1.3.1" - }, - "dependencies": { - "which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "requires": { - "isexe": "^2.0.0" - } - } - } - }, - "globals": { - "version": "12.4.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-12.4.0.tgz", - "integrity": "sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg==", - "dev": true, - "requires": { - "type-fest": "^0.8.1" - } - }, - "got": { - "version": "9.6.0", - "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz", - "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==", - "dev": true, - "requires": { - "@sindresorhus/is": "^0.14.0", - "@szmarczak/http-timer": "^1.1.2", - "cacheable-request": "^6.0.0", - "decompress-response": "^3.3.0", - "duplexer3": "^0.1.4", - "get-stream": "^4.1.0", - "lowercase-keys": "^1.0.1", - "mimic-response": "^1.0.1", - "p-cancelable": "^1.0.0", - "to-readable-stream": "^1.0.0", - "url-parse-lax": "^3.0.0" - } - }, - "graceful-fs": { - "version": "4.2.10", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", - "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==" - }, - "graceful-readlink": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz", - "integrity": "sha1-TK+tdrxi8C+gObL5Tpo906ORpyU=", - "dev": true - }, - "graphql": { - "version": "15.8.0", - "resolved": "https://registry.npmjs.org/graphql/-/graphql-15.8.0.tgz", - "integrity": "sha512-5gghUc24tP9HRznNpV2+FIoq3xKkj5dTQqf4v0CpdPbFVwFkWoxOM+o+2OC9ZSvjEMTjfmG9QT+gcvggTwW1zw==", - "dev": true, - "optional": true - }, - "graphql-tag": { - "version": "2.12.6", - "resolved": "https://registry.npmjs.org/graphql-tag/-/graphql-tag-2.12.6.tgz", - "integrity": "sha512-FdSNcu2QQcWnM2VNvSCCDCVS5PpPqpzgFT8+GXzqJuoDd0CBncxCY278u4mhRO7tMgo2JjgJA5aZ+nWSQ/Z+xg==", - "dev": true, - "optional": true, - "requires": { - "tslib": "^2.1.0" - }, - "dependencies": { - "tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==", - "dev": true, - "optional": true - } - } - }, - "growl": { - "version": "1.10.5", - "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz", - "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==" - }, - "har-schema": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", - "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=" - }, - "har-validator": { - "version": "5.1.5", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", - "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", - "dev": true, - "requires": { - "ajv": "^6.12.3", - "har-schema": "^2.0.0" - } - }, - "has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dev": true, - "requires": { - "function-bind": "^1.1.1" - } - }, - "has-bigints": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz", - "integrity": "sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==", - "dev": true - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" - }, - "has-symbol-support-x": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/has-symbol-support-x/-/has-symbol-support-x-1.4.2.tgz", - "integrity": "sha512-3ToOva++HaW+eCpgqZrCfN51IPB+7bJNVT6CUATzueB5Heb8o6Nam0V3HG5dlDvZU1Gn5QLcbahiKw/XVk5JJw==", - "dev": true - }, - "has-symbols": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", - "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==", - "dev": true - }, - "has-to-string-tag-x": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/has-to-string-tag-x/-/has-to-string-tag-x-1.4.1.tgz", - "integrity": "sha512-vdbKfmw+3LoOYVr+mtxHaX5a96+0f3DljYd8JOqvOLsf5mw2Otda2qCDT9qRqLAhrjyQ0h7ual5nOiASpsGNFw==", - "dev": true, - "requires": { - "has-symbol-support-x": "^1.4.1" - } - }, - "has-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", - "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", - "requires": { - "get-value": "^2.0.6", - "has-values": "^1.0.0", - "isobject": "^3.0.0" - } - }, - "has-values": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", - "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", - "requires": { - "is-number": "^3.0.0", - "kind-of": "^4.0.0" - }, - "dependencies": { - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" - }, - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "kind-of": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", - "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "hash-base": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", - "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", - "requires": { - "inherits": "^2.0.4", - "readable-stream": "^3.6.0", - "safe-buffer": "^5.2.0" - }, - "dependencies": { - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - } - } - }, - "hash.js": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.3.tgz", - "integrity": "sha512-/UETyP0W22QILqS+6HowevwhEFJ3MBJnwTf75Qob9Wz9t0DPuisL8kW8YZMK62dHAKE1c1p+gY1TtOLY+USEHA==", - "requires": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.0" - } - }, - "he": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", - "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==" - }, - "header-case": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/header-case/-/header-case-1.0.1.tgz", - "integrity": "sha512-i0q9mkOeSuhXw6bGgiQCCBgY/jlZuV/7dZXyZ9c6LcBrqwvT8eT719E9uxE5LiZftdl+z81Ugbg/VvXV4OJOeQ==", - "dev": true, - "requires": { - "no-case": "^2.2.0", - "upper-case": "^1.1.3" - } - }, - "hmac-drbg": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", - "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", - "requires": { - "hash.js": "^1.0.3", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.1" - } - }, - "homedir-polyfill": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz", - "integrity": "sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==", - "requires": { - "parse-passwd": "^1.0.0" - } - }, - "hosted-git-info": { - "version": "2.8.8", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz", - "integrity": "sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==", - "dev": true - }, - "htmlparser2": { - "version": "3.10.1", - "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.10.1.tgz", - "integrity": "sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ==", - "dev": true, - "requires": { - "domelementtype": "^1.3.1", - "domhandler": "^2.3.0", - "domutils": "^1.5.1", - "entities": "^1.1.1", - "inherits": "^2.0.1", - "readable-stream": "^3.1.1" - }, - "dependencies": { - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - } - } - }, - "http-cache-semantics": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", - "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==", - "dev": true - }, - "http-errors": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz", - "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==", - "dev": true, - "requires": { - "depd": "~1.1.2", - "inherits": "2.0.3", - "setprototypeof": "1.1.1", - "statuses": ">= 1.5.0 < 2", - "toidentifier": "1.0.0" - }, - "dependencies": { - "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", - "dev": true - } - } - }, - "http-https": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/http-https/-/http-https-1.0.0.tgz", - "integrity": "sha1-L5CN1fHbQGjAWM1ubUzjkskTOJs=" - }, - "http-parser-js": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.2.tgz", - "integrity": "sha512-opCO9ASqg5Wy2FNo7A0sxy71yGbbkJJXLdgMK04Tcypw9jr2MgWbyubb0+WdmDmGnFflO7fRbqbaihh/ENDlRQ==", - "dev": true - }, - "http-signature": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", - "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", - "requires": { - "assert-plus": "^1.0.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" - } - }, - "http2-wrapper": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-2.2.0.tgz", - "integrity": "sha512-kZB0wxMo0sh1PehyjJUWRFEd99KC5TLjZ2cULC4f9iqJBAmKQQXEICjxl5iPJRwP40dpeHFqqhm7tYCvODpqpQ==", - "dev": true, - "requires": { - "quick-lru": "^5.1.1", - "resolve-alpn": "^1.2.0" - } - }, - "https-browserify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", - "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=" - }, - "iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "dev": true, - "requires": { - "safer-buffer": ">= 2.1.2 < 3" - } - }, - "idb": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/idb/-/idb-3.0.2.tgz", - "integrity": "sha512-+FLa/0sTXqyux0o6C+i2lOR0VoS60LU/jzUo5xjfY6+7sEEgy4Gz1O7yFBXvjd7N0NyIGWIRg8DcQSLEG+VSPw==", - "dev": true - }, - "idna-uts46-hx": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/idna-uts46-hx/-/idna-uts46-hx-2.3.1.tgz", - "integrity": "sha512-PWoF9Keq6laYdIRwwCdhTPl60xRqAloYNMQLiyUnG42VjT53oW07BXIRM+NK7eQjzXjAk2gUvX9caRxlnF9TAA==", - "dev": true, - "requires": { - "punycode": "2.1.0" - }, - "dependencies": { - "punycode": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.0.tgz", - "integrity": "sha1-X4Y+3Im5bbCQdLrXlHvwkFbKTn0=", - "dev": true - } - } - }, - "ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==" - }, - "iferr": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz", - "integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=" - }, - "ignore": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", - "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", - "dev": true - }, - "immediate": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.3.0.tgz", - "integrity": "sha512-HR7EVodfFUdQCTIeySw+WDRFJlPcLOJbXfwwZ7Oom6tjsvZ3bOkCDJHehQC3nxJrv7+f9XecwazynjU8e4Vw3Q==" - }, - "import-fresh": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.2.1.tgz", - "integrity": "sha512-6e1q1cnWP2RXD9/keSkxHScg508CdXqXWgWBaETNhyuBFz+kUZlKboh+ISK+bU++DmbHimVBrOz/zzPe0sZ3sQ==", - "dev": true, - "requires": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - } - }, - "import-local": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/import-local/-/import-local-2.0.0.tgz", - "integrity": "sha512-b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ==", - "requires": { - "pkg-dir": "^3.0.0", - "resolve-cwd": "^2.0.0" - } - }, - "imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=" - }, - "infer-owner": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", - "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==" - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" - }, - "ini": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" - }, - "inquirer": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-6.5.2.tgz", - "integrity": "sha512-cntlB5ghuB0iuO65Ovoi8ogLHiWGs/5yNrtUcKjFhSSiVeAIVpD7koaSU9RM8mpXw5YDi9RdYXGQMaOURB7ycQ==", - "dev": true, - "requires": { - "ansi-escapes": "^3.2.0", - "chalk": "^2.4.2", - "cli-cursor": "^2.1.0", - "cli-width": "^2.0.0", - "external-editor": "^3.0.3", - "figures": "^2.0.0", - "lodash": "^4.17.12", - "mute-stream": "0.0.7", - "run-async": "^2.2.0", - "rxjs": "^6.4.0", - "string-width": "^2.1.0", - "strip-ansi": "^5.1.0", - "through": "^2.3.6" - }, - "dependencies": { - "cli-cursor": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", - "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", - "dev": true, - "requires": { - "restore-cursor": "^2.0.0" - } - }, - "mimic-fn": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", - "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", - "dev": true - }, - "onetime": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", - "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", - "dev": true, - "requires": { - "mimic-fn": "^1.0.0" - } - }, - "restore-cursor": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", - "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", - "dev": true, - "requires": { - "onetime": "^2.0.0", - "signal-exit": "^3.0.2" - } - } - } - }, - "interpret": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", - "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==" - }, - "ipaddr.js": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", - "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", - "dev": true - }, - "ipfs-http-client-lite": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/ipfs-http-client-lite/-/ipfs-http-client-lite-0.3.0.tgz", - "integrity": "sha512-fmxEctpzqaPd0gooBuvjMwxSoqz15rwjjm2ZF3Ns4Ckz/zz5JEmiDKuwlMOfwkARd5Wsiy2FqQpQEvBTJ8R7Og==", - "requires": { - "abort-controller": "^3.0.0", - "async-iterator-to-pull-stream": "^1.3.0", - "buffer": "^5.2.1", - "cids": "^0.7.1", - "explain-error": "^1.0.4", - "form-data": "^2.4.0", - "iterable-ndjson": "^1.1.0", - "node-fetch": "^2.6.0", - "pull-stream-to-async-iterator": "^1.0.2", - "querystring": "^0.2.0" - }, - "dependencies": { - "form-data": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.5.1.tgz", - "integrity": "sha512-m21N3WOmEEURgk6B9GLOE4RuWOFf28Lhh9qGYeNlGq4VDXUlJy2th2slBNU8Gp8EzloYZOibZJ7t5ecIrFSjVA==", - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", - "mime-types": "^2.1.12" - } - }, - "node-fetch": { - "version": "2.6.7", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", - "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", - "requires": { - "whatwg-url": "^5.0.0" - } - } - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-arguments": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.0.4.tgz", - "integrity": "sha512-xPh0Rmt8NE65sNzvyUmWgI1tz3mKq74lGA0mL8LYZcoIzKOzDh6HmrYm3d18k60nHerC8A9Km8kYu87zfSFnLA==", - "dev": true - }, - "is-bigint": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.2.tgz", - "integrity": "sha512-0JV5+SOCQkIdzjBK9buARcV804Ddu7A0Qet6sHi3FimE9ne6m4BGQZfRn+NZiXbBk4F4XmHfDZIipLj9pX8dSA==", - "dev": true - }, - "is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "requires": { - "binary-extensions": "^2.0.0" - } - }, - "is-boolean-object": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.1.tgz", - "integrity": "sha512-bXdQWkECBUIAcCkeH1unwJLIpZYaa5VvuygSyS/c2lf719mTKZDU5UdDRlpd01UjADgmW8RfqaP+mRaVPdr/Ng==", - "dev": true, - "requires": { - "call-bind": "^1.0.2" - } - }, - "is-buffer": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz", - "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==", - "dev": true - }, - "is-callable": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.3.tgz", - "integrity": "sha512-J1DcMe8UYTBSrKezuIUTUwjXsho29693unXM2YhJUTR2txK/eG47bvNa/wipPFmZFgr/N6f1GA66dv0mEyTIyQ==", - "dev": true - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-date-object": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz", - "integrity": "sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==", - "dev": true - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - }, - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "requires": { - "is-plain-object": "^2.0.4" - } - }, - "is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=" - }, - "is-fn": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fn/-/is-fn-1.0.0.tgz", - "integrity": "sha1-lUPV3nvPWwiiLsiiC65uKG1RDYw=" - }, - "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": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" - }, - "is-function": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-function/-/is-function-1.0.2.tgz", - "integrity": "sha512-lw7DUp0aWXYg+CBCN+JKkcE0Q2RayZnSvnZBlwgxHBQhqt5pZNVy4Ri7H9GmmXkdu7LUthszM+Tor1u/2iBcpQ==" - }, - "is-generator-function": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.9.tgz", - "integrity": "sha512-ZJ34p1uvIfptHCN7sFTjGibB9/oBg17sHqzDLfuwhvmN/qLVvIQXRQ8licZQ35WJ8KuEQt/etnnzQFI9C9Ue/A==", - "dev": true - }, - "is-glob": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", - "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", - "requires": { - "is-extglob": "^2.1.1" - } - }, - "is-hex-prefixed": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-hex-prefixed/-/is-hex-prefixed-1.0.0.tgz", - "integrity": "sha1-fY035q135dEnFIkTxXPggtd39VQ=" - }, - "is-lower-case": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/is-lower-case/-/is-lower-case-1.1.3.tgz", - "integrity": "sha512-+5A1e/WJpLLXZEDlgz4G//WYSHyQBD32qa4Jd3Lw06qQlv3fJHnp3YIHjTQSGzHMgzmVKz2ZP3rBxTHkPw/lxA==", - "dev": true, - "requires": { - "lower-case": "^1.1.0" - } - }, - "is-natural-number": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/is-natural-number/-/is-natural-number-4.0.1.tgz", - "integrity": "sha1-q5124dtM7VHjXeDHLr7PCfc0zeg=", - "dev": true - }, - "is-negative-zero": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.1.tgz", - "integrity": "sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w==", - "dev": true - }, - "is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" - }, - "is-number-object": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.5.tgz", - "integrity": "sha512-RU0lI/n95pMoUKu9v1BZP5MBcZuNSVJkMkAG2dJqC4z2GlkGUNeH68SuHuBKBD/XFe+LHZ+f9BKkLET60Niedw==", - "dev": true - }, - "is-obj": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", - "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=", - "dev": true - }, - "is-object": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-object/-/is-object-1.0.1.tgz", - "integrity": "sha1-iVJojF7C/9awPsyF52ngKQMINHA=", - "dev": true - }, - "is-plain-obj": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", - "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=", - "dev": true - }, - "is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "requires": { - "isobject": "^3.0.1" - } - }, - "is-regex": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.3.tgz", - "integrity": "sha512-qSVXFz28HM7y+IWX6vLCsexdlvzT1PJNFSBuaQLQ5o0IEw8UDYW6/2+eCMVyIsbM8CNLX2a/QWmSpyxYEHY7CQ==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "has-symbols": "^1.0.2" - } - }, - "is-retry-allowed": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.2.0.tgz", - "integrity": "sha512-RUbUeKwvm3XG2VYamhJL1xFktgjvPzL0Hq8C+6yrWIswDy3BIXGqCxhxkc30N9jqK311gVU137K8Ei55/zVJRg==", - "dev": true - }, - "is-stream": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" - }, - "is-string": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.5.tgz", - "integrity": "sha512-buY6VNRjhQMiF1qWDouloZlQbRhDPCebwxSjxMjxgemYT46YMd2NR0/H+fBhEfWX4A/w9TBJ+ol+okqJKFE6vQ==", - "dev": true - }, - "is-symbol": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz", - "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==", - "dev": true, - "requires": { - "has-symbols": "^1.0.1" - } - }, - "is-typed-array": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.5.tgz", - "integrity": "sha512-S+GRDgJlR3PyEbsX/Fobd9cqpZBuvUS+8asRqYDMLCb2qMzt1oz5m5oxQCxOgUDxiWsOVNi4yaF+/uvdlHlYug==", - "dev": true, - "requires": { - "available-typed-arrays": "^1.0.2", - "call-bind": "^1.0.2", - "es-abstract": "^1.18.0-next.2", - "foreach": "^2.0.5", - "has-symbols": "^1.0.1" - } - }, - "is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" - }, - "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==", - "dev": true - }, - "is-upper-case": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/is-upper-case/-/is-upper-case-1.1.2.tgz", - "integrity": "sha512-GQYSJMgfeAmVwh9ixyk888l7OIhNAGKtY6QA+IrWlu9MDTCaXmeozOZ2S9Knj7bQwBO/H6J2kb+pbyTUiMNbsw==", - "dev": true, - "requires": { - "upper-case": "^1.1.0" - } - }, - "is-url": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/is-url/-/is-url-1.2.4.tgz", - "integrity": "sha512-ITvGim8FhRiYe4IQ5uHSkj7pVaPDrCTkNd3yq3cV7iZAcJdHTUMPMEHcqSOy9xZ9qFenQCvi+2wjH9a1nXqHww==", - "dev": true - }, - "is-windows": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", - "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==" - }, - "is-wsl": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", - "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=" - }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" - }, - "isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" - }, - "isomorphic-fetch": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz", - "integrity": "sha1-YRrhrPFPXoH3KVB0coGf6XM1WKk=", - "dev": true, - "requires": { - "node-fetch": "^1.0.1", - "whatwg-fetch": ">=0.10.0" - } - }, - "isomorphic-ws": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/isomorphic-ws/-/isomorphic-ws-4.0.1.tgz", - "integrity": "sha512-BhBvN2MBpWTaSHdWRb/bwdZJ1WaehQ2L1KngkCkfLUGF0mAWAT1sQUQacEmQ0jXkFw/czDXPNQSL5u2/Krsz1w==", - "dev": true, - "optional": true, - "requires": {} - }, - "isstream": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" - }, - "isurl": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isurl/-/isurl-1.0.0.tgz", - "integrity": "sha512-1P/yWsxPlDtn7QeRD+ULKQPaIaN6yF368GZ2vDfv0AL0NwpStafjWCDDdn0k8wgFMWpVAqG7oJhxHnlud42i9w==", - "dev": true, - "requires": { - "has-to-string-tag-x": "^1.2.0", - "is-object": "^1.0.1" - } - }, - "it-each": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/it-each/-/it-each-0.4.0.tgz", - "integrity": "sha512-fbOxSUiOByQnkgoFUEKPfzAuoUZ0mQRAXdWWsfI53gMJZ2oyhPcJBOCFx8yuMM36yP6OUUL3LgilYEqBiSACmQ==", - "requires": { - "dot-notes": "3.1.1" - } - }, - "iterable-ndjson": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/iterable-ndjson/-/iterable-ndjson-1.1.0.tgz", - "integrity": "sha512-OOp1Lb0o3k5MkXHx1YaIY5Z0ELosZfTnBaas9f8opJVcZGBIONA2zY/6CYE+LKkqrSDooIneZbrBGgOZnHPkrg==", - "requires": { - "string_decoder": "^1.2.0" - }, - "dependencies": { - "string_decoder": { - "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==", - "requires": { - "safe-buffer": "~5.2.0" - } - } - } - }, - "js-sha3": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.5.7.tgz", - "integrity": "sha1-DU/9gALVMzqrr0oj7tL2N0yfKOc=" - }, - "js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" - }, - "js-yaml": { - "version": "3.13.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz", - "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==", - "dev": true, - "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - } - }, - "jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=" - }, - "jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==" - }, - "json-buffer": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", - "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=", - "dev": true - }, - "json-parse-better-errors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", - "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==" - }, - "json-pointer": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/json-pointer/-/json-pointer-0.6.2.tgz", - "integrity": "sha512-vLWcKbOaXlO+jvRy4qNd+TI1QUPZzfJj1tpJ3vAXDych5XJf93ftpUKe5pKCrzyIIwgBJcOcCVRUfqQP25afBw==", - "dev": true, - "requires": { - "foreach": "^2.0.4" - } - }, - "json-rpc-engine": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/json-rpc-engine/-/json-rpc-engine-5.4.0.tgz", - "integrity": "sha512-rAffKbPoNDjuRnXkecTjnsE3xLLrb00rEkdgalINhaYVYIxDwWtvYBr9UFbhTvPB1B2qUOLoFd/cV6f4Q7mh7g==", - "requires": { - "eth-rpc-errors": "^3.0.0", - "safe-event-emitter": "^1.0.1" - } - }, - "json-rpc-random-id": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-rpc-random-id/-/json-rpc-random-id-1.0.1.tgz", - "integrity": "sha1-uknZat7RRE27jaPSA3SKy7zeyMg=" - }, - "json-schema": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", - "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=" - }, - "json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" - }, - "json-schema-typed": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/json-schema-typed/-/json-schema-typed-7.0.3.tgz", - "integrity": "sha512-7DE8mpG+/fVw+dTpjbxnx47TaMnDfOI1jwft9g1VybltZCduyRQPJPvc+zzKY9WPHxhPWczyFuYa6I8Mw4iU5A==", - "dev": true, - "optional": true - }, - "json-stable-stringify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz", - "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=", - "requires": { - "jsonify": "~0.0.0" - } - }, - "json-stable-stringify-without-jsonify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", - "dev": true - }, - "json-stringify-safe": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" - }, - "json-text-sequence": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/json-text-sequence/-/json-text-sequence-0.1.1.tgz", - "integrity": "sha1-py8hfcSvxGKf/1/rME3BvVGi89I=", - "dev": true, - "requires": { - "delimit-stream": "0.1.0" - } - }, - "json5": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz", - "integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==", - "peer": true, - "requires": { - "minimist": "^1.2.5" - } - }, - "jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", - "requires": { - "graceful-fs": "^4.1.6" - } - }, - "jsonify": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", - "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=" - }, - "jsprim": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", - "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", - "requires": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.2.3", - "verror": "1.10.0" - } - }, - "keccak": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/keccak/-/keccak-3.0.3.tgz", - "integrity": "sha512-JZrLIAJWuZxKbCilMpNz5Vj7Vtb4scDG3dMXLOsbzBmQGyjwE61BbW7bJkfKKCShXiQZt3T6sBgALRtmd+nZaQ==", - "requires": { - "node-addon-api": "^2.0.0", - "node-gyp-build": "^4.2.0", - "readable-stream": "^3.6.0" - }, - "dependencies": { - "readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - } - } - }, - "keyv": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz", - "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==", - "dev": true, - "requires": { - "json-buffer": "3.0.0" - } - }, - "kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==" - }, - "klaw": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/klaw/-/klaw-1.3.1.tgz", - "integrity": "sha1-QIhDO0azsbolnXh4XY6W9zugJDk=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.9" - } - }, - "level": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/level/-/level-6.0.1.tgz", - "integrity": "sha512-psRSqJZCsC/irNhfHzrVZbmPYXDcEYhA5TVNwr+V92jF44rbf86hqGp8fiT702FyiArScYIlPSBTDUASCVNSpw==", - "dev": true, - "optional": true, - "requires": { - "level-js": "^5.0.0", - "level-packager": "^5.1.0", - "leveldown": "^5.4.0" - } - }, - "level-codec": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/level-codec/-/level-codec-7.0.1.tgz", - "integrity": "sha512-Ua/R9B9r3RasXdRmOtd+t9TCOEIIlts+TN/7XTT2unhDaL6sJn83S3rUyljbr6lVtw49N3/yA0HHjpV6Kzb2aQ==" - }, - "level-concat-iterator": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/level-concat-iterator/-/level-concat-iterator-3.1.0.tgz", - "integrity": "sha512-BWRCMHBxbIqPxJ8vHOvKUsaO0v1sLYZtjN3K2iZJsRBYtp+ONsY6Jfi6hy9K3+zolgQRryhIn2NRZjZnWJ9NmQ==", - "dev": true, - "optional": true, - "requires": { - "catering": "^2.1.0" - } - }, - "level-errors": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/level-errors/-/level-errors-1.0.5.tgz", - "integrity": "sha512-/cLUpQduF6bNrWuAC4pwtUKA5t669pCsCi2XbmojG2tFeOr9j6ShtdDCtFFQO1DRt+EVZhx9gPzP9G2bUaG4ig==", - "requires": { - "errno": "~0.1.1" - } - }, - "level-iterator-stream": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/level-iterator-stream/-/level-iterator-stream-1.3.1.tgz", - "integrity": "sha1-5Dt4sagUPm+pek9IXrjqUwNS8u0=", - "requires": { - "inherits": "^2.0.1", - "level-errors": "^1.0.3", - "readable-stream": "^1.0.33", - "xtend": "^4.0.0" - }, - "dependencies": { - "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" - }, - "readable-stream": { - "version": "1.1.14", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", - "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" - } - }, - "string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" - } - } - }, - "level-js": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/level-js/-/level-js-5.0.2.tgz", - "integrity": "sha512-SnBIDo2pdO5VXh02ZmtAyPP6/+6YTJg2ibLtl9C34pWvmtMEmRTWpra+qO/hifkUtBTOtfx6S9vLDjBsBK4gRg==", - "dev": true, - "optional": true, - "requires": { - "abstract-leveldown": "~6.2.3", - "buffer": "^5.5.0", - "inherits": "^2.0.3", - "ltgt": "^2.1.2" - }, - "dependencies": { - "abstract-leveldown": { - "version": "6.2.3", - "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-6.2.3.tgz", - "integrity": "sha512-BsLm5vFMRUrrLeCcRc+G0t2qOaTzpoJQLOubq2XM72eNpjF5UdU5o/5NvlNhx95XHcAvcl8OMXr4mlg/fRgUXQ==", - "dev": true, - "optional": true, - "requires": { - "buffer": "^5.5.0", - "immediate": "^3.2.3", - "level-concat-iterator": "~2.0.0", - "level-supports": "~1.0.0", - "xtend": "~4.0.0" - } - }, - "level-concat-iterator": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/level-concat-iterator/-/level-concat-iterator-2.0.1.tgz", - "integrity": "sha512-OTKKOqeav2QWcERMJR7IS9CUo1sHnke2C0gkSmcR7QuEtFNLLzHQAvnMw8ykvEcv0Qtkg0p7FOwP1v9e5Smdcw==", - "dev": true, - "optional": true - }, - "level-supports": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/level-supports/-/level-supports-1.0.1.tgz", - "integrity": "sha512-rXM7GYnW8gsl1vedTJIbzOrRv85c/2uCMpiiCzO2fndd06U/kUXEEU9evYn4zFggBOg36IsBW8LzqIpETwwQzg==", - "dev": true, - "optional": true, - "requires": { - "xtend": "^4.0.2" - } - } - } - }, - "level-packager": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/level-packager/-/level-packager-5.1.1.tgz", - "integrity": "sha512-HMwMaQPlTC1IlcwT3+swhqf/NUO+ZhXVz6TY1zZIIZlIR0YSn8GtAAWmIvKjNY16ZkEg/JcpAuQskxsXqC0yOQ==", - "dev": true, - "optional": true, - "requires": { - "encoding-down": "^6.3.0", - "levelup": "^4.3.2" - }, - "dependencies": { - "abstract-leveldown": { - "version": "6.2.3", - "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-6.2.3.tgz", - "integrity": "sha512-BsLm5vFMRUrrLeCcRc+G0t2qOaTzpoJQLOubq2XM72eNpjF5UdU5o/5NvlNhx95XHcAvcl8OMXr4mlg/fRgUXQ==", - "dev": true, - "optional": true, - "requires": { - "buffer": "^5.5.0", - "immediate": "^3.2.3", - "level-concat-iterator": "~2.0.0", - "level-supports": "~1.0.0", - "xtend": "~4.0.0" - } - }, - "deferred-leveldown": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/deferred-leveldown/-/deferred-leveldown-5.3.0.tgz", - "integrity": "sha512-a59VOT+oDy7vtAbLRCZwWgxu2BaCfd5Hk7wxJd48ei7I+nsg8Orlb9CLG0PMZienk9BSUKgeAqkO2+Lw+1+Ukw==", - "dev": true, - "optional": true, - "requires": { - "abstract-leveldown": "~6.2.1", - "inherits": "^2.0.3" - } - }, - "level-concat-iterator": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/level-concat-iterator/-/level-concat-iterator-2.0.1.tgz", - "integrity": "sha512-OTKKOqeav2QWcERMJR7IS9CUo1sHnke2C0gkSmcR7QuEtFNLLzHQAvnMw8ykvEcv0Qtkg0p7FOwP1v9e5Smdcw==", - "dev": true, - "optional": true - }, - "level-errors": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/level-errors/-/level-errors-2.0.1.tgz", - "integrity": "sha512-UVprBJXite4gPS+3VznfgDSU8PTRuVX0NXwoWW50KLxd2yw4Y1t2JUR5In1itQnudZqRMT9DlAM3Q//9NCjCFw==", - "dev": true, - "optional": true, - "requires": { - "errno": "~0.1.1" - } - }, - "level-iterator-stream": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/level-iterator-stream/-/level-iterator-stream-4.0.2.tgz", - "integrity": "sha512-ZSthfEqzGSOMWoUGhTXdX9jv26d32XJuHz/5YnuHZzH6wldfWMOVwI9TBtKcya4BKTyTt3XVA0A3cF3q5CY30Q==", - "dev": true, - "optional": true, - "requires": { - "inherits": "^2.0.4", - "readable-stream": "^3.4.0", - "xtend": "^4.0.2" - } - }, - "level-supports": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/level-supports/-/level-supports-1.0.1.tgz", - "integrity": "sha512-rXM7GYnW8gsl1vedTJIbzOrRv85c/2uCMpiiCzO2fndd06U/kUXEEU9evYn4zFggBOg36IsBW8LzqIpETwwQzg==", - "dev": true, - "optional": true, - "requires": { - "xtend": "^4.0.2" - } - }, - "levelup": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/levelup/-/levelup-4.4.0.tgz", - "integrity": "sha512-94++VFO3qN95cM/d6eBXvd894oJE0w3cInq9USsyQzzoJxmiYzPAocNcuGCPGGjoXqDVJcr3C1jzt1TSjyaiLQ==", - "dev": true, - "optional": true, - "requires": { - "deferred-leveldown": "~5.3.0", - "level-errors": "~2.0.0", - "level-iterator-stream": "~4.0.0", - "level-supports": "~1.0.0", - "xtend": "~4.0.0" - } - }, - "readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "dev": true, - "optional": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - } - } - }, - "level-supports": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/level-supports/-/level-supports-2.1.0.tgz", - "integrity": "sha512-E486g1NCjW5cF78KGPrMDRBYzPuueMZ6VBXHT6gC7A8UYWGiM14fGgp+s/L1oFfDWSPV/+SFkYCmZ0SiESkRKA==", - "dev": true, - "optional": true - }, - "level-write-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/level-write-stream/-/level-write-stream-1.0.0.tgz", - "integrity": "sha512-bBNKOEOMl8msO+uIM9YX/gUO6ckokZ/4pCwTm/lwvs46x6Xs8Zy0sn3Vh37eDqse4mhy4fOMIb/JsSM2nyQFtw==", - "dev": true, - "optional": true, - "requires": { - "end-stream": "~0.1.0" - } - }, - "level-ws": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/level-ws/-/level-ws-0.0.0.tgz", - "integrity": "sha1-Ny5RIXeSSgBCSwtDrvK7QkltIos=", - "requires": { - "readable-stream": "~1.0.15", - "xtend": "~2.1.1" - }, - "dependencies": { - "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" - }, - "object-keys": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-0.4.0.tgz", - "integrity": "sha1-KKaq50KN0sOpLz2V8hM13SBOAzY=" - }, - "readable-stream": { - "version": "1.0.34", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", - "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" - } - }, - "string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" - }, - "xtend": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-2.1.2.tgz", - "integrity": "sha1-bv7MKk2tjmlixJAbM3znuoe10os=", - "requires": { - "object-keys": "~0.4.0" - } - } - } - }, - "leveldown": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/leveldown/-/leveldown-5.6.0.tgz", - "integrity": "sha512-iB8O/7Db9lPaITU1aA2txU/cBEXAt4vWwKQRrrWuS6XDgbP4QZGj9BL2aNbwb002atoQ/lIotJkfyzz+ygQnUQ==", - "dev": true, - "optional": true, - "requires": { - "abstract-leveldown": "~6.2.1", - "napi-macros": "~2.0.0", - "node-gyp-build": "~4.1.0" - }, - "dependencies": { - "abstract-leveldown": { - "version": "6.2.3", - "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-6.2.3.tgz", - "integrity": "sha512-BsLm5vFMRUrrLeCcRc+G0t2qOaTzpoJQLOubq2XM72eNpjF5UdU5o/5NvlNhx95XHcAvcl8OMXr4mlg/fRgUXQ==", - "dev": true, - "optional": true, - "requires": { - "buffer": "^5.5.0", - "immediate": "^3.2.3", - "level-concat-iterator": "~2.0.0", - "level-supports": "~1.0.0", - "xtend": "~4.0.0" - } - }, - "level-concat-iterator": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/level-concat-iterator/-/level-concat-iterator-2.0.1.tgz", - "integrity": "sha512-OTKKOqeav2QWcERMJR7IS9CUo1sHnke2C0gkSmcR7QuEtFNLLzHQAvnMw8ykvEcv0Qtkg0p7FOwP1v9e5Smdcw==", - "dev": true, - "optional": true - }, - "level-supports": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/level-supports/-/level-supports-1.0.1.tgz", - "integrity": "sha512-rXM7GYnW8gsl1vedTJIbzOrRv85c/2uCMpiiCzO2fndd06U/kUXEEU9evYn4zFggBOg36IsBW8LzqIpETwwQzg==", - "dev": true, - "optional": true, - "requires": { - "xtend": "^4.0.2" - } - }, - "node-gyp-build": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.1.1.tgz", - "integrity": "sha512-dSq1xmcPDKPZ2EED2S6zw/b9NKsqzXRE6dVr8TVQnI3FJOTteUMuqF3Qqs6LZg+mLGYJWqQzMbIjMtJqTv87nQ==", - "dev": true, - "optional": true - } - } - }, - "levelup": { - "version": "1.3.9", - "resolved": "https://registry.npmjs.org/levelup/-/levelup-1.3.9.tgz", - "integrity": "sha512-VVGHfKIlmw8w1XqpGOAGwq6sZm2WwWLmlDcULkKWQXEA5EopA8OBNJ2Ck2v6bdk8HeEZSbCSEgzXadyQFm76sQ==", - "requires": { - "deferred-leveldown": "~1.2.1", - "level-codec": "~7.0.0", - "level-errors": "~1.0.3", - "level-iterator-stream": "~1.3.0", - "prr": "~1.0.1", - "semver": "~5.4.1", - "xtend": "~4.0.0" - }, - "dependencies": { - "semver": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.4.1.tgz", - "integrity": "sha512-WfG/X9+oATh81XtllIo/I8gOiY9EXRdv1cQdyykeXK17YcUW3EXUAi2To4pcH6nZtJPr7ZOpM5OMyWJZm+8Rsg==" - } - } - }, - "levn": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", - "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", - "dev": true, - "requires": { - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2" - } - }, - "loader-utils": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", - "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", - "requires": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^1.0.1" - }, - "dependencies": { - "json5": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", - "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", - "requires": { - "minimist": "^1.2.0" - } - } - } - }, - "locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", - "dev": true, - "requires": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - } - }, - "lockfile": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/lockfile/-/lockfile-1.0.4.tgz", - "integrity": "sha512-cvbTwETRfsFh4nHsL1eGWapU1XFi5Ot9E85sWAwia7Y7EgB7vfqcZhTKZ+l7hCGxSPoushMv5GKhT5PdLv03WA==", - "dev": true, - "requires": { - "signal-exit": "^3.0.2" - } - }, - "lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" - }, - "lodash-es": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz", - "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==", - "dev": true - }, - "lodash.camelcase": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", - "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY=" - }, - "lodash.debounce": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", - "integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168=" - }, - "lodash.flatmap": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.flatmap/-/lodash.flatmap-4.5.0.tgz", - "integrity": "sha1-74y/QI9uSCaGYzRTBcaswLd4cC4=" - }, - "lodash.sortby": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", - "integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=", - "dev": true, - "optional": true - }, - "log-symbols": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.0.0.tgz", - "integrity": "sha512-FN8JBzLx6CzeMrB0tg6pqlGU1wCrXW+ZXGH481kfsBqer0hToTIiHdjH4Mq8xJUbvATujKCvaREGWpGUionraA==", - "requires": { - "chalk": "^4.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "loglevel": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.8.1.tgz", - "integrity": "sha512-tCRIJM51SHjAayKwC+QAg8hT8vg6z7GSgLJKGvzuPb1Wc+hLzqtuVLxp6/HzSPOozuK+8ErAhy7U/sVzw8Dgfg==", - "dev": true, - "optional": true - }, - "long": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz", - "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==", - "dev": true - }, - "loose-envify": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", - "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", - "dev": true, - "requires": { - "js-tokens": "^3.0.0 || ^4.0.0" - } - }, - "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, - "requires": { - "get-func-name": "^2.0.0" - } - }, - "lower-case": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz", - "integrity": "sha512-2Fgx1Ycm599x+WGpIYwJOvsjmXFzTSc34IwDWALRA/8AopUKAVPwfJ+h5+f85BCp0PWmmJcWzEpxOpoXycMpdA==", - "dev": true - }, - "lower-case-first": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/lower-case-first/-/lower-case-first-1.0.2.tgz", - "integrity": "sha512-UuxaYakO7XeONbKrZf5FEgkantPf5DUqDayzP5VXZrtRPdH86s4kN47I8B3TW10S4QKiE3ziHNf3kRN//okHjA==", - "dev": true, - "requires": { - "lower-case": "^1.1.2" - } - }, - "lowercase-keys": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", - "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", - "dev": true - }, - "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==", - "dev": true, - "requires": { - "yallist": "^4.0.0" - }, - "dependencies": { - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - } - } - }, - "ltgt": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ltgt/-/ltgt-2.2.1.tgz", - "integrity": "sha1-81ypHEk/e3PaDgdJUwTxezH4fuU=" - }, - "make-dir": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", - "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", - "dev": true, - "requires": { - "pify": "^3.0.0" - }, - "dependencies": { - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", - "dev": true - } - } - }, - "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 - }, - "map-cache": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", - "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=" - }, - "map-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", - "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", - "requires": { - "object-visit": "^1.0.0" - } - }, - "md5.js": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", - "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", - "requires": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "media-typer": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", - "dev": true - }, - "memdown": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/memdown/-/memdown-1.4.1.tgz", - "integrity": "sha1-tOThkhdGZP+65BNhqlAPMRnv4hU=", - "requires": { - "abstract-leveldown": "~2.7.1", - "functional-red-black-tree": "^1.0.1", - "immediate": "^3.2.3", - "inherits": "~2.0.1", - "ltgt": "~2.2.0", - "safe-buffer": "~5.1.1" - }, - "dependencies": { - "abstract-leveldown": { - "version": "2.7.2", - "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-2.7.2.tgz", - "integrity": "sha512-+OVvxH2rHVEhWLdbudP6p0+dNMXu8JA1CbhP19T8paTYAcX7oJ4OVjT+ZUVpv7mITxXHqDMej+GdqXBmXkw09w==", - "requires": { - "xtend": "~4.0.0" - } - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - } - } - }, - "memory-fs": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz", - "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=", - "requires": { - "errno": "^0.1.3", - "readable-stream": "^2.0.1" - } - }, - "memorystream": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/memorystream/-/memorystream-0.3.1.tgz", - "integrity": "sha1-htcJCzDORV1j+64S3aUaR93K+bI=", - "dev": true - }, - "merge-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=", - "dev": true - }, - "merkle-patricia-tree": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/merkle-patricia-tree/-/merkle-patricia-tree-2.3.2.tgz", - "integrity": "sha512-81PW5m8oz/pz3GvsAwbauj7Y00rqm81Tzad77tHBwU7pIAtN+TJnMSOJhxBKflSVYhptMMb9RskhqHqrSm1V+g==", - "requires": { - "async": "^1.4.2", - "ethereumjs-util": "^5.0.0", - "level-ws": "0.0.0", - "levelup": "^1.2.1", - "memdown": "^1.0.0", - "readable-stream": "^2.0.0", - "rlp": "^2.0.0", - "semaphore": ">=1.0.1" - }, - "dependencies": { - "async": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", - "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=" - }, - "ethereumjs-util": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", - "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", - "requires": { - "bn.js": "^4.11.0", - "create-hash": "^1.1.2", - "elliptic": "^6.5.2", - "ethereum-cryptography": "^0.1.3", - "ethjs-util": "^0.1.3", - "rlp": "^2.0.0", - "safe-buffer": "^5.1.1" - } - } - } - }, - "methods": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=", - "dev": true - }, - "micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - }, - "dependencies": { - "braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "requires": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "requires": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" - }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=" - }, - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", - "requires": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - } - } - } - }, - "miller-rabin": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", - "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", - "requires": { - "bn.js": "^4.0.0", - "brorand": "^1.0.1" - } - }, - "mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", - "dev": true - }, - "mime-db": { - "version": "1.44.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.44.0.tgz", - "integrity": "sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg==" - }, - "mime-types": { - "version": "2.1.27", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.27.tgz", - "integrity": "sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w==", - "requires": { - "mime-db": "1.44.0" - } - }, - "mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "dev": true - }, - "mimic-response": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", - "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==" - }, - "min-document": { - "version": "2.19.0", - "resolved": "https://registry.npmjs.org/min-document/-/min-document-2.19.0.tgz", - "integrity": "sha1-e9KC4/WELtKVu3SM3Z8f+iyCRoU=", - "requires": { - "dom-walk": "^0.1.0" - } - }, - "minimalistic-assert": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", - "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==" - }, - "minimalistic-crypto-utils": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", - "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=" - }, - "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "minimist": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", - "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==" - }, - "minipass": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz", - "integrity": "sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==", - "dev": true, - "requires": { - "safe-buffer": "^5.1.2", - "yallist": "^3.0.0" - } - }, - "minizlib": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.3.3.tgz", - "integrity": "sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==", - "dev": true, - "requires": { - "minipass": "^2.9.0" - } - }, - "mississippi": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-3.0.0.tgz", - "integrity": "sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA==", - "requires": { - "concat-stream": "^1.5.0", - "duplexify": "^3.4.2", - "end-of-stream": "^1.1.0", - "flush-write-stream": "^1.0.0", - "from2": "^2.1.0", - "parallel-transform": "^1.1.0", - "pump": "^3.0.0", - "pumpify": "^1.3.3", - "stream-each": "^1.1.0", - "through2": "^2.0.0" - }, - "dependencies": { - "through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", - "requires": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" - } - } - } - }, - "mixin-deep": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", - "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", - "requires": { - "for-in": "^1.0.2", - "is-extendable": "^1.0.1" - } - }, - "mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==" - }, - "mkdirp-promise": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/mkdirp-promise/-/mkdirp-promise-5.0.1.tgz", - "integrity": "sha1-6bj2jlUsaKnBcTuEiD96HdA5uKE=", - "dev": true, - "requires": { - "mkdirp": "*" - } - }, - "mocha": { - "version": "8.4.0", - "resolved": "https://registry.npmjs.org/mocha/-/mocha-8.4.0.tgz", - "integrity": "sha512-hJaO0mwDXmZS4ghXsvPVriOhsxQ7ofcpQdm8dE+jISUOKopitvnXFQmpRR7jd2K6VBG6E26gU3IAbXXGIbu4sQ==", - "dev": true, - "requires": { - "@ungap/promise-all-settled": "1.1.2", - "ansi-colors": "4.1.1", - "browser-stdout": "1.3.1", - "chokidar": "3.5.1", - "debug": "4.3.1", - "diff": "5.0.0", - "escape-string-regexp": "4.0.0", - "find-up": "5.0.0", - "glob": "7.1.6", - "growl": "1.10.5", - "he": "1.2.0", - "js-yaml": "4.0.0", - "log-symbols": "4.0.0", - "minimatch": "3.0.4", - "ms": "2.1.3", - "nanoid": "3.1.20", - "serialize-javascript": "5.0.1", - "strip-json-comments": "3.1.1", - "supports-color": "8.1.1", - "which": "2.0.2", - "wide-align": "1.1.3", - "workerpool": "6.1.0", - "yargs": "16.2.0", - "yargs-parser": "20.2.4", - "yargs-unparser": "2.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true - }, - "cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", - "dev": true, - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", - "dev": true, - "requires": { - "ms": "2.1.2" - }, - "dependencies": { - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - } - } - }, - "diff": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz", - "integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==", - "dev": true - }, - "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==", - "dev": true - }, - "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==", - "dev": true - }, - "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==", - "dev": true, - "requires": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - } - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "is-fullwidth-code-point": { - "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==", - "dev": true - }, - "js-yaml": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.0.0.tgz", - "integrity": "sha512-pqon0s+4ScYUvX30wxQi3PogGFAlUyH0awepWvwkj4jD4v+ova3RiYw8bmA6x2rDrEaj8i/oWKoRxpVNW+Re8Q==", - "dev": true, - "requires": { - "argparse": "^2.0.1" - } - }, - "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==", - "dev": true, - "requires": { - "p-locate": "^5.0.0" - } - }, - "ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "dev": true - }, - "p-limit": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.0.2.tgz", - "integrity": "sha512-iwqZSOoWIW+Ew4kAGUlN16J4M7OB3ysMLSZtnhmqx7njIHFPlxWBX8xo3lVTyFVq6mI/lL9qt2IsN1sHwaxJkg==", - "dev": true, - "requires": { - "p-try": "^2.0.0" - } - }, - "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==", - "dev": true, - "requires": { - "p-limit": "^3.0.2" - } - }, - "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 - }, - "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==", - "dev": true - }, - "serialize-javascript": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-5.0.1.tgz", - "integrity": "sha512-SaaNal9imEO737H2c05Og0/8LUXG7EnsZyMa8MzkmuHoELfT6txuj0cMqRj6zfPKnmQ1yasR4PCJc8x+M4JSPA==", - "dev": true, - "requires": { - "randombytes": "^2.1.0" - } - }, - "string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - } - }, - "strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.1" - } - }, - "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, - "requires": { - "has-flag": "^4.0.0" - } - }, - "workerpool": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.1.0.tgz", - "integrity": "sha512-toV7q9rWNYha963Pl/qyeZ6wG+3nnsyvolaNUS8+R5Wtw6qJPTxIlOP1ZSvcGhEJw+l3HMMmtiNo9Gl61G4GVg==", - "dev": true - }, - "wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - } - }, - "y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "dev": true - }, - "yargs": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", - "dev": true, - "requires": { - "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" - } - }, - "yargs-parser": { - "version": "20.2.4", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz", - "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==", - "dev": true - } - } - }, - "mock-fs": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/mock-fs/-/mock-fs-4.12.0.tgz", - "integrity": "sha512-/P/HtrlvBxY4o/PzXY9cCNBrdylDNxg7gnrv2sMNxj+UJ2m8jSpl0/A6fuJeNAWr99ZvGWH8XCbE0vmnM5KupQ==", - "dev": true - }, - "move-concurrently": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz", - "integrity": "sha1-viwAX9oy4LKa8fBdfEszIUxwH5I=", - "requires": { - "aproba": "^1.1.1", - "copy-concurrently": "^1.0.0", - "fs-write-stream-atomic": "^1.0.8", - "mkdirp": "^0.5.1", - "rimraf": "^2.5.4", - "run-queue": "^1.0.3" - }, - "dependencies": { - "mkdirp": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", - "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", - "requires": { - "minimist": "^1.2.6" - } - } - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "multibase": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/multibase/-/multibase-0.6.1.tgz", - "integrity": "sha512-pFfAwyTjbbQgNc3G7D48JkJxWtoJoBMaR4xQUOuB8RnCgRqaYmWNFeJTTvrJ2w51bjLq2zTby6Rqj9TQ9elSUw==", - "requires": { - "base-x": "^3.0.8", - "buffer": "^5.5.0" - } - }, - "multicodec": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/multicodec/-/multicodec-0.5.7.tgz", - "integrity": "sha512-PscoRxm3f+88fAtELwUnZxGDkduE2HD9Q6GHUOywQLjOGT/HAdhjLDYNZ1e7VR0s0TP0EwZ16LNUTFpoBGivOA==", - "dev": true, - "requires": { - "varint": "^5.0.0" - } - }, - "multiformats": { - "version": "9.6.4", - "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-9.6.4.tgz", - "integrity": "sha512-fCCB6XMrr6CqJiHNjfFNGT0v//dxOBMrOMqUIzpPc/mmITweLEyhvMpY9bF+jZ9z3vaMAau5E8B68DW77QMXkg==" - }, - "multihashes": { - "version": "0.4.21", - "resolved": "https://registry.npmjs.org/multihashes/-/multihashes-0.4.21.tgz", - "integrity": "sha512-uVSvmeCWf36pU2nB4/1kzYZjsXD9vofZKpgudqkceYY5g2aZZXJ5r9lxuzoRLl1OAp28XljXsEJ/X/85ZsKmKw==", - "requires": { - "buffer": "^5.5.0", - "multibase": "^0.7.0", - "varint": "^5.0.0" - }, - "dependencies": { - "multibase": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/multibase/-/multibase-0.7.0.tgz", - "integrity": "sha512-TW8q03O0f6PNFTQDvh3xxH03c8CjGaaYrjkl9UQPG6rz53TQzzxJVCIWVjzcbN/Q5Y53Zd0IBQBMVktVgNx4Fg==", - "requires": { - "base-x": "^3.0.8", - "buffer": "^5.5.0" - } - } - } - }, - "mute-stream": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", - "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=", - "dev": true - }, - "nan": { - "version": "2.14.2", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.2.tgz", - "integrity": "sha512-M2ufzIiINKCuDfBSAUr1vWQ+vuVcA9kqx8JJUsbQi6yf1uGRyb7HfpdfUr5qLXf3B/t8dPvcjhKMmlfnP47EzQ==" - }, - "nano-json-stream-parser": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/nano-json-stream-parser/-/nano-json-stream-parser-0.1.2.tgz", - "integrity": "sha1-DMj20OK2IrR5xA1JnEbWS3Vcb18=", - "dev": true - }, - "nanoid": { - "version": "3.1.20", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.20.tgz", - "integrity": "sha512-a1cQNyczgKbLX9jwbS/+d7W8fX/RfgYR7lVWwWOGIPNgK2m0MWvrGF6/m4kk6U3QcFMnZf3RIhL0v2Jgh/0Uxw==" - }, - "nanomatch": { - "version": "1.2.13", - "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", - "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "fragment-cache": "^0.2.1", - "is-windows": "^1.0.2", - "kind-of": "^6.0.2", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - } - }, - "napi-macros": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/napi-macros/-/napi-macros-2.0.0.tgz", - "integrity": "sha512-A0xLykHtARfueITVDernsAWdtIMbOJgKgcluwENp3AlsKN/PloyO10HtmoqnFAQAcxPkgZN7wdfPfEd0zNGxbg==", - "dev": true, - "optional": true - }, - "natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", - "dev": true - }, - "negotiator": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", - "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==", - "dev": true - }, - "neo-async": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", - "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==" - }, - "next-tick": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz", - "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw=" - }, - "nice-try": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", - "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==" - }, - "no-case": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/no-case/-/no-case-2.3.2.tgz", - "integrity": "sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ==", - "dev": true, - "requires": { - "lower-case": "^1.1.1" - } - }, - "node-abort-controller": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/node-abort-controller/-/node-abort-controller-3.1.1.tgz", - "integrity": "sha512-AGK2yQKIjRuqnc6VkX2Xj5d+QW8xZ87pa1UK6yA6ouUyuxfHuMP6umE5QK7UmTeOAymo+Zx1Fxiuw9rVx8taHQ==", - "dev": true, - "optional": true - }, - "node-addon-api": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-2.0.2.tgz", - "integrity": "sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA==" - }, - "node-fetch": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-1.7.3.tgz", - "integrity": "sha512-NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ==", - "requires": { - "encoding": "^0.1.11", - "is-stream": "^1.0.1" - } - }, - "node-gyp-build": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.6.0.tgz", - "integrity": "sha512-NTZVKn9IylLwUzaKjkas1e4u2DLNcV4rdYagA4PWdPwW87Bi7z+BznyKSRwS/761tV/lzCGXplWsiaMjLqP2zQ==" - }, - "node-interval-tree": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/node-interval-tree/-/node-interval-tree-1.3.3.tgz", - "integrity": "sha512-K9vk96HdTK5fEipJwxSvIIqwTqr4e3HRJeJrNxBSeVMNSC/JWARRaX7etOLOuTmrRMeOI/K5TCJu3aWIwZiNTw==", - "dev": true, - "requires": { - "shallowequal": "^1.0.2" - } - }, - "node-libs-browser": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.1.tgz", - "integrity": "sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q==", - "requires": { - "assert": "^1.1.1", - "browserify-zlib": "^0.2.0", - "buffer": "^4.3.0", - "console-browserify": "^1.1.0", - "constants-browserify": "^1.0.0", - "crypto-browserify": "^3.11.0", - "domain-browser": "^1.1.1", - "events": "^3.0.0", - "https-browserify": "^1.0.0", - "os-browserify": "^0.3.0", - "path-browserify": "0.0.1", - "process": "^0.11.10", - "punycode": "^1.2.4", - "querystring-es3": "^0.2.0", - "readable-stream": "^2.3.3", - "stream-browserify": "^2.0.1", - "stream-http": "^2.7.2", - "string_decoder": "^1.0.0", - "timers-browserify": "^2.0.4", - "tty-browserify": "0.0.0", - "url": "^0.11.0", - "util": "^0.11.0", - "vm-browserify": "^1.0.1" - }, - "dependencies": { - "buffer": { - "version": "4.9.2", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz", - "integrity": "sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==", - "requires": { - "base64-js": "^1.0.2", - "ieee754": "^1.1.4", - "isarray": "^1.0.0" - } - }, - "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" - }, - "process": { - "version": "0.11.10", - "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", - "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=" - }, - "punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=" - }, - "stream-browserify": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz", - "integrity": "sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==", - "requires": { - "inherits": "~2.0.1", - "readable-stream": "^2.0.2" - } - }, - "stream-http": { - "version": "2.8.3", - "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz", - "integrity": "sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==", - "requires": { - "builtin-status-codes": "^3.0.0", - "inherits": "^2.0.1", - "readable-stream": "^2.3.6", - "to-arraybuffer": "^1.0.0", - "xtend": "^4.0.0" - } - }, - "util": { - "version": "0.11.1", - "resolved": "https://registry.npmjs.org/util/-/util-0.11.1.tgz", - "integrity": "sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ==", - "requires": { - "inherits": "2.0.3" - } - } - } - }, - "node-releases": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.1.tgz", - "integrity": "sha512-CqyzN6z7Q6aMeF/ktcMVTzhAHCEpf8SOarwpzpf8pNBY2k5/oM34UHldUwp8VKI7uxct2HxSRdJjBaZeESzcxA==" - }, - "nofilter": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/nofilter/-/nofilter-1.0.4.tgz", - "integrity": "sha512-N8lidFp+fCz+TD51+haYdbDGrcBWwuHX40F5+z0qkUjMJ5Tp+rdSuAkMJ9N9eoolDlEVTf6u5icM+cNKkKW2mA==", - "dev": true - }, - "normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==" - }, - "normalize-url": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.0.tgz", - "integrity": "sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ==", - "dev": true - }, - "npm-programmatic": { - "version": "0.0.12", - "resolved": "https://registry.npmjs.org/npm-programmatic/-/npm-programmatic-0.0.12.tgz", - "integrity": "sha512-fvZdiJS038ZH31z59cEiIywOcgX1u23aLc0wAKF4btyhbYQxE93wTQjzs/URERK+GhS/QghDILQmEvgxu77/zQ==", - "dev": true, - "requires": { - "bluebird": "^3.4.1" - } - }, - "nth-check": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz", - "integrity": "sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==", - "dev": true, - "requires": { - "boolbase": "~1.0.0" - } - }, - "number-to-bn": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/number-to-bn/-/number-to-bn-1.7.0.tgz", - "integrity": "sha1-uzYjWS9+X54AMLGXe9QaDFP+HqA=", - "requires": { - "bn.js": "4.11.6", - "strip-hex-prefix": "1.0.0" - }, - "dependencies": { - "bn.js": { - "version": "4.11.6", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz", - "integrity": "sha1-UzRK2xRhehP26N0s4okF0cC6MhU=" - } - } - }, - "oauth-sign": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", - "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", - "dev": true - }, - "object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" - }, - "object-copy": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", - "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", - "requires": { - "copy-descriptor": "^0.1.0", - "define-property": "^0.2.5", - "kind-of": "^3.0.3" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "requires": { - "kind-of": "^3.0.2" - } - }, - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "requires": { - "kind-of": "^3.0.2" - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - }, - "dependencies": { - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" - } - } - }, - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "object-inspect": { - "version": "1.10.3", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.10.3.tgz", - "integrity": "sha512-e5mCJlSH7poANfC8z8S9s9S2IN5/4Zb3aZ33f5s8YqoazCFzNLloLU8r5VCG+G7WoqLvAAZoVMcy3tp/3X0Plw==", - "dev": true - }, - "object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "dev": true - }, - "object-visit": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", - "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", - "requires": { - "isobject": "^3.0.0" - } - }, - "object.pick": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", - "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", - "requires": { - "isobject": "^3.0.1" - } - }, - "oboe": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/oboe/-/oboe-2.1.4.tgz", - "integrity": "sha1-IMiM2wwVNxuwQRklfU/dNLCqSfY=", - "dev": true, - "requires": { - "http-https": "^1.0.0" - } - }, - "on-finished": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", - "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", - "dev": true, - "requires": { - "ee-first": "1.1.1" - } - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "requires": { - "wrappy": "1" - } - }, - "onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "dev": true, - "requires": { - "mimic-fn": "^2.1.0" - } - }, - "optionator": { - "version": "0.8.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", - "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", - "dev": true, - "requires": { - "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" - } - }, - "original-require": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/original-require/-/original-require-1.0.1.tgz", - "integrity": "sha1-DxMEcVhM0zURxew4yNWSE/msXiA=", - "dev": true - }, - "os-browserify": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", - "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=" - }, - "os-tmpdir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", - "dev": true - }, - "p-cancelable": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz", - "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==", - "dev": true - }, - "p-finally": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", - "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", - "dev": true - }, - "p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", - "dev": true, - "requires": { - "p-try": "^1.0.0" - } - }, - "p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", - "dev": true, - "requires": { - "p-limit": "^1.1.0" - } - }, - "p-timeout": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-1.2.1.tgz", - "integrity": "sha1-XrOzU7f86Z8QGhA4iAuwVOu+o4Y=", - "dev": true, - "requires": { - "p-finally": "^1.0.0" - } - }, - "p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", - "dev": true - }, - "pako": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", - "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==" - }, - "parallel-transform": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.2.0.tgz", - "integrity": "sha512-P2vSmIu38uIlvdcU7fDkyrxj33gTUy/ABO5ZUbGowxNCopBq/OoD42bP4UmMrJoPyk4Uqf0mu3mtWBhHCZD8yg==", - "requires": { - "cyclist": "^1.0.1", - "inherits": "^2.0.3", - "readable-stream": "^2.1.5" - } - }, - "param-case": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/param-case/-/param-case-2.1.1.tgz", - "integrity": "sha512-eQE845L6ot89sk2N8liD8HAuH4ca6Vvr7VWAWwt7+kvvG5aBcPmmphQ68JsEG2qa9n1TykS2DLeMt363AAH8/w==", - "dev": true, - "requires": { - "no-case": "^2.2.0" - } - }, - "parent-module": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", - "dev": true, - "requires": { - "callsites": "^3.0.0" - } - }, - "parse-asn1": { - "version": "5.1.5", - "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.5.tgz", - "integrity": "sha512-jkMYn1dcJqF6d5CpU689bq7w/b5ALS9ROVSpQDPrZsqqesUJii9qutvoT5ltGedNXMO2e16YUWIghG9KxaViTQ==", - "requires": { - "asn1.js": "^4.0.0", - "browserify-aes": "^1.0.0", - "create-hash": "^1.1.0", - "evp_bytestokey": "^1.0.0", - "pbkdf2": "^3.0.3", - "safe-buffer": "^5.1.1" - } - }, - "parse-headers": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/parse-headers/-/parse-headers-2.0.3.tgz", - "integrity": "sha512-QhhZ+DCCit2Coi2vmAKbq5RGTRcQUOE2+REgv8vdyu7MnYx2eZztegqtTx99TZ86GTIwqiy3+4nQTWZ2tgmdCA==" - }, - "parse-passwd": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz", - "integrity": "sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=" - }, - "parse5": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-3.0.3.tgz", - "integrity": "sha512-rgO9Zg5LLLkfJF9E6CCmXlSE4UVceloys8JrFqCcHloC3usd/kJCyPDwH2SOlzix2j3xaP9sUX3e8+kvkuleAA==", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "parseurl": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", - "dev": true - }, - "pascal-case": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-2.0.1.tgz", - "integrity": "sha512-qjS4s8rBOJa2Xm0jmxXiyh1+OFf6ekCWOvUaRgAQSktzlTbMotS0nmG9gyYAybCWBcuP4fsBeRCKNwGBnMe2OQ==", - "dev": true, - "requires": { - "camel-case": "^3.0.0", - "upper-case-first": "^1.1.0" - } - }, - "pascalcase": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", - "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=" - }, - "path-browserify": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.1.tgz", - "integrity": "sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==" - }, - "path-case": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/path-case/-/path-case-2.1.1.tgz", - "integrity": "sha512-Ou0N05MioItesaLr9q8TtHVWmJ6fxWdqKB2RohFmNWVyJ+2zeKIeDNWAN6B/Pe7wpzWChhZX6nONYmOnMeJQ/Q==", - "dev": true, - "requires": { - "no-case": "^2.2.0" - } - }, - "path-dirname": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", - "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=", - "optional": true - }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" - }, - "path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" - }, - "path-key": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=" - }, - "path-parse": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", - "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==" - }, - "path-to-regexp": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", - "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=", - "dev": true - }, - "pathval": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz", - "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==" - }, - "pbkdf2": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.1.tgz", - "integrity": "sha512-4Ejy1OPxi9f2tt1rRV7Go7zmfDQ+ZectEQz3VGUQhgq62HtIRPDyG/JtnwIxs6x3uNMwo2V7q1fMvKjb+Tnpqg==", - "requires": { - "create-hash": "^1.1.2", - "create-hmac": "^1.1.4", - "ripemd160": "^2.0.1", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" - } - }, - "pend": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", - "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=", - "dev": true - }, - "performance-now": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" - }, - "picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" - }, - "picomatch": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.3.tgz", - "integrity": "sha512-KpELjfwcCDUb9PeigTs2mBJzXUPzAuP2oPcA989He8Rte0+YUAjw1JVedDhuTKPkHjSYzMN3npC9luThGYEKdg==" - }, - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true - }, - "pinkie": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", - "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", - "dev": true - }, - "pinkie-promise": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", - "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", - "dev": true, - "requires": { - "pinkie": "^2.0.0" - } - }, - "pkg-dir": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", - "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", - "requires": { - "find-up": "^3.0.0" - } - }, - "pkg-up": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-3.1.0.tgz", - "integrity": "sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==", - "dev": true, - "optional": true, - "requires": { - "find-up": "^3.0.0" - } - }, - "pluralize": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-8.0.0.tgz", - "integrity": "sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==", - "dev": true, - "optional": true - }, - "posix-character-classes": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", - "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=" - }, - "pouchdb": { - "version": "7.3.0", - "resolved": "https://registry.npmjs.org/pouchdb/-/pouchdb-7.3.0.tgz", - "integrity": "sha512-OwsIQGXsfx3TrU1pLruj6PGSwFH+h5k4hGNxFkZ76Um7/ZI8F5TzUHFrpldVVIhfXYi2vP31q0q7ot1FSLFYOw==", - "dev": true, - "optional": true, - "requires": { - "abort-controller": "3.0.0", - "argsarray": "0.0.1", - "buffer-from": "1.1.2", - "clone-buffer": "1.0.0", - "double-ended-queue": "2.1.0-0", - "fetch-cookie": "0.11.0", - "immediate": "3.3.0", - "inherits": "2.0.4", - "level": "6.0.1", - "level-codec": "9.0.2", - "level-write-stream": "1.0.0", - "leveldown": "5.6.0", - "levelup": "4.4.0", - "ltgt": "2.2.1", - "node-fetch": "2.6.7", - "readable-stream": "1.1.14", - "spark-md5": "3.0.2", - "through2": "3.0.2", - "uuid": "8.3.2", - "vuvuzela": "1.0.3" - }, - "dependencies": { - "abstract-leveldown": { - "version": "6.2.3", - "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-6.2.3.tgz", - "integrity": "sha512-BsLm5vFMRUrrLeCcRc+G0t2qOaTzpoJQLOubq2XM72eNpjF5UdU5o/5NvlNhx95XHcAvcl8OMXr4mlg/fRgUXQ==", - "dev": true, - "optional": true, - "requires": { - "buffer": "^5.5.0", - "immediate": "^3.2.3", - "level-concat-iterator": "~2.0.0", - "level-supports": "~1.0.0", - "xtend": "~4.0.0" - } - }, - "deferred-leveldown": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/deferred-leveldown/-/deferred-leveldown-5.3.0.tgz", - "integrity": "sha512-a59VOT+oDy7vtAbLRCZwWgxu2BaCfd5Hk7wxJd48ei7I+nsg8Orlb9CLG0PMZienk9BSUKgeAqkO2+Lw+1+Ukw==", - "dev": true, - "optional": true, - "requires": { - "abstract-leveldown": "~6.2.1", - "inherits": "^2.0.3" - } - }, - "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==", - "dev": true, - "optional": true - }, - "level-codec": { - "version": "9.0.2", - "resolved": "https://registry.npmjs.org/level-codec/-/level-codec-9.0.2.tgz", - "integrity": "sha512-UyIwNb1lJBChJnGfjmO0OR+ezh2iVu1Kas3nvBS/BzGnx79dv6g7unpKIDNPMhfdTEGoc7mC8uAu51XEtX+FHQ==", - "dev": true, - "optional": true, - "requires": { - "buffer": "^5.6.0" - } - }, - "level-concat-iterator": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/level-concat-iterator/-/level-concat-iterator-2.0.1.tgz", - "integrity": "sha512-OTKKOqeav2QWcERMJR7IS9CUo1sHnke2C0gkSmcR7QuEtFNLLzHQAvnMw8ykvEcv0Qtkg0p7FOwP1v9e5Smdcw==", - "dev": true, - "optional": true - }, - "level-errors": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/level-errors/-/level-errors-2.0.1.tgz", - "integrity": "sha512-UVprBJXite4gPS+3VznfgDSU8PTRuVX0NXwoWW50KLxd2yw4Y1t2JUR5In1itQnudZqRMT9DlAM3Q//9NCjCFw==", - "dev": true, - "optional": true, - "requires": { - "errno": "~0.1.1" - } - }, - "level-iterator-stream": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/level-iterator-stream/-/level-iterator-stream-4.0.2.tgz", - "integrity": "sha512-ZSthfEqzGSOMWoUGhTXdX9jv26d32XJuHz/5YnuHZzH6wldfWMOVwI9TBtKcya4BKTyTt3XVA0A3cF3q5CY30Q==", - "dev": true, - "optional": true, - "requires": { - "inherits": "^2.0.4", - "readable-stream": "^3.4.0", - "xtend": "^4.0.2" - }, - "dependencies": { - "readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "dev": true, - "optional": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - } - } - }, - "level-supports": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/level-supports/-/level-supports-1.0.1.tgz", - "integrity": "sha512-rXM7GYnW8gsl1vedTJIbzOrRv85c/2uCMpiiCzO2fndd06U/kUXEEU9evYn4zFggBOg36IsBW8LzqIpETwwQzg==", - "dev": true, - "optional": true, - "requires": { - "xtend": "^4.0.2" - } - }, - "levelup": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/levelup/-/levelup-4.4.0.tgz", - "integrity": "sha512-94++VFO3qN95cM/d6eBXvd894oJE0w3cInq9USsyQzzoJxmiYzPAocNcuGCPGGjoXqDVJcr3C1jzt1TSjyaiLQ==", - "dev": true, - "optional": true, - "requires": { - "deferred-leveldown": "~5.3.0", - "level-errors": "~2.0.0", - "level-iterator-stream": "~4.0.0", - "level-supports": "~1.0.0", - "xtend": "~4.0.0" - } - }, - "node-fetch": { - "version": "2.6.7", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", - "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", - "dev": true, - "optional": true, - "requires": { - "whatwg-url": "^5.0.0" - } - }, - "readable-stream": { - "version": "1.1.14", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", - "integrity": "sha512-+MeVjFf4L44XUkhM1eYbD8fyEsxcV81pqMSR5gblfcLCHfZvbrqy4/qYHE+/R5HoBUT11WV5O08Cr1n3YXkWVQ==", - "dev": true, - "optional": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" - }, - "dependencies": { - "string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==", - "dev": true, - "optional": true - } - } - }, - "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, - "optional": true - } - } - }, - "pouchdb-abstract-mapreduce": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/pouchdb-abstract-mapreduce/-/pouchdb-abstract-mapreduce-7.3.1.tgz", - "integrity": "sha512-0zKXVFBvrfc1KnN0ggrB762JDmZnUpePHywo9Bq3Jy+L1FnoG7fXM5luFfvv5/T0gEw+ZTIwoocZECMnESBI9w==", - "dev": true, - "optional": true, - "requires": { - "pouchdb-binary-utils": "7.3.1", - "pouchdb-collate": "7.3.1", - "pouchdb-collections": "7.3.1", - "pouchdb-errors": "7.3.1", - "pouchdb-fetch": "7.3.1", - "pouchdb-mapreduce-utils": "7.3.1", - "pouchdb-md5": "7.3.1", - "pouchdb-utils": "7.3.1" - } - }, - "pouchdb-adapter-leveldb-core": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/pouchdb-adapter-leveldb-core/-/pouchdb-adapter-leveldb-core-7.3.1.tgz", - "integrity": "sha512-mxShHlqLMPz2gChrgtA9okV1ogFmQrRAoM/O4EN0CrQWPLXqYtpL1f7sI2asIvFe7SmpnvbLx7kkZyFmLTfwjA==", - "dev": true, - "optional": true, - "requires": { - "argsarray": "0.0.1", - "buffer-from": "1.1.2", - "double-ended-queue": "2.1.0-0", - "levelup": "4.4.0", - "pouchdb-adapter-utils": "7.3.1", - "pouchdb-binary-utils": "7.3.1", - "pouchdb-collections": "7.3.1", - "pouchdb-errors": "7.3.1", - "pouchdb-json": "7.3.1", - "pouchdb-md5": "7.3.1", - "pouchdb-merge": "7.3.1", - "pouchdb-utils": "7.3.1", - "sublevel-pouchdb": "7.3.1", - "through2": "3.0.2" - }, - "dependencies": { - "abstract-leveldown": { - "version": "6.2.3", - "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-6.2.3.tgz", - "integrity": "sha512-BsLm5vFMRUrrLeCcRc+G0t2qOaTzpoJQLOubq2XM72eNpjF5UdU5o/5NvlNhx95XHcAvcl8OMXr4mlg/fRgUXQ==", - "dev": true, - "optional": true, - "requires": { - "buffer": "^5.5.0", - "immediate": "^3.2.3", - "level-concat-iterator": "~2.0.0", - "level-supports": "~1.0.0", - "xtend": "~4.0.0" - } - }, - "deferred-leveldown": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/deferred-leveldown/-/deferred-leveldown-5.3.0.tgz", - "integrity": "sha512-a59VOT+oDy7vtAbLRCZwWgxu2BaCfd5Hk7wxJd48ei7I+nsg8Orlb9CLG0PMZienk9BSUKgeAqkO2+Lw+1+Ukw==", - "dev": true, - "optional": true, - "requires": { - "abstract-leveldown": "~6.2.1", - "inherits": "^2.0.3" - } - }, - "level-concat-iterator": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/level-concat-iterator/-/level-concat-iterator-2.0.1.tgz", - "integrity": "sha512-OTKKOqeav2QWcERMJR7IS9CUo1sHnke2C0gkSmcR7QuEtFNLLzHQAvnMw8ykvEcv0Qtkg0p7FOwP1v9e5Smdcw==", - "dev": true, - "optional": true - }, - "level-errors": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/level-errors/-/level-errors-2.0.1.tgz", - "integrity": "sha512-UVprBJXite4gPS+3VznfgDSU8PTRuVX0NXwoWW50KLxd2yw4Y1t2JUR5In1itQnudZqRMT9DlAM3Q//9NCjCFw==", - "dev": true, - "optional": true, - "requires": { - "errno": "~0.1.1" - } - }, - "level-iterator-stream": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/level-iterator-stream/-/level-iterator-stream-4.0.2.tgz", - "integrity": "sha512-ZSthfEqzGSOMWoUGhTXdX9jv26d32XJuHz/5YnuHZzH6wldfWMOVwI9TBtKcya4BKTyTt3XVA0A3cF3q5CY30Q==", - "dev": true, - "optional": true, - "requires": { - "inherits": "^2.0.4", - "readable-stream": "^3.4.0", - "xtend": "^4.0.2" - } - }, - "level-supports": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/level-supports/-/level-supports-1.0.1.tgz", - "integrity": "sha512-rXM7GYnW8gsl1vedTJIbzOrRv85c/2uCMpiiCzO2fndd06U/kUXEEU9evYn4zFggBOg36IsBW8LzqIpETwwQzg==", - "dev": true, - "optional": true, - "requires": { - "xtend": "^4.0.2" - } - }, - "levelup": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/levelup/-/levelup-4.4.0.tgz", - "integrity": "sha512-94++VFO3qN95cM/d6eBXvd894oJE0w3cInq9USsyQzzoJxmiYzPAocNcuGCPGGjoXqDVJcr3C1jzt1TSjyaiLQ==", - "dev": true, - "optional": true, - "requires": { - "deferred-leveldown": "~5.3.0", - "level-errors": "~2.0.0", - "level-iterator-stream": "~4.0.0", - "level-supports": "~1.0.0", - "xtend": "~4.0.0" - } - }, - "readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "dev": true, - "optional": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - } - } - }, - "pouchdb-adapter-memory": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/pouchdb-adapter-memory/-/pouchdb-adapter-memory-7.3.1.tgz", - "integrity": "sha512-iHdWGJAHONqQv0we3Oi1MYen69ZS8McLW9wUyaAYcWTJnAIIAr2ZM0/TeTDVSHfMUwYqEYk7X8jRtJZEMwLnwg==", - "dev": true, - "optional": true, - "requires": { - "memdown": "1.4.1", - "pouchdb-adapter-leveldb-core": "7.3.1", - "pouchdb-utils": "7.3.1" - } - }, - "pouchdb-adapter-utils": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/pouchdb-adapter-utils/-/pouchdb-adapter-utils-7.3.1.tgz", - "integrity": "sha512-uKLG6dClwTs/sLIJ4WkLAi9wlnDBpOnfyhpeAgOjlOGN/XLz5nKHrA4UJRnURDyc+uv79S9r/Unc4hVpmbSPUw==", - "dev": true, - "optional": true, - "requires": { - "pouchdb-binary-utils": "7.3.1", - "pouchdb-collections": "7.3.1", - "pouchdb-errors": "7.3.1", - "pouchdb-md5": "7.3.1", - "pouchdb-merge": "7.3.1", - "pouchdb-utils": "7.3.1" - } - }, - "pouchdb-binary-utils": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/pouchdb-binary-utils/-/pouchdb-binary-utils-7.3.1.tgz", - "integrity": "sha512-crZJNfAEOnUoRk977Qtmk4cxEv6sNKllQ6vDDKgQrQLFjMUXma35EHzNyIJr1s76J77Q4sqKQAmxz9Y40yHGtw==", - "dev": true, - "optional": true, - "requires": { - "buffer-from": "1.1.2" - } - }, - "pouchdb-collate": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/pouchdb-collate/-/pouchdb-collate-7.3.1.tgz", - "integrity": "sha512-o4gyGqDMLMSNzf6EDTr3eHaH/JRMoqRhdc+eV+oA8u00nTBtr9wD+jypVe2LbgKLJ4NWqx2qVkXiTiQdUFtsLQ==", - "dev": true, - "optional": true - }, - "pouchdb-collections": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/pouchdb-collections/-/pouchdb-collections-7.3.1.tgz", - "integrity": "sha512-yUyDqR+OJmtwgExOSJegpBJXDLAEC84TWnbAYycyh+DZoA51Yw0+XVQF5Vh8Ii90/Ut2xo88fmrmp0t6kqom8w==", - "dev": true, - "optional": true - }, - "pouchdb-debug": { - "version": "7.2.1", - "resolved": "https://registry.npmjs.org/pouchdb-debug/-/pouchdb-debug-7.2.1.tgz", - "integrity": "sha512-eP3ht/AKavLF2RjTzBM6S9gaI2/apcW6xvaKRQhEdOfiANqerFuksFqHCal3aikVQuDO+cB/cw+a4RyJn/glBw==", - "dev": true, - "optional": true, - "requires": { - "debug": "3.1.0" - } - }, - "pouchdb-errors": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/pouchdb-errors/-/pouchdb-errors-7.3.1.tgz", - "integrity": "sha512-Zktz4gnXEUcZcty8FmyvtYUYsHskoST05m6H5/E2gg/0mCfEXq/XeyyLkZHaZmqD0ZPS9yNmASB1VaFWEKEaDw==", - "dev": true, - "optional": true, - "requires": { - "inherits": "2.0.4" - } - }, - "pouchdb-fetch": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/pouchdb-fetch/-/pouchdb-fetch-7.3.1.tgz", - "integrity": "sha512-205xAtvdHRPQ4fp1h9+RmT9oQabo9gafuPmWsS9aEl3ER54WbY8Vaj1JHZGbU4KtMTYvW7H5088zLS7Nrusuag==", - "dev": true, - "optional": true, - "requires": { - "abort-controller": "3.0.0", - "fetch-cookie": "0.11.0", - "node-fetch": "2.6.7" - }, - "dependencies": { - "node-fetch": { - "version": "2.6.7", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", - "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", - "dev": true, - "optional": true, - "requires": { - "whatwg-url": "^5.0.0" - } - } - } - }, - "pouchdb-find": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/pouchdb-find/-/pouchdb-find-7.3.1.tgz", - "integrity": "sha512-AeqUfAVY1c7IFaY36BRT0vIz9r4VTKq/YOWTmiqndOZUQ/pDGxyO2fNFal6NN3PyYww0JijlD377cPvhnrhJVA==", - "dev": true, - "optional": true, - "requires": { - "pouchdb-abstract-mapreduce": "7.3.1", - "pouchdb-collate": "7.3.1", - "pouchdb-errors": "7.3.1", - "pouchdb-fetch": "7.3.1", - "pouchdb-md5": "7.3.1", - "pouchdb-selector-core": "7.3.1", - "pouchdb-utils": "7.3.1" - } - }, - "pouchdb-json": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/pouchdb-json/-/pouchdb-json-7.3.1.tgz", - "integrity": "sha512-AyOKsmc85/GtHjMZyEacqzja8qLVfycS1hh1oskR+Bm5PIITX52Fb8zyi0hEetV6VC0yuGbn0RqiLjJxQePeqQ==", - "dev": true, - "optional": true, - "requires": { - "vuvuzela": "1.0.3" - } - }, - "pouchdb-mapreduce-utils": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/pouchdb-mapreduce-utils/-/pouchdb-mapreduce-utils-7.3.1.tgz", - "integrity": "sha512-oUMcq82+4pTGQ6dtrhgORHOVHZSr6w/5tFIUGlv7RABIDvJarL4snMawADjlpiEwPdiQ/ESG8Fqt8cxqvqsIgg==", - "dev": true, - "optional": true, - "requires": { - "argsarray": "0.0.1", - "inherits": "2.0.4", - "pouchdb-collections": "7.3.1", - "pouchdb-utils": "7.3.1" - } - }, - "pouchdb-md5": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/pouchdb-md5/-/pouchdb-md5-7.3.1.tgz", - "integrity": "sha512-aDV8ui/mprnL3xmt0gT/81DFtTtJiKyn+OxIAbwKPMfz/rDFdPYvF0BmDC9QxMMzGfkV+JJUjU6at0PPs2mRLg==", - "dev": true, - "optional": true, - "requires": { - "pouchdb-binary-utils": "7.3.1", - "spark-md5": "3.0.2" - } - }, - "pouchdb-merge": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/pouchdb-merge/-/pouchdb-merge-7.3.1.tgz", - "integrity": "sha512-FeK3r35mKimokf2PQ2tUI523QWyZ4lYZ0Yd75FfSch/SPY6wIokz5XBZZ6PHdu5aOJsEKzoLUxr8CpSg9DhcAw==", - "dev": true, - "optional": true - }, - "pouchdb-selector-core": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/pouchdb-selector-core/-/pouchdb-selector-core-7.3.1.tgz", - "integrity": "sha512-HBX+nNGXcaL9z0uNpwSMRq2GNZd3EZXW+fe9rJHS0hvJohjZL7aRJLoaXfEdHPRTNW+CpjM3Rny60eGekQdI/w==", - "dev": true, - "optional": true, - "requires": { - "pouchdb-collate": "7.3.1", - "pouchdb-utils": "7.3.1" - } - }, - "pouchdb-utils": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/pouchdb-utils/-/pouchdb-utils-7.3.1.tgz", - "integrity": "sha512-R3hHBo1zTdTu/NFs3iqkcaQAPwhIH0gMIdfVKd5lbDYlmP26rCG5pdS+v7NuoSSFLJ4xxnaGV+Gjf4duYsJ8wQ==", - "dev": true, - "optional": true, - "requires": { - "argsarray": "0.0.1", - "clone-buffer": "1.0.0", - "immediate": "3.3.0", - "inherits": "2.0.4", - "pouchdb-collections": "7.3.1", - "pouchdb-errors": "7.3.1", - "pouchdb-md5": "7.3.1", - "uuid": "8.3.2" - }, - "dependencies": { - "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, - "optional": true - } - } - }, - "precond": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/precond/-/precond-0.2.3.tgz", - "integrity": "sha1-qpWRvKokkj8eD0hJ0kD0fvwQdaw=" - }, - "prelude-ls": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", - "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", - "dev": true - }, - "prepend-http": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", - "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=", - "dev": true - }, - "prettier": { - "version": "1.19.1", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-1.19.1.tgz", - "integrity": "sha512-s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew==", - "dev": true - }, - "printj": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/printj/-/printj-1.1.2.tgz", - "integrity": "sha512-zA2SmoLaxZyArQTOPj5LXecR+RagfPSU5Kw1qP+jkWeNlrq+eJZyY2oS68SU1Z/7/myXM4lo9716laOFAVStCQ==", - "dev": true - }, - "process": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/process/-/process-0.5.2.tgz", - "integrity": "sha1-FjjYqONML0QKkduVq5rrZ3/Bhc8=" - }, - "process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" - }, - "progress": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", - "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", - "dev": true - }, - "promise-inflight": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", - "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=" - }, - "promise-polyfill": { - "version": "8.1.3", - "resolved": "https://registry.npmjs.org/promise-polyfill/-/promise-polyfill-8.1.3.tgz", - "integrity": "sha512-MG5r82wBzh7pSKDRa9y+vllNHz3e3d4CNj1PQE4BQYxLme0gKYYBm9YENq+UkEikyZ0XbiGWxYlVw3Rl9O/U8g==", - "dev": true - }, - "promise-to-callback": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/promise-to-callback/-/promise-to-callback-1.0.0.tgz", - "integrity": "sha1-XSp0kBC/tn2WNZj805YHRqaP7vc=", - "requires": { - "is-fn": "^1.0.0", - "set-immediate-shim": "^1.0.1" - } - }, - "protobufjs": { - "version": "6.11.2", - "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-6.11.2.tgz", - "integrity": "sha512-4BQJoPooKJl2G9j3XftkIXjoC9C0Av2NOrWmbLWT1vH32GcSUHjM0Arra6UfTsVyfMAuFzaLucXn1sadxJydAw==", - "dev": true, - "requires": { - "@protobufjs/aspromise": "^1.1.2", - "@protobufjs/base64": "^1.1.2", - "@protobufjs/codegen": "^2.0.4", - "@protobufjs/eventemitter": "^1.1.0", - "@protobufjs/fetch": "^1.1.0", - "@protobufjs/float": "^1.0.2", - "@protobufjs/inquire": "^1.1.0", - "@protobufjs/path": "^1.1.2", - "@protobufjs/pool": "^1.1.0", - "@protobufjs/utf8": "^1.1.0", - "@types/long": "^4.0.1", - "@types/node": ">=13.7.0", - "long": "^4.0.0" - } - }, - "proxy-addr": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.6.tgz", - "integrity": "sha512-dh/frvCBVmSsDYzw6n926jv974gddhkFPfiN8hPOi30Wax25QZyZEGveluCgliBnqmuM+UJmBErbAUFIoDbjOw==", - "dev": true, - "requires": { - "forwarded": "~0.1.2", - "ipaddr.js": "1.9.1" - } - }, - "proxy-from-env": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", - "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", - "dev": true, - "optional": true - }, - "prr": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", - "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=" - }, - "psl": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", - "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==", - "dev": true - }, - "public-encrypt": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", - "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", - "requires": { - "bn.js": "^4.1.0", - "browserify-rsa": "^4.0.0", - "create-hash": "^1.1.0", - "parse-asn1": "^5.0.0", - "randombytes": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "pull-stream": { - "version": "3.6.14", - "resolved": "https://registry.npmjs.org/pull-stream/-/pull-stream-3.6.14.tgz", - "integrity": "sha512-KIqdvpqHHaTUA2mCYcLG1ibEbu/LCKoJZsBWyv9lSYtPkJPBq8m3Hxa103xHi6D2thj5YXa0TqK3L3GUkwgnew==" - }, - "pull-stream-to-async-iterator": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/pull-stream-to-async-iterator/-/pull-stream-to-async-iterator-1.0.2.tgz", - "integrity": "sha512-c3KRs2EneuxP7b6pG9fvQTIjatf33RbIErhbQ75s5r2MI6E8R74NZC1nJgXc8kcmqiQxmr+TWY+WwK2mWaUnlA==", - "requires": { - "pull-stream": "^3.6.9" - } - }, - "pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "pumpify": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz", - "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==", - "requires": { - "duplexify": "^3.6.0", - "inherits": "^2.0.3", - "pump": "^2.0.0" - }, - "dependencies": { - "pump": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", - "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - } - } - }, - "punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" - }, - "pure-rand": { - "version": "5.0.5", - "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-5.0.5.tgz", - "integrity": "sha512-BwQpbqxSCBJVpamI6ydzcKqyFmnd5msMWUGvzXLm1aXvusbbgkbOto/EUPM00hjveJEaJtdbhUjKSzWRhQVkaw==", - "dev": true - }, - "qs": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", - "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==" - }, - "query-string": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/query-string/-/query-string-5.1.1.tgz", - "integrity": "sha512-gjWOsm2SoGlgLEdAGt7a6slVOk9mGiXmPFMqrEhLQ68rhQuBnpfs3+EmlvqKyxnCo9/PPlF+9MtY02S1aFg+Jw==", - "requires": { - "decode-uri-component": "^0.2.0", - "object-assign": "^4.1.0", - "strict-uri-encode": "^1.0.0" - } - }, - "querystring": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.1.tgz", - "integrity": "sha512-wkvS7mL/JMugcup3/rMitHmd9ecIGd2lhFhK9N3UUQ450h66d1r3Y9nvXzQAW1Lq+wyx61k/1pfKS5KuKiyEbg==" - }, - "querystring-es3": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", - "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=" - }, - "queue-microtask": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", - "dev": true, - "optional": true - }, - "quick-lru": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", - "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==", - "dev": true - }, - "randombytes": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", - "requires": { - "safe-buffer": "^5.1.0" - } - }, - "randomfill": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", - "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", - "requires": { - "randombytes": "^2.0.5", - "safe-buffer": "^5.1.0" - } - }, - "randomhex": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/randomhex/-/randomhex-0.1.5.tgz", - "integrity": "sha1-us7vmCMpCRQA8qKRLGzQLxCU9YU=", - "dev": true - }, - "range-parser": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", - "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", - "dev": true - }, - "raw-body": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz", - "integrity": "sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==", - "dev": true, - "requires": { - "bytes": "3.1.0", - "http-errors": "1.7.2", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - } - }, - "readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - }, - "dependencies": { - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - } - } - }, - "readdirp": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.5.0.tgz", - "integrity": "sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ==", - "requires": { - "picomatch": "^2.2.1" - } - }, - "reduce-flatten": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/reduce-flatten/-/reduce-flatten-2.0.0.tgz", - "integrity": "sha512-EJ4UNY/U1t2P/2k6oqotuX2Cc3T6nxJwsM0N0asT7dhrtH1ltUxDn4NalSYmPE2rCkVpcf/X6R0wDwcFpzhd4w==" - }, - "redux": { - "version": "3.7.2", - "resolved": "https://registry.npmjs.org/redux/-/redux-3.7.2.tgz", - "integrity": "sha512-pNqnf9q1hI5HHZRBkj3bAngGZW/JMCmexDlOxw4XagXY2o1327nHH54LoTjiPJ0gizoqPDRqWyX/00g0hD6w+A==", - "dev": true, - "requires": { - "lodash": "^4.2.1", - "lodash-es": "^4.2.1", - "loose-envify": "^1.1.0", - "symbol-observable": "^1.0.3" - } - }, - "redux-saga": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/redux-saga/-/redux-saga-1.0.0.tgz", - "integrity": "sha512-GvJWs/SzMvEQgeaw6sRMXnS2FghlvEGsHiEtTLpJqc/FHF3I5EE/B+Hq5lyHZ8LSoT2r/X/46uWvkdCnK9WgHA==", - "dev": true, - "requires": { - "@redux-saga/core": "^1.0.0" - } - }, - "regenerator-runtime": { - "version": "0.13.11", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", - "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==" - }, - "regex-not": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", - "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", - "requires": { - "extend-shallow": "^3.0.2", - "safe-regex": "^1.1.0" - } - }, - "regexpp": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-2.0.1.tgz", - "integrity": "sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw==", - "dev": true - }, - "remove-trailing-separator": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", - "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", - "optional": true - }, - "repeat-element": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.4.tgz", - "integrity": "sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==" - }, - "repeat-string": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", - "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=" - }, - "request": { - "version": "2.88.2", - "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", - "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", - "dev": true, - "requires": { - "aws-sign2": "~0.7.0", - "aws4": "^1.8.0", - "caseless": "~0.12.0", - "combined-stream": "~1.0.6", - "extend": "~3.0.2", - "forever-agent": "~0.6.1", - "form-data": "~2.3.2", - "har-validator": "~5.1.3", - "http-signature": "~1.2.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.19", - "oauth-sign": "~0.9.0", - "performance-now": "^2.1.0", - "qs": "~6.5.2", - "safe-buffer": "^5.1.2", - "tough-cookie": "~2.5.0", - "tunnel-agent": "^0.6.0", - "uuid": "^3.3.2" - } - }, - "require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" - }, - "require-from-string": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", - "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", - "dev": true - }, - "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==" - }, - "reselect": { - "version": "4.1.8", - "resolved": "https://registry.npmjs.org/reselect/-/reselect-4.1.8.tgz", - "integrity": "sha512-ab9EmR80F/zQTMNeneUr4cv+jSwPJgIlvEmVwLerwrWVbpLlBuls9XHzIeTFy4cegU2NHBp3va0LKOzU5qFEYQ==", - "dev": true - }, - "reselect-tree": { - "version": "1.3.7", - "resolved": "https://registry.npmjs.org/reselect-tree/-/reselect-tree-1.3.7.tgz", - "integrity": "sha512-kZN+C1cVJ6fFN2smSb0l4UvYZlRzttgnu183svH4NrU22cBY++ikgr2QT75Uuk4MYpv5gXSVijw4c5U6cx6GKg==", - "dev": true, - "requires": { - "debug": "^3.1.0", - "json-pointer": "^0.6.1", - "reselect": "^4.0.0" - } - }, - "resolve": { - "version": "1.17.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz", - "integrity": "sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==", - "requires": { - "path-parse": "^1.0.6" - } - }, - "resolve-alpn": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz", - "integrity": "sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==", - "dev": true - }, - "resolve-cwd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-2.0.0.tgz", - "integrity": "sha1-AKn3OHVW4nA46uIyyqNypqWbZlo=", - "requires": { - "resolve-from": "^3.0.0" - }, - "dependencies": { - "resolve-from": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", - "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=" - } - } - }, - "resolve-dir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz", - "integrity": "sha1-eaQGRMNivoLybv/nOcm7U4IEb0M=", - "requires": { - "expand-tilde": "^2.0.0", - "global-modules": "^1.0.0" - }, - "dependencies": { - "global-modules": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz", - "integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==", - "requires": { - "global-prefix": "^1.0.1", - "is-windows": "^1.0.1", - "resolve-dir": "^1.0.0" - } - }, - "global-prefix": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz", - "integrity": "sha1-2/dDxsFJklk8ZVVoy2btMsASLr4=", - "requires": { - "expand-tilde": "^2.0.2", - "homedir-polyfill": "^1.0.1", - "ini": "^1.3.4", - "is-windows": "^1.0.1", - "which": "^1.2.14" - } - }, - "which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "requires": { - "isexe": "^2.0.0" - } - } - } - }, - "resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "dev": true - }, - "resolve-url": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", - "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=" - }, - "responselike": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", - "integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=", - "dev": true, - "requires": { - "lowercase-keys": "^1.0.0" - } - }, - "restore-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", - "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", - "dev": true, - "requires": { - "onetime": "^5.1.0", - "signal-exit": "^3.0.2" - } - }, - "ret": { - "version": "0.1.15", - "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", - "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==" - }, - "retry": { - "version": "0.13.1", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz", - "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==", - "dev": true, - "optional": true - }, - "rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "requires": { - "glob": "^7.1.3" - } - }, - "ripemd160": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", - "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", - "requires": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1" - } - }, - "rlp": { - "version": "2.2.6", - "resolved": "https://registry.npmjs.org/rlp/-/rlp-2.2.6.tgz", - "integrity": "sha512-HAfAmL6SDYNWPUOJNrM500x4Thn4PZsEy5pijPh40U9WfNk0z15hUYzO9xVIMAdIHdFtD8CBDHd75Td1g36Mjg==", - "requires": { - "bn.js": "^4.11.1" - } - }, - "run-async": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", - "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==", - "dev": true - }, - "run-queue": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz", - "integrity": "sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec=", - "requires": { - "aproba": "^1.1.1" - } - }, - "rustbn.js": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/rustbn.js/-/rustbn.js-0.2.0.tgz", - "integrity": "sha512-4VlvkRUuCJvr2J6Y0ImW7NvTCriMi7ErOAqWk1y69vAdoNIzCF3yPmgeNzx+RQTLEDFq5sHfscn1MwHxP9hNfA==" - }, - "rxjs": { - "version": "6.6.0", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.0.tgz", - "integrity": "sha512-3HMA8z/Oz61DUHe+SdOiQyzIf4tOx5oQHmMir7IZEu6TMqCLHT4LRcmNaUS0NwOz8VLvmmBduMsoaUvMaIiqzg==", - "dev": true, - "requires": { - "tslib": "^1.9.0" - } - }, - "safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" - }, - "safe-event-emitter": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/safe-event-emitter/-/safe-event-emitter-1.0.1.tgz", - "integrity": "sha512-e1wFe99A91XYYxoQbcq2ZJUWurxEyP8vfz7A7vuUe1s95q8r5ebraVaA1BukYJcpM6V16ugWoD9vngi8Ccu5fg==", - "requires": { - "events": "^3.0.0" - } - }, - "safe-regex": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", - "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", - "requires": { - "ret": "~0.1.10" - } - }, - "safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" - }, - "scrypt-js": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-2.0.4.tgz", - "integrity": "sha512-4KsaGcPnuhtCZQCxFxN3GVYIhKFPTdLd8PLC552XwbMndtD0cjRFAhDuuydXQ0h08ZfPgzqe6EKHozpuH74iDw==", - "dev": true - }, - "scrypt-shim": { - "version": "git+ssh://git@github.com/web3-js/scrypt-shim.git#aafdadda13e660e25e1c525d1f5b2443f5eb1ebb", - "dev": true, - "from": "scrypt-shim@github:web3-js/scrypt-shim", - "requires": { - "scryptsy": "^2.1.0", - "semver": "^6.3.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } - } - }, - "scryptsy": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/scryptsy/-/scryptsy-2.1.0.tgz", - "integrity": "sha512-1CdSqHQowJBnMAFyPEBRfqag/YP9OF394FV+4YREIJX4ljD7OxvQRDayyoyyCk+senRjSkP6VnUNQmVQqB6g7w==" - }, - "secp256k1": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-4.0.2.tgz", - "integrity": "sha512-UDar4sKvWAksIlfX3xIaQReADn+WFnHvbVujpcbr+9Sf/69odMwy2MUsz5CKLQgX9nsIyrjuxL2imVyoNHa3fg==", - "requires": { - "elliptic": "^6.5.2", - "node-addon-api": "^2.0.0", - "node-gyp-build": "^4.2.0" - } - }, - "seek-bzip": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/seek-bzip/-/seek-bzip-1.0.5.tgz", - "integrity": "sha1-z+kXyz0nS8/6x5J1ivUxc+sfq9w=", - "dev": true, - "requires": { - "commander": "~2.8.1" - }, - "dependencies": { - "commander": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.8.1.tgz", - "integrity": "sha1-Br42f+v9oMMwqh4qBy09yXYkJdQ=", - "dev": true, - "requires": { - "graceful-readlink": ">= 1.0.0" - } - } - } - }, - "semaphore": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/semaphore/-/semaphore-1.1.0.tgz", - "integrity": "sha512-O4OZEaNtkMd/K0i6js9SL+gqy0ZCBMgUvlSqHKi4IBdjhe7wB8pwztUk1BbZ1fmrvpwFrPbHzqd2w5pTcJH6LA==" - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" - }, - "send": { - "version": "0.17.1", - "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz", - "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==", - "dev": true, - "requires": { - "debug": "2.6.9", - "depd": "~1.1.2", - "destroy": "~1.0.4", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "fresh": "0.5.2", - "http-errors": "~1.7.2", - "mime": "1.6.0", - "ms": "2.1.1", - "on-finished": "~2.3.0", - "range-parser": "~1.2.1", - "statuses": "~1.5.0" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - }, - "dependencies": { - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - } - } - }, - "ms": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", - "dev": true - } - } - }, - "sentence-case": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/sentence-case/-/sentence-case-2.1.1.tgz", - "integrity": "sha512-ENl7cYHaK/Ktwk5OTD+aDbQ3uC8IByu/6Bkg+HDv8Mm+XnBnppVNalcfJTNsp1ibstKh030/JKQQWglDvtKwEQ==", - "dev": true, - "requires": { - "no-case": "^2.2.0", - "upper-case-first": "^1.1.2" - } - }, - "serialize-javascript": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz", - "integrity": "sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==", - "requires": { - "randombytes": "^2.1.0" - } - }, - "serve-static": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz", - "integrity": "sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==", - "dev": true, - "requires": { - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "parseurl": "~1.3.3", - "send": "0.17.1" - } - }, - "servify": { - "version": "0.1.12", - "resolved": "https://registry.npmjs.org/servify/-/servify-0.1.12.tgz", - "integrity": "sha512-/xE6GvsKKqyo1BAY+KxOWXcLpPsUUyji7Qg3bVD7hh1eRze5bR1uYiuDA/k3Gof1s9BTzQZEJK8sNcNGFIzeWw==", - "dev": true, - "requires": { - "body-parser": "^1.16.0", - "cors": "^2.8.1", - "express": "^4.14.0", - "request": "^2.79.0", - "xhr": "^2.3.3" - } - }, - "set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" - }, - "set-immediate-shim": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz", - "integrity": "sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E=" - }, - "set-value": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", - "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", - "requires": { - "extend-shallow": "^2.0.1", - "is-extendable": "^0.1.1", - "is-plain-object": "^2.0.3", - "split-string": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "^0.1.0" - } - }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=" - } - } - }, - "setimmediate": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.4.tgz", - "integrity": "sha1-IOgd5iLUoCWIzgyNqJc8vPHTE48=" - }, - "setprototypeof": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", - "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==", - "dev": true - }, - "sha.js": { - "version": "2.4.11", - "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", - "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", - "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "shallowequal": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/shallowequal/-/shallowequal-1.1.0.tgz", - "integrity": "sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==", - "dev": true - }, - "shebang-command": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", - "requires": { - "shebang-regex": "^1.0.0" - } - }, - "shebang-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=" - }, - "signal-exit": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", - "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==", - "dev": true - }, - "simple-concat": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz", - "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==" - }, - "simple-get": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-2.8.1.tgz", - "integrity": "sha512-lSSHRSw3mQNUGPAYRqo7xy9dhKmxFXIjLjp4KHpf99GEH2VH7C3AM+Qfx6du6jhfUi6Vm7XnbEVEf7Wb6N8jRw==", - "requires": { - "decompress-response": "^3.3.0", - "once": "^1.3.1", - "simple-concat": "^1.0.0" - } - }, - "simple-git": { - "version": "1.132.0", - "resolved": "https://registry.npmjs.org/simple-git/-/simple-git-1.132.0.tgz", - "integrity": "sha512-xauHm1YqCTom1sC9eOjfq3/9RKiUA9iPnxBbrY2DdL8l4ADMu0jjM5l5lphQP5YWNqAL2aXC/OeuQ76vHtW5fg==", - "dev": true, - "requires": { - "debug": "^4.0.1" - }, - "dependencies": { - "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - } - } - }, - "slice-ansi": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz", - "integrity": "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.0", - "astral-regex": "^1.0.0", - "is-fullwidth-code-point": "^2.0.0" - } - }, - "snake-case": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/snake-case/-/snake-case-2.1.0.tgz", - "integrity": "sha512-FMR5YoPFwOLuh4rRz92dywJjyKYZNLpMn1R5ujVpIYkbA9p01fq8RMg0FkO4M+Yobt4MjHeLTJVm5xFFBHSV2Q==", - "dev": true, - "requires": { - "no-case": "^2.2.0" - } - }, - "snapdragon": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", - "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", - "requires": { - "base": "^0.11.1", - "debug": "^2.2.0", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "map-cache": "^0.2.2", - "source-map": "^0.5.6", - "source-map-resolve": "^0.5.0", - "use": "^3.1.0" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } - }, - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "^0.1.0" - } - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - } - }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=" - }, - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" - } - } - }, - "snapdragon-node": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", - "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", - "requires": { - "define-property": "^1.0.0", - "isobject": "^3.0.0", - "snapdragon-util": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "requires": { - "is-descriptor": "^1.0.0" - } - } - } - }, - "snapdragon-util": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", - "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", - "requires": { - "kind-of": "^3.2.0" - }, - "dependencies": { - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" - }, - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "solc-wrapper": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/solc-wrapper/-/solc-wrapper-0.6.3.tgz", - "integrity": "sha512-FWBnuQfU537SVSsBxuE4XkOKcK88a/bpLMVde2gc3BZcj0VmPc38wYO0Hkqqxsek7ZLK2lmXuEDLmgXhXl8Kyw==", - "dev": true, - "requires": { - "command-exists": "^1.2.8", - "fs-extra": "^0.30.0", - "js-sha3": "0.8.0", - "memorystream": "^0.3.1", - "require-from-string": "^2.0.0", - "semver": "^5.5.0", - "tmp": "0.0.33" - }, - "dependencies": { - "fs-extra": { - "version": "0.30.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-0.30.0.tgz", - "integrity": "sha1-8jP/zAjU2n1DLapEl3aYnbHfk/A=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "jsonfile": "^2.1.0", - "klaw": "^1.0.0", - "path-is-absolute": "^1.0.0", - "rimraf": "^2.2.8" - } - }, - "js-sha3": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.8.0.tgz", - "integrity": "sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q==", - "dev": true - }, - "jsonfile": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz", - "integrity": "sha1-NzaitCi4e72gzIO1P6PWM6NcKug=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.6" - } - } - } - }, - "source-list-map": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz", - "integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==" - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" - }, - "source-map-resolve": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", - "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", - "requires": { - "atob": "^2.1.2", - "decode-uri-component": "^0.2.0", - "resolve-url": "^0.2.1", - "source-map-url": "^0.4.0", - "urix": "^0.1.0" - } - }, - "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==", - "requires": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "source-map-url": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz", - "integrity": "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==" - }, - "spark-md5": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/spark-md5/-/spark-md5-3.0.2.tgz", - "integrity": "sha512-wcFzz9cDfbuqe0FZzfi2or1sgyIrsDwmPwfZC4hiNidPdPINjeUwNfv5kldczoEAcjl9Y1L3SM7Uz2PUEQzxQw==", - "dev": true, - "optional": true - }, - "spinnies": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/spinnies/-/spinnies-0.3.2.tgz", - "integrity": "sha512-WOvGI8X3h2XbAu/VBzIG99qJTeWCZ5RjyZtuLc4Q6qwAIv1/OPA2aL9j5wYEhwNsWLbBDHH5bLk/bOJTpexljw==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "cli-cursor": "^3.0.0" - } - }, - "split-string": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", - "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", - "requires": { - "extend-shallow": "^3.0.0" - } - }, - "sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", - "dev": true - }, - "sshpk": { - "version": "1.16.1", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", - "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", - "requires": { - "asn1": "~0.2.3", - "assert-plus": "^1.0.0", - "bcrypt-pbkdf": "^1.0.0", - "dashdash": "^1.12.0", - "ecc-jsbn": "~0.1.1", - "getpass": "^0.1.1", - "jsbn": "~0.1.0", - "safer-buffer": "^2.0.2", - "tweetnacl": "~0.14.0" - } - }, - "ssri": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.2.tgz", - "integrity": "sha512-cepbSq/neFK7xB6A50KHN0xHDotYzq58wWCa5LeWqnPrHG8GzfEjO/4O8kpmcGW+oaxkvhEJCWgbgNk4/ZV93Q==", - "requires": { - "figgy-pudding": "^3.5.1" - } - }, - "static-extend": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", - "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", - "requires": { - "define-property": "^0.2.5", - "object-copy": "^0.1.0" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - } - }, - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" - } - } - }, - "statuses": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", - "dev": true - }, - "stream-each": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/stream-each/-/stream-each-1.2.3.tgz", - "integrity": "sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw==", - "requires": { - "end-of-stream": "^1.1.0", - "stream-shift": "^1.0.0" - } - }, - "stream-shift": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz", - "integrity": "sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==" - }, - "strict-uri-encode": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz", - "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=" - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "requires": { - "safe-buffer": "~5.1.0" - }, - "dependencies": { - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - } - } - }, - "string-format": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/string-format/-/string-format-2.0.0.tgz", - "integrity": "sha512-bbEs3scLeYNXLecRRuk6uJxdXUSj6le/8rNPHChIJTn2V79aXVTR1EH2OH5zLKKoz0V02fOUKZZcw01pLUShZA==" - }, - "string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", - "requires": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" - }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "requires": { - "ansi-regex": "^3.0.0" - } - } - } - }, - "string.prototype.trimend": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz", - "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - } - }, - "string.prototype.trimstart": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz", - "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - } - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "requires": { - "ansi-regex": "^4.1.0" - } - }, - "strip-dirs": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/strip-dirs/-/strip-dirs-2.1.0.tgz", - "integrity": "sha512-JOCxOeKLm2CAS73y/U4ZeZPTkE+gNVCzKt7Eox84Iej1LT/2pTWYpZKJuxwQpvX1LiZb1xokNR7RLfuBAa7T3g==", - "dev": true, - "requires": { - "is-natural-number": "^4.0.1" - } - }, - "strip-hex-prefix": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-hex-prefix/-/strip-hex-prefix-1.0.0.tgz", - "integrity": "sha1-DF8VX+8RUTczd96du1iNoFUA428=", - "requires": { - "is-hex-prefixed": "1.0.0" - } - }, - "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==" - }, - "sublevel-pouchdb": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/sublevel-pouchdb/-/sublevel-pouchdb-7.3.1.tgz", - "integrity": "sha512-n+4fK72F/ORdqPwoGgMGYeOrW2HaPpW9o9k80bT1B3Cim5BSvkKkr9WbWOWynni/GHkbCEdvLVFJL1ktosAdhQ==", - "dev": true, - "optional": true, - "requires": { - "inherits": "2.0.4", - "level-codec": "9.0.2", - "ltgt": "2.2.1", - "readable-stream": "1.1.14" - }, - "dependencies": { - "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==", - "dev": true, - "optional": true - }, - "level-codec": { - "version": "9.0.2", - "resolved": "https://registry.npmjs.org/level-codec/-/level-codec-9.0.2.tgz", - "integrity": "sha512-UyIwNb1lJBChJnGfjmO0OR+ezh2iVu1Kas3nvBS/BzGnx79dv6g7unpKIDNPMhfdTEGoc7mC8uAu51XEtX+FHQ==", - "dev": true, - "optional": true, - "requires": { - "buffer": "^5.6.0" - } - }, - "readable-stream": { - "version": "1.1.14", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", - "integrity": "sha512-+MeVjFf4L44XUkhM1eYbD8fyEsxcV81pqMSR5gblfcLCHfZvbrqy4/qYHE+/R5HoBUT11WV5O08Cr1n3YXkWVQ==", - "dev": true, - "optional": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" - } - }, - "string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==", - "dev": true, - "optional": true - } - } - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "requires": { - "has-flag": "^3.0.0" - } - }, - "swap-case": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/swap-case/-/swap-case-1.1.2.tgz", - "integrity": "sha512-BAmWG6/bx8syfc6qXPprof3Mn5vQgf5dwdUNJhsNqU9WdPt5P+ES/wQ5bxfijy8zwZgZZHslC3iAsxsuQMCzJQ==", - "dev": true, - "requires": { - "lower-case": "^1.1.1", - "upper-case": "^1.1.1" - } - }, - "swarm-js": { - "version": "0.1.39", - "resolved": "https://registry.npmjs.org/swarm-js/-/swarm-js-0.1.39.tgz", - "integrity": "sha512-QLMqL2rzF6n5s50BptyD6Oi0R1aWlJC5Y17SRIVXRj6OR1DRIPM7nepvrxxkjA1zNzFz6mUOMjfeqeDaWB7OOg==", - "dev": true, - "requires": { - "bluebird": "^3.5.0", - "buffer": "^5.0.5", - "decompress": "^4.0.0", - "eth-lib": "^0.1.26", - "fs-extra": "^4.0.2", - "got": "^7.1.0", - "mime-types": "^2.1.16", - "mkdirp-promise": "^5.0.1", - "mock-fs": "^4.1.0", - "setimmediate": "^1.0.5", - "tar": "^4.0.2", - "xhr-request-promise": "^0.1.2" - }, - "dependencies": { - "fs-extra": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-4.0.3.tgz", - "integrity": "sha512-q6rbdDd1o2mAnQreO7YADIxf/Whx4AHBiRf6d+/cVT8h44ss+lHgxf1FemcqDnQt9X3ct4McHr+JMGlYSsK7Cg==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - }, - "get-stream": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", - "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=", - "dev": true - }, - "got": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/got/-/got-7.1.0.tgz", - "integrity": "sha512-Y5WMo7xKKq1muPsxD+KmrR8DH5auG7fBdDVueZwETwV6VytKyU9OX/ddpq2/1hp1vIPvVb4T81dKQz3BivkNLw==", - "dev": true, - "requires": { - "decompress-response": "^3.2.0", - "duplexer3": "^0.1.4", - "get-stream": "^3.0.0", - "is-plain-obj": "^1.1.0", - "is-retry-allowed": "^1.0.0", - "is-stream": "^1.0.0", - "isurl": "^1.0.0-alpha5", - "lowercase-keys": "^1.0.0", - "p-cancelable": "^0.3.0", - "p-timeout": "^1.1.1", - "safe-buffer": "^5.0.1", - "timed-out": "^4.0.0", - "url-parse-lax": "^1.0.0", - "url-to-options": "^1.0.1" - } - }, - "p-cancelable": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-0.3.0.tgz", - "integrity": "sha512-RVbZPLso8+jFeq1MfNvgXtCRED2raz/dKpacfTNxsx6pLEpEomM7gah6VeHSYV3+vo0OAi4MkArtQcWWXuQoyw==", - "dev": true - }, - "prepend-http": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", - "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=", - "dev": true - }, - "setimmediate": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", - "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=", - "dev": true - }, - "url-parse-lax": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz", - "integrity": "sha1-evjzA2Rem9eaJy56FKxovAYJ2nM=", - "dev": true, - "requires": { - "prepend-http": "^1.0.1" - } - } - } - }, - "symbol-observable": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.2.0.tgz", - "integrity": "sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ==", - "dev": true - }, - "table": { - "version": "5.4.6", - "resolved": "https://registry.npmjs.org/table/-/table-5.4.6.tgz", - "integrity": "sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug==", - "dev": true, - "requires": { - "ajv": "^6.10.2", - "lodash": "^4.17.14", - "slice-ansi": "^2.1.0", - "string-width": "^3.0.0" - }, - "dependencies": { - "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==", - "dev": true, - "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - } - } - } - }, - "table-layout": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/table-layout/-/table-layout-1.0.2.tgz", - "integrity": "sha512-qd/R7n5rQTRFi+Zf2sk5XVVd9UQl6ZkduPFC3S7WEGJAmetDTjY3qPN50eSKzwuzEyQKy5TN2TiZdkIjos2L6A==", - "requires": { - "array-back": "^4.0.1", - "deep-extend": "~0.6.0", - "typical": "^5.2.0", - "wordwrapjs": "^4.0.0" - }, - "dependencies": { - "array-back": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-4.0.2.tgz", - "integrity": "sha512-NbdMezxqf94cnNfWLL7V/im0Ub+Anbb0IoZhvzie8+4HJ4nMQuzHuy49FkGYCJK2yAloZ3meiB6AVMClbrI1vg==" - }, - "typical": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/typical/-/typical-5.2.0.tgz", - "integrity": "sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg==" - } - } - }, - "tar": { - "version": "4.4.13", - "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.13.tgz", - "integrity": "sha512-w2VwSrBoHa5BsSyH+KxEqeQBAllHhccyMFVHtGtdMpF4W7IRWfZjFiQceJPChOeTsSDVUpER2T8FA93pr0L+QA==", - "dev": true, - "requires": { - "chownr": "^1.1.1", - "fs-minipass": "^1.2.5", - "minipass": "^2.8.6", - "minizlib": "^1.2.1", - "mkdirp": "^0.5.0", - "safe-buffer": "^5.1.2", - "yallist": "^3.0.3" - }, - "dependencies": { - "mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "dev": true, - "requires": { - "minimist": "^1.2.5" - } - } - } - }, - "tar-stream": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-1.6.2.tgz", - "integrity": "sha512-rzS0heiNf8Xn7/mpdSVVSMAWAoy9bfb1WOTYC78Z0UQKeKa/CWS8FOq0lKGNa8DWKAn9gxjCvMLYc5PGXYlK2A==", - "dev": true, - "requires": { - "bl": "^1.0.0", - "buffer-alloc": "^1.2.0", - "end-of-stream": "^1.0.0", - "fs-constants": "^1.0.0", - "readable-stream": "^2.3.0", - "to-buffer": "^1.1.1", - "xtend": "^4.0.0" - } - }, - "test-value": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/test-value/-/test-value-2.1.0.tgz", - "integrity": "sha512-+1epbAxtKeXttkGFMTX9H42oqzOTufR1ceCF+GYA5aOmvaPq9wd4PUS8329fn2RRLGNeUkgRLnVpycjx8DsO2w==", - "dev": true, - "requires": { - "array-back": "^1.0.3", - "typical": "^2.6.0" - }, - "dependencies": { - "array-back": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-1.0.4.tgz", - "integrity": "sha512-1WxbZvrmyhkNoeYcizokbmh5oiOCIfyvGtcqbK3Ls1v1fKcquzxnQSceOx6tzq7jmai2kFLWIpGND2cLhH6TPw==", - "dev": true, - "requires": { - "typical": "^2.6.0" - } - }, - "typical": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/typical/-/typical-2.6.1.tgz", - "integrity": "sha512-ofhi8kjIje6npGozTip9Fr8iecmYfEbS06i0JnIg+rh51KakryWF4+jX8lLKZVhy6N+ID45WYSFCxPOdTWCzNg==", - "dev": true - } - } - }, - "text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", - "dev": true - }, - "through": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", - "dev": true - }, - "through2": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/through2/-/through2-3.0.2.tgz", - "integrity": "sha512-enaDQ4MUyP2W6ZyT6EsMzqBPZaM/avg8iuo+l2d3QCs0J+6RaqkHV/2/lOwDTueBHeJ/2LG9lrLW3d5rWPucuQ==", - "dev": true, - "optional": true, - "requires": { - "inherits": "^2.0.4", - "readable-stream": "2 || 3" - } - }, - "timed-out": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz", - "integrity": "sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8=" - }, - "timers-browserify": { - "version": "2.0.12", - "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.12.tgz", - "integrity": "sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ==", - "requires": { - "setimmediate": "^1.0.4" - } - }, - "tiny-typed-emitter": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/tiny-typed-emitter/-/tiny-typed-emitter-2.1.0.tgz", - "integrity": "sha512-qVtvMxeXbVej0cQWKqVSSAHmKZEHAvxdF8HEUBFWts8h+xEo5m/lEiPakuyZ3BnCBjOD8i24kzNOiOLLgsSxhA==", - "dev": true, - "optional": true - }, - "title-case": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/title-case/-/title-case-2.1.1.tgz", - "integrity": "sha512-EkJoZ2O3zdCz3zJsYCsxyq2OC5hrxR9mfdd5I+w8h/tmFfeOxJ+vvkxsKxdmN0WtS9zLdHEgfgVOiMVgv+Po4Q==", - "dev": true, - "requires": { - "no-case": "^2.2.0", - "upper-case": "^1.0.3" - } - }, - "tmp": { - "version": "0.0.33", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", - "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", - "dev": true, - "requires": { - "os-tmpdir": "~1.0.2" - } - }, - "to-arraybuffer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", - "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=" - }, - "to-buffer": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/to-buffer/-/to-buffer-1.1.1.tgz", - "integrity": "sha512-lx9B5iv7msuFYE3dytT+KE5tap+rNYw+K4jVkb9R/asAb+pbBSM17jtunHplhBe6RRJdZx3Pn2Jph24O32mOVg==", - "dev": true - }, - "to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=" - }, - "to-object-path": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", - "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" - }, - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "to-readable-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz", - "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==", - "dev": true - }, - "to-regex": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", - "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", - "requires": { - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "regex-not": "^1.0.2", - "safe-regex": "^1.1.0" - } - }, - "to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "requires": { - "is-number": "^7.0.0" - } - }, - "toidentifier": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", - "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==", - "dev": true - }, - "toposort": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/toposort/-/toposort-2.0.2.tgz", - "integrity": "sha1-riF2gXXRVZ1IvvNUILL0li8JwzA=", - "dev": true - }, - "tough-cookie": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", - "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", - "dev": true, - "requires": { - "psl": "^1.1.28", - "punycode": "^2.1.1" - } - }, - "tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=" - }, - "truffle": { - "version": "5.8.4", - "resolved": "https://registry.npmjs.org/truffle/-/truffle-5.8.4.tgz", - "integrity": "sha512-wl5q6geB1Elq+A8knQ5zW9v9ARDiiawDkZOJZF7D0CN8zXmgGzdO4+EFZ4Ig3O4U70c0J2F2s27Oxj2XB4/SiA==", - "dev": true, - "requires": { - "@truffle/db": "^2.0.23", - "@truffle/db-loader": "^0.2.23", - "@truffle/debugger": "^11.0.34", - "app-module-path": "^2.2.0", - "ganache": "7.8.0", - "mocha": "10.1.0", - "original-require": "^1.0.1" - }, - "dependencies": { - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true - }, - "brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "requires": { - "balanced-match": "^1.0.0" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "dependencies": { - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "chokidar": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", - "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", - "dev": true, - "requires": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "fsevents": "~2.3.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" - } - }, - "cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", - "dev": true, - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "requires": { - "ms": "2.1.2" - }, - "dependencies": { - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - } - } - }, - "diff": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz", - "integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==", - "dev": true - }, - "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==", - "dev": true - }, - "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==", - "dev": true - }, - "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==", - "dev": true, - "requires": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - } - }, - "glob": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", - "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", - "dev": true, - "requires": { - "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" - } - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "is-fullwidth-code-point": { - "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==", - "dev": true - }, - "js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dev": true, - "requires": { - "argparse": "^2.0.1" - } - }, - "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==", - "dev": true, - "requires": { - "p-locate": "^5.0.0" - } - }, - "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==", - "dev": true, - "requires": { - "chalk": "^4.1.0", - "is-unicode-supported": "^0.1.0" - } - }, - "mocha": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/mocha/-/mocha-10.1.0.tgz", - "integrity": "sha512-vUF7IYxEoN7XhQpFLxQAEMtE4W91acW4B6En9l97MwE9stL1A9gusXfoHZCLVHDUJ/7V5+lbCM6yMqzo5vNymg==", - "dev": true, - "requires": { - "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" - }, - "dependencies": { - "minimatch": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.0.1.tgz", - "integrity": "sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g==", - "dev": true, - "requires": { - "brace-expansion": "^2.0.1" - } - } - } - }, - "ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "dev": true - }, - "nanoid": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.3.tgz", - "integrity": "sha512-p1sjXuopFs0xg+fPASzQ28agW1oHD7xDsd9Xkf3T15H3c/cifrFHVwrh74PdoklAPi+i7MdRsE47vm2r6JoB+w==", - "dev": true - }, - "p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "dev": true, - "requires": { - "yocto-queue": "^0.1.0" - } - }, - "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==", - "dev": true, - "requires": { - "p-limit": "^3.0.2" - } - }, - "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==", - "dev": true - }, - "readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "dev": true, - "requires": { - "picomatch": "^2.2.1" - } - }, - "serialize-javascript": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", - "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==", - "dev": true, - "requires": { - "randombytes": "^2.1.0" - } - }, - "string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - } - }, - "strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.1" - } - }, - "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, - "requires": { - "has-flag": "^4.0.0" - } - }, - "wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - } - }, - "y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "dev": true - }, - "yargs": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", - "dev": true, - "requires": { - "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" - } - }, - "yargs-parser": { - "version": "20.2.4", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz", - "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==", - "dev": true - } - } - }, - "truffle-config": { - "version": "1.1.16", - "resolved": "https://registry.npmjs.org/truffle-config/-/truffle-config-1.1.16.tgz", - "integrity": "sha512-of9wKDjXAKIA4kpdQbxnSxRl4EOPi6ipkoOn01J3yC1UJ942jeyLm7hUrTRdxcL8Nz3G47xO+xTMX5T7UYbdTA==", - "dev": true, - "requires": { - "configstore": "^4.0.0", - "find-up": "^2.1.0", - "lodash": "^4.17.13", - "original-require": "1.0.1", - "truffle-error": "^0.0.5", - "truffle-provider": "^0.1.12" - }, - "dependencies": { - "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "dev": true, - "requires": { - "locate-path": "^2.0.0" - } - } - } - }, - "truffle-error": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/truffle-error/-/truffle-error-0.0.5.tgz", - "integrity": "sha512-JpzPLMPSCE0vaZ3vH5NO5u42GpMj/Y1SRBkQ6b69PSw3xMSH1umApN32cEcg1nnh8q5FNYc5FnKu0m4tiBffyQ==", - "dev": true - }, - "truffle-flattener": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/truffle-flattener/-/truffle-flattener-1.6.0.tgz", - "integrity": "sha512-scS5Bsi4CZyvlrmD4iQcLHTiG2RQFUXVheTgWeH6PuafmI+Lk5U87Es98loM3w3ImqC9/fPHq+3QIXbcPuoJ1Q==", - "dev": true, - "requires": { - "@resolver-engine/imports-fs": "^0.2.2", - "@solidity-parser/parser": "^0.14.1", - "find-up": "^2.1.0", - "mkdirp": "^1.0.4", - "tsort": "0.0.1" - }, - "dependencies": { - "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "dev": true, - "requires": { - "locate-path": "^2.0.0" - } - } - } - }, - "truffle-hdwallet-provider-klaytn": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/truffle-hdwallet-provider-klaytn/-/truffle-hdwallet-provider-klaytn-1.4.2.tgz", - "integrity": "sha512-ECsaulUnVIYwSXzgh71FX7qKcCGSNj77GdoqQWNls5jJR0T3ufdG8lmH85TEnz9JOHEeEnLeLvUJ/Tcn2U4OMw==", - "requires": { - "@trufflesuite/web3-provider-engine": "15.0.13-1", - "any-promise": "1.3.0", - "bindings": "1.5.0", - "caver-js": "1.6.3", - "ethereum-cryptography": "0.1.3", - "ethereum-protocol": "1.0.1", - "ethereumjs-util": "6.2.0", - "ethereumjs-wallet": "1.0.1" - }, - "dependencies": { - "@babel/runtime": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.3.1.tgz", - "integrity": "sha512-7jGW8ppV0ant637pIqAcFfQDDH1orEPGJb8aXfUozuCU3QqX7rX4DA8iwrbPrR1hcH0FTTHz47yQnk+bl5xHQA==", - "requires": { - "regenerator-runtime": "^0.12.0" - } - }, - "@ethersproject/abi": { - "version": "5.0.7", - "resolved": "https://registry.npmjs.org/@ethersproject/abi/-/abi-5.0.7.tgz", - "integrity": "sha512-Cqktk+hSIckwP/W8O47Eef60VwmoSC/L3lY0+dIBhQPCNn9E4V7rwmm2aFrNRRDJfFlGuZ1khkQUOc3oBX+niw==", - "requires": { - "@ethersproject/address": "^5.0.4", - "@ethersproject/bignumber": "^5.0.7", - "@ethersproject/bytes": "^5.0.4", - "@ethersproject/constants": "^5.0.4", - "@ethersproject/hash": "^5.0.4", - "@ethersproject/keccak256": "^5.0.3", - "@ethersproject/logger": "^5.0.5", - "@ethersproject/properties": "^5.0.3", - "@ethersproject/strings": "^5.0.4" - } - }, - "@ethersproject/abstract-provider": { - "version": "5.0.10", - "resolved": "https://registry.npmjs.org/@ethersproject/abstract-provider/-/abstract-provider-5.0.10.tgz", - "integrity": "sha512-OSReY5iz94iIaPlRvLiJP8YVIvQLx4aUvMMnHWSaA/vTU8QHZmgNlt4OBdYV1+aFY8Xl+VRYiWBHq72ZDKXXCQ==", - "requires": { - "@ethersproject/bignumber": "^5.0.13", - "@ethersproject/bytes": "^5.0.9", - "@ethersproject/logger": "^5.0.8", - "@ethersproject/networks": "^5.0.7", - "@ethersproject/properties": "^5.0.7", - "@ethersproject/transactions": "^5.0.9", - "@ethersproject/web": "^5.0.12" - } - }, - "@ethersproject/abstract-signer": { - "version": "5.0.14", - "resolved": "https://registry.npmjs.org/@ethersproject/abstract-signer/-/abstract-signer-5.0.14.tgz", - "integrity": "sha512-JztBwVO7o5OHLh2vyjordlS4/1EjRyaECtc8vPdXTF1i4dXN+J0coeRoPN6ZFbBvi/YbaB6br2fvqhst1VQD/g==", - "requires": { - "@ethersproject/abstract-provider": "^5.0.8", - "@ethersproject/bignumber": "^5.0.13", - "@ethersproject/bytes": "^5.0.9", - "@ethersproject/logger": "^5.0.8", - "@ethersproject/properties": "^5.0.7" - } - }, - "@ethersproject/address": { - "version": "5.0.11", - "resolved": "https://registry.npmjs.org/@ethersproject/address/-/address-5.0.11.tgz", - "integrity": "sha512-Et4GBdD8/tsBGjCEOKee9upN29qjL5kbRcmJifb4Penmiuh9GARXL2/xpXvEp5EW+EIW/rfCHFJrkYBgoQFQBw==", - "requires": { - "@ethersproject/bignumber": "^5.0.13", - "@ethersproject/bytes": "^5.0.9", - "@ethersproject/keccak256": "^5.0.7", - "@ethersproject/logger": "^5.0.8", - "@ethersproject/rlp": "^5.0.7" - } - }, - "@ethersproject/base64": { - "version": "5.0.9", - "resolved": "https://registry.npmjs.org/@ethersproject/base64/-/base64-5.0.9.tgz", - "integrity": "sha512-37RBz5LEZ9SlTNGiWCYFttnIN9J7qVs9Xo2EbqGqDH5LfW9EIji66S+YDMpXVo1zWDax1FkEldAoatxHK2gfgA==", - "requires": { - "@ethersproject/bytes": "^5.0.9" - } - }, - "@ethersproject/basex": { - "version": "5.0.9", - "resolved": "https://registry.npmjs.org/@ethersproject/basex/-/basex-5.0.9.tgz", - "integrity": "sha512-FANswl1IN3PS0eltQxH2aM2+utPrkLUVG4XVFi6SafRG9EpAqXCgycxC8PU90mPGhigYTpg9cnTB5mCZ6ejQjw==", - "requires": { - "@ethersproject/bytes": "^5.0.9", - "@ethersproject/properties": "^5.0.7" - } - }, - "@ethersproject/bignumber": { - "version": "5.0.15", - "resolved": "https://registry.npmjs.org/@ethersproject/bignumber/-/bignumber-5.0.15.tgz", - "integrity": "sha512-MTADqnyacvdRwtKh7o9ujwNDSM1SDJjYDMYAzjIgjoi9rh6TY4suMbhCa3i2vh3SUXiXSICyTI8ui+NPdrZ9Lw==", - "requires": { - "@ethersproject/bytes": "^5.0.9", - "@ethersproject/logger": "^5.0.8", - "bn.js": "^4.4.0" - } - }, - "@ethersproject/bytes": { - "version": "5.0.11", - "resolved": "https://registry.npmjs.org/@ethersproject/bytes/-/bytes-5.0.11.tgz", - "integrity": "sha512-D51plLYY5qF05AsoVQwIZVLqlBkaTPVHVP/1WmmBIWyHB0cRW0C9kh0kx5Exo51rB63Hk8PfHxc7SmpoaQFEyg==", - "requires": { - "@ethersproject/logger": "^5.0.8" - } - }, - "@ethersproject/constants": { - "version": "5.0.10", - "resolved": "https://registry.npmjs.org/@ethersproject/constants/-/constants-5.0.10.tgz", - "integrity": "sha512-OSo8jxkHLDXieCy8bgOFR7lMfgPxEzKvSDdP+WAWHCDM8+orwch0B6wzkTmiQFgryAtIctrBt5glAdJikZ3hGw==", - "requires": { - "@ethersproject/bignumber": "^5.0.13" - } - }, - "@ethersproject/contracts": { - "version": "5.0.12", - "resolved": "https://registry.npmjs.org/@ethersproject/contracts/-/contracts-5.0.12.tgz", - "integrity": "sha512-srijy31idjz8bE+gL1I6IRj2H4I9dUwfQ+QroLrIgNdGArqY8y2iFUKa3QTy+JBX26fJsdYiCQi1kKkaNpnMpQ==", - "requires": { - "@ethersproject/abi": "^5.0.10", - "@ethersproject/abstract-provider": "^5.0.8", - "@ethersproject/abstract-signer": "^5.0.10", - "@ethersproject/address": "^5.0.9", - "@ethersproject/bignumber": "^5.0.13", - "@ethersproject/bytes": "^5.0.9", - "@ethersproject/constants": "^5.0.8", - "@ethersproject/logger": "^5.0.8", - "@ethersproject/properties": "^5.0.7" - }, - "dependencies": { - "@ethersproject/abi": { - "version": "5.6.1", - "resolved": "https://registry.npmjs.org/@ethersproject/abi/-/abi-5.6.1.tgz", - "integrity": "sha512-0cqssYh6FXjlwKWBmLm3+zH2BNARoS5u/hxbz+LpQmcDB3w0W553h2btWui1/uZp2GBM/SI3KniTuMcYyHpA5w==", - "requires": { - "@ethersproject/address": "^5.6.0", - "@ethersproject/bignumber": "^5.6.0", - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/constants": "^5.6.0", - "@ethersproject/hash": "^5.6.0", - "@ethersproject/keccak256": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/properties": "^5.6.0", - "@ethersproject/strings": "^5.6.0" - } - }, - "@ethersproject/abstract-provider": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/@ethersproject/abstract-provider/-/abstract-provider-5.6.0.tgz", - "integrity": "sha512-oPMFlKLN+g+y7a79cLK3WiLcjWFnZQtXWgnLAbHZcN3s7L4v90UHpTOrLk+m3yr0gt+/h9STTM6zrr7PM8uoRw==", - "requires": { - "@ethersproject/bignumber": "^5.6.0", - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/networks": "^5.6.0", - "@ethersproject/properties": "^5.6.0", - "@ethersproject/transactions": "^5.6.0", - "@ethersproject/web": "^5.6.0" - } - }, - "@ethersproject/abstract-signer": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/@ethersproject/abstract-signer/-/abstract-signer-5.6.0.tgz", - "integrity": "sha512-WOqnG0NJKtI8n0wWZPReHtaLkDByPL67tn4nBaDAhmVq8sjHTPbCdz4DRhVu/cfTOvfy9w3iq5QZ7BX7zw56BQ==", - "requires": { - "@ethersproject/abstract-provider": "^5.6.0", - "@ethersproject/bignumber": "^5.6.0", - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/properties": "^5.6.0" - } - }, - "@ethersproject/address": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/@ethersproject/address/-/address-5.6.0.tgz", - "integrity": "sha512-6nvhYXjbXsHPS+30sHZ+U4VMagFC/9zAk6Gd/h3S21YW4+yfb0WfRtaAIZ4kfM4rrVwqiy284LP0GtL5HXGLxQ==", - "requires": { - "@ethersproject/bignumber": "^5.6.0", - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/keccak256": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/rlp": "^5.6.0" - } - }, - "@ethersproject/base64": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/@ethersproject/base64/-/base64-5.6.0.tgz", - "integrity": "sha512-2Neq8wxJ9xHxCF9TUgmKeSh9BXJ6OAxWfeGWvbauPh8FuHEjamgHilllx8KkSd5ErxyHIX7Xv3Fkcud2kY9ezw==", - "requires": { - "@ethersproject/bytes": "^5.6.0" - } - }, - "@ethersproject/bignumber": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/@ethersproject/bignumber/-/bignumber-5.6.0.tgz", - "integrity": "sha512-VziMaXIUHQlHJmkv1dlcd6GY2PmT0khtAqaMctCIDogxkrarMzA9L94KN1NeXqqOfFD6r0sJT3vCTOFSmZ07DA==", - "requires": { - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "bn.js": "^4.11.9" - } - }, - "@ethersproject/bytes": { - "version": "5.6.1", - "resolved": "https://registry.npmjs.org/@ethersproject/bytes/-/bytes-5.6.1.tgz", - "integrity": "sha512-NwQt7cKn5+ZE4uDn+X5RAXLp46E1chXoaMmrxAyA0rblpxz8t58lVkrHXoRIn0lz1joQElQ8410GqhTqMOwc6g==", - "requires": { - "@ethersproject/logger": "^5.6.0" - } - }, - "@ethersproject/constants": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/@ethersproject/constants/-/constants-5.6.0.tgz", - "integrity": "sha512-SrdaJx2bK0WQl23nSpV/b1aq293Lh0sUaZT/yYKPDKn4tlAbkH96SPJwIhwSwTsoQQZxuh1jnqsKwyymoiBdWA==", - "requires": { - "@ethersproject/bignumber": "^5.6.0" - } - }, - "@ethersproject/hash": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/@ethersproject/hash/-/hash-5.6.0.tgz", - "integrity": "sha512-fFd+k9gtczqlr0/BruWLAu7UAOas1uRRJvOR84uDf4lNZ+bTkGl366qvniUZHKtlqxBRU65MkOobkmvmpHU+jA==", - "requires": { - "@ethersproject/abstract-signer": "^5.6.0", - "@ethersproject/address": "^5.6.0", - "@ethersproject/bignumber": "^5.6.0", - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/keccak256": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/properties": "^5.6.0", - "@ethersproject/strings": "^5.6.0" - } - }, - "@ethersproject/keccak256": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/@ethersproject/keccak256/-/keccak256-5.6.0.tgz", - "integrity": "sha512-tk56BJ96mdj/ksi7HWZVWGjCq0WVl/QvfhFQNeL8fxhBlGoP+L80uDCiQcpJPd+2XxkivS3lwRm3E0CXTfol0w==", - "requires": { - "@ethersproject/bytes": "^5.6.0", - "js-sha3": "0.8.0" - } - }, - "@ethersproject/logger": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/@ethersproject/logger/-/logger-5.6.0.tgz", - "integrity": "sha512-BiBWllUROH9w+P21RzoxJKzqoqpkyM1pRnEKG69bulE9TSQD8SAIvTQqIMZmmCO8pUNkgLP1wndX1gKghSpBmg==" - }, - "@ethersproject/networks": { - "version": "5.6.2", - "resolved": "https://registry.npmjs.org/@ethersproject/networks/-/networks-5.6.2.tgz", - "integrity": "sha512-9uEzaJY7j5wpYGTojGp8U89mSsgQLc40PCMJLMCnFXTs7nhBveZ0t7dbqWUNrepWTszDbFkYD6WlL8DKx5huHA==", - "requires": { - "@ethersproject/logger": "^5.6.0" - } - }, - "@ethersproject/properties": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/@ethersproject/properties/-/properties-5.6.0.tgz", - "integrity": "sha512-szoOkHskajKePTJSZ46uHUWWkbv7TzP2ypdEK6jGMqJaEt2sb0jCgfBo0gH0m2HBpRixMuJ6TBRaQCF7a9DoCg==", - "requires": { - "@ethersproject/logger": "^5.6.0" - } - }, - "@ethersproject/rlp": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/@ethersproject/rlp/-/rlp-5.6.0.tgz", - "integrity": "sha512-dz9WR1xpcTL+9DtOT/aDO+YyxSSdO8YIS0jyZwHHSlAmnxA6cKU3TrTd4Xc/bHayctxTgGLYNuVVoiXE4tTq1g==", - "requires": { - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/logger": "^5.6.0" - } - }, - "@ethersproject/signing-key": { - "version": "5.6.1", - "resolved": "https://registry.npmjs.org/@ethersproject/signing-key/-/signing-key-5.6.1.tgz", - "integrity": "sha512-XvqQ20DH0D+bS3qlrrgh+axRMth5kD1xuvqUQUTeezxUTXBOeR6hWz2/C6FBEu39FRytyybIWrYf7YLSAKr1LQ==", - "requires": { - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/properties": "^5.6.0", - "bn.js": "^4.11.9", - "elliptic": "6.5.4", - "hash.js": "1.1.7" - } - }, - "@ethersproject/strings": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/@ethersproject/strings/-/strings-5.6.0.tgz", - "integrity": "sha512-uv10vTtLTZqrJuqBZR862ZQjTIa724wGPWQqZrofaPI/kUsf53TBG0I0D+hQ1qyNtllbNzaW+PDPHHUI6/65Mg==", - "requires": { - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/constants": "^5.6.0", - "@ethersproject/logger": "^5.6.0" - } - }, - "@ethersproject/transactions": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/@ethersproject/transactions/-/transactions-5.6.0.tgz", - "integrity": "sha512-4HX+VOhNjXHZyGzER6E/LVI2i6lf9ejYeWD6l4g50AdmimyuStKc39kvKf1bXWQMg7QNVh+uC7dYwtaZ02IXeg==", - "requires": { - "@ethersproject/address": "^5.6.0", - "@ethersproject/bignumber": "^5.6.0", - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/constants": "^5.6.0", - "@ethersproject/keccak256": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/properties": "^5.6.0", - "@ethersproject/rlp": "^5.6.0", - "@ethersproject/signing-key": "^5.6.0" - } - }, - "@ethersproject/web": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/@ethersproject/web/-/web-5.6.0.tgz", - "integrity": "sha512-G/XHj0hV1FxI2teHRfCGvfBUHFmU+YOSbCxlAMqJklxSa7QMiHFQfAxvwY2PFqgvdkxEKwRNr/eCjfAPEm2Ctg==", - "requires": { - "@ethersproject/base64": "^5.6.0", - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/properties": "^5.6.0", - "@ethersproject/strings": "^5.6.0" - } - }, - "hash.js": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", - "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", - "requires": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.1" - } - }, - "js-sha3": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.8.0.tgz", - "integrity": "sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q==" - } - } - }, - "@ethersproject/hash": { - "version": "5.0.12", - "resolved": "https://registry.npmjs.org/@ethersproject/hash/-/hash-5.0.12.tgz", - "integrity": "sha512-kn4QN+fhNFbUgX3XZTZUaQixi0oyfIEY+hfW+KtkHu+rq7dV76oAIvaLEEynu1/4npOL38E4X4YI42gGZk+C0Q==", - "requires": { - "@ethersproject/abstract-signer": "^5.0.10", - "@ethersproject/address": "^5.0.9", - "@ethersproject/bignumber": "^5.0.13", - "@ethersproject/bytes": "^5.0.9", - "@ethersproject/keccak256": "^5.0.7", - "@ethersproject/logger": "^5.0.8", - "@ethersproject/properties": "^5.0.7", - "@ethersproject/strings": "^5.0.8" - } - }, - "@ethersproject/hdnode": { - "version": "5.0.10", - "resolved": "https://registry.npmjs.org/@ethersproject/hdnode/-/hdnode-5.0.10.tgz", - "integrity": "sha512-ZLwMtIcXK7xz2lSITDCl40W04CtRq4K9NwBxhCzdzPdaz6XnoJMwGz2YMVLg+8ksseq+RYtTwIIXtlK6vyvQyg==", - "requires": { - "@ethersproject/abstract-signer": "^5.0.10", - "@ethersproject/basex": "^5.0.7", - "@ethersproject/bignumber": "^5.0.13", - "@ethersproject/bytes": "^5.0.9", - "@ethersproject/logger": "^5.0.8", - "@ethersproject/pbkdf2": "^5.0.7", - "@ethersproject/properties": "^5.0.7", - "@ethersproject/sha2": "^5.0.7", - "@ethersproject/signing-key": "^5.0.8", - "@ethersproject/strings": "^5.0.8", - "@ethersproject/transactions": "^5.0.9", - "@ethersproject/wordlists": "^5.0.8" - } - }, - "@ethersproject/json-wallets": { - "version": "5.0.12", - "resolved": "https://registry.npmjs.org/@ethersproject/json-wallets/-/json-wallets-5.0.12.tgz", - "integrity": "sha512-nac553zGZnOewpjlqbfy7WBl8m3y7qudzRsI2dCxrediYtPIVIs9f6Pbnou8vDmmp8X4/U4W788d+Ma88o+Gbg==", - "requires": { - "@ethersproject/abstract-signer": "^5.0.10", - "@ethersproject/address": "^5.0.9", - "@ethersproject/bytes": "^5.0.9", - "@ethersproject/hdnode": "^5.0.8", - "@ethersproject/keccak256": "^5.0.7", - "@ethersproject/logger": "^5.0.8", - "@ethersproject/pbkdf2": "^5.0.7", - "@ethersproject/properties": "^5.0.7", - "@ethersproject/random": "^5.0.7", - "@ethersproject/strings": "^5.0.8", - "@ethersproject/transactions": "^5.0.9", - "aes-js": "3.0.0", - "scrypt-js": "3.0.1" - }, - "dependencies": { - "aes-js": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/aes-js/-/aes-js-3.0.0.tgz", - "integrity": "sha1-4h3xCtbCBTKVvLuNq0Cwnb6ofk0=" - } - } - }, - "@ethersproject/keccak256": { - "version": "5.0.9", - "resolved": "https://registry.npmjs.org/@ethersproject/keccak256/-/keccak256-5.0.9.tgz", - "integrity": "sha512-zhdUTj6RGtCJSgU+bDrWF6cGbvW453LoIC1DSNWrTlXzC7WuH4a+EiPrgc7/kNoRxerKuA/cxYlI8GwNtVtDlw==", - "requires": { - "@ethersproject/bytes": "^5.0.9", - "js-sha3": "0.5.7" - } - }, - "@ethersproject/logger": { - "version": "5.0.10", - "resolved": "https://registry.npmjs.org/@ethersproject/logger/-/logger-5.0.10.tgz", - "integrity": "sha512-0y2T2NqykDrbPM3Zw9RSbPkDOxwChAL8detXaom76CfYoGxsOnRP/zTX8OUAV+x9LdwzgbWvWmeXrc0M7SuDZw==" - }, - "@ethersproject/networks": { - "version": "5.0.9", - "resolved": "https://registry.npmjs.org/@ethersproject/networks/-/networks-5.0.9.tgz", - "integrity": "sha512-L8+VCQwArBLGkxZb/5Ns/OH/OxP38AcaveXIxhUTq+VWpXYjrObG3E7RDQIKkUx1S1IcQl/UWTz5w4DK0UitJg==", - "requires": { - "@ethersproject/logger": "^5.0.8" - } - }, - "@ethersproject/pbkdf2": { - "version": "5.0.9", - "resolved": "https://registry.npmjs.org/@ethersproject/pbkdf2/-/pbkdf2-5.0.9.tgz", - "integrity": "sha512-ItE/wQ/WVw/ajEHPUVgfu0aEvksPgOQc+278bke8sGKnGO3ppjmqp0MHh17tHc1EBTzJbSms5aLIqc56qZ/oiA==", - "requires": { - "@ethersproject/bytes": "^5.0.9", - "@ethersproject/sha2": "^5.0.7" - } - }, - "@ethersproject/properties": { - "version": "5.0.9", - "resolved": "https://registry.npmjs.org/@ethersproject/properties/-/properties-5.0.9.tgz", - "integrity": "sha512-ZCjzbHYTw+rF1Pn8FDCEmx3gQttwIHcm/6Xee8g/M3Ga3SfW4tccNMbs5zqnBH0E4RoOPaeNgyg1O68TaF0tlg==", - "requires": { - "@ethersproject/logger": "^5.0.8" - } - }, - "@ethersproject/providers": { - "version": "5.0.24", - "resolved": "https://registry.npmjs.org/@ethersproject/providers/-/providers-5.0.24.tgz", - "integrity": "sha512-M4Iw1r4gGJkt7ZUa++iREuviKL/DIpmIMsaUlVlXtV+ZrUXeN8xQ3zOTrbz7R4h9W9oljBZM7i4D3Kn1krJ30A==", - "requires": { - "@ethersproject/abstract-provider": "^5.0.8", - "@ethersproject/abstract-signer": "^5.0.10", - "@ethersproject/address": "^5.0.9", - "@ethersproject/basex": "^5.0.7", - "@ethersproject/bignumber": "^5.0.13", - "@ethersproject/bytes": "^5.0.9", - "@ethersproject/constants": "^5.0.8", - "@ethersproject/hash": "^5.0.10", - "@ethersproject/logger": "^5.0.8", - "@ethersproject/networks": "^5.0.7", - "@ethersproject/properties": "^5.0.7", - "@ethersproject/random": "^5.0.7", - "@ethersproject/rlp": "^5.0.7", - "@ethersproject/sha2": "^5.0.7", - "@ethersproject/strings": "^5.0.8", - "@ethersproject/transactions": "^5.0.9", - "@ethersproject/web": "^5.0.12", - "bech32": "1.1.4", - "ws": "7.2.3" - }, - "dependencies": { - "ws": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.2.3.tgz", - "integrity": "sha512-HTDl9G9hbkNDk98naoR/cHDws7+EyYMOdL1BmjsZXRUjf7d+MficC4B7HLUPlSiho0vg+CWKrGIt/VJBd1xunQ==", - "requires": {} - } - } - }, - "@ethersproject/random": { - "version": "5.0.9", - "resolved": "https://registry.npmjs.org/@ethersproject/random/-/random-5.0.9.tgz", - "integrity": "sha512-DANG8THsKqFbJOantrxumtG6gyETNE54VfbsWa+SQAT8WKpDo9W/X5Zhh73KuhClaey1UI32uVmISZeq/Zxn1A==", - "requires": { - "@ethersproject/bytes": "^5.0.9", - "@ethersproject/logger": "^5.0.8" - } - }, - "@ethersproject/rlp": { - "version": "5.0.9", - "resolved": "https://registry.npmjs.org/@ethersproject/rlp/-/rlp-5.0.9.tgz", - "integrity": "sha512-ns1U7ZMVeruUW6JXc4om+1w3w4ynHN/0fpwmeNTsAjwGKoF8SAUgue6ylKpHKWSti2idx7jDxbn8hNNFHk67CA==", - "requires": { - "@ethersproject/bytes": "^5.0.9", - "@ethersproject/logger": "^5.0.8" - } - }, - "@ethersproject/sha2": { - "version": "5.0.9", - "resolved": "https://registry.npmjs.org/@ethersproject/sha2/-/sha2-5.0.9.tgz", - "integrity": "sha512-5FH4s47gM7N1fFAYQ1+m7aX0SbLg0Xr+6tvqndmNqc382/qBIbzXiGlUookrsjlPb6gLNurnTssCXjNM72J6lQ==", - "requires": { - "@ethersproject/bytes": "^5.0.9", - "@ethersproject/logger": "^5.0.8", - "hash.js": "1.1.3" - } - }, - "@ethersproject/signing-key": { - "version": "5.0.11", - "resolved": "https://registry.npmjs.org/@ethersproject/signing-key/-/signing-key-5.0.11.tgz", - "integrity": "sha512-Jfcru/BGwdkXhLxT+8WCZtFy7LL0TPFZw05FAb5asxB/MyVsEfNdNxGDtjVE9zXfmRSPe/EusXYY4K7wcygOyQ==", - "requires": { - "@ethersproject/bytes": "^5.0.9", - "@ethersproject/logger": "^5.0.8", - "@ethersproject/properties": "^5.0.7", - "elliptic": "6.5.4" - } - }, - "@ethersproject/solidity": { - "version": "5.0.10", - "resolved": "https://registry.npmjs.org/@ethersproject/solidity/-/solidity-5.0.10.tgz", - "integrity": "sha512-8OG3HLqynWXDA6mVIHuHfF/ojTTwBahON7hc9GAKCqglzXCkVA3OpyxOJXPzjHClRIAUUiU7r9oy9Z/nsjtT/g==", - "requires": { - "@ethersproject/bignumber": "^5.0.13", - "@ethersproject/bytes": "^5.0.9", - "@ethersproject/keccak256": "^5.0.7", - "@ethersproject/sha2": "^5.0.7", - "@ethersproject/strings": "^5.0.8" - } - }, - "@ethersproject/strings": { - "version": "5.0.10", - "resolved": "https://registry.npmjs.org/@ethersproject/strings/-/strings-5.0.10.tgz", - "integrity": "sha512-KAeoS1tZ9/5ECXiIZA6S6hywbD0so2VmuW+Wfyo5EDXeyZ6Na1nxTPhTnW7voQmjbeYJffCrOc0qLFJeylyg7w==", - "requires": { - "@ethersproject/bytes": "^5.0.9", - "@ethersproject/constants": "^5.0.8", - "@ethersproject/logger": "^5.0.8" - } - }, - "@ethersproject/transactions": { - "version": "5.0.11", - "resolved": "https://registry.npmjs.org/@ethersproject/transactions/-/transactions-5.0.11.tgz", - "integrity": "sha512-ftsRvR9+gQp7L63F6+XmstvsZ4w8GtWvQB08e/zB+oB86Fnhq8+i/tkgpJplSHC8I/qgiCisva+M3u2GVhDFPA==", - "requires": { - "@ethersproject/address": "^5.0.9", - "@ethersproject/bignumber": "^5.0.13", - "@ethersproject/bytes": "^5.0.9", - "@ethersproject/constants": "^5.0.8", - "@ethersproject/keccak256": "^5.0.7", - "@ethersproject/logger": "^5.0.8", - "@ethersproject/properties": "^5.0.7", - "@ethersproject/rlp": "^5.0.7", - "@ethersproject/signing-key": "^5.0.8" - } - }, - "@ethersproject/units": { - "version": "5.0.11", - "resolved": "https://registry.npmjs.org/@ethersproject/units/-/units-5.0.11.tgz", - "integrity": "sha512-nOSPmcCWyB/dwoBRhhTtPGCsTbiXqmc7Q0Adwvafc432AC7hy3Fj3IFZtnSXsbtJ/GdHCIUIoA8gtvxSsFuBJg==", - "requires": { - "@ethersproject/bignumber": "^5.0.13", - "@ethersproject/constants": "^5.0.8", - "@ethersproject/logger": "^5.0.8" - } - }, - "@ethersproject/wallet": { - "version": "5.0.12", - "resolved": "https://registry.npmjs.org/@ethersproject/wallet/-/wallet-5.0.12.tgz", - "integrity": "sha512-rboJebGf47/KPZrKZQdYg9BAYuXbc/OwcUyML1K1f2jnJeo1ObWV11U1PAWTjTbhhSy6/Fg+34GO2yMb5Dt1Rw==", - "requires": { - "@ethersproject/abstract-provider": "^5.0.8", - "@ethersproject/abstract-signer": "^5.0.10", - "@ethersproject/address": "^5.0.9", - "@ethersproject/bignumber": "^5.0.13", - "@ethersproject/bytes": "^5.0.9", - "@ethersproject/hash": "^5.0.10", - "@ethersproject/hdnode": "^5.0.8", - "@ethersproject/json-wallets": "^5.0.10", - "@ethersproject/keccak256": "^5.0.7", - "@ethersproject/logger": "^5.0.8", - "@ethersproject/properties": "^5.0.7", - "@ethersproject/random": "^5.0.7", - "@ethersproject/signing-key": "^5.0.8", - "@ethersproject/transactions": "^5.0.9", - "@ethersproject/wordlists": "^5.0.8" - } - }, - "@ethersproject/web": { - "version": "5.0.14", - "resolved": "https://registry.npmjs.org/@ethersproject/web/-/web-5.0.14.tgz", - "integrity": "sha512-QpTgplslwZ0Sp9oKNLoRuS6TKxnkwfaEk3gr7zd7XLF8XBsYejsrQO/03fNfnMx/TAT/RR6WEw/mbOwpRSeVRA==", - "requires": { - "@ethersproject/base64": "^5.0.7", - "@ethersproject/bytes": "^5.0.9", - "@ethersproject/logger": "^5.0.8", - "@ethersproject/properties": "^5.0.7", - "@ethersproject/strings": "^5.0.8" - } - }, - "@ethersproject/wordlists": { - "version": "5.0.10", - "resolved": "https://registry.npmjs.org/@ethersproject/wordlists/-/wordlists-5.0.10.tgz", - "integrity": "sha512-jWsEm1iJzpg9SCXnNfFz+tcp4Ofzv0TJb6mj+soCNcar9GcT0yGz62ZsHC3pLQWaF4LkCzGwRJHJTXKjHQfG1A==", - "requires": { - "@ethersproject/bytes": "^5.0.9", - "@ethersproject/hash": "^5.0.10", - "@ethersproject/logger": "^5.0.8", - "@ethersproject/properties": "^5.0.7", - "@ethersproject/strings": "^5.0.8" - } - }, - "@trufflesuite/web3-provider-engine": { - "version": "15.0.13-1", - "resolved": "https://registry.npmjs.org/@trufflesuite/web3-provider-engine/-/web3-provider-engine-15.0.13-1.tgz", - "integrity": "sha512-6u3x/iIN5fyj8pib5QTUDmIOUiwAGhaqdSTXdqCu6v9zo2BEwdCqgEJd1uXDh3DBmPRDfiZ/ge8oUPy7LerpHg==", - "requires": { - "@trufflesuite/eth-json-rpc-filters": "^4.1.2-1", - "@trufflesuite/eth-json-rpc-infura": "^4.0.3-0", - "@trufflesuite/eth-json-rpc-middleware": "^4.4.2-1", - "@trufflesuite/eth-sig-util": "^1.4.2", - "async": "^2.5.0", - "backoff": "^2.5.0", - "clone": "^2.0.0", - "cross-fetch": "^2.1.0", - "eth-block-tracker": "^4.4.2", - "eth-json-rpc-errors": "^2.0.2", - "ethereumjs-block": "^1.2.2", - "ethereumjs-tx": "^1.2.0", - "ethereumjs-util": "^5.1.5", - "ethereumjs-vm": "^2.3.4", - "json-stable-stringify": "^1.0.1", - "promise-to-callback": "^1.0.0", - "readable-stream": "^2.2.9", - "request": "^2.85.0", - "semaphore": "^1.0.3", - "ws": "^5.1.1", - "xhr": "^2.2.0", - "xtend": "^4.0.1" - }, - "dependencies": { - "ethereumjs-util": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", - "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", - "requires": { - "bn.js": "^4.11.0", - "create-hash": "^1.1.2", - "elliptic": "^6.5.2", - "ethereum-cryptography": "^0.1.3", - "ethjs-util": "^0.1.3", - "rlp": "^2.0.0", - "safe-buffer": "^5.1.1" - } - } - } - }, - "@webassemblyjs/ast": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.9.0.tgz", - "integrity": "sha512-C6wW5L+b7ogSDVqymbkkvuW9kruN//YisMED04xzeBBqjHa2FYnmvOlS6Xj68xWQRgWvI9cIglsjFowH/RJyEA==", - "requires": { - "@webassemblyjs/helper-module-context": "1.9.0", - "@webassemblyjs/helper-wasm-bytecode": "1.9.0", - "@webassemblyjs/wast-parser": "1.9.0" - } - }, - "@webassemblyjs/helper-api-error": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.9.0.tgz", - "integrity": "sha512-NcMLjoFMXpsASZFxJ5h2HZRcEhDkvnNFOAKneP5RbKRzaWJN36NC4jqQHKwStIhGXu5mUWlUUk7ygdtrO8lbmw==" - }, - "@webassemblyjs/helper-buffer": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.9.0.tgz", - "integrity": "sha512-qZol43oqhq6yBPx7YM3m9Bv7WMV9Eevj6kMi6InKOuZxhw+q9hOkvq5e/PpKSiLfyetpaBnogSbNCfBwyB00CA==" - }, - "@webassemblyjs/helper-wasm-bytecode": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.9.0.tgz", - "integrity": "sha512-R7FStIzyNcd7xKxCZH5lE0Bqy+hGTwS3LJjuv1ZVxd9O7eHCedSdrId/hMOd20I+v8wDXEn+bjfKDLzTepoaUw==" - }, - "@webassemblyjs/helper-wasm-section": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.9.0.tgz", - "integrity": "sha512-XnMB8l3ek4tvrKUUku+IVaXNHz2YsJyOOmz+MMkZvh8h1uSJpSen6vYnw3IoQ7WwEuAhL8Efjms1ZWjqh2agvw==", - "requires": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-buffer": "1.9.0", - "@webassemblyjs/helper-wasm-bytecode": "1.9.0", - "@webassemblyjs/wasm-gen": "1.9.0" - } - }, - "@webassemblyjs/ieee754": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.9.0.tgz", - "integrity": "sha512-dcX8JuYU/gvymzIHc9DgxTzUUTLexWwt8uCTWP3otys596io0L5aW02Gb1RjYpx2+0Jus1h4ZFqjla7umFniTg==", - "requires": { - "@xtuc/ieee754": "^1.2.0" - } - }, - "@webassemblyjs/leb128": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.9.0.tgz", - "integrity": "sha512-ENVzM5VwV1ojs9jam6vPys97B/S65YQtv/aanqnU7D8aSoHFX8GyhGg0CMfyKNIHBuAVjy3tlzd5QMMINa7wpw==", - "requires": { - "@xtuc/long": "4.2.2" - } - }, - "@webassemblyjs/utf8": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.9.0.tgz", - "integrity": "sha512-GZbQlWtopBTP0u7cHrEx+73yZKrQoBMpwkGEIqlacljhXCkVM1kMQge/Mf+csMJAjEdSwhOyLAS0AoR3AG5P8w==" - }, - "@webassemblyjs/wasm-edit": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.9.0.tgz", - "integrity": "sha512-FgHzBm80uwz5M8WKnMTn6j/sVbqilPdQXTWraSjBwFXSYGirpkSWE2R9Qvz9tNiTKQvoKILpCuTjBKzOIm0nxw==", - "requires": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-buffer": "1.9.0", - "@webassemblyjs/helper-wasm-bytecode": "1.9.0", - "@webassemblyjs/helper-wasm-section": "1.9.0", - "@webassemblyjs/wasm-gen": "1.9.0", - "@webassemblyjs/wasm-opt": "1.9.0", - "@webassemblyjs/wasm-parser": "1.9.0", - "@webassemblyjs/wast-printer": "1.9.0" - } - }, - "@webassemblyjs/wasm-gen": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.9.0.tgz", - "integrity": "sha512-cPE3o44YzOOHvlsb4+E9qSqjc9Qf9Na1OO/BHFy4OI91XDE14MjFN4lTMezzaIWdPqHnsTodGGNP+iRSYfGkjA==", - "requires": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-wasm-bytecode": "1.9.0", - "@webassemblyjs/ieee754": "1.9.0", - "@webassemblyjs/leb128": "1.9.0", - "@webassemblyjs/utf8": "1.9.0" - } - }, - "@webassemblyjs/wasm-opt": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.9.0.tgz", - "integrity": "sha512-Qkjgm6Anhm+OMbIL0iokO7meajkzQD71ioelnfPEj6r4eOFuqm4YC3VBPqXjFyyNwowzbMD+hizmprP/Fwkl2A==", - "requires": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-buffer": "1.9.0", - "@webassemblyjs/wasm-gen": "1.9.0", - "@webassemblyjs/wasm-parser": "1.9.0" - } - }, - "@webassemblyjs/wasm-parser": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.9.0.tgz", - "integrity": "sha512-9+wkMowR2AmdSWQzsPEjFU7njh8HTO5MqO8vjwEHuM+AMHioNqSBONRdr0NQQ3dVQrzp0s8lTcYqzUdb7YgELA==", - "requires": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-api-error": "1.9.0", - "@webassemblyjs/helper-wasm-bytecode": "1.9.0", - "@webassemblyjs/ieee754": "1.9.0", - "@webassemblyjs/leb128": "1.9.0", - "@webassemblyjs/utf8": "1.9.0" - } - }, - "@webassemblyjs/wast-printer": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.9.0.tgz", - "integrity": "sha512-2J0nE95rHXHyQ24cWjMKJ1tqB/ds8z/cyeOZxJhcb+rW+SQASVjuznUSmdz5GpVJTzU8JkhYut0D3siFDD6wsA==", - "requires": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/wast-parser": "1.9.0", - "@xtuc/long": "4.2.2" - } - }, - "acorn": { - "version": "6.4.2", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.2.tgz", - "integrity": "sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ==" - }, - "aes-js": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/aes-js/-/aes-js-3.1.2.tgz", - "integrity": "sha512-e5pEa2kBnBOgR4Y/p20pskXI74UEz7de8ZGVo58asOtvSVG5YAbJeELPZxOmt+Bnz3rX753YKhfIn4X4l1PPRQ==" - }, - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "requires": { - "color-convert": "^2.0.1" - } - }, - "argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" - }, - "bech32": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/bech32/-/bech32-1.1.4.tgz", - "integrity": "sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ==" - }, - "bignumber.js": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-8.0.2.tgz", - "integrity": "sha512-EiuvFrnbv0jFixEQ9f58jo7X0qI2lNGIr/MxntmVzQc5JUweDSh8y8hbTCAomFtqwUPIOWcLXP0VEOSZTG7FFw==" - }, - "caver-js": { - "version": "1.6.3", - "resolved": "https://registry.npmjs.org/caver-js/-/caver-js-1.6.3.tgz", - "integrity": "sha512-xSPnawdVFregH6eTO+1TF1rDAueiyFkgphKOAgSaPSw8DGz9jcRliTU2OH0jCghyTt0k9yntAR0NzlIKTc/76A==", - "requires": { - "@babel/runtime": "7.3.1", - "@ethersproject/abi": "5.0.7", - "@web3-js/scrypt-shim": "0.1.0", - "any-promise": "1.3.0", - "bignumber.js": "8.0.2", - "bn.js": "4.11.6", - "chai": "4.1.2", - "crypto-browserify": "3.12.0", - "dotenv": "8.2.0", - "elliptic": "6.5.4", - "eth-lib": "0.2.8", - "ethers": "5.0.32", - "ethjs-unit": "0.1.6", - "eventemitter3": "4.0.0", - "ipfs-http-client-lite": "0.3.0", - "it-each": "0.4.0", - "lodash": "4.17.21", - "mocha": "8.3.2", - "multihashes": "4.0.2", - "node-fetch": "2.6.1", - "number-to-bn": "1.7.0", - "oboe": "2.1.3", - "request": "2.87.0", - "requestretry": "2.0.2", - "scrypt-js": "3.0.1", - "semver": "6.2.0", - "utf8": "2.1.1", - "uuid": "3.0.0", - "webpack": "4.44.2", - "webpack-cli": "3.3.12", - "websocket": "1.0.31", - "xhr2-cookies": "1.1.0" - }, - "dependencies": { - "bn.js": { - "version": "4.11.6", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz", - "integrity": "sha1-UzRK2xRhehP26N0s4okF0cC6MhU=" - }, - "utf8": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/utf8/-/utf8-2.1.1.tgz", - "integrity": "sha1-LgHbAvfY0JRPdxBPFgnrDDBM92g=" - }, - "uuid": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.0.0.tgz", - "integrity": "sha1-Zyj8BFnEUNeWqZwxg3VpvfZy1yg=" - } - } - }, - "chai": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chai/-/chai-4.1.2.tgz", - "integrity": "sha1-D2RYS6ZC8PKs4oBiefTwbKI61zw=", - "requires": { - "assertion-error": "^1.0.1", - "check-error": "^1.0.1", - "deep-eql": "^3.0.0", - "get-func-name": "^2.0.0", - "pathval": "^1.0.0", - "type-detect": "^4.0.0" - } - }, - "cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } - }, - "diff": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz", - "integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==" - }, - "dotenv": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-8.2.0.tgz", - "integrity": "sha512-8sJ78ElpbDJBHNeBzUbUVLsqKdccaa/BXF1uPTw3GrvQTBgrQrtObr2mUrE38vzYd8cEv+m/JBfDLioYcfXoaw==" - }, - "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==" - }, - "enhanced-resolve": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.5.0.tgz", - "integrity": "sha512-Nv9m36S/vxpsI+Hc4/ZGRs0n9mXqSWGGq49zxb/cJfPAQMbUtttJAlNPS4AQzaBdw/pKskw5bMbekT/Y7W/Wlg==", - "requires": { - "graceful-fs": "^4.1.2", - "memory-fs": "^0.5.0", - "tapable": "^1.0.0" - }, - "dependencies": { - "memory-fs": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.5.0.tgz", - "integrity": "sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA==", - "requires": { - "errno": "^0.1.3", - "readable-stream": "^2.0.1" - } - } - } - }, - "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==" - }, - "eslint-scope": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.3.tgz", - "integrity": "sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg==", - "requires": { - "esrecurse": "^4.1.0", - "estraverse": "^4.1.1" - } - }, - "eth-lib": { - "version": "0.2.8", - "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.8.tgz", - "integrity": "sha512-ArJ7x1WcWOlSpzdoTBX8vkwlkSQ85CjjifSZtV4co64vWxSV8geWfPI9x4SVYu3DSxnX4yWFVTtGL+j9DUFLNw==", - "requires": { - "bn.js": "^4.11.6", - "elliptic": "^6.4.0", - "xhr-request-promise": "^0.1.2" - } - }, - "ethereum-common": { - "version": "0.0.18", - "resolved": "https://registry.npmjs.org/ethereum-common/-/ethereum-common-0.0.18.tgz", - "integrity": "sha1-L9w1dvIykDNYl26znaeDIT/5Uj8=" - }, - "ethereumjs-tx": { - "version": "1.3.7", - "resolved": "https://registry.npmjs.org/ethereumjs-tx/-/ethereumjs-tx-1.3.7.tgz", - "integrity": "sha512-wvLMxzt1RPhAQ9Yi3/HKZTn0FZYpnsmQdbKYfUUpi4j1SEIcbkd9tndVjcPrufY3V7j2IebOpC00Zp2P/Ay2kA==", - "requires": { - "ethereum-common": "^0.0.18", - "ethereumjs-util": "^5.0.0" - }, - "dependencies": { - "ethereumjs-util": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", - "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", - "requires": { - "bn.js": "^4.11.0", - "create-hash": "^1.1.2", - "elliptic": "^6.5.2", - "ethereum-cryptography": "^0.1.3", - "ethjs-util": "^0.1.3", - "rlp": "^2.0.0", - "safe-buffer": "^5.1.1" - } - } - } - }, - "ethereumjs-util": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-6.2.0.tgz", - "integrity": "sha512-vb0XN9J2QGdZGIEKG2vXM+kUdEivUfU6Wmi5y0cg+LRhDYKnXIZ/Lz7XjFbHRR9VIKq2lVGLzGBkA++y2nOdOQ==", - "requires": { - "@types/bn.js": "^4.11.3", - "bn.js": "^4.11.0", - "create-hash": "^1.1.2", - "ethjs-util": "0.1.6", - "keccak": "^2.0.0", - "rlp": "^2.2.3", - "secp256k1": "^3.0.1" - } - }, - "ethereumjs-wallet": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/ethereumjs-wallet/-/ethereumjs-wallet-1.0.1.tgz", - "integrity": "sha512-3Z5g1hG1das0JWU6cQ9HWWTY2nt9nXCcwj7eXVNAHKbo00XAZO8+NHlwdgXDWrL0SXVQMvTWN8Q/82DRH/JhPw==", - "requires": { - "aes-js": "^3.1.1", - "bs58check": "^2.1.2", - "ethereum-cryptography": "^0.1.3", - "ethereumjs-util": "^7.0.2", - "randombytes": "^2.0.6", - "scrypt-js": "^3.0.1", - "utf8": "^3.0.0", - "uuid": "^3.3.2" - }, - "dependencies": { - "@types/bn.js": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-5.1.0.tgz", - "integrity": "sha512-QSSVYj7pYFN49kW77o2s9xTCwZ8F2xLbjLLSEVh8D2F4JUhZtPAGOFLTD+ffqksBx/u4cE/KImFjyhqCjn/LIA==", - "requires": { - "@types/node": "*" - } - }, - "bn.js": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.0.tgz", - "integrity": "sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw==" - }, - "ethereumjs-util": { - "version": "7.1.4", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.4.tgz", - "integrity": "sha512-p6KmuPCX4mZIqsQzXfmSx9Y0l2hqf+VkAiwSisW3UKUFdk8ZkAt+AYaor83z2nSi6CU2zSsXMlD80hAbNEGM0A==", - "requires": { - "@types/bn.js": "^5.1.0", - "bn.js": "^5.1.2", - "create-hash": "^1.1.2", - "ethereum-cryptography": "^0.1.3", - "rlp": "^2.2.4" - } - } - } - }, - "ethers": { - "version": "5.0.32", - "resolved": "https://registry.npmjs.org/ethers/-/ethers-5.0.32.tgz", - "integrity": "sha512-rORfGWR0HsA4pjKMMcWZorw12DHsXqfIAuPVHJsXt+vI24jvXcVqx+rLsSvgOoLdaCMdxiN5qlIq2+4axKG31g==", - "requires": { - "@ethersproject/abi": "5.0.13", - "@ethersproject/abstract-provider": "5.0.10", - "@ethersproject/abstract-signer": "5.0.14", - "@ethersproject/address": "5.0.11", - "@ethersproject/base64": "5.0.9", - "@ethersproject/basex": "5.0.9", - "@ethersproject/bignumber": "5.0.15", - "@ethersproject/bytes": "5.0.11", - "@ethersproject/constants": "5.0.10", - "@ethersproject/contracts": "5.0.12", - "@ethersproject/hash": "5.0.12", - "@ethersproject/hdnode": "5.0.10", - "@ethersproject/json-wallets": "5.0.12", - "@ethersproject/keccak256": "5.0.9", - "@ethersproject/logger": "5.0.10", - "@ethersproject/networks": "5.0.9", - "@ethersproject/pbkdf2": "5.0.9", - "@ethersproject/properties": "5.0.9", - "@ethersproject/providers": "5.0.24", - "@ethersproject/random": "5.0.9", - "@ethersproject/rlp": "5.0.9", - "@ethersproject/sha2": "5.0.9", - "@ethersproject/signing-key": "5.0.11", - "@ethersproject/solidity": "5.0.10", - "@ethersproject/strings": "5.0.10", - "@ethersproject/transactions": "5.0.11", - "@ethersproject/units": "5.0.11", - "@ethersproject/wallet": "5.0.12", - "@ethersproject/web": "5.0.14", - "@ethersproject/wordlists": "5.0.10" - }, - "dependencies": { - "@ethersproject/abi": { - "version": "5.0.13", - "resolved": "https://registry.npmjs.org/@ethersproject/abi/-/abi-5.0.13.tgz", - "integrity": "sha512-2coOH3D7ra1lwamKEH0HVc+Jbcsw5yfeCgmY8ekhCDualEiyyovD2qDcMBBcY3+kjoLHVTmo7ost6MNClxdOrg==", - "requires": { - "@ethersproject/address": "^5.0.9", - "@ethersproject/bignumber": "^5.0.13", - "@ethersproject/bytes": "^5.0.9", - "@ethersproject/constants": "^5.0.8", - "@ethersproject/hash": "^5.0.10", - "@ethersproject/keccak256": "^5.0.7", - "@ethersproject/logger": "^5.0.8", - "@ethersproject/properties": "^5.0.7", - "@ethersproject/strings": "^5.0.8" - } - } - } - }, - "eventemitter3": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.0.tgz", - "integrity": "sha512-qerSRB0p+UDEssxTtm6EDKcE7W4OaoisfIMl4CngyEhjpYglocpNg6UEqCvemdGhosAsg4sO2dXJOdyBifPGCg==" - }, - "fast-deep-equal": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz", - "integrity": "sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ=" - }, - "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==", - "requires": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - } - }, - "har-validator": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.0.3.tgz", - "integrity": "sha1-ukAsJmGU8VlW7xXg/PJCmT9qff0=", - "requires": { - "ajv": "^5.1.0", - "har-schema": "^2.0.0" - }, - "dependencies": { - "ajv": { - "version": "5.5.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", - "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", - "requires": { - "co": "^4.6.0", - "fast-deep-equal": "^1.0.0", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.3.0" - } - } - } - }, - "is-fullwidth-code-point": { - "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==" - }, - "js-yaml": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.0.0.tgz", - "integrity": "sha512-pqon0s+4ScYUvX30wxQi3PogGFAlUyH0awepWvwkj4jD4v+ova3RiYw8bmA6x2rDrEaj8i/oWKoRxpVNW+Re8Q==", - "requires": { - "argparse": "^2.0.1" - } - }, - "json-schema-traverse": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz", - "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=" - }, - "keccak": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/keccak/-/keccak-2.1.0.tgz", - "integrity": "sha512-m1wbJRTo+gWbctZWay9i26v5fFnYkOn7D5PCxJ3fZUGUEb49dE1Pm4BREUYCt/aoO6di7jeoGmhvqN9Nzylm3Q==", - "requires": { - "bindings": "^1.5.0", - "inherits": "^2.0.4", - "nan": "^2.14.0", - "safe-buffer": "^5.2.0" - } - }, - "loader-runner": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.4.0.tgz", - "integrity": "sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw==" - }, - "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==", - "requires": { - "p-locate": "^5.0.0" - } - }, - "mkdirp": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", - "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", - "requires": { - "minimist": "^1.2.6" - } - }, - "mocha": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/mocha/-/mocha-8.3.2.tgz", - "integrity": "sha512-UdmISwr/5w+uXLPKspgoV7/RXZwKRTiTjJ2/AC5ZiEztIoOYdfKb19+9jNmEInzx5pBsCyJQzarAxqIGBNYJhg==", - "requires": { - "@ungap/promise-all-settled": "1.1.2", - "ansi-colors": "4.1.1", - "browser-stdout": "1.3.1", - "chokidar": "3.5.1", - "debug": "4.3.1", - "diff": "5.0.0", - "escape-string-regexp": "4.0.0", - "find-up": "5.0.0", - "glob": "7.1.6", - "growl": "1.10.5", - "he": "1.2.0", - "js-yaml": "4.0.0", - "log-symbols": "4.0.0", - "minimatch": "3.0.4", - "ms": "2.1.3", - "nanoid": "3.1.20", - "serialize-javascript": "5.0.1", - "strip-json-comments": "3.1.1", - "supports-color": "8.1.1", - "which": "2.0.2", - "wide-align": "1.1.3", - "workerpool": "6.1.0", - "yargs": "16.2.0", - "yargs-parser": "20.2.4", - "yargs-unparser": "2.0.0" - }, - "dependencies": { - "debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", - "requires": { - "ms": "2.1.2" - }, - "dependencies": { - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - } - } - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - }, - "ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" - }, - "serialize-javascript": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-5.0.1.tgz", - "integrity": "sha512-SaaNal9imEO737H2c05Og0/8LUXG7EnsZyMa8MzkmuHoELfT6txuj0cMqRj6zfPKnmQ1yasR4PCJc8x+M4JSPA==", - "requires": { - "randombytes": "^2.1.0" - } - }, - "supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "requires": { - "has-flag": "^4.0.0" - } - }, - "yargs": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", - "requires": { - "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" - } - } - } - }, - "multibase": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/multibase/-/multibase-4.0.6.tgz", - "integrity": "sha512-x23pDe5+svdLz/k5JPGCVdfn7Q5mZVMBETiC+ORfO+sor9Sgs0smJzAjfTbM5tckeCqnaUuMYoz+k3RXMmJClQ==", - "requires": { - "@multiformats/base-x": "^4.0.1" - } - }, - "multihashes": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/multihashes/-/multihashes-4.0.2.tgz", - "integrity": "sha512-xpx++1iZr4ZQHjN1mcrXS6904R36LWLxX/CBifczjtmrtCXEX623DMWOF1eiNSg+pFpiZDFVBgou/4v6ayCHSQ==", - "requires": { - "multibase": "^4.0.1", - "uint8arrays": "^2.1.3", - "varint": "^5.0.2" - } - }, - "node-fetch": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz", - "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==" - }, - "oauth-sign": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz", - "integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM=" - }, - "oboe": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/oboe/-/oboe-2.1.3.tgz", - "integrity": "sha1-K0hl29Rr6BIlcT9Om/5Lz09oCk8=", - "requires": { - "http-https": "^1.0.0" - } - }, - "p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "requires": { - "yocto-queue": "^0.1.0" - } - }, - "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==", - "requires": { - "p-limit": "^3.0.2" - } - }, - "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==" - }, - "punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=" - }, - "regenerator-runtime": { - "version": "0.12.1", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.12.1.tgz", - "integrity": "sha512-odxIc1/vDlo4iZcfXqRYFj0vpXFNoGdKMAUieAlFYO6m/nl5e9KR/beGf41z4a1FI+aQgtjhuaSlDxQ0hmkrHg==" - }, - "request": { - "version": "2.87.0", - "resolved": "https://registry.npmjs.org/request/-/request-2.87.0.tgz", - "integrity": "sha512-fcogkm7Az5bsS6Sl0sibkbhcKsnyon/jV1kF3ajGmF0c8HrttdKTPRT9hieOaQHA5HEq6r8OyWOo/o781C1tNw==", - "requires": { - "aws-sign2": "~0.7.0", - "aws4": "^1.6.0", - "caseless": "~0.12.0", - "combined-stream": "~1.0.5", - "extend": "~3.0.1", - "forever-agent": "~0.6.1", - "form-data": "~2.3.1", - "har-validator": "~5.0.3", - "http-signature": "~1.2.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.17", - "oauth-sign": "~0.8.2", - "performance-now": "^2.1.0", - "qs": "~6.5.1", - "safe-buffer": "^5.1.1", - "tough-cookie": "~2.3.3", - "tunnel-agent": "^0.6.0", - "uuid": "^3.1.0" - } - }, - "requestretry": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/requestretry/-/requestretry-2.0.2.tgz", - "integrity": "sha512-wBIylIEvvGHnFAYRXIKCARGzWxChn+mo7X3KjXPgtofB+c0ejcZFdZ5k6RFhBV+IOf80fkemcVuVdUKqovnj8A==", - "requires": { - "extend": "^3.0.2", - "lodash": "^4.17.10", - "when": "^3.7.7" - } - }, - "schema-utils": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", - "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", - "requires": { - "ajv": "^6.1.0", - "ajv-errors": "^1.0.0", - "ajv-keywords": "^3.1.0" - } - }, - "scrypt-js": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-3.0.1.tgz", - "integrity": "sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA==" - }, - "secp256k1": { - "version": "3.8.0", - "resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-3.8.0.tgz", - "integrity": "sha512-k5ke5avRZbtl9Tqx/SA7CbY3NF6Ro+Sj9cZxezFzuBlLDmyqPiL8hJJ+EmzD8Ig4LUDByHJ3/iPOVoRixs/hmw==", - "requires": { - "bindings": "^1.5.0", - "bip66": "^1.1.5", - "bn.js": "^4.11.8", - "create-hash": "^1.2.0", - "drbg.js": "^1.0.1", - "elliptic": "^6.5.2", - "nan": "^2.14.0", - "safe-buffer": "^5.1.2" - } - }, - "semver": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.2.0.tgz", - "integrity": "sha512-jdFC1VdUGT/2Scgbimf7FSx9iJLXoqfglSF+gJeuNWVpiE37OIbc1jywR/GJyFdz3mnkz2/id0L0J/cr0izR5A==" - }, - "string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - } - }, - "strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "requires": { - "ansi-regex": "^5.0.1" - } - }, - "supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", - "requires": { - "has-flag": "^3.0.0" - } - }, - "tapable": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz", - "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==" - }, - "terser": { - "version": "4.8.0", - "resolved": "https://registry.npmjs.org/terser/-/terser-4.8.0.tgz", - "integrity": "sha512-EAPipTNeWsb/3wLPeup1tVPaXfIaU68xMnVdPafIL1TV05OhASArYyIfFvnvJCNrR2NIOvDVNNTFRa+Re2MWyw==", - "requires": { - "commander": "^2.20.0", - "source-map": "~0.6.1", - "source-map-support": "~0.5.12" - } - }, - "terser-webpack-plugin": { - "version": "1.4.5", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.4.5.tgz", - "integrity": "sha512-04Rfe496lN8EYruwi6oPQkG0vo8C+HT49X687FZnpPF0qMAIHONI6HEXYPKDOE8e5HjXTyKfqRd/agHtH0kOtw==", - "requires": { - "cacache": "^12.0.2", - "find-cache-dir": "^2.1.0", - "is-wsl": "^1.1.0", - "schema-utils": "^1.0.0", - "serialize-javascript": "^4.0.0", - "source-map": "^0.6.1", - "terser": "^4.1.2", - "webpack-sources": "^1.4.0", - "worker-farm": "^1.7.0" - } - }, - "tough-cookie": { - "version": "2.3.4", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.4.tgz", - "integrity": "sha512-TZ6TTfI5NtZnuyy/Kecv+CnoROnyXn2DN97LontgQpCwsX2XyLYCC0ENhYkehSOwAp8rTQKc/NUIF7BkQ5rKLA==", - "requires": { - "punycode": "^1.4.1" - } - }, - "uint8arrays": { - "version": "2.1.10", - "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-2.1.10.tgz", - "integrity": "sha512-Q9/hhJa2836nQfEJSZTmr+pg9+cDJS9XEAp7N2Vg5MzL3bK/mkMVfjscRGYruP9jNda6MAdf4QD/y78gSzkp6A==", - "requires": { - "multiformats": "^9.4.2" - } - }, - "watchpack": { - "version": "1.7.5", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.7.5.tgz", - "integrity": "sha512-9P3MWk6SrKjHsGkLT2KHXdQ/9SNkyoJbabxnKOoJepsvJjJG8uYTR3yTPxPQvNDI3w4Nz1xnE0TLHK4RIVe/MQ==", - "requires": { - "chokidar": "^3.4.1", - "graceful-fs": "^4.1.2", - "neo-async": "^2.5.0", - "watchpack-chokidar2": "^2.0.1" - } - }, - "webpack": { - "version": "4.44.2", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.44.2.tgz", - "integrity": "sha512-6KJVGlCxYdISyurpQ0IPTklv+DULv05rs2hseIXer6D7KrUicRDLFb4IUM1S6LUAKypPM/nSiVSuv8jHu1m3/Q==", - "requires": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-module-context": "1.9.0", - "@webassemblyjs/wasm-edit": "1.9.0", - "@webassemblyjs/wasm-parser": "1.9.0", - "acorn": "^6.4.1", - "ajv": "^6.10.2", - "ajv-keywords": "^3.4.1", - "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^4.3.0", - "eslint-scope": "^4.0.3", - "json-parse-better-errors": "^1.0.2", - "loader-runner": "^2.4.0", - "loader-utils": "^1.2.3", - "memory-fs": "^0.4.1", - "micromatch": "^3.1.10", - "mkdirp": "^0.5.3", - "neo-async": "^2.6.1", - "node-libs-browser": "^2.2.1", - "schema-utils": "^1.0.0", - "tapable": "^1.1.3", - "terser-webpack-plugin": "^1.4.3", - "watchpack": "^1.7.4", - "webpack-sources": "^1.4.1" - } - }, - "webpack-cli": { - "version": "3.3.12", - "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-3.3.12.tgz", - "integrity": "sha512-NVWBaz9k839ZH/sinurM+HcDvJOTXwSjYp1ku+5XKeOC03z8v5QitnK/x+lAxGXFyhdayoIf/GOpv85z3/xPag==", - "requires": { - "chalk": "^2.4.2", - "cross-spawn": "^6.0.5", - "enhanced-resolve": "^4.1.1", - "findup-sync": "^3.0.0", - "global-modules": "^2.0.0", - "import-local": "^2.0.0", - "interpret": "^1.4.0", - "loader-utils": "^1.4.0", - "supports-color": "^6.1.0", - "v8-compile-cache": "^2.1.1", - "yargs": "^13.3.2" - } - }, - "webpack-sources": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz", - "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==", - "requires": { - "source-list-map": "^2.0.0", - "source-map": "~0.6.1" - } - }, - "websocket": { - "version": "1.0.31", - "resolved": "https://registry.npmjs.org/websocket/-/websocket-1.0.31.tgz", - "integrity": "sha512-VAouplvGKPiKFDTeCCO65vYHsyay8DqoBSlzIO3fayrfOgU94lQN5a1uWVnFrMLceTJw/+fQXR5PGbUVRaHshQ==", - "requires": { - "debug": "^2.2.0", - "es5-ext": "^0.10.50", - "nan": "^2.14.0", - "typedarray-to-buffer": "^3.1.5", - "yaeti": "^0.0.6" - } - }, - "workerpool": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.1.0.tgz", - "integrity": "sha512-toV7q9rWNYha963Pl/qyeZ6wG+3nnsyvolaNUS8+R5Wtw6qJPTxIlOP1ZSvcGhEJw+l3HMMmtiNo9Gl61G4GVg==" - }, - "wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - } - }, - "ws": { - "version": "5.2.3", - "resolved": "https://registry.npmjs.org/ws/-/ws-5.2.3.tgz", - "integrity": "sha512-jZArVERrMsKUatIdnLzqvcfydI85dvd/Fp1u/VOpfdDWQ4c9qWXe+VIeAbQ5FrDwciAkr+lzofXLz3Kuf26AOA==", - "requires": { - "async-limiter": "~1.0.0" - } - }, - "y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==" - }, - "yargs-parser": { - "version": "20.2.4", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz", - "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==" - } - } - }, - "truffle-interface-adapter": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/truffle-interface-adapter/-/truffle-interface-adapter-0.2.5.tgz", - "integrity": "sha512-EL39OpP8FcZ99ne1Rno3jImfb92Nectd4iVsZzoEUCBfbwHe7sr0k+i45guoruSoP8nMUE81Mov2s8I5pi6d9Q==", - "dev": true, - "requires": { - "bn.js": "^4.11.8", - "ethers": "^4.0.32", - "lodash": "^4.17.13", - "web3": "1.2.1" - }, - "dependencies": { - "@types/node": { - "version": "10.17.28", - "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.28.tgz", - "integrity": "sha512-dzjES1Egb4c1a89C7lKwQh8pwjYmlOAG9dW1pBgxEk57tMrLnssOfEthz8kdkNaBd7lIqQx7APm5+mZ619IiCQ==", - "dev": true - }, - "eth-lib": { - "version": "0.2.7", - "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.7.tgz", - "integrity": "sha1-L5Pxex4jrsN1nNSj/iDBKGo/wco=", - "dev": true, - "requires": { - "bn.js": "^4.11.6", - "elliptic": "^6.4.0", - "xhr-request-promise": "^0.1.2" - } - }, - "ethers": { - "version": "4.0.49", - "resolved": "https://registry.npmjs.org/ethers/-/ethers-4.0.49.tgz", - "integrity": "sha512-kPltTvWiyu+OktYy1IStSO16i2e7cS9D9OxZ81q2UUaiNPVrm/RTcbxamCXF9VUSKzJIdJV68EAIhTEVBalRWg==", - "dev": true, - "requires": { - "aes-js": "3.0.0", - "bn.js": "^4.11.9", - "elliptic": "6.5.4", - "hash.js": "1.1.3", - "js-sha3": "0.5.7", - "scrypt-js": "2.0.4", - "setimmediate": "1.0.4", - "uuid": "2.0.1", - "xmlhttprequest": "1.8.0" - }, - "dependencies": { - "scrypt-js": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-2.0.4.tgz", - "integrity": "sha512-4KsaGcPnuhtCZQCxFxN3GVYIhKFPTdLd8PLC552XwbMndtD0cjRFAhDuuydXQ0h08ZfPgzqe6EKHozpuH74iDw==", - "dev": true - } - } - }, - "scrypt-js": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-2.0.3.tgz", - "integrity": "sha1-uwBAvgMEPamgEqLOqfyfhSz8h9Q=", - "dev": true - }, - "semver": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.2.0.tgz", - "integrity": "sha512-jdFC1VdUGT/2Scgbimf7FSx9iJLXoqfglSF+gJeuNWVpiE37OIbc1jywR/GJyFdz3mnkz2/id0L0J/cr0izR5A==", - "dev": true - }, - "underscore": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.9.1.tgz", - "integrity": "sha512-5/4etnCkd9c8gwgowi5/om/mYO5ajCaOgdzj/oW+0eQV9WxKBDZw5+ycmKmeaTXjInS/W0BzpGLo2xR2aBwZdg==", - "dev": true - }, - "uuid": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-2.0.1.tgz", - "integrity": "sha1-wqMN7bPlNdcsz4LjQ5QaULqFM6w=", - "dev": true - }, - "web3": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3/-/web3-1.2.1.tgz", - "integrity": "sha512-nNMzeCK0agb5i/oTWNdQ1aGtwYfXzHottFP2Dz0oGIzavPMGSKyVlr8ibVb1yK5sJBjrWVnTdGaOC2zKDFuFRw==", - "dev": true, - "requires": { - "web3-bzz": "1.2.1", - "web3-core": "1.2.1", - "web3-eth": "1.2.1", - "web3-eth-personal": "1.2.1", - "web3-net": "1.2.1", - "web3-shh": "1.2.1", - "web3-utils": "1.2.1" - } - }, - "web3-bzz": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-bzz/-/web3-bzz-1.2.1.tgz", - "integrity": "sha512-LdOO44TuYbGIPfL4ilkuS89GQovxUpmLz6C1UC7VYVVRILeZS740FVB3j9V4P4FHUk1RenaDfKhcntqgVCHtjw==", - "dev": true, - "requires": { - "got": "9.6.0", - "swarm-js": "0.1.39", - "underscore": "1.9.1" - } - }, - "web3-core": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-core/-/web3-core-1.2.1.tgz", - "integrity": "sha512-5ODwIqgl8oIg/0+Ai4jsLxkKFWJYE0uLuE1yUKHNVCL4zL6n3rFjRMpKPokd6id6nJCNgeA64KdWQ4XfpnjdMg==", - "dev": true, - "requires": { - "web3-core-helpers": "1.2.1", - "web3-core-method": "1.2.1", - "web3-core-requestmanager": "1.2.1", - "web3-utils": "1.2.1" - } - }, - "web3-core-helpers": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.2.1.tgz", - "integrity": "sha512-Gx3sTEajD5r96bJgfuW377PZVFmXIH4TdqDhgGwd2lZQCcMi+DA4TgxJNJGxn0R3aUVzyyE76j4LBrh412mXrw==", - "dev": true, - "requires": { - "underscore": "1.9.1", - "web3-eth-iban": "1.2.1", - "web3-utils": "1.2.1" - } - }, - "web3-core-method": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-core-method/-/web3-core-method-1.2.1.tgz", - "integrity": "sha512-Ghg2WS23qi6Xj8Od3VCzaImLHseEA7/usvnOItluiIc5cKs00WYWsNy2YRStzU9a2+z8lwQywPYp0nTzR/QXdQ==", - "dev": true, - "requires": { - "underscore": "1.9.1", - "web3-core-helpers": "1.2.1", - "web3-core-promievent": "1.2.1", - "web3-core-subscriptions": "1.2.1", - "web3-utils": "1.2.1" - } - }, - "web3-core-promievent": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-core-promievent/-/web3-core-promievent-1.2.1.tgz", - "integrity": "sha512-IVUqgpIKoeOYblwpex4Hye6npM0aMR+kU49VP06secPeN0rHMyhGF0ZGveWBrGvf8WDPI7jhqPBFIC6Jf3Q3zw==", - "dev": true, - "requires": { - "any-promise": "1.3.0", - "eventemitter3": "3.1.2" - } - }, - "web3-core-requestmanager": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-core-requestmanager/-/web3-core-requestmanager-1.2.1.tgz", - "integrity": "sha512-xfknTC69RfYmLKC+83Jz73IC3/sS2ZLhGtX33D4Q5nQ8yc39ElyAolxr9sJQS8kihOcM6u4J+8gyGMqsLcpIBg==", - "dev": true, - "requires": { - "underscore": "1.9.1", - "web3-core-helpers": "1.2.1", - "web3-providers-http": "1.2.1", - "web3-providers-ipc": "1.2.1", - "web3-providers-ws": "1.2.1" - } - }, - "web3-core-subscriptions": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-core-subscriptions/-/web3-core-subscriptions-1.2.1.tgz", - "integrity": "sha512-nmOwe3NsB8V8UFsY1r+sW6KjdOS68h8nuh7NzlWxBQT/19QSUGiERRTaZXWu5BYvo1EoZRMxCKyCQpSSXLc08g==", - "dev": true, - "requires": { - "eventemitter3": "3.1.2", - "underscore": "1.9.1", - "web3-core-helpers": "1.2.1" - } - }, - "web3-eth": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-eth/-/web3-eth-1.2.1.tgz", - "integrity": "sha512-/2xly4Yry5FW1i+uygPjhfvgUP/MS/Dk+PDqmzp5M88tS86A+j8BzKc23GrlA8sgGs0645cpZK/999LpEF5UdA==", - "dev": true, - "requires": { - "underscore": "1.9.1", - "web3-core": "1.2.1", - "web3-core-helpers": "1.2.1", - "web3-core-method": "1.2.1", - "web3-core-subscriptions": "1.2.1", - "web3-eth-abi": "1.2.1", - "web3-eth-accounts": "1.2.1", - "web3-eth-contract": "1.2.1", - "web3-eth-ens": "1.2.1", - "web3-eth-iban": "1.2.1", - "web3-eth-personal": "1.2.1", - "web3-net": "1.2.1", - "web3-utils": "1.2.1" - } - }, - "web3-eth-abi": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-eth-abi/-/web3-eth-abi-1.2.1.tgz", - "integrity": "sha512-jI/KhU2a/DQPZXHjo2GW0myEljzfiKOn+h1qxK1+Y9OQfTcBMxrQJyH5AP89O6l6NZ1QvNdq99ThAxBFoy5L+g==", - "dev": true, - "requires": { - "ethers": "4.0.0-beta.3", - "underscore": "1.9.1", - "web3-utils": "1.2.1" - }, - "dependencies": { - "elliptic": { - "version": "6.3.3", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.3.3.tgz", - "integrity": "sha1-VILZZG1UvLif19mU/J4ulWiHbj8=", - "dev": true, - "requires": { - "bn.js": "^4.4.0", - "brorand": "^1.0.1", - "hash.js": "^1.0.0", - "inherits": "^2.0.1" - } - }, - "ethers": { - "version": "4.0.0-beta.3", - "resolved": "https://registry.npmjs.org/ethers/-/ethers-4.0.0-beta.3.tgz", - "integrity": "sha512-YYPogooSknTwvHg3+Mv71gM/3Wcrx+ZpCzarBj3mqs9njjRkrOo2/eufzhHloOCo3JSoNI4TQJJ6yU5ABm3Uog==", - "dev": true, - "requires": { - "@types/node": "^10.3.2", - "aes-js": "3.0.0", - "bn.js": "^4.4.0", - "elliptic": "6.3.3", - "hash.js": "1.1.3", - "js-sha3": "0.5.7", - "scrypt-js": "2.0.3", - "setimmediate": "1.0.4", - "uuid": "2.0.1", - "xmlhttprequest": "1.8.0" - } - } - } - }, - "web3-eth-accounts": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-eth-accounts/-/web3-eth-accounts-1.2.1.tgz", - "integrity": "sha512-26I4qq42STQ8IeKUyur3MdQ1NzrzCqPsmzqpux0j6X/XBD7EjZ+Cs0lhGNkSKH5dI3V8CJasnQ5T1mNKeWB7nQ==", - "dev": true, - "requires": { - "any-promise": "1.3.0", - "crypto-browserify": "3.12.0", - "eth-lib": "0.2.7", - "scryptsy": "2.1.0", - "semver": "6.2.0", - "underscore": "1.9.1", - "uuid": "3.3.2", - "web3-core": "1.2.1", - "web3-core-helpers": "1.2.1", - "web3-core-method": "1.2.1", - "web3-utils": "1.2.1" - }, - "dependencies": { - "uuid": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", - "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==", - "dev": true - } - } - }, - "web3-eth-contract": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-eth-contract/-/web3-eth-contract-1.2.1.tgz", - "integrity": "sha512-kYFESbQ3boC9bl2rYVghj7O8UKMiuKaiMkxvRH5cEDHil8V7MGEGZNH0slSdoyeftZVlaWSMqkRP/chfnKND0g==", - "dev": true, - "requires": { - "underscore": "1.9.1", - "web3-core": "1.2.1", - "web3-core-helpers": "1.2.1", - "web3-core-method": "1.2.1", - "web3-core-promievent": "1.2.1", - "web3-core-subscriptions": "1.2.1", - "web3-eth-abi": "1.2.1", - "web3-utils": "1.2.1" - } - }, - "web3-eth-ens": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-eth-ens/-/web3-eth-ens-1.2.1.tgz", - "integrity": "sha512-lhP1kFhqZr2nnbu3CGIFFrAnNxk2veXpOXBY48Tub37RtobDyHijHgrj+xTh+mFiPokyrapVjpFsbGa+Xzye4Q==", - "dev": true, - "requires": { - "eth-ens-namehash": "2.0.8", - "underscore": "1.9.1", - "web3-core": "1.2.1", - "web3-core-helpers": "1.2.1", - "web3-core-promievent": "1.2.1", - "web3-eth-abi": "1.2.1", - "web3-eth-contract": "1.2.1", - "web3-utils": "1.2.1" - } - }, - "web3-eth-iban": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-eth-iban/-/web3-eth-iban-1.2.1.tgz", - "integrity": "sha512-9gkr4QPl1jCU+wkgmZ8EwODVO3ovVj6d6JKMos52ggdT2YCmlfvFVF6wlGLwi0VvNa/p+0BjJzaqxnnG/JewjQ==", - "dev": true, - "requires": { - "bn.js": "4.11.8", - "web3-utils": "1.2.1" - }, - "dependencies": { - "bn.js": { - "version": "4.11.8", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz", - "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==", - "dev": true - } - } - }, - "web3-eth-personal": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-eth-personal/-/web3-eth-personal-1.2.1.tgz", - "integrity": "sha512-RNDVSiaSoY4aIp8+Hc7z+X72H7lMb3fmAChuSBADoEc7DsJrY/d0R5qQDK9g9t2BO8oxgLrLNyBP/9ub2Hc6Bg==", - "dev": true, - "requires": { - "web3-core": "1.2.1", - "web3-core-helpers": "1.2.1", - "web3-core-method": "1.2.1", - "web3-net": "1.2.1", - "web3-utils": "1.2.1" - } - }, - "web3-net": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-net/-/web3-net-1.2.1.tgz", - "integrity": "sha512-Yt1Bs7WgnLESPe0rri/ZoPWzSy55ovioaP35w1KZydrNtQ5Yq4WcrAdhBzcOW7vAkIwrsLQsvA+hrOCy7mNauw==", - "dev": true, - "requires": { - "web3-core": "1.2.1", - "web3-core-method": "1.2.1", - "web3-utils": "1.2.1" - } - }, - "web3-providers-http": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-providers-http/-/web3-providers-http-1.2.1.tgz", - "integrity": "sha512-BDtVUVolT9b3CAzeGVA/np1hhn7RPUZ6YYGB/sYky+GjeO311Yoq8SRDUSezU92x8yImSC2B+SMReGhd1zL+bQ==", - "dev": true, - "requires": { - "web3-core-helpers": "1.2.1", - "xhr2-cookies": "1.1.0" - } - }, - "web3-providers-ipc": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-providers-ipc/-/web3-providers-ipc-1.2.1.tgz", - "integrity": "sha512-oPEuOCwxVx8L4CPD0TUdnlOUZwGBSRKScCz/Ws2YHdr9Ium+whm+0NLmOZjkjQp5wovQbyBzNa6zJz1noFRvFA==", - "dev": true, - "requires": { - "oboe": "2.1.4", - "underscore": "1.9.1", - "web3-core-helpers": "1.2.1" - } - }, - "web3-providers-ws": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-providers-ws/-/web3-providers-ws-1.2.1.tgz", - "integrity": "sha512-oqsQXzu+ejJACVHy864WwIyw+oB21nw/pI65/sD95Zi98+/HQzFfNcIFneF1NC4bVF3VNX4YHTNq2I2o97LAiA==", - "dev": true, - "requires": { - "underscore": "1.9.1", - "web3-core-helpers": "1.2.1", - "websocket": "github:web3-js/WebSocket-Node#polyfill/globalThis" - } - }, - "web3-shh": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-shh/-/web3-shh-1.2.1.tgz", - "integrity": "sha512-/3Cl04nza5kuFn25bV3FJWa0s3Vafr5BlT933h26xovQ6HIIz61LmvNQlvX1AhFL+SNJOTcQmK1SM59vcyC8bA==", - "dev": true, - "requires": { - "web3-core": "1.2.1", - "web3-core-method": "1.2.1", - "web3-core-subscriptions": "1.2.1", - "web3-net": "1.2.1" - } - }, - "web3-utils": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.2.1.tgz", - "integrity": "sha512-Mrcn3l58L+yCKz3zBryM6JZpNruWuT0OCbag8w+reeNROSGVlXzUQkU+gtAwc9JCZ7tKUyg67+2YUGqUjVcyBA==", - "dev": true, - "requires": { - "bn.js": "4.11.8", - "eth-lib": "0.2.7", - "ethjs-unit": "0.1.6", - "number-to-bn": "1.7.0", - "randomhex": "0.1.5", - "underscore": "1.9.1", - "utf8": "3.0.0" - }, - "dependencies": { - "bn.js": { - "version": "4.11.8", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz", - "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==", - "dev": true - } - } - } - } - }, - "truffle-plugin-verify": { - "version": "0.5.11", - "resolved": "https://registry.npmjs.org/truffle-plugin-verify/-/truffle-plugin-verify-0.5.11.tgz", - "integrity": "sha512-IL8DDsA3YCUQcrRXtarTEXoZJeb2Rlj8jwNjdiWWyDZ7r/EQZndJooorWo19qDpZf9s8ydpvTE/Bb/uyna6Zag==", - "dev": true, - "requires": { - "axios": "^0.21.1", - "cli-logger": "^0.5.40", - "delay": "^5.0.0", - "querystring": "^0.2.1" - }, - "dependencies": { - "axios": { - "version": "0.21.1", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.1.tgz", - "integrity": "sha512-dKQiRHxGD9PPRIUNIWvZhPTPpl1rf/OxTYKsqKUDjBwYylTvV7SjSHJb9ratfyzM6wCdLCOYLzs73qpg5c4iGA==", - "dev": true, - "requires": { - "follow-redirects": "^1.10.0" - } - }, - "follow-redirects": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.1.tgz", - "integrity": "sha512-HWqDgT7ZEkqRzBvc2s64vSZ/hfOceEol3ac/7tKwzuvEyWx3/4UegXh5oBOIotkGsObyk3xznnSRVADBgWSQVg==", - "dev": true - } - } - }, - "truffle-provider": { - "version": "0.1.16", - "resolved": "https://registry.npmjs.org/truffle-provider/-/truffle-provider-0.1.16.tgz", - "integrity": "sha512-3d5WqSKIzZcpgW44mdfF97s+Tgh2a/3Ly6vHJirBV9OZDUtiAzP6WVnlRNvmlDJXFCDqt6Yb9qQWoXFHbYoR6w==", - "dev": true, - "requires": { - "@truffle/error": "^0.0.6", - "truffle-interface-adapter": "^0.2.5", - "web3": "1.2.1" - }, - "dependencies": { - "@types/node": { - "version": "10.17.28", - "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.28.tgz", - "integrity": "sha512-dzjES1Egb4c1a89C7lKwQh8pwjYmlOAG9dW1pBgxEk57tMrLnssOfEthz8kdkNaBd7lIqQx7APm5+mZ619IiCQ==", - "dev": true - }, - "bn.js": { - "version": "4.11.8", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz", - "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==", - "dev": true - }, - "eth-lib": { - "version": "0.2.7", - "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.7.tgz", - "integrity": "sha1-L5Pxex4jrsN1nNSj/iDBKGo/wco=", - "dev": true, - "requires": { - "bn.js": "^4.11.6", - "elliptic": "^6.4.0", - "xhr-request-promise": "^0.1.2" - } - }, - "ethers": { - "version": "4.0.0-beta.3", - "resolved": "https://registry.npmjs.org/ethers/-/ethers-4.0.0-beta.3.tgz", - "integrity": "sha512-YYPogooSknTwvHg3+Mv71gM/3Wcrx+ZpCzarBj3mqs9njjRkrOo2/eufzhHloOCo3JSoNI4TQJJ6yU5ABm3Uog==", - "dev": true, - "requires": { - "@types/node": "^10.3.2", - "aes-js": "3.0.0", - "bn.js": "^4.4.0", - "elliptic": "6.3.3", - "hash.js": "1.1.3", - "js-sha3": "0.5.7", - "scrypt-js": "2.0.3", - "setimmediate": "1.0.4", - "uuid": "2.0.1", - "xmlhttprequest": "1.8.0" - }, - "dependencies": { - "elliptic": { - "version": "6.3.3", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.3.3.tgz", - "integrity": "sha1-VILZZG1UvLif19mU/J4ulWiHbj8=", - "dev": true, - "requires": { - "bn.js": "^4.4.0", - "brorand": "^1.0.1", - "hash.js": "^1.0.0", - "inherits": "^2.0.1" - } - } - } - }, - "scrypt-js": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-2.0.3.tgz", - "integrity": "sha1-uwBAvgMEPamgEqLOqfyfhSz8h9Q=", - "dev": true - }, - "semver": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.2.0.tgz", - "integrity": "sha512-jdFC1VdUGT/2Scgbimf7FSx9iJLXoqfglSF+gJeuNWVpiE37OIbc1jywR/GJyFdz3mnkz2/id0L0J/cr0izR5A==", - "dev": true - }, - "underscore": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.9.1.tgz", - "integrity": "sha512-5/4etnCkd9c8gwgowi5/om/mYO5ajCaOgdzj/oW+0eQV9WxKBDZw5+ycmKmeaTXjInS/W0BzpGLo2xR2aBwZdg==", - "dev": true - }, - "uuid": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-2.0.1.tgz", - "integrity": "sha1-wqMN7bPlNdcsz4LjQ5QaULqFM6w=", - "dev": true - }, - "web3": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3/-/web3-1.2.1.tgz", - "integrity": "sha512-nNMzeCK0agb5i/oTWNdQ1aGtwYfXzHottFP2Dz0oGIzavPMGSKyVlr8ibVb1yK5sJBjrWVnTdGaOC2zKDFuFRw==", - "dev": true, - "requires": { - "web3-bzz": "1.2.1", - "web3-core": "1.2.1", - "web3-eth": "1.2.1", - "web3-eth-personal": "1.2.1", - "web3-net": "1.2.1", - "web3-shh": "1.2.1", - "web3-utils": "1.2.1" - } - }, - "web3-bzz": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-bzz/-/web3-bzz-1.2.1.tgz", - "integrity": "sha512-LdOO44TuYbGIPfL4ilkuS89GQovxUpmLz6C1UC7VYVVRILeZS740FVB3j9V4P4FHUk1RenaDfKhcntqgVCHtjw==", - "dev": true, - "requires": { - "got": "9.6.0", - "swarm-js": "0.1.39", - "underscore": "1.9.1" - } - }, - "web3-core": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-core/-/web3-core-1.2.1.tgz", - "integrity": "sha512-5ODwIqgl8oIg/0+Ai4jsLxkKFWJYE0uLuE1yUKHNVCL4zL6n3rFjRMpKPokd6id6nJCNgeA64KdWQ4XfpnjdMg==", - "dev": true, - "requires": { - "web3-core-helpers": "1.2.1", - "web3-core-method": "1.2.1", - "web3-core-requestmanager": "1.2.1", - "web3-utils": "1.2.1" - } - }, - "web3-core-helpers": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.2.1.tgz", - "integrity": "sha512-Gx3sTEajD5r96bJgfuW377PZVFmXIH4TdqDhgGwd2lZQCcMi+DA4TgxJNJGxn0R3aUVzyyE76j4LBrh412mXrw==", - "dev": true, - "requires": { - "underscore": "1.9.1", - "web3-eth-iban": "1.2.1", - "web3-utils": "1.2.1" - } - }, - "web3-core-method": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-core-method/-/web3-core-method-1.2.1.tgz", - "integrity": "sha512-Ghg2WS23qi6Xj8Od3VCzaImLHseEA7/usvnOItluiIc5cKs00WYWsNy2YRStzU9a2+z8lwQywPYp0nTzR/QXdQ==", - "dev": true, - "requires": { - "underscore": "1.9.1", - "web3-core-helpers": "1.2.1", - "web3-core-promievent": "1.2.1", - "web3-core-subscriptions": "1.2.1", - "web3-utils": "1.2.1" - } - }, - "web3-core-promievent": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-core-promievent/-/web3-core-promievent-1.2.1.tgz", - "integrity": "sha512-IVUqgpIKoeOYblwpex4Hye6npM0aMR+kU49VP06secPeN0rHMyhGF0ZGveWBrGvf8WDPI7jhqPBFIC6Jf3Q3zw==", - "dev": true, - "requires": { - "any-promise": "1.3.0", - "eventemitter3": "3.1.2" - } - }, - "web3-core-requestmanager": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-core-requestmanager/-/web3-core-requestmanager-1.2.1.tgz", - "integrity": "sha512-xfknTC69RfYmLKC+83Jz73IC3/sS2ZLhGtX33D4Q5nQ8yc39ElyAolxr9sJQS8kihOcM6u4J+8gyGMqsLcpIBg==", - "dev": true, - "requires": { - "underscore": "1.9.1", - "web3-core-helpers": "1.2.1", - "web3-providers-http": "1.2.1", - "web3-providers-ipc": "1.2.1", - "web3-providers-ws": "1.2.1" - } - }, - "web3-core-subscriptions": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-core-subscriptions/-/web3-core-subscriptions-1.2.1.tgz", - "integrity": "sha512-nmOwe3NsB8V8UFsY1r+sW6KjdOS68h8nuh7NzlWxBQT/19QSUGiERRTaZXWu5BYvo1EoZRMxCKyCQpSSXLc08g==", - "dev": true, - "requires": { - "eventemitter3": "3.1.2", - "underscore": "1.9.1", - "web3-core-helpers": "1.2.1" - } - }, - "web3-eth": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-eth/-/web3-eth-1.2.1.tgz", - "integrity": "sha512-/2xly4Yry5FW1i+uygPjhfvgUP/MS/Dk+PDqmzp5M88tS86A+j8BzKc23GrlA8sgGs0645cpZK/999LpEF5UdA==", - "dev": true, - "requires": { - "underscore": "1.9.1", - "web3-core": "1.2.1", - "web3-core-helpers": "1.2.1", - "web3-core-method": "1.2.1", - "web3-core-subscriptions": "1.2.1", - "web3-eth-abi": "1.2.1", - "web3-eth-accounts": "1.2.1", - "web3-eth-contract": "1.2.1", - "web3-eth-ens": "1.2.1", - "web3-eth-iban": "1.2.1", - "web3-eth-personal": "1.2.1", - "web3-net": "1.2.1", - "web3-utils": "1.2.1" - } - }, - "web3-eth-abi": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-eth-abi/-/web3-eth-abi-1.2.1.tgz", - "integrity": "sha512-jI/KhU2a/DQPZXHjo2GW0myEljzfiKOn+h1qxK1+Y9OQfTcBMxrQJyH5AP89O6l6NZ1QvNdq99ThAxBFoy5L+g==", - "dev": true, - "requires": { - "ethers": "4.0.0-beta.3", - "underscore": "1.9.1", - "web3-utils": "1.2.1" - } - }, - "web3-eth-accounts": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-eth-accounts/-/web3-eth-accounts-1.2.1.tgz", - "integrity": "sha512-26I4qq42STQ8IeKUyur3MdQ1NzrzCqPsmzqpux0j6X/XBD7EjZ+Cs0lhGNkSKH5dI3V8CJasnQ5T1mNKeWB7nQ==", - "dev": true, - "requires": { - "any-promise": "1.3.0", - "crypto-browserify": "3.12.0", - "eth-lib": "0.2.7", - "scryptsy": "2.1.0", - "semver": "6.2.0", - "underscore": "1.9.1", - "uuid": "3.3.2", - "web3-core": "1.2.1", - "web3-core-helpers": "1.2.1", - "web3-core-method": "1.2.1", - "web3-utils": "1.2.1" - }, - "dependencies": { - "uuid": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", - "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==", - "dev": true - } - } - }, - "web3-eth-contract": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-eth-contract/-/web3-eth-contract-1.2.1.tgz", - "integrity": "sha512-kYFESbQ3boC9bl2rYVghj7O8UKMiuKaiMkxvRH5cEDHil8V7MGEGZNH0slSdoyeftZVlaWSMqkRP/chfnKND0g==", - "dev": true, - "requires": { - "underscore": "1.9.1", - "web3-core": "1.2.1", - "web3-core-helpers": "1.2.1", - "web3-core-method": "1.2.1", - "web3-core-promievent": "1.2.1", - "web3-core-subscriptions": "1.2.1", - "web3-eth-abi": "1.2.1", - "web3-utils": "1.2.1" - } - }, - "web3-eth-ens": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-eth-ens/-/web3-eth-ens-1.2.1.tgz", - "integrity": "sha512-lhP1kFhqZr2nnbu3CGIFFrAnNxk2veXpOXBY48Tub37RtobDyHijHgrj+xTh+mFiPokyrapVjpFsbGa+Xzye4Q==", - "dev": true, - "requires": { - "eth-ens-namehash": "2.0.8", - "underscore": "1.9.1", - "web3-core": "1.2.1", - "web3-core-helpers": "1.2.1", - "web3-core-promievent": "1.2.1", - "web3-eth-abi": "1.2.1", - "web3-eth-contract": "1.2.1", - "web3-utils": "1.2.1" - } - }, - "web3-eth-iban": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-eth-iban/-/web3-eth-iban-1.2.1.tgz", - "integrity": "sha512-9gkr4QPl1jCU+wkgmZ8EwODVO3ovVj6d6JKMos52ggdT2YCmlfvFVF6wlGLwi0VvNa/p+0BjJzaqxnnG/JewjQ==", - "dev": true, - "requires": { - "bn.js": "4.11.8", - "web3-utils": "1.2.1" - } - }, - "web3-eth-personal": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-eth-personal/-/web3-eth-personal-1.2.1.tgz", - "integrity": "sha512-RNDVSiaSoY4aIp8+Hc7z+X72H7lMb3fmAChuSBADoEc7DsJrY/d0R5qQDK9g9t2BO8oxgLrLNyBP/9ub2Hc6Bg==", - "dev": true, - "requires": { - "web3-core": "1.2.1", - "web3-core-helpers": "1.2.1", - "web3-core-method": "1.2.1", - "web3-net": "1.2.1", - "web3-utils": "1.2.1" - } - }, - "web3-net": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-net/-/web3-net-1.2.1.tgz", - "integrity": "sha512-Yt1Bs7WgnLESPe0rri/ZoPWzSy55ovioaP35w1KZydrNtQ5Yq4WcrAdhBzcOW7vAkIwrsLQsvA+hrOCy7mNauw==", - "dev": true, - "requires": { - "web3-core": "1.2.1", - "web3-core-method": "1.2.1", - "web3-utils": "1.2.1" - } - }, - "web3-providers-http": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-providers-http/-/web3-providers-http-1.2.1.tgz", - "integrity": "sha512-BDtVUVolT9b3CAzeGVA/np1hhn7RPUZ6YYGB/sYky+GjeO311Yoq8SRDUSezU92x8yImSC2B+SMReGhd1zL+bQ==", - "dev": true, - "requires": { - "web3-core-helpers": "1.2.1", - "xhr2-cookies": "1.1.0" - } - }, - "web3-providers-ipc": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-providers-ipc/-/web3-providers-ipc-1.2.1.tgz", - "integrity": "sha512-oPEuOCwxVx8L4CPD0TUdnlOUZwGBSRKScCz/Ws2YHdr9Ium+whm+0NLmOZjkjQp5wovQbyBzNa6zJz1noFRvFA==", - "dev": true, - "requires": { - "oboe": "2.1.4", - "underscore": "1.9.1", - "web3-core-helpers": "1.2.1" - } - }, - "web3-providers-ws": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-providers-ws/-/web3-providers-ws-1.2.1.tgz", - "integrity": "sha512-oqsQXzu+ejJACVHy864WwIyw+oB21nw/pI65/sD95Zi98+/HQzFfNcIFneF1NC4bVF3VNX4YHTNq2I2o97LAiA==", - "dev": true, - "requires": { - "underscore": "1.9.1", - "web3-core-helpers": "1.2.1", - "websocket": "github:web3-js/WebSocket-Node#polyfill/globalThis" - } - }, - "web3-shh": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-shh/-/web3-shh-1.2.1.tgz", - "integrity": "sha512-/3Cl04nza5kuFn25bV3FJWa0s3Vafr5BlT933h26xovQ6HIIz61LmvNQlvX1AhFL+SNJOTcQmK1SM59vcyC8bA==", - "dev": true, - "requires": { - "web3-core": "1.2.1", - "web3-core-method": "1.2.1", - "web3-core-subscriptions": "1.2.1", - "web3-net": "1.2.1" - } - }, - "web3-utils": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.2.1.tgz", - "integrity": "sha512-Mrcn3l58L+yCKz3zBryM6JZpNruWuT0OCbag8w+reeNROSGVlXzUQkU+gtAwc9JCZ7tKUyg67+2YUGqUjVcyBA==", - "dev": true, - "requires": { - "bn.js": "4.11.8", - "eth-lib": "0.2.7", - "ethjs-unit": "0.1.6", - "number-to-bn": "1.7.0", - "randomhex": "0.1.5", - "underscore": "1.9.1", - "utf8": "3.0.0" - } - } - } - }, - "ts-command-line-args": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/ts-command-line-args/-/ts-command-line-args-2.4.2.tgz", - "integrity": "sha512-mJLQQBOdyD4XI/ZWQY44PIdYde47JhV2xl380O7twPkTQ+Y5vFDHsk8LOeXKuz7dVY5aDCfAzRarNfSqtKOkQQ==", - "requires": { - "@morgan-stanley/ts-mocking-bird": "^0.6.2", - "chalk": "^4.1.0", - "command-line-args": "^5.1.1", - "command-line-usage": "^6.1.0", - "string-format": "^2.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "ts-essentials": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/ts-essentials/-/ts-essentials-1.0.4.tgz", - "integrity": "sha512-q3N1xS4vZpRouhYHDPwO0bDW3EZ6SK9CrrDHxi/D6BPReSjpVgWIOpLS2o0gSBZm+7q/wyKp6RVM1AeeW7uyfQ==", - "dev": true - }, - "ts-generator": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/ts-generator/-/ts-generator-0.0.8.tgz", - "integrity": "sha512-Gi+aZCELpVL7Mqb+GuMgM+n8JZ/arZZib1iD/R9Ok8JDjOCOCrqS9b1lr72ku7J45WeDCFZxyJoRsiQvhokCnw==", - "dev": true, - "requires": { - "@types/mkdirp": "^0.5.2", - "@types/prettier": "^1.13.2", - "@types/resolve": "^0.0.8", - "chalk": "^2.4.1", - "glob": "^7.1.2", - "mkdirp": "^0.5.1", - "prettier": "^1.14.2", - "resolve": "^1.8.1", - "ts-essentials": "^1.0.0" - }, - "dependencies": { - "mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "dev": true, - "requires": { - "minimist": "^1.2.5" - } - } - } - }, - "ts-node": { - "version": "10.9.1", - "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.1.tgz", - "integrity": "sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==", - "dev": true, - "requires": { - "@cspotcode/source-map-support": "^0.8.0", - "@tsconfig/node10": "^1.0.7", - "@tsconfig/node12": "^1.0.7", - "@tsconfig/node14": "^1.0.0", - "@tsconfig/node16": "^1.0.2", - "acorn": "^8.4.1", - "acorn-walk": "^8.1.1", - "arg": "^4.1.0", - "create-require": "^1.1.0", - "diff": "^4.0.1", - "make-error": "^1.1.1", - "v8-compile-cache-lib": "^3.0.1", - "yn": "3.1.1" - }, - "dependencies": { - "acorn": { - "version": "8.8.2", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz", - "integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==", - "dev": true - } - } - }, - "tslib": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.13.0.tgz", - "integrity": "sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q==", - "dev": true - }, - "tsort": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/tsort/-/tsort-0.0.1.tgz", - "integrity": "sha1-4igPXoF/i/QnVlf9D5rr1E9aJ4Y=", - "dev": true - }, - "tty-browserify": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", - "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=" - }, - "tunnel-agent": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", - "requires": { - "safe-buffer": "^5.0.1" - } - }, - "tweetnacl": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=" - }, - "tweetnacl-util": { - "version": "0.15.1", - "resolved": "https://registry.npmjs.org/tweetnacl-util/-/tweetnacl-util-0.15.1.tgz", - "integrity": "sha512-RKJBIj8lySrShN4w6i/BonWp2Z/uxwC3h4y7xsRrpP59ZboCd0GpEVsOnMDYLMmKBpYhb5TgHzZXy7wTfYFBRw==", - "dev": true - }, - "type": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/type/-/type-1.2.0.tgz", - "integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==" - }, - "type-check": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", - "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", - "dev": true, - "requires": { - "prelude-ls": "~1.1.2" - } - }, - "type-detect": { - "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==" - }, - "type-fest": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", - "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", - "dev": true - }, - "type-is": { - "version": "1.6.18", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", - "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", - "dev": true, - "requires": { - "media-typer": "0.3.0", - "mime-types": "~2.1.24" - } - }, - "typechain": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/typechain/-/typechain-8.1.1.tgz", - "integrity": "sha512-uF/sUvnXTOVF2FHKhQYnxHk4su4JjZR8vr4mA2mBaRwHTbwh0jIlqARz9XJr1tA0l7afJGvEa1dTSi4zt039LQ==", - "requires": { - "@types/prettier": "^2.1.1", - "debug": "^4.3.1", - "fs-extra": "^7.0.0", - "glob": "7.1.7", - "js-sha3": "^0.8.0", - "lodash": "^4.17.15", - "mkdirp": "^1.0.4", - "prettier": "^2.3.1", - "ts-command-line-args": "^2.2.0", - "ts-essentials": "^7.0.1" - }, - "dependencies": { - "@types/prettier": { - "version": "2.7.2", - "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.7.2.tgz", - "integrity": "sha512-KufADq8uQqo1pYKVIYzfKbJfBAc0sOeXqGbFaSpv8MRmC/zXgowNZmFcbngndGk922QDmOASEXUZCaY48gs4cg==" - }, - "debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "requires": { - "ms": "2.1.2" - } - }, - "glob": { - "version": "7.1.7", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz", - "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==", - "requires": { - "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" - } - }, - "js-sha3": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.8.0.tgz", - "integrity": "sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q==" - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "prettier": { - "version": "2.8.7", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.7.tgz", - "integrity": "sha512-yPngTo3aXUUmyuTjeTUT75txrf+aMh9FiD7q9ZE/i6r0bPb22g4FsE6Y338PQX1bmfy08i9QQCB7/rcUAVntfw==" - }, - "ts-essentials": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/ts-essentials/-/ts-essentials-7.0.3.tgz", - "integrity": "sha512-8+gr5+lqO3G84KdiTSMRLtuyJ+nTBVRKuCrK4lidMPdVeEp0uqC875uE5NMcaA7YYMN7XsNiFQuMvasF8HT/xQ==", - "requires": {} - } - } - }, - "typechain-target-truffle": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/typechain-target-truffle/-/typechain-target-truffle-1.0.2.tgz", - "integrity": "sha512-XF3Iq2IzR+Pqvx6fcKIKGXNEk3lEcY24vYv9VqoVPfPB6vUM09PRLJCeLm1/ag6Pr2PICKUA0f4Es+YTR3ESKA==", - "dev": true, - "requires": { - "lodash": "^4.17.15" - } - }, - "typechain-target-web3-v1": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/typechain-target-web3-v1/-/typechain-target-web3-v1-1.0.4.tgz", - "integrity": "sha512-jQ6eCfY7QorBq6kQDjSy5LMuImZGkp6IXR6FXZp7/ulITIxAfb6Dxh+yvh0NN/zboLnMPvvSJi6tHWCqlwfSDA==", - "dev": true, - "requires": { - "lodash": "^4.17.15", - "web3": "^1.2.4" - }, - "dependencies": { - "@ethersproject/abi": { - "version": "5.0.0-beta.153", - "resolved": "https://registry.npmjs.org/@ethersproject/abi/-/abi-5.0.0-beta.153.tgz", - "integrity": "sha512-aXweZ1Z7vMNzJdLpR1CZUAIgnwjrZeUSvN9syCwlBaEBUFJmFY+HHnfuTI5vIhVs/mRkfJVrbEyl51JZQqyjAg==", - "dev": true, - "requires": { - "@ethersproject/address": ">=5.0.0-beta.128", - "@ethersproject/bignumber": ">=5.0.0-beta.130", - "@ethersproject/bytes": ">=5.0.0-beta.129", - "@ethersproject/constants": ">=5.0.0-beta.128", - "@ethersproject/hash": ">=5.0.0-beta.128", - "@ethersproject/keccak256": ">=5.0.0-beta.127", - "@ethersproject/logger": ">=5.0.0-beta.129", - "@ethersproject/properties": ">=5.0.0-beta.131", - "@ethersproject/strings": ">=5.0.0-beta.130" - } - }, - "@types/node": { - "version": "12.12.53", - "resolved": "https://registry.npmjs.org/@types/node/-/node-12.12.53.tgz", - "integrity": "sha512-51MYTDTyCziHb70wtGNFRwB4l+5JNvdqzFSkbDvpbftEgVUBEE+T5f7pROhWMp/fxp07oNIEQZd5bbfAH22ohQ==", - "dev": true - }, - "bignumber.js": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.0.0.tgz", - "integrity": "sha512-t/OYhhJ2SD+YGBQcjY8GzzDHEk9f3nerxjtfa6tlMXfe7frs/WozhvCNoGvpM0P3bNf3Gq5ZRMlGr5f3r4/N8A==", - "dev": true - }, - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "eventemitter3": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.4.tgz", - "integrity": "sha512-rlaVLnVxtxvoyLsQQFBx53YmXHDxRIzzTLbdfxqi4yocpSjAxXwkU0cScM5JgSKMqEhrZpnvQ2D9gjylR0AimQ==", - "dev": true - }, - "fs-extra": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-4.0.3.tgz", - "integrity": "sha512-q6rbdDd1o2mAnQreO7YADIxf/Whx4AHBiRf6d+/cVT8h44ss+lHgxf1FemcqDnQt9X3ct4McHr+JMGlYSsK7Cg==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - }, - "get-stream": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", - "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=", - "dev": true - }, - "p-cancelable": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-0.3.0.tgz", - "integrity": "sha512-RVbZPLso8+jFeq1MfNvgXtCRED2raz/dKpacfTNxsx6pLEpEomM7gah6VeHSYV3+vo0OAi4MkArtQcWWXuQoyw==", - "dev": true - }, - "prepend-http": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", - "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=", - "dev": true - }, - "scrypt-js": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-3.0.1.tgz", - "integrity": "sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA==", - "dev": true - }, - "setimmediate": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", - "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=", - "dev": true - }, - "swarm-js": { - "version": "0.1.40", - "resolved": "https://registry.npmjs.org/swarm-js/-/swarm-js-0.1.40.tgz", - "integrity": "sha512-yqiOCEoA4/IShXkY3WKwP5PvZhmoOOD8clsKA7EEcRILMkTEYHCQ21HDCAcVpmIxZq4LyZvWeRJ6quIyHk1caA==", - "dev": true, - "requires": { - "bluebird": "^3.5.0", - "buffer": "^5.0.5", - "eth-lib": "^0.1.26", - "fs-extra": "^4.0.2", - "got": "^7.1.0", - "mime-types": "^2.1.16", - "mkdirp-promise": "^5.0.1", - "mock-fs": "^4.1.0", - "setimmediate": "^1.0.5", - "tar": "^4.0.2", - "xhr-request": "^1.0.1" - }, - "dependencies": { - "got": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/got/-/got-7.1.0.tgz", - "integrity": "sha512-Y5WMo7xKKq1muPsxD+KmrR8DH5auG7fBdDVueZwETwV6VytKyU9OX/ddpq2/1hp1vIPvVb4T81dKQz3BivkNLw==", - "dev": true, - "requires": { - "decompress-response": "^3.2.0", - "duplexer3": "^0.1.4", - "get-stream": "^3.0.0", - "is-plain-obj": "^1.1.0", - "is-retry-allowed": "^1.0.0", - "is-stream": "^1.0.0", - "isurl": "^1.0.0-alpha5", - "lowercase-keys": "^1.0.0", - "p-cancelable": "^0.3.0", - "p-timeout": "^1.1.1", - "safe-buffer": "^5.0.1", - "timed-out": "^4.0.0", - "url-parse-lax": "^1.0.0", - "url-to-options": "^1.0.1" - } - } - } - }, - "underscore": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.9.1.tgz", - "integrity": "sha512-5/4etnCkd9c8gwgowi5/om/mYO5ajCaOgdzj/oW+0eQV9WxKBDZw5+ycmKmeaTXjInS/W0BzpGLo2xR2aBwZdg==", - "dev": true - }, - "url-parse-lax": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz", - "integrity": "sha1-evjzA2Rem9eaJy56FKxovAYJ2nM=", - "dev": true, - "requires": { - "prepend-http": "^1.0.1" - } - }, - "uuid": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", - "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==", - "dev": true - }, - "web3": { - "version": "1.2.11", - "resolved": "https://registry.npmjs.org/web3/-/web3-1.2.11.tgz", - "integrity": "sha512-mjQ8HeU41G6hgOYm1pmeH0mRAeNKJGnJEUzDMoerkpw7QUQT4exVREgF1MYPvL/z6vAshOXei25LE/t/Bxl8yQ==", - "dev": true, - "requires": { - "web3-bzz": "1.2.11", - "web3-core": "1.2.11", - "web3-eth": "1.2.11", - "web3-eth-personal": "1.2.11", - "web3-net": "1.2.11", - "web3-shh": "1.2.11", - "web3-utils": "1.2.11" - } - }, - "web3-bzz": { - "version": "1.2.11", - "resolved": "https://registry.npmjs.org/web3-bzz/-/web3-bzz-1.2.11.tgz", - "integrity": "sha512-XGpWUEElGypBjeFyUhTkiPXFbDVD6Nr/S5jznE3t8cWUA0FxRf1n3n/NuIZeb0H9RkN2Ctd/jNma/k8XGa3YKg==", - "dev": true, - "requires": { - "@types/node": "^12.12.6", - "got": "9.6.0", - "swarm-js": "^0.1.40", - "underscore": "1.9.1" - } - }, - "web3-core": { - "version": "1.2.11", - "resolved": "https://registry.npmjs.org/web3-core/-/web3-core-1.2.11.tgz", - "integrity": "sha512-CN7MEYOY5ryo5iVleIWRE3a3cZqVaLlIbIzDPsvQRUfzYnvzZQRZBm9Mq+ttDi2STOOzc1MKylspz/o3yq/LjQ==", - "dev": true, - "requires": { - "@types/bn.js": "^4.11.5", - "@types/node": "^12.12.6", - "bignumber.js": "^9.0.0", - "web3-core-helpers": "1.2.11", - "web3-core-method": "1.2.11", - "web3-core-requestmanager": "1.2.11", - "web3-utils": "1.2.11" - } - }, - "web3-core-helpers": { - "version": "1.2.11", - "resolved": "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.2.11.tgz", - "integrity": "sha512-PEPoAoZd5ME7UfbnCZBdzIerpe74GEvlwT4AjOmHeCVZoIFk7EqvOZDejJHt+feJA6kMVTdd0xzRNN295UhC1A==", - "dev": true, - "requires": { - "underscore": "1.9.1", - "web3-eth-iban": "1.2.11", - "web3-utils": "1.2.11" - } - }, - "web3-core-method": { - "version": "1.2.11", - "resolved": "https://registry.npmjs.org/web3-core-method/-/web3-core-method-1.2.11.tgz", - "integrity": "sha512-ff0q76Cde94HAxLDZ6DbdmKniYCQVtvuaYh+rtOUMB6kssa5FX0q3vPmixi7NPooFnbKmmZCM6NvXg4IreTPIw==", - "dev": true, - "requires": { - "@ethersproject/transactions": "^5.0.0-beta.135", - "underscore": "1.9.1", - "web3-core-helpers": "1.2.11", - "web3-core-promievent": "1.2.11", - "web3-core-subscriptions": "1.2.11", - "web3-utils": "1.2.11" - } - }, - "web3-core-promievent": { - "version": "1.2.11", - "resolved": "https://registry.npmjs.org/web3-core-promievent/-/web3-core-promievent-1.2.11.tgz", - "integrity": "sha512-il4McoDa/Ox9Agh4kyfQ8Ak/9ABYpnF8poBLL33R/EnxLsJOGQG2nZhkJa3I067hocrPSjEdlPt/0bHXsln4qA==", - "dev": true, - "requires": { - "eventemitter3": "4.0.4" - } - }, - "web3-core-requestmanager": { - "version": "1.2.11", - "resolved": "https://registry.npmjs.org/web3-core-requestmanager/-/web3-core-requestmanager-1.2.11.tgz", - "integrity": "sha512-oFhBtLfOiIbmfl6T6gYjjj9igOvtyxJ+fjS+byRxiwFJyJ5BQOz4/9/17gWR1Cq74paTlI7vDGxYfuvfE/mKvA==", - "dev": true, - "requires": { - "underscore": "1.9.1", - "web3-core-helpers": "1.2.11", - "web3-providers-http": "1.2.11", - "web3-providers-ipc": "1.2.11", - "web3-providers-ws": "1.2.11" - } - }, - "web3-core-subscriptions": { - "version": "1.2.11", - "resolved": "https://registry.npmjs.org/web3-core-subscriptions/-/web3-core-subscriptions-1.2.11.tgz", - "integrity": "sha512-qEF/OVqkCvQ7MPs1JylIZCZkin0aKK9lDxpAtQ1F8niEDGFqn7DT8E/vzbIa0GsOjL2fZjDhWJsaW+BSoAW1gg==", - "dev": true, - "requires": { - "eventemitter3": "4.0.4", - "underscore": "1.9.1", - "web3-core-helpers": "1.2.11" - } - }, - "web3-eth": { - "version": "1.2.11", - "resolved": "https://registry.npmjs.org/web3-eth/-/web3-eth-1.2.11.tgz", - "integrity": "sha512-REvxW1wJ58AgHPcXPJOL49d1K/dPmuw4LjPLBPStOVkQjzDTVmJEIsiLwn2YeuNDd4pfakBwT8L3bz1G1/wVsQ==", - "dev": true, - "requires": { - "underscore": "1.9.1", - "web3-core": "1.2.11", - "web3-core-helpers": "1.2.11", - "web3-core-method": "1.2.11", - "web3-core-subscriptions": "1.2.11", - "web3-eth-abi": "1.2.11", - "web3-eth-accounts": "1.2.11", - "web3-eth-contract": "1.2.11", - "web3-eth-ens": "1.2.11", - "web3-eth-iban": "1.2.11", - "web3-eth-personal": "1.2.11", - "web3-net": "1.2.11", - "web3-utils": "1.2.11" - } - }, - "web3-eth-abi": { - "version": "1.2.11", - "resolved": "https://registry.npmjs.org/web3-eth-abi/-/web3-eth-abi-1.2.11.tgz", - "integrity": "sha512-PkRYc0+MjuLSgg03QVWqWlQivJqRwKItKtEpRUaxUAeLE7i/uU39gmzm2keHGcQXo3POXAbOnMqkDvOep89Crg==", - "dev": true, - "requires": { - "@ethersproject/abi": "5.0.0-beta.153", - "underscore": "1.9.1", - "web3-utils": "1.2.11" - } - }, - "web3-eth-accounts": { - "version": "1.2.11", - "resolved": "https://registry.npmjs.org/web3-eth-accounts/-/web3-eth-accounts-1.2.11.tgz", - "integrity": "sha512-6FwPqEpCfKIh3nSSGeo3uBm2iFSnFJDfwL3oS9pyegRBXNsGRVpgiW63yhNzL0796StsvjHWwQnQHsZNxWAkGw==", - "dev": true, - "requires": { - "crypto-browserify": "3.12.0", - "eth-lib": "0.2.8", - "ethereumjs-common": "^1.3.2", - "ethereumjs-tx": "^2.1.1", - "scrypt-js": "^3.0.1", - "underscore": "1.9.1", - "uuid": "3.3.2", - "web3-core": "1.2.11", - "web3-core-helpers": "1.2.11", - "web3-core-method": "1.2.11", - "web3-utils": "1.2.11" - }, - "dependencies": { - "eth-lib": { - "version": "0.2.8", - "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.8.tgz", - "integrity": "sha512-ArJ7x1WcWOlSpzdoTBX8vkwlkSQ85CjjifSZtV4co64vWxSV8geWfPI9x4SVYu3DSxnX4yWFVTtGL+j9DUFLNw==", - "dev": true, - "requires": { - "bn.js": "^4.11.6", - "elliptic": "^6.4.0", - "xhr-request-promise": "^0.1.2" - } - } - } - }, - "web3-eth-contract": { - "version": "1.2.11", - "resolved": "https://registry.npmjs.org/web3-eth-contract/-/web3-eth-contract-1.2.11.tgz", - "integrity": "sha512-MzYuI/Rq2o6gn7vCGcnQgco63isPNK5lMAan2E51AJLknjSLnOxwNY3gM8BcKoy4Z+v5Dv00a03Xuk78JowFow==", - "dev": true, - "requires": { - "@types/bn.js": "^4.11.5", - "underscore": "1.9.1", - "web3-core": "1.2.11", - "web3-core-helpers": "1.2.11", - "web3-core-method": "1.2.11", - "web3-core-promievent": "1.2.11", - "web3-core-subscriptions": "1.2.11", - "web3-eth-abi": "1.2.11", - "web3-utils": "1.2.11" - } - }, - "web3-eth-ens": { - "version": "1.2.11", - "resolved": "https://registry.npmjs.org/web3-eth-ens/-/web3-eth-ens-1.2.11.tgz", - "integrity": "sha512-dbW7dXP6HqT1EAPvnniZVnmw6TmQEKF6/1KgAxbo8iBBYrVTMDGFQUUnZ+C4VETGrwwaqtX4L9d/FrQhZ6SUiA==", - "dev": true, - "requires": { - "content-hash": "^2.5.2", - "eth-ens-namehash": "2.0.8", - "underscore": "1.9.1", - "web3-core": "1.2.11", - "web3-core-helpers": "1.2.11", - "web3-core-promievent": "1.2.11", - "web3-eth-abi": "1.2.11", - "web3-eth-contract": "1.2.11", - "web3-utils": "1.2.11" - } - }, - "web3-eth-iban": { - "version": "1.2.11", - "resolved": "https://registry.npmjs.org/web3-eth-iban/-/web3-eth-iban-1.2.11.tgz", - "integrity": "sha512-ozuVlZ5jwFC2hJY4+fH9pIcuH1xP0HEFhtWsR69u9uDIANHLPQQtWYmdj7xQ3p2YT4bQLq/axKhZi7EZVetmxQ==", - "dev": true, - "requires": { - "bn.js": "^4.11.9", - "web3-utils": "1.2.11" - } - }, - "web3-eth-personal": { - "version": "1.2.11", - "resolved": "https://registry.npmjs.org/web3-eth-personal/-/web3-eth-personal-1.2.11.tgz", - "integrity": "sha512-42IzUtKq9iHZ8K9VN0vAI50iSU9tOA1V7XU2BhF/tb7We2iKBVdkley2fg26TxlOcKNEHm7o6HRtiiFsVK4Ifw==", - "dev": true, - "requires": { - "@types/node": "^12.12.6", - "web3-core": "1.2.11", - "web3-core-helpers": "1.2.11", - "web3-core-method": "1.2.11", - "web3-net": "1.2.11", - "web3-utils": "1.2.11" - } - }, - "web3-net": { - "version": "1.2.11", - "resolved": "https://registry.npmjs.org/web3-net/-/web3-net-1.2.11.tgz", - "integrity": "sha512-sjrSDj0pTfZouR5BSTItCuZ5K/oZPVdVciPQ6981PPPIwJJkCMeVjD7I4zO3qDPCnBjBSbWvVnLdwqUBPtHxyg==", - "dev": true, - "requires": { - "web3-core": "1.2.11", - "web3-core-method": "1.2.11", - "web3-utils": "1.2.11" - } - }, - "web3-providers-http": { - "version": "1.2.11", - "resolved": "https://registry.npmjs.org/web3-providers-http/-/web3-providers-http-1.2.11.tgz", - "integrity": "sha512-psh4hYGb1+ijWywfwpB2cvvOIMISlR44F/rJtYkRmQ5jMvG4FOCPlQJPiHQZo+2cc3HbktvvSJzIhkWQJdmvrA==", - "dev": true, - "requires": { - "web3-core-helpers": "1.2.11", - "xhr2-cookies": "1.1.0" - } - }, - "web3-providers-ipc": { - "version": "1.2.11", - "resolved": "https://registry.npmjs.org/web3-providers-ipc/-/web3-providers-ipc-1.2.11.tgz", - "integrity": "sha512-yhc7Y/k8hBV/KlELxynWjJDzmgDEDjIjBzXK+e0rHBsYEhdCNdIH5Psa456c+l0qTEU2YzycF8VAjYpWfPnBpQ==", - "dev": true, - "requires": { - "oboe": "2.1.4", - "underscore": "1.9.1", - "web3-core-helpers": "1.2.11" - } - }, - "web3-providers-ws": { - "version": "1.2.11", - "resolved": "https://registry.npmjs.org/web3-providers-ws/-/web3-providers-ws-1.2.11.tgz", - "integrity": "sha512-ZxnjIY1Er8Ty+cE4migzr43zA/+72AF1myzsLaU5eVgdsfV7Jqx7Dix1hbevNZDKFlSoEyq/3j/jYalh3So1Zg==", - "dev": true, - "requires": { - "eventemitter3": "4.0.4", - "underscore": "1.9.1", - "web3-core-helpers": "1.2.11", - "websocket": "^1.0.31" - } - }, - "web3-shh": { - "version": "1.2.11", - "resolved": "https://registry.npmjs.org/web3-shh/-/web3-shh-1.2.11.tgz", - "integrity": "sha512-B3OrO3oG1L+bv3E1sTwCx66injW1A8hhwpknDUbV+sw3fehFazA06z9SGXUefuFI1kVs4q2vRi0n4oCcI4dZDg==", - "dev": true, - "requires": { - "web3-core": "1.2.11", - "web3-core-method": "1.2.11", - "web3-core-subscriptions": "1.2.11", - "web3-net": "1.2.11" - } - }, - "web3-utils": { - "version": "1.2.11", - "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.2.11.tgz", - "integrity": "sha512-3Tq09izhD+ThqHEaWYX4VOT7dNPdZiO+c/1QMA0s5X2lDFKK/xHJb7cyTRRVzN2LvlHbR7baS1tmQhSua51TcQ==", - "dev": true, - "requires": { - "bn.js": "^4.11.9", - "eth-lib": "0.2.8", - "ethereum-bloom-filters": "^1.0.6", - "ethjs-unit": "0.1.6", - "number-to-bn": "1.7.0", - "randombytes": "^2.1.0", - "underscore": "1.9.1", - "utf8": "3.0.0" - }, - "dependencies": { - "eth-lib": { - "version": "0.2.8", - "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.8.tgz", - "integrity": "sha512-ArJ7x1WcWOlSpzdoTBX8vkwlkSQ85CjjifSZtV4co64vWxSV8geWfPI9x4SVYu3DSxnX4yWFVTtGL+j9DUFLNw==", - "dev": true, - "requires": { - "bn.js": "^4.11.6", - "elliptic": "^6.4.0", - "xhr-request-promise": "^0.1.2" - } - } - } - }, - "websocket": { - "version": "1.0.31", - "resolved": "https://registry.npmjs.org/websocket/-/websocket-1.0.31.tgz", - "integrity": "sha512-VAouplvGKPiKFDTeCCO65vYHsyay8DqoBSlzIO3fayrfOgU94lQN5a1uWVnFrMLceTJw/+fQXR5PGbUVRaHshQ==", - "dev": true, - "requires": { - "debug": "^2.2.0", - "es5-ext": "^0.10.50", - "nan": "^2.14.0", - "typedarray-to-buffer": "^3.1.5", - "yaeti": "^0.0.6" - } - } - } - }, - "typedarray": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=" - }, - "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==", - "requires": { - "is-typedarray": "^1.0.0" - } - }, - "typescript": { - "version": "4.9.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz", - "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==" - }, - "typescript-compare": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/typescript-compare/-/typescript-compare-0.0.2.tgz", - "integrity": "sha512-8ja4j7pMHkfLJQO2/8tut7ub+J3Lw2S3061eJLFQcvs3tsmJKp8KG5NtpLn7KcY2w08edF74BSVN7qJS0U6oHA==", - "dev": true, - "requires": { - "typescript-logic": "^0.0.0" - } - }, - "typescript-logic": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/typescript-logic/-/typescript-logic-0.0.0.tgz", - "integrity": "sha512-zXFars5LUkI3zP492ls0VskH3TtdeHCqu0i7/duGt60i5IGPIpAHE/DWo5FqJ6EjQ15YKXrt+AETjv60Dat34Q==", - "dev": true - }, - "typescript-tuple": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/typescript-tuple/-/typescript-tuple-2.2.1.tgz", - "integrity": "sha512-Zcr0lbt8z5ZdEzERHAMAniTiIKerFCMgd7yjq1fPnDJ43et/k9twIFQMUYff9k5oXcsQ0WpvFcgzK2ZKASoW6Q==", - "dev": true, - "requires": { - "typescript-compare": "^0.0.2" - } - }, - "typical": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/typical/-/typical-4.0.0.tgz", - "integrity": "sha512-VAH4IvQ7BDFYglMd7BPRDfLgxZZX4O4TFcRDA6EN5X7erNJJq+McIEp8np9aVtxrCJ6qx4GTYVfOWNjcqwZgRw==" - }, - "ultron": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ultron/-/ultron-1.1.1.tgz", - "integrity": "sha512-UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og==", - "dev": true - }, - "unbox-primitive": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz", - "integrity": "sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==", - "dev": true, - "requires": { - "function-bind": "^1.1.1", - "has-bigints": "^1.0.1", - "has-symbols": "^1.0.2", - "which-boxed-primitive": "^1.0.2" - } - }, - "unbzip2-stream": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz", - "integrity": "sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg==", - "dev": true, - "requires": { - "buffer": "^5.2.1", - "through": "^2.3.8" - } - }, - "underscore": { - "version": "1.13.3", - "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.13.3.tgz", - "integrity": "sha512-QvjkYpiD+dJJraRA8+dGAU4i7aBbb2s0S3jA45TFOvg2VgqvdCDd/3N6CqA8gluk1W91GLoXg5enMUx560QzuA==", - "dev": true - }, - "union-value": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", - "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", - "requires": { - "arr-union": "^3.1.0", - "get-value": "^2.0.6", - "is-extendable": "^0.1.1", - "set-value": "^2.0.1" - }, - "dependencies": { - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=" - } - } - }, - "unique-filename": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", - "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", - "requires": { - "unique-slug": "^2.0.0" - } - }, - "unique-slug": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz", - "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==", - "requires": { - "imurmurhash": "^0.1.4" - } - }, - "unique-string": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-1.0.0.tgz", - "integrity": "sha1-nhBXzKhRq7kzmPizOuGHuZyuwRo=", - "dev": true, - "requires": { - "crypto-random-string": "^1.0.0" - } - }, - "universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==" - }, - "unpipe": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", - "dev": true - }, - "unset-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", - "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", - "requires": { - "has-value": "^0.3.1", - "isobject": "^3.0.0" - }, - "dependencies": { - "has-value": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", - "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", - "requires": { - "get-value": "^2.0.3", - "has-values": "^0.1.4", - "isobject": "^2.0.0" - }, - "dependencies": { - "isobject": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", - "requires": { - "isarray": "1.0.0" - } - } - } - }, - "has-values": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", - "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=" - } - } - }, - "upath": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", - "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==", - "optional": true - }, - "upper-case": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/upper-case/-/upper-case-1.1.3.tgz", - "integrity": "sha512-WRbjgmYzgXkCV7zNVpy5YgrHgbBv126rMALQQMrmzOVC4GM2waQ9x7xtm8VU+1yF2kWyPzI9zbZ48n4vSxwfSA==", - "dev": true - }, - "upper-case-first": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/upper-case-first/-/upper-case-first-1.1.2.tgz", - "integrity": "sha512-wINKYvI3Db8dtjikdAqoBbZoP6Q+PZUyfMR7pmwHzjC2quzSkUq5DmPrTtPEqHaz8AGtmsB4TqwapMTM1QAQOQ==", - "dev": true, - "requires": { - "upper-case": "^1.1.1" - } - }, - "uri-js": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", - "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", - "requires": { - "punycode": "^2.1.0" - } - }, - "urix": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", - "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=" - }, - "url": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", - "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", - "requires": { - "punycode": "1.3.2", - "querystring": "0.2.0" - }, - "dependencies": { - "punycode": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", - "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=" - }, - "querystring": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", - "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=" - } - } - }, - "url-parse-lax": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", - "integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=", - "dev": true, - "requires": { - "prepend-http": "^2.0.0" - } - }, - "url-set-query": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/url-set-query/-/url-set-query-1.0.0.tgz", - "integrity": "sha1-AW6M/Xwg7gXK/neV6JK9BwL6ozk=" - }, - "url-to-options": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/url-to-options/-/url-to-options-1.0.1.tgz", - "integrity": "sha1-FQWgOiiaSMvXpDTvuu7FBV9WM6k=", - "dev": true - }, - "use": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", - "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==" - }, - "utf-8-validate": { - "version": "5.0.10", - "resolved": "https://registry.npmjs.org/utf-8-validate/-/utf-8-validate-5.0.10.tgz", - "integrity": "sha512-Z6czzLq4u8fPOyx7TU6X3dvUZVvoJmxSQ+IcrlmagKhilxlhZgxPK6C5Jqbkw1IDUmFTM+cz9QDnnLTwDz/2gQ==", - "devOptional": true, - "requires": { - "node-gyp-build": "^4.3.0" - } - }, - "utf8": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/utf8/-/utf8-3.0.0.tgz", - "integrity": "sha512-E8VjFIQ/TyQgp+TZfS6l8yp/xWppSAHzidGiRrqe4bK4XP9pTRyKFgGJpO3SN7zdX4DeomTrwaseCHovfpFcqQ==" - }, - "util": { - "version": "0.12.5", - "resolved": "https://registry.npmjs.org/util/-/util-0.12.5.tgz", - "integrity": "sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "is-arguments": "^1.0.4", - "is-generator-function": "^1.0.7", - "is-typed-array": "^1.1.3", - "which-typed-array": "^1.1.2" - } - }, - "util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" - }, - "utils-merge": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=", - "dev": true - }, - "uuid": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==" - }, - "v8-compile-cache": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.1.1.tgz", - "integrity": "sha512-8OQ9CL+VWyt3JStj7HX7/ciTL2V3Rl1Wf5OL+SNTm0yK1KvtReVulksyeRnCANHHuUxHlQig+JJDlUhBt1NQDQ==" - }, - "v8-compile-cache-lib": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", - "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==", - "dev": true - }, - "value-or-promise": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/value-or-promise/-/value-or-promise-1.0.11.tgz", - "integrity": "sha512-41BrgH+dIbCFXClcSapVs5M6GkENd3gQOJpEfPDNa71LsUGMXDL0jMWpI/Rh7WhX+Aalfz2TTS3Zt5pUsbnhLg==", - "dev": true, - "optional": true - }, - "varint": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/varint/-/varint-5.0.2.tgz", - "integrity": "sha512-lKxKYG6H03yCZUpAGOPOsMcGxd1RHCu1iKvEHYDPmTyq2HueGhD73ssNBqqQWfvYs04G9iUFRvmAVLW20Jw6ow==" - }, - "vary": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", - "dev": true - }, - "verror": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", - "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", - "requires": { - "assert-plus": "^1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" - } - }, - "vm-browserify": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz", - "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==" - }, - "vuvuzela": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/vuvuzela/-/vuvuzela-1.0.3.tgz", - "integrity": "sha512-Tm7jR1xTzBbPW+6y1tknKiEhz04Wf/1iZkcTJjSFcpNko43+dFW6+OOeQe9taJIug3NdfUAjFKgUSyQrIKaDvQ==", - "dev": true, - "optional": true - }, - "watchpack-chokidar2": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/watchpack-chokidar2/-/watchpack-chokidar2-2.0.1.tgz", - "integrity": "sha512-nCFfBIPKr5Sh61s4LPpy1Wtfi0HE8isJ3d2Yb5/Ppw2P2B/3eVSEBjKfN0fmHJSK14+31KwMKmcrzs2GM4P0Ww==", - "optional": true, - "requires": { - "chokidar": "^2.1.8" - }, - "dependencies": { - "anymatch": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", - "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", - "optional": true, - "requires": { - "micromatch": "^3.1.4", - "normalize-path": "^2.1.1" - }, - "dependencies": { - "normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", - "optional": true, - "requires": { - "remove-trailing-separator": "^1.0.1" - } - } - } - }, - "binary-extensions": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", - "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", - "optional": true - }, - "braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "optional": true, - "requires": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - } - }, - "chokidar": { - "version": "2.1.8", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", - "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", - "optional": true, - "requires": { - "anymatch": "^2.0.0", - "async-each": "^1.0.1", - "braces": "^2.3.2", - "fsevents": "^1.2.7", - "glob-parent": "^3.1.0", - "inherits": "^2.0.3", - "is-binary-path": "^1.0.0", - "is-glob": "^4.0.0", - "normalize-path": "^3.0.0", - "path-is-absolute": "^1.0.0", - "readdirp": "^2.2.1", - "upath": "^1.1.1" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "optional": true, - "requires": { - "is-extendable": "^0.1.0" - } - }, - "fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "optional": true, - "requires": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - } - }, - "glob-parent": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", - "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", - "optional": true, - "requires": { - "is-glob": "^3.1.0", - "path-dirname": "^1.0.0" - }, - "dependencies": { - "is-glob": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", - "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", - "optional": true, - "requires": { - "is-extglob": "^2.1.0" - } - } - } - }, - "is-binary-path": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", - "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", - "optional": true, - "requires": { - "binary-extensions": "^1.0.0" - } - }, - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", - "optional": true - }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "optional": true - }, - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "optional": true, - "requires": { - "kind-of": "^3.0.2" - } - }, - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "optional": true, - "requires": { - "is-buffer": "^1.1.5" - } - }, - "readdirp": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", - "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", - "optional": true, - "requires": { - "graceful-fs": "^4.1.11", - "micromatch": "^3.1.10", - "readable-stream": "^2.0.2" - } - }, - "to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", - "optional": true, - "requires": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - } - } - } - }, - "web3": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/web3/-/web3-1.2.2.tgz", - "integrity": "sha512-/ChbmB6qZpfGx6eNpczt5YSUBHEA5V2+iUCbn85EVb3Zv6FVxrOo5Tv7Lw0gE2tW7EEjASbCyp3mZeiZaCCngg==", - "dev": true, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "requires": { - "@types/node": "^12.6.1", - "web3-bzz": "1.2.2", - "web3-core": "1.2.2", - "web3-eth": "1.2.2", - "web3-eth-personal": "1.2.2", - "web3-net": "1.2.2", - "web3-shh": "1.2.2", - "web3-utils": "1.2.2" - }, - "dependencies": { - "@types/node": { - "version": "12.12.53", - "resolved": "https://registry.npmjs.org/@types/node/-/node-12.12.53.tgz", - "integrity": "sha512-51MYTDTyCziHb70wtGNFRwB4l+5JNvdqzFSkbDvpbftEgVUBEE+T5f7pROhWMp/fxp07oNIEQZd5bbfAH22ohQ==", - "dev": true - } + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" } }, - "web3-bzz": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/web3-bzz/-/web3-bzz-1.2.2.tgz", - "integrity": "sha512-b1O2ObsqUN1lJxmFSjvnEC4TsaCbmh7Owj3IAIWTKqL9qhVgx7Qsu5O9cD13pBiSPNZJ68uJPaKq380QB4NWeA==", - "dev": true, - "requires": { - "@types/node": "^10.12.18", - "got": "9.6.0", - "swarm-js": "0.1.39", - "underscore": "1.9.1" - }, - "dependencies": { - "@types/node": { - "version": "10.17.28", - "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.28.tgz", - "integrity": "sha512-dzjES1Egb4c1a89C7lKwQh8pwjYmlOAG9dW1pBgxEk57tMrLnssOfEthz8kdkNaBd7lIqQx7APm5+mZ619IiCQ==", - "dev": true - }, - "underscore": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.9.1.tgz", - "integrity": "sha512-5/4etnCkd9c8gwgowi5/om/mYO5ajCaOgdzj/oW+0eQV9WxKBDZw5+ycmKmeaTXjInS/W0BzpGLo2xR2aBwZdg==", - "dev": true - } - } + "brorand": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", + "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=", + "peer": true }, - "web3-core": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/web3-core/-/web3-core-1.2.2.tgz", - "integrity": "sha512-miHAX3qUgxV+KYfaOY93Hlc3kLW2j5fH8FJy6kSxAv+d4d5aH0wwrU2IIoJylQdT+FeenQ38sgsCnFu9iZ1hCQ==", - "dev": true, + "bufferutil": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/bufferutil/-/bufferutil-4.0.7.tgz", + "integrity": "sha512-kukuqc39WOHtdxtw4UScxF/WVnMFVSQVKhtx3AjZJzhd0RGZZldcrfSEbVsWWe6KNH253574cq5F+wpv0G9pJw==", + "optional": true, + "peer": true, "requires": { - "@types/bn.js": "^4.11.4", - "@types/node": "^12.6.1", - "web3-core-helpers": "1.2.2", - "web3-core-method": "1.2.2", - "web3-core-requestmanager": "1.2.2", - "web3-utils": "1.2.2" - }, - "dependencies": { - "@types/node": { - "version": "12.12.53", - "resolved": "https://registry.npmjs.org/@types/node/-/node-12.12.53.tgz", - "integrity": "sha512-51MYTDTyCziHb70wtGNFRwB4l+5JNvdqzFSkbDvpbftEgVUBEE+T5f7pROhWMp/fxp07oNIEQZd5bbfAH22ohQ==", - "dev": true - } + "node-gyp-build": "^4.3.0" } }, - "web3-core-helpers": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.2.2.tgz", - "integrity": "sha512-HJrRsIGgZa1jGUIhvGz4S5Yh6wtOIo/TMIsSLe+Xay+KVnbseJpPprDI5W3s7H2ODhMQTbogmmUFquZweW2ImQ==", - "dev": true, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "requires": { - "underscore": "1.9.1", - "web3-eth-iban": "1.2.2", - "web3-utils": "1.2.2" - }, - "dependencies": { - "underscore": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.9.1.tgz", - "integrity": "sha512-5/4etnCkd9c8gwgowi5/om/mYO5ajCaOgdzj/oW+0eQV9WxKBDZw5+ycmKmeaTXjInS/W0BzpGLo2xR2aBwZdg==", - "dev": true - } + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" } }, - "web3-core-method": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/web3-core-method/-/web3-core-method-1.2.2.tgz", - "integrity": "sha512-szR4fDSBxNHaF1DFqE+j6sFR/afv9Aa36OW93saHZnrh+iXSrYeUUDfugeNcRlugEKeUCkd4CZylfgbK2SKYJA==", - "dev": true, + "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==", "requires": { - "underscore": "1.9.1", - "web3-core-helpers": "1.2.2", - "web3-core-promievent": "1.2.2", - "web3-core-subscriptions": "1.2.2", - "web3-utils": "1.2.2" - }, - "dependencies": { - "underscore": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.9.1.tgz", - "integrity": "sha512-5/4etnCkd9c8gwgowi5/om/mYO5ajCaOgdzj/oW+0eQV9WxKBDZw5+ycmKmeaTXjInS/W0BzpGLo2xR2aBwZdg==", - "dev": true - } + "color-name": "1.1.3" } }, - "web3-core-promievent": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/web3-core-promievent/-/web3-core-promievent-1.2.2.tgz", - "integrity": "sha512-tKvYeT8bkUfKABcQswK6/X79blKTKYGk949urZKcLvLDEaWrM3uuzDwdQT3BNKzQ3vIvTggFPX9BwYh0F1WwqQ==", - "dev": true, - "requires": { - "any-promise": "1.3.0", - "eventemitter3": "3.1.2" - } + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" }, - "web3-core-requestmanager": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/web3-core-requestmanager/-/web3-core-requestmanager-1.2.2.tgz", - "integrity": "sha512-a+gSbiBRHtHvkp78U2bsntMGYGF2eCb6219aMufuZWeAZGXJ63Wc2321PCbA8hF9cQrZI4EoZ4kVLRI4OF15Hw==", - "dev": true, + "command-line-args": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/command-line-args/-/command-line-args-5.2.1.tgz", + "integrity": "sha512-H4UfQhZyakIjC74I9d34fGYDwk3XpSr17QhEd0Q3I9Xq1CETHo4Hcuo87WyWHpAF1aSLjLRf5lD9ZGX2qStUvg==", "requires": { - "underscore": "1.9.1", - "web3-core-helpers": "1.2.2", - "web3-providers-http": "1.2.2", - "web3-providers-ipc": "1.2.2", - "web3-providers-ws": "1.2.2" - }, - "dependencies": { - "underscore": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.9.1.tgz", - "integrity": "sha512-5/4etnCkd9c8gwgowi5/om/mYO5ajCaOgdzj/oW+0eQV9WxKBDZw5+ycmKmeaTXjInS/W0BzpGLo2xR2aBwZdg==", - "dev": true - } + "array-back": "^3.1.0", + "find-replace": "^3.0.0", + "lodash.camelcase": "^4.3.0", + "typical": "^4.0.0" } }, - "web3-core-subscriptions": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/web3-core-subscriptions/-/web3-core-subscriptions-1.2.2.tgz", - "integrity": "sha512-QbTgigNuT4eicAWWr7ahVpJyM8GbICsR1Ys9mJqzBEwpqS+RXTRVSkwZ2IsxO+iqv6liMNwGregbJLq4urMFcQ==", - "dev": true, + "command-line-usage": { + "version": "6.1.3", + "resolved": "https://registry.npmjs.org/command-line-usage/-/command-line-usage-6.1.3.tgz", + "integrity": "sha512-sH5ZSPr+7UStsloltmDh7Ce5fb8XPlHyoPzTpyyMuYCtervL65+ubVZ6Q61cFtFl62UyJlc8/JwERRbAFPUqgw==", "requires": { - "eventemitter3": "3.1.2", - "underscore": "1.9.1", - "web3-core-helpers": "1.2.2" + "array-back": "^4.0.2", + "chalk": "^2.4.2", + "table-layout": "^1.0.2", + "typical": "^5.2.0" }, "dependencies": { - "underscore": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.9.1.tgz", - "integrity": "sha512-5/4etnCkd9c8gwgowi5/om/mYO5ajCaOgdzj/oW+0eQV9WxKBDZw5+ycmKmeaTXjInS/W0BzpGLo2xR2aBwZdg==", - "dev": true + "array-back": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-4.0.2.tgz", + "integrity": "sha512-NbdMezxqf94cnNfWLL7V/im0Ub+Anbb0IoZhvzie8+4HJ4nMQuzHuy49FkGYCJK2yAloZ3meiB6AVMClbrI1vg==" + }, + "typical": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/typical/-/typical-5.2.0.tgz", + "integrity": "sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg==" } } }, - "web3-eth": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/web3-eth/-/web3-eth-1.2.2.tgz", - "integrity": "sha512-UXpC74mBQvZzd4b+baD4Ocp7g+BlwxhBHumy9seyE/LMIcMlePXwCKzxve9yReNpjaU16Mmyya6ZYlyiKKV8UA==", - "dev": true, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" + }, + "deep-extend": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==" + }, + "elliptic": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", + "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", + "peer": true, "requires": { - "underscore": "1.9.1", - "web3-core": "1.2.2", - "web3-core-helpers": "1.2.2", - "web3-core-method": "1.2.2", - "web3-core-subscriptions": "1.2.2", - "web3-eth-abi": "1.2.2", - "web3-eth-accounts": "1.2.2", - "web3-eth-contract": "1.2.2", - "web3-eth-ens": "1.2.2", - "web3-eth-iban": "1.2.2", - "web3-eth-personal": "1.2.2", - "web3-net": "1.2.2", - "web3-utils": "1.2.2" - }, - "dependencies": { - "underscore": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.9.1.tgz", - "integrity": "sha512-5/4etnCkd9c8gwgowi5/om/mYO5ajCaOgdzj/oW+0eQV9WxKBDZw5+ycmKmeaTXjInS/W0BzpGLo2xR2aBwZdg==", - "dev": true - } + "bn.js": "^4.11.9", + "brorand": "^1.1.0", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.1", + "inherits": "^2.0.4", + "minimalistic-assert": "^1.0.1", + "minimalistic-crypto-utils": "^1.0.1" } }, - "web3-eth-abi": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/web3-eth-abi/-/web3-eth-abi-1.2.2.tgz", - "integrity": "sha512-Yn/ZMgoOLxhTVxIYtPJ0eS6pnAnkTAaJgUJh1JhZS4ekzgswMfEYXOwpMaD5eiqPJLpuxmZFnXnBZlnQ1JMXsw==", - "dev": true, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" + }, + "ethers": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/ethers/-/ethers-5.7.2.tgz", + "integrity": "sha512-wswUsmWo1aOK8rR7DIKiWSw9DbLWe6x98Jrn8wcTflTVvaXhAMaB5zGAXy0GYQEQp9iO1iSHWVyARQm11zUtyg==", + "peer": true, "requires": { - "ethers": "4.0.0-beta.3", - "underscore": "1.9.1", - "web3-utils": "1.2.2" + "@ethersproject/abi": "5.7.0", + "@ethersproject/abstract-provider": "5.7.0", + "@ethersproject/abstract-signer": "5.7.0", + "@ethersproject/address": "5.7.0", + "@ethersproject/base64": "5.7.0", + "@ethersproject/basex": "5.7.0", + "@ethersproject/bignumber": "5.7.0", + "@ethersproject/bytes": "5.7.0", + "@ethersproject/constants": "5.7.0", + "@ethersproject/contracts": "5.7.0", + "@ethersproject/hash": "5.7.0", + "@ethersproject/hdnode": "5.7.0", + "@ethersproject/json-wallets": "5.7.0", + "@ethersproject/keccak256": "5.7.0", + "@ethersproject/logger": "5.7.0", + "@ethersproject/networks": "5.7.1", + "@ethersproject/pbkdf2": "5.7.0", + "@ethersproject/properties": "5.7.0", + "@ethersproject/providers": "5.7.2", + "@ethersproject/random": "5.7.0", + "@ethersproject/rlp": "5.7.0", + "@ethersproject/sha2": "5.7.0", + "@ethersproject/signing-key": "5.7.0", + "@ethersproject/solidity": "5.7.0", + "@ethersproject/strings": "5.7.0", + "@ethersproject/transactions": "5.7.0", + "@ethersproject/units": "5.7.0", + "@ethersproject/wallet": "5.7.0", + "@ethersproject/web": "5.7.1", + "@ethersproject/wordlists": "5.7.0" }, "dependencies": { - "@types/node": { - "version": "10.17.28", - "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.28.tgz", - "integrity": "sha512-dzjES1Egb4c1a89C7lKwQh8pwjYmlOAG9dW1pBgxEk57tMrLnssOfEthz8kdkNaBd7lIqQx7APm5+mZ619IiCQ==", - "dev": true + "@ethersproject/basex": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/basex/-/basex-5.7.0.tgz", + "integrity": "sha512-ywlh43GwZLv2Voc2gQVTKBoVQ1mti3d8HK5aMxsfu/nRDnMmNqaSJ3r3n85HBByT8OpoY96SXM1FogC533T4zw==", + "peer": true, + "requires": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/properties": "^5.7.0" + } + }, + "@ethersproject/contracts": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/contracts/-/contracts-5.7.0.tgz", + "integrity": "sha512-5GJbzEU3X+d33CdfPhcyS+z8MzsTrBGk/sc+G+59+tPa9yFkl6HQ9D6L0QMgNTA9q8dT0XKxxkyp883XsQvbbg==", + "peer": true, + "requires": { + "@ethersproject/abi": "^5.7.0", + "@ethersproject/abstract-provider": "^5.7.0", + "@ethersproject/abstract-signer": "^5.7.0", + "@ethersproject/address": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/transactions": "^5.7.0" + } + }, + "@ethersproject/hdnode": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/hdnode/-/hdnode-5.7.0.tgz", + "integrity": "sha512-OmyYo9EENBPPf4ERhR7oj6uAtUAhYGqOnIS+jE5pTXvdKBS99ikzq1E7Iv0ZQZ5V36Lqx1qZLeak0Ra16qpeOg==", + "peer": true, + "requires": { + "@ethersproject/abstract-signer": "^5.7.0", + "@ethersproject/basex": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/pbkdf2": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/sha2": "^5.7.0", + "@ethersproject/signing-key": "^5.7.0", + "@ethersproject/strings": "^5.7.0", + "@ethersproject/transactions": "^5.7.0", + "@ethersproject/wordlists": "^5.7.0" + } + }, + "@ethersproject/json-wallets": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/json-wallets/-/json-wallets-5.7.0.tgz", + "integrity": "sha512-8oee5Xgu6+RKgJTkvEMl2wDgSPSAQ9MB/3JYjFV9jlKvcYHUXZC+cQp0njgmxdHkYWn8s6/IqIZYm0YWCjO/0g==", + "peer": true, + "requires": { + "@ethersproject/abstract-signer": "^5.7.0", + "@ethersproject/address": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/hdnode": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/pbkdf2": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/random": "^5.7.0", + "@ethersproject/strings": "^5.7.0", + "@ethersproject/transactions": "^5.7.0", + "aes-js": "3.0.0", + "scrypt-js": "3.0.1" + } + }, + "@ethersproject/pbkdf2": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/pbkdf2/-/pbkdf2-5.7.0.tgz", + "integrity": "sha512-oR/dBRZR6GTyaofd86DehG72hY6NpAjhabkhxgr3X2FpJtJuodEl2auADWBZfhDHgVCbu3/H/Ocq2uC6dpNjjw==", + "peer": true, + "requires": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/sha2": "^5.7.0" + } + }, + "@ethersproject/providers": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/@ethersproject/providers/-/providers-5.7.2.tgz", + "integrity": "sha512-g34EWZ1WWAVgr4aptGlVBF8mhl3VWjv+8hoAnzStu8Ah22VHBsuGzP17eb6xDVRzw895G4W7vvx60lFFur/1Rg==", + "peer": true, + "requires": { + "@ethersproject/abstract-provider": "^5.7.0", + "@ethersproject/abstract-signer": "^5.7.0", + "@ethersproject/address": "^5.7.0", + "@ethersproject/base64": "^5.7.0", + "@ethersproject/basex": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/hash": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/networks": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/random": "^5.7.0", + "@ethersproject/rlp": "^5.7.0", + "@ethersproject/sha2": "^5.7.0", + "@ethersproject/strings": "^5.7.0", + "@ethersproject/transactions": "^5.7.0", + "@ethersproject/web": "^5.7.0", + "bech32": "1.1.4", + "ws": "7.4.6" + } }, - "elliptic": { - "version": "6.3.3", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.3.3.tgz", - "integrity": "sha1-VILZZG1UvLif19mU/J4ulWiHbj8=", - "dev": true, + "@ethersproject/random": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/random/-/random-5.7.0.tgz", + "integrity": "sha512-19WjScqRA8IIeWclFme75VMXSBvi4e6InrUNuaR4s5pTF2qNhcGdCUwdxUVGtDDqC00sDLCO93jPQoDUH4HVmQ==", + "peer": true, "requires": { - "bn.js": "^4.4.0", - "brorand": "^1.0.1", - "hash.js": "^1.0.0", - "inherits": "^2.0.1" + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0" } }, - "ethers": { - "version": "4.0.0-beta.3", - "resolved": "https://registry.npmjs.org/ethers/-/ethers-4.0.0-beta.3.tgz", - "integrity": "sha512-YYPogooSknTwvHg3+Mv71gM/3Wcrx+ZpCzarBj3mqs9njjRkrOo2/eufzhHloOCo3JSoNI4TQJJ6yU5ABm3Uog==", - "dev": true, + "@ethersproject/sha2": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/sha2/-/sha2-5.7.0.tgz", + "integrity": "sha512-gKlH42riwb3KYp0reLsFTokByAKoJdgFCwI+CCiX/k+Jm2mbNs6oOaCjYQSlI1+XBVejwH2KrmCbMAT/GnRDQw==", + "peer": true, "requires": { - "@types/node": "^10.3.2", - "aes-js": "3.0.0", - "bn.js": "^4.4.0", - "elliptic": "6.3.3", - "hash.js": "1.1.3", - "js-sha3": "0.5.7", - "scrypt-js": "2.0.3", - "setimmediate": "1.0.4", - "uuid": "2.0.1", - "xmlhttprequest": "1.8.0" + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "hash.js": "1.1.7" } }, - "scrypt-js": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-2.0.3.tgz", - "integrity": "sha1-uwBAvgMEPamgEqLOqfyfhSz8h9Q=", - "dev": true + "@ethersproject/solidity": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/solidity/-/solidity-5.7.0.tgz", + "integrity": "sha512-HmabMd2Dt/raavyaGukF4XxizWKhKQ24DoLtdNbBmNKUOPqwjsKQSdV9GQtj9CBEea9DlzETlVER1gYeXXBGaA==", + "peer": true, + "requires": { + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/sha2": "^5.7.0", + "@ethersproject/strings": "^5.7.0" + } }, - "underscore": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.9.1.tgz", - "integrity": "sha512-5/4etnCkd9c8gwgowi5/om/mYO5ajCaOgdzj/oW+0eQV9WxKBDZw5+ycmKmeaTXjInS/W0BzpGLo2xR2aBwZdg==", - "dev": true + "@ethersproject/units": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/units/-/units-5.7.0.tgz", + "integrity": "sha512-pD3xLMy3SJu9kG5xDGI7+xhTEmGXlEqXU4OfNapmfnxLVY4EMSSRp7j1k7eezutBPH7RBN/7QPnwR7hzNlEFeg==", + "peer": true, + "requires": { + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/logger": "^5.7.0" + } }, - "uuid": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-2.0.1.tgz", - "integrity": "sha1-wqMN7bPlNdcsz4LjQ5QaULqFM6w=", - "dev": true - } - } - }, - "web3-eth-accounts": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/web3-eth-accounts/-/web3-eth-accounts-1.2.2.tgz", - "integrity": "sha512-KzHOEyXOEZ13ZOkWN3skZKqSo5f4Z1ogPFNn9uZbKCz+kSp+gCAEKxyfbOsB/JMAp5h7o7pb6eYsPCUBJmFFiA==", - "dev": true, - "requires": { - "any-promise": "1.3.0", - "crypto-browserify": "3.12.0", - "eth-lib": "0.2.7", - "ethereumjs-common": "^1.3.2", - "ethereumjs-tx": "^2.1.1", - "scrypt-shim": "github:web3-js/scrypt-shim", - "underscore": "1.9.1", - "uuid": "3.3.2", - "web3-core": "1.2.2", - "web3-core-helpers": "1.2.2", - "web3-core-method": "1.2.2", - "web3-utils": "1.2.2" - }, - "dependencies": { - "eth-lib": { - "version": "0.2.7", - "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.7.tgz", - "integrity": "sha1-L5Pxex4jrsN1nNSj/iDBKGo/wco=", - "dev": true, + "@ethersproject/wallet": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/wallet/-/wallet-5.7.0.tgz", + "integrity": "sha512-MhmXlJXEJFBFVKrDLB4ZdDzxcBxQ3rLyCkhNqVu3CDYvR97E+8r01UgrI+TI99Le+aYm/in/0vp86guJuM7FCA==", + "peer": true, + "requires": { + "@ethersproject/abstract-provider": "^5.7.0", + "@ethersproject/abstract-signer": "^5.7.0", + "@ethersproject/address": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/hash": "^5.7.0", + "@ethersproject/hdnode": "^5.7.0", + "@ethersproject/json-wallets": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/random": "^5.7.0", + "@ethersproject/signing-key": "^5.7.0", + "@ethersproject/transactions": "^5.7.0", + "@ethersproject/wordlists": "^5.7.0" + } + }, + "@ethersproject/wordlists": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/wordlists/-/wordlists-5.7.0.tgz", + "integrity": "sha512-S2TFNJNfHWVHNE6cNDjbVlZ6MgE17MIxMbMg2zv3wn+3XSJGosL1m9ZVv3GXCf/2ymSsQ+hRI5IzoMJTG6aoVA==", + "peer": true, "requires": { - "bn.js": "^4.11.6", - "elliptic": "^6.4.0", - "xhr-request-promise": "^0.1.2" + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/hash": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/strings": "^5.7.0" } }, - "underscore": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.9.1.tgz", - "integrity": "sha512-5/4etnCkd9c8gwgowi5/om/mYO5ajCaOgdzj/oW+0eQV9WxKBDZw5+ycmKmeaTXjInS/W0BzpGLo2xR2aBwZdg==", - "dev": true + "bech32": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/bech32/-/bech32-1.1.4.tgz", + "integrity": "sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ==", + "peer": true }, - "uuid": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", - "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==", - "dev": true - } - } - }, - "web3-eth-contract": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/web3-eth-contract/-/web3-eth-contract-1.2.2.tgz", - "integrity": "sha512-EKT2yVFws3FEdotDQoNsXTYL798+ogJqR2//CaGwx3p0/RvQIgfzEwp8nbgA6dMxCsn9KOQi7OtklzpnJMkjtA==", - "dev": true, - "requires": { - "@types/bn.js": "^4.11.4", - "underscore": "1.9.1", - "web3-core": "1.2.2", - "web3-core-helpers": "1.2.2", - "web3-core-method": "1.2.2", - "web3-core-promievent": "1.2.2", - "web3-core-subscriptions": "1.2.2", - "web3-eth-abi": "1.2.2", - "web3-utils": "1.2.2" - }, - "dependencies": { - "underscore": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.9.1.tgz", - "integrity": "sha512-5/4etnCkd9c8gwgowi5/om/mYO5ajCaOgdzj/oW+0eQV9WxKBDZw5+ycmKmeaTXjInS/W0BzpGLo2xR2aBwZdg==", - "dev": true - } - } - }, - "web3-eth-ens": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/web3-eth-ens/-/web3-eth-ens-1.2.2.tgz", - "integrity": "sha512-CFjkr2HnuyMoMFBoNUWojyguD4Ef+NkyovcnUc/iAb9GP4LHohKrODG4pl76R5u61TkJGobC2ij6TyibtsyVYg==", - "dev": true, - "requires": { - "eth-ens-namehash": "2.0.8", - "underscore": "1.9.1", - "web3-core": "1.2.2", - "web3-core-helpers": "1.2.2", - "web3-core-promievent": "1.2.2", - "web3-eth-abi": "1.2.2", - "web3-eth-contract": "1.2.2", - "web3-utils": "1.2.2" - }, - "dependencies": { - "underscore": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.9.1.tgz", - "integrity": "sha512-5/4etnCkd9c8gwgowi5/om/mYO5ajCaOgdzj/oW+0eQV9WxKBDZw5+ycmKmeaTXjInS/W0BzpGLo2xR2aBwZdg==", - "dev": true + "hash.js": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", + "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", + "peer": true, + "requires": { + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.1" + } + }, + "scrypt-js": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-3.0.1.tgz", + "integrity": "sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA==", + "peer": true + }, + "ws": { + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz", + "integrity": "sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==", + "peer": true, + "requires": {} } } }, - "web3-eth-iban": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/web3-eth-iban/-/web3-eth-iban-1.2.2.tgz", - "integrity": "sha512-gxKXBoUhaTFHr0vJB/5sd4i8ejF/7gIsbM/VvemHT3tF5smnmY6hcwSMmn7sl5Gs+83XVb/BngnnGkf+I/rsrQ==", - "dev": true, + "find-replace": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-replace/-/find-replace-3.0.0.tgz", + "integrity": "sha512-6Tb2myMioCAgv5kfvP5/PkZZ/ntTpVK39fHY7WkWBgvbeE+VHd/tZuZ4mrC+bxh4cfOZeYKVPaJIZtZXV7GNCQ==", "requires": { - "bn.js": "4.11.8", - "web3-utils": "1.2.2" - }, - "dependencies": { - "bn.js": { - "version": "4.11.8", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz", - "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==", - "dev": true - } + "array-back": "^3.0.1" } }, - "web3-eth-personal": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/web3-eth-personal/-/web3-eth-personal-1.2.2.tgz", - "integrity": "sha512-4w+GLvTlFqW3+q4xDUXvCEMU7kRZ+xm/iJC8gm1Li1nXxwwFbs+Y+KBK6ZYtoN1qqAnHR+plYpIoVo27ixI5Rg==", - "dev": true, + "fs-extra": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", + "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", "requires": { - "@types/node": "^12.6.1", - "web3-core": "1.2.2", - "web3-core-helpers": "1.2.2", - "web3-core-method": "1.2.2", - "web3-net": "1.2.2", - "web3-utils": "1.2.2" - }, - "dependencies": { - "@types/node": { - "version": "12.12.53", - "resolved": "https://registry.npmjs.org/@types/node/-/node-12.12.53.tgz", - "integrity": "sha512-51MYTDTyCziHb70wtGNFRwB4l+5JNvdqzFSkbDvpbftEgVUBEE+T5f7pROhWMp/fxp07oNIEQZd5bbfAH22ohQ==", - "dev": true - } + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" } }, - "web3-net": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/web3-net/-/web3-net-1.2.2.tgz", - "integrity": "sha512-K07j2DXq0x4UOJgae65rWZKraOznhk8v5EGSTdFqASTx7vWE/m+NqBijBYGEsQY1lSMlVaAY9UEQlcXK5HzXTw==", - "dev": true, - "requires": { - "web3-core": "1.2.2", - "web3-core-method": "1.2.2", - "web3-utils": "1.2.2" - } + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" }, - "web3-providers-http": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/web3-providers-http/-/web3-providers-http-1.2.2.tgz", - "integrity": "sha512-BNZ7Hguy3eBszsarH5gqr9SIZNvqk9eKwqwmGH1LQS1FL3NdoOn7tgPPdddrXec4fL94CwgNk4rCU+OjjZRNDg==", - "dev": true, - "requires": { - "web3-core-helpers": "1.2.2", - "xhr2-cookies": "1.1.0" - } + "graceful-fs": { + "version": "4.2.10", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", + "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==" }, - "web3-providers-ipc": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/web3-providers-ipc/-/web3-providers-ipc-1.2.2.tgz", - "integrity": "sha512-t97w3zi5Kn/LEWGA6D9qxoO0LBOG+lK2FjlEdCwDQatffB/+vYrzZ/CLYVQSoyFZAlsDoBasVoYSWZK1n39aHA==", - "dev": true, - "requires": { - "oboe": "2.1.4", - "underscore": "1.9.1", - "web3-core-helpers": "1.2.2" - }, - "dependencies": { - "underscore": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.9.1.tgz", - "integrity": "sha512-5/4etnCkd9c8gwgowi5/om/mYO5ajCaOgdzj/oW+0eQV9WxKBDZw5+ycmKmeaTXjInS/W0BzpGLo2xR2aBwZdg==", - "dev": true - } - } + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" }, - "web3-providers-ws": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/web3-providers-ws/-/web3-providers-ws-1.2.2.tgz", - "integrity": "sha512-Wb1mrWTGMTXOpJkL0yGvL/WYLt8fUIXx8k/l52QB2IiKzvyd42dTWn4+j8IKXGSYYzOm7NMqv6nhA5VDk12VfA==", - "dev": true, + "hash.js": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.3.tgz", + "integrity": "sha512-/UETyP0W22QILqS+6HowevwhEFJ3MBJnwTf75Qob9Wz9t0DPuisL8kW8YZMK62dHAKE1c1p+gY1TtOLY+USEHA==", + "peer": true, "requires": { - "underscore": "1.9.1", - "web3-core-helpers": "1.2.2", - "websocket": "github:web3-js/WebSocket-Node#polyfill/globalThis" - }, - "dependencies": { - "underscore": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.9.1.tgz", - "integrity": "sha512-5/4etnCkd9c8gwgowi5/om/mYO5ajCaOgdzj/oW+0eQV9WxKBDZw5+ycmKmeaTXjInS/W0BzpGLo2xR2aBwZdg==", - "dev": true - } + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.0" } }, - "web3-shh": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/web3-shh/-/web3-shh-1.2.2.tgz", - "integrity": "sha512-og258NPhlBn8yYrDWjoWBBb6zo1OlBgoWGT+LL5/LPqRbjPe09hlOYHgscAAr9zZGtohTOty7RrxYw6Z6oDWCg==", - "dev": true, + "hmac-drbg": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", + "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", + "peer": true, "requires": { - "web3-core": "1.2.2", - "web3-core-method": "1.2.2", - "web3-core-subscriptions": "1.2.2", - "web3-net": "1.2.2" + "hash.js": "^1.0.3", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.1" } }, - "web3-utils": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.2.2.tgz", - "integrity": "sha512-joF+s3243TY5cL7Z7y4h1JsJpUCf/kmFmj+eJar7Y2yNIGVcW961VyrAms75tjUysSuHaUQ3eQXjBEUJueT52A==", - "dev": true, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", "requires": { - "bn.js": "4.11.8", - "eth-lib": "0.2.7", - "ethereum-bloom-filters": "^1.0.6", - "ethjs-unit": "0.1.6", - "number-to-bn": "1.7.0", - "randombytes": "^2.1.0", - "underscore": "1.9.1", - "utf8": "3.0.0" - }, - "dependencies": { - "bn.js": { - "version": "4.11.8", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz", - "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==", - "dev": true - }, - "eth-lib": { - "version": "0.2.7", - "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.7.tgz", - "integrity": "sha1-L5Pxex4jrsN1nNSj/iDBKGo/wco=", - "dev": true, - "requires": { - "bn.js": "^4.11.6", - "elliptic": "^6.4.0", - "xhr-request-promise": "^0.1.2" - } - }, - "underscore": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.9.1.tgz", - "integrity": "sha512-5/4etnCkd9c8gwgowi5/om/mYO5ajCaOgdzj/oW+0eQV9WxKBDZw5+ycmKmeaTXjInS/W0BzpGLo2xR2aBwZdg==", - "dev": true - } + "once": "^1.3.0", + "wrappy": "1" } }, - "webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=" + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" }, - "websocket": { - "version": "git+ssh://git@github.com/web3-js/WebSocket-Node.git#ef5ea2f41daf4a2113b80c9223df884b4d56c400", - "dev": true, - "from": "websocket@github:web3-js/WebSocket-Node#polyfill/globalThis", + "jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", "requires": { - "debug": "^2.2.0", - "es5-ext": "^0.10.50", - "nan": "^2.14.0", - "typedarray-to-buffer": "^3.1.5", - "yaeti": "^0.0.6" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - } + "graceful-fs": "^4.1.6" } }, - "websocket-driver": { - "version": "0.7.4", - "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz", - "integrity": "sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==", - "dev": true, - "requires": { - "http-parser-js": ">=0.5.1", - "safe-buffer": ">=5.1.0", - "websocket-extensions": ">=0.1.1" - } + "lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" }, - "websocket-extensions": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz", - "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==", - "dev": true + "lodash.camelcase": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", + "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY=" }, - "whatwg-fetch": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.2.0.tgz", - "integrity": "sha512-SdGPoQMMnzVYThUbSrEvqTlkvC1Ux27NehaJ/GUHBfNrh5Mjg+1/uRyFMwVnxO2MrikMWvWAqUGgQOfVU4hT7w==", - "dev": true + "minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", + "peer": true }, - "whatwg-mimetype": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-3.0.0.tgz", - "integrity": "sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==", - "dev": true, - "optional": true + "minimalistic-crypto-utils": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", + "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=", + "peer": true }, - "whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha1-lmRU6HZUYuN2RNNib2dCzotwll0=", + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "requires": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" + "brace-expansion": "^1.1.7" } }, - "when": { - "version": "3.7.8", - "resolved": "https://registry.npmjs.org/when/-/when-3.7.8.tgz", - "integrity": "sha1-xxMLan6gRpPoQs3J56Hyqjmjn4I=" + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==" }, - "which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "requires": { - "isexe": "^2.0.0" - } + "node-gyp-build": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.6.0.tgz", + "integrity": "sha512-NTZVKn9IylLwUzaKjkas1e4u2DLNcV4rdYagA4PWdPwW87Bi7z+BznyKSRwS/761tV/lzCGXplWsiaMjLqP2zQ==", + "optional": true, + "peer": true }, - "which-boxed-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", - "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", - "dev": true, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", "requires": { - "is-bigint": "^1.0.1", - "is-boolean-object": "^1.1.0", - "is-number-object": "^1.0.4", - "is-string": "^1.0.5", - "is-symbol": "^1.0.3" + "wrappy": "1" } }, - "which-module": { + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" + }, + "reduce-flatten": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", - "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=" + "resolved": "https://registry.npmjs.org/reduce-flatten/-/reduce-flatten-2.0.0.tgz", + "integrity": "sha512-EJ4UNY/U1t2P/2k6oqotuX2Cc3T6nxJwsM0N0asT7dhrtH1ltUxDn4NalSYmPE2rCkVpcf/X6R0wDwcFpzhd4w==" }, - "which-typed-array": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.4.tgz", - "integrity": "sha512-49E0SpUe90cjpoc7BOJwyPHRqSAd12c10Qm2amdEZrJPCY2NDxaW01zHITrem+rnETY3dwrbH3UUrUwagfCYDA==", - "dev": true, - "requires": { - "available-typed-arrays": "^1.0.2", - "call-bind": "^1.0.0", - "es-abstract": "^1.18.0-next.1", - "foreach": "^2.0.5", - "function-bind": "^1.1.1", - "has-symbols": "^1.0.1", - "is-typed-array": "^1.1.3" - } + "string-format": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/string-format/-/string-format-2.0.0.tgz", + "integrity": "sha512-bbEs3scLeYNXLecRRuk6uJxdXUSj6le/8rNPHChIJTn2V79aXVTR1EH2OH5zLKKoz0V02fOUKZZcw01pLUShZA==" }, - "wide-align": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", - "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "requires": { - "string-width": "^1.0.2 || 2" + "has-flag": "^3.0.0" } }, - "word-wrap": { - "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 - }, - "wordwrapjs": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/wordwrapjs/-/wordwrapjs-4.0.1.tgz", - "integrity": "sha512-kKlNACbvHrkpIw6oPeYDSmdCTu2hdMHoyXLTcUKala++lx5Y+wjJ/e474Jqv5abnVmwxw08DiTuHmw69lJGksA==", + "table-layout": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/table-layout/-/table-layout-1.0.2.tgz", + "integrity": "sha512-qd/R7n5rQTRFi+Zf2sk5XVVd9UQl6ZkduPFC3S7WEGJAmetDTjY3qPN50eSKzwuzEyQKy5TN2TiZdkIjos2L6A==", "requires": { - "reduce-flatten": "^2.0.0", - "typical": "^5.2.0" + "array-back": "^4.0.1", + "deep-extend": "~0.6.0", + "typical": "^5.2.0", + "wordwrapjs": "^4.0.0" }, "dependencies": { + "array-back": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-4.0.2.tgz", + "integrity": "sha512-NbdMezxqf94cnNfWLL7V/im0Ub+Anbb0IoZhvzie8+4HJ4nMQuzHuy49FkGYCJK2yAloZ3meiB6AVMClbrI1vg==" + }, "typical": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/typical/-/typical-5.2.0.tgz", @@ -45119,293 +2600,175 @@ } } }, - "worker-farm": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/worker-farm/-/worker-farm-1.7.0.tgz", - "integrity": "sha512-rvw3QTZc8lAxyVrqcSGVm5yP/IJ2UcB3U0graE3LCFoZ0Yn2x4EoVSqJKdB/T5M+FLcRPjz4TDacRf3OCfNUzw==", - "requires": { - "errno": "~0.1.7" - } - }, - "workerpool": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.2.1.tgz", - "integrity": "sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw==", - "dev": true - }, - "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==", + "ts-command-line-args": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/ts-command-line-args/-/ts-command-line-args-2.4.2.tgz", + "integrity": "sha512-mJLQQBOdyD4XI/ZWQY44PIdYde47JhV2xl380O7twPkTQ+Y5vFDHsk8LOeXKuz7dVY5aDCfAzRarNfSqtKOkQQ==", "requires": { - "ansi-styles": "^3.2.0", - "string-width": "^3.0.0", - "strip-ansi": "^5.0.0" + "@morgan-stanley/ts-mocking-bird": "^0.6.2", + "chalk": "^4.1.0", + "command-line-args": "^5.1.1", + "command-line-usage": "^6.1.0", + "string-format": "^2.0.0" }, "dependencies": { - "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==", + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" + "color-convert": "^2.0.1" } - } - } - }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" - }, - "write": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/write/-/write-1.0.3.tgz", - "integrity": "sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig==", - "dev": true, - "requires": { - "mkdirp": "^0.5.1" - }, - "dependencies": { - "mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "dev": true, + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "requires": { - "minimist": "^1.2.5" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "requires": { + "has-flag": "^4.0.0" } } } }, - "write-file-atomic": { - "version": "2.4.3", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.4.3.tgz", - "integrity": "sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.11", - "imurmurhash": "^0.1.4", - "signal-exit": "^3.0.2" - } - }, - "write-stream": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/write-stream/-/write-stream-0.4.3.tgz", - "integrity": "sha512-IJrvkhbAnj89W/GAVdVgbnPiVw5Ntg/B4tc/MUCIEwj/g6JIww1DWJyB/yBMT3yw2/TkT6IUZ0+IYef3flEw8A==", - "dev": true, - "optional": true, - "requires": { - "readable-stream": "~0.0.2" - }, - "dependencies": { - "readable-stream": { - "version": "0.0.4", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-0.0.4.tgz", - "integrity": "sha512-azrivNydKRYt7zwLV5wWUK7YzKTWs3q87xSmY6DlHapPrCvaT6ZrukvM5erV+yCSSPmZT8zkSdttOHQpWWm9zw==", - "dev": true, - "optional": true - } - } - }, - "ws": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/ws/-/ws-3.3.3.tgz", - "integrity": "sha512-nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA==", - "dev": true, + "typechain": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/typechain/-/typechain-8.1.1.tgz", + "integrity": "sha512-uF/sUvnXTOVF2FHKhQYnxHk4su4JjZR8vr4mA2mBaRwHTbwh0jIlqARz9XJr1tA0l7afJGvEa1dTSi4zt039LQ==", "requires": { - "async-limiter": "~1.0.0", - "safe-buffer": "~5.1.0", - "ultron": "~1.1.0" + "@types/prettier": "^2.1.1", + "debug": "^4.3.1", + "fs-extra": "^7.0.0", + "glob": "7.1.7", + "js-sha3": "^0.8.0", + "lodash": "^4.17.15", + "mkdirp": "^1.0.4", + "prettier": "^2.3.1", + "ts-command-line-args": "^2.2.0", + "ts-essentials": "^7.0.1" }, "dependencies": { - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true + "@types/prettier": { + "version": "2.7.2", + "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.7.2.tgz", + "integrity": "sha512-KufADq8uQqo1pYKVIYzfKbJfBAc0sOeXqGbFaSpv8MRmC/zXgowNZmFcbngndGk922QDmOASEXUZCaY48gs4cg==" + }, + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "requires": { + "ms": "2.1.2" + } + }, + "glob": { + "version": "7.1.7", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz", + "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==", + "requires": { + "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" + } + }, + "js-sha3": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.8.0.tgz", + "integrity": "sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q==" + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "prettier": { + "version": "2.8.7", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.7.tgz", + "integrity": "sha512-yPngTo3aXUUmyuTjeTUT75txrf+aMh9FiD7q9ZE/i6r0bPb22g4FsE6Y338PQX1bmfy08i9QQCB7/rcUAVntfw==" + }, + "ts-essentials": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/ts-essentials/-/ts-essentials-7.0.3.tgz", + "integrity": "sha512-8+gr5+lqO3G84KdiTSMRLtuyJ+nTBVRKuCrK4lidMPdVeEp0uqC875uE5NMcaA7YYMN7XsNiFQuMvasF8HT/xQ==", + "requires": {} } } }, - "xdg-basedir": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-3.0.0.tgz", - "integrity": "sha1-SWsswQnsqNus/i3HK2A8F8WHCtQ=", - "dev": true - }, - "xhr": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/xhr/-/xhr-2.5.0.tgz", - "integrity": "sha512-4nlO/14t3BNUZRXIXfXe+3N6w3s1KoxcJUUURctd64BLRe67E4gRwp4PjywtDY72fXpZ1y6Ch0VZQRY/gMPzzQ==", - "requires": { - "global": "~4.3.0", - "is-function": "^1.0.1", - "parse-headers": "^2.0.0", - "xtend": "^4.0.0" - } - }, - "xhr-request": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/xhr-request/-/xhr-request-1.1.0.tgz", - "integrity": "sha512-Y7qzEaR3FDtL3fP30k9wO/e+FBnBByZeybKOhASsGP30NIkRAAkKD/sCnLvgEfAIEC1rcmK7YG8f4oEnIrrWzA==", - "requires": { - "buffer-to-arraybuffer": "^0.0.5", - "object-assign": "^4.1.1", - "query-string": "^5.0.1", - "simple-get": "^2.7.0", - "timed-out": "^4.0.1", - "url-set-query": "^1.0.0", - "xhr": "^2.0.4" - } - }, - "xhr-request-promise": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/xhr-request-promise/-/xhr-request-promise-0.1.3.tgz", - "integrity": "sha512-YUBytBsuwgitWtdRzXDDkWAXzhdGB8bYm0sSzMPZT7Z2MBjMSTHFsyCT1yCRATY+XC69DUrQraRAEgcoCRaIPg==", - "requires": { - "xhr-request": "^1.1.0" - } - }, - "xhr2-cookies": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/xhr2-cookies/-/xhr2-cookies-1.1.0.tgz", - "integrity": "sha1-fXdEnQmZGX8VXLc7I99yUF7YnUg=", - "requires": { - "cookiejar": "^2.1.1" - } - }, - "xmlhttprequest": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/xmlhttprequest/-/xmlhttprequest-1.8.0.tgz", - "integrity": "sha1-Z/4HXFwk/vOfnWX197f+dRcZaPw=", - "dev": true - }, - "xss": { - "version": "1.0.14", - "resolved": "https://registry.npmjs.org/xss/-/xss-1.0.14.tgz", - "integrity": "sha512-og7TEJhXvn1a7kzZGQ7ETjdQVS2UfZyTlsEdDOqvQF7GoxNfY+0YLCzBy1kPdsDDx4QuNAonQPddpsn6Xl/7sw==", - "dev": true, - "optional": true, - "requires": { - "commander": "^2.20.3", - "cssfilter": "0.0.10" - } - }, - "xtend": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==" + "typescript": { + "version": "4.9.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz", + "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", + "peer": true }, - "y18n": { + "typical": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", - "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==" - }, - "yaeti": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/yaeti/-/yaeti-0.0.6.tgz", - "integrity": "sha1-8m9ITXJoTPQr7ft2lwqhYI+/lXc=" - }, - "yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" + "resolved": "https://registry.npmjs.org/typical/-/typical-4.0.0.tgz", + "integrity": "sha512-VAH4IvQ7BDFYglMd7BPRDfLgxZZX4O4TFcRDA6EN5X7erNJJq+McIEp8np9aVtxrCJ6qx4GTYVfOWNjcqwZgRw==" }, - "yargs": { - "version": "13.3.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz", - "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==", - "requires": { - "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" - }, - "dependencies": { - "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==", - "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - } - } - } + "universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==" }, - "yargs-parser": { - "version": "13.1.2", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", - "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", + "utf-8-validate": { + "version": "5.0.10", + "resolved": "https://registry.npmjs.org/utf-8-validate/-/utf-8-validate-5.0.10.tgz", + "integrity": "sha512-Z6czzLq4u8fPOyx7TU6X3dvUZVvoJmxSQ+IcrlmagKhilxlhZgxPK6C5Jqbkw1IDUmFTM+cz9QDnnLTwDz/2gQ==", + "optional": true, + "peer": true, "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - }, - "dependencies": { - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" - } + "node-gyp-build": "^4.3.0" } }, - "yargs-unparser": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-2.0.0.tgz", - "integrity": "sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==", + "wordwrapjs": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/wordwrapjs/-/wordwrapjs-4.0.1.tgz", + "integrity": "sha512-kKlNACbvHrkpIw6oPeYDSmdCTu2hdMHoyXLTcUKala++lx5Y+wjJ/e474Jqv5abnVmwxw08DiTuHmw69lJGksA==", "requires": { - "camelcase": "^6.0.0", - "decamelize": "^4.0.0", - "flat": "^5.0.2", - "is-plain-obj": "^2.1.0" + "reduce-flatten": "^2.0.0", + "typical": "^5.2.0" }, "dependencies": { - "camelcase": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", - "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==" - }, - "decamelize": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz", - "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==" - }, - "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==" + "typical": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/typical/-/typical-5.2.0.tgz", + "integrity": "sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg==" } } }, - "yauzl": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", - "integrity": "sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=", - "dev": true, - "requires": { - "buffer-crc32": "~0.2.3", - "fd-slicer": "~1.1.0" - } - }, - "yn": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", - "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", - "dev": true - }, - "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==" + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" } } } diff --git a/ethereum/package.json b/ethereum/package.json index 96c9795d97..f89cdaf1b7 100644 --- a/ethereum/package.json +++ b/ethereum/package.json @@ -1,45 +1,16 @@ { "name": "@wormhole-foundation/contracts-ethereum", "version": "0.0.1", - "description": "", - "main": "networks.js", "devDependencies": { - "@chainsafe/truffle-plugin-abigen": "0.0.1", - "@openzeppelin/cli": "^2.8.2", - "@openzeppelin/contracts": "^4.3.1", - "@truffle/hdwallet-provider": "^1.7.0", - "chai": "^4.3.7", - "mocha": "^8.4.0", - "truffle": "5.8.4", - "truffle-flattener": "^1.6.0", - "truffle-plugin-verify": "^0.5.11", - "ts-node": "^10.9.1", - "typescript": "^4.9.5" + "@openzeppelin/contracts": "^4.3.1" }, "scripts": { - "build:core": "truffle compile", "build:forge": "forge build", - "build": "npm run build:core && npm run build:forge && typechain --target=ethers-v5 --out-dir=./ethers-contracts \"build-forge/!(test).sol/*.json\"", - "test": "npm run build:core && mkdir -p build/contracts && cp node_modules/@openzeppelin/contracts/build/contracts/* build/contracts/ && truffle test --network test --compile-none", - "migrate": "npm run build:core && mkdir -p build/contracts && cp node_modules/@openzeppelin/contracts/build/contracts/* build/contracts/ && truffle migrate --to 4 --compile-none", - "deploy-bridge-implementation-only": "npm run build:core && mkdir -p build/contracts && cp node_modules/@openzeppelin/contracts/build/contracts/* build/contracts/ && truffle migrate --f 6 --to 6 --compile-none", - "deploy-token-implementation-only": "npm run build:core && mkdir -p build/contracts && cp node_modules/@openzeppelin/contracts/build/contracts/* build/contracts/ && truffle migrate --f 7 --to 7 --compile-none", - "deploy-read-only": "npm run build:core && mkdir -p build/contracts && cp node_modules/@openzeppelin/contracts/build/contracts/* build/contracts/ && truffle migrate --f 1 --to 2 --compile-none", - "deploy-bridges-only": "npm run build:core && mkdir -p build/contracts && cp node_modules/@openzeppelin/contracts/build/contracts/* build/contracts/ && truffle migrate --f 3 --to 4 --compile-none", - "deploy_weth9": "npm run build:core && mkdir -p build/contracts && cp node_modules/@openzeppelin/contracts/build/contracts/* build/contracts/ && truffle migrate --f 9 --compile-none", - "verify": "patch -u -f node_modules/truffle-plugin-verify/constants.js -i truffle-verify-constants.patch; truffle run verify $npm_config_module@$npm_config_contract_address --network $npm_config_network", - "verify-token": "patch -u -f node_modules/truffle-plugin-verify/constants.js -i truffle-verify-constants.patch; truffle run verify BridgeToken@$npm_config_contract_address --forceConstructorArgs string:$npm_config_constructor_args --network $npm_config_network", - "abigen": "truffle run abigen", - "typecheck": "tsc --noEmit --skipLibCheck" + "build": "npm run build:forge && typechain --target=ethers-v5 --out-dir=./ethers-contracts \"build-forge/!(test).sol/*.json\"" }, - "author": "", - "license": "ISC", + "license": "Apache-2.0", "dependencies": { "@typechain/ethers-v5": "^10.2.0", - "dotenv": "^10.0.0", - "elliptic": "^6.5.2", - "jsonfile": "^4.0.0", - "truffle-hdwallet-provider-klaytn": "^1.4.2", "typechain": "^8.1.1" } } diff --git a/ethereum/remappings.txt b/ethereum/remappings.txt deleted file mode 100644 index cae24af897..0000000000 --- a/ethereum/remappings.txt +++ /dev/null @@ -1,5 +0,0 @@ -@openzeppelin/=node_modules/@openzeppelin/ -@solidity-parser/=node_modules/@solidity-parser/ -ds-test/=lib/forge-std/lib/ds-test/src/ -forge-std/=lib/forge-std/src/ -truffle/=node_modules/truffle/ diff --git a/ethereum/scripts/TokenABI.s.sol b/ethereum/scripts/TokenABI.s.sol deleted file mode 100644 index 07b86a8c35..0000000000 --- a/ethereum/scripts/TokenABI.s.sol +++ /dev/null @@ -1,40 +0,0 @@ -// SPDX-License-Identifier: Apache 2 - -pragma solidity ^0.8.0; - -import "forge-std/Script.sol"; -import "../contracts/Messages.sol"; -import "../contracts/Structs.sol"; -import "../contracts/bridge/Bridge.sol"; -import "../contracts/bridge/BridgeStructs.sol"; - -contract BridgeTest is Bridge, Script { - - // forge script scripts/TokenABI.s.sol -s "token_constructor_args(bytes, address)" 0x01000000020d00b7ba3819d44da891c74c583e29eb2222dd37dabbe7929bdbf4f2186bbcc721085d85d9906bbd8ca5ae62cdf30c7555dc4c57fd15f84a0161c27e91846203439c0102736caa697f6c17c2e6b0526291b0e6b4dec760a8494df7f69c93be3df1956224637ef962be9a28ef2dbeebe6bdb30311d9f2394966a1bb170634bd69913abfb200038c598c6e7c288c5dbb0f0008c38168d3f00ac8da7b3ad5420f30c8808c94a8a972c090d25da27558f1b8f8d30f894850d3139f4df92c8e8736be7803d397f33e0006649e6aca07694046fd94b5851ff3711783d4f4c8e0319f9de9431232cb153bce2ff2ac0f7bfad6f3db461571cd6ecffc99d7740a7b653d2f6a25908d821d9ca70107b31051fda4062585f80b291978a480cae6c9191d37a67bc2e1e61db8e97907fa71b5064d2ada48b4cd2f8c4def7fd50484004d1ceb3438a8f67ea071a31a6a88000af4842bbcd0fad425bd3b82bc3b1acefd72555fd1fbb49b71700ec2b41ac6309f20222e24c557f4ad6af35d96f1d4c38fb25177e027a22d2d071956d5d45985ba000bc0ebb4202aae662de331bce75d5e49ea97ac9a74df65006250c96ca9d82a16be6e78c577004a6059169aa7640436e1e5deef5d80bfa52784cf82f67bb368e066010d14586fa1f6f37d2c4d0eae78c42ecc3c9fc6bf17b3a57406382165d615cfb4a1651b979419c42e40a3f62fbe05eb3ff4bafac0af30c15a060e39d935776e54cc000e98d02eb76745301cb5fb12e6b0c7e3e9be347460ed51be360828c46be3bc40ef622f9234fb443b431db9e98980a7165b36eda10bd37abf6998156ebbdf96c4b6010fda503c3deb9c937709ab5742c4a44ed29f04664585c4c73568cd3b4863e1e2326b9cab4d1b139d9698585bb8abcbdc4072b3f98fdfe1b50fa35656c1451f862400106644b7697f41052d4d7c1685d342df4828c7ba7231f86c04476805271c58b4e30614ee43988072decec39f0400a48583f7b6d0fb109516385f73a64ce2a2b16501111cc03c23da18a3ed794cb944aa6d131306c243d13f207796c9ea9430a6c7da063b0ffbc75416c924b588ecc24c3d1c6136ea8e181a4f3d8c1d3d1831c7d4ae7301120b48f7b0c43cb43b4541d179f4bdfe6b9c83289b5b7cd494f6ea33eec062b36408606f4ad406365539d6b3a6b59b2eeae70baf0266c341fb476c8092d64ebd620062cb923534d80000000e000000000000000000000000796dff6d74f3e27060b71255fe517bfb23c93eed00000000000000560102000000000000000000000000765de816845861e75a25fca122bb6898b8b1282a000e12635553440000000000000000000000000000000000000000000000000000000043656c6f20446f6c6c6172000000000000000000000000000000000000000000 $(worm info contract mainnet ethereum TokenBridge) - function token_constructor_args(bytes calldata encodedVM, address tokenBridge) public { - Messages m = new Messages(); - Structs.VM memory vm = m.parseVM(encodedVM); - BridgeStructs.AssetMeta memory meta = parseAssetMeta(vm.payload); - token_constructor_args(bytes32ToString(meta.name), bytes32ToString(meta.symbol), meta.decimals, vm.sequence, tokenBridge, meta.tokenChain, meta.tokenAddress); - } - - // forge script scripts/TokenABI.s.sol -s "token_constructor_args(string,string,uint8,uint64,address,uint16,bytes32)" "Wrapped Ether" "WETH" 18 69201 0x796Dff6D74F3E27060B71255Fe517BFb23C93eed 2 0x000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2 - function token_constructor_args(string memory name, string memory symbol, uint8 decimals, uint64 sequence, address tokenBridge, uint16 tokenChain, bytes32 tokenAddress) view public { - bytes memory initialisationArgs = abi.encodeWithSelector( - TokenImplementation.initialize.selector, - name, - symbol, - decimals, - sequence, - - tokenBridge, - - tokenChain, - tokenAddress - ); - - bytes memory constructorArgs = abi.encode(tokenBridge, initialisationArgs); - - console.logBytes(constructorArgs); - } -} diff --git a/ethereum/scripts/deploy_batched_vaa_sender.js b/ethereum/scripts/deploy_batched_vaa_sender.js deleted file mode 100644 index 720c7a8520..0000000000 --- a/ethereum/scripts/deploy_batched_vaa_sender.js +++ /dev/null @@ -1,22 +0,0 @@ -const Wormhole = artifacts.require("Wormhole"); -const MockBatchedVAASender = artifacts.require("MockBatchedVAASender"); - -module.exports = async function(callback) { - try { - const accounts = await web3.eth.getAccounts(); - - await MockBatchedVAASender.deploy(); - - // devnet contract address should be deterministic - if (MockBatchedVAASender.address !== "0xf19a2a01b70519f67adb309a994ec8c69a967e8b") { - throw new Error("unexpected batched-VAA contract address"); - } - - const batchedSender = new web3.eth.Contract(MockBatchedVAASender.abi, MockBatchedVAASender.address); - await batchedSender.methods.setup(Wormhole.address).send({from: accounts[0]}); - - callback(); - } catch (e) { - callback(e); - } -}; diff --git a/ethereum/scripts/deploy_ccq_demo.js b/ethereum/scripts/deploy_ccq_demo.js deleted file mode 100644 index f7ce4e9e98..0000000000 --- a/ethereum/scripts/deploy_ccq_demo.js +++ /dev/null @@ -1,26 +0,0 @@ -const QueryDemo = artifacts.require("QueryDemo"); -module.exports = async function(callback) { - const accounts = await web3.eth.getAccounts(); - try { - // const ccqDemo = await QueryDemo.new( - // accounts[0], - // "0x0CBE91CF822c73C2315FB05100C2F714765d5c20", - // 5 - // ); - // const ccqDemo = await QueryDemo.new( - // accounts[0], - // "0xC7A204bDBFe983FCD8d8E61D02b475D4073fF97e", - // 23 - // ); - const ccqDemo = await QueryDemo.new( - accounts[0], - "0x6b9C8671cdDC8dEab9c719bB87cBd3e782bA6a35", - 24 - ); - console.log("tx: " + ccqDemo.transactionHash); - console.log("QueryDemo address: " + ccqDemo.address); - callback(); - } catch (e) { - callback(e); - } -}; diff --git a/ethereum/scripts/deploy_core_bridge.js b/ethereum/scripts/deploy_core_bridge.js deleted file mode 100644 index 7e8aea73ac..0000000000 --- a/ethereum/scripts/deploy_core_bridge.js +++ /dev/null @@ -1,11 +0,0 @@ -const Implementation = artifacts.require("Implementation"); -module.exports = async function(callback) { - try { - const bridge = (await Implementation.new()); - console.log('tx: ' + bridge.transactionHash); - console.log('Implementation address: ' + bridge.address); - callback(); - } catch (e) { - callback(e); - } -}; diff --git a/ethereum/scripts/deploy_core_bridge_shutdown.js b/ethereum/scripts/deploy_core_bridge_shutdown.js deleted file mode 100644 index b2d53f9483..0000000000 --- a/ethereum/scripts/deploy_core_bridge_shutdown.js +++ /dev/null @@ -1,11 +0,0 @@ -const Shutdown = artifacts.require("Shutdown"); -module.exports = async function(callback) { - try { - const contract = (await Shutdown.new()); - console.log('tx: ' + contract.transactionHash); - console.log('Shutdown address: ' + contract.address); - callback(); - } catch (e) { - callback(e); - } -}; diff --git a/ethereum/scripts/deploy_nft_bridge.js b/ethereum/scripts/deploy_nft_bridge.js deleted file mode 100644 index 4eb0ef82ae..0000000000 --- a/ethereum/scripts/deploy_nft_bridge.js +++ /dev/null @@ -1,11 +0,0 @@ -const BridgeImplementation = artifacts.require("NFTBridgeImplementation"); -module.exports = async function(callback) { - try { - const bridge = (await BridgeImplementation.new()); - console.log('tx: ' + bridge.transactionHash); - console.log('NFTBridge address: ' + bridge.address); - callback(); - } catch (e) { - callback(e); - } -}; diff --git a/ethereum/scripts/deploy_nft_bridge_shutdown.js b/ethereum/scripts/deploy_nft_bridge_shutdown.js deleted file mode 100644 index 2d67c8d7c1..0000000000 --- a/ethereum/scripts/deploy_nft_bridge_shutdown.js +++ /dev/null @@ -1,11 +0,0 @@ -const Shutdown = artifacts.require("NFTBridgeShutdown"); -module.exports = async function(callback) { - try { - const contract = (await Shutdown.new()); - console.log('tx: ' + contract.transactionHash); - console.log('NFTBridgeShutdown address: ' + contract.address); - callback(); - } catch (e) { - callback(e); - } -}; diff --git a/ethereum/scripts/deploy_test_token.js b/ethereum/scripts/deploy_test_token.js deleted file mode 100644 index 0bc93f25b2..0000000000 --- a/ethereum/scripts/deploy_test_token.js +++ /dev/null @@ -1,122 +0,0 @@ -// run this script with truffle exec - -const ERC20 = artifacts.require("ERC20PresetMinterPauser"); -const ERC721 = artifacts.require("ERC721PresetMinterPauserAutoId"); - -const interateToStandardTransactionCount = async () => { - const accounts = await web3.eth.getAccounts(); - - const transactionCount = await web3.eth.getTransactionCount( - accounts[0], - "latest" - ); - console.log( - "transaction count prior to test token deploys: ", - transactionCount - ); - - const transactionsToBurn = 32 - transactionCount; - for (let i = 0; i < transactionsToBurn; i++) { - await web3.eth.sendTransaction({ - to: accounts[0], - from: accounts[0], - value: 530, - }); - } - - const burnCount = await web3.eth.getTransactionCount(accounts[0], "latest"); - - console.log("transaction count after burn: ", burnCount); - - return Promise.resolve(); -}; - -module.exports = async function(callback) { - try { - const accounts = await web3.eth.getAccounts(); - - //Contracts deployed via this script deploy to an address which is determined by the number of transactions - //which have been performed on the chain. - //This is, however, variable. For example, if you optionally deploy contracts, more transactions are - //performed than if you didn't. - //In order to make sure the test contracts deploy to a location - //which is deterministic with regard to other environment conditions, we fire bogus transactions up to a safe - //count, currently 32, before deploying the test contracts. - await interateToStandardTransactionCount(); - - // deploy token contract - const tokenAddress = (await ERC20.new("Ethereum Test Token", "TKN")) - .address; - const token = new web3.eth.Contract(ERC20.abi, tokenAddress); - - console.log("Token deployed at: " + tokenAddress); - - // mint 1000 units - await token.methods.mint(accounts[0], "1000000000000000000000").send({ - from: accounts[0], - gas: 1000000, - }); - - const nftAddress = ( - await ERC721.new( - "Not an APE 🐒", - "APE🐒", - "https://cloudflare-ipfs.com/ipfs/QmeSjSinHpPnmXmspMjwiXyN6zS4E9zccariGR3jxcaWtq/" - ) - ).address; - const nft = new web3.eth.Contract(ERC721.abi, nftAddress); - await nft.methods.mint(accounts[0]).send({ - from: accounts[0], - gas: 1000000, - }); - await nft.methods.mint(accounts[0]).send({ - from: accounts[0], - gas: 1000000, - }); - - console.log("NFT deployed at: " + nftAddress); - - const MockWETH9 = await artifacts.require("MockWETH9"); - //WETH deploy - // deploy token contract - const wethAddress = (await MockWETH9.new()).address; - const wethToken = new web3.eth.Contract(MockWETH9.abi, wethAddress); - - console.log("WETH token deployed at: " + wethAddress); - - for (let idx = 2; idx < 11; idx++) { - await token.methods.mint(accounts[idx], "1000000000000000000000").send({ - from: accounts[0], - gas: 1000000, - }); - } - - // devnet WETH token address should be deterministic - if (wethAddress !== "0xDDb64fE46a91D46ee29420539FC25FD07c5FEa3E") { - throw new Error("unexpected WETH token address"); - } - - // deploy token contract - const accountantTokenAddress = ( - await ERC20.new("Accountant Test Token", "GA") - ).address; - const accountantToken = new web3.eth.Contract( - ERC20.abi, - accountantTokenAddress - ); - - console.log("Accountant test token deployed at: " + accountantTokenAddress); - - // mint 1000 units - await accountantToken.methods - .mint(accounts[9], "1000000000000000000000") - .send({ - from: accounts[0], - gas: 1000000, - }); - - callback(); - } catch (e) { - callback(e); - } -}; diff --git a/ethereum/scripts/deploy_token_bridge.js b/ethereum/scripts/deploy_token_bridge.js deleted file mode 100644 index bbc8f005f5..0000000000 --- a/ethereum/scripts/deploy_token_bridge.js +++ /dev/null @@ -1,11 +0,0 @@ -const BridgeImplementation = artifacts.require("BridgeImplementation"); -module.exports = async function(callback) { - try { - const bridge = (await BridgeImplementation.new()); - console.log('tx: ' + bridge.transactionHash); - console.log('Bridge address: ' + bridge.address); - callback(); - } catch (e) { - callback(e); - } -}; diff --git a/ethereum/scripts/deploy_token_bridge_shutdown.js b/ethereum/scripts/deploy_token_bridge_shutdown.js deleted file mode 100644 index 3ab532a204..0000000000 --- a/ethereum/scripts/deploy_token_bridge_shutdown.js +++ /dev/null @@ -1,11 +0,0 @@ -const Shutdown = artifacts.require("BridgeShutdown"); -module.exports = async function(callback) { - try { - const contract = (await Shutdown.new()); - console.log('tx: ' + contract.transactionHash); - console.log('Bridge address: ' + contract.address); - callback(); - } catch (e) { - callback(e); - } -}; diff --git a/ethereum/scripts/register_all_chains.js b/ethereum/scripts/register_all_chains.js deleted file mode 100644 index 5294ca7fa3..0000000000 --- a/ethereum/scripts/register_all_chains.js +++ /dev/null @@ -1,66 +0,0 @@ -// run this script with truffle exec - -const jsonfile = require("jsonfile"); -const TokenBridge = artifacts.require("TokenBridge"); -const NFTBridge = artifacts.require("NFTBridgeEntrypoint"); -const BridgeImplementationFullABI = jsonfile.readFileSync( - "../build/contracts/BridgeImplementation.json" -).abi; - -// The input parameter is a RegExp -// It returns an array of process.env variables satisfying the input RegExp -function getFilteredEnvs(regexp) { - const filteredEnvs = []; - for (const [key, value] of Object.entries(process.env)) { - if (regexp.test(key) && value) { - console.log("getFilteredEnvs: pushing " + key); - filteredEnvs.push(value); - } - } - return filteredEnvs; -} - -module.exports = async function(callback) { - try { - const accounts = await web3.eth.getAccounts(); - const tokenBridge = new web3.eth.Contract( - BridgeImplementationFullABI, - TokenBridge.address - ); - const nftBridge = new web3.eth.Contract( - BridgeImplementationFullABI, - NFTBridge.address - ); - - const TokenBridgeRegExp = new RegExp("REGISTER_.*_TOKEN_BRIDGE_VAA"); - const NFTBridgeRegExp = new RegExp("REGISTER_.*_NFT_BRIDGE_VAA"); - - const TokenBridgeVAAs = getFilteredEnvs(TokenBridgeRegExp); - const NFTBridgeVAAs = getFilteredEnvs(NFTBridgeRegExp); - - // Register the token bridge endpoints - console.log("Registering " + TokenBridgeVAAs.length + " Token Bridges..."); - for (const vaa of TokenBridgeVAAs) { - await tokenBridge.methods.registerChain("0x" + vaa).send({ - value: 0, - from: accounts[0], - gasLimit: 2000000, - }); - } - - // Register the NFT bridge endpoints - console.log("Registering " + NFTBridgeVAAs.length + " NFT Bridges..."); - for (const vaa of NFTBridgeVAAs) { - await nftBridge.methods.registerChain("0x" + vaa).send({ - value: 0, - from: accounts[0], - gasLimit: 2000000, - }); - } - console.log("Finished registering all Bridges..."); - - callback(); - } catch (e) { - callback(e); - } -}; diff --git a/ethereum/scripts/register_eth_chain.js b/ethereum/scripts/register_eth_chain.js deleted file mode 100644 index def0e35891..0000000000 --- a/ethereum/scripts/register_eth_chain.js +++ /dev/null @@ -1,27 +0,0 @@ -// run this script with truffle exec - -const jsonfile = require("jsonfile"); -const TokenBridge = artifacts.require("TokenBridge"); -const TokenImplementation = artifacts.require("TokenImplementation"); -const BridgeImplementationFullABI = jsonfile.readFileSync("../build/contracts/BridgeImplementation.json").abi -const ethTokenBridgeVAA = process.env.REGISTER_ETH_TOKEN_BRIDGE_VAA - -module.exports = async function (callback) { - try { - const accounts = await web3.eth.getAccounts(); - const initialized = new web3.eth.Contract(BridgeImplementationFullABI, TokenBridge.address); - - // Register the ETH endpoint - await initialized.methods.registerChain("0x" + ethTokenBridgeVAA).send({ - value: 0, - from: accounts[0], - gasLimit: 2000000 - }); - - callback(); - } - catch (e) { - callback(e); - } -} - diff --git a/ethereum/scripts/send_batched_vaa.js b/ethereum/scripts/send_batched_vaa.js deleted file mode 100644 index e30e0869c7..0000000000 --- a/ethereum/scripts/send_batched_vaa.js +++ /dev/null @@ -1,29 +0,0 @@ -const MockBatchedVAASender = artifacts.require("MockBatchedVAASender"); - -module.exports = async function(callback) { - try { - const accounts = await web3.eth.getAccounts(); - - const batchedSender = await MockBatchedVAASender.deployed() - - const contract = new web3.eth.Contract(MockBatchedVAASender.abi, batchedSender.address); - - const nonce = Math.round(Date.now() / 1000); - const nonceHex = nonce.toString(16) - - const res = await contract.methods.sendMultipleMessages( - "0x" + nonceHex, - "0x1", - 32 - ).send({ - value: 0, - from: accounts[0] - }); - - console.log('sendMultipleMessages response', res) - - callback(); - } catch (e) { - callback(e); - } -}; diff --git a/ethereum/sh/registerAllChainsOnTokenBridge.sh b/ethereum/sh/registerAllChainsOnTokenBridge.sh index 2857ffcb64..4d3272b817 100755 --- a/ethereum/sh/registerAllChainsOnTokenBridge.sh +++ b/ethereum/sh/registerAllChainsOnTokenBridge.sh @@ -6,10 +6,10 @@ # find a VAA for that chain in the CSV file (as a sanity check). Please be sure to generate # the registation VAA for this chain and add it to the file before running this script. -# MNEMONIC= ./sh/registerAllChainsOnTokenBridge.sh testnet blast +# MNEMONIC= ./sh/registerAllChainsOnTokenBridge.sh -if [ $# != 2 ]; then - echo "Usage: $0 testnet blast" >&2 +if [ $# != 3 ]; then + echo "Usage: $0 " >&2 exit 1 fi @@ -17,14 +17,18 @@ fi network=$1 chain=$2 +token_bridge_address=$3 -# Figure out which file of VAAs to use. +# Figure out which env file and VAA files to use. +env_file="" input_file="" case "$network" in mainnet) + env_file="env/.env.${chain}" input_file="../deployments/mainnet/tokenBridgeVAAs.csv" ;; testnet) + env_file="env/.env.${chain}.testnet" input_file="../deployments/testnet/tokenBridgeVAAs.csv" ;; *) echo "unknown network $network, must be testnet or mainnet" >&2 @@ -32,30 +36,10 @@ case "$network" in ;; esac -# Use the worm cli to get the chain parameters. -if ! command -v worm &> /dev/null -then - echo "worm binary could not be found. See installation instructions in clients/js/README.md" - exit 1 -fi - -chain_id=$(worm info chain-id "$chain") -if [ $? != 0 ]; then - echo -e "\nERROR: failed to look up the chain id for ${chain}, please make sure the worm binary is current!" >&2 - exit 1 -fi +# Source in the env file to get the RPC and forge arguments. +. ${env_file} -rpc_url=$(worm info rpc "$network" "$chain") -if [ $? != 0 ]; then - echo -e "\nERROR: failed to look up the RPC for ${chain}, please make sure the worm binary is current!" >&2 - exit 1 -fi - -token_bridge_address=$(worm info contract "$network" "$chain" TokenBridge) -if [ $? != 0 ]; then - echo -e "\nERROR: failed to look up the token bridge address for ${chain}, please make sure the worm binary is current!" >&2 - exit 1 -fi +[[ -z $RPC_URL ]] && { echo "Missing RPC_URL"; exit 1; } # Build one long string of all the vaas in the input file. vaas="" @@ -73,7 +57,7 @@ do vaa=`echo $line | cut -d, -f2` # Skip this chain. (We don't want to register this chain on itself.) - echo $tag | grep "(${chain_id})" > /dev/null + echo $tag | grep -i ${chain} > /dev/null if [ $? == 0 ]; then found_us=1 continue @@ -89,7 +73,7 @@ do done < "$input_file" if [ $found_us == 0 ]; then - echo "ERROR: failed to find chain id ${chain_id} in ${input_file}, something is not right!" >&2 + echo "ERROR: failed to find chain ${chain} in ${input_file}, something is not right!" >&2 exit 1 fi @@ -97,9 +81,9 @@ fi vaas="[${vaas}]" echo $vaas -echo "Submitting ${count} VAAs to ${network} ${chain} token bridge at address ${token_bridge_address} and rpc ${rpc_url}" +echo "Submitting ${count} VAAs to ${network} ${chain} token bridge at address ${token_bridge_address} and rpc ${RPC_URL}" forge script ./forge-scripts/RegisterChainsTokenBridge.s.sol:RegisterChainsTokenBridge \ --sig "run(address,bytes[])" $token_bridge_address $vaas \ - --rpc-url $rpc_url \ + --rpc-url $RPC_URL \ --private-key $MNEMONIC \ - --broadcast + --broadcast ${FORGE_ARGS} diff --git a/ethereum/simulate_upgrade b/ethereum/simulate_upgrade index 8f43aa34be..9af92029a6 100755 --- a/ethereum/simulate_upgrade +++ b/ethereum/simulate_upgrade @@ -116,25 +116,31 @@ case "$module" in bridge|core) MODULE=Core if [[ $shutdown = true ]]; then - SCRIPT="scripts/deploy_core_bridge_shutdown.js" + SCRIPT="DeployCoreShutdown.s.sol:DeployCoreShutdown" + SOLFILE="DeployCoreShutdown.s.sol" else - SCRIPT="scripts/deploy_core_bridge.js" + SCRIPT="DeployCoreImplementationOnly.s.sol:DeployCoreImplementationOnly" + SOLFILE="DeployCoreImplementationOnly.s.sol" fi ;; token_bridge) MODULE=TokenBridge if [[ $shutdown = true ]]; then - SCRIPT="scripts/deploy_token_bridge_shutdown.js" + SCRIPT="DeployTokenBridgeShutdown.s.sol:DeployTokenBridgeShutdown" + SOLFILE="DeployTokenBridgeShutdown.s.sol" else - SCRIPT="scripts/deploy_token_bridge.js" + SCRIPT="DeployTokenBridgeImplementationOnly.s.sol:DeployTokenBridgeImplementationOnly" + SOLFILE="DeployTokenBridgeImplementationOnly.s.sol" fi ;; nft_bridge) MODULE=NFTBridge if [[ $shutdown = true ]]; then - SCRIPT="scripts/deploy_nft_bridge_shutdown.js" + SCRIPT="DeployNFTBridgeShutdown.s.sol:DeployNFTBridgeShutdown" + SOLFILE="DeployNFTBridgeShutdown.s.sol" else - SCRIPT="scripts/deploy_nft_bridge.js" + SCRIPT="DeployNFTBridgeImplementationOnly.s.sol:DeployNFTBridgeImplementationOnly" + SOLFILE="DeployNFTBridgeImplementationOnly.s.sol" fi ;; *) echo "unknown module $module" >&2 @@ -144,6 +150,8 @@ esac CONTRACT=$(worm info contract mainnet "$chain_name" "$MODULE") +EVM_CHAIN_ID=$(printf "%d" $(curl http://localhost:8545/ -X POST -H "Content-Type: application/json" --data '{"method":"eth_chainId","params":[],"id":1,"jsonrpc":"2.0"}' -s | jq -r .result)) + # Step 1) Figure out the contract address depending on the flags -- either use # an address passed in as an argument, or use the most recent contract in the repo. if [[ -n "$address" ]]; then @@ -154,8 +162,14 @@ else build_output=$(npm run build) || ( echo "$build_output" && exit 1 ) fi printf "⬆️ Deploying implementation..." - deploy_output=$(npx truffle exec $SCRIPT --network development) || ( echo "$deploy_output" && exit 1 ) - new_implementation=$(echo "$deploy_output" | grep "address:" | cut -d' ' -f3) + forge script ./forge-scripts/${SCRIPT} \ + --rpc-url "$RPC" \ + --private-key "0x4f3edf983ac636a65a842ce7c78d9aa706d3b113bce9c46f30d7d21715b23b1d" \ + --broadcast \ + --silent + returnInfo=$(cat ./broadcast/${SOLFILE}/$EVM_CHAIN_ID/run-latest.json) + # Extract the address values from 'returnInfo' + new_implementation=$(jq -r '.returns.deployedAddress.value' <<< "$returnInfo") fi printf " %s\n" "$new_implementation" diff --git a/ethereum/test/bridge.js b/ethereum/test/bridge.js deleted file mode 100644 index cfe3b30e88..0000000000 --- a/ethereum/test/bridge.js +++ /dev/null @@ -1,1580 +0,0 @@ -const jsonfile = require('jsonfile'); -const elliptic = require('elliptic'); -const BigNumber = require('bignumber.js'); - -const Wormhole = artifacts.require("Wormhole"); -const TokenBridge = artifacts.require("TokenBridge"); -const BridgeImplementation = artifacts.require("BridgeImplementation"); -const TokenImplementation = artifacts.require("TokenImplementation"); -const FeeToken = artifacts.require("FeeToken"); -const MockBridgeImplementation = artifacts.require("MockBridgeImplementation"); -const MockTokenBridgeIntegration = artifacts.require("MockTokenBridgeIntegration"); -const MockWETH9 = artifacts.require("MockWETH9"); - -const testSigner1PK = "cfb12303a19cde580bb4dd771639b0d26bc68353645571a8cff516ab2ee113a0"; -const testSigner2PK = "892330666a850761e7370376430bb8c2aa1494072d3bfeaed0c4fa3d5a9135fe"; - -const WormholeImplementationFullABI = jsonfile.readFileSync("build/contracts/Implementation.json").abi -const BridgeImplementationFullABI = jsonfile.readFileSync("build/contracts/BridgeImplementation.json").abi -const TokenImplementationFullABI = jsonfile.readFileSync("build/contracts/TokenImplementation.json").abi - -const actionContractUpgrade = "02" -const actionRecoverChainId = "03" - -const fakeChainId = 1337; -const fakeEvmChainId = 10001; - -let lastDeployed; - -contract("Bridge", function () { - const testSigner1 = web3.eth.accounts.privateKeyToAccount(testSigner1PK); - const testSigner2 = web3.eth.accounts.privateKeyToAccount(testSigner2PK); - const testChainId = "2"; - const testEvmChainId = "1337"; - const testFinality = "1"; - const testGovernanceChainId = "1"; - const testGovernanceContract = "0x0000000000000000000000000000000000000000000000000000000000000004"; - let WETH = process.env.BRIDGE_INIT_WETH; - const testForeignChainId = "1"; - const testForeignBridgeContract = "0x000000000000000000000000000000000000000000000000000000000000ffff"; - const testBridgedAssetChain = "0001"; - const testBridgedAssetAddress = "000000000000000000000000b7a2211e8165943192ad04f5dd21bedc29ff003e"; - - - it("should be initialized with the correct signers and values", async function () { - const initialized = new web3.eth.Contract(BridgeImplementationFullABI, TokenBridge.address); - - const weth = await initialized.methods.WETH().call(); - assert.equal(weth, WETH); - - const tokenImplentation = await initialized.methods.tokenImplementation().call(); - assert.equal(tokenImplentation, TokenImplementation.address); - - // test beacon functionality - const beaconImplementation = await initialized.methods.implementation().call(); - assert.equal(beaconImplementation, TokenImplementation.address); - - // chain id - const chainId = await initialized.methods.chainId().call(); - assert.equal(chainId, testChainId); - - // evm chain id - const evmChainId = await initialized.methods.evmChainId().call(); - assert.equal(evmChainId, testEvmChainId); - - // finality - const finality = await initialized.methods.finality().call(); - assert.equal(finality, testFinality); - - // governance - const governanceChainId = await initialized.methods.governanceChainId().call(); - assert.equal(governanceChainId, testGovernanceChainId); - const governanceContract = await initialized.methods.governanceContract().call(); - assert.equal(governanceContract, testGovernanceContract); - }) - - it("should register a foreign bridge implementation correctly", async function () { - const initialized = new web3.eth.Contract(BridgeImplementationFullABI, TokenBridge.address); - const accounts = await web3.eth.getAccounts(); - - let data = [ - "0x", - "000000000000000000000000000000000000000000546f6b656e427269646765", - "01", - "0000", - web3.eth.abi.encodeParameter("uint16", testForeignChainId).substring(2 + (64 - 4)), - web3.eth.abi.encodeParameter("bytes32", testForeignBridgeContract).substring(2), - ].join('') - - const vm = await signAndEncodeVM( - 1, - 1, - testGovernanceChainId, - testGovernanceContract, - 0, - data, - [ - testSigner1PK - ], - 0, - 0 - ); - - - let before = await initialized.methods.bridgeContracts(testForeignChainId).call(); - - assert.equal(before, "0x0000000000000000000000000000000000000000000000000000000000000000"); - - await initialized.methods.registerChain("0x" + vm).send({ - value: 0, - from: accounts[0], - gasLimit: 2000000 - }); - - let after = await initialized.methods.bridgeContracts(testForeignChainId).call(); - - assert.equal(after, testForeignBridgeContract); - }) - - it("should accept a valid upgrade", async function () { - const initialized = new web3.eth.Contract(BridgeImplementationFullABI, TokenBridge.address); - const accounts = await web3.eth.getAccounts(); - - const mock = await MockBridgeImplementation.new(); - - let data = [ - "0x", - "000000000000000000000000000000000000000000546f6b656e427269646765", - "02", - web3.eth.abi.encodeParameter("uint16", testChainId).substring(2 + (64 - 4)), - web3.eth.abi.encodeParameter("address", mock.address).substring(2), - ].join('') - - const vm = await signAndEncodeVM( - 1, - 1, - testGovernanceChainId, - testGovernanceContract, - 0, - data, - [ - testSigner1PK - ], - 0, - 0 - ); - - let before = await web3.eth.getStorageAt(TokenBridge.address, "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc"); - - assert.equal(BigInt(before), BigInt(BridgeImplementation.address)); - - await initialized.methods.upgrade("0x" + vm).send({ - value: 0, - from: accounts[0], - gasLimit: 2000000 - }); - - let after = await web3.eth.getStorageAt(TokenBridge.address, "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc"); - - assert.equal(BigInt(after), BigInt(mock.address)); - - const mockImpl = new web3.eth.Contract(MockBridgeImplementation.abi, TokenBridge.address); - - let isUpgraded = await mockImpl.methods.testNewImplementationActive().call(); - - assert.ok(isUpgraded); - lastDeployed = mock; - }) - - it("bridged tokens should only be mint- and burn-able by owner", async function () { - const accounts = await web3.eth.getAccounts(); - - // initialize our template token contract - const token = new web3.eth.Contract(TokenImplementation.abi, TokenImplementation.address); - - await token.methods.initialize( - "TestToken", - "TT", - 18, - 0, - - accounts[0], - - 0, - "0x0" - ).send({ - value: 0, - from: accounts[0], - gasLimit: 2000000 - }); - - await token.methods.mint(accounts[0], 10).send({ - from: accounts[0], - gasLimit: 2000000 - }); - - await token.methods.burn(accounts[0], 5).send({ - from: accounts[0], - gasLimit: 2000000 - }); - - let failed = false - try { - await token.methods.mint(accounts[0], 10).send({ - from: accounts[1], - gasLimit: 2000000 - }); - } catch (e) { - failed = true - } - assert.ok(failed) - - failed = false - try { - await token.methods.burn(accounts[0], 5).send({ - from: accounts[1], - gasLimit: 2000000 - }); - } catch (e) { - failed = true - } - assert.ok(failed) - - await token.methods.burn(accounts[0], 5).send({ - from: accounts[0], - gasLimit: 2000000 - }); - }) - - it("should attest a token correctly", async function () { - const accounts = await web3.eth.getAccounts(); - - const initialized = new web3.eth.Contract(BridgeImplementationFullABI, TokenBridge.address); - - await initialized.methods.attestToken(TokenImplementation.address, "234").send({ - value: 0, - from: accounts[0], - gasLimit: 2000000 - }); - - const wormhole = new web3.eth.Contract(WormholeImplementationFullABI, Wormhole.address); - - const log = (await wormhole.getPastEvents('LogMessagePublished', { - fromBlock: 'latest' - }))[0].returnValues - - assert.equal(log.sender, TokenBridge.address) - - assert.equal(log.payload.length - 2, 200); - - // payload id - assert.equal(log.payload.substr(2, 2), "02"); - - // token address - assert.equal(log.payload.substr(4, 64), web3.eth.abi.encodeParameter("address", TokenImplementation.address).substring(2)); - - // chain id - assert.equal(log.payload.substr(68, 4), web3.eth.abi.encodeParameter("uint16", testChainId).substring(2 + 64 - 4)) - - // decimals - assert.equal(log.payload.substr(72, 2), web3.eth.abi.encodeParameter("uint8", 18).substring(2 + 64 - 2)) - - // symbol (TT) - assert.equal(log.payload.substr(74, 64), "5454000000000000000000000000000000000000000000000000000000000000") - - // name (TestToken) - assert.equal(log.payload.substr(138, 64), "54657374546f6b656e0000000000000000000000000000000000000000000000") - }) - - it("should correctly deploy a wrapped asset for a token attestation", async function () { - const initialized = new web3.eth.Contract(BridgeImplementationFullABI, TokenBridge.address); - const accounts = await web3.eth.getAccounts(); - - const data = "0x02" + - // tokenAddress - testBridgedAssetAddress + - // tokenchain - testBridgedAssetChain + - // decimals - "12" + - // symbol - "5454000000000000000000000000000000000000000000000000000000000000" + - // name - "54657374546f6b656e0000000000000000000000000000000000000000000000"; - - const vm = await signAndEncodeVM( - 0, - 0, - testForeignChainId, - testForeignBridgeContract, - 0, - data, - [ - testSigner1PK - ], - 0, - 0 - ); - - await initialized.methods.createWrapped("0x" + vm).send({ - value: 0, - from: accounts[0], - gasLimit: 2000000 - }); - - const wrappedAddress = await initialized.methods.wrappedAsset("0x0001", "0x000000000000000000000000b7a2211e8165943192ad04f5dd21bedc29ff003e").call(); - - assert.ok(await initialized.methods.isWrappedAsset(wrappedAddress).call()) - - const initializedWrappedAsset = new web3.eth.Contract(TokenImplementation.abi, wrappedAddress); - - const symbol = await initializedWrappedAsset.methods.symbol().call(); - assert.equal(symbol, "TT"); - - const name = await initializedWrappedAsset.methods.name().call(); - assert.equal(name, "TestToken"); - - const decimals = await initializedWrappedAsset.methods.decimals().call(); - assert.equal(decimals, 18); - - const chainId = await initializedWrappedAsset.methods.chainId().call(); - assert.equal(chainId, 1); - - const nativeContract = await initializedWrappedAsset.methods.nativeContract().call(); - assert.equal(nativeContract, "0x000000000000000000000000b7a2211e8165943192ad04f5dd21bedc29ff003e"); - }) - - it("should correctly update a wrapped asset for a token attestation", async function () { - const initialized = new web3.eth.Contract(BridgeImplementationFullABI, TokenBridge.address); - const accounts = await web3.eth.getAccounts(); - - const data = "0x02" + - // tokenAddress - testBridgedAssetAddress + - // tokenchain - testBridgedAssetChain + - // decimals - "12" + - // symbol - "5555000000000000000000000000000000000000000000000000000000000000" + - // name - "5472656500000000000000000000000000000000000000000000000000000000"; - - let vm = await signAndEncodeVM( - 0, - 0, - testForeignChainId, - testForeignBridgeContract, - 0, - data, - [ - testSigner1PK - ], - 0, - 0 - ); - - let failed = false; - try { - await initialized.methods.updateWrapped("0x" + vm).send({ - value: 0, - from: accounts[0], - gasLimit: 2000000 - }); - } catch (error) { - assert.include(error.message, "revert current metadata is up to date") - failed = true - } - assert.ok(failed) - - vm = await signAndEncodeVM( - 0, - 0, - testForeignChainId, - testForeignBridgeContract, - 1, - data, - [ - testSigner1PK - ], - 0, - 0 - ); - - await initialized.methods.updateWrapped("0x" + vm).send({ - value: 0, - from: accounts[0], - gasLimit: 2000000 - }); - - const wrappedAddress = await initialized.methods.wrappedAsset("0x0001", "0x000000000000000000000000b7a2211e8165943192ad04f5dd21bedc29ff003e").call(); - - assert.ok(await initialized.methods.isWrappedAsset(wrappedAddress).call()) - - const initializedWrappedAsset = new web3.eth.Contract(TokenImplementation.abi, wrappedAddress); - - const symbol = await initializedWrappedAsset.methods.symbol().call(); - assert.equal(symbol, "UU"); - - const name = await initializedWrappedAsset.methods.name().call(); - assert.equal(name, "Tree"); - - const decimals = await initializedWrappedAsset.methods.decimals().call(); - assert.equal(decimals, 18); - - const chainId = await initializedWrappedAsset.methods.chainId().call(); - assert.equal(chainId, 1); - - const nativeContract = await initializedWrappedAsset.methods.nativeContract().call(); - assert.equal(nativeContract, "0x000000000000000000000000b7a2211e8165943192ad04f5dd21bedc29ff003e"); - }) - - it("should deposit and log transfers correctly", async function () { - const accounts = await web3.eth.getAccounts(); - const amount = "1000000000000000000"; - const fee = "100000000000000000"; - - // mint and approve tokens - const token = new web3.eth.Contract(TokenImplementation.abi, TokenImplementation.address); - await token.methods.mint(accounts[0], amount).send({ - value: 0, - from: accounts[0], - gasLimit: 2000000 - }); - await token.methods.approve(TokenBridge.address, amount).send({ - value: 0, - from: accounts[0], - gasLimit: 2000000 - }); - - // deposit tokens - const initialized = new web3.eth.Contract(BridgeImplementationFullABI, TokenBridge.address); - - const accountBalanceBefore = await token.methods.balanceOf(accounts[0]).call(); - const bridgeBalanceBefore = await token.methods.balanceOf(TokenBridge.address).call(); - - assert.equal(accountBalanceBefore.toString(10), amount); - assert.equal(bridgeBalanceBefore.toString(10), "0"); - - await initialized.methods.transferTokens( - TokenImplementation.address, - amount, - "10", - "0x000000000000000000000000b7a2211e8165943192ad04f5dd21bedc29ff003e", - fee, - "234" - ).send({ - value: 0, - from: accounts[0], - gasLimit: 2000000 - }); - - const accountBalanceAfter = await token.methods.balanceOf(accounts[0]).call(); - const bridgeBalanceAfter = await token.methods.balanceOf(TokenBridge.address).call(); - - assert.equal(accountBalanceAfter.toString(10), "0"); - assert.equal(bridgeBalanceAfter.toString(10), amount); - - // check transfer log - const wormhole = new web3.eth.Contract(WormholeImplementationFullABI, Wormhole.address); - const log = (await wormhole.getPastEvents('LogMessagePublished', { - fromBlock: 'latest' - }))[0].returnValues - - assert.equal(log.sender, TokenBridge.address) - - assert.equal(log.payload.length - 2, 266); - - // payload id - assert.equal(log.payload.substr(2, 2), "01"); - - // amount - assert.equal(log.payload.substr(4, 64), web3.eth.abi.encodeParameter("uint256", new BigNumber(amount).div(1e10).toString()).substring(2)); - - // token - assert.equal(log.payload.substr(68, 64), web3.eth.abi.encodeParameter("address", TokenImplementation.address).substring(2)); - - // chain id - assert.equal(log.payload.substr(132, 4), web3.eth.abi.encodeParameter("uint16", testChainId).substring(2 + 64 - 4)) - - // to - assert.equal(log.payload.substr(136, 64), "000000000000000000000000b7a2211e8165943192ad04f5dd21bedc29ff003e"); - - // to chain id - assert.equal(log.payload.substr(200, 4), web3.eth.abi.encodeParameter("uint16", 10).substring(2 + 64 - 4)) - - // fee - assert.equal(log.payload.substr(204, 64), web3.eth.abi.encodeParameter("uint256", new BigNumber(fee).div(1e10).toString()).substring(2)) - }) - - it("should deposit and log fee token transfers correctly", async function () { - const accounts = await web3.eth.getAccounts(); - const mintAmount = "10000000000000000000"; - const amount = "1000000000000000000"; - const fee = "100000000000000000"; - - // mint and approve tokens - const deployFeeToken = await FeeToken.new(); - const token = new web3.eth.Contract(FeeToken.abi, deployFeeToken.address); - await token.methods.initialize( - "Test", - "TST", - "18", - "123", - accounts[0], - "0", - "0x0000000000000000000000000000000000000000000000000000000000000000" - ).send({ - value: 0, - from: accounts[0], - gasLimit: 2000000 - }); - await token.methods.mint(accounts[0], mintAmount).send({ - value: 0, - from: accounts[0], - gasLimit: 2000000 - }); - await token.methods.approve(TokenBridge.address, mintAmount).send({ - value: 0, - from: accounts[0], - gasLimit: 2000000 - }); - - // deposit tokens - const initialized = new web3.eth.Contract(BridgeImplementationFullABI, TokenBridge.address); - - const bridgeBalanceBefore = await token.methods.balanceOf(TokenBridge.address).call(); - - assert.equal(bridgeBalanceBefore.toString(10), "0"); - - await initialized.methods.transferTokens( - deployFeeToken.address, - amount, - "10", - "0x000000000000000000000000b7a2211e8165943192ad04f5dd21bedc29ff003e", - fee, - "234" - ).send({ - value: 0, - from: accounts[0], - gasLimit: 2000000 - }); - - const bridgeBalanceAfter = await token.methods.balanceOf(TokenBridge.address).call(); - - let feeAmount = new BigNumber(amount).times(9).div(10) - - assert.equal(bridgeBalanceAfter.toString(10), feeAmount); - - // check transfer log - const wormhole = new web3.eth.Contract(WormholeImplementationFullABI, Wormhole.address); - const log = (await wormhole.getPastEvents('LogMessagePublished', { - fromBlock: 'latest' - }))[0].returnValues - - assert.equal(log.sender, TokenBridge.address) - - assert.equal(log.payload.length - 2, 266); - - // payload id - assert.equal(log.payload.substr(2, 2), "01"); - - // amount - assert.equal(log.payload.substr(4, 64), web3.eth.abi.encodeParameter("uint256", feeAmount.div(1e10).toString()).substring(2)); - - // token - assert.equal(log.payload.substr(68, 64), web3.eth.abi.encodeParameter("address", deployFeeToken.address).substring(2)); - - // chain id - assert.equal(log.payload.substr(132, 4), web3.eth.abi.encodeParameter("uint16", testChainId).substring(2 + 64 - 4)) - - // to - assert.equal(log.payload.substr(136, 64), "000000000000000000000000b7a2211e8165943192ad04f5dd21bedc29ff003e"); - - // to chain id - assert.equal(log.payload.substr(200, 4), web3.eth.abi.encodeParameter("uint16", 10).substring(2 + 64 - 4)) - - // fee - assert.equal(log.payload.substr(204, 64), web3.eth.abi.encodeParameter("uint256", new BigNumber(fee).div(1e10).toString()).substring(2)) - }) - - it("should transfer out locked assets for a valid transfer vm", async function () { - const accounts = await web3.eth.getAccounts(); - const amount = "1000000000000000000"; - const sequence = 1697; - - const token = new web3.eth.Contract(TokenImplementation.abi, TokenImplementation.address); - const initialized = new web3.eth.Contract(BridgeImplementationFullABI, TokenBridge.address); - - - const accountBalanceBefore = await token.methods.balanceOf(accounts[0]).call(); - const bridgeBalanceBefore = await token.methods.balanceOf(TokenBridge.address).call(); - - assert.equal(accountBalanceBefore.toString(10), "0"); - assert.equal(bridgeBalanceBefore.toString(10), amount); - - const data = "0x" + - "01" + - // amount - web3.eth.abi.encodeParameter("uint256", new BigNumber(amount).div(1e10).toString()).substring(2) + - // tokenaddress - web3.eth.abi.encodeParameter("address", TokenImplementation.address).substr(2) + - // tokenchain - web3.eth.abi.encodeParameter("uint16", testChainId).substring(2 + (64 - 4)) + - // receiver - web3.eth.abi.encodeParameter("address", accounts[0]).substr(2) + - // receiving chain - web3.eth.abi.encodeParameter("uint16", testChainId).substring(2 + (64 - 4)) + - // fee - "0000000000000000000000000000000000000000000000000000000000000000"; - - const vm = await signAndEncodeVM( - 0, - 0, - testForeignChainId, - testForeignBridgeContract, - sequence, - data, - [ - testSigner1PK - ], - 0, - 0 - ); - - const tx = await initialized.methods.completeTransfer("0x" + vm).send({ - value: 0, - from: accounts[0], - gasLimit: 2000000 - }); - - const accountBalanceAfter = await token.methods.balanceOf(accounts[0]).call(); - const bridgeBalanceAfter = await token.methods.balanceOf(TokenBridge.address).call(); - - assert.equal(accountBalanceAfter.toString(10), amount); - assert.equal(bridgeBalanceAfter.toString(10), "0"); - - // verify the `TransferRedeemed` event - const event = tx.events.TransferRedeemed; - - assert.equal(event !== undefined, true); - assert.equal(event.returnValues.emitterChainId, testForeignChainId); - assert.equal(event.returnValues.emitterAddress, testForeignBridgeContract); - assert.equal(event.returnValues.sequence, sequence); - }) - - it("should deposit and log transfer with payload correctly", async function () { - const accounts = await web3.eth.getAccounts(); - const amount = "1000000000000000000"; - - // mint and approve tokens - const token = new web3.eth.Contract(TokenImplementation.abi, TokenImplementation.address); - await token.methods.mint(accounts[0], amount).send({ - value: 0, - from: accounts[0], - gasLimit: 2000000 - }); - await token.methods.approve(TokenBridge.address, amount).send({ - value: 0, - from: accounts[0], - gasLimit: 2000000 - }); - - // deposit tokens - const initialized = new web3.eth.Contract(BridgeImplementationFullABI, TokenBridge.address); - - const accountBalanceBefore = await token.methods.balanceOf(accounts[0]).call(); - const bridgeBalanceBefore = await token.methods.balanceOf(TokenBridge.address).call(); - - assert.equal(bridgeBalanceBefore.toString(10), "0"); - - const additionalPayload = "abc123" - - await initialized.methods.transferTokensWithPayload( - TokenImplementation.address, - amount, - "10", - "0x000000000000000000000000b7a2211e8165943192ad04f5dd21bedc29ff003e", - "234", - "0x" + additionalPayload - ).send({ - value: 0, - from: accounts[0], - gasLimit: 2000000 - }); - - const accountBalanceAfter = await token.methods.balanceOf(accounts[0]).call(); - const bridgeBalanceAfter = await token.methods.balanceOf(TokenBridge.address).call(); - - assert.equal(accountBalanceAfter.toString(10), new BigNumber(accountBalanceBefore).minus(amount).toString(10)); - assert.equal(bridgeBalanceAfter.toString(10), amount); - - // check transfer log - const wormhole = new web3.eth.Contract(WormholeImplementationFullABI, Wormhole.address); - const log = (await wormhole.getPastEvents('LogMessagePublished', { - fromBlock: 'latest' - }))[0].returnValues - - assert.equal(log.sender, TokenBridge.address) - - assert.equal(log.payload.length - 2 - additionalPayload.length, 266); - - // payload id - assert.equal(log.payload.substr(2, 2), "03"); - - // amount - assert.equal(log.payload.substr(4, 64), web3.eth.abi.encodeParameter("uint256", new BigNumber(amount).div(1e10).toString()).substring(2)); - - // token - assert.equal(log.payload.substr(68, 64), web3.eth.abi.encodeParameter("address", TokenImplementation.address).substring(2)); - - // chain id - assert.equal(log.payload.substr(132, 4), web3.eth.abi.encodeParameter("uint16", testChainId).substring(2 + 64 - 4)) - - // to - assert.equal(log.payload.substr(136, 64), "000000000000000000000000b7a2211e8165943192ad04f5dd21bedc29ff003e"); - - // to chain id - assert.equal(log.payload.substr(200, 4), web3.eth.abi.encodeParameter("uint16", 10).substring(2 + 64 - 4)) - - // from address - // the actual type is bytes32, but here we use 'address' encoding so that it gets left-padded as expected - assert.equal(log.payload.substr(204, 64), web3.eth.abi.encodeParameter("address", accounts[0]).substring(2)) - - // payload - assert.equal(log.payload.substr(268), additionalPayload) - }) - - it("should transfer out locked assets for a valid transfer with payload vm", async function () { - const accounts = await web3.eth.getAccounts(); - const amount = "1000000000000000000"; - const sequence = 1111; - - const token = new web3.eth.Contract(TokenImplementation.abi, TokenImplementation.address); - const initialized = new web3.eth.Contract(BridgeImplementationFullABI, TokenBridge.address); - - - const accountBalanceBefore = await token.methods.balanceOf(accounts[0]).call(); - const bridgeBalanceBefore = await token.methods.balanceOf(TokenBridge.address).call(); - - assert.equal(bridgeBalanceBefore.toString(10), amount); - - const data = "0x" + - "03" + - // amount - web3.eth.abi.encodeParameter("uint256", new BigNumber(amount).div(1e10).toString()).substring(2) + - // tokenaddress - web3.eth.abi.encodeParameter("address", TokenImplementation.address).substr(2) + - // tokenchain - web3.eth.abi.encodeParameter("uint16", testChainId).substring(2 + (64 - 4)) + - // receiver - web3.eth.abi.encodeParameter("address", accounts[0]).substr(2) + - // receiving chain - web3.eth.abi.encodeParameter("uint16", testChainId).substring(2 + (64 - 4)) + - // fee - "0000000000000000000000000000000000000000000000000000000000000000" + - // additional payload - "abc123"; - - const vm = await signAndEncodeVM( - 0, - 0, - testForeignChainId, - testForeignBridgeContract, - sequence, - data, - [ - testSigner1PK - ], - 0, - 0 - ); - - const tx = await initialized.methods.completeTransferWithPayload("0x" + vm).send({ - value: 0, - from: accounts[0], - gasLimit: 2000000 - }); - - const accountBalanceAfter = await token.methods.balanceOf(accounts[0]).call(); - const bridgeBalanceAfter = await token.methods.balanceOf(TokenBridge.address).call(); - - assert.equal(accountBalanceAfter.toString(10), new BigNumber(accountBalanceBefore).plus(amount).toString(10)); - assert.equal(bridgeBalanceAfter.toString(10), "0"); - - // verify the `TransferRedeemed` event - const event = tx.events.TransferRedeemed; - - assert.equal(event !== undefined, true); - assert.equal(event.returnValues.emitterChainId, testForeignChainId); - assert.equal(event.returnValues.emitterAddress, testForeignBridgeContract); - assert.equal(event.returnValues.sequence, sequence); - }) - - it("should mint bridged assets wrappers on transfer from another chain and handle fees correctly", async function () { - const accounts = await web3.eth.getAccounts(); - const amount = "1000000000000000000"; - const fee = "1000000000000000"; - - const initialized = new web3.eth.Contract(BridgeImplementationFullABI, TokenBridge.address); - - const wrappedAddress = await initialized.methods.wrappedAsset("0x" + testBridgedAssetChain, "0x" + testBridgedAssetAddress).call(); - const wrappedAsset = new web3.eth.Contract(TokenImplementation.abi, wrappedAddress); - - const totalSupply = await wrappedAsset.methods.totalSupply().call(); - assert.equal(totalSupply.toString(10), "0"); - - // we are using the asset where we created a wrapper in the previous test - const data = "0x" + - "01" + - // amount - web3.eth.abi.encodeParameter("uint256", new BigNumber(amount).div(1e10).toString()).substring(2) + - // tokenaddress - testBridgedAssetAddress + - // tokenchain - testBridgedAssetChain + - // receiver - web3.eth.abi.encodeParameter("address", accounts[0]).substr(2) + - // receiving chain - web3.eth.abi.encodeParameter("uint16", testChainId).substring(2 + (64 - 4)) + - // fee - web3.eth.abi.encodeParameter("uint256", new BigNumber(fee).div(1e10).toString()).substring(2); - - const vm = await signAndEncodeVM( - 0, - 0, - testForeignChainId, - testForeignBridgeContract, - 0, - data, - [ - testSigner1PK - ], - 0, - 0 - ); - - await initialized.methods.completeTransfer("0x" + vm).send({ - value: 0, - from: accounts[1], - gasLimit: 2000000 - }); - - const accountBalanceAfter = await wrappedAsset.methods.balanceOf(accounts[0]).call(); - const senderBalanceAfter = await wrappedAsset.methods.balanceOf(accounts[1]).call(); - const totalSupplyAfter = await wrappedAsset.methods.totalSupply().call(); - - assert.equal(accountBalanceAfter.toString(10), new BigNumber(amount).minus(fee).toString(10)); - assert.equal(senderBalanceAfter.toString(10), fee); - assert.equal(totalSupplyAfter.toString(10), amount); - - await wrappedAsset.methods.transfer(accounts[0], fee).send({ - value: 0, - from: accounts[1], - gasLimit: 2000000 - }); - }) - - it("should not allow a redemption from msg.sender other than 'to' on token bridge transfer with payload", async function () { - const accounts = await web3.eth.getAccounts(); - const amount = "1000000000000000000"; - - const initialized = new web3.eth.Contract(BridgeImplementationFullABI, TokenBridge.address); - - const wrappedAddress = await initialized.methods.wrappedAsset("0x" + testBridgedAssetChain, "0x" + testBridgedAssetAddress).call(); - const wrappedAsset = new web3.eth.Contract(TokenImplementation.abi, wrappedAddress); - - // we are using the asset where we created a wrapper in the previous test - const data = "0x" + - "03" + - // amount - web3.eth.abi.encodeParameter("uint256", new BigNumber(amount).div(1e10).toString()).substring(2) + - // tokenaddress - testBridgedAssetAddress + - // tokenchain - testBridgedAssetChain + - // receiver (must be self msg.sender) - web3.eth.abi.encodeParameter("address", accounts[0]).substr(2) + - // receiving chain - web3.eth.abi.encodeParameter("uint16", testChainId).substring(2 + (64 - 4)) + - // from address - web3.eth.abi.encodeParameter("address", accounts[2]).substring(2) + - // additional payload - web3.eth.abi.encodeParameter("address", accounts[1]).substr(2); - - const vm = await signAndEncodeVM( - 0, - 0, - testForeignChainId, - testForeignBridgeContract, - 1, - data, - [ - testSigner1PK - ], - 0, - 0 - ); - - let hadSenderError = false - try { - await initialized.methods.completeTransferWithPayload("0x" + vm).send({ - value: 0, - from: accounts[1], - gasLimit: 2000000 - }); - } catch (e) { - hadSenderError = e.message.includes('revert invalid sender') - } - assert.equal(hadSenderError, true) - }) - - it("should allow a redemption from msg.sender == 'to' on token bridge transfer with payload and check that sender recieves fee", async function () { - const accounts = await web3.eth.getAccounts(); - const amount = "1000000000000000000"; - - const initialized = new web3.eth.Contract(BridgeImplementationFullABI, TokenBridge.address); - - mock = (await MockTokenBridgeIntegration.new()).address; - const MockIntegration = new web3.eth.Contract(MockTokenBridgeIntegration.abi, mock); - await MockIntegration.methods.setup(TokenBridge.address).send({ - value: 0, - from: accounts[1], - gasLimit: 2000000 - }); - - const wrappedAddress = await initialized.methods.wrappedAsset("0x" + testBridgedAssetChain, "0x" + testBridgedAssetAddress).call(); - const wrappedAsset = new web3.eth.Contract(TokenImplementation.abi, wrappedAddress); - - const accountBalanceBefore = await wrappedAsset.methods.balanceOf(accounts[0]).call(); - const senderBalanceBefore = await wrappedAsset.methods.balanceOf(accounts[1]).call(); - const totalSupplyBefore = await wrappedAsset.methods.totalSupply().call(); - - // we are using the asset where we created a wrapper in the previous test - const data = "0x" + - "03" + - // amount - web3.eth.abi.encodeParameter("uint256", new BigNumber(amount).div(1e10).toString()).substring(2) + - // tokenaddress - testBridgedAssetAddress + - // tokenchain - testBridgedAssetChain + - // receiver - web3.eth.abi.encodeParameter("address", mock).substr(2) + - // receiving chain - web3.eth.abi.encodeParameter("uint16", testChainId).substring(2 + (64 - 4)) + - // from address - web3.eth.abi.encodeParameter("address", accounts[1]).substring(2) + - // additional payload - web3.eth.abi.encodeParameter("address", accounts[0]).substr(2); - - const vm = await signAndEncodeVM( - 0, - 0, - testForeignChainId, - testForeignBridgeContract, - 2, - data, - [ - testSigner1PK - ], - 0, - 0 - ); - - await MockIntegration.methods.completeTransferAndSwap("0x" + vm).send({ - value: 0, - from: accounts[1], - gasLimit: 2000000 - }); - - const accountBalanceAfter = await wrappedAsset.methods.balanceOf(accounts[0]).call(); - const totalSupplyAfter = await wrappedAsset.methods.totalSupply().call(); - - assert.equal(accountBalanceAfter.toString(10), new BigNumber(accountBalanceBefore).plus(amount).toString(10)); - assert.equal(totalSupplyAfter.toString(10), new BigNumber(totalSupplyBefore).plus(amount).toString(10)); - }) - - it("should burn bridged assets wrappers on transfer to another chain", async function () { - const accounts = await web3.eth.getAccounts(); - const initialized = new web3.eth.Contract(BridgeImplementationFullABI, TokenBridge.address); - const amount = "2000000000000000000"; - const wrappedFeesPaid = "0"; - - const wrappedAddress = await initialized.methods.wrappedAsset("0x" + testBridgedAssetChain, "0x" + testBridgedAssetAddress).call(); - const wrappedAsset = new web3.eth.Contract(TokenImplementation.abi, wrappedAddress); - - await wrappedAsset.methods.approve(TokenBridge.address, amount).send({ - value: 0, - from: accounts[0], - gasLimit: 2000000 - }); - - // deposit tokens - - const accountBalanceBefore = await wrappedAsset.methods.balanceOf(accounts[0]).call(); - - assert.equal(accountBalanceBefore.toString(10), amount); - - await initialized.methods.transferTokens( - wrappedAddress, - amount, - "11", - "0x000000000000000000000000b7a2211e8165943192ad04f5dd21bedc29ff003e", - "0", - "234" - ).send({ - value: 0, - from: accounts[0], - gasLimit: 2000000 - }); - - const accountBalanceAfter = await wrappedAsset.methods.balanceOf(accounts[0]).call(); - assert.equal(accountBalanceAfter.toString(10), "0"); - - const bridgeBalanceAfter = await wrappedAsset.methods.balanceOf(TokenBridge.address).call(); - assert.equal(bridgeBalanceAfter.toString(10), "0"); - - const totalSupplyAfter = await wrappedAsset.methods.totalSupply().call(); - assert.equal(totalSupplyAfter.toString(10), wrappedFeesPaid); - }) - - it("should handle ETH deposits correctly", async function () { - const accounts = await web3.eth.getAccounts(); - const amount = "100000000000000000"; - const fee = "10000000000000000"; - - // mint and approve tokens - WETH = (await MockWETH9.new()).address; - const token = new web3.eth.Contract(MockWETH9.abi, WETH); - - // set WETH contract - const mock = new web3.eth.Contract(MockBridgeImplementation.abi, TokenBridge.address); - mock.methods.testUpdateWETHAddress(WETH).send({ - from: accounts[0], - gasLimit: 2000000 - }); - - // deposit tokens - const initialized = new web3.eth.Contract(BridgeImplementationFullABI, TokenBridge.address); - - const totalWETHSupply = await token.methods.totalSupply().call(); - const bridgeBalanceBefore = await token.methods.balanceOf(TokenBridge.address).call(); - - assert.equal(totalWETHSupply.toString(10), "0"); - assert.equal(bridgeBalanceBefore.toString(10), "0"); - - await initialized.methods.wrapAndTransferETH( - "10", - "0x000000000000000000000000b7a2211e8165943192ad04f5dd21bedc29ff003e", - fee, - "234" - ).send({ - value: amount, - from: accounts[0], - gasLimit: 2000000 - }); - - const totalWETHSupplyAfter = await token.methods.totalSupply().call(); - const bridgeBalanceAfter = await token.methods.balanceOf(TokenBridge.address).call(); - - assert.equal(totalWETHSupplyAfter.toString(10), amount); - assert.equal(bridgeBalanceAfter.toString(10), amount); - - // check transfer log - const wormhole = new web3.eth.Contract(WormholeImplementationFullABI, Wormhole.address); - const log = (await wormhole.getPastEvents('LogMessagePublished', { - fromBlock: 'latest' - }))[0].returnValues - - assert.equal(log.sender, TokenBridge.address) - - assert.equal(log.payload.length - 2, 266); - - // payload id - assert.equal(log.payload.substr(2, 2), "01"); - - // amount - assert.equal(log.payload.substr(4, 64), web3.eth.abi.encodeParameter("uint256", new BigNumber(amount).div(1e10).toString()).substring(2)); - - // token - assert.equal(log.payload.substr(68, 64), web3.eth.abi.encodeParameter("address", WETH).substring(2)); - - // chain id - assert.equal(log.payload.substr(132, 4), web3.eth.abi.encodeParameter("uint16", testChainId).substring(2 + 64 - 4)) - - // to - assert.equal(log.payload.substr(136, 64), "000000000000000000000000b7a2211e8165943192ad04f5dd21bedc29ff003e"); - - // to chain id - assert.equal(log.payload.substr(200, 4), web3.eth.abi.encodeParameter("uint16", 10).substring(2 + 64 - 4)) - - // fee - assert.equal(log.payload.substr(204, 64), web3.eth.abi.encodeParameter("uint256", new BigNumber(fee).div(1e10).toString()).substring(2)) - }) - - it("should handle ETH withdrawals and fees correctly", async function () { - const accounts = await web3.eth.getAccounts(); - const amount = "100000000000000000"; - const fee = "50000000000000000"; - - const initialized = new web3.eth.Contract(BridgeImplementationFullABI, TokenBridge.address); - - const token = new web3.eth.Contract(MockWETH9.abi, WETH); - - const totalSupply = await token.methods.totalSupply().call(); - assert.equal(totalSupply.toString(10), amount); - - const feeRecipientBalanceBefore = await web3.eth.getBalance(accounts[0]); - const accountBalanceBefore = await web3.eth.getBalance(accounts[1]); - - // we are using the asset where we created a wrapper in the previous test - const data = "0x" + - "01" + - // amount - web3.eth.abi.encodeParameter("uint256", new BigNumber(amount).div(1e10).toString()).substring(2) + - // tokenaddress - web3.eth.abi.encodeParameter("address", WETH).substr(2) + - // tokenchain - web3.eth.abi.encodeParameter("uint16", testChainId).substring(2 + (64 - 4)) + - // receiver - web3.eth.abi.encodeParameter("address", accounts[1]).substr(2) + - // receiving chain - web3.eth.abi.encodeParameter("uint16", testChainId).substring(2 + (64 - 4)) + - // fee - web3.eth.abi.encodeParameter("uint256", new BigNumber(fee).div(1e10).toString()).substring(2); - - const vm = await signAndEncodeVM( - 0, - 0, - testForeignChainId, - testForeignBridgeContract, - 0, - data, - [ - testSigner1PK - ], - 0, - 0 - ); - - const transferTX = await initialized.methods.completeTransferAndUnwrapETH("0x" + vm).send({ - from: accounts[0], - gasLimit: 2000000 - }); - - const totalSupplyAfter = await token.methods.totalSupply().call(); - assert.equal(totalSupplyAfter.toString(10), "0"); - - const accountBalanceAfter = await web3.eth.getBalance(accounts[1]); - const feeRecipientBalanceAfter = await web3.eth.getBalance(accounts[0]); - - assert.equal((new BigNumber(accountBalanceAfter)).minus(accountBalanceBefore).toString(10), (new BigNumber(amount)).minus(fee).toString(10)) - assert.ok((new BigNumber(feeRecipientBalanceAfter)).gt(feeRecipientBalanceBefore)) - }) - - it("should handle ETH deposits with payload correctly", async function () { - const accounts = await web3.eth.getAccounts(); - const amount = "100000000000000000"; - - // mint and approve tokens - WETH = (await MockWETH9.new()).address; - const token = new web3.eth.Contract(MockWETH9.abi, WETH); - - // set WETH contract - const mock = new web3.eth.Contract(MockBridgeImplementation.abi, TokenBridge.address); - await mock.methods.testUpdateWETHAddress(WETH).send({ - from: accounts[0], - gasLimit: 2000000 - }); - - // deposit tokens - const initialized = new web3.eth.Contract(BridgeImplementationFullABI, TokenBridge.address); - - const totalWETHSupply = await token.methods.totalSupply().call(); - const bridgeBalanceBefore = await token.methods.balanceOf(TokenBridge.address).call(); - - assert.equal(totalWETHSupply.toString(10), "0"); - assert.equal(bridgeBalanceBefore.toString(10), "0"); - - const additionalPayload = "abc123" - - await initialized.methods.wrapAndTransferETHWithPayload( - "10", - "0x000000000000000000000000b7a2211e8165943192ad04f5dd21bedc29ff003e", - "234", - "0x" + additionalPayload - ).send({ - value: amount, - from: accounts[0], - gasLimit: 2000000 - }); - - const totalWETHSupplyAfter = await token.methods.totalSupply().call(); - const bridgeBalanceAfter = await token.methods.balanceOf(TokenBridge.address).call(); - - assert.equal(totalWETHSupplyAfter.toString(10), amount); - assert.equal(bridgeBalanceAfter.toString(10), amount); - - // check transfer log - const wormhole = new web3.eth.Contract(WormholeImplementationFullABI, Wormhole.address); - const log = (await wormhole.getPastEvents('LogMessagePublished', { - fromBlock: 'latest' - }))[0].returnValues - - assert.equal(log.sender, TokenBridge.address) - - assert.equal(log.payload.length - 2 - additionalPayload.length, 266); - - // payload id - assert.equal(log.payload.substr(2, 2), "03"); - - // amount - assert.equal(log.payload.substr(4, 64), web3.eth.abi.encodeParameter("uint256", new BigNumber(amount).div(1e10).toString()).substring(2)); - - // token - assert.equal(log.payload.substr(68, 64), web3.eth.abi.encodeParameter("address", WETH).substring(2)); - - // chain id - assert.equal(log.payload.substr(132, 4), web3.eth.abi.encodeParameter("uint16", testChainId).substring(2 + 64 - 4)) - - // to - assert.equal(log.payload.substr(136, 64), "000000000000000000000000b7a2211e8165943192ad04f5dd21bedc29ff003e"); - - // to chain id - assert.equal(log.payload.substr(200, 4), web3.eth.abi.encodeParameter("uint16", 10).substring(2 + 64 - 4)) - - // from address - assert.equal(log.payload.substr(204, 64), web3.eth.abi.encodeParameter("address", accounts[0]).substring(2)) - - // payload - assert.equal(log.payload.substr(268), additionalPayload) - }) - - it("should handle ETH withdrawals with payload correctly", async function () { - const accounts = await web3.eth.getAccounts(); - const amount = "100000000000000000"; - const fee = "0"; - - const initialized = new web3.eth.Contract(BridgeImplementationFullABI, TokenBridge.address); - - const token = new web3.eth.Contract(MockWETH9.abi, WETH); - - const totalSupply = await token.methods.totalSupply().call(); - assert.equal(totalSupply.toString(10), amount); - - const accountBalanceBefore = await web3.eth.getBalance(accounts[0]); - - // we are using the asset where we created a wrapper in the previous test - const data = "0x" + - "03" + - // amount - web3.eth.abi.encodeParameter("uint256", new BigNumber(amount).div(1e10).toString()).substring(2) + - // tokenaddress - web3.eth.abi.encodeParameter("address", WETH).substr(2) + - // tokenchain - web3.eth.abi.encodeParameter("uint16", testChainId).substring(2 + (64 - 4)) + - // receiver - web3.eth.abi.encodeParameter("address", accounts[0]).substr(2) + - // receiving chain - web3.eth.abi.encodeParameter("uint16", testChainId).substring(2 + (64 - 4)) + - // fee - web3.eth.abi.encodeParameter("uint256", new BigNumber(fee).toString()).substring(2) + - // additional payload - "abc123" - - const vm = await signAndEncodeVM( - 0, - 0, - testForeignChainId, - testForeignBridgeContract, - 0, - data, - [ - testSigner1PK - ], - 0, - 0 - ); - - const transferTX = await initialized.methods.completeTransferAndUnwrapETHWithPayload("0x" + vm).send({ - from: accounts[0], //must be same as receiver - gasLimit: 2000000 - }); - - const totalSupplyAfter = await token.methods.totalSupply().call(); - assert.equal(totalSupplyAfter.toString(10), "0"); - - const accountBalanceAfter = await web3.eth.getBalance(accounts[0]); - - assert.ok((new BigNumber(accountBalanceAfter)).gt(accountBalanceBefore)) - }) - - it("should revert on transfer out of a total of > max(uint64) tokens", async function () { - const accounts = await web3.eth.getAccounts(); - const supply = "184467440737095516160000000000"; - const firstTransfer = "1000000000000"; - - // mint and approve tokens - const token = new web3.eth.Contract(TokenImplementation.abi, TokenImplementation.address); - await token.methods.mint(accounts[0], supply).send({ - value: 0, - from: accounts[0], - gasLimit: 2000000 - }); - await token.methods.approve(TokenBridge.address, supply).send({ - value: 0, - from: accounts[0], - gasLimit: 2000000 - }); - - // deposit tokens - const initialized = new web3.eth.Contract(BridgeImplementationFullABI, TokenBridge.address); - - await initialized.methods.transferTokens( - TokenImplementation.address, - firstTransfer, - "10", - "0x000000000000000000000000b7a2211e8165943192ad04f5dd21bedc29ff003e", - "0", - "0" - ).send({ - value: 0, - from: accounts[0], - gasLimit: 2000000 - }); - - let failed = false; - try { - await initialized.methods.transferTokens( - TokenImplementation.address, - new BigNumber(supply).minus(firstTransfer).toString(10), - "10", - "0x000000000000000000000000b7a2211e8165943192ad04f5dd21bedc29ff003e", - "0", - "0" - ).send({ - value: 0, - from: accounts[0], - gasLimit: 2000000 - }); - } catch (error) { - assert.include(error.message, "revert transfer exceeds max outstanding bridged token amount") - failed = true - } - - assert.ok(failed) - }) - - it("should reject smart contract upgrades on forks", async function () { - const mockInitialized = new web3.eth.Contract(MockBridgeImplementation.abi, TokenBridge.address); - const initialized = new web3.eth.Contract(BridgeImplementationFullABI, TokenBridge.address); - const accounts = await web3.eth.getAccounts(); - - const mock = await MockBridgeImplementation.new(); - - const timestamp = 1000; - const nonce = 1001; - const emitterChainId = testGovernanceChainId; - const emitterAddress = testGovernanceContract - - // simulate a fork - await mockInitialized.methods.testOverwriteEVMChainId(fakeChainId, fakeEvmChainId).send({ - value: 0, - from: accounts[0], - gasLimit: 1000000 - }); - - const chainId = await initialized.methods.chainId().call(); - assert.equal(chainId, fakeChainId); - - const evmChainId = await initialized.methods.evmChainId().call(); - assert.equal(evmChainId, fakeEvmChainId); - - data = [ - "0x", - "000000000000000000000000000000000000000000546f6b656e427269646765", - // Action 1 (Contract Upgrade) - actionContractUpgrade, - // ChainID - web3.eth.abi.encodeParameter("uint16", testChainId).substring(2 + (64 - 4)), - // New Contract Address - web3.eth.abi.encodeParameter("address", mock.address).substring(2), - ].join('') - - const vm = await signAndEncodeVM( - timestamp, - nonce, - emitterChainId, - emitterAddress, - 0, - data, - [ - testSigner1PK, - ], - 0, - 0 - ); - - try { - await initialized.methods.upgrade("0x" + vm).send({ - value: 0, - from: accounts[0], - gasLimit: 1000000 - }); - - assert.fail("governance packet accepted") - } catch (e) { - assert.include(e.message, "revert invalid fork") - } - }) - - it("should allow recover chain ID governance packets forks", async function () { - const initialized = new web3.eth.Contract(BridgeImplementationFullABI, TokenBridge.address); - const accounts = await web3.eth.getAccounts(); - - const timestamp = 1000; - const nonce = 1001; - const emitterChainId = testGovernanceChainId; - const emitterAddress = testGovernanceContract - - const chainId = await initialized.methods.chainId().call(); - assert.equal(chainId, fakeChainId); - - const evmChainId = await initialized.methods.evmChainId().call(); - assert.equal(evmChainId, fakeEvmChainId); - - data = [ - "0x", - "000000000000000000000000000000000000000000546f6b656e427269646765", - // Action 3 (Recover Chain ID) - actionRecoverChainId, - // EvmChainID - web3.eth.abi.encodeParameter("uint256", testEvmChainId).substring(2), - // NewChainID - web3.eth.abi.encodeParameter("uint16", testChainId).substring(2 + (64 - 4)), - ].join('') - - const vm = await signAndEncodeVM( - timestamp, - nonce, - emitterChainId, - emitterAddress, - 0, - data, - [ - testSigner1PK, - ], - 0, - 0 - ); - - await initialized.methods.submitRecoverChainId("0x" + vm).send({ - value: 0, - from: accounts[0], - gasLimit: 1000000 - }); - - const newChainId = await initialized.methods.chainId().call(); - assert.equal(newChainId, testChainId); - - const newEvmChainId = await initialized.methods.evmChainId().call(); - assert.equal(newEvmChainId, testEvmChainId); - }) - - it("should accept smart contract upgrades after chain ID has been recovered", async function () { - const initialized = new web3.eth.Contract(BridgeImplementationFullABI, TokenBridge.address); - const accounts = await web3.eth.getAccounts(); - - const mock = await MockBridgeImplementation.new(); - - const timestamp = 1000; - const nonce = 1001; - const emitterChainId = testGovernanceChainId; - const emitterAddress = testGovernanceContract - - data = [ - "0x", - "000000000000000000000000000000000000000000546f6b656e427269646765", - // Action 2 (Contract Upgrade) - actionContractUpgrade, - // ChainID - web3.eth.abi.encodeParameter("uint16", testChainId).substring(2 + (64 - 4)), - // New Contract Address - web3.eth.abi.encodeParameter("address", mock.address).substring(2), - ].join('') - - const vm = await signAndEncodeVM( - timestamp, - nonce, - emitterChainId, - emitterAddress, - 0, - data, - [ - testSigner1PK, - ], - 0, - 0 - ); - - let before = await web3.eth.getStorageAt(TokenBridge.address, "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc"); - - assert.equal(BigInt(before), BigInt(lastDeployed.address)); - - let set = await initialized.methods.upgrade("0x" + vm).send({ - value: 0, - from: accounts[0], - gasLimit: 1000000 - }); - - let after = await web3.eth.getStorageAt(TokenBridge.address, "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc"); - - assert.equal(BigInt(after), BigInt(mock.address)); - - const mockImpl = new web3.eth.Contract(MockBridgeImplementation.abi, TokenBridge.address); - - let isUpgraded = await mockImpl.methods.testNewImplementationActive().call(); - - assert.ok(isUpgraded); - }) -}); - -const signAndEncodeVM = async function ( - timestamp, - nonce, - emitterChainId, - emitterAddress, - sequence, - data, - signers, - guardianSetIndex, - consistencyLevel -) { - const body = [ - web3.eth.abi.encodeParameter("uint32", timestamp).substring(2 + (64 - 8)), - web3.eth.abi.encodeParameter("uint32", nonce).substring(2 + (64 - 8)), - web3.eth.abi.encodeParameter("uint16", emitterChainId).substring(2 + (64 - 4)), - web3.eth.abi.encodeParameter("bytes32", emitterAddress).substring(2), - web3.eth.abi.encodeParameter("uint64", sequence).substring(2 + (64 - 16)), - web3.eth.abi.encodeParameter("uint8", consistencyLevel).substring(2 + (64 - 2)), - data.substr(2) - ] - - const hash = web3.utils.soliditySha3(web3.utils.soliditySha3("0x" + body.join(""))) - - let signatures = ""; - - for (let i in signers) { - const ec = new elliptic.ec("secp256k1"); - const key = ec.keyFromPrivate(signers[i]); - const signature = key.sign(hash.substr(2), { canonical: true }); - - const packSig = [ - web3.eth.abi.encodeParameter("uint8", i).substring(2 + (64 - 2)), - zeroPadBytes(signature.r.toString(16), 32), - zeroPadBytes(signature.s.toString(16), 32), - web3.eth.abi.encodeParameter("uint8", signature.recoveryParam).substr(2 + (64 - 2)), - ] - - signatures += packSig.join("") - } - - const vm = [ - web3.eth.abi.encodeParameter("uint8", 1).substring(2 + (64 - 2)), - web3.eth.abi.encodeParameter("uint32", guardianSetIndex).substring(2 + (64 - 8)), - web3.eth.abi.encodeParameter("uint8", signers.length).substring(2 + (64 - 2)), - - signatures, - body.join("") - ].join(""); - - return vm -} - -function zeroPadBytes(value, length) { - while (value.length < 2 * length) { - value = "0" + value; - } - return value; -} diff --git a/ethereum/test/nft.js b/ethereum/test/nft.js deleted file mode 100644 index c76cfc132e..0000000000 --- a/ethereum/test/nft.js +++ /dev/null @@ -1,917 +0,0 @@ -const jsonfile = require('jsonfile'); -const elliptic = require('elliptic'); -const BigNumber = require('bignumber.js'); - -const Wormhole = artifacts.require("Wormhole"); -const NFTBridge = artifacts.require("NFTBridgeEntrypoint"); -const NFTBridgeImplementation = artifacts.require("NFTBridgeImplementation"); -const NFTImplementation = artifacts.require("NFTImplementation"); -const MockBridgeImplementation = artifacts.require("MockNFTBridgeImplementation"); - -const testSigner1PK = "cfb12303a19cde580bb4dd771639b0d26bc68353645571a8cff516ab2ee113a0"; -const testSigner2PK = "892330666a850761e7370376430bb8c2aa1494072d3bfeaed0c4fa3d5a9135fe"; - -const WormholeImplementationFullABI = jsonfile.readFileSync("build/contracts/Implementation.json").abi -const BridgeImplementationFullABI = jsonfile.readFileSync("build/contracts/NFTBridgeImplementation.json").abi -const NFTImplementationFullABI = jsonfile.readFileSync("build/contracts/NFTImplementation.json").abi - -const actionContractUpgrade = "02" -const actionRecoverChainId = "03" - -const fakeChainId = 1337; -const fakeEvmChainId = 10001; - -let lastDeployed; - -contract("NFT", function () { - const testSigner1 = web3.eth.accounts.privateKeyToAccount(testSigner1PK); - const testSigner2 = web3.eth.accounts.privateKeyToAccount(testSigner2PK); - const testChainId = "2"; - const testEvmChainId = "1337"; - const testFinality = "1"; - const testGovernanceChainId = "1"; - const testGovernanceContract = "0x0000000000000000000000000000000000000000000000000000000000000004"; - let WETH = "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2"; - const testForeignChainId = "1"; - const testForeignBridgeContract = "0x000000000000000000000000000000000000000000000000000000000000ffff"; - const testBridgedAssetChain = "0003"; - const testBridgedAssetAddress = "000000000000000000000000b7a2211e8165943192ad04f5dd21bedc29ff003e"; - - - it("should be initialized with the correct signers and values", async function () { - const initialized = new web3.eth.Contract(BridgeImplementationFullABI, NFTBridge.address); - - const tokenImplentation = await initialized.methods.tokenImplementation().call(); - assert.equal(tokenImplentation, NFTImplementation.address); - - // test beacon functionality - const beaconImplementation = await initialized.methods.implementation().call(); - assert.equal(beaconImplementation, NFTImplementation.address); - - // chain id - const chainId = await initialized.methods.chainId().call(); - assert.equal(chainId, testChainId); - - // evm chain id - const evmChainId = await initialized.methods.evmChainId().call(); - assert.equal(evmChainId, testEvmChainId); - - // finality - const finality = await initialized.methods.finality().call(); - assert.equal(finality, testFinality); - - // governance - const governanceChainId = await initialized.methods.governanceChainId().call(); - assert.equal(governanceChainId, testGovernanceChainId); - const governanceContract = await initialized.methods.governanceContract().call(); - assert.equal(governanceContract, testGovernanceContract); - }) - - it("should register a foreign bridge implementation correctly", async function () { - const initialized = new web3.eth.Contract(BridgeImplementationFullABI, NFTBridge.address); - const accounts = await web3.eth.getAccounts(); - - let data = [ - "0x", - "00000000000000000000000000000000000000000000004e4654427269646765", - "01", - "0000", - web3.eth.abi.encodeParameter("uint16", testForeignChainId).substring(2 + (64 - 4)), - web3.eth.abi.encodeParameter("bytes32", testForeignBridgeContract).substring(2), - ].join('') - - const vm = await signAndEncodeVM( - 1, - 1, - testGovernanceChainId, - testGovernanceContract, - 0, - data, - [ - testSigner1PK - ], - 0, - 0 - ); - - - let before = await initialized.methods.bridgeContracts(testForeignChainId).call(); - - assert.equal(before, "0x0000000000000000000000000000000000000000000000000000000000000000"); - - await initialized.methods.registerChain("0x" + vm).send({ - value: 0, - from: accounts[0], - gasLimit: 2000000 - }); - - let after = await initialized.methods.bridgeContracts(testForeignChainId).call(); - - assert.equal(after, testForeignBridgeContract); - }) - - it("should accept a valid upgrade", async function () { - const initialized = new web3.eth.Contract(BridgeImplementationFullABI, NFTBridge.address); - const accounts = await web3.eth.getAccounts(); - - const mock = await MockBridgeImplementation.new(); - - let data = [ - "0x", - "00000000000000000000000000000000000000000000004e4654427269646765", - "02", - web3.eth.abi.encodeParameter("uint16", testChainId).substring(2 + (64 - 4)), - web3.eth.abi.encodeParameter("address", mock.address).substring(2), - ].join('') - - const vm = await signAndEncodeVM( - 1, - 1, - testGovernanceChainId, - testGovernanceContract, - 0, - data, - [ - testSigner1PK - ], - 0, - 0 - ); - - let before = await web3.eth.getStorageAt(NFTBridge.address, "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc"); - - assert.equal(BigInt(before), BigInt(NFTBridgeImplementation.address)); - - await initialized.methods.upgrade("0x" + vm).send({ - value: 0, - from: accounts[0], - gasLimit: 2000000 - }); - - let after = await web3.eth.getStorageAt(NFTBridge.address, "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc"); - - assert.equal(BigInt(after), BigInt(mock.address)); - - const mockImpl = new web3.eth.Contract(MockBridgeImplementation.abi, NFTBridge.address); - - let isUpgraded = await mockImpl.methods.testNewImplementationActive().call(); - - assert.ok(isUpgraded); - lastDeployed = mock; - }) - - it("bridged tokens should only be mint- and burn-able by owner", async function () { - const accounts = await web3.eth.getAccounts(); - - // initialize our template token contract - const token = new web3.eth.Contract(NFTImplementation.abi, NFTImplementation.address); - - await token.methods.initialize( - "TestToken", - "TT", - accounts[0], - - 0, - "0x0" - ).send({ - value: 0, - from: accounts[0], - gasLimit: 2000000 - }); - - await token.methods.mint(accounts[0], 10, "").send({ - from: accounts[0], - gasLimit: 2000000 - }); - - let failed = false - try { - await token.methods.mint(accounts[0], 11, "").send({ - from: accounts[1], - gasLimit: 2000000 - }); - } catch (e) { - failed = true - } - assert.ok(failed) - - failed = false - try { - await token.methods.burn(10).send({ - from: accounts[1], - gasLimit: 2000000 - }); - } catch (e) { - failed = true - } - assert.ok(failed) - - await token.methods.burn(10).send({ - from: accounts[0], - gasLimit: 2000000 - }); - }) - - it("should deposit and log transfers correctly", async function () { - const accounts = await web3.eth.getAccounts(); - const tokenId = "1000000000000000000"; - - // mint and approve tokens - const token = new web3.eth.Contract(NFTImplementation.abi, NFTImplementation.address); - await token.methods.mint(accounts[0], tokenId, "abcd").send({ - value: 0, - from: accounts[0], - gasLimit: 2000000 - }); - await token.methods.approve(NFTBridge.address, tokenId).send({ - value: 0, - from: accounts[0], - gasLimit: 2000000 - }); - - // deposit tokens - const initialized = new web3.eth.Contract(BridgeImplementationFullABI, NFTBridge.address); - - const ownerBefore = await token.methods.ownerOf(tokenId).call(); - assert.equal(ownerBefore, accounts[0]); - await initialized.methods.transferNFT( - NFTImplementation.address, - tokenId, - "10", - "0x000000000000000000000000b7a2211e8165943192ad04f5dd21bedc29ff003e", - "234" - ).send({ - value: 0, - from: accounts[0], - gasLimit: 2000000 - }); - - const ownerAfter = await token.methods.ownerOf(tokenId).call(); - assert.equal(ownerAfter, NFTBridge.address); - - // check transfer log - const wormhole = new web3.eth.Contract(WormholeImplementationFullABI, Wormhole.address); - const log = (await wormhole.getPastEvents('LogMessagePublished', { - fromBlock: 'latest' - }))[0].returnValues - - assert.equal(log.sender, NFTBridge.address) - - assert.equal(log.payload.length - 2, 340); - - // payload id - assert.equal(log.payload.substr(2, 2), "01"); - - // token - assert.equal(log.payload.substr(4, 64), web3.eth.abi.encodeParameter("address", NFTImplementation.address).substring(2)); - - // chain id - assert.equal(log.payload.substr(68, 4), web3.eth.abi.encodeParameter("uint16", testChainId).substring(2 + 64 - 4)) - - // symbol (TT) - assert.equal(log.payload.substr(72, 64), "5454000000000000000000000000000000000000000000000000000000000000") - - // name (TestToken (Wormhole)) - assert.equal(log.payload.substr(136, 64), "54657374546f6b656e0000000000000000000000000000000000000000000000") - - // tokenID - assert.equal(log.payload.substr(200, 64), web3.eth.abi.encodeParameter("uint256", new BigNumber(tokenId).toString()).substring(2)); - - // url length - assert.equal(log.payload.substr(264, 2), web3.eth.abi.encodeParameter("uint8", 4).substring(2 + 64 - 2)) - - // url - assert.equal(log.payload.substr(266, 8), "61626364") - - // to - assert.equal(log.payload.substr(274, 64), "000000000000000000000000b7a2211e8165943192ad04f5dd21bedc29ff003e"); - - // to chain id - assert.equal(log.payload.substr(338, 4), web3.eth.abi.encodeParameter("uint16", 10).substring(2 + 64 - 4)) - }) - - it("should transfer out locked assets for a valid transfer vm", async function () { - const accounts = await web3.eth.getAccounts(); - const tokenId = "1000000000000000000"; - - const token = new web3.eth.Contract(NFTImplementation.abi, NFTImplementation.address); - const initialized = new web3.eth.Contract(BridgeImplementationFullABI, NFTBridge.address); - - const ownerBefore = await token.methods.ownerOf(tokenId).call(); - assert.equal(ownerBefore, NFTBridge.address); - - // PayloadID uint8 = 1 - // // Address of the NFT. Left-zero-padded if shorter than 32 bytes - // NFTAddress [32]uint8 - // // Chain ID of the NFT - // NFTChain uint16 - // // Name of the NFT - // Name [32]uint8 - // // Symbol of the NFT - // Symbol [10]uint8 - // // ID of the token (big-endian uint256) - // TokenID [32]uint8 - // // URL of the NFT - // URLLength u8 - // URL [n]uint8 - // // Address of the recipient. Left-zero-padded if shorter than 32 bytes - // To [32]uint8 - // // Chain ID of the recipient - // ToChain uint16 - const data = "0x" + - "01" + - // tokenaddress - web3.eth.abi.encodeParameter("address", NFTImplementation.address).substr(2) + - // tokenchain - web3.eth.abi.encodeParameter("uint16", testChainId).substring(2 + (64 - 4)) + - // symbol - "0000000000000000000000000000000000000000000000000000000000000000" + - // name - "0000000000000000000000000000000000000000000000000000000000000000" + - // tokenID - web3.eth.abi.encodeParameter("uint256", new BigNumber(tokenId).toString()).substring(2) + - // url length - "00" + - // no URL - "" + - // receiver - web3.eth.abi.encodeParameter("address", accounts[0]).substr(2) + - // receiving chain - web3.eth.abi.encodeParameter("uint16", testChainId).substring(2 + (64 - 4)); - - const vm = await signAndEncodeVM( - 0, - 0, - testForeignChainId, - testForeignBridgeContract, - 0, - data, - [ - testSigner1PK - ], - 0, - 0 - ); - - await initialized.methods.completeTransfer("0x" + vm).send({ - value: 0, - from: accounts[0], - gasLimit: 2000000 - }); - - const ownerAfter = await token.methods.ownerOf(tokenId).call(); - assert.equal(ownerAfter, accounts[0]); - }) - - it("should mint bridged assets wrappers on transfer from another chain and handle fees correctly", async function () { - const accounts = await web3.eth.getAccounts(); - let tokenId = "1000000000000000001"; - - const initialized = new web3.eth.Contract(BridgeImplementationFullABI, NFTBridge.address); - - // we are using the asset where we created a wrapper in the previous test - let data = "0x" + - "01" + - // tokenaddress - testBridgedAssetAddress + - // tokenchain - testBridgedAssetChain + - // symbol - "464f520000000000000000000000000000000000000000000000000000000000" + - // name - "466f726569676e20436861696e204e4654000000000000000000000000000000" + - // tokenID - web3.eth.abi.encodeParameter("uint256", new BigNumber(tokenId).toString()).substring(2) + - // url length - "00" + - // no URL - "" + - // receiver - web3.eth.abi.encodeParameter("address", accounts[0]).substr(2) + - // receiving chain - web3.eth.abi.encodeParameter("uint16", testChainId).substring(2 + (64 - 4)); - - let vm = await signAndEncodeVM( - 0, - 0, - testForeignChainId, - testForeignBridgeContract, - 0, - data, - [ - testSigner1PK - ], - 0, - 0 - ); - - await initialized.methods.completeTransfer("0x" + vm).send({ - value: 0, - from: accounts[1], - gasLimit: 2000000 - }); - - const wrappedAddress = await initialized.methods.wrappedAsset("0x" + testBridgedAssetChain, "0x" + testBridgedAssetAddress).call(); - assert.ok(await initialized.methods.isWrappedAsset(wrappedAddress).call()) - const wrappedAsset = new web3.eth.Contract(NFTImplementation.abi, wrappedAddress); - - let ownerAfter = await wrappedAsset.methods.ownerOf(tokenId).call(); - assert.equal(ownerAfter, accounts[0]); - - const symbol = await wrappedAsset.methods.symbol().call(); - assert.equal(symbol, "FOR"); - - const name = await wrappedAsset.methods.name().call(); - assert.equal(name, "Foreign Chain NFT"); - - const chainId = await wrappedAsset.methods.chainId().call(); - assert.equal(chainId, Number(testBridgedAssetChain)); - - const nativeContract = await wrappedAsset.methods.nativeContract().call(); - assert.equal(nativeContract, "0x000000000000000000000000b7a2211e8165943192ad04f5dd21bedc29ff003e"); - - // Transfer another tokenID of the same token address - tokenId = "1000000000000000002" - data = "0x" + - "01" + - // tokenaddress - testBridgedAssetAddress + - // tokenchain - testBridgedAssetChain + - // symbol - "464f520000000000000000000000000000000000000000000000000000000000" + - // name - "466f726569676e20436861696e204e4654000000000000000000000000000000" + - // tokenID - web3.eth.abi.encodeParameter("uint256", new BigNumber(tokenId + 1).toString()).substring(2) + - // url length - "00" + - // no URL - "" + - // receiver - web3.eth.abi.encodeParameter("address", accounts[0]).substr(2) + - // receiving chain - web3.eth.abi.encodeParameter("uint16", testChainId).substring(2 + (64 - 4)); - - vm = await signAndEncodeVM( - 0, - 0, - testForeignChainId, - testForeignBridgeContract, - 1, - data, - [ - testSigner1PK - ], - 0, - 0 - ); - - await initialized.methods.completeTransfer("0x" + vm).send({ - value: 0, - from: accounts[1], - gasLimit: 2000000 - }); - - ownerAfter = await wrappedAsset.methods.ownerOf(tokenId + 1).call(); - assert.equal(ownerAfter, accounts[0]); - }) - - it("should mint bridged assets from solana under unified name, caching the original", async function () { - const accounts = await web3.eth.getAccounts(); - let tokenId = "1000000000000000001"; - - const initialized = new web3.eth.Contract(BridgeImplementationFullABI, NFTBridge.address); - - // we are using the asset where we created a wrapper in the previous test - let data = "0x" + - "01" + - // tokenaddress - testBridgedAssetAddress + - // tokenchain - "0001" + - // symbol - "464f520000000000000000000000000000000000000000000000000000000000" + - // name - "466f726569676e20436861696e204e4654000000000000000000000000000000" + - // tokenID - web3.eth.abi.encodeParameter("uint256", new BigNumber(tokenId).toString()).substring(2) + - // url length - "00" + - // no URL - "" + - // receiver - web3.eth.abi.encodeParameter("address", accounts[0]).substr(2) + - // receiving chain - web3.eth.abi.encodeParameter("uint16", testChainId).substring(2 + (64 - 4)); - - let vm = await signAndEncodeVM( - 0, - 0, - testForeignChainId, - testForeignBridgeContract, - 0, - data, - [ - testSigner1PK - ], - 0, - 0 - ); - - await initialized.methods.completeTransfer("0x" + vm).send({ - value: 0, - from: accounts[1], - gasLimit: 2000000 - }); - - const cache = await initialized.methods.splCache(tokenId).call() - assert.equal(cache.symbol, "0x464f520000000000000000000000000000000000000000000000000000000000"); - assert.equal(cache.name, "0x466f726569676e20436861696e204e4654000000000000000000000000000000"); - - const wrappedAddress = await initialized.methods.wrappedAsset("0x0001", "0x" + testBridgedAssetAddress).call(); - const wrappedAsset = new web3.eth.Contract(NFTImplementation.abi, wrappedAddress); - - const symbol = await wrappedAsset.methods.symbol().call(); - assert.equal(symbol, "WORMSPLNFT"); - - const name = await wrappedAsset.methods.name().call(); - assert.equal(name, "Wormhole Bridged Solana-NFT"); - }) - - it("cached SPL names are loaded when transferring out, cache is cleared", async function () { - const accounts = await web3.eth.getAccounts(); - let tokenId = "1000000000000000001"; - - const initialized = new web3.eth.Contract(BridgeImplementationFullABI, NFTBridge.address); - - const wrappedAddress = await initialized.methods.wrappedAsset("0x0001", "0x" + testBridgedAssetAddress).call(); - const wrappedAsset = new web3.eth.Contract(NFTImplementation.abi, wrappedAddress); - - await wrappedAsset.methods.approve(NFTBridge.address, tokenId).send({ - value: 0, - from: accounts[0], - gasLimit: 2000000 - }); - - const transfer = await initialized.methods.transferNFT( - wrappedAddress, - tokenId, - "10", - "0x000000000000000000000000b7a2211e8165943192ad04f5dd21bedc29ff003e", - "2345" - ).send({ - value: 0, - from: accounts[0], - gasLimit: 2000000 - }); - - // symbol - assert.ok(transfer.events[4].raw.data.includes('464f520000000000000000000000000000000000000000000000000000000000')) - // name - assert.ok(transfer.events[4].raw.data.includes('466f726569676e20436861696e204e4654000000000000000000000000000000')) - - // check if cache is cleared - const cache = await initialized.methods.splCache(tokenId).call() - assert.equal(cache.symbol, "0x0000000000000000000000000000000000000000000000000000000000000000"); - assert.equal(cache.name, "0x0000000000000000000000000000000000000000000000000000000000000000"); - }) - - it("should should fail deposit unapproved NFTs", async function () { - const accounts = await web3.eth.getAccounts(); - const initialized = new web3.eth.Contract(BridgeImplementationFullABI, NFTBridge.address); - const tokenId = "1000000000000000001"; - - const wrappedAddress = await initialized.methods.wrappedAsset("0x" + testBridgedAssetChain, "0x" + testBridgedAssetAddress).call(); - - // deposit tokens - let failed = false - try { - await initialized.methods.transferNFT( - wrappedAddress, - tokenId, - "10", - "0x000000000000000000000000b7a2211e8165943192ad04f5dd21bedc29ff003e", - "234" - ).send({ - value: 0, - from: accounts[0], - gasLimit: 2000000 - }); - } catch (e) { - assert.include(e.message, "revert ERC721: transfer caller is not owner nor approved") - failed = true - } - - assert.ok(failed) - }) - - it("should refuse to burn wrappers not held by msg.sender", async function () { - const accounts = await web3.eth.getAccounts(); - const initialized = new web3.eth.Contract(BridgeImplementationFullABI, NFTBridge.address); - const tokenId = "1000000000000000001"; - - const wrappedAddress = await initialized.methods.wrappedAsset("0x" + testBridgedAssetChain, "0x" + testBridgedAssetAddress).call(); - const wrappedAsset = new web3.eth.Contract(NFTImplementation.abi, wrappedAddress); - - // approve from 0 - await wrappedAsset.methods.approve(NFTBridge.address, tokenId).send({ - value: 0, - from: accounts[0], - gasLimit: 2000000 - }); - - // deposit tokens from 1 - let failed = false - try { - await initialized.methods.transferNFT( - wrappedAddress, - tokenId, - "10", - "0x000000000000000000000000b7a2211e8165943192ad04f5dd21bedc29ff003e", - "234" - ).send({ - value: 0, - from: accounts[1], - gasLimit: 2000000 - }); - } catch (e) { - assert.include(e.message, "revert ERC721: transfer of token that is not own") - failed = true - } - - assert.ok(failed) - }) - - it("should deposit and burn approved bridged assets wrappers on transfer to another chain", async function () { - const accounts = await web3.eth.getAccounts(); - const initialized = new web3.eth.Contract(BridgeImplementationFullABI, NFTBridge.address); - const tokenId = "1000000000000000001"; - - const wrappedAddress = await initialized.methods.wrappedAsset("0x" + testBridgedAssetChain, "0x" + testBridgedAssetAddress).call(); - const wrappedAsset = new web3.eth.Contract(NFTImplementation.abi, wrappedAddress); - - await wrappedAsset.methods.approve(NFTBridge.address, tokenId).send({ - value: 0, - from: accounts[0], - gasLimit: 2000000 - }); - - // deposit tokens - - const ownerBefore = await wrappedAsset.methods.ownerOf(tokenId).call(); - - assert.equal(ownerBefore, accounts[0]); - - await initialized.methods.transferNFT( - wrappedAddress, - tokenId, - "10", - "0x000000000000000000000000b7a2211e8165943192ad04f5dd21bedc29ff003e", - "234" - ).send({ - value: 0, - from: accounts[0], - gasLimit: 2000000 - }); - - try { - await wrappedAsset.methods.ownerOf(tokenId).call(); - assert.fail("burned token still exists") - } catch (e) { - assert.include(e.message, "revert ERC721: owner query for nonexistent token") - } - }) - - it("should reject smart contract upgrades on forks", async function () { - const mockInitialized = new web3.eth.Contract(MockBridgeImplementation.abi, NFTBridge.address); - const initialized = new web3.eth.Contract(BridgeImplementationFullABI, NFTBridge.address); - const accounts = await web3.eth.getAccounts(); - - const mock = await MockBridgeImplementation.new(); - - const timestamp = 1000; - const nonce = 1001; - const emitterChainId = testGovernanceChainId; - const emitterAddress = testGovernanceContract - - // simulate a fork - await mockInitialized.methods.testOverwriteEVMChainId(fakeChainId, fakeEvmChainId).send({ - value: 0, - from: accounts[0], - gasLimit: 1000000 - }); - - const chainId = await initialized.methods.chainId().call(); - assert.equal(chainId, fakeChainId); - - const evmChainId = await initialized.methods.evmChainId().call(); - assert.equal(evmChainId, fakeEvmChainId); - - data = [ - "0x", - "00000000000000000000000000000000000000000000004e4654427269646765", - // Action 1 (Contract Upgrade) - actionContractUpgrade, - // ChainID - web3.eth.abi.encodeParameter("uint16", testChainId).substring(2 + (64 - 4)), - // New Contract Address - web3.eth.abi.encodeParameter("address", mock.address).substring(2), - ].join('') - - const vm = await signAndEncodeVM( - timestamp, - nonce, - emitterChainId, - emitterAddress, - 0, - data, - [ - testSigner1PK, - ], - 0, - 0 - ); - - try { - await initialized.methods.upgrade("0x" + vm).send({ - value: 0, - from: accounts[0], - gasLimit: 1000000 - }); - - assert.fail("governance packet accepted") - } catch (e) { - assert.include(e.message, "revert invalid fork") - } - }) - - it("should allow recover chain ID governance packets forks", async function () { - const initialized = new web3.eth.Contract(BridgeImplementationFullABI, NFTBridge.address); - const accounts = await web3.eth.getAccounts(); - - const timestamp = 1000; - const nonce = 1001; - const emitterChainId = testGovernanceChainId; - const emitterAddress = testGovernanceContract - - const chainId = await initialized.methods.chainId().call(); - assert.equal(chainId, fakeChainId); - - const evmChainId = await initialized.methods.evmChainId().call(); - assert.equal(evmChainId, fakeEvmChainId); - - data = [ - "0x", - "00000000000000000000000000000000000000000000004e4654427269646765", - // Action 3 (Recover Chain ID) - actionRecoverChainId, - // EvmChainID - web3.eth.abi.encodeParameter("uint256", testEvmChainId).substring(2), - // NewChainID - web3.eth.abi.encodeParameter("uint16", testChainId).substring(2 + (64 - 4)), - ].join('') - - const vm = await signAndEncodeVM( - timestamp, - nonce, - emitterChainId, - emitterAddress, - 0, - data, - [ - testSigner1PK, - ], - 0, - 0 - ); - - await initialized.methods.submitRecoverChainId("0x" + vm).send({ - value: 0, - from: accounts[0], - gasLimit: 1000000 - }); - - const newChainId = await initialized.methods.chainId().call(); - assert.equal(newChainId, testChainId); - - const newEvmChainId = await initialized.methods.evmChainId().call(); - assert.equal(newEvmChainId, testEvmChainId); - }) - - it("should accept smart contract upgrades after chain ID has been recovered", async function () { - const initialized = new web3.eth.Contract(BridgeImplementationFullABI, NFTBridge.address); - const accounts = await web3.eth.getAccounts(); - - const mock = await MockBridgeImplementation.new(); - - const timestamp = 1000; - const nonce = 1001; - const emitterChainId = testGovernanceChainId; - const emitterAddress = testGovernanceContract - - data = [ - "0x", - "00000000000000000000000000000000000000000000004e4654427269646765", - // Action 2 (Contract Upgrade) - actionContractUpgrade, - // ChainID - web3.eth.abi.encodeParameter("uint16", testChainId).substring(2 + (64 - 4)), - // New Contract Address - web3.eth.abi.encodeParameter("address", mock.address).substring(2), - ].join('') - - const vm = await signAndEncodeVM( - timestamp, - nonce, - emitterChainId, - emitterAddress, - 0, - data, - [ - testSigner1PK, - ], - 0, - 0 - ); - - let before = await web3.eth.getStorageAt(NFTBridge.address, "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc"); - - assert.equal(BigInt(before), BigInt(lastDeployed.address)); - - let set = await initialized.methods.upgrade("0x" + vm).send({ - value: 0, - from: accounts[0], - gasLimit: 1000000 - }); - - let after = await web3.eth.getStorageAt(NFTBridge.address, "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc"); - - assert.equal(BigInt(after), BigInt(mock.address)); - - const mockImpl = new web3.eth.Contract(MockBridgeImplementation.abi, NFTBridge.address); - - let isUpgraded = await mockImpl.methods.testNewImplementationActive().call(); - - assert.ok(isUpgraded); - }) -}); - -const signAndEncodeVM = async function ( - timestamp, - nonce, - emitterChainId, - emitterAddress, - sequence, - data, - signers, - guardianSetIndex, - consistencyLevel -) { - const body = [ - web3.eth.abi.encodeParameter("uint32", timestamp).substring(2 + (64 - 8)), - web3.eth.abi.encodeParameter("uint32", nonce).substring(2 + (64 - 8)), - web3.eth.abi.encodeParameter("uint16", emitterChainId).substring(2 + (64 - 4)), - web3.eth.abi.encodeParameter("bytes32", emitterAddress).substring(2), - web3.eth.abi.encodeParameter("uint64", sequence).substring(2 + (64 - 16)), - web3.eth.abi.encodeParameter("uint8", consistencyLevel).substring(2 + (64 - 2)), - data.substr(2) - ] - - const hash = web3.utils.soliditySha3(web3.utils.soliditySha3("0x" + body.join(""))) - - let signatures = ""; - - for (let i in signers) { - const ec = new elliptic.ec("secp256k1"); - const key = ec.keyFromPrivate(signers[i]); - const signature = key.sign(hash.substr(2), { canonical: true }); - - const packSig = [ - web3.eth.abi.encodeParameter("uint8", i).substring(2 + (64 - 2)), - zeroPadBytes(signature.r.toString(16), 32), - zeroPadBytes(signature.s.toString(16), 32), - web3.eth.abi.encodeParameter("uint8", signature.recoveryParam).substr(2 + (64 - 2)), - ] - - signatures += packSig.join("") - } - - const vm = [ - web3.eth.abi.encodeParameter("uint8", 1).substring(2 + (64 - 2)), - web3.eth.abi.encodeParameter("uint32", guardianSetIndex).substring(2 + (64 - 8)), - web3.eth.abi.encodeParameter("uint8", signers.length).substring(2 + (64 - 2)), - - signatures, - body.join("") - ].join(""); - - return vm -} - -function zeroPadBytes(value, length) { - while (value.length < 2 * length) { - value = "0" + value; - } - return value; -} diff --git a/ethereum/test/tokenmigrator.js b/ethereum/test/tokenmigrator.js deleted file mode 100644 index f676706bb0..0000000000 --- a/ethereum/test/tokenmigrator.js +++ /dev/null @@ -1,87 +0,0 @@ -const jsonfile = require('jsonfile'); -const BigNumber = require('bignumber.js'); - -const Migrator = artifacts.require("Migrator"); -const TokenImplementation = artifacts.require("TokenImplementation"); - -contract("Migrator", function (accounts) { - var migrator, - fromToken, - toToken, - fromDecimals = 8, - toDecimals = 18; - - it("should deploy with the correct values", async function () { - fromToken = await TokenImplementation.new(); - await fromToken.initialize( - "TestFrom", - "FROM", - fromDecimals, - 0, - accounts[0], - 0, - "0x00" - ) - toToken = await TokenImplementation.new(); - await toToken.initialize( - "TestTo", - "TO", - toDecimals, - 0, - accounts[0], - 0, - "0x00" - ) - - migrator = await Migrator.new( - fromToken.address, - toToken.address, - ); - - assert.equal(await migrator.fromAsset(), fromToken.address) - assert.equal(await migrator.toAsset(), toToken.address) - assert.equal((await migrator.fromDecimals()).toNumber(), fromDecimals) - assert.equal((await migrator.toDecimals()).toNumber(), toDecimals) - }) - - it("should give out LP tokens 1:1 for a toToken deposit", async function () { - await toToken.mint(accounts[0], "1000000000000000000") - await toToken.approve(migrator.address, "1000000000000000000") - await migrator.add("1000000000000000000") - - - assert.equal((await toToken.balanceOf(migrator.address)).toString(), "1000000000000000000") - assert.equal((await migrator.balanceOf(accounts[0])).toString(), "1000000000000000000") - }) - - it("should refund toToken for LP tokens", async function () { - await migrator.remove("500000000000000000") - - assert.equal((await toToken.balanceOf(migrator.address)).toString(), "500000000000000000") - assert.equal((await toToken.balanceOf(accounts[0])).toString(), "500000000000000000") - assert.equal((await migrator.balanceOf(accounts[0])).toString(), "500000000000000000") - }) - - it("should redeem fromToken to toToken adjusting for decimals", async function () { - await fromToken.mint(accounts[1], "50000000") - await fromToken.approve(migrator.address, "50000000", { - from : accounts[1] - }) - await migrator.migrate("50000000", { - from : accounts[1] - }) - - assert.equal((await toToken.balanceOf(accounts[1])).toString(), "500000000000000000") - assert.equal((await fromToken.balanceOf(accounts[1])).toString(), "0") - assert.equal((await fromToken.balanceOf(migrator.address)).toString(), "50000000") - assert.equal((await toToken.balanceOf(migrator.address)).toString(), "0") - }) - - it("fromToken should be claimable for LP tokens, adjusting for decimals", async function () { - await migrator.claim("500000000000000000") - - assert.equal((await fromToken.balanceOf(migrator.address)).toString(), "0") - assert.equal((await fromToken.balanceOf(accounts[0])).toString(), "50000000") - assert.equal((await migrator.balanceOf(accounts[0])).toString(), "0") - }) -}) \ No newline at end of file diff --git a/ethereum/test/upgrades/01_tokenbridge_feetoken_support.js b/ethereum/test/upgrades/01_tokenbridge_feetoken_support.js deleted file mode 100644 index 53eb6cc532..0000000000 --- a/ethereum/test/upgrades/01_tokenbridge_feetoken_support.js +++ /dev/null @@ -1,418 +0,0 @@ -const jsonfile = require('jsonfile'); -const elliptic = require('elliptic'); -const BigNumber = require('bignumber.js'); - -const Wormhole = artifacts.require("Wormhole"); -const TokenBridge = artifacts.require("TokenBridge"); -const BridgeSetup = artifacts.require("BridgeSetup"); -const BridgeImplementation = artifacts.require("BridgeImplementation"); -const MockBridgeImplementation = artifacts.require("MockBridgeImplementation"); -const TokenImplementation = artifacts.require("TokenImplementation"); -const FeeToken = artifacts.require("FeeToken"); - -const testSigner1PK = "cfb12303a19cde580bb4dd771639b0d26bc68353645571a8cff516ab2ee113a0"; - -const WormholeImplementationFullABI = jsonfile.readFileSync("build/contracts/Implementation.json").abi -const BridgeImplementationFullABI = jsonfile.readFileSync("build/contracts/BridgeImplementation.json").abi - -// needs to run on a mainnet fork - -contract("Update Bridge", function (accounts) { - if (config.network === "test") return; - const testChainId = "2"; - const testEvmChainId = "1"; - const testGovernanceChainId = "1"; - const testGovernanceContract = "0x0000000000000000000000000000000000000000000000000000000000000004"; - let WETH = "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2"; - const testForeignChainId = "1"; - const testForeignBridgeContract = "0x000000000000000000000000000000000000000000000000000000000000ffff"; - const testFinality = 15; - - const currentImplementation = "0x6c4c12987303b2c94b2C76c612Fc5F4D2F0360F7"; - let bridgeProxy; - - it("create bridge instance with current implementation", async function () { - // encode initialisation data - const setup = new web3.eth.Contract(BridgeSetup.abi, BridgeSetup.address); - const initData = setup.methods.setup( - currentImplementation, - testChainId, - (await Wormhole.deployed()).address, - testGovernanceChainId, - testGovernanceContract, - TokenImplementation.address, - WETH, - testFinality, - testEvmChainId - ).encodeABI(); - - const deploy = await TokenBridge.new(BridgeSetup.address, initData); - - bridgeProxy = new web3.eth.Contract(BridgeImplementationFullABI, deploy.address); - }) - - it("register a foreign bridge implementation", async function () { - let data = [ - "0x", - "000000000000000000000000000000000000000000546f6b656e427269646765", - "01", - "0000", - web3.eth.abi.encodeParameter("uint16", testForeignChainId).substring(2 + (64 - 4)), - web3.eth.abi.encodeParameter("bytes32", testForeignBridgeContract).substring(2), - ].join('') - - const vm = await signAndEncodeVM( - 1, - 1, - testGovernanceChainId, - testGovernanceContract, - 0, - data, - [ - testSigner1PK - ], - 0, - 0 - ); - - - let before = await bridgeProxy.methods.bridgeContracts(testForeignChainId).call(); - - assert.equal(before, "0x0000000000000000000000000000000000000000000000000000000000000000"); - - await bridgeProxy.methods.registerChain("0x" + vm).send({ - value: 0, - from: accounts[0], - gasLimit: 2000000 - }); - - let after = await bridgeProxy.methods.bridgeContracts(testForeignChainId).call(); - - assert.equal(after, testForeignBridgeContract); - }) - - it("mimic previous deposits (deposit some ETH)", async function () { - const amount = "100000000000000000"; - const fee = "10000000000000000"; - - await bridgeProxy.methods.wrapAndTransferETH( - "10", - "0x000000000000000000000000b7a2211e8165943192ad04f5dd21bedc29ff003e", - fee, - "234" - ).send({ - value: amount, - from: accounts[0], - gasLimit: 2000000 - }); - - // check transfer log - const wormhole = new web3.eth.Contract(WormholeImplementationFullABI, Wormhole.address); - const log = (await wormhole.getPastEvents('LogMessagePublished', { - fromBlock: 'latest' - }))[0].returnValues - - assert.equal(log.payload.length - 2, 266); - - // payload id - assert.equal(log.payload.substr(2, 2), "01"); - - // amount - assert.equal(log.payload.substr(4, 64), web3.eth.abi.encodeParameter("uint256", new BigNumber(amount).div(1e10).toString()).substring(2)); - - // token - assert.equal(log.payload.substr(68, 64), web3.eth.abi.encodeParameter("address", WETH).substring(2)); - - // chain id - assert.equal(log.payload.substr(132, 4), web3.eth.abi.encodeParameter("uint16", testChainId).substring(2 + 64 - 4)) - - // to - assert.equal(log.payload.substr(136, 64), "000000000000000000000000b7a2211e8165943192ad04f5dd21bedc29ff003e"); - - // to chain id - assert.equal(log.payload.substr(200, 4), web3.eth.abi.encodeParameter("uint16", 10).substring(2 + 64 - 4)) - - // fee - assert.equal(log.payload.substr(204, 64), web3.eth.abi.encodeParameter("uint256", new BigNumber(fee).div(1e10).toString()).substring(2)) - }) - - let upgradeDeployedAt; - it("apply upgrade", async function () { - const deploy = await BridgeImplementation.new(); - upgradeDeployedAt = deploy.address; - - let data = [ - "0x", - "000000000000000000000000000000000000000000546f6b656e427269646765", - "02", - web3.eth.abi.encodeParameter("uint16", testChainId).substring(2 + (64 - 4)), - web3.eth.abi.encodeParameter("address", deploy.address).substring(2), - ].join('') - - const vm = await signAndEncodeVM( - 1, - 1, - testGovernanceChainId, - testGovernanceContract, - 0, - data, - [ - testSigner1PK - ], - 0, - 0 - ); - - let before = await web3.eth.getStorageAt(bridgeProxy.options.address, "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc"); - - assert.equal(before.toLowerCase(), currentImplementation.toLowerCase()); - - await bridgeProxy.methods.upgrade("0x" + vm).send({ - value: 0, - from: accounts[0], - gasLimit: 2000000 - }); - - let after = await web3.eth.getStorageAt(bridgeProxy.options.address, "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc"); - - assert.equal(after.toLowerCase(), deploy.address.toLowerCase()); - }) - - it("test withdrawing existing assets (deposited ETH)", async function () { - const amount = "100000000000000000"; - - const accountBalanceBefore = await web3.eth.getBalance(accounts[1]); - - // we are using the asset where we created a wrapper in the previous test - const data = "0x" + - "01" + - // amount - web3.eth.abi.encodeParameter("uint256", new BigNumber(amount).div(1e10).toString()).substring(2) + - // tokenaddress - web3.eth.abi.encodeParameter("address", WETH).substr(2) + - // tokenchain - web3.eth.abi.encodeParameter("uint16", testChainId).substring(2 + (64 - 4)) + - // receiver - web3.eth.abi.encodeParameter("address", accounts[1]).substr(2) + - // receiving chain - web3.eth.abi.encodeParameter("uint16", testChainId).substring(2 + (64 - 4)) + - // fee - web3.eth.abi.encodeParameter("uint256", 0).substring(2); - - const vm = await signAndEncodeVM( - 0, - 0, - testForeignChainId, - testForeignBridgeContract, - 0, - data, - [ - testSigner1PK - ], - 0, - 0 - ); - - const transferTX = await bridgeProxy.methods.completeTransferAndUnwrapETH("0x" + vm).send({ - from: accounts[0], - gasLimit: 2000000 - }); - - const accountBalanceAfter = await web3.eth.getBalance(accounts[1]); - - assert.equal((new BigNumber(accountBalanceAfter)).minus(accountBalanceBefore).toString(10), (new BigNumber(amount)).toString(10)) - }) - - it("test new functionality (fee token transfers)", async function () { - const accounts = await web3.eth.getAccounts(); - const mintAmount = "10000000000000000000"; - const amount = "1000000000000000000"; - const fee = "100000000000000000"; - - // mint and approve tokens - const deployFeeToken = await FeeToken.new(); - const token = new web3.eth.Contract(FeeToken.abi, deployFeeToken.address); - await token.methods.initialize( - "Test", - "TST", - "18", - "123", - accounts[0], - "0", - "0x0000000000000000000000000000000000000000000000000000000000000000" - ).send({ - value: 0, - from: accounts[0], - gasLimit: 2000000 - }); - await token.methods.mint(accounts[0], mintAmount).send({ - value: 0, - from: accounts[0], - gasLimit: 2000000 - }); - await token.methods.approve(bridgeProxy.options.address, mintAmount).send({ - value: 0, - from: accounts[0], - gasLimit: 2000000 - }); - - const bridgeBalanceBefore = await token.methods.balanceOf(bridgeProxy.options.address).call(); - - assert.equal(bridgeBalanceBefore.toString(10), "0"); - - await bridgeProxy.methods.transferTokens( - deployFeeToken.address, - amount, - "10", - "0x000000000000000000000000b7a2211e8165943192ad04f5dd21bedc29ff003e", - fee, - "234" - ).send({ - value: 0, - from: accounts[0], - gasLimit: 2000000 - }); - - const bridgeBalanceAfter = await token.methods.balanceOf(bridgeProxy.options.address).call(); - - let feeAmount = new BigNumber(amount).times(9).div(10) - - assert.equal(bridgeBalanceAfter.toString(10), feeAmount); - - // check transfer log - const wormhole = new web3.eth.Contract(WormholeImplementationFullABI, Wormhole.address); - const log = (await wormhole.getPastEvents('LogMessagePublished', { - fromBlock: 'latest' - }))[0].returnValues - - assert.equal(log.sender, bridgeProxy.options.address) - - assert.equal(log.payload.length - 2, 266); - - // payload id - assert.equal(log.payload.substr(2, 2), "01"); - - // amount - assert.equal(log.payload.substr(4, 64), web3.eth.abi.encodeParameter("uint256", feeAmount.div(1e10).toString()).substring(2)); - - // token - assert.equal(log.payload.substr(68, 64), web3.eth.abi.encodeParameter("address", deployFeeToken.address).substring(2)); - - // chain id - assert.equal(log.payload.substr(132, 4), web3.eth.abi.encodeParameter("uint16", testChainId).substring(2 + 64 - 4)) - - // to - assert.equal(log.payload.substr(136, 64), "000000000000000000000000b7a2211e8165943192ad04f5dd21bedc29ff003e"); - - // to chain id - assert.equal(log.payload.substr(200, 4), web3.eth.abi.encodeParameter("uint16", 10).substring(2 + 64 - 4)) - - // fee - assert.equal(log.payload.substr(204, 64), web3.eth.abi.encodeParameter("uint256", new BigNumber(fee).div(1e10).toString()).substring(2)) - }) - - it("should accept a further upgrade", async function () { - const mock = await MockBridgeImplementation.new(); - - let data = [ - "0x", - "000000000000000000000000000000000000000000546f6b656e427269646765", - "02", - web3.eth.abi.encodeParameter("uint16", testChainId).substring(2 + (64 - 4)), - web3.eth.abi.encodeParameter("address", mock.address).substring(2), - ].join('') - - const vm = await signAndEncodeVM( - 1, - 1, - testGovernanceChainId, - testGovernanceContract, - 0, - data, - [ - testSigner1PK - ], - 0, - 0 - ); - - let before = await web3.eth.getStorageAt(bridgeProxy.options.address, "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc"); - - assert.equal(before.toLowerCase(), upgradeDeployedAt.toLowerCase()); - - await bridgeProxy.methods.upgrade("0x" + vm).send({ - value: 0, - from: accounts[0], - gasLimit: 2000000 - }); - - let after = await web3.eth.getStorageAt(bridgeProxy.options.address, "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc"); - - assert.equal(after.toLowerCase(), mock.address.toLowerCase()); - - const mockImpl = new web3.eth.Contract(MockBridgeImplementation.abi, bridgeProxy.options.address); - - let isUpgraded = await mockImpl.methods.testNewImplementationActive().call(); - - assert.ok(isUpgraded); - }) -}); - -const signAndEncodeVM = async function ( - timestamp, - nonce, - emitterChainId, - emitterAddress, - sequence, - data, - signers, - guardianSetIndex, - consistencyLevel -) { - const body = [ - web3.eth.abi.encodeParameter("uint32", timestamp).substring(2 + (64 - 8)), - web3.eth.abi.encodeParameter("uint32", nonce).substring(2 + (64 - 8)), - web3.eth.abi.encodeParameter("uint16", emitterChainId).substring(2 + (64 - 4)), - web3.eth.abi.encodeParameter("bytes32", emitterAddress).substring(2), - web3.eth.abi.encodeParameter("uint64", sequence).substring(2 + (64 - 16)), - web3.eth.abi.encodeParameter("uint8", consistencyLevel).substring(2 + (64 - 2)), - data.substr(2) - ] - - const hash = web3.utils.soliditySha3(web3.utils.soliditySha3("0x" + body.join(""))) - - let signatures = ""; - - for (let i in signers) { - const ec = new elliptic.ec("secp256k1"); - const key = ec.keyFromPrivate(signers[i]); - const signature = key.sign(hash.substr(2), {canonical: true}); - - const packSig = [ - web3.eth.abi.encodeParameter("uint8", i).substring(2 + (64 - 2)), - zeroPadBytes(signature.r.toString(16), 32), - zeroPadBytes(signature.s.toString(16), 32), - web3.eth.abi.encodeParameter("uint8", signature.recoveryParam).substr(2 + (64 - 2)), - ] - - signatures += packSig.join("") - } - - const vm = [ - web3.eth.abi.encodeParameter("uint8", 1).substring(2 + (64 - 2)), - web3.eth.abi.encodeParameter("uint32", guardianSetIndex).substring(2 + (64 - 8)), - web3.eth.abi.encodeParameter("uint8", signers.length).substring(2 + (64 - 2)), - - signatures, - body.join("") - ].join(""); - - return vm -} - -function zeroPadBytes(value, length) { - while (value.length < 2 * length) { - value = "0" + value; - } - return value; -} diff --git a/ethereum/test/wormhole.js b/ethereum/test/wormhole.js deleted file mode 100644 index ce8aca31f4..0000000000 --- a/ethereum/test/wormhole.js +++ /dev/null @@ -1,1229 +0,0 @@ -const jsonfile = require('jsonfile'); -const elliptic = require('elliptic'); -const path = require('path'); - -const Wormhole = artifacts.require("Wormhole"); -const MockImplementation = artifacts.require("MockImplementation"); -const Implementation = artifacts.require("Implementation"); -const MockBatchedVAASender = artifacts.require("MockBatchedVAASender"); - -const testSigner1PK = "cfb12303a19cde580bb4dd771639b0d26bc68353645571a8cff516ab2ee113a0"; -const testSigner2PK = "892330666a850761e7370376430bb8c2aa1494072d3bfeaed0c4fa3d5a9135fe"; -const testSigner3PK = "87b45997ea577b93073568f06fc4838cffc1d01f90fc4d57f936957f3c4d99fb"; -const testBadSigner1PK = "87b45997ea577b93073568f06fc4838cffc1d01f90fc4d57f936957f3c4d99fc"; - - -const core = '0x' + Buffer.from("Core").toString("hex").padStart(64, 0) -const actionContractUpgrade = "01" -const actionGuardianSetUpgrade = "02" -const actionMessageFee = "03" -const actionTransferFee = "04" -const actionRecoverChainId = "05" - - -const ImplementationFullABI = jsonfile.readFileSync("build/contracts/Implementation.json").abi - -const fakeChainId = 1337; -const fakeEvmChainId = 10001; - -let lastDeployed; - -// Taken from https://medium.com/fluidity/standing-the-time-of-test-b906fcc374a9 -advanceTimeAndBlock = async (time) => { - await advanceTime(time); - await advanceBlock(); - - return Promise.resolve(web3.eth.getBlock('latest')); -} - -advanceTime = (time) => { - return new Promise((resolve, reject) => { - web3.currentProvider.send({ - jsonrpc: "2.0", - method: "evm_increaseTime", - params: [time], - id: new Date().getTime() - }, (err, result) => { - if (err) { - return reject(err); - } - return resolve(result); - }); - }); -} - -advanceBlock = () => { - return new Promise((resolve, reject) => { - web3.currentProvider.send({ - jsonrpc: "2.0", - method: "evm_mine", - id: new Date().getTime() - }, (err, result) => { - if (err) { - return reject(err); - } - const newBlockHash = web3.eth.getBlock('latest').hash; - - return resolve(newBlockHash) - }); - }); -} - -contract("Wormhole", function () { - const testSigner1 = web3.eth.accounts.privateKeyToAccount(testSigner1PK); - const testSigner2 = web3.eth.accounts.privateKeyToAccount(testSigner2PK); - const testSigner3 = web3.eth.accounts.privateKeyToAccount(testSigner3PK); - const testChainId = "2"; - const testEvmChainId = "1337"; - const testGovernanceChainId = "1"; - const testGovernanceContract = "0x0000000000000000000000000000000000000000000000000000000000000004"; - - it("should be initialized with the correct signers and values", async function () { - const initialized = new web3.eth.Contract(ImplementationFullABI, Wormhole.address); - - const index = await initialized.methods.getCurrentGuardianSetIndex().call(); - const set = (await initialized.methods.getGuardianSet(index).call()); - - // check set - assert.lengthOf(set[0], 1); - assert.equal(set[0][0], testSigner1.address); - - // check expiration - assert.equal(set.expirationTime, "0"); - - // chain id - const chainId = await initialized.methods.chainId().call(); - assert.equal(chainId, testChainId); - - // evm chain id - const evmChainId = await initialized.methods.evmChainId().call(); - assert.equal(evmChainId, testEvmChainId); - - // governance - const governanceChainId = await initialized.methods.governanceChainId().call(); - assert.equal(governanceChainId, testGovernanceChainId); - const governanceContract = await initialized.methods.governanceContract().call(); - assert.equal(governanceContract, testGovernanceContract); - }) - - it("should log a published message correctly", async function () { - const initialized = new web3.eth.Contract(ImplementationFullABI, Wormhole.address); - const accounts = await web3.eth.getAccounts(); - - const log = await initialized.methods.publishMessage( - "0x123", - "0x123321", - 32 - ).send({ - value: 0, // fees are set to 0 initially - from: accounts[0] - }) - - assert.equal(log.events.LogMessagePublished.returnValues.sender.toString(), accounts[0]); - assert.equal(log.events.LogMessagePublished.returnValues.sequence.toString(), "0"); - assert.equal(log.events.LogMessagePublished.returnValues.nonce, 291); - assert.equal(log.events.LogMessagePublished.returnValues.payload.toString(), "0x123321"); - assert.equal(log.events.LogMessagePublished.returnValues.consistencyLevel, 32); - }) - - it("should log sequential sequence numbers for multi-VAA transactions", async function () { - const initialized = new web3.eth.Contract(ImplementationFullABI, Wormhole.address); - const accounts = await web3.eth.getAccounts(); - - const mockIntegration = new web3.eth.Contract(MockBatchedVAASender.abi, MockBatchedVAASender.address); - - await mockIntegration.methods.sendMultipleMessages( - "0x1", - "0x1", - 32 - ).send({ - value: 0, // fees are set to 0 initially - from: accounts[0] - }); - - const events = (await initialized.getPastEvents('LogMessagePublished', { - fromBlock: 'latest' - })) - - let firstSequence = Number(events[0].returnValues.sequence.toString()) - - let secondSequence = Number(events[1].returnValues.sequence.toString()) - assert.equal(secondSequence, firstSequence + 1); - - let thirdSequence = Number(events[2].returnValues.sequence.toString()) - assert.equal(thirdSequence, secondSequence + 1); - }) - - it("should increase the sequence for an account", async function () { - const initialized = new web3.eth.Contract(ImplementationFullABI, Wormhole.address); - const accounts = await web3.eth.getAccounts(); - - const log = await initialized.methods.publishMessage( - "0x1", - "0x1", - 32 - ).send({ - value: 0, // fees are set to 0 initially - from: accounts[0] - }) - - assert.equal(log.events.LogMessagePublished.returnValues.sequence.toString(), "1"); - }) - - it("should get the same nonce from all VAAs produced by a transaction", async function () { - const initialized = new web3.eth.Contract(ImplementationFullABI, Wormhole.address); - const accounts = await web3.eth.getAccounts(); - - const mockIntegration = new web3.eth.Contract(MockBatchedVAASender.abi, MockBatchedVAASender.address); - - const nonce = Math.round(Date.now() / 1000); - const nonceHex = nonce.toString(16) - - await mockIntegration.methods.sendMultipleMessages( - "0x" + nonceHex, - "0x1", - 32 - ).send({ - value: 0, // fees are set to 0 initially - from: accounts[0] - }); - - const events = (await initialized.getPastEvents('LogMessagePublished', { - fromBlock: 'latest' - })) - - assert.equal(events[0].returnValues.nonce, nonce); - assert.equal(events[1].returnValues.nonce, nonce); - assert.equal(events[2].returnValues.nonce, nonce); - }) - - it("parses VMs correctly", async function () { - const initialized = new web3.eth.Contract(ImplementationFullABI, Wormhole.address); - - const timestamp = 1000; - const nonce = 1001; - const emitterChainId = 11; - const emitterAddress = "0x0000000000000000000000000000000000000000000000000000000000000eee" - const data = "0xaaaaaa"; - - const vm = await signAndEncodeVM( - timestamp, - nonce, - emitterChainId, - emitterAddress, - 1337, - data, - [ - testSigner1PK, - ], - 0, - 2 - ); - - let result - try { - result = await initialized.methods.parseAndVerifyVM("0x" + vm).call(); - } catch (err) { - console.log(err) - assert.fail("parseAndVerifyVM failed") - } - - assert.equal(result.vm.version, 1); - assert.equal(result.vm.timestamp, timestamp); - assert.equal(result.vm.nonce, nonce); - assert.equal(result.vm.emitterChainId, emitterChainId); - assert.equal(result.vm.emitterAddress, emitterAddress); - assert.equal(result.vm.payload, data); - assert.equal(result.vm.guardianSetIndex, 0); - assert.equal(result.vm.sequence, 1337); - assert.equal(result.vm.consistencyLevel, 2); - - assert.equal(result.valid, true); - - assert.equal(result.reason, ""); - }) - - - it("should fail quorum on VMs with no signers", async function () { - const initialized = new web3.eth.Contract(ImplementationFullABI, Wormhole.address); - - const timestamp = 1000; - const nonce = 1001; - const emitterChainId = 11; - const emitterAddress = "0x0000000000000000000000000000000000000000000000000000000000000eee" - const data = "0xaaaaaa"; - - const vm = await signAndEncodeVM( - timestamp, - nonce, - emitterChainId, - emitterAddress, - 1337, - data, - [], // no valid signers present - 0, - 2 - ); - - let result = await initialized.methods.parseAndVerifyVM("0x" + vm).call(); - assert.equal(result[1], false) - assert.equal(result[2], "no quorum") - }) - - - it("should fail to verify on VMs with bad signer", async function () { - const initialized = new web3.eth.Contract(ImplementationFullABI, Wormhole.address); - - const timestamp = 1000; - const nonce = 1001; - const emitterChainId = 11; - const emitterAddress = "0x0000000000000000000000000000000000000000000000000000000000000eee" - const data = "0xaaaaaa"; - - const vm = await signAndEncodeVM( - timestamp, - nonce, - emitterChainId, - emitterAddress, - 1337, - data, - [ - testBadSigner1PK, // not a valid signer - ], - 0, - 2 - ); - - let result = await initialized.methods.parseAndVerifyVM("0x" + vm).call(); - assert.equal(result[1], false) - assert.equal(result[2], "VM signature invalid") - }) - - it("should error on VMs with invalid guardian set index", async function () { - const initialized = new web3.eth.Contract(ImplementationFullABI, Wormhole.address); - - const timestamp = 1000; - const nonce = 1001; - const emitterChainId = 11; - const emitterAddress = "0x0000000000000000000000000000000000000000000000000000000000000eee" - const data = "0xaaaaaa"; - - const vm = await signAndEncodeVM( - timestamp, - nonce, - emitterChainId, - emitterAddress, - 1337, - data, - [ - testSigner1PK, - ], - 200, - 2 - ); - - let result = await initialized.methods.parseAndVerifyVM("0x" + vm).call(); - assert.equal(result[1], false) - assert.equal(result[2], "invalid guardian set") - }) - - it("should revert on VMs with duplicate non-monotonic signature indexes", async function () { - const initialized = new web3.eth.Contract(ImplementationFullABI, Wormhole.address); - - const timestamp = 1000; - const nonce = 1001; - const emitterChainId = 11; - const emitterAddress = "0x0000000000000000000000000000000000000000000000000000000000000eee" - const data = "0xaaaaaa"; - - const vm = await signAndEncodeVMFixedIndex( - timestamp, - nonce, - emitterChainId, - emitterAddress, - 1337, - data, - [ - testSigner1PK, - testSigner1PK, - testSigner1PK, - ], - 0, - 2 - ); - - try { - await initialized.methods.parseAndVerifyVM("0x" + vm).call(); - assert.fail("accepted signature indexes being the same in a VM"); - } catch (e) { - assert.include(e.message, 'revert signature indices must be ascending') - } - }) - - - it("should set and enforce fees", async function () { - const initialized = new web3.eth.Contract(ImplementationFullABI, Wormhole.address); - const accounts = await web3.eth.getAccounts(); - - const timestamp = 1000; - const nonce = 1001; - const emitterChainId = testGovernanceChainId; - const emitterAddress = testGovernanceContract - - data = [ - //Core - core, - // Action 3 (Set Message Fee) - actionMessageFee, - // ChainID - web3.eth.abi.encodeParameter("uint16", testChainId).substring(2 + (64 - 4)), - // Message Fee - web3.eth.abi.encodeParameter("uint256", 1111).substring(2), - ].join('') - - const vm = await signAndEncodeVM( - timestamp, - nonce, - emitterChainId, - emitterAddress, - 0, - data, - [ - testSigner1PK, - ], - 0, - 2 - ); - - - let before = await initialized.methods.messageFee().call(); - - let set = await initialized.methods.submitSetMessageFee("0x" + vm).send({ - value: 0, - from: accounts[0], - gasLimit: 1000000 - }); - - let after = await initialized.methods.messageFee().call(); - - assert.notEqual(before, after); - assert.equal(after, 1111); - - // test message publishing - await initialized.methods.publishMessage( - "0x123", - "0x123321", - 32 - ).send({ - from: accounts[0], - value: 1111 - }) - - let failed = false; - try { - await initialized.methods.publishMessage( - "0x123", - "0x123321", - 32 - ).send({ - value: 1110, - from: accounts[0] - }) - } catch (e) { - failed = true - } - - assert.equal(failed, true); - }) - - it("should transfer out collected fees", async function () { - const initialized = new web3.eth.Contract(ImplementationFullABI, Wormhole.address); - const accounts = await web3.eth.getAccounts(); - - const receiver = "0x" + zeroPadBytes(Math.floor(Math.random() * Number.MAX_SAFE_INTEGER).toString(16), 20); - - const timestamp = 1000; - const nonce = 1001; - const emitterChainId = testGovernanceChainId; - const emitterAddress = testGovernanceContract - - data = [ - // Core - core, - // Action 4 (Transfer Fees) - actionTransferFee, - // ChainID - web3.eth.abi.encodeParameter("uint16", testChainId).substring(2 + (64 - 4)), - // Amount - web3.eth.abi.encodeParameter("uint256", 11).substring(2), - // Recipient - web3.eth.abi.encodeParameter("address", receiver).substring(2), - ].join('') - - const vm = await signAndEncodeVM( - timestamp, - nonce, - emitterChainId, - emitterAddress, - 0, - data, - [ - testSigner1PK, - ], - 0, - 2 - ); - - let WHBefore = await web3.eth.getBalance(Wormhole.address); - let receiverBefore = await web3.eth.getBalance(receiver); - - let set = await initialized.methods.submitTransferFees("0x" + vm).send({ - value: 0, - from: accounts[0], - gasLimit: 1000000 - }); - - let WHAfter = await web3.eth.getBalance(Wormhole.address); - let receiverAfter = await web3.eth.getBalance(receiver); - - assert.equal(WHBefore - WHAfter, 11); - assert.equal(receiverAfter - receiverBefore, 11); - }) - - it("should revert when submitting a new guardian set with the zero address", async function () { - const initialized = new web3.eth.Contract(ImplementationFullABI, Wormhole.address); - const accounts = await web3.eth.getAccounts(); - - const timestamp = 1000; - const nonce = 1001; - const emitterChainId = testGovernanceChainId; - const emitterAddress = testGovernanceContract; - const zeroAddress = "0x0000000000000000000000000000000000000000"; - - let oldIndex = Number(await initialized.methods.getCurrentGuardianSetIndex().call()); - - data = [ - // Core - core, - // Action 2 (Guardian Set Upgrade) - actionGuardianSetUpgrade, - web3.eth.abi.encodeParameter("uint16", testChainId).substring(2 + (64 - 4)), - web3.eth.abi.encodeParameter("uint32", oldIndex + 1).substring(2 + (64 - 8)), - web3.eth.abi.encodeParameter("uint8", 3).substring(2 + (64 - 2)), - web3.eth.abi.encodeParameter("address", testSigner1.address).substring(2 + (64 - 40)), - web3.eth.abi.encodeParameter("address", testSigner2.address).substring(2 + (64 - 40)), - web3.eth.abi.encodeParameter("address", zeroAddress).substring(2 + (64 - 40)), - ].join('') - - const vm = await signAndEncodeVM( - timestamp, - nonce, - emitterChainId, - emitterAddress, - 0, - data, - [ - testSigner1PK - ], - 0, - 2 - ); - - // try to submit a new guardian set including the zero address - failed = false; - try { - await initialized.methods.submitNewGuardianSet("0x" + vm).send({ - value: 0, - from: accounts[0], - gasLimit: 1000000 - }); - } catch (e) { - assert.include(e.message, "revert Invalid key"); - failed = true; - } - - assert.ok(failed); - }) - - it("should accept a new guardian set", async function () { - const initialized = new web3.eth.Contract(ImplementationFullABI, Wormhole.address); - const accounts = await web3.eth.getAccounts(); - - const timestamp = 1000; - const nonce = 1001; - const emitterChainId = testGovernanceChainId; - const emitterAddress = testGovernanceContract - - let oldIndex = Number(await initialized.methods.getCurrentGuardianSetIndex().call()); - - data = [ - // Core - core, - // Action 2 (Guardian Set Upgrade) - actionGuardianSetUpgrade, - web3.eth.abi.encodeParameter("uint16", testChainId).substring(2 + (64 - 4)), - web3.eth.abi.encodeParameter("uint32", oldIndex + 1).substring(2 + (64 - 8)), - web3.eth.abi.encodeParameter("uint8", 3).substring(2 + (64 - 2)), - web3.eth.abi.encodeParameter("address", testSigner1.address).substring(2 + (64 - 40)), - web3.eth.abi.encodeParameter("address", testSigner2.address).substring(2 + (64 - 40)), - web3.eth.abi.encodeParameter("address", testSigner3.address).substring(2 + (64 - 40)), - ].join('') - - const vm = await signAndEncodeVM( - timestamp, - nonce, - emitterChainId, - emitterAddress, - 0, - data, - [ - testSigner1PK, - ], - 0, - 2 - ); - - let set = await initialized.methods.submitNewGuardianSet("0x" + vm).send({ - value: 0, - from: accounts[0], - gasLimit: 1000000 - }); - - let index = await initialized.methods.getCurrentGuardianSetIndex().call(); - - assert.equal(oldIndex + 1, index); - - assert.equal(index, 1); - - let guardians = await initialized.methods.getGuardianSet(index).call(); - - assert.equal(guardians.expirationTime, 0); - - assert.lengthOf(guardians[0], 3); - assert.equal(guardians[0][0], testSigner1.address); - assert.equal(guardians[0][1], testSigner2.address); - assert.equal(guardians[0][2], testSigner3.address); - - let oldGuardians = await initialized.methods.getGuardianSet(oldIndex).call(); - - const time = (await web3.eth.getBlock("latest")).timestamp; - - // old guardian set expiry is set - assert.ok( - oldGuardians.expirationTime > Number(time) + 86000 - && oldGuardians.expirationTime < Number(time) + 88000 - ); - }) - - it("should accept smart contract upgrades", async function () { - const initialized = new web3.eth.Contract(ImplementationFullABI, Wormhole.address); - const accounts = await web3.eth.getAccounts(); - - const mock = await MockImplementation.new(); - - const timestamp = 1000; - const nonce = 1001; - const emitterChainId = testGovernanceChainId; - const emitterAddress = testGovernanceContract - - data = [ - // Core - core, - // Action 1 (Contract Upgrade) - actionContractUpgrade, - // ChainID - web3.eth.abi.encodeParameter("uint16", testChainId).substring(2 + (64 - 4)), - // New Contract Address - web3.eth.abi.encodeParameter("address", mock.address).substring(2), - ].join('') - - const vm = await signAndEncodeVM( - timestamp, - nonce, - emitterChainId, - emitterAddress, - 0, - data, - [ - testSigner1PK, - testSigner2PK, - testSigner3PK - ], - 1, - 2 - ); - - let before = await web3.eth.getStorageAt(Wormhole.address, "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc"); - - assert.equal(BigInt(before), BigInt(Implementation.address)); - - let set = await initialized.methods.submitContractUpgrade("0x" + vm).send({ - value: 0, - from: accounts[0], - gasLimit: 1000000 - }); - - let after = await web3.eth.getStorageAt(Wormhole.address, "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc"); - - assert.equal(BigInt(after), BigInt(mock.address)); - - const mockImpl = new web3.eth.Contract(MockImplementation.abi, Wormhole.address); - - let isUpgraded = await mockImpl.methods.testNewImplementationActive().call(); - - assert.ok(isUpgraded); - lastDeployed = mock; - }) - - it("should revert recover chain ID governance packets on canonical chains (non-fork)", async function () { - const initialized = new web3.eth.Contract(ImplementationFullABI, Wormhole.address); - const accounts = await web3.eth.getAccounts(); - - const timestamp = 1000; - const nonce = 1001; - const emitterChainId = testGovernanceChainId; - const emitterAddress = testGovernanceContract - - data = [ - // Core - core, - // Action 5 (Recover Chain ID) - actionRecoverChainId, - // EvmChainID - web3.eth.abi.encodeParameter("uint256", 1).substring(2), - // NewChainID - web3.eth.abi.encodeParameter("uint16", testChainId).substring(2 + (64 - 4)), - ].join('') - - const vm = await signAndEncodeVM( - timestamp, - nonce, - emitterChainId, - emitterAddress, - 0, - data, - [ - testSigner1PK, - testSigner2PK, - testSigner3PK - ], - 1, - 2 - ); - - try { - await initialized.methods.submitRecoverChainId("0x" + vm).send({ - value: 0, - from: accounts[0], - gasLimit: 1000000 - }); - assert.fail("recover chain ID governance packet on supported chain accepted") - } catch (e) { - assert.include(e.message, "revert not a fork") - } - }) - - it("should revert governance packets from old guardian set", async function () { - const initialized = new web3.eth.Contract(ImplementationFullABI, Wormhole.address); - const accounts = await web3.eth.getAccounts(); - - data = [ - // Core - core, - // Action 4 (Transfer Fee) - actionTransferFee, - // ChainID - web3.eth.abi.encodeParameter("uint16", testChainId).substring(2 + (64 - 4)), - // Amount - web3.eth.abi.encodeParameter("uint256", 1).substring(2), - // Recipient - web3.eth.abi.encodeParameter("address", "0x0000000000000000000000000000000000000000").substring(2), - ].join('') - - const vm = await signAndEncodeVM( - 0, - 0, - testGovernanceChainId, - testGovernanceContract, - 0, - data, - [ - testSigner1PK, - ], - 0, - 2 - ); - - let failed = false; - try { - await initialized.methods.submitTransferFees("0x" + vm).send({ - value: 0, - from: accounts[0], - gasLimit: 1000000 - }); - assert.fail("governance packet of old guardian set accepted") - } catch (e) { - assert.include(e.message, "revert not signed by current guardian set") - } - }) - - it("should time out old guardians", async function () { - const initialized = new web3.eth.Contract(ImplementationFullABI, Wormhole.address); - - const timestamp = 1000; - const nonce = 1001; - const emitterChainId = 11; - const emitterAddress = "0x0000000000000000000000000000000000000000000000000000000000000eee" - const data = "0xaaaaaa"; - - const vm = await signAndEncodeVM( - timestamp, - nonce, - emitterChainId, - emitterAddress, - 0, - data, - [ - testSigner1PK, - ], - 0, - 2 - ); - - // this should pass - const current = await initialized.methods.parseAndVerifyVM("0x" + vm).call(); - - assert.equal(current.valid, true) - - await advanceTimeAndBlock(100000); - - const expired = await initialized.methods.parseAndVerifyVM("0x" + vm).call(); - - assert.equal(expired.valid, false) - }) - - it("should revert governance packets from wrong governance chain", async function () { - const initialized = new web3.eth.Contract(ImplementationFullABI, Wormhole.address); - const accounts = await web3.eth.getAccounts(); - - data = [ - // Core - core, - // Action 4 (set fees) - actionTransferFee, - // ChainID - web3.eth.abi.encodeParameter("uint16", testChainId).substring(2 + (64 - 4)), - // Amount - web3.eth.abi.encodeParameter("uint256", 1).substring(2), - // Recipient - web3.eth.abi.encodeParameter("address", "0x0000000000000000000000000000000000000000").substring(2), - ].join('') - - const vm = await signAndEncodeVM( - 0, - 0, - 999, - testGovernanceContract, - 0, - data, - [ - testSigner1PK, - testSigner2PK, - testSigner3PK, - ], - 1, - 2 - ); - - try { - await initialized.methods.submitTransferFees("0x" + vm).send({ - value: 0, - from: accounts[0], - gasLimit: 1000000 - }); - assert.fail("governance packet from wrong governance chain accepted") - } catch (e) { - assert.include(e.message, "revert wrong governance chain") - } - }) - - it("should revert governance packets from wrong governance contract", async function () { - const initialized = new web3.eth.Contract(ImplementationFullABI, Wormhole.address); - const accounts = await web3.eth.getAccounts(); - - data = [ - // Core - core, - // Action 4 (Transfer Fee) - actionTransferFee, - web3.eth.abi.encodeParameter("uint16", testChainId).substring(2 + (64 - 4)), - web3.eth.abi.encodeParameter("uint256", 1).substring(2), - web3.eth.abi.encodeParameter("address", "0x0000000000000000000000000000000000000000").substring(2), - ].join('') - - const vm = await signAndEncodeVM( - 0, - 0, - testGovernanceChainId, - core, - 0, - data, - [ - testSigner1PK, - testSigner2PK, - testSigner3PK, - ], - 1, - 2 - ); - - try { - await initialized.methods.submitTransferFees("0x" + vm).send({ - value: 0, - from: accounts[0], - gasLimit: 1000000 - }); - assert.fail("governance packet from wrong governance contract accepted") - } catch (e) { - assert.include(e.message, "revert wrong governance contract") - } - }) - - it("should revert on governance packets that already have been applied", async function () { - const initialized = new web3.eth.Contract(ImplementationFullABI, Wormhole.address); - const accounts = await web3.eth.getAccounts(); - - data = [ - // Core - core, - // Action 4 (Transfer Fee) - actionTransferFee, - // ChainID - web3.eth.abi.encodeParameter("uint16", testChainId).substring(2 + (64 - 4)), - // Amount - web3.eth.abi.encodeParameter("uint256", 1).substring(2), - // Recipient - web3.eth.abi.encodeParameter("address", "0x0000000000000000000000000000000000000000").substring(2), - ].join('') - - const vm = await signAndEncodeVM( - 0, - 0, - testGovernanceChainId, - testGovernanceContract, - 0, - data, - [ - testSigner1PK, - testSigner2PK, - testSigner3PK, - ], - 1, - 2 - ); - - await initialized.methods.submitTransferFees("0x" + vm).send({ - value: 0, - from: accounts[0], - gasLimit: 1000000 - }); - - try { - await initialized.methods.submitTransferFees("0x" + vm).send({ - value: 0, - from: accounts[0], - gasLimit: 1000000 - }); - - assert.fail("governance packet accepted twice") - } catch (e) { - assert.include(e.message, "revert governance action already consumed") - } - }) - - it("should reject smart contract upgrades on forks", async function () { - const mockInitialized = new web3.eth.Contract(MockImplementation.abi, Wormhole.address); - const initialized = new web3.eth.Contract(ImplementationFullABI, Wormhole.address); - const accounts = await web3.eth.getAccounts(); - - const mock = await MockImplementation.new(); - - const timestamp = 1000; - const nonce = 1001; - const emitterChainId = testGovernanceChainId; - const emitterAddress = testGovernanceContract - - // simulate a fork - await mockInitialized.methods.testOverwriteEVMChainId(fakeChainId, fakeEvmChainId).send({ - value: 0, - from: accounts[0], - gasLimit: 1000000 - }); - - const chainId = await initialized.methods.chainId().call(); - assert.equal(chainId, fakeChainId); - - const evmChainId = await initialized.methods.evmChainId().call(); - assert.equal(evmChainId, fakeEvmChainId); - - data = [ - // Core - core, - // Action 1 (Contract Upgrade) - actionContractUpgrade, - // ChainID - web3.eth.abi.encodeParameter("uint16", testChainId).substring(2 + (64 - 4)), - // New Contract Address - web3.eth.abi.encodeParameter("address", mock.address).substring(2), - ].join('') - - const vm = await signAndEncodeVM( - timestamp, - nonce, - emitterChainId, - emitterAddress, - 0, - data, - [ - testSigner1PK, - testSigner2PK, - testSigner3PK - ], - 1, - 2 - ); - - try { - await initialized.methods.submitContractUpgrade("0x" + vm).send({ - value: 0, - from: accounts[0], - gasLimit: 1000000 - }); - - assert.fail("governance packet accepted") - } catch (e) { - assert.include(e.message, "revert invalid fork") - } - }) - - it("should allow recover chain ID governance packets forks", async function () { - const initialized = new web3.eth.Contract(ImplementationFullABI, Wormhole.address); - const accounts = await web3.eth.getAccounts(); - - const timestamp = 1000; - const nonce = 1001; - const emitterChainId = testGovernanceChainId; - const emitterAddress = testGovernanceContract; - - data = [ - // Core - core, - // Action 5 (Recover Chain ID) - actionRecoverChainId, - // EvmChainID - web3.eth.abi.encodeParameter("uint256", testEvmChainId).substring(2), - // NewChainID - web3.eth.abi.encodeParameter("uint16", testChainId).substring(2 + (64 - 4)), - ].join('') - - const vm = await signAndEncodeVM( - timestamp, - nonce, - emitterChainId, - emitterAddress, - 0, - data, - [ - testSigner1PK, - testSigner2PK, - testSigner3PK - ], - 1, - 2 - ); - - await initialized.methods.submitRecoverChainId("0x" + vm).send({ - value: 0, - from: accounts[0], - gasLimit: 1000000 - }); - - const newChainId = await initialized.methods.chainId().call(); - assert.equal(newChainId, testChainId); - - const newEvmChainId = await initialized.methods.evmChainId().call(); - assert.equal(newEvmChainId, testEvmChainId); - }) - - it("should accept smart contract upgrades after chain ID has been recovered", async function () { - const initialized = new web3.eth.Contract(ImplementationFullABI, Wormhole.address); - const accounts = await web3.eth.getAccounts(); - - const mock = await MockImplementation.new(); - - const timestamp = 1000; - const nonce = 1001; - const emitterChainId = testGovernanceChainId; - const emitterAddress = testGovernanceContract - - data = [ - // Core - core, - // Action 1 (Contract Upgrade) - actionContractUpgrade, - // ChainID - web3.eth.abi.encodeParameter("uint16", testChainId).substring(2 + (64 - 4)), - // New Contract Address - web3.eth.abi.encodeParameter("address", mock.address).substring(2), - ].join('') - - const vm = await signAndEncodeVM( - timestamp, - nonce, - emitterChainId, - emitterAddress, - 0, - data, - [ - testSigner1PK, - testSigner2PK, - testSigner3PK - ], - 1, - 2 - ); - - let before = await web3.eth.getStorageAt(Wormhole.address, "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc"); - - assert.equal(BigInt(before), BigInt(lastDeployed.address)); - - let set = await initialized.methods.submitContractUpgrade("0x" + vm).send({ - value: 0, - from: accounts[0], - gasLimit: 1000000 - }); - - let after = await web3.eth.getStorageAt(Wormhole.address, "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc"); - - assert.equal(BigInt(after), BigInt(mock.address)); - - const mockImpl = new web3.eth.Contract(MockImplementation.abi, Wormhole.address); - - let isUpgraded = await mockImpl.methods.testNewImplementationActive().call(); - - assert.ok(isUpgraded); - }) -}); - -const signAndEncodeVM = async function ( - timestamp, - nonce, - emitterChainId, - emitterAddress, - sequence, - data, - signers, - guardianSetIndex, - consistencyLevel -) { - const body = [ - web3.eth.abi.encodeParameter("uint32", timestamp).substring(2 + (64 - 8)), - web3.eth.abi.encodeParameter("uint32", nonce).substring(2 + (64 - 8)), - web3.eth.abi.encodeParameter("uint16", emitterChainId).substring(2 + (64 - 4)), - web3.eth.abi.encodeParameter("bytes32", emitterAddress).substring(2), - web3.eth.abi.encodeParameter("uint64", sequence).substring(2 + (64 - 16)), - web3.eth.abi.encodeParameter("uint8", consistencyLevel).substring(2 + (64 - 2)), - data.substr(2) - ] - - const hash = web3.utils.soliditySha3(web3.utils.soliditySha3("0x" + body.join(""))) - - let signatures = ""; - - for (let i in signers) { - const ec = new elliptic.ec("secp256k1"); - const key = ec.keyFromPrivate(signers[i]); - const signature = key.sign(hash.substr(2), { canonical: true }); - - const packSig = [ - web3.eth.abi.encodeParameter("uint8", i).substring(2 + (64 - 2)), - zeroPadBytes(signature.r.toString(16), 32), - zeroPadBytes(signature.s.toString(16), 32), - web3.eth.abi.encodeParameter("uint8", signature.recoveryParam).substr(2 + (64 - 2)), - ] - - signatures += packSig.join("") - } - - const vm = [ - web3.eth.abi.encodeParameter("uint8", 1).substring(2 + (64 - 2)), - web3.eth.abi.encodeParameter("uint32", guardianSetIndex).substring(2 + (64 - 8)), - web3.eth.abi.encodeParameter("uint8", signers.length).substring(2 + (64 - 2)), - - signatures, - body.join("") - ].join(""); - - return vm -} - -const signAndEncodeVMFixedIndex = async function ( - timestamp, - nonce, - emitterChainId, - emitterAddress, - sequence, - data, - signers, - guardianSetIndex, - consistencyLevel -) { - const body = [ - web3.eth.abi.encodeParameter("uint32", timestamp).substring(2 + (64 - 8)), - web3.eth.abi.encodeParameter("uint32", nonce).substring(2 + (64 - 8)), - web3.eth.abi.encodeParameter("uint16", emitterChainId).substring(2 + (64 - 4)), - web3.eth.abi.encodeParameter("bytes32", emitterAddress).substring(2), - web3.eth.abi.encodeParameter("uint64", sequence).substring(2 + (64 - 16)), - web3.eth.abi.encodeParameter("uint8", consistencyLevel).substring(2 + (64 - 2)), - data.substr(2) - ] - - const hash = web3.utils.soliditySha3(web3.utils.soliditySha3("0x" + body.join(""))) - - let signatures = ""; - - for (let i in signers) { - const ec = new elliptic.ec("secp256k1"); - const key = ec.keyFromPrivate(signers[i]); - const signature = key.sign(hash.substr(2), { canonical: true }); - - const packSig = [ - // Fixing the index to be zero to product a non-monotonic VM - web3.eth.abi.encodeParameter("uint8", 0).substring(2 + (64 - 2)), - zeroPadBytes(signature.r.toString(16), 32), - zeroPadBytes(signature.s.toString(16), 32), - web3.eth.abi.encodeParameter("uint8", signature.recoveryParam).substr(2 + (64 - 2)), - ] - - signatures += packSig.join("") - } - - const vm = [ - web3.eth.abi.encodeParameter("uint8", 1).substring(2 + (64 - 2)), - web3.eth.abi.encodeParameter("uint32", guardianSetIndex).substring(2 + (64 - 8)), - web3.eth.abi.encodeParameter("uint8", signers.length).substring(2 + (64 - 2)), - - signatures, - body.join("") - ].join(""); - - return vm -} - - -function zeroPadBytes(value, length) { - while (value.length < 2 * length) { - value = "0" + value; - } - return value; -} diff --git a/ethereum/truffle-config.js b/ethereum/truffle-config.js deleted file mode 100644 index aff1aff99f..0000000000 --- a/ethereum/truffle-config.js +++ /dev/null @@ -1,493 +0,0 @@ -require("dotenv").config({ path: ".env" }); -const HDWalletProvider = require("@truffle/hdwallet-provider"); -const KLAYHDWalletProvider = require("truffle-hdwallet-provider-klaytn"); - -module.exports = { - contracts_directory: - "contracts/{*.sol,bridge/{*.sol,interfaces/*.sol,token/*.sol,mock/*.sol,utils/*.sol},interfaces/IWormhole.sol,mock/*.sol,nft/{*.sol,interfaces/*.sol,token/*.sol,mock/*.sol}}", - networks: { - development: { - host: "127.0.0.1", - port: 8545, - network_id: "*", - }, - // test network is the same as development but allows us to omit certain migrations - test: { - host: "127.0.0.1", - port: 8545, - network_id: "*", - }, - ethereum: { - provider: () => - new HDWalletProvider(process.env.MNEMONIC, "https://rpc.ankr.com/eth"), - network_id: 1, - confirmations: 1, - timeoutBlocks: 200, - skipDryRun: false, - }, - rinkeby: { - provider: () => - new HDWalletProvider( - process.env.MNEMONIC, - "https://rpc.ankr.com/eth_rinkeby" - ), - network_id: 4, - gas: 5500000, - confirmations: 2, - timeoutBlocks: 200, - skipDryRun: true, - }, - ethereum_testnet: { - provider: () => { - return new HDWalletProvider( - process.env.MNEMONIC, - "https://rpc.ankr.com/eth_goerli" - ); - }, - network_id: "5", - }, - bsc: { - provider: () => { - return new HDWalletProvider( - process.env.MNEMONIC, - "https://bsc-dataseed.binance.org/" - ); - }, - network_id: "56", - gas: 70000000, - gasPrice: 8000000000, - }, - bsc_testnet: { - provider: () => - new HDWalletProvider( - process.env.MNEMONIC, - "https://data-seed-prebsc-1-s1.binance.org:8545/" - ), - network_id: "97", - }, - polygon: { - provider: () => { - return new HDWalletProvider( - process.env.MNEMONIC, - "https://polygon-rpc.com" - ); - }, - network_id: "137", - gas: 10000000, - gasPrice: 700000000000, - }, - polygon_testnet: { - provider: () => { - return new HDWalletProvider( - process.env.MNEMONIC, - "https://rpc.ankr.com/polygon_mumbai" - ); - }, - network_id: "80001", - }, - polygon_sepolia_testnet: { - provider: () => { - return new HDWalletProvider( - process.env.MNEMONIC, - "https://rpc-amoy.polygon.technology/" - ); - }, - network_id: "80002", - }, - avalanche: { - provider: () => { - return new HDWalletProvider( - process.env.MNEMONIC, - "https://api.avax.network/ext/bc/C/rpc" - ); - }, - network_id: "43114", - gas: 8000000, - gasPrice: 26000000000, - }, - avalanche_testnet: { - provider: () => - new HDWalletProvider( - process.env.MNEMONIC, - "https://api.avax-test.network/ext/bc/C/rpc" - ), - network_id: "43113", - }, - oasis: { - provider: () => { - return new HDWalletProvider( - process.env.MNEMONIC, - "https://emerald.oasis.dev/" - ); - }, - network_id: 42262, - }, - oasis_testnet: { - provider: () => { - return new HDWalletProvider( - process.env.MNEMONIC, - "https://testnet.emerald.oasis.dev" - ); - }, - network_id: 42261, - }, - aurora: { - provider: () => { - return new HDWalletProvider( - process.env.MNEMONIC, - "https://mainnet.aurora.dev" - ); - }, - network_id: 0x4e454152, - from: "0xE2e2d9E31d7e1CC1178Fe0d1c5950f6C809816a3", - }, - aurora_testnet: { - provider: () => { - return new HDWalletProvider( - process.env.MNEMONIC, - "https://testnet.aurora.dev" - ); - }, - network_id: 0x4e454153, - gas: 10000000, - from: "0x8F26A0025dcCc6Cfc07A7d38756280a10E295ad7", // public key - }, - fantom: { - provider: () => { - return new HDWalletProvider( - process.env.MNEMONIC, - "https://rpc.ftm.tools/" - ); - }, - network_id: 250, - gas: 8000000, - gasPrice: 3000000000000, - timeoutBlocks: 15000, - }, - fantom_testnet: { - provider: () => { - return new HDWalletProvider( - process.env.MNEMONIC, - "https://rpc.testnet.fantom.network/" - ); - }, - network_id: 0xfa2, - }, - karura: { - provider: () => { - return new HDWalletProvider( - process.env.MNEMONIC, - // NOTE: To use this local host, needed to run this: ENDPOINT_URL=wss://karura-rpc-1.aca-api.network npx @acala-network/eth-rpc-adapter@latest - // "http://localhost:8545" - "https://eth-rpc-karura.aca-api.network/" - ); - }, - network_id: 686, - // NOTE: run ./karura-gas-prices and update the following two values, otherwise the transactions will likely fail - gasPrice: "0x2fad8f03ea", - gasLimit: "0x329b140", - gas: "0x329b140", - }, - karura_testnet: { - provider: () => { - return new HDWalletProvider( - process.env.MNEMONIC, - "https://eth-rpc-karura-testnet.aca-staging.network" - ); - }, - network_id: 596, - gasPrice: "0x3006b003ea", - gasLimit: "0x329b140", - gas: "0x329b0dc", - }, - acala: { - provider: () => { - return new HDWalletProvider( - process.env.MNEMONIC, - // To use this local host, needed to run this: ENDPOINT_URL=wss://acala-rpc-0.aca-api.network npx @acala-network/eth-rpc-adapter@latest - //"http://localhost:8545" - "https://eth-rpc-acala.aca-api.network/" - ); - }, - network_id: 787, - gasPrice: "0x33a70303ea", - gasLimit: "0x6fc3540", - gas: "0x6fc3400", - }, - acala_testnet: { - provider: () => { - return new HDWalletProvider( - process.env.MNEMONIC, - "https://eth-rpc-acala-testnet.aca-staging.network" - ); - }, - network_id: 597, - gasPrice: "0x33a70303ea", // Query for gas parameters. - gas: "0x6fc3540", // This is the value reported as "gasLimit" in the query. - }, - klaytn: { - // Note that Klaytn works with version 5.3.14 of truffle, but not some of the newer versions. - provider: () => { - return new KLAYHDWalletProvider( - process.env.MNEMONIC, - "https://public-node-api.klaytnapi.com/v1/cypress" - ); - }, - network_id: "8217", //Klaytn mainnet's network id - gas: "8500000", - gasPrice: null, - }, - klaytn_testnet: { - // Note that Klaytn works with version 5.3.14 of truffle, but not some of the newer versions. - provider: () => { - return new HDWalletProvider( - process.env.MNEMONIC, - "https://api.baobab.klaytn.net:8651/" - ); - }, - network_id: "1001", - gas: "8500000", - gasPrice: null, - }, - celo: { - provider: () => { - return new HDWalletProvider( - process.env.MNEMONIC, - "https://forno.celo.org" - ); - }, - network_id: 42220, - gas: 8000000, - gasPrice: null, - }, - celo_testnet: { - provider: () => { - return new HDWalletProvider( - process.env.MNEMONIC, - "https://alfajores-forno.celo-testnet.org" - ); - }, - network_id: 44787, - }, - moonbeam: { - provider: () => { - return new HDWalletProvider( - process.env.MNEMONIC, - "https://rpc.api.moonbeam.network" - //"https://moonbeam.api.onfinality.io/public" // When the core was deployed on 7/21/2022, the one above kept timing out but this one worked. - ); - }, - network_id: 1284, - }, - moonbeam_testnet: { - provider: () => { - return new HDWalletProvider( - process.env.MNEMONIC, - "https://rpc.api.moonbase.moonbeam.network" - ); - }, - network_id: 1287, - gasPrice: 3000000000, // 3.0 gwei - timeoutBlocks: 15000, - }, - neon_testnet: { - provider: () => { - return new HDWalletProvider( - process.env.MNEMONIC, - "https://proxy.devnet.neonlabs.org/solana" - ); - }, - network_id: "*", - gas: 3000000000, - gasPrice: 443065000000, - }, - arbitrum: { - // Note that arbitrum did not work with our standard version of truffle (5.3.14), but it did work with the latest (5.5.22) - provider: () => { - return new HDWalletProvider( - process.env.MNEMONIC, - "https://arb1.arbitrum.io/rpc" - ); - }, - network_id: 42161, - }, - arbitrum_testnet: { - provider: () => { - return new HDWalletProvider( - process.env.MNEMONIC, - "https://goerli-rollup.arbitrum.io/rpc" - ); - }, - network_id: 421613, - }, - arbitrum_sepolia_testnet: { - provider: () => { - return new HDWalletProvider( - process.env.MNEMONIC, - "https://arbitrum-sepolia.publicnode.com" - //"https://sepolia-rollup.arbitrum.io/rpc" // This didn't work. - ); - }, - network_id: 421614, - }, - optimism: { - provider: () => { - return new HDWalletProvider( - process.env.MNEMONIC, - "https://mainnet.optimism.io" - ); - }, - network_id: 10, - }, - optimism_testnet: { - provider: () => { - return new HDWalletProvider( - process.env.MNEMONIC, - "https://rpc.ankr.com/optimism_testnet" - // "https://goerli.optimism.io" <== This didn't work for testnet - ); - }, - network_id: 420, - }, - optimism_sepolia_testnet: { - provider: () => { - return new HDWalletProvider( - process.env.MNEMONIC, - "https://rpc.ankr.com/optimism_sepolia" - // "https://sepolia.optimism.io/" <== This didn't work for testnet - ); - }, - network_id: 11155420, - }, - gnosis: { - provider: () => { - return new HDWalletProvider( - process.env.MNEMONIC, - "https://rpc.gnosischain.com/" - ); - }, - network_id: 100, - }, - gnosis_testnet: { - provider: () => { - return new HDWalletProvider( - process.env.MNEMONIC, - "https://sokol.poa.network/" - ); - }, - network_id: 77, - }, - base: { - provider: () => { - return new HDWalletProvider( - process.env.MNEMONIC, - "https://developer-access-mainnet.base.org" - ); - }, - network_id: 8453, - }, - base_testnet: { - provider: () => { - return new HDWalletProvider( - process.env.MNEMONIC, - "https://goerli.base.org" - ); - }, - network_id: 84531, - }, - base_sepolia_testnet: { - provider: () => { - return new HDWalletProvider( - process.env.MNEMONIC, - "https://sepolia.base.org" - ); - }, - network_id: 84532, - }, - scroll_testnet: { - provider: () => { - return new HDWalletProvider( - process.env.MNEMONIC, - "https://sepolia-rpc.scroll.io" - ); - }, - network_id: 534351, - }, - mantle_testnet: { - provider: () => { - return new HDWalletProvider( - process.env.MNEMONIC, - "https://rpc.sepolia.mantle.xyz" - ); - }, - network_id: 5003, - gasPrice: 2520000000, - }, - blast_testnet: { - provider: () => { - return new HDWalletProvider( - process.env.MNEMONIC, - "https://blast-sepolia.drpc.org" - // "https://sepolia.blast.io" // This didn't work. - ); - }, - network_id: 168587773, - gasPrice: 2500000000, - }, - rootstock: { - provider: () => { - return new HDWalletProvider( - process.env.MNEMONIC, - "https://public-node.rsk.co" - ); - }, - network_id: 30, - }, - rootstock_testnet: { - provider: () => { - return new HDWalletProvider( - process.env.MNEMONIC, - "https://public-node.testnet.rsk.co" - ); - }, - network_id: 31, - }, - sepolia_testnet: { - provider: () => { - return new HDWalletProvider( - process.env.MNEMONIC, - "https://rpc.ankr.com/eth_sepolia" - ); - }, - network_id: "11155111", - }, - holesky_testnet: { - provider: () => { - return new HDWalletProvider( - process.env.MNEMONIC, - "https://rpc.ankr.com/eth_holesky" - ); - }, - network_id: "17000", - }, - }, - - compilers: { - solc: { - version: "0.8.4", - settings: { - optimizer: { - enabled: true, - runs: 200, - }, - viaIR: false, - }, - }, - }, - - plugins: ["@chainsafe/truffle-plugin-abigen", "truffle-plugin-verify"], - - api_keys: { - etherscan: process.env.ETHERSCAN_KEY, - }, -}; diff --git a/ethereum/truffle-verify-constants.patch b/ethereum/truffle-verify-constants.patch deleted file mode 100644 index e536f2a91c..0000000000 --- a/ethereum/truffle-verify-constants.patch +++ /dev/null @@ -1,57 +0,0 @@ ---- node_modules/truffle-plugin-verify/contants-old.js 2022-01-28 12:44:53.140709519 +0000 -+++ node_modules/truffle-plugin-verify/constants.js 2022-01-28 12:45:16.800710171 +0000 -@@ -3,13 +3,25 @@ - 3: 'https://api-ropsten.etherscan.io/api', - 4: 'https://api-rinkeby.etherscan.io/api', - 5: 'https://api-goerli.etherscan.io/api', -+ 10: 'https://api-optimistic.etherscan.io/api', - 42: 'https://api-kovan.etherscan.io/api', - 56: 'https://api.bscscan.com/api', -+ 69: 'https://api-kovan-optimistic.etherscan.io/api', - 97: 'https://api-testnet.bscscan.com/api', - 128: 'https://api.hecoinfo.com/api', - 137: 'https://api.polygonscan.com/api', - 250: 'https://api.ftmscan.com/api', - 256: 'https://api-testnet.hecoinfo.com/api', -+ 1284: 'https://api-moonbeam.moonscan.io/api', -+ 1285: 'https://api-moonriver.moonscan.io/api', -+ 1287: 'https://api-moonbase.moonscan.io/api', -+ 4002: 'https://api-testnet.ftmscan.com/api', -+ 42161: 'https://api.arbiscan.io/api', -+ 43113: 'https://api-testnet.snowtrace.io/api', -+ 43114: 'https://api.snowtrace.io/api', -+ 421611: 'https://api-testnet.arbiscan.io/api', -+ 1313161554: 'https://api.aurorascan.dev/api', -+ 1313161555: 'https://api-testnet.aurorascan.dev/api', - 80001: 'https://api-testnet.polygonscan.com/api' - } - -@@ -18,16 +28,27 @@ - 3: 'https://ropsten.etherscan.io/address', - 4: 'https://rinkeby.etherscan.io/address', - 5: 'https://goerli.etherscan.io/address', -+ 10: 'https://optimistic.etherscan.io/address', - 42: 'https://kovan.etherscan.io/address', - 56: 'https://bscscan.com/address', -+ 69: 'https://kovan-optimistic.etherscan.io/address', - 97: 'https://testnet.bscscan.com/address', - 128: 'https://hecoinfo.com/address', - 137: 'https://polygonscan.com/address', - 250: 'https://ftmscan.com/address', - 256: 'https://testnet.hecoinfo.com/address', -+ 1284: 'https://moonbeam.moonscan.io/address', -+ 1285: 'https://moonriver.moonscan.io/address', -+ 1287: 'https://moonbase.moonscan.io/address', -+ 4002: 'https://testnet.ftmscan.com/address', -+ 42161: 'https://arbiscan.io/address', -+ 43113: 'https://testnet.snowtrace.io/address', -+ 43114: 'https://snowtrace.io/address', -+ 421611: 'https://testnet.arbiscan.io/address', -+ 1313161554: 'https://aurorascan.dev/address', -+ 1313161555: 'https://testnet.aurorascan.dev/address', - 80001: 'https://mumbai.polygonscan.com/address' - } -- - const RequestStatus = { - OK: '1', - NOTOK: '0' diff --git a/ethereum/tsconfig.json b/ethereum/tsconfig.json deleted file mode 100644 index 407bf0378e..0000000000 --- a/ethereum/tsconfig.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "compilerOptions": { - "types": ["mocha", "chai", "node"], - "typeRoots": ["./node_modules/@types"], - "lib": ["es2020"], - "skipLibCheck": true, - "module": "CommonJS", - "target": "es2020", - "esModuleInterop": true, - "strict": true, - "resolveJsonModule": true, - "moduleResolution": "node" - } -} diff --git a/ethereum/upgrade b/ethereum/upgrade deleted file mode 100755 index 99eba9e482..0000000000 --- a/ethereum/upgrade +++ /dev/null @@ -1,82 +0,0 @@ -#!/bin/bash - -set -euo pipefail - -network=$1 -module=$2 -chain=$3 - -secret=$MNEMONIC -guardian_secret="" - -if [ "$network" = testnet ]; then - guardian_secret=$GUARDIAN_MNEMONIC -fi - -SCRIPT="" -verify_module="" -case "$module" in - Core) - SCRIPT="scripts/deploy_core_bridge.js" - FILE="build/contracts/Implementation.json" - verify_module="core" - ;; - TokenBridge) - SCRIPT="scripts/deploy_token_bridge.js" - FILE="build/contracts/BridgeImplementation.json" - verify_module="token_bridge" - ;; - NFTBridge) - SCRIPT="scripts/deploy_nft_bridge.js" - FILE="build/contracts/NFTBridgeImplementation.json" - verify_module="nft_bridge" - ;; - *) echo "unknown module $module" >&2 - ;; -esac - -# TODO: add option to not compile (but compile by default) - -truffle_network="" -case "$network" in - mainnet) - truffle_network="$chain" - ;; - testnet) - truffle_network="$chain"_testnet -esac - -ret=0 -implementation=$(worm evm info -c "$chain" -m "$module" -n "$network" -i 2>/dev/null) || ret=$? - -if [ $ret != 0 ]; then - printf "☐ %s %s: skipping (no deployment available)\n" "$chain" "$module" - exit 1 -fi - -ret=0 -(./verify -n "$network" -c "$chain" $FILE "$implementation" > /dev/null) || ret=$? - -if [ $ret = 0 ]; then - printf "✔ %s %s: skipping (implementation matches same bytecode)\n" "$chain" "$module" - exit -fi - -deploy_output=$(npx truffle exec $SCRIPT --network "$truffle_network") || ( echo "✘ $chain $module: $deploy_output" && exit 1 ) -new_implementation=$(echo "$deploy_output" | grep "address:" | cut -d' ' -f3) - -ret=0 -(./verify -n "$network" -c "$chain" $FILE "$new_implementation" > /dev/null) || ret=$? - -if [ $ret = 0 ]; then - printf "✔ %s %s: deployed (%s)\n" "$chain" "$module" "$new_implementation" -else - printf "✘ %s %s: deployed (%s) but failed to match bytecode\n" "$chain" "$module" "$new_implementation" - exit 1 -fi - -if [ "$network" = testnet ]; then - worm submit $(worm generate upgrade -c "$chain" -a "$new_implementation" -m "$module" -g "$guardian_secret") -n "$network" -else - echo "./scripts/contract-upgrade-governance.sh -c $chain -m $verify_module -a $new_implementation" -fi diff --git a/ethereum/upgrade_all_testnet b/ethereum/upgrade_all_testnet index 2bf3f17b93..5732eb885b 100755 --- a/ethereum/upgrade_all_testnet +++ b/ethereum/upgrade_all_testnet @@ -8,6 +8,6 @@ chains=$(worm evm chains) for module in ${modules[@]}; do for chain in ${chains[@]}; do - ./upgrade "$network" "$module" "$chain" + ./sh/upgrade.sh "$network" "$module" "$chain" done done diff --git a/near/test/watcher.go b/near/test/watcher.go index f1fa7c3764..ee12067295 100644 --- a/near/test/watcher.go +++ b/near/test/watcher.go @@ -7,9 +7,11 @@ package main import ( "bytes" "fmt" + "github.com/tidwall/gjson" + // "encoding/base64" - "io/ioutil" + "io" "net/http" "strings" "time" @@ -27,7 +29,7 @@ func getTxStatus(tx string, src string) ([]byte, error) { } defer resp.Body.Close() - return ioutil.ReadAll(resp.Body) + return io.ReadAll(resp.Body) } func getBlock(block uint64) ([]byte, error) { @@ -39,7 +41,7 @@ func getBlock(block uint64) ([]byte, error) { } defer resp.Body.Close() - return ioutil.ReadAll(resp.Body) + return io.ReadAll(resp.Body) } func getFinalBlock() ([]byte, error) { @@ -51,7 +53,7 @@ func getFinalBlock() ([]byte, error) { } defer resp.Body.Close() - return ioutil.ReadAll(resp.Body) + return io.ReadAll(resp.Body) } func getChunk(chunk string) ([]byte, error) { @@ -64,7 +66,7 @@ func getChunk(chunk string) ([]byte, error) { } defer resp.Body.Close() - return ioutil.ReadAll(resp.Body) + return io.ReadAll(resp.Body) } func inspectBody(block uint64, body gjson.Result) error { @@ -121,7 +123,7 @@ func inspectBody(block uint64, body gjson.Result) error { if !strings.HasPrefix(event, "EVENT_JSON:") { continue } -// event_json := gjson.ParseBytes(event[11:]) + //event_json := gjson.ParseBytes(event[11:]) fmt.Printf("log: %s\n", event[11:]) } } diff --git a/node/Dockerfile b/node/Dockerfile index 6a82f3e393..2f081d50de 100644 --- a/node/Dockerfile +++ b/node/Dockerfile @@ -1,7 +1,9 @@ # syntax=docker.io/docker/dockerfile:1.3@sha256:42399d4635eddd7a9b8a24be879d2f9a930d0ed040a61324cfdf59ef1357b3b2 -FROM --platform=linux/amd64 docker.io/golang:1.21.9-bullseye@sha256:311468bffa9fa4747a334b94e6ce3681b564126d653675a6adc46698b2b88d35 AS build +FROM --platform=linux/amd64 docker.io/golang:1.21.9-bullseye@sha256:311468bffa9fa4747a334b94e6ce3681b564126d653675a6adc46698b2b88d35 AS dev # libwasmvm.so is not compatible with arm +FROM dev AS build + WORKDIR /app COPY node/tools tools diff --git a/node/Makefile b/node/Makefile index 5786de84e1..5fc2c94974 100644 --- a/node/Makefile +++ b/node/Makefile @@ -1,3 +1,13 @@ +.PHONY test test: +# Use this command on amd64 systems go test -v -ldflags '-extldflags "-Wl,--allow-multiple-definition" ' ./... +.PHONY test-arm64 +test-arm64: +# Use this command on arm64, otherwise you will encounter linker errors. +# It's not perfect: it will fail due to 'undefined symbols' errors +# for packges using cgo. Still, it will get you farther than running +# the default command. +# To test a single package, use these -ldflags with e.g. ./pkg/governor + go test -ldflags '-extldflags "-Wl,-ld_classic " ' ./... diff --git a/node/cmd/ccq/devnet.permissions.json b/node/cmd/ccq/devnet.permissions.json index d16559604c..5fca88e112 100644 --- a/node/cmd/ccq/devnet.permissions.json +++ b/node/cmd/ccq/devnet.permissions.json @@ -1,4 +1,5 @@ { + "allowAnythingSupported": true, "permissions": [ { "userName": "Test User", @@ -8,7 +9,7 @@ "ethCall": { "note:": "Name of WETH on Goerli", "chain": 2, - "contractAddress": "B4FBF271143F4FBf7B91A5ded31805e42b2208d6", + "contractAddress": "*", "call": "0x06fdde03" } }, @@ -178,6 +179,20 @@ } } ] + }, + { + "userName": "Unlimited User", + "apiKey": "my_secret_key_3", + "allowUnsigned": true, + "allowAnything": true + }, + { + "userName": "Rate Limited User", + "apiKey": "rate_limited_key", + "rateLimit": 1.0, + "burstSize": 2, + "allowUnsigned": true, + "allowAnything": true } ] } diff --git a/node/cmd/ccq/http.go b/node/cmd/ccq/http.go index 68e2a22d8e..c20a2c3843 100644 --- a/node/cmd/ccq/http.go +++ b/node/cmd/ccq/http.go @@ -87,6 +87,14 @@ func (s *httpServer) handleQuery(w http.ResponseWriter, r *http.Request) { invalidQueryRequestReceived.WithLabelValues("invalid_api_key").Inc() return } + + if permEntry.rateLimiter != nil && !permEntry.rateLimiter.Allow() { + s.logger.Debug("denying request due to rate limit", zap.String("userId", permEntry.userName)) + http.Error(w, "rate limit exceeded", http.StatusTooManyRequests) + rateLimitExceededByUser.WithLabelValues(permEntry.userName).Inc() + return + } + totalRequestsByUser.WithLabelValues(permEntry.userName).Inc() queryRequestBytes, err := hex.DecodeString(q.Bytes) @@ -167,7 +175,14 @@ func (s *httpServer) handleQuery(w http.ResponseWriter, r *http.Request) { // Wait for the response or timeout select { case <-time.After(query.RequestTimeout + 5*time.Second): - s.logger.Info("publishing time out to client", zap.String("userId", permEntry.userName), zap.String("requestId", requestId)) + maxMatchingResponses, outstandingResponses, quorum := pendingResponse.getStats() + s.logger.Info("publishing time out to client", + zap.String("userId", permEntry.userName), + zap.String("requestId", requestId), + zap.Int("maxMatchingResponses", maxMatchingResponses), + zap.Int("outstandingResponses", outstandingResponses), + zap.Int("quorum", quorum), + ) http.Error(w, "Timed out waiting for response", http.StatusGatewayTimeout) queryTimeoutsByUser.WithLabelValues(permEntry.userName).Inc() failedQueriesByUser.WithLabelValues(permEntry.userName).Inc() diff --git a/node/cmd/ccq/metrics.go b/node/cmd/ccq/metrics.go index a3d82c9f8e..0247cfd2a7 100644 --- a/node/cmd/ccq/metrics.go +++ b/node/cmd/ccq/metrics.go @@ -45,6 +45,12 @@ var ( Help: "Total number of successful queries by user name", }, []string{"user_name"}) + rateLimitExceededByUser = promauto.NewCounterVec( + prometheus.CounterOpts{ + Name: "ccq_server_rate_limit_exceeded_by_user", + Help: "Total number of queries rejected due to rate limiting per user name", + }, []string{"user_name"}) + failedQueriesByUser = promauto.NewCounterVec( prometheus.CounterOpts{ Name: "ccq_server_failed_queries_by_user", diff --git a/node/cmd/ccq/p2p.go b/node/cmd/ccq/p2p.go index 8e15c0b32e..f7871e06e7 100644 --- a/node/cmd/ccq/p2p.go +++ b/node/cmd/ccq/p2p.go @@ -4,6 +4,7 @@ import ( "bytes" "context" "encoding/hex" + "errors" "fmt" "net/http" "time" @@ -269,12 +270,13 @@ func runP2P( } } outstandingResponses := len(guardianSet.Keys) - totalSigners + pendingResponse.updateStats(maxMatchingResponses, outstandingResponses, quorum) if maxMatchingResponses+outstandingResponses < quorum { quorumNotMetByUser.WithLabelValues(pendingResponse.userName).Inc() failedQueriesByUser.WithLabelValues(pendingResponse.userName).Inc() delete(responses, requestSignature) select { - case pendingResponse.errCh <- &ErrorEntry{err: fmt.Errorf("quorum not met"), status: http.StatusBadRequest}: + case pendingResponse.errCh <- &ErrorEntry{err: errors.New("quorum not met"), status: http.StatusBadRequest}: logger.Info("query failed, quorum not met", zap.String("peerId", peerId), zap.String("userId", pendingResponse.userName), diff --git a/node/cmd/ccq/parse_config_test.go b/node/cmd/ccq/parse_config_test.go index b460c7c847..e6c1b4eca6 100644 --- a/node/cmd/ccq/parse_config_test.go +++ b/node/cmd/ccq/parse_config_test.go @@ -1,14 +1,21 @@ package ccq import ( + "encoding/hex" + "strings" "testing" + "github.com/certusone/wormhole/node/pkg/common" + "github.com/certusone/wormhole/node/pkg/query" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" + "github.com/wormhole-foundation/wormhole/sdk/vaa" + "go.uber.org/zap" + "golang.org/x/time/rate" ) func TestParseConfigFileDoesntExist(t *testing.T) { - _, err := parseConfigFile("missingFile.json") + _, err := parseConfigFile("missingFile.json", common.MainNet) require.Error(t, err) assert.Equal(t, `failed to open permissions file "missingFile.json": open missingFile.json: no such file or directory`, err.Error()) } @@ -47,7 +54,7 @@ func TestParseConfigBadJson(t *testing.T) { ] }` - _, err := parseConfig([]byte(str)) + _, err := parseConfig([]byte(str), common.MainNet) require.Error(t, err) assert.Equal(t, `failed to unmarshal json: unexpected end of JSON input`, err.Error()) } @@ -88,7 +95,7 @@ func TestParseConfigDuplicateUser(t *testing.T) { ] }` - _, err := parseConfig([]byte(str)) + _, err := parseConfig([]byte(str), common.MainNet) require.Error(t, err) assert.Equal(t, `UserName "Test User" is a duplicate`, err.Error()) } @@ -129,7 +136,7 @@ func TestParseConfigDuplicateApiKey(t *testing.T) { ] }` - _, err := parseConfig([]byte(str)) + _, err := parseConfig([]byte(str), common.MainNet) require.Error(t, err) assert.Equal(t, `API key "my_secret_key" is a duplicate`, err.Error()) } @@ -155,7 +162,7 @@ func TestParseConfigUnsupportedCallType(t *testing.T) { ] }` - _, err := parseConfig([]byte(str)) + _, err := parseConfig([]byte(str), common.MainNet) require.Error(t, err) assert.Equal(t, `unsupported call type for user "Test User", must be "ethCall", "ethCallByTimestamp", "ethCallWithFinality", "solAccount" or "solPDA"`, err.Error()) } @@ -181,7 +188,7 @@ func TestParseConfigInvalidContractAddress(t *testing.T) { ] }` - _, err := parseConfig([]byte(str)) + _, err := parseConfig([]byte(str), common.MainNet) require.Error(t, err) assert.Equal(t, `invalid contract address "HelloWorld" for user "Test User"`, err.Error()) } @@ -207,7 +214,7 @@ func TestParseConfigInvalidEthCall(t *testing.T) { ] }` - _, err := parseConfig([]byte(str)) + _, err := parseConfig([]byte(str), common.MainNet) require.Error(t, err) assert.Equal(t, `invalid eth call "HelloWorld" for user "Test User"`, err.Error()) } @@ -233,7 +240,7 @@ func TestParseConfigInvalidEthCallLength(t *testing.T) { ] }` - _, err := parseConfig([]byte(str)) + _, err := parseConfig([]byte(str), common.MainNet) require.Error(t, err) assert.Equal(t, `eth call "0x06fd" for user "Test User" has an invalid length, must be 4 bytes`, err.Error()) } @@ -267,7 +274,7 @@ func TestParseConfigDuplicateAllowedCallForUser(t *testing.T) { ] }` - _, err := parseConfig([]byte(str)) + _, err := parseConfig([]byte(str), common.MainNet) require.Error(t, err) assert.Equal(t, `"ethCall:2:000000000000000000000000b4fbf271143f4fbf7b91a5ded31805e42b2208d6:06fdde03" is a duplicate allowed call for user "Test User"`, err.Error()) } @@ -323,7 +330,7 @@ func TestParseConfigSuccess(t *testing.T) { ] }` - perms, err := parseConfig([]byte(str)) + perms, err := parseConfig([]byte(str), common.MainNet) require.NoError(t, err) assert.Equal(t, 1, len(perms)) @@ -347,3 +354,609 @@ func TestParseConfigSuccess(t *testing.T) { _, exists = perm.allowedCalls["solPDA:1:Bridge1p5gheXUvJ6jGWGeCsgPKgnE3YgdGKRVCMY9o"] assert.True(t, exists) } + +func TestParseConfigAllowAnythingWhenNotSpecified(t *testing.T) { + str := ` + { + "permissions": [ + { + "userName": "Test User", + "apiKey": "my_secret_key", + "allowedCalls": [ + { + "ethCall": { + "note:": "Name of WETH on Goerli", + "chain": 2, + "contractAddress": "B4FBF271143F4FBf7B91A5ded31805e42b2208d6", + "call": "0x06fdde03" + } + } + ] + }, + { + "userName": "Test User2", + "apiKey": "my_secret_key_2", + "allowUnsigned": true, + "allowAnything": true + } + ] +}` + + _, err := parseConfig([]byte(str), common.TestNet) + require.Error(t, err) + assert.Equal(t, `UserName "Test User2" has "allowAnything" specified when the feature is not enabled`, err.Error()) +} + +func TestParseConfigAllowAnythingWhenNotEnabled(t *testing.T) { + str := ` + { + "AllowAnythingSupported": false, + "permissions": [ + { + "userName": "Test User", + "apiKey": "my_secret_key", + "allowedCalls": [ + { + "ethCall": { + "note:": "Name of WETH on Goerli", + "chain": 2, + "contractAddress": "B4FBF271143F4FBf7B91A5ded31805e42b2208d6", + "call": "0x06fdde03" + } + } + ] + }, + { + "userName": "Test User2", + "apiKey": "my_secret_key_2", + "allowUnsigned": true, + "allowAnything": true + } + ] +}` + + _, err := parseConfig([]byte(str), common.TestNet) + require.Error(t, err) + assert.Equal(t, `UserName "Test User2" has "allowAnything" specified when the feature is not enabled`, err.Error()) +} + +func TestParseConfigAllowAnythingWithAllowedCallsIsInvalid(t *testing.T) { + str := ` + { + "allowAnythingSupported": true, + "permissions": [ + { + "userName": "Test User", + "apiKey": "my_secret_key", + "allowedCalls": [ + { + "ethCall": { + "note:": "Name of WETH on Goerli", + "chain": 2, + "contractAddress": "B4FBF271143F4FBf7B91A5ded31805e42b2208d6", + "call": "0x06fdde03" + } + } + ] + }, + { + "userName": "Test User2", + "apiKey": "my_secret_key_2", + "allowUnsigned": true, + "allowAnything": true, + "allowedCalls": [ + { + "ethCall": { + "note:": "Name of WETH on Goerli", + "chain": 2, + "contractAddress": "0xB4FBF271143F4FBf7B91A5ded31805e42b2208d6", + "call": "0x06fdde03" + } + } + ] + } + ] +}` + + _, err := parseConfig([]byte(str), common.TestNet) + require.Error(t, err) + assert.Equal(t, `UserName "Test User2" has "allowedCalls" specified with "allowAnything", which is not allowed`, err.Error()) +} + +func TestParseConfigAllowAnythingNotAllowedInMainnet(t *testing.T) { + str := ` + { + "allowAnythingSupported": true, + "permissions": [ + { + "userName": "Test User", + "apiKey": "my_secret_key", + "allowedCalls": [ + { + "ethCall": { + "note:": "Name of WETH on Goerli", + "chain": 2, + "contractAddress": "B4FBF271143F4FBf7B91A5ded31805e42b2208d6", + "call": "0x06fdde03" + } + } + ] + }, + { + "userName": "Test User2", + "apiKey": "my_secret_key_2", + "allowUnsigned": true, + "allowAnything": true + } + ] +}` + + _, err := parseConfig([]byte(str), common.MainNet) + require.Equal(t, `the "allowAnythingSupported" flag is not supported in mainnet`, err.Error()) +} + +func TestParseConfigAllowAnythingSuccess(t *testing.T) { + str := ` + { + "allowAnythingSupported": true, + "permissions": [ + { + "userName": "Test User", + "apiKey": "my_secret_key", + "allowedCalls": [ + { + "ethCall": { + "note:": "Name of WETH on Goerli", + "chain": 2, + "contractAddress": "B4FBF271143F4FBf7B91A5ded31805e42b2208d6", + "call": "0x06fdde03" + } + } + ] + }, + { + "userName": "Test User2", + "apiKey": "my_secret_key_2", + "allowUnsigned": true, + "allowAnything": true + } + ] +}` + + perms, err := parseConfig([]byte(str), common.TestNet) + require.NoError(t, err) + assert.Equal(t, 2, len(perms)) + + perm, ok := perms["my_secret_key"] + require.True(t, ok) + assert.False(t, perm.allowAnything) + + perm, ok = perms["my_secret_key_2"] + require.True(t, ok) + assert.True(t, perm.allowAnything) +} + +func TestParseConfigContractWildcard(t *testing.T) { + str := ` + { + "permissions": [ + { + "userName": "Test User", + "apiKey": "my_secret_key", + "allowedCalls": [ + { + "ethCall": { + "note:": "Name of anything on Goerli", + "chain": 2, + "contractAddress": "*", + "call": "0x06fdde03" + } + }, + { + "ethCallByTimestamp": { + "note:": "Total supply of WETH on Goerli", + "chain": 2, + "contractAddress": "0xB4FBF271143F4FBf7B91A5ded31805e42b2208d6", + "call": "0x18160ddd" + } + } + ] + } + ] +}` + + perms, err := parseConfig([]byte(str), common.MainNet) + require.NoError(t, err) + assert.Equal(t, 1, len(perms)) + + permsForUser, ok := perms["my_secret_key"] + require.True(t, ok) + assert.Equal(t, 2, len(permsForUser.allowedCalls)) + + logger := zap.NewNop() + + type testCase struct { + label string + callType string + chainID vaa.ChainID + contractAddress string + data string + errText string // empty string means success + } + + var testCases = []testCase{ + { + label: "Wild card, success", + callType: "ethCall", + chainID: vaa.ChainIDEthereum, + contractAddress: "0xB4FBF271143F4FBf7B91A5ded31805e42b2208d6", + data: "0x06fdde03", + errText: "", + }, + { + label: "Wild card, success, different address", + callType: "ethCall", + chainID: vaa.ChainIDEthereum, + contractAddress: "0xB4FBF271143F4FBf7B91A5ded31805e42b2208d7", + data: "0x06fdde03", + errText: "", + }, + { + label: "Wild card, wrong call type", + callType: "ethCallByTimestamp", + chainID: vaa.ChainIDEthereum, + contractAddress: "0xB4FBF271143F4FBf7B91A5ded31805e42b2208d6", + data: "0x06fdde03", + errText: "not authorized", + }, + { + label: "Wild card, wrong chain", + callType: "ethCall", + chainID: vaa.ChainIDBase, + contractAddress: "0xB4FBF271143F4FBf7B91A5ded31805e42b2208d6", + data: "0x06fdde03", + errText: "not authorized", + }, + { + label: "Specific, success", + callType: "ethCallByTimestamp", + chainID: vaa.ChainIDEthereum, + contractAddress: "0xB4FBF271143F4FBf7B91A5ded31805e42b2208d6", + data: "0x18160ddd", + errText: "", + }, + { + label: "Specific, wrong call type", + callType: "ethCall", + chainID: vaa.ChainIDEthereum, + contractAddress: "0xB4FBF271143F4FBf7B91A5ded31805e42b2208d6", + data: "0x18160ddd", + errText: "not authorized", + }, + { + label: "Specific, wrong chain", + callType: "ethCallByTimestamp", + chainID: vaa.ChainIDBase, + contractAddress: "0xB4FBF271143F4FBf7B91A5ded31805e42b2208d6", + data: "0x18160ddd", + errText: "not authorized", + }, + { + label: "Specific, wrong address", + callType: "ethCallByTimestamp", + chainID: vaa.ChainIDEthereum, + contractAddress: "0xB4FBF271143F4FBf7B91A5ded31805e42b2208d7", + data: "0x18160ddd", + errText: "not authorized", + }, + { + label: "Specific, wrong data", + callType: "ethCallByTimestamp", + chainID: vaa.ChainIDEthereum, + contractAddress: "0xB4FBF271143F4FBf7B91A5ded31805e42b2208d6", + data: "0x18160dde", + errText: "not authorized", + }, + } + + for _, tst := range testCases { + t.Run(tst.label, func(t *testing.T) { + status, err := validateCallData(logger, permsForUser, tst.callType, tst.chainID, createCallData(t, tst.contractAddress, tst.data)) + if tst.errText == "" { + require.NoError(t, err) + assert.Equal(t, 200, status) + } else { + require.ErrorContains(t, err, tst.errText) + } + }) + } +} + +func createCallData(t *testing.T, toStr string, dataStr string) []*query.EthCallData { + t.Helper() + to, err := vaa.StringToAddress(strings.TrimPrefix(toStr, "0x")) + require.NoError(t, err) + + data, err := hex.DecodeString(strings.TrimPrefix(dataStr, "0x")) + require.NoError(t, err) + + return []*query.EthCallData{ + { + To: to.Bytes(), + Data: data, + }, + } +} + +func TestParseConfigWithRateLimiterNoDefaults(t *testing.T) { + str := ` + { + "permissions": [ + { + "userName": "Test user without rate limits", + "apiKey": "my_secret_key_without_rate_limits", + "allowedCalls": [ + { + "ethCall": { + "note:": "Name of WETH on Goerli", + "chain": 2, + "contractAddress": "B4FBF271143F4FBf7B91A5ded31805e42b2208d6", + "call": "0x06fdde03" + } + } + ] + }, + { + "userName": "Test user with rate limits", + "apiKey": "my_secret_key_with_rate_limits", + "rateLimit": 0.5, + "burstSize": 1, + "allowedCalls": [ + { + "ethCall": { + "note:": "Name of WETH on Goerli", + "chain": 2, + "contractAddress": "B4FBF271143F4FBf7B91A5ded31805e42b2208d6", + "call": "0x06fdde03" + } + } + ] + } + ] +}` + + perms, err := parseConfig([]byte(str), common.MainNet) + require.NoError(t, err) + assert.Equal(t, 2, len(perms)) + + perm, exists := perms["my_secret_key_without_rate_limits"] + require.True(t, exists) + assert.Nil(t, perm.rateLimiter) + + perm, exists = perms["my_secret_key_with_rate_limits"] + require.True(t, exists) + require.NotNil(t, perm.rateLimiter) + assert.Equal(t, rate.Limit(0.5), perm.rateLimiter.Limit()) + assert.Equal(t, 1, perm.rateLimiter.Burst()) +} + +func TestParseConfigWithRateLimiterWithDefaults(t *testing.T) { + str := ` + { + "defaultRateLimit": 0.5, + "defaultBurstSize": 1, + "permissions": [ + { + "userName": "Test user using default rate limits", + "apiKey": "my_secret_key_using_default_rate_limits", + "allowedCalls": [ + { + "ethCall": { + "note:": "Name of WETH on Goerli", + "chain": 2, + "contractAddress": "B4FBF271143F4FBf7B91A5ded31805e42b2208d6", + "call": "0x06fdde03" + } + } + ] + }, + { + "userName": "Test user overriding default rate limits", + "apiKey": "my_secret_key_overriding_default_rate_limits", + "rateLimit": 1, + "burstSize": 2, + "allowedCalls": [ + { + "ethCall": { + "note:": "Name of WETH on Goerli", + "chain": 2, + "contractAddress": "B4FBF271143F4FBf7B91A5ded31805e42b2208d6", + "call": "0x06fdde03" + } + } + ] + }, + { + "userName": "Test user disabling rate limits", + "apiKey": "my_secret_key_disabling_rate_limits", + "rateLimit": 0, + "allowedCalls": [ + { + "ethCall": { + "note:": "Name of WETH on Goerli", + "chain": 2, + "contractAddress": "B4FBF271143F4FBf7B91A5ded31805e42b2208d6", + "call": "0x06fdde03" + } + } + ] + } + ] +}` + + perms, err := parseConfig([]byte(str), common.MainNet) + require.NoError(t, err) + assert.Equal(t, 3, len(perms)) + + perm, exists := perms["my_secret_key_using_default_rate_limits"] + require.True(t, exists) + require.NotNil(t, perm.rateLimiter) + assert.Equal(t, rate.Limit(0.5), perm.rateLimiter.Limit()) + assert.Equal(t, 1, perm.rateLimiter.Burst()) + + perm, exists = perms["my_secret_key_overriding_default_rate_limits"] + require.True(t, exists) + require.NotNil(t, perm.rateLimiter) + assert.Equal(t, rate.Limit(1.0), perm.rateLimiter.Limit()) + assert.Equal(t, 2, perm.rateLimiter.Burst()) + + perm, exists = perms["my_secret_key_disabling_rate_limits"] + require.True(t, exists) + require.Nil(t, perm.rateLimiter) +} + +func TestParseConfigWithRateLimiterPerUser(t *testing.T) { + str := ` + { + "defaultRateLimit": 0.5, + "defaultBurstSize": 1, + "permissions": [ + { + "userName": "Test User", + "apiKey": "My_secret_key", + "rateLimit": 1.5, + "burstSize": 3, + "allowedCalls": [ + { + "ethCall": { + "note:": "Name of WETH on Goerli", + "chain": 2, + "contractAddress": "B4FBF271143F4FBf7B91A5ded31805e42b2208d6", + "call": "0x06fdde03" + } + } + ] + }, + { + "userName": "Test User 2", + "apiKey": "My_secret_key_2", + "allowedCalls": [ + { + "ethCall": { + "note:": "Name of WETH on Goerli", + "chain": 2, + "contractAddress": "B4FBF271143F4FBf7B91A5ded31805e42b2208d6", + "call": "0x06fdde03" + } + } + ] + } + ] +}` + + perms, err := parseConfig([]byte(str), common.MainNet) + require.NoError(t, err) + assert.Equal(t, 2, len(perms)) + + perm, exists := perms["my_secret_key"] + require.True(t, exists) + + require.NotNil(t, perm.rateLimiter) + assert.Equal(t, rate.Limit(1.5), perm.rateLimiter.Limit()) + assert.Equal(t, 3, perm.rateLimiter.Burst()) + + perm, exists = perms["my_secret_key_2"] + require.True(t, exists) + + require.NotNil(t, perm.rateLimiter) + assert.Equal(t, rate.Limit(0.5), perm.rateLimiter.Limit()) + assert.Equal(t, 1, perm.rateLimiter.Burst()) +} + +func TestParseConfigWithRateLimiterButDefaultBurstSizeNotSet(t *testing.T) { + str := ` + { + "defaultRateLimit": 0.5, + "permissions": [ + { + "userName": "Test user using default rate limits", + "apiKey": "my_secret_key_using_default_rate_limits", + "allowedCalls": [ + { + "ethCall": { + "note:": "Name of WETH on Goerli", + "chain": 2, + "contractAddress": "B4FBF271143F4FBf7B91A5ded31805e42b2208d6", + "call": "0x06fdde03" + } + } + ] + } + ] +}` + + perms, err := parseConfig([]byte(str), common.MainNet) + require.NoError(t, err) + assert.Equal(t, 1, len(perms)) + + perm, exists := perms["my_secret_key_using_default_rate_limits"] + require.True(t, exists) + require.NotNil(t, perm.rateLimiter) + assert.Equal(t, rate.Limit(0.5), perm.rateLimiter.Limit()) + assert.Equal(t, 1, perm.rateLimiter.Burst()) +} + +func TestParseConfigWithRateLimiterButDefaultBurstSizeNIsSetToZero(t *testing.T) { + str := ` + { + "defaultBurstSize": 0, + "permissions": [ + { + "userName": "Test user using default rate limits", + "apiKey": "my_secret_key_using_default_rate_limits", + "allowedCalls": [ + { + "ethCall": { + "note:": "Name of WETH on Goerli", + "chain": 2, + "contractAddress": "B4FBF271143F4FBf7B91A5ded31805e42b2208d6", + "call": "0x06fdde03" + } + } + ] + } + ] +}` + + _, err := parseConfig([]byte(str), common.MainNet) + assert.Equal(t, "the default burst size may not be zero", err.Error()) +} + +func TestParseConfigWithRateLimiterButPerUserBurstSizeSetToZero(t *testing.T) { + str := ` + { + "defaultRateLimit": 0.5, + "defaultBurstSize": 1, + "permissions": [ + { + "userName": "Test user overriding default rate limits", + "apiKey": "my_secret_key_overriding_default_rate_limits", + "rateLimit": 1, + "burstSize": 0, + "allowedCalls": [ + { + "ethCall": { + "note:": "Name of WETH on Goerli", + "chain": 2, + "contractAddress": "B4FBF271143F4FBf7B91A5ded31805e42b2208d6", + "call": "0x06fdde03" + } + } + ] + } + ] +}` + + _, err := parseConfig([]byte(str), common.MainNet) + assert.Equal(t, "if rate limiting is enabled, the burst size may not be zero", err.Error()) +} diff --git a/node/cmd/ccq/pending_request.go b/node/cmd/ccq/pending_request.go index f5aef0ae56..3251a1fd13 100644 --- a/node/cmd/ccq/pending_request.go +++ b/node/cmd/ccq/pending_request.go @@ -16,6 +16,12 @@ type PendingResponse struct { queryRequest *query.QueryRequest ch chan *SignedResponse errCh chan *ErrorEntry + + // statsLock protects the data items below. + statsLock sync.RWMutex + maxMatchingResponses int + outstandingResponses int + quorum int } type ErrorEntry struct { @@ -111,3 +117,17 @@ func (p *PendingResponses) updateMetricsAlreadyLocked(reqRemoved *PendingRespons } } } + +func (p *PendingResponse) updateStats(maxMatchingResponses int, outstandingResponses int, quorum int) { + p.statsLock.Lock() + defer p.statsLock.Unlock() + p.maxMatchingResponses = maxMatchingResponses + p.outstandingResponses = outstandingResponses + p.quorum = quorum +} + +func (p *PendingResponse) getStats() (int, int, int) { + p.statsLock.Lock() + defer p.statsLock.Unlock() + return p.maxMatchingResponses, p.outstandingResponses, p.quorum +} diff --git a/node/cmd/ccq/permissions.go b/node/cmd/ccq/permissions.go index ebbd543cb0..1d6f0058a8 100644 --- a/node/cmd/ccq/permissions.go +++ b/node/cmd/ccq/permissions.go @@ -4,6 +4,7 @@ import ( "context" "encoding/hex" "encoding/json" + "errors" "fmt" "io" "os" @@ -14,6 +15,7 @@ import ( "github.com/certusone/wormhole/node/pkg/query" "github.com/wormhole-foundation/wormhole/sdk/vaa" "go.uber.org/zap" + "golang.org/x/time/rate" "github.com/gagliardetto/solana-go" "gopkg.in/godo.v2/watcher/fswatch" @@ -21,13 +23,19 @@ import ( type ( Config struct { - Permissions []User `json:"Permissions"` + AllowAnythingSupported bool `json:"AllowAnythingSupported"` + DefaultRateLimit float64 `json:"DefaultRateLimit"` + DefaultBurstSize int `json:"DefaultBurstSize"` + Permissions []User `json:"Permissions"` } User struct { UserName string `json:"userName"` ApiKey string `json:"apiKey"` AllowUnsigned bool `json:"allowUnsigned"` + AllowAnything bool `json:"allowAnything"` + RateLimit *float64 `json:"RateLimit"` + BurstSize *int `json:"BurstSize"` LogResponses bool `json:"logResponses"` AllowedCalls []AllowedCall `json:"allowedCalls"` } @@ -74,7 +82,9 @@ type ( permissionEntry struct { userName string apiKey string + rateLimiter *rate.Limiter allowUnsigned bool + allowAnything bool logResponses bool allowedCalls allowedCallsForUser // Key is something like "ethCall:2:000000000000000000000000b4fbf271143f4fbf7b91a5ded31805e42b2208d6:06fdde03" } @@ -83,6 +93,7 @@ type ( Permissions struct { lock sync.Mutex + env common.Environment permMap PermissionsMap fileName string watcher *fswatch.Watcher @@ -90,8 +101,8 @@ type ( ) // NewPermissions creates a Permissions object which contains the per-user permissions. -func NewPermissions(fileName string) (*Permissions, error) { - permMap, err := parseConfigFile(fileName) +func NewPermissions(fileName string, env common.Environment) (*Permissions, error) { + permMap, err := parseConfigFile(fileName, env) if err != nil { return nil, err } @@ -127,7 +138,7 @@ func (perms *Permissions) StartWatcher(ctx context.Context, logger *zap.Logger, // Reload reloads the permissions file. func (perms *Permissions) Reload(logger *zap.Logger) { - permMap, err := parseConfigFile(perms.fileName) + permMap, err := parseConfigFile(perms.fileName, perms.env) if err != nil { logger.Error("failed to reload the permissions file, sticking with the old one", zap.String("fileName", perms.fileName), zap.Error(err)) permissionFileReloadsFailure.Inc() @@ -159,7 +170,7 @@ func (perms *Permissions) GetUserEntry(apiKey string) (*permissionEntry, bool) { const ETH_CALL_SIG_LENGTH = 4 // parseConfigFile parses the permissions config file into a map keyed by API key. -func parseConfigFile(fileName string) (PermissionsMap, error) { +func parseConfigFile(fileName string, env common.Environment) (PermissionsMap, error) { jsonFile, err := os.Open(fileName) if err != nil { return nil, fmt.Errorf(`failed to open permissions file "%s": %w`, fileName, err) @@ -171,21 +182,30 @@ func parseConfigFile(fileName string) (PermissionsMap, error) { return nil, fmt.Errorf(`failed to read permissions file "%s": %w`, fileName, err) } - retVal, err := parseConfig(byteValue) + retVal, err := parseConfig(byteValue, env) if err != nil { - return retVal, fmt.Errorf(`failed to parse permissions file "%s": %w`, fileName, err) + return nil, fmt.Errorf(`failed to parse permissions file "%s": %w`, fileName, err) } return retVal, err } // parseConfig parses the permissions config from a buffer into a map keyed by API key. -func parseConfig(byteValue []byte) (PermissionsMap, error) { - var config Config +func parseConfig(byteValue []byte, env common.Environment) (PermissionsMap, error) { + config := Config{DefaultBurstSize: 1} if err := json.Unmarshal(byteValue, &config); err != nil { return nil, fmt.Errorf(`failed to unmarshal json: %w`, err) } + // According to the docs, a burst size of zero does not allow any events. We don't want that! + if config.DefaultBurstSize == 0 { + return nil, errors.New("the default burst size may not be zero") + } + + if config.AllowAnythingSupported && env == common.MainNet { + return nil, fmt.Errorf(`the "allowAnythingSupported" flag is not supported in mainnet`) + } + ret := make(PermissionsMap) userNames := map[string]struct{}{} for _, user := range config.Permissions { @@ -200,6 +220,31 @@ func parseConfig(byteValue []byte) (PermissionsMap, error) { return nil, fmt.Errorf(`API key "%s" is a duplicate`, apiKey) } + if user.AllowAnything { + if !config.AllowAnythingSupported { + return nil, fmt.Errorf(`UserName "%s" has "allowAnything" specified when the feature is not enabled`, user.UserName) + } + if len(user.AllowedCalls) != 0 { + return nil, fmt.Errorf(`UserName "%s" has "allowedCalls" specified with "allowAnything", which is not allowed`, user.UserName) + } + } + + var rateLimiter *rate.Limiter + rateLimit := config.DefaultRateLimit + if user.RateLimit != nil { + rateLimit = *user.RateLimit + } + if rateLimit != 0 { + burstSize := config.DefaultBurstSize + if user.BurstSize != nil { + burstSize = *user.BurstSize + } + if burstSize == 0 { + return nil, errors.New("if rate limiting is enabled, the burst size may not be zero") + } + rateLimiter = rate.NewLimiter(rate.Limit(rateLimit), burstSize) + } + // Build the list of allowed calls for this API key. allowedCalls := make(allowedCallsForUser) for _, ac := range user.AllowedCalls { @@ -267,9 +312,13 @@ func parseConfig(byteValue []byte) (PermissionsMap, error) { if callKey == "" { // Convert the contract address into a standard format like "000000000000000000000000b4fbf271143f4fbf7b91a5ded31805e42b2208d6". - contractAddress, err := vaa.StringToAddress(contractAddressStr) - if err != nil { - return nil, fmt.Errorf(`invalid contract address "%s" for user "%s"`, contractAddressStr, user.UserName) + contractAddress := contractAddressStr + if contractAddressStr != "*" { + contractAddr, err := vaa.StringToAddress(contractAddressStr) + if err != nil { + return nil, fmt.Errorf(`invalid contract address "%s" for user "%s"`, contractAddressStr, user.UserName) + } + contractAddress = contractAddr.String() } // The call should be the ABI four byte hex hash of the function signature. Parse it into a standard form of "06fdde03". @@ -295,7 +344,9 @@ func parseConfig(byteValue []byte) (PermissionsMap, error) { pe := &permissionEntry{ userName: user.UserName, apiKey: apiKey, + rateLimiter: rateLimiter, allowUnsigned: user.AllowUnsigned, + allowAnything: user.AllowAnything, logResponses: user.LogResponses, allowedCalls: allowedCalls, } diff --git a/node/cmd/ccq/query_server.go b/node/cmd/ccq/query_server.go index 1be7425fdb..023c39721c 100644 --- a/node/cmd/ccq/query_server.go +++ b/node/cmd/ccq/query_server.go @@ -47,6 +47,7 @@ var ( shutdownDelay2 *uint monitorPeers *bool gossipAdvertiseAddress *string + verifyPermissions *bool ) const DEV_NETWORK_ID = "/wormhole/dev" @@ -69,6 +70,7 @@ func init() { promRemoteURL = QueryServerCmd.Flags().String("promRemoteURL", "", "Prometheus remote write URL (Grafana)") monitorPeers = QueryServerCmd.Flags().Bool("monitorPeers", false, "Should monitor bootstrap peers and attempt to reconnect") gossipAdvertiseAddress = QueryServerCmd.Flags().String("gossipAdvertiseAddress", "", "External IP to advertize on P2P (use if behind a NAT or running in k8s)") + verifyPermissions = QueryServerCmd.Flags().Bool("verifyPermissions", false, `parse and verify the permissions file and then exit with 0 if success, 1 if failure`) // The default health check monitoring is every five seconds, with a five second timeout, and you have to miss two, for 20 seconds total. shutdownDelay1 = QueryServerCmd.Flags().Uint("shutdownDelay1", 25, "Seconds to delay after disabling health check on shutdown") @@ -84,6 +86,25 @@ var QueryServerCmd = &cobra.Command{ } func runQueryServer(cmd *cobra.Command, args []string) { + env, err := common.ParseEnvironment(*envStr) + if err != nil || (env != common.UnsafeDevNet && env != common.TestNet && env != common.MainNet) { + if *envStr == "" { + fmt.Println("Please specify --env") + } else { + fmt.Println("Invalid value for --env, should be devnet, testnet or mainnet", zap.String("val", *envStr)) + } + os.Exit(1) + } + + if *verifyPermissions { + _, err := parseConfigFile(*permFile, env) + if err != nil { + fmt.Println(err) + os.Exit(1) + } + os.Exit(0) + } + common.SetRestrictiveUmask() // Setup logging @@ -96,14 +117,6 @@ func runQueryServer(cmd *cobra.Command, args []string) { logger := ipfslog.Logger("query-server").Desugar() ipfslog.SetAllLoggers(lvl) - env, err := common.ParseEnvironment(*envStr) - if err != nil || (env != common.UnsafeDevNet && env != common.TestNet && env != common.MainNet) { - if *envStr == "" { - logger.Fatal("Please specify --env") - } - logger.Fatal("Invalid value for --env, should be devnet, testnet or mainnet", zap.String("val", *envStr)) - } - if *p2pNetworkID == "" { *p2pNetworkID = p2p.GetNetworkId(env) } else if env != common.UnsafeDevNet { @@ -162,7 +175,7 @@ func runQueryServer(cmd *cobra.Command, args []string) { logger.Fatal("Please specify --ethContract") } - permissions, err := NewPermissions(*permFile) + permissions, err := NewPermissions(*permFile, env) if err != nil { logger.Fatal("Failed to load permissions file", zap.String("permFile", *permFile), zap.Error(err)) } diff --git a/node/cmd/ccq/utils.go b/node/cmd/ccq/utils.go index cc17523b36..046f8a34da 100644 --- a/node/cmd/ccq/utils.go +++ b/node/cmd/ccq/utils.go @@ -4,6 +4,7 @@ import ( "context" "crypto/ecdsa" "encoding/hex" + "errors" "fmt" "net/http" "time" @@ -30,12 +31,12 @@ func FetchCurrentGuardianSet(rpcUrl, coreAddr string) (*common.GuardianSet, erro ethContract := eth_common.HexToAddress(coreAddr) rawClient, err := ethRpc.DialContext(ctx, rpcUrl) if err != nil { - return nil, fmt.Errorf("failed to connect to ethereum") + return nil, errors.New("failed to connect to ethereum") } client := ethClient.NewClient(rawClient) caller, err := ethAbi.NewAbiCaller(ethContract, client) if err != nil { - return nil, fmt.Errorf("failed to create caller") + return nil, errors.New("failed to create caller") } currentIndex, err := caller.GetCurrentGuardianSetIndex(ðBind.CallOpts{Context: ctx}) if err != nil { @@ -57,7 +58,7 @@ func validateRequest(logger *zap.Logger, env common.Environment, perms *Permissi if !exists { logger.Debug("invalid api key", zap.String("apiKey", apiKey)) invalidQueryRequestReceived.WithLabelValues("invalid_api_key").Inc() - return http.StatusForbidden, nil, fmt.Errorf("invalid api key") + return http.StatusForbidden, nil, errors.New("invalid api key") } // TODO: Should we verify the signatures? @@ -70,7 +71,7 @@ func validateRequest(logger *zap.Logger, env common.Environment, perms *Permissi zap.Bool("signerKeyConfigured", signerKey != nil), ) invalidQueryRequestReceived.WithLabelValues("request_not_signed").Inc() - return http.StatusBadRequest, nil, fmt.Errorf("request not signed") + return http.StatusBadRequest, nil, errors.New("request not signed") } // Sign the request using our key. @@ -117,7 +118,7 @@ func validateRequest(logger *zap.Logger, env common.Environment, perms *Permissi default: logger.Debug("unsupported query type", zap.String("userName", permsForUser.userName), zap.Any("type", pcq.Query)) invalidQueryRequestReceived.WithLabelValues("unsupported_query_type").Inc() - return http.StatusBadRequest, nil, fmt.Errorf("unsupported query type") + return http.StatusBadRequest, nil, errors.New("unsupported query type") } if err != nil { @@ -142,14 +143,20 @@ func validateCallData(logger *zap.Logger, permsForUser *permissionEntry, callTag if len(cd.Data) < ETH_CALL_SIG_LENGTH { logger.Debug("eth call data must be at least four bytes", zap.String("userName", permsForUser.userName), zap.String("data", hex.EncodeToString(cd.Data))) invalidQueryRequestReceived.WithLabelValues("bad_call_data").Inc() - return http.StatusBadRequest, fmt.Errorf("eth call data must be at least four bytes") + return http.StatusBadRequest, errors.New("eth call data must be at least four bytes") } - call := hex.EncodeToString(cd.Data[0:ETH_CALL_SIG_LENGTH]) - callKey := fmt.Sprintf("%s:%d:%s:%s", callTag, chainId, contractAddress, call) - if _, exists := permsForUser.allowedCalls[callKey]; !exists { - logger.Debug("requested call not authorized", zap.String("userName", permsForUser.userName), zap.String("callKey", callKey)) - invalidQueryRequestReceived.WithLabelValues("call_not_authorized").Inc() - return http.StatusBadRequest, fmt.Errorf(`call "%s" not authorized`, callKey) + if !permsForUser.allowAnything { + call := hex.EncodeToString(cd.Data[0:ETH_CALL_SIG_LENGTH]) + callKey := fmt.Sprintf("%s:%d:%s:%s", callTag, chainId, contractAddress, call) + if _, exists := permsForUser.allowedCalls[callKey]; !exists { + // The call data doesn't exist including the contract address. See if it's covered by a wildcard. + wildCardCallKey := fmt.Sprintf("%s:%d:*:%s", callTag, chainId, call) + if _, exists := permsForUser.allowedCalls[wildCardCallKey]; !exists { + logger.Debug("requested call not authorized", zap.String("userName", permsForUser.userName), zap.String("callKey", callKey)) + invalidQueryRequestReceived.WithLabelValues("call_not_authorized").Inc() + return http.StatusBadRequest, fmt.Errorf(`call "%s" not authorized`, callKey) + } + } } totalRequestedCallsByChain.WithLabelValues(chainId.String()).Inc() @@ -160,15 +167,17 @@ func validateCallData(logger *zap.Logger, permsForUser *permissionEntry, callTag // validateSolanaAccountQuery performs verification on a Solana sol_account query. func validateSolanaAccountQuery(logger *zap.Logger, permsForUser *permissionEntry, callTag string, chainId vaa.ChainID, q *query.SolanaAccountQueryRequest) (int, error) { - for _, acct := range q.Accounts { - callKey := fmt.Sprintf("%s:%d:%s", callTag, chainId, solana.PublicKey(acct).String()) - if _, exists := permsForUser.allowedCalls[callKey]; !exists { - logger.Debug("requested call not authorized", zap.String("userName", permsForUser.userName), zap.String("callKey", callKey)) - invalidQueryRequestReceived.WithLabelValues("call_not_authorized").Inc() - return http.StatusForbidden, fmt.Errorf(`call "%s" not authorized`, callKey) + if !permsForUser.allowAnything { + for _, acct := range q.Accounts { + callKey := fmt.Sprintf("%s:%d:%s", callTag, chainId, solana.PublicKey(acct).String()) + if _, exists := permsForUser.allowedCalls[callKey]; !exists { + logger.Debug("requested call not authorized", zap.String("userName", permsForUser.userName), zap.String("callKey", callKey)) + invalidQueryRequestReceived.WithLabelValues("call_not_authorized").Inc() + return http.StatusForbidden, fmt.Errorf(`call "%s" not authorized`, callKey) + } + + totalRequestedCallsByChain.WithLabelValues(chainId.String()).Inc() } - - totalRequestedCallsByChain.WithLabelValues(chainId.String()).Inc() } return http.StatusOK, nil @@ -176,15 +185,17 @@ func validateSolanaAccountQuery(logger *zap.Logger, permsForUser *permissionEntr // validateSolanaPdaQuery performs verification on a Solana sol_account query. func validateSolanaPdaQuery(logger *zap.Logger, permsForUser *permissionEntry, callTag string, chainId vaa.ChainID, q *query.SolanaPdaQueryRequest) (int, error) { - for _, acct := range q.PDAs { - callKey := fmt.Sprintf("%s:%d:%s", callTag, chainId, solana.PublicKey(acct.ProgramAddress).String()) - if _, exists := permsForUser.allowedCalls[callKey]; !exists { - logger.Debug("requested call not authorized", zap.String("userName", permsForUser.userName), zap.String("callKey", callKey)) - invalidQueryRequestReceived.WithLabelValues("call_not_authorized").Inc() - return http.StatusForbidden, fmt.Errorf(`call "%s" not authorized`, callKey) + if !permsForUser.allowAnything { + for _, acct := range q.PDAs { + callKey := fmt.Sprintf("%s:%d:%s", callTag, chainId, solana.PublicKey(acct.ProgramAddress).String()) + if _, exists := permsForUser.allowedCalls[callKey]; !exists { + logger.Debug("requested call not authorized", zap.String("userName", permsForUser.userName), zap.String("callKey", callKey)) + invalidQueryRequestReceived.WithLabelValues("call_not_authorized").Inc() + return http.StatusForbidden, fmt.Errorf(`call "%s" not authorized`, callKey) + } + + totalRequestedCallsByChain.WithLabelValues(chainId.String()).Inc() } - - totalRequestedCallsByChain.WithLabelValues(chainId.String()).Inc() } return http.StatusOK, nil diff --git a/node/cmd/guardiand/adminclient.go b/node/cmd/guardiand/adminclient.go index a6fc8b35f2..0a1aa381d9 100644 --- a/node/cmd/guardiand/adminclient.go +++ b/node/cmd/guardiand/adminclient.go @@ -5,6 +5,7 @@ import ( "context" "encoding/csv" "encoding/hex" + "errors" "fmt" "io" "log" @@ -164,10 +165,10 @@ var ClientChainGovernorReleasePendingVAACmd = &cobra.Command{ } var ClientChainGovernorResetReleaseTimerCmd = &cobra.Command{ - Use: "governor-reset-release-timer [VAA_ID]", - Short: "Resets the release timer for a chain governor pending VAA, extending it to the configured maximum", + Use: "governor-reset-release-timer [VAA_ID] ", + Short: "Resets the release timer for a chain governor pending VAA, extending it to num_days (up to a maximum of 7), defaulting to one day if num_days is omitted", Run: runChainGovernorResetReleaseTimer, - Args: cobra.ExactArgs(1), + Args: cobra.RangeArgs(1, 2), } var PurgePythNetVaasCmd = &cobra.Command{ @@ -238,7 +239,7 @@ func runSignWormchainValidatorAddress(cmd *cobra.Command, args []string) error { guardianKeyPath := args[0] wormchainAddress := args[1] if !strings.HasPrefix(wormchainAddress, "wormhole") || strings.HasPrefix(wormchainAddress, "wormholeval") { - return fmt.Errorf("must provide a bech32 address that has 'wormhole' prefix") + return errors.New("must provide a bech32 address that has 'wormhole' prefix") } gk, err := common.LoadGuardianKey(guardianKeyPath, *unsafeDevnetMode) if err != nil { @@ -549,8 +550,21 @@ func runChainGovernorResetReleaseTimer(cmd *cobra.Command, args []string) { } defer conn.Close() + // defaults to 1 day if num_days isn't specified + numDays := uint32(1) + if len(args) > 1 { + numDaysArg, err := strconv.Atoi(args[1]) + + if err != nil { + log.Fatalf("invalid num_days: %v", err) + } + + numDays = uint32(numDaysArg) + } + msg := nodev1.ChainGovernorResetReleaseTimerRequest{ - VaaId: args[0], + VaaId: args[0], + NumDays: numDays, } resp, err := c.ChainGovernorResetReleaseTimer(ctx, &msg) if err != nil { diff --git a/node/cmd/guardiand/adminnodes.go b/node/cmd/guardiand/adminnodes.go index eb32def6e1..945aae61e8 100644 --- a/node/cmd/guardiand/adminnodes.go +++ b/node/cmd/guardiand/adminnodes.go @@ -119,6 +119,7 @@ func runListNodes(cmd *cobra.Command, args []string) { {"XLayer", vaa.ChainIDXLayer}, {"Linea", vaa.ChainIDLinea}, {"Berachain", vaa.ChainIDBerachain}, + {"Snaxchain", vaa.ChainIDSnaxchain}, {"Wormchain", vaa.ChainIDWormchain}, {"Sepolia", vaa.ChainIDSepolia}, {"Holesky", vaa.ChainIDHolesky}, diff --git a/node/cmd/guardiand/admintemplate.go b/node/cmd/guardiand/admintemplate.go index 4e07dcbbc6..a985fbd27b 100644 --- a/node/cmd/guardiand/admintemplate.go +++ b/node/cmd/guardiand/admintemplate.go @@ -2,6 +2,7 @@ package guardiand import ( "encoding/hex" + "errors" "fmt" "log" "math/big" @@ -1214,7 +1215,7 @@ func parseAddress(s string) (string, error) { func leftPadAddress(a []byte) (string, error) { if len(a) > 32 { - return "", fmt.Errorf("address longer than 32 bytes") + return "", errors.New("address longer than 32 bytes") } return hex.EncodeToString(common.LeftPadBytes(a, 32)), nil } @@ -1246,7 +1247,7 @@ func isValidUint256(s string) (bool, error) { // Check if i is within the range [0, 2^256 - 1] if i.Cmp(big.NewInt(0)) < 0 || i.Cmp(upperLimit) > 0 { - return false, fmt.Errorf("value is not a valid uint256") + return false, errors.New("value is not a valid uint256") } return true, nil diff --git a/node/cmd/guardiand/node.go b/node/cmd/guardiand/node.go index cc40803c07..fffe74c890 100644 --- a/node/cmd/guardiand/node.go +++ b/node/cmd/guardiand/node.go @@ -149,7 +149,6 @@ var ( aptosHandle *string suiRPC *string - suiWS *string suiMoveEventType *string solanaRPC *string @@ -187,6 +186,9 @@ var ( berachainRPC *string berachainContract *string + snaxchainRPC *string + snaxchainContract *string + sepoliaRPC *string sepoliaContract *string @@ -229,7 +231,8 @@ var ( // Prometheus remote write URL promRemoteURL *string - chainGovernorEnabled *bool + chainGovernorEnabled *bool + governorFlowCancelEnabled *bool ccqEnabled *bool ccqAllowedRequesters *string @@ -247,6 +250,8 @@ var ( // env is the mode we are running in, Mainnet, Testnet or UnsafeDevnet. env common.Environment + + subscribeToVAAs *bool ) func init() { @@ -350,7 +355,6 @@ func init() { aptosHandle = NodeCmd.Flags().String("aptosHandle", "", "aptos handle") suiRPC = node.RegisterFlagWithValidationOrFail(NodeCmd, "suiRPC", "Sui RPC URL", "http://sui:9000", []string{"http", "https"}) - suiWS = node.RegisterFlagWithValidationOrFail(NodeCmd, "suiWS", "Sui WS URL", "ws://sui:9000", []string{"ws", "wss"}) suiMoveEventType = NodeCmd.Flags().String("suiMoveEventType", "", "Sui move event type for publish_message") solanaRPC = node.RegisterFlagWithValidationOrFail(NodeCmd, "solanaRPC", "Solana RPC URL (required)", "http://solana-devnet:8899", []string{"http", "https"}) @@ -391,6 +395,9 @@ func init() { berachainRPC = node.RegisterFlagWithValidationOrFail(NodeCmd, "berachainRPC", "Berachain RPC URL", "ws://eth-devnet:8545", []string{"ws", "wss"}) berachainContract = NodeCmd.Flags().String("berachainContract", "", "Berachain contract address") + snaxchainRPC = node.RegisterFlagWithValidationOrFail(NodeCmd, "snaxchainRPC", "Snaxchain RPC URL", "ws://eth-devnet:8545", []string{"ws", "wss"}) + snaxchainContract = NodeCmd.Flags().String("snaxchainContract", "", "Snaxchain contract address") + baseRPC = node.RegisterFlagWithValidationOrFail(NodeCmd, "baseRPC", "Base RPC URL", "ws://eth-devnet:8545", []string{"ws", "wss"}) baseContract = NodeCmd.Flags().String("baseContract", "", "Base contract address") @@ -431,6 +438,7 @@ func init() { promRemoteURL = NodeCmd.Flags().String("promRemoteURL", "", "Prometheus remote write URL (Grafana)") chainGovernorEnabled = NodeCmd.Flags().Bool("chainGovernorEnabled", false, "Run the chain governor") + governorFlowCancelEnabled = NodeCmd.Flags().Bool("governorFlowCancelEnabled", false, "Enable flow cancel on the governor") ccqEnabled = NodeCmd.Flags().Bool("ccqEnabled", false, "Enable cross chain query support") ccqAllowedRequesters = NodeCmd.Flags().String("ccqAllowedRequesters", "", "Comma separated list of signers allowed to submit cross chain queries") @@ -443,6 +451,8 @@ func init() { gatewayRelayerContract = NodeCmd.Flags().String("gatewayRelayerContract", "", "Address of the smart contract on wormchain to receive relayed VAAs") gatewayRelayerKeyPath = NodeCmd.Flags().String("gatewayRelayerKeyPath", "", "Path to gateway relayer private key for signing transactions") gatewayRelayerKeyPassPhrase = NodeCmd.Flags().String("gatewayRelayerKeyPassPhrase", "", "Pass phrase used to unarmor the gateway relayer key file") + + subscribeToVAAs = NodeCmd.Flags().Bool("subscribeToVAAs", false, "Guardiand should subscribe to incoming signed VAAs, set to true if running a public RPC node") } var ( @@ -537,6 +547,11 @@ func runNode(cmd *cobra.Command, args []string) { os.Exit(1) } + if !(*chainGovernorEnabled) && *governorFlowCancelEnabled { + fmt.Println("Flow cancel can only be enabled when the governor is enabled") + os.Exit(1) + } + logger := zap.New(zapcore.NewCore( consoleEncoder{zapcore.NewConsoleEncoder( zap.NewDevelopmentEncoderConfig())}, @@ -648,6 +663,7 @@ func runNode(cmd *cobra.Command, args []string) { *blastContract = checkEvmArgs(logger, *blastRPC, *blastContract, "blast", true) *xlayerContract = checkEvmArgs(logger, *xlayerRPC, *xlayerContract, "xlayer", true) *berachainContract = checkEvmArgs(logger, *berachainRPC, *berachainContract, "berachain", false) + *snaxchainContract = checkEvmArgs(logger, *snaxchainRPC, *snaxchainContract, "snaxchain", true) // These chains will only ever be testnet / devnet. *sepoliaContract = checkEvmArgs(logger, *sepoliaRPC, *sepoliaContract, "sepolia", false) @@ -707,8 +723,8 @@ func runNode(cmd *cobra.Command, args []string) { logger.Fatal("Either --aptosAccount, --aptosRPC and --aptosHandle must all be set or all unset") } - if !argsConsistent([]string{*suiRPC, *suiWS, *suiMoveEventType}) { - logger.Fatal("Either --suiRPC, --suiWS and --suiMoveEventType must all be set or all unset") + if !argsConsistent([]string{*suiRPC, *suiMoveEventType}) { + logger.Fatal("Either --suiRPC and --suiMoveEventType must all be set or all unset") } if !argsConsistent([]string{*gatewayContract, *gatewayWS, *gatewayLCD}) { @@ -852,8 +868,8 @@ func runNode(cmd *cobra.Command, args []string) { } rpcMap["scrollRPC"] = *scrollRPC rpcMap["solanaRPC"] = *solanaRPC + rpcMap["snaxchainRPC"] = *snaxchainRPC rpcMap["suiRPC"] = *suiRPC - rpcMap["suiWS"] = *suiWS rpcMap["terraWS"] = *terraWS rpcMap["terraLCD"] = *terraLCD rpcMap["terra2WS"] = *terra2WS @@ -1320,6 +1336,18 @@ func runNode(cmd *cobra.Command, args []string) { watcherConfigs = append(watcherConfigs, wc) } + if shouldStart(snaxchainRPC) { + wc := &evm.WatcherConfig{ + NetworkID: "snaxchain", + ChainID: vaa.ChainIDSnaxchain, + Rpc: *snaxchainRPC, + Contract: *snaxchainContract, + CcqBackfillCache: *ccqBackfillCache, + } + + watcherConfigs = append(watcherConfigs, wc) + } + if shouldStart(terraWS) { wc := &cosmwasm.WatcherConfig{ NetworkID: "terra", @@ -1407,7 +1435,6 @@ func runNode(cmd *cobra.Command, args []string) { NetworkID: "sui", ChainID: vaa.ChainIDSui, Rpc: *suiRPC, - Websocket: *suiWS, SuiMoveEventType: *suiMoveEventType, } watcherConfigs = append(watcherConfigs, wc) @@ -1559,13 +1586,13 @@ func runNode(cmd *cobra.Command, args []string) { node.GuardianOptionDatabase(db), node.GuardianOptionWatchers(watcherConfigs, ibcWatcherConfig), node.GuardianOptionAccountant(*accountantWS, *accountantContract, *accountantCheckEnabled, accountantWormchainConn, *accountantNttContract, accountantNttWormchainConn), - node.GuardianOptionGovernor(*chainGovernorEnabled), + node.GuardianOptionGovernor(*chainGovernorEnabled, *governorFlowCancelEnabled), node.GuardianOptionGatewayRelayer(*gatewayRelayerContract, gatewayRelayerWormchainConn), node.GuardianOptionQueryHandler(*ccqEnabled, *ccqAllowedRequesters), node.GuardianOptionAdminService(*adminSocketPath, ethRPC, ethContract, rpcMap), - node.GuardianOptionP2P(p2pKey, *p2pNetworkID, *p2pBootstrap, *nodeName, *disableHeartbeatVerify, *p2pPort, *ccqP2pBootstrap, *ccqP2pPort, *ccqAllowedPeers, *gossipAdvertiseAddress, ibc.GetFeatures), + node.GuardianOptionP2P(p2pKey, *p2pNetworkID, *p2pBootstrap, *nodeName, *subscribeToVAAs, *disableHeartbeatVerify, *p2pPort, *ccqP2pBootstrap, *ccqP2pPort, *ccqAllowedPeers, *gossipAdvertiseAddress, ibc.GetFeatures), node.GuardianOptionStatusServer(*statusAddr), - node.GuardianOptionProcessor(), + node.GuardianOptionProcessor(*p2pNetworkID), } if shouldStart(publicGRPCSocketPath) { diff --git a/node/cmd/spy/spy.go b/node/cmd/spy/spy.go index ae616ced6c..260488dc7b 100644 --- a/node/cmd/spy/spy.go +++ b/node/cmd/spy/spy.go @@ -337,15 +337,6 @@ func runSpy(cmd *cobra.Command, args []string) { rootCtx, rootCtxCancel = context.WithCancel(context.Background()) defer rootCtxCancel() - // Outbound gossip message queue - sendC := make(chan []byte) - - // Inbound observations - obsvC := make(chan *common.MsgWithTimeStamp[gossipv1.SignedObservation], 1024) - - // Inbound observation requests - obsvReqC := make(chan *gossipv1.ObservationRequest, 1024) - // Inbound signed VAAs signedInC := make(chan *gossipv1.SignedVAAWithQuorum, 1024) @@ -370,29 +361,6 @@ func runSpy(cmd *cobra.Command, args []string) { } } - // Ignore observations - go func() { - for { - select { - case <-rootCtx.Done(): - return - case <-obsvC: - } - } - }() - - // Ignore observation requests - // Note: without this, the whole program hangs on observation requests - go func() { - for { - select { - case <-rootCtx.Done(): - return - case <-obsvReqC: - } - } - }() - // Log signed VAAs go func() { for { @@ -420,35 +388,21 @@ func runSpy(cmd *cobra.Command, args []string) { supervisor.New(rootCtx, logger, func(ctx context.Context) error { components := p2p.DefaultComponents() components.Port = *p2pPort + params, err := p2p.NewRunParams( + *p2pBootstrap, + *p2pNetworkID, + priv, + gst, + rootCtxCancel, + p2p.WithSignedVAAListener(signedInC), + ) + if err != nil { + return err + } + if err := supervisor.Run(ctx, "p2p", - p2p.Run(obsvC, - obsvReqC, - nil, - sendC, - signedInC, - priv, - nil, - gst, - *p2pNetworkID, - *p2pBootstrap, - "", - false, - rootCtxCancel, - nil, - nil, - nil, - nil, - components, - nil, // ibc feature string - false, // gateway relayer enabled - false, // ccqEnabled - nil, // query requests - nil, // query responses - "", // query bootstrap peers - 0, // query port - "", // query allow list - )); err != nil { + p2p.Run(params)); err != nil { return err } diff --git a/node/hack/governor/package-lock.json b/node/hack/governor/package-lock.json index 81a15cd874..8317de0abe 100644 --- a/node/hack/governor/package-lock.json +++ b/node/hack/governor/package-lock.json @@ -690,11 +690,12 @@ "dev": true }, "node_modules/@certusone/wormhole-sdk": { - "version": "0.10.5", - "resolved": "https://registry.npmjs.org/@certusone/wormhole-sdk/-/wormhole-sdk-0.10.5.tgz", - "integrity": "sha512-wKONuigkakoFx9HplBt2Jh5KPxc7xgtDJVrIb2/SqYWbFrdpiZrMC4H6kTZq2U4+lWtqaCa1aJ1q+3GOTNx2CQ==", + "version": "0.10.17", + "resolved": "https://registry.npmjs.org/@certusone/wormhole-sdk/-/wormhole-sdk-0.10.17.tgz", + "integrity": "sha512-fFubpGha+2gRuZItPZBJ5PYcKbyoI/DozN3XK2CrK3VXyfHYmaqYKgOK7fhlrrqxCUV3bDYy/Vc6GEUTAh+wDA==", + "license": "Apache-2.0", "dependencies": { - "@certusone/wormhole-sdk-proto-web": "0.0.6", + "@certusone/wormhole-sdk-proto-web": "0.0.7", "@certusone/wormhole-sdk-wasm": "^0.0.1", "@coral-xyz/borsh": "0.2.6", "@mysten/sui.js": "0.32.2", @@ -720,9 +721,10 @@ } }, "node_modules/@certusone/wormhole-sdk-proto-web": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/@certusone/wormhole-sdk-proto-web/-/wormhole-sdk-proto-web-0.0.6.tgz", - "integrity": "sha512-LTyjsrWryefx5WmkoBP6FQ2EjLxhMExAGxLkloHUhufVQZdrbGh0htBBUviP+HaDSJBCMPMtulNFwkBJV6muqQ==", + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/@certusone/wormhole-sdk-proto-web/-/wormhole-sdk-proto-web-0.0.7.tgz", + "integrity": "sha512-GCe1/bcqMS0Mt+hsWp4SE4NLL59pWmK0lhQXO0oqAKl0G9AuuTdudySMDF/sLc7z5H2w34bSuSrIEKvPuuSC+w==", + "license": "Apache-2.0", "dependencies": { "@improbable-eng/grpc-web": "^0.15.0", "protobufjs": "^7.0.0", @@ -732,13 +734,15 @@ "node_modules/@certusone/wormhole-sdk-proto-web/node_modules/long": { "version": "5.2.3", "resolved": "https://registry.npmjs.org/long/-/long-5.2.3.tgz", - "integrity": "sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q==" + "integrity": "sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q==", + "license": "Apache-2.0" }, "node_modules/@certusone/wormhole-sdk-proto-web/node_modules/protobufjs": { - "version": "7.2.4", - "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.2.4.tgz", - "integrity": "sha512-AT+RJgD2sH8phPmCf7OUZR8xGdcJRga4+1cOaXJ64hvcSkVhNcRHOwIxUatPH15+nj59WAGTDv3LSGZPEQbJaQ==", + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.3.2.tgz", + "integrity": "sha512-RXyHaACeqXeqAKGLDl68rQKbmObRsTIn4TYVUUug1KfS47YWCo5MacGITEryugIgZqORCvJWEk4l449POg5Txg==", "hasInstallScript": true, + "license": "BSD-3-Clause", "dependencies": { "@protobufjs/aspromise": "^1.1.2", "@protobufjs/base64": "^1.1.2", @@ -9914,11 +9918,11 @@ "dev": true }, "@certusone/wormhole-sdk": { - "version": "0.10.5", - "resolved": "https://registry.npmjs.org/@certusone/wormhole-sdk/-/wormhole-sdk-0.10.5.tgz", - "integrity": "sha512-wKONuigkakoFx9HplBt2Jh5KPxc7xgtDJVrIb2/SqYWbFrdpiZrMC4H6kTZq2U4+lWtqaCa1aJ1q+3GOTNx2CQ==", + "version": "0.10.17", + "resolved": "https://registry.npmjs.org/@certusone/wormhole-sdk/-/wormhole-sdk-0.10.17.tgz", + "integrity": "sha512-fFubpGha+2gRuZItPZBJ5PYcKbyoI/DozN3XK2CrK3VXyfHYmaqYKgOK7fhlrrqxCUV3bDYy/Vc6GEUTAh+wDA==", "requires": { - "@certusone/wormhole-sdk-proto-web": "0.0.6", + "@certusone/wormhole-sdk-proto-web": "0.0.7", "@certusone/wormhole-sdk-wasm": "^0.0.1", "@coral-xyz/borsh": "0.2.6", "@injectivelabs/networks": "1.10.12", @@ -10015,9 +10019,9 @@ } }, "@certusone/wormhole-sdk-proto-web": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/@certusone/wormhole-sdk-proto-web/-/wormhole-sdk-proto-web-0.0.6.tgz", - "integrity": "sha512-LTyjsrWryefx5WmkoBP6FQ2EjLxhMExAGxLkloHUhufVQZdrbGh0htBBUviP+HaDSJBCMPMtulNFwkBJV6muqQ==", + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/@certusone/wormhole-sdk-proto-web/-/wormhole-sdk-proto-web-0.0.7.tgz", + "integrity": "sha512-GCe1/bcqMS0Mt+hsWp4SE4NLL59pWmK0lhQXO0oqAKl0G9AuuTdudySMDF/sLc7z5H2w34bSuSrIEKvPuuSC+w==", "requires": { "@improbable-eng/grpc-web": "^0.15.0", "protobufjs": "^7.0.0", @@ -10030,9 +10034,9 @@ "integrity": "sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q==" }, "protobufjs": { - "version": "7.2.4", - "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.2.4.tgz", - "integrity": "sha512-AT+RJgD2sH8phPmCf7OUZR8xGdcJRga4+1cOaXJ64hvcSkVhNcRHOwIxUatPH15+nj59WAGTDv3LSGZPEQbJaQ==", + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.3.2.tgz", + "integrity": "sha512-RXyHaACeqXeqAKGLDl68rQKbmObRsTIn4TYVUUug1KfS47YWCo5MacGITEryugIgZqORCvJWEk4l449POg5Txg==", "requires": { "@protobufjs/aspromise": "^1.1.2", "@protobufjs/base64": "^1.1.2", diff --git a/node/hack/governor/src/index.ts b/node/hack/governor/src/index.ts index 1df3e90d23..678c50aa37 100644 --- a/node/hack/governor/src/index.ts +++ b/node/hack/governor/src/index.ts @@ -93,6 +93,8 @@ axios var significantPriceChanges = []; var addedTokens = []; var removedTokens = []; + var changedSymbols = []; + var failedInputValidationTokens = []; var newTokensCount = 0; for (let chain in res.data.AllTime) { @@ -135,8 +137,8 @@ axios await (async () => { const provider = new JsonRpcProvider( new Connection({ - // fullnode: "https://fullnode.mainnet.sui.io", - fullnode: "https://sui-mainnet-rpc.allthatnode.com", + fullnode: "https://fullnode.mainnet.sui.io", + //fullnode: "https://sui-mainnet.g.allthatnode.com/full/json_rpc", }) ); const result = await getOriginalAssetSui( @@ -151,16 +153,25 @@ axios } if (wormholeAddr === undefined) { console.log( - `Ignoring symbol '${data.Symbol}' on chain ${chainId} because the address '${data.Address}' is undefined` + `Ignoring symbol '${data.Symbol}' on chain ${chainId} because the address '${data.Address}' is undefined`, + data, + `Is the SDK up-to-date?` ); continue; } else if (wormholeAddr === "") { console.log( - `Ignoring symbol '${data.Symbol}' on chain ${chainId} because the address '${data.Address}' is invalid` + `Ignoring symbol '${data.Symbol}' on chain ${chainId} because the address '${data.Address}' is invalid`, + data ); continue; } } + + // If the character list is violated, then skip the coin. The error is logged in the function if something happens to have some sort of check on it. + if(!(safetyCheck(chain, wormholeAddr, data.Symbol, data.CoinGeckoId, data.TokenDecimals, data.TokenPrice, data.Address, notional))){ + failedInputValidationTokens.push(chain + "-" + wormholeAddr + "-" + data.symbol) + continue; + } } // This is a new token @@ -195,7 +206,7 @@ axios // }); // } } - + content += "\t{ chain: " + chain + @@ -215,7 +226,9 @@ axios notional + "\n"; - newTokenKeys[chain + "-" + wormholeAddr + "-" + data.Symbol] = true; + // We add in the "=" character to ensure an undefined symbol + // does not mess up the removed tokens logic + newTokenKeys[chain + "-" + wormholeAddr] = "=" + data.Symbol; newTokensCount += 1; } } @@ -224,9 +237,17 @@ axios for (var token of existingTokenKeys) { // A token has been removed from the token list - if (!newTokenKeys[token]) { + // We cut the symbol off the end of the key as it's possible for a token to change its symbol + var tokenParts = token.split("-"); + var newTokenSymbol = newTokenKeys[tokenParts[0] + "-" + tokenParts[1]]; + if (!newTokenSymbol) { removedTokens.push(token); } + // The token symbol has changed + // We take a substring of the symbol to cut the "=" character we added above + else if (tokenParts[0] + "-" + tokenParts[1] + "-" + newTokenSymbol.substring(1) != token) { + changedSymbols.push(token + "->" + newTokenSymbol); + } } // Sanity check to make sure the script is doing what we think it is @@ -241,6 +262,11 @@ axios changedContent += JSON.stringify(addedTokens, null, 1); changedContent += "\n\nTokens removed = " + removedTokens.length + ":\n--\n\n"; changedContent += JSON.stringify(removedTokens, null, 1); + changedContent += "\n\nTokens with changed symbols = " + changedSymbols.length + ":\n--->\n\n"; + + changedContent += "\n\nTokens with invalid symbols = " + failedInputValidationTokens.length + ":\n--\n\n"; + changedContent += JSON.stringify(failedInputValidationTokens, null, 1); + changedContent += "\n\nTokens with significant price drops (>" + PriceDeltaTolerance + "%) = " + significantPriceChanges.length + ":\n\n" changedContent += JSON.stringify(significantPriceChanges, null, 1); changedContent += "\n```"; @@ -277,5 +303,71 @@ axios ); }) .catch((error) => { - console.error(error); + console.error("Request error:", error); }); + + +/* + Perform type checks on the incoming values + Check for a denylist set of characters + + If either of these fail, we reject adding the token. + + Example data: 30 000000000000000000000000b5c457ddb4ce3312a6c5a2b056a1652bd542a208 O404 omni404 18 1128.69 0xb5c457ddb4ce3312a6c5a2b056a1652bd542a208 7.4832146999999996 +*/ +function safetyCheck(chain, wormholeAddr, symbol, coinGeckoId, tokenDecimals, tokenPrice, address, notional) : boolean{ + + if(isNaN(chain)){ + console.log("Invalid chain ID ", chain, " provided") + return false; + } + + if(inputHasInvalidChars(wormholeAddr)){ + console.log("Invalid wormhole address ", wormholeAddr, " provided") + return false; + } + + if(inputHasInvalidChars(symbol)){ + console.log("Invalid token symbol ", symbol, " provided") + return false; + } + + if(inputHasInvalidChars(coinGeckoId)){ + console.log("Invalid coin gecko id ", coinGeckoId, " provided") + return false; + } + + if(isNaN(tokenDecimals)){ + console.log("Invalid token decimals ", tokenDecimals, " provided") + return false; + } + + if(isNaN(tokenPrice)){ + console.log("Invalid token price ", tokenPrice, " provided") + return false; + } + + if(inputHasInvalidChars(address)){ + console.log("Invalid address ", address, " provided") + return false; + } + if(isNaN(notional)){ + console.log("Invalid notional", notional, " provided") + return false; + } + + return true; +} + +// Checks whether an illegal character is present in the provided string +// If a character is found then return true. Otherwise, return false. +function inputHasInvalidChars(input) : boolean{ + var deny_list = ["\"", "%", "\n","\r", "\\","{","}","/","'","[","]","(",")"] + for(var char of deny_list) { + if(input.includes(char)){ + return true; + } + } + + return false; +} diff --git a/node/hack/query/test/query_test.go b/node/hack/query/test/query_test.go deleted file mode 100644 index 09c136397f..0000000000 --- a/node/hack/query/test/query_test.go +++ /dev/null @@ -1,298 +0,0 @@ -package query_test - -import ( - "bytes" - "context" - "encoding/hex" - "fmt" - "os" - "strings" - "testing" - "time" - - "github.com/stretchr/testify/assert" - "github.com/wormhole-foundation/wormhole/sdk/vaa" - - "github.com/certusone/wormhole/node/hack/query/utils" - "github.com/certusone/wormhole/node/pkg/common" - "github.com/certusone/wormhole/node/pkg/p2p" - gossipv1 "github.com/certusone/wormhole/node/pkg/proto/gossip/v1" - "github.com/certusone/wormhole/node/pkg/query" - "github.com/ethereum/go-ethereum/accounts/abi" - ethCommon "github.com/ethereum/go-ethereum/common" - "github.com/ethereum/go-ethereum/common/hexutil" - ethCrypto "github.com/ethereum/go-ethereum/crypto" - pubsub "github.com/libp2p/go-libp2p-pubsub" - "github.com/libp2p/go-libp2p/core/crypto" - "go.uber.org/zap" - "google.golang.org/protobuf/proto" -) - -func TestCrossChainQuery(t *testing.T) { - if os.Getenv("INTEGRATION") == "" { - t.Skip("Skipping integration test, set environment variable INTEGRATION") - } - - p2pNetworkID := "/wormhole/dev" - var p2pPort uint = 8997 - p2pBootstrap := "/dns4/guardian-0.guardian/udp/8996/quic/p2p/12D3KooWL3XJ9EMCyZvmmGXL2LMiVBtrVa2BuESsJiXkSj7333Jw" - nodeKeyPath := "../querier.key" - - ctx := context.Background() - logger, _ := zap.NewDevelopment() - - signingKeyPath := string("../dev.guardian.key") - - logger.Info("Loading signing key", zap.String("signingKeyPath", signingKeyPath)) - sk, err := common.LoadGuardianKey(signingKeyPath, true) - if err != nil { - logger.Fatal("failed to load guardian key", zap.Error(err)) - } - logger.Info("Signing key loaded", zap.String("publicKey", ethCrypto.PubkeyToAddress(sk.PublicKey).Hex())) - - // Fetch the current guardian set - idx, sgs, err := utils.FetchCurrentGuardianSet(common.GoTest) - if err != nil { - logger.Fatal("Failed to fetch current guardian set", zap.Error(err)) - } - logger.Info("Fetched guardian set", zap.Any("keys", sgs.Keys)) - gs := common.GuardianSet{ - Keys: sgs.Keys, - Index: idx, - } - - // Fetch the latest block number - blockNum, err := utils.FetchLatestBlockNumber(ctx, common.GoTest) - if err != nil { - logger.Fatal("Failed to fetch latest block number", zap.Error(err)) - } - - // Load p2p private key - var priv crypto.PrivKey - priv, err = common.GetOrCreateNodeKey(logger, nodeKeyPath) - if err != nil { - logger.Fatal("Failed to load node key", zap.Error(err)) - } - - // Manual p2p setup - components := p2p.DefaultComponents() - components.Port = p2pPort - bootstrapPeers := p2pBootstrap - networkID := p2pNetworkID + "/ccq" - - h, err := p2p.NewHost(logger, ctx, networkID, bootstrapPeers, components, priv) - if err != nil { - panic(err) - } - - topic_req := fmt.Sprintf("%s/%s", networkID, "ccq_req") - topic_resp := fmt.Sprintf("%s/%s", networkID, "ccq_resp") - - logger.Info("Subscribing pubsub topic", zap.String("topic_req", topic_req), zap.String("topic_resp", topic_resp)) - ps, err := pubsub.NewGossipSub(ctx, h) - if err != nil { - panic(err) - } - - th_req, err := ps.Join(topic_req) - if err != nil { - logger.Panic("failed to join request topic", zap.String("topic_req", topic_req), zap.Error(err)) - } - - th_resp, err := ps.Join(topic_resp) - if err != nil { - logger.Panic("failed to join response topic", zap.String("topic_resp", topic_resp), zap.Error(err)) - } - - sub, err := th_resp.Subscribe() - if err != nil { - logger.Panic("failed to subscribe to response topic", zap.Error(err)) - } - - logger.Info("Node has been started", zap.String("peer_id", h.ID().String()), - zap.String("addrs", fmt.Sprintf("%v", h.Addrs()))) - - // Wait for peers - for len(th_req.ListPeers()) < 1 { - time.Sleep(time.Millisecond * 100) - } - - logger.Info("Detected peers") - - wethAbi, err := abi.JSON(strings.NewReader("[{\"constant\":true,\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"}]")) - if err != nil { - panic(err) - } - - methodName := "name" - data, err := wethAbi.Pack(methodName) - if err != nil { - panic(err) - } - to, _ := hex.DecodeString("DDb64fE46a91D46ee29420539FC25FD07c5FEa3E") // WETH - - callData := []*query.EthCallData{ - { - To: to, - Data: data, - }, - } - - callRequest := &query.EthCallQueryRequest{ - BlockId: hexutil.EncodeBig(blockNum), - CallData: callData, - } - - queryRequest := &query.QueryRequest{ - Nonce: 1, - PerChainQueries: []*query.PerChainQueryRequest{ - { - ChainId: 2, - Query: callRequest, - }, - }, - } - - queryRequestBytes, err := queryRequest.Marshal() - if err != nil { - panic(err) - } - - // Sign the query request using our private key. - digest := query.QueryRequestDigest(common.UnsafeDevNet, queryRequestBytes) - sig, err := ethCrypto.Sign(digest.Bytes(), sk) - if err != nil { - panic(err) - } - - signedQueryRequest := &gossipv1.SignedQueryRequest{ - QueryRequest: queryRequestBytes, - Signature: sig, - } - - msg := gossipv1.GossipMessage{ - Message: &gossipv1.GossipMessage_SignedQueryRequest{ - SignedQueryRequest: signedQueryRequest, - }, - } - - b, err := proto.Marshal(&msg) - if err != nil { - panic(err) - } - - err = th_req.Publish(ctx, b) - if err != nil { - panic(err) - } - - logger.Info("Waiting for message...") - var success bool - signers := map[int]bool{} - // The guardians can retry for up to a minute so we have to wait longer than that. - subCtx, cancel := context.WithTimeout(ctx, 75*time.Second) - defer cancel() - for { - envelope, err := sub.Next(subCtx) - if err != nil { - break - } - var msg gossipv1.GossipMessage - err = proto.Unmarshal(envelope.Data, &msg) - if err != nil { - logger.Fatal("received invalid message", - zap.Binary("data", envelope.Data), - zap.String("from", envelope.GetFrom().String())) - } - switch m := msg.Message.(type) { - case *gossipv1.GossipMessage_SignedQueryResponse: - logger.Info("query response received", zap.Any("response", m.SignedQueryResponse)) - var response query.QueryResponsePublication - err := response.Unmarshal(m.SignedQueryResponse.QueryResponse) - if err != nil { - logger.Fatal("failed to unmarshal response", zap.Error(err)) - } - if bytes.Equal(response.Request.QueryRequest, queryRequestBytes) && bytes.Equal(response.Request.Signature, sig) { - digest := query.GetQueryResponseDigestFromBytes(m.SignedQueryResponse.QueryResponse) - signerBytes, err := ethCrypto.Ecrecover(digest.Bytes(), m.SignedQueryResponse.Signature) - if err != nil { - logger.Fatal("failed to verify signature on response", - zap.String("digest", digest.Hex()), - zap.String("signature", hex.EncodeToString(m.SignedQueryResponse.Signature)), - zap.Error(err)) - } - signerAddress := ethCommon.BytesToAddress(ethCrypto.Keccak256(signerBytes[1:])[12:]) - if keyIdx, ok := gs.KeyIndex(signerAddress); !ok { - logger.Fatal("received observation by unknown guardian - is our guardian set outdated?", - zap.String("digest", digest.Hex()), - zap.String("address", signerAddress.Hex()), - zap.Uint32("index", gs.Index), - zap.Any("keys", gs.KeysAsHexStrings()), - ) - } else { - signers[keyIdx] = true - } - quorum := vaa.CalculateQuorum(len(gs.Keys)) - if len(signers) < quorum { - logger.Sugar().Infof("not enough signers, have %d need %d", len(signers), quorum) - continue - } - - if len(response.PerChainResponses) != 1 { - logger.Warn("unexpected number of per chain query responses", zap.Int("expectedNum", 1), zap.Int("actualNum", len(response.PerChainResponses))) - break - } - - var pcq *query.EthCallQueryResponse - switch ecq := response.PerChainResponses[0].Response.(type) { - case *query.EthCallQueryResponse: - pcq = ecq - default: - panic("unsupported query type") - } - - if len(pcq.Results) == 0 { - logger.Warn("response did not contain any results", zap.Error(err)) - break - } - - for idx, resp := range pcq.Results { - result, err := wethAbi.Methods[methodName].Outputs.Unpack(resp) - if err != nil { - logger.Warn("failed to unpack result", zap.Error(err)) - break - } - - resultStr := hexutil.Encode(resp) - logger.Info("found matching response", zap.Int("idx", idx), zap.Uint64("number", pcq.BlockNumber), zap.String("hash", pcq.Hash.String()), zap.String("time", pcq.Time.String()), zap.Any("resultDecoded", result), zap.String("resultStr", resultStr)) - } - - success = true - } - default: - continue - } - if success { - break - } - } - - assert.True(t, success) - - // Cleanly shutdown - // Without this the same host won't properly discover peers until some timeout - sub.Cancel() - if err := th_req.Close(); err != nil { - logger.Fatal("Error closing the request topic", zap.Error(err)) - } - if err := th_resp.Close(); err != nil { - logger.Fatal("Error closing the response topic", zap.Error(err)) - } - if err := h.Close(); err != nil { - logger.Error("Error closing the host", zap.Error(err)) - } -} - -const ( - GuardianKeyArmoredBlock = "WORMHOLE GUARDIAN PRIVATE KEY" -) diff --git a/node/hack/query/test/test_query.sh b/node/hack/query/test/test_query.sh deleted file mode 100644 index 0e23b9b0a4..0000000000 --- a/node/hack/query/test/test_query.sh +++ /dev/null @@ -1,4 +0,0 @@ -#!/bin/sh -set -e -while [[ "$(curl -s -o /dev/null -w ''%{http_code}'' guardian:6060/readyz)" != "200" ]]; do sleep 5; done -INTEGRATION=true go test -v . diff --git a/node/hack/repair_eth/repair_eth.go b/node/hack/repair_eth/repair_eth.go index aef0d9afce..15c5d77454 100644 --- a/node/hack/repair_eth/repair_eth.go +++ b/node/hack/repair_eth/repair_eth.go @@ -366,7 +366,10 @@ func main() { // Press enter to continue if not in dryRun mode if !*dryRun { fmt.Println("Press enter to continue") - fmt.Scanln() + _, err := fmt.Scanln() + if err != nil { + log.Printf("Scanln error: %s\n", err) + } } log.Printf("finding sequences") diff --git a/node/pkg/accountant/ntt_config.go b/node/pkg/accountant/ntt_config.go index 5f74457ccc..c1663ecbb4 100644 --- a/node/pkg/accountant/ntt_config.go +++ b/node/pkg/accountant/ntt_config.go @@ -22,11 +22,15 @@ func nttGetEmitters(env common.Environment) (validEmitters, validEmitters, error arEmitterConfig := sdk.KnownAutomaticRelayerEmitters if env == common.MainNet { directEmitterConfig = emitterConfig{ + // W + NTT deployment emitters {chainId: vaa.ChainIDSolana, addr: "cf5f3614e2cd9b374558f35c7618b25f0d306d5e749b7d29cc030a1a15686238"}, {chainId: vaa.ChainIDEthereum, addr: "000000000000000000000000Db55492d7190D1baE8ACbE03911C4E3E7426870c"}, {chainId: vaa.ChainIDArbitrum, addr: "000000000000000000000000D1a8AB69e00266e8B791a15BC47514153A5045a6"}, {chainId: vaa.ChainIDOptimism, addr: "0000000000000000000000009bD8b7b527CA4e6738cBDaBdF51C22466756073d"}, {chainId: vaa.ChainIDBase, addr: "000000000000000000000000D1a8AB69e00266e8B791a15BC47514153A5045a6"}, + // Lido wstETH + NTT deployment emitters + {chainId: vaa.ChainIDEthereum, addr: "000000000000000000000000A1ACC1e6edaB281Febd91E3515093F1DE81F25c0"}, + {chainId: vaa.ChainIDBSC, addr: "000000000000000000000000be3F7e06872E0dF6CD7FF35B7aa4Bb1446DC9986"}, } } else if env == common.TestNet { directEmitterConfig = emitterConfig{ diff --git a/node/pkg/accountant/ntt_test.go b/node/pkg/accountant/ntt_test.go index c2f6638fed..eeafab8278 100644 --- a/node/pkg/accountant/ntt_test.go +++ b/node/pkg/accountant/ntt_test.go @@ -275,7 +275,7 @@ func TestNttParseArMsgUnknownArEmitter(t *testing.T) { func TestNttVerifyMainnetEmitters(t *testing.T) { directEmitters, arEmitters, err := nttGetEmitters(common.MainNet) require.NoError(t, err) - assert.Equal(t, 5, len(directEmitters)) // TODO: Change this when we add a mainnet emitter! + assert.Equal(t, 7, len(directEmitters)) // TODO: Change this when we add a mainnet emitter! assert.NotEqual(t, 0, len(arEmitters)) } diff --git a/node/pkg/accountant/submit_obs.go b/node/pkg/accountant/submit_obs.go index a21ba58466..7da1695170 100644 --- a/node/pkg/accountant/submit_obs.go +++ b/node/pkg/accountant/submit_obs.go @@ -67,7 +67,7 @@ func (acct *Accountant) handleBatch(ctx context.Context, subChan chan *common.Me ctx, cancel := context.WithTimeout(ctx, delayInMS) defer cancel() - msgs, err := readFromChannel[*common.MessagePublication](ctx, subChan, batchSize) + msgs, err := common.ReadFromChannelWithTimeout[*common.MessagePublication](ctx, subChan, batchSize) if err != nil && !errors.Is(err, context.DeadlineExceeded) { return fmt.Errorf("failed to read messages from channel for %s: %w", tag, err) } @@ -95,21 +95,6 @@ func (acct *Accountant) handleBatch(ctx context.Context, subChan chan *common.Me return nil } -// readFromChannel reads events from the channel until a timeout occurs or the batch is full, and returns them. -func readFromChannel[T any](ctx context.Context, ch <-chan T, count int) ([]T, error) { - out := make([]T, 0, count) - for len(out) < count { - select { - case <-ctx.Done(): - return out, ctx.Err() - case msg := <-ch: - out = append(out, msg) - } - } - - return out, nil -} - // removeCompleted drops any messages that are no longer in the pending transfer map. This is to handle the case where the contract reports // that a transfer is committed while it is in the channel. There is no point in submitting the observation once the transfer is committed. func (acct *Accountant) removeCompleted(msgs []*common.MessagePublication) []*common.MessagePublication { diff --git a/node/pkg/adminrpc/adminserver.go b/node/pkg/adminrpc/adminserver.go index 92c20e4928..76426a556d 100644 --- a/node/pkg/adminrpc/adminserver.go +++ b/node/pkg/adminrpc/adminserver.go @@ -41,6 +41,8 @@ import ( sdktypes "github.com/cosmos/cosmos-sdk/types" ) +const maxResetReleaseTimerDays = 7 + var ( vaaInjectionsTotal = promauto.NewCounter( prometheus.CounterOpts{ @@ -1031,7 +1033,11 @@ func (s *nodePrivilegedService) ChainGovernorResetReleaseTimer(ctx context.Conte return nil, fmt.Errorf("the VAA id must be specified as \"chainId/emitterAddress/seqNum\"") } - resp, err := s.governor.ResetReleaseTimer(req.VaaId) + if req.NumDays < 1 || req.NumDays > maxResetReleaseTimerDays { + return nil, fmt.Errorf("the specified number of days falls outside the range of 1 to %d", maxResetReleaseTimerDays) + } + + resp, err := s.governor.ResetReleaseTimer(req.VaaId, req.NumDays) if err != nil { return nil, err } diff --git a/node/pkg/adminrpc/adminserver_test.go b/node/pkg/adminrpc/adminserver_test.go index 235f3cdc90..f1167f71c1 100644 --- a/node/pkg/adminrpc/adminserver_test.go +++ b/node/pkg/adminrpc/adminserver_test.go @@ -8,6 +8,9 @@ import ( "testing" "time" + wh_common "github.com/certusone/wormhole/node/pkg/common" + "github.com/certusone/wormhole/node/pkg/db" + "github.com/certusone/wormhole/node/pkg/governor" nodev1 "github.com/certusone/wormhole/node/pkg/proto/node/v1" "github.com/certusone/wormhole/node/pkg/watchers/evm/connectors" "github.com/certusone/wormhole/node/pkg/watchers/evm/connectors/ethabi" @@ -317,3 +320,84 @@ func Test_adminCommands(t *testing.T) { }) } } + +func newNodePrivilegedServiceForGovernorTests() *nodePrivilegedService { + gov := governor.NewChainGovernor(zap.NewNop(), &db.MockGovernorDB{}, wh_common.GoTest, false) + + return &nodePrivilegedService{ + db: nil, + injectC: nil, + obsvReqSendC: nil, + logger: nil, + signedInC: nil, + governor: gov, + evmConnector: nil, + gk: nil, + guardianAddress: common.Address{}, + } +} + +func TestChainGovernorResetReleaseTimer(t *testing.T) { + service := newNodePrivilegedServiceForGovernorTests() + + // governor has no VAAs enqueued, so if we receive this error we know the input validation passed + success := `vaa not found in the pending list` + boundsCheckFailure := `the specified number of days falls outside the range of 1 to 7` + vaaIdLengthFailure := `the VAA id must be specified as "chainId/emitterAddress/seqNum"` + + tests := map[string]struct { + vaaId string + numDays uint32 + expectedResult string + }{ + "EmptyVaaId": { + vaaId: "", + numDays: 1, + expectedResult: vaaIdLengthFailure, + }, + "NumDaysEqualsLowerBoundary": { + vaaId: "valid", + numDays: 1, + expectedResult: success, + }, + "NumDaysLowerThanLowerBoundary": { + vaaId: "valid", + numDays: 0, + expectedResult: boundsCheckFailure, + }, + "NumDaysEqualsUpperBoundary": { + vaaId: "valid", + numDays: maxResetReleaseTimerDays, + expectedResult: success, + }, + "NumDaysExceedsUpperBoundary": { + vaaId: "valid", + numDays: maxResetReleaseTimerDays + 1, + expectedResult: boundsCheckFailure, + }, + "EmptyVaaIdAndNumDaysExceedsUpperBoundary": { + vaaId: "", + numDays: maxResetReleaseTimerDays + 1, + expectedResult: vaaIdLengthFailure, + }, + "NumDaysSignificantlyExceedsUpperBoundary": { + vaaId: "valid", + numDays: maxResetReleaseTimerDays + 1000, + expectedResult: boundsCheckFailure, + }, + } + + ctx := context.Background() + for name, test := range tests { + t.Run(name, func(t *testing.T) { + req := nodev1.ChainGovernorResetReleaseTimerRequest{ + VaaId: test.vaaId, + NumDays: test.numDays, + } + + _, err := service.ChainGovernorResetReleaseTimer(ctx, &req) + assert.EqualError(t, err, test.expectedResult) + }) + } + +} diff --git a/node/pkg/common/channel_utils.go b/node/pkg/common/channel_utils.go new file mode 100644 index 0000000000..60c3ff522c --- /dev/null +++ b/node/pkg/common/channel_utils.go @@ -0,0 +1,20 @@ +package common + +import ( + "context" +) + +// ReadFromChannelWithTimeout reads events from the channel until a timeout occurs or the max maxCount is reached. +func ReadFromChannelWithTimeout[T any](ctx context.Context, ch <-chan T, maxCount int) ([]T, error) { + out := make([]T, 0, maxCount) + for len(out) < maxCount { + select { + case <-ctx.Done(): + return out, ctx.Err() + case msg := <-ch: + out = append(out, msg) + } + } + + return out, nil +} diff --git a/node/pkg/common/channel_utils_test.go b/node/pkg/common/channel_utils_test.go new file mode 100644 index 0000000000..cfa524755c --- /dev/null +++ b/node/pkg/common/channel_utils_test.go @@ -0,0 +1,80 @@ +package common + +import ( + "context" + "testing" + "time" + + "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" +) + +const myDelay = time.Millisecond * 100 +const myMaxSize = 2 +const myQueueSize = myMaxSize * 10 + +func TestReadFromChannelWithTimeout_NoData(t *testing.T) { + ctx := context.Background() + myChan := make(chan int, myQueueSize) + + // No data should timeout. + timeout, cancel := context.WithTimeout(ctx, myDelay) + defer cancel() + observations, err := ReadFromChannelWithTimeout[int](timeout, myChan, myMaxSize) + assert.Equal(t, err, context.DeadlineExceeded) + assert.Equal(t, 0, len(observations)) +} + +func TestReadFromChannelWithTimeout_SomeData(t *testing.T) { + ctx := context.Background() + myChan := make(chan int, myQueueSize) + myChan <- 1 + + // Some data but not enough to fill a message should timeout and return the data. + timeout, cancel := context.WithTimeout(ctx, myDelay) + defer cancel() + observations, err := ReadFromChannelWithTimeout[int](timeout, myChan, myMaxSize) + assert.Equal(t, err, context.DeadlineExceeded) + require.Equal(t, 1, len(observations)) + assert.Equal(t, 1, observations[0]) +} + +func TestReadFromChannelWithTimeout_JustEnoughData(t *testing.T) { + ctx := context.Background() + myChan := make(chan int, myQueueSize) + myChan <- 1 + myChan <- 2 + + // Just enough data should return the data and no error. + timeout, cancel := context.WithTimeout(ctx, myDelay) + defer cancel() + observations, err := ReadFromChannelWithTimeout[int](timeout, myChan, myMaxSize) + assert.NoError(t, err) + require.Equal(t, 2, len(observations)) + assert.Equal(t, 1, observations[0]) + assert.Equal(t, 2, observations[1]) +} + +func TestReadFromChannelWithTimeout_TooMuchData(t *testing.T) { + ctx := context.Background() + myChan := make(chan int, myQueueSize) + myChan <- 1 + myChan <- 2 + myChan <- 3 + + // If there is more data than will fit, it should immediately return a full message, then timeout and return the remainder. + timeout, cancel := context.WithTimeout(ctx, myDelay) + defer cancel() + observations, err := ReadFromChannelWithTimeout[int](timeout, myChan, myMaxSize) + assert.NoError(t, err) + require.Equal(t, 2, len(observations)) + assert.Equal(t, 1, observations[0]) + assert.Equal(t, 2, observations[1]) + + timeout2, cancel2 := context.WithTimeout(ctx, myDelay) + defer cancel2() + observations, err = ReadFromChannelWithTimeout[int](timeout2, myChan, myMaxSize) + assert.Equal(t, err, context.DeadlineExceeded) + require.Equal(t, 1, len(observations)) + assert.Equal(t, 3, observations[0]) +} diff --git a/node/pkg/common/guardianset.go b/node/pkg/common/guardianset.go index b1a06b3c21..ea153a90d4 100644 --- a/node/pkg/common/guardianset.go +++ b/node/pkg/common/guardianset.go @@ -8,6 +8,7 @@ import ( gossipv1 "github.com/certusone/wormhole/node/pkg/proto/gossip/v1" "github.com/ethereum/go-ethereum/common" "github.com/libp2p/go-libp2p/core/peer" + "github.com/wormhole-foundation/wormhole/sdk/vaa" "github.com/prometheus/client_golang/prometheus" "github.com/prometheus/client_golang/prometheus/promauto" @@ -49,8 +50,35 @@ const MaxStateAge = 1 * time.Minute type GuardianSet struct { // Guardian's public key hashes truncated by the ETH standard hashing mechanism (20 bytes). Keys []common.Address + // On-chain set index Index uint32 + + // quorum value for this set of keys + quorum int + + // A map from address to index. Testing showed that, on average, a map is almost three times faster than a sequential search of the key slice. + // Testing also showed that the map was twice as fast as using a sorted slice and `slices.BinarySearchFunc`. That being said, on a 4GHz CPU, + // the sequential search takes an average of 800 nanos and the map look up takes about 260 nanos. Is this worth doing? + keyMap map[common.Address]int +} + +// Quorum returns the current quorum value. +func (gs *GuardianSet) Quorum() int { + return gs.quorum +} + +func NewGuardianSet(keys []common.Address, index uint32) *GuardianSet { + keyMap := map[common.Address]int{} + for idx, key := range keys { + keyMap[key] = idx + } + return &GuardianSet{ + Keys: keys, + Index: index, + quorum: vaa.CalculateQuorum(len(keys)), + keyMap: keyMap, + } } func (g *GuardianSet) KeysAsHexStrings() []string { @@ -66,9 +94,15 @@ func (g *GuardianSet) KeysAsHexStrings() []string { // KeyIndex returns a given address index from the guardian set. Returns (-1, false) // if the address wasn't found and (addr, true) otherwise. func (g *GuardianSet) KeyIndex(addr common.Address) (int, bool) { - for n, k := range g.Keys { - if k == addr { - return n, true + if g.keyMap != nil { + if idx, found := g.keyMap[addr]; found { + return idx, true + } + } else { + for n, k := range g.Keys { + if k == addr { + return n, true + } } } diff --git a/node/pkg/common/guardianset_test.go b/node/pkg/common/guardianset_test.go index c172515699..0112c38eee 100644 --- a/node/pkg/common/guardianset_test.go +++ b/node/pkg/common/guardianset_test.go @@ -1,12 +1,42 @@ package common import ( + "reflect" "testing" "github.com/ethereum/go-ethereum/common" "github.com/stretchr/testify/assert" + "github.com/wormhole-foundation/wormhole/sdk/vaa" ) +func TestNewGuardianSet(t *testing.T) { + keys := []common.Address{ + common.HexToAddress("0xbeFA429d57cD18b7F8A4d91A2da9AB4AF05d0FBe"), + common.HexToAddress("0x88D7D8B32a9105d228100E72dFFe2Fae0705D31c"), + common.HexToAddress("0x58076F561CC62A47087B567C86f986426dFCD000"), + common.HexToAddress("0xBd6e9833490F8fA87c733A183CD076a6cBD29074"), + common.HexToAddress("0xb853FCF0a5C78C1b56D15fCE7a154e6ebe9ED7a2"), + common.HexToAddress("0xAF3503dBD2E37518ab04D7CE78b630F98b15b78a"), + common.HexToAddress("0x785632deA5609064803B1c8EA8bB2c77a6004Bd1"), + common.HexToAddress("0x09a281a698C0F5BA31f158585B41F4f33659e54D"), + common.HexToAddress("0x3178443AB76a60E21690DBfB17f7F59F09Ae3Ea1"), + common.HexToAddress("0x647ec26ae49b14060660504f4DA1c2059E1C5Ab6"), + common.HexToAddress("0x810AC3D8E1258Bd2F004a94Ca0cd4c68Fc1C0611"), + common.HexToAddress("0x80610e96d645b12f47ae5cf4546b18538739e90F"), + common.HexToAddress("0x2edb0D8530E31A218E72B9480202AcBaeB06178d"), + common.HexToAddress("0xa78858e5e5c4705CdD4B668FFe3Be5bae4867c9D"), + common.HexToAddress("0x5Efe3A05Efc62D60e1D19fAeB56A80223CDd3472"), + common.HexToAddress("0xD791b7D32C05aBB1cc00b6381FA0c4928f0c56fC"), + common.HexToAddress("0x14Bc029B8809069093D712A3fd4DfAb31963597e"), + common.HexToAddress("0x246Ab29FC6EBeDf2D392a51ab2Dc5C59d0902A03"), + common.HexToAddress("0x132A84dFD920b35a3D0BA5f7A0635dF298F9033e"), + } + gs := NewGuardianSet(keys, 1) + assert.True(t, reflect.DeepEqual(keys, gs.Keys)) + assert.Equal(t, uint32(1), gs.Index) + assert.Equal(t, vaa.CalculateQuorum(len(keys)), gs.Quorum()) +} + func TestKeyIndex(t *testing.T) { type test struct { guardianSet GuardianSet @@ -15,13 +45,13 @@ func TestKeyIndex(t *testing.T) { keyIndex int } - guardianSet := GuardianSet{ - Keys: []common.Address{ + guardianSet := *NewGuardianSet( + []common.Address{ common.HexToAddress("0x5aaeb6053f3e94c9b9a09f33669435e7ef1beaed"), common.HexToAddress("0x5aaeb6053f3e94c9b9a09f33669435e7ef1beaee"), }, - Index: 1, - } + 1, + ) tests := []test{ {guardianSet: guardianSet, address: "0x5aaeb6053f3e94c9b9a09f33669435e7ef1beaed", result: true, keyIndex: 0}, diff --git a/node/pkg/db/accountant.go b/node/pkg/db/accountant.go index 458def819b..2883ec4d59 100644 --- a/node/pkg/db/accountant.go +++ b/node/pkg/db/accountant.go @@ -92,9 +92,9 @@ func (d *Database) AcctGetData(logger *zap.Logger) ([]*common.MessagePublication }) } - // See if we have any old format pending transfers. + // Any pending transfers in the old format are long since obsolete. Just delete them. if err == nil { - oldPendingTransfers := []*common.MessagePublication{} + oldPendingTransfers := []string{} prefixBytes := []byte(acctOldPendingTransfer) err = d.db.View(func(txn *badger.Txn) error { opts := badger.DefaultIteratorOptions @@ -116,7 +116,7 @@ func (d *Database) AcctGetData(logger *zap.Logger) ([]*common.MessagePublication continue } - oldPendingTransfers = append(oldPendingTransfers, pt) + oldPendingTransfers = append(oldPendingTransfers, pt.MessageIDString()) } else { return fmt.Errorf("unexpected accountant pending transfer key '%s'", string(key)) } @@ -126,20 +126,14 @@ func (d *Database) AcctGetData(logger *zap.Logger) ([]*common.MessagePublication }) if err == nil && len(oldPendingTransfers) != 0 { - pendingTransfers = append(pendingTransfers, oldPendingTransfers...) for _, pt := range oldPendingTransfers { - logger.Info("updating format of database entry for pending vaa", zap.String("msgId", pt.MessageIDString())) - err := d.AcctStorePendingTransfer(pt) - if err != nil { - return pendingTransfers, fmt.Errorf("failed to write new pending msg for key [%v]: %w", pt.MessageIDString(), err) - } - - key := acctOldPendingTransferMsgID(pt.MessageIDString()) + key := acctOldPendingTransferMsgID(pt) + logger.Info("deleting obsolete pending transfer", zap.String("msgId", pt), zap.String("key", string(key))) if err := d.db.Update(func(txn *badger.Txn) error { err := txn.Delete(key) return err }); err != nil { - return pendingTransfers, fmt.Errorf("failed to delete old pending msg for key [%v]: %w", pt.MessageIDString(), err) + return pendingTransfers, fmt.Errorf("failed to delete old pending msg for key [%v]: %w", pt, err) } } } diff --git a/node/pkg/db/accountant_test.go b/node/pkg/db/accountant_test.go index 868a9c648b..93f5e29ea4 100644 --- a/node/pkg/db/accountant_test.go +++ b/node/pkg/db/accountant_test.go @@ -4,7 +4,6 @@ import ( "bytes" "encoding/binary" "os" - "sort" "testing" "time" @@ -201,7 +200,7 @@ func TestAcctGetData(t *testing.T) { assert.Equal(t, *msg2, *pendings[1]) } -func TestAcctLoadingOldPendings(t *testing.T) { +func TestAcctLoadingWhereOldPendingsGetDropped(t *testing.T) { dbPath := t.TempDir() db, err := Open(dbPath) if err != nil { @@ -210,6 +209,8 @@ func TestAcctLoadingOldPendings(t *testing.T) { defer db.Close() defer os.Remove(dbPath) + logger := zap.NewNop() + tokenBridgeAddr, err := vaa.StringToAddress("0x0290fb167208af455bb137780163b7b7a9a10c16") require.NoError(t, err) @@ -249,27 +250,20 @@ func TestAcctLoadingOldPendings(t *testing.T) { err = db.AcctStorePendingTransfer(pending2) require.Nil(t, err) - logger := zap.NewNop() + // When we reload the data, the first one should get dropped, so we should get back only one. pendings, err := db.AcctGetData(logger) require.NoError(t, err) - require.Equal(t, 2, len(pendings)) - - // Updated old pending events get placed at the end, so we need to sort into timestamp order. - sort.SliceStable(pendings, func(i, j int) bool { - return pendings[i].Timestamp.Before(pendings[j].Timestamp) - }) + require.Equal(t, 1, len(pendings)) - assert.Equal(t, *pending1, *pendings[0]) - assert.Equal(t, *pending2, *pendings[1]) + assert.Equal(t, *pending2, *pendings[0]) - // Make sure we can reload the updated pendings. + // Make sure we can still reload things after deleting the old one. pendings2, err := db.AcctGetData(logger) require.Nil(t, err) - require.Equal(t, 2, len(pendings2)) + require.Equal(t, 1, len(pendings2)) - assert.Equal(t, pending1, pendings2[0]) - assert.Equal(t, pending2, pendings2[1]) + assert.Equal(t, pending2, pendings2[0]) } func (d *Database) acctStoreOldPendingTransfer(t *testing.T, msg *common.MessagePublication) { diff --git a/node/pkg/db/db.go b/node/pkg/db/db.go index 66810b30b4..04cc806fc9 100644 --- a/node/pkg/db/db.go +++ b/node/pkg/db/db.go @@ -128,6 +128,35 @@ func (d *Database) StoreSignedVAA(v *vaa.VAA) error { return nil } +// StoreSignedVAABatch writes multiple VAAs to the database using the BadgerDB batch API. +// Note that the API takes care of splitting up the slice into the maximum allowed count +// and size so we don't need to worry about that. +func (d *Database) StoreSignedVAABatch(vaaBatch []*vaa.VAA) error { + batchTx := d.db.NewWriteBatch() + defer batchTx.Cancel() + + for _, v := range vaaBatch { + if len(v.Signatures) == 0 { + panic("StoreSignedVAABatch called for unsigned VAA") + } + + b, err := v.Marshal() + if err != nil { + panic("StoreSignedVAABatch failed to marshal VAA") + } + + err = batchTx.Set(VaaIDFromVAA(v).Bytes(), b) + if err != nil { + return err + } + } + + // Wait for the batch to finish. + err := batchTx.Flush() + storedVaaTotal.Add(float64(len(vaaBatch))) + return err +} + func (d *Database) HasVAA(id VAAID) (bool, error) { err := d.db.View(func(txn *badger.Txn) error { _, err := txn.Get(id.Bytes()) diff --git a/node/pkg/db/db_test.go b/node/pkg/db/db_test.go index ffbdc2f804..5fde4c07d4 100644 --- a/node/pkg/db/db_test.go +++ b/node/pkg/db/db_test.go @@ -1,6 +1,7 @@ package db import ( + "bytes" "crypto/ecdsa" "crypto/rand" "fmt" @@ -22,6 +23,10 @@ import ( ) func getVAA() vaa.VAA { + return getVAAWithSeqNum(1) +} + +func getVAAWithSeqNum(seqNum uint64) vaa.VAA { var payload = []byte{97, 97, 97, 97, 97, 97} var governanceEmitter = vaa.Address{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4} @@ -31,7 +36,7 @@ func getVAA() vaa.VAA { Signatures: nil, Timestamp: time.Unix(0, 0), Nonce: uint32(1), - Sequence: uint64(1), + Sequence: seqNum, ConsistencyLevel: uint8(32), EmitterChain: vaa.ChainIDSolana, EmitterAddress: governanceEmitter, @@ -114,6 +119,68 @@ func TestStoreSignedVAASigned(t *testing.T) { assert.NoError(t, err2) } +func TestStoreSignedVAABatch(t *testing.T) { + dbPath := t.TempDir() + db, err := Open(dbPath) + if err != nil { + t.Error("failed to open database") + } + defer db.Close() + defer os.Remove(dbPath) + + privKey, err := ecdsa.GenerateKey(crypto.S256(), rand.Reader) + require.NoError(t, err) + + require.Less(t, int64(0), db.db.MaxBatchCount()) // In testing this was 104857. + require.Less(t, int64(0), db.db.MaxBatchSize()) // In testing this was 10066329. + + // Make sure we exceed the max batch size. + numVAAs := uint64(db.db.MaxBatchCount() + 1) + + // Build the VAA batch. + vaaBatch := make([]*vaa.VAA, 0, numVAAs) + for seqNum := uint64(0); seqNum < numVAAs; seqNum++ { + v := getVAAWithSeqNum(seqNum) + v.AddSignature(privKey, 0) + vaaBatch = append(vaaBatch, &v) + } + + // Store the batch in the database. + err = db.StoreSignedVAABatch(vaaBatch) + require.NoError(t, err) + + // Verify all the VAAs are in the database. + for _, v := range vaaBatch { + storedBytes, err := db.GetSignedVAABytes(*VaaIDFromVAA(v)) + require.NoError(t, err) + + origBytes, err := v.Marshal() + require.NoError(t, err) + + assert.True(t, bytes.Equal(origBytes, storedBytes)) + } + + // Verify that updates work as well by tweaking the VAAs and rewriting them. + for _, v := range vaaBatch { + v.Nonce += 1 + } + + // Store the updated batch in the database. + err = db.StoreSignedVAABatch(vaaBatch) + require.NoError(t, err) + + // Verify all the updated VAAs are in the database. + for _, v := range vaaBatch { + storedBytes, err := db.GetSignedVAABytes(*VaaIDFromVAA(v)) + require.NoError(t, err) + + origBytes, err := v.Marshal() + require.NoError(t, err) + + assert.True(t, bytes.Equal(origBytes, storedBytes)) + } +} + func TestGetSignedVAABytes(t *testing.T) { dbPath := t.TempDir() db, err := Open(dbPath) diff --git a/node/pkg/governor/devnet_config.go b/node/pkg/governor/devnet_config.go index 55a6e2f68b..ed83636437 100644 --- a/node/pkg/governor/devnet_config.go +++ b/node/pkg/governor/devnet_config.go @@ -12,13 +12,16 @@ func (gov *ChainGovernor) initDevnetConfig() ([]tokenConfigEntry, []tokenConfigE gov.dayLengthInMinutes = 5 tokens := []tokenConfigEntry{ - {chain: 1, addr: "069b8857feab8184fb687f634618c035dac439dc1aeb3b5598a0f00000000001", symbol: "SOL", coinGeckoId: "wrapped-solana", decimals: 8, price: 34.94}, // Addr: So11111111111111111111111111111111111111112, Notional: 4145006 - {chain: 1, addr: "3b442cb3912157f13a933d0134282d032b5ffecd01a2dbf1b7790608df002ea7", symbol: "USDC", coinGeckoId: "usdc", decimals: 6, price: 1}, // Addr: 4zMMC9srt5Ri5X14GAgXhaHii3GnPAEERYPJgZJDncDU, Notional: 1 + {chain: 1, addr: "069b8857feab8184fb687f634618c035dac439dc1aeb3b5598a0f00000000001", symbol: "SOL", coinGeckoId: "wrapped-solana", decimals: 9, price: 138.11}, // Addr: So11111111111111111111111111111111111111112, Notional: 82226686.73036034 + {chain: 1, addr: "3b442cb3912157f13a933d0134282d032b5ffecd01a2dbf1b7790608df002ea7", symbol: "USDC", coinGeckoId: "usd-coin", decimals: 6, price: 1.001}, // Addr: 4zMMC9srt5Ri5X14GAgXhaHii3GnPAEERYPJgZJDncDU, Notional: 6780118.197035182 {chain: 2, addr: "000000000000000000000000DDb64fE46a91D46ee29420539FC25FD07c5FEa3E", symbol: "WETH", coinGeckoId: "weth", decimals: 8, price: 1174}, } - flowCancelTokens := []tokenConfigEntry{ - {chain: 1, addr: "3b442cb3912157f13a933d0134282d032b5ffecd01a2dbf1b7790608df002ea7", symbol: "USDC", coinGeckoId: "usdc", decimals: 6, price: 1}, // Addr: 4zMMC9srt5Ri5X14GAgXhaHii3GnPAEERYPJgZJDncDU, Notional: 1 + flowCancelTokens := []tokenConfigEntry{} + if gov.flowCancelEnabled { + flowCancelTokens = []tokenConfigEntry{ + {chain: 1, addr: "3b442cb3912157f13a933d0134282d032b5ffecd01a2dbf1b7790608df002ea7", symbol: "USDC", coinGeckoId: "usd-coin", decimals: 6, price: 1.001}, // Addr: 4zMMC9srt5Ri5X14GAgXhaHii3GnPAEERYPJgZJDncDU, Notional: 6780118.197035182 + } } chains := []chainConfigEntry{ diff --git a/node/pkg/governor/flow_cancel_tokens.go b/node/pkg/governor/flow_cancel_tokens.go index c4d95c150a..da8bfb8e86 100644 --- a/node/pkg/governor/flow_cancel_tokens.go +++ b/node/pkg/governor/flow_cancel_tokens.go @@ -11,10 +11,10 @@ package governor func FlowCancelTokenList() []tokenConfigEntry { return []tokenConfigEntry{ // USDC variants - {chain: 2, addr: "000000000000000000000000bcca60bb61934080951369a648fb03df4f96263c", symbol: "aUSDC"}, + {chain: 1, addr: "c6fa7af3bedbad3a3d65f36aabc97431b1bbe4c2d2f6e0e47ca60203452f5d61", symbol: "USDC"}, + {chain: 2, addr: "000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", symbol: "USDC"}, // USDT variants - {chain: 1, addr: "b7db4e83eb727f1187bd7a50303f5b4e4e943503da8571ad6564a51131504792", symbol: ""}, {chain: 1, addr: "ce010e60afedb22717bd63192f54145a3f965a33bb82d2c7029eb2ce1e208264", symbol: "USDT"}, {chain: 2, addr: "000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec7", symbol: "USDT"}, diff --git a/node/pkg/governor/generated_mainnet_tokens.go b/node/pkg/governor/generated_mainnet_tokens.go index cfeec6904f..19195444a8 100644 --- a/node/pkg/governor/generated_mainnet_tokens.go +++ b/node/pkg/governor/generated_mainnet_tokens.go @@ -1,1463 +1,1534 @@ // This file contains the token config to be used in the mainnet environment. // -// This file was generated: Wed May 01 2024 15:41:59 GMT+0000 (Coordinated Universal Time) using a min notional of 0 +// This file was generated: Thu Aug 15 2024 00:37:36 GMT+0000 (Coordinated Universal Time) using a min notional of 0 package governor func generatedMainnetTokenList() []tokenConfigEntry { return []tokenConfigEntry{ - {chain: 1, addr: "dbe7c49c3d365abe845bb853bf8a6e8a42743847fd0611ffba1a410b3f22639e", symbol: "FORGE", coinGeckoId: "blocksmith-labs-forge", decimals: 9, price: 0.04186375}, // Addr: FoRGERiW7odcCBGU1bztZi16osPBHjxharvDathL5eds, Notional: 0.0541397902293125 - {chain: 1, addr: "e24bdeaeffa04f43b8771a420b80061cf093260db29ac9c8ead65058a97f7857", symbol: "", coinGeckoId: "genopets", decimals: 9, price: 0.23221}, // Addr: GENEtH5amGSi8kHAtQoezp1XEXwZJ8vcuePYnXdKrMYz, Notional: 3.0849719986844 + {chain: 1, addr: "dbe7c49c3d365abe845bb853bf8a6e8a42743847fd0611ffba1a410b3f22639e", symbol: "FORGE", coinGeckoId: "blocksmith-labs-forge", decimals: 9, price: 0.0143603}, // Addr: FoRGERiW7odcCBGU1bztZi16osPBHjxharvDathL5eds, Notional: 0.018571284933384998 + {chain: 1, addr: "e24bdeaeffa04f43b8771a420b80061cf093260db29ac9c8ead65058a97f7857", symbol: "", coinGeckoId: "genopets", decimals: 9, price: 0.106782}, // Addr: GENEtH5amGSi8kHAtQoezp1XEXwZJ8vcuePYnXdKrMYz, Notional: 1.4186274491344801 {chain: 1, addr: "7dd04d62e0c5aac91b412ea0cf91f647234e2797378e4b983cdecb7d3ef6fd46", symbol: "", coinGeckoId: "gigadao", decimals: 4, price: 0.00040465}, // Addr: 9U8Bn6zAf6Wyp1YHdXtLyfbN7yMvdvW1qQY475iZ5ftZ, Notional: 0.202325 - {chain: 1, addr: "9266050ea34cd64a96e9e7be1e210ed22b2e3f5fde61861af7527c681ef2f3d3", symbol: "renDOGE", coinGeckoId: "rendoge", decimals: 8, price: 0.00731579}, // Addr: ArUkYE2XDKzqy77PRRGjo4wREWwqk6RXTfM9NeqzPvjU, Notional: 23.54035400934 - {chain: 1, addr: "e8aea53120492d4b007a41f4fea777ac914c36dc21f944614e9a96ebe0a18367", symbol: "SOLPAD", coinGeckoId: "solpad-finance", decimals: 9, price: 0.00005394}, // Addr: GfJ3Vq2eSTYf1hJP6kKLE9RT6u7jF9gNszJhZwo5VPZp, Notional: 0.0025148303383062003 - {chain: 1, addr: "4099261906e4d99a6926404cb79d4a2de516b4aef140e4bf48d35b4ba22654e4", symbol: "ACS", coinGeckoId: "access-protocol", decimals: 6, price: 0.00216291}, // Addr: 5MAYDfq5yxtudAhtfyuMBuHZjgAbaS9tbEyEQYAhDS5y, Notional: 129.85585850854207 - {chain: 1, addr: "82444ff8283660793c0370a7dd9fb35cb1f7338d57eb088765d0dad090541e72", symbol: "", coinGeckoId: "mimatic", decimals: 9, price: 0.983962}, // Addr: 9mWRABuz2x6koTPCWiCPM49WUbcrNqGTHBV9T9k7y1o7, Notional: 20.51641755976372 - {chain: 1, addr: "c9a11f01cc857e5febddff9fd9e04cc82f44ec58ec6f19e23f5e7cca07ffb041", symbol: "PAI", coinGeckoId: "parrot-usd", decimals: 6, price: 1.01}, // Addr: Ea5SjE2Y6yvCeW5dYTn7PYMuW5ikXkvbGdcmSnXeaLjS, Notional: 40.4 - {chain: 1, addr: "08eaab49809a0d284791dcf38d96b4dde48d41807f3a795dcfaf325205943057", symbol: "Boo", coinGeckoId: "boo-2", decimals: 9, price: 0.00014771}, // Addr: booe3XGMztBMB9RhCgNodhJQeaaMmhdGehMCVPMGza2, Notional: 3.754405041254089 - {chain: 1, addr: "c59cade70266477a5028970d5d9680bb9f1602dd393d05e3cfa8775ea818e6f8", symbol: "", coinGeckoId: "bozo-hybrid", decimals: 9, price: 0.01347039}, // Addr: EJPtJEDogxzDbvM8qvAsqYbLmPj5n1vQeqoAzj9Yfv3q, Notional: 0.00037293569468010003 - {chain: 1, addr: "c6fa7af3bedbad3a3d65f36aabc97431b1bbe4c2d2f6e0e47ca60203452f5d61", symbol: "USDC", coinGeckoId: "usd-coin", decimals: 6, price: 1}, // Addr: EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v, Notional: 8319264.567211 - {chain: 1, addr: "068d824d56f0eebb7566e6ee1d65a9d260ff509a4b5c69b6269ad64de3cd50bc", symbol: "SBR", coinGeckoId: "saber", decimals: 6, price: 0.00236181}, // Addr: Saber2gLauYim4Mvftnrasomsv6NvAuncvMEZwcLpD1, Notional: 8.355319628183551 - {chain: 1, addr: "2688c77a2a9c9ad17318699dcb85b3d9a23762c6e7156bc7f83b3052953293f2", symbol: "LIKE", coinGeckoId: "only1", decimals: 9, price: 0.098776}, // Addr: 3bRTivrVsitbmCTGtqwp7hxXPsybkjn4XLNtPsHqa3zR, Notional: 0.79712232 - {chain: 1, addr: "06e44836998a9e52bde7b5182fdbbdde4e2789cbffe5ab0e9762cb13651c8bda", symbol: "TULIP", coinGeckoId: "solfarm", decimals: 6, price: 0.729305}, // Addr: TuLipcqtGVXP9XR62wM8WWCm6a9vhLs7T1uoWBk6FDs, Notional: 0.00145861 - {chain: 1, addr: "8cbf9fdba8691b67e32eb57a784b1cae2744c6fc03ac61e450dd9331b9bdbb2e", symbol: "AURY", coinGeckoId: "aurory", decimals: 9, price: 0.529679}, // Addr: AURYydfxJib1ZkTir1Jn1J9ECYUtjb6rKQVmtYaixWPP, Notional: 3127.0444956777606 + {chain: 1, addr: "9266050ea34cd64a96e9e7be1e210ed22b2e3f5fde61861af7527c681ef2f3d3", symbol: "renDOGE", coinGeckoId: "rendoge", decimals: 8, price: 0.00503841}, // Addr: ArUkYE2XDKzqy77PRRGjo4wREWwqk6RXTfM9NeqzPvjU, Notional: 16.21232362386 + {chain: 1, addr: "e8aea53120492d4b007a41f4fea777ac914c36dc21f944614e9a96ebe0a18367", symbol: "SOLPAD", coinGeckoId: "solpad-finance", decimals: 9, price: 0.0000458}, // Addr: GfJ3Vq2eSTYf1hJP6kKLE9RT6u7jF9gNszJhZwo5VPZp, Notional: 0.002135321273534 + {chain: 1, addr: "4099261906e4d99a6926404cb79d4a2de516b4aef140e4bf48d35b4ba22654e4", symbol: "ACS", coinGeckoId: "access-protocol", decimals: 6, price: 0.00150005}, // Addr: 5MAYDfq5yxtudAhtfyuMBuHZjgAbaS9tbEyEQYAhDS5y, Notional: 90.0593554774533 + {chain: 1, addr: "82444ff8283660793c0370a7dd9fb35cb1f7338d57eb088765d0dad090541e72", symbol: "", coinGeckoId: "mimatic", decimals: 9, price: 0.998906}, // Addr: 9mWRABuz2x6koTPCWiCPM49WUbcrNqGTHBV9T9k7y1o7, Notional: 20.828012259572358 + {chain: 1, addr: "c9a11f01cc857e5febddff9fd9e04cc82f44ec58ec6f19e23f5e7cca07ffb041", symbol: "PAI", coinGeckoId: "parrot-usd", decimals: 6, price: 1.013}, // Addr: Ea5SjE2Y6yvCeW5dYTn7PYMuW5ikXkvbGdcmSnXeaLjS, Notional: 40.519999999999996 + {chain: 1, addr: "08eaab49809a0d284791dcf38d96b4dde48d41807f3a795dcfaf325205943057", symbol: "Boo", coinGeckoId: "boo-2", decimals: 9, price: 0.00003761}, // Addr: booe3XGMztBMB9RhCgNodhJQeaaMmhdGehMCVPMGza2, Notional: 0.9559486399131154 + {chain: 1, addr: "c59cade70266477a5028970d5d9680bb9f1602dd393d05e3cfa8775ea818e6f8", symbol: "", coinGeckoId: "bozo-hybrid", decimals: 9, price: 0.00457799}, // Addr: EJPtJEDogxzDbvM8qvAsqYbLmPj5n1vQeqoAzj9Yfv3q, Notional: 0.0001267443541641 + {chain: 1, addr: "c6fa7af3bedbad3a3d65f36aabc97431b1bbe4c2d2f6e0e47ca60203452f5d61", symbol: "USDC", coinGeckoId: "usd-coin", decimals: 6, price: 0.999097}, // Addr: EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v, Notional: 5931385.126742425 + {chain: 1, addr: "067fc27abcad2df07cc40437330da4fe8851680ae2b242c2ea1d86e2cfa10064", symbol: "SNS", coinGeckoId: "synesis-one", decimals: 9, price: 0.01638795}, // Addr: SNSNkV9zfG5ZKWQs6x4hxvBRV6s8SqMfSGCtECDvdMd, Notional: 2841.4220692517238 + {chain: 1, addr: "068d824d56f0eebb7566e6ee1d65a9d260ff509a4b5c69b6269ad64de3cd50bc", symbol: "SBR", coinGeckoId: "saber", decimals: 6, price: 0.00184251}, // Addr: Saber2gLauYim4Mvftnrasomsv6NvAuncvMEZwcLpD1, Notional: 6.51820424510205 + {chain: 1, addr: "2688c77a2a9c9ad17318699dcb85b3d9a23762c6e7156bc7f83b3052953293f2", symbol: "LIKE", coinGeckoId: "only1", decimals: 9, price: 0.02635014}, // Addr: 3bRTivrVsitbmCTGtqwp7hxXPsybkjn4XLNtPsHqa3zR, Notional: 0.2126456298 + {chain: 1, addr: "06e44836998a9e52bde7b5182fdbbdde4e2789cbffe5ab0e9762cb13651c8bda", symbol: "TULIP", coinGeckoId: "solfarm", decimals: 6, price: 0.102105}, // Addr: TuLipcqtGVXP9XR62wM8WWCm6a9vhLs7T1uoWBk6FDs, Notional: 0.00020421 + {chain: 1, addr: "8cbf9fdba8691b67e32eb57a784b1cae2744c6fc03ac61e450dd9331b9bdbb2e", symbol: "AURY", coinGeckoId: "aurory", decimals: 9, price: 0.242319}, // Addr: AURYydfxJib1ZkTir1Jn1J9ECYUtjb6rKQVmtYaixWPP, Notional: 1430.568882564986 {chain: 1, addr: "8cc1469b46aa9e904a5106fa3e6dd3937ac55099a1fbb62047fc1c556d88d29b", symbol: "AUT", coinGeckoId: "avenue-university-token", decimals: 9, price: 0.00546985}, // Addr: AUT1gfMZw37wMMQqAxk89nfpjZpEEf2XSoBUd8V5ydnS, Notional: 0.06016835 - {chain: 1, addr: "069501a7f73f3b05dfff8b104d2393e9c39e1ee2fe6b329ccf9847ccfa2af594", symbol: "SHEESH", coinGeckoId: "sheeshin-on-solana", decimals: 6, price: 0.02155355}, // Addr: ShEEsukacNfbBpULD1xtCZKjeMMzvc78xufMDuE3jvB, Notional: 6.933694872867401 - {chain: 1, addr: "8fa66a1378bce9e01b9496615ed38c132c586fa36e29f6b38eace0bf7b3d4b69", symbol: "ca", coinGeckoId: "contract-address-meme", decimals: 9, price: 0.00006108}, // Addr: AfkUkcoJ5Yt7eU9BwnF1RjRqt4fQG5zYV1eS1ytDk7FE, Notional: 5495.173634791894 - {chain: 1, addr: "f204ae4a202016d4de45496d2b0becaa650f1e9a58c02426f4190166488f4d9c", symbol: "", coinGeckoId: "pip", decimals: 9, price: 0.080949}, // Addr: HHjoYwUp5aU6pnrvN4s2pwEErwXNZKhxKGYjRJMoBjLw, Notional: 27.361571489999996 - {chain: 1, addr: "46dd37dd6a92fc21467d58d83c526393cd94492b97fec5124970fc4ea5a68be6", symbol: "BRAWL", coinGeckoId: "bitbrawl", decimals: 9, price: 0.00099635}, // Addr: 5mdBkZ4dTP94SE7PyiuWseTDAd1kYxSk6oYaWB7186s7, Notional: 294236.66815156187 - {chain: 1, addr: "1d0b90f13cac323097379dfaa8c11f7d6cf3a7bed333042be6fe572281cdfca0", symbol: "NINJA", coinGeckoId: "shinobi-2", decimals: 9, price: 0.00727092}, // Addr: 2xP43MawHfU7pwPUmvkc6AUWg4GX8xPQLTGMkSZfCEJT, Notional: 0.1454184 - {chain: 1, addr: "3ffd20f06c83bba88002f87f9d56050a5ef941fbbb0ea0293c829a82f11e3891", symbol: "APYS", coinGeckoId: "apyswap", decimals: 9, price: 0.00724601}, // Addr: 5JnZ667P3VcjDinkJFysWh2K2KtViy63FZ3oL5YghEhW, Notional: 0.49997469 - {chain: 1, addr: "bfc5f3a72f20be422f69837df545b8a5c992a9cb3e4687f61030f55ae9e3b235", symbol: "CRP", coinGeckoId: "cropperfinance", decimals: 9, price: 0.00653561}, // Addr: DubwWZNWiNGMMeeQHPnMATNj77YZPZSAz2WVR5WjLJqz, Notional: 5.1631318999999995e-9 - {chain: 1, addr: "db9f5cc7f4249010132350e743d99e2a30f0a264b8b345cf23622f0e4eca9d14", symbol: "SYP", coinGeckoId: "sypool", decimals: 9, price: 0.00135954}, // Addr: FnKE9n6aGjQoNWRBZXy4RW6LZVao7qwBonUbiD7edUmZ, Notional: 3511.3244388161693 - {chain: 1, addr: "7589fb28d63e11a5f134a97a6bc85399e6cbe2fddb268d496f91204d5271ff05", symbol: "GRAPE", coinGeckoId: "grape-2", decimals: 6, price: 0.00120704}, // Addr: 8upjSpvjcdpuzhfR1zriwg5NXkwDruejqNE9WNbPRtyA, Notional: 0.028003327999999997 + {chain: 1, addr: "204cc66e5cc71f4795cfafe7b922d9e9bfe57b6ae41fb5ab6d9e65a8845ee90f", symbol: "BILLY", coinGeckoId: "billy", decimals: 6, price: 0.04530248}, // Addr: 3B5wuUrMEi5yATD7on46hKfej3pfmd7t1RKgrsN3pump, Notional: 41.81785224383528 + {chain: 1, addr: "069501a7f73f3b05dfff8b104d2393e9c39e1ee2fe6b329ccf9847ccfa2af594", symbol: "SHEESH", coinGeckoId: "sheeshin-on-solana", decimals: 6, price: 0.02171914}, // Addr: ShEEsukacNfbBpULD1xtCZKjeMMzvc78xufMDuE3jvB, Notional: 6.986964544638321 + {chain: 1, addr: "8fa66a1378bce9e01b9496615ed38c132c586fa36e29f6b38eace0bf7b3d4b69", symbol: "ca", coinGeckoId: "contract-address-meme", decimals: 9, price: 0.00007541}, // Addr: AfkUkcoJ5Yt7eU9BwnF1RjRqt4fQG5zYV1eS1ytDk7FE, Notional: 6394.421634916974 + {chain: 1, addr: "f204ae4a202016d4de45496d2b0becaa650f1e9a58c02426f4190166488f4d9c", symbol: "", coinGeckoId: "pip", decimals: 9, price: 0.03301424}, // Addr: HHjoYwUp5aU6pnrvN4s2pwEErwXNZKhxKGYjRJMoBjLw, Notional: 11.1591432624 + {chain: 1, addr: "2f982c219d581e23f410f320ee59a543dadda9d7925d6995a88982eb5e63f39f", symbol: "DADDY", coinGeckoId: "daddy-tate", decimals: 6, price: 0.07898}, // Addr: 4Cnk9EPnW5ixfLZatCPJjDB1PUtcRpVVgTQukm9epump, Notional: 0.165858 + {chain: 1, addr: "46dd37dd6a92fc21467d58d83c526393cd94492b97fec5124970fc4ea5a68be6", symbol: "BRAWL", coinGeckoId: "bitbrawl", decimals: 9, price: 0.00061706}, // Addr: 5mdBkZ4dTP94SE7PyiuWseTDAd1kYxSk6oYaWB7186s7, Notional: 144584.90842173202 + {chain: 1, addr: "2427c13d88770be13f5907d01ba6c18f72f0241307c721a88b95f53dceada211", symbol: "MOTHER", coinGeckoId: "mother-iggy", decimals: 6, price: 0.04165418}, // Addr: 3S8qX1MsMqRbiwKg2cQyx7nis1oHMgaCuc9c4VfvVdPN, Notional: 7384.7438343090935 + {chain: 1, addr: "1d0b90f13cac323097379dfaa8c11f7d6cf3a7bed333042be6fe572281cdfca0", symbol: "NINJA", coinGeckoId: "shinobi-2", decimals: 9, price: 0.00110728}, // Addr: 2xP43MawHfU7pwPUmvkc6AUWg4GX8xPQLTGMkSZfCEJT, Notional: 0.0221456 + {chain: 1, addr: "3ffd20f06c83bba88002f87f9d56050a5ef941fbbb0ea0293c829a82f11e3891", symbol: "APYS", coinGeckoId: "apyswap", decimals: 9, price: 0.00520798}, // Addr: 5JnZ667P3VcjDinkJFysWh2K2KtViy63FZ3oL5YghEhW, Notional: 0.35935062 + {chain: 1, addr: "bfc5f3a72f20be422f69837df545b8a5c992a9cb3e4687f61030f55ae9e3b235", symbol: "CRP", coinGeckoId: "cropperfinance", decimals: 9, price: 0.00332636}, // Addr: DubwWZNWiNGMMeeQHPnMATNj77YZPZSAz2WVR5WjLJqz, Notional: 2.6278244e-9 + {chain: 1, addr: "03481237c86b4ff57b5c845a97ecee44f3b4c459954b607a232869cfb2bfb345", symbol: "BONKFA", coinGeckoId: "bonk-of-america", decimals: 6, price: 0.00020747}, // Addr: DoxsC4PpVHiUxCKYeKSkPXVVVSJYzidZZJxW4XCFF2t, Notional: 4.16371543 + {chain: 1, addr: "db9f5cc7f4249010132350e743d99e2a30f0a264b8b345cf23622f0e4eca9d14", symbol: "SYP", coinGeckoId: "sypool", decimals: 9, price: 0.00059622}, // Addr: FnKE9n6aGjQoNWRBZXy4RW6LZVao7qwBonUbiD7edUmZ, Notional: 2067.0179788871487 + {chain: 1, addr: "7589fb28d63e11a5f134a97a6bc85399e6cbe2fddb268d496f91204d5271ff05", symbol: "GRAPE", coinGeckoId: "grape-2", decimals: 6, price: 0.00054122}, // Addr: 8upjSpvjcdpuzhfR1zriwg5NXkwDruejqNE9WNbPRtyA, Notional: 0.012556304 {chain: 1, addr: "89efe489cf710a97bb9346ccc2dd81a30d71b982ed3523f6bfefdd8ebd04187c", symbol: "AHT", coinGeckoId: "avenue-hamilton-token", decimals: 9, price: 0.03585085}, // Addr: AHT1yynTv45s3P3KrRfQCVMHckdHeMVA3fteEg34xt9y, Notional: 0.17925424999999998 - {chain: 1, addr: "11f6454055669087f8f46c16a81e0ec3df5f68187b6bb8f1ecb954d07b7d3339", symbol: "GNOME", coinGeckoId: "gnomeland", decimals: 9, price: 0.00659796}, // Addr: 2D7jZLpUUAMboqzHMeyaxZfLWpf4JZUoR4i82Zva7sxU, Notional: 246510.45912885177 - {chain: 1, addr: "86d536568df6b574b219c07565198d7fab61cb0458cdfbadf0f004759f2e5038", symbol: "GMEOW", coinGeckoId: "gmeow-cat", decimals: 6, price: 0.00097464}, // Addr: A5LCTQ1vJECCQWSXJYs3rfCoexctbUgTCAEKDuNye8bZ, Notional: 6138.164803580177 + {chain: 1, addr: "11f6454055669087f8f46c16a81e0ec3df5f68187b6bb8f1ecb954d07b7d3339", symbol: "GNOME", coinGeckoId: "gnomeland", decimals: 9, price: 0.00029504}, // Addr: 2D7jZLpUUAMboqzHMeyaxZfLWpf4JZUoR4i82Zva7sxU, Notional: 9876.83808739613 + {chain: 1, addr: "86d536568df6b574b219c07565198d7fab61cb0458cdfbadf0f004759f2e5038", symbol: "GMEOW", coinGeckoId: "gmeow-cat", decimals: 6, price: 0.00022469}, // Addr: A5LCTQ1vJECCQWSXJYs3rfCoexctbUgTCAEKDuNye8bZ, Notional: 123.24074449631722 {chain: 1, addr: "e67a4e87ce4d1df99623ee52b47b2675bfa1dc3c875eac60533c6e7cc6daee27", symbol: "", coinGeckoId: "1safu", decimals: 0, price: 5.329e-9}, // Addr: GWgwUUrgai3BFeEJZp7bdsBSYiuDqNmHf9uRusWsf3Yi, Notional: 0.000647766595 - {chain: 1, addr: "25a608f065296572c67bdf0a455f0f0069d17a8b7a716bb1396448f1a1e249e3", symbol: "DIP", coinGeckoId: "doginthpool", decimals: 6, price: 0.00058337}, // Addr: 3XxvmED354933DwSPJuzB7SE9uiWpD1ErydDuhmbFRMk, Notional: 0.58337 - {chain: 1, addr: "139fc1fba8ff288c85d542130fc2caf2caf15d4dc9fce4ac81c1de0fdd3e5be1", symbol: "KURO", coinGeckoId: "kurobi", decimals: 6, price: 0.00032758}, // Addr: 2Kc38rfQ49DFaKHQaWbijkE7fcymUMLY5guUiUsDmFfn, Notional: 0.10655801862288 - {chain: 1, addr: "0679db01ce2a84f71c139e7c9942f6da3b331fdec3319d02f899eba70134737e", symbol: "SHDW", coinGeckoId: "genesysgo-shadow", decimals: 9, price: 0.737981}, // Addr: SHDWyBxihqiCj6YekG2GUr7wqKLeLAMK1gHZck9pL6y, Notional: 148.334181 - {chain: 1, addr: "077cf63a56ff0afb124f6f68875a02adce4e320bbfcc1072e67a0a4ffa46c295", symbol: "WEN", coinGeckoId: "wen-4", decimals: 5, price: 0.00016868}, // Addr: WENWENvqqNya429ubCdR81ZmD69brwQaaBYY6p3LCpk, Notional: 190.83236933495957 - {chain: 1, addr: "558bfd9cf2fcdc18de6a9463c3d2a372e961c63264900d3d3cb5d86560c4655b", symbol: "SAIL", coinGeckoId: "sail", decimals: 6, price: 0.00200981}, // Addr: 6kwTqmdQkJd8qRr9RjSnUX9XJ24RmJRSrU1rsragP97Y, Notional: 0.01205886 - {chain: 1, addr: "8af8661ba22613733b7c8025128597497dea9952506b2e1b484dc840befe83f1", symbol: "AMU", coinGeckoId: "amulet-protocol", decimals: 9, price: 0.03237231}, // Addr: AMUwxPsqWSd1fbCGzWsrRKDcNoduuWMkdR38qPdit8G8, Notional: 884271.4642672846 - {chain: 1, addr: "017009a9390d6d6e7777a27675f05e1692fe09561cf25879203a0d282f8b3408", symbol: "SHILL", coinGeckoId: "shill-token", decimals: 6, price: 0.00591719}, // Addr: 6cVgJUqo4nmvQpbgrDZwyfd6RwWw5bfnCamS3M9N1fd, Notional: 20.126682136761 - {chain: 1, addr: "2f64669f9f8ad5ee900c4050cf06c756f3d10a02c908f803c1e43ed7a145d3a0", symbol: "SWOLE", coinGeckoId: "swole-doge", decimals: 9, price: 0.000011}, // Addr: 4BzxVoBQzwKoqm1dQc78r42Yby3EzAeZmMiYFdCjeu5Z, Notional: 20.48242472141074 - {chain: 1, addr: "4a05e1f7f53477602c239f1a2b8da4277ccd279ff26128cb361c3791b5a9156c", symbol: "Fronk", coinGeckoId: "fronk", decimals: 5, price: 1.4634e-8}, // Addr: 5yxNbU8DgYJZNi3mPD9rs4XLh9ckXrhPjJ5VCujUWg5H, Notional: 265.9498690372064 - {chain: 1, addr: "06cf442fd1ea50d2b18629079232396c075d29c1eda912d38fd75049f827e3a3", symbol: "TAKI", coinGeckoId: "taki", decimals: 9, price: 0.01910873}, // Addr: Taki7fi3Zicv7Du1xNAWLaf6mRK7ikdn77HeGzgwvo4, Notional: 491891.6351393877 - {chain: 1, addr: "049a250bfacf558c6b6407a8d3716ff17c8c062a29b26a868e7ba5e7422ffd15", symbol: "mockJUP", coinGeckoId: "mockjup", decimals: 9, price: 0.0012891}, // Addr: JxxWsvm9jHt4ah7DT9NuLyVLYZcZLUdPD93PcPQ71Ka, Notional: 0.141851617065813 - {chain: 1, addr: "3ba8d09f68b3cc2546ac682aafba3d585690ebba80c218a9cc3807524ecc5957", symbol: "", coinGeckoId: "apexit-finance", decimals: 9, price: 0.00855848}, // Addr: 51tMb3zBKDiQhNwGqpgwbavaGH54mk8fXFzxTc1xnasg, Notional: 0.02567544 - {chain: 1, addr: "a5854b583d61bd674064522d1d3017a389990e96a9c244b9c57f0dac1cde4ea8", symbol: "C98", coinGeckoId: "coin98", decimals: 6, price: 0.258232}, // Addr: C98A4nkJXhpVZNAZdHUA95RpTF3T4whtQubL3YobiUX9, Notional: 135.57820079658399 - {chain: 1, addr: "6b054395432c64d8250648371121f271fc3b8e36621384b9e91956bf02307c13", symbol: "DOKI", coinGeckoId: "doki", decimals: 6, price: 0.00052745}, // Addr: 8CmHC7Y2715VFaMkMZMwWDqRYQwPLAsM57Xiu3Ho4TjG, Notional: 20.0932794061923 - {chain: 1, addr: "1076469c1041d9e9b39fc2ede11333973b3e95732a4439207193a61cc4108d43", symbol: "JLP", coinGeckoId: "jupiter-perpetuals-liquidity-provider-token", decimals: 6, price: 2.53}, // Addr: 27G8MtK7VtTcCHkpASjSDdkWWYfoqT6ggEuKidVJidD4, Notional: 1.265 - {chain: 1, addr: "0936990e30118f3e824ab4ad611dbacae303117a46ab833c9c911acb736a7ecf", symbol: "", coinGeckoId: "solchicks-token", decimals: 9, price: 0.0000782}, // Addr: cxxShYRVcepDudXhe7U62QHvw8uBJoKFifmzggGKVC2, Notional: 0.0087584 + {chain: 1, addr: "25a608f065296572c67bdf0a455f0f0069d17a8b7a716bb1396448f1a1e249e3", symbol: "DIP", coinGeckoId: "doginthpool", decimals: 6, price: 0.00085762}, // Addr: 3XxvmED354933DwSPJuzB7SE9uiWpD1ErydDuhmbFRMk, Notional: 0.85762 + {chain: 1, addr: "139fc1fba8ff288c85d542130fc2caf2caf15d4dc9fce4ac81c1de0fdd3e5be1", symbol: "KURO", coinGeckoId: "kurobi", decimals: 6, price: 0.00002954}, // Addr: 2Kc38rfQ49DFaKHQaWbijkE7fcymUMLY5guUiUsDmFfn, Notional: 0.00960902335344 + {chain: 1, addr: "0679db01ce2a84f71c139e7c9942f6da3b331fdec3319d02f899eba70134737e", symbol: "SHDW", coinGeckoId: "genesysgo-shadow", decimals: 9, price: 0.356709}, // Addr: SHDWyBxihqiCj6YekG2GUr7wqKLeLAMK1gHZck9pL6y, Notional: 71.698509 + {chain: 1, addr: "077cf63a56ff0afb124f6f68875a02adce4e320bbfcc1072e67a0a4ffa46c295", symbol: "WEN", coinGeckoId: "wen-4", decimals: 5, price: 0.00008001}, // Addr: WENWENvqqNya429ubCdR81ZmD69brwQaaBYY6p3LCpk, Notional: 395.00280169346433 + {chain: 1, addr: "558bfd9cf2fcdc18de6a9463c3d2a372e961c63264900d3d3cb5d86560c4655b", symbol: "SAIL", coinGeckoId: "sail", decimals: 6, price: 0.00301006}, // Addr: 6kwTqmdQkJd8qRr9RjSnUX9XJ24RmJRSrU1rsragP97Y, Notional: 0.01806036 + {chain: 1, addr: "8af8661ba22613733b7c8025128597497dea9952506b2e1b484dc840befe83f1", symbol: "AMU", coinGeckoId: "amulet-protocol", decimals: 9, price: 0.01156157}, // Addr: AMUwxPsqWSd1fbCGzWsrRKDcNoduuWMkdR38qPdit8G8, Notional: 312644.39120567264 + {chain: 1, addr: "017009a9390d6d6e7777a27675f05e1692fe09561cf25879203a0d282f8b3408", symbol: "SHILL", coinGeckoId: "shill-token", decimals: 6, price: 0.00181169}, // Addr: 6cVgJUqo4nmvQpbgrDZwyfd6RwWw5bfnCamS3M9N1fd, Notional: 6.1622676913109995 + {chain: 1, addr: "2f64669f9f8ad5ee900c4050cf06c756f3d10a02c908f803c1e43ed7a145d3a0", symbol: "SWOLE", coinGeckoId: "swole-doge", decimals: 9, price: 0.00000289}, // Addr: 4BzxVoBQzwKoqm1dQc78r42Yby3EzAeZmMiYFdCjeu5Z, Notional: 5.3812915858979125 + {chain: 1, addr: "eac40dce1cfccb5ca30a878aebb3025763a8d3f0c4f15c3e858b98899982b71f", symbol: "KSG", coinGeckoId: "king-sugar-glider", decimals: 6, price: 0.00090957}, // Addr: GoRnxWR5h4HMYAbCWhfPxsTF6N27jTRkBDFpAsvLpump, Notional: 914.6636170768448 + {chain: 1, addr: "4a05e1f7f53477602c239f1a2b8da4277ccd279ff26128cb361c3791b5a9156c", symbol: "Fronk", coinGeckoId: "fronk", decimals: 5, price: 1.107e-8}, // Addr: 5yxNbU8DgYJZNi3mPD9rs4XLh9ckXrhPjJ5VCujUWg5H, Notional: 205.21954115964124 + {chain: 1, addr: "06cf442fd1ea50d2b18629079232396c075d29c1eda912d38fd75049f827e3a3", symbol: "TAKI", coinGeckoId: "taki", decimals: 9, price: 0.01109626}, // Addr: Taki7fi3Zicv7Du1xNAWLaf6mRK7ikdn77HeGzgwvo4, Notional: 316978.88094390754 + {chain: 1, addr: "049a250bfacf558c6b6407a8d3716ff17c8c062a29b26a868e7ba5e7422ffd15", symbol: "mockJUP", coinGeckoId: "mockjup", decimals: 9, price: 0.00121587}, // Addr: JxxWsvm9jHt4ah7DT9NuLyVLYZcZLUdPD93PcPQ71Ka, Notional: 0.1337934416583741 + {chain: 1, addr: "3ba8d09f68b3cc2546ac682aafba3d585690ebba80c218a9cc3807524ecc5957", symbol: "", coinGeckoId: "apexit-finance", decimals: 9, price: 0.00346464}, // Addr: 51tMb3zBKDiQhNwGqpgwbavaGH54mk8fXFzxTc1xnasg, Notional: 0.010393920000000001 + {chain: 1, addr: "a5854b583d61bd674064522d1d3017a389990e96a9c244b9c57f0dac1cde4ea8", symbol: "C98", coinGeckoId: "coin98", decimals: 6, price: 0.115625}, // Addr: C98A4nkJXhpVZNAZdHUA95RpTF3T4whtQubL3YobiUX9, Notional: 60.705990996874995 + {chain: 1, addr: "6b054395432c64d8250648371121f271fc3b8e36621384b9e91956bf02307c13", symbol: "DOKI", coinGeckoId: "doki", decimals: 6, price: 0.00056559}, // Addr: 8CmHC7Y2715VFaMkMZMwWDqRYQwPLAsM57Xiu3Ho4TjG, Notional: 21.54622788766386 + {chain: 1, addr: "1076469c1041d9e9b39fc2ede11333973b3e95732a4439207193a61cc4108d43", symbol: "JLP", coinGeckoId: "jupiter-perpetuals-liquidity-provider-token", decimals: 6, price: 3.14}, // Addr: 27G8MtK7VtTcCHkpASjSDdkWWYfoqT6ggEuKidVJidD4, Notional: 1.57 + {chain: 1, addr: "0936990e30118f3e824ab4ad611dbacae303117a46ab833c9c911acb736a7ecf", symbol: "", coinGeckoId: "solchicks-token", decimals: 9, price: 0.0000279}, // Addr: cxxShYRVcepDudXhe7U62QHvw8uBJoKFifmzggGKVC2, Notional: 0.0031248 {chain: 1, addr: "2109ce397c41f14a97da3d94eb68a2fcbc62fdd568e73b3d8a8c62d18a691b80", symbol: "", coinGeckoId: "arenum", decimals: 6, price: 0.00004401}, // Addr: 3Dy8KFyvpUJ8nfRCbvk4HLWjNRRzxiVhTeE9PQF9RARD, Notional: 0.007348613671980001 - {chain: 1, addr: "8274472938310e90c774c25ade5e6fcaa7238aef9e3e67764d45b920d0c3e075", symbol: "WOOF", coinGeckoId: "woof-token", decimals: 6, price: 0.00006898}, // Addr: 9nEqaUcb16sQ3Tn1psbkWqyhPdLmfHWjKGymREjsAgTE, Notional: 0.7086065915205398 - {chain: 1, addr: "6927fdc01ea906f96d7137874cdd7adad00ca35764619310e54196c781d84d5b", symbol: "W", coinGeckoId: "wormhole", decimals: 6, price: 0.648586}, // Addr: 85VBFQZC9TZkfaptBWjvUw7YbZjy52A6mjtPGjstQAmQ, Notional: 744192.9969568463 - {chain: 1, addr: "e2975e097997188b8c83cf5b64f28ff42b1ae579b1b6747857bf722150de7fb0", symbol: "GOFX", coinGeckoId: "goosefx", decimals: 9, price: 0.0237844}, // Addr: GFX1ZjR2P15tmrSwow6FjyDYcEkoFb4p4gJCpLBjaxHD, Notional: 0.0475688 - {chain: 1, addr: "ca4d39964c9cb5f9790d0a12969f60fd9724936284ea4a12daded42ddfa69c5d", symbol: "FIDA", coinGeckoId: "bonfida", decimals: 6, price: 0.275629}, // Addr: EchesyfXePKdLtoiZSL8pBe8Myagyy8ZRqsACNCFGnvp, Notional: 9.089232310312001 - {chain: 1, addr: "897658557d211722ba678ad99276eb14d9567f0a792e3ba70c894785c742bfae", symbol: "", coinGeckoId: "green-satoshi-token", decimals: 9, price: 0.02947772}, // Addr: AFbX8oGjGpmVFywbVouvhQSRmiW2aR1mohfahi4Y2AdB, Notional: 96.19385546800237 - {chain: 1, addr: "8f8eda6d92c4afa64e25a02b8cc6e9f4026cf3007f48f279d842594d0328e121", symbol: "WGC", coinGeckoId: "wild-goat-coin", decimals: 6, price: 0.00006623}, // Addr: AfPeB1BDUotBeNoLv82XRDCNQcdAA1mqis3YC5SMTe7a, Notional: 1399992.2013500377 - {chain: 1, addr: "edcc10dafe9e4643d0397fb1ffa280b7a3c28090ebfe4816c3e0f39b9d7ca411", symbol: "SBONK", coinGeckoId: "shibonk-311f81df-a4ea-4f31-9e61-df0af8211bd7", decimals: 9, price: 3.02}, // Addr: H1G6sZ1WDoMmMCFqBKAbg9gkQPCo1sKQtaJWz9dHmqZr, Notional: 5.1337828922 - {chain: 1, addr: "0ec49e1c77e79828f9ae8a051b662e2088c728069cedb70fef8521b94acf74f8", symbol: "", coinGeckoId: "zebec-protocol", decimals: 9, price: 0.02500889}, // Addr: zebeczgi5fSEtbpfQKVZKCJ3WgYXxjkMUkNNx7fLKAF, Notional: 7705.403230022487 - {chain: 1, addr: "59174309f88fbd80970c5b2e2e69708a0d6e76eb4cf35ebf801bceae476211a6", symbol: "CUTE", coinGeckoId: "pepe-uwu", decimals: 7, price: 0.000001}, // Addr: 6zmrmNUGdRwrqcchshVkBgAyLhLwZ7QvJRQiKktqVQLV, Notional: 392494.0875372488 - {chain: 1, addr: "37998ccbf2d0458b615cbcc6b1a367c4749e9fef7306622e1b1b58910120bc9a", symbol: "RAY", coinGeckoId: "raydium", decimals: 6, price: 1.4}, // Addr: 4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R, Notional: 46785.2677446 - {chain: 1, addr: "0545d1ee9805764e58b3ef5bcb54177517dfe7980e6e44e67a628bdb9d2a7bd1", symbol: "MNGO", coinGeckoId: "mango-markets", decimals: 6, price: 0.02908481}, // Addr: MangoCzJ36AjZyKwVj3VnYU4GTonjfVEnJmvvWaxLac, Notional: 0.014542405 - {chain: 1, addr: "33660fff0fbce64c4da91c3b3e6e77e58d059df2e05e6c53608de170455ba938", symbol: "SCT", coinGeckoId: "solclout", decimals: 9, price: 0.00007514}, // Addr: 4Te4KJgjtnZe4aE2zne8G4NPfrPjCwDmaiEx9rKnyDVZ, Notional: 64152.88373132427 - {chain: 1, addr: "05be68ae2977ce39f15086f2c761b24cf054a40b22a2a5b33ef583c50f1cfdb7", symbol: "", coinGeckoId: "prism", decimals: 6, price: 0.00234806}, // Addr: PRSMNsEPqhGVCH1TtWiJqPjJyh2cKrLostPZTNy1o5x, Notional: 6.96356020050548 - {chain: 1, addr: "c7dc3552acd085ffa989b81b21e5e0bcbccbb1ec87835f0db12fabbad666ddf6", symbol: "MEDIA", coinGeckoId: "media-network", decimals: 6, price: 19.21}, // Addr: ETAtLmCmsoiEEKfNrHKJ2kYy3MoABhU6NQvpSfij5tDs, Notional: 39.2744608 - {chain: 1, addr: "48972c3e59cc0c7a094c2948f847381cfef470e1ddf0711f0c858070711876f3", symbol: "WAG", coinGeckoId: "waggle-network", decimals: 9, price: 0.00161384}, // Addr: 5tN42n9vMi6ubp67Uy4NnmM5DMZYN8aS8GeB3bEDHr6E, Notional: 0.008230583999999999 + {chain: 1, addr: "8274472938310e90c774c25ade5e6fcaa7238aef9e3e67764d45b920d0c3e075", symbol: "WOOF", coinGeckoId: "woof-token", decimals: 6, price: 0.00004046}, // Addr: 9nEqaUcb16sQ3Tn1psbkWqyhPdLmfHWjKGymREjsAgTE, Notional: 0.41563094654858 + {chain: 1, addr: "6927fdc01ea906f96d7137874cdd7adad00ca35764619310e54196c781d84d5b", symbol: "W", coinGeckoId: "wormhole", decimals: 6, price: 0.2171}, // Addr: 85VBFQZC9TZkfaptBWjvUw7YbZjy52A6mjtPGjstQAmQ, Notional: 171707.446574781 + {chain: 1, addr: "e2975e097997188b8c83cf5b64f28ff42b1ae579b1b6747857bf722150de7fb0", symbol: "GOFX", coinGeckoId: "goosefx", decimals: 9, price: 0.00589654}, // Addr: GFX1ZjR2P15tmrSwow6FjyDYcEkoFb4p4gJCpLBjaxHD, Notional: 0.01179308 + {chain: 1, addr: "ca4d39964c9cb5f9790d0a12969f60fd9724936284ea4a12daded42ddfa69c5d", symbol: "FIDA", coinGeckoId: "bonfida", decimals: 6, price: 0.207483}, // Addr: EchesyfXePKdLtoiZSL8pBe8Myagyy8ZRqsACNCFGnvp, Notional: 6.842027462424 + {chain: 1, addr: "897658557d211722ba678ad99276eb14d9567f0a792e3ba70c894785c742bfae", symbol: "", coinGeckoId: "green-satoshi-token", decimals: 9, price: 0.01205995}, // Addr: AFbX8oGjGpmVFywbVouvhQSRmiW2aR1mohfahi4Y2AdB, Notional: 39.354912362670355 + {chain: 1, addr: "8f8eda6d92c4afa64e25a02b8cc6e9f4026cf3007f48f279d842594d0328e121", symbol: "WGC", coinGeckoId: "wild-goat-coin", decimals: 6, price: 3.41711e-7}, // Addr: AfPeB1BDUotBeNoLv82XRDCNQcdAA1mqis3YC5SMTe7a, Notional: 7499.369101620764 + {chain: 1, addr: "edcc10dafe9e4643d0397fb1ffa280b7a3c28090ebfe4816c3e0f39b9d7ca411", symbol: "SBONK", coinGeckoId: "shibonk-311f81df-a4ea-4f31-9e61-df0af8211bd7", decimals: 9, price: 1.99}, // Addr: H1G6sZ1WDoMmMCFqBKAbg9gkQPCo1sKQtaJWz9dHmqZr, Notional: 3.3828569389000003 + {chain: 1, addr: "0ec49e1c77e79828f9ae8a051b662e2088c728069cedb70fef8521b94acf74f8", symbol: "", coinGeckoId: "zebec-protocol", decimals: 9, price: 0.01062398}, // Addr: zebeczgi5fSEtbpfQKVZKCJ3WgYXxjkMUkNNx7fLKAF, Notional: 3276.14726655507 + {chain: 1, addr: "59174309f88fbd80970c5b2e2e69708a0d6e76eb4cf35ebf801bceae476211a6", symbol: "CUTE", coinGeckoId: "pepe-uwu", decimals: 7, price: 9.6081e-8}, // Addr: 6zmrmNUGdRwrqcchshVkBgAyLhLwZ7QvJRQiKktqVQLV, Notional: 37711.224424666405 + {chain: 1, addr: "37998ccbf2d0458b615cbcc6b1a367c4749e9fef7306622e1b1b58910120bc9a", symbol: "RAY", coinGeckoId: "raydium", decimals: 6, price: 1.78}, // Addr: 4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R, Notional: 57156.81281644 + {chain: 1, addr: "0545d1ee9805764e58b3ef5bcb54177517dfe7980e6e44e67a628bdb9d2a7bd1", symbol: "MNGO", coinGeckoId: "mango-markets", decimals: 6, price: 0.01637315}, // Addr: MangoCzJ36AjZyKwVj3VnYU4GTonjfVEnJmvvWaxLac, Notional: 0.008186575 + {chain: 1, addr: "33660fff0fbce64c4da91c3b3e6e77e58d059df2e05e6c53608de170455ba938", symbol: "SCT", coinGeckoId: "solclout", decimals: 9, price: 0.00773686}, // Addr: 4Te4KJgjtnZe4aE2zne8G4NPfrPjCwDmaiEx9rKnyDVZ, Notional: 6605561.352482479 + {chain: 1, addr: "05be68ae2977ce39f15086f2c761b24cf054a40b22a2a5b33ef583c50f1cfdb7", symbol: "", coinGeckoId: "prism", decimals: 6, price: 0.00062362}, // Addr: PRSMNsEPqhGVCH1TtWiJqPjJyh2cKrLostPZTNy1o5x, Notional: 1.84944823055596 + {chain: 1, addr: "c7dc3552acd085ffa989b81b21e5e0bcbccbb1ec87835f0db12fabbad666ddf6", symbol: "MEDIA", coinGeckoId: "media-network", decimals: 6, price: 10.85}, // Addr: ETAtLmCmsoiEEKfNrHKJ2kYy3MoABhU6NQvpSfij5tDs, Notional: 22.182608 + {chain: 1, addr: "48972c3e59cc0c7a094c2948f847381cfef470e1ddf0711f0c858070711876f3", symbol: "WAG", coinGeckoId: "waggle-network", decimals: 9, price: 0.00161449}, // Addr: 5tN42n9vMi6ubp67Uy4NnmM5DMZYN8aS8GeB3bEDHr6E, Notional: 0.008233899 {chain: 1, addr: "d9299d4dd5f2e8021a5f9d220ee6499ed7ce916b4455042a172fd08cee33065e", symbol: "TGT", coinGeckoId: "twirl-governance-token", decimals: 6, price: 0.00206801}, // Addr: FciGvHj9FjgSGgCBF1b9HY814FM9D28NijDd5SJrKvPo, Notional: 0.010546851 - {chain: 1, addr: "e66b5c6e86ec048a73a370e0588e1dcbaa16f532b8e5790eb830386b3ae947fc", symbol: "", coinGeckoId: "galaxy-war", decimals: 6, price: 0.00098428}, // Addr: GWTipxSJVPmmW2wCjBdkbnEJbCRCyrhL2x9zuHRPPTj1, Notional: 7.964211069192839 - {chain: 1, addr: "6dbb85629db6a38eeb2fec793974b4c7e9c5fdc9e70165303b4f73106e5e62ba", symbol: "", coinGeckoId: "rope-token", decimals: 9, price: 0.00304147}, // Addr: 8PMHT4swUMtBzgHnh5U564N5sjPSiUz2cjEQzFnnP1Fo, Notional: 0.00304147 - {chain: 1, addr: "90eb19122682b9b340f9afd6717bcc7770812215c2286d3d3051dff49288b17e", symbol: "BOT", coinGeckoId: "starbots", decimals: 8, price: 0.00042194}, // Addr: AkhdZGVbJXPuQZ53u2LrimCjkRP6ZyxG1SoM85T98eE1, Notional: 2039.3334342441985 - {chain: 1, addr: "b7db4e83eb727f1187bd7a50303f5b4e4e943503da8571ad6564a51131504792", symbol: "", coinGeckoId: "wrapped-usdt-allbridge-from-polygon", decimals: 6, price: 1.007}, // Addr: DNhZkUaxHXYvpxZ7LNnHtss8sQgdAfd1ZYS1fB7LKWUZ, Notional: 42.49011627099999 - {chain: 1, addr: "3a0147829f94ff731beb78f4bf79f8247eb6db6ff78cbdbd778004547c3cfb15", symbol: "", coinGeckoId: "playground-waves-floor-index", decimals: 2, price: 0.186697}, // Addr: 4uRn7vxRPWYP4HuAa4UNXwEPLRL8oQ71YByMhr6yBnL4, Notional: 3.547243 - {chain: 1, addr: "05718b04572312d73aa71deaec43c89d77844b0b7ff9e3e72da8510182627455", symbol: "BLOCK", coinGeckoId: "blockasset", decimals: 6, price: 0.072045}, // Addr: NFTUkR4u7wKxy9QLaX2TGvd9oZSWoMo4jqSJqdMb7Nk, Notional: 2032051.5964333564 - {chain: 1, addr: "dd40a2f6f423e4c3990a83eac3d9d9c1fe625b36cbc5e4a6d553544552a867ee", symbol: "BRZ", coinGeckoId: "brz", decimals: 4, price: 0.190113}, // Addr: FtgGSFADXBtroxq8VCausXRr2of47QBf5AS1NtZCu4GD, Notional: 4904.1611646951 - {chain: 1, addr: "06a1ec5bd82ad9c032a9f7d466ba2c728b0ef36a8b773ed219d69650d3472bd6", symbol: "", coinGeckoId: "step-finance", decimals: 9, price: 0.065112}, // Addr: StepAscQoEioFxxWGnh2sLBDFp9d8rvKz2Yp39iDpyT, Notional: 5.707524979470481 - {chain: 1, addr: "45a5161476cc9df6ef8583b581a3111b4416ebcea65f4eca5bb961124c3399df", symbol: "", coinGeckoId: "xhashtag", decimals: 6, price: 0.03090091}, // Addr: 5gs8nf4wojB5EXgDUWNLwXpknzgV2YWDhveAeBZpVLbp, Notional: 30780.913548465687 - {chain: 1, addr: "0537996f2699674fb7086e468fb33b4fde1449f47a8befd8b342bf6b33cff372", symbol: "MNDE", coinGeckoId: "marinade", decimals: 9, price: 0.14164}, // Addr: MNDEFzGvMt87ueuHvVU9VcTqsAP5b3fTGPsHuuPA5ey, Notional: 7.153948894878799 - {chain: 1, addr: "2ae45f86dd41432f582f58321d9bf302527cce303a285d36d915c5fc9e87fbbe", symbol: "pepe", coinGeckoId: "pepecoin-on-sol", decimals: 9, price: 0.00033602}, // Addr: 3tS6fbLh2P8tzxXuqCiHZpZhsxJpmrR3Xb9psmypnp69, Notional: 155.57722720958913 - {chain: 1, addr: "430badff7f2921f4811389b1c6d633b143f0fddcc7b5b2750e906bb8852b174b", symbol: "HER", coinGeckoId: "her-ai", decimals: 6, price: 0.091458}, // Addr: 5WieRrJ5oFthgxaH4nCEkwJiBTxuRpEn9qmFRkVzkc98, Notional: 0.91458 - {chain: 1, addr: "5be23d7c881e445a9387e65ee9b2ba25a1ffa3429008b591784fbe6300091d06", symbol: "SLERF", coinGeckoId: "slerf", decimals: 9, price: 0.314183}, // Addr: 7BgBvyjrZX1YKz4oh9mjb8ZScatkkwb8DzFx7LoiVkM3, Notional: 91.06140335026372 - {chain: 1, addr: "8b7a5bd48982a26d6436cb99d7a2c7ea90e46d38625a0bdb74e1cc5886a7b703", symbol: "", coinGeckoId: "apricot", decimals: 6, price: 0.00076718}, // Addr: APTtJyaRX5yGTsJU522N4VYWg3vCvSb65eam5GrPT5Rt, Notional: 1.46071072 - {chain: 1, addr: "08742da77f532cb2337402e2ab66187b63a2907c9a62107dab7013a28deb4657", symbol: "ABR", coinGeckoId: "allbridge", decimals: 9, price: 0.249807}, // Addr: a11bdAAuV8iB2fu7X6AxAvDTo1QZ8FXB3kk5eecdasp, Notional: 1.64667210198882 - {chain: 1, addr: "f23cba7173364712aaa6114393f2c187b8d8b5194abaa872ada605fa8820b61f", symbol: "", coinGeckoId: "atlas-dex", decimals: 9, price: 0.00563041}, // Addr: HJbNXx2YMRxgfUJ6K4qeWtjatMK5KYQT1QnsCdDWywNv, Notional: 0.515760053179668 - {chain: 1, addr: "0d8323c076f0e28718ca60d77e6b39cee8f23f43cfc4ff1f5852b8fc1b94a293", symbol: "BOME", coinGeckoId: "book-of-meme", decimals: 6, price: 0.00865714}, // Addr: ukHH6c7mMyiWCf1b9pnWe25TSpkDDt3H5pQZgZ74J82, Notional: 210932.4064323542 - {chain: 1, addr: "8c77f3661d6b4a8ef39dbc5340eead8c3cbe0b45099840e8263d8725b587b073", symbol: "ATLAS", coinGeckoId: "star-atlas", decimals: 8, price: 0.00386217}, // Addr: ATLASXmbPQxBUYbxPsV97usA3fPQYEqzQBUHgiFCUsXx, Notional: 204712.58889083017 - {chain: 1, addr: "35fe161e6828028ece9caa2d89bcd7a1fd1bf140ad838d0c17d7b57c9b1aa238", symbol: "SNY", coinGeckoId: "synthetify-token", decimals: 6, price: 0.00648483}, // Addr: 4dmKkXNHdgYsXqBHCuMikNQWwVomZURhYvkkX5c4pQ7y, Notional: 5.1878639999999995e-8 - {chain: 1, addr: "87c9ce6b6344187c4b75fa01dd4334d8bb826a9214fefe9d39cce5fad29b6faa", symbol: "", coinGeckoId: "bilira", decimals: 6, price: 0.03098303}, // Addr: A94X2fRy3wydNShU4dRaDyap2UuoeWJGWyATtyp61WZf, Notional: 6.506436300000001 - {chain: 1, addr: "bc07c56e60ad3d3f177382eac6548fba1fd32cfd90ca02b3e7cfa185fdce7398", symbol: "Bonk", coinGeckoId: "bonk", decimals: 5, price: 0.00002132}, // Addr: DezXAZ8z7PnrnRJjz3wXBoRgixCa6xjnB7YaB1pPB263, Notional: 13646468.12393559 - {chain: 1, addr: "8268e9a9a1444c2ba5c77a51936856b072e43fefcff5e4b01e99623c8ebb7749", symbol: "BTC", coinGeckoId: "wrapped-bitcoin-sollet", decimals: 6, price: 1125.36}, // Addr: 9n4nbM75f5Ui33ZbPYXn59EwSgE8CGsHtAeTH5YFeJ9E, Notional: 2207.88204624 - {chain: 1, addr: "5c9e9d5fa309864acd7d8118d326313cde7b86df18e197924a03186ffe9f3d7a", symbol: "SILLY", coinGeckoId: "silly-dragon", decimals: 9, price: 0.01427212}, // Addr: 7EYnhQoR9YM3N7UoaKRoA44Uy8JeaZV3qyouov87awMs, Notional: 60.50525647652133 - {chain: 1, addr: "f79a6689e1ee9439000424c51198bfa4f0510ea523204ce8ec639c3fa8ebb916", symbol: "", coinGeckoId: "cryowar-token", decimals: 9, price: 0.01546866}, // Addr: HfYFjMKNZygfMC8LsQ8LtpPsPxEJoXJx4M6tqi75Hajo, Notional: 30.93732 - {chain: 1, addr: "a9b7b4c191b9fcd8a101e517de4a2bc44ae7df4ff6595f62cb4bf9c5c3b01fd2", symbol: "CRWNY", coinGeckoId: "crowny-token", decimals: 6, price: 0.00916169}, // Addr: CRWNYkqdgvhGGae9CKfNka58j6QQkaD5bLhKXvUYqnc1, Notional: 0.24736571245521 - {chain: 1, addr: "b5f7e08966fa2f997abc90d7a7cde1bc733f567b9eafc3007e80a3174726b6f6", symbol: "", coinGeckoId: "defi-land", decimals: 9, price: 0.00130136}, // Addr: DFL1zNkaGPWm1BqAVqRjCZvHmwTFrEaJtbzJWgseoNJh, Notional: 27.633280824064617 - {chain: 1, addr: "db532dd1df8e6c87ca70695ddf92f8d86e621d0d86de69c3058de9b29ee22647", symbol: "", coinGeckoId: "monkeyball", decimals: 6, price: 0.01569609}, // Addr: Fm9rHUTF5v3hwMLbStjZXqNBBoZyGriQaFM6sTFz3K8A, Notional: 2.2014008886551397 - {chain: 1, addr: "070d0b9bee96609a69a17a10833705370fb116a06adb20d5efd866e68051c132", symbol: "", coinGeckoId: "uxd-protocol-token", decimals: 9, price: 0.00843284}, // Addr: UXPhBoR3qG4UCiGNJfV7MqhHyFqKN68g45GoYvAeL2M, Notional: 7.10316835268532 - {chain: 1, addr: "dbef5aa1e0f0042edd619a2f68fd3e4df833325dd2037fcc6bb3b6ed0cb7508e", symbol: "", coinGeckoId: "famous-fox-federation", decimals: 0, price: 0.00464058}, // Addr: FoXyMu5xwXre7zEoSvzViRk3nGawHUp9kUh97y2NDhcq, Notional: 22.014911520000002 - {chain: 1, addr: "f51829ba389a574812109c6de6051e77c7a003ba666a26d13d30c51c51f7e94e", symbol: "", coinGeckoId: "visiongame", decimals: 9, price: 0.0042061}, // Addr: HVkFqcMHevVPb4XKrf4XowjEaVVsBoqJ2U1EG59Dfk5j, Notional: 146.23147533877608 - {chain: 1, addr: "6271cb7119476b9dce00d815c8ff315fc8bf7d2848633d34942adfd535f2defe", symbol: "stSOL", coinGeckoId: "lido-staked-sol", decimals: 9, price: 145.07}, // Addr: 7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj, Notional: 91682.9645242502 - {chain: 1, addr: "05be6c87eec2d40a2e26e1fc0a8423a379820ca454982348adfc9563b5157725", symbol: "PRT", coinGeckoId: "parrot-protocol", decimals: 6, price: 0.00024655}, // Addr: PRT88RkA4Kg5z7pKnezeNH4mafTvtQdfFgpQTGRjz44, Notional: 0.07119910027485 - {chain: 1, addr: "4a0b628dff0f5cdd497907e62510e77277360c2e9dc2081898dd62e4ffe39caf", symbol: "PONKE", coinGeckoId: "ponke", decimals: 9, price: 0.108836}, // Addr: 5z3EqYQo9HiCEs3R84RCDMu2n7anpDMxRhdK8PSWmrRC, Notional: 2.928626892828 - {chain: 1, addr: "99975862e4e373b0063604e03ebced38da7060839238fb7001a925fd85756c93", symbol: "BLZE", coinGeckoId: "solblaze", decimals: 9, price: 0.00124491}, // Addr: BLZEEuZUBVqFhj8adcCFPJvPVCiCyVmh3hkJMrU8KuJA, Notional: 0.001369401 - {chain: 1, addr: "e334cd4a3826672ea4c5394a042929c94638ecee0deeae37fbd41e396d06fc77", symbol: "SOLAPE", coinGeckoId: "solape-token", decimals: 9, price: 0.00092586}, // Addr: GHvFFSZ9BctWsEc5nujR1MTmmJWY7tgQz2AXE6WVFtGN, Notional: 0.00092586 - {chain: 1, addr: "92d10feca33abd20cdb6c082b7066be3a8664e9098e5758226e82e28a0e0cc0a", symbol: "", coinGeckoId: "battle-of-guardians-share", decimals: 9, price: 0.00081143}, // Addr: At7RLMbA6ZUjj7riyvFq2j5NHQ19aJabCju2VxLDAqso, Notional: 9.464462395328 - {chain: 1, addr: "069b8857feab8184fb687f634618c035dac439dc1aeb3b5598a0f00000000001", symbol: "SOL", coinGeckoId: "wrapped-solana", decimals: 9, price: 122.79}, // Addr: So11111111111111111111111111111111111111112, Notional: 74552949.61797881 + {chain: 1, addr: "e66b5c6e86ec048a73a370e0588e1dcbaa16f532b8e5790eb830386b3ae947fc", symbol: "", coinGeckoId: "galaxy-war", decimals: 6, price: 0.00091972}, // Addr: GWTipxSJVPmmW2wCjBdkbnEJbCRCyrhL2x9zuHRPPTj1, Notional: 7.44182976851916 + {chain: 1, addr: "6dbb85629db6a38eeb2fec793974b4c7e9c5fdc9e70165303b4f73106e5e62ba", symbol: "", coinGeckoId: "rope-token", decimals: 9, price: 0.00225413}, // Addr: 8PMHT4swUMtBzgHnh5U564N5sjPSiUz2cjEQzFnnP1Fo, Notional: 0.00225413 + {chain: 1, addr: "90eb19122682b9b340f9afd6717bcc7770812215c2286d3d3051dff49288b17e", symbol: "BOT", coinGeckoId: "starbots", decimals: 8, price: 0.0002812}, // Addr: AkhdZGVbJXPuQZ53u2LrimCjkRP6ZyxG1SoM85T98eE1, Notional: 1359.1045212813876 + {chain: 1, addr: "300e2e338a5ee89798c860ff877f2e6986cdec0ecee68f23874a7cc386b34e55", symbol: "WGC", coinGeckoId: "wild-goat-coin-2", decimals: 6, price: 0.00006438}, // Addr: 4Eb7ReeT936hX25KMBfYtyP1RWDdd9iixEwGJroACeLC, Notional: 176034.42367049473 + {chain: 1, addr: "b7db4e83eb727f1187bd7a50303f5b4e4e943503da8571ad6564a51131504792", symbol: "", coinGeckoId: "wrapped-usdt-allbridge-from-polygon", decimals: 6, price: 1.004}, // Addr: DNhZkUaxHXYvpxZ7LNnHtss8sQgdAfd1ZYS1fB7LKWUZ, Notional: 42.363532012 + {chain: 1, addr: "3a0147829f94ff731beb78f4bf79f8247eb6db6ff78cbdbd778004547c3cfb15", symbol: "", coinGeckoId: "playground-waves-floor-index", decimals: 2, price: 0.136284}, // Addr: 4uRn7vxRPWYP4HuAa4UNXwEPLRL8oQ71YByMhr6yBnL4, Notional: 2.589396 + {chain: 1, addr: "05718b04572312d73aa71deaec43c89d77844b0b7ff9e3e72da8510182627455", symbol: "BLOCK", coinGeckoId: "blockasset", decimals: 6, price: 0.077045}, // Addr: NFTUkR4u7wKxy9QLaX2TGvd9oZSWoMo4jqSJqdMb7Nk, Notional: 1836777.181167843 + {chain: 1, addr: "dd40a2f6f423e4c3990a83eac3d9d9c1fe625b36cbc5e4a6d553544552a867ee", symbol: "BRZ", coinGeckoId: "brz", decimals: 4, price: 0.185331}, // Addr: FtgGSFADXBtroxq8VCausXRr2of47QBf5AS1NtZCu4GD, Notional: 4780.8045363237 + {chain: 1, addr: "06a1ec5bd82ad9c032a9f7d466ba2c728b0ef36a8b773ed219d69650d3472bd6", symbol: "", coinGeckoId: "step-finance", decimals: 9, price: 0.055043}, // Addr: StepAscQoEioFxxWGnh2sLBDFp9d8rvKz2Yp39iDpyT, Notional: 4.82490627603197 + {chain: 1, addr: "45a5161476cc9df6ef8583b581a3111b4416ebcea65f4eca5bb961124c3399df", symbol: "", coinGeckoId: "xhashtag", decimals: 6, price: 0.01479065}, // Addr: 5gs8nf4wojB5EXgDUWNLwXpknzgV2YWDhveAeBZpVLbp, Notional: 14726.127137942096 + {chain: 1, addr: "0537996f2699674fb7086e468fb33b4fde1449f47a8befd8b342bf6b33cff372", symbol: "MNDE", coinGeckoId: "marinade", decimals: 9, price: 0.091015}, // Addr: MNDEFzGvMt87ueuHvVU9VcTqsAP5b3fTGPsHuuPA5ey, Notional: 4.59698290502255 + {chain: 1, addr: "2ae45f86dd41432f582f58321d9bf302527cce303a285d36d915c5fc9e87fbbe", symbol: "pepe", coinGeckoId: "pepecoin-on-sol", decimals: 9, price: 0.00020016}, // Addr: 3tS6fbLh2P8tzxXuqCiHZpZhsxJpmrR3Xb9psmypnp69, Notional: 111.98094634214647 + {chain: 1, addr: "430badff7f2921f4811389b1c6d633b143f0fddcc7b5b2750e906bb8852b174b", symbol: "HER", coinGeckoId: "her-ai", decimals: 6, price: 0.01042577}, // Addr: 5WieRrJ5oFthgxaH4nCEkwJiBTxuRpEn9qmFRkVzkc98, Notional: 0.1042577 + {chain: 1, addr: "08808616ce71e6e2e483262f0dc1cf87122c2001543cbfc95fd75fab46ac2893", symbol: "HAPPI", coinGeckoId: "happi-cat", decimals: 6, price: 0.00014145}, // Addr: aBvs3Zv9JYmvUCKqRJvGctDQSCt6R7NAMELid3FeqsQ, Notional: 1743.8045001194357 + {chain: 1, addr: "1a4fede1c16f0065b6988359bf11e8dad051daba0f615395b80faeee4ed8ad97", symbol: "POGAI", coinGeckoId: "pogai-sol", decimals: 5, price: 0.00000804}, // Addr: 2miHpQbYLPvXxC2V234jrrrtnJdejd5xW883a5ToNW3g, Notional: 0.2544811028988 + {chain: 1, addr: "5be23d7c881e445a9387e65ee9b2ba25a1ffa3429008b591784fbe6300091d06", symbol: "SLERF", coinGeckoId: "slerf", decimals: 9, price: 0.160745}, // Addr: 7BgBvyjrZX1YKz4oh9mjb8ZScatkkwb8DzFx7LoiVkM3, Notional: 46.58961586571565 + {chain: 1, addr: "8b7a5bd48982a26d6436cb99d7a2c7ea90e46d38625a0bdb74e1cc5886a7b703", symbol: "", coinGeckoId: "apricot", decimals: 6, price: 0.00040435}, // Addr: APTtJyaRX5yGTsJU522N4VYWg3vCvSb65eam5GrPT5Rt, Notional: 0.7698824 + {chain: 1, addr: "08742da77f532cb2337402e2ab66187b63a2907c9a62107dab7013a28deb4657", symbol: "ABR", coinGeckoId: "allbridge", decimals: 9, price: 0.123363}, // Addr: a11bdAAuV8iB2fu7X6AxAvDTo1QZ8FXB3kk5eecdasp, Notional: 0.8131814181253799 + {chain: 1, addr: "f23cba7173364712aaa6114393f2c187b8d8b5194abaa872ada605fa8820b61f", symbol: "", coinGeckoId: "atlas-dex", decimals: 9, price: 0.00373241}, // Addr: HJbNXx2YMRxgfUJ6K4qeWtjatMK5KYQT1QnsCdDWywNv, Notional: 0.341898366209268 + {chain: 1, addr: "0d8323c076f0e28718ca60d77e6b39cee8f23f43cfc4ff1f5852b8fc1b94a293", symbol: "BOME", coinGeckoId: "book-of-meme", decimals: 6, price: 0.00694819}, // Addr: ukHH6c7mMyiWCf1b9pnWe25TSpkDDt3H5pQZgZ74J82, Notional: 178793.22641071965 + {chain: 1, addr: "8c77f3661d6b4a8ef39dbc5340eead8c3cbe0b45099840e8263d8725b587b073", symbol: "ATLAS", coinGeckoId: "star-atlas", decimals: 8, price: 0.00160761}, // Addr: ATLASXmbPQxBUYbxPsV97usA3fPQYEqzQBUHgiFCUsXx, Notional: 86502.7578856248 + {chain: 1, addr: "35fe161e6828028ece9caa2d89bcd7a1fd1bf140ad838d0c17d7b57c9b1aa238", symbol: "SNY", coinGeckoId: "synthetify-token", decimals: 6, price: 0.00412891}, // Addr: 4dmKkXNHdgYsXqBHCuMikNQWwVomZURhYvkkX5c4pQ7y, Notional: 3.303128e-8 + {chain: 1, addr: "87c9ce6b6344187c4b75fa01dd4334d8bb826a9214fefe9d39cce5fad29b6faa", symbol: "", coinGeckoId: "bilira", decimals: 6, price: 0.02923324}, // Addr: A94X2fRy3wydNShU4dRaDyap2UuoeWJGWyATtyp61WZf, Notional: 6.1389804 + {chain: 1, addr: "bc07c56e60ad3d3f177382eac6548fba1fd32cfd90ca02b3e7cfa185fdce7398", symbol: "Bonk", coinGeckoId: "bonk", decimals: 5, price: 0.00001926}, // Addr: DezXAZ8z7PnrnRJjz3wXBoRgixCa6xjnB7YaB1pPB263, Notional: 11904115.773660425 + {chain: 1, addr: "8268e9a9a1444c2ba5c77a51936856b072e43fefcff5e4b01e99623c8ebb7749", symbol: "BTC", coinGeckoId: "wrapped-bitcoin-sollet", decimals: 6, price: 1937.31}, // Addr: 9n4nbM75f5Ui33ZbPYXn59EwSgE8CGsHtAeTH5YFeJ9E, Notional: 3800.87435754 + {chain: 1, addr: "5c9e9d5fa309864acd7d8118d326313cde7b86df18e197924a03186ffe9f3d7a", symbol: "SILLY", coinGeckoId: "silly-dragon", decimals: 9, price: 0.00888979}, // Addr: 7EYnhQoR9YM3N7UoaKRoA44Uy8JeaZV3qyouov87awMs, Notional: 37.68739500315402 + {chain: 1, addr: "f79a6689e1ee9439000424c51198bfa4f0510ea523204ce8ec639c3fa8ebb916", symbol: "", coinGeckoId: "cryowar-token", decimals: 9, price: 0.00365402}, // Addr: HfYFjMKNZygfMC8LsQ8LtpPsPxEJoXJx4M6tqi75Hajo, Notional: 7.30804 + {chain: 1, addr: "a9b7b4c191b9fcd8a101e517de4a2bc44ae7df4ff6595f62cb4bf9c5c3b01fd2", symbol: "CRWNY", coinGeckoId: "crowny-token", decimals: 6, price: 0.00313062}, // Addr: CRWNYkqdgvhGGae9CKfNka58j6QQkaD5bLhKXvUYqnc1, Notional: 3.5422965581755803 + {chain: 1, addr: "b5f7e08966fa2f997abc90d7a7cde1bc733f567b9eafc3007e80a3174726b6f6", symbol: "", coinGeckoId: "defi-land", decimals: 9, price: 0.00061075}, // Addr: DFL1zNkaGPWm1BqAVqRjCZvHmwTFrEaJtbzJWgseoNJh, Notional: 12.968760576087679 + {chain: 1, addr: "db532dd1df8e6c87ca70695ddf92f8d86e621d0d86de69c3058de9b29ee22647", symbol: "", coinGeckoId: "monkeyball", decimals: 6, price: 0.00629148}, // Addr: Fm9rHUTF5v3hwMLbStjZXqNBBoZyGriQaFM6sTFz3K8A, Notional: 0.88238979662808 + {chain: 1, addr: "070d0b9bee96609a69a17a10833705370fb116a06adb20d5efd866e68051c132", symbol: "", coinGeckoId: "uxd-protocol-token", decimals: 9, price: 0.01034054}, // Addr: UXPhBoR3qG4UCiGNJfV7MqhHyFqKN68g45GoYvAeL2M, Notional: 8.710066416257947 + {chain: 1, addr: "766d8eac4c0ae9f5d006f7a74ca87eaa78b50411e9385154b12fcc17c21b41d3", symbol: "KITTY", coinGeckoId: "kitty-ai", decimals: 6, price: 0.00025167}, // Addr: 8yJ15ee2AUQmwbWPxXLTTeBTzyMGn4MtSRKMqVHw1J1G, Notional: 7.5501000000000005 + {chain: 1, addr: "dbef5aa1e0f0042edd619a2f68fd3e4df833325dd2037fcc6bb3b6ed0cb7508e", symbol: "", coinGeckoId: "famous-fox-federation", decimals: 0, price: 0.00380849}, // Addr: FoXyMu5xwXre7zEoSvzViRk3nGawHUp9kUh97y2NDhcq, Notional: 18.06747656 + {chain: 1, addr: "f51829ba389a574812109c6de6051e77c7a003ba666a26d13d30c51c51f7e94e", symbol: "", coinGeckoId: "visiongame", decimals: 9, price: 0.00179831}, // Addr: HVkFqcMHevVPb4XKrf4XowjEaVVsBoqJ2U1EG59Dfk5j, Notional: 62.520987236745306 + {chain: 1, addr: "6271cb7119476b9dce00d815c8ff315fc8bf7d2848633d34942adfd535f2defe", symbol: "stSOL", coinGeckoId: "lido-staked-sol", decimals: 9, price: 173.12}, // Addr: 7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj, Notional: 108603.8280840832 + {chain: 1, addr: "676179b0b67070a1d3e299cac3bddc85e6b6b60600a99ddceae0f96b521cae33", symbol: "DOGEVERSE", coinGeckoId: "dogeverse", decimals: 8, price: 0.00004051}, // Addr: 7xZCdhj7rGhnKndRpU3NHgZhbFMkPLP2ErDr1AS8Chsx, Notional: 310.40917132 + {chain: 1, addr: "05be6c87eec2d40a2e26e1fc0a8423a379820ca454982348adfc9563b5157725", symbol: "PRT", coinGeckoId: "parrot-protocol", decimals: 6, price: 0.00011311}, // Addr: PRT88RkA4Kg5z7pKnezeNH4mafTvtQdfFgpQTGRjz44, Notional: 0.03266408530557 + {chain: 1, addr: "4a0b628dff0f5cdd497907e62510e77277360c2e9dc2081898dd62e4ffe39caf", symbol: "PONKE", coinGeckoId: "ponke", decimals: 9, price: 0.323565}, // Addr: 5z3EqYQo9HiCEs3R84RCDMu2n7anpDMxRhdK8PSWmrRC, Notional: 8.706688600995 + {chain: 1, addr: "99975862e4e373b0063604e03ebced38da7060839238fb7001a925fd85756c93", symbol: "BLZE", coinGeckoId: "solblaze", decimals: 9, price: 0.00053933}, // Addr: BLZEEuZUBVqFhj8adcCFPJvPVCiCyVmh3hkJMrU8KuJA, Notional: 0.000593263 + {chain: 1, addr: "e334cd4a3826672ea4c5394a042929c94638ecee0deeae37fbd41e396d06fc77", symbol: "SOLAPE", coinGeckoId: "solape-token", decimals: 9, price: 0.0003421}, // Addr: GHvFFSZ9BctWsEc5nujR1MTmmJWY7tgQz2AXE6WVFtGN, Notional: 0.0003421 + {chain: 1, addr: "92d10feca33abd20cdb6c082b7066be3a8664e9098e5758226e82e28a0e0cc0a", symbol: "", coinGeckoId: "battle-of-guardians-share", decimals: 9, price: 0.0007726}, // Addr: At7RLMbA6ZUjj7riyvFq2j5NHQ19aJabCju2VxLDAqso, Notional: 9.01155200896 + {chain: 1, addr: "069b8857feab8184fb687f634618c035dac439dc1aeb3b5598a0f00000000001", symbol: "SOL", coinGeckoId: "wrapped-solana", decimals: 9, price: 143.59}, // Addr: So11111111111111111111111111111111111111112, Notional: 100265914.01547736 {chain: 1, addr: "360c012e23f5bf12d1e47e985682d8814e6bb1715920852acca33346708fa968", symbol: "MIM", coinGeckoId: "mim", decimals: 9, price: 9.96083e-7}, // Addr: 4dydh8EGNEdTz6grqnGBxpduRg55eLnwNZXoNZJetadu, Notional: 0.01121330991862074 - {chain: 1, addr: "4757899fb8bedba28778aacd67e568e73470cce90bcd532b6cb618297628824e", symbol: "", coinGeckoId: "socean-staked-sol", decimals: 9, price: 147.23}, // Addr: 5oVNBeEEQvYi1cX3ir8Dx5n1P7pdxydbGF2X4TxVusJm, Notional: 147.89927960629998 - {chain: 1, addr: "56405db9a54ee121b5acf6d28c359e5b50caae6bcd6439d814696ea95a99a3e9", symbol: "RETARDIO", coinGeckoId: "retardio", decimals: 6, price: 0.02635121}, // Addr: 6ogzHhzdrQr9Pgv6hZ2MNze7UrzBMAFyBBWUYp1Fhitx, Notional: 18.87263599308022 - {chain: 1, addr: "a790b593d8c348fba977d377f67f86214cb50662ae0e1410776d5b92611aec13", symbol: "SOLX", coinGeckoId: "soldex", decimals: 9, price: 0.00009754}, // Addr: CH74tuRLTYcxG7qNJCsV9rghfLXJCQJbsu7i52a8F1Gn, Notional: 0.0025418749403400003 - {chain: 1, addr: "518ecf30942036e11b4eb4f2f5a05d32661f9ada0a6a4402c5df098ea6c4fbce", symbol: "wHAPI", coinGeckoId: "hapi", decimals: 9, price: 17.96}, // Addr: 6VNKqgz9hk7zRShTFdg5AnkfKwZUcojzwAkzxSH3bnUm, Notional: 0.5402820592 - {chain: 1, addr: "051687499457f76f90ed11ff8133233eee9f139718c36a85dff99950b7adabf1", symbol: "LARIX", coinGeckoId: "larix", decimals: 6, price: 0.00017036}, // Addr: Lrxqnh6ZHKbGy3dcrCED43nsoLkM1LTzU2jRfWe8qUC, Notional: 0.011925199999999999 - {chain: 1, addr: "0cc10f516aaae9c14ba9471f60abd392dcd786d57354abedeee7289dd40a0a0a", symbol: "RENDER", coinGeckoId: "render-token", decimals: 8, price: 7.2}, // Addr: rndrizKT3MK1iimdxRdWabcF7Zg7AR5T4nud4EkHBof, Notional: 3771.296205264 + {chain: 1, addr: "4757899fb8bedba28778aacd67e568e73470cce90bcd532b6cb618297628824e", symbol: "INF", coinGeckoId: "socean-staked-sol", decimals: 9, price: 176.38}, // Addr: 5oVNBeEEQvYi1cX3ir8Dx5n1P7pdxydbGF2X4TxVusJm, Notional: 177.1817899678 + {chain: 1, addr: "56405db9a54ee121b5acf6d28c359e5b50caae6bcd6439d814696ea95a99a3e9", symbol: "RETARDIO", coinGeckoId: "retardio", decimals: 6, price: 0.063934}, // Addr: 6ogzHhzdrQr9Pgv6hZ2MNze7UrzBMAFyBBWUYp1Fhitx, Notional: 45.789286699988004 + {chain: 1, addr: "a790b593d8c348fba977d377f67f86214cb50662ae0e1410776d5b92611aec13", symbol: "SOLX", coinGeckoId: "soldex", decimals: 9, price: 0.00004774}, // Addr: CH74tuRLTYcxG7qNJCsV9rghfLXJCQJbsu7i52a8F1Gn, Notional: 0.00124409585454 + {chain: 1, addr: "518ecf30942036e11b4eb4f2f5a05d32661f9ada0a6a4402c5df098ea6c4fbce", symbol: "wHAPI", coinGeckoId: "hapi", decimals: 9, price: 10.96}, // Addr: 6VNKqgz9hk7zRShTFdg5AnkfKwZUcojzwAkzxSH3bnUm, Notional: 0.32970441920000004 + {chain: 1, addr: "4a6b1a6b92df4ed3059e120bd0e5e4b6a97fd0e8db832c163a15fd284e4d46c7", symbol: "DILLY", coinGeckoId: "dilly", decimals: 9, price: 0.00007844}, // Addr: 61VtkXr9mRXtrFYe2T9arWYX52sbJnkAUQgfjGuCzox2, Notional: 7.838449986408006 + {chain: 1, addr: "051687499457f76f90ed11ff8133233eee9f139718c36a85dff99950b7adabf1", symbol: "LARIX", coinGeckoId: "larix", decimals: 6, price: 0.00016348}, // Addr: Lrxqnh6ZHKbGy3dcrCED43nsoLkM1LTzU2jRfWe8qUC, Notional: 0.0114436 + {chain: 1, addr: "0cc10f516aaae9c14ba9471f60abd392dcd786d57354abedeee7289dd40a0a0a", symbol: "RENDER", coinGeckoId: "render-token", decimals: 8, price: 4.71}, // Addr: rndrizKT3MK1iimdxRdWabcF7Zg7AR5T4nud4EkHBof, Notional: 2467.6844723853 {chain: 1, addr: "fe41912ceb0b2cb23badaac80e3b41d42cbe0e0c999ccdec5cf0d70bc3e2ccd1", symbol: "", coinGeckoId: "mongoosecoin", decimals: 9, price: 3.4275e-8}, // Addr: J7WYVzFNynk9D28eBCccw2EYkygygiLDCVCabV7CupWL, Notional: 0.0000068550000000000004 - {chain: 1, addr: "131fec1ab25c75e93eceea35ea3d3d82e6a3fd3d1e1f45a68ee0c14245aebaf6", symbol: "SAO", coinGeckoId: "sator", decimals: 9, price: 0.00184976}, // Addr: 2HeykdKjzHKGm2LKHw8pDYwjKPiFEoXAz74dirhUgQvq, Notional: 61255.54980115736 - {chain: 1, addr: "058bf1f00d167d3df31491dae204d6006b9d596870eecf5d305035df8a3f96dd", symbol: "NEON", coinGeckoId: "neon", decimals: 9, price: 0.980003}, // Addr: NeonTjSjsuo3rexg9o6vHuMXw62f9V7zvmu8M8Zut44, Notional: 107.80033 - {chain: 1, addr: "068677427842ef204cf58abdf76271228b5a485abb6dfa465e6ed7ee8b7d5e79", symbol: "SUNNY", coinGeckoId: "sunny-aggregator", decimals: 6, price: 0.00010908}, // Addr: SUNNYWgPQmFxe9wTZzNK7iPnJ3vYDrkgnxJRJm1s3ag, Notional: 0.3191452599186 - {chain: 1, addr: "0707305232e6160c18b4099da5b66bd387bc6469ad2244f283f73ff2a8e40338", symbol: "", coinGeckoId: "usdh", decimals: 6, price: 0.958678}, // Addr: USDH1SM1ojwWUga67PGrgFWUHibbjqMvuMaDkRJTgkX, Notional: 9.560410602932 + {chain: 1, addr: "131fec1ab25c75e93eceea35ea3d3d82e6a3fd3d1e1f45a68ee0c14245aebaf6", symbol: "SAO", coinGeckoId: "sator", decimals: 9, price: 0.00059898}, // Addr: 2HeykdKjzHKGm2LKHw8pDYwjKPiFEoXAz74dirhUgQvq, Notional: 19835.46471969187 + {chain: 1, addr: "058bf1f00d167d3df31491dae204d6006b9d596870eecf5d305035df8a3f96dd", symbol: "NEON", coinGeckoId: "neon", decimals: 9, price: 0.371256}, // Addr: NeonTjSjsuo3rexg9o6vHuMXw62f9V7zvmu8M8Zut44, Notional: 40.838159999999995 + {chain: 1, addr: "068677427842ef204cf58abdf76271228b5a485abb6dfa465e6ed7ee8b7d5e79", symbol: "SUNNY", coinGeckoId: "sunny-aggregator", decimals: 6, price: 0.00003689}, // Addr: SUNNYWgPQmFxe9wTZzNK7iPnJ3vYDrkgnxJRJm1s3ag, Notional: 0.10793242242755 + {chain: 1, addr: "0707305232e6160c18b4099da5b66bd387bc6469ad2244f283f73ff2a8e40338", symbol: "", coinGeckoId: "usdh", decimals: 6, price: 0.977514}, // Addr: USDH1SM1ojwWUga67PGrgFWUHibbjqMvuMaDkRJTgkX, Notional: 9.748252499916 {chain: 1, addr: "2903e3b75ce4a7a17e88a51089e5ab74c0337016511bd471870e26012321a296", symbol: "", coinGeckoId: "wagmi-on-solana", decimals: 6, price: 2.87597e-7}, // Addr: 3m7A2A8HHdqmiDrjAfaddj7Hxd88FrBHA1KSoqjoELtu, Notional: 0.0000287597 - {chain: 1, addr: "b953b5f8dd5457a2a0f0d41903409785b9d84d4045614faa4f505ee132dcd769", symbol: "DUST", coinGeckoId: "dust-protocol", decimals: 9, price: 0.36077}, // Addr: DUSTawucrTsGU8hcqRdHDCbuYhCPADMLM2VcCb8VnFnQ, Notional: 4837025.050071449 - {chain: 1, addr: "0b3338a0ab2cc841d5b014bc6a3cf756291874b319c9517d9bbfa9e4e9661ef9", symbol: "KIN", coinGeckoId: "kin", decimals: 5, price: 0.00001474}, // Addr: kinXdEcpDQeHPEuQnqmUgtYykqKGVFq6CeVX5iAHJq6, Notional: 1.8664494099064 - {chain: 1, addr: "128bcb647d8bad1e7250e3b834bcfa9fd986f4d477d1bbb9054e602b11ebe061", symbol: "ETH", coinGeckoId: "wrapped-ethereum-sollet", decimals: 6, price: 266.53}, // Addr: 2FPyTwcZLUg1MDrwsyoP4D6s1tM7hAkHYRjkNb5w6Pxk, Notional: 2.6653 - {chain: 1, addr: "3a5dbacb04d71ef866691d531287d96c7c36bfdf444418fc74a4dd1b7017f76b", symbol: "WYNN", coinGeckoId: "anita-max-wynn", decimals: 6, price: 0.00298697}, // Addr: 4vqYQTjmKjxrWGtbL2tVkbAU1EVAz9JwcYtd2VE3PbVU, Notional: 268.8273 - {chain: 1, addr: "f926de74d018c7be81c476f359aaacba61b762767977d2565c9eb57682011706", symbol: "PSOL", coinGeckoId: "parasol-finance", decimals: 7, price: 0.00551659}, // Addr: Hmatmu1ktLbobSvim94mfpZmjL5iiyoM1zidtXJRAdLZ, Notional: 0.00551659 - {chain: 1, addr: "0afcf8968b8dab88481e2d2ae689c952c757aeba643e3919e89f2e55795c76c1", symbol: "JTO", coinGeckoId: "jito-governance-token", decimals: 9, price: 2.89}, // Addr: jtojtomepa8beP8AuQc6eXt5FriJwfFMwQx2v2f9mCL, Notional: 118.5716891157 + {chain: 1, addr: "b953b5f8dd5457a2a0f0d41903409785b9d84d4045614faa4f505ee132dcd769", symbol: "DUST", coinGeckoId: "dust-protocol", decimals: 9, price: 0.244323}, // Addr: DUSTawucrTsGU8hcqRdHDCbuYhCPADMLM2VcCb8VnFnQ, Notional: 3273628.807094603 + {chain: 1, addr: "0b3338a0ab2cc841d5b014bc6a3cf756291874b319c9517d9bbfa9e4e9661ef9", symbol: "KIN", coinGeckoId: "kin", decimals: 5, price: 0.00001396}, // Addr: kinXdEcpDQeHPEuQnqmUgtYykqKGVFq6CeVX5iAHJq6, Notional: 1.7676820734256 + {chain: 1, addr: "128bcb647d8bad1e7250e3b834bcfa9fd986f4d477d1bbb9054e602b11ebe061", symbol: "ETH", coinGeckoId: "wrapped-ethereum-sollet", decimals: 6, price: 408.49}, // Addr: 2FPyTwcZLUg1MDrwsyoP4D6s1tM7hAkHYRjkNb5w6Pxk, Notional: 4.0849 + {chain: 1, addr: "3a5dbacb04d71ef866691d531287d96c7c36bfdf444418fc74a4dd1b7017f76b", symbol: "WYNN", coinGeckoId: "anita-max-wynn", decimals: 6, price: 0.00151396}, // Addr: 4vqYQTjmKjxrWGtbL2tVkbAU1EVAz9JwcYtd2VE3PbVU, Notional: 136.25639999999999 + {chain: 1, addr: "f926de74d018c7be81c476f359aaacba61b762767977d2565c9eb57682011706", symbol: "PSOL", coinGeckoId: "parasol-finance", decimals: 7, price: 0.00524506}, // Addr: Hmatmu1ktLbobSvim94mfpZmjL5iiyoM1zidtXJRAdLZ, Notional: 0.00524506 + {chain: 1, addr: "e9e5418ae527093d6a777adabea125d9681dd77643ac339e6ec487865c928672", symbol: "$PTRUMP", coinGeckoId: "pepe-trump", decimals: 6, price: 0.00042075}, // Addr: Gk2kRrwNMBU4Dn9JhC1Dks8G5X9nqi4ZE5jMvK6bdgEd, Notional: 0.07531425 + {chain: 1, addr: "0afcf8968b8dab88481e2d2ae689c952c757aeba643e3919e89f2e55795c76c1", symbol: "JTO", coinGeckoId: "jito-governance-token", decimals: 9, price: 2.47}, // Addr: jtojtomepa8beP8AuQc6eXt5FriJwfFMwQx2v2f9mCL, Notional: 101.3398173411 {chain: 1, addr: "d9f5f028b2262005f14736d01e0115d02ecbf82513a58b8c0525c5537a186f41", symbol: "BOO", coinGeckoId: "boo", decimals: 6, price: 2.25488e-10}, // Addr: FfpyoV365c7iR8QQg5NHGCXQfahbqzY67B3wpzXkiLXr, Notional: 0.0009470496 - {chain: 1, addr: "3b15c6089ac9e1722434f64313f16131fa6dab386951f47f2a6f02f3a9ab602a", symbol: "CTUS", coinGeckoId: "contractus", decimals: 9, price: 0.00301376}, // Addr: 4yeK2cCyxNNz28fVqEbkLYNCb1T9qPadsuJWeZ44Evcq, Notional: 362494.8656489833 - {chain: 1, addr: "6752055c20b3e9d8746656ddf73855507f87ab6d87523e4c76a7fa36096a99eb", symbol: "SAMO", coinGeckoId: "samoyedcoin", decimals: 9, price: 0.00711315}, // Addr: 7xKXtg2CW87d97TXJSDpbD5jBkheTqA83TZRuJosgAsU, Notional: 2.855307620566566 + {chain: 1, addr: "3b15c6089ac9e1722434f64313f16131fa6dab386951f47f2a6f02f3a9ab602a", symbol: "CTUS", coinGeckoId: "contractus", decimals: 9, price: 0.00229868}, // Addr: 4yeK2cCyxNNz28fVqEbkLYNCb1T9qPadsuJWeZ44Evcq, Notional: 276457.433551189 + {chain: 1, addr: "6752055c20b3e9d8746656ddf73855507f87ab6d87523e4c76a7fa36096a99eb", symbol: "SAMO", coinGeckoId: "samoyedcoin", decimals: 9, price: 0.00724854}, // Addr: 7xKXtg2CW87d97TXJSDpbD5jBkheTqA83TZRuJosgAsU, Notional: 2.9096548645792057 {chain: 1, addr: "86d786039c432f0d4d65f3d29b9fe4ba5fd0f4057f259bcdc314c115559274fc", symbol: "", coinGeckoId: "vynk-chain", decimals: 4, price: 0.000054}, // Addr: A5NF1e6RnYkVwtg3V3z1qeUz4PZfHCXmQ9RotuJWgi6F, Notional: 0.036396 - {chain: 1, addr: "aa77c1f5d0d2c07ce7075e31d348ca1c0965bb287be13984dec1c5615bf22665", symbol: "CUSD", coinGeckoId: "coin98-dollar", decimals: 6, price: 0.771458}, // Addr: CUSDvqAQLbt7fRofcmV2EXfPA2t36kzj7FjzdmqDiNQL, Notional: 1.638929348306 + {chain: 1, addr: "aa77c1f5d0d2c07ce7075e31d348ca1c0965bb287be13984dec1c5615bf22665", symbol: "CUSD", coinGeckoId: "coin98-dollar", decimals: 6, price: 0.689568}, // Addr: CUSDvqAQLbt7fRofcmV2EXfPA2t36kzj7FjzdmqDiNQL, Notional: 1.464957564576 {chain: 1, addr: "ebd47511adbd4c48202bc2d335138ce08fca42964e99e08126d8cdd78f974985", symbol: "gSAIL", coinGeckoId: "solanasail-governance-token", decimals: 9, price: 0.00589147}, // Addr: Gsai2KN28MTGcSZ1gKYFswUpFpS7EM9mvdR9c8f6iVXJ, Notional: 0.01767441 - {chain: 1, addr: "33b8d6efc25f5766808494c4ec2c62ad1409a96266eab2113b72b3148ebede0f", symbol: "XSB", coinGeckoId: "solareum-wallet", decimals: 9, price: 0.00012703}, // Addr: 4UuGQgkD3rSeoXatXRWwRfRd21G87d5LiCfkVzNNv1Tt, Notional: 0.00063515 - {chain: 1, addr: "28baefb80baafbc803106976f26f343eb62d796b8f96a8c6b81a425b9ac0f388", symbol: "FLOOF", coinGeckoId: "floof", decimals: 1, price: 4.149e-7}, // Addr: 3jzdrXXKxwkBk82u2eCWASZLCKoZs1LQTg87HBEAmBJw, Notional: 0.0000012447 - {chain: 1, addr: "3398844e5c88d23bf0fde5120ffd5b8d81893dea2fb950ad305923b40562e58c", symbol: "JALA", coinGeckoId: "jalapeno-finance", decimals: 9, price: 0.00010401}, // Addr: 4UQgPwwcyTfELvJViUUJEa229K7RQEzCrc4Cnuxa7zxs, Notional: 884.2006591200001 - {chain: 1, addr: "63abd0967076f58ba2edadb41f10719df1354abe118f29a8f30ee6639474b947", symbol: "", coinGeckoId: "stepn", decimals: 9, price: 0.209767}, // Addr: 7i5KKsX2weiTkry7jA4ZwSuXGhs5eJBEjY8vVxR4pfRx, Notional: 422.18802171906754 - {chain: 1, addr: "052e7f80a14a1e7a5254e9a1c27f7fc48563bfc35f0be177a8d556ae8ba1add6", symbol: "MEAN", coinGeckoId: "meanfi", decimals: 6, price: 0.02191328}, // Addr: MEANeD3XDdUmNMsRGjASkSWdC8prLYsoRJ61pPeHctD, Notional: 0.1078133376 - {chain: 1, addr: "c3bc53a848c67ab3799f20a745a51e51c991946690c7c8a4b9a480aa29b07b94", symbol: "RPILL", coinGeckoId: "red-pill-2", decimals: 7, price: 0.00000143}, // Addr: EB54Nt1ydAgMR3edpaXEwb16R8TfF1enJ7zaYSefo7wH, Notional: 168945.16203751764 - {chain: 1, addr: "11615a73ca119d91ad275cf19659f206265356fbd4161175b6c2cee43ceb267a", symbol: "STATE", coinGeckoId: "new-world-order", decimals: 3, price: 7.218e-9}, // Addr: 2Ar2n5DJSiQuMhY4XeSzg7C5AGMezZPoLUt98VmmjsAR, Notional: 226898.7686418753 - {chain: 1, addr: "d6c679aa7652867ebb3221cd90f5cf1d7f1b20e3bfd713c95de54bbdd6df2172", symbol: "wBIRD", coinGeckoId: "bird-money", decimals: 9, price: 17}, // Addr: FTPnEQ3NfRRZ9tvmpDW6JFrvweBE5sanxnXSpJL1dvbB, Notional: 3.4000000000000004 + {chain: 1, addr: "33b8d6efc25f5766808494c4ec2c62ad1409a96266eab2113b72b3148ebede0f", symbol: "XSB", coinGeckoId: "solareum-wallet", decimals: 9, price: 0.00011785}, // Addr: 4UuGQgkD3rSeoXatXRWwRfRd21G87d5LiCfkVzNNv1Tt, Notional: 0.00058925 + {chain: 1, addr: "9cdd9b466af324c58b653f6eac5e78f748e55778caed00a90d61e70c061587f8", symbol: "IO", coinGeckoId: "io", decimals: 8, price: 1.66}, // Addr: BZLbGTNCSFfoth2GYDtwr7e4imWzpR5jqcUuGEwr646K, Notional: 74.54058991779999 + {chain: 1, addr: "28baefb80baafbc803106976f26f343eb62d796b8f96a8c6b81a425b9ac0f388", symbol: "FLOOF", coinGeckoId: "floof", decimals: 1, price: 3.61242e-7}, // Addr: 3jzdrXXKxwkBk82u2eCWASZLCKoZs1LQTg87HBEAmBJw, Notional: 0.0000010837260000000002 + {chain: 1, addr: "3398844e5c88d23bf0fde5120ffd5b8d81893dea2fb950ad305923b40562e58c", symbol: "JALA", coinGeckoId: "jalapeno-finance", decimals: 9, price: 0.00003976}, // Addr: 4UQgPwwcyTfELvJViUUJEa229K7RQEzCrc4Cnuxa7zxs, Notional: 338.00421312 + {chain: 1, addr: "63abd0967076f58ba2edadb41f10719df1354abe118f29a8f30ee6639474b947", symbol: "", coinGeckoId: "stepn", decimals: 9, price: 0.109983}, // Addr: 7i5KKsX2weiTkry7jA4ZwSuXGhs5eJBEjY8vVxR4pfRx, Notional: 241.74024579504328 + {chain: 1, addr: "052e7f80a14a1e7a5254e9a1c27f7fc48563bfc35f0be177a8d556ae8ba1add6", symbol: "MEAN", coinGeckoId: "meanfi", decimals: 6, price: 0.01903976}, // Addr: MEANeD3XDdUmNMsRGjASkSWdC8prLYsoRJ61pPeHctD, Notional: 0.09367561919999999 + {chain: 1, addr: "c3bc53a848c67ab3799f20a745a51e51c991946690c7c8a4b9a480aa29b07b94", symbol: "RPILL", coinGeckoId: "red-pill-2", decimals: 7, price: 8.60563e-7}, // Addr: EB54Nt1ydAgMR3edpaXEwb16R8TfF1enJ7zaYSefo7wH, Notional: 101692.29871327025 + {chain: 1, addr: "11615a73ca119d91ad275cf19659f206265356fbd4161175b6c2cee43ceb267a", symbol: "STATE", coinGeckoId: "new-world-order", decimals: 3, price: 4.338e-9}, // Addr: 2Ar2n5DJSiQuMhY4XeSzg7C5AGMezZPoLUt98VmmjsAR, Notional: 52802.962119034615 + {chain: 1, addr: "d6c679aa7652867ebb3221cd90f5cf1d7f1b20e3bfd713c95de54bbdd6df2172", symbol: "wBIRD", coinGeckoId: "bird-money", decimals: 9, price: 10.44}, // Addr: FTPnEQ3NfRRZ9tvmpDW6JFrvweBE5sanxnXSpJL1dvbB, Notional: 2.088 {chain: 1, addr: "560d05641b74bbada05fdd6b3fd731b5df7cd417fd1d8cf129476a7aaa55b308", symbol: "", coinGeckoId: "wrapped-busd-allbridge-from-bsc", decimals: 9, price: 1.004}, // Addr: 6nuaX3ogrr2CaoAPjtaKHAoBNWok32BMcRozuf32s2QF, Notional: 259.2621460666 - {chain: 1, addr: "6386d5114f2b5a344f6265cb7e334e78ae569abd44a39b718d8e02fc487d9c02", symbol: "CAT", coinGeckoId: "catcoin-cash", decimals: 3, price: 6.02945e-10}, // Addr: 7hWcHohzwtLddDUG81H2PkWq6KEkMtSDNkYXsso18Fy3, Notional: 197.77636799372786 - {chain: 1, addr: "82993f9b768020400dc11af927de6d015f4f4abe63d73272b7e57ae17c7c5c6e", symbol: "KING", coinGeckoId: "king-2", decimals: 9, price: 0.00005054}, // Addr: 9noXzpXnkyEcKF3AeXqUHTdR59V5uvrRBUZ9bwfQwxeq, Notional: 10119.766107926309 - {chain: 1, addr: "16360094fd16e58867412ca58e622fe81a71fe47b8a8bf3b612e9d96a403d33b", symbol: "EUROe", coinGeckoId: "euroe-stablecoin", decimals: 6, price: 1.069}, // Addr: 2VhjJ9WxaGC3EZFwJG9BDUs9KxKCAjQY4vgd1qxgYWVg, Notional: 5.345 - {chain: 1, addr: "d813ffacd702778f0e56a4224bc22b7c2644dfa713fe929fec09c5fae093a802", symbol: "MC", coinGeckoId: "tap-fantasy-mc", decimals: 9, price: 0.304189}, // Addr: FYUkUybywqUUyrUwiAezbvhTp2DUgx1eg8tQNiKkXqJ9, Notional: 0.025637870230299998 - {chain: 1, addr: "ebc7380b4b2467a56f247d9d83635f45df774bd341fe028ef56b45607bfe256c", symbol: "DXL", coinGeckoId: "dexlab", decimals: 6, price: 0.0130497}, // Addr: GsNzxJfFn6zQdJGeYsupJWzUAm57Ba7335mfhWvFiE9Z, Notional: 0.0000578362704 - {chain: 1, addr: "547b309eace670a9af4c6da12402ddbbc60d43c10e2c177b9533bdbc1888576f", symbol: "BSKT", coinGeckoId: "basket", decimals: 5, price: 0.00001489}, // Addr: 6gnCPhXtLnUD76HjQuSYPENLSZdG8RvDB1pTLM5aLSJA, Notional: 1058890.0543734098 - {chain: 1, addr: "05beb884b642b260d9c2b53cb3d876b8b4de72aea0d787d779bf4266688a3935", symbol: "", coinGeckoId: "solanaprime", decimals: 9, price: 0.02298324}, // Addr: PRiME7gDoiG1vGr95a3CRMv9xHY7UGjd4JKvfSkmQu2, Notional: 2.43622344 - {chain: 1, addr: "689ac099ef657e5d3b7efaf1e36ab8b897e2746232d8a9261b3e49b35c1dead4", symbol: "xUSD", coinGeckoId: "synthetic-usd", decimals: 6, price: 0.594913}, // Addr: 83LGLCm7QKpYZbX8q4W2kYWbtt8NJBwbVwEepzkVnJ9y, Notional: 5.931040480409 - {chain: 1, addr: "c5f9fb32f49111ab20c33f2598fc836c113e291881ac21ee29169394011244e4", symbol: "$WIF", coinGeckoId: "dogwifcoin", decimals: 6, price: 2.41}, // Addr: EKpQGSJtjMFqKZ9KQanSqYXRcF8fBopzLHYxdM65zcjm, Notional: 267.21697292 - {chain: 1, addr: "777c026899a52a4c61329b0a098e74fbcd720d34665a41782bca2e2713410082", symbol: "ZERO", coinGeckoId: "analysoor", decimals: 9, price: 0.147041}, // Addr: 93RC484oMK5T9H89rzT5qiAXKHGP9jscXfFfrihNbe57, Notional: 0.147041 - {chain: 1, addr: "89a0fd32e8624b657a53062808b8980d227274c3f76d3ddaa49985ddf034004c", symbol: "FTT", coinGeckoId: "ftx-token", decimals: 6, price: 1.38}, // Addr: AGFEad2et2ZJif9jaGpdMixQqvW5i81aBdvKe7PHNfz3, Notional: 25.83634896 - {chain: 1, addr: "9990517de4aab724b1d8e7fead02d3f25a7ad6912ba339c6b7b637d2f53d7d10", symbol: "", coinGeckoId: "blocto-token", decimals: 8, price: 0.01816755}, // Addr: BLT1noyNr3GttckEVrtcfC6oyK6yV1DpPgSyXbncMwef, Notional: 0.190759275 - {chain: 1, addr: "068310861a98327d0550574d84418aa6e10c3352ddaa7fd7f58152cceeb23887", symbol: "SRM", coinGeckoId: "serum", decimals: 6, price: 0.04273177}, // Addr: SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt, Notional: 1119.1610199064412 - {chain: 1, addr: "cf3be585daf0d7aa080054c5ff622f468dbb2f49d086c5ca3230b60529e06103", symbol: "", coinGeckoId: "wrapped-cusd-allbridge-from-celo", decimals: 9, price: 1.005}, // Addr: EwxNF8g9UfmsJVcZFTpL9Hx5MCkoQFoJi6XNWzKf1j8e, Notional: 1.7084999999999997 - {chain: 1, addr: "a832b1347f65932aa5a8b8e3b6f7854a2972157d0375097d599eabac9685a95c", symbol: "", coinGeckoId: "gari-network", decimals: 9, price: 0.02159651}, // Addr: CKaKtYvz6dKPyMvYq9Rh3UBrnNqYZAyd7iF4hJtjUvks, Notional: 83776.64626138196 - {chain: 1, addr: "842f35b8d1f37e6cc0a7eb8d12bf9079f7abf194cdcd466c22f5f1e8baa4dea8", symbol: "", coinGeckoId: "arb-protocol", decimals: 6, price: 0.00059034}, // Addr: 9tzZzEHsKnwFL1A3DyFJwj36KnZj3gZ7g4srWp9YTEoh, Notional: 2.9546517 - {chain: 1, addr: "d670e7f1810e56d73423f0e3ccb3c5e6218211acda522599c494f893113305ab", symbol: "SMOG", coinGeckoId: "smog", decimals: 6, price: 0.058035}, // Addr: FS66v5XYtJAFo14LiPz5HT93EUMAHmYipCfQhLpU4ss8, Notional: 2684814.505399488 - {chain: 1, addr: "0b32c16d6e18acb932405c63adbf490ed2e214adf8860590fafcc3c869556b26", symbol: "", coinGeckoId: "kineko", decimals: 9, price: 0.00136141}, // Addr: kiNeKo77w1WBEzFFCXrTDRWGRWGP8yHvKC9rX6dqjQh, Notional: 0.1498185851213649 - {chain: 1, addr: "0c96450628904429a41300a3eeb390680414f8c0a2e1a2442610df748aca371e", symbol: "DAOJONES", coinGeckoId: "fractionalized-smb-2367", decimals: 2, price: 0.204701}, // Addr: r8nuuzXCchjtqsmQZVZDPXXq928tuk7KVH479GsKVpy, Notional: 0.204701 - {chain: 1, addr: "1de8220d15414f8be688949bb1a2e853c45d49fb9c17b70ff4250c82c0518cb1", symbol: "GP", coinGeckoId: "graphite-protocol", decimals: 9, price: 0.097077}, // Addr: 31k88G5Mq7ptbRDf3AM13HAq6wRQHXHikR8hik7wPygk, Notional: 0.05320640677266 - {chain: 1, addr: "0a732093918561f7dd7fcbec4abd8513deca1a967f7ad7a39d63b41ed893808b", symbol: "HNT", coinGeckoId: "helium", decimals: 8, price: 4.91}, // Addr: hntyVP6YFm1Hg25TN9WGLqM12b8TQmcknKrdu1oxWux, Notional: 0.0556541626 - {chain: 1, addr: "0c00d0afeb8614da7f19aba02d40f18c692585f65020dfced3d5e5f9a9c0c4e1", symbol: "ORCA", coinGeckoId: "orca", decimals: 6, price: 2.31}, // Addr: orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE, Notional: 49.38144288 - {chain: 1, addr: "a2b04fe6f429ea28555be7b6dbba72479b6694ea96e93082996e9be877bc920a", symbol: "TOX", coinGeckoId: "trollbox", decimals: 9, price: 0.0000788}, // Addr: Bx4ykEMurwPQBAFNvthGj73fMBVTvHa8e9cbAyaK4ZSh, Notional: 0.0015760000000000001 - {chain: 1, addr: "63ef9d2e6be295552062ac55bdd693bea2bb7f6e6221edc9d308d843d293650b", symbol: "SOLR", coinGeckoId: "solrazr", decimals: 6, price: 0.01224798}, // Addr: 7j7H7sgsnNDeCngAPjpaCN4aaaru4HS7NAFYSEUyzJ3k, Notional: 0.01224798 - {chain: 1, addr: "08d2e970f93c7b3d50191e611acd93aa80a546b45ec965e18b0587155699c8ac", symbol: "", coinGeckoId: "blazestake-staked-sol", decimals: 9, price: 138.33}, // Addr: bSo13r4TkiE4KumL71LsHTPpL2euBYLFx6h9HP3piy1, Notional: 14.402207200500001 - {chain: 1, addr: "0479d9c7cc1035de7211f99eb48c09d70b2bdf5bdf9e2e56b8a1fbb5a2ea3327", symbol: "JUP", coinGeckoId: "jupiter-exchange-solana", decimals: 6, price: 0.888791}, // Addr: JUPyiwrYJFskUPiHa7hkeR8VUtAeFoSYbKedZNsDvCN, Notional: 58.19781337104099 - {chain: 1, addr: "17e700a49c421ef60ab1bb731357d11093c809d0056852d3e9e1e6c2653c81e9", symbol: "", coinGeckoId: "plutonian-dao", decimals: 6, price: 0.01050513}, // Addr: 2cJgFtnqjaoiu9fKVX3fny4Z4pRzuaqfJ3PBTMk2D9ur, Notional: 1.050513 - {chain: 1, addr: "c28ee4128851e187510f75f9d61703da621ecbbb4b5b6e0d4b1fc21942f309a0", symbol: "DGLN", coinGeckoId: "dogelana", decimals: 9, price: 0.00002313}, // Addr: E6UU5M1z4CvSAAF99d9wRoXsasWMEXsvHrz3JQRXtm2X, Notional: 3.3057581199597004 - {chain: 1, addr: "7747dce1ae5735f0fe877af40fc4b972847edabdb0abb1e04a432c4025606496", symbol: "MONKEY", coinGeckoId: "monkey", decimals: 1, price: 4.12287e-10}, // Addr: 92d5AncUVELq79xqLWNQ5Zoxz7fn9XHwijYswYWFrKtR, Notional: 2.7149310695655755 - {chain: 1, addr: "0cea8ee4d02b332af25488b03f6b02b11cd5ca4b7f051ee72575c50b55addd40", symbol: "sRLY", coinGeckoId: "rally-solana", decimals: 9, price: 0.01101151}, // Addr: sRLY3migNrkC1HLgqotpvi66qGkdNedqPZ9TJpAQhyh, Notional: 151.25787496043097 - {chain: 1, addr: "9ed00a9e2b184c6c0b6d9629c2648efe56c512456e354538bb4efad332ea5f30", symbol: "", coinGeckoId: "deapcoin", decimals: 6, price: 0.00169936}, // Addr: BgwQjVNMWvt2d8CN51CsbniwRWyZ9H9HfHkEsvikeVuZ, Notional: 5.09808 - {chain: 1, addr: "faf2d6df73cb4778b625966d4fba883fd424a80497d5e31c934352ade1d1bdc9", symbol: "", coinGeckoId: "dead-knight", decimals: 9, price: 0.00001834}, // Addr: HtbhBYdcfXbbD2JiH6jtsTt2m2FXjn7h4k6iXfz98k5W, Notional: 0.008596875 - {chain: 1, addr: "c2667f39a3a7b6febb2f995eb4d1b739f45fe2edd645403c3e52e677e6bd6852", symbol: "WOO", coinGeckoId: "woo-network", decimals: 6, price: 0.272124}, // Addr: E5rk3nmgLUuKUiS94gg4bpWwWwyjCMtddsAXkTFLtHEy, Notional: 543.4803844570799 - {chain: 1, addr: "067d3988ce882945c63a0717a92538addd9a37550ce5cd711f76ca74a4c89786", symbol: "", coinGeckoId: "solcial", decimals: 9, price: 0.0015685}, // Addr: SLCLww7nc1PD2gQPQdGayHviVVcpMthnqUz2iWKhNQV, Notional: 0.014324165086625 - {chain: 1, addr: "883977f594221f16fd8037db6cd49393cb7ccb597ef5513fee423975372ff5b3", symbol: "", coinGeckoId: "racefi", decimals: 6, price: 0.00618812}, // Addr: AAmGoPDFLG6bE82BgZWjVi8k95tj9Tf3vUN7WvtUm2BU, Notional: 1523.5234917738799 - {chain: 1, addr: "ce010e60afedb22717bd63192f54145a3f965a33bb82d2c7029eb2ce1e208264", symbol: "USDT", coinGeckoId: "tether", decimals: 6, price: 0.999172}, // Addr: Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB, Notional: 386270.29617757694 - {chain: 1, addr: "4262f09434e938b2714803d3aa425d1d543a735ba324109087760d83deae653d", symbol: "SPWN", coinGeckoId: "bitspawn", decimals: 9, price: 0.00008837}, // Addr: 5U9QqCPhqXAJcEv9uyzFJd5zhN93vuPk1aNNkXnUfPnt, Notional: 0.008837 - {chain: 1, addr: "5d0b159affcbccf165c09bc2f5d4bafb4aa6345af793b9b3222daa40293a950d", symbol: "POPCAT", coinGeckoId: "popcat", decimals: 9, price: 0.382035}, // Addr: 7GCihgDB8fe6KNjn2MYtkzZcRjQy3t9GHdC8uHYmW2hr, Notional: 11.46105 - {chain: 1, addr: "0e217f1d89397a8a2cdfcf5e46b64ac4e04206a3f396cd87b23734049eff9cae", symbol: "xALGO", coinGeckoId: "wrapped-algo", decimals: 6, price: 0.27939}, // Addr: xALGoH1zUfRmpCriy94qbfoMXHtK6NDnMKzT4Xdvgms, Notional: 7.173156087720001 - {chain: 1, addr: "fcd141e9832caf10ad917495ca0f271b5b293cd47027ea737007ed40eb39a0bd", symbol: "JitoSOL", coinGeckoId: "jito-staked-sol", decimals: 9, price: 135.82}, // Addr: J1toso1uCk3RLmjorhTtrVwY9HJ7X8V9yYac6Y7kGCPn, Notional: 0.5840259999999999 - {chain: 1, addr: "485493b637792cca16fe9d53fc4879c23dbf52cf6d9af4e61fe92df15c17c98d", symbol: "", coinGeckoId: "bamboo-coin", decimals: 9, price: 0.00000222}, // Addr: 5sM9xxcBTM9rWza6nEgq2cShA87JjTBx1Cu82LjgmaEg, Notional: 0.6659999999999999 - {chain: 1, addr: "78404f497a9523d5d2530469f1d76f4ac5cfafad2423341f61aa08021efc459c", symbol: "$POPO", coinGeckoId: "popo-pepe-s-dog", decimals: 9, price: 0.00025184}, // Addr: 96QoNkZLTKH7Gecf6dKMRXBQXW1wqh378uF9pnTejgAw, Notional: 27.545855723088927 - {chain: 1, addr: "c261d86cf5cf877128ba1f5652e5f3dda599270c1556a15bc0a9aacf8063e563", symbol: "RIN", coinGeckoId: "aldrin", decimals: 9, price: 0.115629}, // Addr: E5ndSkaB17Dm7CsD22dvcjfrYSDLCxFcMd6z8ddCk5wp, Notional: 0.09828464999999999 - {chain: 1, addr: "f5edec8471c75624ebc4079a634326d96a689e6157d79abe8f5a6f94472853bc", symbol: "PYTH", coinGeckoId: "pyth-network", decimals: 6, price: 0.498444}, // Addr: HZ1JovNiVvGrGNiiYvEozEVgZ58xaU3RKwX8eACQBCt3, Notional: 1507158.4898797895 - {chain: 1, addr: "063ba2f4697205f531b6de49bb9605fd2ca6a9ddf243bed251fda6552ef0e571", symbol: "", coinGeckoId: "rollbit-coin", decimals: 2, price: 0.107031}, // Addr: RLBxxFkseAZ4RgJH3Sqn8jXxhmGoz9jWxDNJMh8pL7a, Notional: 18.738987480000002 - {chain: 1, addr: "921414f6337fb743709e6fcbcc439ecc35fe8e23bc33941b1d62862b809e8d24", symbol: "YAKU", coinGeckoId: "yaku", decimals: 9, price: 0.02647915}, // Addr: AqEHVh8J2nXH9saV2ciZyYwPpqWFRfD2ffcq5Z8xxqm5, Notional: 0.02647915 - {chain: 1, addr: "8217c0f1b6d3300f53e7ea24352e93a307829c4ba2a43533c1b56d11468b0033", symbol: "ZORKSEES", coinGeckoId: "zorksees", decimals: 8, price: 1395414}, // Addr: 9kq1VuGCCKeTgtRmzUTjLVi6LpmBD38im2hPRaqusPkE, Notional: 1167328.6279803 + {chain: 1, addr: "6386d5114f2b5a344f6265cb7e334e78ae569abd44a39b718d8e02fc487d9c02", symbol: "CAT", coinGeckoId: "catcoin-cash", decimals: 3, price: 2.87289e-10}, // Addr: 7hWcHohzwtLddDUG81H2PkWq6KEkMtSDNkYXsso18Fy3, Notional: 85.94228236176441 + {chain: 1, addr: "82993f9b768020400dc11af927de6d015f4f4abe63d73272b7e57ae17c7c5c6e", symbol: "KING", coinGeckoId: "king-2", decimals: 9, price: 0.00001508}, // Addr: 9noXzpXnkyEcKF3AeXqUHTdR59V5uvrRBUZ9bwfQwxeq, Notional: 3417.304549502678 + {chain: 1, addr: "072844c94ab6a7097e1134511934be65304b482d6e8850493ce05ac78755dbea", symbol: "UWU", coinGeckoId: "unicorn-3", decimals: 6, price: 0.00109061}, // Addr: UwU8RVXB69Y6Dcju6cN2Qef6fykkq6UUNpB15rZku6Z, Notional: 1717071.666337185 + {chain: 1, addr: "16360094fd16e58867412ca58e622fe81a71fe47b8a8bf3b612e9d96a403d33b", symbol: "EUROe", coinGeckoId: "euroe-stablecoin", decimals: 6, price: 1.096}, // Addr: 2VhjJ9WxaGC3EZFwJG9BDUs9KxKCAjQY4vgd1qxgYWVg, Notional: 5.48 + {chain: 1, addr: "e350770814014371e2277d39b550570dd02e77db5f266e58f68f023c277f14af", symbol: "ily", coinGeckoId: "iiii-lovvv-youuuu", decimals: 6, price: 0.0019989}, // Addr: GJLiErro8cbWeDngDMWJug9dkwwckYZg4Lvb79F3pump, Notional: 468.64787817300754 + {chain: 1, addr: "d813ffacd702778f0e56a4224bc22b7c2644dfa713fe929fec09c5fae093a802", symbol: "MC", coinGeckoId: "tap-fantasy-mc", decimals: 9, price: 0.190464}, // Addr: FYUkUybywqUUyrUwiAezbvhTp2DUgx1eg8tQNiKkXqJ9, Notional: 0.0160528201728 + {chain: 1, addr: "ebc7380b4b2467a56f247d9d83635f45df774bd341fe028ef56b45607bfe256c", symbol: "DXL", coinGeckoId: "dexlab", decimals: 6, price: 0.00518018}, // Addr: GsNzxJfFn6zQdJGeYsupJWzUAm57Ba7335mfhWvFiE9Z, Notional: 0.000022958557760000003 + {chain: 1, addr: "547b309eace670a9af4c6da12402ddbbc60d43c10e2c177b9533bdbc1888576f", symbol: "BSKT", coinGeckoId: "basket", decimals: 5, price: 0.00000625}, // Addr: 6gnCPhXtLnUD76HjQuSYPENLSZdG8RvDB1pTLM5aLSJA, Notional: 450245.6366583557 + {chain: 1, addr: "05beb884b642b260d9c2b53cb3d876b8b4de72aea0d787d779bf4266688a3935", symbol: "", coinGeckoId: "solanaprime", decimals: 9, price: 0.01108076}, // Addr: PRiME7gDoiG1vGr95a3CRMv9xHY7UGjd4JKvfSkmQu2, Notional: 1.17456056 + {chain: 1, addr: "689ac099ef657e5d3b7efaf1e36ab8b897e2746232d8a9261b3e49b35c1dead4", symbol: "xUSD", coinGeckoId: "synthetic-usd", decimals: 6, price: 0.592755}, // Addr: 83LGLCm7QKpYZbX8q4W2kYWbtt8NJBwbVwEepzkVnJ9y, Notional: 5.909526098715 + {chain: 1, addr: "b5ce441b09fe68fbcace88868d120ae3dbe8969465c859e1abaeb390d966d890", symbol: "Odie", coinGeckoId: "odie-on-sol", decimals: 6, price: 0.00009373}, // Addr: DEhDXhtUFuz6Uodhde3rznGbVbdiECahp1kTHnFpsna3, Notional: 0.196833 + {chain: 1, addr: "777c026899a52a4c61329b0a098e74fbcd720d34665a41782bca2e2713410082", symbol: "ZERO", coinGeckoId: "analysoor", decimals: 9, price: 0.131913}, // Addr: 93RC484oMK5T9H89rzT5qiAXKHGP9jscXfFfrihNbe57, Notional: 0.131913 + {chain: 1, addr: "89a0fd32e8624b657a53062808b8980d227274c3f76d3ddaa49985ddf034004c", symbol: "FTT", coinGeckoId: "ftx-token", decimals: 6, price: 1.29}, // Addr: AGFEad2et2ZJif9jaGpdMixQqvW5i81aBdvKe7PHNfz3, Notional: 24.151369680000002 + {chain: 1, addr: "9990517de4aab724b1d8e7fead02d3f25a7ad6912ba339c6b7b637d2f53d7d10", symbol: "", coinGeckoId: "blocto-token", decimals: 8, price: 0.00378064}, // Addr: BLT1noyNr3GttckEVrtcfC6oyK6yV1DpPgSyXbncMwef, Notional: 0.03969672 + {chain: 1, addr: "068310861a98327d0550574d84418aa6e10c3352ddaa7fd7f58152cceeb23887", symbol: "SRM", coinGeckoId: "serum", decimals: 6, price: 0.03205995}, // Addr: SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt, Notional: 840.0181344299666 + {chain: 1, addr: "cf3be585daf0d7aa080054c5ff622f468dbb2f49d086c5ca3230b60529e06103", symbol: "", coinGeckoId: "wrapped-cusd-allbridge-from-celo", decimals: 9, price: 0.994831}, // Addr: EwxNF8g9UfmsJVcZFTpL9Hx5MCkoQFoJi6XNWzKf1j8e, Notional: 1.6912127 + {chain: 1, addr: "a832b1347f65932aa5a8b8e3b6f7854a2972157d0375097d599eabac9685a95c", symbol: "", coinGeckoId: "gari-network", decimals: 9, price: 0.01008462}, // Addr: CKaKtYvz6dKPyMvYq9Rh3UBrnNqYZAyd7iF4hJtjUvks, Notional: 145872.3883514256 + {chain: 1, addr: "e3669aa0deb30991efc974beb9afd905b02d4ee2eb930e627358464d1c9e6433", symbol: "WBS", coinGeckoId: "white-boy-summer", decimals: 9, price: 0.00058359}, // Addr: GJgHsc1HU4ibmzW6oWQr8L2RRT95ATc1BoNuLkp94AwU, Notional: 1431.8222807160514 + {chain: 1, addr: "842f35b8d1f37e6cc0a7eb8d12bf9079f7abf194cdcd466c22f5f1e8baa4dea8", symbol: "", coinGeckoId: "arb-protocol", decimals: 6, price: 0.00024558}, // Addr: 9tzZzEHsKnwFL1A3DyFJwj36KnZj3gZ7g4srWp9YTEoh, Notional: 1.2291279000000002 + {chain: 1, addr: "d670e7f1810e56d73423f0e3ccb3c5e6218211acda522599c494f893113305ab", symbol: "SMOG", coinGeckoId: "smog", decimals: 6, price: 0.02428374}, // Addr: FS66v5XYtJAFo14LiPz5HT93EUMAHmYipCfQhLpU4ss8, Notional: 1088392.655844325 + {chain: 1, addr: "0b32c16d6e18acb932405c63adbf490ed2e214adf8860590fafcc3c869556b26", symbol: "", coinGeckoId: "kineko", decimals: 9, price: 0.00544827}, // Addr: kiNeKo77w1WBEzFFCXrTDRWGRWGP8yHvKC9rX6dqjQh, Notional: 0.5995637631273303 + {chain: 1, addr: "3b1f93f67db7d561ba257575f5935a4b2b8a7f0365015043ba2ebab4d94abeb8", symbol: "EGG", coinGeckoId: "egg", decimals: 9, price: 0.00003096}, // Addr: 4ynyx6BzY2XGFgjjun9Cruj1bSRo8FLsAqNnPsW6jDsu, Notional: 0.00213624 + {chain: 1, addr: "58d2e009e5166d2e61063ed79f0fc83cdca913520383969208143c66ca0d2d8d", symbol: "Chud", coinGeckoId: "chudjak", decimals: 6, price: 0.00964342}, // Addr: 6yjNqPzTSanBWSa6dxVEgTjePXBrZ2FoHLDQwYwEsyM6, Notional: 9936.970095834862 + {chain: 1, addr: "0c96450628904429a41300a3eeb390680414f8c0a2e1a2442610df748aca371e", symbol: "DAOJONES", coinGeckoId: "fractionalized-smb-2367", decimals: 2, price: 0.202308}, // Addr: r8nuuzXCchjtqsmQZVZDPXXq928tuk7KVH479GsKVpy, Notional: 0.202308 + {chain: 1, addr: "1de8220d15414f8be688949bb1a2e853c45d49fb9c17b70ff4250c82c0518cb1", symbol: "GP", coinGeckoId: "graphite-protocol", decimals: 9, price: 0.071669}, // Addr: 31k88G5Mq7ptbRDf3AM13HAq6wRQHXHikR8hik7wPygk, Notional: 0.03928067376402 + {chain: 1, addr: "0a732093918561f7dd7fcbec4abd8513deca1a967f7ad7a39d63b41ed893808b", symbol: "HNT", coinGeckoId: "helium", decimals: 8, price: 7.38}, // Addr: hntyVP6YFm1Hg25TN9WGLqM12b8TQmcknKrdu1oxWux, Notional: 0.0836512668 + {chain: 1, addr: "0c00d0afeb8614da7f19aba02d40f18c692585f65020dfced3d5e5f9a9c0c4e1", symbol: "ORCA", coinGeckoId: "orca", decimals: 6, price: 2.23}, // Addr: orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE, Notional: 47.67126304000001 + {chain: 1, addr: "a2b04fe6f429ea28555be7b6dbba72479b6694ea96e93082996e9be877bc920a", symbol: "TOX", coinGeckoId: "trollbox", decimals: 9, price: 0.00008115}, // Addr: Bx4ykEMurwPQBAFNvthGj73fMBVTvHa8e9cbAyaK4ZSh, Notional: 0.0016229999999999999 + {chain: 1, addr: "63ef9d2e6be295552062ac55bdd693bea2bb7f6e6221edc9d308d843d293650b", symbol: "SOLR", coinGeckoId: "solrazr", decimals: 6, price: 0.02717617}, // Addr: 7j7H7sgsnNDeCngAPjpaCN4aaaru4HS7NAFYSEUyzJ3k, Notional: 0.02717617 + {chain: 1, addr: "4ae3d320820544fffa2e6dae60f8ed2bc3426d8de3d7f77ddf350c18fd6b3194", symbol: "GIGA", coinGeckoId: "gigachad-2", decimals: 5, price: 0.02108792}, // Addr: 63LfDmNb3MQ8mw9MtZ2To9bEA2M71kZUUGq5tiJxcqj9, Notional: 6031.8053827752 + {chain: 1, addr: "08d2e970f93c7b3d50191e611acd93aa80a546b45ec965e18b0587155699c8ac", symbol: "", coinGeckoId: "blazestake-staked-sol", decimals: 9, price: 165.06}, // Addr: bSo13r4TkiE4KumL71LsHTPpL2euBYLFx6h9HP3piy1, Notional: 17.185197141 + {chain: 1, addr: "0479d9c7cc1035de7211f99eb48c09d70b2bdf5bdf9e2e56b8a1fbb5a2ea3327", symbol: "JUP", coinGeckoId: "jupiter-exchange-solana", decimals: 6, price: 0.790672}, // Addr: JUPyiwrYJFskUPiHa7hkeR8VUtAeFoSYbKedZNsDvCN, Notional: 7236.609469682673 + {chain: 1, addr: "17e700a49c421ef60ab1bb731357d11093c809d0056852d3e9e1e6c2653c81e9", symbol: "", coinGeckoId: "plutonian-dao", decimals: 6, price: 0.00359427}, // Addr: 2cJgFtnqjaoiu9fKVX3fny4Z4pRzuaqfJ3PBTMk2D9ur, Notional: 0.359427 + {chain: 1, addr: "c28ee4128851e187510f75f9d61703da621ecbbb4b5b6e0d4b1fc21942f309a0", symbol: "DGLN", coinGeckoId: "dogelana", decimals: 9, price: 0.00000804}, // Addr: E6UU5M1z4CvSAAF99d9wRoXsasWMEXsvHrz3JQRXtm2X, Notional: 1.1490832375476 + {chain: 1, addr: "7747dce1ae5735f0fe877af40fc4b972847edabdb0abb1e04a432c4025606496", symbol: "MONKEY", coinGeckoId: "monkey", decimals: 1, price: 4.80261e-10}, // Addr: 92d5AncUVELq79xqLWNQ5Zoxz7fn9XHwijYswYWFrKtR, Notional: 3.1625433506286464 + {chain: 1, addr: "0cea8ee4d02b332af25488b03f6b02b11cd5ca4b7f051ee72575c50b55addd40", symbol: "sRLY", coinGeckoId: "rally-solana", decimals: 9, price: 0.00602603}, // Addr: sRLY3migNrkC1HLgqotpvi66qGkdNedqPZ9TJpAQhyh, Notional: 82.77561317637688 + {chain: 1, addr: "9ed00a9e2b184c6c0b6d9629c2648efe56c512456e354538bb4efad332ea5f30", symbol: "", coinGeckoId: "deapcoin", decimals: 6, price: 0.00123105}, // Addr: BgwQjVNMWvt2d8CN51CsbniwRWyZ9H9HfHkEsvikeVuZ, Notional: 3.69315 + {chain: 1, addr: "faf2d6df73cb4778b625966d4fba883fd424a80497d5e31c934352ade1d1bdc9", symbol: "", coinGeckoId: "dead-knight", decimals: 9, price: 0.00002356}, // Addr: HtbhBYdcfXbbD2JiH6jtsTt2m2FXjn7h4k6iXfz98k5W, Notional: 0.011043750000000001 + {chain: 1, addr: "c2667f39a3a7b6febb2f995eb4d1b739f45fe2edd645403c3e52e677e6bd6852", symbol: "WOO", coinGeckoId: "woo-network", decimals: 6, price: 0.151278}, // Addr: E5rk3nmgLUuKUiS94gg4bpWwWwyjCMtddsAXkTFLtHEy, Notional: 302.12927047926 + {chain: 1, addr: "067d3988ce882945c63a0717a92538addd9a37550ce5cd711f76ca74a4c89786", symbol: "", coinGeckoId: "solcial", decimals: 9, price: 0.00060265}, // Addr: SLCLww7nc1PD2gQPQdGayHviVVcpMthnqUz2iWKhNQV, Notional: 0.005503639202712501 + {chain: 1, addr: "883977f594221f16fd8037db6cd49393cb7ccb597ef5513fee423975372ff5b3", symbol: "", coinGeckoId: "racefi", decimals: 6, price: 0.001628}, // Addr: AAmGoPDFLG6bE82BgZWjVi8k95tj9Tf3vUN7WvtUm2BU, Notional: 400.815796172 + {chain: 1, addr: "ce010e60afedb22717bd63192f54145a3f965a33bb82d2c7029eb2ce1e208264", symbol: "USDT", coinGeckoId: "tether", decimals: 6, price: 0.999545}, // Addr: Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB, Notional: 389131.5177557972 + {chain: 1, addr: "85cdebc205dddf95b88200aba0ac9bcbb78096324e276fce85d63c69211f0845", symbol: "USDY", coinGeckoId: "ondo-us-dollar-yield", decimals: 6, price: 1.04}, // Addr: A1KLoBrKBde8Ty9qtNQUtq3C2ortoC3u7twggz7sEto6, Notional: 0.101192 + {chain: 1, addr: "73512a31b0ae74aae6fbce469044131a230a122b1ea6f4af3a4e93c9158b538e", symbol: "JOWNES", coinGeckoId: "alux-jownes", decimals: 6, price: 0.00037175}, // Addr: 8m9fjYycXAFva1kScttQgsESVZT7yELhjZASqfHBuMa5, Notional: 32.9569263788115 + {chain: 1, addr: "4262f09434e938b2714803d3aa425d1d543a735ba324109087760d83deae653d", symbol: "SPWN", coinGeckoId: "bitspawn", decimals: 9, price: 0.00002693}, // Addr: 5U9QqCPhqXAJcEv9uyzFJd5zhN93vuPk1aNNkXnUfPnt, Notional: 0.002693 + {chain: 1, addr: "5d0b159affcbccf165c09bc2f5d4bafb4aa6345af793b9b3222daa40293a950d", symbol: "POPCAT", coinGeckoId: "popcat", decimals: 9, price: 0.533492}, // Addr: 7GCihgDB8fe6KNjn2MYtkzZcRjQy3t9GHdC8uHYmW2hr, Notional: 16.004759999999997 + {chain: 1, addr: "0e217f1d89397a8a2cdfcf5e46b64ac4e04206a3f396cd87b23734049eff9cae", symbol: "xALGO", coinGeckoId: "wrapped-algo", decimals: 6, price: 0.40159}, // Addr: xALGoH1zUfRmpCriy94qbfoMXHtK6NDnMKzT4Xdvgms, Notional: 10.310561413319999 + {chain: 1, addr: "fcd141e9832caf10ad917495ca0f271b5b293cd47027ea737007ed40eb39a0bd", symbol: "JitoSOL", coinGeckoId: "jito-staked-sol", decimals: 9, price: 162.76}, // Addr: J1toso1uCk3RLmjorhTtrVwY9HJ7X8V9yYac6Y7kGCPn, Notional: 1023038.3229878448 + {chain: 1, addr: "485493b637792cca16fe9d53fc4879c23dbf52cf6d9af4e61fe92df15c17c98d", symbol: "", coinGeckoId: "bamboo-coin", decimals: 9, price: 0.00000281}, // Addr: 5sM9xxcBTM9rWza6nEgq2cShA87JjTBx1Cu82LjgmaEg, Notional: 0.8430000000000001 + {chain: 1, addr: "78404f497a9523d5d2530469f1d76f4ac5cfafad2423341f61aa08021efc459c", symbol: "$POPO", coinGeckoId: "popo-pepe-s-dog", decimals: 9, price: 0.00005588}, // Addr: 96QoNkZLTKH7Gecf6dKMRXBQXW1wqh378uF9pnTejgAw, Notional: 6.112064873754008 + {chain: 1, addr: "c261d86cf5cf877128ba1f5652e5f3dda599270c1556a15bc0a9aacf8063e563", symbol: "RIN", coinGeckoId: "aldrin", decimals: 9, price: 0.00919883}, // Addr: E5ndSkaB17Dm7CsD22dvcjfrYSDLCxFcMd6z8ddCk5wp, Notional: 0.0078190055 + {chain: 1, addr: "f5edec8471c75624ebc4079a634326d96a689e6157d79abe8f5a6f94472853bc", symbol: "PYTH", coinGeckoId: "pyth-network", decimals: 6, price: 0.28948}, // Addr: HZ1JovNiVvGrGNiiYvEozEVgZ58xaU3RKwX8eACQBCt3, Notional: 1036685.0628819414 + {chain: 1, addr: "75fa185aaff1c781b07269a4dfd7849add90a6db207bf61cff506c9b3d525376", symbol: "GME", coinGeckoId: "gme", decimals: 9, price: 0.00272041}, // Addr: 8wXtPeU6557ETkp9WHFY1n1EcU6NxDvbAggHGsMYiHsB, Notional: 5550.114281185688 + {chain: 1, addr: "063ba2f4697205f531b6de49bb9605fd2ca6a9ddf243bed251fda6552ef0e571", symbol: "", coinGeckoId: "rollbit-coin", decimals: 2, price: 0.058444}, // Addr: RLBxxFkseAZ4RgJH3Sqn8jXxhmGoz9jWxDNJMh8pL7a, Notional: 919.47782772 + {chain: 1, addr: "921414f6337fb743709e6fcbcc439ecc35fe8e23bc33941b1d62862b809e8d24", symbol: "YAKU", coinGeckoId: "yaku", decimals: 9, price: 0.00904031}, // Addr: AqEHVh8J2nXH9saV2ciZyYwPpqWFRfD2ffcq5Z8xxqm5, Notional: 0.00904031 + {chain: 1, addr: "5970e12d014491b2ca2f4b15f6348ff255076d62422140f01e3d955896ccc619", symbol: "Leancoin", coinGeckoId: "leancoin", decimals: 9, price: 0.00005557}, // Addr: 7297kX7SEZ1do223VsjTAC2MS9gLxPJoxFs9UMwiG4oS, Notional: 1.4448199999999999e-11 + {chain: 1, addr: "8217c0f1b6d3300f53e7ea24352e93a307829c4ba2a43533c1b56d11468b0033", symbol: "ZORKSEES", coinGeckoId: "zorksees", decimals: 8, price: 354244}, // Addr: 9kq1VuGCCKeTgtRmzUTjLVi6LpmBD38im2hPRaqusPkE, Notional: 340822.66192612 {chain: 1, addr: "d6de2876953718f8ae61f7a6da3b0869cc770dbe30d86458f46467d8ed1bf499", symbol: "", coinGeckoId: "synex-coin", decimals: 9, price: 0.00037006}, // Addr: FTkj421DxbS1wajE74J34BJ5a1o9ccA97PkK6mYq9hNQ, Notional: 0.018503000000000002 - {chain: 1, addr: "0266eb1428607b1c110941decd0ebe34eab6586ffba3e15820aa9c63b4110b10", symbol: "", coinGeckoId: "zignaly", decimals: 9, price: 0.095211}, // Addr: ANqY8h3sRSwkC29FvGJenAh7VGRABVVx7Ls6Mq4BuGT, Notional: 285.6330025202352 - {chain: 1, addr: "0e56395e3c860143802e9b94a02cc6d04f75fec72a3fbb715268355e0cd7cd89", symbol: "SLIM", coinGeckoId: "solanium", decimals: 6, price: 0.193661}, // Addr: xxxxa1sKNGwFtw2kFn8XauW9xq8hBZ5kVtcSesTT9fW, Notional: 8.34830933885 + {chain: 1, addr: "0266eb1428607b1c110941decd0ebe34eab6586ffba3e15820aa9c63b4110b10", symbol: "", coinGeckoId: "zignaly", decimals: 9, price: 0.104073}, // Addr: ANqY8h3sRSwkC29FvGJenAh7VGRABVVx7Ls6Mq4BuGT, Notional: 312.2190027548123 + {chain: 1, addr: "0e56395e3c860143802e9b94a02cc6d04f75fec72a3fbb715268355e0cd7cd89", symbol: "SLIM", coinGeckoId: "solanium", decimals: 6, price: 0.126258}, // Addr: xxxxa1sKNGwFtw2kFn8XauW9xq8hBZ5kVtcSesTT9fW, Notional: 5.4427109253 {chain: 1, addr: "c52e93ce650a3e02a70273e400132ed89b3bd67f2b839d4848593282bdec3ea0", symbol: "", coinGeckoId: "bitmon", decimals: 9, price: 0.00004538}, // Addr: EGiWZhNk3vUNJr35MbL2tY5YD6D81VVZghR2LgEFyXZh, Notional: 0.0743617047034104 - {chain: 1, addr: "061391c556ba0106d4b1b2ccf939d47caf9fb30639a58bf9cc315d024f1cb458", symbol: "", coinGeckoId: "tudabirds", decimals: 9, price: 0.00075888}, // Addr: Qikhhhg9Ta3Jg7WoDFbSYuCAE14hx9hPvdz1zVp3zUw, Notional: 0.5198328 - {chain: 1, addr: "9a7bc3a4fa3d288a156a2a3171fd953536f10e7c92cefad8b919c709aefb2b0c", symbol: "GROK", coinGeckoId: "grok-6", decimals: 9, price: 0.07738}, // Addr: BQ3F72yt9FVRgYrqCVCG3YohyBesDZ9bTuhGdmQ7GNEF, Notional: 0.3869 - {chain: 1, addr: "0b62ba074f722c9d4114f2d8f70a00c66002337b9bf90c873657a6d201db4c80", symbol: "mSOL", coinGeckoId: "msol", decimals: 9, price: 145.94}, // Addr: mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So, Notional: 71.100333472 - {chain: 2, addr: "000000000000000000000000576e2bed8f7b46d34016198911cdf9886f78bea7", symbol: "TRUMP", coinGeckoId: "maga", decimals: 9, price: 4.18}, // Addr: 0x576e2bed8f7b46d34016198911cdf9886f78bea7, Notional: 12380524.018068418 - {chain: 2, addr: "0000000000000000000000006731827cb6879a2091ce3ab3423f7bf20539b579", symbol: "MPWR", coinGeckoId: "clubrare-empower", decimals: 18, price: 0.00007797}, // Addr: 0x6731827cb6879a2091ce3ab3423f7bf20539b579, Notional: 0.00015594 - {chain: 2, addr: "0000000000000000000000007777777777697cfeecf846a76326da79cc606517", symbol: "SIG", coinGeckoId: "xsigma", decimals: 18, price: 0.00484267}, // Addr: 0x7777777777697cfeecf846a76326da79cc606517, Notional: 0.484267 - {chain: 2, addr: "000000000000000000000000f17a3fe536f8f7847f1385ec1bc967b2ca9cae8d", symbol: "AMKT", coinGeckoId: "alongside-crypto-market-index", decimals: 18, price: 178.82}, // Addr: 0xf17a3fe536f8f7847f1385ec1bc967b2ca9cae8d, Notional: 17.882 - {chain: 2, addr: "0000000000000000000000003e70f6806171873d17d4bfc984a6f9d20f5a9018", symbol: "COIN", coinGeckoId: "brianarmstrongtrumpyellen", decimals: 18, price: 0.00017481}, // Addr: 0x3e70f6806171873d17d4bfc984a6f9d20f5a9018, Notional: 295.70289246473396 - {chain: 2, addr: "00000000000000000000000027702a26126e0b3702af63ee09ac4d1a084ef628", symbol: "ALEPH", coinGeckoId: "aleph", decimals: 18, price: 0.240941}, // Addr: 0x27702a26126e0b3702af63ee09ac4d1a084ef628, Notional: 1580170.7707074152 - {chain: 2, addr: "000000000000000000000000d417144312dbf50465b1c641d016962017ef6240", symbol: "CQT", coinGeckoId: "covalent", decimals: 18, price: 0.186526}, // Addr: 0xd417144312dbf50465b1c641d016962017ef6240, Notional: 9218803.254662089 - {chain: 2, addr: "000000000000000000000000ab2a7b5876d707e0126b3a75ef7781c77c8877ee", symbol: "QUAD", coinGeckoId: "quadency", decimals: 18, price: 0.00815319}, // Addr: 0xab2a7b5876d707e0126b3a75ef7781c77c8877ee, Notional: 9200.687399015893 - {chain: 2, addr: "0000000000000000000000006b175474e89094c44da98b954eedeac495271d0f", symbol: "DAI", coinGeckoId: "dai", decimals: 18, price: 0.999522}, // Addr: 0x6b175474e89094c44da98b954eedeac495271d0f, Notional: 2569540.9754678886 - {chain: 2, addr: "00000000000000000000000032e7c8a6e920a3cf224b678112ac78fdc0fb09d1", symbol: "BOO", coinGeckoId: "boo-2", decimals: 18, price: 0.00014771}, // Addr: 0x32e7c8a6e920a3cf224b678112ac78fdc0fb09d1, Notional: 9.770796631662051 - {chain: 2, addr: "000000000000000000000000ed35af169af46a02ee13b9d79eb57d6d68c1749e", symbol: "OMI", coinGeckoId: "ecomi", decimals: 18, price: 0.00058023}, // Addr: 0xed35af169af46a02ee13b9d79eb57d6d68c1749e, Notional: 11.604600000000001 - {chain: 2, addr: "000000000000000000000000725c263e32c72ddc3a19bea12c5a0479a81ee688", symbol: "BMI", coinGeckoId: "bridge-mutual", decimals: 18, price: 0.00622505}, // Addr: 0x725c263e32c72ddc3a19bea12c5a0479a81ee688, Notional: 12324.462833152465 - {chain: 2, addr: "00000000000000000000000010633216e7e8281e33c86f02bf8e565a635d9770", symbol: "DVI", coinGeckoId: "dvision-network", decimals: 18, price: 0.0204637}, // Addr: 0x10633216e7e8281e33c86f02bf8e565a635d9770, Notional: 2.04637 - {chain: 2, addr: "000000000000000000000000427a03fb96d9a94a6727fbcfbba143444090dd64", symbol: "PIXL", coinGeckoId: "sappy-seals-pixl", decimals: 18, price: 0.04334169}, // Addr: 0x427a03fb96d9a94a6727fbcfbba143444090dd64, Notional: 17338.49635098 - {chain: 2, addr: "00000000000000000000000065ef703f5594d2573eb71aaf55bc0cb548492df4", symbol: "MULTI", coinGeckoId: "multichain", decimals: 18, price: 0.68204}, // Addr: 0x65ef703f5594d2573eb71aaf55bc0cb548492df4, Notional: 1149.3721923290848 - {chain: 2, addr: "00000000000000000000000050b806c5fe274c07e46b96be8c68d2fd2d9597b4", symbol: "$TUCKER", coinGeckoId: "tucker-carlson", decimals: 18, price: 0.00000538}, // Addr: 0x50b806c5fe274c07e46b96be8c68d2fd2d9597b4, Notional: 8138.1248039760085 - {chain: 2, addr: "000000000000000000000000d2877702675e6ceb975b4a1dff9fb7baf4c91ea9", symbol: "LUNA", coinGeckoId: "wrapped-terra", decimals: 18, price: 0.00003526}, // Addr: 0xd2877702675e6ceb975b4a1dff9fb7baf4c91ea9, Notional: 1.0281159564051099 - {chain: 2, addr: "00000000000000000000000006e0feb0d74106c7ada8497754074d222ec6bcdf", symbol: "BTB", coinGeckoId: "bitball", decimals: 18, price: 0.00013642}, // Addr: 0x06e0feb0d74106c7ada8497754074d222ec6bcdf, Notional: 1227.78 - {chain: 2, addr: "0000000000000000000000000001a500a6b18995b03f44bb040a5ffc28e45cb0", symbol: "OLAS", coinGeckoId: "autonolas", decimals: 18, price: 2.79}, // Addr: 0x0001a500a6b18995b03f44bb040a5ffc28e45cb0, Notional: 588594.8800479996 - {chain: 2, addr: "00000000000000000000000042069d11a2cc72388a2e06210921e839cfbd3280", symbol: "GNOME", coinGeckoId: "gnomeland", decimals: 18, price: 0.00659796}, // Addr: 0x42069d11a2cc72388a2e06210921e839cfbd3280, Notional: 7173.6297290521725 - {chain: 2, addr: "0000000000000000000000004740735aa98dc8aa232bd049f8f0210458e7fca3", symbol: "RDT", coinGeckoId: "ridotto", decimals: 18, price: 0.02978101}, // Addr: 0x4740735aa98dc8aa232bd049f8f0210458e7fca3, Notional: 2.6942879747 - {chain: 2, addr: "0000000000000000000000006b3595068778dd592e39a122f4f5a5cf09c90fe2", symbol: "SUSHI", coinGeckoId: "sushi", decimals: 18, price: 0.94556}, // Addr: 0x6b3595068778dd592e39a122f4f5a5cf09c90fe2, Notional: 210302.2329277283 - {chain: 2, addr: "00000000000000000000000085eee30c52b0b379b046fb0f85f4f3dc3009afec", symbol: "KEEP", coinGeckoId: "keep-network", decimals: 18, price: 0.152703}, // Addr: 0x85eee30c52b0b379b046fb0f85f4f3dc3009afec, Notional: 0.30590686584000004 - {chain: 2, addr: "00000000000000000000000006450dee7fd2fb8e39061434babcfc05599a6fb8", symbol: "XEN", coinGeckoId: "xen-crypto", decimals: 18, price: 3.56823e-7}, // Addr: 0x06450dee7fd2fb8e39061434babcfc05599a6fb8, Notional: 0.00357179823 - {chain: 2, addr: "000000000000000000000000e4ab0be415e277d82c38625b72bd7dea232c2e7d", symbol: "XRP20", coinGeckoId: "xrp20", decimals: 18, price: 0.00001474}, // Addr: 0xe4ab0be415e277d82c38625b72bd7dea232c2e7d, Notional: 0.5930995066230719 - {chain: 2, addr: "000000000000000000000000cd1faff6e578fa5cac469d2418c95671ba1a62fe", symbol: "XTM", coinGeckoId: "torum", decimals: 18, price: 0.04500049}, // Addr: 0xcd1faff6e578fa5cac469d2418c95671ba1a62fe, Notional: 2.2500245 - {chain: 2, addr: "00000000000000000000000015d4c048f83bd7e37d49ea4c83a07267ec4203da", symbol: "GALA", coinGeckoId: "gala", decimals: 8, price: 0.03982632}, // Addr: 0x15d4c048f83bd7e37d49ea4c83a07267ec4203da, Notional: 24.53301312 - {chain: 2, addr: "0000000000000000000000005a98fcbea516cf06857215779fd812ca3bef1b32", symbol: "LDO", coinGeckoId: "lido-dao", decimals: 18, price: 1.91}, // Addr: 0x5a98fcbea516cf06857215779fd812ca3bef1b32, Notional: 1029470.1120546357 - {chain: 2, addr: "000000000000000000000000383518188c0c6d7730d91b2c03a03c837814a899", symbol: "OHM", coinGeckoId: "olympus-v1", decimals: 9, price: 70.07}, // Addr: 0x383518188c0c6d7730d91b2c03a03c837814a899, Notional: 3.5035 - {chain: 2, addr: "000000000000000000000000cafe001067cdef266afb7eb5a286dcfd277f3de5", symbol: "PSP", coinGeckoId: "paraswap", decimals: 18, price: 0.03079725}, // Addr: 0xcafe001067cdef266afb7eb5a286dcfd277f3de5, Notional: 0.02783697275007 - {chain: 2, addr: "000000000000000000000000ccdb064a41afcd432bcea6f6d0d1e7c371d0b002", symbol: "QR", coinGeckoId: "qrolli", decimals: 9, price: 0.00036125}, // Addr: 0xccdb064a41afcd432bcea6f6d0d1e7c371d0b002, Notional: 0.0007225 - {chain: 2, addr: "000000000000000000000000f831938caf837cd505de196bbb408d81a06376ab", symbol: "JEFF", coinGeckoId: "jeff", decimals: 18, price: 0.00536817}, // Addr: 0xf831938caf837cd505de196bbb408d81a06376ab, Notional: 4179.944665188644 - {chain: 2, addr: "0000000000000000000000008cc0f052fff7ead7f2edcccac895502e884a8a71", symbol: "ARTH", coinGeckoId: "arth", decimals: 18, price: 1.96}, // Addr: 0x8cc0f052fff7ead7f2edcccac895502e884a8a71, Notional: 9.8 - {chain: 2, addr: "0000000000000000000000006de037ef9ad2725eb40118bb1702ebb27e4aeb24", symbol: "RNDR", coinGeckoId: "render-token", decimals: 18, price: 7.2}, // Addr: 0x6de037ef9ad2725eb40118bb1702ebb27e4aeb24, Notional: 219554124.79463992 - {chain: 2, addr: "0000000000000000000000001a7e4e63778b4f12a199c062f3efdd288afcbce8", symbol: "agEUR", coinGeckoId: "ageur", decimals: 18, price: 1.055}, // Addr: 0x1a7e4e63778b4f12a199c062f3efdd288afcbce8, Notional: 20506.617116854148 - {chain: 2, addr: "000000000000000000000000d979c468a68062e7bdff4ba6df7842dfd3492e0f", symbol: "BBL", coinGeckoId: "beoble", decimals: 18, price: 0.0467645}, // Addr: 0xd979c468a68062e7bdff4ba6df7842dfd3492e0f, Notional: 383629.1340971881 - {chain: 2, addr: "0000000000000000000000005eeaa2dcb23056f4e8654a349e57ebe5e76b5e6e", symbol: "VPP", coinGeckoId: "virtue-poker", decimals: 18, price: 0.01267015}, // Addr: 0x5eeaa2dcb23056f4e8654a349e57ebe5e76b5e6e, Notional: 1.267015 - {chain: 2, addr: "00000000000000000000000003be5c903c727ee2c8c4e9bc0acc860cca4715e2", symbol: "CAPS", coinGeckoId: "coin-capsule", decimals: 18, price: 0.01741599}, // Addr: 0x03be5c903c727ee2c8c4e9bc0acc860cca4715e2, Notional: 2964.1713155903617 - {chain: 2, addr: "000000000000000000000000c86d054809623432210c107af2e3f619dcfbf652", symbol: "UPP", coinGeckoId: "sentinel-protocol", decimals: 18, price: 0.076564}, // Addr: 0xc86d054809623432210c107af2e3f619dcfbf652, Notional: 0.7656399999999999 - {chain: 2, addr: "0000000000000000000000004691937a7508860f876c9c0a2a617e7d9e945d4b", symbol: "WOO", coinGeckoId: "woo-network", decimals: 18, price: 0.272124}, // Addr: 0x4691937a7508860f876c9c0a2a617e7d9e945d4b, Notional: 5.44248 - {chain: 2, addr: "0000000000000000000000003432b6a60d23ca0dfca7761b7ab56459d9c964d0", symbol: "FXS", coinGeckoId: "frax-share", decimals: 18, price: 4.1}, // Addr: 0x3432b6a60d23ca0dfca7761b7ab56459d9c964d0, Notional: 417656.80924471293 - {chain: 2, addr: "000000000000000000000000df574c24545e5ffecb9a659c229253d4111d87e1", symbol: "HUSD", coinGeckoId: "husd", decimals: 8, price: 0.064977}, // Addr: 0xdf574c24545e5ffecb9a659c229253d4111d87e1, Notional: 539.2025034030471 - {chain: 2, addr: "000000000000000000000000c011a73ee8576fb46f5e1c5751ca3b9fe0af2a6f", symbol: "SNX", coinGeckoId: "havven", decimals: 18, price: 2.55}, // Addr: 0xc011a73ee8576fb46f5e1c5751ca3b9fe0af2a6f, Notional: 55.1835560865 - {chain: 2, addr: "000000000000000000000000de342a3e269056fc3305f9e315f4c40d917ba521", symbol: "BYTE", coinGeckoId: "byte", decimals: 9, price: 0.00001549}, // Addr: 0xde342a3e269056fc3305f9e315f4c40d917ba521, Notional: 524831.8022838315 - {chain: 2, addr: "000000000000000000000000f7413489c474ca4399eee604716c72879eea3615", symbol: "APYS", coinGeckoId: "apyswap", decimals: 18, price: 0.00724601}, // Addr: 0xf7413489c474ca4399eee604716c72879eea3615, Notional: 1.114994671329939 - {chain: 2, addr: "000000000000000000000000ac57de9c1a09fec648e93eb98875b212db0d460b", symbol: "BabyDoge", coinGeckoId: "baby-doge-coin", decimals: 9, price: 1.729e-9}, // Addr: 0xac57de9c1a09fec648e93eb98875b212db0d460b, Notional: 264.28203203896095 - {chain: 2, addr: "000000000000000000000000ae7ab96520de3a18e5e111b5eaab095312d7fe84", symbol: "stETH", coinGeckoId: "staked-ether", decimals: 18, price: 2904.49}, // Addr: 0xae7ab96520de3a18e5e111b5eaab095312d7fe84, Notional: 6567.514865705999 - {chain: 2, addr: "000000000000000000000000de5ea375ffbdc8b25a80fe13d631e8ba0ab4bb02", symbol: "GERA", coinGeckoId: "gera-coin", decimals: 18, price: 0.00007232}, // Addr: 0xde5ea375ffbdc8b25a80fe13d631e8ba0ab4bb02, Notional: 0.32068077722743676 - {chain: 2, addr: "0000000000000000000000008770b7dd89e5f759ee3b226e0c45e890f87ddc48", symbol: "MIRL", coinGeckoId: "made-in-real-life", decimals: 18, price: 0.00013146}, // Addr: 0x8770b7dd89e5f759ee3b226e0c45e890f87ddc48, Notional: 11251.28408357726 - {chain: 2, addr: "0000000000000000000000007d1afa7b718fb893db30a3abc0cfc608aacfebb0", symbol: "MATIC", coinGeckoId: "matic-network", decimals: 18, price: 0.671855}, // Addr: 0x7d1afa7b718fb893db30a3abc0cfc608aacfebb0, Notional: 18803.331853257325 - {chain: 2, addr: "0000000000000000000000002b591e99afe9f32eaa6214f7b7629768c40eeb39", symbol: "HEX", coinGeckoId: "hex", decimals: 8, price: 0.00182252}, // Addr: 0x2b591e99afe9f32eaa6214f7b7629768c40eeb39, Notional: 18.22702252 - {chain: 2, addr: "000000000000000000000000bd6323a83b613f668687014e8a5852079494fb68", symbol: "BTC", coinGeckoId: "blackrocktradingcurrency", decimals: 18, price: 4.82}, // Addr: 0xbd6323a83b613f668687014e8a5852079494fb68, Notional: 24.0999999518 - {chain: 2, addr: "0000000000000000000000001f7e5118521b550bb1a9b435727c003eb033fc51", symbol: "AGLA", coinGeckoId: "angola", decimals: 18, price: 0.01052236}, // Addr: 0x1f7e5118521b550bb1a9b435727c003eb033fc51, Notional: 15257.421999999999 - {chain: 2, addr: "00000000000000000000000096543ef8d2c75c26387c1a319ae69c0bee6f3fe7", symbol: "KUJI", coinGeckoId: "kujira", decimals: 6, price: 1.7}, // Addr: 0x96543ef8d2c75c26387c1a319ae69c0bee6f3fe7, Notional: 1.7 - {chain: 2, addr: "000000000000000000000000090185f2135308bad17527004364ebcc2d37e5f6", symbol: "SPELL", coinGeckoId: "spell-token", decimals: 18, price: 0.0007999}, // Addr: 0x090185f2135308bad17527004364ebcc2d37e5f6, Notional: 0.0007999 - {chain: 2, addr: "0000000000000000000000004fabb145d64652a948d72533023f6e7a623c7c53", symbol: "BUSD", coinGeckoId: "binance-usd", decimals: 18, price: 0.997575}, // Addr: 0x4fabb145d64652a948d72533023f6e7a623c7c53, Notional: 11707.260541689966 - {chain: 2, addr: "0000000000000000000000001abaea1f7c830bd89acc67ec4af516284b1bc33c", symbol: "EUROC", coinGeckoId: "euro-coin", decimals: 6, price: 1.062}, // Addr: 0x1abaea1f7c830bd89acc67ec4af516284b1bc33c, Notional: 1.60635996 - {chain: 2, addr: "0000000000000000000000007a58c0be72be218b41c608b7fe7c5bb630736c71", symbol: "PEOPLE", coinGeckoId: "constitutiondao", decimals: 18, price: 0.02219989}, // Addr: 0x7a58c0be72be218b41c608b7fe7c5bb630736c71, Notional: 11947.682069028788 - {chain: 2, addr: "000000000000000000000000949d48eca67b17269629c7194f4b727d4ef9e5d6", symbol: "MC", coinGeckoId: "merit-circle", decimals: 18, price: 2.27}, // Addr: 0x949d48eca67b17269629c7194f4b727d4ef9e5d6, Notional: 145.50699999999998 - {chain: 2, addr: "0000000000000000000000000a638f07acc6969abf392bb009f216d22adea36d", symbol: "BKN", coinGeckoId: "brickken", decimals: 18, price: 0.493977}, // Addr: 0x0a638f07acc6969abf392bb009f216d22adea36d, Notional: 5334703.989949177 + {chain: 1, addr: "061391c556ba0106d4b1b2ccf939d47caf9fb30639a58bf9cc315d024f1cb458", symbol: "", coinGeckoId: "tudabirds", decimals: 9, price: 0.00077917}, // Addr: Qikhhhg9Ta3Jg7WoDFbSYuCAE14hx9hPvdz1zVp3zUw, Notional: 0.53373145 + {chain: 1, addr: "9a7bc3a4fa3d288a156a2a3171fd953536f10e7c92cefad8b919c709aefb2b0c", symbol: "GROK", coinGeckoId: "grok-6", decimals: 9, price: 0.08641}, // Addr: BQ3F72yt9FVRgYrqCVCG3YohyBesDZ9bTuhGdmQ7GNEF, Notional: 0.43205 + {chain: 1, addr: "0b62ba074f722c9d4114f2d8f70a00c66002337b9bf90c873657a6d201db4c80", symbol: "mSOL", coinGeckoId: "msol", decimals: 9, price: 174.03}, // Addr: mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So, Notional: 84.8148309459 + {chain: 2, addr: "000000000000000000000000ac6db8954b73ebf10e84278ac8b9b22a781615d9", symbol: "BWB", coinGeckoId: "bitget-wallet-token", decimals: 18, price: 0.359335}, // Addr: 0xac6db8954b73ebf10e84278ac8b9b22a781615d9, Notional: 34207214.47444169 + {chain: 2, addr: "000000000000000000000000576e2bed8f7b46d34016198911cdf9886f78bea7", symbol: "TRUMP", coinGeckoId: "maga", decimals: 9, price: 3.01}, // Addr: 0x576e2bed8f7b46d34016198911cdf9886f78bea7, Notional: 11463581.412270172 + {chain: 2, addr: "0000000000000000000000006731827cb6879a2091ce3ab3423f7bf20539b579", symbol: "MPWR", coinGeckoId: "clubrare-empower", decimals: 18, price: 0.00005105}, // Addr: 0x6731827cb6879a2091ce3ab3423f7bf20539b579, Notional: 0.0001021 + {chain: 2, addr: "0000000000000000000000007777777777697cfeecf846a76326da79cc606517", symbol: "SIG", coinGeckoId: "xsigma", decimals: 18, price: 0.0035991}, // Addr: 0x7777777777697cfeecf846a76326da79cc606517, Notional: 0.35991 + {chain: 2, addr: "000000000000000000000000f17a3fe536f8f7847f1385ec1bc967b2ca9cae8d", symbol: "AMKT", coinGeckoId: "alongside-crypto-market-index", decimals: 18, price: 161.64}, // Addr: 0xf17a3fe536f8f7847f1385ec1bc967b2ca9cae8d, Notional: 16.163999999999998 + {chain: 2, addr: "0000000000000000000000003e70f6806171873d17d4bfc984a6f9d20f5a9018", symbol: "COIN", coinGeckoId: "brianarmstrongtrumpyellen", decimals: 18, price: 0.00012964}, // Addr: 0x3e70f6806171873d17d4bfc984a6f9d20f5a9018, Notional: 219.29479422875187 + {chain: 2, addr: "00000000000000000000000027702a26126e0b3702af63ee09ac4d1a084ef628", symbol: "ALEPH", coinGeckoId: "aleph", decimals: 18, price: 0.131103}, // Addr: 0x27702a26126e0b3702af63ee09ac4d1a084ef628, Notional: 276998.6789482076 + {chain: 2, addr: "000000000000000000000000d417144312dbf50465b1c641d016962017ef6240", symbol: "CQT", coinGeckoId: "covalent", decimals: 18, price: 0.00505602}, // Addr: 0xd417144312dbf50465b1c641d016962017ef6240, Notional: 29081.260192118993 + {chain: 2, addr: "000000000000000000000000ab2a7b5876d707e0126b3a75ef7781c77c8877ee", symbol: "QUAD", coinGeckoId: "quadency", decimals: 18, price: 0.00579341}, // Addr: 0xab2a7b5876d707e0126b3a75ef7781c77c8877ee, Notional: 7265.105083223299 + {chain: 2, addr: "0000000000000000000000006b175474e89094c44da98b954eedeac495271d0f", symbol: "DAI", coinGeckoId: "dai", decimals: 18, price: 0.999076}, // Addr: 0x6b175474e89094c44da98b954eedeac495271d0f, Notional: 2707984.7453229027 + {chain: 2, addr: "00000000000000000000000032e7c8a6e920a3cf224b678112ac78fdc0fb09d1", symbol: "BOO", coinGeckoId: "boo-2", decimals: 18, price: 0.00003761}, // Addr: 0x32e7c8a6e920a3cf224b678112ac78fdc0fb09d1, Notional: 2.4878455170050082 + {chain: 2, addr: "000000000000000000000000ed35af169af46a02ee13b9d79eb57d6d68c1749e", symbol: "OMI", coinGeckoId: "ecomi", decimals: 18, price: 0.00041785}, // Addr: 0xed35af169af46a02ee13b9d79eb57d6d68c1749e, Notional: 8.357 + {chain: 2, addr: "000000000000000000000000725c263e32c72ddc3a19bea12c5a0479a81ee688", symbol: "BMI", coinGeckoId: "bridge-mutual", decimals: 18, price: 0.00631235}, // Addr: 0x725c263e32c72ddc3a19bea12c5a0479a81ee688, Notional: 12497.300899567066 + {chain: 2, addr: "00000000000000000000000010633216e7e8281e33c86f02bf8e565a635d9770", symbol: "DVI", coinGeckoId: "dvision-network", decimals: 18, price: 0.01275162}, // Addr: 0x10633216e7e8281e33c86f02bf8e565a635d9770, Notional: 1.275162 + {chain: 2, addr: "000000000000000000000000427a03fb96d9a94a6727fbcfbba143444090dd64", symbol: "PIXL", coinGeckoId: "sappy-seals-pixl", decimals: 18, price: 0.03310472}, // Addr: 0x427a03fb96d9a94a6727fbcfbba143444090dd64, Notional: 0.36415191999999996 + {chain: 2, addr: "00000000000000000000000065ef703f5594d2573eb71aaf55bc0cb548492df4", symbol: "MULTI", coinGeckoId: "multichain", decimals: 18, price: 0.412999}, // Addr: 0x65ef703f5594d2573eb71aaf55bc0cb548492df4, Notional: 695.984936454929 + {chain: 2, addr: "00000000000000000000000050b806c5fe274c07e46b96be8c68d2fd2d9597b4", symbol: "$TUCKER", coinGeckoId: "tucker-carlson", decimals: 18, price: 0.00000191}, // Addr: 0x50b806c5fe274c07e46b96be8c68d2fd2d9597b4, Notional: 1938.845277822339 + {chain: 2, addr: "000000000000000000000000d2877702675e6ceb975b4a1dff9fb7baf4c91ea9", symbol: "LUNA", coinGeckoId: "wrapped-terra", decimals: 18, price: 0.00003828}, // Addr: 0xd2877702675e6ceb975b4a1dff9fb7baf4c91ea9, Notional: 1.11617353406658 + {chain: 2, addr: "00000000000000000000000006e0feb0d74106c7ada8497754074d222ec6bcdf", symbol: "BTB", coinGeckoId: "bitball", decimals: 18, price: 0.00004983}, // Addr: 0x06e0feb0d74106c7ada8497754074d222ec6bcdf, Notional: 448.47 + {chain: 2, addr: "0000000000000000000000000001a500a6b18995b03f44bb040a5ffc28e45cb0", symbol: "OLAS", coinGeckoId: "autonolas", decimals: 18, price: 0.792582}, // Addr: 0x0001a500a6b18995b03f44bb040a5ffc28e45cb0, Notional: 179759.80148527588 + {chain: 2, addr: "00000000000000000000000042069d11a2cc72388a2e06210921e839cfbd3280", symbol: "GNOME", coinGeckoId: "gnomeland", decimals: 18, price: 0.00029504}, // Addr: 0x42069d11a2cc72388a2e06210921e839cfbd3280, Notional: 330.6880943265315 + {chain: 2, addr: "0000000000000000000000004740735aa98dc8aa232bd049f8f0210458e7fca3", symbol: "RDT", coinGeckoId: "ridotto", decimals: 18, price: 0.01214002}, // Addr: 0x4740735aa98dc8aa232bd049f8f0210458e7fca3, Notional: 1.0983076094 + {chain: 2, addr: "0000000000000000000000006b3595068778dd592e39a122f4f5a5cf09c90fe2", symbol: "SUSHI", coinGeckoId: "sushi", decimals: 18, price: 0.592701}, // Addr: 0x6b3595068778dd592e39a122f4f5a5cf09c90fe2, Notional: 131822.77566574042 + {chain: 2, addr: "00000000000000000000000085eee30c52b0b379b046fb0f85f4f3dc3009afec", symbol: "KEEP", coinGeckoId: "keep-network", decimals: 18, price: 0.107285}, // Addr: 0x85eee30c52b0b379b046fb0f85f4f3dc3009afec, Notional: 0.21492189480000004 + {chain: 2, addr: "00000000000000000000000006450dee7fd2fb8e39061434babcfc05599a6fb8", symbol: "XEN", coinGeckoId: "xen-crypto", decimals: 18, price: 8.319e-8}, // Addr: 0x06450dee7fd2fb8e39061434babcfc05599a6fb8, Notional: 0.0008327319000000001 + {chain: 2, addr: "000000000000000000000000e4ab0be415e277d82c38625b72bd7dea232c2e7d", symbol: "XRP20", coinGeckoId: "xrp20", decimals: 18, price: 0.00001684}, // Addr: 0xe4ab0be415e277d82c38625b72bd7dea232c2e7d, Notional: 0.6775980794798189 + {chain: 2, addr: "000000000000000000000000cd1faff6e578fa5cac469d2418c95671ba1a62fe", symbol: "XTM", coinGeckoId: "torum", decimals: 18, price: 0.03107371}, // Addr: 0xcd1faff6e578fa5cac469d2418c95671ba1a62fe, Notional: 1.5536855 + {chain: 2, addr: "00000000000000000000000015d4c048f83bd7e37d49ea4c83a07267ec4203da", symbol: "GALA", coinGeckoId: "gala", decimals: 8, price: 0.01662838}, // Addr: 0x15d4c048f83bd7e37d49ea4c83a07267ec4203da, Notional: 10.24308208 + {chain: 2, addr: "0000000000000000000000005a98fcbea516cf06857215779fd812ca3bef1b32", symbol: "LDO", coinGeckoId: "lido-dao", decimals: 18, price: 1.069}, // Addr: 0x5a98fcbea516cf06857215779fd812ca3bef1b32, Notional: 568517.3865517501 + {chain: 2, addr: "000000000000000000000000383518188c0c6d7730d91b2c03a03c837814a899", symbol: "OHM", coinGeckoId: "olympus-v1", decimals: 9, price: 81.02}, // Addr: 0x383518188c0c6d7730d91b2c03a03c837814a899, Notional: 4.051 + {chain: 2, addr: "000000000000000000000000cafe001067cdef266afb7eb5a286dcfd277f3de5", symbol: "PSP", coinGeckoId: "paraswap", decimals: 18, price: 0.01572411}, // Addr: 0xcafe001067cdef266afb7eb5a286dcfd277f3de5, Notional: 0.014212685275117199 + {chain: 2, addr: "000000000000000000000000ccdb064a41afcd432bcea6f6d0d1e7c371d0b002", symbol: "QR", coinGeckoId: "qrolli", decimals: 9, price: 0.00011874}, // Addr: 0xccdb064a41afcd432bcea6f6d0d1e7c371d0b002, Notional: 0.00023748 + {chain: 2, addr: "000000000000000000000000f831938caf837cd505de196bbb408d81a06376ab", symbol: "JEFF", coinGeckoId: "jeff", decimals: 18, price: 0.00207795}, // Addr: 0xf831938caf837cd505de196bbb408d81a06376ab, Notional: 1937.6907094629946 + {chain: 2, addr: "0000000000000000000000008cc0f052fff7ead7f2edcccac895502e884a8a71", symbol: "ARTH", coinGeckoId: "arth", decimals: 18, price: 0.853591}, // Addr: 0x8cc0f052fff7ead7f2edcccac895502e884a8a71, Notional: 4.267955 + {chain: 2, addr: "0000000000000000000000006de037ef9ad2725eb40118bb1702ebb27e4aeb24", symbol: "RNDR", coinGeckoId: "render-token", decimals: 18, price: 4.71}, // Addr: 0x6de037ef9ad2725eb40118bb1702ebb27e4aeb24, Notional: 811926902.7727721 + {chain: 2, addr: "0000000000000000000000001a7e4e63778b4f12a199c062f3efdd288afcbce8", symbol: "agEUR", coinGeckoId: "ageur", decimals: 18, price: 1.092}, // Addr: 0x1a7e4e63778b4f12a199c062f3efdd288afcbce8, Notional: 21225.806532326762 + {chain: 2, addr: "000000000000000000000000d979c468a68062e7bdff4ba6df7842dfd3492e0f", symbol: "BBL", coinGeckoId: "beoble", decimals: 18, price: 0.01231048}, // Addr: 0xd979c468a68062e7bdff4ba6df7842dfd3492e0f, Notional: 78228.94512965843 + {chain: 2, addr: "0000000000000000000000005eeaa2dcb23056f4e8654a349e57ebe5e76b5e6e", symbol: "VPP", coinGeckoId: "virtue-poker", decimals: 18, price: 0.00549318}, // Addr: 0x5eeaa2dcb23056f4e8654a349e57ebe5e76b5e6e, Notional: 0.549318 + {chain: 2, addr: "00000000000000000000000003be5c903c727ee2c8c4e9bc0acc860cca4715e2", symbol: "CAPS", coinGeckoId: "coin-capsule", decimals: 18, price: 0.00568083}, // Addr: 0x03be5c903c727ee2c8c4e9bc0acc860cca4715e2, Notional: 985.3713044763543 + {chain: 2, addr: "000000000000000000000000c86d054809623432210c107af2e3f619dcfbf652", symbol: "UPP", coinGeckoId: "sentinel-protocol", decimals: 18, price: 0.051145}, // Addr: 0xc86d054809623432210c107af2e3f619dcfbf652, Notional: 0.5114500000000001 + {chain: 2, addr: "0000000000000000000000004691937a7508860f876c9c0a2a617e7d9e945d4b", symbol: "WOO", coinGeckoId: "woo-network", decimals: 18, price: 0.151278}, // Addr: 0x4691937a7508860f876c9c0a2a617e7d9e945d4b, Notional: 3.02556 + {chain: 2, addr: "0000000000000000000000003432b6a60d23ca0dfca7761b7ab56459d9c964d0", symbol: "FXS", coinGeckoId: "frax-share", decimals: 18, price: 1.8}, // Addr: 0x3432b6a60d23ca0dfca7761b7ab56459d9c964d0, Notional: 183361.52600987398 + {chain: 2, addr: "000000000000000000000000df574c24545e5ffecb9a659c229253d4111d87e1", symbol: "HUSD", coinGeckoId: "husd", decimals: 8, price: 0.0244907}, // Addr: 0xdf574c24545e5ffecb9a659c229253d4111d87e1, Notional: 203.2326323174817 + {chain: 2, addr: "000000000000000000000000c011a73ee8576fb46f5e1c5751ca3b9fe0af2a6f", symbol: "SNX", coinGeckoId: "havven", decimals: 18, price: 1.34}, // Addr: 0xc011a73ee8576fb46f5e1c5751ca3b9fe0af2a6f, Notional: 164.222914693 + {chain: 2, addr: "000000000000000000000000de342a3e269056fc3305f9e315f4c40d917ba521", symbol: "BYTE", coinGeckoId: "byte", decimals: 9, price: 0.0000052}, // Addr: 0xde342a3e269056fc3305f9e315f4c40d917ba521, Notional: 154718.68126224048 + {chain: 2, addr: "000000000000000000000000f7413489c474ca4399eee604716c72879eea3615", symbol: "APYS", coinGeckoId: "apyswap", decimals: 18, price: 0.00520798}, // Addr: 0xf7413489c474ca4399eee604716c72879eea3615, Notional: 0.8013886191701219 + {chain: 2, addr: "000000000000000000000000614da3b37b6f66f7ce69b4bbbcf9a55ce6168707", symbol: "MMX", coinGeckoId: "m2-global-wealth-limited-mmx", decimals: 18, price: 1.76}, // Addr: 0x614da3b37b6f66f7ce69b4bbbcf9a55ce6168707, Notional: 98583.1626741632 + {chain: 2, addr: "000000000000000000000000968cbe62c830a0ccf4381614662398505657a2a9", symbol: "TPY", coinGeckoId: "thrupenny", decimals: 8, price: 0.03949779}, // Addr: 0x968cbe62c830a0ccf4381614662398505657a2a9, Notional: 9403.102450299533 + {chain: 2, addr: "000000000000000000000000ac57de9c1a09fec648e93eb98875b212db0d460b", symbol: "BabyDoge", coinGeckoId: "baby-doge-coin", decimals: 9, price: 1.041e-9}, // Addr: 0xac57de9c1a09fec648e93eb98875b212db0d460b, Notional: 159.11948834734434 + {chain: 2, addr: "000000000000000000000000ae7ab96520de3a18e5e111b5eaab095312d7fe84", symbol: "stETH", coinGeckoId: "staked-ether", decimals: 18, price: 2661.61}, // Addr: 0xae7ab96520de3a18e5e111b5eaab095312d7fe84, Notional: 6018.324470634 + {chain: 2, addr: "000000000000000000000000de5ea375ffbdc8b25a80fe13d631e8ba0ab4bb02", symbol: "GERA", coinGeckoId: "gera-coin", decimals: 18, price: 0.00002085}, // Addr: 0xde5ea375ffbdc8b25a80fe13d631e8ba0ab4bb02, Notional: 0.09245290659834149 + {chain: 2, addr: "0000000000000000000000008770b7dd89e5f759ee3b226e0c45e890f87ddc48", symbol: "MIRL", coinGeckoId: "made-in-real-life", decimals: 18, price: 0.0000265}, // Addr: 0x8770b7dd89e5f759ee3b226e0c45e890f87ddc48, Notional: 1916.9208993289617 + {chain: 2, addr: "0000000000000000000000007d1afa7b718fb893db30a3abc0cfc608aacfebb0", symbol: "MATIC", coinGeckoId: "matic-network", decimals: 18, price: 0.423753}, // Addr: 0x7d1afa7b718fb893db30a3abc0cfc608aacfebb0, Notional: 11784.193229844648 + {chain: 2, addr: "0000000000000000000000002b591e99afe9f32eaa6214f7b7629768c40eeb39", symbol: "HEX", coinGeckoId: "hex", decimals: 8, price: 0.00118811}, // Addr: 0x2b591e99afe9f32eaa6214f7b7629768c40eeb39, Notional: 11.882288110000001 + {chain: 2, addr: "000000000000000000000000bd6323a83b613f668687014e8a5852079494fb68", symbol: "BTC", coinGeckoId: "blackrocktradingcurrency", decimals: 18, price: 0.03270701}, // Addr: 0xbd6323a83b613f668687014e8a5852079494fb68, Notional: 0.16353504967292992 + {chain: 2, addr: "0000000000000000000000001f7e5118521b550bb1a9b435727c003eb033fc51", symbol: "AGLA", coinGeckoId: "angola", decimals: 18, price: 0.02502795}, // Addr: 0x1f7e5118521b550bb1a9b435727c003eb033fc51, Notional: 36290.527500000004 + {chain: 2, addr: "00000000000000000000000096543ef8d2c75c26387c1a319ae69c0bee6f3fe7", symbol: "KUJI", coinGeckoId: "kujira", decimals: 6, price: 0.437292}, // Addr: 0x96543ef8d2c75c26387c1a319ae69c0bee6f3fe7, Notional: 0.437292 + {chain: 2, addr: "000000000000000000000000090185f2135308bad17527004364ebcc2d37e5f6", symbol: "SPELL", coinGeckoId: "spell-token", decimals: 18, price: 0.00051683}, // Addr: 0x090185f2135308bad17527004364ebcc2d37e5f6, Notional: 0.00051683 + {chain: 2, addr: "0000000000000000000000004fabb145d64652a948d72533023f6e7a623c7c53", symbol: "BUSD", coinGeckoId: "binance-usd", decimals: 18, price: 0.998172}, // Addr: 0x4fabb145d64652a948d72533023f6e7a623c7c53, Notional: 11754.443189328102 + {chain: 2, addr: "0000000000000000000000001abaea1f7c830bd89acc67ec4af516284b1bc33c", symbol: "EUROC", coinGeckoId: "euro-coin", decimals: 6, price: 1.1}, // Addr: 0x1abaea1f7c830bd89acc67ec4af516284b1bc33c, Notional: 1.6638380000000002 + {chain: 2, addr: "0000000000000000000000007a58c0be72be218b41c608b7fe7c5bb630736c71", symbol: "PEOPLE", coinGeckoId: "constitutiondao", decimals: 18, price: 0.054232}, // Addr: 0x7a58c0be72be218b41c608b7fe7c5bb630736c71, Notional: 38613.228545291124 + {chain: 2, addr: "000000000000000000000000949d48eca67b17269629c7194f4b727d4ef9e5d6", symbol: "MC", coinGeckoId: "merit-circle", decimals: 18, price: 1.37}, // Addr: 0x949d48eca67b17269629c7194f4b727d4ef9e5d6, Notional: 87.817 + {chain: 2, addr: "0000000000000000000000000a638f07acc6969abf392bb009f216d22adea36d", symbol: "BKN", coinGeckoId: "brickken", decimals: 18, price: 0.140242}, // Addr: 0x0a638f07acc6969abf392bb009f216d22adea36d, Notional: 1473455.1652356847 {chain: 2, addr: "000000000000000000000000d38e031f4529a07996aab977d2b79f0e00656c56", symbol: "wTBT", coinGeckoId: "wtbt", decimals: 18, price: 1.18}, // Addr: 0xd38e031f4529a07996aab977d2b79f0e00656c56, Notional: 116668.7422559924 - {chain: 2, addr: "000000000000000000000000fad45e47083e4607302aa43c65fb3106f1cd7607", symbol: "HOGE", coinGeckoId: "hoge-finance", decimals: 9, price: 0.00002284}, // Addr: 0xfad45e47083e4607302aa43c65fb3106f1cd7607, Notional: 223.8320447752747 - {chain: 2, addr: "000000000000000000000000c4170fd71eced3c80badca77f4e12e8aac1e3436", symbol: "KMON", coinGeckoId: "kryptomon", decimals: 18, price: 0.0072421}, // Addr: 0xc4170fd71eced3c80badca77f4e12e8aac1e3436, Notional: 1258553.1555022558 - {chain: 2, addr: "00000000000000000000000072e4f9f808c49a2a61de9c5896298920dc4eeea9", symbol: "BITCOIN", coinGeckoId: "harrypotterobamasonic10in", decimals: 8, price: 0.077071}, // Addr: 0x72e4f9f808c49a2a61de9c5896298920dc4eeea9, Notional: 453.49051525219886 - {chain: 2, addr: "0000000000000000000000006b66ccd1340c479b07b390d326eadcbb84e726ba", symbol: "SEAM", coinGeckoId: "seamless-protocol", decimals: 18, price: 4.37}, // Addr: 0x6b66ccd1340c479b07b390d326eadcbb84e726ba, Notional: 43.7 - {chain: 2, addr: "0000000000000000000000009fda7ceec4c18008096c2fe2b85f05dc300f94d0", symbol: "GAJ", coinGeckoId: "gaj", decimals: 18, price: 0.00545427}, // Addr: 0x9fda7ceec4c18008096c2fe2b85f05dc300f94d0, Notional: 31.572133872100377 - {chain: 2, addr: "000000000000000000000000aaaebe6fe48e54f431b0c390cfaf0b017d09d42d", symbol: "CEL", coinGeckoId: "celsius-degree-token", decimals: 4, price: 0.190033}, // Addr: 0xaaaebe6fe48e54f431b0c390cfaf0b017d09d42d, Notional: 9783.5078197518 - {chain: 2, addr: "00000000000000000000000098585dfc8d9e7d48f0b1ae47ce33332cf4237d96", symbol: "NEWO", coinGeckoId: "new-order", decimals: 18, price: 0.00660131}, // Addr: 0x98585dfc8d9e7d48f0b1ae47ce33332cf4237d96, Notional: 1080740.1654469434 - {chain: 2, addr: "00000000000000000000000046cca329970b33e1a007dd4ef0594a1cedb3e72a", symbol: "YESP", coinGeckoId: "yesports", decimals: 18, price: 0.00038554}, // Addr: 0x46cca329970b33e1a007dd4ef0594a1cedb3e72a, Notional: 63.039777871544004 - {chain: 2, addr: "00000000000000000000000030d20208d987713f46dfd34ef128bb16c404d10f", symbol: "SD", coinGeckoId: "stader", decimals: 18, price: 0.713502}, // Addr: 0x30d20208d987713f46dfd34ef128bb16c404d10f, Notional: 410849.38582352165 - {chain: 2, addr: "0000000000000000000000009b83f827928abdf18cf1f7e67053572b9bceff3a", symbol: "ARTEM", coinGeckoId: "artem", decimals: 18, price: 0.00436087}, // Addr: 0x9b83f827928abdf18cf1f7e67053572b9bceff3a, Notional: 47817.64027609727 - {chain: 2, addr: "0000000000000000000000000763fdccf1ae541a5961815c0872a8c5bc6de4d7", symbol: "SUKU", coinGeckoId: "suku", decimals: 18, price: 0.144234}, // Addr: 0x0763fdccf1ae541a5961815c0872a8c5bc6de4d7, Notional: 3.39509992641948 - {chain: 2, addr: "00000000000000000000000069a95185ee2a045cdc4bcd1b1df10710395e4e23", symbol: "POOLZ", coinGeckoId: "poolz-finance", decimals: 18, price: 0.01717902}, // Addr: 0x69a95185ee2a045cdc4bcd1b1df10710395e4e23, Notional: 0.15120973404 - {chain: 2, addr: "000000000000000000000000a150db9b1fa65b44799d4dd949d922c0a33ee606", symbol: "DRC", coinGeckoId: "digital-reserve-currency", decimals: 0, price: 0.00024156}, // Addr: 0xa150db9b1fa65b44799d4dd949d922c0a33ee606, Notional: 7.4001906 - {chain: 2, addr: "0000000000000000000000007659ce147d0e714454073a5dd7003544234b6aa0", symbol: "XCAD", coinGeckoId: "xcad-network", decimals: 18, price: 0.750677}, // Addr: 0x7659ce147d0e714454073a5dd7003544234b6aa0, Notional: 8904523.962533632 - {chain: 2, addr: "000000000000000000000000a31b1767e09f842ecfd4bc471fe44f830e3891aa", symbol: "ROOBEE", coinGeckoId: "roobee", decimals: 18, price: 0.0007079}, // Addr: 0xa31b1767e09f842ecfd4bc471fe44f830e3891aa, Notional: 31.752381254692 - {chain: 2, addr: "00000000000000000000000005d3606d5c81eb9b7b18530995ec9b29da05faba", symbol: "TOMOE", coinGeckoId: "tomoe", decimals: 18, price: 0.72171}, // Addr: 0x05d3606d5c81eb9b7b18530995ec9b29da05faba, Notional: 72171 - {chain: 2, addr: "0000000000000000000000002c95d751da37a5c1d9c5a7fd465c1d50f3d96160", symbol: "WASSIE", coinGeckoId: "wassie", decimals: 18, price: 0.00000392}, // Addr: 0x2c95d751da37a5c1d9c5a7fd465c1d50f3d96160, Notional: 278272.3404363612 - {chain: 2, addr: "000000000000000000000000cd5fe23c85820f7b72d0926fc9b05b43e359b7ee", symbol: "weETH", coinGeckoId: "wrapped-eeth", decimals: 18, price: 3000.59}, // Addr: 0xcd5fe23c85820f7b72d0926fc9b05b43e359b7ee, Notional: 23539.1238207561 - {chain: 2, addr: "000000000000000000000000762fcf5183ae366c0629d0bcd30b40f331496d0f", symbol: "DICE", coinGeckoId: "dice-bot", decimals: 18, price: 0.00008004}, // Addr: 0x762fcf5183ae366c0629d0bcd30b40f331496d0f, Notional: 0.08004 - {chain: 2, addr: "0000000000000000000000002ad9addd0d97ec3cdba27f92bf6077893b76ab0b", symbol: "PLANET", coinGeckoId: "planet-token", decimals: 18, price: 0.00004101}, // Addr: 0x2ad9addd0d97ec3cdba27f92bf6077893b76ab0b, Notional: 1378223.429391303 - {chain: 2, addr: "0000000000000000000000009609b540e5dedddb147abbf9812ade06b1e61b2c", symbol: "MICKEY", coinGeckoId: "steamboat-willie", decimals: 18, price: 0.00119457}, // Addr: 0x9609b540e5dedddb147abbf9812ade06b1e61b2c, Notional: 123764.28225924674 - {chain: 2, addr: "000000000000000000000000bb0e17ef65f82ab018d8edd776e8dd940327b28b", symbol: "AXS", coinGeckoId: "axie-infinity", decimals: 18, price: 6.64}, // Addr: 0xbb0e17ef65f82ab018d8edd776e8dd940327b28b, Notional: 6830.0880887544 - {chain: 2, addr: "000000000000000000000000e74dc43867e0cbeb208f1a012fc60dcbbf0e3044", symbol: "CWAP", coinGeckoId: "defire", decimals: 18, price: 0.0087512}, // Addr: 0xe74dc43867e0cbeb208f1a012fc60dcbbf0e3044, Notional: 0.0175024 - {chain: 2, addr: "0000000000000000000000005488eff1976e4a56b4255e926d419a7054df196a", symbol: "CITTY", coinGeckoId: "citty-meme-coin", decimals: 18, price: 0.00313009}, // Addr: 0x5488eff1976e4a56b4255e926d419a7054df196a, Notional: 1994.8136095802618 - {chain: 2, addr: "000000000000000000000000fb5c6815ca3ac72ce9f5006869ae67f18bf77006", symbol: "PSTAKE", coinGeckoId: "pstake-finance", decimals: 18, price: 0.062445}, // Addr: 0xfb5c6815ca3ac72ce9f5006869ae67f18bf77006, Notional: 68.3460525 - {chain: 2, addr: "000000000000000000000000a47c8bf37f92abed4a126bda807a7b7498661acd", symbol: "UST", coinGeckoId: "wrapped-ust", decimals: 18, price: 0.065163}, // Addr: 0xa47c8bf37f92abed4a126bda807a7b7498661acd, Notional: 22.365586084094613 - {chain: 2, addr: "0000000000000000000000001a6658f40e51b372e593b7d2144c1402d5cf33e8", symbol: "PUBLX", coinGeckoId: "publc", decimals: 18, price: 0.00167541}, // Addr: 0x1a6658f40e51b372e593b7d2144c1402d5cf33e8, Notional: 32506.47698945565 - {chain: 2, addr: "000000000000000000000000362bc847a3a9637d3af6624eec853618a43ed7d2", symbol: "PRQ", coinGeckoId: "parsiq", decimals: 18, price: 0.11813}, // Addr: 0x362bc847a3a9637d3af6624eec853618a43ed7d2, Notional: 144.25487736686 - {chain: 2, addr: "000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec7", symbol: "USDT", coinGeckoId: "tether", decimals: 6, price: 0.999172}, // Addr: 0xdac17f958d2ee523a2206206994597c13d831ec7, Notional: 133328203.19092576 - {chain: 2, addr: "00000000000000000000000000e679ba63b509182c349f5614f0a07cdd0ce0c5", symbol: "DAMEX", coinGeckoId: "damex-token", decimals: 18, price: 0.0304959}, // Addr: 0x00e679ba63b509182c349f5614f0a07cdd0ce0c5, Notional: 18.297539999999998 - {chain: 2, addr: "00000000000000000000000021bfbda47a0b4b5b1248c767ee49f7caa9b23697", symbol: "OVR", coinGeckoId: "ovr", decimals: 18, price: 0.341634}, // Addr: 0x21bfbda47a0b4b5b1248c767ee49f7caa9b23697, Notional: 51.2451 - {chain: 2, addr: "000000000000000000000000389999216860ab8e0175387a0c90e5c52522c945", symbol: "FEG", coinGeckoId: "feg-token", decimals: 9, price: 6.64232e-10}, // Addr: 0x389999216860ab8e0175387a0c90e5c52522c945, Notional: 6.2437808130189625 - {chain: 2, addr: "0000000000000000000000009be89d2a4cd102d8fecc6bf9da793be995c22541", symbol: "BBTC", coinGeckoId: "binance-wrapped-btc", decimals: 8, price: 57338}, // Addr: 0x9be89d2a4cd102d8fecc6bf9da793be995c22541, Notional: 1220.7288869000001 - {chain: 2, addr: "0000000000000000000000006b4c7a5e3f0b99fcd83e9c089bddd6c7fce5c611", symbol: "MM", coinGeckoId: "million", decimals: 18, price: 1.61}, // Addr: 0x6b4c7a5e3f0b99fcd83e9c089bddd6c7fce5c611, Notional: 90.0225944212 - {chain: 2, addr: "000000000000000000000000582d872a1b094fc48f5de31d3b73f2d9be47def1", symbol: "TONCOIN", coinGeckoId: "the-open-network", decimals: 9, price: 4.72}, // Addr: 0x582d872a1b094fc48f5de31d3b73f2d9be47def1, Notional: 4222.3141688936 - {chain: 2, addr: "000000000000000000000000394a16744dcd805bb0ca7252e70691f0dcac56aa", symbol: "TRZ", coinGeckoId: "trazable", decimals: 18, price: 0.00027998}, // Addr: 0x394a16744dcd805bb0ca7252e70691f0dcac56aa, Notional: 13.058702669561209 - {chain: 2, addr: "00000000000000000000000004969cd041c0cafb6ac462bd65b536a5bdb3a670", symbol: "wOMI", coinGeckoId: "wrapped-ecomi", decimals: 18, price: 0.00067187}, // Addr: 0x04969cd041c0cafb6ac462bd65b536a5bdb3a670, Notional: 12.614154662420493 - {chain: 2, addr: "000000000000000000000000d2be3722b17b616c51ed9b8944a227d1ce579c24", symbol: "DTUBE", coinGeckoId: "dtube-coin", decimals: 2, price: 0.03596631}, // Addr: 0xd2be3722b17b616c51ed9b8944a227d1ce579c24, Notional: 0.03596631 - {chain: 2, addr: "000000000000000000000000c97d6c52f3add91fa1c5287a453d7444aecbca83", symbol: "DZOO", coinGeckoId: "degen-zoo", decimals: 18, price: 0.00854318}, // Addr: 0xc97d6c52f3add91fa1c5287a453d7444aecbca83, Notional: 2469.159933275305 - {chain: 2, addr: "000000000000000000000000e3818504c1b32bf1557b16c238b2e01fd3149c17", symbol: "PLR", coinGeckoId: "pillar", decimals: 18, price: 0.00468478}, // Addr: 0xe3818504c1b32bf1557b16c238b2e01fd3149c17, Notional: 5.052487696676143 - {chain: 2, addr: "0000000000000000000000007968bc6a03017ea2de509aaa816f163db0f35148", symbol: "HGET", coinGeckoId: "hedget", decimals: 6, price: 0.077136}, // Addr: 0x7968bc6a03017ea2de509aaa816f163db0f35148, Notional: 1248.5678711974078 - {chain: 2, addr: "000000000000000000000000da9fdab21bc4a5811134a6e0ba6ca06624e67c07", symbol: "QUIDD", coinGeckoId: "quidd", decimals: 18, price: 0.01450853}, // Addr: 0xda9fdab21bc4a5811134a6e0ba6ca06624e67c07, Notional: 539.20951745 - {chain: 2, addr: "00000000000000000000000021381e026ad6d8266244f2a583b35f9e4413fa2a", symbol: "FORM", coinGeckoId: "formation-fi", decimals: 18, price: 0.00093043}, // Addr: 0x21381e026ad6d8266244f2a583b35f9e4413fa2a, Notional: 325.02681339852626 - {chain: 2, addr: "000000000000000000000000514910771af9ca656af840dff83e8264ecf986ca", symbol: "LINK", coinGeckoId: "chainlink", decimals: 18, price: 12.9}, // Addr: 0x514910771af9ca656af840dff83e8264ecf986ca, Notional: 2074213.942821828 - {chain: 2, addr: "0000000000000000000000008353b92201f19b4812eee32efd325f7ede123718", symbol: "SCM", coinGeckoId: "scamfari", decimals: 18, price: 0.00010005}, // Addr: 0x8353b92201f19b4812eee32efd325f7ede123718, Notional: 2002.10055 - {chain: 2, addr: "0000000000000000000000008f006d1e1d9dc6c98996f50a4c810f17a47fbf19", symbol: "NSFW", coinGeckoId: "pleasure-coin", decimals: 18, price: 0.0000504}, // Addr: 0x8f006d1e1d9dc6c98996f50a4c810f17a47fbf19, Notional: 0.000002601821376 - {chain: 2, addr: "000000000000000000000000b19dd661f076998e3b0456935092a233e12c2280", symbol: "UM", coinGeckoId: "continuum-world", decimals: 18, price: 0.00030881}, // Addr: 0xb19dd661f076998e3b0456935092a233e12c2280, Notional: 0.8261713096752663 - {chain: 2, addr: "000000000000000000000000c477d038d5420c6a9e0b031712f61c5120090de9", symbol: "BOSON", coinGeckoId: "boson-protocol", decimals: 18, price: 0.528977}, // Addr: 0xc477d038d5420c6a9e0b031712f61c5120090de9, Notional: 524.0341724777786 - {chain: 2, addr: "000000000000000000000000c00e94cb662c3520282e6f5717214004a7f26888", symbol: "COMP", coinGeckoId: "compound-governance-token", decimals: 18, price: 52.53}, // Addr: 0xc00e94cb662c3520282e6f5717214004a7f26888, Notional: 261753.9919989099 - {chain: 2, addr: "0000000000000000000000000e186357c323c806c1efdad36d217f7a54b63d18", symbol: "CGT2.0", coinGeckoId: "curio-gas-token", decimals: 18, price: 0.01956568}, // Addr: 0x0e186357c323c806c1efdad36d217f7a54b63d18, Notional: 435200.6242476868 - {chain: 2, addr: "000000000000000000000000054d64b73d3d8a21af3d764efd76bcaa774f3bb2", symbol: "PPAY", coinGeckoId: "plasma-finance", decimals: 18, price: 0.001265}, // Addr: 0x054d64b73d3d8a21af3d764efd76bcaa774f3bb2, Notional: 9380.57847191043 - {chain: 2, addr: "000000000000000000000000bba39fd2935d5769116ce38d46a71bde9cf03099", symbol: "CHO", coinGeckoId: "choise", decimals: 18, price: 0.086496}, // Addr: 0xbba39fd2935d5769116ce38d46a71bde9cf03099, Notional: 296070.1004979684 - {chain: 2, addr: "00000000000000000000000099d8a9c45b2eca8864373a26d1459e3dff1e17f3", symbol: "MIM", coinGeckoId: "magic-internet-money", decimals: 18, price: 0.995794}, // Addr: 0x99d8a9c45b2eca8864373a26d1459e3dff1e17f3, Notional: 471.4029925355776 - {chain: 2, addr: "000000000000000000000000fc05987bd2be489accf0f509e44b0145d68240f7", symbol: "ESS", coinGeckoId: "essentia", decimals: 18, price: 0.00034062}, // Addr: 0xfc05987bd2be489accf0f509e44b0145d68240f7, Notional: 0.00034062 - {chain: 2, addr: "00000000000000000000000020e7125677311fca903a8897042b9983f22ea295", symbol: "FWT", coinGeckoId: "freeway", decimals: 18, price: 0.00005126}, // Addr: 0x20e7125677311fca903a8897042b9983f22ea295, Notional: 0.0029792873691702 + {chain: 2, addr: "000000000000000000000000fad45e47083e4607302aa43c65fb3106f1cd7607", symbol: "HOGE", coinGeckoId: "hoge-finance", decimals: 9, price: 0.0000162}, // Addr: 0xfad45e47083e4607302aa43c65fb3106f1cd7607, Notional: 842.4734208184362 + {chain: 2, addr: "000000000000000000000000c4170fd71eced3c80badca77f4e12e8aac1e3436", symbol: "KMON", coinGeckoId: "kryptomon", decimals: 18, price: 0.00146636}, // Addr: 0xc4170fd71eced3c80badca77f4e12e8aac1e3436, Notional: 173007.31621305872 + {chain: 2, addr: "0000000000000000000000005da151b95657e788076d04d56234bd93e409cb09", symbol: "OTSea", coinGeckoId: "otsea", decimals: 18, price: 0.01299594}, // Addr: 0x5da151b95657e788076d04d56234bd93e409cb09, Notional: 72213.74634207592 + {chain: 2, addr: "00000000000000000000000072e4f9f808c49a2a61de9c5896298920dc4eeea9", symbol: "BITCOIN", coinGeckoId: "harrypotterobamasonic10in", decimals: 8, price: 0.108185}, // Addr: 0x72e4f9f808c49a2a61de9c5896298920dc4eeea9, Notional: 636.5672093596701 + {chain: 2, addr: "0000000000000000000000006b66ccd1340c479b07b390d326eadcbb84e726ba", symbol: "SEAM", coinGeckoId: "seamless-protocol", decimals: 18, price: 1.75}, // Addr: 0x6b66ccd1340c479b07b390d326eadcbb84e726ba, Notional: 17.5 + {chain: 2, addr: "0000000000000000000000009fda7ceec4c18008096c2fe2b85f05dc300f94d0", symbol: "GAJ", coinGeckoId: "gaj", decimals: 18, price: 0.00443422}, // Addr: 0x9fda7ceec4c18008096c2fe2b85f05dc300f94d0, Notional: 25.66755724567081 + {chain: 2, addr: "000000000000000000000000aaaebe6fe48e54f431b0c390cfaf0b017d09d42d", symbol: "CEL", coinGeckoId: "celsius-degree-token", decimals: 4, price: 0.191129}, // Addr: 0xaaaebe6fe48e54f431b0c390cfaf0b017d09d42d, Notional: 6017.3534119934 + {chain: 2, addr: "00000000000000000000000098585dfc8d9e7d48f0b1ae47ce33332cf4237d96", symbol: "NEWO", coinGeckoId: "new-order", decimals: 18, price: 0.00483536}, // Addr: 0x98585dfc8d9e7d48f0b1ae47ce33332cf4237d96, Notional: 827967.2847784817 + {chain: 2, addr: "00000000000000000000000046cca329970b33e1a007dd4ef0594a1cedb3e72a", symbol: "YESP", coinGeckoId: "yesports", decimals: 18, price: 0.00023004}, // Addr: 0x46cca329970b33e1a007dd4ef0594a1cedb3e72a, Notional: 37.613919441744 + {chain: 2, addr: "00000000000000000000000030d20208d987713f46dfd34ef128bb16c404d10f", symbol: "SD", coinGeckoId: "stader", decimals: 18, price: 0.611919}, // Addr: 0x30d20208d987713f46dfd34ef128bb16c404d10f, Notional: 376146.4285587761 + {chain: 2, addr: "0000000000000000000000009b83f827928abdf18cf1f7e67053572b9bceff3a", symbol: "ARTEM", coinGeckoId: "artem", decimals: 18, price: 0.00400835}, // Addr: 0x9b83f827928abdf18cf1f7e67053572b9bceff3a, Notional: 43952.201831445214 + {chain: 2, addr: "0000000000000000000000000763fdccf1ae541a5961815c0872a8c5bc6de4d7", symbol: "SUKU", coinGeckoId: "suku", decimals: 18, price: 0.068896}, // Addr: 0x0763fdccf1ae541a5961815c0872a8c5bc6de4d7, Notional: 1.62173138462912 + {chain: 2, addr: "00000000000000000000000069a95185ee2a045cdc4bcd1b1df10710395e4e23", symbol: "POOLZ", coinGeckoId: "poolz-finance", decimals: 18, price: 0.0143998}, // Addr: 0x69a95185ee2a045cdc4bcd1b1df10710395e4e23, Notional: 0.1267470396 + {chain: 2, addr: "000000000000000000000000a150db9b1fa65b44799d4dd949d922c0a33ee606", symbol: "DRC", coinGeckoId: "digital-reserve-currency", decimals: 0, price: 0.00016611}, // Addr: 0xa150db9b1fa65b44799d4dd949d922c0a33ee606, Notional: 5.08877985 + {chain: 2, addr: "0000000000000000000000007659ce147d0e714454073a5dd7003544234b6aa0", symbol: "XCAD", coinGeckoId: "xcad-network", decimals: 18, price: 0.354335}, // Addr: 0x7659ce147d0e714454073a5dd7003544234b6aa0, Notional: 4534149.4947675485 + {chain: 2, addr: "000000000000000000000000a31b1767e09f842ecfd4bc471fe44f830e3891aa", symbol: "ROOBEE", coinGeckoId: "roobee", decimals: 18, price: 0.00043376}, // Addr: 0xa31b1767e09f842ecfd4bc471fe44f830e3891aa, Notional: 19.4560148227648 + {chain: 2, addr: "00000000000000000000000005d3606d5c81eb9b7b18530995ec9b29da05faba", symbol: "TOMOE", coinGeckoId: "tomoe", decimals: 18, price: 0.339307}, // Addr: 0x05d3606d5c81eb9b7b18530995ec9b29da05faba, Notional: 33930.700000000004 + {chain: 2, addr: "0000000000000000000000002c95d751da37a5c1d9c5a7fd465c1d50f3d96160", symbol: "WASSIE", coinGeckoId: "wassie", decimals: 18, price: 0.0000018}, // Addr: 0x2c95d751da37a5c1d9c5a7fd465c1d50f3d96160, Notional: 119086.40755292821 + {chain: 2, addr: "000000000000000000000000cd5fe23c85820f7b72d0926fc9b05b43e359b7ee", symbol: "weETH", coinGeckoId: "wrapped-eeth", decimals: 18, price: 2783}, // Addr: 0xcd5fe23c85820f7b72d0926fc9b05b43e359b7ee, Notional: 1117757.0252146102 + {chain: 2, addr: "000000000000000000000000762fcf5183ae366c0629d0bcd30b40f331496d0f", symbol: "DICE", coinGeckoId: "dice-bot", decimals: 18, price: 0.00010667}, // Addr: 0x762fcf5183ae366c0629d0bcd30b40f331496d0f, Notional: 0.10666999999999999 + {chain: 2, addr: "0000000000000000000000002ad9addd0d97ec3cdba27f92bf6077893b76ab0b", symbol: "PLANET", coinGeckoId: "planet-token", decimals: 18, price: 0.00000589}, // Addr: 0x2ad9addd0d97ec3cdba27f92bf6077893b76ab0b, Notional: 216137.2537971445 + {chain: 2, addr: "0000000000000000000000009609b540e5dedddb147abbf9812ade06b1e61b2c", symbol: "MICKEY", coinGeckoId: "steamboat-willie", decimals: 18, price: 0.00031138}, // Addr: 0x9609b540e5dedddb147abbf9812ade06b1e61b2c, Notional: 37022.56114229838 + {chain: 2, addr: "000000000000000000000000bb0e17ef65f82ab018d8edd776e8dd940327b28b", symbol: "AXS", coinGeckoId: "axie-infinity", decimals: 18, price: 4.72}, // Addr: 0xbb0e17ef65f82ab018d8edd776e8dd940327b28b, Notional: 6266.1959942176 + {chain: 2, addr: "000000000000000000000000e74dc43867e0cbeb208f1a012fc60dcbbf0e3044", symbol: "CWAP", coinGeckoId: "defire", decimals: 18, price: 0.00947309}, // Addr: 0xe74dc43867e0cbeb208f1a012fc60dcbbf0e3044, Notional: 0.01894618 + {chain: 2, addr: "0000000000000000000000005488eff1976e4a56b4255e926d419a7054df196a", symbol: "CITTY", coinGeckoId: "citty-meme-coin", decimals: 18, price: 0.00253508}, // Addr: 0x5488eff1976e4a56b4255e926d419a7054df196a, Notional: 634.0590293619833 + {chain: 2, addr: "000000000000000000000000fb5c6815ca3ac72ce9f5006869ae67f18bf77006", symbol: "PSTAKE", coinGeckoId: "pstake-finance", decimals: 18, price: 0.076533}, // Addr: 0xfb5c6815ca3ac72ce9f5006869ae67f18bf77006, Notional: 83.76536850000001 + {chain: 2, addr: "000000000000000000000000a47c8bf37f92abed4a126bda807a7b7498661acd", symbol: "UST", coinGeckoId: "wrapped-ust", decimals: 18, price: 0.01610185}, // Addr: 0xa47c8bf37f92abed4a126bda807a7b7498661acd, Notional: 5.52656127385447 + {chain: 2, addr: "0000000000000000000000001a6658f40e51b372e593b7d2144c1402d5cf33e8", symbol: "PUBLX", coinGeckoId: "publc", decimals: 18, price: 0.00077701}, // Addr: 0x1a6658f40e51b372e593b7d2144c1402d5cf33e8, Notional: 13443.276244664192 + {chain: 2, addr: "000000000000000000000000362bc847a3a9637d3af6624eec853618a43ed7d2", symbol: "PRQ", coinGeckoId: "parsiq", decimals: 18, price: 0.062501}, // Addr: 0x362bc847a3a9637d3af6624eec853618a43ed7d2, Notional: 76.323322528622 + {chain: 2, addr: "000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec7", symbol: "USDT", coinGeckoId: "tether", decimals: 6, price: 0.999545}, // Addr: 0xdac17f958d2ee523a2206206994597c13d831ec7, Notional: 119136189.45604956 + {chain: 2, addr: "00000000000000000000000000e679ba63b509182c349f5614f0a07cdd0ce0c5", symbol: "DAMEX", coinGeckoId: "damex-token", decimals: 18, price: 0.01902351}, // Addr: 0x00e679ba63b509182c349f5614f0a07cdd0ce0c5, Notional: 11.414106 + {chain: 2, addr: "00000000000000000000000021bfbda47a0b4b5b1248c767ee49f7caa9b23697", symbol: "OVR", coinGeckoId: "ovr", decimals: 18, price: 0.153536}, // Addr: 0x21bfbda47a0b4b5b1248c767ee49f7caa9b23697, Notional: 23.0304 + {chain: 2, addr: "000000000000000000000000389999216860ab8e0175387a0c90e5c52522c945", symbol: "FEG", coinGeckoId: "feg-token", decimals: 9, price: 3.21888e-10}, // Addr: 0x389999216860ab8e0175387a0c90e5c52522c945, Notional: 3.025747206309012 + {chain: 2, addr: "0000000000000000000000009be89d2a4cd102d8fecc6bf9da793be995c22541", symbol: "BBTC", coinGeckoId: "binance-wrapped-btc", decimals: 8, price: 58427}, // Addr: 0x9be89d2a4cd102d8fecc6bf9da793be995c22541, Notional: 1243.91375135 + {chain: 2, addr: "0000000000000000000000006b4c7a5e3f0b99fcd83e9c089bddd6c7fce5c611", symbol: "MM", coinGeckoId: "million", decimals: 18, price: 1.3}, // Addr: 0x6b4c7a5e3f0b99fcd83e9c089bddd6c7fce5c611, Notional: 7392.79196149 + {chain: 2, addr: "000000000000000000000000582d872a1b094fc48f5de31d3b73f2d9be47def1", symbol: "TONCOIN", coinGeckoId: "the-open-network", decimals: 9, price: 6.9}, // Addr: 0x582d872a1b094fc48f5de31d3b73f2d9be47def1, Notional: 4804.676916648 + {chain: 2, addr: "000000000000000000000000394a16744dcd805bb0ca7252e70691f0dcac56aa", symbol: "TRZ", coinGeckoId: "trazable", decimals: 18, price: 0.00049323}, // Addr: 0x394a16744dcd805bb0ca7252e70691f0dcac56aa, Notional: 23.005014349980982 + {chain: 2, addr: "00000000000000000000000004969cd041c0cafb6ac462bd65b536a5bdb3a670", symbol: "wOMI", coinGeckoId: "wrapped-ecomi", decimals: 18, price: 0.00050768}, // Addr: 0x04969cd041c0cafb6ac462bd65b536a5bdb3a670, Notional: 9.531537409048829 + {chain: 2, addr: "000000000000000000000000d2be3722b17b616c51ed9b8944a227d1ce579c24", symbol: "DTUBE", coinGeckoId: "dtube-coin", decimals: 2, price: 0.02912501}, // Addr: 0xd2be3722b17b616c51ed9b8944a227d1ce579c24, Notional: 0.02912501 + {chain: 2, addr: "000000000000000000000000c97d6c52f3add91fa1c5287a453d7444aecbca83", symbol: "DZOO", coinGeckoId: "degen-zoo", decimals: 18, price: 0.00495831}, // Addr: 0xc97d6c52f3add91fa1c5287a453d7444aecbca83, Notional: 1455.954490314672 + {chain: 2, addr: "000000000000000000000000e3818504c1b32bf1557b16c238b2e01fd3149c17", symbol: "PLR", coinGeckoId: "pillar", decimals: 18, price: 0.00371757}, // Addr: 0xe3818504c1b32bf1557b16c238b2e01fd3149c17, Notional: 4.009361525307982 + {chain: 2, addr: "0000000000000000000000007968bc6a03017ea2de509aaa816f163db0f35148", symbol: "HGET", coinGeckoId: "hedget", decimals: 6, price: 0.10007}, // Addr: 0x7968bc6a03017ea2de509aaa816f163db0f35148, Notional: 1619.7908482514601 + {chain: 2, addr: "000000000000000000000000da9fdab21bc4a5811134a6e0ba6ca06624e67c07", symbol: "QUIDD", coinGeckoId: "quidd", decimals: 18, price: 0.01160605}, // Addr: 0xda9fdab21bc4a5811134a6e0ba6ca06624e67c07, Notional: 431.33884825 + {chain: 2, addr: "00000000000000000000000021381e026ad6d8266244f2a583b35f9e4413fa2a", symbol: "FORM", coinGeckoId: "formation-fi", decimals: 18, price: 0.00014757}, // Addr: 0x21381e026ad6d8266244f2a583b35f9e4413fa2a, Notional: 51.5505807564465 + {chain: 2, addr: "000000000000000000000000514910771af9ca656af840dff83e8264ecf986ca", symbol: "LINK", coinGeckoId: "chainlink", decimals: 18, price: 10.39}, // Addr: 0x514910771af9ca656af840dff83e8264ecf986ca, Notional: 171872.5561037386 + {chain: 2, addr: "000000000000000000000000667102bd3413bfeaa3dffb48fa8288819e480a88", symbol: "TKX", coinGeckoId: "tokenize-xchange", decimals: 8, price: 8.45}, // Addr: 0x667102bd3413bfeaa3dffb48fa8288819e480a88, Notional: 253.49999999999997 + {chain: 2, addr: "0000000000000000000000008353b92201f19b4812eee32efd325f7ede123718", symbol: "SCM", coinGeckoId: "scamfari", decimals: 18, price: 0.00000989}, // Addr: 0x8353b92201f19b4812eee32efd325f7ede123718, Notional: 197.90879 + {chain: 2, addr: "0000000000000000000000008f006d1e1d9dc6c98996f50a4c810f17a47fbf19", symbol: "NSFW", coinGeckoId: "pleasure-coin", decimals: 18, price: 0.00001898}, // Addr: 0x8f006d1e1d9dc6c98996f50a4c810f17a47fbf19, Notional: 0.00014198358673460002 + {chain: 2, addr: "000000000000000000000000b19dd661f076998e3b0456935092a233e12c2280", symbol: "UM", coinGeckoId: "continuum-world", decimals: 18, price: 0.00027618}, // Addr: 0xb19dd661f076998e3b0456935092a233e12c2280, Notional: 0.7388750115155437 + {chain: 2, addr: "000000000000000000000000c477d038d5420c6a9e0b031712f61c5120090de9", symbol: "BOSON", coinGeckoId: "boson-protocol", decimals: 18, price: 0.262768}, // Addr: 0xc477d038d5420c6a9e0b031712f61c5120090de9, Notional: 260.3126628069669 + {chain: 2, addr: "000000000000000000000000c00e94cb662c3520282e6f5717214004a7f26888", symbol: "COMP", coinGeckoId: "compound-governance-token", decimals: 18, price: 44.8}, // Addr: 0xc00e94cb662c3520282e6f5717214004a7f26888, Notional: 223235.843166784 + {chain: 2, addr: "0000000000000000000000000e186357c323c806c1efdad36d217f7a54b63d18", symbol: "CGT2.0", coinGeckoId: "curio-gas-token", decimals: 18, price: 0.0151957}, // Addr: 0x0e186357c323c806c1efdad36d217f7a54b63d18, Notional: 348154.09642701613 + {chain: 2, addr: "000000000000000000000000054d64b73d3d8a21af3d764efd76bcaa774f3bb2", symbol: "PPAY", coinGeckoId: "plasma-finance", decimals: 18, price: 0.00059868}, // Addr: 0x054d64b73d3d8a21af3d764efd76bcaa774f3bb2, Notional: 5702.627464436051 + {chain: 2, addr: "00000000000000000000000068bbed6a47194eff1cf514b50ea91895597fc91e", symbol: "ANDY", coinGeckoId: "andy-the-wisguy", decimals: 18, price: 0.00007412}, // Addr: 0x68bbed6a47194eff1cf514b50ea91895597fc91e, Notional: 129.64604238612057 + {chain: 2, addr: "000000000000000000000000bba39fd2935d5769116ce38d46a71bde9cf03099", symbol: "CHO", coinGeckoId: "choise", decimals: 18, price: 0.01918666}, // Addr: 0xbba39fd2935d5769116ce38d46a71bde9cf03099, Notional: 217663.03442650795 + {chain: 2, addr: "00000000000000000000000099d8a9c45b2eca8864373a26d1459e3dff1e17f3", symbol: "MIM", coinGeckoId: "magic-internet-money", decimals: 18, price: 1.001}, // Addr: 0x99d8a9c45b2eca8864373a26d1459e3dff1e17f3, Notional: 473.86748215806995 + {chain: 2, addr: "000000000000000000000000fc05987bd2be489accf0f509e44b0145d68240f7", symbol: "ESS", coinGeckoId: "essentia", decimals: 18, price: 0.00019213}, // Addr: 0xfc05987bd2be489accf0f509e44b0145d68240f7, Notional: 0.00019213 + {chain: 2, addr: "00000000000000000000000020e7125677311fca903a8897042b9983f22ea295", symbol: "FWT", coinGeckoId: "freeway", decimals: 18, price: 0.00005171}, // Addr: 0x20e7125677311fca903a8897042b9983f22ea295, Notional: 0.0030054418622666996 {chain: 2, addr: "000000000000000000000000309627af60f0926daa6041b8279484312f2bf060", symbol: "USDB", coinGeckoId: "usd-bancor", decimals: 18, price: 4.827e-9}, // Addr: 0x309627af60f0926daa6041b8279484312f2bf060, Notional: 0.00000246177 - {chain: 2, addr: "00000000000000000000000095ad61b0a150d79219dcf64e1e6cc01f0b64c4ce", symbol: "SHIB", coinGeckoId: "shiba-inu", decimals: 18, price: 0.00002119}, // Addr: 0x95ad61b0a150d79219dcf64e1e6cc01f0b64c4ce, Notional: 161146.41244069117 - {chain: 2, addr: "000000000000000000000000f16e81dce15b08f326220742020379b855b87df9", symbol: "ICE", coinGeckoId: "ice-token", decimals: 18, price: 0.560646}, // Addr: 0xf16e81dce15b08f326220742020379b855b87df9, Notional: 415.6982893066943 - {chain: 2, addr: "000000000000000000000000490e3f4af13e1616ec97a8c6600c1061a8d0253e", symbol: "TRR", coinGeckoId: "terran-coin", decimals: 18, price: 0.00974886}, // Addr: 0x490e3f4af13e1616ec97a8c6600c1061a8d0253e, Notional: 25.834478999999998 - {chain: 2, addr: "0000000000000000000000006b0b3a982b4634ac68dd83a4dbf02311ce324181", symbol: "ALI", coinGeckoId: "alethea-artificial-liquid-intelligence-token", decimals: 18, price: 0.01858818}, // Addr: 0x6b0b3a982b4634ac68dd83a4dbf02311ce324181, Notional: 0.0022948368488604 + {chain: 2, addr: "00000000000000000000000095ad61b0a150d79219dcf64e1e6cc01f0b64c4ce", symbol: "SHIB", coinGeckoId: "shiba-inu", decimals: 18, price: 0.00001361}, // Addr: 0x95ad61b0a150d79219dcf64e1e6cc01f0b64c4ce, Notional: 101686.05099451366 + {chain: 2, addr: "000000000000000000000000f16e81dce15b08f326220742020379b855b87df9", symbol: "ICE", coinGeckoId: "ice-token", decimals: 18, price: 0.229118}, // Addr: 0xf16e81dce15b08f326220742020379b855b87df9, Notional: 169.88252952731523 + {chain: 2, addr: "000000000000000000000000490e3f4af13e1616ec97a8c6600c1061a8d0253e", symbol: "TRR", coinGeckoId: "terran-coin", decimals: 18, price: 0.00355545}, // Addr: 0x490e3f4af13e1616ec97a8c6600c1061a8d0253e, Notional: 9.4219425 + {chain: 2, addr: "0000000000000000000000006b0b3a982b4634ac68dd83a4dbf02311ce324181", symbol: "ALI", coinGeckoId: "alethea-artificial-liquid-intelligence-token", decimals: 18, price: 0.0107481}, // Addr: 0x6b0b3a982b4634ac68dd83a4dbf02311ce324181, Notional: 0.001326925817118 {chain: 2, addr: "0000000000000000000000003d371413dd5489f3a04c07c0c2ce369c20986ceb", symbol: "YOUC", coinGeckoId: "youcash", decimals: 10, price: 0.088049}, // Addr: 0x3d371413dd5489f3a04c07c0c2ce369c20986ceb, Notional: 2175.3365802163526 - {chain: 2, addr: "0000000000000000000000000ab87046fbb341d058f17cbc4c1133f25a20a52f", symbol: "gOHM", coinGeckoId: "governance-ohm", decimals: 18, price: 3266.92}, // Addr: 0x0ab87046fbb341d058f17cbc4c1133f25a20a52f, Notional: 546.3528075988 - {chain: 2, addr: "00000000000000000000000040d1f63b5d2048e67e9bedb1b4c2f1a9fb4b6817", symbol: "GOLD", coinGeckoId: "golden-goose", decimals: 18, price: 0.00004006}, // Addr: 0x40d1f63b5d2048e67e9bedb1b4c2f1a9fb4b6817, Notional: 0.000029341947 - {chain: 2, addr: "0000000000000000000000008c223a82e07fecb49d602150d7c2b3a4c9630310", symbol: "NFTE", coinGeckoId: "nftearth", decimals: 18, price: 0.00000465}, // Addr: 0x8c223a82e07fecb49d602150d7c2b3a4c9630310, Notional: 0.0033063514989615005 - {chain: 2, addr: "00000000000000000000000072b886d09c117654ab7da13a14d603001de0b777", symbol: "XDEFI", coinGeckoId: "xdefi", decimals: 18, price: 0.082818}, // Addr: 0x72b886d09c117654ab7da13a14d603001de0b777, Notional: 227777.06073346568 - {chain: 2, addr: "00000000000000000000000003ab458634910aad20ef5f1c8ee96f1d6ac54919", symbol: "RAI", coinGeckoId: "rai", decimals: 18, price: 2.82}, // Addr: 0x03ab458634910aad20ef5f1c8ee96f1d6ac54919, Notional: 8.459999999999999 - {chain: 2, addr: "00000000000000000000000018084fba666a33d37592fa2633fd49a74dd93a88", symbol: "tBTC", coinGeckoId: "tbtc", decimals: 18, price: 57559}, // Addr: 0x18084fba666a33d37592fa2633fd49a74dd93a88, Notional: 17175672.31606131 - {chain: 2, addr: "000000000000000000000000221657776846890989a759ba2973e427dff5c9bb", symbol: "REPv2", coinGeckoId: "augur", decimals: 18, price: 0.823925}, // Addr: 0x221657776846890989a759ba2973e427dff5c9bb, Notional: 0.823925 - {chain: 2, addr: "0000000000000000000000009fa69536d1cda4a04cfb50688294de75b505a9ae", symbol: "DERC", coinGeckoId: "derace", decimals: 18, price: 0.24856}, // Addr: 0x9fa69536d1cda4a04cfb50688294de75b505a9ae, Notional: 24.856 - {chain: 2, addr: "000000000000000000000000471ea49dd8e60e697f4cac262b5fafcc307506e4", symbol: "xcRMRK", coinGeckoId: "rmrk", decimals: 10, price: 1.37}, // Addr: 0x471ea49dd8e60e697f4cac262b5fafcc307506e4, Notional: 1.3705382319000001 - {chain: 2, addr: "00000000000000000000000087edffde3e14c7a66c9b9724747a1c5696b742e6", symbol: "SWAG", coinGeckoId: "swag-finance", decimals: 18, price: 0.00730697}, // Addr: 0x87edffde3e14c7a66c9b9724747a1c5696b742e6, Notional: 73.07700697 - {chain: 2, addr: "000000000000000000000000f99d58e463a2e07e5692127302c20a191861b4d6", symbol: "ANY", coinGeckoId: "anyswap", decimals: 18, price: 1.8}, // Addr: 0xf99d58e463a2e07e5692127302c20a191861b4d6, Notional: 10.61760843 - {chain: 2, addr: "000000000000000000000000de4ee8057785a7e8e800db58f9784845a5c2cbd6", symbol: "DEXE", coinGeckoId: "dexe", decimals: 18, price: 11.6}, // Addr: 0xde4ee8057785a7e8e800db58f9784845a5c2cbd6, Notional: 270015486.1742116 - {chain: 2, addr: "000000000000000000000000f629cbd94d3791c9250152bd8dfbdf380e2a3b9c", symbol: "ENJ", coinGeckoId: "enjincoin", decimals: 18, price: 0.282109}, // Addr: 0xf629cbd94d3791c9250152bd8dfbdf380e2a3b9c, Notional: 537.21852400453 - {chain: 2, addr: "0000000000000000000000006adb2e268de2aa1abf6578e4a8119b960e02928f", symbol: "ShibDoge", coinGeckoId: "shibadoge", decimals: 9, price: 3.3e-17}, // Addr: 0x6adb2e268de2aa1abf6578e4a8119b960e02928f, Notional: 7.769760488489998e-7 - {chain: 2, addr: "000000000000000000000000595832f8fc6bf59c85c527fec3740a1b7a361269", symbol: "POWR", coinGeckoId: "power-ledger", decimals: 6, price: 0.273193}, // Addr: 0x595832f8fc6bf59c85c527fec3740a1b7a361269, Notional: 2595.3335 - {chain: 2, addr: "00000000000000000000000022c5543d1a35178cb03b33f929a959145e538532", symbol: "WAL", coinGeckoId: "the-wasted-lands", decimals: 18, price: 0.00021312}, // Addr: 0x22c5543d1a35178cb03b33f929a959145e538532, Notional: 0.2812953355014528 - {chain: 2, addr: "00000000000000000000000032353a6c91143bfd6c7d363b546e62a9a2489a20", symbol: "AGLD", coinGeckoId: "adventure-gold", decimals: 18, price: 1.011}, // Addr: 0x32353a6c91143bfd6c7d363b546e62a9a2489a20, Notional: 7.6047664055399995 + {chain: 2, addr: "0000000000000000000000000ab87046fbb341d058f17cbc4c1133f25a20a52f", symbol: "gOHM", coinGeckoId: "governance-ohm", decimals: 18, price: 3769.81}, // Addr: 0x0ab87046fbb341d058f17cbc4c1133f25a20a52f, Notional: 630.4550701009 + {chain: 2, addr: "00000000000000000000000040d1f63b5d2048e67e9bedb1b4c2f1a9fb4b6817", symbol: "GOLD", coinGeckoId: "golden-goose", decimals: 18, price: 0.0000623}, // Addr: 0x40d1f63b5d2048e67e9bedb1b4c2f1a9fb4b6817, Notional: 0.000045631635 + {chain: 2, addr: "0000000000000000000000008c223a82e07fecb49d602150d7c2b3a4c9630310", symbol: "NFTE", coinGeckoId: "nftearth", decimals: 18, price: 0.00005538}, // Addr: 0x8c223a82e07fecb49d602150d7c2b3a4c9630310, Notional: 0.0393775797876318 + {chain: 2, addr: "00000000000000000000000072b886d09c117654ab7da13a14d603001de0b777", symbol: "XDEFI", coinGeckoId: "xdefi", decimals: 18, price: 0.073752}, // Addr: 0x72b886d09c117654ab7da13a14d603001de0b777, Notional: 202842.48386846698 + {chain: 2, addr: "00000000000000000000000003ab458634910aad20ef5f1c8ee96f1d6ac54919", symbol: "RAI", coinGeckoId: "rai", decimals: 18, price: 2.99}, // Addr: 0x03ab458634910aad20ef5f1c8ee96f1d6ac54919, Notional: 8.97 + {chain: 2, addr: "00000000000000000000000018084fba666a33d37592fa2633fd49a74dd93a88", symbol: "tBTC", coinGeckoId: "tbtc", decimals: 18, price: 58729}, // Addr: 0x18084fba666a33d37592fa2633fd49a74dd93a88, Notional: 16868277.71847647 + {chain: 2, addr: "000000000000000000000000221657776846890989a759ba2973e427dff5c9bb", symbol: "REPv2", coinGeckoId: "augur", decimals: 18, price: 0.389324}, // Addr: 0x221657776846890989a759ba2973e427dff5c9bb, Notional: 0.389324 + {chain: 2, addr: "0000000000000000000000009fa69536d1cda4a04cfb50688294de75b505a9ae", symbol: "DERC", coinGeckoId: "derace", decimals: 18, price: 0.13497}, // Addr: 0x9fa69536d1cda4a04cfb50688294de75b505a9ae, Notional: 13.497 + {chain: 2, addr: "000000000000000000000000471ea49dd8e60e697f4cac262b5fafcc307506e4", symbol: "xcRMRK", coinGeckoId: "rmrk", decimals: 10, price: 0.396332}, // Addr: 0x471ea49dd8e60e697f4cac262b5fafcc307506e4, Notional: 0.39648770695284 + {chain: 2, addr: "00000000000000000000000087edffde3e14c7a66c9b9724747a1c5696b742e6", symbol: "SWAG", coinGeckoId: "swag-finance", decimals: 18, price: 0.00695009}, // Addr: 0x87edffde3e14c7a66c9b9724747a1c5696b742e6, Notional: 69.50785009 + {chain: 2, addr: "000000000000000000000000f99d58e463a2e07e5692127302c20a191861b4d6", symbol: "ANY", coinGeckoId: "anyswap", decimals: 18, price: 2.02}, // Addr: 0xf99d58e463a2e07e5692127302c20a191861b4d6, Notional: 11.915316127 + {chain: 2, addr: "000000000000000000000000de4ee8057785a7e8e800db58f9784845a5c2cbd6", symbol: "DEXE", coinGeckoId: "dexe", decimals: 18, price: 7.58}, // Addr: 0xde4ee8057785a7e8e800db58f9784845a5c2cbd6, Notional: 176594130.42746466 + {chain: 2, addr: "000000000000000000000000f629cbd94d3791c9250152bd8dfbdf380e2a3b9c", symbol: "ENJ", coinGeckoId: "enjincoin", decimals: 18, price: 0.135915}, // Addr: 0xf629cbd94d3791c9250152bd8dfbdf380e2a3b9c, Notional: 258.82214211555 + {chain: 2, addr: "0000000000000000000000006adb2e268de2aa1abf6578e4a8119b960e02928f", symbol: "ShibDoge", coinGeckoId: "shibadoge", decimals: 9, price: 3.4e-17}, // Addr: 0x6adb2e268de2aa1abf6578e4a8119b960e02928f, Notional: 8.005207776019999e-7 + {chain: 2, addr: "000000000000000000000000595832f8fc6bf59c85c527fec3740a1b7a361269", symbol: "POWR", coinGeckoId: "power-ledger", decimals: 6, price: 0.19391}, // Addr: 0x595832f8fc6bf59c85c527fec3740a1b7a361269, Notional: 1842.145 + {chain: 2, addr: "00000000000000000000000022c5543d1a35178cb03b33f929a959145e538532", symbol: "WAL", coinGeckoId: "the-wasted-lands", decimals: 18, price: 0.0001254}, // Addr: 0x22c5543d1a35178cb03b33f929a959145e538532, Notional: 0.16551442882827602 + {chain: 2, addr: "00000000000000000000000032353a6c91143bfd6c7d363b546e62a9a2489a20", symbol: "AGLD", coinGeckoId: "adventure-gold", decimals: 18, price: 0.749274}, // Addr: 0x32353a6c91143bfd6c7d363b546e62a9a2489a20, Notional: 5.63605711547436 {chain: 2, addr: "00000000000000000000000056b4f8c39e07d4d5d91692acf9d0f6d4d3493763", symbol: "TRISM", coinGeckoId: "trism", decimals: 18, price: 0.00052052}, // Addr: 0x56b4f8c39e07d4d5d91692acf9d0f6d4d3493763, Notional: 8.681387859739393 - {chain: 2, addr: "000000000000000000000000f2fdd9c25d7bc8002ce89716d1be484b2d976944", symbol: "𝕏PAY", coinGeckoId: "payments", decimals: 18, price: 0.00081258}, // Addr: 0xf2fdd9c25d7bc8002ce89716d1be484b2d976944, Notional: 20.314500000000002 - {chain: 2, addr: "0000000000000000000000009625ce7753ace1fa1865a47aae2c5c2ce4418569", symbol: "KAP", coinGeckoId: "kapital-dao", decimals: 18, price: 0.109331}, // Addr: 0x9625ce7753ace1fa1865a47aae2c5c2ce4418569, Notional: 1093.31 - {chain: 2, addr: "0000000000000000000000000316eb71485b0ab14103307bf65a021042c6d380", symbol: "HBTC", coinGeckoId: "huobi-btc", decimals: 18, price: 71022}, // Addr: 0x0316eb71485b0ab14103307bf65a021042c6d380, Notional: 7217.8522248 + {chain: 2, addr: "000000000000000000000000f2fdd9c25d7bc8002ce89716d1be484b2d976944", symbol: "𝕏PAY", coinGeckoId: "payments", decimals: 18, price: 0.00069155}, // Addr: 0xf2fdd9c25d7bc8002ce89716d1be484b2d976944, Notional: 17.28875 + {chain: 2, addr: "0000000000000000000000009625ce7753ace1fa1865a47aae2c5c2ce4418569", symbol: "KAP", coinGeckoId: "kapital-dao", decimals: 18, price: 0.02127228}, // Addr: 0x9625ce7753ace1fa1865a47aae2c5c2ce4418569, Notional: 212.7228 + {chain: 2, addr: "0000000000000000000000000316eb71485b0ab14103307bf65a021042c6d380", symbol: "HBTC", coinGeckoId: "huobi-btc", decimals: 18, price: 13647.98}, // Addr: 0x0316eb71485b0ab14103307bf65a021042c6d380, Notional: 1387.0223706319998 {chain: 2, addr: "0000000000000000000000006911f552842236bd9e8ea8ddbb3fb414e2c5fa9d", symbol: "SNP", coinGeckoId: "synapse-network", decimals: 18, price: 0.00531536}, // Addr: 0x6911f552842236bd9e8ea8ddbb3fb414e2c5fa9d, Notional: 21.5857098436341 - {chain: 2, addr: "000000000000000000000000ea068fba19ce95f12d252ad8cb2939225c4ea02d", symbol: "FIEF", coinGeckoId: "fief", decimals: 18, price: 0.01725023}, // Addr: 0xea068fba19ce95f12d252ad8cb2939225c4ea02d, Notional: 135773.47387824807 - {chain: 2, addr: "000000000000000000000000eb4c2781e4eba804ce9a9803c67d0893436bb27d", symbol: "renBTC", coinGeckoId: "renbtc", decimals: 8, price: 57547}, // Addr: 0xeb4c2781e4eba804ce9a9803c67d0893436bb27d, Notional: 57.547000000000004 - {chain: 2, addr: "00000000000000000000000008389495d7456e1951ddf7c3a1314a4bfb646d8b", symbol: "CRPT", coinGeckoId: "crypterium", decimals: 18, price: 0.065419}, // Addr: 0x08389495d7456e1951ddf7c3a1314a4bfb646d8b, Notional: 2.224246 - {chain: 2, addr: "000000000000000000000000464fdb8affc9bac185a7393fd4298137866dcfb8", symbol: "REALM", coinGeckoId: "realm", decimals: 18, price: 0.00267706}, // Addr: 0x464fdb8affc9bac185a7393fd4298137866dcfb8, Notional: 2.67706 - {chain: 2, addr: "000000000000000000000000d1ba9bac957322d6e8c07a160a3a8da11a0d2867", symbol: "HMT", coinGeckoId: "human-protocol", decimals: 18, price: 0.02909746}, // Addr: 0xd1ba9bac957322d6e8c07a160a3a8da11a0d2867, Notional: 32.03630346 - {chain: 2, addr: "000000000000000000000000ba5bde662c17e2adff1075610382b9b691296350", symbol: "RARE", coinGeckoId: "superrare", decimals: 18, price: 0.10372}, // Addr: 0xba5bde662c17e2adff1075610382b9b691296350, Notional: 254.09054315880044 - {chain: 2, addr: "000000000000000000000000d9c2d319cd7e6177336b0a9c93c21cb48d84fb54", symbol: "HAPI", coinGeckoId: "hapi", decimals: 18, price: 17.96}, // Addr: 0xd9c2d319cd7e6177336b0a9c93c21cb48d84fb54, Notional: 17.96 - {chain: 2, addr: "000000000000000000000000354c8cda7e3b737d360513a0dc5abcee8ee1cea3", symbol: "BABYTRUMP", coinGeckoId: "babytrump", decimals: 18, price: 0.03329806}, // Addr: 0x354c8cda7e3b737d360513a0dc5abcee8ee1cea3, Notional: 74675.00874666811 - {chain: 2, addr: "000000000000000000000000b2617246d0c6c0087f18703d576831899ca94f01", symbol: "ZIG", coinGeckoId: "zignaly", decimals: 18, price: 0.095211}, // Addr: 0xb2617246d0c6c0087f18703d576831899ca94f01, Notional: 486556.715259123 - {chain: 2, addr: "000000000000000000000000e53ec727dbdeb9e2d5456c3be40cff031ab40a55", symbol: "SUPER", coinGeckoId: "superfarm", decimals: 18, price: 0.854966}, // Addr: 0xe53ec727dbdeb9e2d5456c3be40cff031ab40a55, Notional: 85.4966 - {chain: 2, addr: "000000000000000000000000e6f47303032a09c8c0f8ebb713c00e6ed345e8c3", symbol: "RISITA", coinGeckoId: "risitas", decimals: 18, price: 0.00000306}, // Addr: 0xe6f47303032a09c8c0f8ebb713c00e6ed345e8c3, Notional: 0.5065090935087834 - {chain: 2, addr: "000000000000000000000000e0b9a2c3e9f40cf74b2c7f591b2b0cca055c3112", symbol: "GS", coinGeckoId: "genesis-shards", decimals: 18, price: 0.00836638}, // Addr: 0xe0b9a2c3e9f40cf74b2c7f591b2b0cca055c3112, Notional: 0.7778539479152771 - {chain: 2, addr: "0000000000000000000000009e20461bc2c4c980f62f1b279d71734207a6a356", symbol: "OMNI", coinGeckoId: "omnicat", decimals: 18, price: 0.00037669}, // Addr: 0x9e20461bc2c4c980f62f1b279d71734207a6a356, Notional: 3948319.3095076755 - {chain: 2, addr: "0000000000000000000000008a854288a5976036a725879164ca3e91d30c6a1b", symbol: "GET", coinGeckoId: "get-token", decimals: 18, price: 1.54}, // Addr: 0x8a854288a5976036a725879164ca3e91d30c6a1b, Notional: 30.8 - {chain: 2, addr: "000000000000000000000000bc396689893d065f41bc2c6ecbee5e0085233447", symbol: "PERP", coinGeckoId: "perpetual-protocol", decimals: 18, price: 0.935387}, // Addr: 0xbc396689893d065f41bc2c6ecbee5e0085233447, Notional: 16480.83558727452 - {chain: 2, addr: "000000000000000000000000e939f011a3d8fc0aa874c97e8156053a903d7176", symbol: "DOLZ", coinGeckoId: "dolz-io", decimals: 18, price: 0.0131796}, // Addr: 0xe939f011a3d8fc0aa874c97e8156053a903d7176, Notional: 471.2396664720996 - {chain: 2, addr: "0000000000000000000000002e95cea14dd384429eb3c4331b776c4cfbb6fcd9", symbol: "THN", coinGeckoId: "throne", decimals: 18, price: 0.00187411}, // Addr: 0x2e95cea14dd384429eb3c4331b776c4cfbb6fcd9, Notional: 0.03373398 - {chain: 2, addr: "000000000000000000000000368c5290b13caa10284db58b4ad4f3e9ee8bf4c9", symbol: "KKO", coinGeckoId: "kineko", decimals: 18, price: 0.00136141}, // Addr: 0x368c5290b13caa10284db58b4ad4f3e9ee8bf4c9, Notional: 1.382458107336432 - {chain: 2, addr: "000000000000000000000000e3c408bd53c31c085a1746af401a4042954ff740", symbol: "GMT", coinGeckoId: "stepn", decimals: 8, price: 0.209767}, // Addr: 0xe3c408bd53c31c085a1746af401a4042954ff740, Notional: 23.17351756612423 - {chain: 2, addr: "000000000000000000000000081131434f93063751813c619ecca9c4dc7862a3", symbol: "DAR", coinGeckoId: "mines-of-dalarnia", decimals: 6, price: 0.133945}, // Addr: 0x081131434f93063751813c619ecca9c4dc7862a3, Notional: 142.704870528395 - {chain: 2, addr: "000000000000000000000000df3ac4f479375802a821f7b7b46cd7eb5e4262cc", symbol: "eUSD", coinGeckoId: "eusd-new", decimals: 18, price: 0.975302}, // Addr: 0xdf3ac4f479375802a821f7b7b46cd7eb5e4262cc, Notional: 4.87650999024698 - {chain: 2, addr: "0000000000000000000000004730fb1463a6f1f44aeb45f6c5c422427f37f4d0", symbol: "FOUR", coinGeckoId: "the-4th-pillar", decimals: 18, price: 0.00470432}, // Addr: 0x4730fb1463a6f1f44aeb45f6c5c422427f37f4d0, Notional: 21962.35233825129 - {chain: 2, addr: "0000000000000000000000007495e5cc8f27e0bd5bd4cb86d17f0d841ca58ee4", symbol: "ARNC", coinGeckoId: "arnoya-classic", decimals: 18, price: 0.00506982}, // Addr: 0x7495e5cc8f27e0bd5bd4cb86d17f0d841ca58ee4, Notional: 1318.65511218 - {chain: 2, addr: "000000000000000000000000b62e24b747eaa41454857cf6011832117df59cb8", symbol: "EPIKO", coinGeckoId: "epiko", decimals: 18, price: 0.00889832}, // Addr: 0xb62e24b747eaa41454857cf6011832117df59cb8, Notional: 445533.26310424577 - {chain: 2, addr: "000000000000000000000000e831f96a7a1dce1aa2eb760b1e296c6a74caa9d5", symbol: "NEXM", coinGeckoId: "nexum", decimals: 8, price: 0.04016157}, // Addr: 0xe831f96a7a1dce1aa2eb760b1e296c6a74caa9d5, Notional: 537229.8116346031 - {chain: 2, addr: "0000000000000000000000000d8775f648430679a709e98d2b0cb6250d2887ef", symbol: "BAT", coinGeckoId: "basic-attention-token", decimals: 18, price: 0.22923}, // Addr: 0x0d8775f648430679a709e98d2b0cb6250d2887ef, Notional: 196084.78900747286 - {chain: 2, addr: "000000000000000000000000f89674f18309a2e97843c6e9b19c07c22caef6d5", symbol: "Gamer", coinGeckoId: "cyb3rgam3r420", decimals: 9, price: 0.00000446}, // Addr: 0xf89674f18309a2e97843c6e9b19c07c22caef6d5, Notional: 65344.398355989055 - {chain: 2, addr: "000000000000000000000000c4c2614e694cf534d407ee49f8e44d125e4681c4", symbol: "CHAIN", coinGeckoId: "chain-games", decimals: 18, price: 0.01731264}, // Addr: 0xc4c2614e694cf534d407ee49f8e44d125e4681c4, Notional: 74.91497749259626 - {chain: 2, addr: "0000000000000000000000006ec8a24cabdc339a06a172f8223ea557055adaa5", symbol: "GNX", coinGeckoId: "genaro-network", decimals: 9, price: 0.00079005}, // Addr: 0x6ec8a24cabdc339a06a172f8223ea557055adaa5, Notional: 1.3509855000000002 - {chain: 2, addr: "000000000000000000000000bededdf2ef49e87037c4fb2ca34d1ff3d3992a11", symbol: "FEG", coinGeckoId: "feg-token-2", decimals: 18, price: 0.00066912}, // Addr: 0xbededdf2ef49e87037c4fb2ca34d1ff3d3992a11, Notional: 146.1488775574539 - {chain: 2, addr: "000000000000000000000000b5ce43fe2fcffffb2eece95ec413d08def28046f", symbol: "PELO", coinGeckoId: "pepelon-token", decimals: 18, price: 1.1088e-8}, // Addr: 0xb5ce43fe2fcffffb2eece95ec413d08def28046f, Notional: 110.88 - {chain: 2, addr: "00000000000000000000000080d55c03180349fff4a229102f62328220a96444", symbol: "OPUL", coinGeckoId: "opulous", decimals: 18, price: 0.14083}, // Addr: 0x80d55c03180349fff4a229102f62328220a96444, Notional: 14.9537948417417 - {chain: 2, addr: "00000000000000000000000078a0a62fba6fb21a83fe8a3433d44c73a4017a6f", symbol: "OX", coinGeckoId: "open-exchange-token", decimals: 18, price: 0.00587586}, // Addr: 0x78a0a62fba6fb21a83fe8a3433d44c73a4017a6f, Notional: 381195.70204306435 - {chain: 2, addr: "0000000000000000000000004507cef57c46789ef8d1a19ea45f4216bae2b528", symbol: "TOKEN", coinGeckoId: "tokenfi", decimals: 9, price: 0.094787}, // Addr: 0x4507cef57c46789ef8d1a19ea45f4216bae2b528, Notional: 6314.935689797887 - {chain: 2, addr: "000000000000000000000000e1c7e30c42c24582888c758984f6e382096786bd", symbol: "XCUR", coinGeckoId: "curate", decimals: 8, price: 0.01489906}, // Addr: 0xe1c7e30c42c24582888c758984f6e382096786bd, Notional: 0.02979812 - {chain: 2, addr: "000000000000000000000000436da116249044e8b4464f0cf21dd93311d88190", symbol: "ZEUM", coinGeckoId: "colizeum", decimals: 18, price: 0.00143638}, // Addr: 0x436da116249044e8b4464f0cf21dd93311d88190, Notional: 1436.3799999999999 - {chain: 2, addr: "0000000000000000000000008cb1d155a5a1d5d667611b7710920fd9d1cd727f", symbol: "AIRx", coinGeckoId: "aircoins", decimals: 8, price: 0.00001926}, // Addr: 0x8cb1d155a5a1d5d667611b7710920fd9d1cd727f, Notional: 0.0019259999999999998 - {chain: 2, addr: "000000000000000000000000d49efa7bc0d339d74f487959c573d518ba3f8437", symbol: "COLI", coinGeckoId: "shield-finance", decimals: 18, price: 0.00075003}, // Addr: 0xd49efa7bc0d339d74f487959c573d518ba3f8437, Notional: 129430.85326336067 - {chain: 2, addr: "000000000000000000000000853d955acef822db058eb8505911ed77f175b99e", symbol: "FRAX", coinGeckoId: "frax", decimals: 18, price: 0.99874}, // Addr: 0x853d955acef822db058eb8505911ed77f175b99e, Notional: 110405.37710376168 - {chain: 2, addr: "000000000000000000000000d7dcd9b99787c619b4d57979521258d1a7267ad7", symbol: "EVRY", coinGeckoId: "evrynet", decimals: 18, price: 0.02519939}, // Addr: 0xd7dcd9b99787c619b4d57979521258d1a7267ad7, Notional: 3.22552192 - {chain: 2, addr: "00000000000000000000000083e6f1e41cdd28eaceb20cb649155049fac3d5aa", symbol: "POLS", coinGeckoId: "polkastarter", decimals: 18, price: 0.714594}, // Addr: 0x83e6f1e41cdd28eaceb20cb649155049fac3d5aa, Notional: 1.429188 - {chain: 2, addr: "0000000000000000000000005483dc6abda5f094865120b2d251b5744fc2ecb5", symbol: "TPAD", coinGeckoId: "taopad", decimals: 18, price: 5.77}, // Addr: 0x5483dc6abda5f094865120b2d251b5744fc2ecb5, Notional: 3390.9548418250997 - {chain: 2, addr: "000000000000000000000000046eee2cc3188071c02bfc1745a6b17c656e3f3d", symbol: "RLB", coinGeckoId: "rollbit-coin", decimals: 18, price: 0.107031}, // Addr: 0x046eee2cc3188071c02bfc1745a6b17c656e3f3d, Notional: 355.34292 - {chain: 2, addr: "000000000000000000000000a406844323f1603701e6ad95adc8a082213a68ce", symbol: "PBT", coinGeckoId: "polybet", decimals: 18, price: 0.00306701}, // Addr: 0xa406844323f1603701e6ad95adc8a082213a68ce, Notional: 42.597360838488 - {chain: 2, addr: "0000000000000000000000001c4853ec0d55e420002c5efabc7ed8e0ba7a4121", symbol: "Okinami", coinGeckoId: "kanagawa-nami", decimals: 9, price: 0.00130374}, // Addr: 0x1c4853ec0d55e420002c5efabc7ed8e0ba7a4121, Notional: 15.822365692337753 - {chain: 2, addr: "000000000000000000000000dbdb4d16eda451d0503b854cf79d55697f90c8df", symbol: "ALCX", coinGeckoId: "alchemix", decimals: 18, price: 22.64}, // Addr: 0xdbdb4d16eda451d0503b854cf79d55697f90c8df, Notional: 0.02264 - {chain: 2, addr: "000000000000000000000000d373576a9e738f37dc6882328358ff69c4caf4c6", symbol: "ZAM", coinGeckoId: "zam-io", decimals: 18, price: 0.00108149}, // Addr: 0xd373576a9e738f37dc6882328358ff69c4caf4c6, Notional: 0.0108149 - {chain: 2, addr: "0000000000000000000000000d505c03d30e65f6e9b4ef88855a47a89e4b7676", symbol: "ZOOMER", coinGeckoId: "zoomer", decimals: 18, price: 0.00001916}, // Addr: 0x0d505c03d30e65f6e9b4ef88855a47a89e4b7676, Notional: 47403.42760277041 - {chain: 2, addr: "000000000000000000000000cb84d72e61e383767c4dfeb2d8ff7f4fb89abc6e", symbol: "VEGA", coinGeckoId: "vega-protocol", decimals: 18, price: 0.625658}, // Addr: 0xcb84d72e61e383767c4dfeb2d8ff7f4fb89abc6e, Notional: 18.144082 - {chain: 2, addr: "000000000000000000000000009178997aff09a67d4caccfeb897fb79d036214", symbol: "1SOL", coinGeckoId: "1sol", decimals: 18, price: 0.01428294}, // Addr: 0x009178997aff09a67d4caccfeb897fb79d036214, Notional: 1301982.422591469 - {chain: 2, addr: "000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", symbol: "WETH", coinGeckoId: "weth", decimals: 18, price: 2901.39}, // Addr: 0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2, Notional: 136278917.31740612 - {chain: 2, addr: "0000000000000000000000001cf4592ebffd730c7dc92c1bdffdfc3b9efcf29a", symbol: "WAVES", coinGeckoId: "waves", decimals: 18, price: 2.12}, // Addr: 0x1cf4592ebffd730c7dc92c1bdffdfc3b9efcf29a, Notional: 2.17512 - {chain: 2, addr: "000000000000000000000000423f4e6138e475d85cf7ea071ac92097ed631eea", symbol: "PNDC", coinGeckoId: "pond-coin", decimals: 18, price: 2.33295e-7}, // Addr: 0x423f4e6138e475d85cf7ea071ac92097ed631eea, Notional: 1.002430121325 - {chain: 2, addr: "00000000000000000000000072e5390edb7727e3d4e3436451dadaff675dbcc0", symbol: "HANU", coinGeckoId: "hanu-yokia", decimals: 12, price: 2.00191e-7}, // Addr: 0x72e5390edb7727e3d4e3436451dadaff675dbcc0, Notional: 36034.38 - {chain: 2, addr: "000000000000000000000000be33f57f41a20b2f00dec91dcc1169597f36221f", symbol: "RUG", coinGeckoId: "rug-rugged-art", decimals: 18, price: 15.58}, // Addr: 0xbe33f57f41a20b2f00dec91dcc1169597f36221f, Notional: 35693.6105146838 - {chain: 2, addr: "000000000000000000000000a5ef74068d04ba0809b7379dd76af5ce34ab7c57", symbol: "LUCHOW", coinGeckoId: "lunachow", decimals: 18, price: 1.79038e-7}, // Addr: 0xa5ef74068d04ba0809b7379dd76af5ce34ab7c57, Notional: 273.83807532003954 - {chain: 2, addr: "0000000000000000000000007616113782aadab041d7b10d474f8a0c04eff258", symbol: "VEE", coinGeckoId: "zeeverse", decimals: 18, price: 0.0010199}, // Addr: 0x7616113782aadab041d7b10d474f8a0c04eff258, Notional: 5.0995 - {chain: 2, addr: "000000000000000000000000db82c0d91e057e05600c8f8dc836beb41da6df14", symbol: "SLN", coinGeckoId: "smart-layer-network", decimals: 18, price: 1.72}, // Addr: 0xdb82c0d91e057e05600c8f8dc836beb41da6df14, Notional: 80012.0113234604 - {chain: 2, addr: "0000000000000000000000001c98b54d673c026c8286badca3e840aaf72931a3", symbol: "STSW", coinGeckoId: "stackswap", decimals: 6, price: 0.03427507}, // Addr: 0x1c98b54d673c026c8286badca3e840aaf72931a3, Notional: 1714.0962507 - {chain: 2, addr: "000000000000000000000000c18360217d8f7ab5e7c516566761ea12ce7f9d72", symbol: "ENS", coinGeckoId: "ethereum-name-service", decimals: 18, price: 14.12}, // Addr: 0xc18360217d8f7ab5e7c516566761ea12ce7f9d72, Notional: 343.42230953719996 - {chain: 2, addr: "000000000000000000000000ba25b2281214300e4e649fead9a6d6acd25f1c0a", symbol: "TREE", coinGeckoId: "tree-capital", decimals: 18, price: 0.20224}, // Addr: 0xba25b2281214300e4e649fead9a6d6acd25f1c0a, Notional: 765018.5995003834 - {chain: 2, addr: "0000000000000000000000003d2b66bc4f9d6388bd2d97b95b565be1686aefb3", symbol: "LAMBO", coinGeckoId: "lambo-0fcbf0f7-1a8f-470d-ba09-797d5e95d836", decimals: 18, price: 0.00000574}, // Addr: 0x3d2b66bc4f9d6388bd2d97b95b565be1686aefb3, Notional: 9.313533526500203 - {chain: 2, addr: "000000000000000000000000fe80d611c6403f70e5b1b9b722d2b3510b740b2b", symbol: "EQB", coinGeckoId: "equilibria-finance", decimals: 18, price: 0.468878}, // Addr: 0xfe80d611c6403f70e5b1b9b722d2b3510b740b2b, Notional: 422546.9697678727 - {chain: 2, addr: "0000000000000000000000001045f5ccb01daea4f8eab055f5fcbb7c0e7c89f0", symbol: "DFIAT", coinGeckoId: "defiato", decimals: 18, price: 0.00170678}, // Addr: 0x1045f5ccb01daea4f8eab055f5fcbb7c0e7c89f0, Notional: 3030.783756093247 - {chain: 2, addr: "0000000000000000000000004295c8556afee00264c0789dde2ddd2dba71acfe", symbol: "BISC", coinGeckoId: "bidao-smart-chain", decimals: 18, price: 0.00011013}, // Addr: 0x4295c8556afee00264c0789dde2ddd2dba71acfe, Notional: 110398.40470899089 - {chain: 2, addr: "000000000000000000000000a21af1050f7b26e0cff45ee51548254c41ed6b5c", symbol: "OSAK", coinGeckoId: "osaka-protocol", decimals: 18, price: 2.27594e-7}, // Addr: 0xa21af1050f7b26e0cff45ee51548254c41ed6b5c, Notional: 19297.54061668771 - {chain: 2, addr: "000000000000000000000000875773784af8135ea0ef43b5a374aad105c5d39e", symbol: "IDLE", coinGeckoId: "idle", decimals: 18, price: 0.208336}, // Addr: 0x875773784af8135ea0ef43b5a374aad105c5d39e, Notional: 10.4168 - {chain: 2, addr: "000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", symbol: "USDC", coinGeckoId: "usd-coin", decimals: 6, price: 1}, // Addr: 0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48, Notional: 230215812.143164 - {chain: 2, addr: "00000000000000000000000019062190b1925b5b6689d7073fdfc8c2976ef8cb", symbol: "BZZ", coinGeckoId: "swarm-bzz", decimals: 16, price: 0.499643}, // Addr: 0x19062190b1925b5b6689d7073fdfc8c2976ef8cb, Notional: 4.99643e-9 - {chain: 2, addr: "000000000000000000000000667210a731447f8b385e068205759be2311b86d4", symbol: "ETF", coinGeckoId: "etf-the-token", decimals: 18, price: 0.01086635}, // Addr: 0x667210a731447f8b385e068205759be2311b86d4, Notional: 6425.116212541896 - {chain: 2, addr: "000000000000000000000000aa7a9ca87d3694b5755f213b5d04094b8d0f0a6f", symbol: "TRAC", coinGeckoId: "origintrail", decimals: 18, price: 0.718581}, // Addr: 0xaa7a9ca87d3694b5755f213b5d04094b8d0f0a6f, Notional: 59380.027520331365 - {chain: 2, addr: "000000000000000000000000255f1b39172f65dc6406b8bee8b08155c45fe1b6", symbol: "HARAMBE", coinGeckoId: "harambecoin", decimals: 18, price: 0.00001398}, // Addr: 0x255f1b39172f65dc6406b8bee8b08155c45fe1b6, Notional: 319732.6123630615 - {chain: 2, addr: "0000000000000000000000007fc66500c84a76ad7e9c93437bfc5ac33e2ddae9", symbol: "AAVE", coinGeckoId: "aave", decimals: 18, price: 80.74}, // Addr: 0x7fc66500c84a76ad7e9c93437bfc5ac33e2ddae9, Notional: 874.5206944452 - {chain: 2, addr: "00000000000000000000000009a3ecafa817268f77be1283176b946c4ff2e608", symbol: "MIR", coinGeckoId: "mirror-protocol", decimals: 18, price: 0.04413222}, // Addr: 0x09a3ecafa817268f77be1283176b946c4ff2e608, Notional: 386.268828678729 - {chain: 2, addr: "000000000000000000000000defb0b264032e4e128b00d02b3fd0aa00331237b", symbol: "Buddha", coinGeckoId: "buddha", decimals: 18, price: 0.00000592}, // Addr: 0xdefb0b264032e4e128b00d02b3fd0aa00331237b, Notional: 33060.90587109532 - {chain: 2, addr: "000000000000000000000000c6c9448a86882d73164a984fa52285ab51c823bc", symbol: "RPILL", coinGeckoId: "red-pill-2", decimals: 18, price: 0.00000143}, // Addr: 0xc6c9448a86882d73164a984fa52285ab51c823bc, Notional: 9631.872678965132 - {chain: 2, addr: "000000000000000000000000cc503242b574bc01145da7e2a743b43fb395ec91", symbol: "ROVI", coinGeckoId: "rovi-protocol", decimals: 18, price: 0.03947132}, // Addr: 0xcc503242b574bc01145da7e2a743b43fb395ec91, Notional: 5.9597746068 - {chain: 2, addr: "000000000000000000000000594daad7d77592a2b97b725a7ad59d7e188b5bfa", symbol: "APU", coinGeckoId: "apu-s-club", decimals: 18, price: 0.00047597}, // Addr: 0x594daad7d77592a2b97b725a7ad59d7e188b5bfa, Notional: 0.0047596999999999995 - {chain: 2, addr: "0000000000000000000000002370f9d504c7a6e775bf6e14b3f12846b594cd53", symbol: "JPYC", coinGeckoId: "jpyc", decimals: 18, price: 0.00781144}, // Addr: 0x2370f9d504c7a6e775bf6e14b3f12846b594cd53, Notional: 7.81144 + {chain: 2, addr: "000000000000000000000000ea068fba19ce95f12d252ad8cb2939225c4ea02d", symbol: "FIEF", coinGeckoId: "fief", decimals: 18, price: 0.00061728}, // Addr: 0xea068fba19ce95f12d252ad8cb2939225c4ea02d, Notional: 4858.500434809564 + {chain: 2, addr: "000000000000000000000000eb4c2781e4eba804ce9a9803c67d0893436bb27d", symbol: "renBTC", coinGeckoId: "renbtc", decimals: 8, price: 58888}, // Addr: 0xeb4c2781e4eba804ce9a9803c67d0893436bb27d, Notional: 58.888 + {chain: 2, addr: "00000000000000000000000008389495d7456e1951ddf7c3a1314a4bfb646d8b", symbol: "CRPT", coinGeckoId: "crypterium", decimals: 18, price: 0.04159604}, // Addr: 0x08389495d7456e1951ddf7c3a1314a4bfb646d8b, Notional: 1.41426536 + {chain: 2, addr: "000000000000000000000000464fdb8affc9bac185a7393fd4298137866dcfb8", symbol: "REALM", coinGeckoId: "realm", decimals: 18, price: 0.00098989}, // Addr: 0x464fdb8affc9bac185a7393fd4298137866dcfb8, Notional: 0.98989 + {chain: 2, addr: "000000000000000000000000d1ba9bac957322d6e8c07a160a3a8da11a0d2867", symbol: "HMT", coinGeckoId: "human-protocol", decimals: 18, price: 0.0253772}, // Addr: 0xd1ba9bac957322d6e8c07a160a3a8da11a0d2867, Notional: 27.9402972 + {chain: 2, addr: "000000000000000000000000ba5bde662c17e2adff1075610382b9b691296350", symbol: "RARE", coinGeckoId: "superrare", decimals: 18, price: 0.0762}, // Addr: 0xba5bde662c17e2adff1075610382b9b691296350, Notional: 237.633828217296 + {chain: 2, addr: "000000000000000000000000d9c2d319cd7e6177336b0a9c93c21cb48d84fb54", symbol: "HAPI", coinGeckoId: "hapi", decimals: 18, price: 10.96}, // Addr: 0xd9c2d319cd7e6177336b0a9c93c21cb48d84fb54, Notional: 10.96 + {chain: 2, addr: "000000000000000000000000354c8cda7e3b737d360513a0dc5abcee8ee1cea3", symbol: "BABYTRUMP", coinGeckoId: "babytrump", decimals: 18, price: 0.02436256}, // Addr: 0x354c8cda7e3b737d360513a0dc5abcee8ee1cea3, Notional: 94875.32286949555 + {chain: 2, addr: "000000000000000000000000b2617246d0c6c0087f18703d576831899ca94f01", symbol: "ZIG", coinGeckoId: "zignaly", decimals: 18, price: 0.104073}, // Addr: 0xb2617246d0c6c0087f18703d576831899ca94f01, Notional: 545825.2007517536 + {chain: 2, addr: "000000000000000000000000e53ec727dbdeb9e2d5456c3be40cff031ab40a55", symbol: "SUPER", coinGeckoId: "superfarm", decimals: 18, price: 0.542781}, // Addr: 0xe53ec727dbdeb9e2d5456c3be40cff031ab40a55, Notional: 54.278099999999995 + {chain: 2, addr: "000000000000000000000000e6f47303032a09c8c0f8ebb713c00e6ed345e8c3", symbol: "RISITA", coinGeckoId: "risitas", decimals: 18, price: 0.00000211}, // Addr: 0xe6f47303032a09c8c0f8ebb713c00e6ed345e8c3, Notional: 0.3492595383344879 + {chain: 2, addr: "000000000000000000000000e0b9a2c3e9f40cf74b2c7f591b2b0cca055c3112", symbol: "GS", coinGeckoId: "genesis-shards", decimals: 18, price: 0.00667382}, // Addr: 0xe0b9a2c3e9f40cf74b2c7f591b2b0cca055c3112, Notional: 0.6204902520177107 + {chain: 2, addr: "0000000000000000000000009e20461bc2c4c980f62f1b279d71734207a6a356", symbol: "OMNI", coinGeckoId: "omnicat", decimals: 18, price: 0.00004164}, // Addr: 0x9e20461bc2c4c980f62f1b279d71734207a6a356, Notional: 402754.24428201723 + {chain: 2, addr: "0000000000000000000000008a854288a5976036a725879164ca3e91d30c6a1b", symbol: "GET", coinGeckoId: "get-token", decimals: 18, price: 0.704047}, // Addr: 0x8a854288a5976036a725879164ca3e91d30c6a1b, Notional: 14.08094 + {chain: 2, addr: "000000000000000000000000bc396689893d065f41bc2c6ecbee5e0085233447", symbol: "PERP", coinGeckoId: "perpetual-protocol", decimals: 18, price: 0.531595}, // Addr: 0xbc396689893d065f41bc2c6ecbee5e0085233447, Notional: 9366.315540003441 + {chain: 2, addr: "000000000000000000000000e939f011a3d8fc0aa874c97e8156053a903d7176", symbol: "DOLZ", coinGeckoId: "dolz-io", decimals: 18, price: 0.00959827}, // Addr: 0xe939f011a3d8fc0aa874c97e8156053a903d7176, Notional: 343.18837851749373 + {chain: 2, addr: "0000000000000000000000002e95cea14dd384429eb3c4331b776c4cfbb6fcd9", symbol: "THN", coinGeckoId: "throne", decimals: 18, price: 0.00191761}, // Addr: 0x2e95cea14dd384429eb3c4331b776c4cfbb6fcd9, Notional: 0.034516979999999996 + {chain: 2, addr: "000000000000000000000000368c5290b13caa10284db58b4ad4f3e9ee8bf4c9", symbol: "KKO", coinGeckoId: "kineko", decimals: 18, price: 0.00544827}, // Addr: 0x368c5290b13caa10284db58b4ad4f3e9ee8bf4c9, Notional: 5.532503090514879 + {chain: 2, addr: "000000000000000000000000e3c408bd53c31c085a1746af401a4042954ff740", symbol: "GMT", coinGeckoId: "stepn", decimals: 8, price: 0.109983}, // Addr: 0xe3c408bd53c31c085a1746af401a4042954ff740, Notional: 12.15011409075327 + {chain: 2, addr: "000000000000000000000000081131434f93063751813c619ecca9c4dc7862a3", symbol: "DAR", coinGeckoId: "mines-of-dalarnia", decimals: 6, price: 0.128368}, // Addr: 0x081131434f93063751813c619ecca9c4dc7862a3, Notional: 136.763140244048 + {chain: 2, addr: "000000000000000000000000df3ac4f479375802a821f7b7b46cd7eb5e4262cc", symbol: "eUSD", coinGeckoId: "eusd-new", decimals: 18, price: 1.052}, // Addr: 0xdf3ac4f479375802a821f7b7b46cd7eb5e4262cc, Notional: 5.259999989480001 + {chain: 2, addr: "0000000000000000000000004730fb1463a6f1f44aeb45f6c5c422427f37f4d0", symbol: "FOUR", coinGeckoId: "the-4th-pillar", decimals: 18, price: 0.0016639}, // Addr: 0x4730fb1463a6f1f44aeb45f6c5c422427f37f4d0, Notional: 7768.000062839332 + {chain: 2, addr: "0000000000000000000000007495e5cc8f27e0bd5bd4cb86d17f0d841ca58ee4", symbol: "ARNC", coinGeckoId: "arnoya-classic", decimals: 18, price: 0.00347166}, // Addr: 0x7495e5cc8f27e0bd5bd4cb86d17f0d841ca58ee4, Notional: 902.97529434 + {chain: 2, addr: "000000000000000000000000b62e24b747eaa41454857cf6011832117df59cb8", symbol: "EPIKO", coinGeckoId: "epiko", decimals: 18, price: 0.00246802}, // Addr: 0xb62e24b747eaa41454857cf6011832117df59cb8, Notional: 53493.40500628023 + {chain: 2, addr: "000000000000000000000000e831f96a7a1dce1aa2eb760b1e296c6a74caa9d5", symbol: "NEXM", coinGeckoId: "nexum", decimals: 8, price: 0.03313713}, // Addr: 0xe831f96a7a1dce1aa2eb760b1e296c6a74caa9d5, Notional: 442943.2904770784 + {chain: 2, addr: "0000000000000000000000004c9edd5852cd905f086c759e8383e09bff1e68b3", symbol: "USDe", coinGeckoId: "ethena-usde", decimals: 18, price: 0.998673}, // Addr: 0x4c9edd5852cd905f086c759e8383e09bff1e68b3, Notional: 24.966825 + {chain: 2, addr: "000000000000000000000000bf5495efe5db9ce00f80364c8b423567e58d2110", symbol: "ezETH", coinGeckoId: "renzo-restaked-eth", decimals: 18, price: 2699.77}, // Addr: 0xbf5495efe5db9ce00f80364c8b423567e58d2110, Notional: 0.0000269977 + {chain: 2, addr: "0000000000000000000000000d8775f648430679a709e98d2b0cb6250d2887ef", symbol: "BAT", coinGeckoId: "basic-attention-token", decimals: 18, price: 0.165682}, // Addr: 0x0d8775f648430679a709e98d2b0cb6250d2887ef, Notional: 154754.61802046123 + {chain: 2, addr: "000000000000000000000000f89674f18309a2e97843c6e9b19c07c22caef6d5", symbol: "Gamer", coinGeckoId: "cyb3rgam3r420", decimals: 9, price: 0.00000292}, // Addr: 0xf89674f18309a2e97843c6e9b19c07c22caef6d5, Notional: 51176.62433896215 + {chain: 2, addr: "000000000000000000000000c4c2614e694cf534d407ee49f8e44d125e4681c4", symbol: "CHAIN", coinGeckoId: "chain-games", decimals: 18, price: 0.0475276}, // Addr: 0xc4c2614e694cf534d407ee49f8e44d125e4681c4, Notional: 205.66066667343156 + {chain: 2, addr: "0000000000000000000000006ec8a24cabdc339a06a172f8223ea557055adaa5", symbol: "GNX", coinGeckoId: "genaro-network", decimals: 9, price: 0.0004046}, // Addr: 0x6ec8a24cabdc339a06a172f8223ea557055adaa5, Notional: 0.6918660000000001 + {chain: 2, addr: "000000000000000000000000bededdf2ef49e87037c4fb2ca34d1ff3d3992a11", symbol: "FEG", coinGeckoId: "feg-token-2", decimals: 18, price: 0.00038759}, // Addr: 0xbededdf2ef49e87037c4fb2ca34d1ff3d3992a11, Notional: 84.65722658490786 + {chain: 2, addr: "000000000000000000000000b5ce43fe2fcffffb2eece95ec413d08def28046f", symbol: "PELO", coinGeckoId: "pepelon-token", decimals: 18, price: 4.99951e-10}, // Addr: 0xb5ce43fe2fcffffb2eece95ec413d08def28046f, Notional: 4.99951 + {chain: 2, addr: "00000000000000000000000080d55c03180349fff4a229102f62328220a96444", symbol: "OPUL", coinGeckoId: "opulous", decimals: 18, price: 0.061572}, // Addr: 0x80d55c03180349fff4a229102f62328220a96444, Notional: 6.53791845484428 + {chain: 2, addr: "00000000000000000000000078a0a62fba6fb21a83fe8a3433d44c73a4017a6f", symbol: "OX", coinGeckoId: "open-exchange-token", decimals: 18, price: 0.00080818}, // Addr: 0x78a0a62fba6fb21a83fe8a3433d44c73a4017a6f, Notional: 52427.428593879216 + {chain: 2, addr: "0000000000000000000000004507cef57c46789ef8d1a19ea45f4216bae2b528", symbol: "TOKEN", coinGeckoId: "tokenfi", decimals: 9, price: 0.060784}, // Addr: 0x4507cef57c46789ef8d1a19ea45f4216bae2b528, Notional: 4049.5748464312064 + {chain: 2, addr: "000000000000000000000000e1c7e30c42c24582888c758984f6e382096786bd", symbol: "XCUR", coinGeckoId: "curate", decimals: 8, price: 0.00582523}, // Addr: 0xe1c7e30c42c24582888c758984f6e382096786bd, Notional: 0.01165046 + {chain: 2, addr: "000000000000000000000000436da116249044e8b4464f0cf21dd93311d88190", symbol: "ZEUM", coinGeckoId: "colizeum", decimals: 18, price: 0.00082485}, // Addr: 0x436da116249044e8b4464f0cf21dd93311d88190, Notional: 824.85 + {chain: 2, addr: "0000000000000000000000008cb1d155a5a1d5d667611b7710920fd9d1cd727f", symbol: "AIRx", coinGeckoId: "aircoins", decimals: 8, price: 0.00001298}, // Addr: 0x8cb1d155a5a1d5d667611b7710920fd9d1cd727f, Notional: 0.001298 + {chain: 2, addr: "000000000000000000000000d49efa7bc0d339d74f487959c573d518ba3f8437", symbol: "COLI", coinGeckoId: "shield-finance", decimals: 18, price: 0.00055691}, // Addr: 0xd49efa7bc0d339d74f487959c573d518ba3f8437, Notional: 96104.6044703521 + {chain: 2, addr: "000000000000000000000000853d955acef822db058eb8505911ed77f175b99e", symbol: "FRAX", coinGeckoId: "frax", decimals: 18, price: 0.995775}, // Addr: 0x853d955acef822db058eb8505911ed77f175b99e, Notional: 109069.96171167534 + {chain: 2, addr: "000000000000000000000000faba6f8e4a5e8ab82f62fe7c39859fa577269be3", symbol: "ONDO", coinGeckoId: "ondo-finance", decimals: 18, price: 0.730827}, // Addr: 0xfaba6f8e4a5e8ab82f62fe7c39859fa577269be3, Notional: 70.890219 + {chain: 2, addr: "000000000000000000000000d7dcd9b99787c619b4d57979521258d1a7267ad7", symbol: "EVRY", coinGeckoId: "evrynet", decimals: 18, price: 0.01003514}, // Addr: 0xd7dcd9b99787c619b4d57979521258d1a7267ad7, Notional: 1.28449792 + {chain: 2, addr: "0000000000000000000000007fd4d7737597e7b4ee22acbf8d94362343ae0a79", symbol: "WMC", coinGeckoId: "wrapped-mistcoin", decimals: 2, price: 2.66}, // Addr: 0x7fd4d7737597e7b4ee22acbf8d94362343ae0a79, Notional: 6.463800000000001 + {chain: 2, addr: "00000000000000000000000083e6f1e41cdd28eaceb20cb649155049fac3d5aa", symbol: "POLS", coinGeckoId: "polkastarter", decimals: 18, price: 0.262358}, // Addr: 0x83e6f1e41cdd28eaceb20cb649155049fac3d5aa, Notional: 0.524716 + {chain: 2, addr: "0000000000000000000000005483dc6abda5f094865120b2d251b5744fc2ecb5", symbol: "TPAD", coinGeckoId: "taopad", decimals: 18, price: 0.166211}, // Addr: 0x5483dc6abda5f094865120b2d251b5744fc2ecb5, Notional: 59.72240455504606 + {chain: 2, addr: "000000000000000000000000046eee2cc3188071c02bfc1745a6b17c656e3f3d", symbol: "RLB", coinGeckoId: "rollbit-coin", decimals: 18, price: 0.058444}, // Addr: 0x046eee2cc3188071c02bfc1745a6b17c656e3f3d, Notional: 194.03408000000002 + {chain: 2, addr: "000000000000000000000000a406844323f1603701e6ad95adc8a082213a68ce", symbol: "PBT", coinGeckoId: "polybet", decimals: 18, price: 0.0008817}, // Addr: 0xa406844323f1603701e6ad95adc8a082213a68ce, Notional: 12.24583325496 + {chain: 2, addr: "0000000000000000000000001c4853ec0d55e420002c5efabc7ed8e0ba7a4121", symbol: "Okinami", coinGeckoId: "kanagawa-nami", decimals: 9, price: 0.00099488}, // Addr: 0x1c4853ec0d55e420002c5efabc7ed8e0ba7a4121, Notional: 12.07399878809654 + {chain: 2, addr: "000000000000000000000000dbdb4d16eda451d0503b854cf79d55697f90c8df", symbol: "ALCX", coinGeckoId: "alchemix", decimals: 18, price: 12.6}, // Addr: 0xdbdb4d16eda451d0503b854cf79d55697f90c8df, Notional: 0.0126 + {chain: 2, addr: "000000000000000000000000d373576a9e738f37dc6882328358ff69c4caf4c6", symbol: "ZAM", coinGeckoId: "zam-io", decimals: 18, price: 0.0003932}, // Addr: 0xd373576a9e738f37dc6882328358ff69c4caf4c6, Notional: 0.003932 + {chain: 2, addr: "0000000000000000000000000d505c03d30e65f6e9b4ef88855a47a89e4b7676", symbol: "ZOOMER", coinGeckoId: "zoomer", decimals: 18, price: 0.00000994}, // Addr: 0x0d505c03d30e65f6e9b4ef88855a47a89e4b7676, Notional: 20994.20584194502 + {chain: 2, addr: "000000000000000000000000cb84d72e61e383767c4dfeb2d8ff7f4fb89abc6e", symbol: "VEGA", coinGeckoId: "vega-protocol", decimals: 18, price: 0.191197}, // Addr: 0xcb84d72e61e383767c4dfeb2d8ff7f4fb89abc6e, Notional: 5.544713 + {chain: 2, addr: "000000000000000000000000009178997aff09a67d4caccfeb897fb79d036214", symbol: "1SOL", coinGeckoId: "1sol", decimals: 18, price: 0.00877493}, // Addr: 0x009178997aff09a67d4caccfeb897fb79d036214, Notional: 799935.5369737624 + {chain: 2, addr: "000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", symbol: "WETH", coinGeckoId: "weth", decimals: 18, price: 2661.57}, // Addr: 0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2, Notional: 175331813.331811 + {chain: 2, addr: "0000000000000000000000001cf4592ebffd730c7dc92c1bdffdfc3b9efcf29a", symbol: "WAVES", coinGeckoId: "waves", decimals: 18, price: 1.11}, // Addr: 0x1cf4592ebffd730c7dc92c1bdffdfc3b9efcf29a, Notional: 1.1388600000000002 + {chain: 2, addr: "000000000000000000000000423f4e6138e475d85cf7ea071ac92097ed631eea", symbol: "PNDC", coinGeckoId: "pond-coin", decimals: 18, price: 8.1268e-8}, // Addr: 0x423f4e6138e475d85cf7ea071ac92097ed631eea, Notional: 0.34919518678 + {chain: 2, addr: "00000000000000000000000072e5390edb7727e3d4e3436451dadaff675dbcc0", symbol: "HANU", coinGeckoId: "hanu-yokia", decimals: 12, price: 1.68984e-7}, // Addr: 0x72e5390edb7727e3d4e3436451dadaff675dbcc0, Notional: 30417.12 + {chain: 2, addr: "000000000000000000000000be33f57f41a20b2f00dec91dcc1169597f36221f", symbol: "RUG", coinGeckoId: "rug-rugged-art", decimals: 18, price: 9.09}, // Addr: 0xbe33f57f41a20b2f00dec91dcc1169597f36221f, Notional: 23536.4890333446 + {chain: 2, addr: "000000000000000000000000a5ef74068d04ba0809b7379dd76af5ce34ab7c57", symbol: "LUCHOW", coinGeckoId: "lunachow", decimals: 18, price: 3.41966e-7}, // Addr: 0xa5ef74068d04ba0809b7379dd76af5ce34ab7c57, Notional: 523.0359547408518 + {chain: 2, addr: "0000000000000000000000007616113782aadab041d7b10d474f8a0c04eff258", symbol: "VEE", coinGeckoId: "zeeverse", decimals: 18, price: 0.00065731}, // Addr: 0x7616113782aadab041d7b10d474f8a0c04eff258, Notional: 3.28655 + {chain: 2, addr: "000000000000000000000000db82c0d91e057e05600c8f8dc836beb41da6df14", symbol: "SLN", coinGeckoId: "smart-layer-network", decimals: 18, price: 0.20891}, // Addr: 0xdb82c0d91e057e05600c8f8dc836beb41da6df14, Notional: 38192.995032466926 + {chain: 2, addr: "0000000000000000000000001c98b54d673c026c8286badca3e840aaf72931a3", symbol: "STSW", coinGeckoId: "stackswap", decimals: 6, price: 0.0168496}, // Addr: 0x1c98b54d673c026c8286badca3e840aaf72931a3, Notional: 842.6484959999999 + {chain: 2, addr: "000000000000000000000000c18360217d8f7ab5e7c516566761ea12ce7f9d72", symbol: "ENS", coinGeckoId: "ethereum-name-service", decimals: 18, price: 19.19}, // Addr: 0xc18360217d8f7ab5e7c516566761ea12ce7f9d72, Notional: 466.73329461890006 + {chain: 2, addr: "000000000000000000000000ba25b2281214300e4e649fead9a6d6acd25f1c0a", symbol: "TREE", coinGeckoId: "tree-capital", decimals: 18, price: 0.138105}, // Addr: 0xba25b2281214300e4e649fead9a6d6acd25f1c0a, Notional: 985035.8665317354 + {chain: 2, addr: "0000000000000000000000003d2b66bc4f9d6388bd2d97b95b565be1686aefb3", symbol: "LAMBO", coinGeckoId: "lambo-0fcbf0f7-1a8f-470d-ba09-797d5e95d836", decimals: 18, price: 1e-18}, // Addr: 0x3d2b66bc4f9d6388bd2d97b95b565be1686aefb3, Notional: 1.62256681646345e-12 + {chain: 2, addr: "000000000000000000000000fe80d611c6403f70e5b1b9b722d2b3510b740b2b", symbol: "EQB", coinGeckoId: "equilibria-finance", decimals: 18, price: 0.244103}, // Addr: 0xfe80d611c6403f70e5b1b9b722d2b3510b740b2b, Notional: 254872.52394245742 + {chain: 2, addr: "0000000000000000000000001045f5ccb01daea4f8eab055f5fcbb7c0e7c89f0", symbol: "DFIAT", coinGeckoId: "defiato", decimals: 18, price: 0.0009502}, // Addr: 0x1045f5ccb01daea4f8eab055f5fcbb7c0e7c89f0, Notional: 1687.3004869050515 + {chain: 2, addr: "0000000000000000000000004295c8556afee00264c0789dde2ddd2dba71acfe", symbol: "BISC", coinGeckoId: "bidao-smart-chain", decimals: 18, price: 0.00010308}, // Addr: 0x4295c8556afee00264c0789dde2ddd2dba71acfe, Notional: 103395.71743410491 + {chain: 2, addr: "000000000000000000000000a21af1050f7b26e0cff45ee51548254c41ed6b5c", symbol: "OSAK", coinGeckoId: "osaka-protocol", decimals: 18, price: 2.18216e-7}, // Addr: 0xa21af1050f7b26e0cff45ee51548254c41ed6b5c, Notional: 14265.459659537408 + {chain: 2, addr: "000000000000000000000000875773784af8135ea0ef43b5a374aad105c5d39e", symbol: "IDLE", coinGeckoId: "idle", decimals: 18, price: 0.288118}, // Addr: 0x875773784af8135ea0ef43b5a374aad105c5d39e, Notional: 14.405899999999999 + {chain: 2, addr: "000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", symbol: "USDC", coinGeckoId: "usd-coin", decimals: 6, price: 0.999097}, // Addr: 0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48, Notional: 277130000.69382954 + {chain: 2, addr: "00000000000000000000000019062190b1925b5b6689d7073fdfc8c2976ef8cb", symbol: "BZZ", coinGeckoId: "swarm-bzz", decimals: 16, price: 0.251941}, // Addr: 0x19062190b1925b5b6689d7073fdfc8c2976ef8cb, Notional: 2.5194100000000005e-9 + {chain: 2, addr: "000000000000000000000000667210a731447f8b385e068205759be2311b86d4", symbol: "ETF", coinGeckoId: "etf-the-token", decimals: 18, price: 0.00646977}, // Addr: 0x667210a731447f8b385e068205759be2311b86d4, Notional: 3825.4817964097583 + {chain: 2, addr: "000000000000000000000000aa7a9ca87d3694b5755f213b5d04094b8d0f0a6f", symbol: "TRAC", coinGeckoId: "origintrail", decimals: 18, price: 0.515042}, // Addr: 0xaa7a9ca87d3694b5755f213b5d04094b8d0f0a6f, Notional: 43070.13809420916 + {chain: 2, addr: "000000000000000000000000255f1b39172f65dc6406b8bee8b08155c45fe1b6", symbol: "HARAMBE", coinGeckoId: "harambecoin", decimals: 18, price: 0.00000102}, // Addr: 0x255f1b39172f65dc6406b8bee8b08155c45fe1b6, Notional: 71045.25756122924 + {chain: 2, addr: "0000000000000000000000007fc66500c84a76ad7e9c93437bfc5ac33e2ddae9", symbol: "AAVE", coinGeckoId: "aave", decimals: 18, price: 106.13}, // Addr: 0x7fc66500c84a76ad7e9c93437bfc5ac33e2ddae9, Notional: 1149.5278833474001 + {chain: 2, addr: "00000000000000000000000009a3ecafa817268f77be1283176b946c4ff2e608", symbol: "MIR", coinGeckoId: "mirror-protocol", decimals: 18, price: 0.02060553}, // Addr: 0x09a3ecafa817268f77be1283176b946c4ff2e608, Notional: 180.35063582580733 + {chain: 2, addr: "000000000000000000000000defb0b264032e4e128b00d02b3fd0aa00331237b", symbol: "Buddha", coinGeckoId: "buddha", decimals: 18, price: 9.84511e-7}, // Addr: 0xdefb0b264032e4e128b00d02b3fd0aa00331237b, Notional: 6302.760856180874 + {chain: 2, addr: "000000000000000000000000c6c9448a86882d73164a984fa52285ab51c823bc", symbol: "RPILL", coinGeckoId: "red-pill-2", decimals: 18, price: 8.60563e-7}, // Addr: 0xc6c9448a86882d73164a984fa52285ab51c823bc, Notional: 5796.386886872917 + {chain: 2, addr: "000000000000000000000000cc503242b574bc01145da7e2a743b43fb395ec91", symbol: "ROVI", coinGeckoId: "rovi-protocol", decimals: 18, price: 0.02260218}, // Addr: 0xcc503242b574bc01145da7e2a743b43fb395ec91, Notional: 3.4127031582000003 + {chain: 2, addr: "000000000000000000000000594daad7d77592a2b97b725a7ad59d7e188b5bfa", symbol: "APU", coinGeckoId: "apu-s-club", decimals: 18, price: 0.00025787}, // Addr: 0x594daad7d77592a2b97b725a7ad59d7e188b5bfa, Notional: 0.0025786999999999997 + {chain: 2, addr: "0000000000000000000000002370f9d504c7a6e775bf6e14b3f12846b594cd53", symbol: "JPYC", coinGeckoId: "jpyc", decimals: 18, price: 0.0072278}, // Addr: 0x2370f9d504c7a6e775bf6e14b3f12846b594cd53, Notional: 7.2278 {chain: 2, addr: "000000000000000000000000bd2f0cd039e0bfcf88901c98c0bfac5ab27566e3", symbol: "DSD", coinGeckoId: "dynamic-set-dollar", decimals: 18, price: 3.531e-8}, // Addr: 0xbd2f0cd039e0bfcf88901c98c0bfac5ab27566e3, Notional: 13.453689879628266 - {chain: 2, addr: "000000000000000000000000d4c435f5b09f855c3317c8524cb1f586e42795fa", symbol: "CND", coinGeckoId: "cindicator", decimals: 18, price: 0.0006331}, // Addr: 0xd4c435f5b09f855c3317c8524cb1f586e42795fa, Notional: 0.0025324 - {chain: 2, addr: "000000000000000000000000cfa0885131f602d11d4da248d2c65a62063567a9", symbol: "TORG", coinGeckoId: "torg", decimals: 18, price: 5.0529e-8}, // Addr: 0xcfa0885131f602d11d4da248d2c65a62063567a9, Notional: 2.0211648002550002 - {chain: 2, addr: "000000000000000000000000f0d33beda4d734c72684b5f9abbebf715d0a7935", symbol: "NTX", coinGeckoId: "nunet", decimals: 6, price: 0.04526456}, // Addr: 0xf0d33beda4d734c72684b5f9abbebf715d0a7935, Notional: 10.6430559928 - {chain: 2, addr: "000000000000000000000000c5102fe9359fd9a28f877a67e36b0f050d81a3cc", symbol: "HOP", coinGeckoId: "hop-protocol", decimals: 18, price: 0.03724175}, // Addr: 0xc5102fe9359fd9a28f877a67e36b0f050d81a3cc, Notional: 1.1172525 - {chain: 2, addr: "000000000000000000000000db726152680ece3c9291f1016f1d36f3995f6941", symbol: "MEDIA", coinGeckoId: "media-network", decimals: 6, price: 19.21}, // Addr: 0xdb726152680ece3c9291f1016f1d36f3995f6941, Notional: 19.21 - {chain: 2, addr: "000000000000000000000000958a03181806cb8807bef40e864e55f89b3393d3", symbol: "UTX", coinGeckoId: "utix", decimals: 18, price: 0.02986615}, // Addr: 0x958a03181806cb8807bef40e864e55f89b3393d3, Notional: 2.986615 - {chain: 2, addr: "000000000000000000000000ac51066d7bec65dc4589368da368b212745d63e8", symbol: "ALICE", coinGeckoId: "my-neighbor-alice", decimals: 6, price: 1.13}, // Addr: 0xac51066d7bec65dc4589368da368b212745d63e8, Notional: 2.26 - {chain: 2, addr: "00000000000000000000000056015bbe3c01fe05bc30a8a9a9fd9a88917e7db3", symbol: "CAT", coinGeckoId: "cat-token", decimals: 18, price: 0.124275}, // Addr: 0x56015bbe3c01fe05bc30a8a9a9fd9a88917e7db3, Notional: 248.54999999999998 - {chain: 2, addr: "0000000000000000000000005f98805a4e8be255a32880fdec7f6728c6568ba0", symbol: "LUSD", coinGeckoId: "liquity-usd", decimals: 18, price: 1}, // Addr: 0x5f98805a4e8be255a32880fdec7f6728c6568ba0, Notional: 2 - {chain: 2, addr: "000000000000000000000000d533a949740bb3306d119cc777fa900ba034cd52", symbol: "CRV", coinGeckoId: "curve-dao-token", decimals: 18, price: 0.406068}, // Addr: 0xd533a949740bb3306d119cc777fa900ba034cd52, Notional: 15480.046738737787 - {chain: 2, addr: "000000000000000000000000a1d6df714f91debf4e0802a542e13067f31b8262", symbol: "RFOX", coinGeckoId: "redfox-labs-2", decimals: 18, price: 0.00414423}, // Addr: 0xa1d6df714f91debf4e0802a542e13067f31b8262, Notional: 227.93679422999998 - {chain: 2, addr: "00000000000000000000000043fe2b0c5485c10e772a1843e32a7642ace5b88c", symbol: "RPILL", coinGeckoId: "red-pill-2", decimals: 18, price: 0.00000143}, // Addr: 0x43fe2b0c5485c10e772a1843e32a7642ace5b88c, Notional: 20006.310306658394 - {chain: 2, addr: "0000000000000000000000008ed97a637a790be1feff5e888d43629dc05408f6", symbol: "NPC", coinGeckoId: "non-playable-coin", decimals: 18, price: 0.00414291}, // Addr: 0x8ed97a637a790be1feff5e888d43629dc05408f6, Notional: 1060252.950201377 - {chain: 2, addr: "000000000000000000000000ba386a4ca26b85fd057ab1ef86e3dc7bdeb5ce70", symbol: "JESUS", coinGeckoId: "jesus-coin", decimals: 18, price: 6.602e-8}, // Addr: 0xba386a4ca26b85fd057ab1ef86e3dc7bdeb5ce70, Notional: 12172.290505337001 - {chain: 2, addr: "0000000000000000000000006982508145454ce325ddbe47a25d4ec3d2311933", symbol: "PEPE", coinGeckoId: "pepe", decimals: 18, price: 0.00000621}, // Addr: 0x6982508145454ce325ddbe47a25d4ec3d2311933, Notional: 26007.943997373302 - {chain: 2, addr: "00000000000000000000000012bb890508c125661e03b09ec06e404bc9289040", symbol: "RACA", coinGeckoId: "radio-caca", decimals: 18, price: 0.00020774}, // Addr: 0x12bb890508c125661e03b09ec06e404bc9289040, Notional: 8.590660053470078 - {chain: 2, addr: "000000000000000000000000e516d78d784c77d479977be58905b3f2b1111126", symbol: "SPWN", coinGeckoId: "bitspawn", decimals: 18, price: 0.00008837}, // Addr: 0xe516d78d784c77d479977be58905b3f2b1111126, Notional: 124.51406179145656 - {chain: 2, addr: "000000000000000000000000b1f66997a5760428d3a87d68b90bfe0ae64121cc", symbol: "LUA", coinGeckoId: "lua-token", decimals: 18, price: 0.03499621}, // Addr: 0xb1f66997a5760428d3a87d68b90bfe0ae64121cc, Notional: 89803.21454164 - {chain: 2, addr: "000000000000000000000000d46ba6d942050d489dbd938a2c909a5d5039a161", symbol: "AMPL", coinGeckoId: "ampleforth", decimals: 9, price: 0.936171}, // Addr: 0xd46ba6d942050d489dbd938a2c909a5d5039a161, Notional: 9.3213556001082 - {chain: 2, addr: "0000000000000000000000005b52bfb8062ce664d74bbcd4cd6dc7df53fd7233", symbol: "ZENIQ", coinGeckoId: "zeniq", decimals: 18, price: 0.02701144}, // Addr: 0x5b52bfb8062ce664d74bbcd4cd6dc7df53fd7233, Notional: 7.36210412748515 - {chain: 2, addr: "000000000000000000000000a35923162c49cf95e6bf26623385eb431ad920d3", symbol: "TURBO", coinGeckoId: "turbo", decimals: 18, price: 0.00050463}, // Addr: 0xa35923162c49cf95e6bf26623385eb431ad920d3, Notional: 8928.094096351117 - {chain: 2, addr: "0000000000000000000000001f9840a85d5af5bf1d1762f925bdaddc4201f984", symbol: "UNI", coinGeckoId: "uniswap", decimals: 18, price: 6.84}, // Addr: 0x1f9840a85d5af5bf1d1762f925bdaddc4201f984, Notional: 407127.59163045 - {chain: 2, addr: "000000000000000000000000e7f72bc0252ca7b16dbb72eeee1afcdb2429f2dd", symbol: "NFTL", coinGeckoId: "nftlaunch", decimals: 18, price: 0.00354106}, // Addr: 0xe7f72bc0252ca7b16dbb72eeee1afcdb2429f2dd, Notional: 3.5764706 - {chain: 2, addr: "0000000000000000000000000f5d2fb29fb7d3cfee444a200298f468908cc942", symbol: "MANA", coinGeckoId: "decentraland", decimals: 18, price: 0.408926}, // Addr: 0x0f5d2fb29fb7d3cfee444a200298f468908cc942, Notional: 28745.715034261586 - {chain: 2, addr: "00000000000000000000000000c5ca160a968f47e7272a0cfcda36428f386cb6", symbol: "USDEBT", coinGeckoId: "usdebt", decimals: 18, price: 1.1689e-8}, // Addr: 0x00c5ca160a968f47e7272a0cfcda36428f386cb6, Notional: 2105.145619836239 - {chain: 2, addr: "000000000000000000000000c0a4df35568f116c370e6a6a6022ceb908eeddac", symbol: "UMEE", coinGeckoId: "umee", decimals: 6, price: 0.00288544}, // Addr: 0xc0a4df35568f116c370e6a6a6022ceb908eeddac, Notional: 2.88544 - {chain: 2, addr: "000000000000000000000000152649ea73beab28c5b49b26eb48f7ead6d4c898", symbol: "Cake", coinGeckoId: "pancakeswap-token", decimals: 18, price: 2.45}, // Addr: 0x152649ea73beab28c5b49b26eb48f7ead6d4c898, Notional: 4.933608438500001 - {chain: 2, addr: "0000000000000000000000001fee5588cb1de19c70b6ad5399152d8c643fae7b", symbol: "PHTK", coinGeckoId: "phuntoken", decimals: 18, price: 0.00104492}, // Addr: 0x1fee5588cb1de19c70b6ad5399152d8c643fae7b, Notional: 1.04492 - {chain: 2, addr: "00000000000000000000000059f4f336bf3d0c49dbfba4a74ebd2a6ace40539a", symbol: "CAT", coinGeckoId: "catcoin-cash", decimals: 9, price: 6.02945e-10}, // Addr: 0x59f4f336bf3d0c49dbfba4a74ebd2a6ace40539a, Notional: 75.1837522014633 - {chain: 2, addr: "000000000000000000000000f64265e65c4529879a7abf467e00d39e39c0b0da", symbol: "RFKJ", coinGeckoId: "independence-token", decimals: 18, price: 0.00030272}, // Addr: 0xf64265e65c4529879a7abf467e00d39e39c0b0da, Notional: 390083.913934346 - {chain: 2, addr: "0000000000000000000000004da34f8264cb33a5c9f17081b9ef5ff6091116f4", symbol: "ELFI", coinGeckoId: "elyfi", decimals: 18, price: 0.01257214}, // Addr: 0x4da34f8264cb33a5c9f17081b9ef5ff6091116f4, Notional: 225226.52655314968 - {chain: 2, addr: "000000000000000000000000caabcaa4ca42e1d86de1a201c818639def0ba7a7", symbol: "TALK", coinGeckoId: "talken", decimals: 18, price: 0.15115}, // Addr: 0xcaabcaa4ca42e1d86de1a201c818639def0ba7a7, Notional: 15021.344883983804 - {chain: 2, addr: "00000000000000000000000000a8b738e453ffd858a7edf03bccfe20412f0eb0", symbol: "ALBT", coinGeckoId: "allianceblock", decimals: 18, price: 0.0001895}, // Addr: 0x00a8b738e453ffd858a7edf03bccfe20412f0eb0, Notional: 0.027653408650679997 - {chain: 2, addr: "0000000000000000000000000f51bb10119727a7e5ea3538074fb341f56b09ad", symbol: "DAO", coinGeckoId: "dao-maker", decimals: 18, price: 0.8512}, // Addr: 0x0f51bb10119727a7e5ea3538074fb341f56b09ad, Notional: 338.958197639936 - {chain: 2, addr: "0000000000000000000000004a220e6096b25eadb88358cb44068a3248254675", symbol: "QNT", coinGeckoId: "quant-network", decimals: 18, price: 97.64}, // Addr: 0x4a220e6096b25eadb88358cb44068a3248254675, Notional: 4.882000000000001 - {chain: 2, addr: "000000000000000000000000030ba81f1c18d280636f32af80b9aad02cf0854e", symbol: "aWETH", coinGeckoId: "aave-weth", decimals: 18, price: 2903.05}, // Addr: 0x030ba81f1c18d280636f32af80b9aad02cf0854e, Notional: 870.9528557720001 - {chain: 2, addr: "0000000000000000000000002cb5d9fd89d48c516f11904117c57e3934f39524", symbol: "CUTE", coinGeckoId: "pepe-uwu", decimals: 18, price: 0.000001}, // Addr: 0x2cb5d9fd89d48c516f11904117c57e3934f39524, Notional: 115492.96033411384 - {chain: 2, addr: "000000000000000000000000249e38ea4102d0cf8264d3701f1a0e39c4f2dc3b", symbol: "UFO", coinGeckoId: "ufo-gaming", decimals: 18, price: 8.14247e-7}, // Addr: 0x249e38ea4102d0cf8264d3701f1a0e39c4f2dc3b, Notional: 24.795856138151457 - {chain: 2, addr: "0000000000000000000000008ab7404063ec4dbcfd4598215992dc3f8ec853d7", symbol: "AKRO", coinGeckoId: "akropolis", decimals: 18, price: 0.00665718}, // Addr: 0x8ab7404063ec4dbcfd4598215992dc3f8ec853d7, Notional: 227.784814969596 - {chain: 2, addr: "000000000000000000000000cc8fa225d80b9c7d42f96e9570156c65d6caaa25", symbol: "SLP", coinGeckoId: "smooth-love-potion", decimals: 0, price: 0.00362186}, // Addr: 0xcc8fa225d80b9c7d42f96e9570156c65d6caaa25, Notional: 7281.20987286 - {chain: 2, addr: "000000000000000000000000ae78736cd615f374d3085123a210448e74fc6393", symbol: "rETH", coinGeckoId: "rocket-pool-eth", decimals: 18, price: 3201.6}, // Addr: 0xae78736cd615f374d3085123a210448e74fc6393, Notional: 1120.56 - {chain: 2, addr: "0000000000000000000000001a11ea9d61588d756d9f1014c3cf0d226aedd279", symbol: "MILEI", coinGeckoId: "milei-token", decimals: 18, price: 0.066849}, // Addr: 0x1a11ea9d61588d756d9f1014c3cf0d226aedd279, Notional: 25012.87514714482 - {chain: 2, addr: "000000000000000000000000485d17a6f1b8780392d53d64751824253011a260", symbol: "TIME", coinGeckoId: "chronobank", decimals: 8, price: 29.91}, // Addr: 0x485d17a6f1b8780392d53d64751824253011a260, Notional: 26.919 - {chain: 2, addr: "000000000000000000000000e28b3b32b6c345a34ff64674606124dd5aceca30", symbol: "INJ", coinGeckoId: "injective-protocol", decimals: 18, price: 22.87}, // Addr: 0xe28b3b32b6c345a34ff64674606124dd5aceca30, Notional: 196874.4488604262 - {chain: 2, addr: "0000000000000000000000005f944b0c4315cb7c3a846b025ab4045da44abf6c", symbol: "GCAKE", coinGeckoId: "pancake-games", decimals: 18, price: 7.9337e-8}, // Addr: 0x5f944b0c4315cb7c3a846b025ab4045da44abf6c, Notional: 0.05932538772100006 - {chain: 2, addr: "000000000000000000000000baac2b4491727d78d2b78815144570b9f2fe8899", symbol: "DOG", coinGeckoId: "the-doge-nft", decimals: 18, price: 0.01189264}, // Addr: 0xbaac2b4491727d78d2b78815144570b9f2fe8899, Notional: 2918555.795920908 - {chain: 2, addr: "00000000000000000000000092d6c1e31e14520e676a687f0a93788b716beff5", symbol: "DYDX", coinGeckoId: "dydx", decimals: 18, price: 1.98}, // Addr: 0x92d6c1e31e14520e676a687f0a93788b716beff5, Notional: 52885.7563350204 - {chain: 2, addr: "000000000000000000000000f1182229b71e79e504b1d2bf076c15a277311e05", symbol: "LBR", coinGeckoId: "lybra-finance", decimals: 18, price: 0.198311}, // Addr: 0xf1182229b71e79e504b1d2bf076c15a277311e05, Notional: 0.0198311 - {chain: 2, addr: "000000000000000000000000888888888889c00c67689029d7856aac1065ec11", symbol: "OPIUM", coinGeckoId: "opium", decimals: 18, price: 0.113553}, // Addr: 0x888888888889c00c67689029d7856aac1065ec11, Notional: 1.13553 - {chain: 2, addr: "000000000000000000000000ae1eaae3f627aaca434127644371b67b18444051", symbol: "YOP", coinGeckoId: "yield-optimization-platform", decimals: 8, price: 0.00012355}, // Addr: 0xae1eaae3f627aaca434127644371b67b18444051, Notional: 0.00926625 - {chain: 2, addr: "0000000000000000000000007ddc52c4de30e94be3a6a0a2b259b2850f421989", symbol: "GMT", coinGeckoId: "gmt-token", decimals: 18, price: 0.324272}, // Addr: 0x7ddc52c4de30e94be3a6a0a2b259b2850f421989, Notional: 467.89435509270686 - {chain: 2, addr: "000000000000000000000000bcca60bb61934080951369a648fb03df4f96263c", symbol: "aUSDC", coinGeckoId: "aave-usdc", decimals: 6, price: 1.001}, // Addr: 0xbcca60bb61934080951369a648fb03df4f96263c, Notional: 7.0154454369999995 - {chain: 2, addr: "00000000000000000000000066c0dded8433c9ea86c8cf91237b14e10b4d70b7", symbol: "Mars", coinGeckoId: "mars", decimals: 18, price: 3.795e-15}, // Addr: 0x66c0dded8433c9ea86c8cf91237b14e10b4d70b7, Notional: 5.556602093187437e-10 - {chain: 2, addr: "000000000000000000000000f70ce9ee486106882d3dc43ddbd84e0fa71ac2a5", symbol: "DUCKER", coinGeckoId: "ducker", decimals: 18, price: 0.00000345}, // Addr: 0xf70ce9ee486106882d3dc43ddbd84e0fa71ac2a5, Notional: 4328.025 - {chain: 2, addr: "00000000000000000000000070e8de73ce538da2beed35d14187f6959a8eca96", symbol: "XSGD", coinGeckoId: "xsgd", decimals: 6, price: 0.729354}, // Addr: 0x70e8de73ce538da2beed35d14187f6959a8eca96, Notional: 40.355649133949996 - {chain: 2, addr: "000000000000000000000000ffbf315f70e458e49229654dea4ce192d26f9b25", symbol: "VOLT", coinGeckoId: "voltage", decimals: 18, price: 0.00487765}, // Addr: 0xffbf315f70e458e49229654dea4ce192d26f9b25, Notional: 0.487765 - {chain: 2, addr: "00000000000000000000000070401dfd142a16dc7031c56e862fc88cb9537ce0", symbol: "BIRD", coinGeckoId: "bird-money", decimals: 18, price: 17}, // Addr: 0x70401dfd142a16dc7031c56e862fc88cb9537ce0, Notional: 187 - {chain: 2, addr: "0000000000000000000000004ec1b60b96193a64acae44778e51f7bff2007831", symbol: "EDGE", coinGeckoId: "edge", decimals: 18, price: 0.14098}, // Addr: 0x4ec1b60b96193a64acae44778e51f7bff2007831, Notional: 1205.5859811968 - {chain: 2, addr: "00000000000000000000000077e06c9eccf2e797fd462a92b6d7642ef85b0a44", symbol: "wTAO", coinGeckoId: "wrapped-tao", decimals: 9, price: 361.44}, // Addr: 0x77e06c9eccf2e797fd462a92b6d7642ef85b0a44, Notional: 6.3805979087999996 - {chain: 2, addr: "000000000000000000000000e4cfe9eaa8cdb0942a80b7bc68fd8ab0f6d44903", symbol: "XEND", coinGeckoId: "xend-finance", decimals: 18, price: 0.147362}, // Addr: 0xe4cfe9eaa8cdb0942a80b7bc68fd8ab0f6d44903, Notional: 853.2129022708928 - {chain: 2, addr: "000000000000000000000000f17e65822b568b3903685a7c9f496cf7656cc6c2", symbol: "BICO", coinGeckoId: "biconomy", decimals: 18, price: 0.418539}, // Addr: 0xf17e65822b568b3903685a7c9f496cf7656cc6c2, Notional: 362474.63920935965 - {chain: 2, addr: "00000000000000000000000033d0568941c0c64ff7e0fb4fba0b11bd37deed9f", symbol: "RAMP", coinGeckoId: "ramp", decimals: 18, price: 0.103322}, // Addr: 0x33d0568941c0c64ff7e0fb4fba0b11bd37deed9f, Notional: 1.03322 - {chain: 2, addr: "0000000000000000000000000bc529c00c6401aef6d220be8c6ea1667f6ad93e", symbol: "YFI", coinGeckoId: "yearn-finance", decimals: 18, price: 6573.84}, // Addr: 0x0bc529c00c6401aef6d220be8c6ea1667f6ad93e, Notional: 218039.62141983843 - {chain: 2, addr: "0000000000000000000000002598c30330d5771ae9f983979209486ae26de875", symbol: "AI", coinGeckoId: "any-inu", decimals: 18, price: 0.00002101}, // Addr: 0x2598c30330d5771ae9f983979209486ae26de875, Notional: 1210788.1301343904 - {chain: 2, addr: "0000000000000000000000001494ca1f11d487c2bbe4543e90080aeba4ba3c2b", symbol: "DPI", coinGeckoId: "defipulse-index", decimals: 18, price: 93.83}, // Addr: 0x1494ca1f11d487c2bbe4543e90080aeba4ba3c2b, Notional: 2.8663601252 - {chain: 2, addr: "000000000000000000000000170dec83c7753aaad20c01a0016b5a2e143990d4", symbol: "WIGGER", coinGeckoId: "wigger", decimals: 18, price: 0.00017274}, // Addr: 0x170dec83c7753aaad20c01a0016b5a2e143990d4, Notional: 3269.49338670833 - {chain: 2, addr: "0000000000000000000000002ba592f78db6436527729929aaf6c908497cb200", symbol: "CREAM", coinGeckoId: "cream-2", decimals: 18, price: 40.9}, // Addr: 0x2ba592f78db6436527729929aaf6c908497cb200, Notional: 406.15836206999995 - {chain: 2, addr: "00000000000000000000000045804880de22913dafe09f4980848ece6ecbaf78", symbol: "PAXG", coinGeckoId: "pax-gold", decimals: 18, price: 2302.69}, // Addr: 0x45804880de22913dafe09f4980848ece6ecbaf78, Notional: 7055.6048450485005 - {chain: 2, addr: "000000000000000000000000111111111117dc0aa78b770fa6a738034120c302", symbol: "1INCH", coinGeckoId: "1inch", decimals: 18, price: 0.382153}, // Addr: 0x111111111117dc0aa78b770fa6a738034120c302, Notional: 339475.9825416549 - {chain: 2, addr: "000000000000000000000000476c5e26a75bd202a9683ffd34359c0cc15be0ff", symbol: "SRM", coinGeckoId: "serum", decimals: 6, price: 0.04273177}, // Addr: 0x476c5e26a75bd202a9683ffd34359c0cc15be0ff, Notional: 132993.41004662344 - {chain: 2, addr: "00000000000000000000000065e6b60ea01668634d68d0513fe814679f925bad", symbol: "PIXEL", coinGeckoId: "pixelverse", decimals: 18, price: 0.00055943}, // Addr: 0x65e6b60ea01668634d68d0513fe814679f925bad, Notional: 73170.81597812705 - {chain: 2, addr: "000000000000000000000000f19308f923582a6f7c465e5ce7a9dc1bec6665b1", symbol: "TITANX", coinGeckoId: "titanx", decimals: 18, price: 2.13684e-7}, // Addr: 0xf19308f923582a6f7c465e5ce7a9dc1bec6665b1, Notional: 373.20158783342174 - {chain: 2, addr: "000000000000000000000000ff56cc6b1e6ded347aa0b7676c85ab0b3d08b0fa", symbol: "ORBS", coinGeckoId: "orbs", decimals: 18, price: 0.03185012}, // Addr: 0xff56cc6b1e6ded347aa0b7676c85ab0b3d08b0fa, Notional: 12354.173517204721 - {chain: 2, addr: "0000000000000000000000006fc13eace26590b80cccab1ba5d51890577d83b2", symbol: "UMB", coinGeckoId: "umbrella-network", decimals: 18, price: 0.0195002}, // Addr: 0x6fc13eace26590b80cccab1ba5d51890577d83b2, Notional: 2.5892549589237457 - {chain: 2, addr: "000000000000000000000000df09a216fac5adc3e640db418c0b956076509503", symbol: "PKN", coinGeckoId: "poken", decimals: 18, price: 0.00080792}, // Addr: 0xdf09a216fac5adc3e640db418c0b956076509503, Notional: 57.76857449279999 - {chain: 2, addr: "0000000000000000000000003b484b82567a09e2588a13d54d032153f0c0aee0", symbol: "SOS", coinGeckoId: "opendao", decimals: 18, price: 2.5036e-8}, // Addr: 0x3b484b82567a09e2588a13d54d032153f0c0aee0, Notional: 20.86741705446999 - {chain: 2, addr: "000000000000000000000000569d0e52c3dbe95983bcc2434cb9f69d905be919", symbol: "roar", coinGeckoId: "roaring-kitty", decimals: 9, price: 0.00008455}, // Addr: 0x569d0e52c3dbe95983bcc2434cb9f69d905be919, Notional: 4972.6932125874255 - {chain: 2, addr: "00000000000000000000000067f4c72a50f8df6487720261e188f2abe83f57d7", symbol: "wPOKT", coinGeckoId: "wrapped-pokt", decimals: 6, price: 0.127556}, // Addr: 0x67f4c72a50f8df6487720261e188f2abe83f57d7, Notional: 0.127556 - {chain: 2, addr: "000000000000000000000000fc5e4ed56153b57aa8ef769eba3e79e58e19be93", symbol: "SOLAV", coinGeckoId: "solav", decimals: 18, price: 0.00075892}, // Addr: 0xfc5e4ed56153b57aa8ef769eba3e79e58e19be93, Notional: 0.00455352 - {chain: 2, addr: "000000000000000000000000aee433adebe0fbb88daa47ef0c1a513caa52ef02", symbol: "TOON", coinGeckoId: "pontoon", decimals: 18, price: 0.00120347}, // Addr: 0xaee433adebe0fbb88daa47ef0c1a513caa52ef02, Notional: 24.540421490096954 - {chain: 2, addr: "0000000000000000000000003301ee63fb29f863f2333bd4466acb46cd8323e6", symbol: "AKITA", coinGeckoId: "akita-inu", decimals: 18, price: 1.62846e-7}, // Addr: 0x3301ee63fb29f863f2333bd4466acb46cd8323e6, Notional: 40.86370390721001 - {chain: 2, addr: "000000000000000000000000db0170e2d0c1cc1b2e7a90313d9b9afa4f250289", symbol: "ADAPAD", coinGeckoId: "adapad", decimals: 18, price: 0.00697327}, // Addr: 0xdb0170e2d0c1cc1b2e7a90313d9b9afa4f250289, Notional: 18.070993661049148 - {chain: 2, addr: "00000000000000000000000064df3aab3b21cc275bb76c4a581cf8b726478ee0", symbol: "CRAMER", coinGeckoId: "cramer-coin", decimals: 18, price: 0.00048468}, // Addr: 0x64df3aab3b21cc275bb76c4a581cf8b726478ee0, Notional: 14365.055215904016 - {chain: 2, addr: "0000000000000000000000000c572544a4ee47904d54aaa6a970af96b6f00e1b", symbol: "WAS", coinGeckoId: "wasder", decimals: 18, price: 0.01085204}, // Addr: 0x0c572544a4ee47904d54aaa6a970af96b6f00e1b, Notional: 11528.17117525331 - {chain: 2, addr: "0000000000000000000000003845badade8e6dff049820680d1f14bd3903a5d0", symbol: "SAND", coinGeckoId: "the-sandbox", decimals: 18, price: 0.410207}, // Addr: 0x3845badade8e6dff049820680d1f14bd3903a5d0, Notional: 29724.861520568746 - {chain: 2, addr: "000000000000000000000000ff836a5821e69066c87e268bc51b849fab94240c", symbol: "шайлушай", coinGeckoId: "real-smurf-cat", decimals: 18, price: 0.00008194}, // Addr: 0xff836a5821e69066c87e268bc51b849fab94240c, Notional: 33499.66150493634 + {chain: 2, addr: "000000000000000000000000d4c435f5b09f855c3317c8524cb1f586e42795fa", symbol: "CND", coinGeckoId: "cindicator", decimals: 18, price: 0.00043664}, // Addr: 0xd4c435f5b09f855c3317c8524cb1f586e42795fa, Notional: 0.00174656 + {chain: 2, addr: "000000000000000000000000cfa0885131f602d11d4da248d2c65a62063567a9", symbol: "TORG", coinGeckoId: "torg", decimals: 18, price: 3.5902e-8}, // Addr: 0xcfa0885131f602d11d4da248d2c65a62063567a9, Notional: 1.43608341069 + {chain: 2, addr: "000000000000000000000000f0d33beda4d734c72684b5f9abbebf715d0a7935", symbol: "NTX", coinGeckoId: "nunet", decimals: 6, price: 0.02966671}, // Addr: 0xf0d33beda4d734c72684b5f9abbebf715d0a7935, Notional: 6.975533522299999 + {chain: 2, addr: "000000000000000000000000c5102fe9359fd9a28f877a67e36b0f050d81a3cc", symbol: "HOP", coinGeckoId: "hop-protocol", decimals: 18, price: 0.02256749}, // Addr: 0xc5102fe9359fd9a28f877a67e36b0f050d81a3cc, Notional: 0.6770246999999999 + {chain: 2, addr: "000000000000000000000000db726152680ece3c9291f1016f1d36f3995f6941", symbol: "MEDIA", coinGeckoId: "media-network", decimals: 6, price: 10.85}, // Addr: 0xdb726152680ece3c9291f1016f1d36f3995f6941, Notional: 10.85 + {chain: 2, addr: "000000000000000000000000958a03181806cb8807bef40e864e55f89b3393d3", symbol: "UTX", coinGeckoId: "utix", decimals: 18, price: 0.02022121}, // Addr: 0x958a03181806cb8807bef40e864e55f89b3393d3, Notional: 8178.2273296493895 + {chain: 2, addr: "000000000000000000000000ac51066d7bec65dc4589368da368b212745d63e8", symbol: "ALICE", coinGeckoId: "my-neighbor-alice", decimals: 6, price: 0.906183}, // Addr: 0xac51066d7bec65dc4589368da368b212745d63e8, Notional: 1.812366 + {chain: 2, addr: "00000000000000000000000056015bbe3c01fe05bc30a8a9a9fd9a88917e7db3", symbol: "CAT", coinGeckoId: "cat-token", decimals: 18, price: 0.063271}, // Addr: 0x56015bbe3c01fe05bc30a8a9a9fd9a88917e7db3, Notional: 126.54199999999999 + {chain: 2, addr: "0000000000000000000000005f98805a4e8be255a32880fdec7f6728c6568ba0", symbol: "LUSD", coinGeckoId: "liquity-usd", decimals: 18, price: 0.995568}, // Addr: 0x5f98805a4e8be255a32880fdec7f6728c6568ba0, Notional: 1.991136 + {chain: 2, addr: "000000000000000000000000d533a949740bb3306d119cc777fa900ba034cd52", symbol: "CRV", coinGeckoId: "curve-dao-token", decimals: 18, price: 0.324151}, // Addr: 0xd533a949740bb3306d119cc777fa900ba034cd52, Notional: 12357.222510536641 + {chain: 2, addr: "000000000000000000000000a1d6df714f91debf4e0802a542e13067f31b8262", symbol: "RFOX", coinGeckoId: "redfox-labs-2", decimals: 18, price: 0.00208692}, // Addr: 0xa1d6df714f91debf4e0802a542e13067f31b8262, Notional: 114.78268691999999 + {chain: 2, addr: "00000000000000000000000043fe2b0c5485c10e772a1843e32a7642ace5b88c", symbol: "RPILL", coinGeckoId: "red-pill-2", decimals: 18, price: 8.60563e-7}, // Addr: 0x43fe2b0c5485c10e772a1843e32a7642ace5b88c, Notional: 11985.139430387442 + {chain: 2, addr: "0000000000000000000000008ed97a637a790be1feff5e888d43629dc05408f6", symbol: "NPC", coinGeckoId: "non-playable-coin", decimals: 18, price: 0.02136428}, // Addr: 0x8ed97a637a790be1feff5e888d43629dc05408f6, Notional: 6707537.5826323 + {chain: 2, addr: "000000000000000000000000ba386a4ca26b85fd057ab1ef86e3dc7bdeb5ce70", symbol: "JESUS", coinGeckoId: "jesus-coin", decimals: 18, price: 8.0266e-8}, // Addr: 0xba386a4ca26b85fd057ab1ef86e3dc7bdeb5ce70, Notional: 3788.2804036387897 + {chain: 2, addr: "0000000000000000000000006982508145454ce325ddbe47a25d4ec3d2311933", symbol: "PEPE", coinGeckoId: "pepe", decimals: 18, price: 0.00000802}, // Addr: 0x6982508145454ce325ddbe47a25d4ec3d2311933, Notional: 33366.91896891144 + {chain: 2, addr: "00000000000000000000000012bb890508c125661e03b09ec06e404bc9289040", symbol: "RACA", coinGeckoId: "radio-caca", decimals: 18, price: 0.00014014}, // Addr: 0x12bb890508c125661e03b09ec06e404bc9289040, Notional: 5.795201212541141 + {chain: 2, addr: "000000000000000000000000e516d78d784c77d479977be58905b3f2b1111126", symbol: "SPWN", coinGeckoId: "bitspawn", decimals: 18, price: 0.00002693}, // Addr: 0xe516d78d784c77d479977be58905b3f2b1111126, Notional: 37.94459300717354 + {chain: 2, addr: "000000000000000000000000b1f66997a5760428d3a87d68b90bfe0ae64121cc", symbol: "LUA", coinGeckoId: "lua-token", decimals: 18, price: 0.03696454}, // Addr: 0xb1f66997a5760428d3a87d68b90bfe0ae64121cc, Notional: 94854.11466136 + {chain: 2, addr: "000000000000000000000000d46ba6d942050d489dbd938a2c909a5d5039a161", symbol: "AMPL", coinGeckoId: "ampleforth", decimals: 9, price: 0.940037}, // Addr: 0xd46ba6d942050d489dbd938a2c909a5d5039a161, Notional: 9.3598489530854 + {chain: 2, addr: "0000000000000000000000005b52bfb8062ce664d74bbcd4cd6dc7df53fd7233", symbol: "ZENIQ", coinGeckoId: "zeniq", decimals: 18, price: 0.0145159}, // Addr: 0x5b52bfb8062ce664d74bbcd4cd6dc7df53fd7233, Notional: 3.9563817147164935 + {chain: 2, addr: "000000000000000000000000a35923162c49cf95e6bf26623385eb431ad920d3", symbol: "TURBO", coinGeckoId: "turbo", decimals: 18, price: 0.00414214}, // Addr: 0xa35923162c49cf95e6bf26623385eb431ad920d3, Notional: 414744.9599292185 + {chain: 2, addr: "0000000000000000000000001f9840a85d5af5bf1d1762f925bdaddc4201f984", symbol: "UNI", coinGeckoId: "uniswap", decimals: 18, price: 6.44}, // Addr: 0x1f9840a85d5af5bf1d1762f925bdaddc4201f984, Notional: 384949.2856915132 + {chain: 2, addr: "000000000000000000000000e7f72bc0252ca7b16dbb72eeee1afcdb2429f2dd", symbol: "NFTL", coinGeckoId: "nftlaunch", decimals: 18, price: 0.00264772}, // Addr: 0xe7f72bc0252ca7b16dbb72eeee1afcdb2429f2dd, Notional: 2.6741972 + {chain: 2, addr: "0000000000000000000000000f5d2fb29fb7d3cfee444a200298f468908cc942", symbol: "MANA", coinGeckoId: "decentraland", decimals: 18, price: 0.273555}, // Addr: 0x0f5d2fb29fb7d3cfee444a200298f468908cc942, Notional: 19432.11303978019 + {chain: 2, addr: "00000000000000000000000000c5ca160a968f47e7272a0cfcda36428f386cb6", symbol: "USDEBT", coinGeckoId: "usdebt", decimals: 18, price: 2.785e-9}, // Addr: 0x00c5ca160a968f47e7272a0cfcda36428f386cb6, Notional: 501.5681881464561 + {chain: 2, addr: "000000000000000000000000c0a4df35568f116c370e6a6a6022ceb908eeddac", symbol: "UMEE", coinGeckoId: "umee", decimals: 6, price: 0.00111102}, // Addr: 0xc0a4df35568f116c370e6a6a6022ceb908eeddac, Notional: 1.1110200000000001 + {chain: 2, addr: "000000000000000000000000152649ea73beab28c5b49b26eb48f7ead6d4c898", symbol: "Cake", coinGeckoId: "pancakeswap-token", decimals: 18, price: 1.6}, // Addr: 0x152649ea73beab28c5b49b26eb48f7ead6d4c898, Notional: 3.2219483680000005 + {chain: 2, addr: "0000000000000000000000001fee5588cb1de19c70b6ad5399152d8c643fae7b", symbol: "PHTK", coinGeckoId: "phuntoken", decimals: 18, price: 0.00039112}, // Addr: 0x1fee5588cb1de19c70b6ad5399152d8c643fae7b, Notional: 0.39112 + {chain: 2, addr: "00000000000000000000000059f4f336bf3d0c49dbfba4a74ebd2a6ace40539a", symbol: "CAT", coinGeckoId: "catcoin-cash", decimals: 9, price: 2.87289e-10}, // Addr: 0x59f4f336bf3d0c49dbfba4a74ebd2a6ace40539a, Notional: 35.823275731959285 + {chain: 2, addr: "000000000000000000000000f64265e65c4529879a7abf467e00d39e39c0b0da", symbol: "RFKJ", coinGeckoId: "independence-token", decimals: 18, price: 0.00001654}, // Addr: 0xf64265e65c4529879a7abf467e00d39e39c0b0da, Notional: 26756.581042949663 + {chain: 2, addr: "0000000000000000000000004da34f8264cb33a5c9f17081b9ef5ff6091116f4", symbol: "ELFI", coinGeckoId: "elyfi", decimals: 18, price: 0.0087435}, // Addr: 0x4da34f8264cb33a5c9f17081b9ef5ff6091116f4, Notional: 162001.6807898549 + {chain: 2, addr: "000000000000000000000000cf0c122c6b73ff809c693db761e7baebe62b6a2e", symbol: "FLOKI", coinGeckoId: "floki", decimals: 9, price: 0.00011906}, // Addr: 0xcf0c122c6b73ff809c693db761e7baebe62b6a2e, Notional: 23649.794431860926 + {chain: 2, addr: "000000000000000000000000caabcaa4ca42e1d86de1a201c818639def0ba7a7", symbol: "TALK", coinGeckoId: "talken", decimals: 18, price: 0.03542681}, // Addr: 0xcaabcaa4ca42e1d86de1a201c818639def0ba7a7, Notional: 10827.039420239007 + {chain: 2, addr: "00000000000000000000000000a8b738e453ffd858a7edf03bccfe20412f0eb0", symbol: "ALBT", coinGeckoId: "allianceblock", decimals: 18, price: 0.00010161}, // Addr: 0x00a8b738e453ffd858a7edf03bccfe20412f0eb0, Notional: 0.0148277723113224 + {chain: 2, addr: "0000000000000000000000000f51bb10119727a7e5ea3538074fb341f56b09ad", symbol: "DAO", coinGeckoId: "dao-maker", decimals: 18, price: 0.324422}, // Addr: 0x0f51bb10119727a7e5ea3538074fb341f56b09ad, Notional: 1915.4424983471597 + {chain: 2, addr: "0000000000000000000000004a220e6096b25eadb88358cb44068a3248254675", symbol: "QNT", coinGeckoId: "quant-network", decimals: 18, price: 63.23}, // Addr: 0x4a220e6096b25eadb88358cb44068a3248254675, Notional: 3.1615 + {chain: 2, addr: "000000000000000000000000030ba81f1c18d280636f32af80b9aad02cf0854e", symbol: "aWETH", coinGeckoId: "aave-weth", decimals: 18, price: 2662.48}, // Addr: 0x030ba81f1c18d280636f32af80b9aad02cf0854e, Notional: 798.7787187392 + {chain: 2, addr: "0000000000000000000000002cb5d9fd89d48c516f11904117c57e3934f39524", symbol: "CUTE", coinGeckoId: "pepe-uwu", decimals: 18, price: 9.6081e-8}, // Addr: 0x2cb5d9fd89d48c516f11904117c57e3934f39524, Notional: 11096.679121861993 + {chain: 2, addr: "000000000000000000000000249e38ea4102d0cf8264d3701f1a0e39c4f2dc3b", symbol: "UFO", coinGeckoId: "ufo-gaming", decimals: 18, price: 4.50269e-7}, // Addr: 0x249e38ea4102d0cf8264d3701f1a0e39c4f2dc3b, Notional: 13.711816374477669 + {chain: 2, addr: "0000000000000000000000008ab7404063ec4dbcfd4598215992dc3f8ec853d7", symbol: "AKRO", coinGeckoId: "akropolis", decimals: 18, price: 0.00419572}, // Addr: 0x8ab7404063ec4dbcfd4598215992dc3f8ec853d7, Notional: 143.562484995784 + {chain: 2, addr: "000000000000000000000000cc8fa225d80b9c7d42f96e9570156c65d6caaa25", symbol: "SLP", coinGeckoId: "smooth-love-potion", decimals: 0, price: 0.00231644}, // Addr: 0xcc8fa225d80b9c7d42f96e9570156c65d6caaa25, Notional: 4656.85747044 + {chain: 2, addr: "000000000000000000000000ae78736cd615f374d3085123a210448e74fc6393", symbol: "rETH", coinGeckoId: "rocket-pool-eth", decimals: 18, price: 2968.24}, // Addr: 0xae78736cd615f374d3085123a210448e74fc6393, Notional: 1038.8839999999998 + {chain: 2, addr: "0000000000000000000000001a11ea9d61588d756d9f1014c3cf0d226aedd279", symbol: "MILEI", coinGeckoId: "milei-token", decimals: 18, price: 0.00846088}, // Addr: 0x1a11ea9d61588d756d9f1014c3cf0d226aedd279, Notional: 4771.4098566851835 + {chain: 2, addr: "000000000000000000000000485d17a6f1b8780392d53d64751824253011a260", symbol: "TIME", coinGeckoId: "chronobank", decimals: 8, price: 17.04}, // Addr: 0x485d17a6f1b8780392d53d64751824253011a260, Notional: 15.336 + {chain: 2, addr: "000000000000000000000000e28b3b32b6c345a34ff64674606124dd5aceca30", symbol: "INJ", coinGeckoId: "injective-protocol", decimals: 18, price: 18.7}, // Addr: 0xe28b3b32b6c345a34ff64674606124dd5aceca30, Notional: 160998.115709662 + {chain: 2, addr: "0000000000000000000000005f944b0c4315cb7c3a846b025ab4045da44abf6c", symbol: "GCAKE", coinGeckoId: "pancake-games", decimals: 18, price: 6.4358e-8}, // Addr: 0x5f944b0c4315cb7c3a846b025ab4045da44abf6c, Notional: 0.048124624109156154 + {chain: 2, addr: "000000000000000000000000baac2b4491727d78d2b78815144570b9f2fe8899", symbol: "DOG", coinGeckoId: "the-doge-nft", decimals: 18, price: 0.005485}, // Addr: 0xbaac2b4491727d78d2b78815144570b9f2fe8899, Notional: 1671990.762768882 + {chain: 2, addr: "00000000000000000000000092d6c1e31e14520e676a687f0a93788b716beff5", symbol: "DYDX", coinGeckoId: "dydx", decimals: 18, price: 1.064}, // Addr: 0x92d6c1e31e14520e676a687f0a93788b716beff5, Notional: 39541.41041770696 + {chain: 2, addr: "000000000000000000000000f1182229b71e79e504b1d2bf076c15a277311e05", symbol: "LBR", coinGeckoId: "lybra-finance", decimals: 18, price: 0.074935}, // Addr: 0xf1182229b71e79e504b1d2bf076c15a277311e05, Notional: 0.0074935 + {chain: 2, addr: "000000000000000000000000888888888889c00c67689029d7856aac1065ec11", symbol: "OPIUM", coinGeckoId: "opium", decimals: 18, price: 0.062153}, // Addr: 0x888888888889c00c67689029d7856aac1065ec11, Notional: 0.62153 + {chain: 2, addr: "000000000000000000000000ae1eaae3f627aaca434127644371b67b18444051", symbol: "YOP", coinGeckoId: "yield-optimization-platform", decimals: 8, price: 0.00006712}, // Addr: 0xae1eaae3f627aaca434127644371b67b18444051, Notional: 0.005033999999999999 + {chain: 2, addr: "0000000000000000000000007ddc52c4de30e94be3a6a0a2b259b2850f421989", symbol: "GMT", coinGeckoId: "gmt-token", decimals: 18, price: 0.309462}, // Addr: 0x7ddc52c4de30e94be3a6a0a2b259b2850f421989, Notional: 446.5249016742095 + {chain: 2, addr: "000000000000000000000000bcca60bb61934080951369a648fb03df4f96263c", symbol: "aUSDC", coinGeckoId: "aave-usdc", decimals: 6, price: 0.997614}, // Addr: 0xbcca60bb61934080951369a648fb03df4f96263c, Notional: 6.991714869318 + {chain: 2, addr: "00000000000000000000000066c0dded8433c9ea86c8cf91237b14e10b4d70b7", symbol: "Mars", coinGeckoId: "mars", decimals: 18, price: 1e-15}, // Addr: 0x66c0dded8433c9ea86c8cf91237b14e10b4d70b7, Notional: 1.4641902748847001e-10 + {chain: 2, addr: "000000000000000000000000f70ce9ee486106882d3dc43ddbd84e0fa71ac2a5", symbol: "DUCKER", coinGeckoId: "ducker", decimals: 18, price: 8.53692e-7}, // Addr: 0xf70ce9ee486106882d3dc43ddbd84e0fa71ac2a5, Notional: 430.04612421602 + {chain: 2, addr: "00000000000000000000000070e8de73ce538da2beed35d14187f6959a8eca96", symbol: "XSGD", coinGeckoId: "xsgd", decimals: 6, price: 0.758849}, // Addr: 0x70e8de73ce538da2beed35d14187f6959a8eca96, Notional: 41.987627393075 + {chain: 2, addr: "000000000000000000000000ffbf315f70e458e49229654dea4ce192d26f9b25", symbol: "VOLT", coinGeckoId: "voltage", decimals: 18, price: 0.00157123}, // Addr: 0xffbf315f70e458e49229654dea4ce192d26f9b25, Notional: 0.157123 + {chain: 2, addr: "00000000000000000000000070401dfd142a16dc7031c56e862fc88cb9537ce0", symbol: "BIRD", coinGeckoId: "bird-money", decimals: 18, price: 10.44}, // Addr: 0x70401dfd142a16dc7031c56e862fc88cb9537ce0, Notional: 114.83999999999999 + {chain: 2, addr: "0000000000000000000000004ec1b60b96193a64acae44778e51f7bff2007831", symbol: "EDGE", coinGeckoId: "edge", decimals: 18, price: 0.089806}, // Addr: 0x4ec1b60b96193a64acae44778e51f7bff2007831, Notional: 767.97314957696 + {chain: 2, addr: "00000000000000000000000077e06c9eccf2e797fd462a92b6d7642ef85b0a44", symbol: "wTAO", coinGeckoId: "wrapped-tao", decimals: 9, price: 276.19}, // Addr: 0x77e06c9eccf2e797fd462a92b6d7642ef85b0a44, Notional: 4.8756566413 + {chain: 2, addr: "000000000000000000000000e4cfe9eaa8cdb0942a80b7bc68fd8ab0f6d44903", symbol: "XEND", coinGeckoId: "xend-finance", decimals: 18, price: 0.04320185}, // Addr: 0xe4cfe9eaa8cdb0942a80b7bc68fd8ab0f6d44903, Notional: 250.13487752590063 + {chain: 2, addr: "000000000000000000000000f17e65822b568b3903685a7c9f496cf7656cc6c2", symbol: "BICO", coinGeckoId: "biconomy", decimals: 18, price: 0.226163}, // Addr: 0xf17e65822b568b3903685a7c9f496cf7656cc6c2, Notional: 195867.89242461612 + {chain: 2, addr: "00000000000000000000000033d0568941c0c64ff7e0fb4fba0b11bd37deed9f", symbol: "RAMP", coinGeckoId: "ramp", decimals: 18, price: 0.089664}, // Addr: 0x33d0568941c0c64ff7e0fb4fba0b11bd37deed9f, Notional: 0.8966399999999999 + {chain: 2, addr: "0000000000000000000000000bc529c00c6401aef6d220be8c6ea1667f6ad93e", symbol: "YFI", coinGeckoId: "yearn-finance", decimals: 18, price: 5009.16}, // Addr: 0x0bc529c00c6401aef6d220be8c6ea1667f6ad93e, Notional: 166142.6730847416 + {chain: 2, addr: "0000000000000000000000002598c30330d5771ae9f983979209486ae26de875", symbol: "AI", coinGeckoId: "any-inu", decimals: 18, price: 0.00000776}, // Addr: 0x2598c30330d5771ae9f983979209486ae26de875, Notional: 425342.3172907048 + {chain: 2, addr: "0000000000000000000000001494ca1f11d487c2bbe4543e90080aeba4ba3c2b", symbol: "DPI", coinGeckoId: "defipulse-index", decimals: 18, price: 73.16}, // Addr: 0x1494ca1f11d487c2bbe4543e90080aeba4ba3c2b, Notional: 2.2349238704 + {chain: 2, addr: "000000000000000000000000170dec83c7753aaad20c01a0016b5a2e143990d4", symbol: "WIGGER", coinGeckoId: "wigger", decimals: 18, price: 0.0000917}, // Addr: 0x170dec83c7753aaad20c01a0016b5a2e143990d4, Notional: 2187.8817919637713 + {chain: 2, addr: "0000000000000000000000002ba592f78db6436527729929aaf6c908497cb200", symbol: "CREAM", coinGeckoId: "cream-2", decimals: 18, price: 17.11}, // Addr: 0x2ba592f78db6436527729929aaf6c908497cb200, Notional: 169.91123655299998 + {chain: 2, addr: "00000000000000000000000045804880de22913dafe09f4980848ece6ecbaf78", symbol: "PAXG", coinGeckoId: "pax-gold", decimals: 18, price: 2441.89}, // Addr: 0x45804880de22913dafe09f4980848ece6ecbaf78, Notional: 7482.1234795285 + {chain: 2, addr: "000000000000000000000000111111111117dc0aa78b770fa6a738034120c302", symbol: "1INCH", coinGeckoId: "1inch", decimals: 18, price: 0.257911}, // Addr: 0x111111111117dc0aa78b770fa6a738034120c302, Notional: 229098.1341431228 + {chain: 2, addr: "000000000000000000000000476c5e26a75bd202a9683ffd34359c0cc15be0ff", symbol: "SRM", coinGeckoId: "serum", decimals: 6, price: 0.03205995}, // Addr: 0x476c5e26a75bd202a9683ffd34359c0cc15be0ff, Notional: 99779.6739153151 + {chain: 2, addr: "00000000000000000000000020a62aca58526836165ca53fe67dd884288c8abf", symbol: "RNB", coinGeckoId: "rentible", decimals: 18, price: 0.03731757}, // Addr: 0x20a62aca58526836165ca53fe67dd884288c8abf, Notional: 15717.705346211886 + {chain: 2, addr: "00000000000000000000000065e6b60ea01668634d68d0513fe814679f925bad", symbol: "PIXEL", coinGeckoId: "pixelverse", decimals: 18, price: 0.00057707}, // Addr: 0x65e6b60ea01668634d68d0513fe814679f925bad, Notional: 75372.66811976158 + {chain: 2, addr: "000000000000000000000000f19308f923582a6f7c465e5ce7a9dc1bec6665b1", symbol: "TITANX", coinGeckoId: "titanx", decimals: 18, price: 3.97e-7}, // Addr: 0xf19308f923582a6f7c465e5ce7a9dc1bec6665b1, Notional: 693.3651109576217 + {chain: 2, addr: "000000000000000000000000ff56cc6b1e6ded347aa0b7676c85ab0b3d08b0fa", symbol: "ORBS", coinGeckoId: "orbs", decimals: 18, price: 0.02776619}, // Addr: 0xff56cc6b1e6ded347aa0b7676c85ab0b3d08b0fa, Notional: 10583.045468627153 + {chain: 2, addr: "0000000000000000000000006fc13eace26590b80cccab1ba5d51890577d83b2", symbol: "UMB", coinGeckoId: "umbrella-network", decimals: 18, price: 0.0074885}, // Addr: 0x6fc13eace26590b80cccab1ba5d51890577d83b2, Notional: 0.994330097122105 + {chain: 2, addr: "000000000000000000000000df09a216fac5adc3e640db418c0b956076509503", symbol: "PKN", coinGeckoId: "poken", decimals: 18, price: 0.00039997}, // Addr: 0xdf09a216fac5adc3e640db418c0b956076509503, Notional: 28.598990914799998 + {chain: 2, addr: "0000000000000000000000003b484b82567a09e2588a13d54d032153f0c0aee0", symbol: "SOS", coinGeckoId: "opendao", decimals: 18, price: 1.1131e-8}, // Addr: 0x3b484b82567a09e2588a13d54d032153f0c0aee0, Notional: 9.277648954837254 + {chain: 2, addr: "000000000000000000000000569d0e52c3dbe95983bcc2434cb9f69d905be919", symbol: "roar", coinGeckoId: "roaring-kitty", decimals: 9, price: 0.00010386}, // Addr: 0x569d0e52c3dbe95983bcc2434cb9f69d905be919, Notional: 5205.988722273808 + {chain: 2, addr: "00000000000000000000000067f4c72a50f8df6487720261e188f2abe83f57d7", symbol: "wPOKT", coinGeckoId: "wrapped-pokt", decimals: 6, price: 0.03390858}, // Addr: 0x67f4c72a50f8df6487720261e188f2abe83f57d7, Notional: 0.7120801800000001 + {chain: 2, addr: "000000000000000000000000fc5e4ed56153b57aa8ef769eba3e79e58e19be93", symbol: "SOLAV", coinGeckoId: "solav", decimals: 18, price: 0.00010196}, // Addr: 0xfc5e4ed56153b57aa8ef769eba3e79e58e19be93, Notional: 0.1024698 + {chain: 2, addr: "000000000000000000000000aee433adebe0fbb88daa47ef0c1a513caa52ef02", symbol: "TOON", coinGeckoId: "pontoon", decimals: 18, price: 0.00076773}, // Addr: 0xaee433adebe0fbb88daa47ef0c1a513caa52ef02, Notional: 15.655078889039306 + {chain: 2, addr: "0000000000000000000000003301ee63fb29f863f2333bd4466acb46cd8323e6", symbol: "AKITA", coinGeckoId: "akita-inu", decimals: 18, price: 1.27373e-7}, // Addr: 0x3301ee63fb29f863f2333bd4466acb46cd8323e6, Notional: 31.962299091000464 + {chain: 2, addr: "000000000000000000000000db0170e2d0c1cc1b2e7a90313d9b9afa4f250289", symbol: "ADAPAD", coinGeckoId: "adapad", decimals: 18, price: 0.00432125}, // Addr: 0xdb0170e2d0c1cc1b2e7a90313d9b9afa4f250289, Notional: 11.198373411298949 + {chain: 2, addr: "00000000000000000000000064df3aab3b21cc275bb76c4a581cf8b726478ee0", symbol: "CRAMER", coinGeckoId: "cramer-coin", decimals: 18, price: 0.0004541}, // Addr: 0x64df3aab3b21cc275bb76c4a581cf8b726478ee0, Notional: 16019.233477161562 + {chain: 2, addr: "0000000000000000000000000c572544a4ee47904d54aaa6a970af96b6f00e1b", symbol: "WAS", coinGeckoId: "wasder", decimals: 18, price: 0.00251992}, // Addr: 0x0c572544a4ee47904d54aaa6a970af96b6f00e1b, Notional: 2647.158257782695 + {chain: 2, addr: "0000000000000000000000003845badade8e6dff049820680d1f14bd3903a5d0", symbol: "SAND", coinGeckoId: "the-sandbox", decimals: 18, price: 0.255451}, // Addr: 0x3845badade8e6dff049820680d1f14bd3903a5d0, Notional: 22784.25982044834 + {chain: 2, addr: "000000000000000000000000ff836a5821e69066c87e268bc51b849fab94240c", symbol: "шайлушай", coinGeckoId: "real-smurf-cat", decimals: 18, price: 0.00004297}, // Addr: 0xff836a5821e69066c87e268bc51b849fab94240c, Notional: 23399.972645198766 {chain: 2, addr: "00000000000000000000000051fe2e572e97bfeb1d719809d743ec2675924edc", symbol: "VPAD", coinGeckoId: "vlaunch", decimals: 18, price: 0.08336}, // Addr: 0x51fe2e572e97bfeb1d719809d743ec2675924edc, Notional: 8.119264000000001 - {chain: 2, addr: "0000000000000000000000002c8ea636345a231e4b1a28f6eeb2072ed909c406", symbol: "MemElon", coinGeckoId: "meme-elon-doge-floki-2", decimals: 18, price: 3.00656e-10}, // Addr: 0x2c8ea636345a231e4b1a28f6eeb2072ed909c406, Notional: 54.11808 - {chain: 2, addr: "000000000000000000000000d0d56273290d339aaf1417d9bfa1bb8cfe8a0933", symbol: "FOOM", coinGeckoId: "foom", decimals: 18, price: 4.9883e-8}, // Addr: 0xd0d56273290d339aaf1417d9bfa1bb8cfe8a0933, Notional: 4596.458647655135 - {chain: 2, addr: "0000000000000000000000006fe2506d1ddd77c43a3eaf4c4e0f7aeb14f26765", symbol: "ORBT", coinGeckoId: "orbitt-pro", decimals: 18, price: 0.098381}, // Addr: 0x6fe2506d1ddd77c43a3eaf4c4e0f7aeb14f26765, Notional: 85.02838811637419 - {chain: 2, addr: "0000000000000000000000008acee0fcee91cedad1c5013f031762c814740587", symbol: "SAUDIPEPE", coinGeckoId: "saudi-pepe", decimals: 18, price: 0.00000273}, // Addr: 0x8acee0fcee91cedad1c5013f031762c814740587, Notional: 12.372215547621384 - {chain: 2, addr: "0000000000000000000000002260fac5e5542a773aa44fbcfedf7c193bc2c599", symbol: "WBTC", coinGeckoId: "wrapped-bitcoin", decimals: 8, price: 57446}, // Addr: 0x2260fac5e5542a773aa44fbcfedf7c193bc2c599, Notional: 83553501.79131871 - {chain: 2, addr: "00000000000000000000000033e80a92a9ea73dd02f6e732d1702d58c68388ca", symbol: "XB", coinGeckoId: "xbanking", decimals: 2, price: 0.11133}, // Addr: 0x33e80a92a9ea73dd02f6e732d1702d58c68388ca, Notional: 1477.90575 - {chain: 2, addr: "000000000000000000000000aa2ce7ae64066175e0b90497ce7d9c190c315db4", symbol: "Suter", coinGeckoId: "suterusu", decimals: 18, price: 0.00035849}, // Addr: 0xaa2ce7ae64066175e0b90497ce7d9c190c315db4, Notional: 29.192489029165 - {chain: 2, addr: "00000000000000000000000038e382f74dfb84608f3c1f10187f6bef5951de93", symbol: "MUBI", coinGeckoId: "multibit", decimals: 18, price: 0.112852}, // Addr: 0x38e382f74dfb84608f3c1f10187f6bef5951de93, Notional: 1222.9180828061217 - {chain: 2, addr: "000000000000000000000000d084b83c305dafd76ae3e1b4e1f1fe2ecccb3988", symbol: "TVK", coinGeckoId: "the-virtua-kolect", decimals: 18, price: 0.162366}, // Addr: 0xd084b83c305dafd76ae3e1b4e1f1fe2ecccb3988, Notional: 0.81808081335414 - {chain: 2, addr: "000000000000000000000000dd69db25f6d620a7bad3023c5d32761d353d3de9", symbol: "GETH", coinGeckoId: "goerli-eth", decimals: 18, price: 0.03442679}, // Addr: 0xdd69db25f6d620a7bad3023c5d32761d353d3de9, Notional: 2.58200925 - {chain: 2, addr: "000000000000000000000000102c776ddb30c754ded4fdcc77a19230a60d4e4f", symbol: "FLC", coinGeckoId: "flooring-lab-credit", decimals: 18, price: 0.01547632}, // Addr: 0x102c776ddb30c754ded4fdcc77a19230a60d4e4f, Notional: 309085.80516456463 - {chain: 2, addr: "0000000000000000000000003a856d4effa670c54585a5d523e96513e148e95d", symbol: "TRIAS", coinGeckoId: "trias-token", decimals: 18, price: 7.87}, // Addr: 0x3a856d4effa670c54585a5d523e96513e148e95d, Notional: 197.2455449384 - {chain: 2, addr: "00000000000000000000000082f13ab56cc0d1b727e8253a943f0de75b048b0b", symbol: "PLAYFI", coinGeckoId: "playfi", decimals: 18, price: 0.04276846}, // Addr: 0x82f13ab56cc0d1b727e8253a943f0de75b048b0b, Notional: 9622.9035 - {chain: 2, addr: "000000000000000000000000c28eb2250d1ae32c7e74cfb6d6b86afc9beb6509", symbol: "OPN", coinGeckoId: "open-ticketing-ecosystem", decimals: 18, price: 0.00157816}, // Addr: 0xc28eb2250d1ae32c7e74cfb6d6b86afc9beb6509, Notional: 862032.1240239005 - {chain: 2, addr: "000000000000000000000000d3e4ba569045546d09cf021ecc5dfe42b1d7f6e4", symbol: "MNW", coinGeckoId: "morpheus-network", decimals: 18, price: 0.872524}, // Addr: 0xd3e4ba569045546d09cf021ecc5dfe42b1d7f6e4, Notional: 26.17572 - {chain: 2, addr: "00000000000000000000000024249b5a869a445c9b0ce269a08d73c618df9d21", symbol: "ETHEREUM", coinGeckoId: "harrypottertrumphomersimpson777inu", decimals: 8, price: 0.00098588}, // Addr: 0x24249b5a869a445c9b0ce269a08d73c618df9d21, Notional: 4.830812 - {chain: 2, addr: "000000000000000000000000cb8fb2438a805664cd8c3e640b85ac473da5be87", symbol: "CTI", coinGeckoId: "clintex-cti", decimals: 18, price: 0.03198639}, // Addr: 0xcb8fb2438a805664cd8c3e640b85ac473da5be87, Notional: 328250.0465560284 - {chain: 2, addr: "000000000000000000000000f1f955016ecbcd7321c7266bccfb96c68ea5e49b", symbol: "RLY", coinGeckoId: "rally-2", decimals: 18, price: 0.00993446}, // Addr: 0xf1f955016ecbcd7321c7266bccfb96c68ea5e49b, Notional: 353400.2851246443 - {chain: 2, addr: "0000000000000000000000008530b66ca3ddf50e0447eae8ad7ea7d5e62762ed", symbol: "METADOGE", coinGeckoId: "meta-doge", decimals: 18, price: 1.59498e-10}, // Addr: 0x8530b66ca3ddf50e0447eae8ad7ea7d5e62762ed, Notional: 3.98745 - {chain: 2, addr: "0000000000000000000000007f39c581f595b53c5cb19bd0b3f8da6c935e2ca0", symbol: "wstETH", coinGeckoId: "wrapped-steth", decimals: 18, price: 3375.92}, // Addr: 0x7f39c581f595b53c5cb19bd0b3f8da6c935e2ca0, Notional: 3796723.8821211653 - {chain: 2, addr: "0000000000000000000000008390a1da07e376ef7add4be859ba74fb83aa02d5", symbol: "GROK", coinGeckoId: "grok-2", decimals: 9, price: 0.01028859}, // Addr: 0x8390a1da07e376ef7add4be859ba74fb83aa02d5, Notional: 204.5864678955955 - {chain: 2, addr: "00000000000000000000000052284158e02425290f6b627aeb5fff65edf058ad", symbol: "FMB", coinGeckoId: "flappymoonbird", decimals: 18, price: 0.02475363}, // Addr: 0x52284158e02425290f6b627aeb5fff65edf058ad, Notional: 78751.8066945396 - {chain: 2, addr: "0000000000000000000000004b1e80cac91e2216eeb63e29b957eb91ae9c2be8", symbol: "JUP", coinGeckoId: "jupiter", decimals: 18, price: 0.00117026}, // Addr: 0x4b1e80cac91e2216eeb63e29b957eb91ae9c2be8, Notional: 29.767033503252684 - {chain: 2, addr: "0000000000000000000000000f3adc247e91c3c50bc08721355a41037e89bc20", symbol: "ANC", coinGeckoId: "anchor-protocol", decimals: 18, price: 0.01435609}, // Addr: 0x0f3adc247e91c3c50bc08721355a41037e89bc20, Notional: 39.14627340830657 - {chain: 2, addr: "000000000000000000000000f8c3527cc04340b208c854e985240c02f7b7793f", symbol: "FRONT", coinGeckoId: "frontier-token", decimals: 18, price: 0.817831}, // Addr: 0xf8c3527cc04340b208c854e985240c02f7b7793f, Notional: 3038.209694541311 - {chain: 2, addr: "00000000000000000000000058cb30368ceb2d194740b144eab4c2da8a917dcb", symbol: "ZYN", coinGeckoId: "zyncoin-2", decimals: 18, price: 0.01262034}, // Addr: 0x58cb30368ceb2d194740b144eab4c2da8a917dcb, Notional: 1015708.3199564101 - {chain: 2, addr: "000000000000000000000000965b85d4674f64422c4898c8f8083187f02b32c0", symbol: "SFIL", coinGeckoId: "filecoin-standard-full-hashrate", decimals: 8, price: 0.188974}, // Addr: 0x965b85d4674f64422c4898c8f8083187f02b32c0, Notional: 1.4096326555999998 - {chain: 2, addr: "000000000000000000000000cbd55d4ffc43467142761a764763652b48b969ff", symbol: "ASTRO", coinGeckoId: "astrotools", decimals: 18, price: 0.08794}, // Addr: 0xcbd55d4ffc43467142761a764763652b48b969ff, Notional: 13.2120682589172 - {chain: 2, addr: "0000000000000000000000006e9730ecffbed43fd876a264c982e254ef05a0de", symbol: "NORD", coinGeckoId: "nord-finance", decimals: 18, price: 0.116894}, // Addr: 0x6e9730ecffbed43fd876a264c982e254ef05a0de, Notional: 1.16894 - {chain: 2, addr: "0000000000000000000000002c537e5624e4af88a7ae4060c022609376c8d0eb", symbol: "TRYB", coinGeckoId: "bilira", decimals: 6, price: 0.03098303}, // Addr: 0x2c537e5624e4af88a7ae4060c022609376c8d0eb, Notional: 207.99439081937595 - {chain: 2, addr: "000000000000000000000000eaa63125dd63f10874f99cdbbb18410e7fc79dd3", symbol: "HEMULE", coinGeckoId: "hemule", decimals: 18, price: 0.01477164}, // Addr: 0xeaa63125dd63f10874f99cdbbb18410e7fc79dd3, Notional: 32802.192485150495 - {chain: 2, addr: "0000000000000000000000004e15361fd6b4bb609fa63c81a2be19d873717870", symbol: "FTM", coinGeckoId: "wrapped-fantom", decimals: 18, price: 0.649286}, // Addr: 0x4e15361fd6b4bb609fa63c81a2be19d873717870, Notional: 1409.947018567902 - {chain: 2, addr: "00000000000000000000000006af07097c9eeb7fd685c692751d5c66db49c215", symbol: "CHAI", coinGeckoId: "chai", decimals: 18, price: 0.99126}, // Addr: 0x06af07097c9eeb7fd685c692751d5c66db49c215, Notional: 8140501.902456281 - {chain: 2, addr: "0000000000000000000000003506424f91fd33084466f402d5d97f05f8e3b4af", symbol: "CHZ", coinGeckoId: "chiliz", decimals: 18, price: 0.111506}, // Addr: 0x3506424f91fd33084466f402d5d97f05f8e3b4af, Notional: 39845.413863347574 - {chain: 2, addr: "000000000000000000000000aaee1a9723aadb7afa2810263653a34ba2c21c7a", symbol: "Mog", coinGeckoId: "mog-coin", decimals: 18, price: 5.07252e-7}, // Addr: 0xaaee1a9723aadb7afa2810263653a34ba2c21c7a, Notional: 126.60556081635602 - {chain: 2, addr: "0000000000000000000000005fab9761d60419c9eeebe3915a8fa1ed7e8d2e1b", symbol: "DIMO", coinGeckoId: "dimo", decimals: 18, price: 0.260232}, // Addr: 0x5fab9761d60419c9eeebe3915a8fa1ed7e8d2e1b, Notional: 0.260232 - {chain: 2, addr: "0000000000000000000000006149c26cd2f7b5ccdb32029af817123f6e37df5b", symbol: "LPOOL", coinGeckoId: "launchpool", decimals: 18, price: 0.255658}, // Addr: 0x6149c26cd2f7b5ccdb32029af817123f6e37df5b, Notional: 0.255658 - {chain: 2, addr: "000000000000000000000000f418588522d5dd018b425e472991e52ebbeeeeee", symbol: "PUSH", coinGeckoId: "ethereum-push-notification-service", decimals: 18, price: 0.19515}, // Addr: 0xf418588522d5dd018b425e472991e52ebbeeeeee, Notional: 0.19515 - {chain: 2, addr: "000000000000000000000000f3ae5d769e153ef72b4e3591ac004e89f48107a1", symbol: "DPR", coinGeckoId: "deeper-network", decimals: 18, price: 0.00591334}, // Addr: 0xf3ae5d769e153ef72b4e3591ac004e89f48107a1, Notional: 112.40871918174994 - {chain: 2, addr: "0000000000000000000000001a3496c18d558bd9c6c8f609e1b129f67ab08163", symbol: "DEP", coinGeckoId: "deapcoin", decimals: 18, price: 0.00169936}, // Addr: 0x1a3496c18d558bd9c6c8f609e1b129f67ab08163, Notional: 0.00169936 - {chain: 2, addr: "000000000000000000000000d69f306549e9d96f183b1aeca30b8f4353c2ecc3", symbol: "MCHC", coinGeckoId: "mch-coin", decimals: 18, price: 0.061331}, // Addr: 0xd69f306549e9d96f183b1aeca30b8f4353c2ecc3, Notional: 515.4170041712385 - {chain: 2, addr: "000000000000000000000000761d38e5ddf6ccf6cf7c55759d5210750b5d60f3", symbol: "ELON", coinGeckoId: "dogelon-mars", decimals: 18, price: 1.76054e-7}, // Addr: 0x761d38e5ddf6ccf6cf7c55759d5210750b5d60f3, Notional: 32190.608813924217 - {chain: 2, addr: "000000000000000000000000f6e06b54855eff198a2d9a8686113665499a6134", symbol: "Celt", coinGeckoId: "celestial", decimals: 18, price: 0.00005644}, // Addr: 0xf6e06b54855eff198a2d9a8686113665499a6134, Notional: 0.08482932 - {chain: 2, addr: "000000000000000000000000e020b01b6fbd83066aa2e8ee0ccd1eb8d9cc70bf", symbol: "ARCD", coinGeckoId: "arcade-protocol", decimals: 18, price: 0.237326}, // Addr: 0xe020b01b6fbd83066aa2e8ee0ccd1eb8d9cc70bf, Notional: 355989 - {chain: 2, addr: "0000000000000000000000006c5ba91642f10282b576d91922ae6448c9d52f4e", symbol: "PHA", coinGeckoId: "pha", decimals: 18, price: 0.172951}, // Addr: 0x6c5ba91642f10282b576d91922ae6448c9d52f4e, Notional: 1383.780951 - {chain: 2, addr: "00000000000000000000000033f391f4c4fe802b70b77ae37670037a92114a7c", symbol: "BURP", coinGeckoId: "burp", decimals: 18, price: 0.00040962}, // Addr: 0x33f391f4c4fe802b70b77ae37670037a92114a7c, Notional: 0.6529578965714646 - {chain: 2, addr: "0000000000000000000000003593d125a4f7849a1b059e64f4517a86dd60c95d", symbol: "OM", coinGeckoId: "mantra-dao", decimals: 18, price: 0.632335}, // Addr: 0x3593d125a4f7849a1b059e64f4517a86dd60c95d, Notional: 1048.8975094239593 - {chain: 2, addr: "000000000000000000000000967fb0d760ed3ce53afe2f0a071674cccae73550", symbol: "XETA", coinGeckoId: "xana", decimals: 18, price: 0.0083672}, // Addr: 0x967fb0d760ed3ce53afe2f0a071674cccae73550, Notional: 0.0083672 - {chain: 2, addr: "000000000000000000000000c944e90c64b2c07662a292be6244bdf05cda44a7", symbol: "GRT", coinGeckoId: "the-graph", decimals: 18, price: 0.229592}, // Addr: 0xc944e90c64b2c07662a292be6244bdf05cda44a7, Notional: 540.733701536776 - {chain: 2, addr: "00000000000000000000000004815313e9329e8905a77251a1781cfa7934259a", symbol: "HOOD", coinGeckoId: "wagmicatgirlkanye420etfmoon1000x", decimals: 18, price: 0.00004431}, // Addr: 0x04815313e9329e8905a77251a1781cfa7934259a, Notional: 130336.50065117216 - {chain: 2, addr: "00000000000000000000000022fc5a29bd3d6cce19a06f844019fd506fce4455", symbol: "ePendle", coinGeckoId: "equilibria-finance-ependle", decimals: 18, price: 1.69}, // Addr: 0x22fc5a29bd3d6cce19a06f844019fd506fce4455, Notional: 3363.5256454111 - {chain: 2, addr: "0000000000000000000000008db1d28ee0d822367af8d220c0dc7cb6fe9dc442", symbol: "ETHPAD", coinGeckoId: "ethpad", decimals: 18, price: 0.00311526}, // Addr: 0x8db1d28ee0d822367af8d220c0dc7cb6fe9dc442, Notional: 25.239308171904 - {chain: 2, addr: "0000000000000000000000004bd70556ae3f8a6ec6c4080a0c327b24325438f3", symbol: "HXRO", coinGeckoId: "hxro", decimals: 18, price: 0.060213}, // Addr: 0x4bd70556ae3f8a6ec6c4080a0c327b24325438f3, Notional: 40379262.6462697 - {chain: 2, addr: "0000000000000000000000004674672bcddda2ea5300f5207e1158185c944bc0", symbol: "GXT", coinGeckoId: "gem-exchange-and-trading", decimals: 18, price: 0.00016159}, // Addr: 0x4674672bcddda2ea5300f5207e1158185c944bc0, Notional: 68937.33968246184 - {chain: 2, addr: "00000000000000000000000058b6a8a3302369daec383334672404ee733ab239", symbol: "LPT", coinGeckoId: "livepeer", decimals: 18, price: 12.03}, // Addr: 0x58b6a8a3302369daec383334672404ee733ab239, Notional: 49.8630689253 - {chain: 2, addr: "00000000000000000000000076e222b07c53d28b89b0bac18602810fc22b49a8", symbol: "JOE", coinGeckoId: "joe-coin", decimals: 18, price: 0.00807993}, // Addr: 0x76e222b07c53d28b89b0bac18602810fc22b49a8, Notional: 251.37161112568123 - {chain: 2, addr: "0000000000000000000000002781246fe707bb15cee3e5ea354e2154a2877b16", symbol: "EL", coinGeckoId: "elysia", decimals: 18, price: 0.00893648}, // Addr: 0x2781246fe707bb15cee3e5ea354e2154a2877b16, Notional: 135620.03898286843 - {chain: 2, addr: "0000000000000000000000004d224452801aced8b2f0aebe155379bb5d594381", symbol: "APE", coinGeckoId: "apecoin", decimals: 18, price: 1.17}, // Addr: 0x4d224452801aced8b2f0aebe155379bb5d594381, Notional: 80.1283860468 - {chain: 2, addr: "0000000000000000000000008bc2bcb1b1896291942c36f3cca3c1afa0aaa7fd", symbol: "PACE", coinGeckoId: "3space-art", decimals: 18, price: 0.02641302}, // Addr: 0x8bc2bcb1b1896291942c36f3cca3c1afa0aaa7fd, Notional: 26.41302 - {chain: 2, addr: "00000000000000000000000018aaa7115705e8be94bffebde57af9bfc265b998", symbol: "AUDIO", coinGeckoId: "audius", decimals: 18, price: 0.161858}, // Addr: 0x18aaa7115705e8be94bffebde57af9bfc265b998, Notional: 4847610.039632261 - {chain: 2, addr: "0000000000000000000000009196e18bc349b1f64bc08784eae259525329a1ad", symbol: "PUSSY", coinGeckoId: "pussy-financial", decimals: 18, price: 0.00000869}, // Addr: 0x9196e18bc349b1f64bc08784eae259525329a1ad, Notional: 197.35049960999999 - {chain: 2, addr: "000000000000000000000000fd09911130e6930bf87f2b0554c44f400bd80d3e", symbol: "ETHIX", coinGeckoId: "ethichub", decimals: 18, price: 0.186799}, // Addr: 0xfd09911130e6930bf87f2b0554c44f400bd80d3e, Notional: 1972589.0498514064 - {chain: 2, addr: "0000000000000000000000009d71ce49ab8a0e6d2a1e7bfb89374c9392fd6804", symbol: "Nvir", coinGeckoId: "nvirworld", decimals: 18, price: 0.0091194}, // Addr: 0x9d71ce49ab8a0e6d2a1e7bfb89374c9392fd6804, Notional: 45.597 - {chain: 2, addr: "000000000000000000000000ae6e307c3fe9e922e5674dbd7f830ed49c014c6b", symbol: "CREDI", coinGeckoId: "credefi", decimals: 18, price: 0.02156836}, // Addr: 0xae6e307c3fe9e922e5674dbd7f830ed49c014c6b, Notional: 161840.83643559736 - {chain: 2, addr: "000000000000000000000000da31d0d1bc934fc34f7189e38a413ca0a5e8b44f", symbol: "BSSB", coinGeckoId: "bitstable-finance", decimals: 18, price: 0.689576}, // Addr: 0xda31d0d1bc934fc34f7189e38a413ca0a5e8b44f, Notional: 6.895759999999999 - {chain: 2, addr: "000000000000000000000000c5ba042bf8832999b17c9036e8212f49dce0501a", symbol: "YOURAI", coinGeckoId: "your-ai", decimals: 18, price: 0.085477}, // Addr: 0xc5ba042bf8832999b17c9036e8212f49dce0501a, Notional: 7166796.779727382 - {chain: 2, addr: "000000000000000000000000fcaf0e4498e78d65526a507360f755178b804ba8", symbol: "SHIB", coinGeckoId: "niccagewaluigielmo42069inu", decimals: 18, price: 0.00005222}, // Addr: 0xfcaf0e4498e78d65526a507360f755178b804ba8, Notional: 12.001947791466876 - {chain: 2, addr: "0000000000000000000000001796ae0b0fa4862485106a0de9b654efe301d0b2", symbol: "PMON", coinGeckoId: "polychain-monsters", decimals: 18, price: 0.411585}, // Addr: 0x1796ae0b0fa4862485106a0de9b654efe301d0b2, Notional: 16.25765012785845 + {chain: 2, addr: "0000000000000000000000002c8ea636345a231e4b1a28f6eeb2072ed909c406", symbol: "MemElon", coinGeckoId: "meme-elon-doge-floki-2", decimals: 18, price: 8.5067e-11}, // Addr: 0x2c8ea636345a231e4b1a28f6eeb2072ed909c406, Notional: 15.312059999999999 + {chain: 2, addr: "000000000000000000000000d0d56273290d339aaf1417d9bfa1bb8cfe8a0933", symbol: "FOOM", coinGeckoId: "foom", decimals: 18, price: 4.7266e-8}, // Addr: 0xd0d56273290d339aaf1417d9bfa1bb8cfe8a0933, Notional: 5670.405174270896 + {chain: 2, addr: "0000000000000000000000006fe2506d1ddd77c43a3eaf4c4e0f7aeb14f26765", symbol: "ORBT", coinGeckoId: "orbitt-pro", decimals: 18, price: 0.126368}, // Addr: 0x6fe2506d1ddd77c43a3eaf4c4e0f7aeb14f26765, Notional: 1.2636800000000001 + {chain: 2, addr: "0000000000000000000000008acee0fcee91cedad1c5013f031762c814740587", symbol: "SAUDIPEPE", coinGeckoId: "saudi-pepe", decimals: 18, price: 0.00000201}, // Addr: 0x8acee0fcee91cedad1c5013f031762c814740587, Notional: 9.109213644952007 + {chain: 2, addr: "0000000000000000000000002260fac5e5542a773aa44fbcfedf7c193bc2c599", symbol: "WBTC", coinGeckoId: "wrapped-bitcoin", decimals: 8, price: 58724}, // Addr: 0x2260fac5e5542a773aa44fbcfedf7c193bc2c599, Notional: 121776550.20470607 + {chain: 2, addr: "00000000000000000000000033e80a92a9ea73dd02f6e732d1702d58c68388ca", symbol: "XB", coinGeckoId: "xbanking", decimals: 2, price: 0.272568}, // Addr: 0x33e80a92a9ea73dd02f6e732d1702d58c68388ca, Notional: 3618.3401999999996 + {chain: 2, addr: "000000000000000000000000aa2ce7ae64066175e0b90497ce7d9c190c315db4", symbol: "Suter", coinGeckoId: "suterusu", decimals: 18, price: 0.00021257}, // Addr: 0xaa2ce7ae64066175e0b90497ce7d9c190c315db4, Notional: 17.309959532845 + {chain: 2, addr: "000000000000000000000000b0ffa8000886e57f86dd5264b9582b2ad87b2b91", symbol: "W", coinGeckoId: "wormhole", decimals: 18, price: 0.2171}, // Addr: 0xb0ffa8000886e57f86dd5264b9582b2ad87b2b91, Notional: 0.434204342 + {chain: 2, addr: "00000000000000000000000038e382f74dfb84608f3c1f10187f6bef5951de93", symbol: "MUBI", coinGeckoId: "multibit", decimals: 18, price: 0.02620114}, // Addr: 0x38e382f74dfb84608f3c1f10187f6bef5951de93, Notional: 527.5276095862173 + {chain: 2, addr: "000000000000000000000000d084b83c305dafd76ae3e1b4e1f1fe2ecccb3988", symbol: "TVK", coinGeckoId: "the-virtua-kolect", decimals: 18, price: 0.093481}, // Addr: 0xd084b83c305dafd76ae3e1b4e1f1fe2ecccb3988, Notional: 0.47100385864748995 + {chain: 2, addr: "000000000000000000000000dd69db25f6d620a7bad3023c5d32761d353d3de9", symbol: "GETH", coinGeckoId: "goerli-eth", decimals: 18, price: 0.01115284}, // Addr: 0xdd69db25f6d620a7bad3023c5d32761d353d3de9, Notional: 0.8364630000000001 + {chain: 2, addr: "000000000000000000000000102c776ddb30c754ded4fdcc77a19230a60d4e4f", symbol: "FLC", coinGeckoId: "flooring-lab-credit", decimals: 18, price: 0.00373971}, // Addr: 0x102c776ddb30c754ded4fdcc77a19230a60d4e4f, Notional: 73973.93620040908 + {chain: 2, addr: "0000000000000000000000003a856d4effa670c54585a5d523e96513e148e95d", symbol: "TRIAS", coinGeckoId: "trias-token", decimals: 18, price: 5.69}, // Addr: 0x3a856d4effa670c54585a5d523e96513e148e95d, Notional: 370.2082783608 + {chain: 2, addr: "00000000000000000000000082f13ab56cc0d1b727e8253a943f0de75b048b0b", symbol: "PLAYFI", coinGeckoId: "playfi", decimals: 18, price: 0.03019482}, // Addr: 0x82f13ab56cc0d1b727e8253a943f0de75b048b0b, Notional: 7300.597958481186 + {chain: 2, addr: "000000000000000000000000c28eb2250d1ae32c7e74cfb6d6b86afc9beb6509", symbol: "OPN", coinGeckoId: "open-ticketing-ecosystem", decimals: 18, price: 0.00072419}, // Addr: 0xc28eb2250d1ae32c7e74cfb6d6b86afc9beb6509, Notional: 404283.47199029266 + {chain: 2, addr: "000000000000000000000000d3e4ba569045546d09cf021ecc5dfe42b1d7f6e4", symbol: "MNW", coinGeckoId: "morpheus-network", decimals: 18, price: 0.390393}, // Addr: 0xd3e4ba569045546d09cf021ecc5dfe42b1d7f6e4, Notional: 11.71179 + {chain: 2, addr: "00000000000000000000000024249b5a869a445c9b0ce269a08d73c618df9d21", symbol: "ETHEREUM", coinGeckoId: "harrypottertrumphomersimpson777inu", decimals: 8, price: 0.00042609}, // Addr: 0x24249b5a869a445c9b0ce269a08d73c618df9d21, Notional: 2.087841 + {chain: 2, addr: "000000000000000000000000cb8fb2438a805664cd8c3e640b85ac473da5be87", symbol: "CTI", coinGeckoId: "clintex-cti", decimals: 18, price: 0.0137545}, // Addr: 0xcb8fb2438a805664cd8c3e640b85ac473da5be87, Notional: 134251.34982214152 + {chain: 2, addr: "000000000000000000000000f1f955016ecbcd7321c7266bccfb96c68ea5e49b", symbol: "RLY", coinGeckoId: "rally-2", decimals: 18, price: 0.00618546}, // Addr: 0xf1f955016ecbcd7321c7266bccfb96c68ea5e49b, Notional: 222755.70358301818 + {chain: 2, addr: "0000000000000000000000008530b66ca3ddf50e0447eae8ad7ea7d5e62762ed", symbol: "METADOGE", coinGeckoId: "meta-doge", decimals: 18, price: 4.4501e-11}, // Addr: 0x8530b66ca3ddf50e0447eae8ad7ea7d5e62762ed, Notional: 1.112525 + {chain: 2, addr: "0000000000000000000000007f39c581f595b53c5cb19bd0b3f8da6c935e2ca0", symbol: "wstETH", coinGeckoId: "wrapped-steth", decimals: 18, price: 3128.91}, // Addr: 0x7f39c581f595b53c5cb19bd0b3f8da6c935e2ca0, Notional: 3953349.689077811 + {chain: 2, addr: "000000000000000000000000cfd16933cb1579eee9fe6031686534e87353b148", symbol: "AIMR", coinGeckoId: "meromai", decimals: 18, price: 0.00288605}, // Addr: 0xcfd16933cb1579eee9fe6031686534e87353b148, Notional: 170451.82242557837 + {chain: 2, addr: "0000000000000000000000008390a1da07e376ef7add4be859ba74fb83aa02d5", symbol: "GROK", coinGeckoId: "grok-2", decimals: 9, price: 0.00512527}, // Addr: 0x8390a1da07e376ef7add4be859ba74fb83aa02d5, Notional: 160.98212840678832 + {chain: 2, addr: "00000000000000000000000052284158e02425290f6b627aeb5fff65edf058ad", symbol: "FMB", coinGeckoId: "flappymoonbird", decimals: 18, price: 0.01958096}, // Addr: 0x52284158e02425290f6b627aeb5fff65edf058ad, Notional: 62022.19868572527 + {chain: 2, addr: "0000000000000000000000004b1e80cac91e2216eeb63e29b957eb91ae9c2be8", symbol: "JUP", coinGeckoId: "jupiter", decimals: 18, price: 0.0004767}, // Addr: 0x4b1e80cac91e2216eeb63e29b957eb91ae9c2be8, Notional: 12.12546346196619 + {chain: 2, addr: "0000000000000000000000000f3adc247e91c3c50bc08721355a41037e89bc20", symbol: "ANC", coinGeckoId: "anchor-protocol", decimals: 18, price: 0.00703395}, // Addr: 0x0f3adc247e91c3c50bc08721355a41037e89bc20, Notional: 19.180217582946188 + {chain: 2, addr: "000000000000000000000000f8c3527cc04340b208c854e985240c02f7b7793f", symbol: "FRONT", coinGeckoId: "frontier-token", decimals: 18, price: 0.64348}, // Addr: 0xf8c3527cc04340b208c854e985240c02f7b7793f, Notional: 2390.502651823473 + {chain: 2, addr: "00000000000000000000000058cb30368ceb2d194740b144eab4c2da8a917dcb", symbol: "ZYN", coinGeckoId: "zyncoin-2", decimals: 18, price: 0.02978913}, // Addr: 0x58cb30368ceb2d194740b144eab4c2da8a917dcb, Notional: 2790882.2518802057 + {chain: 2, addr: "000000000000000000000000965b85d4674f64422c4898c8f8083187f02b32c0", symbol: "SFIL", coinGeckoId: "filecoin-standard-full-hashrate", decimals: 8, price: 0.077489}, // Addr: 0x965b85d4674f64422c4898c8f8083187f02b32c0, Notional: 0.5780214466 + {chain: 2, addr: "000000000000000000000000cbd55d4ffc43467142761a764763652b48b969ff", symbol: "ASTRO", coinGeckoId: "astrotools", decimals: 18, price: 0.065877}, // Addr: 0xcbd55d4ffc43467142761a764763652b48b969ff, Notional: 9.89733250730826 + {chain: 2, addr: "0000000000000000000000006e9730ecffbed43fd876a264c982e254ef05a0de", symbol: "NORD", coinGeckoId: "nord-finance", decimals: 18, price: 0.055332}, // Addr: 0x6e9730ecffbed43fd876a264c982e254ef05a0de, Notional: 0.55332 + {chain: 2, addr: "0000000000000000000000002c537e5624e4af88a7ae4060c022609376c8d0eb", symbol: "TRYB", coinGeckoId: "bilira", decimals: 6, price: 0.02923324}, // Addr: 0x2c537e5624e4af88a7ae4060c022609376c8d0eb, Notional: 196.24775063886955 + {chain: 2, addr: "000000000000000000000000eaa63125dd63f10874f99cdbbb18410e7fc79dd3", symbol: "HEMULE", coinGeckoId: "hemule", decimals: 18, price: 0.00540289}, // Addr: 0xeaa63125dd63f10874f99cdbbb18410e7fc79dd3, Notional: 11997.763129625062 + {chain: 2, addr: "0000000000000000000000004e15361fd6b4bb609fa63c81a2be19d873717870", symbol: "FTM", coinGeckoId: "wrapped-fantom", decimals: 18, price: 0.372417}, // Addr: 0x4e15361fd6b4bb609fa63c81a2be19d873717870, Notional: 3522.3735895466857 + {chain: 2, addr: "00000000000000000000000006af07097c9eeb7fd685c692751d5c66db49c215", symbol: "CHAI", coinGeckoId: "chai", decimals: 18, price: 1.12}, // Addr: 0x06af07097c9eeb7fd685c692751d5c66db49c215, Notional: 8696721.838479461 + {chain: 2, addr: "0000000000000000000000003506424f91fd33084466f402d5d97f05f8e3b4af", symbol: "CHZ", coinGeckoId: "chiliz", decimals: 18, price: 0.054811}, // Addr: 0x3506424f91fd33084466f402d5d97f05f8e3b4af, Notional: 19586.09383588277 + {chain: 2, addr: "000000000000000000000000aaee1a9723aadb7afa2810263653a34ba2c21c7a", symbol: "Mog", coinGeckoId: "mog-coin", decimals: 18, price: 0.00000128}, // Addr: 0xaaee1a9723aadb7afa2810263653a34ba2c21c7a, Notional: 360.78745258200564 + {chain: 2, addr: "0000000000000000000000005fab9761d60419c9eeebe3915a8fa1ed7e8d2e1b", symbol: "DIMO", coinGeckoId: "dimo", decimals: 18, price: 0.131392}, // Addr: 0x5fab9761d60419c9eeebe3915a8fa1ed7e8d2e1b, Notional: 0.131392 + {chain: 2, addr: "0000000000000000000000006149c26cd2f7b5ccdb32029af817123f6e37df5b", symbol: "LPOOL", coinGeckoId: "launchpool", decimals: 18, price: 0.069109}, // Addr: 0x6149c26cd2f7b5ccdb32029af817123f6e37df5b, Notional: 0.069109 + {chain: 2, addr: "000000000000000000000000f418588522d5dd018b425e472991e52ebbeeeeee", symbol: "PUSH", coinGeckoId: "ethereum-push-notification-service", decimals: 18, price: 0.063237}, // Addr: 0xf418588522d5dd018b425e472991e52ebbeeeeee, Notional: 0.063237 + {chain: 2, addr: "000000000000000000000000f3ae5d769e153ef72b4e3591ac004e89f48107a1", symbol: "DPR", coinGeckoId: "deeper-network", decimals: 18, price: 0.00225685}, // Addr: 0xf3ae5d769e153ef72b4e3591ac004e89f48107a1, Notional: 42.90123988901913 + {chain: 2, addr: "0000000000000000000000001a3496c18d558bd9c6c8f609e1b129f67ab08163", symbol: "DEP", coinGeckoId: "deapcoin", decimals: 18, price: 0.00123105}, // Addr: 0x1a3496c18d558bd9c6c8f609e1b129f67ab08163, Notional: 0.00123105 + {chain: 2, addr: "000000000000000000000000d69f306549e9d96f183b1aeca30b8f4353c2ecc3", symbol: "MCHC", coinGeckoId: "mch-coin", decimals: 18, price: 0.04064551}, // Addr: 0xd69f306549e9d96f183b1aeca30b8f4353c2ecc3, Notional: 341.5790872024281 + {chain: 2, addr: "000000000000000000000000761d38e5ddf6ccf6cf7c55759d5210750b5d60f3", symbol: "ELON", coinGeckoId: "dogelon-mars", decimals: 18, price: 1.39658e-7}, // Addr: 0x761d38e5ddf6ccf6cf7c55759d5210750b5d60f3, Notional: 25556.05934058252 + {chain: 2, addr: "000000000000000000000000f6e06b54855eff198a2d9a8686113665499a6134", symbol: "Celt", coinGeckoId: "celestial", decimals: 18, price: 0.00003992}, // Addr: 0xf6e06b54855eff198a2d9a8686113665499a6134, Notional: 0.05999976 + {chain: 2, addr: "000000000000000000000000e020b01b6fbd83066aa2e8ee0ccd1eb8d9cc70bf", symbol: "ARCD", coinGeckoId: "arcade-protocol", decimals: 18, price: 0.03822029}, // Addr: 0xe020b01b6fbd83066aa2e8ee0ccd1eb8d9cc70bf, Notional: 57330.435 + {chain: 2, addr: "0000000000000000000000006c5ba91642f10282b576d91922ae6448c9d52f4e", symbol: "PHA", coinGeckoId: "pha", decimals: 18, price: 0.097282}, // Addr: 0x6c5ba91642f10282b576d91922ae6448c9d52f4e, Notional: 75506.73221583098 + {chain: 2, addr: "00000000000000000000000033f391f4c4fe802b70b77ae37670037a92114a7c", symbol: "BURP", coinGeckoId: "burp", decimals: 18, price: 0.00034306}, // Addr: 0x33f391f4c4fe802b70b77ae37670037a92114a7c, Notional: 0.5468574190659798 + {chain: 2, addr: "0000000000000000000000003593d125a4f7849a1b059e64f4517a86dd60c95d", symbol: "OM", coinGeckoId: "mantra-dao", decimals: 18, price: 0.974993}, // Addr: 0x3593d125a4f7849a1b059e64f4517a86dd60c95d, Notional: 1617.2878765303112 + {chain: 2, addr: "000000000000000000000000967fb0d760ed3ce53afe2f0a071674cccae73550", symbol: "XETA", coinGeckoId: "xana", decimals: 18, price: 0.00453956}, // Addr: 0x967fb0d760ed3ce53afe2f0a071674cccae73550, Notional: 0.00453956 + {chain: 2, addr: "000000000000000000000000c944e90c64b2c07662a292be6244bdf05cda44a7", symbol: "GRT", coinGeckoId: "the-graph", decimals: 18, price: 0.142296}, // Addr: 0xc944e90c64b2c07662a292be6244bdf05cda44a7, Notional: 335.13468585088805 + {chain: 2, addr: "00000000000000000000000004815313e9329e8905a77251a1781cfa7934259a", symbol: "HOOD", coinGeckoId: "wagmicatgirlkanye420etfmoon1000x", decimals: 18, price: 0.00002729}, // Addr: 0x04815313e9329e8905a77251a1781cfa7934259a, Notional: 85005.48722986109 + {chain: 2, addr: "00000000000000000000000022fc5a29bd3d6cce19a06f844019fd506fce4455", symbol: "ePendle", coinGeckoId: "equilibria-finance-ependle", decimals: 18, price: 0.808672}, // Addr: 0x22fc5a29bd3d6cce19a06f844019fd506fce4455, Notional: 1609.4609530922396 + {chain: 2, addr: "0000000000000000000000008db1d28ee0d822367af8d220c0dc7cb6fe9dc442", symbol: "ETHPAD", coinGeckoId: "ethpad", decimals: 18, price: 0.00243461}, // Addr: 0x8db1d28ee0d822367af8d220c0dc7cb6fe9dc442, Notional: 19.724797310143998 + {chain: 2, addr: "0000000000000000000000004bd70556ae3f8a6ec6c4080a0c327b24325438f3", symbol: "HXRO", coinGeckoId: "hxro", decimals: 18, price: 0.01270364}, // Addr: 0x4bd70556ae3f8a6ec6c4080a0c327b24325438f3, Notional: 8526004.665247891 + {chain: 2, addr: "0000000000000000000000004674672bcddda2ea5300f5207e1158185c944bc0", symbol: "GXT", coinGeckoId: "gem-exchange-and-trading", decimals: 18, price: 0.00008448}, // Addr: 0x4674672bcddda2ea5300f5207e1158185c944bc0, Notional: 36040.76029688951 + {chain: 2, addr: "000000000000000000000000de30da39c46104798bb5aa3fe8b9e0e1f348163f", symbol: "GTC", coinGeckoId: "gitcoin", decimals: 18, price: 0.637121}, // Addr: 0xde30da39c46104798bb5aa3fe8b9e0e1f348163f, Notional: 13.379541000000001 + {chain: 2, addr: "00000000000000000000000058b6a8a3302369daec383334672404ee733ab239", symbol: "LPT", coinGeckoId: "livepeer", decimals: 18, price: 11.25}, // Addr: 0x58b6a8a3302369daec383334672404ee733ab239, Notional: 46.6300519875 + {chain: 2, addr: "00000000000000000000000076e222b07c53d28b89b0bac18602810fc22b49a8", symbol: "JOE", coinGeckoId: "joe-coin", decimals: 18, price: 0.0091964}, // Addr: 0x76e222b07c53d28b89b0bac18602810fc22b49a8, Notional: 286.10568217252063 + {chain: 2, addr: "0000000000000000000000002781246fe707bb15cee3e5ea354e2154a2877b16", symbol: "EL", coinGeckoId: "elysia", decimals: 18, price: 0.00418664}, // Addr: 0x2781246fe707bb15cee3e5ea354e2154a2877b16, Notional: 72795.35895356322 + {chain: 2, addr: "0000000000000000000000004d224452801aced8b2f0aebe155379bb5d594381", symbol: "APE", coinGeckoId: "apecoin", decimals: 18, price: 0.589943}, // Addr: 0x4d224452801aced8b2f0aebe155379bb5d594381, Notional: 40.40271833299772 + {chain: 2, addr: "0000000000000000000000008bc2bcb1b1896291942c36f3cca3c1afa0aaa7fd", symbol: "PACE", coinGeckoId: "3space-art", decimals: 18, price: 0.228696}, // Addr: 0x8bc2bcb1b1896291942c36f3cca3c1afa0aaa7fd, Notional: 228.696 + {chain: 2, addr: "000000000000000000000000beef01060047522408756e0000a90ce195a70000", symbol: "APTR", coinGeckoId: "aperture-finance", decimals: 6, price: 0.03537705}, // Addr: 0xbeef01060047522408756e0000a90ce195a70000, Notional: 8943595.19759531 + {chain: 2, addr: "00000000000000000000000018aaa7115705e8be94bffebde57af9bfc265b998", symbol: "AUDIO", coinGeckoId: "audius", decimals: 18, price: 0.12211}, // Addr: 0x18aaa7115705e8be94bffebde57af9bfc265b998, Notional: 4110255.544339501 + {chain: 2, addr: "0000000000000000000000009196e18bc349b1f64bc08784eae259525329a1ad", symbol: "PUSSY", coinGeckoId: "pussy-financial", decimals: 18, price: 0.00000515}, // Addr: 0x9196e18bc349b1f64bc08784eae259525329a1ad, Notional: 116.95685535 + {chain: 2, addr: "000000000000000000000000fd09911130e6930bf87f2b0554c44f400bd80d3e", symbol: "ETHIX", coinGeckoId: "ethichub", decimals: 18, price: 0.162094}, // Addr: 0xfd09911130e6930bf87f2b0554c44f400bd80d3e, Notional: 1917608.0864878206 + {chain: 2, addr: "0000000000000000000000009d71ce49ab8a0e6d2a1e7bfb89374c9392fd6804", symbol: "Nvir", coinGeckoId: "nvirworld", decimals: 18, price: 0.00332142}, // Addr: 0x9d71ce49ab8a0e6d2a1e7bfb89374c9392fd6804, Notional: 16.6071 + {chain: 2, addr: "000000000000000000000000ae6e307c3fe9e922e5674dbd7f830ed49c014c6b", symbol: "CREDI", coinGeckoId: "credefi", decimals: 18, price: 0.01610368}, // Addr: 0xae6e307c3fe9e922e5674dbd7f830ed49c014c6b, Notional: 120835.93935242179 + {chain: 2, addr: "000000000000000000000000da31d0d1bc934fc34f7189e38a413ca0a5e8b44f", symbol: "BSSB", coinGeckoId: "bitstable-finance", decimals: 18, price: 0.15281}, // Addr: 0xda31d0d1bc934fc34f7189e38a413ca0a5e8b44f, Notional: 1.5281 + {chain: 2, addr: "000000000000000000000000c5ba042bf8832999b17c9036e8212f49dce0501a", symbol: "YOURAI", coinGeckoId: "your-ai", decimals: 18, price: 0.01126769}, // Addr: 0xc5ba042bf8832999b17c9036e8212f49dce0501a, Notional: 979476.7601554433 + {chain: 2, addr: "000000000000000000000000fcaf0e4498e78d65526a507360f755178b804ba8", symbol: "SHIB", coinGeckoId: "niccagewaluigielmo42069inu", decimals: 18, price: 0.00005468}, // Addr: 0xfcaf0e4498e78d65526a507360f755178b804ba8, Notional: 12.56734019987378 + {chain: 2, addr: "0000000000000000000000001796ae0b0fa4862485106a0de9b654efe301d0b2", symbol: "PMON", coinGeckoId: "polychain-monsters", decimals: 18, price: 0.126198}, // Addr: 0x1796ae0b0fa4862485106a0de9b654efe301d0b2, Notional: 4.98483407032686 {chain: 2, addr: "000000000000000000000000b7cfe05915ef0c040c6dde2007c9ddab26259e04", symbol: "MOLLY", coinGeckoId: "molly-gateway", decimals: 18, price: 0.00026311}, // Addr: 0xb7cfe05915ef0c040c6dde2007c9ddab26259e04, Notional: 0.0000662000178246 - {chain: 2, addr: "00000000000000000000000097a9bac06f90940bce9caec2b880ff17707519e4", symbol: "MNTO", coinGeckoId: "minato", decimals: 18, price: 2.51}, // Addr: 0x97a9bac06f90940bce9caec2b880ff17707519e4, Notional: 145.46246812049998 - {chain: 2, addr: "000000000000000000000000420412e765bfa6d85aaac94b4f7b708c89be2e2b", symbol: "BRZ", coinGeckoId: "brz", decimals: 4, price: 0.190113}, // Addr: 0x420412e765bfa6d85aaac94b4f7b708c89be2e2b, Notional: 19.391526 - {chain: 2, addr: "000000000000000000000000138c2f1123cf3f82e4596d097c118eac6684940b", symbol: "ALPHA", coinGeckoId: "alphacoin", decimals: 18, price: 0.103969}, // Addr: 0x138c2f1123cf3f82e4596d097c118eac6684940b, Notional: 0.10292931000000001 - {chain: 2, addr: "000000000000000000000000f819d9cb1c2a819fd991781a822de3ca8607c3c9", symbol: "UNIBOT", coinGeckoId: "unibot", decimals: 18, price: 13.02}, // Addr: 0xf819d9cb1c2a819fd991781a822de3ca8607c3c9, Notional: 1258.4209691843998 - {chain: 2, addr: "0000000000000000000000001c48f86ae57291f7686349f12601910bd8d470bb", symbol: "USDK", coinGeckoId: "usdk", decimals: 18, price: 0.99738}, // Addr: 0x1c48f86ae57291f7686349f12601910bd8d470bb, Notional: 2221.321055314027 - {chain: 2, addr: "0000000000000000000000000d5639a1442730372e2a650a2900ba07937854f4", symbol: "CHUB", coinGeckoId: "callhub", decimals: 18, price: 0.129557}, // Addr: 0x0d5639a1442730372e2a650a2900ba07937854f4, Notional: 777.342 - {chain: 2, addr: "000000000000000000000000ebd9d99a3982d547c5bb4db7e3b1f9f14b67eb83", symbol: "ID", coinGeckoId: "everid", decimals: 18, price: 0.079329}, // Addr: 0xebd9d99a3982d547c5bb4db7e3b1f9f14b67eb83, Notional: 2055.776567673592 + {chain: 2, addr: "00000000000000000000000097a9bac06f90940bce9caec2b880ff17707519e4", symbol: "MNTO", coinGeckoId: "minato", decimals: 18, price: 1.23}, // Addr: 0x97a9bac06f90940bce9caec2b880ff17707519e4, Notional: 71.2824046965 + {chain: 2, addr: "000000000000000000000000420412e765bfa6d85aaac94b4f7b708c89be2e2b", symbol: "BRZ", coinGeckoId: "brz", decimals: 4, price: 0.185331}, // Addr: 0x420412e765bfa6d85aaac94b4f7b708c89be2e2b, Notional: 18.903762 + {chain: 2, addr: "000000000000000000000000138c2f1123cf3f82e4596d097c118eac6684940b", symbol: "ALPHA", coinGeckoId: "alphacoin", decimals: 18, price: 0.04690958}, // Addr: 0x138c2f1123cf3f82e4596d097c118eac6684940b, Notional: 0.0464404842 + {chain: 2, addr: "000000000000000000000000f819d9cb1c2a819fd991781a822de3ca8607c3c9", symbol: "UNIBOT", coinGeckoId: "unibot", decimals: 18, price: 6.51}, // Addr: 0xf819d9cb1c2a819fd991781a822de3ca8607c3c9, Notional: 629.2104845921999 + {chain: 2, addr: "0000000000000000000000001c48f86ae57291f7686349f12601910bd8d470bb", symbol: "USDK", coinGeckoId: "usdk", decimals: 18, price: 1.023}, // Addr: 0x1c48f86ae57291f7686349f12601910bd8d470bb, Notional: 2278.38079727511 + {chain: 2, addr: "0000000000000000000000000d5639a1442730372e2a650a2900ba07937854f4", symbol: "CHUB", coinGeckoId: "callhub", decimals: 18, price: 0.02176804}, // Addr: 0x0d5639a1442730372e2a650a2900ba07937854f4, Notional: 130.60824 + {chain: 2, addr: "000000000000000000000000d6c7bb8531295e88d364ea67d5d1acc7d3f87454", symbol: "FTR", coinGeckoId: "fautor", decimals: 18, price: 0.085903}, // Addr: 0xd6c7bb8531295e88d364ea67d5d1acc7d3f87454, Notional: 0.085903 + {chain: 2, addr: "000000000000000000000000ebd9d99a3982d547c5bb4db7e3b1f9f14b67eb83", symbol: "ID", coinGeckoId: "everid", decimals: 18, price: 0.04800849}, // Addr: 0xebd9d99a3982d547c5bb4db7e3b1f9f14b67eb83, Notional: 1244.1191593413753 {chain: 2, addr: "0000000000000000000000007e9c15c43f0d6c4a12e6bdff7c7d55d0f80e3e23", symbol: "ASTRADAO", coinGeckoId: "astra-dao", decimals: 18, price: 1.94569e-7}, // Addr: 0x7e9c15c43f0d6c4a12e6bdff7c7d55d0f80e3e23, Notional: 59.538077756201176 - {chain: 2, addr: "000000000000000000000000814e0908b12a99fecf5bc101bb5d0b8b5cdf7d26", symbol: "MDT", coinGeckoId: "measurable-data-token", decimals: 18, price: 0.065378}, // Addr: 0x814e0908b12a99fecf5bc101bb5d0b8b5cdf7d26, Notional: 89440.64022362695 - {chain: 2, addr: "000000000000000000000000727f064a78dc734d33eec18d5370aef32ffd46e4", symbol: "ORION", coinGeckoId: "orion-money", decimals: 18, price: 0.00186487}, // Addr: 0x727f064a78dc734d33eec18d5370aef32ffd46e4, Notional: 151775.621085253 - {chain: 2, addr: "000000000000000000000000766d2fcece1e3eef32aae8711ab886ee95fd5b2a", symbol: "MVP", coinGeckoId: "maga-vp", decimals: 18, price: 0.109749}, // Addr: 0x766d2fcece1e3eef32aae8711ab886ee95fd5b2a, Notional: 326329.51043003355 - {chain: 2, addr: "00000000000000000000000041e5560054824ea6b0732e656e3ad64e20e94e45", symbol: "CVC", coinGeckoId: "civic", decimals: 8, price: 0.157097}, // Addr: 0x41e5560054824ea6b0732e656e3ad64e20e94e45, Notional: 31.419399999999996 - {chain: 2, addr: "00000000000000000000000050d1c9771902476076ecfc8b2a83ad6b9355a4c9", symbol: "FTX Token", coinGeckoId: "ftx-token", decimals: 18, price: 1.38}, // Addr: 0x50d1c9771902476076ecfc8b2a83ad6b9355a4c9, Notional: 333165.8787308034 - {chain: 2, addr: "000000000000000000000000d13cfd3133239a3c73a9e535a5c4dadee36b395c", symbol: "VAI", coinGeckoId: "vaiot", decimals: 18, price: 0.170237}, // Addr: 0xd13cfd3133239a3c73a9e535a5c4dadee36b395c, Notional: 89.714899 - {chain: 2, addr: "00000000000000000000000070bef3bb2f001da2fddb207dae696cd9faff3f5d", symbol: "NST", coinGeckoId: "ninja-squad", decimals: 18, price: 3.01}, // Addr: 0x70bef3bb2f001da2fddb207dae696cd9faff3f5d, Notional: 12194057.775686689 - {chain: 2, addr: "000000000000000000000000808507121b80c02388fad14726482e061b8da827", symbol: "PENDLE", coinGeckoId: "pendle", decimals: 18, price: 4.2}, // Addr: 0x808507121b80c02388fad14726482e061b8da827, Notional: 8420285.132713355 - {chain: 2, addr: "00000000000000000000000069b14e8d3cebfdd8196bfe530954a0c226e5008e", symbol: "SpacePi", coinGeckoId: "spacepi-token", decimals: 9, price: 7.267e-9}, // Addr: 0x69b14e8d3cebfdd8196bfe530954a0c226e5008e, Notional: 1161.1197627860981 - {chain: 2, addr: "00000000000000000000000033349b282065b0284d756f0577fb39c158f935e6", symbol: "MPL", coinGeckoId: "maple", decimals: 18, price: 11.55}, // Addr: 0x33349b282065b0284d756f0577fb39c158f935e6, Notional: 112432.29377838151 - {chain: 2, addr: "000000000000000000000000e0f63a424a4439cbe457d80e4f4b51ad25b2c56c", symbol: "SPX", coinGeckoId: "spx6900", decimals: 8, price: 0.00637918}, // Addr: 0xe0f63a424a4439cbe457d80e4f4b51ad25b2c56c, Notional: 676877.2447555327 - {chain: 2, addr: "000000000000000000000000721a1b990699ee9d90b6327faad0a3e840ae8335", symbol: "LOOT", coinGeckoId: "loot", decimals: 18, price: 0.03695748}, // Addr: 0x721a1b990699ee9d90b6327faad0a3e840ae8335, Notional: 26.66482182 - {chain: 2, addr: "000000000000000000000000cdf7028ceab81fa0c6971208e83fa7872994bee5", symbol: "T", coinGeckoId: "threshold-network-token", decimals: 18, price: 0.03308743}, // Addr: 0xcdf7028ceab81fa0c6971208e83fa7872994bee5, Notional: 72748.57558610178 - {chain: 2, addr: "0000000000000000000000005de8ab7e27f6e7a1fff3e5b337584aa43961beef", symbol: "SDEX", coinGeckoId: "smardex", decimals: 18, price: 0.01541179}, // Addr: 0x5de8ab7e27f6e7a1fff3e5b337584aa43961beef, Notional: 20083234.333541717 - {chain: 2, addr: "000000000000000000000000b50721bcf8d664c30412cfbc6cf7a15145234ad1", symbol: "ARB", coinGeckoId: "arbitrum", decimals: 18, price: 1.019}, // Addr: 0xb50721bcf8d664c30412cfbc6cf7a15145234ad1, Notional: 171.95286587043 - {chain: 2, addr: "000000000000000000000000fa3e941d1f6b7b10ed84a0c211bfa8aee907965e", symbol: "HAY", coinGeckoId: "haycoin", decimals: 18, price: 320952}, // Addr: 0xfa3e941d1f6b7b10ed84a0c211bfa8aee907965e, Notional: 33914.90797344 - {chain: 2, addr: "0000000000000000000000001f573d6fb3f13d689ff844b4ce37794d79a7ff1c", symbol: "BNT", coinGeckoId: "bancor", decimals: 18, price: 0.641031}, // Addr: 0x1f573d6fb3f13d689ff844b4ce37794d79a7ff1c, Notional: 6.41031 - {chain: 2, addr: "000000000000000000000000d7c302fc3ac829c7e896a32c4bd126f3e8bd0a1f", symbol: "B2M", coinGeckoId: "bit2me", decimals: 18, price: 0.00865075}, // Addr: 0xd7c302fc3ac829c7e896a32c4bd126f3e8bd0a1f, Notional: 0.0045464114378475 - {chain: 2, addr: "000000000000000000000000968f6f898a6df937fc1859b323ac2f14643e3fed", symbol: "NWC", coinGeckoId: "newscrypto-coin", decimals: 18, price: 0.105305}, // Addr: 0x968f6f898a6df937fc1859b323ac2f14643e3fed, Notional: 0.105305 - {chain: 2, addr: "0000000000000000000000006b89b97169a797d94f057f4a0b01e2ca303155e4", symbol: "CHAD", coinGeckoId: "chad-coin", decimals: 18, price: 0.00000334}, // Addr: 0x6b89b97169a797d94f057f4a0b01e2ca303155e4, Notional: 29378.422422963326 - {chain: 2, addr: "0000000000000000000000000b61c4f33bcdef83359ab97673cb5961c6435f4e", symbol: "EARN", coinGeckoId: "hold-2", decimals: 18, price: 0.00335332}, // Addr: 0x0b61c4f33bcdef83359ab97673cb5961c6435f4e, Notional: 19.597047420661355 - {chain: 2, addr: "000000000000000000000000e9b7b5d5e8d2bcc78884f9f9099bfa42a9e5c1a5", symbol: "ZENF", coinGeckoId: "zenland", decimals: 18, price: 0.00677439}, // Addr: 0xe9b7b5d5e8d2bcc78884f9f9099bfa42a9e5c1a5, Notional: 89156.30239753632 - {chain: 2, addr: "0000000000000000000000008ce9137d39326ad0cd6491fb5cc0cba0e089b6a9", symbol: "SXP", coinGeckoId: "swipe", decimals: 18, price: 0.316023}, // Addr: 0x8ce9137d39326ad0cd6491fb5cc0cba0e089b6a9, Notional: 31663.709844870915 - {chain: 2, addr: "000000000000000000000000bd8fdda057de7e0162b7a386bec253844b5e07a5", symbol: "JARVIS", coinGeckoId: "jarvis-2", decimals: 18, price: 0.084009}, // Addr: 0xbd8fdda057de7e0162b7a386bec253844b5e07a5, Notional: 1885068.333364084 - {chain: 2, addr: "00000000000000000000000071fc1f555a39e0b698653ab0b475488ec3c34d57", symbol: "RAIN", coinGeckoId: "rainmaker-games", decimals: 18, price: 0.00153429}, // Addr: 0x71fc1f555a39e0b698653ab0b475488ec3c34d57, Notional: 50.284042728399 - {chain: 2, addr: "00000000000000000000000043d4a3cd90ddd2f8f4f693170c9c8098163502ad", symbol: "D2D", coinGeckoId: "prime", decimals: 18, price: 0.01025702}, // Addr: 0x43d4a3cd90ddd2f8f4f693170c9c8098163502ad, Notional: 832.9895919905612 + {chain: 2, addr: "000000000000000000000000814e0908b12a99fecf5bc101bb5d0b8b5cdf7d26", symbol: "MDT", coinGeckoId: "measurable-data-token", decimals: 18, price: 0.03841176}, // Addr: 0x814e0908b12a99fecf5bc101bb5d0b8b5cdf7d26, Notional: 58684.334300392286 + {chain: 2, addr: "000000000000000000000000727f064a78dc734d33eec18d5370aef32ffd46e4", symbol: "ORION", coinGeckoId: "orion-money", decimals: 18, price: 0.00098565}, // Addr: 0x727f064a78dc734d33eec18d5370aef32ffd46e4, Notional: 81820.1381562834 + {chain: 2, addr: "000000000000000000000000766d2fcece1e3eef32aae8711ab886ee95fd5b2a", symbol: "MVP", coinGeckoId: "maga-vp", decimals: 18, price: 0.04979533}, // Addr: 0x766d2fcece1e3eef32aae8711ab886ee95fd5b2a, Notional: 173697.97561193176 + {chain: 2, addr: "00000000000000000000000041e5560054824ea6b0732e656e3ad64e20e94e45", symbol: "CVC", coinGeckoId: "civic", decimals: 8, price: 0.08865}, // Addr: 0x41e5560054824ea6b0732e656e3ad64e20e94e45, Notional: 17.73 + {chain: 2, addr: "00000000000000000000000050d1c9771902476076ecfc8b2a83ad6b9355a4c9", symbol: "FTX Token", coinGeckoId: "ftx-token", decimals: 18, price: 1.29}, // Addr: 0x50d1c9771902476076ecfc8b2a83ad6b9355a4c9, Notional: 311595.8122339398 + {chain: 2, addr: "000000000000000000000000d13cfd3133239a3c73a9e535a5c4dadee36b395c", symbol: "VAI", coinGeckoId: "vaiot", decimals: 18, price: 0.077016}, // Addr: 0xd13cfd3133239a3c73a9e535a5c4dadee36b395c, Notional: 40.587432 + {chain: 2, addr: "00000000000000000000000070bef3bb2f001da2fddb207dae696cd9faff3f5d", symbol: "NST", coinGeckoId: "ninja-squad", decimals: 18, price: 2.26}, // Addr: 0x70bef3bb2f001da2fddb207dae696cd9faff3f5d, Notional: 9898651.281432625 + {chain: 2, addr: "000000000000000000000000808507121b80c02388fad14726482e061b8da827", symbol: "PENDLE", coinGeckoId: "pendle", decimals: 18, price: 2.82}, // Addr: 0x808507121b80c02388fad14726482e061b8da827, Notional: 7461179.342780844 + {chain: 2, addr: "00000000000000000000000069b14e8d3cebfdd8196bfe530954a0c226e5008e", symbol: "SpacePi", coinGeckoId: "spacepi-token", decimals: 9, price: 2.894e-9}, // Addr: 0x69b14e8d3cebfdd8196bfe530954a0c226e5008e, Notional: 462.40272375161254 + {chain: 2, addr: "00000000000000000000000033349b282065b0284d756f0577fb39c158f935e6", symbol: "MPL", coinGeckoId: "maple", decimals: 18, price: 13.61}, // Addr: 0x33349b282065b0284d756f0577fb39c158f935e6, Notional: 129745.95140833479 + {chain: 2, addr: "000000000000000000000000e0f63a424a4439cbe457d80e4f4b51ad25b2c56c", symbol: "SPX", coinGeckoId: "spx6900", decimals: 8, price: 0.01568532}, // Addr: 0xe0f63a424a4439cbe457d80e4f4b51ad25b2c56c, Notional: 1297467.6501642896 + {chain: 2, addr: "000000000000000000000000721a1b990699ee9d90b6327faad0a3e840ae8335", symbol: "LOOT", coinGeckoId: "loot", decimals: 18, price: 0.01954815}, // Addr: 0x721a1b990699ee9d90b6327faad0a3e840ae8335, Notional: 14.103990225 + {chain: 2, addr: "000000000000000000000000cdf7028ceab81fa0c6971208e83fa7872994bee5", symbol: "T", coinGeckoId: "threshold-network-token", decimals: 18, price: 0.02225163}, // Addr: 0xcdf7028ceab81fa0c6971208e83fa7872994bee5, Notional: 2967.6754620078427 + {chain: 2, addr: "0000000000000000000000005de8ab7e27f6e7a1fff3e5b337584aa43961beef", symbol: "SDEX", coinGeckoId: "smardex", decimals: 18, price: 0.01041954}, // Addr: 0x5de8ab7e27f6e7a1fff3e5b337584aa43961beef, Notional: 14273169.580098463 + {chain: 2, addr: "000000000000000000000000b50721bcf8d664c30412cfbc6cf7a15145234ad1", symbol: "ARB", coinGeckoId: "arbitrum", decimals: 18, price: 0.561394}, // Addr: 0xb50721bcf8d664c30412cfbc6cf7a15145234ad1, Notional: 150.87277309368417 + {chain: 2, addr: "000000000000000000000000fa3e941d1f6b7b10ed84a0c211bfa8aee907965e", symbol: "HAY", coinGeckoId: "haycoin", decimals: 18, price: 164777}, // Addr: 0xfa3e941d1f6b7b10ed84a0c211bfa8aee907965e, Notional: 17786.33092191 + {chain: 2, addr: "0000000000000000000000001f573d6fb3f13d689ff844b4ce37794d79a7ff1c", symbol: "BNT", coinGeckoId: "bancor", decimals: 18, price: 0.477974}, // Addr: 0x1f573d6fb3f13d689ff844b4ce37794d79a7ff1c, Notional: 4.77974 + {chain: 2, addr: "000000000000000000000000d7c302fc3ac829c7e896a32c4bd126f3e8bd0a1f", symbol: "B2M", coinGeckoId: "bit2me", decimals: 18, price: 0.00971452}, // Addr: 0xd7c302fc3ac829c7e896a32c4bd126f3e8bd0a1f, Notional: 0.0051054769634076005 + {chain: 2, addr: "000000000000000000000000968f6f898a6df937fc1859b323ac2f14643e3fed", symbol: "NWC", coinGeckoId: "newscrypto-coin", decimals: 18, price: 0.075175}, // Addr: 0x968f6f898a6df937fc1859b323ac2f14643e3fed, Notional: 0.075175 + {chain: 2, addr: "0000000000000000000000006b89b97169a797d94f057f4a0b01e2ca303155e4", symbol: "CHAD", coinGeckoId: "chad-coin", decimals: 18, price: 0.00000267}, // Addr: 0x6b89b97169a797d94f057f4a0b01e2ca303155e4, Notional: 23485.146068656308 + {chain: 2, addr: "0000000000000000000000000b61c4f33bcdef83359ab97673cb5961c6435f4e", symbol: "EARN", coinGeckoId: "hold-2", decimals: 18, price: 0.00323994}, // Addr: 0x0b61c4f33bcdef83359ab97673cb5961c6435f4e, Notional: 18.93444640538259 + {chain: 2, addr: "000000000000000000000000e9b7b5d5e8d2bcc78884f9f9099bfa42a9e5c1a5", symbol: "ZENF", coinGeckoId: "zenland", decimals: 18, price: 0.00281946}, // Addr: 0xe9b7b5d5e8d2bcc78884f9f9099bfa42a9e5c1a5, Notional: 37166.3070775053 + {chain: 2, addr: "0000000000000000000000008ce9137d39326ad0cd6491fb5cc0cba0e089b6a9", symbol: "SXP", coinGeckoId: "swipe", decimals: 18, price: 0.208954}, // Addr: 0x8ce9137d39326ad0cd6491fb5cc0cba0e089b6a9, Notional: 20936.00411022349 + {chain: 2, addr: "000000000000000000000000bd8fdda057de7e0162b7a386bec253844b5e07a5", symbol: "JARVIS", coinGeckoId: "jarvis-2", decimals: 18, price: 0.058816}, // Addr: 0xbd8fdda057de7e0162b7a386bec253844b5e07a5, Notional: 1410631.9018333994 + {chain: 2, addr: "000000000000000000000000d3fb8597d260efb2e693efd500d62a330a00f1eb", symbol: "TRUMP INU", coinGeckoId: "t-inu", decimals: 18, price: 0.00000195}, // Addr: 0xd3fb8597d260efb2e693efd500d62a330a00f1eb, Notional: 3734.5881788189945 + {chain: 2, addr: "00000000000000000000000012970e6868f88f6557b76120662c1b3e50a646bf", symbol: "LADYS", coinGeckoId: "milady-meme-coin", decimals: 18, price: 9.8737e-8}, // Addr: 0x12970e6868f88f6557b76120662c1b3e50a646bf, Notional: 10.387094846253133 + {chain: 2, addr: "00000000000000000000000071fc1f555a39e0b698653ab0b475488ec3c34d57", symbol: "RAIN", coinGeckoId: "rainmaker-games", decimals: 18, price: 0.00070571}, // Addr: 0x71fc1f555a39e0b698653ab0b475488ec3c34d57, Notional: 53.486477830789 + {chain: 2, addr: "00000000000000000000000043d4a3cd90ddd2f8f4f693170c9c8098163502ad", symbol: "D2D", coinGeckoId: "prime", decimals: 18, price: 0.01049695}, // Addr: 0x43d4a3cd90ddd2f8f4f693170c9c8098163502ad, Notional: 852.4747048992124 {chain: 2, addr: "000000000000000000000000b8e2e2101ed11e9138803cd3e06e16dd19910647", symbol: "ARDX", coinGeckoId: "ardcoin", decimals: 2, price: 0.00379947}, // Addr: 0xb8e2e2101ed11e9138803cd3e06e16dd19910647, Notional: 4563.9993534000005 - {chain: 2, addr: "0000000000000000000000005f48d1fd6814cd1cd38aeb895755e57d519196d1", symbol: "WINS", coinGeckoId: "wins", decimals: 18, price: 0.02994937}, // Addr: 0x5f48d1fd6814cd1cd38aeb895755e57d519196d1, Notional: 2986125.32630797 - {chain: 2, addr: "000000000000000000000000b8c77482e45f1f44de1745f52c74426c631bdd52", symbol: "BNB", coinGeckoId: "binancecoin", decimals: 18, price: 550.99}, // Addr: 0xb8c77482e45f1f44de1745f52c74426c631bdd52, Notional: 15866.3819883679 - {chain: 2, addr: "000000000000000000000000ba100000625a3754423978a60c9317c58a424e3d", symbol: "BAL", coinGeckoId: "balancer", decimals: 18, price: 3.41}, // Addr: 0xba100000625a3754423978a60c9317c58a424e3d, Notional: 37.4967115028 - {chain: 2, addr: "0000000000000000000000007697b462a7c4ff5f8b55bdbc2f4076c2af9cf51a", symbol: "SARCO", coinGeckoId: "sarcophagus", decimals: 18, price: 0.063196}, // Addr: 0x7697b462a7c4ff5f8b55bdbc2f4076c2af9cf51a, Notional: 3.01775730710888 - {chain: 2, addr: "00000000000000000000000025722cd432d02895d9be45f5deb60fc479c8781e", symbol: "SPONGE", coinGeckoId: "sponge-f08b2fe4-9d9c-47c3-b5a0-84c2ac3bbbff", decimals: 18, price: 0.00031456}, // Addr: 0x25722cd432d02895d9be45f5deb60fc479c8781e, Notional: 11.065794898216575 - {chain: 2, addr: "000000000000000000000000d96e84ddbc7cbe1d73c55b6fe8c64f3a6550deea", symbol: "GMAC", coinGeckoId: "gemach", decimals: 18, price: 0.00234747}, // Addr: 0xd96e84ddbc7cbe1d73c55b6fe8c64f3a6550deea, Notional: 41341.28461495468 - {chain: 2, addr: "00000000000000000000000031429d1856ad1377a8a0079410b297e1a9e214c2", symbol: "ANGLE", coinGeckoId: "angle-protocol", decimals: 18, price: 0.103592}, // Addr: 0x31429d1856ad1377a8a0079410b297e1a9e214c2, Notional: 7896.196826209296 - {chain: 2, addr: "0000000000000000000000008287c7b963b405b7b8d467db9d79eec40625b13a", symbol: "SWINGBY", coinGeckoId: "swingby", decimals: 18, price: 0.00030813}, // Addr: 0x8287c7b963b405b7b8d467db9d79eec40625b13a, Notional: 3.451056 - {chain: 2, addr: "000000000000000000000000965697b4ef02f0de01384d0d4f9f782b1670c163", symbol: "OXY", coinGeckoId: "oxygen", decimals: 6, price: 0.050133}, // Addr: 0x965697b4ef02f0de01384d0d4f9f782b1670c163, Notional: 994.397681087463 + {chain: 2, addr: "0000000000000000000000005f48d1fd6814cd1cd38aeb895755e57d519196d1", symbol: "WINS", coinGeckoId: "wins", decimals: 18, price: 0.02993481}, // Addr: 0x5f48d1fd6814cd1cd38aeb895755e57d519196d1, Notional: 2984673.61013661 + {chain: 2, addr: "000000000000000000000000b8c77482e45f1f44de1745f52c74426c631bdd52", symbol: "BNB", coinGeckoId: "binancecoin", decimals: 18, price: 523.4}, // Addr: 0xb8c77482e45f1f44de1745f52c74426c631bdd52, Notional: 15113.721262111998 + {chain: 2, addr: "000000000000000000000000ba100000625a3754423978a60c9317c58a424e3d", symbol: "BAL", coinGeckoId: "balancer", decimals: 18, price: 1.94}, // Addr: 0xba100000625a3754423978a60c9317c58a424e3d, Notional: 21.332439975199996 + {chain: 2, addr: "0000000000000000000000007697b462a7c4ff5f8b55bdbc2f4076c2af9cf51a", symbol: "SARCO", coinGeckoId: "sarcophagus", decimals: 18, price: 0.03655849}, // Addr: 0x7697b462a7c4ff5f8b55bdbc2f4076c2af9cf51a, Notional: 1.7457536922331622 + {chain: 2, addr: "00000000000000000000000025722cd432d02895d9be45f5deb60fc479c8781e", symbol: "SPONGE", coinGeckoId: "sponge-f08b2fe4-9d9c-47c3-b5a0-84c2ac3bbbff", decimals: 18, price: 0.00003409}, // Addr: 0x25722cd432d02895d9be45f5deb60fc479c8781e, Notional: 1.199240043489964 + {chain: 2, addr: "000000000000000000000000d96e84ddbc7cbe1d73c55b6fe8c64f3a6550deea", symbol: "GMAC", coinGeckoId: "gemach", decimals: 18, price: 0.00071922}, // Addr: 0xd96e84ddbc7cbe1d73c55b6fe8c64f3a6550deea, Notional: 19977.74320603172 + {chain: 2, addr: "00000000000000000000000031429d1856ad1377a8a0079410b297e1a9e214c2", symbol: "ANGLE", coinGeckoId: "angle-protocol", decimals: 18, price: 0.02397407}, // Addr: 0x31429d1856ad1377a8a0079410b297e1a9e214c2, Notional: 1826.4843379074746 + {chain: 2, addr: "0000000000000000000000008287c7b963b405b7b8d467db9d79eec40625b13a", symbol: "SWINGBY", coinGeckoId: "swingby", decimals: 18, price: 0.00010568}, // Addr: 0x8287c7b963b405b7b8d467db9d79eec40625b13a, Notional: 1.183616 + {chain: 2, addr: "000000000000000000000000965697b4ef02f0de01384d0d4f9f782b1670c163", symbol: "OXY", coinGeckoId: "oxygen", decimals: 6, price: 0.02694202}, // Addr: 0x965697b4ef02f0de01384d0d4f9f782b1670c163, Notional: 2776.9785119654125 {chain: 2, addr: "000000000000000000000000a3a80559bbc1989654e6b8385f5001fa1333332f", symbol: "RZR", coinGeckoId: "raiser-token", decimals: 18, price: 0.101606}, // Addr: 0xa3a80559bbc1989654e6b8385f5001fa1333332f, Notional: 0.72378594958868 - {chain: 2, addr: "00000000000000000000000072e364f2abdc788b7e918bc238b21f109cd634d7", symbol: "MVI", coinGeckoId: "metaverse-index", decimals: 18, price: 33.51}, // Addr: 0x72e364f2abdc788b7e918bc238b21f109cd634d7, Notional: 33.845025942899994 - {chain: 2, addr: "000000000000000000000000dfdb7f72c1f195c5951a234e8db9806eb0635346", symbol: "NFD", coinGeckoId: "feisty-doge-nft", decimals: 18, price: 0.00025398}, // Addr: 0xdfdb7f72c1f195c5951a234e8db9806eb0635346, Notional: 172981.9396726614 - {chain: 2, addr: "0000000000000000000000008a9c67fee641579deba04928c4bc45f66e26343a", symbol: "JRT", coinGeckoId: "jarvis-reward-token", decimals: 18, price: 0.00559926}, // Addr: 0x8a9c67fee641579deba04928c4bc45f66e26343a, Notional: 243613.87666348732 - {chain: 2, addr: "000000000000000000000000a2cd3d43c775978a96bdbf12d733d5a1ed94fb18", symbol: "XCN", coinGeckoId: "chain-2", decimals: 18, price: 0.00196018}, // Addr: 0xa2cd3d43c775978a96bdbf12d733d5a1ed94fb18, Notional: 897902.999932084 - {chain: 2, addr: "000000000000000000000000b131f337c45d386ceec234e194b2663d5c3d9dcf", symbol: "ICOM", coinGeckoId: "icommunity", decimals: 18, price: 0.00899355}, // Addr: 0xb131f337c45d386ceec234e194b2663d5c3d9dcf, Notional: 37619.87505703195 - {chain: 2, addr: "0000000000000000000000004297394c20800e8a38a619a243e9bbe7681ff24e", symbol: "HOTCROSS", coinGeckoId: "hot-cross", decimals: 18, price: 0.00972751}, // Addr: 0x4297394c20800e8a38a619a243e9bbe7681ff24e, Notional: 9.72751 - {chain: 2, addr: "000000000000000000000000900db999074d9277c5da2a43f252d74366230da0", symbol: "GIV", coinGeckoId: "giveth", decimals: 18, price: 0.01159323}, // Addr: 0x900db999074d9277c5da2a43f252d74366230da0, Notional: 115.9323 - {chain: 2, addr: "0000000000000000000000001864ce27e9f7517047933caae530674e8c70b8a7", symbol: "PIB", coinGeckoId: "pibble", decimals: 18, price: 0.00044966}, // Addr: 0x1864ce27e9f7517047933caae530674e8c70b8a7, Notional: 0.44966 - {chain: 2, addr: "00000000000000000000000008d967bb0134f2d07f7cfb6e246680c53927dd30", symbol: "MATH", coinGeckoId: "math", decimals: 18, price: 0.371292}, // Addr: 0x08d967bb0134f2d07f7cfb6e246680c53927dd30, Notional: 316.6135480427262 - {chain: 2, addr: "00000000000000000000000004c154b66cb340f3ae24111cc767e0184ed00cc6", symbol: "pxETH", coinGeckoId: "dinero-staked-eth", decimals: 18, price: 2884.84}, // Addr: 0x04c154b66cb340f3ae24111cc767e0184ed00cc6, Notional: 11.53936 + {chain: 2, addr: "00000000000000000000000072e364f2abdc788b7e918bc238b21f109cd634d7", symbol: "MVI", coinGeckoId: "metaverse-index", decimals: 18, price: 21.89}, // Addr: 0x72e364f2abdc788b7e918bc238b21f109cd634d7, Notional: 22.108851623099998 + {chain: 2, addr: "000000000000000000000000dfdb7f72c1f195c5951a234e8db9806eb0635346", symbol: "NFD", coinGeckoId: "feisty-doge-nft", decimals: 18, price: 0.00013453}, // Addr: 0xdfdb7f72c1f195c5951a234e8db9806eb0635346, Notional: 98675.58165288567 + {chain: 2, addr: "000000000000000000000000a462bde22d98335e18a21555b6752db93a937cff", symbol: "BOBBY", coinGeckoId: "independence-token", decimals: 18, price: 0.00001654}, // Addr: 0xa462bde22d98335e18a21555b6752db93a937cff, Notional: 53239.79379535817 + {chain: 2, addr: "0000000000000000000000008a9c67fee641579deba04928c4bc45f66e26343a", symbol: "JRT", coinGeckoId: "jarvis-reward-token", decimals: 18, price: 0.00430604}, // Addr: 0x8a9c67fee641579deba04928c4bc45f66e26343a, Notional: 187348.16698421628 + {chain: 2, addr: "000000000000000000000000a2cd3d43c775978a96bdbf12d733d5a1ed94fb18", symbol: "XCN", coinGeckoId: "chain-2", decimals: 18, price: 0.00133091}, // Addr: 0xa2cd3d43c775978a96bdbf12d733d5a1ed94fb18, Notional: 609467.5281999395 + {chain: 2, addr: "000000000000000000000000b131f337c45d386ceec234e194b2663d5c3d9dcf", symbol: "ICOM", coinGeckoId: "icommunity", decimals: 18, price: 0.01873043}, // Addr: 0xb131f337c45d386ceec234e194b2663d5c3d9dcf, Notional: 81158.6520532446 + {chain: 2, addr: "000000000000000000000000b369daca21ee035312176eb8cf9d88ce97e0aa95", symbol: "SKOL", coinGeckoId: "skol", decimals: 18, price: 0.059631}, // Addr: 0xb369daca21ee035312176eb8cf9d88ce97e0aa95, Notional: 9170.368973055032 + {chain: 2, addr: "0000000000000000000000004297394c20800e8a38a619a243e9bbe7681ff24e", symbol: "HOTCROSS", coinGeckoId: "hot-cross", decimals: 18, price: 0.00982966}, // Addr: 0x4297394c20800e8a38a619a243e9bbe7681ff24e, Notional: 9.82966 + {chain: 2, addr: "000000000000000000000000900db999074d9277c5da2a43f252d74366230da0", symbol: "GIV", coinGeckoId: "giveth", decimals: 18, price: 0.00603783}, // Addr: 0x900db999074d9277c5da2a43f252d74366230da0, Notional: 60.3783 + {chain: 2, addr: "0000000000000000000000001864ce27e9f7517047933caae530674e8c70b8a7", symbol: "PIB", coinGeckoId: "pibble", decimals: 18, price: 0.00031628}, // Addr: 0x1864ce27e9f7517047933caae530674e8c70b8a7, Notional: 0.31628 + {chain: 2, addr: "00000000000000000000000008d967bb0134f2d07f7cfb6e246680c53927dd30", symbol: "MATH", coinGeckoId: "math", decimals: 18, price: 0.185418}, // Addr: 0x08d967bb0134f2d07f7cfb6e246680c53927dd30, Notional: 922715.2543096484 + {chain: 2, addr: "00000000000000000000000004c154b66cb340f3ae24111cc767e0184ed00cc6", symbol: "pxETH", coinGeckoId: "dinero-staked-eth", decimals: 18, price: 2658.21}, // Addr: 0x04c154b66cb340f3ae24111cc767e0184ed00cc6, Notional: 18125.5523433495 + {chain: 2, addr: "000000000000000000000000970b9bb2c0444f5e81e9d0efb84c8ccdcdcaf84d", symbol: "FUSE", coinGeckoId: "fuse-network-token", decimals: 18, price: 0.03452347}, // Addr: 0x970b9bb2c0444f5e81e9d0efb84c8ccdcdcaf84d, Notional: 0.6904694 {chain: 3, addr: "000000000000000000000000ab05561fadecc41babc73132847ff55a5cef2f37", symbol: "TNS", coinGeckoId: "terra-name-service", decimals: 6, price: 0.0010459}, // Addr: terra14vz4v8adanzph278xyeggll4tfww7teh0xtw2y, Notional: 0.826261 - {chain: 3, addr: "010000000000000000000000000000000000000000000000000000756c756e61", symbol: "LUNA", coinGeckoId: "terra-luna", decimals: 6, price: 0.00009645}, // Addr: uluna, Notional: 8450874.067361332 - {chain: 3, addr: "0000000000000000000000002c71557d2edfedd8330e52be500058a014d329e7", symbol: "BTL", coinGeckoId: "bitlocus", decimals: 6, price: 0.00112424}, // Addr: terra193c42lfwmlkasvcw22l9qqzc5q2dx208tkd7wl, Notional: 556327.5123944504 - {chain: 3, addr: "000000000000000000000000a21d626429c68c8c768ba0b2913895571703fd5b", symbol: "MIR", coinGeckoId: "mirror-protocol", decimals: 6, price: 0.04413222}, // Addr: terra15gwkyepfc6xgca5t5zefzwy42uts8l2m4g40k6, Notional: 993.0701458464732 - {chain: 3, addr: "0100000000000000000000000000000000000000000000000000000075757364", symbol: "UST", coinGeckoId: "terrausd", decimals: 6, price: 0.01739364}, // Addr: uusd, Notional: 2559039.4003973394 - {chain: 3, addr: "0000000000000000000000008f5cd460d57ac54e111646fc569179144c7f0c28", symbol: "PLY", coinGeckoId: "playnity", decimals: 6, price: 0.00163622}, // Addr: terra13awdgcx40tz5uygkgm79dytez3x87rpg4uhnvu, Notional: 149647.23293616655 - {chain: 3, addr: "000000000000000000000000a8a9afbd2157e093e8448dd6450abec8ad79aeeb", symbol: "ANC", coinGeckoId: "anchor-protocol", decimals: 6, price: 0.01435609}, // Addr: terra14z56l0fp2lsf86zy3hty2z47ezkhnthtr9yq76, Notional: 1015.0129237336549 - {chain: 3, addr: "00000000000000000000000034aa51100370594b15479392149157eeb479b9a8", symbol: "ASTRO", coinGeckoId: "astroport", decimals: 6, price: 0.00132502}, // Addr: terra1xj49zyqrwpv5k928jwfpfy2ha668nwdgkwlrg3, Notional: 0.07822949615476 - {chain: 3, addr: "0000000000000000000000005b7d58fe96a636927960029ea47996db5808d015", symbol: "XRUNE", coinGeckoId: "thorstarter", decimals: 6, price: 0.01514876}, // Addr: terra1td743l5k5cmfy7tqq202g7vkmdvq35q48u2jfm, Notional: 116.37561699996277 - {chain: 4, addr: "00000000000000000000000072b7d61e8fc8cf971960dd9cfa59b8c829d91991", symbol: "AQUA", coinGeckoId: "planet-finance", decimals: 18, price: 13}, // Addr: 0x72b7d61e8fc8cf971960dd9cfa59b8c829d91991, Notional: 1.30000897 - {chain: 4, addr: "000000000000000000000000885c5fb8f0e67b2b0cf3a437e6cc6ebc0f9f9014", symbol: "GEMG", coinGeckoId: "gemguardian", decimals: 18, price: 0.00596757}, // Addr: 0x885c5fb8f0e67b2b0cf3a437e6cc6ebc0f9f9014, Notional: 0.23416238266042233 - {chain: 4, addr: "00000000000000000000000037fe635d1e25b2f7276c1b9dbbcc7b087f80c050", symbol: "OciCat", coinGeckoId: "ocicat-token", decimals: 18, price: 7.96161e-10}, // Addr: 0x37fe635d1e25b2f7276c1b9dbbcc7b087f80c050, Notional: 113.54766057992849 - {chain: 4, addr: "0000000000000000000000008519ea49c997f50ceffa444d240fb655e89248aa", symbol: "RAMP", coinGeckoId: "ramp", decimals: 18, price: 0.103322}, // Addr: 0x8519ea49c997f50ceffa444d240fb655e89248aa, Notional: 145.53373878333065 - {chain: 4, addr: "000000000000000000000000c0ecb8499d8da2771abcbf4091db7f65158f1468", symbol: "SWTH", coinGeckoId: "switcheo", decimals: 8, price: 0.00589836}, // Addr: 0xc0ecb8499d8da2771abcbf4091db7f65158f1468, Notional: 0.00589836 - {chain: 4, addr: "00000000000000000000000044ec807ce2f4a6f2737a92e985f318d035883e47", symbol: "HFT", coinGeckoId: "hashflow", decimals: 18, price: 0.273366}, // Addr: 0x44ec807ce2f4a6f2737a92e985f318d035883e47, Notional: 1.04699178 - {chain: 4, addr: "00000000000000000000000019c018e13cff682e729cc7b5fb68c8a641bf98a4", symbol: "burn", coinGeckoId: "burnedfi", decimals: 18, price: 6.99}, // Addr: 0x19c018e13cff682e729cc7b5fb68c8a641bf98a4, Notional: 193.71489403500001 - {chain: 4, addr: "000000000000000000000000961c8c0b1aad0c0b10a51fef6a867e3091bcef17", symbol: "DYP", coinGeckoId: "defi-yield-protocol", decimals: 18, price: 0.404319}, // Addr: 0x961c8c0b1aad0c0b10a51fef6a867e3091bcef17, Notional: 6314.086925535319 - {chain: 4, addr: "000000000000000000000000552594612f935441c01c6854edf111f343c1ca07", symbol: "GWT", coinGeckoId: "galaxy-war", decimals: 18, price: 0.00098428}, // Addr: 0x552594612f935441c01c6854edf111f343c1ca07, Notional: 18.085008608492792 - {chain: 4, addr: "000000000000000000000000b6c53431608e626ac81a9776ac3e999c5556717c", symbol: "TLOS", coinGeckoId: "wrapped-telos", decimals: 18, price: 0.327504}, // Addr: 0xb6c53431608e626ac81a9776ac3e999c5556717c, Notional: 3.2200426430097604 - {chain: 4, addr: "000000000000000000000000af20f5f19698f1d19351028cd7103b63d30de7d7", symbol: "WAGMI", coinGeckoId: "wagmi-2", decimals: 18, price: 0.00933952}, // Addr: 0xaf20f5f19698f1d19351028cd7103b63d30de7d7, Notional: 0.060706880000000005 - {chain: 4, addr: "000000000000000000000000e29142e14e52bdfbb8108076f66f49661f10ec10", symbol: "SEILOR", coinGeckoId: "kryptonite", decimals: 18, price: 0.02076591}, // Addr: 0xe29142e14e52bdfbb8108076f66f49661f10ec10, Notional: 20804.333815053236 - {chain: 4, addr: "000000000000000000000000cbd9f6d748dd3d19416f8914528a65c7838e27d8", symbol: "RGAME", coinGeckoId: "r-games", decimals: 18, price: 0.01603052}, // Addr: 0xcbd9f6d748dd3d19416f8914528a65c7838e27d8, Notional: 1.603052 - {chain: 4, addr: "000000000000000000000000c5e6689c9c8b02be7c49912ef19e79cf24977f03", symbol: "ALPA", coinGeckoId: "alpaca", decimals: 18, price: 0.01140493}, // Addr: 0xc5e6689c9c8b02be7c49912ef19e79cf24977f03, Notional: 16.302295939116714 - {chain: 4, addr: "0000000000000000000000009678e42cebeb63f23197d726b29b1cb20d0064e5", symbol: "IOTX", coinGeckoId: "binance-peg-iotex", decimals: 18, price: 0.051258}, // Addr: 0x9678e42cebeb63f23197d726b29b1cb20d0064e5, Notional: 285.07443717479697 - {chain: 4, addr: "0000000000000000000000000b33542240d6fa323c796749f6d6869fdb7f13ca", symbol: "ETHM", coinGeckoId: "ethereum-meta", decimals: 18, price: 1.7361e-11}, // Addr: 0x0b33542240d6fa323c796749f6d6869fdb7f13ca, Notional: 0.3675179973279345 - {chain: 4, addr: "0000000000000000000000006d57f5c286e04850c2c085350f2e60aaa7b7c15b", symbol: "GrokGirl", coinGeckoId: "grok-girl", decimals: 9, price: 3.03842e-13}, // Addr: 0x6d57f5c286e04850c2c085350f2e60aaa7b7c15b, Notional: 0.05604895605952681 - {chain: 4, addr: "00000000000000000000000031d0a7ada4d4c131eb612db48861211f63e57610", symbol: "START", coinGeckoId: "bscstarter", decimals: 18, price: 0.212731}, // Addr: 0x31d0a7ada4d4c131eb612db48861211f63e57610, Notional: 0.021273100000000003 - {chain: 4, addr: "000000000000000000000000aa2ded323944b25c0b6f1f891bc96f010b65622c", symbol: "TheRadio", coinGeckoId: "radioreum", decimals: 18, price: 0.0005428}, // Addr: 0xaa2ded323944b25c0b6f1f891bc96f010b65622c, Notional: 0.003141844361296 - {chain: 4, addr: "000000000000000000000000fb288d60d3b66f9c3e231a9a39ed3f158a4269aa", symbol: "PPAY", coinGeckoId: "plasma-finance", decimals: 18, price: 0.001265}, // Addr: 0xfb288d60d3b66f9c3e231a9a39ed3f158a4269aa, Notional: 0.06520431146625 - {chain: 4, addr: "00000000000000000000000072eb7ca07399ec402c5b7aa6a65752b6a1dc0c27", symbol: "ASTRO", coinGeckoId: "astroswap", decimals: 18, price: 0.0004954}, // Addr: 0x72eb7ca07399ec402c5b7aa6a65752b6a1dc0c27, Notional: 0.02477 - {chain: 4, addr: "000000000000000000000000fafd4cb703b25cb22f43d017e7e0d75febc26743", symbol: "WEYU", coinGeckoId: "weyu", decimals: 18, price: 0.00006777}, // Addr: 0xfafd4cb703b25cb22f43d017e7e0d75febc26743, Notional: 257834.88414614022 - {chain: 4, addr: "0000000000000000000000000d8ce2a99bb6e3b7db580ed848240e4a0f9ae153", symbol: "FIL", coinGeckoId: "binance-peg-filecoin", decimals: 18, price: 5.43}, // Addr: 0x0d8ce2a99bb6e3b7db580ed848240e4a0f9ae153, Notional: 4.1455985514 - {chain: 4, addr: "00000000000000000000000012e34cdf6a031a10fe241864c32fb03a4fdad739", symbol: "FREE", coinGeckoId: "freedom-coin", decimals: 18, price: 2.28185e-7}, // Addr: 0x12e34cdf6a031a10fe241864c32fb03a4fdad739, Notional: 0.00005248255 - {chain: 4, addr: "000000000000000000000000bfea674ce7d16e26e39e3c088810367a708ef94c", symbol: "APRIL", coinGeckoId: "april", decimals: 18, price: 0.00215245}, // Addr: 0xbfea674ce7d16e26e39e3c088810367a708ef94c, Notional: 217.39745000000002 - {chain: 4, addr: "000000000000000000000000368eb5efdca39126e8e76aae5187166de7c2766c", symbol: "CST", coinGeckoId: "cryptoskates", decimals: 18, price: 0.00041849}, // Addr: 0x368eb5efdca39126e8e76aae5187166de7c2766c, Notional: 0.22814737530270637 - {chain: 4, addr: "00000000000000000000000055d398326f99059ff775485246999027b3197955", symbol: "USDT", coinGeckoId: "tether", decimals: 18, price: 0.999172}, // Addr: 0x55d398326f99059ff775485246999027b3197955, Notional: 555114.7629897253 - {chain: 4, addr: "000000000000000000000000678e840c640f619e17848045d23072844224dd37", symbol: "CRTS", coinGeckoId: "cratos", decimals: 18, price: 0.00067508}, // Addr: 0x678e840c640f619e17848045d23072844224dd37, Notional: 12815.191873338103 - {chain: 4, addr: "000000000000000000000000818835503f55283cd51a4399f595e295a9338753", symbol: "AGI", coinGeckoId: "delysium", decimals: 18, price: 0.238121}, // Addr: 0x818835503f55283cd51a4399f595e295a9338753, Notional: 0.0714363 - {chain: 4, addr: "000000000000000000000000fbc4f3f645c4003a2e4f4e9b51077d2daa9a9341", symbol: "ZEDXION", coinGeckoId: "zedxion", decimals: 18, price: 0.226663}, // Addr: 0xfbc4f3f645c4003a2e4f4e9b51077d2daa9a9341, Notional: 65213.43249647311 - {chain: 4, addr: "000000000000000000000000cafe001067cdef266afb7eb5a286dcfd277f3de5", symbol: "PSP", coinGeckoId: "paraswap", decimals: 18, price: 0.03079725}, // Addr: 0xcafe001067cdef266afb7eb5a286dcfd277f3de5, Notional: 0.2207136251026575 - {chain: 4, addr: "0000000000000000000000004ba0057f784858a48fe351445c672ff2a3d43515", symbol: "KALM", coinGeckoId: "kalmar", decimals: 18, price: 0.099466}, // Addr: 0x4ba0057f784858a48fe351445c672ff2a3d43515, Notional: 4414.464585793565 - {chain: 4, addr: "000000000000000000000000f64ed9ad397a1ae657f31131d4b189220a7f1cc7", symbol: "DFIAT", coinGeckoId: "defiato", decimals: 18, price: 0.00170678}, // Addr: 0xf64ed9ad397a1ae657f31131d4b189220a7f1cc7, Notional: 0.7828146469999999 - {chain: 4, addr: "0000000000000000000000009029fdfae9a03135846381c7ce16595c3554e10a", symbol: "OOE", coinGeckoId: "openocean", decimals: 18, price: 0.01408109}, // Addr: 0x9029fdfae9a03135846381c7ce16595c3554e10a, Notional: 0.01408109 - {chain: 4, addr: "0000000000000000000000003419875b4d3bca7f3fdda2db7a476a79fd31b4fe", symbol: "DZHV", coinGeckoId: "dizzyhavoc", decimals: 18, price: 0.00487956}, // Addr: 0x3419875b4d3bca7f3fdda2db7a476a79fd31b4fe, Notional: 6.646537856204836 - {chain: 4, addr: "0000000000000000000000005b65cd9feb54f1df3d0c60576003344079f8dc06", symbol: "UNW", coinGeckoId: "uniwhale", decimals: 18, price: 0.00514738}, // Addr: 0x5b65cd9feb54f1df3d0c60576003344079f8dc06, Notional: 11172.478816905503 - {chain: 4, addr: "00000000000000000000000088d7e9b65dc24cf54f5edef929225fc3e1580c25", symbol: "JMPT", coinGeckoId: "jumptoken", decimals: 18, price: 0.967095}, // Addr: 0x88d7e9b65dc24cf54f5edef929225fc3e1580c25, Notional: 254370.67022712537 - {chain: 4, addr: "0000000000000000000000004691937a7508860f876c9c0a2a617e7d9e945d4b", symbol: "WOO", coinGeckoId: "woo-network", decimals: 18, price: 0.272124}, // Addr: 0x4691937a7508860f876c9c0a2a617e7d9e945d4b, Notional: 2.8366840625291996 - {chain: 4, addr: "00000000000000000000000041065e3428188ba6eb27fbdde8526ae3af8e3830", symbol: "SWASH", coinGeckoId: "swash", decimals: 18, price: 0.01226667}, // Addr: 0x41065e3428188ba6eb27fbdde8526ae3af8e3830, Notional: 173.31732366454736 - {chain: 4, addr: "00000000000000000000000064619f611248256f7f4b72fe83872f89d5d60d64", symbol: "QUINT", coinGeckoId: "quint", decimals: 18, price: 0.04862814}, // Addr: 0x64619f611248256f7f4b72fe83872f89d5d60d64, Notional: 10465.239860064657 - {chain: 4, addr: "000000000000000000000000154a9f9cbd3449ad22fdae23044319d6ef2a1fab", symbol: "SKILL", coinGeckoId: "cryptoblades", decimals: 18, price: 0.630441}, // Addr: 0x154a9f9cbd3449ad22fdae23044319d6ef2a1fab, Notional: 0.000630441 - {chain: 4, addr: "0000000000000000000000002541be91fe0d220ffcbe65f11d88217a87a43bda", symbol: "$Lordz", coinGeckoId: "meme-lordz", decimals: 9, price: 0.01148677}, // Addr: 0x2541be91fe0d220ffcbe65f11d88217a87a43bda, Notional: 0.01148677 - {chain: 4, addr: "0000000000000000000000005012c90f14d190607662ca8344120812aaa2639d", symbol: "PNP", coinGeckoId: "penpie", decimals: 18, price: 3.14}, // Addr: 0x5012c90f14d190607662ca8344120812aaa2639d, Notional: 147.11453249160002 - {chain: 4, addr: "000000000000000000000000ac472d0eed2b8a2f57a6e304ea7ebd8e88d1d36f", symbol: "ANI", coinGeckoId: "anime-token", decimals: 18, price: 0.00336059}, // Addr: 0xac472d0eed2b8a2f57a6e304ea7ebd8e88d1d36f, Notional: 60.970724265103556 - {chain: 4, addr: "0000000000000000000000001af3f329e8be154074d8769d1ffa4ee058b1dbc3", symbol: "DAI", coinGeckoId: "dai", decimals: 18, price: 0.999522}, // Addr: 0x1af3f329e8be154074d8769d1ffa4ee058b1dbc3, Notional: 1536.5821034522257 - {chain: 4, addr: "000000000000000000000000bf05279f9bf1ce69bbfed670813b7e431142afa4", symbol: "MM", coinGeckoId: "million", decimals: 18, price: 1.61}, // Addr: 0xbf05279f9bf1ce69bbfed670813b7e431142afa4, Notional: 1.61 - {chain: 4, addr: "00000000000000000000000052f24a5e03aee338da5fd9df68d2b6fae1178827", symbol: "ankrBNB", coinGeckoId: "ankr-staked-bnb", decimals: 18, price: 593.09}, // Addr: 0x52f24a5e03aee338da5fd9df68d2b6fae1178827, Notional: 1.1484238906 - {chain: 4, addr: "000000000000000000000000b955b4cab9aa3b49e23aeb5204ebc5ff6678e86d", symbol: "Afin", coinGeckoId: "afin-coin", decimals: 18, price: 0.00109769}, // Addr: 0xb955b4cab9aa3b49e23aeb5204ebc5ff6678e86d, Notional: 9.67076461316698 - {chain: 4, addr: "000000000000000000000000854a63b35b70a7becbed508ff0b6ff5038d0c917", symbol: "MNTO", coinGeckoId: "minato", decimals: 18, price: 2.51}, // Addr: 0x854a63b35b70a7becbed508ff0b6ff5038d0c917, Notional: 73.31066041929999 - {chain: 4, addr: "000000000000000000000000570a5d26f7765ecb712c0924e4de545b89fd43df", symbol: "SOL", coinGeckoId: "wrapped-solana", decimals: 18, price: 122.79}, // Addr: 0x570a5d26f7765ecb712c0924e4de545b89fd43df, Notional: 31357.667882178303 - {chain: 4, addr: "000000000000000000000000ed28a457a5a76596ac48d87c0f577020f6ea1c4c", symbol: "pBTC", coinGeckoId: "ptokens-btc", decimals: 18, price: 2736.44}, // Addr: 0xed28a457a5a76596ac48d87c0f577020f6ea1c4c, Notional: 0.5474795508 - {chain: 4, addr: "00000000000000000000000010c9524dbf934b3b625dce3bdc0efdc367f4e84b", symbol: "MVX", coinGeckoId: "mavaverse-token", decimals: 8, price: 5.05448e-7}, // Addr: 0x10c9524dbf934b3b625dce3bdc0efdc367f4e84b, Notional: 0.08053736539382335 - {chain: 4, addr: "00000000000000000000000045f7967926e95fd161e56ed66b663c9114c5226f", symbol: "TOKO", coinGeckoId: "toko", decimals: 18, price: 0.00087733}, // Addr: 0x45f7967926e95fd161e56ed66b663c9114c5226f, Notional: 0.4307995192704522 - {chain: 4, addr: "0000000000000000000000002235e79086dd23135119366da45851c741874e5b", symbol: "CREDI", coinGeckoId: "credefi", decimals: 18, price: 0.02156836}, // Addr: 0x2235e79086dd23135119366da45851c741874e5b, Notional: 56.29430034505903 - {chain: 4, addr: "000000000000000000000000e8670901e86818745b28c8b30b17986958fce8cc", symbol: "XCT", coinGeckoId: "citadel-one", decimals: 6, price: 0.00506872}, // Addr: 0xe8670901e86818745b28c8b30b17986958fce8cc, Notional: 0.00506872 - {chain: 4, addr: "0000000000000000000000009767c8e438aa18f550208e6d1fdf5f43541cc2c8", symbol: "MMIT", coinGeckoId: "mangoman-intelligent", decimals: 18, price: 3.93e-8}, // Addr: 0x9767c8e438aa18f550208e6d1fdf5f43541cc2c8, Notional: 0.0000039300000000000005 - {chain: 4, addr: "0000000000000000000000002170ed0880ac9a755fd29b2688956bd959f933f8", symbol: "ETH", coinGeckoId: "weth", decimals: 18, price: 2901.39}, // Addr: 0x2170ed0880ac9a755fd29b2688956bd959f933f8, Notional: 170340.3720905073 - {chain: 4, addr: "0000000000000000000000003ee2200efb3400fabb9aacf31297cbdd1d435d47", symbol: "ADA", coinGeckoId: "binance-peg-cardano", decimals: 18, price: 0.437703}, // Addr: 0x3ee2200efb3400fabb9aacf31297cbdd1d435d47, Notional: 7.800287453536621 - {chain: 4, addr: "000000000000000000000000f7de7e8a6bd59ed41a4b5fe50278b3b7f31384df", symbol: "RDNT", coinGeckoId: "radiant-capital", decimals: 18, price: 0.174333}, // Addr: 0xf7de7e8a6bd59ed41a4b5fe50278b3b7f31384df, Notional: 18.804122862208768 - {chain: 4, addr: "0000000000000000000000008a5d7fcd4c90421d21d30fcc4435948ac3618b2f", symbol: "MONSTA", coinGeckoId: "cake-monster", decimals: 18, price: 0.00007392}, // Addr: 0x8a5d7fcd4c90421d21d30fcc4435948ac3618b2f, Notional: 0.000070224 - {chain: 4, addr: "0000000000000000000000008076c74c5e3f5852037f31ff0093eeb8c8add8d3", symbol: "SAFEMOON", coinGeckoId: "safemoon", decimals: 9, price: 7.447e-9}, // Addr: 0x8076c74c5e3f5852037f31ff0093eeb8c8add8d3, Notional: 3.3511500007447e-7 - {chain: 4, addr: "000000000000000000000000bb4cdb9cbd36b01bd1cbaebf2de08d9173bc095c", symbol: "WBNB", coinGeckoId: "wbnb", decimals: 18, price: 551.03}, // Addr: 0xbb4cdb9cbd36b01bd1cbaebf2de08d9173bc095c, Notional: 3674568.5550823216 - {chain: 4, addr: "000000000000000000000000371c7ec6d8039ff7933a2aa28eb827ffe1f52f07", symbol: "JOE", coinGeckoId: "joe", decimals: 18, price: 0.464342}, // Addr: 0x371c7ec6d8039ff7933a2aa28eb827ffe1f52f07, Notional: 5.50589845196624 - {chain: 4, addr: "0000000000000000000000008929e9dbd2785e3ba16175e596cdd61520fee0d1", symbol: "ALTD", coinGeckoId: "altitude", decimals: 18, price: 0.00286008}, // Addr: 0x8929e9dbd2785e3ba16175e596cdd61520fee0d1, Notional: 0.118560102049728 - {chain: 4, addr: "0000000000000000000000000eb3a705fc54725037cc9e008bdede697f62f335", symbol: "ATOM", coinGeckoId: "cosmos", decimals: 18, price: 8.32}, // Addr: 0x0eb3a705fc54725037cc9e008bdede697f62f335, Notional: 230.1651105728 - {chain: 4, addr: "000000000000000000000000fb5b838b6cfeedc2873ab27866079ac55363d37e", symbol: "FLOKI", coinGeckoId: "floki", decimals: 9, price: 0.00014935}, // Addr: 0xfb5b838b6cfeedc2873ab27866079ac55363d37e, Notional: 267.1200248662681 - {chain: 4, addr: "000000000000000000000000027a9d301fb747cd972cfb29a63f3bda551dfc5c", symbol: "mWOM", coinGeckoId: "magpie-wom", decimals: 18, price: 0.02165958}, // Addr: 0x027a9d301fb747cd972cfb29a63f3bda551dfc5c, Notional: 10.55164026044364 - {chain: 4, addr: "0000000000000000000000002416092f143378750bb29b79ed961ab195cceea5", symbol: "ezETH", coinGeckoId: "renzo-restaked-eth", decimals: 18, price: 2834.81}, // Addr: 0x2416092f143378750bb29b79ed961ab195cceea5, Notional: 49.1863347404 - {chain: 4, addr: "0000000000000000000000004a2c860cec6471b9f5f5a336eb4f38bb21683c98", symbol: "GST", coinGeckoId: "green-satoshi-token-bsc", decimals: 8, price: 0.01482193}, // Addr: 0x4a2c860cec6471b9f5f5a336eb4f38bb21683c98, Notional: 848.2733480149958 - {chain: 4, addr: "000000000000000000000000d17479997f34dd9156deef8f95a52d81d265be9c", symbol: "USDD", coinGeckoId: "usdd", decimals: 18, price: 0.993083}, // Addr: 0xd17479997f34dd9156deef8f95a52d81d265be9c, Notional: 0.00401080403542 - {chain: 4, addr: "000000000000000000000000fb9c339b4bace4fe63ccc1dd9a3c3c531441d5fe", symbol: "SHILL", coinGeckoId: "shill-token", decimals: 18, price: 0.00591719}, // Addr: 0xfb9c339b4bace4fe63ccc1dd9a3c3c531441d5fe, Notional: 22.93301474260947 - {chain: 4, addr: "000000000000000000000000928e55dab735aa8260af3cedada18b5f70c72f1b", symbol: "FRONT", coinGeckoId: "frontier-token", decimals: 18, price: 0.817831}, // Addr: 0x928e55dab735aa8260af3cedada18b5f70c72f1b, Notional: 5.73393575022352 - {chain: 4, addr: "000000000000000000000000c342774492b54ce5f8ac662113ed702fc1b34972", symbol: "BGEO", coinGeckoId: "geodb", decimals: 18, price: 0.00234339}, // Addr: 0xc342774492b54ce5f8ac662113ed702fc1b34972, Notional: 2343.39 - {chain: 4, addr: "000000000000000000000000a2120b9e674d3fc3875f415a7df52e382f141225", symbol: "ATA", coinGeckoId: "automata", decimals: 18, price: 0.207412}, // Addr: 0xa2120b9e674d3fc3875f415a7df52e382f141225, Notional: 4.4178756 - {chain: 4, addr: "000000000000000000000000477bc8d23c634c154061869478bce96be6045d12", symbol: "SFUND", coinGeckoId: "seedify-fund", decimals: 18, price: 2.47}, // Addr: 0x477bc8d23c634c154061869478bce96be6045d12, Notional: 0.049400000000000006 - {chain: 4, addr: "0000000000000000000000009ed7e4b1bff939ad473da5e7a218c771d1569456", symbol: "REUNI", coinGeckoId: "reunit-wallet", decimals: 6, price: 0.839098}, // Addr: 0x9ed7e4b1bff939ad473da5e7a218c771d1569456, Notional: 15.7330875 - {chain: 4, addr: "0000000000000000000000002d6f3dc5b202ccd91db114b592872bca32a7e292", symbol: "SAUDISHIB", coinGeckoId: "saudi-shiba-inu", decimals: 8, price: 1.617e-9}, // Addr: 0x2d6f3dc5b202ccd91db114b592872bca32a7e292, Notional: 232.00385154807137 - {chain: 4, addr: "0000000000000000000000002cd96e8c3ff6b5e01169f6e3b61d28204e7810bb", symbol: "LBlock", coinGeckoId: "lucky-block", decimals: 9, price: 0.00002999}, // Addr: 0x2cd96e8c3ff6b5e01169f6e3b61d28204e7810bb, Notional: 1530.4812704232168 - {chain: 4, addr: "00000000000000000000000025b24b3c47918b7962b3e49c4f468367f73cc0e0", symbol: "AXL", coinGeckoId: "axl-inu", decimals: 18, price: 0.00002233}, // Addr: 0x25b24b3c47918b7962b3e49c4f468367f73cc0e0, Notional: 0.22330000000000003 - {chain: 4, addr: "0000000000000000000000000a356f512f6fce740111ee04ab1699017a908680", symbol: "UFARM", coinGeckoId: "unifarm", decimals: 18, price: 0.00014229}, // Addr: 0x0a356f512f6fce740111ee04ab1699017a908680, Notional: 0.0968814046820322 - {chain: 4, addr: "000000000000000000000000ad86d0e9764ba90ddd68747d64bffbd79879a238", symbol: "PAID", coinGeckoId: "paid-network", decimals: 18, price: 0.10767}, // Addr: 0xad86d0e9764ba90ddd68747d64bffbd79879a238, Notional: 0.10324519368 - {chain: 4, addr: "000000000000000000000000a75d9ca2a0a1d547409d82e1b06618ec284a2ced", symbol: "WMX", coinGeckoId: "wombex", decimals: 18, price: 0.0158681}, // Addr: 0xa75d9ca2a0a1d547409d82e1b06618ec284a2ced, Notional: 122621.49982973485 - {chain: 4, addr: "000000000000000000000000c5326b32e8baef125acd68f8bc646fd646104f1c", symbol: "ZAP", coinGeckoId: "zap", decimals: 18, price: 0.00329521}, // Addr: 0xc5326b32e8baef125acd68f8bc646fd646104f1c, Notional: 9870.110652353394 - {chain: 4, addr: "0000000000000000000000006f769e65c14ebd1f68817f5f1dcdb61cfa2d6f7e", symbol: "ARPA", coinGeckoId: "arpa", decimals: 18, price: 0.061467}, // Addr: 0x6f769e65c14ebd1f68817f5f1dcdb61cfa2d6f7e, Notional: 26.39085645 - {chain: 4, addr: "00000000000000000000000025a528af62e56512a19ce8c3cab427807c28cc19", symbol: "FORM", coinGeckoId: "formation-fi", decimals: 18, price: 0.00093043}, // Addr: 0x25a528af62e56512a19ce8c3cab427807c28cc19, Notional: 1.5658553978905905 + {chain: 3, addr: "010000000000000000000000000000000000000000000000000000756c756e61", symbol: "LUNA", coinGeckoId: "terra-luna", decimals: 6, price: 0.00008131}, // Addr: uluna, Notional: 7063406.879927036 + {chain: 3, addr: "0000000000000000000000002c71557d2edfedd8330e52be500058a014d329e7", symbol: "BTL", coinGeckoId: "bitlocus", decimals: 6, price: 0.0005293}, // Addr: terra193c42lfwmlkasvcw22l9qqzc5q2dx208tkd7wl, Notional: 261922.85660569146 + {chain: 3, addr: "000000000000000000000000a21d626429c68c8c768ba0b2913895571703fd5b", symbol: "MIR", coinGeckoId: "mirror-protocol", decimals: 6, price: 0.02060553}, // Addr: terra15gwkyepfc6xgca5t5zefzwy42uts8l2m4g40k6, Notional: 463.6688723645418 + {chain: 3, addr: "0100000000000000000000000000000000000000000000000000000075757364", symbol: "UST", coinGeckoId: "terrausd", decimals: 6, price: 0.0160788}, // Addr: uusd, Notional: 2332986.440416738 + {chain: 3, addr: "0000000000000000000000008f5cd460d57ac54e111646fc569179144c7f0c28", symbol: "PLY", coinGeckoId: "playnity", decimals: 6, price: 0.00116612}, // Addr: terra13awdgcx40tz5uygkgm79dytez3x87rpg4uhnvu, Notional: 106711.28208872351 + {chain: 3, addr: "000000000000000000000000a8a9afbd2157e093e8448dd6450abec8ad79aeeb", symbol: "ANC", coinGeckoId: "anchor-protocol", decimals: 6, price: 0.00703395}, // Addr: terra14z56l0fp2lsf86zy3hty2z47ezkhnthtr9yq76, Notional: 497.3185703695325 + {chain: 3, addr: "00000000000000000000000034aa51100370594b15479392149157eeb479b9a8", symbol: "ASTRO", coinGeckoId: "astroport", decimals: 6, price: 0.00107496}, // Addr: terra1xj49zyqrwpv5k928jwfpfy2ha668nwdgkwlrg3, Notional: 0.7460654942404801 + {chain: 3, addr: "0000000000000000000000005b7d58fe96a636927960029ea47996db5808d015", symbol: "XRUNE", coinGeckoId: "thorstarter", decimals: 6, price: 0.01127749}, // Addr: terra1td743l5k5cmfy7tqq202g7vkmdvq35q48u2jfm, Notional: 86.63579441227598 + {chain: 4, addr: "00000000000000000000000072b7d61e8fc8cf971960dd9cfa59b8c829d91991", symbol: "AQUA", coinGeckoId: "planet-finance", decimals: 18, price: 10.53}, // Addr: 0x72b7d61e8fc8cf971960dd9cfa59b8c829d91991, Notional: 1.0530072657 + {chain: 4, addr: "00000000000000000000000042c95788f791a2be3584446854c8d9bb01be88a9", symbol: "HBR", coinGeckoId: "harbor-3", decimals: 18, price: 0.080642}, // Addr: 0x42c95788f791a2be3584446854c8d9bb01be88a9, Notional: 1140740.9532322823 + {chain: 4, addr: "000000000000000000000000885c5fb8f0e67b2b0cf3a437e6cc6ebc0f9f9014", symbol: "GEMG", coinGeckoId: "gemguardian", decimals: 18, price: 0.00412186}, // Addr: 0x885c5fb8f0e67b2b0cf3a437e6cc6ebc0f9f9014, Notional: 0.1617382885483854 + {chain: 4, addr: "00000000000000000000000037fe635d1e25b2f7276c1b9dbbcc7b087f80c050", symbol: "OciCat", coinGeckoId: "ocicat-token", decimals: 18, price: 3.1346e-10}, // Addr: 0x37fe635d1e25b2f7276c1b9dbbcc7b087f80c050, Notional: 44.70534186601 + {chain: 4, addr: "0000000000000000000000008519ea49c997f50ceffa444d240fb655e89248aa", symbol: "RAMP", coinGeckoId: "ramp", decimals: 18, price: 0.089664}, // Addr: 0x8519ea49c997f50ceffa444d240fb655e89248aa, Notional: 126.29582426074367 + {chain: 4, addr: "000000000000000000000000c0ecb8499d8da2771abcbf4091db7f65158f1468", symbol: "SWTH", coinGeckoId: "switcheo", decimals: 8, price: 0.00349795}, // Addr: 0xc0ecb8499d8da2771abcbf4091db7f65158f1468, Notional: 0.00349795 + {chain: 4, addr: "00000000000000000000000044ec807ce2f4a6f2737a92e985f318d035883e47", symbol: "HFT", coinGeckoId: "hashflow", decimals: 18, price: 0.149031}, // Addr: 0x44ec807ce2f4a6f2737a92e985f318d035883e47, Notional: 0.57078873 + {chain: 4, addr: "00000000000000000000000019c018e13cff682e729cc7b5fb68c8a641bf98a4", symbol: "burn", coinGeckoId: "burnedfi", decimals: 18, price: 1.77}, // Addr: 0x19c018e13cff682e729cc7b5fb68c8a641bf98a4, Notional: 66.99561858690001 + {chain: 4, addr: "000000000000000000000000961c8c0b1aad0c0b10a51fef6a867e3091bcef17", symbol: "DYP", coinGeckoId: "defi-yield-protocol", decimals: 18, price: 0.227975}, // Addr: 0x961c8c0b1aad0c0b10a51fef6a867e3091bcef17, Notional: 3560.193725372576 + {chain: 4, addr: "000000000000000000000000552594612f935441c01c6854edf111f343c1ca07", symbol: "GWT", coinGeckoId: "galaxy-war", decimals: 18, price: 0.00091972}, // Addr: 0x552594612f935441c01c6854edf111f343c1ca07, Notional: 16.89879314565265 + {chain: 4, addr: "000000000000000000000000b6c53431608e626ac81a9776ac3e999c5556717c", symbol: "TLOS", coinGeckoId: "wrapped-telos", decimals: 18, price: 0.15644}, // Addr: 0xb6c53431608e626ac81a9776ac3e999c5556717c, Notional: 1.5381292169636 + {chain: 4, addr: "000000000000000000000000af20f5f19698f1d19351028cd7103b63d30de7d7", symbol: "WAGMI", coinGeckoId: "wagmi-2", decimals: 18, price: 0.00563834}, // Addr: 0xaf20f5f19698f1d19351028cd7103b63d30de7d7, Notional: 0.03664921 + {chain: 4, addr: "000000000000000000000000e29142e14e52bdfbb8108076f66f49661f10ec10", symbol: "SEILOR", coinGeckoId: "kryptonite", decimals: 18, price: 0.01417576}, // Addr: 0xe29142e14e52bdfbb8108076f66f49661f10ec10, Notional: 14210.107144541858 + {chain: 4, addr: "000000000000000000000000cbd9f6d748dd3d19416f8914528a65c7838e27d8", symbol: "RGAME", coinGeckoId: "r-games", decimals: 18, price: 0.00106199}, // Addr: 0xcbd9f6d748dd3d19416f8914528a65c7838e27d8, Notional: 0.17208423514988 + {chain: 4, addr: "000000000000000000000000c5e6689c9c8b02be7c49912ef19e79cf24977f03", symbol: "ALPA", coinGeckoId: "alpaca", decimals: 18, price: 0.00570604}, // Addr: 0xc5e6689c9c8b02be7c49912ef19e79cf24977f03, Notional: 8.156258102455476 + {chain: 4, addr: "0000000000000000000000009678e42cebeb63f23197d726b29b1cb20d0064e5", symbol: "IOTX", coinGeckoId: "binance-peg-iotex", decimals: 18, price: 0.03329808}, // Addr: 0x9678e42cebeb63f23197d726b29b1cb20d0064e5, Notional: 185.18926635844872 + {chain: 4, addr: "0000000000000000000000000b33542240d6fa323c796749f6d6869fdb7f13ca", symbol: "ETHM", coinGeckoId: "ethereum-meta", decimals: 18, price: 2.97405e-13}, // Addr: 0x0b33542240d6fa323c796749f6d6869fdb7f13ca, Notional: 0.006295817636962983 + {chain: 4, addr: "0000000000000000000000006d57f5c286e04850c2c085350f2e60aaa7b7c15b", symbol: "GrokGirl", coinGeckoId: "grok-girl", decimals: 9, price: 2.58917e-13}, // Addr: 0x6d57f5c286e04850c2c085350f2e60aaa7b7c15b, Notional: 0.047761756294602144 + {chain: 4, addr: "00000000000000000000000031d0a7ada4d4c131eb612db48861211f63e57610", symbol: "START", coinGeckoId: "bscstarter", decimals: 18, price: 0.02314682}, // Addr: 0x31d0a7ada4d4c131eb612db48861211f63e57610, Notional: 0.0023146819999999998 + {chain: 4, addr: "000000000000000000000000aa2ded323944b25c0b6f1f891bc96f010b65622c", symbol: "TheRadio", coinGeckoId: "radioreum", decimals: 18, price: 0.00051278}, // Addr: 0xaa2ded323944b25c0b6f1f891bc96f010b65622c, Notional: 0.0029680820773496 + {chain: 4, addr: "000000000000000000000000fb288d60d3b66f9c3e231a9a39ed3f158a4269aa", symbol: "PPAY", coinGeckoId: "plasma-finance", decimals: 18, price: 0.00059868}, // Addr: 0xfb288d60d3b66f9c3e231a9a39ed3f158a4269aa, Notional: 0.03085890686847 + {chain: 4, addr: "00000000000000000000000072eb7ca07399ec402c5b7aa6a65752b6a1dc0c27", symbol: "ASTRO", coinGeckoId: "astroswap", decimals: 18, price: 0.00030641}, // Addr: 0x72eb7ca07399ec402c5b7aa6a65752b6a1dc0c27, Notional: 0.0153205 + {chain: 4, addr: "000000000000000000000000fafd4cb703b25cb22f43d017e7e0d75febc26743", symbol: "WEYU", coinGeckoId: "weyu", decimals: 18, price: 0.00004553}, // Addr: 0xfafd4cb703b25cb22f43d017e7e0d75febc26743, Notional: 172993.03289744424 + {chain: 4, addr: "0000000000000000000000000d8ce2a99bb6e3b7db580ed848240e4a0f9ae153", symbol: "FIL", coinGeckoId: "binance-peg-filecoin", decimals: 18, price: 3.58}, // Addr: 0x0d8ce2a99bb6e3b7db580ed848240e4a0f9ae153, Notional: 254.75279999999998 + {chain: 4, addr: "00000000000000000000000012e34cdf6a031a10fe241864c32fb03a4fdad739", symbol: "FREE", coinGeckoId: "freedom-coin", decimals: 18, price: 1.37174e-7}, // Addr: 0x12e34cdf6a031a10fe241864c32fb03a4fdad739, Notional: 0.00003155002 + {chain: 4, addr: "000000000000000000000000bfea674ce7d16e26e39e3c088810367a708ef94c", symbol: "APRIL", coinGeckoId: "april", decimals: 18, price: 0.00105922}, // Addr: 0xbfea674ce7d16e26e39e3c088810367a708ef94c, Notional: 106.98122000000001 + {chain: 4, addr: "000000000000000000000000368eb5efdca39126e8e76aae5187166de7c2766c", symbol: "CST", coinGeckoId: "cryptoskates", decimals: 18, price: 0.00012297}, // Addr: 0x368eb5efdca39126e8e76aae5187166de7c2766c, Notional: 0.0670393145379192 + {chain: 4, addr: "00000000000000000000000055d398326f99059ff775485246999027b3197955", symbol: "USDT", coinGeckoId: "tether", decimals: 18, price: 0.999545}, // Addr: 0x55d398326f99059ff775485246999027b3197955, Notional: 258706.4392013725 + {chain: 4, addr: "000000000000000000000000678e840c640f619e17848045d23072844224dd37", symbol: "CRTS", coinGeckoId: "cratos", decimals: 18, price: 0.00038192}, // Addr: 0x678e840c640f619e17848045d23072844224dd37, Notional: 7250.071221581573 + {chain: 4, addr: "000000000000000000000000818835503f55283cd51a4399f595e295a9338753", symbol: "AGI", coinGeckoId: "delysium", decimals: 18, price: 0.12645}, // Addr: 0x818835503f55283cd51a4399f595e295a9338753, Notional: 0.037935 + {chain: 4, addr: "000000000000000000000000fbc4f3f645c4003a2e4f4e9b51077d2daa9a9341", symbol: "ZEDXION", coinGeckoId: "zedxion", decimals: 18, price: 0.231748}, // Addr: 0xfbc4f3f645c4003a2e4f4e9b51077d2daa9a9341, Notional: 66676.44279918933 + {chain: 4, addr: "000000000000000000000000cafe001067cdef266afb7eb5a286dcfd277f3de5", symbol: "PSP", coinGeckoId: "paraswap", decimals: 18, price: 0.01572411}, // Addr: 0xcafe001067cdef266afb7eb5a286dcfd277f3de5, Notional: 0.11268945505241369 + {chain: 4, addr: "0000000000000000000000004ba0057f784858a48fe351445c672ff2a3d43515", symbol: "KALM", coinGeckoId: "kalmar", decimals: 18, price: 0.03789818}, // Addr: 0x4ba0057f784858a48fe351445c672ff2a3d43515, Notional: 1116.8390343521387 + {chain: 4, addr: "000000000000000000000000f64ed9ad397a1ae657f31131d4b189220a7f1cc7", symbol: "DFIAT", coinGeckoId: "defiato", decimals: 18, price: 0.0009502}, // Addr: 0xf64ed9ad397a1ae657f31131d4b189220a7f1cc7, Notional: 0.43580923 + {chain: 4, addr: "0000000000000000000000009029fdfae9a03135846381c7ce16595c3554e10a", symbol: "OOE", coinGeckoId: "openocean", decimals: 18, price: 0.00826263}, // Addr: 0x9029fdfae9a03135846381c7ce16595c3554e10a, Notional: 0.00826263 + {chain: 4, addr: "0000000000000000000000003419875b4d3bca7f3fdda2db7a476a79fd31b4fe", symbol: "DZHV", coinGeckoId: "dizzyhavoc", decimals: 18, price: 0.00111836}, // Addr: 0x3419875b4d3bca7f3fdda2db7a476a79fd31b4fe, Notional: 1.5233385954605008 + {chain: 4, addr: "0000000000000000000000005b65cd9feb54f1df3d0c60576003344079f8dc06", symbol: "UNW", coinGeckoId: "uniwhale", decimals: 18, price: 0.00394671}, // Addr: 0x5b65cd9feb54f1df3d0c60576003344079f8dc06, Notional: 8566.403465737738 + {chain: 4, addr: "00000000000000000000000088d7e9b65dc24cf54f5edef929225fc3e1580c25", symbol: "JMPT", coinGeckoId: "jumptoken", decimals: 18, price: 1.08}, // Addr: 0x88d7e9b65dc24cf54f5edef929225fc3e1580c25, Notional: 307133.1526277412 + {chain: 4, addr: "000000000000000000000000dd325c38b12903b727d16961e61333f4871a70e0", symbol: "TRUNK", coinGeckoId: "elephant-money-trunk", decimals: 18, price: 0.64507}, // Addr: 0xdd325c38b12903b727d16961e61333f4871a70e0, Notional: 21074406.746811334 + {chain: 4, addr: "0000000000000000000000004691937a7508860f876c9c0a2a617e7d9e945d4b", symbol: "WOO", coinGeckoId: "woo-network", decimals: 18, price: 0.151278}, // Addr: 0x4691937a7508860f876c9c0a2a617e7d9e945d4b, Notional: 1.5769571651574 + {chain: 4, addr: "00000000000000000000000041065e3428188ba6eb27fbdde8526ae3af8e3830", symbol: "SWASH", coinGeckoId: "swash", decimals: 18, price: 0.0069169}, // Addr: 0x41065e3428188ba6eb27fbdde8526ae3af8e3830, Notional: 97.7297502953375 + {chain: 4, addr: "00000000000000000000000064619f611248256f7f4b72fe83872f89d5d60d64", symbol: "QUINT", coinGeckoId: "quint", decimals: 18, price: 0.00750595}, // Addr: 0x64619f611248256f7f4b72fe83872f89d5d60d64, Notional: 1627.1379719098388 + {chain: 4, addr: "000000000000000000000000154a9f9cbd3449ad22fdae23044319d6ef2a1fab", symbol: "SKILL", coinGeckoId: "cryptoblades", decimals: 18, price: 0.318562}, // Addr: 0x154a9f9cbd3449ad22fdae23044319d6ef2a1fab, Notional: 0.00031856200000000004 + {chain: 4, addr: "0000000000000000000000002541be91fe0d220ffcbe65f11d88217a87a43bda", symbol: "$Lordz", coinGeckoId: "meme-lordz", decimals: 9, price: 0.01235934}, // Addr: 0x2541be91fe0d220ffcbe65f11d88217a87a43bda, Notional: 0.01235934 + {chain: 4, addr: "0000000000000000000000005012c90f14d190607662ca8344120812aaa2639d", symbol: "PNP", coinGeckoId: "penpie", decimals: 18, price: 1.57}, // Addr: 0x5012c90f14d190607662ca8344120812aaa2639d, Notional: 76.5835036376 + {chain: 4, addr: "000000000000000000000000ac472d0eed2b8a2f57a6e304ea7ebd8e88d1d36f", symbol: "ANI", coinGeckoId: "anime-token", decimals: 18, price: 0.00139941}, // Addr: 0xac472d0eed2b8a2f57a6e304ea7ebd8e88d1d36f, Notional: 25.389304034062043 + {chain: 4, addr: "0000000000000000000000001af3f329e8be154074d8769d1ffa4ee058b1dbc3", symbol: "DAI", coinGeckoId: "dai", decimals: 18, price: 0.999076}, // Addr: 0x1af3f329e8be154074d8769d1ffa4ee058b1dbc3, Notional: 1535.913444388562 + {chain: 4, addr: "000000000000000000000000bf05279f9bf1ce69bbfed670813b7e431142afa4", symbol: "MM", coinGeckoId: "million", decimals: 18, price: 1.3}, // Addr: 0xbf05279f9bf1ce69bbfed670813b7e431142afa4, Notional: 2.6 + {chain: 4, addr: "00000000000000000000000052f24a5e03aee338da5fd9df68d2b6fae1178827", symbol: "ankrBNB", coinGeckoId: "ankr-staked-bnb", decimals: 18, price: 567.63}, // Addr: 0x52f24a5e03aee338da5fd9df68d2b6fae1178827, Notional: 1.0991246742 + {chain: 4, addr: "000000000000000000000000b955b4cab9aa3b49e23aeb5204ebc5ff6678e86d", symbol: "Afin", coinGeckoId: "afin-coin", decimals: 18, price: 0.00100878}, // Addr: 0xb955b4cab9aa3b49e23aeb5204ebc5ff6678e86d, Notional: 8.887458140705105 + {chain: 4, addr: "000000000000000000000000854a63b35b70a7becbed508ff0b6ff5038d0c917", symbol: "MNTO", coinGeckoId: "minato", decimals: 18, price: 1.23}, // Addr: 0x854a63b35b70a7becbed508ff0b6ff5038d0c917, Notional: 35.9251443489 + {chain: 4, addr: "000000000000000000000000570a5d26f7765ecb712c0924e4de545b89fd43df", symbol: "SOL", coinGeckoId: "wrapped-solana", decimals: 18, price: 143.59}, // Addr: 0x570a5d26f7765ecb712c0924e4de545b89fd43df, Notional: 32486.770759269104 + {chain: 4, addr: "000000000000000000000000ed28a457a5a76596ac48d87c0f577020f6ea1c4c", symbol: "pBTC", coinGeckoId: "ptokens-btc", decimals: 18, price: 1894.21}, // Addr: 0xed28a457a5a76596ac48d87c0f577020f6ea1c4c, Notional: 0.3789745947 + {chain: 4, addr: "00000000000000000000000010c9524dbf934b3b625dce3bdc0efdc367f4e84b", symbol: "MVX", coinGeckoId: "mavaverse-token", decimals: 8, price: 3.35874e-7}, // Addr: 0x10c9524dbf934b3b625dce3bdc0efdc367f4e84b, Notional: 0.05351768542814498 + {chain: 4, addr: "00000000000000000000000045f7967926e95fd161e56ed66b663c9114c5226f", symbol: "TOKO", coinGeckoId: "toko", decimals: 18, price: 0.00047251}, // Addr: 0x45f7967926e95fd161e56ed66b663c9114c5226f, Notional: 0.2320188308281734 + {chain: 4, addr: "0000000000000000000000002235e79086dd23135119366da45851c741874e5b", symbol: "CREDI", coinGeckoId: "credefi", decimals: 18, price: 0.01610368}, // Addr: 0x2235e79086dd23135119366da45851c741874e5b, Notional: 42.031262394577986 + {chain: 4, addr: "000000000000000000000000e8670901e86818745b28c8b30b17986958fce8cc", symbol: "XCT", coinGeckoId: "citadel-one", decimals: 6, price: 0.00264163}, // Addr: 0xe8670901e86818745b28c8b30b17986958fce8cc, Notional: 0.00264163 + {chain: 4, addr: "0000000000000000000000009767c8e438aa18f550208e6d1fdf5f43541cc2c8", symbol: "MMIT", coinGeckoId: "mangoman-intelligent", decimals: 18, price: 3.7595e-8}, // Addr: 0x9767c8e438aa18f550208e6d1fdf5f43541cc2c8, Notional: 0.0000037595 + {chain: 4, addr: "0000000000000000000000002170ed0880ac9a755fd29b2688956bd959f933f8", symbol: "ETH", coinGeckoId: "weth", decimals: 18, price: 2661.57}, // Addr: 0x2170ed0880ac9a755fd29b2688956bd959f933f8, Notional: 157304.9444357322 + {chain: 4, addr: "0000000000000000000000003ee2200efb3400fabb9aacf31297cbdd1d435d47", symbol: "ADA", coinGeckoId: "binance-peg-cardano", decimals: 18, price: 0.335072}, // Addr: 0x3ee2200efb3400fabb9aacf31297cbdd1d435d47, Notional: 1511.8317826349867 + {chain: 4, addr: "000000000000000000000000f7de7e8a6bd59ed41a4b5fe50278b3b7f31384df", symbol: "RDNT", coinGeckoId: "radiant-capital", decimals: 18, price: 0.066981}, // Addr: 0xf7de7e8a6bd59ed41a4b5fe50278b3b7f31384df, Notional: 7.22478792559989 + {chain: 4, addr: "0000000000000000000000008a5d7fcd4c90421d21d30fcc4435948ac3618b2f", symbol: "MONSTA", coinGeckoId: "cake-monster", decimals: 18, price: 0.00003397}, // Addr: 0x8a5d7fcd4c90421d21d30fcc4435948ac3618b2f, Notional: 0.0000322715 + {chain: 4, addr: "0000000000000000000000008076c74c5e3f5852037f31ff0093eeb8c8add8d3", symbol: "SAFEMOON", coinGeckoId: "safemoon", decimals: 9, price: 9.446e-9}, // Addr: 0x8076c74c5e3f5852037f31ff0093eeb8c8add8d3, Notional: 4.2507000009446004e-7 + {chain: 4, addr: "000000000000000000000000bb4cdb9cbd36b01bd1cbaebf2de08d9173bc095c", symbol: "WBNB", coinGeckoId: "wbnb", decimals: 18, price: 523.88}, // Addr: 0xbb4cdb9cbd36b01bd1cbaebf2de08d9173bc095c, Notional: 2551989.47853612 + {chain: 4, addr: "000000000000000000000000371c7ec6d8039ff7933a2aa28eb827ffe1f52f07", symbol: "JOE", coinGeckoId: "joe", decimals: 18, price: 0.289609}, // Addr: 0x371c7ec6d8039ff7933a2aa28eb827ffe1f52f07, Notional: 3.78594231799882 + {chain: 4, addr: "0000000000000000000000008929e9dbd2785e3ba16175e596cdd61520fee0d1", symbol: "ALTD", coinGeckoId: "altitude", decimals: 18, price: 0.00107899}, // Addr: 0x8929e9dbd2785e3ba16175e596cdd61520fee0d1, Notional: 0.044727827372184 + {chain: 4, addr: "0000000000000000000000000eb3a705fc54725037cc9e008bdede697f62f335", symbol: "ATOM", coinGeckoId: "cosmos", decimals: 18, price: 4.77}, // Addr: 0x0eb3a705fc54725037cc9e008bdede697f62f335, Notional: 131.9576415183 + {chain: 4, addr: "000000000000000000000000fb5b838b6cfeedc2873ab27866079ac55363d37e", symbol: "FLOKI", coinGeckoId: "floki", decimals: 9, price: 0.00011906}, // Addr: 0xfb5b838b6cfeedc2873ab27866079ac55363d37e, Notional: 361.1688398034924 + {chain: 4, addr: "000000000000000000000000027a9d301fb747cd972cfb29a63f3bda551dfc5c", symbol: "mWOM", coinGeckoId: "magpie-wom", decimals: 18, price: 0.01287727}, // Addr: 0x027a9d301fb747cd972cfb29a63f3bda551dfc5c, Notional: 6.273266636592356 + {chain: 4, addr: "0000000000000000000000002416092f143378750bb29b79ed961ab195cceea5", symbol: "ezETH", coinGeckoId: "renzo-restaked-eth", decimals: 18, price: 2699.77}, // Addr: 0x2416092f143378750bb29b79ed961ab195cceea5, Notional: 46.8432773068 + {chain: 4, addr: "0000000000000000000000004a2c860cec6471b9f5f5a336eb4f38bb21683c98", symbol: "GST", coinGeckoId: "green-satoshi-token-bsc", decimals: 8, price: 0.00607054}, // Addr: 0x4a2c860cec6471b9f5f5a336eb4f38bb21683c98, Notional: 352.7987873459997 + {chain: 4, addr: "000000000000000000000000d17479997f34dd9156deef8f95a52d81d265be9c", symbol: "USDD", coinGeckoId: "usdd", decimals: 18, price: 1.001}, // Addr: 0xd17479997f34dd9156deef8f95a52d81d265be9c, Notional: 0.004042778739999999 + {chain: 4, addr: "000000000000000000000000fb9c339b4bace4fe63ccc1dd9a3c3c531441d5fe", symbol: "SHILL", coinGeckoId: "shill-token", decimals: 18, price: 0.00181169}, // Addr: 0xfb9c339b4bace4fe63ccc1dd9a3c3c531441d5fe, Notional: 10.554289398123625 + {chain: 4, addr: "000000000000000000000000928e55dab735aa8260af3cedada18b5f70c72f1b", symbol: "FRONT", coinGeckoId: "frontier-token", decimals: 18, price: 0.64348}, // Addr: 0x928e55dab735aa8260af3cedada18b5f70c72f1b, Notional: 4.511534750521601 + {chain: 4, addr: "000000000000000000000000c342774492b54ce5f8ac662113ed702fc1b34972", symbol: "BGEO", coinGeckoId: "geodb", decimals: 18, price: 0.00175404}, // Addr: 0xc342774492b54ce5f8ac662113ed702fc1b34972, Notional: 1754.04 + {chain: 4, addr: "000000000000000000000000a2120b9e674d3fc3875f415a7df52e382f141225", symbol: "ATA", coinGeckoId: "automata", decimals: 18, price: 0.072331}, // Addr: 0xa2120b9e674d3fc3875f415a7df52e382f141225, Notional: 1.5406503000000003 + {chain: 4, addr: "000000000000000000000000477bc8d23c634c154061869478bce96be6045d12", symbol: "SFUND", coinGeckoId: "seedify-fund", decimals: 18, price: 1.29}, // Addr: 0x477bc8d23c634c154061869478bce96be6045d12, Notional: 0.0258 + {chain: 4, addr: "0000000000000000000000009ed7e4b1bff939ad473da5e7a218c771d1569456", symbol: "REUNI", coinGeckoId: "reunit-wallet", decimals: 6, price: 0.147415}, // Addr: 0x9ed7e4b1bff939ad473da5e7a218c771d1569456, Notional: 2.76403125 + {chain: 4, addr: "0000000000000000000000002d6f3dc5b202ccd91db114b592872bca32a7e292", symbol: "SAUDISHIB", coinGeckoId: "saudi-shiba-inu", decimals: 8, price: 7.415e-12}, // Addr: 0x2d6f3dc5b202ccd91db114b592872bca32a7e292, Notional: 1.0638890285893314 + {chain: 4, addr: "0000000000000000000000002cd96e8c3ff6b5e01169f6e3b61d28204e7810bb", symbol: "LBlock", coinGeckoId: "lucky-block", decimals: 9, price: 0.00001649}, // Addr: 0x2cd96e8c3ff6b5e01169f6e3b61d28204e7810bb, Notional: 841.5350499926258 + {chain: 4, addr: "00000000000000000000000025b24b3c47918b7962b3e49c4f468367f73cc0e0", symbol: "AXL", coinGeckoId: "axl-inu", decimals: 18, price: 0.0000106}, // Addr: 0x25b24b3c47918b7962b3e49c4f468367f73cc0e0, Notional: 0.106 + {chain: 4, addr: "0000000000000000000000000a356f512f6fce740111ee04ab1699017a908680", symbol: "UFARM", coinGeckoId: "unifarm", decimals: 18, price: 0.00033887}, // Addr: 0x0a356f512f6fce740111ee04ab1699017a908680, Notional: 0.2307273990062566 + {chain: 4, addr: "000000000000000000000000ad86d0e9764ba90ddd68747d64bffbd79879a238", symbol: "PAID", coinGeckoId: "paid-network", decimals: 18, price: 0.055266}, // Addr: 0xad86d0e9764ba90ddd68747d64bffbd79879a238, Notional: 0.32932478846400004 + {chain: 4, addr: "000000000000000000000000a75d9ca2a0a1d547409d82e1b06618ec284a2ced", symbol: "WMX", coinGeckoId: "wombex", decimals: 18, price: 0.00129969}, // Addr: 0xa75d9ca2a0a1d547409d82e1b06618ec284a2ced, Notional: 11067.502922830558 + {chain: 4, addr: "000000000000000000000000c5326b32e8baef125acd68f8bc646fd646104f1c", symbol: "ZAP", coinGeckoId: "zap", decimals: 18, price: 0.00166057}, // Addr: 0xc5326b32e8baef125acd68f8bc646fd646104f1c, Notional: 4840.481971213219 + {chain: 4, addr: "0000000000000000000000006f769e65c14ebd1f68817f5f1dcdb61cfa2d6f7e", symbol: "ARPA", coinGeckoId: "arpa", decimals: 18, price: 0.03350818}, // Addr: 0x6f769e65c14ebd1f68817f5f1dcdb61cfa2d6f7e, Notional: 14.386737083 + {chain: 4, addr: "00000000000000000000000025a528af62e56512a19ce8c3cab427807c28cc19", symbol: "FORM", coinGeckoId: "formation-fi", decimals: 18, price: 0.00014757}, // Addr: 0x25a528af62e56512a19ce8c3cab427807c28cc19, Notional: 0.2483510646332496 {chain: 4, addr: "0000000000000000000000007eefb6aeb8bc2c1ba6be1d4273ec0758a1321272", symbol: "ENG", coinGeckoId: "endless-battlefield", decimals: 18, price: 0.00006497}, // Addr: 0x7eefb6aeb8bc2c1ba6be1d4273ec0758a1321272, Notional: 0.06497 - {chain: 4, addr: "00000000000000000000000071be881e9c5d4465b3fff61e89c6f3651e69b5bb", symbol: "BRZ", coinGeckoId: "brz", decimals: 4, price: 0.190113}, // Addr: 0x71be881e9c5d4465b3fff61e89c6f3651e69b5bb, Notional: 61.75820805000001 - {chain: 4, addr: "000000000000000000000000f16e81dce15b08f326220742020379b855b87df9", symbol: "ICE", coinGeckoId: "ice-token", decimals: 18, price: 0.560646}, // Addr: 0xf16e81dce15b08f326220742020379b855b87df9, Notional: 3.3551251120573196 + {chain: 4, addr: "00000000000000000000000071be881e9c5d4465b3fff61e89c6f3651e69b5bb", symbol: "BRZ", coinGeckoId: "brz", decimals: 4, price: 0.185331}, // Addr: 0x71be881e9c5d4465b3fff61e89c6f3651e69b5bb, Notional: 60.204775350000006 + {chain: 4, addr: "000000000000000000000000f16e81dce15b08f326220742020379b855b87df9", symbol: "ICE", coinGeckoId: "ice-token", decimals: 18, price: 0.229118}, // Addr: 0xf16e81dce15b08f326220742020379b855b87df9, Notional: 1.3711317933675597 {chain: 4, addr: "000000000000000000000000a6168c7e5eb7c5c379f3a1d7cf1073e09b2f031e", symbol: "GRAV", coinGeckoId: "graviton-zero", decimals: 18, price: 0.00014224}, // Addr: 0xa6168c7e5eb7c5c379f3a1d7cf1073e09b2f031e, Notional: 0.000027992831999999998 - {chain: 4, addr: "0000000000000000000000009e24415d1e549ebc626a13a482bb117a2b43e9cf", symbol: "LOVELY", coinGeckoId: "lovely-inu-finance", decimals: 8, price: 9.1504e-8}, // Addr: 0x9e24415d1e549ebc626a13a482bb117a2b43e9cf, Notional: 0.47512693213299806 - {chain: 4, addr: "0000000000000000000000001da87b114f35e1dc91f72bf57fc07a768ad40bb0", symbol: "EQZ", coinGeckoId: "equalizer", decimals: 18, price: 0.00610452}, // Addr: 0x1da87b114f35e1dc91f72bf57fc07a768ad40bb0, Notional: 0.06104520000000001 + {chain: 4, addr: "0000000000000000000000009e24415d1e549ebc626a13a482bb117a2b43e9cf", symbol: "LOVELY", coinGeckoId: "lovely-inu-finance", decimals: 8, price: 0.00916264}, // Addr: 0x9e24415d1e549ebc626a13a482bb117a2b43e9cf, Notional: 26002582.082933396 + {chain: 4, addr: "0000000000000000000000001da87b114f35e1dc91f72bf57fc07a768ad40bb0", symbol: "EQZ", coinGeckoId: "equalizer", decimals: 18, price: 0.00378734}, // Addr: 0x1da87b114f35e1dc91f72bf57fc07a768ad40bb0, Notional: 0.0378734 {chain: 4, addr: "00000000000000000000000083adb07bb91ddde95a24982f1b2d343963ba3995", symbol: "Fwcl", coinGeckoId: "legends", decimals: 9, price: 0.08117}, // Addr: 0x83adb07bb91ddde95a24982f1b2d343963ba3995, Notional: 0.40585000000000004 - {chain: 4, addr: "000000000000000000000000c335df7c25b72eec661d5aa32a7c2b7b2a1d1874", symbol: "ICE", coinGeckoId: "ice", decimals: 18, price: 0.00441546}, // Addr: 0xc335df7c25b72eec661d5aa32a7c2b7b2a1d1874, Notional: 355285.7611097834 + {chain: 4, addr: "000000000000000000000000c335df7c25b72eec661d5aa32a7c2b7b2a1d1874", symbol: "ICE", coinGeckoId: "ice", decimals: 18, price: 0.00334285}, // Addr: 0xc335df7c25b72eec661d5aa32a7c2b7b2a1d1874, Notional: 364342.27926249267 {chain: 4, addr: "0000000000000000000000005e95a952a7f79f978585afd54a053af0f51372fa", symbol: "SBG", coinGeckoId: "sb-group", decimals: 9, price: 3.67439e-7}, // Addr: 0x5e95a952a7f79f978585afd54a053af0f51372fa, Notional: 0.000367439 - {chain: 4, addr: "000000000000000000000000c146b7cdbaff065090077151d391f4c96aa09e0c", symbol: "MCC", coinGeckoId: "multi-chain-capital-2", decimals: 9, price: 4.39874e-7}, // Addr: 0xc146b7cdbaff065090077151d391f4c96aa09e0c, Notional: 0.000006598109999999999 - {chain: 4, addr: "0000000000000000000000007af173f350d916358af3e218bdf2178494beb748", symbol: "TRADE", coinGeckoId: "unitrade", decimals: 18, price: 0.00601712}, // Addr: 0x7af173f350d916358af3e218bdf2178494beb748, Notional: 3.3172371410276638 - {chain: 4, addr: "000000000000000000000000200c234721b5e549c3693ccc93cf191f90dc2af9", symbol: "METAL", coinGeckoId: "drunk-robots", decimals: 18, price: 0.03481267}, // Addr: 0x200c234721b5e549c3693ccc93cf191f90dc2af9, Notional: 141.56099555698674 - {chain: 4, addr: "000000000000000000000000f92d62ed69242d655e685c96b98f32f1409c3262", symbol: "A4M", coinGeckoId: "alienform", decimals: 9, price: 0.00008625}, // Addr: 0xf92d62ed69242d655e685c96b98f32f1409c3262, Notional: 3.466490665625137 - {chain: 4, addr: "000000000000000000000000bd83010eb60f12112908774998f65761cf9f6f9a", symbol: "STARS", coinGeckoId: "mogul-productions", decimals: 18, price: 0.00374744}, // Addr: 0xbd83010eb60f12112908774998f65761cf9f6f9a, Notional: 1.5635818656 - {chain: 4, addr: "00000000000000000000000008b450e4a48c04cdf6db2bd4cf24057f7b9563ff", symbol: "QUO", coinGeckoId: "quo", decimals: 18, price: 0.00275482}, // Addr: 0x08b450e4a48c04cdf6db2bd4cf24057f7b9563ff, Notional: 32253.637166408695 - {chain: 4, addr: "0000000000000000000000008578eb576e126f67913a8bc0622e0a22eba0989a", symbol: "PANDA", coinGeckoId: "hashpanda", decimals: 9, price: 8.30637e-10}, // Addr: 0x8578eb576e126f67913a8bc0622e0a22eba0989a, Notional: 0.06014224091205241 - {chain: 4, addr: "0000000000000000000000009e20461bc2c4c980f62f1b279d71734207a6a356", symbol: "OMNI", coinGeckoId: "omnicat", decimals: 18, price: 0.00037669}, // Addr: 0x9e20461bc2c4c980f62f1b279d71734207a6a356, Notional: 756.7028790317219 - {chain: 4, addr: "0000000000000000000000001ee098cbaf1f846d5df1993f7e2d10afb35a878d", symbol: "SABLE", coinGeckoId: "sable", decimals: 18, price: 0.01329656}, // Addr: 0x1ee098cbaf1f846d5df1993f7e2d10afb35a878d, Notional: 13912.701841759414 - {chain: 4, addr: "0000000000000000000000006d86f0a41c3966cef8ea139648db707e912563c9", symbol: "MCOIN", coinGeckoId: "mcoin1", decimals: 18, price: 0.947365}, // Addr: 0x6d86f0a41c3966cef8ea139648db707e912563c9, Notional: 0.0947365 - {chain: 4, addr: "0000000000000000000000009e6b3e35c8f563b45d864f9ff697a144ad28a371", symbol: "DOGO", coinGeckoId: "dogemon-go", decimals: 18, price: 0.00000449}, // Addr: 0x9e6b3e35c8f563b45d864f9ff697a144ad28a371, Notional: 76.234937253533 - {chain: 4, addr: "00000000000000000000000062823659d09f9f9d2222058878f89437425eb261", symbol: "ERTHA", coinGeckoId: "ertha", decimals: 18, price: 0.00172201}, // Addr: 0x62823659d09f9f9d2222058878f89437425eb261, Notional: 0.03616221 - {chain: 4, addr: "000000000000000000000000a2b726b1145a4773f68593cf171187d8ebe4d495", symbol: "INJ", coinGeckoId: "injective-protocol", decimals: 18, price: 22.87}, // Addr: 0xa2b726b1145a4773f68593cf171187d8ebe4d495, Notional: 3558.7625269969003 - {chain: 4, addr: "000000000000000000000000c6f509274fcc1f485644167cb911fd0c61545e6c", symbol: "OBS", coinGeckoId: "obsidium", decimals: 18, price: 0.00258157}, // Addr: 0xc6f509274fcc1f485644167cb911fd0c61545e6c, Notional: 2.839727 - {chain: 4, addr: "00000000000000000000000012f31b73d812c6bb0d735a218c086d44d5fe5f89", symbol: "agEUR", coinGeckoId: "ageur", decimals: 18, price: 1.055}, // Addr: 0x12f31b73d812c6bb0d735a218c086d44d5fe5f89, Notional: 16.5448015176 + {chain: 4, addr: "000000000000000000000000c146b7cdbaff065090077151d391f4c96aa09e0c", symbol: "MCC", coinGeckoId: "multi-chain-capital-2", decimals: 9, price: 3.7916e-7}, // Addr: 0xc146b7cdbaff065090077151d391f4c96aa09e0c, Notional: 0.0000056874 + {chain: 4, addr: "0000000000000000000000007af173f350d916358af3e218bdf2178494beb748", symbol: "TRADE", coinGeckoId: "unitrade", decimals: 18, price: 0.00283436}, // Addr: 0x7af173f350d916358af3e218bdf2178494beb748, Notional: 1.562582142793092 + {chain: 4, addr: "000000000000000000000000200c234721b5e549c3693ccc93cf191f90dc2af9", symbol: "METAL", coinGeckoId: "drunk-robots", decimals: 18, price: 0.02012052}, // Addr: 0x200c234721b5e549c3693ccc93cf191f90dc2af9, Notional: 81.8173625385316 + {chain: 4, addr: "000000000000000000000000f92d62ed69242d655e685c96b98f32f1409c3262", symbol: "A4M", coinGeckoId: "alienform", decimals: 9, price: 0.00003955}, // Addr: 0xf92d62ed69242d655e685c96b98f32f1409c3262, Notional: 1.5895618066721644 + {chain: 4, addr: "0000000000000000000000008bfca09e5877ea59f85883d13a6873334b937d41", symbol: "MADPEPE", coinGeckoId: "mad-pepe", decimals: 18, price: 1.28551e-10}, // Addr: 0x8bfca09e5877ea59f85883d13a6873334b937d41, Notional: 0.0019286506529999998 + {chain: 4, addr: "000000000000000000000000bd83010eb60f12112908774998f65761cf9f6f9a", symbol: "STARS", coinGeckoId: "mogul-productions", decimals: 18, price: 0.00000694}, // Addr: 0xbd83010eb60f12112908774998f65761cf9f6f9a, Notional: 0.0028956456 + {chain: 4, addr: "00000000000000000000000008b450e4a48c04cdf6db2bd4cf24057f7b9563ff", symbol: "QUO", coinGeckoId: "quo", decimals: 18, price: 0.00234774}, // Addr: 0x08b450e4a48c04cdf6db2bd4cf24057f7b9563ff, Notional: 44285.247093327285 + {chain: 4, addr: "0000000000000000000000008578eb576e126f67913a8bc0622e0a22eba0989a", symbol: "PANDA", coinGeckoId: "hashpanda", decimals: 9, price: 7.62371e-10}, // Addr: 0x8578eb576e126f67913a8bc0622e0a22eba0989a, Notional: 0.05519944373578629 + {chain: 4, addr: "0000000000000000000000009e20461bc2c4c980f62f1b279d71734207a6a356", symbol: "OMNI", coinGeckoId: "omnicat", decimals: 18, price: 0.00004164}, // Addr: 0x9e20461bc2c4c980f62f1b279d71734207a6a356, Notional: 83.79215307274828 + {chain: 4, addr: "0000000000000000000000001ee098cbaf1f846d5df1993f7e2d10afb35a878d", symbol: "SABLE", coinGeckoId: "sable", decimals: 18, price: 0.00589653}, // Addr: 0x1ee098cbaf1f846d5df1993f7e2d10afb35a878d, Notional: 6178.901766801979 + {chain: 4, addr: "0000000000000000000000006d86f0a41c3966cef8ea139648db707e912563c9", symbol: "MCOIN", coinGeckoId: "mcoin1", decimals: 18, price: 0.42513}, // Addr: 0x6d86f0a41c3966cef8ea139648db707e912563c9, Notional: 0.042513 + {chain: 4, addr: "0000000000000000000000009e6b3e35c8f563b45d864f9ff697a144ad28a371", symbol: "DOGO", coinGeckoId: "dogemon-go", decimals: 18, price: 0.00000448}, // Addr: 0x9e6b3e35c8f563b45d864f9ff697a144ad28a371, Notional: 76.06514897457191 + {chain: 4, addr: "00000000000000000000000062823659d09f9f9d2222058878f89437425eb261", symbol: "ERTHA", coinGeckoId: "ertha", decimals: 18, price: 0.00075906}, // Addr: 0x62823659d09f9f9d2222058878f89437425eb261, Notional: 0.01594026 + {chain: 4, addr: "000000000000000000000000a2b726b1145a4773f68593cf171187d8ebe4d495", symbol: "INJ", coinGeckoId: "injective-protocol", decimals: 18, price: 18.7}, // Addr: 0xa2b726b1145a4773f68593cf171187d8ebe4d495, Notional: 3066.932524469 + {chain: 4, addr: "000000000000000000000000c6f509274fcc1f485644167cb911fd0c61545e6c", symbol: "OBS", coinGeckoId: "obsidium", decimals: 18, price: 0.00253088}, // Addr: 0xc6f509274fcc1f485644167cb911fd0c61545e6c, Notional: 2.783968 + {chain: 4, addr: "00000000000000000000000012f31b73d812c6bb0d735a218c086d44d5fe5f89", symbol: "agEUR", coinGeckoId: "ageur", decimals: 18, price: 1.092}, // Addr: 0x12f31b73d812c6bb0d735a218c086d44d5fe5f89, Notional: 17.12504574144 {chain: 4, addr: "0000000000000000000000000cf8e180350253271f4b917ccfb0accc4862f262", symbol: "BTCBR", coinGeckoId: "bitcoin-br", decimals: 18, price: 1.694e-15}, // Addr: 0x0cf8e180350253271f4b917ccfb0accc4862f262, Notional: 0.0000016940169399999998 - {chain: 4, addr: "00000000000000000000000019b99162adaab85134e781ac0048c275c31b205a", symbol: "TAUR", coinGeckoId: "marnotaur", decimals: 18, price: 0.00097743}, // Addr: 0x19b99162adaab85134e781ac0048c275c31b205a, Notional: 3.987592621071193 - {chain: 4, addr: "000000000000000000000000bf5140a22578168fd562dccf235e5d43a02ce9b1", symbol: "UNI", coinGeckoId: "uniswap", decimals: 18, price: 6.84}, // Addr: 0xbf5140a22578168fd562dccf235e5d43a02ce9b1, Notional: 25.807168904399997 - {chain: 4, addr: "000000000000000000000000fe19f0b51438fd612f6fd59c1dbb3ea319f433ba", symbol: "MIM", coinGeckoId: "magic-internet-money", decimals: 18, price: 0.995794}, // Addr: 0xfe19f0b51438fd612f6fd59c1dbb3ea319f433ba, Notional: 1001.2254011371273 - {chain: 4, addr: "000000000000000000000000603c7f932ed1fc6575303d8fb018fdcbb0f39a95", symbol: "BANANA", coinGeckoId: "apeswap-finance", decimals: 18, price: 0.00105649}, // Addr: 0x603c7f932ed1fc6575303d8fb018fdcbb0f39a95, Notional: 13.398066220693293 - {chain: 4, addr: "0000000000000000000000001ce0c2827e2ef14d5c4f29a091d735a204794041", symbol: "AVAX", coinGeckoId: "binance-peg-avalanche", decimals: 18, price: 32.62}, // Addr: 0x1ce0c2827e2ef14d5c4f29a091d735a204794041, Notional: 4120.9913143728 - {chain: 4, addr: "0000000000000000000000007881cd2b5724431372f57c50e91611352557a606", symbol: "HyPC", coinGeckoId: "hypercycle", decimals: 6, price: 0.485011}, // Addr: 0x7881cd2b5724431372f57c50e91611352557a606, Notional: 5.483564436682 - {chain: 4, addr: "000000000000000000000000959229d94c9060552daea25ac17193bca65d7884", symbol: "IOI", coinGeckoId: "ioi-token", decimals: 6, price: 0.02969153}, // Addr: 0x959229d94c9060552daea25ac17193bca65d7884, Notional: 0.75412077007795 - {chain: 4, addr: "0000000000000000000000001fa4a73a3f0133f0025378af00236f3abdee5d63", symbol: "NEAR", coinGeckoId: "wrapped-near", decimals: 18, price: 6.05}, // Addr: 0x1fa4a73a3f0133f0025378af00236f3abdee5d63, Notional: 150.38001 - {chain: 4, addr: "000000000000000000000000d691d9a68c887bdf34da8c36f63487333acfd103", symbol: "MAV", coinGeckoId: "maverick-protocol", decimals: 18, price: 0.3662}, // Addr: 0xd691d9a68c887bdf34da8c36f63487333acfd103, Notional: 4.578678091034 - {chain: 4, addr: "00000000000000000000000059c49b54d4425c7ff1e49f40958a14d48cc87c26", symbol: "MC", coinGeckoId: "tap-fantasy-mc", decimals: 18, price: 0.304189}, // Addr: 0x59c49b54d4425c7ff1e49f40958a14d48cc87c26, Notional: 2.1610434638932 - {chain: 4, addr: "0000000000000000000000008ebc361536094fd5b4ffb8521e31900614c9f55d", symbol: "DARC", coinGeckoId: "darcmatter-coin", decimals: 18, price: 0.00071448}, // Addr: 0x8ebc361536094fd5b4ffb8521e31900614c9f55d, Notional: 3598.716195236692 - {chain: 4, addr: "000000000000000000000000e552fb52a4f19e44ef5a967632dbc320b0820639", symbol: "Metis", coinGeckoId: "metis-token", decimals: 18, price: 56.88}, // Addr: 0xe552fb52a4f19e44ef5a967632dbc320b0820639, Notional: 481472.7773350824 - {chain: 4, addr: "00000000000000000000000039ae8eefb05138f418bb27659c21632dc1ddab10", symbol: "KAI", coinGeckoId: "kardiachain", decimals: 18, price: 0.00391734}, // Addr: 0x39ae8eefb05138f418bb27659c21632dc1ddab10, Notional: 260.45446035886886 - {chain: 4, addr: "0000000000000000000000009e3a9f1612028eee48f85ca85f8bed2f37d76848", symbol: "QDX", coinGeckoId: "quidax", decimals: 18, price: 0.03024236}, // Addr: 0x9e3a9f1612028eee48f85ca85f8bed2f37d76848, Notional: 15.121179999999999 - {chain: 4, addr: "000000000000000000000000aec945e04baf28b135fa7c640f624f8d90f1c3a6", symbol: "C98", coinGeckoId: "coin98", decimals: 18, price: 0.258232}, // Addr: 0xaec945e04baf28b135fa7c640f624f8d90f1c3a6, Notional: 108.60294149696786 - {chain: 4, addr: "000000000000000000000000c51ef828319b131b595b7ec4b28210ecf4d05ad0", symbol: "EFX", coinGeckoId: "effect-network", decimals: 18, price: 0.01689685}, // Addr: 0xc51ef828319b131b595b7ec4b28210ecf4d05ad0, Notional: 168.9685 - {chain: 4, addr: "000000000000000000000000ad6742a35fb341a9cc6ad674738dd8da98b94fb1", symbol: "WOM", coinGeckoId: "wombat-exchange", decimals: 18, price: 0.03001714}, // Addr: 0xad6742a35fb341a9cc6ad674738dd8da98b94fb1, Notional: 1940414.0971144936 - {chain: 4, addr: "0000000000000000000000002c717059b366714d267039af8f59125cadce6d8c", symbol: "MHUNT", coinGeckoId: "metashooter", decimals: 18, price: 0.00592642}, // Addr: 0x2c717059b366714d267039af8f59125cadce6d8c, Notional: 0.21072824047639158 - {chain: 4, addr: "0000000000000000000000000e09fabb73bd3ade0a17ecc321fd13a19e81ce82", symbol: "Cake", coinGeckoId: "pancakeswap-token", decimals: 18, price: 2.45}, // Addr: 0x0e09fabb73bd3ade0a17ecc321fd13a19e81ce82, Notional: 425.85185550600005 - {chain: 4, addr: "000000000000000000000000aa9826732f3a4973ff8b384b3f4e3c70c2984651", symbol: "XPRESS", coinGeckoId: "cryptoexpress", decimals: 18, price: 0.04484645}, // Addr: 0xaa9826732f3a4973ff8b384b3f4e3c70c2984651, Notional: 7.712480715480855 - {chain: 4, addr: "0000000000000000000000004d2d32d8652058bf98c772953e1df5c5c85d9f45", symbol: "DAO", coinGeckoId: "dao-maker", decimals: 18, price: 0.8512}, // Addr: 0x4d2d32d8652058bf98c772953e1df5c5c85d9f45, Notional: 4934951.513820003 - {chain: 4, addr: "000000000000000000000000a5496935a247fa81b1462e553ad139d2fd0af795", symbol: "FLAG", coinGeckoId: "flag-network", decimals: 18, price: 0.00000275}, // Addr: 0xa5496935a247fa81b1462e553ad139d2fd0af795, Notional: 1.2683154758345776 - {chain: 4, addr: "0000000000000000000000004b0f1812e5df2a09796481ff14017e6005508003", symbol: "TWT", coinGeckoId: "trust-wallet-token", decimals: 18, price: 0.995196}, // Addr: 0x4b0f1812e5df2a09796481ff14017e6005508003, Notional: 8771.968763146107 - {chain: 4, addr: "000000000000000000000000998305efdc264b9674178899fffbb44a47134a76", symbol: "GMRX", coinGeckoId: "gaimin", decimals: 18, price: 0.00631299}, // Addr: 0x998305efdc264b9674178899fffbb44a47134a76, Notional: 765779.0838622298 - {chain: 4, addr: "000000000000000000000000aa076b62efc6f357882e07665157a271ab46a063", symbol: "NSFW", coinGeckoId: "pleasure-coin", decimals: 18, price: 0.0000504}, // Addr: 0xaa076b62efc6f357882e07665157a271ab46a063, Notional: 0.46983572318440797 - {chain: 4, addr: "0000000000000000000000002222227e22102fe3322098e4cbfe18cfebd57c95", symbol: "TLM", coinGeckoId: "alien-worlds", decimals: 4, price: 0.01466999}, // Addr: 0x2222227e22102fe3322098e4cbfe18cfebd57c95, Notional: 13.235264978000002 - {chain: 4, addr: "00000000000000000000000067ee3cb086f8a16f34bee3ca72fad36f7db929e2", symbol: "DODO", coinGeckoId: "dodo", decimals: 18, price: 0.161587}, // Addr: 0x67ee3cb086f8a16f34bee3ca72fad36f7db929e2, Notional: 1.6158700000000001 - {chain: 4, addr: "00000000000000000000000022168882276e5d5e1da694343b41dd7726eeb288", symbol: "WSB", coinGeckoId: "wall-street-bets-dapp", decimals: 18, price: 0.0001974}, // Addr: 0x22168882276e5d5e1da694343b41dd7726eeb288, Notional: 0.8780188561702741 - {chain: 4, addr: "000000000000000000000000c9ad37e9baf41377540df5a77831db98c1915128", symbol: "GINUX", coinGeckoId: "green-shiba-inu", decimals: 18, price: 6.79629e-7}, // Addr: 0xc9ad37e9baf41377540df5a77831db98c1915128, Notional: 283.4595195160305 - {chain: 4, addr: "0000000000000000000000000231f91e02debd20345ae8ab7d71a41f8e140ce7", symbol: "bwJUP", coinGeckoId: "jupiter", decimals: 18, price: 0.00117026}, // Addr: 0x0231f91e02debd20345ae8ab7d71a41f8e140ce7, Notional: 0.117026 - {chain: 4, addr: "000000000000000000000000b0d502e938ed5f4df2e681fe6e419ff29631d62b", symbol: "STG", coinGeckoId: "stargate-finance", decimals: 18, price: 0.486642}, // Addr: 0xb0d502e938ed5f4df2e681fe6e419ff29631d62b, Notional: 37.7783497415415 - {chain: 4, addr: "0000000000000000000000005b6dcf557e2abe2323c48445e8cc948910d8c2c9", symbol: "MIR", coinGeckoId: "mirror-protocol", decimals: 18, price: 0.04413222}, // Addr: 0x5b6dcf557e2abe2323c48445e8cc948910d8c2c9, Notional: 303.5438208609288 - {chain: 4, addr: "0000000000000000000000009d7107c8e30617cadc11f9692a19c82ae8bba938", symbol: "ROO", coinGeckoId: "lucky-roo", decimals: 18, price: 3.6739e-8}, // Addr: 0x9d7107c8e30617cadc11f9692a19c82ae8bba938, Notional: 0.36000241326752663 - {chain: 4, addr: "0000000000000000000000001a131f7b106d58f33eaf0fe5b47db2f2045e5732", symbol: "DEGEN", coinGeckoId: "degenreborn", decimals: 18, price: 5.58549e-7}, // Addr: 0x1a131f7b106d58f33eaf0fe5b47db2f2045e5732, Notional: 101183.65703285743 - {chain: 4, addr: "0000000000000000000000005512014efa6cd57764fa743756f7a6ce3358cc83", symbol: "EZ", coinGeckoId: "easyfi", decimals: 18, price: 0.03900719}, // Addr: 0x5512014efa6cd57764fa743756f7a6ce3358cc83, Notional: 0.24900564003270467 - {chain: 4, addr: "000000000000000000000000f2c9c8e016a511eb0bf4823e340c3567d6de1390", symbol: "LAIKA", coinGeckoId: "laikaverse", decimals: 18, price: 0.0000146}, // Addr: 0xf2c9c8e016a511eb0bf4823e340c3567d6de1390, Notional: 1.46e-13 - {chain: 4, addr: "000000000000000000000000a38898a4ae982cb0131104a6746f77fa0da57aaa", symbol: "QBIT", coinGeckoId: "project-quantum", decimals: 2, price: 0.00000377}, // Addr: 0xa38898a4ae982cb0131104a6746f77fa0da57aaa, Notional: 0.00003393 - {chain: 4, addr: "00000000000000000000000047bead2563dcbf3bf2c9407fea4dc236faba485a", symbol: "SXP", coinGeckoId: "swipe", decimals: 18, price: 0.316023}, // Addr: 0x47bead2563dcbf3bf2c9407fea4dc236faba485a, Notional: 688.8882398092845 - {chain: 4, addr: "000000000000000000000000c14a7747cfec02cfea62e72bb93538de6b2078e6", symbol: "GBL", coinGeckoId: "waweswaps-global-token", decimals: 18, price: 5.78}, // Addr: 0xc14a7747cfec02cfea62e72bb93538de6b2078e6, Notional: 1734 - {chain: 4, addr: "000000000000000000000000842668e2b9a73240abf6532dedc89c9c3e050c98", symbol: "LIGHT", coinGeckoId: "light-defi", decimals: 9, price: 0.00019584}, // Addr: 0x842668e2b9a73240abf6532dedc89c9c3e050c98, Notional: 1.76569345977984 - {chain: 4, addr: "000000000000000000000000c0366a104b429f0806bfa98d0008daa9555b2bed", symbol: "SMARS", coinGeckoId: "safemars-protocol", decimals: 9, price: 4.102e-9}, // Addr: 0xc0366a104b429f0806bfa98d0008daa9555b2bed, Notional: 0.0015834153295810965 - {chain: 4, addr: "0000000000000000000000002ab0e9e4ee70fff1fb9d67031e44f6410170d00e", symbol: "bXEN", coinGeckoId: "xen-crypto-bsc", decimals: 18, price: 9.92347e-10}, // Addr: 0x2ab0e9e4ee70fff1fb9d67031e44f6410170d00e, Notional: 2.1890219301564176 - {chain: 4, addr: "00000000000000000000000083d8ea5a4650b68cd2b57846783d86df940f7458", symbol: "HUDI", coinGeckoId: "hudi", decimals: 18, price: 0.146546}, // Addr: 0x83d8ea5a4650b68cd2b57846783d86df940f7458, Notional: 3.98972576474608 - {chain: 4, addr: "000000000000000000000000ac51066d7bec65dc4589368da368b212745d63e8", symbol: "ALICE", coinGeckoId: "my-neighbor-alice", decimals: 6, price: 1.13}, // Addr: 0xac51066d7bec65dc4589368da368b212745d63e8, Notional: 0.6779999999999999 - {chain: 4, addr: "00000000000000000000000050d809c74e0b8e49e7b4c65bb3109abe3ff4c1c1", symbol: "CUB", coinGeckoId: "cub-finance", decimals: 18, price: 0.00251581}, // Addr: 0x50d809c74e0b8e49e7b4c65bb3109abe3ff4c1c1, Notional: 0.0000309495197781 - {chain: 4, addr: "000000000000000000000000e4ca1f75eca6214393fce1c1b316c237664eaa8e", symbol: "ORN", coinGeckoId: "orion-protocol", decimals: 8, price: 1.36}, // Addr: 0xe4ca1f75eca6214393fce1c1b316c237664eaa8e, Notional: 752.1740836848 - {chain: 4, addr: "0000000000000000000000009fb9a33956351cf4fa040f65a13b835a3c8764e3", symbol: "MULTI", coinGeckoId: "multichain", decimals: 18, price: 0.68204}, // Addr: 0x9fb9a33956351cf4fa040f65a13b835a3c8764e3, Notional: 191.232120301646 - {chain: 4, addr: "000000000000000000000000eca41281c24451168a37211f0bc2b8645af45092", symbol: "TPT", coinGeckoId: "token-pocket", decimals: 4, price: 0.00668196}, // Addr: 0xeca41281c24451168a37211f0bc2b8645af45092, Notional: 1.336392 - {chain: 4, addr: "000000000000000000000000ad29abb318791d579433d831ed122afeaf29dcfe", symbol: "FTM", coinGeckoId: "wrapped-fantom", decimals: 18, price: 0.649286}, // Addr: 0xad29abb318791d579433d831ed122afeaf29dcfe, Notional: 2148.4968468684756 - {chain: 4, addr: "000000000000000000000000a7bd657c5838472ddf85ff0797a2e6fce8fd4833", symbol: "ARBI", coinGeckoId: "arbipad", decimals: 18, price: 0.00018741}, // Addr: 0xa7bd657c5838472ddf85ff0797a2e6fce8fd4833, Notional: 1258.8397936987897 - {chain: 4, addr: "00000000000000000000000031471e0791fcdbe82fbf4c44943255e923f1b794", symbol: "PVU", coinGeckoId: "plant-vs-undead-token", decimals: 18, price: 0.00241076}, // Addr: 0x31471e0791fcdbe82fbf4c44943255e923f1b794, Notional: 0.000024107600000000003 - {chain: 4, addr: "000000000000000000000000250632378e573c6be1ac2f97fcdf00515d0aa91b", symbol: "BETH", coinGeckoId: "binance-eth", decimals: 18, price: 3000.63}, // Addr: 0x250632378e573c6be1ac2f97fcdf00515d0aa91b, Notional: 595.2103079213999 - {chain: 4, addr: "0000000000000000000000000b15ddf19d47e6a86a56148fb4afffc6929bcb89", symbol: "IDIA", coinGeckoId: "idia", decimals: 18, price: 0.066787}, // Addr: 0x0b15ddf19d47e6a86a56148fb4afffc6929bcb89, Notional: 8859385.66993844 - {chain: 4, addr: "0000000000000000000000007b610012bdc4d6deba2c2d91684e408f40863429", symbol: "OSEA", coinGeckoId: "omnisea", decimals: 18, price: 0.00588041}, // Addr: 0x7b610012bdc4d6deba2c2d91684e408f40863429, Notional: 0.7841732237100228 - {chain: 4, addr: "00000000000000000000000012bb890508c125661e03b09ec06e404bc9289040", symbol: "RACA", coinGeckoId: "radio-caca", decimals: 18, price: 0.00020774}, // Addr: 0x12bb890508c125661e03b09ec06e404bc9289040, Notional: 370.41392296933157 - {chain: 4, addr: "00000000000000000000000063eaeb6e33e11252b10553900a9f38a9ed172871", symbol: "TUP", coinGeckoId: "tenup", decimals: 18, price: 0.01942274}, // Addr: 0x63eaeb6e33e11252b10553900a9f38a9ed172871, Notional: 0.9653101780000001 - {chain: 4, addr: "0000000000000000000000008bd778b12b15416359a227f0533ce2d91844e1ed", symbol: "SAKE", coinGeckoId: "sake-token", decimals: 18, price: 0.00168336}, // Addr: 0x8bd778b12b15416359a227f0533ce2d91844e1ed, Notional: 3.2738792147778533 - {chain: 4, addr: "000000000000000000000000482e6bd0a178f985818c5dfb9ac77918e8412fba", symbol: "ZEUM", coinGeckoId: "colizeum", decimals: 18, price: 0.00143638}, // Addr: 0x482e6bd0a178f985818c5dfb9ac77918e8412fba, Notional: 0.17357397320430198 - {chain: 4, addr: "0000000000000000000000006bff4fb161347ad7de4a625ae5aa3a1ca7077819", symbol: "ADX", coinGeckoId: "adex", decimals: 18, price: 0.183786}, // Addr: 0x6bff4fb161347ad7de4a625ae5aa3a1ca7077819, Notional: 2.389218 - {chain: 4, addr: "000000000000000000000000bf0cf158e84ebacca1b7746e794d507073e5adfe", symbol: "BEPR", coinGeckoId: "blockchain-euro-project", decimals: 9, price: 0.00236906}, // Addr: 0xbf0cf158e84ebacca1b7746e794d507073e5adfe, Notional: 512.964521528051 - {chain: 4, addr: "0000000000000000000000009b17baadf0f21f03e35249e0e59723f34994f806", symbol: "SURE", coinGeckoId: "insure", decimals: 18, price: 0.0049643}, // Addr: 0x9b17baadf0f21f03e35249e0e59723f34994f806, Notional: 1.4892899999999998 - {chain: 4, addr: "000000000000000000000000c748673057861a797275cd8a068abb95a902e8de", symbol: "BabyDoge", coinGeckoId: "baby-doge-coin", decimals: 9, price: 1.729e-9}, // Addr: 0xc748673057861a797275cd8a068abb95a902e8de, Notional: 19.780789770226242 - {chain: 4, addr: "0000000000000000000000003c1748d647e6a56b37b66fcd2b5626d0461d3aa0", symbol: "DNXC", coinGeckoId: "dinox", decimals: 18, price: 0.00296538}, // Addr: 0x3c1748d647e6a56b37b66fcd2b5626d0461d3aa0, Notional: 81.6595612057561 - {chain: 4, addr: "0000000000000000000000008595f9da7b868b1822194faed312235e43007b49", symbol: "BTT", coinGeckoId: "bittorrent-old", decimals: 18, price: 0.00000115}, // Addr: 0x8595f9da7b868b1822194faed312235e43007b49, Notional: 0.00000115 - {chain: 4, addr: "000000000000000000000000bf7c81fff98bbe61b40ed186e4afd6ddd01337fe", symbol: "EGLD", coinGeckoId: "wrapped-elrond", decimals: 18, price: 37.1}, // Addr: 0xbf7c81fff98bbe61b40ed186e4afd6ddd01337fe, Notional: 332.381902132 - {chain: 4, addr: "0000000000000000000000002a48ece377b87ce941406657b9278b4459595e06", symbol: "LunaT", coinGeckoId: "lunatics", decimals: 9, price: 0.00000227}, // Addr: 0x2a48ece377b87ce941406657b9278b4459595e06, Notional: 3.2855055586585893 - {chain: 4, addr: "00000000000000000000000082443a77684a7da92fdcb639c8d2bd068a596245", symbol: "SWAP", coinGeckoId: "trustswap", decimals: 18, price: 0.151516}, // Addr: 0x82443a77684a7da92fdcb639c8d2bd068a596245, Notional: 0.45454800000000006 + {chain: 4, addr: "00000000000000000000000019b99162adaab85134e781ac0048c275c31b205a", symbol: "TAUR", coinGeckoId: "marnotaur", decimals: 18, price: 0.00068903}, // Addr: 0x19b99162adaab85134e781ac0048c275c31b205a, Notional: 2.8110155649987045 + {chain: 4, addr: "000000000000000000000000bf5140a22578168fd562dccf235e5d43a02ce9b1", symbol: "UNI", coinGeckoId: "uniswap", decimals: 18, price: 6.44}, // Addr: 0xbf5140a22578168fd562dccf235e5d43a02ce9b1, Notional: 24.2979777404 + {chain: 4, addr: "000000000000000000000000fe19f0b51438fd612f6fd59c1dbb3ea319f433ba", symbol: "MIM", coinGeckoId: "magic-internet-money", decimals: 18, price: 1.001}, // Addr: 0xfe19f0b51438fd612f6fd59c1dbb3ea319f433ba, Notional: 1006.4597964420999 + {chain: 4, addr: "000000000000000000000000603c7f932ed1fc6575303d8fb018fdcbb0f39a95", symbol: "BANANA", coinGeckoId: "apeswap-finance", decimals: 18, price: 0.00099003}, // Addr: 0x603c7f932ed1fc6575303d8fb018fdcbb0f39a95, Notional: 12.555241886315045 + {chain: 4, addr: "0000000000000000000000001ce0c2827e2ef14d5c4f29a091d735a204794041", symbol: "AVAX", coinGeckoId: "binance-peg-avalanche", decimals: 18, price: 21.04}, // Addr: 0x1ce0c2827e2ef14d5c4f29a091d735a204794041, Notional: 2658.5470707376 + {chain: 4, addr: "0000000000000000000000007881cd2b5724431372f57c50e91611352557a606", symbol: "HyPC", coinGeckoId: "hypercycle", decimals: 6, price: 0.268251}, // Addr: 0x7881cd2b5724431372f57c50e91611352557a606, Notional: 3.0328624375620006 + {chain: 4, addr: "000000000000000000000000ce7de646e7208a4ef112cb6ed5038fa6cc6b12e3", symbol: "TRX", coinGeckoId: "tron-bsc", decimals: 6, price: 0.13087}, // Addr: 0xce7de646e7208a4ef112cb6ed5038fa6cc6b12e3, Notional: 1467.6518228599998 + {chain: 4, addr: "000000000000000000000000959229d94c9060552daea25ac17193bca65d7884", symbol: "IOI", coinGeckoId: "ioi-token", decimals: 6, price: 0.01831109}, // Addr: 0x959229d94c9060552daea25ac17193bca65d7884, Notional: 0.46507449403135 + {chain: 4, addr: "0000000000000000000000001fa4a73a3f0133f0025378af00236f3abdee5d63", symbol: "NEAR", coinGeckoId: "wrapped-near", decimals: 18, price: 4.16}, // Addr: 0x1fa4a73a3f0133f0025378af00236f3abdee5d63, Notional: 104.23379200000001 + {chain: 4, addr: "000000000000000000000000d691d9a68c887bdf34da8c36f63487333acfd103", symbol: "MAV", coinGeckoId: "maverick-protocol", decimals: 18, price: 0.181633}, // Addr: 0xd691d9a68c887bdf34da8c36f63487333acfd103, Notional: 2.2709968260753097 + {chain: 4, addr: "00000000000000000000000059c49b54d4425c7ff1e49f40958a14d48cc87c26", symbol: "MC", coinGeckoId: "tap-fantasy-mc", decimals: 18, price: 0.190464}, // Addr: 0x59c49b54d4425c7ff1e49f40958a14d48cc87c26, Notional: 1.3531093573632 + {chain: 4, addr: "0000000000000000000000008ebc361536094fd5b4ffb8521e31900614c9f55d", symbol: "DARC", coinGeckoId: "darcmatter-coin", decimals: 18, price: 0.00060338}, // Addr: 0x8ebc361536094fd5b4ffb8521e31900614c9f55d, Notional: 3049.6798573046126 + {chain: 4, addr: "000000000000000000000000e552fb52a4f19e44ef5a967632dbc320b0820639", symbol: "Metis", coinGeckoId: "metis-token", decimals: 18, price: 32.42}, // Addr: 0xe552fb52a4f19e44ef5a967632dbc320b0820639, Notional: 274425.9395429566 + {chain: 4, addr: "00000000000000000000000039ae8eefb05138f418bb27659c21632dc1ddab10", symbol: "KAI", coinGeckoId: "kardiachain", decimals: 18, price: 0.00263348}, // Addr: 0x39ae8eefb05138f418bb27659c21632dc1ddab10, Notional: 175.09371468033768 + {chain: 4, addr: "0000000000000000000000009e3a9f1612028eee48f85ca85f8bed2f37d76848", symbol: "QDX", coinGeckoId: "quidax", decimals: 18, price: 0.02933181}, // Addr: 0x9e3a9f1612028eee48f85ca85f8bed2f37d76848, Notional: 14.665905 + {chain: 4, addr: "000000000000000000000000aec945e04baf28b135fa7c640f624f8d90f1c3a6", symbol: "C98", coinGeckoId: "coin98", decimals: 18, price: 0.115625}, // Addr: 0xaec945e04baf28b135fa7c640f624f8d90f1c3a6, Notional: 48.6276492091875 + {chain: 4, addr: "000000000000000000000000c51ef828319b131b595b7ec4b28210ecf4d05ad0", symbol: "EFX", coinGeckoId: "effect-network", decimals: 18, price: 0.01003893}, // Addr: 0xc51ef828319b131b595b7ec4b28210ecf4d05ad0, Notional: 100.38929999999999 + {chain: 4, addr: "000000000000000000000000ad6742a35fb341a9cc6ad674738dd8da98b94fb1", symbol: "WOM", coinGeckoId: "wombat-exchange", decimals: 18, price: 0.01396564}, // Addr: 0xad6742a35fb341a9cc6ad674738dd8da98b94fb1, Notional: 891286.5563073957 + {chain: 4, addr: "0000000000000000000000002c717059b366714d267039af8f59125cadce6d8c", symbol: "MHUNT", coinGeckoId: "metashooter", decimals: 18, price: 0.00237551}, // Addr: 0x2c717059b366714d267039af8f59125cadce6d8c, Notional: 0.0844670209897498 + {chain: 4, addr: "0000000000000000000000000e09fabb73bd3ade0a17ecc321fd13a19e81ce82", symbol: "Cake", coinGeckoId: "pancakeswap-token", decimals: 18, price: 1.6}, // Addr: 0x0e09fabb73bd3ade0a17ecc321fd13a19e81ce82, Notional: 278.10733420800005 + {chain: 4, addr: "000000000000000000000000aa9826732f3a4973ff8b384b3f4e3c70c2984651", symbol: "XPRESS", coinGeckoId: "cryptoexpress", decimals: 18, price: 0.071343}, // Addr: 0xaa9826732f3a4973ff8b384b3f4e3c70c2984651, Notional: 12.26923227333603 + {chain: 4, addr: "0000000000000000000000004d2d32d8652058bf98c772953e1df5c5c85d9f45", symbol: "DAO", coinGeckoId: "dao-maker", decimals: 18, price: 0.324422}, // Addr: 0x4d2d32d8652058bf98c772953e1df5c5c85d9f45, Notional: 2173933.7444955846 + {chain: 4, addr: "000000000000000000000000a5496935a247fa81b1462e553ad139d2fd0af795", symbol: "FLAG", coinGeckoId: "flag-network", decimals: 18, price: 0.00001654}, // Addr: 0xa5496935a247fa81b1462e553ad139d2fd0af795, Notional: 7.628341080110514 + {chain: 4, addr: "0000000000000000000000004b0f1812e5df2a09796481ff14017e6005508003", symbol: "TWT", coinGeckoId: "trust-wallet-token", decimals: 18, price: 0.860667}, // Addr: 0x4b0f1812e5df2a09796481ff14017e6005508003, Notional: 8172.307161790724 + {chain: 4, addr: "000000000000000000000000998305efdc264b9674178899fffbb44a47134a76", symbol: "GMRX", coinGeckoId: "gaimin", decimals: 18, price: 0.00120484}, // Addr: 0x998305efdc264b9674178899fffbb44a47134a76, Notional: 218417.83492450978 + {chain: 4, addr: "000000000000000000000000aa076b62efc6f357882e07665157a271ab46a063", symbol: "NSFW", coinGeckoId: "pleasure-coin", decimals: 18, price: 0.00001898}, // Addr: 0xaa076b62efc6f357882e07665157a271ab46a063, Notional: 6330.9465655707545 + {chain: 4, addr: "0000000000000000000000002222227e22102fe3322098e4cbfe18cfebd57c95", symbol: "TLM", coinGeckoId: "alien-worlds", decimals: 4, price: 0.00910007}, // Addr: 0x2222227e22102fe3322098e4cbfe18cfebd57c95, Notional: 8.210083154000001 + {chain: 4, addr: "00000000000000000000000067ee3cb086f8a16f34bee3ca72fad36f7db929e2", symbol: "DODO", coinGeckoId: "dodo", decimals: 18, price: 0.106364}, // Addr: 0x67ee3cb086f8a16f34bee3ca72fad36f7db929e2, Notional: 1.06364 + {chain: 4, addr: "00000000000000000000000022168882276e5d5e1da694343b41dd7726eeb288", symbol: "WSB", coinGeckoId: "wall-street-bets-dapp", decimals: 18, price: 0.0001697}, // Addr: 0x22168882276e5d5e1da694343b41dd7726eeb288, Notional: 0.7548115496053471 + {chain: 4, addr: "000000000000000000000000c9ad37e9baf41377540df5a77831db98c1915128", symbol: "GINUX", coinGeckoId: "green-shiba-inu", decimals: 18, price: 2.41471e-7}, // Addr: 0xc9ad37e9baf41377540df5a77831db98c1915128, Notional: 100.7126735867001 + {chain: 4, addr: "0000000000000000000000000231f91e02debd20345ae8ab7d71a41f8e140ce7", symbol: "bwJUP", coinGeckoId: "jupiter", decimals: 18, price: 0.0004767}, // Addr: 0x0231f91e02debd20345ae8ab7d71a41f8e140ce7, Notional: 476.74766999999997 + {chain: 4, addr: "000000000000000000000000b0d502e938ed5f4df2e681fe6e419ff29631d62b", symbol: "STG", coinGeckoId: "stargate-finance", decimals: 18, price: 0.331083}, // Addr: 0xb0d502e938ed5f4df2e681fe6e419ff29631d62b, Notional: 25.70219867475225 + {chain: 4, addr: "000000000000000000000000c703da39ae3b9db67c207c7bad8100e1afdc0f9c", symbol: "FRGX", coinGeckoId: "frgx-finance", decimals: 18, price: 0.050373}, // Addr: 0xc703da39ae3b9db67c207c7bad8100e1afdc0f9c, Notional: 21363.635679915362 + {chain: 4, addr: "0000000000000000000000005b6dcf557e2abe2323c48445e8cc948910d8c2c9", symbol: "MIR", coinGeckoId: "mirror-protocol", decimals: 18, price: 0.02060553}, // Addr: 0x5b6dcf557e2abe2323c48445e8cc948910d8c2c9, Notional: 141.72596137390084 + {chain: 4, addr: "0000000000000000000000009d7107c8e30617cadc11f9692a19c82ae8bba938", symbol: "ROO", coinGeckoId: "lucky-roo", decimals: 18, price: 2.5687e-8}, // Addr: 0x9d7107c8e30617cadc11f9692a19c82ae8bba938, Notional: 0.25170478210084535 + {chain: 4, addr: "0000000000000000000000001a131f7b106d58f33eaf0fe5b47db2f2045e5732", symbol: "DEGEN", coinGeckoId: "degenreborn", decimals: 18, price: 9.18949e-7}, // Addr: 0x1a131f7b106d58f33eaf0fe5b47db2f2045e5732, Notional: 166471.73380793323 + {chain: 4, addr: "0000000000000000000000005512014efa6cd57764fa743756f7a6ce3358cc83", symbol: "EZ", coinGeckoId: "easyfi", decimals: 18, price: 0.00940692}, // Addr: 0x5512014efa6cd57764fa743756f7a6ce3358cc83, Notional: 0.06004985581725959 + {chain: 4, addr: "000000000000000000000000f2c9c8e016a511eb0bf4823e340c3567d6de1390", symbol: "LAIKA", coinGeckoId: "laikaverse", decimals: 18, price: 0.00000613}, // Addr: 0xf2c9c8e016a511eb0bf4823e340c3567d6de1390, Notional: 6.13e-14 + {chain: 4, addr: "000000000000000000000000a38898a4ae982cb0131104a6746f77fa0da57aaa", symbol: "QBIT", coinGeckoId: "project-quantum", decimals: 2, price: 0.00000173}, // Addr: 0xa38898a4ae982cb0131104a6746f77fa0da57aaa, Notional: 0.00001557 + {chain: 4, addr: "00000000000000000000000047bead2563dcbf3bf2c9407fea4dc236faba485a", symbol: "SXP", coinGeckoId: "swipe", decimals: 18, price: 0.208954}, // Addr: 0x47bead2563dcbf3bf2c9407fea4dc236faba485a, Notional: 686.3462389296772 + {chain: 4, addr: "000000000000000000000000c14a7747cfec02cfea62e72bb93538de6b2078e6", symbol: "GBL", coinGeckoId: "waweswaps-global-token", decimals: 18, price: 23.24}, // Addr: 0xc14a7747cfec02cfea62e72bb93538de6b2078e6, Notional: 6990.0715211432 + {chain: 4, addr: "000000000000000000000000842668e2b9a73240abf6532dedc89c9c3e050c98", symbol: "LIGHT", coinGeckoId: "light-defi", decimals: 9, price: 0.00014147}, // Addr: 0x842668e2b9a73240abf6532dedc89c9c3e050c98, Notional: 1.2754935342884701 + {chain: 4, addr: "000000000000000000000000c0366a104b429f0806bfa98d0008daa9555b2bed", symbol: "SMARS", coinGeckoId: "safemars-protocol", decimals: 9, price: 3.513e-9}, // Addr: 0xc0366a104b429f0806bfa98d0008daa9555b2bed, Notional: 0.0013560551079518264 + {chain: 4, addr: "0000000000000000000000002ab0e9e4ee70fff1fb9d67031e44f6410170d00e", symbol: "bXEN", coinGeckoId: "xen-crypto-bsc", decimals: 18, price: 6.59461e-10}, // Addr: 0x2ab0e9e4ee70fff1fb9d67031e44f6410170d00e, Notional: 1.4547074673303604 + {chain: 4, addr: "00000000000000000000000083d8ea5a4650b68cd2b57846783d86df940f7458", symbol: "HUDI", coinGeckoId: "hudi", decimals: 18, price: 0.04939293}, // Addr: 0x83d8ea5a4650b68cd2b57846783d86df940f7458, Notional: 1.3447261980354264 + {chain: 4, addr: "000000000000000000000000ac51066d7bec65dc4589368da368b212745d63e8", symbol: "ALICE", coinGeckoId: "my-neighbor-alice", decimals: 6, price: 0.906183}, // Addr: 0xac51066d7bec65dc4589368da368b212745d63e8, Notional: 0.5437097999999999 + {chain: 4, addr: "00000000000000000000000050d809c74e0b8e49e7b4c65bb3109abe3ff4c1c1", symbol: "CUB", coinGeckoId: "cub-finance", decimals: 18, price: 0.00164137}, // Addr: 0x50d809c74e0b8e49e7b4c65bb3109abe3ff4c1c1, Notional: 0.000020192150153700003 + {chain: 4, addr: "000000000000000000000000e4ca1f75eca6214393fce1c1b316c237664eaa8e", symbol: "ORN", coinGeckoId: "orion-protocol", decimals: 8, price: 1.2}, // Addr: 0xe4ca1f75eca6214393fce1c1b316c237664eaa8e, Notional: 663.683015016 + {chain: 4, addr: "0000000000000000000000009fb9a33956351cf4fa040f65a13b835a3c8764e3", symbol: "MULTI", coinGeckoId: "multichain", decimals: 18, price: 0.412999}, // Addr: 0x9fb9a33956351cf4fa040f65a13b835a3c8764e3, Notional: 123.674257887866 + {chain: 4, addr: "000000000000000000000000eca41281c24451168a37211f0bc2b8645af45092", symbol: "TPT", coinGeckoId: "token-pocket", decimals: 4, price: 0.00451982}, // Addr: 0xeca41281c24451168a37211f0bc2b8645af45092, Notional: 0.903964 + {chain: 4, addr: "000000000000000000000000ad29abb318791d579433d831ed122afeaf29dcfe", symbol: "FTM", coinGeckoId: "wrapped-fantom", decimals: 18, price: 0.372417}, // Addr: 0xad29abb318791d579433d831ed122afeaf29dcfe, Notional: 1268.9789928130092 + {chain: 4, addr: "000000000000000000000000a7bd657c5838472ddf85ff0797a2e6fce8fd4833", symbol: "ARBI", coinGeckoId: "arbipad", decimals: 18, price: 0.00009215}, // Addr: 0xa7bd657c5838472ddf85ff0797a2e6fce8fd4833, Notional: 618.9749052310094 + {chain: 4, addr: "00000000000000000000000031471e0791fcdbe82fbf4c44943255e923f1b794", symbol: "PVU", coinGeckoId: "plant-vs-undead-token", decimals: 18, price: 0.00142323}, // Addr: 0x31471e0791fcdbe82fbf4c44943255e923f1b794, Notional: 0.0000142323 + {chain: 4, addr: "000000000000000000000000250632378e573c6be1ac2f97fcdf00515d0aa91b", symbol: "BETH", coinGeckoId: "binance-eth", decimals: 18, price: 2823.93}, // Addr: 0x250632378e573c6be1ac2f97fcdf00515d0aa91b, Notional: 560.1597813953999 + {chain: 4, addr: "0000000000000000000000000b15ddf19d47e6a86a56148fb4afffc6929bcb89", symbol: "IDIA", coinGeckoId: "idia", decimals: 18, price: 0.02630288}, // Addr: 0x0b15ddf19d47e6a86a56148fb4afffc6929bcb89, Notional: 3489112.524145573 + {chain: 4, addr: "0000000000000000000000007b610012bdc4d6deba2c2d91684e408f40863429", symbol: "OSEA", coinGeckoId: "omnisea", decimals: 18, price: 0.00287671}, // Addr: 0x7b610012bdc4d6deba2c2d91684e408f40863429, Notional: 0.3836193317096699 + {chain: 4, addr: "00000000000000000000000012bb890508c125661e03b09ec06e404bc9289040", symbol: "RACA", coinGeckoId: "radio-caca", decimals: 18, price: 0.00014014}, // Addr: 0x12bb890508c125661e03b09ec06e404bc9289040, Notional: 249.87872901185196 + {chain: 4, addr: "00000000000000000000000063eaeb6e33e11252b10553900a9f38a9ed172871", symbol: "TUP", coinGeckoId: "tenup", decimals: 18, price: 0.01588829}, // Addr: 0x63eaeb6e33e11252b10553900a9f38a9ed172871, Notional: 0.789648013 + {chain: 4, addr: "0000000000000000000000008bd778b12b15416359a227f0533ce2d91844e1ed", symbol: "SAKE", coinGeckoId: "sake-token", decimals: 18, price: 0.00124021}, // Addr: 0x8bd778b12b15416359a227f0533ce2d91844e1ed, Notional: 2.412019853720916 + {chain: 4, addr: "000000000000000000000000482e6bd0a178f985818c5dfb9ac77918e8412fba", symbol: "ZEUM", coinGeckoId: "colizeum", decimals: 18, price: 0.00082485}, // Addr: 0x482e6bd0a178f985818c5dfb9ac77918e8412fba, Notional: 0.099675915703065 + {chain: 4, addr: "0000000000000000000000006bff4fb161347ad7de4a625ae5aa3a1ca7077819", symbol: "ADX", coinGeckoId: "adex", decimals: 18, price: 0.143585}, // Addr: 0x6bff4fb161347ad7de4a625ae5aa3a1ca7077819, Notional: 1.8666049999999998 + {chain: 4, addr: "000000000000000000000000bf0cf158e84ebacca1b7746e794d507073e5adfe", symbol: "BEPR", coinGeckoId: "blockchain-euro-project", decimals: 9, price: 0.00537584}, // Addr: 0xbf0cf158e84ebacca1b7746e794d507073e5adfe, Notional: 1180.230335372989 + {chain: 4, addr: "0000000000000000000000009b17baadf0f21f03e35249e0e59723f34994f806", symbol: "SURE", coinGeckoId: "insure", decimals: 18, price: 0.0033101}, // Addr: 0x9b17baadf0f21f03e35249e0e59723f34994f806, Notional: 0.99303 + {chain: 4, addr: "000000000000000000000000c748673057861a797275cd8a068abb95a902e8de", symbol: "BabyDoge", coinGeckoId: "baby-doge-coin", decimals: 9, price: 1.041e-9}, // Addr: 0xc748673057861a797275cd8a068abb95a902e8de, Notional: 11.909646544949378 + {chain: 4, addr: "0000000000000000000000003c1748d647e6a56b37b66fcd2b5626d0461d3aa0", symbol: "DNXC", coinGeckoId: "dinox", decimals: 18, price: 0.00125675}, // Addr: 0x3c1748d647e6a56b37b66fcd2b5626d0461d3aa0, Notional: 34.60792665538109 + {chain: 4, addr: "0000000000000000000000008595f9da7b868b1822194faed312235e43007b49", symbol: "BTT", coinGeckoId: "bittorrent-old", decimals: 18, price: 0.0008876}, // Addr: 0x8595f9da7b868b1822194faed312235e43007b49, Notional: 0.0008876 + {chain: 4, addr: "000000000000000000000000bf7c81fff98bbe61b40ed186e4afd6ddd01337fe", symbol: "EGLD", coinGeckoId: "wrapped-elrond", decimals: 18, price: 26.96}, // Addr: 0xbf7c81fff98bbe61b40ed186e4afd6ddd01337fe, Notional: 241.5368216032 + {chain: 4, addr: "0000000000000000000000002a48ece377b87ce941406657b9278b4459595e06", symbol: "LunaT", coinGeckoId: "lunatics", decimals: 9, price: 9.63362e-7}, // Addr: 0x2a48ece377b87ce941406657b9278b4459595e06, Notional: 1.3943309277535048 + {chain: 4, addr: "00000000000000000000000082443a77684a7da92fdcb639c8d2bd068a596245", symbol: "SWAP", coinGeckoId: "trustswap", decimals: 18, price: 0.098587}, // Addr: 0x82443a77684a7da92fdcb639c8d2bd068a596245, Notional: 0.295761 {chain: 4, addr: "0000000000000000000000004841181ae4079072ebe83a29b718388a387169e3", symbol: "SUI", coinGeckoId: "salmonation", decimals: 9, price: 0.00391361}, // Addr: 0x4841181ae4079072ebe83a29b718388a387169e3, Notional: 47.606875480271036 - {chain: 4, addr: "00000000000000000000000077edfae59a7948d66e9911a30cc787d2172343d4", symbol: "LBL", coinGeckoId: "label-foundation", decimals: 18, price: 0.0040129}, // Addr: 0x77edfae59a7948d66e9911a30cc787d2172343d4, Notional: 41.46880365065326 - {chain: 4, addr: "000000000000000000000000ca3f508b8e4dd382ee878a314789373d80a5190a", symbol: "BIFI", coinGeckoId: "beefy-finance", decimals: 18, price: 358.51}, // Addr: 0xca3f508b8e4dd382ee878a314789373d80a5190a, Notional: 4.3115595683 - {chain: 4, addr: "000000000000000000000000f952fc3ca7325cc27d15885d37117676d25bfda6", symbol: "EGG", coinGeckoId: "goose-finance", decimals: 18, price: 0.01927848}, // Addr: 0xf952fc3ca7325cc27d15885d37117676d25bfda6, Notional: 0.3855696 - {chain: 4, addr: "0000000000000000000000001d1cb8997570e73949930c01fe5796c88d7336c6", symbol: "PBR", coinGeckoId: "polkabridge", decimals: 18, price: 0.059687}, // Addr: 0x1d1cb8997570e73949930c01fe5796c88d7336c6, Notional: 0.059687 - {chain: 4, addr: "00000000000000000000000065c8743a5a266c3512eabd34e65ade42d4355ef1", symbol: "BPLC", coinGeckoId: "blackpearl-chain", decimals: 18, price: 5.013e-9}, // Addr: 0x65c8743a5a266c3512eabd34e65ade42d4355ef1, Notional: 1.3410062760597337 - {chain: 4, addr: "00000000000000000000000059f4f336bf3d0c49dbfba4a74ebd2a6ace40539a", symbol: "CAT", coinGeckoId: "catcoin-cash", decimals: 9, price: 6.02945e-10}, // Addr: 0x59f4f336bf3d0c49dbfba4a74ebd2a6ace40539a, Notional: 85.76085089506515 - {chain: 4, addr: "000000000000000000000000715d400f88c167884bbcc41c5fea407ed4d2f8a0", symbol: "AXS", coinGeckoId: "axie-infinity", decimals: 18, price: 6.64}, // Addr: 0x715d400f88c167884bbcc41c5fea407ed4d2f8a0, Notional: 673.2977784576 - {chain: 4, addr: "000000000000000000000000e7c9c6bc87b86f9e5b57072f907ee6460b593924", symbol: "TOWER", coinGeckoId: "tower", decimals: 18, price: 0.00774682}, // Addr: 0xe7c9c6bc87b86f9e5b57072f907ee6460b593924, Notional: 0.91412476 - {chain: 4, addr: "000000000000000000000000f7844cb890f4c339c497aeab599abdc3c874b67a", symbol: "NFTART", coinGeckoId: "nft-art-finance", decimals: 9, price: 4.8965e-11}, // Addr: 0xf7844cb890f4c339c497aeab599abdc3c874b67a, Notional: 3.1291345212750004e-11 - {chain: 4, addr: "000000000000000000000000039cb485212f996a9dbb85a9a75d898f94d38da6", symbol: "DEXE", coinGeckoId: "dexe", decimals: 18, price: 11.6}, // Addr: 0x039cb485212f996a9dbb85a9a75d898f94d38da6, Notional: 24.36 - {chain: 4, addr: "0000000000000000000000006e2a5ea25b161befa6a8444c71ae3a89c39933c6", symbol: "B2M", coinGeckoId: "bit2me", decimals: 18, price: 0.00865075}, // Addr: 0x6e2a5ea25b161befa6a8444c71ae3a89c39933c6, Notional: 77.85675 - {chain: 4, addr: "00000000000000000000000046d502fac9aea7c5bc7b13c8ec9d02378c33d36f", symbol: "WSPP", coinGeckoId: "wolfsafepoorpeople", decimals: 0, price: 1.5328e-11}, // Addr: 0x46d502fac9aea7c5bc7b13c8ec9d02378c33d36f, Notional: 23.586668277266302 - {chain: 4, addr: "00000000000000000000000068784ffaa6ff05e3e04575df77960dc1d9f42b4a", symbol: "ABR", coinGeckoId: "allbridge", decimals: 18, price: 0.249807}, // Addr: 0x68784ffaa6ff05e3e04575df77960dc1d9f42b4a, Notional: 5.63292316608999 + {chain: 4, addr: "00000000000000000000000077edfae59a7948d66e9911a30cc787d2172343d4", symbol: "LBL", coinGeckoId: "label-foundation", decimals: 18, price: 0.00257025}, // Addr: 0x77edfae59a7948d66e9911a30cc787d2172343d4, Notional: 39.411890081510016 + {chain: 4, addr: "000000000000000000000000ca3f508b8e4dd382ee878a314789373d80a5190a", symbol: "BIFI", coinGeckoId: "beefy-finance", decimals: 18, price: 274.44}, // Addr: 0xca3f508b8e4dd382ee878a314789373d80a5190a, Notional: 3.3005060052 + {chain: 4, addr: "000000000000000000000000f952fc3ca7325cc27d15885d37117676d25bfda6", symbol: "EGG", coinGeckoId: "goose-finance", decimals: 18, price: 0.0114927}, // Addr: 0xf952fc3ca7325cc27d15885d37117676d25bfda6, Notional: 0.229854 + {chain: 4, addr: "0000000000000000000000001d1cb8997570e73949930c01fe5796c88d7336c6", symbol: "PBR", coinGeckoId: "polkabridge", decimals: 18, price: 0.03219491}, // Addr: 0x1d1cb8997570e73949930c01fe5796c88d7336c6, Notional: 0.03219491 + {chain: 4, addr: "00000000000000000000000065c8743a5a266c3512eabd34e65ade42d4355ef1", symbol: "BPLC", coinGeckoId: "blackpearl-chain", decimals: 18, price: 1.891e-9}, // Addr: 0x65c8743a5a266c3512eabd34e65ade42d4355ef1, Notional: 0.5058533548830952 + {chain: 4, addr: "00000000000000000000000059f4f336bf3d0c49dbfba4a74ebd2a6ace40539a", symbol: "CAT", coinGeckoId: "catcoin-cash", decimals: 9, price: 2.87289e-10}, // Addr: 0x59f4f336bf3d0c49dbfba4a74ebd2a6ace40539a, Notional: 40.86301253479566 + {chain: 4, addr: "000000000000000000000000715d400f88c167884bbcc41c5fea407ed4d2f8a0", symbol: "AXS", coinGeckoId: "axie-infinity", decimals: 18, price: 4.72}, // Addr: 0x715d400f88c167884bbcc41c5fea407ed4d2f8a0, Notional: 478.60926420479996 + {chain: 4, addr: "000000000000000000000000e7c9c6bc87b86f9e5b57072f907ee6460b593924", symbol: "TOWER", coinGeckoId: "tower", decimals: 18, price: 0.00208071}, // Addr: 0xe7c9c6bc87b86f9e5b57072f907ee6460b593924, Notional: 3.133604283148331 + {chain: 4, addr: "000000000000000000000000f7844cb890f4c339c497aeab599abdc3c874b67a", symbol: "NFTART", coinGeckoId: "nft-art-finance", decimals: 9, price: 1.7308e-11}, // Addr: 0xf7844cb890f4c339c497aeab599abdc3c874b67a, Notional: 1.1060769997799999e-11 + {chain: 4, addr: "000000000000000000000000039cb485212f996a9dbb85a9a75d898f94d38da6", symbol: "DEXE", coinGeckoId: "dexe", decimals: 18, price: 7.58}, // Addr: 0x039cb485212f996a9dbb85a9a75d898f94d38da6, Notional: 1141.245752427 + {chain: 4, addr: "0000000000000000000000006e2a5ea25b161befa6a8444c71ae3a89c39933c6", symbol: "B2M", coinGeckoId: "bit2me", decimals: 18, price: 0.00971452}, // Addr: 0x6e2a5ea25b161befa6a8444c71ae3a89c39933c6, Notional: 87.43068000000001 + {chain: 4, addr: "00000000000000000000000046d502fac9aea7c5bc7b13c8ec9d02378c33d36f", symbol: "WSPP", coinGeckoId: "wolfsafepoorpeople", decimals: 0, price: 1.1602e-11}, // Addr: 0x46d502fac9aea7c5bc7b13c8ec9d02378c33d36f, Notional: 17.853113606004936 + {chain: 4, addr: "00000000000000000000000068784ffaa6ff05e3e04575df77960dc1d9f42b4a", symbol: "ABR", coinGeckoId: "allbridge", decimals: 18, price: 0.123363}, // Addr: 0x68784ffaa6ff05e3e04575df77960dc1d9f42b4a, Notional: 2.78172469361691 {chain: 4, addr: "000000000000000000000000a67b8e40111a0edd30c3210b77aadb86ad234c43", symbol: "Bandex", coinGeckoId: "banana-index", decimals: 9, price: 1.2007e-8}, // Addr: 0xa67b8e40111a0edd30c3210b77aadb86ad234c43, Notional: 4.967892563718809 {chain: 4, addr: "000000000000000000000000d9907fcda91ac644f70477b8fc1607ad15b2d7a8", symbol: "multiBTC", coinGeckoId: "multibtc", decimals: 8, price: 2769.16}, // Addr: 0xd9907fcda91ac644f70477b8fc1607ad15b2d7a8, Notional: 0.0553832 - {chain: 4, addr: "000000000000000000000000fa40d8fc324bcdd6bbae0e086de886c571c225d4", symbol: "WZRD", coinGeckoId: "wizardia", decimals: 18, price: 0.00416713}, // Addr: 0xfa40d8fc324bcdd6bbae0e086de886c571c225d4, Notional: 12792.521761169644 - {chain: 4, addr: "000000000000000000000000947950bcc74888a40ffa2593c5798f11fc9124c4", symbol: "SUSHI", coinGeckoId: "sushi", decimals: 18, price: 0.94556}, // Addr: 0x947950bcc74888a40ffa2593c5798f11fc9124c4, Notional: 4.36833661957 - {chain: 4, addr: "000000000000000000000000c27a719105a987b4c34116223cae8bd8f4b5def4", symbol: "ACE", coinGeckoId: "endurance", decimals: 18, price: 4.69}, // Addr: 0xc27a719105a987b4c34116223cae8bd8f4b5def4, Notional: 284667.57163830166 - {chain: 4, addr: "0000000000000000000000002ff0b946a6782190c4fe5d4971cfe79f0b6e4df2", symbol: "MYST", coinGeckoId: "mysterium", decimals: 18, price: 0.160526}, // Addr: 0x2ff0b946a6782190c4fe5d4971cfe79f0b6e4df2, Notional: 0.16057006920278 - {chain: 4, addr: "00000000000000000000000098f8669f6481ebb341b522fcd3663f79a3d1a6a7", symbol: "NEST", coinGeckoId: "nest", decimals: 18, price: 0.00272189}, // Addr: 0x98f8669f6481ebb341b522fcd3663f79a3d1a6a7, Notional: 0.19325419125206938 - {chain: 4, addr: "000000000000000000000000d32d01a43c869edcd1117c640fbdcfcfd97d9d65", symbol: "NMX", coinGeckoId: "nominex", decimals: 18, price: 0.00974312}, // Addr: 0xd32d01a43c869edcd1117c640fbdcfcfd97d9d65, Notional: 0.01944292452426 - {chain: 4, addr: "000000000000000000000000bfbee3dac982148ac793161f7362344925506903", symbol: "CATZ", coinGeckoId: "catzcoin", decimals: 18, price: 0.00000194}, // Addr: 0xbfbee3dac982148ac793161f7362344925506903, Notional: 0.23495728000000002 - {chain: 4, addr: "0000000000000000000000009f5c37e0fd9bf729b1f0a6f39ce57be5e9bfd435", symbol: " BTCPAY", coinGeckoId: "bitcoin-pay", decimals: 18, price: 0.01268016}, // Addr: 0x9f5c37e0fd9bf729b1f0a6f39ce57be5e9bfd435, Notional: 0.0000543095056848 - {chain: 4, addr: "000000000000000000000000e4e11e02aa14c7f24db749421986eaec1369e8c9", symbol: "MNTC", coinGeckoId: "minativerse", decimals: 18, price: 1.8}, // Addr: 0xe4e11e02aa14c7f24db749421986eaec1369e8c9, Notional: 3.618 - {chain: 4, addr: "00000000000000000000000084f4f7cdb4574c9556a494dab18ffc1d1d22316c", symbol: "KINGSHIB", coinGeckoId: "king-shiba", decimals: 9, price: 0.00318629}, // Addr: 0x84f4f7cdb4574c9556a494dab18ffc1d1d22316c, Notional: 3.487713034382355 - {chain: 4, addr: "0000000000000000000000007559c49c3aec50e763a486bb232fa8d0d76078e4", symbol: "ATR", coinGeckoId: "artrade", decimals: 9, price: 0.02262716}, // Addr: 0x7559c49c3aec50e763a486bb232fa8d0d76078e4, Notional: 3942922.3572581736 - {chain: 4, addr: "000000000000000000000000aef0d72a118ce24fee3cd1d43d383897d05b4e99", symbol: "WIN", coinGeckoId: "winklink-bsc", decimals: 18, price: 0.0001144}, // Addr: 0xaef0d72a118ce24fee3cd1d43d383897d05b4e99, Notional: 22.22312894364191 - {chain: 4, addr: "0000000000000000000000001cb9ca00538265a22e56b758026948608ba5d86f", symbol: "LSR", coinGeckoId: "lasereyes", decimals: 8, price: 0.00100137}, // Addr: 0x1cb9ca00538265a22e56b758026948608ba5d86f, Notional: 0.15621371999999997 - {chain: 4, addr: "000000000000000000000000a719b8ab7ea7af0ddb4358719a34631bb79d15dc", symbol: "FRM", coinGeckoId: "ferrum-network", decimals: 18, price: 0.052099}, // Addr: 0xa719b8ab7ea7af0ddb4358719a34631bb79d15dc, Notional: 5.182848571106249 - {chain: 4, addr: "0000000000000000000000007ddc52c4de30e94be3a6a0a2b259b2850f421989", symbol: "GMT", coinGeckoId: "gmt-token", decimals: 18, price: 0.324272}, // Addr: 0x7ddc52c4de30e94be3a6a0a2b259b2850f421989, Notional: 81.068 - {chain: 4, addr: "000000000000000000000000766afcf83fd5eaf884b3d529b432ca27a6d84617", symbol: "BLID", coinGeckoId: "bolide", decimals: 18, price: 0.00519762}, // Addr: 0x766afcf83fd5eaf884b3d529b432ca27a6d84617, Notional: 168.04084827839128 - {chain: 4, addr: "000000000000000000000000245d9f531757f83064ad808b4c9b220c703a4934", symbol: "GODE", coinGeckoId: "gode-chain", decimals: 6, price: 0.0005844}, // Addr: 0x245d9f531757f83064ad808b4c9b220c703a4934, Notional: 0.00032142000000000005 - {chain: 4, addr: "000000000000000000000000bdeae1ca48894a1759a8374d63925f21f2ee2639", symbol: "EDU", coinGeckoId: "edu-coin", decimals: 18, price: 0.504257}, // Addr: 0xbdeae1ca48894a1759a8374d63925f21f2ee2639, Notional: 25.217892569999997 - {chain: 4, addr: "000000000000000000000000fd7b3a77848f1c2d67e05e54d78d174a0c850335", symbol: "ONT", coinGeckoId: "binance-peg-ontology", decimals: 18, price: 0.337965}, // Addr: 0xfd7b3a77848f1c2d67e05e54d78d174a0c850335, Notional: 0.0337965 - {chain: 4, addr: "000000000000000000000000317eb4ad9cfac6232f0046831322e895507bcbeb", symbol: "TDX", coinGeckoId: "tidex-token", decimals: 18, price: 0.02088764}, // Addr: 0x317eb4ad9cfac6232f0046831322e895507bcbeb, Notional: 19.066172536923876 - {chain: 4, addr: "0000000000000000000000004f39c3319188a723003670c3f9b9e7ef991e52f3", symbol: "FIGHT", coinGeckoId: "crypto-fight-club", decimals: 18, price: 0.00021965}, // Addr: 0x4f39c3319188a723003670c3f9b9e7ef991e52f3, Notional: 0.0006589499999999999 - {chain: 4, addr: "000000000000000000000000bd100d061e120b2c67a24453cf6368e63f1be056", symbol: "iDYP", coinGeckoId: "idefiyieldprotocol", decimals: 18, price: 0.00171233}, // Addr: 0xbd100d061e120b2c67a24453cf6368e63f1be056, Notional: 4.8151404532 - {chain: 4, addr: "0000000000000000000000007269d98af4aa705e0b1a5d8512fadb4d45817d5a", symbol: "SHI", coinGeckoId: "shirtum", decimals: 18, price: 0.00199368}, // Addr: 0x7269d98af4aa705e0b1a5d8512fadb4d45817d5a, Notional: 0.199368 - {chain: 4, addr: "000000000000000000000000734c5f3f8f6ad9697b26ecc6388678aafd3db3b2", symbol: "METAMUSK", coinGeckoId: "musk-metaverse", decimals: 18, price: 9.99788e-10}, // Addr: 0x734c5f3f8f6ad9697b26ecc6388678aafd3db3b2, Notional: 0.000032517752912474765 - {chain: 4, addr: "0000000000000000000000008ff795a6f4d97e7887c79bea79aba5cc76444adf", symbol: "BCH", coinGeckoId: "binance-peg-bitcoin-cash", decimals: 18, price: 406.27}, // Addr: 0x8ff795a6f4d97e7887c79bea79aba5cc76444adf, Notional: 0.001503199 - {chain: 4, addr: "000000000000000000000000d06716e1ff2e492cc5034c2e81805562dd3b45fa", symbol: "MGP", coinGeckoId: "magpie", decimals: 18, price: 0.078155}, // Addr: 0xd06716e1ff2e492cc5034c2e81805562dd3b45fa, Notional: 6480287.126464398 - {chain: 4, addr: "000000000000000000000000965f527d9159dce6288a2219db51fc6eef120dd1", symbol: "BSW", coinGeckoId: "biswap", decimals: 18, price: 0.072956}, // Addr: 0x965f527d9159dce6288a2219db51fc6eef120dd1, Notional: 0.145912 - {chain: 4, addr: "0000000000000000000000002598c30330d5771ae9f983979209486ae26de875", symbol: "AI", coinGeckoId: "any-inu", decimals: 18, price: 0.00002101}, // Addr: 0x2598c30330d5771ae9f983979209486ae26de875, Notional: 48.47590110473155 - {chain: 4, addr: "000000000000000000000000111111111117dc0aa78b770fa6a738034120c302", symbol: "1INCH", coinGeckoId: "1inch", decimals: 18, price: 0.382153}, // Addr: 0x111111111117dc0aa78b770fa6a738034120c302, Notional: 19.87577753 - {chain: 4, addr: "000000000000000000000000cc42724c6683b7e57334c4e856f4c9965ed682bd", symbol: "MATIC", coinGeckoId: "matic-network", decimals: 18, price: 0.671855}, // Addr: 0xcc42724c6683b7e57334c4e856f4c9965ed682bd, Notional: 4820.247947212658 - {chain: 4, addr: "00000000000000000000000030842a9c941d9de3af582c41ad12b11d776ba69e", symbol: "GPT", coinGeckoId: "qna3-ai", decimals: 18, price: 0.34688}, // Addr: 0x30842a9c941d9de3af582c41ad12b11d776ba69e, Notional: 682031.7995212697 - {chain: 4, addr: "00000000000000000000000023e8a70534308a4aaf76fb8c32ec13d17a3bd89e", symbol: "lUSD", coinGeckoId: "lusd", decimals: 18, price: 0.00000191}, // Addr: 0x23e8a70534308a4aaf76fb8c32ec13d17a3bd89e, Notional: 13.521360491204442 - {chain: 4, addr: "000000000000000000000000524df384bffb18c0c8f3f43d012011f8f9795579", symbol: "YAY", coinGeckoId: "yay-games", decimals: 18, price: 0.00370006}, // Addr: 0x524df384bffb18c0c8f3f43d012011f8f9795579, Notional: 0.037000599999999995 - {chain: 4, addr: "0000000000000000000000008263cd1601fe73c066bf49cc09841f35348e3be0", symbol: "ALU", coinGeckoId: "altura", decimals: 18, price: 0.0408797}, // Addr: 0x8263cd1601fe73c066bf49cc09841f35348e3be0, Notional: 654.10336202533 - {chain: 4, addr: "0000000000000000000000006d1dc3928604b00180bb570bdae94b9698d33b79", symbol: "UCT", coinGeckoId: "unitedcrowd", decimals: 18, price: 0.00252146}, // Addr: 0x6d1dc3928604b00180bb570bdae94b9698d33b79, Notional: 0.25214600000000004 - {chain: 4, addr: "000000000000000000000000fb6115445bff7b52feb98650c87f44907e58f802", symbol: "AAVE", coinGeckoId: "aave", decimals: 18, price: 80.74}, // Addr: 0xfb6115445bff7b52feb98650c87f44907e58f802, Notional: 46.9466758926 - {chain: 4, addr: "000000000000000000000000ffba7529ac181c2ee1844548e6d7061c9a597df4", symbol: "CAPS", coinGeckoId: "coin-capsule", decimals: 18, price: 0.01741599}, // Addr: 0xffba7529ac181c2ee1844548e6d7061c9a597df4, Notional: 0.26123985 - {chain: 4, addr: "000000000000000000000000d3b71117e6c1558c1553305b44988cd944e97300", symbol: "YEL", coinGeckoId: "yel-finance", decimals: 18, price: 0.0024223}, // Addr: 0xd3b71117e6c1558c1553305b44988cd944e97300, Notional: 0.11483296769651 - {chain: 4, addr: "000000000000000000000000ba2ae424d960c26247dd6c32edc70b295c744c43", symbol: "DOGE", coinGeckoId: "binance-peg-dogecoin", decimals: 8, price: 0.123857}, // Addr: 0xba2ae424d960c26247dd6c32edc70b295c744c43, Notional: 23352.618199383607 - {chain: 4, addr: "000000000000000000000000e2e7329499e8ddb1f2b04ee4b35a8d7f6881e4ea", symbol: "$ANRX", coinGeckoId: "anrkey-x", decimals: 18, price: 0.00021291}, // Addr: 0xe2e7329499e8ddb1f2b04ee4b35a8d7f6881e4ea, Notional: 53.334165780899994 - {chain: 4, addr: "000000000000000000000000b46584e0efde3092e04010a13f2eae62adb3b9f0", symbol: "PEPE", coinGeckoId: "pepe-coin-bsc-c45e8b31-8ae1-43f4-bd34-e75551d97285", decimals: 18, price: 2.00064e-13}, // Addr: 0xb46584e0efde3092e04010a13f2eae62adb3b9f0, Notional: 0.00040072823461293405 - {chain: 4, addr: "000000000000000000000000d74b782e05aa25c50e7330af541d46e18f36661c", symbol: "QUACK", coinGeckoId: "richquack", decimals: 9, price: 9.85143e-10}, // Addr: 0xd74b782e05aa25c50e7330af541d46e18f36661c, Notional: 119.55959731008161 - {chain: 4, addr: "000000000000000000000000fe56d5892bdffc7bf58f2e84be1b2c32d21c308b", symbol: "KNC", coinGeckoId: "kyber-network-crystal", decimals: 18, price: 0.545884}, // Addr: 0xfe56d5892bdffc7bf58f2e84be1b2c32d21c308b, Notional: 2.21664638112524 + {chain: 4, addr: "000000000000000000000000fa40d8fc324bcdd6bbae0e086de886c571c225d4", symbol: "WZRD", coinGeckoId: "wizardia", decimals: 18, price: 0.00188182}, // Addr: 0xfa40d8fc324bcdd6bbae0e086de886c571c225d4, Notional: 5776.931197395872 + {chain: 4, addr: "000000000000000000000000947950bcc74888a40ffa2593c5798f11fc9124c4", symbol: "SUSHI", coinGeckoId: "sushi", decimals: 18, price: 0.592701}, // Addr: 0x947950bcc74888a40ffa2593c5798f11fc9124c4, Notional: 2.73818423236575 + {chain: 4, addr: "000000000000000000000000c27a719105a987b4c34116223cae8bd8f4b5def4", symbol: "ACE", coinGeckoId: "endurance", decimals: 18, price: 2.31}, // Addr: 0xc27a719105a987b4c34116223cae8bd8f4b5def4, Notional: 9829.9771020066 + {chain: 4, addr: "0000000000000000000000002ff0b946a6782190c4fe5d4971cfe79f0b6e4df2", symbol: "MYST", coinGeckoId: "mysterium", decimals: 18, price: 0.186688}, // Addr: 0x2ff0b946a6782190c4fe5d4971cfe79f0b6e4df2, Notional: 0.18673925145664 + {chain: 4, addr: "00000000000000000000000098f8669f6481ebb341b522fcd3663f79a3d1a6a7", symbol: "NEST", coinGeckoId: "nest", decimals: 18, price: 0.00074129}, // Addr: 0x98f8669f6481ebb341b522fcd3663f79a3d1a6a7, Notional: 0.0526315903409934 + {chain: 4, addr: "000000000000000000000000d32d01a43c869edcd1117c640fbdcfcfd97d9d65", symbol: "NMX", coinGeckoId: "nominex", decimals: 18, price: 0.00763108}, // Addr: 0xd32d01a43c869edcd1117c640fbdcfcfd97d9d65, Notional: 0.015228234126090002 + {chain: 4, addr: "000000000000000000000000bfbee3dac982148ac793161f7362344925506903", symbol: "CATZ", coinGeckoId: "catzcoin", decimals: 18, price: 0.00000136}, // Addr: 0xbfbee3dac982148ac793161f7362344925506903, Notional: 0.16471232 + {chain: 4, addr: "0000000000000000000000009f5c37e0fd9bf729b1f0a6f39ce57be5e9bfd435", symbol: " BTCPAY", coinGeckoId: "bitcoin-pay", decimals: 18, price: 0.0119729}, // Addr: 0x9f5c37e0fd9bf729b1f0a6f39ce57be5e9bfd435, Notional: 0.000051280289887 + {chain: 4, addr: "000000000000000000000000e4e11e02aa14c7f24db749421986eaec1369e8c9", symbol: "MNTC", coinGeckoId: "minativerse", decimals: 18, price: 1.11}, // Addr: 0xe4e11e02aa14c7f24db749421986eaec1369e8c9, Notional: 2.2311 + {chain: 4, addr: "00000000000000000000000084f4f7cdb4574c9556a494dab18ffc1d1d22316c", symbol: "KINGSHIB", coinGeckoId: "king-shiba", decimals: 9, price: 0.002691}, // Addr: 0x84f4f7cdb4574c9556a494dab18ffc1d1d22316c, Notional: 2.94556860032292 + {chain: 4, addr: "0000000000000000000000007559c49c3aec50e763a486bb232fa8d0d76078e4", symbol: "ATR", coinGeckoId: "artrade", decimals: 9, price: 0.00646869}, // Addr: 0x7559c49c3aec50e763a486bb232fa8d0d76078e4, Notional: 1174672.8253205083 + {chain: 4, addr: "000000000000000000000000aef0d72a118ce24fee3cd1d43d383897d05b4e99", symbol: "WIN", coinGeckoId: "winklink-bsc", decimals: 18, price: 0.00008143}, // Addr: 0xaef0d72a118ce24fee3cd1d43d383897d05b4e99, Notional: 15.818438722733923 + {chain: 4, addr: "0000000000000000000000001cb9ca00538265a22e56b758026948608ba5d86f", symbol: "LSR", coinGeckoId: "lasereyes", decimals: 8, price: 0.00091866}, // Addr: 0x1cb9ca00538265a22e56b758026948608ba5d86f, Notional: 0.14331096 + {chain: 4, addr: "000000000000000000000000a719b8ab7ea7af0ddb4358719a34631bb79d15dc", symbol: "FRM", coinGeckoId: "ferrum-network", decimals: 18, price: 0.01903422}, // Addr: 0xa719b8ab7ea7af0ddb4358719a34631bb79d15dc, Notional: 1.893538838156625 + {chain: 4, addr: "0000000000000000000000007ddc52c4de30e94be3a6a0a2b259b2850f421989", symbol: "GMT", coinGeckoId: "gmt-token", decimals: 18, price: 0.309462}, // Addr: 0x7ddc52c4de30e94be3a6a0a2b259b2850f421989, Notional: 77.3655 + {chain: 4, addr: "000000000000000000000000766afcf83fd5eaf884b3d529b432ca27a6d84617", symbol: "BLID", coinGeckoId: "bolide", decimals: 18, price: 0.00144563}, // Addr: 0x766afcf83fd5eaf884b3d529b432ca27a6d84617, Notional: 46.73771678127505 + {chain: 4, addr: "000000000000000000000000245d9f531757f83064ad808b4c9b220c703a4934", symbol: "GODE", coinGeckoId: "gode-chain", decimals: 6, price: 0.00108319}, // Addr: 0x245d9f531757f83064ad808b4c9b220c703a4934, Notional: 0.0005957545 + {chain: 4, addr: "000000000000000000000000bdeae1ca48894a1759a8374d63925f21f2ee2639", symbol: "EDU", coinGeckoId: "edu-coin", decimals: 18, price: 0.502448}, // Addr: 0xbdeae1ca48894a1759a8374d63925f21f2ee2639, Notional: 25.12742448 + {chain: 4, addr: "000000000000000000000000fd7b3a77848f1c2d67e05e54d78d174a0c850335", symbol: "ONT", coinGeckoId: "binance-peg-ontology", decimals: 18, price: 0.168844}, // Addr: 0xfd7b3a77848f1c2d67e05e54d78d174a0c850335, Notional: 0.0168844 + {chain: 4, addr: "000000000000000000000000317eb4ad9cfac6232f0046831322e895507bcbeb", symbol: "TDX", coinGeckoId: "tidex-token", decimals: 18, price: 0.03971932}, // Addr: 0x317eb4ad9cfac6232f0046831322e895507bcbeb, Notional: 36.25567120887239 + {chain: 4, addr: "0000000000000000000000004f39c3319188a723003670c3f9b9e7ef991e52f3", symbol: "FIGHT", coinGeckoId: "crypto-fight-club", decimals: 18, price: 0.00019637}, // Addr: 0x4f39c3319188a723003670c3f9b9e7ef991e52f3, Notional: 0.00058911 + {chain: 4, addr: "000000000000000000000000bd100d061e120b2c67a24453cf6368e63f1be056", symbol: "iDYP", coinGeckoId: "idefiyieldprotocol", decimals: 18, price: 0.00059466}, // Addr: 0xbd100d061e120b2c67a24453cf6368e63f1be056, Notional: 1.6722077064 + {chain: 4, addr: "0000000000000000000000007269d98af4aa705e0b1a5d8512fadb4d45817d5a", symbol: "SHI", coinGeckoId: "shirtum", decimals: 18, price: 0.00147995}, // Addr: 0x7269d98af4aa705e0b1a5d8512fadb4d45817d5a, Notional: 0.14799500000000002 + {chain: 4, addr: "000000000000000000000000734c5f3f8f6ad9697b26ecc6388678aafd3db3b2", symbol: "METAMUSK", coinGeckoId: "musk-metaverse", decimals: 18, price: 2.87947e-10}, // Addr: 0x734c5f3f8f6ad9697b26ecc6388678aafd3db3b2, Notional: 0.000009365374857358132 + {chain: 4, addr: "0000000000000000000000008ff795a6f4d97e7887c79bea79aba5cc76444adf", symbol: "BCH", coinGeckoId: "binance-peg-bitcoin-cash", decimals: 18, price: 341.08}, // Addr: 0x8ff795a6f4d97e7887c79bea79aba5cc76444adf, Notional: 0.001261996 + {chain: 4, addr: "000000000000000000000000d06716e1ff2e492cc5034c2e81805562dd3b45fa", symbol: "MGP", coinGeckoId: "magpie", decimals: 18, price: 0.114791}, // Addr: 0xd06716e1ff2e492cc5034c2e81805562dd3b45fa, Notional: 9307909.757167902 + {chain: 4, addr: "000000000000000000000000965f527d9159dce6288a2219db51fc6eef120dd1", symbol: "BSW", coinGeckoId: "biswap", decimals: 18, price: 0.04819045}, // Addr: 0x965f527d9159dce6288a2219db51fc6eef120dd1, Notional: 0.0963809 + {chain: 4, addr: "0000000000000000000000002598c30330d5771ae9f983979209486ae26de875", symbol: "AI", coinGeckoId: "any-inu", decimals: 18, price: 0.00000776}, // Addr: 0x2598c30330d5771ae9f983979209486ae26de875, Notional: 17.90447370645963 + {chain: 4, addr: "000000000000000000000000111111111117dc0aa78b770fa6a738034120c302", symbol: "1INCH", coinGeckoId: "1inch", decimals: 18, price: 0.257911}, // Addr: 0x111111111117dc0aa78b770fa6a738034120c302, Notional: 20.126332229386332 + {chain: 4, addr: "000000000000000000000000cc42724c6683b7e57334c4e856f4c9965ed682bd", symbol: "MATIC", coinGeckoId: "matic-network", decimals: 18, price: 0.423753}, // Addr: 0xcc42724c6683b7e57334c4e856f4c9965ed682bd, Notional: 3053.648610606461 + {chain: 4, addr: "00000000000000000000000030842a9c941d9de3af582c41ad12b11d776ba69e", symbol: "GPT", coinGeckoId: "qna3-ai", decimals: 18, price: 0.0829}, // Addr: 0x30842a9c941d9de3af582c41ad12b11d776ba69e, Notional: 161299.70764868343 + {chain: 4, addr: "00000000000000000000000023e8a70534308a4aaf76fb8c32ec13d17a3bd89e", symbol: "lUSD", coinGeckoId: "lusd", decimals: 18, price: 0.00000281}, // Addr: 0x23e8a70534308a4aaf76fb8c32ec13d17a3bd89e, Notional: 19.89268218863062 + {chain: 4, addr: "000000000000000000000000524df384bffb18c0c8f3f43d012011f8f9795579", symbol: "YAY", coinGeckoId: "yay-games", decimals: 18, price: 0.00156736}, // Addr: 0x524df384bffb18c0c8f3f43d012011f8f9795579, Notional: 0.0156736 + {chain: 4, addr: "0000000000000000000000005e7f472b9481c80101b22d0ba4ef4253aa61dabc", symbol: "MUDOL2", coinGeckoId: "hero-blaze-three-kingdoms", decimals: 18, price: 0.0052131}, // Addr: 0x5e7f472b9481c80101b22d0ba4ef4253aa61dabc, Notional: 72725.80164301519 + {chain: 4, addr: "0000000000000000000000008263cd1601fe73c066bf49cc09841f35348e3be0", symbol: "ALU", coinGeckoId: "altura", decimals: 18, price: 0.01863978}, // Addr: 0x8263cd1601fe73c066bf49cc09841f35348e3be0, Notional: 298.249320944442 + {chain: 4, addr: "0000000000000000000000006d1dc3928604b00180bb570bdae94b9698d33b79", symbol: "UCT", coinGeckoId: "unitedcrowd", decimals: 18, price: 0.00234334}, // Addr: 0x6d1dc3928604b00180bb570bdae94b9698d33b79, Notional: 0.23433400000000001 + {chain: 4, addr: "000000000000000000000000fb6115445bff7b52feb98650c87f44907e58f802", symbol: "AAVE", coinGeckoId: "aave", decimals: 18, price: 106.13}, // Addr: 0xfb6115445bff7b52feb98650c87f44907e58f802, Notional: 69.35837476399999 + {chain: 4, addr: "000000000000000000000000ffba7529ac181c2ee1844548e6d7061c9a597df4", symbol: "CAPS", coinGeckoId: "coin-capsule", decimals: 18, price: 0.00568083}, // Addr: 0xffba7529ac181c2ee1844548e6d7061c9a597df4, Notional: 0.08521245000000001 + {chain: 4, addr: "000000000000000000000000d3b71117e6c1558c1553305b44988cd944e97300", symbol: "YEL", coinGeckoId: "yel-finance", decimals: 18, price: 0.00252244}, // Addr: 0xd3b71117e6c1558c1553305b44988cd944e97300, Notional: 0.11958026298822799 + {chain: 4, addr: "000000000000000000000000ba2ae424d960c26247dd6c32edc70b295c744c43", symbol: "DOGE", coinGeckoId: "binance-peg-dogecoin", decimals: 8, price: 0.102413}, // Addr: 0xba2ae424d960c26247dd6c32edc70b295c744c43, Notional: 21054.87614152749 + {chain: 4, addr: "000000000000000000000000e2e7329499e8ddb1f2b04ee4b35a8d7f6881e4ea", symbol: "$ANRX", coinGeckoId: "anrkey-x", decimals: 18, price: 0.00009438}, // Addr: 0xe2e7329499e8ddb1f2b04ee4b35a8d7f6881e4ea, Notional: 23.6422834362 + {chain: 4, addr: "000000000000000000000000b46584e0efde3092e04010a13f2eae62adb3b9f0", symbol: "PEPE", coinGeckoId: "pepe-coin-bsc-c45e8b31-8ae1-43f4-bd34-e75551d97285", decimals: 18, price: 2.00064e-13}, // Addr: 0xb46584e0efde3092e04010a13f2eae62adb3b9f0, Notional: 0.03208947130223987 + {chain: 4, addr: "000000000000000000000000d74b782e05aa25c50e7330af541d46e18f36661c", symbol: "QUACK", coinGeckoId: "richquack", decimals: 9, price: 7.09026e-10}, // Addr: 0xd74b782e05aa25c50e7330af541d46e18f36661c, Notional: 86.04929745466183 + {chain: 4, addr: "000000000000000000000000fe56d5892bdffc7bf58f2e84be1b2c32d21c308b", symbol: "KNC", coinGeckoId: "kyber-network-crystal", decimals: 18, price: 0.427013}, // Addr: 0xfe56d5892bdffc7bf58f2e84be1b2c32d21c308b, Notional: 1.73395230697993 {chain: 4, addr: "0000000000000000000000002f25d402829ca4085b8ea4d3bc68bf203f5a9fab", symbol: "Eagon", coinGeckoId: "eagonswap-token", decimals: 18, price: 0.00007782}, // Addr: 0x2f25d402829ca4085b8ea4d3bc68bf203f5a9fab, Notional: 1.6413002011647486 - {chain: 4, addr: "000000000000000000000000c19fe21b4ef356f2f65894392dde4252aa083605", symbol: "WSO", coinGeckoId: "widi-soul", decimals: 18, price: 0.00007734}, // Addr: 0xc19fe21b4ef356f2f65894392dde4252aa083605, Notional: 0.005467401565892999 - {chain: 4, addr: "0000000000000000000000007e624fa0e1c4abfd309cc15719b7e2580887f570", symbol: "POLS", coinGeckoId: "polkastarter", decimals: 18, price: 0.714594}, // Addr: 0x7e624fa0e1c4abfd309cc15719b7e2580887f570, Notional: 5.002158 - {chain: 4, addr: "000000000000000000000000e9c803f48dffe50180bd5b01dc04da939e3445fc", symbol: "VLX", coinGeckoId: "velas", decimals: 18, price: 0.0152499}, // Addr: 0xe9c803f48dffe50180bd5b01dc04da939e3445fc, Notional: 0.106416959081799 - {chain: 4, addr: "00000000000000000000000038e382f74dfb84608f3c1f10187f6bef5951de93", symbol: "MUBI", coinGeckoId: "multibit", decimals: 18, price: 0.112852}, // Addr: 0x38e382f74dfb84608f3c1f10187f6bef5951de93, Notional: 0.38046340737976 - {chain: 4, addr: "000000000000000000000000114597f4260caf4cde1eeb0b9d9865b0b7b9a46a", symbol: "AGF", coinGeckoId: "augmented-finance", decimals: 18, price: 0.00008714}, // Addr: 0x114597f4260caf4cde1eeb0b9d9865b0b7b9a46a, Notional: 0.0017427999999999999 - {chain: 4, addr: "000000000000000000000000e4fae3faa8300810c835970b9187c268f55d998f", symbol: "CATE", coinGeckoId: "catecoin", decimals: 9, price: 3.52816e-7}, // Addr: 0xe4fae3faa8300810c835970b9187c268f55d998f, Notional: 0.0023808827478959335 - {chain: 4, addr: "0000000000000000000000004afc8c2be6a0783ea16e16066fde140d15979296", symbol: "HARE", coinGeckoId: "hare-token", decimals: 9, price: 2.5e-17}, // Addr: 0x4afc8c2be6a0783ea16e16066fde140d15979296, Notional: 2.25e-13 - {chain: 4, addr: "0000000000000000000000004b8285ab433d8f69cb48d5ad62b415ed1a221e4f", symbol: "MCRT", coinGeckoId: "magiccraft", decimals: 9, price: 0.00171219}, // Addr: 0x4b8285ab433d8f69cb48d5ad62b415ed1a221e4f, Notional: 21796.10239043511 + {chain: 4, addr: "000000000000000000000000c19fe21b4ef356f2f65894392dde4252aa083605", symbol: "WSO", coinGeckoId: "widi-soul", decimals: 18, price: 0.00001052}, // Addr: 0xc19fe21b4ef356f2f65894392dde4252aa083605, Notional: 0.0007436910327539999 + {chain: 4, addr: "0000000000000000000000007e624fa0e1c4abfd309cc15719b7e2580887f570", symbol: "POLS", coinGeckoId: "polkastarter", decimals: 18, price: 0.262358}, // Addr: 0x7e624fa0e1c4abfd309cc15719b7e2580887f570, Notional: 1.836506 + {chain: 4, addr: "000000000000000000000000e9c803f48dffe50180bd5b01dc04da939e3445fc", symbol: "VLX", coinGeckoId: "velas", decimals: 18, price: 0.00548837}, // Addr: 0xe9c803f48dffe50180bd5b01dc04da939e3445fc, Notional: 0.038298982007473704 + {chain: 4, addr: "00000000000000000000000038e382f74dfb84608f3c1f10187f6bef5951de93", symbol: "MUBI", coinGeckoId: "multibit", decimals: 18, price: 0.02620114}, // Addr: 0x38e382f74dfb84608f3c1f10187f6bef5951de93, Notional: 0.0883331708931532 + {chain: 4, addr: "000000000000000000000000114597f4260caf4cde1eeb0b9d9865b0b7b9a46a", symbol: "AGF", coinGeckoId: "augmented-finance", decimals: 18, price: 0.00011191}, // Addr: 0x114597f4260caf4cde1eeb0b9d9865b0b7b9a46a, Notional: 0.0022382 + {chain: 4, addr: "000000000000000000000000e4fae3faa8300810c835970b9187c268f55d998f", symbol: "CATE", coinGeckoId: "catecoin", decimals: 9, price: 1.9455e-7}, // Addr: 0xe4fae3faa8300810c835970b9187c268f55d998f, Notional: 0.001312867723128072 + {chain: 4, addr: "0000000000000000000000004afc8c2be6a0783ea16e16066fde140d15979296", symbol: "HARE", coinGeckoId: "hare-token", decimals: 9, price: 2.4e-17}, // Addr: 0x4afc8c2be6a0783ea16e16066fde140d15979296, Notional: 2.16e-13 + {chain: 4, addr: "0000000000000000000000004b8285ab433d8f69cb48d5ad62b415ed1a221e4f", symbol: "MCRT", coinGeckoId: "magiccraft", decimals: 9, price: 0.00093704}, // Addr: 0x4b8285ab433d8f69cb48d5ad62b415ed1a221e4f, Notional: 16368.435043574565 {chain: 4, addr: "000000000000000000000000ce355300b9d7909f577640a3fb179cf911a23fbb", symbol: "PPP", coinGeckoId: "playposeidon-nft", decimals: 18, price: 0.00021648}, // Addr: 0xce355300b9d7909f577640a3fb179cf911a23fbb, Notional: 2.1648 - {chain: 4, addr: "000000000000000000000000f218184af829cf2b0019f8e6f0b2423498a36983", symbol: "MATH", coinGeckoId: "math", decimals: 18, price: 0.371292}, // Addr: 0xf218184af829cf2b0019f8e6f0b2423498a36983, Notional: 335.276676 - {chain: 4, addr: "000000000000000000000000fdfd27ae39cebefdbaac8615f18aa68ddd0f15f5", symbol: "GHD", coinGeckoId: "giftedhands", decimals: 18, price: 0.000002}, // Addr: 0xfdfd27ae39cebefdbaac8615f18aa68ddd0f15f5, Notional: 0.000198 - {chain: 4, addr: "0000000000000000000000007dc6dc21ce07e6499fdcc30dcdb943a8ee4db802", symbol: "GPTG", coinGeckoId: "gpt-guru", decimals: 18, price: 0.00026327}, // Addr: 0x7dc6dc21ce07e6499fdcc30dcdb943a8ee4db802, Notional: 4004.7045937612706 - {chain: 4, addr: "00000000000000000000000044c99ca267c2b2646ceec72e898273085ab87ca5", symbol: "RPTR", coinGeckoId: "raptor-finance-2", decimals: 18, price: 0.00009373}, // Addr: 0x44c99ca267c2b2646ceec72e898273085ab87ca5, Notional: 294.60260451470896 - {chain: 4, addr: "000000000000000000000000af7bfa6240745fd41d1ed4b5fade9dcaf369ba6c", symbol: "Mverse", coinGeckoId: "maticverse", decimals: 18, price: 1.33269e-7}, // Addr: 0xaf7bfa6240745fd41d1ed4b5fade9dcaf369ba6c, Notional: 14.816343619442792 - {chain: 4, addr: "000000000000000000000000de7d1ce109236b12809c45b23d22f30dba0ef424", symbol: "USDS", coinGeckoId: "spiceusd", decimals: 18, price: 0.103156}, // Addr: 0xde7d1ce109236b12809c45b23d22f30dba0ef424, Notional: 0.103156 - {chain: 4, addr: "0000000000000000000000007b65b489fe53fce1f6548db886c08ad73111ddd8", symbol: "IRON", coinGeckoId: "iron-bsc", decimals: 18, price: 0.01291067}, // Addr: 0x7b65b489fe53fce1f6548db886c08ad73111ddd8, Notional: 1.5492804 - {chain: 4, addr: "000000000000000000000000ae9269f27437f0fcbc232d39ec814844a51d6b8f", symbol: "BURGER", coinGeckoId: "burger-swap", decimals: 18, price: 0.42356}, // Addr: 0xae9269f27437f0fcbc232d39ec814844a51d6b8f, Notional: 0.055437951327599995 - {chain: 4, addr: "000000000000000000000000833f307ac507d47309fd8cdd1f835bef8d702a93", symbol: "REVV", coinGeckoId: "revv", decimals: 18, price: 0.00944047}, // Addr: 0x833f307ac507d47309fd8cdd1f835bef8d702a93, Notional: 0.19824987 - {chain: 4, addr: "00000000000000000000000035bedbf9291b22218a0da863170dcc9329ef2563", symbol: "TAP", coinGeckoId: "tap-fantasy", decimals: 18, price: 0.00235866}, // Addr: 0x35bedbf9291b22218a0da863170dcc9329ef2563, Notional: 15.85890800423195 - {chain: 4, addr: "00000000000000000000000042981d0bfbaf196529376ee702f2a9eb9092fcb5", symbol: "SFM", coinGeckoId: "safemoon-2", decimals: 9, price: 0.00005483}, // Addr: 0x42981d0bfbaf196529376ee702f2a9eb9092fcb5, Notional: 0.36292817866245575 - {chain: 4, addr: "0000000000000000000000009573c88ae3e37508f87649f87c4dd5373c9f31e0", symbol: "MONI", coinGeckoId: "monsta-infinite", decimals: 18, price: 0.01454845}, // Addr: 0x9573c88ae3e37508f87649f87c4dd5373c9f31e0, Notional: 0.0163045923811085 - {chain: 4, addr: "000000000000000000000000c864019047b864b6ab609a968ae2725dfaee808a", symbol: "BIT", coinGeckoId: "biconomy-exchange-token", decimals: 9, price: 0.00000518}, // Addr: 0xc864019047b864b6ab609a968ae2725dfaee808a, Notional: 11217.420601464266 - {chain: 4, addr: "000000000000000000000000a260e12d2b924cb899ae80bb58123ac3fee1e2f0", symbol: "HOOK", coinGeckoId: "hooked-protocol", decimals: 18, price: 0.801624}, // Addr: 0xa260e12d2b924cb899ae80bb58123ac3fee1e2f0, Notional: 1.603248 - {chain: 4, addr: "000000000000000000000000fce146bf3146100cfe5db4129cf6c82b0ef4ad8c", symbol: "renBTC", coinGeckoId: "renbtc", decimals: 8, price: 57547}, // Addr: 0xfce146bf3146100cfe5db4129cf6c82b0ef4ad8c, Notional: 46.675796229999996 - {chain: 4, addr: "0000000000000000000000004268b8f0b87b6eae5d897996e6b845ddbd99adf3", symbol: "axlUSDC", coinGeckoId: "axlusdc", decimals: 6, price: 1}, // Addr: 0x4268b8f0b87b6eae5d897996e6b845ddbd99adf3, Notional: 24.603614 - {chain: 4, addr: "0000000000000000000000001613957159e9b0ac6c80e824f7eea748a32a0ae2", symbol: "CGG", coinGeckoId: "chain-guardians", decimals: 18, price: 0.03521839}, // Addr: 0x1613957159e9b0ac6c80e824f7eea748a32a0ae2, Notional: 29.263679573584945 - {chain: 4, addr: "0000000000000000000000001a28ed8472f644e8898a169a644503b779748d6e", symbol: "SOFI", coinGeckoId: "rai-finance", decimals: 18, price: 0.02075355}, // Addr: 0x1a28ed8472f644e8898a169a644503b779748d6e, Notional: 69.65042236413504 - {chain: 4, addr: "0000000000000000000000005fb4968fc85868df3ad2d6e59883a10570f01d18", symbol: "SHR", coinGeckoId: "sharering", decimals: 18, price: 0.00233117}, // Addr: 0x5fb4968fc85868df3ad2d6e59883a10570f01d18, Notional: 104.66020832 - {chain: 4, addr: "0000000000000000000000007083609fce4d1d8dc0c979aab8c869ea2c873402", symbol: "DOT", coinGeckoId: "binance-peg-polkadot", decimals: 18, price: 6.56}, // Addr: 0x7083609fce4d1d8dc0c979aab8c869ea2c873402, Notional: 5805.0574937072 - {chain: 4, addr: "0000000000000000000000002326c7395d02a8c89a9d7a0b0c1cf159d49ce51c", symbol: "TBAC", coinGeckoId: "blockaura", decimals: 8, price: 0.688926}, // Addr: 0x2326c7395d02a8c89a9d7a0b0c1cf159d49ce51c, Notional: 0.36513078000000004 - {chain: 4, addr: "000000000000000000000000c94595b56e301f3ffedb8ccc2d672882d623e53a", symbol: "ACY", coinGeckoId: "acy-finance", decimals: 18, price: 0.00575699}, // Addr: 0xc94595b56e301f3ffedb8ccc2d672882d623e53a, Notional: 0.0575699 - {chain: 4, addr: "000000000000000000000000ca830317146bfdde71e7c0b880e2ec1f66e273ee", symbol: "GULL", coinGeckoId: "polygod", decimals: 18, price: 0.00310722}, // Addr: 0xca830317146bfdde71e7c0b880e2ec1f66e273ee, Notional: 3.10722 - {chain: 4, addr: "00000000000000000000000021f9b5b2626603e3f40bfc13d01afb8c431d382f", symbol: "ZINU", coinGeckoId: "zombie-inu", decimals: 9, price: 3.27382e-10}, // Addr: 0x21f9b5b2626603e3f40bfc13d01afb8c431d382f, Notional: 2.265606917121339 - {chain: 4, addr: "0000000000000000000000007130d2a12b9bcbfae4f2634d864a1ee1ce3ead9c", symbol: "BTCB", coinGeckoId: "binance-bitcoin", decimals: 18, price: 57357}, // Addr: 0x7130d2a12b9bcbfae4f2634d864a1ee1ce3ead9c, Notional: 1589849.0007525 - {chain: 4, addr: "0000000000000000000000009df465460938f9ebdf51c38cc87d72184471f8f0", symbol: "GENE", coinGeckoId: "genopets", decimals: 18, price: 0.23221}, // Addr: 0x9df465460938f9ebdf51c38cc87d72184471f8f0, Notional: 19.520268981535303 - {chain: 4, addr: "000000000000000000000000c732b6586a93b6b7cf5fed3470808bc74998224d", symbol: "KMON", coinGeckoId: "kryptomon", decimals: 18, price: 0.0072421}, // Addr: 0xc732b6586a93b6b7cf5fed3470808bc74998224d, Notional: 11.587359999999999 - {chain: 4, addr: "0000000000000000000000001446f3cedf4d86a9399e49f7937766e6de2a3aab", symbol: "KRW", coinGeckoId: "krown", decimals: 18, price: 0.00000265}, // Addr: 0x1446f3cedf4d86a9399e49f7937766e6de2a3aab, Notional: 0.10564779408511349 - {chain: 4, addr: "00000000000000000000000082d2f8e02afb160dd5a480a617692e62de9038c4", symbol: "ALEPH", coinGeckoId: "aleph", decimals: 18, price: 0.240941}, // Addr: 0x82d2f8e02afb160dd5a480a617692e62de9038c4, Notional: 100.39306896835103 - {chain: 4, addr: "0000000000000000000000008d11ec38a3eb5e956b052f67da8bdc9bef8abf3e", symbol: "KEX", coinGeckoId: "kira-network", decimals: 6, price: 0.0526}, // Addr: 0x8d11ec38a3eb5e956b052f67da8bdc9bef8abf3e, Notional: 0.000526 - {chain: 4, addr: "00000000000000000000000014778860e937f509e651192a90589de711fb88a9", symbol: "CYBER", coinGeckoId: "cyberconnect", decimals: 18, price: 7.93}, // Addr: 0x14778860e937f509e651192a90589de711fb88a9, Notional: 104.0672993061 - {chain: 4, addr: "0000000000000000000000001796ae0b0fa4862485106a0de9b654efe301d0b2", symbol: "PMON", coinGeckoId: "polychain-monsters", decimals: 18, price: 0.411585}, // Addr: 0x1796ae0b0fa4862485106a0de9b654efe301d0b2, Notional: 0.1501001434068 - {chain: 4, addr: "000000000000000000000000b8501a9a9aaae239a2490f44e00b284baa0b131a", symbol: "CREMAT", coinGeckoId: "cremation-coin", decimals: 18, price: 3.05278e-7}, // Addr: 0xb8501a9a9aaae239a2490f44e00b284baa0b131a, Notional: 2.608528929684147 - {chain: 4, addr: "0000000000000000000000007e8db69dcff9209e486a100e611b0af300c3374e", symbol: "TRDC", coinGeckoId: "traders-coin", decimals: 18, price: 0.00025433}, // Addr: 0x7e8db69dcff9209e486a100e611b0af300c3374e, Notional: 0.444930012659618 - {chain: 4, addr: "000000000000000000000000bf37f781473f3b50e82c668352984865eac9853f", symbol: "MILK", coinGeckoId: "the-crypto-you", decimals: 18, price: 9.05525e-7}, // Addr: 0xbf37f781473f3b50e82c668352984865eac9853f, Notional: 9.05525e-7 - {chain: 4, addr: "000000000000000000000000c74cd0042c837ce59210857504ebb0859e06aa22", symbol: "SAFUYIELD", coinGeckoId: "safu-protocol", decimals: 9, price: 1.382e-9}, // Addr: 0xc74cd0042c837ce59210857504ebb0859e06aa22, Notional: 0.0012559616000026948 + {chain: 4, addr: "000000000000000000000000f218184af829cf2b0019f8e6f0b2423498a36983", symbol: "MATH", coinGeckoId: "math", decimals: 18, price: 0.185418}, // Addr: 0xf218184af829cf2b0019f8e6f0b2423498a36983, Notional: 167.432454 + {chain: 4, addr: "000000000000000000000000fdfd27ae39cebefdbaac8615f18aa68ddd0f15f5", symbol: "GHD", coinGeckoId: "giftedhands", decimals: 18, price: 0.00001}, // Addr: 0xfdfd27ae39cebefdbaac8615f18aa68ddd0f15f5, Notional: 0.00099 + {chain: 4, addr: "0000000000000000000000007dc6dc21ce07e6499fdcc30dcdb943a8ee4db802", symbol: "GPTG", coinGeckoId: "gpt-guru", decimals: 18, price: 0.00008189}, // Addr: 0x7dc6dc21ce07e6499fdcc30dcdb943a8ee4db802, Notional: 1245.66133316789 + {chain: 4, addr: "00000000000000000000000044c99ca267c2b2646ceec72e898273085ab87ca5", symbol: "RPTR", coinGeckoId: "raptor-finance-2", decimals: 18, price: 0.00007475}, // Addr: 0x44c99ca267c2b2646ceec72e898273085ab87ca5, Notional: 236.86372100799997 + {chain: 4, addr: "000000000000000000000000af7bfa6240745fd41d1ed4b5fade9dcaf369ba6c", symbol: "Mverse", coinGeckoId: "maticverse", decimals: 18, price: 1.23713e-7}, // Addr: 0xaf7bfa6240745fd41d1ed4b5fade9dcaf369ba6c, Notional: 13.75394366425895 + {chain: 4, addr: "000000000000000000000000de7d1ce109236b12809c45b23d22f30dba0ef424", symbol: "USDS", coinGeckoId: "spiceusd", decimals: 18, price: 0.086289}, // Addr: 0xde7d1ce109236b12809c45b23d22f30dba0ef424, Notional: 0.086289 + {chain: 4, addr: "0000000000000000000000007b65b489fe53fce1f6548db886c08ad73111ddd8", symbol: "IRON", coinGeckoId: "iron-bsc", decimals: 18, price: 0.01380571}, // Addr: 0x7b65b489fe53fce1f6548db886c08ad73111ddd8, Notional: 1.6566852 + {chain: 4, addr: "000000000000000000000000ae9269f27437f0fcbc232d39ec814844a51d6b8f", symbol: "BURGER", coinGeckoId: "burger-swap", decimals: 18, price: 0.302497}, // Addr: 0xae9269f27437f0fcbc232d39ec814844a51d6b8f, Notional: 0.03959253461787 + {chain: 4, addr: "000000000000000000000000833f307ac507d47309fd8cdd1f835bef8d702a93", symbol: "REVV", coinGeckoId: "revv", decimals: 18, price: 0.00542778}, // Addr: 0x833f307ac507d47309fd8cdd1f835bef8d702a93, Notional: 0.11398338 + {chain: 4, addr: "00000000000000000000000035bedbf9291b22218a0da863170dcc9329ef2563", symbol: "TAP", coinGeckoId: "tap-fantasy", decimals: 18, price: 0.0010054}, // Addr: 0x35bedbf9291b22218a0da863170dcc9329ef2563, Notional: 46.66329931475647 + {chain: 4, addr: "00000000000000000000000042981d0bfbaf196529376ee702f2a9eb9092fcb5", symbol: "SFM", coinGeckoId: "safemoon-2", decimals: 9, price: 0.00003302}, // Addr: 0x42981d0bfbaf196529376ee702f2a9eb9092fcb5, Notional: 0.2185644439072458 + {chain: 4, addr: "0000000000000000000000009573c88ae3e37508f87649f87c4dd5373c9f31e0", symbol: "MONI", coinGeckoId: "monsta-infinite", decimals: 18, price: 0.00753095}, // Addr: 0x9573c88ae3e37508f87649f87c4dd5373c9f31e0, Notional: 0.0084400104473335 + {chain: 4, addr: "000000000000000000000000c864019047b864b6ab609a968ae2725dfaee808a", symbol: "BIT", coinGeckoId: "biconomy-exchange-token", decimals: 9, price: 0.00000296}, // Addr: 0xc864019047b864b6ab609a968ae2725dfaee808a, Notional: 6409.954629408151 + {chain: 4, addr: "000000000000000000000000a260e12d2b924cb899ae80bb58123ac3fee1e2f0", symbol: "HOOK", coinGeckoId: "hooked-protocol", decimals: 18, price: 0.449898}, // Addr: 0xa260e12d2b924cb899ae80bb58123ac3fee1e2f0, Notional: 0.899796 + {chain: 4, addr: "000000000000000000000000fce146bf3146100cfe5db4129cf6c82b0ef4ad8c", symbol: "renBTC", coinGeckoId: "renbtc", decimals: 8, price: 58888}, // Addr: 0xfce146bf3146100cfe5db4129cf6c82b0ef4ad8c, Notional: 47.76346792 + {chain: 4, addr: "0000000000000000000000004268b8f0b87b6eae5d897996e6b845ddbd99adf3", symbol: "axlUSDC", coinGeckoId: "axlusdc", decimals: 6, price: 0.998063}, // Addr: 0x4268b8f0b87b6eae5d897996e6b845ddbd99adf3, Notional: 24.555956799682 + {chain: 4, addr: "0000000000000000000000001613957159e9b0ac6c80e824f7eea748a32a0ae2", symbol: "CGG", coinGeckoId: "chain-guardians", decimals: 18, price: 0.01693984}, // Addr: 0x1613957159e9b0ac6c80e824f7eea748a32a0ae2, Notional: 14.07565904596426 + {chain: 4, addr: "0000000000000000000000001a28ed8472f644e8898a169a644503b779748d6e", symbol: "SOFI", coinGeckoId: "rai-finance", decimals: 18, price: 0.01021086}, // Addr: 0x1a28ed8472f644e8898a169a644503b779748d6e, Notional: 34.26838838179743 + {chain: 4, addr: "0000000000000000000000005fb4968fc85868df3ad2d6e59883a10570f01d18", symbol: "SHR", coinGeckoId: "sharering", decimals: 18, price: 0.00143125}, // Addr: 0x5fb4968fc85868df3ad2d6e59883a10570f01d18, Notional: 64.2574 + {chain: 4, addr: "0000000000000000000000007083609fce4d1d8dc0c979aab8c869ea2c873402", symbol: "DOT", coinGeckoId: "binance-peg-polkadot", decimals: 18, price: 4.4}, // Addr: 0x7083609fce4d1d8dc0c979aab8c869ea2c873402, Notional: 4690.929323828 + {chain: 4, addr: "0000000000000000000000002326c7395d02a8c89a9d7a0b0c1cf159d49ce51c", symbol: "TBAC", coinGeckoId: "blockaura", decimals: 8, price: 0.529516}, // Addr: 0x2326c7395d02a8c89a9d7a0b0c1cf159d49ce51c, Notional: 0.28064348 + {chain: 4, addr: "000000000000000000000000c94595b56e301f3ffedb8ccc2d672882d623e53a", symbol: "ACY", coinGeckoId: "acy-finance", decimals: 18, price: 0.00483638}, // Addr: 0xc94595b56e301f3ffedb8ccc2d672882d623e53a, Notional: 0.048363800000000005 + {chain: 4, addr: "000000000000000000000000ca830317146bfdde71e7c0b880e2ec1f66e273ee", symbol: "GULL", coinGeckoId: "polygod", decimals: 18, price: 0.00371538}, // Addr: 0xca830317146bfdde71e7c0b880e2ec1f66e273ee, Notional: 3.7153799999999997 + {chain: 4, addr: "00000000000000000000000021f9b5b2626603e3f40bfc13d01afb8c431d382f", symbol: "ZINU", coinGeckoId: "zombie-inu", decimals: 9, price: 2.38586e-10}, // Addr: 0x21f9b5b2626603e3f40bfc13d01afb8c431d382f, Notional: 1.6511051063537758 + {chain: 4, addr: "0000000000000000000000007130d2a12b9bcbfae4f2634d864a1ee1ce3ead9c", symbol: "BTCB", coinGeckoId: "binance-bitcoin", decimals: 18, price: 58997}, // Addr: 0x7130d2a12b9bcbfae4f2634d864a1ee1ce3ead9c, Notional: 974125.8899863901 + {chain: 4, addr: "0000000000000000000000009df465460938f9ebdf51c38cc87d72184471f8f0", symbol: "GENE", coinGeckoId: "genopets", decimals: 18, price: 0.106782}, // Addr: 0x9df465460938f9ebdf51c38cc87d72184471f8f0, Notional: 8.97641515174326 + {chain: 4, addr: "000000000000000000000000c732b6586a93b6b7cf5fed3470808bc74998224d", symbol: "KMON", coinGeckoId: "kryptomon", decimals: 18, price: 0.00146636}, // Addr: 0xc732b6586a93b6b7cf5fed3470808bc74998224d, Notional: 169.33159651264967 + {chain: 4, addr: "0000000000000000000000001446f3cedf4d86a9399e49f7937766e6de2a3aab", symbol: "KRW", coinGeckoId: "krown", decimals: 18, price: 0.00000193}, // Addr: 0x1446f3cedf4d86a9399e49f7937766e6de2a3aab, Notional: 0.0769434877676487 + {chain: 4, addr: "00000000000000000000000082d2f8e02afb160dd5a480a617692e62de9038c4", symbol: "ALEPH", coinGeckoId: "aleph", decimals: 18, price: 0.131103}, // Addr: 0x82d2f8e02afb160dd5a480a617692e62de9038c4, Notional: 54.626786312656314 + {chain: 4, addr: "0000000000000000000000008d11ec38a3eb5e956b052f67da8bdc9bef8abf3e", symbol: "KEX", coinGeckoId: "kira-network", decimals: 6, price: 0.03224814}, // Addr: 0x8d11ec38a3eb5e956b052f67da8bdc9bef8abf3e, Notional: 0.00032248140000000003 + {chain: 4, addr: "00000000000000000000000014778860e937f509e651192a90589de711fb88a9", symbol: "CYBER", coinGeckoId: "cyberconnect", decimals: 18, price: 3.03}, // Addr: 0x14778860e937f509e651192a90589de711fb88a9, Notional: 39.7634195331 + {chain: 4, addr: "0000000000000000000000001796ae0b0fa4862485106a0de9b654efe301d0b2", symbol: "PMON", coinGeckoId: "polychain-monsters", decimals: 18, price: 0.126198}, // Addr: 0x1796ae0b0fa4862485106a0de9b654efe301d0b2, Notional: 0.046022906319840004 + {chain: 4, addr: "000000000000000000000000b8501a9a9aaae239a2490f44e00b284baa0b131a", symbol: "CREMAT", coinGeckoId: "cremation-coin", decimals: 18, price: 1.4678e-8}, // Addr: 0xb8501a9a9aaae239a2490f44e00b284baa0b131a, Notional: 0.12542006836360273 + {chain: 4, addr: "0000000000000000000000007e8db69dcff9209e486a100e611b0af300c3374e", symbol: "TRDC", coinGeckoId: "traders-coin", decimals: 18, price: 0.0002387}, // Addr: 0x7e8db69dcff9209e486a100e611b0af300c3374e, Notional: 0.41758657658102 + {chain: 4, addr: "000000000000000000000000bf37f781473f3b50e82c668352984865eac9853f", symbol: "MILK", coinGeckoId: "the-crypto-you", decimals: 18, price: 8.99534e-7}, // Addr: 0xbf37f781473f3b50e82c668352984865eac9853f, Notional: 8.99534e-7 + {chain: 4, addr: "000000000000000000000000c74cd0042c837ce59210857504ebb0859e06aa22", symbol: "SAFUYIELD", coinGeckoId: "safu-protocol", decimals: 9, price: 7.34735e-10}, // Addr: 0xc74cd0042c837ce59210857504ebb0859e06aa22, Notional: 0.0006677271680014328 {chain: 4, addr: "000000000000000000000000323665443cef804a3b5206103304bd4872ea4253", symbol: "USDV", coinGeckoId: "verified-usd-foundation-usdv", decimals: 6, price: 1}, // Addr: 0x323665443cef804a3b5206103304bd4872ea4253, Notional: 21.376 - {chain: 4, addr: "000000000000000000000000d069599e718f963bd84502b49ba8f8657faf5b3a", symbol: "PLAY", coinGeckoId: "xcad-network-play", decimals: 18, price: 0.00100919}, // Addr: 0xd069599e718f963bd84502b49ba8f8657faf5b3a, Notional: 2529.4968662636043 - {chain: 4, addr: "000000000000000000000000e60eaf5a997dfae83739e035b005a33afdcc6df5", symbol: "DERI", coinGeckoId: "deri-protocol", decimals: 18, price: 0.01116914}, // Addr: 0xe60eaf5a997dfae83739e035b005a33afdcc6df5, Notional: 0.00558457 - {chain: 4, addr: "0000000000000000000000009eb6935aea6afb5bc6d1a74be0c2f78280ab6448", symbol: "ACA", coinGeckoId: "aca-token", decimals: 9, price: 0.00070415}, // Addr: 0x9eb6935aea6afb5bc6d1a74be0c2f78280ab6448, Notional: 4.540302773503069 - {chain: 4, addr: "0000000000000000000000004da996c5fe84755c80e108cf96fe705174c5e36a", symbol: "WOW", coinGeckoId: "wowswap", decimals: 18, price: 0.123503}, // Addr: 0x4da996c5fe84755c80e108cf96fe705174c5e36a, Notional: 0.89593741649328 - {chain: 4, addr: "0000000000000000000000008da443f84fea710266c8eb6bc34b71702d033ef2", symbol: "CTSI", coinGeckoId: "cartesi", decimals: 18, price: 0.181534}, // Addr: 0x8da443f84fea710266c8eb6bc34b71702d033ef2, Notional: 3.9374724600000004 - {chain: 4, addr: "00000000000000000000000027ae27110350b98d564b9a3eed31baebc82d878d", symbol: "CUMMIES", coinGeckoId: "cumrocket", decimals: 18, price: 0.00575959}, // Addr: 0x27ae27110350b98d564b9a3eed31baebc82d878d, Notional: 7.172415206217288 - {chain: 4, addr: "000000000000000000000000ebbaeff6217d22e7744394061d874015709b8141", symbol: "WAM", coinGeckoId: "wam", decimals: 18, price: 0.00672852}, // Addr: 0xebbaeff6217d22e7744394061d874015709b8141, Notional: 108018.51529328918 - {chain: 4, addr: "000000000000000000000000e4cc45bb5dbda06db6183e8bf016569f40497aa5", symbol: "GAL", coinGeckoId: "project-galaxy", decimals: 18, price: 3.46}, // Addr: 0xe4cc45bb5dbda06db6183e8bf016569f40497aa5, Notional: 34.36818 - {chain: 4, addr: "000000000000000000000000935a544bf5816e3a7c13db2efe3009ffda0acda2", symbol: "BLZ", coinGeckoId: "bluzelle", decimals: 18, price: 0.322441}, // Addr: 0x935a544bf5816e3a7c13db2efe3009ffda0acda2, Notional: 148.70982563905739 - {chain: 4, addr: "0000000000000000000000004b5decb9327b4d511a58137a1ade61434aacdd43", symbol: "PKN", coinGeckoId: "poken", decimals: 18, price: 0.00080792}, // Addr: 0x4b5decb9327b4d511a58137a1ade61434aacdd43, Notional: 40.685086916261334 - {chain: 4, addr: "0000000000000000000000000c7d31befe4945089a3b8f835d6e8c1d4df6d952", symbol: "POKO", coinGeckoId: "poko", decimals: 9, price: 0.00001626}, // Addr: 0x0c7d31befe4945089a3b8f835d6e8c1d4df6d952, Notional: 1045.856997305703 - {chain: 4, addr: "000000000000000000000000a58950f05fea2277d2608748412bf9f802ea4901", symbol: "WSG", coinGeckoId: "wall-street-games", decimals: 18, price: 2.18406e-10}, // Addr: 0xa58950f05fea2277d2608748412bf9f802ea4901, Notional: 0.33743593150172874 - {chain: 4, addr: "0000000000000000000000006ff1bfa14a57594a5874b37ff6ac5efbd9f9599a", symbol: "TOTM", coinGeckoId: "totemfi", decimals: 18, price: 0.00151807}, // Addr: 0x6ff1bfa14a57594a5874b37ff6ac5efbd9f9599a, Notional: 0.150191938837823 - {chain: 4, addr: "0000000000000000000000001d2f0da169ceb9fc7b3144628db156f3f6c60dbe", symbol: "XRP", coinGeckoId: "binance-peg-xrp", decimals: 18, price: 0.495664}, // Addr: 0x1d2f0da169ceb9fc7b3144628db156f3f6c60dbe, Notional: 88.04359233727408 - {chain: 4, addr: "000000000000000000000000f915fdda4c882731c0456a4214548cd13a822886", symbol: "UNV", coinGeckoId: "unvest", decimals: 18, price: 0.0024075}, // Addr: 0xf915fdda4c882731c0456a4214548cd13a822886, Notional: 28.076265 - {chain: 4, addr: "000000000000000000000000e9e7cea3dedca5984780bafc599bd69add087d56", symbol: "BUSD", coinGeckoId: "binance-usd", decimals: 18, price: 0.997575}, // Addr: 0xe9e7cea3dedca5984780bafc599bd69add087d56, Notional: 114460.34139676637 - {chain: 4, addr: "0000000000000000000000004b5c23cac08a567ecf0c1ffca8372a45a5d33743", symbol: "FARM", coinGeckoId: "harvest-finance", decimals: 18, price: 76.16}, // Addr: 0x4b5c23cac08a567ecf0c1ffca8372a45a5d33743, Notional: 1.2513826752 - {chain: 4, addr: "0000000000000000000000008ac76a51cc950d9822d68b83fe1ad97b32cd580d", symbol: "USDC", coinGeckoId: "usd-coin", decimals: 18, price: 1}, // Addr: 0x8ac76a51cc950d9822d68b83fe1ad97b32cd580d, Notional: 7413176.56219711 - {chain: 4, addr: "00000000000000000000000003ff0ff224f904be3118461335064bb48df47938", symbol: "ONE", coinGeckoId: "wrapped-one", decimals: 18, price: 0.01780313}, // Addr: 0x03ff0ff224f904be3118461335064bb48df47938, Notional: 0.678299253 - {chain: 4, addr: "00000000000000000000000040c8225329bd3e28a043b029e0d07a5344d2c27c", symbol: "AOG", coinGeckoId: "ageofgods", decimals: 18, price: 0.00868091}, // Addr: 0x40c8225329bd3e28a043b029e0d07a5344d2c27c, Notional: 2.881315079862686 - {chain: 4, addr: "000000000000000000000000f486ad071f3bee968384d2e39e2d8af0fcf6fd46", symbol: "VELO", coinGeckoId: "velo", decimals: 18, price: 0.01766199}, // Addr: 0xf486ad071f3bee968384d2e39e2d8af0fcf6fd46, Notional: 87.83557862074319 - {chain: 4, addr: "0000000000000000000000001591e923e0836a3949b59637fbe8959f000894b9", symbol: "MAI", coinGeckoId: "multi-ai", decimals: 18, price: 0.00739035}, // Addr: 0x1591e923e0836a3949b59637fbe8959f000894b9, Notional: 17.88166175510192 - {chain: 4, addr: "00000000000000000000000025d887ce7a35172c62febfd67a1856f20faebb00", symbol: "PEPE", coinGeckoId: "pepe", decimals: 18, price: 0.00000621}, // Addr: 0x25d887ce7a35172c62febfd67a1856f20faebb00, Notional: 13.19184197822963 - {chain: 4, addr: "0000000000000000000000004aac18de824ec1b553dbf342829834e4ff3f7a9f", symbol: "ANCHOR", coinGeckoId: "anchorswap", decimals: 18, price: 0.00029352}, // Addr: 0x4aac18de824ec1b553dbf342829834e4ff3f7a9f, Notional: 0.09045099052015441 - {chain: 4, addr: "0000000000000000000000007e35d0e9180bf3a1fc47b0d110be7a21a10b41fe", symbol: "OVR", coinGeckoId: "ovr", decimals: 18, price: 0.341634}, // Addr: 0x7e35d0e9180bf3a1fc47b0d110be7a21a10b41fe, Notional: 63.80730318955541 - {chain: 4, addr: "0000000000000000000000000782b6d8c4551b9760e74c0545a9bcd90bdc41e5", symbol: "HAY", coinGeckoId: "helio-protocol-hay", decimals: 18, price: 0.985462}, // Addr: 0x0782b6d8c4551b9760e74c0545a9bcd90bdc41e5, Notional: 17.23330252683446 - {chain: 4, addr: "0000000000000000000000002dff88a56767223a5529ea5960da7a3f5f766406", symbol: "ID", coinGeckoId: "space-id", decimals: 18, price: 0.696599}, // Addr: 0x2dff88a56767223a5529ea5960da7a3f5f766406, Notional: 2319.95009131262 - {chain: 4, addr: "00000000000000000000000079ebc9a2ce02277a4b5b3a768b1c0a4ed75bd936", symbol: "CATGIRL", coinGeckoId: "catgirl", decimals: 9, price: 5.06261e-10}, // Addr: 0x79ebc9a2ce02277a4b5b3a768b1c0a4ed75bd936, Notional: 1.012522e-7 - {chain: 4, addr: "00000000000000000000000011a38e06699b238d6d9a0c7a01f3ac63a07ad318", symbol: "USDFI", coinGeckoId: "usdfi", decimals: 18, price: 0.645646}, // Addr: 0x11a38e06699b238d6d9a0c7a01f3ac63a07ad318, Notional: 0.645646 - {chain: 4, addr: "000000000000000000000000a0d96fd642156fc7e964949642257b3572f10cd6", symbol: "BLOK", coinGeckoId: "bloktopia", decimals: 18, price: 0.00138954}, // Addr: 0xa0d96fd642156fc7e964949642257b3572f10cd6, Notional: 108.23386580992543 - {chain: 4, addr: "0000000000000000000000000ebd9537a25f56713e34c45b38f421a1e7191469", symbol: "MOOV", coinGeckoId: "dotmoovs", decimals: 18, price: 0.00619358}, // Addr: 0x0ebd9537a25f56713e34c45b38f421a1e7191469, Notional: 1383.1239793662403 - {chain: 4, addr: "0000000000000000000000004338665cbb7b2485a8855a139b75d5e34ab0db94", symbol: "LTC", coinGeckoId: "binance-peg-litecoin", decimals: 18, price: 77.24}, // Addr: 0x4338665cbb7b2485a8855a139b75d5e34ab0db94, Notional: 11.3201545956 - {chain: 4, addr: "00000000000000000000000093c27727e72ec7510a06ea450366c1418c4ce547", symbol: "PXP", coinGeckoId: "pirate-x-pirate", decimals: 18, price: 0.00013544}, // Addr: 0x93c27727e72ec7510a06ea450366c1418c4ce547, Notional: 0.00027088 - {chain: 4, addr: "000000000000000000000000373e768f79c820aa441540d254dca6d045c6d25b", symbol: "DERC", coinGeckoId: "derace", decimals: 18, price: 0.24856}, // Addr: 0x373e768f79c820aa441540d254dca6d045c6d25b, Notional: 0.0030774984136 - {chain: 4, addr: "000000000000000000000000e2604c9561d490624aa35e156e65e590eb749519", symbol: "GM", coinGeckoId: "goldminer", decimals: 18, price: 0.00000152}, // Addr: 0xe2604c9561d490624aa35e156e65e590eb749519, Notional: 81.7286370057832 - {chain: 4, addr: "000000000000000000000000c8a11f433512c16ed895245f34bcc2ca44eb06bd", symbol: "KSN", coinGeckoId: "kissan", decimals: 18, price: 0.04064332}, // Addr: 0xc8a11f433512c16ed895245f34bcc2ca44eb06bd, Notional: 0.44707652 - {chain: 4, addr: "000000000000000000000000872d068c25511be88c1f5990c53eeffcdf46c9b4", symbol: "VENT", coinGeckoId: "vent-finance", decimals: 18, price: 0.00951791}, // Addr: 0x872d068c25511be88c1f5990c53eeffcdf46c9b4, Notional: 2.8744088199999998 - {chain: 4, addr: "000000000000000000000000c3d912863152e1afc935ad0d42d469e7c6b05b77", symbol: "LUCKY", coinGeckoId: "lucky-lion", decimals: 18, price: 0.00011922}, // Addr: 0xc3d912863152e1afc935ad0d42d469e7c6b05b77, Notional: 0.0033743318475318 - {chain: 4, addr: "000000000000000000000000c49dde62b4a0810074721faca54aab52369f486a", symbol: "PKR", coinGeckoId: "polker", decimals: 18, price: 0.00251707}, // Addr: 0xc49dde62b4a0810074721faca54aab52369f486a, Notional: 1.9884853000000002 - {chain: 4, addr: "000000000000000000000000f21768ccbc73ea5b6fd3c687208a7c2def2d966e", symbol: "REEF", coinGeckoId: "reef", decimals: 18, price: 0.00187843}, // Addr: 0xf21768ccbc73ea5b6fd3c687208a7c2def2d966e, Notional: 28.73622214 - {chain: 4, addr: "00000000000000000000000092868a5255c628da08f550a858a802f5351c5223", symbol: "BRIDGE", coinGeckoId: "cross-chain-bridge", decimals: 18, price: 0.00166878}, // Addr: 0x92868a5255c628da08f550a858a802f5351c5223, Notional: 0.13517118 - {chain: 4, addr: "000000000000000000000000ace8c5e6e492aa7aebf31a8053f8a487f62ceb84", symbol: "NADA", coinGeckoId: "nothing", decimals: 18, price: 4.19983e-7}, // Addr: 0xace8c5e6e492aa7aebf31a8053f8a487f62ceb84, Notional: 0.1679932 - {chain: 4, addr: "0000000000000000000000002d94172436d869c1e3c094bead272508fab0d9e3", symbol: "RCG", coinGeckoId: "recharge", decimals: 18, price: 0.0186058}, // Addr: 0x2d94172436d869c1e3c094bead272508fab0d9e3, Notional: 0.018233684 - {chain: 4, addr: "000000000000000000000000489580eb70a50515296ef31e8179ff3e77e24965", symbol: "RADAR", coinGeckoId: "dappradar", decimals: 18, price: 0.00675429}, // Addr: 0x489580eb70a50515296ef31e8179ff3e77e24965, Notional: 0.5026907354388003 + {chain: 4, addr: "000000000000000000000000d069599e718f963bd84502b49ba8f8657faf5b3a", symbol: "PLAY", coinGeckoId: "xcad-network-play", decimals: 18, price: 0.00028988}, // Addr: 0xd069599e718f963bd84502b49ba8f8657faf5b3a, Notional: 726.5733425742363 + {chain: 4, addr: "000000000000000000000000e60eaf5a997dfae83739e035b005a33afdcc6df5", symbol: "DERI", coinGeckoId: "deri-protocol", decimals: 18, price: 0.01655244}, // Addr: 0xe60eaf5a997dfae83739e035b005a33afdcc6df5, Notional: 0.00827622 + {chain: 4, addr: "0000000000000000000000009eb6935aea6afb5bc6d1a74be0c2f78280ab6448", symbol: "ACA", coinGeckoId: "aca-token", decimals: 9, price: 0.00029624}, // Addr: 0x9eb6935aea6afb5bc6d1a74be0c2f78280ab6448, Notional: 1.910131781044592 + {chain: 4, addr: "0000000000000000000000004da996c5fe84755c80e108cf96fe705174c5e36a", symbol: "WOW", coinGeckoId: "wowswap", decimals: 18, price: 0.069099}, // Addr: 0x4da996c5fe84755c80e108cf96fe705174c5e36a, Notional: 0.5012702488382399 + {chain: 4, addr: "0000000000000000000000008da443f84fea710266c8eb6bc34b71702d033ef2", symbol: "CTSI", coinGeckoId: "cartesi", decimals: 18, price: 0.124169}, // Addr: 0x8da443f84fea710266c8eb6bc34b71702d033ef2, Notional: 2.6932256100000003 + {chain: 4, addr: "00000000000000000000000027ae27110350b98d564b9a3eed31baebc82d878d", symbol: "CUMMIES", coinGeckoId: "cumrocket", decimals: 18, price: 0.00301019}, // Addr: 0x27ae27110350b98d564b9a3eed31baebc82d878d, Notional: 3.748588446330939 + {chain: 4, addr: "000000000000000000000000ebbaeff6217d22e7744394061d874015709b8141", symbol: "WAM", coinGeckoId: "wam", decimals: 18, price: 0.00263193}, // Addr: 0xebbaeff6217d22e7744394061d874015709b8141, Notional: 46767.47132169419 + {chain: 4, addr: "000000000000000000000000e4cc45bb5dbda06db6183e8bf016569f40497aa5", symbol: "GAL", coinGeckoId: "project-galaxy", decimals: 18, price: 2.38}, // Addr: 0xe4cc45bb5dbda06db6183e8bf016569f40497aa5, Notional: 23.640539999999998 + {chain: 4, addr: "000000000000000000000000935a544bf5816e3a7c13db2efe3009ffda0acda2", symbol: "BLZ", coinGeckoId: "bluzelle", decimals: 18, price: 0.135236}, // Addr: 0x935a544bf5816e3a7c13db2efe3009ffda0acda2, Notional: 62.370858483020356 + {chain: 4, addr: "0000000000000000000000004b5decb9327b4d511a58137a1ade61434aacdd43", symbol: "PKN", coinGeckoId: "poken", decimals: 18, price: 0.00039997}, // Addr: 0x4b5decb9327b4d511a58137a1ade61434aacdd43, Notional: 20.14161577123607 + {chain: 4, addr: "0000000000000000000000000c7d31befe4945089a3b8f835d6e8c1d4df6d952", symbol: "POKO", coinGeckoId: "poko", decimals: 9, price: 0.00001477}, // Addr: 0x0c7d31befe4945089a3b8f835d6e8c1d4df6d952, Notional: 2074.346981431731 + {chain: 4, addr: "000000000000000000000000a58950f05fea2277d2608748412bf9f802ea4901", symbol: "WSG", coinGeckoId: "wall-street-games", decimals: 18, price: 1.92506e-10}, // Addr: 0xa58950f05fea2277d2608748412bf9f802ea4901, Notional: 0.2974205902295349 + {chain: 4, addr: "0000000000000000000000006ff1bfa14a57594a5874b37ff6ac5efbd9f9599a", symbol: "TOTM", coinGeckoId: "totemfi", decimals: 18, price: 0.00253349}, // Addr: 0x6ff1bfa14a57594a5874b37ff6ac5efbd9f9599a, Notional: 0.25065364253706096 + {chain: 4, addr: "0000000000000000000000001d2f0da169ceb9fc7b3144628db156f3f6c60dbe", symbol: "XRP", coinGeckoId: "binance-peg-xrp", decimals: 18, price: 0.567856}, // Addr: 0x1d2f0da169ceb9fc7b3144628db156f3f6c60dbe, Notional: 6914.18937840691 + {chain: 4, addr: "000000000000000000000000f915fdda4c882731c0456a4214548cd13a822886", symbol: "UNV", coinGeckoId: "unvest", decimals: 18, price: 0.00152822}, // Addr: 0xf915fdda4c882731c0456a4214548cd13a822886, Notional: 17.82210164 + {chain: 4, addr: "000000000000000000000000e9e7cea3dedca5984780bafc599bd69add087d56", symbol: "BUSD", coinGeckoId: "binance-usd", decimals: 18, price: 0.998172}, // Addr: 0xe9e7cea3dedca5984780bafc599bd69add087d56, Notional: 119555.01778308881 + {chain: 4, addr: "0000000000000000000000004b5c23cac08a567ecf0c1ffca8372a45a5d33743", symbol: "FARM", coinGeckoId: "harvest-finance", decimals: 18, price: 35.2}, // Addr: 0x4b5c23cac08a567ecf0c1ffca8372a45a5d33743, Notional: 0.5783701440000001 + {chain: 4, addr: "0000000000000000000000008ac76a51cc950d9822d68b83fe1ad97b32cd580d", symbol: "USDC", coinGeckoId: "usd-coin", decimals: 18, price: 0.999097}, // Addr: 0x8ac76a51cc950d9822d68b83fe1ad97b32cd580d, Notional: 5500496.661898408 + {chain: 4, addr: "00000000000000000000000003ff0ff224f904be3118461335064bb48df47938", symbol: "ONE", coinGeckoId: "wrapped-one", decimals: 18, price: 0.01116321}, // Addr: 0x03ff0ff224f904be3118461335064bb48df47938, Notional: 0.425318301 + {chain: 4, addr: "00000000000000000000000040c8225329bd3e28a043b029e0d07a5344d2c27c", symbol: "AOG", coinGeckoId: "ageofgods", decimals: 18, price: 0.00343496}, // Addr: 0x40c8225329bd3e28a043b029e0d07a5344d2c27c, Notional: 1.1401111227653704 + {chain: 4, addr: "000000000000000000000000f486ad071f3bee968384d2e39e2d8af0fcf6fd46", symbol: "VELO", coinGeckoId: "velo", decimals: 18, price: 0.01041449}, // Addr: 0xf486ad071f3bee968384d2e39e2d8af0fcf6fd46, Notional: 51.7927342949432 + {chain: 4, addr: "0000000000000000000000001591e923e0836a3949b59637fbe8959f000894b9", symbol: "MAI", coinGeckoId: "multi-ai", decimals: 18, price: 0.00247834}, // Addr: 0x1591e923e0836a3949b59637fbe8959f000894b9, Notional: 16.249397460763326 + {chain: 4, addr: "00000000000000000000000025d887ce7a35172c62febfd67a1856f20faebb00", symbol: "PEPE", coinGeckoId: "pepe", decimals: 18, price: 0.00000802}, // Addr: 0x25d887ce7a35172c62febfd67a1856f20faebb00, Notional: 17.036807192496237 + {chain: 4, addr: "0000000000000000000000004aac18de824ec1b553dbf342829834e4ff3f7a9f", symbol: "ANCHOR", coinGeckoId: "anchorswap", decimals: 18, price: 0.00017109}, // Addr: 0x4aac18de824ec1b553dbf342829834e4ff3f7a9f, Notional: 0.0527230170621873 + {chain: 4, addr: "0000000000000000000000007e35d0e9180bf3a1fc47b0d110be7a21a10b41fe", symbol: "OVR", coinGeckoId: "ovr", decimals: 18, price: 0.153536}, // Addr: 0x7e35d0e9180bf3a1fc47b0d110be7a21a10b41fe, Notional: 28.676062987031678 + {chain: 4, addr: "0000000000000000000000000782b6d8c4551b9760e74c0545a9bcd90bdc41e5", symbol: "HAY", coinGeckoId: "helio-protocol-hay", decimals: 18, price: 1.002}, // Addr: 0x0782b6d8c4551b9760e74c0545a9bcd90bdc41e5, Notional: 17.52251140266 + {chain: 4, addr: "0000000000000000000000002dff88a56767223a5529ea5960da7a3f5f766406", symbol: "ID", coinGeckoId: "space-id", decimals: 18, price: 0.369132}, // Addr: 0x2dff88a56767223a5529ea5960da7a3f5f766406, Notional: 1229.35550741016 + {chain: 4, addr: "00000000000000000000000079ebc9a2ce02277a4b5b3a768b1c0a4ed75bd936", symbol: "CATGIRL", coinGeckoId: "catgirl", decimals: 9, price: 3.82347e-10}, // Addr: 0x79ebc9a2ce02277a4b5b3a768b1c0a4ed75bd936, Notional: 7.64694e-8 + {chain: 4, addr: "00000000000000000000000011a38e06699b238d6d9a0c7a01f3ac63a07ad318", symbol: "USDFI", coinGeckoId: "usdfi", decimals: 18, price: 0.876579}, // Addr: 0x11a38e06699b238d6d9a0c7a01f3ac63a07ad318, Notional: 0.876579 + {chain: 4, addr: "000000000000000000000000a0d96fd642156fc7e964949642257b3572f10cd6", symbol: "BLOK", coinGeckoId: "bloktopia", decimals: 18, price: 0.00079231}, // Addr: 0xa0d96fd642156fc7e964949642257b3572f10cd6, Notional: 61.71450567803878 + {chain: 4, addr: "0000000000000000000000000ebd9537a25f56713e34c45b38f421a1e7191469", symbol: "MOOV", coinGeckoId: "dotmoovs", decimals: 18, price: 0.00234232}, // Addr: 0x0ebd9537a25f56713e34c45b38f421a1e7191469, Notional: 523.0769537729605 + {chain: 4, addr: "0000000000000000000000004338665cbb7b2485a8855a139b75d5e34ab0db94", symbol: "LTC", coinGeckoId: "binance-peg-litecoin", decimals: 18, price: 64.02}, // Addr: 0x4338665cbb7b2485a8855a139b75d5e34ab0db94, Notional: 645.5153366838 + {chain: 4, addr: "00000000000000000000000093c27727e72ec7510a06ea450366c1418c4ce547", symbol: "PXP", coinGeckoId: "pirate-x-pirate", decimals: 18, price: 0.00012369}, // Addr: 0x93c27727e72ec7510a06ea450366c1418c4ce547, Notional: 0.00024738 + {chain: 4, addr: "000000000000000000000000373e768f79c820aa441540d254dca6d045c6d25b", symbol: "DERC", coinGeckoId: "derace", decimals: 18, price: 0.13497}, // Addr: 0x373e768f79c820aa441540d254dca6d045c6d25b, Notional: 0.6765211054107001 + {chain: 4, addr: "000000000000000000000000e2604c9561d490624aa35e156e65e590eb749519", symbol: "GM", coinGeckoId: "goldminer", decimals: 18, price: 0.00000117}, // Addr: 0xe2604c9561d490624aa35e156e65e590eb749519, Notional: 62.90954295839891 + {chain: 4, addr: "000000000000000000000000c8a11f433512c16ed895245f34bcc2ca44eb06bd", symbol: "KSN", coinGeckoId: "kissan", decimals: 18, price: 0.02136423}, // Addr: 0xc8a11f433512c16ed895245f34bcc2ca44eb06bd, Notional: 0.23500653000000002 + {chain: 4, addr: "000000000000000000000000872d068c25511be88c1f5990c53eeffcdf46c9b4", symbol: "VENT", coinGeckoId: "vent-finance", decimals: 18, price: 0.00477315}, // Addr: 0x872d068c25511be88c1f5990c53eeffcdf46c9b4, Notional: 1.4414913 + {chain: 4, addr: "000000000000000000000000c3d912863152e1afc935ad0d42d469e7c6b05b77", symbol: "LUCKY", coinGeckoId: "lucky-lion", decimals: 18, price: 0.0001166}, // Addr: 0xc3d912863152e1afc935ad0d42d469e7c6b05b77, Notional: 0.003300176928554 + {chain: 4, addr: "000000000000000000000000c49dde62b4a0810074721faca54aab52369f486a", symbol: "PKR", coinGeckoId: "polker", decimals: 18, price: 0.00082386}, // Addr: 0xc49dde62b4a0810074721faca54aab52369f486a, Notional: 0.6508494 + {chain: 4, addr: "000000000000000000000000f21768ccbc73ea5b6fd3c687208a7c2def2d966e", symbol: "REEF", coinGeckoId: "reef", decimals: 18, price: 0.00082781}, // Addr: 0xf21768ccbc73ea5b6fd3c687208a7c2def2d966e, Notional: 12.66383738 + {chain: 4, addr: "00000000000000000000000092868a5255c628da08f550a858a802f5351c5223", symbol: "BRIDGE", coinGeckoId: "cross-chain-bridge", decimals: 18, price: 0.00092651}, // Addr: 0x92868a5255c628da08f550a858a802f5351c5223, Notional: 0.07504730999999999 + {chain: 4, addr: "00000000000000000000000084e9a6f9d240fdd33801f7135908bfa16866939a", symbol: "GMEE", coinGeckoId: "gamee", decimals: 18, price: 0.01772613}, // Addr: 0x84e9a6f9d240fdd33801f7135908bfa16866939a, Notional: 34.041156344212865 + {chain: 4, addr: "000000000000000000000000ace8c5e6e492aa7aebf31a8053f8a487f62ceb84", symbol: "NADA", coinGeckoId: "nothing", decimals: 18, price: 5.72485e-7}, // Addr: 0xace8c5e6e492aa7aebf31a8053f8a487f62ceb84, Notional: 0.228994 + {chain: 4, addr: "0000000000000000000000002d94172436d869c1e3c094bead272508fab0d9e3", symbol: "RCG", coinGeckoId: "recharge", decimals: 18, price: 0.01457408}, // Addr: 0x2d94172436d869c1e3c094bead272508fab0d9e3, Notional: 0.014282598399999999 + {chain: 4, addr: "000000000000000000000000489580eb70a50515296ef31e8179ff3e77e24965", symbol: "RADAR", coinGeckoId: "dappradar", decimals: 18, price: 0.00481251}, // Addr: 0x489580eb70a50515296ef31e8179ff3e77e24965, Notional: 0.35817298209087567 {chain: 4, addr: "00000000000000000000000010f6f2b97f3ab29583d9d38babf2994df7220c21", symbol: "TEDDY", coinGeckoId: "teddy-doge", decimals: 18, price: 1.50024e-10}, // Addr: 0x10f6f2b97f3ab29583d9d38babf2994df7220c21, Notional: 0.30783698513606866 - {chain: 4, addr: "0000000000000000000000003019bf2a2ef8040c242c9a4c5c4bd4c81678b2a1", symbol: "GMT", coinGeckoId: "stepn", decimals: 8, price: 0.209767}, // Addr: 0x3019bf2a2ef8040c242c9a4c5c4bd4c81678b2a1, Notional: 350.50318391024314 - {chain: 4, addr: "000000000000000000000000c598275452fa319d75ee5f176fd3b8384925b425", symbol: "STRM", coinGeckoId: "streamcoin", decimals: 18, price: 0.00289707}, // Addr: 0xc598275452fa319d75ee5f176fd3b8384925b425, Notional: 0.00579414 - {chain: 4, addr: "00000000000000000000000023396cf899ca06c4472205fc903bdb4de249d6fc", symbol: "UST", coinGeckoId: "wrapped-ust", decimals: 18, price: 0.065163}, // Addr: 0x23396cf899ca06c4472205fc903bdb4de249d6fc, Notional: 3.61516786856442 + {chain: 4, addr: "0000000000000000000000003019bf2a2ef8040c242c9a4c5c4bd4c81678b2a1", symbol: "GMT", coinGeckoId: "stepn", decimals: 8, price: 0.109983}, // Addr: 0x3019bf2a2ef8040c242c9a4c5c4bd4c81678b2a1, Notional: 183.77243167895935 + {chain: 4, addr: "000000000000000000000000c598275452fa319d75ee5f176fd3b8384925b425", symbol: "STRM", coinGeckoId: "streamcoin", decimals: 18, price: 0.00128061}, // Addr: 0xc598275452fa319d75ee5f176fd3b8384925b425, Notional: 0.00256122 + {chain: 4, addr: "00000000000000000000000023396cf899ca06c4472205fc903bdb4de249d6fc", symbol: "UST", coinGeckoId: "wrapped-ust", decimals: 18, price: 0.01610185}, // Addr: 0x23396cf899ca06c4472205fc903bdb4de249d6fc, Notional: 0.893312013634179 {chain: 4, addr: "000000000000000000000000129385c4acd0075e45a0c9a5177bdfec9678a138", symbol: "MTK", coinGeckoId: "metakings", decimals: 18, price: 0.00010591}, // Addr: 0x129385c4acd0075e45a0c9a5177bdfec9678a138, Notional: 0.0042363999999999995 - {chain: 4, addr: "0000000000000000000000002f29bc0ffaf9bff337b31cbe6cb5fb3bf12e5840", symbol: "DOLA", coinGeckoId: "dola-usd", decimals: 18, price: 1}, // Addr: 0x2f29bc0ffaf9bff337b31cbe6cb5fb3bf12e5840, Notional: 205.70435217 - {chain: 5, addr: "000000000000000000000000aaa5b9e6c589642f98a1cda99b9d024b8407285a", symbol: "TITAN", coinGeckoId: "iron-titanium-token", decimals: 18, price: 1.9099e-8}, // Addr: 0xaaa5b9e6c589642f98a1cda99b9d024b8407285a, Notional: 11.557896982782973 - {chain: 5, addr: "000000000000000000000000bbbbbbbbb7949dcc7d1539c91b81a5bf09e37bdb", symbol: "CAW", coinGeckoId: "crow-with-knife", decimals: 18, price: 1.23494e-7}, // Addr: 0xbbbbbbbbb7949dcc7d1539c91b81a5bf09e37bdb, Notional: 8878.5162598899 - {chain: 5, addr: "0000000000000000000000000308a3a9c433256ad7ef24dbef9c49c8cb01300a", symbol: "GPO", coinGeckoId: "goldpesa-option", decimals: 18, price: 0.844745}, // Addr: 0x0308a3a9c433256ad7ef24dbef9c49c8cb01300a, Notional: 20.27388 - {chain: 5, addr: "000000000000000000000000723b17718289a91af252d616de2c77944962d122", symbol: "GAIA", coinGeckoId: "gaia-everworld", decimals: 18, price: 0.00531353}, // Addr: 0x723b17718289a91af252d616de2c77944962d122, Notional: 0.0514272840600432 - {chain: 5, addr: "00000000000000000000000030ea765d4dda26e0f89e1b23a7c7b2526b7d29ec", symbol: "POLYPAD", coinGeckoId: "polypad", decimals: 18, price: 0.00132413}, // Addr: 0x30ea765d4dda26e0f89e1b23a7c7b2526b7d29ec, Notional: 206.99943880597823 - {chain: 5, addr: "000000000000000000000000fbdd194376de19a88118e84e279b977f165d01b8", symbol: "BIFI", coinGeckoId: "beefy-finance", decimals: 18, price: 358.51}, // Addr: 0xfbdd194376de19a88118e84e279b977f165d01b8, Notional: 28520.1010330476 - {chain: 5, addr: "0000000000000000000000008f006d1e1d9dc6c98996f50a4c810f17a47fbf19", symbol: "NSFW", coinGeckoId: "pleasure-coin", decimals: 18, price: 0.0000504}, // Addr: 0x8f006d1e1d9dc6c98996f50a4c810f17a47fbf19, Notional: 44.396753744259 - {chain: 5, addr: "000000000000000000000000ba777ae3a3c91fcd83ef85bfe65410592bdd0f7c", symbol: "CONE", coinGeckoId: "bitcone", decimals: 18, price: 0.00000474}, // Addr: 0xba777ae3a3c91fcd83ef85bfe65410592bdd0f7c, Notional: 24.7919538 - {chain: 5, addr: "000000000000000000000000cf32822ff397ef82425153a9dcb726e5ff61dca7", symbol: "GMEE", coinGeckoId: "gamee", decimals: 18, price: 0.01702591}, // Addr: 0xcf32822ff397ef82425153a9dcb726e5ff61dca7, Notional: 230.05367442010217 - {chain: 5, addr: "0000000000000000000000009cb74c8032b007466865f060ad2c46145d45553d", symbol: "IDEX", coinGeckoId: "aurora-dao", decimals: 18, price: 0.05517}, // Addr: 0x9cb74c8032b007466865f060ad2c46145d45553d, Notional: 0.334770964164 - {chain: 5, addr: "0000000000000000000000001a13f4ca1d028320a707d99520abfefca3998b7f", symbol: "amUSDC", coinGeckoId: "aave-polygon-usdc", decimals: 6, price: 0.997842}, // Addr: 0x1a13f4ca1d028320a707d99520abfefca3998b7f, Notional: 19.534002456816 - {chain: 5, addr: "000000000000000000000000b25e20de2f2ebb4cffd4d16a55c7b395e8a94762", symbol: "REQ", coinGeckoId: "request-network", decimals: 18, price: 0.114236}, // Addr: 0xb25e20de2f2ebb4cffd4d16a55c7b395e8a94762, Notional: 5.7118 - {chain: 5, addr: "00000000000000000000000034c1b299a74588d6abdc1b85a53345a48428a521", symbol: "EZ", coinGeckoId: "easyfi", decimals: 18, price: 0.03900719}, // Addr: 0x34c1b299a74588d6abdc1b85a53345a48428a521, Notional: 0.15602876 - {chain: 5, addr: "0000000000000000000000004e78011ce80ee02d2c3e649fb657e45898257815", symbol: "KLIMA", coinGeckoId: "klima-dao", decimals: 9, price: 2.1}, // Addr: 0x4e78011ce80ee02d2c3e649fb657e45898257815, Notional: 1.419712182 - {chain: 5, addr: "00000000000000000000000050b728d8d964fd00c2d0aad81718b71311fef68a", symbol: "SNX", coinGeckoId: "havven", decimals: 18, price: 2.55}, // Addr: 0x50b728d8d964fd00c2d0aad81718b71311fef68a, Notional: 2.805 - {chain: 5, addr: "0000000000000000000000002ab0e9e4ee70fff1fb9d67031e44f6410170d00e", symbol: "mXEN", coinGeckoId: "xen-crypto-matic", decimals: 18, price: 4.25659e-10}, // Addr: 0x2ab0e9e4ee70fff1fb9d67031e44f6410170d00e, Notional: 44.159939428013175 - {chain: 5, addr: "0000000000000000000000000d500b1d8e8ef31e21c99d1db9a6444d3adf1270", symbol: "WMATIC", coinGeckoId: "wmatic", decimals: 18, price: 0.670812}, // Addr: 0x0d500b1d8e8ef31e21c99d1db9a6444d3adf1270, Notional: 979376.6093273329 - {chain: 5, addr: "000000000000000000000000d8ca34fd379d9ca3c6ee3b3905678320f5b45195", symbol: "gOHM", coinGeckoId: "governance-ohm", decimals: 18, price: 3266.92}, // Addr: 0xd8ca34fd379d9ca3c6ee3b3905678320f5b45195, Notional: 24.1540056892 - {chain: 5, addr: "000000000000000000000000444444444444c1a66f394025ac839a535246fcc8", symbol: "GENI", coinGeckoId: "genius", decimals: 9, price: 0.00000608}, // Addr: 0x444444444444c1a66f394025ac839a535246fcc8, Notional: 14.580803009038926 - {chain: 5, addr: "00000000000000000000000018e73a5333984549484348a94f4d219f4fab7b81", symbol: "DUCKIES", coinGeckoId: "duckies", decimals: 8, price: 0.00469706}, // Addr: 0x18e73a5333984549484348a94f4d219f4fab7b81, Notional: 0.0469706 - {chain: 5, addr: "000000000000000000000000a649325aa7c5093d12d6f98eb4378deae68ce23f", symbol: "BNB", coinGeckoId: "wbnb", decimals: 18, price: 551.03}, // Addr: 0xa649325aa7c5093d12d6f98eb4378deae68ce23f, Notional: 2883.6790975235 - {chain: 5, addr: "000000000000000000000000596ebe76e2db4470966ea395b0d063ac6197a8c5", symbol: "JRT", coinGeckoId: "jarvis-reward-token", decimals: 18, price: 0.00559926}, // Addr: 0x596ebe76e2db4470966ea395b0d063ac6197a8c5, Notional: 559.93159926 - {chain: 5, addr: "000000000000000000000000f28164a485b0b2c90639e47b0f377b4a438a16b1", symbol: "dQUICK", coinGeckoId: "dragons-quick", decimals: 18, price: 0.070222}, // Addr: 0xf28164a485b0b2c90639e47b0f377b4a438a16b1, Notional: 0.00017094843680000004 - {chain: 5, addr: "000000000000000000000000d838290e877e0188a4a44700463419ed96c16107", symbol: "NCT", coinGeckoId: "toucan-protocol-base-carbon-tonne", decimals: 18, price: 0.645118}, // Addr: 0xd838290e877e0188a4a44700463419ed96c16107, Notional: 29.03031 - {chain: 5, addr: "0000000000000000000000001379e8886a944d2d9d440b3d88df536aea08d9f3", symbol: "MYST", coinGeckoId: "mysterium", decimals: 18, price: 0.160526}, // Addr: 0x1379e8886a944d2d9d440b3d88df536aea08d9f3, Notional: 0.25972833584748 - {chain: 5, addr: "000000000000000000000000236aa50979d5f3de3bd1eeb40e81137f22ab794b", symbol: "tBTC", coinGeckoId: "tbtc", decimals: 18, price: 57559}, // Addr: 0x236aa50979d5f3de3bd1eeb40e81137f22ab794b, Notional: 0.01554093 - {chain: 5, addr: "000000000000000000000000229b1b6c23ff8953d663c4cbb519717e323a0a84", symbol: "BLOK", coinGeckoId: "bloktopia", decimals: 18, price: 0.00138954}, // Addr: 0x229b1b6c23ff8953d663c4cbb519717e323a0a84, Notional: 0.10957055549589122 - {chain: 5, addr: "00000000000000000000000003b54a6e9a984069379fae1a4fc4dbae93b3bccd", symbol: "wstETH", coinGeckoId: "wrapped-steth", decimals: 18, price: 3375.92}, // Addr: 0x03b54a6e9a984069379fae1a4fc4dbae93b3bccd, Notional: 31.421780510400005 - {chain: 5, addr: "000000000000000000000000714db550b574b3e927af3d93e26127d15721d4c2", symbol: "GMT", coinGeckoId: "stepn", decimals: 8, price: 0.209767}, // Addr: 0x714db550b574b3e927af3d93e26127d15721d4c2, Notional: 8.2857965 - {chain: 5, addr: "0000000000000000000000008eef5a82e6aa222a60f009ac18c24ee12dbf4b41", symbol: "TXL", coinGeckoId: "autobahn-network", decimals: 18, price: 0.00430776}, // Addr: 0x8eef5a82e6aa222a60f009ac18c24ee12dbf4b41, Notional: 0.0000430776 - {chain: 5, addr: "000000000000000000000000a7051c5a22d963b81d71c2ba64d46a877fbc1821", symbol: "EROWAN", coinGeckoId: "sifchain", decimals: 18, price: 0.00001287}, // Addr: 0xa7051c5a22d963b81d71c2ba64d46a877fbc1821, Notional: 0.0001251029537901 - {chain: 5, addr: "000000000000000000000000edcfb6984a3c70501baa8b7f5421ae795ecc1496", symbol: "META", coinGeckoId: "abcmeta", decimals: 8, price: 0.00000317}, // Addr: 0xedcfb6984a3c70501baa8b7f5421ae795ecc1496, Notional: 0.09690373000000001 - {chain: 5, addr: "00000000000000000000000018ec0a6e18e5bc3784fdd3a3634b31245ab704f6", symbol: "EURe", coinGeckoId: "monerium-eur-money", decimals: 18, price: 1.067}, // Addr: 0x18ec0a6e18e5bc3784fdd3a3634b31245ab704f6, Notional: 0.3201 - {chain: 5, addr: "0000000000000000000000007ceb23fd6bc0add59e62ac25578270cff1b9f619", symbol: "WETH", coinGeckoId: "weth", decimals: 18, price: 2901.39}, // Addr: 0x7ceb23fd6bc0add59e62ac25578270cff1b9f619, Notional: 168691.6063616406 - {chain: 5, addr: "000000000000000000000000eeeeeb57642040be42185f49c52f7e9b38f8eeee", symbol: "ELK", coinGeckoId: "elk-finance", decimals: 18, price: 0.115901}, // Addr: 0xeeeeeb57642040be42185f49c52f7e9b38f8eeee, Notional: 0.231802 - {chain: 5, addr: "000000000000000000000000200c234721b5e549c3693ccc93cf191f90dc2af9", symbol: "METAL", coinGeckoId: "drunk-robots", decimals: 18, price: 0.03481267}, // Addr: 0x200c234721b5e549c3693ccc93cf191f90dc2af9, Notional: 0.4046645665808335 - {chain: 5, addr: "000000000000000000000000411bc96881a62572ff33c9d8ce60df99e3d96cd8", symbol: "MRST", coinGeckoId: "the-mars", decimals: 18, price: 0.00197657}, // Addr: 0x411bc96881a62572ff33c9d8ce60df99e3d96cd8, Notional: 0.32415748 - {chain: 5, addr: "000000000000000000000000930a7dc10ae084fbbddc6537d7df7d4c65a40944", symbol: "UNLOCK", coinGeckoId: "unlock", decimals: 18, price: 0.00393134}, // Addr: 0x930a7dc10ae084fbbddc6537d7df7d4c65a40944, Notional: 0.39313400000000004 - {chain: 5, addr: "00000000000000000000000008e175a1eac9744a0f1ccaeb8f669af6a2bda3ce", symbol: "E8", coinGeckoId: "energy8", decimals: 9, price: 1.873e-9}, // Addr: 0x08e175a1eac9744a0f1ccaeb8f669af6a2bda3ce, Notional: 23.950326841597 - {chain: 5, addr: "000000000000000000000000f21441f9ec4c1fe69cb7cf186eceab31af2b658d", symbol: "VENT", coinGeckoId: "vent-finance", decimals: 18, price: 0.00951791}, // Addr: 0xf21441f9ec4c1fe69cb7cf186eceab31af2b658d, Notional: 58.059250999999996 - {chain: 5, addr: "000000000000000000000000692597b009d13c4049a947cab2239b7d6517875f", symbol: "UST", coinGeckoId: "wrapped-ust", decimals: 18, price: 0.065163}, // Addr: 0x692597b009d13c4049a947cab2239b7d6517875f, Notional: 1037.7856435518615 - {chain: 5, addr: "0000000000000000000000008765f05adce126d70bcdf1b0a48db573316662eb", symbol: "PLA", coinGeckoId: "playdapp", decimals: 18, price: 0.070561}, // Addr: 0x8765f05adce126d70bcdf1b0a48db573316662eb, Notional: 109.722355 - {chain: 5, addr: "000000000000000000000000e261d618a959afffd53168cd07d12e37b26761db", symbol: "DIMO", coinGeckoId: "dimo", decimals: 18, price: 0.260232}, // Addr: 0xe261d618a959afffd53168cd07d12e37b26761db, Notional: 6323.887104154395 - {chain: 5, addr: "000000000000000000000000e9993763e0b7f7d915a62a5f22a6e151f91d98a8", symbol: "TORG", coinGeckoId: "torg", decimals: 18, price: 5.0529e-8}, // Addr: 0xe9993763e0b7f7d915a62a5f22a6e151f91d98a8, Notional: 0.01567300344017071 - {chain: 5, addr: "0000000000000000000000004e1581f01046efdd7a1a2cdb0f82cdd7f71f2e59", symbol: "ICE", coinGeckoId: "ice-token", decimals: 18, price: 0.560646}, // Addr: 0x4e1581f01046efdd7a1a2cdb0f82cdd7f71f2e59, Notional: 58.05316427334246 - {chain: 5, addr: "000000000000000000000000c2132d05d31c914a87c6611c10748aeb04b58e8f", symbol: "USDT", coinGeckoId: "tether", decimals: 6, price: 0.999172}, // Addr: 0xc2132d05d31c914a87c6611c10748aeb04b58e8f, Notional: 141403.57200601633 - {chain: 5, addr: "0000000000000000000000004a81f8796e0c6ad4877a51c86693b0de8093f2ef", symbol: "ICE", coinGeckoId: "iron-finance", decimals: 18, price: 0.00000471}, // Addr: 0x4a81f8796e0c6ad4877a51c86693b0de8093f2ef, Notional: 0.6195298499999999 - {chain: 5, addr: "000000000000000000000000111111517e4929d3dcbdfa7cce55d30d4b6bc4d6", symbol: "ICHI", coinGeckoId: "ichi-farm", decimals: 18, price: 2.17}, // Addr: 0x111111517e4929d3dcbdfa7cce55d30d4b6bc4d6, Notional: 0.0000011718 - {chain: 5, addr: "000000000000000000000000bbfe0b60de96a189bf09079de86a2db7bf0c7883", symbol: "eLunr", coinGeckoId: "lunr-token", decimals: 4, price: 0.073841}, // Addr: 0xbbfe0b60de96a189bf09079de86a2db7bf0c7883, Notional: 150.6717704013 - {chain: 5, addr: "0000000000000000000000009085b4d52c3e0b8b6f9af6213e85a433c7d76f19", symbol: "OWL", coinGeckoId: "owldao", decimals: 18, price: 0.00393058}, // Addr: 0x9085b4d52c3e0b8b6f9af6213e85a433c7d76f19, Notional: 0.8475907175566649 - {chain: 5, addr: "00000000000000000000000091c5a5488c0decde1eacd8a4f10e0942fb925067", symbol: "AUDT", coinGeckoId: "auditchain", decimals: 18, price: 0.052302}, // Addr: 0x91c5a5488c0decde1eacd8a4f10e0942fb925067, Notional: 523.02 - {chain: 5, addr: "0000000000000000000000002d66953fc2eb650f0fd992dbe1e71d743a4e9fee", symbol: "NOTES", coinGeckoId: "backstage-pass-notes", decimals: 9, price: 0.078742}, // Addr: 0x2d66953fc2eb650f0fd992dbe1e71d743a4e9fee, Notional: 7.874200000000001 + {chain: 4, addr: "0000000000000000000000002f29bc0ffaf9bff337b31cbe6cb5fb3bf12e5840", symbol: "DOLA", coinGeckoId: "dola-usd", decimals: 18, price: 0.995001}, // Addr: 0x2f29bc0ffaf9bff337b31cbe6cb5fb3bf12e5840, Notional: 204.67603611350216 + {chain: 5, addr: "000000000000000000000000aaa5b9e6c589642f98a1cda99b9d024b8407285a", symbol: "TITAN", coinGeckoId: "iron-titanium-token", decimals: 18, price: 1.9985e-8}, // Addr: 0xaaa5b9e6c589642f98a1cda99b9d024b8407285a, Notional: 12.094066244354034 + {chain: 5, addr: "000000000000000000000000bbbbbbbbb7949dcc7d1539c91b81a5bf09e37bdb", symbol: "CAW", coinGeckoId: "crow-with-knife", decimals: 18, price: 4.6493e-8}, // Addr: 0xbbbbbbbbb7949dcc7d1539c91b81a5bf09e37bdb, Notional: 2106.585502824048 + {chain: 5, addr: "0000000000000000000000000308a3a9c433256ad7ef24dbef9c49c8cb01300a", symbol: "GPO", coinGeckoId: "goldpesa-option", decimals: 18, price: 0.804786}, // Addr: 0x0308a3a9c433256ad7ef24dbef9c49c8cb01300a, Notional: 19.314864 + {chain: 5, addr: "000000000000000000000000723b17718289a91af252d616de2c77944962d122", symbol: "GAIA", coinGeckoId: "gaia-everworld", decimals: 18, price: 0.00324113}, // Addr: 0x723b17718289a91af252d616de2c77944962d122, Notional: 0.0313694499109872 + {chain: 5, addr: "00000000000000000000000030ea765d4dda26e0f89e1b23a7c7b2526b7d29ec", symbol: "POLYPAD", coinGeckoId: "polypad", decimals: 18, price: 0.00070673}, // Addr: 0x30ea765d4dda26e0f89e1b23a7c7b2526b7d29ec, Notional: 110.92638134247319 + {chain: 5, addr: "000000000000000000000000fbdd194376de19a88118e84e279b977f165d01b8", symbol: "BIFI", coinGeckoId: "beefy-finance", decimals: 18, price: 274.44}, // Addr: 0xfbdd194376de19a88118e84e279b977f165d01b8, Notional: 21832.1846740944 + {chain: 5, addr: "0000000000000000000000008f006d1e1d9dc6c98996f50a4c810f17a47fbf19", symbol: "NSFW", coinGeckoId: "pleasure-coin", decimals: 18, price: 0.00001898}, // Addr: 0x8f006d1e1d9dc6c98996f50a4c810f17a47fbf19, Notional: 16473.440345399602 + {chain: 5, addr: "000000000000000000000000ba777ae3a3c91fcd83ef85bfe65410592bdd0f7c", symbol: "CONE", coinGeckoId: "bitcone", decimals: 18, price: 0.0000018}, // Addr: 0xba777ae3a3c91fcd83ef85bfe65410592bdd0f7c, Notional: 9.414666 + {chain: 5, addr: "000000000000000000000000cf32822ff397ef82425153a9dcb726e5ff61dca7", symbol: "GMEE", coinGeckoId: "gamee", decimals: 18, price: 0.01772613}, // Addr: 0xcf32822ff397ef82425153a9dcb726e5ff61dca7, Notional: 239.51502972518978 + {chain: 5, addr: "0000000000000000000000009cb74c8032b007466865f060ad2c46145d45553d", symbol: "IDEX", coinGeckoId: "aurora-dao", decimals: 18, price: 0.03192344}, // Addr: 0x9cb74c8032b007466865f060ad2c46145d45553d, Notional: 0.193711089146848 + {chain: 5, addr: "0000000000000000000000001a13f4ca1d028320a707d99520abfefca3998b7f", symbol: "amUSDC", coinGeckoId: "aave-polygon-usdc", decimals: 6, price: 0.999455}, // Addr: 0x1a13f4ca1d028320a707d99520abfefca3998b7f, Notional: 19.56557894484 + {chain: 5, addr: "000000000000000000000000b25e20de2f2ebb4cffd4d16a55c7b395e8a94762", symbol: "REQ", coinGeckoId: "request-network", decimals: 18, price: 0.093083}, // Addr: 0xb25e20de2f2ebb4cffd4d16a55c7b395e8a94762, Notional: 4.65415 + {chain: 5, addr: "00000000000000000000000034c1b299a74588d6abdc1b85a53345a48428a521", symbol: "EZ", coinGeckoId: "easyfi", decimals: 18, price: 0.00940692}, // Addr: 0x34c1b299a74588d6abdc1b85a53345a48428a521, Notional: 0.03762768 + {chain: 5, addr: "0000000000000000000000004e78011ce80ee02d2c3e649fb657e45898257815", symbol: "KLIMA", coinGeckoId: "klima-dao", decimals: 9, price: 1.43}, // Addr: 0x4e78011ce80ee02d2c3e649fb657e45898257815, Notional: 0.9667563906 + {chain: 5, addr: "00000000000000000000000050b728d8d964fd00c2d0aad81718b71311fef68a", symbol: "SNX", coinGeckoId: "havven", decimals: 18, price: 1.34}, // Addr: 0x50b728d8d964fd00c2d0aad81718b71311fef68a, Notional: 1.4740000000000002 + {chain: 5, addr: "0000000000000000000000002ab0e9e4ee70fff1fb9d67031e44f6410170d00e", symbol: "mXEN", coinGeckoId: "xen-crypto-matic", decimals: 18, price: 1.15643e-10}, // Addr: 0x2ab0e9e4ee70fff1fb9d67031e44f6410170d00e, Notional: 11.997368492792887 + {chain: 5, addr: "0000000000000000000000000d500b1d8e8ef31e21c99d1db9a6444d3adf1270", symbol: "WMATIC", coinGeckoId: "wmatic", decimals: 18, price: 0.423468}, // Addr: 0x0d500b1d8e8ef31e21c99d1db9a6444d3adf1270, Notional: 485818.95100363554 + {chain: 5, addr: "000000000000000000000000d8ca34fd379d9ca3c6ee3b3905678320f5b45195", symbol: "gOHM", coinGeckoId: "governance-ohm", decimals: 18, price: 3769.81}, // Addr: 0xd8ca34fd379d9ca3c6ee3b3905678320f5b45195, Notional: 27.8721279331 + {chain: 5, addr: "000000000000000000000000444444444444c1a66f394025ac839a535246fcc8", symbol: "GENI", coinGeckoId: "genius", decimals: 9, price: 0.00000358}, // Addr: 0x444444444444c1a66f394025ac839a535246fcc8, Notional: 8.585407034927524 + {chain: 5, addr: "00000000000000000000000018e73a5333984549484348a94f4d219f4fab7b81", symbol: "DUCKIES", coinGeckoId: "duckies", decimals: 8, price: 0.00362904}, // Addr: 0x18e73a5333984549484348a94f4d219f4fab7b81, Notional: 0.0362904 + {chain: 5, addr: "000000000000000000000000a649325aa7c5093d12d6f98eb4378deae68ce23f", symbol: "BNB", coinGeckoId: "wbnb", decimals: 18, price: 523.88}, // Addr: 0xa649325aa7c5093d12d6f98eb4378deae68ce23f, Notional: 2772.007527506 + {chain: 5, addr: "000000000000000000000000596ebe76e2db4470966ea395b0d063ac6197a8c5", symbol: "JRT", coinGeckoId: "jarvis-reward-token", decimals: 18, price: 0.00430604}, // Addr: 0x596ebe76e2db4470966ea395b0d063ac6197a8c5, Notional: 430.60830603999995 + {chain: 5, addr: "000000000000000000000000f28164a485b0b2c90639e47b0f377b4a438a16b1", symbol: "dQUICK", coinGeckoId: "dragons-quick", decimals: 18, price: 0.0485881}, // Addr: 0xf28164a485b0b2c90639e47b0f377b4a438a16b1, Notional: 0.00011828287064000001 + {chain: 5, addr: "000000000000000000000000d838290e877e0188a4a44700463419ed96c16107", symbol: "NCT", coinGeckoId: "toucan-protocol-base-carbon-tonne", decimals: 18, price: 0.591816}, // Addr: 0xd838290e877e0188a4a44700463419ed96c16107, Notional: 26.63172 + {chain: 5, addr: "0000000000000000000000001379e8886a944d2d9d440b3d88df536aea08d9f3", symbol: "MYST", coinGeckoId: "mysterium", decimals: 18, price: 0.186688}, // Addr: 0x1379e8886a944d2d9d440b3d88df536aea08d9f3, Notional: 0.30205800657024 + {chain: 5, addr: "000000000000000000000000236aa50979d5f3de3bd1eeb40e81137f22ab794b", symbol: "tBTC", coinGeckoId: "tbtc", decimals: 18, price: 58729}, // Addr: 0x236aa50979d5f3de3bd1eeb40e81137f22ab794b, Notional: 0.01585683 + {chain: 5, addr: "000000000000000000000000229b1b6c23ff8953d663c4cbb519717e323a0a84", symbol: "BLOK", coinGeckoId: "bloktopia", decimals: 18, price: 0.00079231}, // Addr: 0x229b1b6c23ff8953d663c4cbb519717e323a0a84, Notional: 0.062476680646076796 + {chain: 5, addr: "00000000000000000000000003b54a6e9a984069379fae1a4fc4dbae93b3bccd", symbol: "wstETH", coinGeckoId: "wrapped-steth", decimals: 18, price: 3128.91}, // Addr: 0x03b54a6e9a984069379fae1a4fc4dbae93b3bccd, Notional: 29.122705294200003 + {chain: 5, addr: "000000000000000000000000714db550b574b3e927af3d93e26127d15721d4c2", symbol: "GMT", coinGeckoId: "stepn", decimals: 8, price: 0.109983}, // Addr: 0x714db550b574b3e927af3d93e26127d15721d4c2, Notional: 4.3443285 + {chain: 5, addr: "0000000000000000000000008eef5a82e6aa222a60f009ac18c24ee12dbf4b41", symbol: "TXL", coinGeckoId: "autobahn-network", decimals: 18, price: 0.00277273}, // Addr: 0x8eef5a82e6aa222a60f009ac18c24ee12dbf4b41, Notional: 0.0000277273 + {chain: 5, addr: "000000000000000000000000a7051c5a22d963b81d71c2ba64d46a877fbc1821", symbol: "EROWAN", coinGeckoId: "sifchain", decimals: 18, price: 0.00000693}, // Addr: 0xa7051c5a22d963b81d71c2ba64d46a877fbc1821, Notional: 0.0000673631289639 + {chain: 5, addr: "000000000000000000000000edcfb6984a3c70501baa8b7f5421ae795ecc1496", symbol: "META", coinGeckoId: "abcmeta", decimals: 8, price: 1.68131e-7}, // Addr: 0xedcfb6984a3c70501baa8b7f5421ae795ecc1496, Notional: 0.005139596539000001 + {chain: 5, addr: "00000000000000000000000018ec0a6e18e5bc3784fdd3a3634b31245ab704f6", symbol: "EURe", coinGeckoId: "monerium-eur-money", decimals: 18, price: 1.099}, // Addr: 0x18ec0a6e18e5bc3784fdd3a3634b31245ab704f6, Notional: 0.3297 + {chain: 5, addr: "0000000000000000000000007ceb23fd6bc0add59e62ac25578270cff1b9f619", symbol: "WETH", coinGeckoId: "weth", decimals: 18, price: 2661.57}, // Addr: 0x7ceb23fd6bc0add59e62ac25578270cff1b9f619, Notional: 155210.30324482592 + {chain: 5, addr: "000000000000000000000000eeeeeb57642040be42185f49c52f7e9b38f8eeee", symbol: "ELK", coinGeckoId: "elk-finance", decimals: 18, price: 0.075027}, // Addr: 0xeeeeeb57642040be42185f49c52f7e9b38f8eeee, Notional: 0.150054 + {chain: 5, addr: "000000000000000000000000200c234721b5e549c3693ccc93cf191f90dc2af9", symbol: "METAL", coinGeckoId: "drunk-robots", decimals: 18, price: 0.02012052}, // Addr: 0x200c234721b5e549c3693ccc93cf191f90dc2af9, Notional: 2.332150560917226 + {chain: 5, addr: "000000000000000000000000411bc96881a62572ff33c9d8ce60df99e3d96cd8", symbol: "MRST", coinGeckoId: "the-mars", decimals: 18, price: 0.00107556}, // Addr: 0x411bc96881a62572ff33c9d8ce60df99e3d96cd8, Notional: 0.17639184 + {chain: 5, addr: "000000000000000000000000930a7dc10ae084fbbddc6537d7df7d4c65a40944", symbol: "UNLOCK", coinGeckoId: "unlock", decimals: 18, price: 0.00176187}, // Addr: 0x930a7dc10ae084fbbddc6537d7df7d4c65a40944, Notional: 0.176187 + {chain: 5, addr: "00000000000000000000000008e175a1eac9744a0f1ccaeb8f669af6a2bda3ce", symbol: "E8", coinGeckoId: "energy8", decimals: 9, price: 1.283e-9}, // Addr: 0x08e175a1eac9744a0f1ccaeb8f669af6a2bda3ce, Notional: 16.405909950757582 + {chain: 5, addr: "000000000000000000000000f21441f9ec4c1fe69cb7cf186eceab31af2b658d", symbol: "VENT", coinGeckoId: "vent-finance", decimals: 18, price: 0.00477315}, // Addr: 0xf21441f9ec4c1fe69cb7cf186eceab31af2b658d, Notional: 29.116215 + {chain: 5, addr: "000000000000000000000000692597b009d13c4049a947cab2239b7d6517875f", symbol: "UST", coinGeckoId: "wrapped-ust", decimals: 18, price: 0.01610185}, // Addr: 0x692597b009d13c4049a947cab2239b7d6517875f, Notional: 256.43799034153653 + {chain: 5, addr: "0000000000000000000000008765f05adce126d70bcdf1b0a48db573316662eb", symbol: "PLA", coinGeckoId: "playdapp", decimals: 18, price: 0.04560132}, // Addr: 0x8765f05adce126d70bcdf1b0a48db573316662eb, Notional: 70.9100526 + {chain: 5, addr: "000000000000000000000000e261d618a959afffd53168cd07d12e37b26761db", symbol: "DIMO", coinGeckoId: "dimo", decimals: 18, price: 0.131392}, // Addr: 0xe261d618a959afffd53168cd07d12e37b26761db, Notional: 3193.4771434751697 + {chain: 5, addr: "000000000000000000000000e9993763e0b7f7d915a62a5f22a6e151f91d98a8", symbol: "TORG", coinGeckoId: "torg", decimals: 18, price: 3.5902e-8}, // Addr: 0xe9993763e0b7f7d915a62a5f22a6e151f91d98a8, Notional: 0.011136024253577327 + {chain: 5, addr: "0000000000000000000000004e1581f01046efdd7a1a2cdb0f82cdd7f71f2e59", symbol: "ICE", coinGeckoId: "ice-token", decimals: 18, price: 0.229118}, // Addr: 0x4e1581f01046efdd7a1a2cdb0f82cdd7f71f2e59, Notional: 23.72446230237918 + {chain: 5, addr: "000000000000000000000000c2132d05d31c914a87c6611c10748aeb04b58e8f", symbol: "USDT", coinGeckoId: "tether", decimals: 6, price: 0.999545}, // Addr: 0xc2132d05d31c914a87c6611c10748aeb04b58e8f, Notional: 155774.97834185945 + {chain: 5, addr: "0000000000000000000000004a81f8796e0c6ad4877a51c86693b0de8093f2ef", symbol: "ICE", coinGeckoId: "iron-finance", decimals: 18, price: 0.00000429}, // Addr: 0x4a81f8796e0c6ad4877a51c86693b0de8093f2ef, Notional: 0.5642851499999999 + {chain: 5, addr: "000000000000000000000000111111517e4929d3dcbdfa7cce55d30d4b6bc4d6", symbol: "ICHI", coinGeckoId: "ichi-farm", decimals: 18, price: 1.35}, // Addr: 0x111111517e4929d3dcbdfa7cce55d30d4b6bc4d6, Notional: 7.29e-7 + {chain: 5, addr: "000000000000000000000000bbfe0b60de96a189bf09079de86a2db7bf0c7883", symbol: "eLunr", coinGeckoId: "lunr-token", decimals: 4, price: 0.04647482}, // Addr: 0xbbfe0b60de96a189bf09079de86a2db7bf0c7883, Notional: 94.831372929426 + {chain: 5, addr: "0000000000000000000000009085b4d52c3e0b8b6f9af6213e85a433c7d76f19", symbol: "OWL", coinGeckoId: "owldao", decimals: 18, price: 0.00448513}, // Addr: 0x9085b4d52c3e0b8b6f9af6213e85a433c7d76f19, Notional: 0.9671739425313629 + {chain: 5, addr: "00000000000000000000000091c5a5488c0decde1eacd8a4f10e0942fb925067", symbol: "AUDT", coinGeckoId: "auditchain", decimals: 18, price: 0.01458071}, // Addr: 0x91c5a5488c0decde1eacd8a4f10e0942fb925067, Notional: 145.8071 + {chain: 5, addr: "0000000000000000000000002d66953fc2eb650f0fd992dbe1e71d743a4e9fee", symbol: "NOTES", coinGeckoId: "backstage-pass-notes", decimals: 9, price: 0.01527333}, // Addr: 0x2d66953fc2eb650f0fd992dbe1e71d743a4e9fee, Notional: 1.527333 {chain: 5, addr: "000000000000000000000000323665443cef804a3b5206103304bd4872ea4253", symbol: "USDV", coinGeckoId: "verified-usd-foundation-usdv", decimals: 6, price: 1}, // Addr: 0x323665443cef804a3b5206103304bd4872ea4253, Notional: 3.002609 - {chain: 5, addr: "0000000000000000000000004c9f66b2806538cf00ef596e09fb05bcb0d17dc8", symbol: "MNTO", coinGeckoId: "minato", decimals: 18, price: 2.51}, // Addr: 0x4c9f66b2806538cf00ef596e09fb05bcb0d17dc8, Notional: 5.02 - {chain: 5, addr: "000000000000000000000000ee9801669c6138e84bd50deb500827b776777d28", symbol: "O3", coinGeckoId: "o3-swap", decimals: 18, price: 0.03176824}, // Addr: 0xee9801669c6138e84bd50deb500827b776777d28, Notional: 45.2252720939675 - {chain: 5, addr: "00000000000000000000000004429fbb948bbd09327763214b45e505a5293346", symbol: "ABR", coinGeckoId: "allbridge", decimals: 18, price: 0.249807}, // Addr: 0x04429fbb948bbd09327763214b45e505a5293346, Notional: 91.30345350395638 - {chain: 5, addr: "0000000000000000000000009e20461bc2c4c980f62f1b279d71734207a6a356", symbol: "OMNI", coinGeckoId: "omnicat", decimals: 18, price: 0.00037669}, // Addr: 0x9e20461bc2c4c980f62f1b279d71734207a6a356, Notional: 522.1228064538067 - {chain: 5, addr: "000000000000000000000000dc3326e71d45186f113a2f448984ca0e8d201995", symbol: "XSGD", coinGeckoId: "xsgd", decimals: 6, price: 0.729354}, // Addr: 0xdc3326e71d45186f113a2f448984ca0e8d201995, Notional: 1.458708 - {chain: 5, addr: "000000000000000000000000aa404804ba583c025fa64c9a276a6127ceb355c6", symbol: "CPR", coinGeckoId: "cipher-2", decimals: 2, price: 0.00051489}, // Addr: 0xaa404804ba583c025fa64c9a276a6127ceb355c6, Notional: 17136.600089653803 - {chain: 5, addr: "000000000000000000000000d86b5923f3ad7b585ed81b448170ae026c65ae9a", symbol: "IRON", coinGeckoId: "iron-stablecoin", decimals: 18, price: 0.00025841}, // Addr: 0xd86b5923f3ad7b585ed81b448170ae026c65ae9a, Notional: 52.015678896883 - {chain: 5, addr: "000000000000000000000000b87904db461005fc716a6bf9f2d451c33b10b80b", symbol: "AMKT", coinGeckoId: "alongside-crypto-market-index", decimals: 18, price: 178.82}, // Addr: 0xb87904db461005fc716a6bf9f2d451c33b10b80b, Notional: 9.213512738999999 - {chain: 5, addr: "00000000000000000000000046d502fac9aea7c5bc7b13c8ec9d02378c33d36f", symbol: "WSPP", coinGeckoId: "wolfsafepoorpeople-polygon", decimals: 18, price: 9.99e-9}, // Addr: 0x46d502fac9aea7c5bc7b13c8ec9d02378c33d36f, Notional: 0.2997 - {chain: 5, addr: "000000000000000000000000430ef9263e76dae63c84292c3409d61c598e9682", symbol: "PYR", coinGeckoId: "vulcan-forged", decimals: 18, price: 4.12}, // Addr: 0x430ef9263e76dae63c84292c3409d61c598e9682, Notional: 45.200520000000004 - {chain: 5, addr: "0000000000000000000000002791bca1f2de4661ed88a30c99a7a9449aa84174", symbol: "USDC", coinGeckoId: "usd-coin", decimals: 6, price: 1}, // Addr: 0x2791bca1f2de4661ed88a30c99a7a9449aa84174, Notional: 4230740.714078 - {chain: 5, addr: "000000000000000000000000a5eb60ca85898f8b26e18ff7c7e43623ccba772c", symbol: "COSMIC", coinGeckoId: "cosmicswap", decimals: 18, price: 0.04063697}, // Addr: 0xa5eb60ca85898f8b26e18ff7c7e43623ccba772c, Notional: 29.147988000780074 - {chain: 5, addr: "0000000000000000000000000d6ae2a429df13e44a07cd2969e085e4833f64a0", symbol: "PBR", coinGeckoId: "polkabridge", decimals: 18, price: 0.059687}, // Addr: 0x0d6ae2a429df13e44a07cd2969e085e4833f64a0, Notional: 626.8797148164816 - {chain: 5, addr: "0000000000000000000000004fb71290ac171e1d144f7221d882becac7196eb5", symbol: "TRYB", coinGeckoId: "bilira", decimals: 6, price: 0.03098303}, // Addr: 0x4fb71290ac171e1d144f7221d882becac7196eb5, Notional: 9.72777718778814 - {chain: 5, addr: "0000000000000000000000006ccf12b480a99c54b23647c995f4525d544a7e72", symbol: "START", coinGeckoId: "bscstarter", decimals: 18, price: 0.212731}, // Addr: 0x6ccf12b480a99c54b23647c995f4525d544a7e72, Notional: 587.4595672535995 - {chain: 5, addr: "0000000000000000000000008d1566569d5b695d44a9a234540f68d393cdc40d", symbol: "GAME", coinGeckoId: "gamecredits", decimals: 18, price: 0.00905102}, // Addr: 0x8d1566569d5b695d44a9a234540f68d393cdc40d, Notional: 0.07240816 - {chain: 5, addr: "0000000000000000000000009c891326fd8b1a713974f73bb604677e1e63396d", symbol: "ISLAMI", coinGeckoId: "islamicoin", decimals: 7, price: 0.00020191}, // Addr: 0x9c891326fd8b1a713974f73bb604677e1e63396d, Notional: 0.20191 - {chain: 5, addr: "000000000000000000000000d60deba014459f07bbcc077a5b817f31dafd5229", symbol: "VATRENI", coinGeckoId: "croatian-ff-fan-token", decimals: 18, price: 0.489116}, // Addr: 0xd60deba014459f07bbcc077a5b817f31dafd5229, Notional: 0.489116 - {chain: 5, addr: "00000000000000000000000088c949b4eb85a90071f2c0bef861bddee1a7479d", symbol: "mSHEESHA", coinGeckoId: "sheesha-finance-polygon", decimals: 18, price: 0.00140737}, // Addr: 0x88c949b4eb85a90071f2c0bef861bddee1a7479d, Notional: 0.0703685 - {chain: 5, addr: "00000000000000000000000045c32fa6df82ead1e2ef74d17b76547eddfaff89", symbol: "FRAX", coinGeckoId: "frax", decimals: 18, price: 0.99874}, // Addr: 0x45c32fa6df82ead1e2ef74d17b76547eddfaff89, Notional: 9.9954922109508 - {chain: 5, addr: "000000000000000000000000e8d17b127ba8b9899a160d9a07b69bca8e08bfc6", symbol: "NSDX", coinGeckoId: "nasdex-token", decimals: 18, price: 0.107451}, // Addr: 0xe8d17b127ba8b9899a160d9a07b69bca8e08bfc6, Notional: 4.835295 - {chain: 5, addr: "000000000000000000000000eee3371b89fc43ea970e908536fcddd975135d8a", symbol: "DOG", coinGeckoId: "the-doge-nft", decimals: 18, price: 0.01189264}, // Addr: 0xeee3371b89fc43ea970e908536fcddd975135d8a, Notional: 0.01189264 - {chain: 5, addr: "000000000000000000000000e0bceef36f3a6efdd5eebfacd591423f8549b9d5", symbol: "FACTR", coinGeckoId: "defactor", decimals: 18, price: 0.121663}, // Addr: 0xe0bceef36f3a6efdd5eebfacd591423f8549b9d5, Notional: 4.68579704589267 - {chain: 5, addr: "00000000000000000000000022e3f02f86bc8ea0d73718a2ae8851854e62adc5", symbol: "FLAME", coinGeckoId: "firestarter", decimals: 18, price: 0.064585}, // Addr: 0x22e3f02f86bc8ea0d73718a2ae8851854e62adc5, Notional: 11707.95151900576 - {chain: 5, addr: "000000000000000000000000613a489785c95afeb3b404cc41565ccff107b6e0", symbol: "RADIO", coinGeckoId: "radioshack", decimals: 18, price: 0.00056465}, // Addr: 0x613a489785c95afeb3b404cc41565ccff107b6e0, Notional: 0.022088374022757998 - {chain: 5, addr: "000000000000000000000000bc5eb84c052fd012bb902c258c9fd241b17c0005", symbol: "XNET", coinGeckoId: "xnet-mobile", decimals: 18, price: 0.04131586}, // Addr: 0xbc5eb84c052fd012bb902c258c9fd241b17c0005, Notional: 103376.413306 - {chain: 5, addr: "000000000000000000000000a1c57f48f0deb89f569dfbe6e2b7f46d33606fd4", symbol: "MANA", coinGeckoId: "decentraland", decimals: 18, price: 0.408926}, // Addr: 0xa1c57f48f0deb89f569dfbe6e2b7f46d33606fd4, Notional: 684.4398686350787 - {chain: 5, addr: "000000000000000000000000039d2e8f097331278bd6c1415d839310e0d5ece4", symbol: "LINDA", coinGeckoId: "linda-2", decimals: 18, price: 0.00005815}, // Addr: 0x039d2e8f097331278bd6c1415d839310e0d5ece4, Notional: 65.95757643737947 - {chain: 5, addr: "000000000000000000000000e20b9e246db5a0d21bf9209e4858bc9a3ff7a034", symbol: "wBAN", coinGeckoId: "banano", decimals: 18, price: 0.00583492}, // Addr: 0xe20b9e246db5a0d21bf9209e4858bc9a3ff7a034, Notional: 60.19000905835216 - {chain: 5, addr: "0000000000000000000000007844f79fc841e4f92d974c417031c76f8578c2d5", symbol: "OPN", coinGeckoId: "open-ticketing-ecosystem", decimals: 18, price: 0.00157816}, // Addr: 0x7844f79fc841e4f92d974c417031c76f8578c2d5, Notional: 0.20831712 - {chain: 5, addr: "00000000000000000000000070c006878a5a50ed185ac4c87d837633923de296", symbol: "REVV", coinGeckoId: "revv", decimals: 18, price: 0.00944047}, // Addr: 0x70c006878a5a50ed185ac4c87d837633923de296, Notional: 8.41535331156751 - {chain: 5, addr: "000000000000000000000000831753dd7087cac61ab5644b308642cc1c33dc13", symbol: "QUICK", coinGeckoId: "quick", decimals: 18, price: 56.86}, // Addr: 0x831753dd7087cac61ab5644b308642cc1c33dc13, Notional: 8.864326732599999 - {chain: 5, addr: "00000000000000000000000078a0a62fba6fb21a83fe8a3433d44c73a4017a6f", symbol: "OX", coinGeckoId: "open-exchange-token", decimals: 18, price: 0.00587586}, // Addr: 0x78a0a62fba6fb21a83fe8a3433d44c73a4017a6f, Notional: 0.4009662351087252 - {chain: 5, addr: "0000000000000000000000009ff62d1fc52a907b6dcba8077c2ddca6e6a9d3e1", symbol: "FORT", coinGeckoId: "forta", decimals: 18, price: 0.227741}, // Addr: 0x9ff62d1fc52a907b6dcba8077c2ddca6e6a9d3e1, Notional: 689.9601691689362 - {chain: 5, addr: "0000000000000000000000001d734a02ef1e1f5886e66b0673b71af5b53ffa94", symbol: "SD", coinGeckoId: "stader", decimals: 18, price: 0.713502}, // Addr: 0x1d734a02ef1e1f5886e66b0673b71af5b53ffa94, Notional: 108.33934963394537 - {chain: 5, addr: "0000000000000000000000002ab4f9ac80f33071211729e45cfc346c1f8446d5", symbol: "CGG", coinGeckoId: "chain-guardians", decimals: 18, price: 0.03521839}, // Addr: 0x2ab4f9ac80f33071211729e45cfc346c1f8446d5, Notional: 0.03521839 - {chain: 5, addr: "000000000000000000000000e5417af564e4bfda1c483642db72007871397896", symbol: "GNS", coinGeckoId: "gains-network", decimals: 18, price: 3.08}, // Addr: 0xe5417af564e4bfda1c483642db72007871397896, Notional: 70.84017248 - {chain: 5, addr: "0000000000000000000000007bebd226154e865954a87650faefa8f485d36081", symbol: "ZIG", coinGeckoId: "zignaly", decimals: 18, price: 0.095211}, // Addr: 0x7bebd226154e865954a87650faefa8f485d36081, Notional: 1.28575979438202 - {chain: 5, addr: "000000000000000000000000b140665dde25c644c6b418e417c930de8a8a6ac9", symbol: "ATRI", coinGeckoId: "atari", decimals: 0, price: 0.00117007}, // Addr: 0xb140665dde25c644c6b418e417c930de8a8a6ac9, Notional: 0.07488448 - {chain: 5, addr: "000000000000000000000000e78aee6ccb05471a69677fb74da80f5d251c042b", symbol: "TAKI", coinGeckoId: "taki", decimals: 18, price: 0.01910873}, // Addr: 0xe78aee6ccb05471a69677fb74da80f5d251c042b, Notional: 5.566803167785745 - {chain: 5, addr: "00000000000000000000000025788a1a171ec66da6502f9975a15b609ff54cf6", symbol: "POOL", coinGeckoId: "pooltogether", decimals: 18, price: 0.546819}, // Addr: 0x25788a1a171ec66da6502f9975a15b609ff54cf6, Notional: 9.295923 - {chain: 5, addr: "00000000000000000000000061299774020da444af134c82fa83e3810b309991", symbol: "RNDR", coinGeckoId: "render-token", decimals: 18, price: 7.2}, // Addr: 0x61299774020da444af134c82fa83e3810b309991, Notional: 149.427474552 - {chain: 5, addr: "000000000000000000000000dab529f40e671a1d4bf91361c21bf9f0c9712ab7", symbol: "BUSD", coinGeckoId: "binance-usd", decimals: 18, price: 0.997575}, // Addr: 0xdab529f40e671a1d4bf91361c21bf9f0c9712ab7, Notional: 353.8413541097445 - {chain: 5, addr: "000000000000000000000000efee2de82343be622dcb4e545f75a3b9f50c272d", symbol: "TRY", coinGeckoId: "tryhards", decimals: 18, price: 0.0003125}, // Addr: 0xefee2de82343be622dcb4e545f75a3b9f50c272d, Notional: 0.39606692937187504 - {chain: 5, addr: "0000000000000000000000002f6f07cdcf3588944bf4c42ac74ff24bf56e7590", symbol: "STG", coinGeckoId: "stargate-finance", decimals: 18, price: 0.486642}, // Addr: 0x2f6f07cdcf3588944bf4c42ac74ff24bf56e7590, Notional: 110.36967215264328 - {chain: 5, addr: "00000000000000000000000024834bbec7e39ef42f4a75eaf8e5b6486d3f0e57", symbol: "LUNA", coinGeckoId: "wrapped-terra", decimals: 18, price: 0.00003526}, // Addr: 0x24834bbec7e39ef42f4a75eaf8e5b6486d3f0e57, Notional: 12.42711652748481 - {chain: 5, addr: "0000000000000000000000001b815d120b3ef02039ee11dc2d33de7aa4a8c603", symbol: "WOO", coinGeckoId: "woo-network", decimals: 18, price: 0.272124}, // Addr: 0x1b815d120b3ef02039ee11dc2d33de7aa4a8c603, Notional: 18.86907816 - {chain: 5, addr: "000000000000000000000000a3fa99a148fa48d14ed51d610c367c61876997f1", symbol: "miMATIC", coinGeckoId: "mimatic", decimals: 18, price: 0.983962}, // Addr: 0xa3fa99a148fa48d14ed51d610c367c61876997f1, Notional: 29.43413320673602 - {chain: 5, addr: "0000000000000000000000005d47baba0d66083c52009271faf3f50dcc01023c", symbol: "BANANA", coinGeckoId: "apeswap-finance", decimals: 18, price: 0.00105649}, // Addr: 0x5d47baba0d66083c52009271faf3f50dcc01023c, Notional: 7.51254825544 - {chain: 5, addr: "0000000000000000000000000df0f72ee0e5c9b7ca761ecec42754992b2da5bf", symbol: "ATA", coinGeckoId: "automata", decimals: 18, price: 0.207412}, // Addr: 0x0df0f72ee0e5c9b7ca761ecec42754992b2da5bf, Notional: 10294.42256218308 - {chain: 5, addr: "000000000000000000000000d6df932a45c0f255f85145f286ea0b292b21c90b", symbol: "AAVE", coinGeckoId: "aave", decimals: 18, price: 80.74}, // Addr: 0xd6df932a45c0f255f85145f286ea0b292b21c90b, Notional: 703.865551829 - {chain: 5, addr: "00000000000000000000000065a05db8322701724c197af82c9cae41195b0aa8", symbol: "FOX", coinGeckoId: "shapeshift-fox-token", decimals: 18, price: 0.072583}, // Addr: 0x65a05db8322701724c197af82c9cae41195b0aa8, Notional: 0.0362915 - {chain: 5, addr: "000000000000000000000000e0339c80ffde91f3e20494df88d4206d86024cdf", symbol: "ELON", coinGeckoId: "dogelon-mars", decimals: 18, price: 1.76054e-7}, // Addr: 0xe0339c80ffde91f3e20494df88d4206d86024cdf, Notional: 169.09030734889214 - {chain: 5, addr: "0000000000000000000000003a9a81d576d83ff21f26f325066054540720fc34", symbol: "DATA", coinGeckoId: "streamr", decimals: 18, price: 0.050322}, // Addr: 0x3a9a81d576d83ff21f26f325066054540720fc34, Notional: 0.402576 - {chain: 5, addr: "0000000000000000000000006a3e7c3c6ef65ee26975b12293ca1aad7e1daed2", symbol: "ALPHA", coinGeckoId: "aavegotchi-alpha", decimals: 18, price: 0.00171783}, // Addr: 0x6a3e7c3c6ef65ee26975b12293ca1aad7e1daed2, Notional: 0.0007214886 - {chain: 5, addr: "000000000000000000000000bbba073c31bf03b8acf7c28ef0738decf3695683", symbol: "SAND", coinGeckoId: "the-sandbox", decimals: 18, price: 0.410207}, // Addr: 0xbbba073c31bf03b8acf7c28ef0738decf3695683, Notional: 102.12339013834348 - {chain: 5, addr: "0000000000000000000000002598c30330d5771ae9f983979209486ae26de875", symbol: "AI", coinGeckoId: "any-inu", decimals: 18, price: 0.00002101}, // Addr: 0x2598c30330d5771ae9f983979209486ae26de875, Notional: 21.01 - {chain: 5, addr: "000000000000000000000000bac3368b5110f3a3dda8b5a0f7b66edb37c47afe", symbol: "AIPEPE", coinGeckoId: "ai-pepe-king", decimals: 18, price: 3.426e-9}, // Addr: 0xbac3368b5110f3a3dda8b5a0f7b66edb37c47afe, Notional: 0.0003426 - {chain: 5, addr: "000000000000000000000000e9e7c09e82328c3107d367f6c617cf9977e63ed0", symbol: "A51", coinGeckoId: "a51-finance", decimals: 18, price: 0.167698}, // Addr: 0xe9e7c09e82328c3107d367f6c617cf9977e63ed0, Notional: 167.698 - {chain: 5, addr: "00000000000000000000000023d29d30e35c5e8d321e1dc9a8a61bfd846d4c5c", symbol: "HEX", coinGeckoId: "hex", decimals: 8, price: 0.00182252}, // Addr: 0x23d29d30e35c5e8d321e1dc9a8a61bfd846d4c5c, Notional: 1.1267974127886113 - {chain: 5, addr: "0000000000000000000000000b3f868e0be5597d5db7feb59e1cadbb0fdda50a", symbol: "SUSHI", coinGeckoId: "sushi", decimals: 18, price: 0.94556}, // Addr: 0x0b3f868e0be5597d5db7feb59e1cadbb0fdda50a, Notional: 355.5222721382332 - {chain: 5, addr: "000000000000000000000000ee7666aacaefaa6efeef62ea40176d3eb21953b9", symbol: "MCHC", coinGeckoId: "mch-coin", decimals: 18, price: 0.061331}, // Addr: 0xee7666aacaefaa6efeef62ea40176d3eb21953b9, Notional: 37.56994868553663 - {chain: 5, addr: "0000000000000000000000001bfd67037b42cf73acf2047067bd4f2c47d9bfd6", symbol: "WBTC", coinGeckoId: "wrapped-bitcoin", decimals: 8, price: 57446}, // Addr: 0x1bfd67037b42cf73acf2047067bd4f2c47d9bfd6, Notional: 21045.825220860002 - {chain: 5, addr: "0000000000000000000000009c9e5fd8bbc25984b178fdce6117defa39d2db39", symbol: "BUSD", coinGeckoId: "binance-peg-busd", decimals: 18, price: 0.999646}, // Addr: 0x9c9e5fd8bbc25984b178fdce6117defa39d2db39, Notional: 8.09447190222056 - {chain: 5, addr: "00000000000000000000000053e0bca35ec356bd5dddfebbd1fc0fd03fabad39", symbol: "LINK", coinGeckoId: "chainlink", decimals: 18, price: 12.9}, // Addr: 0x53e0bca35ec356bd5dddfebbd1fc0fd03fabad39, Notional: 609.654755682 - {chain: 5, addr: "0000000000000000000000009ca6a77c8b38159fd2da9bd25bc3e259c33f5e39", symbol: "SPORK", coinGeckoId: "sporkdao", decimals: 18, price: 0.00538187}, // Addr: 0x9ca6a77c8b38159fd2da9bd25bc3e259c33f5e39, Notional: 0.053818700000000004 - {chain: 5, addr: "000000000000000000000000709a4b6217584188ddb93c82f5d716d969acce1c", symbol: "HANU", coinGeckoId: "hanu-yokia", decimals: 12, price: 2.00191e-7}, // Addr: 0x709a4b6217584188ddb93c82f5d716d969acce1c, Notional: 0.7568697102187738 - {chain: 5, addr: "0000000000000000000000002c89bbc92bd86f8075d1decc58c7f4e0107f286b", symbol: "AVAX", coinGeckoId: "wrapped-avax", decimals: 18, price: 32.48}, // Addr: 0x2c89bbc92bd86f8075d1decc58c7f4e0107f286b, Notional: 3330.6151006575997 - {chain: 5, addr: "00000000000000000000000023e8b6a3f6891254988b84da3738d2bfe5e703b9", symbol: "WELT", coinGeckoId: "fabwelt", decimals: 18, price: 0.01105347}, // Addr: 0x23e8b6a3f6891254988b84da3738d2bfe5e703b9, Notional: 5.305665599999999 - {chain: 5, addr: "0000000000000000000000002ad2934d5bfb7912304754479dd1f096d5c807da", symbol: "AGC", coinGeckoId: "argocoin", decimals: 18, price: 0.417738}, // Addr: 0x2ad2934d5bfb7912304754479dd1f096d5c807da, Notional: 41.7738 - {chain: 5, addr: "000000000000000000000000b33eaad8d922b1083446dc23f610c2567fb5180f", symbol: "UNI", coinGeckoId: "uniswap", decimals: 18, price: 6.84}, // Addr: 0xb33eaad8d922b1083446dc23f610c2567fb5180f, Notional: 3.740088402 - {chain: 5, addr: "0000000000000000000000003c499c542cef5e3811e1192ce70d8cc03d5c3359", symbol: "USDC", coinGeckoId: "usd-coin", decimals: 6, price: 1}, // Addr: 0x3c499c542cef5e3811e1192ce70d8cc03d5c3359, Notional: 82421.639126 - {chain: 5, addr: "00000000000000000000000042d61d766b85431666b39b89c43011f24451bff6", symbol: "PSP", coinGeckoId: "paraswap", decimals: 18, price: 0.03079725}, // Addr: 0x42d61d766b85431666b39b89c43011f24451bff6, Notional: 0.0615945 - {chain: 5, addr: "000000000000000000000000d3b71117e6c1558c1553305b44988cd944e97300", symbol: "YEL", coinGeckoId: "yel-finance", decimals: 18, price: 0.0024223}, // Addr: 0xd3b71117e6c1558c1553305b44988cd944e97300, Notional: 2.4223 - {chain: 5, addr: "0000000000000000000000008f3cf7ad23cd3cadbd9735aff958023239c6a063", symbol: "DAI", coinGeckoId: "dai", decimals: 18, price: 0.999522}, // Addr: 0x8f3cf7ad23cd3cadbd9735aff958023239c6a063, Notional: 2472.961408814258 - {chain: 5, addr: "000000000000000000000000431d5dff03120afa4bdf332c61a6e1766ef37bdb", symbol: "JPYC", coinGeckoId: "jpy-coin", decimals: 18, price: 0.00619189}, // Addr: 0x431d5dff03120afa4bdf332c61a6e1766ef37bdb, Notional: 0.6811079 - {chain: 5, addr: "000000000000000000000000750e4c4984a9e0f12978ea6742bc1c5d248f40ed", symbol: "axlUSDC", coinGeckoId: "axlusdc", decimals: 6, price: 1}, // Addr: 0x750e4c4984a9e0f12978ea6742bc1c5d248f40ed, Notional: 81.578221 - {chain: 5, addr: "0000000000000000000000006ae7dfc73e0dde2aa99ac063dcf7e8a63265108c", symbol: "JPYC", coinGeckoId: "jpyc", decimals: 18, price: 0.00781144}, // Addr: 0x6ae7dfc73e0dde2aa99ac063dcf7e8a63265108c, Notional: 6.2491520000000005 - {chain: 5, addr: "00000000000000000000000052ede6bba83b7b4ba1d738df0df713d6a2036b71", symbol: "0xMR", coinGeckoId: "0xmonero", decimals: 18, price: 0.08244}, // Addr: 0x52ede6bba83b7b4ba1d738df0df713d6a2036b71, Notional: 2.9359596820103997 - {chain: 5, addr: "000000000000000000000000b7b31a6bc18e48888545ce79e83e06003be70930", symbol: "APE", coinGeckoId: "apecoin", decimals: 18, price: 1.17}, // Addr: 0xb7b31a6bc18e48888545ce79e83e06003be70930, Notional: 0.21714909839999996 - {chain: 5, addr: "0000000000000000000000002e1ad108ff1d8c782fcbbb89aad783ac49586756", symbol: "TUSD", coinGeckoId: "true-usd", decimals: 18, price: 0.998201}, // Addr: 0x2e1ad108ff1d8c782fcbbb89aad783ac49586756, Notional: 4.72687631387329 + {chain: 5, addr: "0000000000000000000000004c9f66b2806538cf00ef596e09fb05bcb0d17dc8", symbol: "MNTO", coinGeckoId: "minato", decimals: 18, price: 1.23}, // Addr: 0x4c9f66b2806538cf00ef596e09fb05bcb0d17dc8, Notional: 2.46 + {chain: 5, addr: "000000000000000000000000ee9801669c6138e84bd50deb500827b776777d28", symbol: "O3", coinGeckoId: "o3-swap", decimals: 18, price: 0.01654901}, // Addr: 0xee9801669c6138e84bd50deb500827b776777d28, Notional: 23.559173568815552 + {chain: 5, addr: "00000000000000000000000004429fbb948bbd09327763214b45e505a5293346", symbol: "ABR", coinGeckoId: "allbridge", decimals: 18, price: 0.123363}, // Addr: 0x04429fbb948bbd09327763214b45e505a5293346, Notional: 45.088680199548335 + {chain: 5, addr: "0000000000000000000000009e20461bc2c4c980f62f1b279d71734207a6a356", symbol: "OMNI", coinGeckoId: "omnicat", decimals: 18, price: 0.00004164}, // Addr: 0x9e20461bc2c4c980f62f1b279d71734207a6a356, Notional: 57.716407817400274 + {chain: 5, addr: "000000000000000000000000dc3326e71d45186f113a2f448984ca0e8d201995", symbol: "XSGD", coinGeckoId: "xsgd", decimals: 6, price: 0.758849}, // Addr: 0xdc3326e71d45186f113a2f448984ca0e8d201995, Notional: 1.517698 + {chain: 5, addr: "000000000000000000000000aa404804ba583c025fa64c9a276a6127ceb355c6", symbol: "CPR", coinGeckoId: "cipher-2", decimals: 2, price: 0.0005284}, // Addr: 0xaa404804ba583c025fa64c9a276a6127ceb355c6, Notional: 17586.240725928004 + {chain: 5, addr: "000000000000000000000000d86b5923f3ad7b585ed81b448170ae026c65ae9a", symbol: "IRON", coinGeckoId: "iron-stablecoin", decimals: 18, price: 0.00017662}, // Addr: 0xd86b5923f3ad7b585ed81b448170ae026c65ae9a, Notional: 35.552065348738346 + {chain: 5, addr: "000000000000000000000000b87904db461005fc716a6bf9f2d451c33b10b80b", symbol: "AMKT", coinGeckoId: "alongside-crypto-market-index", decimals: 18, price: 161.64}, // Addr: 0xb87904db461005fc716a6bf9f2d451c33b10b80b, Notional: 8.328331277999999 + {chain: 5, addr: "00000000000000000000000046d502fac9aea7c5bc7b13c8ec9d02378c33d36f", symbol: "WSPP", coinGeckoId: "wolfsafepoorpeople-polygon", decimals: 18, price: 1.2873e-8}, // Addr: 0x46d502fac9aea7c5bc7b13c8ec9d02378c33d36f, Notional: 0.38619000000000003 + {chain: 5, addr: "000000000000000000000000430ef9263e76dae63c84292c3409d61c598e9682", symbol: "PYR", coinGeckoId: "vulcan-forged", decimals: 18, price: 2.58}, // Addr: 0x430ef9263e76dae63c84292c3409d61c598e9682, Notional: 28.30518 + {chain: 5, addr: "0000000000000000000000002791bca1f2de4661ed88a30c99a7a9449aa84174", symbol: "USDC", coinGeckoId: "usd-coin", decimals: 6, price: 0.999097}, // Addr: 0x2791bca1f2de4661ed88a30c99a7a9449aa84174, Notional: 4005815.197350823 + {chain: 5, addr: "000000000000000000000000a5eb60ca85898f8b26e18ff7c7e43623ccba772c", symbol: "COSMIC", coinGeckoId: "cosmicswap", decimals: 18, price: 0.03340163}, // Addr: 0xa5eb60ca85898f8b26e18ff7c7e43623ccba772c, Notional: 23.958240745963483 + {chain: 5, addr: "0000000000000000000000000d6ae2a429df13e44a07cd2969e085e4833f64a0", symbol: "PBR", coinGeckoId: "polkabridge", decimals: 18, price: 0.03219491}, // Addr: 0x0d6ae2a429df13e44a07cd2969e085e4833f64a0, Notional: 338.13621055409544 + {chain: 5, addr: "0000000000000000000000004fb71290ac171e1d144f7221d882becac7196eb5", symbol: "TRYB", coinGeckoId: "bilira", decimals: 6, price: 0.02923324}, // Addr: 0x4fb71290ac171e1d144f7221d882becac7196eb5, Notional: 9.17839363022712 + {chain: 5, addr: "0000000000000000000000006ccf12b480a99c54b23647c995f4525d544a7e72", symbol: "START", coinGeckoId: "bscstarter", decimals: 18, price: 0.02314682}, // Addr: 0x6ccf12b480a99c54b23647c995f4525d544a7e72, Notional: 63.92026014307722 + {chain: 5, addr: "0000000000000000000000008d1566569d5b695d44a9a234540f68d393cdc40d", symbol: "GAME", coinGeckoId: "gamecredits", decimals: 18, price: 0.00045011}, // Addr: 0x8d1566569d5b695d44a9a234540f68d393cdc40d, Notional: 0.00360088 + {chain: 5, addr: "0000000000000000000000009c891326fd8b1a713974f73bb604677e1e63396d", symbol: "ISLAMI", coinGeckoId: "islamicoin", decimals: 7, price: 0.00013912}, // Addr: 0x9c891326fd8b1a713974f73bb604677e1e63396d, Notional: 0.13912000000000002 + {chain: 5, addr: "000000000000000000000000d60deba014459f07bbcc077a5b817f31dafd5229", symbol: "VATRENI", coinGeckoId: "croatian-ff-fan-token", decimals: 18, price: 0.101619}, // Addr: 0xd60deba014459f07bbcc077a5b817f31dafd5229, Notional: 0.101619 + {chain: 5, addr: "00000000000000000000000088c949b4eb85a90071f2c0bef861bddee1a7479d", symbol: "mSHEESHA", coinGeckoId: "sheesha-finance-polygon", decimals: 18, price: 0.00063743}, // Addr: 0x88c949b4eb85a90071f2c0bef861bddee1a7479d, Notional: 0.031871500000000004 + {chain: 5, addr: "00000000000000000000000045c32fa6df82ead1e2ef74d17b76547eddfaff89", symbol: "FRAX", coinGeckoId: "frax", decimals: 18, price: 0.995775}, // Addr: 0x45c32fa6df82ead1e2ef74d17b76547eddfaff89, Notional: 9.9658181872755 + {chain: 5, addr: "000000000000000000000000e8d17b127ba8b9899a160d9a07b69bca8e08bfc6", symbol: "NSDX", coinGeckoId: "nasdex-token", decimals: 18, price: 0.02999311}, // Addr: 0xe8d17b127ba8b9899a160d9a07b69bca8e08bfc6, Notional: 1.34968995 + {chain: 5, addr: "000000000000000000000000eee3371b89fc43ea970e908536fcddd975135d8a", symbol: "DOG", coinGeckoId: "the-doge-nft", decimals: 18, price: 0.005485}, // Addr: 0xeee3371b89fc43ea970e908536fcddd975135d8a, Notional: 0.005485 + {chain: 5, addr: "000000000000000000000000e0bceef36f3a6efdd5eebfacd591423f8549b9d5", symbol: "FACTR", coinGeckoId: "defactor", decimals: 18, price: 0.04683618}, // Addr: 0xe0bceef36f3a6efdd5eebfacd591423f8549b9d5, Notional: 1.8038749158322362 + {chain: 5, addr: "00000000000000000000000022e3f02f86bc8ea0d73718a2ae8851854e62adc5", symbol: "FLAME", coinGeckoId: "firestarter", decimals: 18, price: 0.02536641}, // Addr: 0x22e3f02f86bc8ea0d73718a2ae8851854e62adc5, Notional: 4598.396079288953 + {chain: 5, addr: "000000000000000000000000613a489785c95afeb3b404cc41565ccff107b6e0", symbol: "RADIO", coinGeckoId: "radioshack", decimals: 18, price: 0.00032673}, // Addr: 0x613a489785c95afeb3b404cc41565ccff107b6e0, Notional: 0.0127812528902076 + {chain: 5, addr: "000000000000000000000000bc5eb84c052fd012bb902c258c9fd241b17c0005", symbol: "XNET", coinGeckoId: "xnet-mobile", decimals: 18, price: 0.04509958}, // Addr: 0xbc5eb84c052fd012bb902c258c9fd241b17c0005, Notional: 825870.7892756128 + {chain: 5, addr: "000000000000000000000000a1c57f48f0deb89f569dfbe6e2b7f46d33606fd4", symbol: "MANA", coinGeckoId: "decentraland", decimals: 18, price: 0.273555}, // Addr: 0xa1c57f48f0deb89f569dfbe6e2b7f46d33606fd4, Notional: 457.8626652853302 + {chain: 5, addr: "000000000000000000000000039d2e8f097331278bd6c1415d839310e0d5ece4", symbol: "LINDA", coinGeckoId: "linda-2", decimals: 18, price: 0.00001277}, // Addr: 0x039d2e8f097331278bd6c1415d839310e0d5ece4, Notional: 14.484578694846705 + {chain: 5, addr: "000000000000000000000000e20b9e246db5a0d21bf9209e4858bc9a3ff7a034", symbol: "wBAN", coinGeckoId: "banano", decimals: 18, price: 0.00354221}, // Addr: 0xe20b9e246db5a0d21bf9209e4858bc9a3ff7a034, Notional: 36.539601568930784 + {chain: 5, addr: "0000000000000000000000007844f79fc841e4f92d974c417031c76f8578c2d5", symbol: "OPN", coinGeckoId: "open-ticketing-ecosystem", decimals: 18, price: 0.00072419}, // Addr: 0x7844f79fc841e4f92d974c417031c76f8578c2d5, Notional: 0.81978308 + {chain: 5, addr: "00000000000000000000000070c006878a5a50ed185ac4c87d837633923de296", symbol: "REVV", coinGeckoId: "revv", decimals: 18, price: 0.00542778}, // Addr: 0x70c006878a5a50ed185ac4c87d837633923de296, Notional: 4.838391139155138 + {chain: 5, addr: "000000000000000000000000831753dd7087cac61ab5644b308642cc1c33dc13", symbol: "QUICK", coinGeckoId: "quick", decimals: 18, price: 31.94}, // Addr: 0x831753dd7087cac61ab5644b308642cc1c33dc13, Notional: 4.9793632754 + {chain: 5, addr: "00000000000000000000000078a0a62fba6fb21a83fe8a3433d44c73a4017a6f", symbol: "OX", coinGeckoId: "open-exchange-token", decimals: 18, price: 0.00080818}, // Addr: 0x78a0a62fba6fb21a83fe8a3433d44c73a4017a6f, Notional: 0.055149866043467596 + {chain: 5, addr: "0000000000000000000000009ff62d1fc52a907b6dcba8077c2ddca6e6a9d3e1", symbol: "FORT", coinGeckoId: "forta", decimals: 18, price: 0.119218}, // Addr: 0x9ff62d1fc52a907b6dcba8077c2ddca6e6a9d3e1, Notional: 361.1807774971667 + {chain: 5, addr: "0000000000000000000000001d734a02ef1e1f5886e66b0673b71af5b53ffa94", symbol: "SD", coinGeckoId: "stader", decimals: 18, price: 0.611919}, // Addr: 0x1d734a02ef1e1f5886e66b0673b71af5b53ffa94, Notional: 92.91481521937462 + {chain: 5, addr: "0000000000000000000000002ab4f9ac80f33071211729e45cfc346c1f8446d5", symbol: "CGG", coinGeckoId: "chain-guardians", decimals: 18, price: 0.01693984}, // Addr: 0x2ab4f9ac80f33071211729e45cfc346c1f8446d5, Notional: 0.01693984 + {chain: 5, addr: "000000000000000000000000e5417af564e4bfda1c483642db72007871397896", symbol: "GNS", coinGeckoId: "gains-network", decimals: 18, price: 2.52}, // Addr: 0xe5417af564e4bfda1c483642db72007871397896, Notional: 57.96014112 + {chain: 5, addr: "0000000000000000000000007bebd226154e865954a87650faefa8f485d36081", symbol: "ZIG", coinGeckoId: "zignaly", decimals: 18, price: 0.104073}, // Addr: 0x7bebd226154e865954a87650faefa8f485d36081, Notional: 1.40543507662686 + {chain: 5, addr: "000000000000000000000000b140665dde25c644c6b418e417c930de8a8a6ac9", symbol: "ATRI", coinGeckoId: "atari", decimals: 0, price: 0.00020961}, // Addr: 0xb140665dde25c644c6b418e417c930de8a8a6ac9, Notional: 0.01341504 + {chain: 5, addr: "000000000000000000000000e78aee6ccb05471a69677fb74da80f5d251c042b", symbol: "TAKI", coinGeckoId: "taki", decimals: 18, price: 0.01109626}, // Addr: 0xe78aee6ccb05471a69677fb74da80f5d251c042b, Notional: 3.2436865639382653 + {chain: 5, addr: "00000000000000000000000025788a1a171ec66da6502f9975a15b609ff54cf6", symbol: "POOL", coinGeckoId: "pooltogether", decimals: 18, price: 0.233308}, // Addr: 0x25788a1a171ec66da6502f9975a15b609ff54cf6, Notional: 3.966236 + {chain: 5, addr: "00000000000000000000000061299774020da444af134c82fa83e3810b309991", symbol: "RNDR", coinGeckoId: "render-token", decimals: 18, price: 4.71}, // Addr: 0x61299774020da444af134c82fa83e3810b309991, Notional: 97.7504729361 + {chain: 5, addr: "000000000000000000000000dab529f40e671a1d4bf91361c21bf9f0c9712ab7", symbol: "BUSD", coinGeckoId: "binance-usd", decimals: 18, price: 0.998172}, // Addr: 0xdab529f40e671a1d4bf91361c21bf9f0c9712ab7, Notional: 354.05311090838467 + {chain: 5, addr: "000000000000000000000000efee2de82343be622dcb4e545f75a3b9f50c272d", symbol: "TRY", coinGeckoId: "tryhards", decimals: 18, price: 0.00017246}, // Addr: 0xefee2de82343be622dcb4e545f75a3b9f50c272d, Notional: 0.21857824844631543 + {chain: 5, addr: "0000000000000000000000003c69d114664d48357d820dbdd121a8071eac99bf", symbol: "GALAXIS", coinGeckoId: "galaxis-token", decimals: 18, price: 0.00351926}, // Addr: 0x3c69d114664d48357d820dbdd121a8071eac99bf, Notional: 528.16350228 + {chain: 5, addr: "0000000000000000000000002f6f07cdcf3588944bf4c42ac74ff24bf56e7590", symbol: "STG", coinGeckoId: "stargate-finance", decimals: 18, price: 0.331083}, // Addr: 0x2f6f07cdcf3588944bf4c42ac74ff24bf56e7590, Notional: 75.08912540494572 + {chain: 5, addr: "00000000000000000000000024834bbec7e39ef42f4a75eaf8e5b6486d3f0e57", symbol: "LUNA", coinGeckoId: "wrapped-terra", decimals: 18, price: 0.00003828}, // Addr: 0x24834bbec7e39ef42f4a75eaf8e5b6486d3f0e57, Notional: 13.49149236165963 + {chain: 5, addr: "0000000000000000000000001b815d120b3ef02039ee11dc2d33de7aa4a8c603", symbol: "WOO", coinGeckoId: "woo-network", decimals: 18, price: 0.151278}, // Addr: 0x1b815d120b3ef02039ee11dc2d33de7aa4a8c603, Notional: 10.48961652 + {chain: 5, addr: "000000000000000000000000a3fa99a148fa48d14ed51d610c367c61876997f1", symbol: "miMATIC", coinGeckoId: "mimatic", decimals: 18, price: 0.998906}, // Addr: 0xa3fa99a148fa48d14ed51d610c367c61876997f1, Notional: 29.88116641192226 + {chain: 5, addr: "0000000000000000000000005d47baba0d66083c52009271faf3f50dcc01023c", symbol: "BANANA", coinGeckoId: "apeswap-finance", decimals: 18, price: 0.00099003}, // Addr: 0x5d47baba0d66083c52009271faf3f50dcc01023c, Notional: 7.03996076568 + {chain: 5, addr: "0000000000000000000000000df0f72ee0e5c9b7ca761ecec42754992b2da5bf", symbol: "ATA", coinGeckoId: "automata", decimals: 18, price: 0.072331}, // Addr: 0x0df0f72ee0e5c9b7ca761ecec42754992b2da5bf, Notional: 3657.9348879651084 + {chain: 5, addr: "000000000000000000000000d6df932a45c0f255f85145f286ea0b292b21c90b", symbol: "AAVE", coinGeckoId: "aave", decimals: 18, price: 106.13}, // Addr: 0xd6df932a45c0f255f85145f286ea0b292b21c90b, Notional: 555.8623457460999 + {chain: 5, addr: "00000000000000000000000065a05db8322701724c197af82c9cae41195b0aa8", symbol: "FOX", coinGeckoId: "shapeshift-fox-token", decimals: 18, price: 0.04041216}, // Addr: 0x65a05db8322701724c197af82c9cae41195b0aa8, Notional: 0.02020608 + {chain: 5, addr: "000000000000000000000000e0339c80ffde91f3e20494df88d4206d86024cdf", symbol: "ELON", coinGeckoId: "dogelon-mars", decimals: 18, price: 1.39658e-7}, // Addr: 0xe0339c80ffde91f3e20494df88d4206d86024cdf, Notional: 134.1339256349278 + {chain: 5, addr: "0000000000000000000000003a9a81d576d83ff21f26f325066054540720fc34", symbol: "DATA", coinGeckoId: "streamr", decimals: 18, price: 0.0302108}, // Addr: 0x3a9a81d576d83ff21f26f325066054540720fc34, Notional: 0.2416864 + {chain: 5, addr: "0000000000000000000000006a3e7c3c6ef65ee26975b12293ca1aad7e1daed2", symbol: "ALPHA", coinGeckoId: "aavegotchi-alpha", decimals: 18, price: 0.00059744}, // Addr: 0x6a3e7c3c6ef65ee26975b12293ca1aad7e1daed2, Notional: 0.0002509248 + {chain: 5, addr: "000000000000000000000000bbba073c31bf03b8acf7c28ef0738decf3695683", symbol: "SAND", coinGeckoId: "the-sandbox", decimals: 18, price: 0.255451}, // Addr: 0xbbba073c31bf03b8acf7c28ef0738decf3695683, Notional: 64.87324954477856 + {chain: 5, addr: "0000000000000000000000002598c30330d5771ae9f983979209486ae26de875", symbol: "AI", coinGeckoId: "any-inu", decimals: 18, price: 0.00000776}, // Addr: 0x2598c30330d5771ae9f983979209486ae26de875, Notional: 7.760000000000001 + {chain: 5, addr: "000000000000000000000000bac3368b5110f3a3dda8b5a0f7b66edb37c47afe", symbol: "AIPEPE", coinGeckoId: "ai-pepe-king", decimals: 18, price: 6.38841e-10}, // Addr: 0xbac3368b5110f3a3dda8b5a0f7b66edb37c47afe, Notional: 0.00006388410000000001 + {chain: 5, addr: "000000000000000000000000e9e7c09e82328c3107d367f6c617cf9977e63ed0", symbol: "A51", coinGeckoId: "a51-finance", decimals: 18, price: 0.126929}, // Addr: 0xe9e7c09e82328c3107d367f6c617cf9977e63ed0, Notional: 36975.84077354115 + {chain: 5, addr: "00000000000000000000000023d29d30e35c5e8d321e1dc9a8a61bfd846d4c5c", symbol: "HEX", coinGeckoId: "hex", decimals: 8, price: 0.00118811}, // Addr: 0x23d29d30e35c5e8d321e1dc9a8a61bfd846d4c5c, Notional: 0.7345649288393417 + {chain: 5, addr: "0000000000000000000000000b3f868e0be5597d5db7feb59e1cadbb0fdda50a", symbol: "SUSHI", coinGeckoId: "sushi", decimals: 18, price: 0.592701}, // Addr: 0x0b3f868e0be5597d5db7feb59e1cadbb0fdda50a, Notional: 222.85038095795397 + {chain: 5, addr: "000000000000000000000000ee7666aacaefaa6efeef62ea40176d3eb21953b9", symbol: "MCHC", coinGeckoId: "mch-coin", decimals: 18, price: 0.04064551}, // Addr: 0xee7666aacaefaa6efeef62ea40176d3eb21953b9, Notional: 24.898497089521875 + {chain: 5, addr: "0000000000000000000000001bfd67037b42cf73acf2047067bd4f2c47d9bfd6", symbol: "WBTC", coinGeckoId: "wrapped-bitcoin", decimals: 8, price: 58724}, // Addr: 0x1bfd67037b42cf73acf2047067bd4f2c47d9bfd6, Notional: 21935.06296992 + {chain: 5, addr: "0000000000000000000000009c9e5fd8bbc25984b178fdce6117defa39d2db39", symbol: "BUSD", coinGeckoId: "binance-peg-busd", decimals: 18, price: 1.001}, // Addr: 0x9c9e5fd8bbc25984b178fdce6117defa39d2db39, Notional: 8.105435698359999 + {chain: 5, addr: "00000000000000000000000053e0bca35ec356bd5dddfebbd1fc0fd03fabad39", symbol: "LINK", coinGeckoId: "chainlink", decimals: 18, price: 10.39}, // Addr: 0x53e0bca35ec356bd5dddfebbd1fc0fd03fabad39, Notional: 491.03200864620004 + {chain: 5, addr: "0000000000000000000000009ca6a77c8b38159fd2da9bd25bc3e259c33f5e39", symbol: "SPORK", coinGeckoId: "sporkdao", decimals: 18, price: 0.0062691}, // Addr: 0x9ca6a77c8b38159fd2da9bd25bc3e259c33f5e39, Notional: 0.062691 + {chain: 5, addr: "000000000000000000000000709a4b6217584188ddb93c82f5d716d969acce1c", symbol: "HANU", coinGeckoId: "hanu-yokia", decimals: 12, price: 1.68984e-7}, // Addr: 0x709a4b6217584188ddb93c82f5d716d969acce1c, Notional: 0.6388842211268702 + {chain: 5, addr: "0000000000000000000000002c89bbc92bd86f8075d1decc58c7f4e0107f286b", symbol: "AVAX", coinGeckoId: "wrapped-avax", decimals: 18, price: 20.96}, // Addr: 0x2c89bbc92bd86f8075d1decc58c7f4e0107f286b, Notional: 2149.3131930352 + {chain: 5, addr: "00000000000000000000000023e8b6a3f6891254988b84da3738d2bfe5e703b9", symbol: "WELT", coinGeckoId: "fabwelt", decimals: 18, price: 0.00370265}, // Addr: 0x23e8b6a3f6891254988b84da3738d2bfe5e703b9, Notional: 1.777272 + {chain: 5, addr: "0000000000000000000000002ad2934d5bfb7912304754479dd1f096d5c807da", symbol: "AGC", coinGeckoId: "argocoin", decimals: 18, price: 0.165293}, // Addr: 0x2ad2934d5bfb7912304754479dd1f096d5c807da, Notional: 16.5293 + {chain: 5, addr: "000000000000000000000000b33eaad8d922b1083446dc23f610c2567fb5180f", symbol: "UNI", coinGeckoId: "uniswap", decimals: 18, price: 6.44}, // Addr: 0xb33eaad8d922b1083446dc23f610c2567fb5180f, Notional: 3.5213697820000007 + {chain: 5, addr: "0000000000000000000000003c499c542cef5e3811e1192ce70d8cc03d5c3359", symbol: "USDC", coinGeckoId: "usd-coin", decimals: 6, price: 0.999097}, // Addr: 0x3c499c542cef5e3811e1192ce70d8cc03d5c3359, Notional: 74544.0898210324 + {chain: 5, addr: "00000000000000000000000042d61d766b85431666b39b89c43011f24451bff6", symbol: "PSP", coinGeckoId: "paraswap", decimals: 18, price: 0.01572411}, // Addr: 0x42d61d766b85431666b39b89c43011f24451bff6, Notional: 0.03144822 + {chain: 5, addr: "000000000000000000000000d3b71117e6c1558c1553305b44988cd944e97300", symbol: "YEL", coinGeckoId: "yel-finance", decimals: 18, price: 0.00252244}, // Addr: 0xd3b71117e6c1558c1553305b44988cd944e97300, Notional: 2.52244 + {chain: 5, addr: "0000000000000000000000008f3cf7ad23cd3cadbd9735aff958023239c6a063", symbol: "DAI", coinGeckoId: "dai", decimals: 18, price: 0.999076}, // Addr: 0x8f3cf7ad23cd3cadbd9735aff958023239c6a063, Notional: 2472.050962051305 + {chain: 5, addr: "000000000000000000000000431d5dff03120afa4bdf332c61a6e1766ef37bdb", symbol: "JPYC", coinGeckoId: "jpy-coin", decimals: 18, price: 0.00670721}, // Addr: 0x431d5dff03120afa4bdf332c61a6e1766ef37bdb, Notional: 0.7377931 + {chain: 5, addr: "000000000000000000000000750e4c4984a9e0f12978ea6742bc1c5d248f40ed", symbol: "axlUSDC", coinGeckoId: "axlusdc", decimals: 6, price: 0.998063}, // Addr: 0x750e4c4984a9e0f12978ea6742bc1c5d248f40ed, Notional: 81.420203985923 + {chain: 5, addr: "0000000000000000000000006ae7dfc73e0dde2aa99ac063dcf7e8a63265108c", symbol: "JPYC", coinGeckoId: "jpyc", decimals: 18, price: 0.0072278}, // Addr: 0x6ae7dfc73e0dde2aa99ac063dcf7e8a63265108c, Notional: 5.782240000000001 + {chain: 5, addr: "00000000000000000000000052ede6bba83b7b4ba1d738df0df713d6a2036b71", symbol: "0xMR", coinGeckoId: "0xmonero", decimals: 18, price: 0.04141877}, // Addr: 0x52ede6bba83b7b4ba1d738df0df713d6a2036b71, Notional: 1.475058694789688 + {chain: 5, addr: "000000000000000000000000b7b31a6bc18e48888545ce79e83e06003be70930", symbol: "APE", coinGeckoId: "apecoin", decimals: 18, price: 0.589943}, // Addr: 0xb7b31a6bc18e48888545ce79e83e06003be70930, Notional: 0.10949195774135999 + {chain: 5, addr: "0000000000000000000000002e1ad108ff1d8c782fcbbb89aad783ac49586756", symbol: "TUSD", coinGeckoId: "true-usd", decimals: 18, price: 0.99852}, // Addr: 0x2e1ad108ff1d8c782fcbbb89aad783ac49586756, Notional: 4.728386904970799 + {chain: 5, addr: "00000000000000000000000081382e9693de2afc33f69b70a6c12ca9b3a73f47", symbol: "DOSE", coinGeckoId: "dose-token", decimals: 18, price: 0.00022112}, // Addr: 0x81382e9693de2afc33f69b70a6c12ca9b3a73f47, Notional: 0.0199008 {chain: 5, addr: "0000000000000000000000002f25d402829ca4085b8ea4d3bc68bf203f5a9fab", symbol: "Eagon", coinGeckoId: "eagonswap-token", decimals: 18, price: 0.00007782}, // Addr: 0x2f25d402829ca4085b8ea4d3bc68bf203f5a9fab, Notional: 0.2225516283530874 - {chain: 5, addr: "00000000000000000000000049a0400587a7f65072c87c4910449fdcc5c47242", symbol: "MIM", coinGeckoId: "magic-internet-money", decimals: 18, price: 0.995794}, // Addr: 0x49a0400587a7f65072c87c4910449fdcc5c47242, Notional: 51.2932493606 - {chain: 5, addr: "000000000000000000000000554cd6bdd03214b10aafa3e0d4d42de0c5d2937b", symbol: "IDRT", coinGeckoId: "rupiah-token", decimals: 6, price: 0.00006106}, // Addr: 0x554cd6bdd03214b10aafa3e0d4d42de0c5d2937b, Notional: 3.30599679100234 - {chain: 5, addr: "0000000000000000000000007e4c577ca35913af564ee2a24d882a4946ec492b", symbol: "MOONED", coinGeckoId: "moonedge", decimals: 18, price: 0.01321711}, // Addr: 0x7e4c577ca35913af564ee2a24d882a4946ec492b, Notional: 0.16772513687020132 - {chain: 5, addr: "000000000000000000000000011734f6ed20e8d011d85cf7894814b897420acf", symbol: "ACRE", coinGeckoId: "arable-protocol", decimals: 18, price: 0.00024464}, // Addr: 0x011734f6ed20e8d011d85cf7894814b897420acf, Notional: 0.004712057042105601 - {chain: 5, addr: "000000000000000000000000c3c7d422809852031b44ab29eec9f1eff2a58756", symbol: "LDO", coinGeckoId: "lido-dao", decimals: 18, price: 1.91}, // Addr: 0xc3c7d422809852031b44ab29eec9f1eff2a58756, Notional: 19.1191 - {chain: 5, addr: "000000000000000000000000590eb2920486486c2d9bb3eb651f73b81df87bcf", symbol: "BOBC", coinGeckoId: "bobcoin", decimals: 18, price: 0.155614}, // Addr: 0x590eb2920486486c2d9bb3eb651f73b81df87bcf, Notional: 0.155614 - {chain: 5, addr: "0000000000000000000000009c2c5fd7b07e95ee044ddeba0e97a665f142394f", symbol: "1INCH", coinGeckoId: "1inch", decimals: 18, price: 0.382153}, // Addr: 0x9c2c5fd7b07e95ee044ddeba0e97a665f142394f, Notional: 1.1999030091548102 - {chain: 5, addr: "000000000000000000000000adbe0eac80f955363f4ff47b0f70189093908c04", symbol: "XMT", coinGeckoId: "metalswap", decimals: 18, price: 0.01579987}, // Addr: 0xadbe0eac80f955363f4ff47b0f70189093908c04, Notional: 15.325873900000001 - {chain: 5, addr: "000000000000000000000000ee327f889d5947c1dc1934bb208a1e792f953e96", symbol: "frxETH", coinGeckoId: "frax-ether", decimals: 18, price: 2890.05}, // Addr: 0xee327f889d5947c1dc1934bb208a1e792f953e96, Notional: 183.907638138 - {chain: 5, addr: "0000000000000000000000008f36cc333f55b09bb71091409a3d7ade399e3b1c", symbol: "CHER", coinGeckoId: "cherry-network", decimals: 18, price: 0.00233205}, // Addr: 0x8f36cc333f55b09bb71091409a3d7ade399e3b1c, Notional: 0.0233205 - {chain: 6, addr: "0000000000000000000000005085434227ab73151fad2de546210cbc8663df96", symbol: "DBY", coinGeckoId: "metaderby", decimals: 18, price: 0.0017633}, // Addr: 0x5085434227ab73151fad2de546210cbc8663df96, Notional: 15693.5357502 - {chain: 6, addr: "00000000000000000000000068ee0d0aad9e1984af85ca224117e4d20eaf68be", symbol: "ROY", coinGeckoId: "crypto-royale", decimals: 18, price: 0.00359658}, // Addr: 0x68ee0d0aad9e1984af85ca224117e4d20eaf68be, Notional: 0.24816401999999999 - {chain: 6, addr: "00000000000000000000000031c994ac062c1970c086260bc61babb708643fac", symbol: "XETA", coinGeckoId: "xana", decimals: 18, price: 0.0083672}, // Addr: 0x31c994ac062c1970c086260bc61babb708643fac, Notional: 0.083672 - {chain: 6, addr: "000000000000000000000000b279f8dd152b99ec1d84a489d32c35bc0c7f5674", symbol: "STEAK", coinGeckoId: "steakhut-finance", decimals: 18, price: 0.470799}, // Addr: 0xb279f8dd152b99ec1d84a489d32c35bc0c7f5674, Notional: 2.60036771831235 - {chain: 6, addr: "000000000000000000000000c0c5aa69dbe4d6dddfbc89c0957686ec60f24389", symbol: "aXEN", coinGeckoId: "xen-crypto", decimals: 18, price: 3.56823e-7}, // Addr: 0xc0c5aa69dbe4d6dddfbc89c0957686ec60f24389, Notional: 102.16749701748071 - {chain: 6, addr: "0000000000000000000000001f1e7c893855525b303f99bdf5c3c05be09ca251", symbol: "SYN", coinGeckoId: "synapse-2", decimals: 18, price: 0.838771}, // Addr: 0x1f1e7c893855525b303f99bdf5c3c05be09ca251, Notional: 231.62479990463999 - {chain: 6, addr: "000000000000000000000000564a341df6c126f90cf3ecb92120fd7190acb401", symbol: "TRYB", coinGeckoId: "bilira", decimals: 6, price: 0.03098303}, // Addr: 0x564a341df6c126f90cf3ecb92120fd7190acb401, Notional: 0.03098303 - {chain: 6, addr: "000000000000000000000000264c1383ea520f73dd837f915ef3a732e204a493", symbol: "BNB", coinGeckoId: "wbnb", decimals: 18, price: 551.03}, // Addr: 0x264c1383ea520f73dd837f915ef3a732e204a493, Notional: 6882.639278249 - {chain: 6, addr: "000000000000000000000000961c8c0b1aad0c0b10a51fef6a867e3091bcef17", symbol: "DYP", coinGeckoId: "defi-yield-protocol", decimals: 18, price: 0.404319}, // Addr: 0x961c8c0b1aad0c0b10a51fef6a867e3091bcef17, Notional: 2451.651272017805 - {chain: 6, addr: "000000000000000000000000130966628846bfd36ff31a822705796e8cb8c18d", symbol: "MIM", coinGeckoId: "magic-internet-money", decimals: 18, price: 0.995794}, // Addr: 0x130966628846bfd36ff31a822705796e8cb8c18d, Notional: 118.24635514528411 - {chain: 6, addr: "0000000000000000000000006e84a6216ea6dacc71ee8e6b0a5b7322eebc0fdd", symbol: "JOE", coinGeckoId: "joe", decimals: 18, price: 0.464342}, // Addr: 0x6e84a6216ea6dacc71ee8e6b0a5b7322eebc0fdd, Notional: 0.05107762464341999 - {chain: 6, addr: "000000000000000000000000fb98b335551a418cd0737375a2ea0ded62ea213b", symbol: "PENDLE", coinGeckoId: "pendle", decimals: 18, price: 4.2}, // Addr: 0xfb98b335551a418cd0737375a2ea0ded62ea213b, Notional: 225.379960302 - {chain: 6, addr: "000000000000000000000000321e7092a180bb43555132ec53aaa65a5bf84251", symbol: "gOHM", coinGeckoId: "governance-ohm", decimals: 18, price: 3266.92}, // Addr: 0x321e7092a180bb43555132ec53aaa65a5bf84251, Notional: 14.6376310752 - {chain: 6, addr: "000000000000000000000000152b9d0fdc40c096757f570a51e494bd4b943e50", symbol: "BTC.b", coinGeckoId: "bitcoin-avalanche-bridged-btc-b", decimals: 8, price: 57464}, // Addr: 0x152b9d0fdc40c096757f570a51e494bd4b943e50, Notional: 477.83097383999996 - {chain: 6, addr: "0000000000000000000000004bfc90322dd638f81f034517359bd447f8e0235a", symbol: "NEWO", coinGeckoId: "new-order", decimals: 18, price: 0.00660131}, // Addr: 0x4bfc90322dd638f81f034517359bd447f8e0235a, Notional: 48444.46440336494 - {chain: 6, addr: "000000000000000000000000d402298a793948698b9a63311404fbbee944eafd", symbol: "SHRAP", coinGeckoId: "shrapnel-2", decimals: 18, price: 0.124078}, // Addr: 0xd402298a793948698b9a63311404fbbee944eafd, Notional: 3.7558286522 - {chain: 6, addr: "000000000000000000000000444444444444c1a66f394025ac839a535246fcc8", symbol: "GENI", coinGeckoId: "genius", decimals: 9, price: 0.00000608}, // Addr: 0x444444444444c1a66f394025ac839a535246fcc8, Notional: 3.487406126481117 - {chain: 6, addr: "000000000000000000000000502580fc390606b47fc3b741d6d49909383c28a9", symbol: "HATCHY", coinGeckoId: "hatchypocket", decimals: 18, price: 0.00131662}, // Addr: 0x502580fc390606b47fc3b741d6d49909383c28a9, Notional: 0.006543601399999999 - {chain: 6, addr: "00000000000000000000000063a72806098bd3d9520cc43356dd78afe5d386d9", symbol: "AAVE.e", coinGeckoId: "aave", decimals: 18, price: 80.74}, // Addr: 0x63a72806098bd3d9520cc43356dd78afe5d386d9, Notional: 0.7596939636 - {chain: 6, addr: "000000000000000000000000714f020c54cc9d104b6f4f6998c63ce2a31d1888", symbol: "FITFI", coinGeckoId: "step-app-fitfi", decimals: 18, price: 0.00613726}, // Addr: 0x714f020c54cc9d104b6f4f6998c63ce2a31d1888, Notional: 0.0006137260613726 - {chain: 6, addr: "0000000000000000000000002f6f07cdcf3588944bf4c42ac74ff24bf56e7590", symbol: "STG", coinGeckoId: "stargate-finance", decimals: 18, price: 0.486642}, // Addr: 0x2f6f07cdcf3588944bf4c42ac74ff24bf56e7590, Notional: 6.4578025791279 - {chain: 6, addr: "000000000000000000000000a4fb4f0ff2431262d236778495145ecbc975c38b", symbol: "INFRA.e", coinGeckoId: "bware-infra", decimals: 18, price: 1.014}, // Addr: 0xa4fb4f0ff2431262d236778495145ecbc975c38b, Notional: 0.12168 - {chain: 6, addr: "000000000000000000000000fab550568c688d5d8a52c7d794cb93edc26ec0ec", symbol: "axlUSDC", coinGeckoId: "axlusdc", decimals: 6, price: 1}, // Addr: 0xfab550568c688d5d8a52c7d794cb93edc26ec0ec, Notional: 0.6 - {chain: 6, addr: "000000000000000000000000bd100d061e120b2c67a24453cf6368e63f1be056", symbol: "iDYP", coinGeckoId: "idefiyieldprotocol", decimals: 18, price: 0.00171233}, // Addr: 0xbd100d061e120b2c67a24453cf6368e63f1be056, Notional: 0.00017123300000000002 - {chain: 6, addr: "0000000000000000000000008929e9dbd2785e3ba16175e596cdd61520fee0d1", symbol: "ALTD", coinGeckoId: "altitude", decimals: 18, price: 0.00286008}, // Addr: 0x8929e9dbd2785e3ba16175e596cdd61520fee0d1, Notional: 0.2068611489637944 - {chain: 6, addr: "000000000000000000000000d24c2ad096400b6fbcd2ad8b24e7acbc21a1da64", symbol: "FRAX", coinGeckoId: "frax", decimals: 18, price: 0.99874}, // Addr: 0xd24c2ad096400b6fbcd2ad8b24e7acbc21a1da64, Notional: 7.4860562892188 - {chain: 6, addr: "0000000000000000000000003eefb18003d033661f84e48360ebecd181a84709", symbol: "ISA", coinGeckoId: "islander", decimals: 18, price: 0.00002621}, // Addr: 0x3eefb18003d033661f84e48360ebecd181a84709, Notional: 0.0020048559015999 - {chain: 6, addr: "00000000000000000000000062edc0692bd897d2295872a9ffcac5425011c661", symbol: "GMX", coinGeckoId: "gmx", decimals: 18, price: 24.3}, // Addr: 0x62edc0692bd897d2295872a9ffcac5425011c661, Notional: 4.86 - {chain: 6, addr: "000000000000000000000000921f99719eb6c01b4b8f0ba7973a7c24891e740a", symbol: "MAGE", coinGeckoId: "metabrands", decimals: 18, price: 0.04733839}, // Addr: 0x921f99719eb6c01b4b8f0ba7973a7c24891e740a, Notional: 1311.8694454141637 - {chain: 6, addr: "0000000000000000000000002598c30330d5771ae9f983979209486ae26de875", symbol: "AI", coinGeckoId: "any-inu", decimals: 18, price: 0.00002101}, // Addr: 0x2598c30330d5771ae9f983979209486ae26de875, Notional: 100.5870368631023 - {chain: 6, addr: "000000000000000000000000bbaaa0420d474b34be197f95a323c2ff3829e811", symbol: "LODE", coinGeckoId: "lode-token", decimals: 18, price: 6.12}, // Addr: 0xbbaaa0420d474b34be197f95a323c2ff3829e811, Notional: 0.21420000000000003 - {chain: 6, addr: "000000000000000000000000ce1bffbd5374dac86a2893119683f4911a2f7814", symbol: "SPELL", coinGeckoId: "spell-token", decimals: 18, price: 0.0007999}, // Addr: 0xce1bffbd5374dac86a2893119683f4911a2f7814, Notional: 0.7998999999999999 - {chain: 6, addr: "000000000000000000000000ec3492a2508ddf4fdc0cd76f31f340b30d1793e6", symbol: "CLY", coinGeckoId: "colony", decimals: 18, price: 0.174443}, // Addr: 0xec3492a2508ddf4fdc0cd76f31f340b30d1793e6, Notional: 0.174443 - {chain: 6, addr: "0000000000000000000000000da67235dd5787d67955420c84ca1cecd4e5bb3b", symbol: "wMEMO", coinGeckoId: "wrapped-memory", decimals: 18, price: 240.25}, // Addr: 0x0da67235dd5787d67955420c84ca1cecd4e5bb3b, Notional: 0.7619744975 - {chain: 6, addr: "000000000000000000000000d586e7f844cea2f87f50152665bcbc2c279d8d70", symbol: "DAI.e", coinGeckoId: "dai", decimals: 18, price: 0.999522}, // Addr: 0xd586e7f844cea2f87f50152665bcbc2c279d8d70, Notional: 872.7601864637675 - {chain: 6, addr: "000000000000000000000000a7d7079b0fead91f3e65f86e8915cb59c1a4c664", symbol: "USDC.e", coinGeckoId: "usd-coin-avalanche-bridged-usdc-e", decimals: 6, price: 1}, // Addr: 0xa7d7079b0fead91f3e65f86e8915cb59c1a4c664, Notional: 30205.921556 - {chain: 6, addr: "00000000000000000000000020cf1b6e9d856321ed4686877cf4538f2c84b4de", symbol: "ANKR", coinGeckoId: "ankr", decimals: 18, price: 0.043493}, // Addr: 0x20cf1b6e9d856321ed4686877cf4538f2c84b4de, Notional: 4.3492999999999995 - {chain: 6, addr: "000000000000000000000000491a4eb4f1fc3bff8e1d2fc856a6a46663ad556f", symbol: "BRZ", coinGeckoId: "brz", decimals: 4, price: 0.190113}, // Addr: 0x491a4eb4f1fc3bff8e1d2fc856a6a46663ad556f, Notional: 0.190113 - {chain: 6, addr: "00000000000000000000000063682bdc5f875e9bf69e201550658492c9763f89", symbol: "BSGG", coinGeckoId: "betswap-gg", decimals: 18, price: 0.00188815}, // Addr: 0x63682bdc5f875e9bf69e201550658492c9763f89, Notional: 1.420596256913427 - {chain: 6, addr: "0000000000000000000000003419875b4d3bca7f3fdda2db7a476a79fd31b4fe", symbol: "DZHV", coinGeckoId: "dizzyhavoc", decimals: 18, price: 0.00487956}, // Addr: 0x3419875b4d3bca7f3fdda2db7a476a79fd31b4fe, Notional: 3.6562376451809206 - {chain: 6, addr: "000000000000000000000000431d5dff03120afa4bdf332c61a6e1766ef37bdb", symbol: "JPYC", coinGeckoId: "jpy-coin", decimals: 18, price: 0.00619189}, // Addr: 0x431d5dff03120afa4bdf332c61a6e1766ef37bdb, Notional: 2.1325426550222666 - {chain: 6, addr: "00000000000000000000000049d5c2bdffac6ce2bfdb6640f4f80f226bc10bab", symbol: "WETH.e", coinGeckoId: "weth", decimals: 18, price: 2901.39}, // Addr: 0x49d5c2bdffac6ce2bfdb6640f4f80f226bc10bab, Notional: 14696.764707566099 - {chain: 6, addr: "000000000000000000000000b97ef9ef8734c71904d8002f8b6bc66dd9c48a6e", symbol: "USDC", coinGeckoId: "usd-coin", decimals: 6, price: 1}, // Addr: 0xb97ef9ef8734c71904d8002f8b6bc66dd9c48a6e, Notional: 1353475.283426 - {chain: 6, addr: "0000000000000000000000005947bb275c521040051d82396192181b413227a3", symbol: "LINK.e", coinGeckoId: "chainlink", decimals: 18, price: 12.9}, // Addr: 0x5947bb275c521040051d82396192181b413227a3, Notional: 1.29 + {chain: 5, addr: "00000000000000000000000049a0400587a7f65072c87c4910449fdcc5c47242", symbol: "MIM", coinGeckoId: "magic-internet-money", decimals: 18, price: 1.001}, // Addr: 0x49a0400587a7f65072c87c4910449fdcc5c47242, Notional: 51.561409899999994 + {chain: 5, addr: "000000000000000000000000554cd6bdd03214b10aafa3e0d4d42de0c5d2937b", symbol: "IDRT", coinGeckoId: "rupiah-token", decimals: 6, price: 0.00006353}, // Addr: 0x554cd6bdd03214b10aafa3e0d4d42de0c5d2937b, Notional: 3.43973102083817 + {chain: 5, addr: "0000000000000000000000007e4c577ca35913af564ee2a24d882a4946ec492b", symbol: "MOONED", coinGeckoId: "moonedge", decimals: 18, price: 0.00378559}, // Addr: 0x7e4c577ca35913af564ee2a24d882a4946ec492b, Notional: 0.0480391402420397 + {chain: 5, addr: "000000000000000000000000011734f6ed20e8d011d85cf7894814b897420acf", symbol: "ACRE", coinGeckoId: "arable-protocol", decimals: 18, price: 0.00008705}, // Addr: 0x011734f6ed20e8d011d85cf7894814b897420acf, Notional: 0.001676686418882 + {chain: 5, addr: "000000000000000000000000c3c7d422809852031b44ab29eec9f1eff2a58756", symbol: "LDO", coinGeckoId: "lido-dao", decimals: 18, price: 1.069}, // Addr: 0xc3c7d422809852031b44ab29eec9f1eff2a58756, Notional: 10.70069 + {chain: 5, addr: "000000000000000000000000590eb2920486486c2d9bb3eb651f73b81df87bcf", symbol: "BOBC", coinGeckoId: "bobcoin", decimals: 18, price: 0.644019}, // Addr: 0x590eb2920486486c2d9bb3eb651f73b81df87bcf, Notional: 0.644019 + {chain: 5, addr: "0000000000000000000000009c2c5fd7b07e95ee044ddeba0e97a665f142394f", symbol: "1INCH", coinGeckoId: "1inch", decimals: 18, price: 0.257911}, // Addr: 0x9c2c5fd7b07e95ee044ddeba0e97a665f142394f, Notional: 0.80980179403047 + {chain: 5, addr: "000000000000000000000000adbe0eac80f955363f4ff47b0f70189093908c04", symbol: "XMT", coinGeckoId: "metalswap", decimals: 18, price: 0.01429637}, // Addr: 0xadbe0eac80f955363f4ff47b0f70189093908c04, Notional: 13.8674789 + {chain: 5, addr: "000000000000000000000000ee327f889d5947c1dc1934bb208a1e792f953e96", symbol: "frxETH", coinGeckoId: "frax-ether", decimals: 18, price: 2655.84}, // Addr: 0xee327f889d5947c1dc1934bb208a1e792f953e96, Notional: 169.00374099840002 + {chain: 5, addr: "0000000000000000000000008f36cc333f55b09bb71091409a3d7ade399e3b1c", symbol: "CHER", coinGeckoId: "cherry-network", decimals: 18, price: 0.00296097}, // Addr: 0x8f36cc333f55b09bb71091409a3d7ade399e3b1c, Notional: 0.0296097 + {chain: 6, addr: "0000000000000000000000005085434227ab73151fad2de546210cbc8663df96", symbol: "DBY", coinGeckoId: "metaderby", decimals: 18, price: 0.00105189}, // Addr: 0x5085434227ab73151fad2de546210cbc8663df96, Notional: 9361.91987766 + {chain: 6, addr: "00000000000000000000000068ee0d0aad9e1984af85ca224117e4d20eaf68be", symbol: "ROY", coinGeckoId: "crypto-royale", decimals: 18, price: 0.00173238}, // Addr: 0x68ee0d0aad9e1984af85ca224117e4d20eaf68be, Notional: 0.11953422 + {chain: 6, addr: "00000000000000000000000031c994ac062c1970c086260bc61babb708643fac", symbol: "XETA", coinGeckoId: "xana", decimals: 18, price: 0.00453956}, // Addr: 0x31c994ac062c1970c086260bc61babb708643fac, Notional: 0.045395599999999994 + {chain: 6, addr: "000000000000000000000000b279f8dd152b99ec1d84a489d32c35bc0c7f5674", symbol: "STEAK", coinGeckoId: "steakhut-finance", decimals: 18, price: 0.283484}, // Addr: 0xb279f8dd152b99ec1d84a489d32c35bc0c7f5674, Notional: 1.5657693458525999 + {chain: 6, addr: "000000000000000000000000c0c5aa69dbe4d6dddfbc89c0957686ec60f24389", symbol: "aXEN", coinGeckoId: "xen-crypto", decimals: 18, price: 8.319e-8}, // Addr: 0xc0c5aa69dbe4d6dddfbc89c0957686ec60f24389, Notional: 107.00941208073533 + {chain: 6, addr: "0000000000000000000000001f1e7c893855525b303f99bdf5c3c05be09ca251", symbol: "SYN", coinGeckoId: "synapse-2", decimals: 18, price: 0.34763}, // Addr: 0x1f1e7c893855525b303f99bdf5c3c05be09ca251, Notional: 95.99727361919999 + {chain: 6, addr: "000000000000000000000000564a341df6c126f90cf3ecb92120fd7190acb401", symbol: "TRYB", coinGeckoId: "bilira", decimals: 6, price: 0.02923324}, // Addr: 0x564a341df6c126f90cf3ecb92120fd7190acb401, Notional: 0.02923324 + {chain: 6, addr: "000000000000000000000000264c1383ea520f73dd837f915ef3a732e204a493", symbol: "BNB", coinGeckoId: "wbnb", decimals: 18, price: 523.88}, // Addr: 0x264c1383ea520f73dd837f915ef3a732e204a493, Notional: 6571.8037645176 + {chain: 6, addr: "000000000000000000000000961c8c0b1aad0c0b10a51fef6a867e3091bcef17", symbol: "DYP", coinGeckoId: "defi-yield-protocol", decimals: 18, price: 0.227975}, // Addr: 0x961c8c0b1aad0c0b10a51fef6a867e3091bcef17, Notional: 1382.3619437579216 + {chain: 6, addr: "000000000000000000000000130966628846bfd36ff31a822705796e8cb8c18d", symbol: "MIM", coinGeckoId: "magic-internet-money", decimals: 18, price: 1.001}, // Addr: 0x130966628846bfd36ff31a822705796e8cb8c18d, Notional: 135.88739750585998 + {chain: 6, addr: "0000000000000000000000006e84a6216ea6dacc71ee8e6b0a5b7322eebc0fdd", symbol: "JOE", coinGeckoId: "joe", decimals: 18, price: 0.289609}, // Addr: 0x6e84a6216ea6dacc71ee8e6b0a5b7322eebc0fdd, Notional: 0.03185699289609 + {chain: 6, addr: "000000000000000000000000fb98b335551a418cd0737375a2ea0ded62ea213b", symbol: "PENDLE", coinGeckoId: "pendle", decimals: 18, price: 2.82}, // Addr: 0xfb98b335551a418cd0737375a2ea0ded62ea213b, Notional: 439.91835622199994 + {chain: 6, addr: "000000000000000000000000321e7092a180bb43555132ec53aaa65a5bf84251", symbol: "gOHM", coinGeckoId: "governance-ohm", decimals: 18, price: 3769.81}, // Addr: 0x321e7092a180bb43555132ec53aaa65a5bf84251, Notional: 16.8908598936 + {chain: 6, addr: "000000000000000000000000152b9d0fdc40c096757f570a51e494bd4b943e50", symbol: "BTC.b", coinGeckoId: "bitcoin-avalanche-bridged-btc-b", decimals: 8, price: 58806}, // Addr: 0x152b9d0fdc40c096757f570a51e494bd4b943e50, Notional: 488.99011985999994 + {chain: 6, addr: "0000000000000000000000004bfc90322dd638f81f034517359bd447f8e0235a", symbol: "NEWO", coinGeckoId: "new-order", decimals: 18, price: 0.00483536}, // Addr: 0x4bfc90322dd638f81f034517359bd447f8e0235a, Notional: 39141.46861819348 + {chain: 6, addr: "000000000000000000000000d402298a793948698b9a63311404fbbee944eafd", symbol: "SHRAP", coinGeckoId: "shrapnel-2", decimals: 18, price: 0.02993736}, // Addr: 0xd402298a793948698b9a63311404fbbee944eafd, Notional: 0.906200893464 + {chain: 6, addr: "000000000000000000000000444444444444c1a66f394025ac839a535246fcc8", symbol: "GENI", coinGeckoId: "genius", decimals: 9, price: 0.00000358}, // Addr: 0x444444444444c1a66f394025ac839a535246fcc8, Notional: 2.053439791579342 + {chain: 6, addr: "000000000000000000000000502580fc390606b47fc3b741d6d49909383c28a9", symbol: "HATCHY", coinGeckoId: "hatchypocket", decimals: 18, price: 0.00091681}, // Addr: 0x502580fc390606b47fc3b741d6d49909383c28a9, Notional: 0.0045565457 + {chain: 6, addr: "00000000000000000000000063a72806098bd3d9520cc43356dd78afe5d386d9", symbol: "AAVE.e", coinGeckoId: "aave", decimals: 18, price: 106.13}, // Addr: 0x63a72806098bd3d9520cc43356dd78afe5d386d9, Notional: 0.9985920281999999 + {chain: 6, addr: "000000000000000000000000714f020c54cc9d104b6f4f6998c63ce2a31d1888", symbol: "FITFI", coinGeckoId: "step-app-fitfi", decimals: 18, price: 0.00291963}, // Addr: 0x714f020c54cc9d104b6f4f6998c63ce2a31d1888, Notional: 0.0002919630291963 + {chain: 6, addr: "0000000000000000000000002f6f07cdcf3588944bf4c42ac74ff24bf56e7590", symbol: "STG", coinGeckoId: "stargate-finance", decimals: 18, price: 0.331083}, // Addr: 0x2f6f07cdcf3588944bf4c42ac74ff24bf56e7590, Notional: 4.39351443423585 + {chain: 6, addr: "0000000000000000000000008729438eb15e2c8b576fcc6aecda6a148776c0f5", symbol: "QI", coinGeckoId: "benqi", decimals: 18, price: 0.01243948}, // Addr: 0x8729438eb15e2c8b576fcc6aecda6a148776c0f5, Notional: 0.01243948 + {chain: 6, addr: "000000000000000000000000a4fb4f0ff2431262d236778495145ecbc975c38b", symbol: "INFRA.e", coinGeckoId: "bware-infra", decimals: 18, price: 0.267302}, // Addr: 0xa4fb4f0ff2431262d236778495145ecbc975c38b, Notional: 0.03207624 + {chain: 6, addr: "000000000000000000000000fab550568c688d5d8a52c7d794cb93edc26ec0ec", symbol: "axlUSDC", coinGeckoId: "axlusdc", decimals: 6, price: 0.998063}, // Addr: 0xfab550568c688d5d8a52c7d794cb93edc26ec0ec, Notional: 0.5988378 + {chain: 6, addr: "000000000000000000000000bd100d061e120b2c67a24453cf6368e63f1be056", symbol: "iDYP", coinGeckoId: "idefiyieldprotocol", decimals: 18, price: 0.00059466}, // Addr: 0xbd100d061e120b2c67a24453cf6368e63f1be056, Notional: 0.000059466 + {chain: 6, addr: "0000000000000000000000008929e9dbd2785e3ba16175e596cdd61520fee0d1", symbol: "ALTD", coinGeckoId: "altitude", decimals: 18, price: 0.00107899}, // Addr: 0x8929e9dbd2785e3ba16175e596cdd61520fee0d1, Notional: 0.0780401636039707 + {chain: 6, addr: "000000000000000000000000d24c2ad096400b6fbcd2ad8b24e7acbc21a1da64", symbol: "FRAX", coinGeckoId: "frax", decimals: 18, price: 0.995775}, // Addr: 0xd24c2ad096400b6fbcd2ad8b24e7acbc21a1da64, Notional: 7.463832129880499 + {chain: 6, addr: "0000000000000000000000003eefb18003d033661f84e48360ebecd181a84709", symbol: "ISA", coinGeckoId: "islander", decimals: 18, price: 0.000018}, // Addr: 0x3eefb18003d033661f84e48360ebecd181a84709, Notional: 0.00137685639942 + {chain: 6, addr: "00000000000000000000000062edc0692bd897d2295872a9ffcac5425011c661", symbol: "GMX", coinGeckoId: "gmx", decimals: 18, price: 28.69}, // Addr: 0x62edc0692bd897d2295872a9ffcac5425011c661, Notional: 104.236502262 + {chain: 6, addr: "000000000000000000000000921f99719eb6c01b4b8f0ba7973a7c24891e740a", symbol: "MAGE", coinGeckoId: "metabrands", decimals: 18, price: 0.02765593}, // Addr: 0x921f99719eb6c01b4b8f0ba7973a7c24891e740a, Notional: 766.417479587137 + {chain: 6, addr: "0000000000000000000000002598c30330d5771ae9f983979209486ae26de875", symbol: "AI", coinGeckoId: "any-inu", decimals: 18, price: 0.00000776}, // Addr: 0x2598c30330d5771ae9f983979209486ae26de875, Notional: 37.151613805696044 + {chain: 6, addr: "000000000000000000000000bbaaa0420d474b34be197f95a323c2ff3829e811", symbol: "LODE", coinGeckoId: "lode-token", decimals: 18, price: 1.51}, // Addr: 0xbbaaa0420d474b34be197f95a323c2ff3829e811, Notional: 0.05285000000000001 + {chain: 6, addr: "000000000000000000000000ce1bffbd5374dac86a2893119683f4911a2f7814", symbol: "SPELL", coinGeckoId: "spell-token", decimals: 18, price: 0.00051683}, // Addr: 0xce1bffbd5374dac86a2893119683f4911a2f7814, Notional: 28.392775663475653 + {chain: 6, addr: "000000000000000000000000ec3492a2508ddf4fdc0cd76f31f340b30d1793e6", symbol: "CLY", coinGeckoId: "colony", decimals: 18, price: 0.081192}, // Addr: 0xec3492a2508ddf4fdc0cd76f31f340b30d1793e6, Notional: 0.081192 + {chain: 6, addr: "0000000000000000000000000da67235dd5787d67955420c84ca1cecd4e5bb3b", symbol: "wMEMO", coinGeckoId: "wrapped-memory", decimals: 18, price: 159.27}, // Addr: 0x0da67235dd5787d67955420c84ca1cecd4e5bb3b, Notional: 0.5051391393000001 + {chain: 6, addr: "000000000000000000000000d586e7f844cea2f87f50152665bcbc2c279d8d70", symbol: "DAI.e", coinGeckoId: "dai", decimals: 18, price: 0.999076}, // Addr: 0xd586e7f844cea2f87f50152665bcbc2c279d8d70, Notional: 872.3707492696258 + {chain: 6, addr: "000000000000000000000000a7d7079b0fead91f3e65f86e8915cb59c1a4c664", symbol: "USDC.e", coinGeckoId: "usd-coin-avalanche-bridged-usdc-e", decimals: 6, price: 0.998673}, // Addr: 0xa7d7079b0fead91f3e65f86e8915cb59c1a4c664, Notional: 30157.16815466332 + {chain: 6, addr: "00000000000000000000000020cf1b6e9d856321ed4686877cf4538f2c84b4de", symbol: "ANKR", coinGeckoId: "ankr", decimals: 18, price: 0.02543622}, // Addr: 0x20cf1b6e9d856321ed4686877cf4538f2c84b4de, Notional: 2.543622 + {chain: 6, addr: "000000000000000000000000491a4eb4f1fc3bff8e1d2fc856a6a46663ad556f", symbol: "BRZ", coinGeckoId: "brz", decimals: 4, price: 0.185331}, // Addr: 0x491a4eb4f1fc3bff8e1d2fc856a6a46663ad556f, Notional: 0.185331 + {chain: 6, addr: "00000000000000000000000063682bdc5f875e9bf69e201550658492c9763f89", symbol: "BSGG", coinGeckoId: "betswap-gg", decimals: 18, price: 0.00059447}, // Addr: 0x63682bdc5f875e9bf69e201550658492c9763f89, Notional: 0.44726417755333264 + {chain: 6, addr: "0000000000000000000000003419875b4d3bca7f3fdda2db7a476a79fd31b4fe", symbol: "DZHV", coinGeckoId: "dizzyhavoc", decimals: 18, price: 0.00111836}, // Addr: 0x3419875b4d3bca7f3fdda2db7a476a79fd31b4fe, Notional: 0.8379833290019049 + {chain: 6, addr: "000000000000000000000000431d5dff03120afa4bdf332c61a6e1766ef37bdb", symbol: "JPYC", coinGeckoId: "jpy-coin", decimals: 18, price: 0.00670721}, // Addr: 0x431d5dff03120afa4bdf332c61a6e1766ef37bdb, Notional: 2.3100235019019872 + {chain: 6, addr: "00000000000000000000000049d5c2bdffac6ce2bfdb6640f4f80f226bc10bab", symbol: "WETH.e", coinGeckoId: "weth", decimals: 18, price: 2661.57}, // Addr: 0x49d5c2bdffac6ce2bfdb6640f4f80f226bc10bab, Notional: 13487.3702083143 + {chain: 6, addr: "000000000000000000000000b97ef9ef8734c71904d8002f8b6bc66dd9c48a6e", symbol: "USDC", coinGeckoId: "usd-coin", decimals: 6, price: 0.999097}, // Addr: 0xb97ef9ef8734c71904d8002f8b6bc66dd9c48a6e, Notional: 1615170.8993266718 + {chain: 6, addr: "0000000000000000000000005947bb275c521040051d82396192181b413227a3", symbol: "LINK.e", coinGeckoId: "chainlink", decimals: 18, price: 10.39}, // Addr: 0x5947bb275c521040051d82396192181b413227a3, Notional: 1.0390000000000001 {chain: 6, addr: "000000000000000000000000323665443cef804a3b5206103304bd4872ea4253", symbol: "USDV", coinGeckoId: "verified-usd-foundation-usdv", decimals: 6, price: 1}, // Addr: 0x323665443cef804a3b5206103304bd4872ea4253, Notional: 7.522224 - {chain: 6, addr: "000000000000000000000000ed2b42d3c9c6e97e11755bb37df29b6375ede3eb", symbol: "HON", coinGeckoId: "heroes-of-nft", decimals: 18, price: 0.01251246}, // Addr: 0xed2b42d3c9c6e97e11755bb37df29b6375ede3eb, Notional: 0.0378393127919022 - {chain: 6, addr: "00000000000000000000000098443b96ea4b0858fdf3219cd13e98c7a4690588", symbol: "BAT.e", coinGeckoId: "basic-attention-token", decimals: 18, price: 0.22923}, // Addr: 0x98443b96ea4b0858fdf3219cd13e98c7a4690588, Notional: 11.3499012289707 - {chain: 6, addr: "000000000000000000000000694200a68b18232916353250955be220e88c5cbb", symbol: "KOVIN", coinGeckoId: "kovin-segnocchi", decimals: 18, price: 0.00001098}, // Addr: 0x694200a68b18232916353250955be220e88c5cbb, Notional: 7622.316 - {chain: 6, addr: "0000000000000000000000009702230a8ea53601f5cd2dc00fdbc13d4df4a8c7", symbol: "USDt", coinGeckoId: "tether", decimals: 6, price: 0.999172}, // Addr: 0x9702230a8ea53601f5cd2dc00fdbc13d4df4a8c7, Notional: 24519.11442041721 - {chain: 6, addr: "0000000000000000000000008f47416cae600bccf9530e9f3aeaa06bdd1caa79", symbol: "THOR", coinGeckoId: "thor", decimals: 18, price: 0.286971}, // Addr: 0x8f47416cae600bccf9530e9f3aeaa06bdd1caa79, Notional: 1.28835637911246 - {chain: 6, addr: "000000000000000000000000b31f66aa3c1e785363f0875a1b74e27b85fd66c7", symbol: "WAVAX", coinGeckoId: "wrapped-avax", decimals: 18, price: 32.48}, // Addr: 0xb31f66aa3c1e785363f0875a1b74e27b85fd66c7, Notional: 3000170.8006790234 - {chain: 6, addr: "000000000000000000000000c17c30e98541188614df99239cabd40280810ca3", symbol: "RISE", coinGeckoId: "everrise", decimals: 18, price: 0.00009234}, // Addr: 0xc17c30e98541188614df99239cabd40280810ca3, Notional: 1.9664834898373453 - {chain: 6, addr: "000000000000000000000000820802fa8a99901f52e39acd21177b0be6ee2974", symbol: "EUROe", coinGeckoId: "euroe-stablecoin", decimals: 6, price: 1.069}, // Addr: 0x820802fa8a99901f52e39acd21177b0be6ee2974, Notional: 1.410180971 - {chain: 6, addr: "0000000000000000000000002b2c81e08f1af8835a78bb2a90ae924ace0ea4be", symbol: "sAVAX", coinGeckoId: "benqi-liquid-staked-avax", decimals: 18, price: 37.06}, // Addr: 0x2b2c81e08f1af8835a78bb2a90ae924ace0ea4be, Notional: 785424.4179568375 - {chain: 6, addr: "000000000000000000000000c7198437980c041c805a1edcba50c1ce5db95118", symbol: "USDT.e", coinGeckoId: "tether-avalanche-bridged-usdt-e", decimals: 6, price: 0.999516}, // Addr: 0xc7198437980c041c805a1edcba50c1ce5db95118, Notional: 6135.655710625896 - {chain: 6, addr: "000000000000000000000000e8385cecb013561b69beb63ff59f4d10734881f3", symbol: "GEC", coinGeckoId: "gecko-inu", decimals: 18, price: 6.726e-8}, // Addr: 0xe8385cecb013561b69beb63ff59f4d10734881f3, Notional: 6.925786786836918 - {chain: 6, addr: "00000000000000000000000050b7545627a5162f82a992c33b87adc75187b218", symbol: "WBTC.e", coinGeckoId: "wrapped-bitcoin", decimals: 8, price: 57446}, // Addr: 0x50b7545627a5162f82a992c33b87adc75187b218, Notional: 1714.4816146 - {chain: 7, addr: "00000000000000000000000021c718c22d52d0f3a789b752d4c2fd5908a8a733", symbol: "wROSE", coinGeckoId: "oasis-network", decimals: 18, price: 0.087017}, // Addr: 0x21c718c22d52d0f3a789b752d4c2fd5908a8a733, Notional: 116895.6570728042 - {chain: 8, addr: "0000000000000000000000000000000000000000000000000000000000000000", symbol: "ALGO", coinGeckoId: "algorand", decimals: 6, price: 0.177062}, // Addr: 0, Notional: 867.256984411112 - {chain: 8, addr: "000000000000000000000000000000000000000000000000000000000029fcf5", symbol: "RIO", coinGeckoId: "realio-network", decimals: 7, price: 1.42}, // Addr: 2751733, Notional: 2632.5527552199997 - {chain: 8, addr: "00000000000000000000000000000000000000000000000000000000019e8502", symbol: "Planets", coinGeckoId: "planetwatch", decimals: 6, price: 0.00119864}, // Addr: 27165954, Notional: 1.19864 - {chain: 8, addr: "0000000000000000000000000000000000000000000000000000000008338636", symbol: "HDL", coinGeckoId: "headline", decimals: 6, price: 0.00277006}, // Addr: 137594422, Notional: 102.77719342939595 - {chain: 8, addr: "000000000000000000000000000000000000000000000000000000000d83314a", symbol: "YLDY", coinGeckoId: "yieldly", decimals: 6, price: 0.00003091}, // Addr: 226701642, Notional: 20.583321374 - {chain: 8, addr: "00000000000000000000000000000000000000000000000000000000112883e4", symbol: "OPUL", coinGeckoId: "opulous", decimals: 8, price: 0.14083}, // Addr: 287867876, Notional: 72.24719830000001 - {chain: 8, addr: "000000000000000000000000000000000000000000000000000000001704d555", symbol: "goBTC", coinGeckoId: "gobtc", decimals: 8, price: 57923}, // Addr: 386192725, Notional: 119.78881860999999 - {chain: 8, addr: "000000000000000000000000000000000000000000000000000000001704e1e4", symbol: "goETH", coinGeckoId: "goeth", decimals: 8, price: 2905.05}, // Addr: 386195940, Notional: 26.121919095000003 - {chain: 8, addr: "000000000000000000000000000000000000000000000000000000001729723f", symbol: "chip", coinGeckoId: "algo-casino-chips", decimals: 1, price: 0.00392898}, // Addr: 388592191, Notional: 1.6839608280000002 - {chain: 8, addr: "000000000000000000000000000000000000000000000000000000001a777316", symbol: "ZONE", coinGeckoId: "zone", decimals: 6, price: 0.0010089}, // Addr: 444035862, Notional: 0.0090801 - {chain: 8, addr: "000000000000000000000000000000000000000000000000000000001dc164ef", symbol: "MCOIN", coinGeckoId: "maricoin", decimals: 3, price: 0.0023744}, // Addr: 499213551, Notional: 58313.5074829888 - {chain: 8, addr: "000000000000000000000000000000000000000000000000000000002f461f17", symbol: "gALGO", coinGeckoId: "governance-algo", decimals: 6, price: 0.173223}, // Addr: 793124631, Notional: 0.0346446 - {chain: 8, addr: "000000000000000000000000000000000000000000000000000000002f787b65", symbol: "COOP", coinGeckoId: "coop-coin", decimals: 6, price: 0.02916828}, // Addr: 796425061, Notional: 917.401275289466 - {chain: 8, addr: "000000000000000000000000000000000000000000000000000000003717361a", symbol: "FRY", coinGeckoId: "fryscrypto", decimals: 6, price: 0.00178067}, // Addr: 924268058, Notional: 72388.94578250719 - {chain: 9, addr: "0000000000000000000000005ce9f0b6afb36135b5ddbf11705ceb65e634a9dc", symbol: "atUST", coinGeckoId: "wrapped-ust", decimals: 18, price: 0.065163}, // Addr: 0x5ce9f0b6afb36135b5ddbf11705ceb65e634a9dc, Notional: 0.06471275103846 - {chain: 9, addr: "0000000000000000000000004988a896b1227218e4a686fde5eabdcabd91571f", symbol: "USDT", coinGeckoId: "tether", decimals: 6, price: 0.999172}, // Addr: 0x4988a896b1227218e4a686fde5eabdcabd91571f, Notional: 506.76827414887197 - {chain: 9, addr: "000000000000000000000000b12bfca5a55806aaf64e99521918a4bf0fc40802", symbol: "USDC", coinGeckoId: "usd-coin", decimals: 6, price: 1}, // Addr: 0xb12bfca5a55806aaf64e99521918a4bf0fc40802, Notional: 329.534213 - {chain: 9, addr: "000000000000000000000000dcd6d4e2b3e1d1e1e6fa8c21c8a323dcbecff970", symbol: "ROSE", coinGeckoId: "rose", decimals: 18, price: 0.00109998}, // Addr: 0xdcd6d4e2b3e1d1e1e6fa8c21c8a323dcbecff970, Notional: 0.11109798 - {chain: 9, addr: "0000000000000000000000008bec47865ade3b172a928df8f990bc7f2a3b9f79", symbol: "AURORA", coinGeckoId: "aurora-near", decimals: 18, price: 0.217941}, // Addr: 0x8bec47865ade3b172a928df8f990bc7f2a3b9f79, Notional: 0.000010897050000000001 - {chain: 9, addr: "000000000000000000000000c9bdeed33cd01541e1eed10f90519d2c06fe3feb", symbol: "WETH", coinGeckoId: "weth", decimals: 18, price: 2901.39}, // Addr: 0xc9bdeed33cd01541e1eed10f90519d2c06fe3feb, Notional: 7674.9599253 - {chain: 9, addr: "0000000000000000000000007ca1c28663b76cfde424a9494555b94846205585", symbol: "XNL", coinGeckoId: "chronicle", decimals: 18, price: 0.0191775}, // Addr: 0x7ca1c28663b76cfde424a9494555b94846205585, Notional: 3.0108675 - {chain: 9, addr: "000000000000000000000000c4bdd27c33ec7daa6fcfd8532ddb524bf4038096", symbol: "atLUNA", coinGeckoId: "wrapped-terra", decimals: 18, price: 0.00003526}, // Addr: 0xc4bdd27c33ec7daa6fcfd8532ddb524bf4038096, Notional: 0.0296031630288534 - {chain: 10, addr: "000000000000000000000000de5ed76e7c05ec5e4572cfc88d1acea165109e44", symbol: "DEUS", coinGeckoId: "deus-finance-2", decimals: 18, price: 28.25}, // Addr: 0xde5ed76e7c05ec5e4572cfc88d1acea165109e44, Notional: 2.8178657449999998 - {chain: 10, addr: "00000000000000000000000004068da6c83afcfa0e13ba15a6696662335d5b75", symbol: "USDC", coinGeckoId: "usd-coin", decimals: 6, price: 1}, // Addr: 0x04068da6c83afcfa0e13ba15a6696662335d5b75, Notional: 204568.163216 - {chain: 10, addr: "0000000000000000000000005d5530eb3147152fe78d5c4bfeede054c8d1442a", symbol: "FEED", coinGeckoId: "feeder-finance", decimals: 18, price: 0.00074564}, // Addr: 0x5d5530eb3147152fe78d5c4bfeede054c8d1442a, Notional: 2.73308875731801 - {chain: 10, addr: "000000000000000000000000dc301622e621166bd8e82f2ca0a26c13ad0be355", symbol: "FRAX", coinGeckoId: "frax", decimals: 18, price: 0.99874}, // Addr: 0xdc301622e621166bd8e82f2ca0a26c13ad0be355, Notional: 144.468971597491 - {chain: 10, addr: "000000000000000000000000174c7106aeecdc11389f7dd21342f05f46ccb40f", symbol: "DEVIL", coinGeckoId: "devil-finance", decimals: 18, price: 0.00024997}, // Addr: 0x174c7106aeecdc11389f7dd21342f05f46ccb40f, Notional: 0.5499340000049994 - {chain: 10, addr: "000000000000000000000000695921034f0387eac4e11620ee91b1b15a6a09fe", symbol: "WETH", coinGeckoId: "bridged-wrapped-ether-stargate", decimals: 18, price: 2895.03}, // Addr: 0x695921034f0387eac4e11620ee91b1b15a6a09fe, Notional: 328.87149970950003 - {chain: 10, addr: "000000000000000000000000d67de0e0a0fd7b15dc8348bb9be742f3c5850454", symbol: "BNB", coinGeckoId: "wbnb", decimals: 18, price: 551.03}, // Addr: 0xd67de0e0a0fd7b15dc8348bb9be742f3c5850454, Notional: 6576.965723071799 - {chain: 10, addr: "00000000000000000000000021ada0d2ac28c3a5fa3cd2ee30882da8812279b6", symbol: "OATH", coinGeckoId: "oath", decimals: 18, price: 0.0190847}, // Addr: 0x21ada0d2ac28c3a5fa3cd2ee30882da8812279b6, Notional: 1.9084699999999999 - {chain: 10, addr: "000000000000000000000000657a1861c15a3ded9af0b6799a195a249ebdcbc6", symbol: "CREAM", coinGeckoId: "cream-2", decimals: 18, price: 40.9}, // Addr: 0x657a1861c15a3ded9af0b6799a195a249ebdcbc6, Notional: 0.2863 - {chain: 10, addr: "00000000000000000000000044f7237df00e386af8e79b817d05ed9f6fe0f296", symbol: "SOL", coinGeckoId: "wrapped-solana", decimals: 18, price: 122.79}, // Addr: 0x44f7237df00e386af8e79b817d05ed9f6fe0f296, Notional: 1566.891976782 - {chain: 10, addr: "000000000000000000000000b3654dc3d10ea7645f8319668e8f54d2574fbdc8", symbol: "LINK", coinGeckoId: "chainlink", decimals: 18, price: 12.9}, // Addr: 0xb3654dc3d10ea7645f8319668e8f54d2574fbdc8, Notional: 1844.130615285 - {chain: 10, addr: "000000000000000000000000be41772587872a92184873d55b09c6bb6f59f895", symbol: "MARS", coinGeckoId: "projectmars", decimals: 9, price: 2.22565e-7}, // Addr: 0xbe41772587872a92184873d55b09c6bb6f59f895, Notional: 0.02343491490426699 - {chain: 10, addr: "000000000000000000000000511d35c52a3c244e7b8bd92c0c297755fbd89212", symbol: "AVAX", coinGeckoId: "wrapped-avax", decimals: 18, price: 32.48}, // Addr: 0x511d35c52a3c244e7b8bd92c0c297755fbd89212, Notional: 1475.8365614943998 - {chain: 10, addr: "00000000000000000000000085dec8c4b2680793661bca91a8f129607571863d", symbol: "BRUSH", coinGeckoId: "paint-swap", decimals: 18, price: 0.01886513}, // Addr: 0x85dec8c4b2680793661bca91a8f129607571863d, Notional: 0.045179097909945704 - {chain: 10, addr: "00000000000000000000000082f0b8b456c1a451378467398982d4834b6829c1", symbol: "MIM", coinGeckoId: "magic-internet-money", decimals: 18, price: 0.995794}, // Addr: 0x82f0b8b456c1a451378467398982d4834b6829c1, Notional: 31.612563167194736 - {chain: 10, addr: "00000000000000000000000040df1ae6074c35047bff66675488aa2f9f6384f3", symbol: "MATIC", coinGeckoId: "wmatic", decimals: 18, price: 0.670812}, // Addr: 0x40df1ae6074c35047bff66675488aa2f9f6384f3, Notional: 2616.709846134534 - {chain: 10, addr: "000000000000000000000000cc1b99ddac1a33c201a742a1851662e87bc7f22c", symbol: "USDT", coinGeckoId: "bridged-tether-stargate", decimals: 6, price: 0.999662}, // Addr: 0xcc1b99ddac1a33c201a742a1851662e87bc7f22c, Notional: 250.464073519458 - {chain: 10, addr: "0000000000000000000000006a07a792ab2965c72a5b8088d3a069a7ac3a993b", symbol: "AAVE", coinGeckoId: "aave", decimals: 18, price: 80.74}, // Addr: 0x6a07a792ab2965c72a5b8088d3a069a7ac3a993b, Notional: 269.3462081112 - {chain: 10, addr: "000000000000000000000000fb98b335551a418cd0737375a2ea0ded62ea213b", symbol: "miMATIC", coinGeckoId: "mimatic", decimals: 18, price: 0.983962}, // Addr: 0xfb98b335551a418cd0737375a2ea0ded62ea213b, Notional: 25.52818988807584 - {chain: 10, addr: "000000000000000000000000e64b9fd040d1f9d4715c645e0d567ef69958d3d9", symbol: "MOD", coinGeckoId: "modefi", decimals: 18, price: 0.072025}, // Addr: 0xe64b9fd040d1f9d4715c645e0d567ef69958d3d9, Notional: 1.2113462301767501 - {chain: 10, addr: "000000000000000000000000904f51a2e7eeaf76aaf0418cbaf0b71149686f4a", symbol: "FAME", coinGeckoId: "fantom-maker", decimals: 18, price: 0.00027307}, // Addr: 0x904f51a2e7eeaf76aaf0418cbaf0b71149686f4a, Notional: 13966.627628814931 - {chain: 10, addr: "000000000000000000000000d8321aa83fb0a4ecd6348d4577431310a6e0814d", symbol: "GEIST", coinGeckoId: "geist-finance", decimals: 18, price: 0.00018276}, // Addr: 0xd8321aa83fb0a4ecd6348d4577431310a6e0814d, Notional: 0.0018276 - {chain: 10, addr: "0000000000000000000000002f6f07cdcf3588944bf4c42ac74ff24bf56e7590", symbol: "STG", coinGeckoId: "stargate-finance", decimals: 18, price: 0.486642}, // Addr: 0x2f6f07cdcf3588944bf4c42ac74ff24bf56e7590, Notional: 6.88622966002998 - {chain: 10, addr: "000000000000000000000000ef4b763385838fffc708000f884026b8c0434275", symbol: "fmXEN", coinGeckoId: "xen-crypto-fantom", decimals: 18, price: 2.22958e-10}, // Addr: 0xef4b763385838fffc708000f884026b8c0434275, Notional: 0.0042362020000000005 - {chain: 10, addr: "000000000000000000000000e47d957f83f8887063150aaf7187411351643392", symbol: "CHILL", coinGeckoId: "chillpill", decimals: 18, price: 4.25636e-10}, // Addr: 0xe47d957f83f8887063150aaf7187411351643392, Notional: 0.0006810176 - {chain: 10, addr: "0000000000000000000000000615dbba33fe61a31c7ed131bda6655ed76748b1", symbol: "ANKR", coinGeckoId: "ankr", decimals: 18, price: 0.043493}, // Addr: 0x0615dbba33fe61a31c7ed131bda6655ed76748b1, Notional: 25.872220977614017 - {chain: 10, addr: "000000000000000000000000321162cd933e2be498cd2267a90534a804051b11", symbol: "BTC", coinGeckoId: "wrapped-bitcoin", decimals: 8, price: 57446}, // Addr: 0x321162cd933e2be498cd2267a90534a804051b11, Notional: 50605.35674516 - {chain: 10, addr: "0000000000000000000000005b2af7fd27e2ea14945c82dd254c79d3ed34685e", symbol: "JEFE", coinGeckoId: "jefe", decimals: 9, price: 0.03543191}, // Addr: 0x5b2af7fd27e2ea14945c82dd254c79d3ed34685e, Notional: 464666934.39491576 - {chain: 10, addr: "0000000000000000000000003dc57b391262e3aae37a08d91241f9ba9d58b570", symbol: "YOSHI", coinGeckoId: "yoshi-exchange", decimals: 18, price: 0.03031148}, // Addr: 0x3dc57b391262e3aae37a08d91241f9ba9d58b570, Notional: 0.027280331999999997 - {chain: 10, addr: "0000000000000000000000009fb9a33956351cf4fa040f65a13b835a3c8764e3", symbol: "MULTI", coinGeckoId: "multichain", decimals: 18, price: 0.68204}, // Addr: 0x9fb9a33956351cf4fa040f65a13b835a3c8764e3, Notional: 437.77177100957397 - {chain: 10, addr: "00000000000000000000000056ee926bd8c72b2d5fa1af4d9e4cbb515a1e3adc", symbol: "SNX", coinGeckoId: "havven", decimals: 18, price: 2.55}, // Addr: 0x56ee926bd8c72b2d5fa1af4d9e4cbb515a1e3adc, Notional: 0.4368972374999999 - {chain: 10, addr: "000000000000000000000000468003b688943977e6130f4f68f23aad939a1040", symbol: "SPELL", coinGeckoId: "spell-token", decimals: 18, price: 0.0007999}, // Addr: 0x468003b688943977e6130f4f68f23aad939a1040, Notional: 0.159025640797814 - {chain: 10, addr: "000000000000000000000000ad996a45fd2373ed0b10efa4a8ecb9de445a4302", symbol: "ALPACA", coinGeckoId: "alpaca-finance", decimals: 18, price: 0.163254}, // Addr: 0xad996a45fd2373ed0b10efa4a8ecb9de445a4302, Notional: 0.45464498875614 - {chain: 10, addr: "0000000000000000000000001b6382dbdea11d97f24495c9a90b7c88469134a4", symbol: "axlUSDC", coinGeckoId: "axlusdc", decimals: 6, price: 1}, // Addr: 0x1b6382dbdea11d97f24495c9a90b7c88469134a4, Notional: 8.934277 - {chain: 10, addr: "000000000000000000000000a23c4e69e5eaf4500f2f9301717f12b578b948fb", symbol: "PROTO", coinGeckoId: "protofi", decimals: 18, price: 0.00002882}, // Addr: 0xa23c4e69e5eaf4500f2f9301717f12b578b948fb, Notional: 0.0048994 - {chain: 10, addr: "0000000000000000000000002130d2a1e51112d349ccf78d2a1ee65843ba36e0", symbol: "UNIDX", coinGeckoId: "unidex", decimals: 18, price: 1.31}, // Addr: 0x2130d2a1e51112d349ccf78d2a1ee65843ba36e0, Notional: 1.5162402692 - {chain: 10, addr: "0000000000000000000000002598c30330d5771ae9f983979209486ae26de875", symbol: "AI", coinGeckoId: "any-inu", decimals: 18, price: 0.00002101}, // Addr: 0x2598c30330d5771ae9f983979209486ae26de875, Notional: 0.1682901 - {chain: 10, addr: "0000000000000000000000006626c47c00f1d87902fc13eecfac3ed06d5e8d8a", symbol: "WOO", coinGeckoId: "woo-network", decimals: 18, price: 0.272124}, // Addr: 0x6626c47c00f1d87902fc13eecfac3ed06d5e8d8a, Notional: 24.94771333064496 - {chain: 10, addr: "00000000000000000000000074e23df9110aa9ea0b6ff2faee01e740ca1c642e", symbol: "TOR", coinGeckoId: "tor", decimals: 18, price: 1.94}, // Addr: 0x74e23df9110aa9ea0b6ff2faee01e740ca1c642e, Notional: 207.26394026339997 - {chain: 10, addr: "00000000000000000000000028a92dde19d9989f39a49905d7c9c2fac7799bdf", symbol: "USDC", coinGeckoId: "layerzero-usdc", decimals: 6, price: 1.004}, // Addr: 0x28a92dde19d9989f39a49905d7c9c2fac7799bdf, Notional: 1619.167493508 - {chain: 10, addr: "0000000000000000000000001e4f97b9f9f913c46f1632781732927b9019c68b", symbol: "CRV", coinGeckoId: "curve-dao-token", decimals: 18, price: 0.406068}, // Addr: 0x1e4f97b9f9f913c46f1632781732927b9019c68b, Notional: 949.9010465520685 - {chain: 10, addr: "0000000000000000000000008d11ec38a3eb5e956b052f67da8bdc9bef8abf3e", symbol: "DAI", coinGeckoId: "dai", decimals: 18, price: 0.999522}, // Addr: 0x8d11ec38a3eb5e956b052f67da8bdc9bef8abf3e, Notional: 21085.327411723305 - {chain: 10, addr: "0000000000000000000000009879abdea01a879644185341f7af7d8343556b7a", symbol: "TUSD", coinGeckoId: "true-usd", decimals: 18, price: 0.998201}, // Addr: 0x9879abdea01a879644185341f7af7d8343556b7a, Notional: 347.0379492311717 - {chain: 10, addr: "000000000000000000000000049d68029688eabf473097a2fc38ef61633a3c7a", symbol: "fUSDT", coinGeckoId: "tether", decimals: 6, price: 0.999172}, // Addr: 0x049d68029688eabf473097a2fc38ef61633a3c7a, Notional: 2207.87755244668 - {chain: 10, addr: "00000000000000000000000097bdafe3830734acf12da25359674277fcc33729", symbol: "KIRBY", coinGeckoId: "blue-kirby", decimals: 18, price: 0.00014617}, // Addr: 0x97bdafe3830734acf12da25359674277fcc33729, Notional: 288.91978508986887 - {chain: 10, addr: "00000000000000000000000074b23882a30290451a17c44f4f05243b6b58c76d", symbol: "ETH", coinGeckoId: "weth", decimals: 18, price: 2901.39}, // Addr: 0x74b23882a30290451a17c44f4f05243b6b58c76d, Notional: 45787.7275933416 - {chain: 10, addr: "00000000000000000000000021be370d5312f44cb42ce377bc9b8a0cef1a4c83", symbol: "WFTM", coinGeckoId: "wrapped-fantom", decimals: 18, price: 0.649286}, // Addr: 0x21be370d5312f44cb42ce377bc9b8a0cef1a4c83, Notional: 53902.705494241796 - {chain: 10, addr: "00000000000000000000000042ae8468a1fddb965d420bd71368a87ec3a2b4b8", symbol: "Metti", coinGeckoId: "metti-inu", decimals: 18, price: 3.606e-11}, // Addr: 0x42ae8468a1fddb965d420bd71368a87ec3a2b4b8, Notional: 0.00000411084 - {chain: 10, addr: "000000000000000000000000841fad6eae12c286d1fd18d1d525dffa75c7effe", symbol: "BOO", coinGeckoId: "spookyswap", decimals: 18, price: 1.57}, // Addr: 0x841fad6eae12c286d1fd18d1d525dffa75c7effe, Notional: 0.0303423695 - {chain: 10, addr: "0000000000000000000000005c4fdfc5233f935f20d2adba572f770c2e377ab0", symbol: "HEC", coinGeckoId: "hector-dao", decimals: 9, price: 6.85}, // Addr: 0x5c4fdfc5233f935f20d2adba572f770c2e377ab0, Notional: 2830.775170308 - {chain: 10, addr: "000000000000000000000000e705af5f63fcabdcdf5016aa838eaaac35d12890", symbol: "MCRT", coinGeckoId: "magiccraft", decimals: 9, price: 0.00171219}, // Addr: 0xe705af5f63fcabdcdf5016aa838eaaac35d12890, Notional: 0.7294929235576347 - {chain: 10, addr: "000000000000000000000000248cb87dda803028dfead98101c9465a2fbda0d4", symbol: "CHARM", coinGeckoId: "charm", decimals: 18, price: 0.00001055}, // Addr: 0x248cb87dda803028dfead98101c9465a2fbda0d4, Notional: 0.0422 - {chain: 10, addr: "000000000000000000000000b715f8dce2f0e9b894c753711bd55ee3c04dca4e", symbol: "CONK", coinGeckoId: "shibapoconk", decimals: 18, price: 3.54236e-10}, // Addr: 0xb715f8dce2f0e9b894c753711bd55ee3c04dca4e, Notional: 0.011689788 - {chain: 10, addr: "000000000000000000000000e2d27f06f63d98b8e11b38b5b08a75d0c8dd62b9", symbol: "UST", coinGeckoId: "wrapped-ust", decimals: 6, price: 0.065163}, // Addr: 0xe2d27f06f63d98b8e11b38b5b08a75d0c8dd62b9, Notional: 1140.305822830818 - {chain: 10, addr: "000000000000000000000000ee9801669c6138e84bd50deb500827b776777d28", symbol: "O3", coinGeckoId: "o3-swap", decimals: 18, price: 0.03176824}, // Addr: 0xee9801669c6138e84bd50deb500827b776777d28, Notional: 18.4876297783922 - {chain: 10, addr: "00000000000000000000000027e611fd27b276acbd5ffd632e5eaebec9761e40", symbol: "DAI+USDC", coinGeckoId: "curve-fi-dai-usdc", decimals: 18, price: 1}, // Addr: 0x27e611fd27b276acbd5ffd632e5eaebec9761e40, Notional: 8.51097737 - {chain: 10, addr: "000000000000000000000000ae75a438b2e0cb8bb01ec1e1e376de11d44477cc", symbol: "SUSHI", coinGeckoId: "sushi", decimals: 18, price: 0.94556}, // Addr: 0xae75a438b2e0cb8bb01ec1e1e376de11d44477cc, Notional: 50.260337589338796 - {chain: 10, addr: "000000000000000000000000260b3e40c714ce8196465ec824cd8bb915081812", symbol: "IronICE", coinGeckoId: "iron-bsc", decimals: 18, price: 0.01291067}, // Addr: 0x260b3e40c714ce8196465ec824cd8bb915081812, Notional: 29.466280354400006 + {chain: 6, addr: "000000000000000000000000ed2b42d3c9c6e97e11755bb37df29b6375ede3eb", symbol: "HON", coinGeckoId: "heroes-of-nft", decimals: 18, price: 0.00789149}, // Addr: 0xed2b42d3c9c6e97e11755bb37df29b6375ede3eb, Notional: 0.023864896151849297 + {chain: 6, addr: "00000000000000000000000098443b96ea4b0858fdf3219cd13e98c7a4690588", symbol: "BAT.e", coinGeckoId: "basic-attention-token", decimals: 18, price: 0.165682}, // Addr: 0x98443b96ea4b0858fdf3219cd13e98c7a4690588, Notional: 8.20343905866738 + {chain: 6, addr: "0000000000000000000000009702230a8ea53601f5cd2dc00fdbc13d4df4a8c7", symbol: "USDt", coinGeckoId: "tether", decimals: 6, price: 0.999545}, // Addr: 0x9702230a8ea53601f5cd2dc00fdbc13d4df4a8c7, Notional: 25473.590104431878 + {chain: 6, addr: "0000000000000000000000008f47416cae600bccf9530e9f3aeaa06bdd1caa79", symbol: "THOR", coinGeckoId: "thor", decimals: 18, price: 0.171041}, // Addr: 0x8f47416cae600bccf9530e9f3aeaa06bdd1caa79, Notional: 0.76788861397066 + {chain: 6, addr: "000000000000000000000000b31f66aa3c1e785363f0875a1b74e27b85fd66c7", symbol: "WAVAX", coinGeckoId: "wrapped-avax", decimals: 18, price: 20.96}, // Addr: 0xb31f66aa3c1e785363f0875a1b74e27b85fd66c7, Notional: 2076129.1559449104 + {chain: 6, addr: "000000000000000000000000c17c30e98541188614df99239cabd40280810ca3", symbol: "RISE", coinGeckoId: "everrise", decimals: 18, price: 0.00005943}, // Addr: 0xc17c30e98541188614df99239cabd40280810ca3, Notional: 1.2656282629524953 + {chain: 6, addr: "000000000000000000000000820802fa8a99901f52e39acd21177b0be6ee2974", symbol: "EUROe", coinGeckoId: "euroe-stablecoin", decimals: 6, price: 1.096}, // Addr: 0x820802fa8a99901f52e39acd21177b0be6ee2974, Notional: 1.445798264 + {chain: 6, addr: "0000000000000000000000002b2c81e08f1af8835a78bb2a90ae924ace0ea4be", symbol: "sAVAX", coinGeckoId: "benqi-liquid-staked-avax", decimals: 18, price: 24.31}, // Addr: 0x2b2c81e08f1af8835a78bb2a90ae924ace0ea4be, Notional: 513848.3400688352 + {chain: 6, addr: "000000000000000000000000c7198437980c041c805a1edcba50c1ce5db95118", symbol: "USDT.e", coinGeckoId: "tether-avalanche-bridged-usdt-e", decimals: 6, price: 1}, // Addr: 0xc7198437980c041c805a1edcba50c1ce5db95118, Notional: 6138.663556 + {chain: 6, addr: "000000000000000000000000e8385cecb013561b69beb63ff59f4d10734881f3", symbol: "GEC", coinGeckoId: "gecko-inu", decimals: 18, price: 2.1105e-8}, // Addr: 0xe8385cecb013561b69beb63ff59f4d10734881f3, Notional: 2.1731895649151527 + {chain: 6, addr: "00000000000000000000000050b7545627a5162f82a992c33b87adc75187b218", symbol: "WBTC.e", coinGeckoId: "wrapped-bitcoin", decimals: 8, price: 58724}, // Addr: 0x50b7545627a5162f82a992c33b87adc75187b218, Notional: 1752.6236523999999 + {chain: 7, addr: "00000000000000000000000021c718c22d52d0f3a789b752d4c2fd5908a8a733", symbol: "wROSE", coinGeckoId: "oasis-network", decimals: 18, price: 0.059685}, // Addr: 0x21c718c22d52d0f3a789b752d4c2fd5908a8a733, Notional: 93154.03036950772 + {chain: 8, addr: "0000000000000000000000000000000000000000000000000000000000000000", symbol: "ALGO", coinGeckoId: "algorand", decimals: 6, price: 0.119498}, // Addr: 0, Notional: 7516.623927284228 + {chain: 8, addr: "000000000000000000000000000000000000000000000000000000000029fcf5", symbol: "RIO", coinGeckoId: "realio-network", decimals: 7, price: 0.950088}, // Addr: 2751733, Notional: 8141.263188098212 + {chain: 8, addr: "00000000000000000000000000000000000000000000000000000000019e8502", symbol: "Planets", coinGeckoId: "planetwatch", decimals: 6, price: 0.00002343}, // Addr: 27165954, Notional: 0.02343 + {chain: 8, addr: "0000000000000000000000000000000000000000000000000000000001e1ab70", symbol: "USDC", coinGeckoId: "usd-coin", decimals: 6, price: 0.999097}, // Addr: 31566704, Notional: 15231.724886116805 + {chain: 8, addr: "0000000000000000000000000000000000000000000000000000000008338636", symbol: "HDL", coinGeckoId: "headline", decimals: 6, price: 0.00305059}, // Addr: 137594422, Notional: 113.18566330829694 + {chain: 8, addr: "000000000000000000000000000000000000000000000000000000000d83314a", symbol: "YLDY", coinGeckoId: "yieldly", decimals: 6, price: 0.00001491}, // Addr: 226701642, Notional: 9.928738974 + {chain: 8, addr: "00000000000000000000000000000000000000000000000000000000112883e4", symbol: "OPUL", coinGeckoId: "opulous", decimals: 8, price: 0.061572}, // Addr: 287867876, Notional: 31.58705172 + {chain: 8, addr: "000000000000000000000000000000000000000000000000000000001704d555", symbol: "goBTC", coinGeckoId: "gobtc", decimals: 8, price: 59173}, // Addr: 386192725, Notional: 122.37390611 + {chain: 8, addr: "000000000000000000000000000000000000000000000000000000001704e1e4", symbol: "goETH", coinGeckoId: "goeth", decimals: 8, price: 2667.26}, // Addr: 386195940, Notional: 23.983735194000005 + {chain: 8, addr: "000000000000000000000000000000000000000000000000000000001729723f", symbol: "chip", coinGeckoId: "algo-casino-chips", decimals: 1, price: 0.00208447}, // Addr: 388592191, Notional: 0.8934038420000001 + {chain: 8, addr: "000000000000000000000000000000000000000000000000000000001a777316", symbol: "ZONE", coinGeckoId: "zone", decimals: 6, price: 0.00058871}, // Addr: 444035862, Notional: 0.00529839 + {chain: 8, addr: "000000000000000000000000000000000000000000000000000000001dc164ef", symbol: "MCOIN", coinGeckoId: "maricoin", decimals: 3, price: 0.00123018}, // Addr: 499213551, Notional: 30212.31074605086 + {chain: 8, addr: "000000000000000000000000000000000000000000000000000000002f461f17", symbol: "gALGO", coinGeckoId: "governance-algo", decimals: 6, price: 0.116595}, // Addr: 793124631, Notional: 0.023319000000000003 + {chain: 8, addr: "000000000000000000000000000000000000000000000000000000002f787b65", symbol: "COOP", coinGeckoId: "coop-coin", decimals: 6, price: 0.0289121}, // Addr: 796425061, Notional: 909.3438972505943 + {chain: 8, addr: "000000000000000000000000000000000000000000000000000000003717361a", symbol: "FRY", coinGeckoId: "fryscrypto", decimals: 6, price: 0.00147124}, // Addr: 924268058, Notional: 59933.1675877051 + {chain: 9, addr: "0000000000000000000000005ce9f0b6afb36135b5ddbf11705ceb65e634a9dc", symbol: "atUST", coinGeckoId: "wrapped-ust", decimals: 18, price: 0.01610185}, // Addr: 0x5ce9f0b6afb36135b5ddbf11705ceb65e634a9dc, Notional: 0.015990592979277 + {chain: 9, addr: "0000000000000000000000004988a896b1227218e4a686fde5eabdcabd91571f", symbol: "USDT", coinGeckoId: "tether", decimals: 6, price: 0.999545}, // Addr: 0x4988a896b1227218e4a686fde5eabdcabd91571f, Notional: 506.95745535717 + {chain: 9, addr: "000000000000000000000000b12bfca5a55806aaf64e99521918a4bf0fc40802", symbol: "USDC", coinGeckoId: "usd-coin", decimals: 6, price: 0.999097}, // Addr: 0xb12bfca5a55806aaf64e99521918a4bf0fc40802, Notional: 329.236643605661 + {chain: 9, addr: "000000000000000000000000dcd6d4e2b3e1d1e1e6fa8c21c8a323dcbecff970", symbol: "ROSE", coinGeckoId: "rose", decimals: 18, price: 0.00066104}, // Addr: 0xdcd6d4e2b3e1d1e1e6fa8c21c8a323dcbecff970, Notional: 0.06676504 + {chain: 9, addr: "0000000000000000000000008bec47865ade3b172a928df8f990bc7f2a3b9f79", symbol: "AURORA", coinGeckoId: "aurora-near", decimals: 18, price: 0.138047}, // Addr: 0x8bec47865ade3b172a928df8f990bc7f2a3b9f79, Notional: 0.00000690235 + {chain: 9, addr: "000000000000000000000000c9bdeed33cd01541e1eed10f90519d2c06fe3feb", symbol: "WETH", coinGeckoId: "weth", decimals: 18, price: 2661.57}, // Addr: 0xc9bdeed33cd01541e1eed10f90519d2c06fe3feb, Notional: 7040.5712739 + {chain: 9, addr: "0000000000000000000000007ca1c28663b76cfde424a9494555b94846205585", symbol: "XNL", coinGeckoId: "chronicle", decimals: 18, price: 0.00596109}, // Addr: 0x7ca1c28663b76cfde424a9494555b94846205585, Notional: 0.9358911299999999 + {chain: 9, addr: "000000000000000000000000c4bdd27c33ec7daa6fcfd8532ddb524bf4038096", symbol: "atLUNA", coinGeckoId: "wrapped-terra", decimals: 18, price: 0.00003828}, // Addr: 0xc4bdd27c33ec7daa6fcfd8532ddb524bf4038096, Notional: 0.0321386579904852 + {chain: 10, addr: "000000000000000000000000de5ed76e7c05ec5e4572cfc88d1acea165109e44", symbol: "DEUS", coinGeckoId: "deus-finance-2", decimals: 18, price: 17.27}, // Addr: 0xde5ed76e7c05ec5e4572cfc88d1acea165109e44, Notional: 1.7226386342 + {chain: 10, addr: "00000000000000000000000004068da6c83afcfa0e13ba15a6696662335d5b75", symbol: "USDC", coinGeckoId: "usd-coin", decimals: 6, price: 0.999097}, // Addr: 0x04068da6c83afcfa0e13ba15a6696662335d5b75, Notional: 205225.89390951145 + {chain: 10, addr: "0000000000000000000000005d5530eb3147152fe78d5c4bfeede054c8d1442a", symbol: "FEED", coinGeckoId: "feeder-finance", decimals: 18, price: 0.00045475}, // Addr: 0x5d5530eb3147152fe78d5c4bfeede054c8d1442a, Notional: 1.6668527873911876 + {chain: 10, addr: "000000000000000000000000dc301622e621166bd8e82f2ca0a26c13ad0be355", symbol: "FRAX", coinGeckoId: "frax", decimals: 18, price: 0.995775}, // Addr: 0xdc301622e621166bd8e82f2ca0a26c13ad0be355, Notional: 144.04008069416625 + {chain: 10, addr: "000000000000000000000000174c7106aeecdc11389f7dd21342f05f46ccb40f", symbol: "DEVIL", coinGeckoId: "devil-finance", decimals: 18, price: 0.00017005}, // Addr: 0x174c7106aeecdc11389f7dd21342f05f46ccb40f, Notional: 0.374110000003401 + {chain: 10, addr: "000000000000000000000000695921034f0387eac4e11620ee91b1b15a6a09fe", symbol: "WETH", coinGeckoId: "bridged-wrapped-ether-stargate", decimals: 18, price: 2664.11}, // Addr: 0x695921034f0387eac4e11620ee91b1b15a6a09fe, Notional: 302.6392994515 + {chain: 10, addr: "000000000000000000000000d67de0e0a0fd7b15dc8348bb9be742f3c5850454", symbol: "BNB", coinGeckoId: "wbnb", decimals: 18, price: 523.88}, // Addr: 0xd67de0e0a0fd7b15dc8348bb9be742f3c5850454, Notional: 9108.1755111368 + {chain: 10, addr: "00000000000000000000000021ada0d2ac28c3a5fa3cd2ee30882da8812279b6", symbol: "OATH", coinGeckoId: "oath", decimals: 18, price: 0.01129486}, // Addr: 0x21ada0d2ac28c3a5fa3cd2ee30882da8812279b6, Notional: 1.129486 + {chain: 10, addr: "000000000000000000000000657a1861c15a3ded9af0b6799a195a249ebdcbc6", symbol: "CREAM", coinGeckoId: "cream-2", decimals: 18, price: 17.11}, // Addr: 0x657a1861c15a3ded9af0b6799a195a249ebdcbc6, Notional: 0.11977 + {chain: 10, addr: "00000000000000000000000044f7237df00e386af8e79b817d05ed9f6fe0f296", symbol: "SOL", coinGeckoId: "wrapped-solana", decimals: 18, price: 143.59}, // Addr: 0x44f7237df00e386af8e79b817d05ed9f6fe0f296, Notional: 1832.3154894220002 + {chain: 10, addr: "000000000000000000000000b3654dc3d10ea7645f8319668e8f54d2574fbdc8", symbol: "LINK", coinGeckoId: "chainlink", decimals: 18, price: 10.39}, // Addr: 0xb3654dc3d10ea7645f8319668e8f54d2574fbdc8, Notional: 1562.4465326128 + {chain: 10, addr: "000000000000000000000000be41772587872a92184873d55b09c6bb6f59f895", symbol: "MARS", coinGeckoId: "projectmars", decimals: 9, price: 1.563e-7}, // Addr: 0xbe41772587872a92184873d55b09c6bb6f59f895, Notional: 0.016457561609134096 + {chain: 10, addr: "000000000000000000000000511d35c52a3c244e7b8bd92c0c297755fbd89212", symbol: "AVAX", coinGeckoId: "wrapped-avax", decimals: 18, price: 20.96}, // Addr: 0x511d35c52a3c244e7b8bd92c0c297755fbd89212, Notional: 983.7218208608 + {chain: 10, addr: "00000000000000000000000085dec8c4b2680793661bca91a8f129607571863d", symbol: "BRUSH", coinGeckoId: "paint-swap", decimals: 18, price: 0.00977332}, // Addr: 0x85dec8c4b2680793661bca91a8f129607571863d, Notional: 0.023405605006974802 + {chain: 10, addr: "00000000000000000000000082f0b8b456c1a451378467398982d4834b6829c1", symbol: "MIM", coinGeckoId: "magic-internet-money", decimals: 18, price: 1.001}, // Addr: 0x82f0b8b456c1a451378467398982d4834b6829c1, Notional: 298.98246058680996 + {chain: 10, addr: "00000000000000000000000040df1ae6074c35047bff66675488aa2f9f6384f3", symbol: "MATIC", coinGeckoId: "wmatic", decimals: 18, price: 0.423468}, // Addr: 0x40df1ae6074c35047bff66675488aa2f9f6384f3, Notional: 1652.7149483833487 + {chain: 10, addr: "000000000000000000000000cc1b99ddac1a33c201a742a1851662e87bc7f22c", symbol: "USDT", coinGeckoId: "bridged-tether-stargate", decimals: 6, price: 0.987063}, // Addr: 0xcc1b99ddac1a33c201a742a1851662e87bc7f22c, Notional: 264.497583665931 + {chain: 10, addr: "0000000000000000000000006a07a792ab2965c72a5b8088d3a069a7ac3a993b", symbol: "AAVE", coinGeckoId: "aave", decimals: 18, price: 106.13}, // Addr: 0x6a07a792ab2965c72a5b8088d3a069a7ac3a993b, Notional: 386.1792236106 + {chain: 10, addr: "000000000000000000000000fb98b335551a418cd0737375a2ea0ded62ea213b", symbol: "miMATIC", coinGeckoId: "mimatic", decimals: 18, price: 0.998906}, // Addr: 0xfb98b335551a418cd0737375a2ea0ded62ea213b, Notional: 25.91590127295392 + {chain: 10, addr: "000000000000000000000000e64b9fd040d1f9d4715c645e0d567ef69958d3d9", symbol: "MOD", coinGeckoId: "modefi", decimals: 18, price: 0.02068206}, // Addr: 0xe64b9fd040d1f9d4715c645e0d567ef69958d3d9, Notional: 0.3478394364913482 + {chain: 10, addr: "000000000000000000000000904f51a2e7eeaf76aaf0418cbaf0b71149686f4a", symbol: "FAME", coinGeckoId: "fantom-maker", decimals: 18, price: 0.0001188}, // Addr: 0x904f51a2e7eeaf76aaf0418cbaf0b71149686f4a, Notional: 6076.227202926772 + {chain: 10, addr: "000000000000000000000000d8321aa83fb0a4ecd6348d4577431310a6e0814d", symbol: "GEIST", coinGeckoId: "geist-finance", decimals: 18, price: 0.00009585}, // Addr: 0xd8321aa83fb0a4ecd6348d4577431310a6e0814d, Notional: 0.0009584999999999999 + {chain: 10, addr: "0000000000000000000000002f6f07cdcf3588944bf4c42ac74ff24bf56e7590", symbol: "STG", coinGeckoId: "stargate-finance", decimals: 18, price: 0.331083}, // Addr: 0x2f6f07cdcf3588944bf4c42ac74ff24bf56e7590, Notional: 4.68499137873777 + {chain: 10, addr: "000000000000000000000000ef4b763385838fffc708000f884026b8c0434275", symbol: "fmXEN", coinGeckoId: "xen-crypto-fantom", decimals: 18, price: 5.6954e-11}, // Addr: 0xef4b763385838fffc708000f884026b8c0434275, Notional: 0.001082126 + {chain: 10, addr: "000000000000000000000000e47d957f83f8887063150aaf7187411351643392", symbol: "CHILL", coinGeckoId: "chillpill", decimals: 18, price: 2.26308e-10}, // Addr: 0xe47d957f83f8887063150aaf7187411351643392, Notional: 0.0003620928 + {chain: 10, addr: "0000000000000000000000000615dbba33fe61a31c7ed131bda6655ed76748b1", symbol: "ANKR", coinGeckoId: "ankr", decimals: 18, price: 0.02543622}, // Addr: 0x0615dbba33fe61a31c7ed131bda6655ed76748b1, Notional: 15.13097520693457 + {chain: 10, addr: "000000000000000000000000321162cd933e2be498cd2267a90534a804051b11", symbol: "BTC", coinGeckoId: "wrapped-bitcoin", decimals: 8, price: 58724}, // Addr: 0x321162cd933e2be498cd2267a90534a804051b11, Notional: 56465.39685708 + {chain: 10, addr: "0000000000000000000000003dc57b391262e3aae37a08d91241f9ba9d58b570", symbol: "YOSHI", coinGeckoId: "yoshi-exchange", decimals: 18, price: 0.01618314}, // Addr: 0x3dc57b391262e3aae37a08d91241f9ba9d58b570, Notional: 0.014564826 + {chain: 10, addr: "0000000000000000000000009fb9a33956351cf4fa040f65a13b835a3c8764e3", symbol: "MULTI", coinGeckoId: "multichain", decimals: 18, price: 0.412999}, // Addr: 0x9fb9a33956351cf4fa040f65a13b835a3c8764e3, Notional: 265.08607069260313 + {chain: 10, addr: "00000000000000000000000056ee926bd8c72b2d5fa1af4d9e4cbb515a1e3adc", symbol: "SNX", coinGeckoId: "havven", decimals: 18, price: 1.34}, // Addr: 0x56ee926bd8c72b2d5fa1af4d9e4cbb515a1e3adc, Notional: 0.229585215 + {chain: 10, addr: "000000000000000000000000468003b688943977e6130f4f68f23aad939a1040", symbol: "SPELL", coinGeckoId: "spell-token", decimals: 18, price: 0.00051683}, // Addr: 0x468003b688943977e6130f4f68f23aad939a1040, Notional: 0.10274937108830381 + {chain: 10, addr: "000000000000000000000000ad996a45fd2373ed0b10efa4a8ecb9de445a4302", symbol: "ALPACA", coinGeckoId: "alpaca-finance", decimals: 18, price: 0.091246}, // Addr: 0xad996a45fd2373ed0b10efa4a8ecb9de445a4302, Notional: 0.25411038408886 + {chain: 10, addr: "0000000000000000000000001b6382dbdea11d97f24495c9a90b7c88469134a4", symbol: "axlUSDC", coinGeckoId: "axlusdc", decimals: 6, price: 0.998063}, // Addr: 0x1b6382dbdea11d97f24495c9a90b7c88469134a4, Notional: 8.916971305451 + {chain: 10, addr: "000000000000000000000000a23c4e69e5eaf4500f2f9301717f12b578b948fb", symbol: "PROTO", coinGeckoId: "protofi", decimals: 18, price: 0.00001689}, // Addr: 0xa23c4e69e5eaf4500f2f9301717f12b578b948fb, Notional: 0.0028713 + {chain: 10, addr: "0000000000000000000000002130d2a1e51112d349ccf78d2a1ee65843ba36e0", symbol: "UNIDX", coinGeckoId: "unidex", decimals: 18, price: 0.637693}, // Addr: 0x2130d2a1e51112d349ccf78d2a1ee65843ba36e0, Notional: 0.73808840151676 + {chain: 10, addr: "0000000000000000000000002598c30330d5771ae9f983979209486ae26de875", symbol: "AI", coinGeckoId: "any-inu", decimals: 18, price: 0.00000776}, // Addr: 0x2598c30330d5771ae9f983979209486ae26de875, Notional: 0.0621576 + {chain: 10, addr: "0000000000000000000000006626c47c00f1d87902fc13eecfac3ed06d5e8d8a", symbol: "WOO", coinGeckoId: "woo-network", decimals: 18, price: 0.151278}, // Addr: 0x6626c47c00f1d87902fc13eecfac3ed06d5e8d8a, Notional: 13.86882515777112 + {chain: 10, addr: "00000000000000000000000074e23df9110aa9ea0b6ff2faee01e740ca1c642e", symbol: "TOR", coinGeckoId: "tor", decimals: 18, price: 0.00613835}, // Addr: 0x74e23df9110aa9ea0b6ff2faee01e740ca1c642e, Notional: 0.6558034060390935 + {chain: 10, addr: "00000000000000000000000028a92dde19d9989f39a49905d7c9c2fac7799bdf", symbol: "USDC", coinGeckoId: "layerzero-usdc", decimals: 6, price: 0.994937}, // Addr: 0x28a92dde19d9989f39a49905d7c9c2fac7799bdf, Notional: 2097.8124954255527 + {chain: 10, addr: "0000000000000000000000001e4f97b9f9f913c46f1632781732927b9019c68b", symbol: "CRV", coinGeckoId: "curve-dao-token", decimals: 18, price: 0.324151}, // Addr: 0x1e4f97b9f9f913c46f1632781732927b9019c68b, Notional: 758.2753975710955 + {chain: 10, addr: "0000000000000000000000008d11ec38a3eb5e956b052f67da8bdc9bef8abf3e", symbol: "DAI", coinGeckoId: "dai", decimals: 18, price: 0.999076}, // Addr: 0x8d11ec38a3eb5e956b052f67da8bdc9bef8abf3e, Notional: 24757.700124415718 + {chain: 10, addr: "0000000000000000000000009879abdea01a879644185341f7af7d8343556b7a", symbol: "TUSD", coinGeckoId: "true-usd", decimals: 18, price: 0.99852}, // Addr: 0x9879abdea01a879644185341f7af7d8343556b7a, Notional: 368.6170338543936 + {chain: 10, addr: "000000000000000000000000049d68029688eabf473097a2fc38ef61633a3c7a", symbol: "fUSDT", coinGeckoId: "tether", decimals: 6, price: 0.999545}, // Addr: 0x049d68029688eabf473097a2fc38ef61633a3c7a, Notional: 2221.51816311663 + {chain: 10, addr: "00000000000000000000000097bdafe3830734acf12da25359674277fcc33729", symbol: "KIRBY", coinGeckoId: "blue-kirby", decimals: 18, price: 0.00004643}, // Addr: 0x97bdafe3830734acf12da25359674277fcc33729, Notional: 91.77358980449212 + {chain: 10, addr: "00000000000000000000000074b23882a30290451a17c44f4f05243b6b58c76d", symbol: "ETH", coinGeckoId: "weth", decimals: 18, price: 2661.57}, // Addr: 0x74b23882a30290451a17c44f4f05243b6b58c76d, Notional: 43331.2305189354 + {chain: 10, addr: "00000000000000000000000021be370d5312f44cb42ce377bc9b8a0cef1a4c83", symbol: "WFTM", coinGeckoId: "wrapped-fantom", decimals: 18, price: 0.372417}, // Addr: 0x21be370d5312f44cb42ce377bc9b8a0cef1a4c83, Notional: 37187.74404335637 + {chain: 10, addr: "00000000000000000000000042ae8468a1fddb965d420bd71368a87ec3a2b4b8", symbol: "Metti", coinGeckoId: "metti-inu", decimals: 18, price: 1.8931e-11}, // Addr: 0x42ae8468a1fddb965d420bd71368a87ec3a2b4b8, Notional: 0.000002158134 + {chain: 10, addr: "000000000000000000000000841fad6eae12c286d1fd18d1d525dffa75c7effe", symbol: "BOO", coinGeckoId: "spookyswap", decimals: 18, price: 0.824319}, // Addr: 0x841fad6eae12c286d1fd18d1d525dffa75c7effe, Notional: 0.01593107750565 + {chain: 10, addr: "0000000000000000000000005c4fdfc5233f935f20d2adba572f770c2e377ab0", symbol: "HEC", coinGeckoId: "hector-dao", decimals: 9, price: 0.08609}, // Addr: 0x5c4fdfc5233f935f20d2adba572f770c2e377ab0, Notional: 35.5768517389512 + {chain: 10, addr: "000000000000000000000000e705af5f63fcabdcdf5016aa838eaaac35d12890", symbol: "MCRT", coinGeckoId: "magiccraft", decimals: 9, price: 0.00093704}, // Addr: 0xe705af5f63fcabdcdf5016aa838eaaac35d12890, Notional: 0.3992337585726152 + {chain: 10, addr: "000000000000000000000000248cb87dda803028dfead98101c9465a2fbda0d4", symbol: "CHARM", coinGeckoId: "charm", decimals: 18, price: 9.81951e-7}, // Addr: 0x248cb87dda803028dfead98101c9465a2fbda0d4, Notional: 0.003927804 + {chain: 10, addr: "000000000000000000000000b715f8dce2f0e9b894c753711bd55ee3c04dca4e", symbol: "CONK", coinGeckoId: "shibapoconk", decimals: 18, price: 1.06795e-10}, // Addr: 0xb715f8dce2f0e9b894c753711bd55ee3c04dca4e, Notional: 0.003524235 + {chain: 10, addr: "000000000000000000000000e2d27f06f63d98b8e11b38b5b08a75d0c8dd62b9", symbol: "UST", coinGeckoId: "wrapped-ust", decimals: 6, price: 0.01610185}, // Addr: 0xe2d27f06f63d98b8e11b38b5b08a75d0c8dd62b9, Notional: 281.7708410194191 + {chain: 10, addr: "000000000000000000000000ee9801669c6138e84bd50deb500827b776777d28", symbol: "O3", coinGeckoId: "o3-swap", decimals: 18, price: 0.01654901}, // Addr: 0xee9801669c6138e84bd50deb500827b776777d28, Notional: 9.630749770176449 + {chain: 10, addr: "00000000000000000000000027e611fd27b276acbd5ffd632e5eaebec9761e40", symbol: "DAI+USDC", coinGeckoId: "curve-fi-dai-usdc", decimals: 18, price: 1}, // Addr: 0x27e611fd27b276acbd5ffd632e5eaebec9761e40, Notional: 17.51097737 + {chain: 10, addr: "000000000000000000000000ae75a438b2e0cb8bb01ec1e1e376de11d44477cc", symbol: "SUSHI", coinGeckoId: "sushi", decimals: 18, price: 0.592701}, // Addr: 0xae75a438b2e0cb8bb01ec1e1e376de11d44477cc, Notional: 31.50445487281473 + {chain: 10, addr: "000000000000000000000000260b3e40c714ce8196465ec824cd8bb915081812", symbol: "IronICE", coinGeckoId: "iron-bsc", decimals: 18, price: 0.01380571}, // Addr: 0x260b3e40c714ce8196465ec824cd8bb915081812, Notional: 31.509048047200004 {chain: 11, addr: "0000000000000000000000000000000000000000000100000000000000000081", symbol: "aUSD", coinGeckoId: "acala-dollar", decimals: 12, price: 0.51763}, // Addr: 0x0000000000000000000100000000000000000081, Notional: 5.1058603195018 - {chain: 12, addr: "0000000000000000000000000000000000000000000100000000000000000001", symbol: "aUSD", coinGeckoId: "acala-dollar-acala", decimals: 12, price: 0.64695}, // Addr: 0x0000000000000000000100000000000000000001, Notional: 263.957686750164 - {chain: 13, addr: "000000000000000000000000d068c52d81f4409b9502da926ace3301cc41f623", symbol: "MBX", coinGeckoId: "marblex", decimals: 18, price: 0.731432}, // Addr: 0xd068c52d81f4409b9502da926ace3301cc41f623, Notional: 0.0731432 - {chain: 13, addr: "000000000000000000000000cd670d77f3dcab82d43dff9bd2c4b87339fb3560", symbol: "KOKOS", coinGeckoId: "kokonut-swap", decimals: 18, price: 0.155415}, // Addr: 0xcd670d77f3dcab82d43dff9bd2c4b87339fb3560, Notional: 479428.14852481696 - {chain: 13, addr: "0000000000000000000000005c74070fdea071359b86082bd9f9b3deaafbe32b", symbol: "KDAI", coinGeckoId: "klaytn-dai", decimals: 18, price: 0.204569}, // Addr: 0x5c74070fdea071359b86082bd9f9b3deaafbe32b, Notional: 0.00409138 - {chain: 13, addr: "0000000000000000000000009eaefb09fe4aabfbe6b1ca316a3c36afc83a393f", symbol: "oXRP", coinGeckoId: "orbit-bridge-klaytn-ripple", decimals: 6, price: 0.398828}, // Addr: 0x9eaefb09fe4aabfbe6b1ca316a3c36afc83a393f, Notional: 0.0199414 - {chain: 13, addr: "000000000000000000000000cee8faf64bb97a73bb51e115aa89c17ffa8dd167", symbol: "oUSDT", coinGeckoId: "orbit-bridge-klaytn-usd-tether", decimals: 6, price: 0.204284}, // Addr: 0xcee8faf64bb97a73bb51e115aa89c17ffa8dd167, Notional: 21.074245500272 - {chain: 13, addr: "000000000000000000000000754288077d0ff82af7a5317c7cb8c444d421d103", symbol: "oUSDC", coinGeckoId: "orbit-bridge-klaytn-usdc", decimals: 6, price: 0.204989}, // Addr: 0x754288077d0ff82af7a5317c7cb8c444d421d103, Notional: 0.861194047108 - {chain: 13, addr: "000000000000000000000000c6a2ad8cc6e4a7e08fc37cc5954be07d499e7654", symbol: "KSP", coinGeckoId: "klayswap-protocol", decimals: 18, price: 0.198491}, // Addr: 0xc6a2ad8cc6e4a7e08fc37cc5954be07d499e7654, Notional: 0.26796285000000003 - {chain: 13, addr: "000000000000000000000000ce899f5fcf55b0c1d7478910f812cfe68c5bcf0f", symbol: "ABC", coinGeckoId: "angry-bulls-club", decimals: 18, price: 0.00272214}, // Addr: 0xce899f5fcf55b0c1d7478910f812cfe68c5bcf0f, Notional: 3.928430409213825 - {chain: 13, addr: "000000000000000000000000e4f05a66ec68b54a58b17c22107b02e0232cc817", symbol: "WKLAY", coinGeckoId: "wrapped-klay", decimals: 18, price: 0.168038}, // Addr: 0xe4f05a66ec68b54a58b17c22107b02e0232cc817, Notional: 419.3277755158125 - {chain: 13, addr: "0000000000000000000000006270b58be569a7c0b8f47594f191631ae5b2c86c", symbol: "USDC", coinGeckoId: "usd-coin", decimals: 6, price: 1}, // Addr: 0x6270b58be569a7c0b8f47594f191631ae5b2c86c, Notional: 45571.559055 - {chain: 13, addr: "00000000000000000000000034d21b1e550d73cee41151c77f3c73359527a396", symbol: "oETH", coinGeckoId: "orbit-bridge-klaytn-ethereum", decimals: 18, price: 624.06}, // Addr: 0x34d21b1e550d73cee41151c77f3c73359527a396, Notional: 1.24812 - {chain: 14, addr: "000000000000000000000000c16b81af351ba9e64c1a069e3ab18c244a1e3049", symbol: "agEUR", coinGeckoId: "ageur", decimals: 18, price: 1.055}, // Addr: 0xc16b81af351ba9e64c1a069e3ab18c244a1e3049, Notional: 61.027661115399994 - {chain: 14, addr: "000000000000000000000000765de816845861e75a25fca122bb6898b8b1282a", symbol: "cUSD", coinGeckoId: "celo-dollar", decimals: 18, price: 0.998387}, // Addr: 0x765de816845861e75a25fca122bb6898b8b1282a, Notional: 474.0238484393854 - {chain: 14, addr: "000000000000000000000000471ece3750da237f93b8e339c536989b8978a438", symbol: "CELO", coinGeckoId: "celo", decimals: 18, price: 0.737316}, // Addr: 0x471ece3750da237f93b8e339c536989b8978a438, Notional: 419024.4426154928 - {chain: 14, addr: "0000000000000000000000002def4285787d58a2f811af24755a8150622f4361", symbol: "cETH", coinGeckoId: "weth", decimals: 18, price: 2901.39}, // Addr: 0x2def4285787d58a2f811af24755a8150622f4361, Notional: 1.3602006459 - {chain: 14, addr: "00000000000000000000000000be915b9dcf56a3cbe739d9b9c202ca692409ec", symbol: "UBE", coinGeckoId: "ubeswap", decimals: 18, price: 0.00494497}, // Addr: 0x00be915b9dcf56a3cbe739d9b9c202ca692409ec, Notional: 6.661886967477438 - {chain: 14, addr: "00000000000000000000000062b8b11039fcfe5ab0c56e502b1c372a3d2a9c7a", symbol: "G$", coinGeckoId: "gooddollar", decimals: 18, price: 0.00002889}, // Addr: 0x62b8b11039fcfe5ab0c56e502b1c372a3d2a9c7a, Notional: 0.00002889 - {chain: 14, addr: "00000000000000000000000074c0c58b99b68cf16a717279ac2d056a34ba2bfe", symbol: "SOURCE", coinGeckoId: "resource-protocol", decimals: 18, price: 0.00826638}, // Addr: 0x74c0c58b99b68cf16a717279ac2d056a34ba2bfe, Notional: 0.035545434 - {chain: 14, addr: "000000000000000000000000d8763cba276a3738e6de85b4b3bf5fded6d6ca73", symbol: "cEUR", coinGeckoId: "celo-euro", decimals: 18, price: 1.066}, // Addr: 0xd8763cba276a3738e6de85b4b3bf5fded6d6ca73, Notional: 49296.379987069544 - {chain: 14, addr: "000000000000000000000000d629eb00deced2a080b7ec630ef6ac117e614f1b", symbol: "BTC", coinGeckoId: "wrapped-bitcoin", decimals: 18, price: 57446}, // Addr: 0xd629eb00deced2a080b7ec630ef6ac117e614f1b, Notional: 7.410533999999999 - {chain: 14, addr: "000000000000000000000000ceba9300f2b948710d2653dd7b07f33a8b32118c", symbol: "USDC", coinGeckoId: "usd-coin", decimals: 6, price: 1}, // Addr: 0xceba9300f2b948710d2653dd7b07f33a8b32118c, Notional: 7.901422 - {chain: 14, addr: "000000000000000000000000eb466342c4d449bc9f53a865d5cb90586f405215", symbol: "axlUSDC", coinGeckoId: "axlusdc", decimals: 6, price: 1}, // Addr: 0xeb466342c4d449bc9f53a865d5cb90586f405215, Notional: 0.226965 - {chain: 14, addr: "00000000000000000000000046c9757c5497c5b1f2eb73ae79b6b67d119b0b58", symbol: "PACT", coinGeckoId: "impactmarket", decimals: 18, price: 0.00020581}, // Addr: 0x46c9757c5497c5b1f2eb73ae79b6b67d119b0b58, Notional: 23237.67016347417 - {chain: 14, addr: "000000000000000000000000639a647fbe20b6c8ac19e48e2de44ea792c62c5c", symbol: "BIFI", coinGeckoId: "beefy-finance", decimals: 18, price: 358.51}, // Addr: 0x639a647fbe20b6c8ac19e48e2de44ea792c62c5c, Notional: 218.575444674 - {chain: 15, addr: "b55c490bafb82aeb4b950fa479341c1b5fbfa814f8253b6acdf8426b7cd9d3c0", symbol: "wNEAR", coinGeckoId: "wrapped-near", decimals: 24, price: 6.05}, // Addr: wrap.near, Notional: 2.90107785 - {chain: 15, addr: "f2cc590922eb9d32267bd416a259c2944789f9eb1a6584f4b7149e0f820a237b", symbol: "SOL", coinGeckoId: "wrapped-solana", decimals: 24, price: 122.79}, // Addr: sol.token.a11bd.near, Notional: 21.369357354599998 - {chain: 15, addr: "95a38d5f6bda0f5e212cd90fd5ae1f40b3a44a1de54df58fb501266cdfc8af7b", symbol: "WALC", coinGeckoId: "walc", decimals: 24, price: 0.01167797}, // Addr: walc.near, Notional: 3503.3909999999996 - {chain: 15, addr: "67499b7b8f58eaeb3cd81aea1d1ce9f7f722fd7750ceb2bed13e255073c25e2a", symbol: "SWEAT", coinGeckoId: "sweatcoin", decimals: 18, price: 0.00820783}, // Addr: token.sweat, Notional: 8696159.123542994 - {chain: 15, addr: "7cfae19928f9a3b68d342084a420284cb9a7984f52504300acb4e6f7f569393b", symbol: "SHITZU", coinGeckoId: "shitzu", decimals: 18, price: 0.00085355}, // Addr: token.0xshitzu.near, Notional: 0.0025606500000000003 - {chain: 16, addr: "000000000000000000000000cd3b51d98478d53f4515a306be565c6eebef1d58", symbol: "GLINT", coinGeckoId: "beamswap", decimals: 18, price: 0.00057344}, // Addr: 0xcd3b51d98478d53f4515a306be565c6eebef1d58, Notional: 0.014336000000000002 - {chain: 16, addr: "000000000000000000000000ca01a1d0993565291051daff390892518acfad3a", symbol: "axlUSDC", coinGeckoId: "axlusdc", decimals: 6, price: 1}, // Addr: 0xca01a1d0993565291051daff390892518acfad3a, Notional: 17.01 - {chain: 16, addr: "000000000000000000000000765277eebeca2e31912c9946eae1021199b39c61", symbol: "DAI", coinGeckoId: "dai", decimals: 18, price: 0.999522}, // Addr: 0x765277eebeca2e31912c9946eae1021199b39c61, Notional: 23.988528000000002 - {chain: 16, addr: "000000000000000000000000a423e7eeb60547d9c7b65005477b63ae7ce67e62", symbol: "EFT", coinGeckoId: "energyfi", decimals: 18, price: 0.00096988}, // Addr: 0xa423e7eeb60547d9c7b65005477b63ae7ce67e62, Notional: 24.247 - {chain: 16, addr: "00000000000000000000000030d2a9f5fdf90ace8c17952cbb4ee48a55d916a7", symbol: "WETH", coinGeckoId: "weth", decimals: 18, price: 2901.39}, // Addr: 0x30d2a9f5fdf90ace8c17952cbb4ee48a55d916a7, Notional: 2055.4940105432997 - {chain: 16, addr: "000000000000000000000000818ec0a7fe18ff94269904fced6ae3dae6d6dc0b", symbol: "USDC", coinGeckoId: "multichain-bridged-usdc-moonbeam", decimals: 6, price: 1}, // Addr: 0x818ec0a7fe18ff94269904fced6ae3dae6d6dc0b, Notional: 1033.975177 - {chain: 16, addr: "0000000000000000000000003405a1bd46b85c5c029483fbecf2f3e611026e45", symbol: "MATIC", coinGeckoId: "matic-network", decimals: 18, price: 0.671855}, // Addr: 0x3405a1bd46b85c5c029483fbecf2f3e611026e45, Notional: 105.2863625569643 - {chain: 16, addr: "000000000000000000000000acc15dc74880c9944775448304b263d191c6077f", symbol: "WGLMR", coinGeckoId: "wrapped-moonbeam", decimals: 18, price: 0.277782}, // Addr: 0xacc15dc74880c9944775448304b263d191c6077f, Notional: 10723.149211543354 - {chain: 16, addr: "000000000000000000000000fa9343c3897324496a05fc75abed6bac29f8a40f", symbol: "ETH", coinGeckoId: "weth", decimals: 18, price: 2901.39}, // Addr: 0xfa9343c3897324496a05fc75abed6bac29f8a40f, Notional: 1780.446097392 - {chain: 16, addr: "000000000000000000000000ecf2adaff1de8a512f6e8bfe67a2c836edb25da3", symbol: "xcRMRK", coinGeckoId: "rmrk", decimals: 10, price: 1.37}, // Addr: 0xecf2adaff1de8a512f6e8bfe67a2c836edb25da3, Notional: 0.8233077883 - {chain: 16, addr: "000000000000000000000000efaeee334f0fd1712f9a8cc375f427d9cdd40d73", symbol: "USDT", coinGeckoId: "tether", decimals: 6, price: 0.999172}, // Addr: 0xefaeee334f0fd1712f9a8cc375f427d9cdd40d73, Notional: 264.76176259372403 - {chain: 16, addr: "0000000000000000000000008f552a71efe5eefc207bf75485b356a0b3f01ec9", symbol: "USDC", coinGeckoId: "usd-coin", decimals: 6, price: 1}, // Addr: 0x8f552a71efe5eefc207bf75485b356a0b3f01ec9, Notional: 1246.414196 - {chain: 16, addr: "000000000000000000000000ffffffff52c56a9257bb97f4b2b6f7b2d624ecda", symbol: "xcaUSD", coinGeckoId: "acala-dollar-acala", decimals: 12, price: 0.64695}, // Addr: 0xffffffff52c56a9257bb97f4b2b6f7b2d624ecda, Notional: 22.3952574319155 - {chain: 16, addr: "0000000000000000000000004792c1ecb969b036eb51330c63bd27899a13d84e", symbol: "AVAX", coinGeckoId: "wrapped-avax", decimals: 18, price: 32.48}, // Addr: 0x4792c1ecb969b036eb51330c63bd27899a13d84e, Notional: 636.328748328 - {chain: 16, addr: "000000000000000000000000511ab53f793683763e5a8829738301368a2411e3", symbol: "WELL", coinGeckoId: "moonwell-artemis", decimals: 18, price: 0.03092743}, // Addr: 0x511ab53f793683763e5a8829738301368a2411e3, Notional: 11649239.919575159 - {chain: 16, addr: "000000000000000000000000ffffffff1fcacbd218edc0eba20fc2308c778080", symbol: "xcDOT", coinGeckoId: "xcdot", decimals: 10, price: 6.53}, // Addr: 0xffffffff1fcacbd218edc0eba20fc2308c778080, Notional: 302.1308544216 - {chain: 16, addr: "000000000000000000000000a649325aa7c5093d12d6f98eb4378deae68ce23f", symbol: "BUSD", coinGeckoId: "binance-usd", decimals: 18, price: 0.997575}, // Addr: 0xa649325aa7c5093d12d6f98eb4378deae68ce23f, Notional: 1686.9287960090737 - {chain: 16, addr: "000000000000000000000000322e86852e492a7ee17f28a78c663da38fb33bfb", symbol: "FRAX", coinGeckoId: "frax", decimals: 18, price: 0.99874}, // Addr: 0x322e86852e492a7ee17f28a78c663da38fb33bfb, Notional: 5.0036874 - {chain: 16, addr: "000000000000000000000000ffffffffea09fb06d082fd1275cd48b191cbcd1d", symbol: "xcUSDT", coinGeckoId: "xcusdt", decimals: 6, price: 1.66}, // Addr: 0xffffffffea09fb06d082fd1275cd48b191cbcd1d, Notional: 75.85741674 + {chain: 12, addr: "0000000000000000000000000000000000000000000100000000000000000001", symbol: "aUSD", coinGeckoId: "acala-dollar-acala", decimals: 12, price: 0.332755}, // Addr: 0x0000000000000000000100000000000000000001, Notional: 135.7651133079076 + {chain: 13, addr: "000000000000000000000000d068c52d81f4409b9502da926ace3301cc41f623", symbol: "MBX", coinGeckoId: "marblex", decimals: 18, price: 0.426411}, // Addr: 0xd068c52d81f4409b9502da926ace3301cc41f623, Notional: 0.0426411 + {chain: 13, addr: "000000000000000000000000cd670d77f3dcab82d43dff9bd2c4b87339fb3560", symbol: "KOKOS", coinGeckoId: "kokonut-swap", decimals: 18, price: 0.155415}, // Addr: 0xcd670d77f3dcab82d43dff9bd2c4b87339fb3560, Notional: 492977.148923289 + {chain: 13, addr: "0000000000000000000000005c74070fdea071359b86082bd9f9b3deaafbe32b", symbol: "KDAI", coinGeckoId: "klaytn-dai", decimals: 18, price: 0.213188}, // Addr: 0x5c74070fdea071359b86082bd9f9b3deaafbe32b, Notional: 0.00426376 + {chain: 13, addr: "0000000000000000000000009eaefb09fe4aabfbe6b1ca316a3c36afc83a393f", symbol: "oXRP", coinGeckoId: "orbit-bridge-klaytn-ripple", decimals: 6, price: 0.514436}, // Addr: 0x9eaefb09fe4aabfbe6b1ca316a3c36afc83a393f, Notional: 0.025721800000000003 + {chain: 13, addr: "000000000000000000000000cee8faf64bb97a73bb51e115aa89c17ffa8dd167", symbol: "oUSDT", coinGeckoId: "orbit-bridge-klaytn-usd-tether", decimals: 6, price: 0.150554}, // Addr: 0xcee8faf64bb97a73bb51e115aa89c17ffa8dd167, Notional: 15.531377675432 + {chain: 13, addr: "000000000000000000000000754288077d0ff82af7a5317c7cb8c444d421d103", symbol: "oUSDC", coinGeckoId: "orbit-bridge-klaytn-usdc", decimals: 6, price: 0.283395}, // Addr: 0x754288077d0ff82af7a5317c7cb8c444d421d103, Notional: 1.19059113894 + {chain: 13, addr: "000000000000000000000000c6a2ad8cc6e4a7e08fc37cc5954be07d499e7654", symbol: "KSP", coinGeckoId: "klayswap-protocol", decimals: 18, price: 0.125555}, // Addr: 0xc6a2ad8cc6e4a7e08fc37cc5954be07d499e7654, Notional: 0.16949925000000002 + {chain: 13, addr: "000000000000000000000000ce899f5fcf55b0c1d7478910f812cfe68c5bcf0f", symbol: "ABC", coinGeckoId: "angry-bulls-club", decimals: 18, price: 0.00361174}, // Addr: 0xce899f5fcf55b0c1d7478910f812cfe68c5bcf0f, Notional: 5.212248174661825 + {chain: 13, addr: "000000000000000000000000e950bdcfa4d1e45472e76cf967db93dbfc51ba3e", symbol: "KAI", coinGeckoId: "kai-protocol", decimals: 18, price: 0.093561}, // Addr: 0xe950bdcfa4d1e45472e76cf967db93dbfc51ba3e, Notional: 60847.164190987714 + {chain: 13, addr: "000000000000000000000000e4f05a66ec68b54a58b17c22107b02e0232cc817", symbol: "WKLAY", coinGeckoId: "wrapped-klay", decimals: 18, price: 0.128846}, // Addr: 0xe4f05a66ec68b54a58b17c22107b02e0232cc817, Notional: 3630.184314121601 + {chain: 13, addr: "0000000000000000000000006270b58be569a7c0b8f47594f191631ae5b2c86c", symbol: "USDC", coinGeckoId: "usd-coin", decimals: 6, price: 0.999097}, // Addr: 0x6270b58be569a7c0b8f47594f191631ae5b2c86c, Notional: 45530.40793717333 + {chain: 13, addr: "00000000000000000000000034d21b1e550d73cee41151c77f3c73359527a396", symbol: "oETH", coinGeckoId: "orbit-bridge-klaytn-ethereum", decimals: 18, price: 364.99}, // Addr: 0x34d21b1e550d73cee41151c77f3c73359527a396, Notional: 0.7299800000000001 + {chain: 14, addr: "000000000000000000000000c16b81af351ba9e64c1a069e3ab18c244a1e3049", symbol: "agEUR", coinGeckoId: "ageur", decimals: 18, price: 1.092}, // Addr: 0xc16b81af351ba9e64c1a069e3ab18c244a1e3049, Notional: 63.16796771376 + {chain: 14, addr: "000000000000000000000000765de816845861e75a25fca122bb6898b8b1282a", symbol: "cUSD", coinGeckoId: "celo-dollar", decimals: 18, price: 0.997004}, // Addr: 0x765de816845861e75a25fca122bb6898b8b1282a, Notional: 473.3672143061368 + {chain: 14, addr: "000000000000000000000000471ece3750da237f93b8e339c536989b8978a438", symbol: "CELO", coinGeckoId: "celo", decimals: 18, price: 0.46237}, // Addr: 0x471ece3750da237f93b8e339c536989b8978a438, Notional: 307455.80251896277 + {chain: 14, addr: "0000000000000000000000002def4285787d58a2f811af24755a8150622f4361", symbol: "cETH", coinGeckoId: "weth", decimals: 18, price: 2661.57}, // Addr: 0x2def4285787d58a2f811af24755a8150622f4361, Notional: 1.2477706317000001 + {chain: 14, addr: "00000000000000000000000000be915b9dcf56a3cbe739d9b9c202ca692409ec", symbol: "UBE", coinGeckoId: "ubeswap", decimals: 18, price: 0.00153676}, // Addr: 0x00be915b9dcf56a3cbe739d9b9c202ca692409ec, Notional: 2.0703303389384824 + {chain: 14, addr: "00000000000000000000000062b8b11039fcfe5ab0c56e502b1c372a3d2a9c7a", symbol: "G$", coinGeckoId: "gooddollar", decimals: 18, price: 0.00003375}, // Addr: 0x62b8b11039fcfe5ab0c56e502b1c372a3d2a9c7a, Notional: 0.00003375 + {chain: 14, addr: "00000000000000000000000074c0c58b99b68cf16a717279ac2d056a34ba2bfe", symbol: "SOURCE", coinGeckoId: "resource-protocol", decimals: 18, price: 0.01120612}, // Addr: 0x74c0c58b99b68cf16a717279ac2d056a34ba2bfe, Notional: 0.048186316 + {chain: 14, addr: "000000000000000000000000d8763cba276a3738e6de85b4b3bf5fded6d6ca73", symbol: "cEUR", coinGeckoId: "celo-euro", decimals: 18, price: 1.096}, // Addr: 0xd8763cba276a3738e6de85b4b3bf5fded6d6ca73, Notional: 50683.70775406025 + {chain: 14, addr: "000000000000000000000000d629eb00deced2a080b7ec630ef6ac117e614f1b", symbol: "BTC", coinGeckoId: "wrapped-bitcoin", decimals: 18, price: 58724}, // Addr: 0xd629eb00deced2a080b7ec630ef6ac117e614f1b, Notional: 7.575396 + {chain: 14, addr: "000000000000000000000000ceba9300f2b948710d2653dd7b07f33a8b32118c", symbol: "USDC", coinGeckoId: "usd-coin", decimals: 6, price: 0.999097}, // Addr: 0xceba9300f2b948710d2653dd7b07f33a8b32118c, Notional: 1011.990402734432 + {chain: 14, addr: "000000000000000000000000eb466342c4d449bc9f53a865d5cb90586f405215", symbol: "axlUSDC", coinGeckoId: "axlusdc", decimals: 6, price: 0.998063}, // Addr: 0xeb466342c4d449bc9f53a865d5cb90586f405215, Notional: 0.22652536879500001 + {chain: 14, addr: "00000000000000000000000046c9757c5497c5b1f2eb73ae79b6b67d119b0b58", symbol: "PACT", coinGeckoId: "impactmarket", decimals: 18, price: 0.00006517}, // Addr: 0x46c9757c5497c5b1f2eb73ae79b6b67d119b0b58, Notional: 5820.850700319882 + {chain: 14, addr: "00000000000000000000000048065fbbe25f71c9282ddf5e1cd6d6a887483d5e", symbol: "USD₮", coinGeckoId: "tether", decimals: 6, price: 0.999545}, // Addr: 0x48065fbbe25f71c9282ddf5e1cd6d6a887483d5e, Notional: 1.8703196171949998 + {chain: 14, addr: "000000000000000000000000639a647fbe20b6c8ac19e48e2de44ea792c62c5c", symbol: "BIFI", coinGeckoId: "beefy-finance", decimals: 18, price: 274.44}, // Addr: 0x639a647fbe20b6c8ac19e48e2de44ea792c62c5c, Notional: 167.31986565600002 + {chain: 15, addr: "b55c490bafb82aeb4b950fa479341c1b5fbfa814f8253b6acdf8426b7cd9d3c0", symbol: "wNEAR", coinGeckoId: "wrapped-near", decimals: 24, price: 4.16}, // Addr: wrap.near, Notional: 6.86199072 + {chain: 15, addr: "f2cc590922eb9d32267bd416a259c2944789f9eb1a6584f4b7149e0f820a237b", symbol: "SOL", coinGeckoId: "wrapped-solana", decimals: 24, price: 143.59}, // Addr: sol.token.a11bd.near, Notional: 24.9892175466 + {chain: 15, addr: "95a38d5f6bda0f5e212cd90fd5ae1f40b3a44a1de54df58fb501266cdfc8af7b", symbol: "WALC", coinGeckoId: "walc", decimals: 24, price: 0.01399323}, // Addr: walc.near, Notional: 4197.969 + {chain: 15, addr: "67499b7b8f58eaeb3cd81aea1d1ce9f7f722fd7750ceb2bed13e255073c25e2a", symbol: "SWEAT", coinGeckoId: "sweatcoin", decimals: 18, price: 0.00579396}, // Addr: token.sweat, Notional: 6139933.69194158 + {chain: 15, addr: "7cfae19928f9a3b68d342084a420284cb9a7984f52504300acb4e6f7f569393b", symbol: "SHITZU", coinGeckoId: "shitzu", decimals: 18, price: 0.00123992}, // Addr: token.0xshitzu.near, Notional: 0.00371976 + {chain: 16, addr: "000000000000000000000000cd3b51d98478d53f4515a306be565c6eebef1d58", symbol: "GLINT", coinGeckoId: "beamswap", decimals: 18, price: 0.00030393}, // Addr: 0xcd3b51d98478d53f4515a306be565c6eebef1d58, Notional: 0.00759825 + {chain: 16, addr: "000000000000000000000000ca01a1d0993565291051daff390892518acfad3a", symbol: "axlUSDC", coinGeckoId: "axlusdc", decimals: 6, price: 0.998063}, // Addr: 0xca01a1d0993565291051daff390892518acfad3a, Notional: 16.977051630000002 + {chain: 16, addr: "000000000000000000000000765277eebeca2e31912c9946eae1021199b39c61", symbol: "DAI", coinGeckoId: "dai", decimals: 18, price: 0.999076}, // Addr: 0x765277eebeca2e31912c9946eae1021199b39c61, Notional: 23.977824 + {chain: 16, addr: "000000000000000000000000a423e7eeb60547d9c7b65005477b63ae7ce67e62", symbol: "EFT", coinGeckoId: "energyfi", decimals: 18, price: 0.00018482}, // Addr: 0xa423e7eeb60547d9c7b65005477b63ae7ce67e62, Notional: 4.6205 + {chain: 16, addr: "00000000000000000000000030d2a9f5fdf90ace8c17952cbb4ee48a55d916a7", symbol: "WETH", coinGeckoId: "weth", decimals: 18, price: 2661.57}, // Addr: 0x30d2a9f5fdf90ace8c17952cbb4ee48a55d916a7, Notional: 1885.5931790079 + {chain: 16, addr: "000000000000000000000000818ec0a7fe18ff94269904fced6ae3dae6d6dc0b", symbol: "USDC", coinGeckoId: "multichain-bridged-usdc-moonbeam", decimals: 6, price: 1.0}, // Addr: 0x818ec0a7fe18ff94269904fced6ae3dae6d6dc0b, Notional: 94.6199456545 + {chain: 16, addr: "0000000000000000000000003405a1bd46b85c5c029483fbecf2f3e611026e45", symbol: "MATIC", coinGeckoId: "matic-network", decimals: 18, price: 0.423753}, // Addr: 0x3405a1bd46b85c5c029483fbecf2f3e611026e45, Notional: 66.40631087452098 + {chain: 16, addr: "000000000000000000000000acc15dc74880c9944775448304b263d191c6077f", symbol: "WGLMR", coinGeckoId: "wrapped-moonbeam", decimals: 18, price: 0.155144}, // Addr: 0xacc15dc74880c9944775448304b263d191c6077f, Notional: 6576.002489772518 + {chain: 16, addr: "000000000000000000000000fa9343c3897324496a05fc75abed6bac29f8a40f", symbol: "ETH", coinGeckoId: "weth", decimals: 18, price: 2661.57}, // Addr: 0xfa9343c3897324496a05fc75abed6bac29f8a40f, Notional: 2266.2267533523 + {chain: 16, addr: "000000000000000000000000922d641a426dcffaef11680e5358f34d97d112e1", symbol: "WBTC", coinGeckoId: "wrapped-bitcoin", decimals: 8, price: 58724}, // Addr: 0x922d641a426dcffaef11680e5358f34d97d112e1, Notional: 734.7030108800001 + {chain: 16, addr: "000000000000000000000000ecf2adaff1de8a512f6e8bfe67a2c836edb25da3", symbol: "xcRMRK", coinGeckoId: "rmrk", decimals: 10, price: 0.396332}, // Addr: 0xecf2adaff1de8a512f6e8bfe67a2c836edb25da3, Notional: 0.23817753456388 + {chain: 16, addr: "000000000000000000000000efaeee334f0fd1712f9a8cc375f427d9cdd40d73", symbol: "USDT", coinGeckoId: "tether", decimals: 6, price: 0.999545}, // Addr: 0xefaeee334f0fd1712f9a8cc375f427d9cdd40d73, Notional: 267.26916717235 + {chain: 16, addr: "0000000000000000000000008f552a71efe5eefc207bf75485b356a0b3f01ec9", symbol: "USDC", coinGeckoId: "usd-coin", decimals: 6, price: 0.999097}, // Addr: 0x8f552a71efe5eefc207bf75485b356a0b3f01ec9, Notional: 1271.265205981012 + {chain: 16, addr: "000000000000000000000000ffffffff52c56a9257bb97f4b2b6f7b2d624ecda", symbol: "xcaUSD", coinGeckoId: "acala-dollar-acala", decimals: 12, price: 0.332755}, // Addr: 0xffffffff52c56a9257bb97f4b2b6f7b2d624ecda, Notional: 11.51887145336895 + {chain: 16, addr: "0000000000000000000000004792c1ecb969b036eb51330c63bd27899a13d84e", symbol: "AVAX", coinGeckoId: "wrapped-avax", decimals: 18, price: 20.96}, // Addr: 0x4792c1ecb969b036eb51330c63bd27899a13d84e, Notional: 414.1880219536 + {chain: 16, addr: "000000000000000000000000511ab53f793683763e5a8829738301368a2411e3", symbol: "WELL", coinGeckoId: "moonwell-artemis", decimals: 18, price: 0.01183656}, // Addr: 0x511ab53f793683763e5a8829738301368a2411e3, Notional: 2503290.7449248605 + {chain: 16, addr: "000000000000000000000000ffffffff1fcacbd218edc0eba20fc2308c778080", symbol: "xcDOT", coinGeckoId: "xcdot", decimals: 10, price: 4.4}, // Addr: 0xffffffff1fcacbd218edc0eba20fc2308c778080, Notional: 203.57974876800003 + {chain: 16, addr: "000000000000000000000000a649325aa7c5093d12d6f98eb4378deae68ce23f", symbol: "BUSD", coinGeckoId: "binance-usd", decimals: 18, price: 0.998172}, // Addr: 0xa649325aa7c5093d12d6f98eb4378deae68ce23f, Notional: 2510.5418672466208 + {chain: 16, addr: "000000000000000000000000322e86852e492a7ee17f28a78c663da38fb33bfb", symbol: "FRAX", coinGeckoId: "frax", decimals: 18, price: 0.995775}, // Addr: 0x322e86852e492a7ee17f28a78c663da38fb33bfb, Notional: 4.988832749999999 + {chain: 16, addr: "000000000000000000000000ffffffffea09fb06d082fd1275cd48b191cbcd1d", symbol: "xcUSDT", coinGeckoId: "xcusdt", decimals: 6, price: 1.007}, // Addr: 0xffffffffea09fb06d082fd1275cd48b191cbcd1d, Notional: 46.017119672999996 {chain: 18, addr: "00e079a77f9591f05ef4c2208aff66d85b83afe8db60b398acc7b1277c58887e", symbol: "LunaX", coinGeckoId: "lunax", decimals: 6, price: 1.056}, // Addr: terra14xsm2wzvu7xaf567r693vgfkhmvfs08l68h4tjj5wjgyn5ky8e2qvzyanh, Notional: 1.016810784 - {chain: 18, addr: "01fa6c6fbc36d8c245b0a852a43eb5d644e8b4c477b27bfab9537c10945939da", symbol: "LUNA", coinGeckoId: "terra-luna-2", decimals: 6, price: 0.538755}, // Addr: uluna, Notional: 1041.4856981420849 - {chain: 19, addr: "017038850bf3af746c36803cce35009268f00d22ae2b55ffb59ac5f2a6add40b", symbol: "INJ", coinGeckoId: "injective-protocol", decimals: 18, price: 22.87}, // Addr: inj, Notional: 3400.8377051392004 - {chain: 21, addr: "3e50a0a576877092bfaa4f8e4ec8cd7dd0a4a281bec3f806583949cf7873d07b", symbol: "SUIP", coinGeckoId: "suipad", decimals: 9, price: 0.064941}, // Addr: 0xe4239cd951f6c53d9c41e25270d80d31f925ad1655e5ba5b543843d4a66975ee::SUIP::SUIP, Notional: 66575.19593366927 - {chain: 21, addr: "5075594c01d46f3bcbc4a7ef1462058273bece7793eebd0464963597c9fd0935", symbol: "SPT", coinGeckoId: "seapad", decimals: 9, price: 0.14781}, // Addr: 0xb779486cfd6c19e9218cc7dc17c453014d2d9ba12d2ee4dbb0ec4e1e02ae1cca::spt::SPT, Notional: 21.61558659 - {chain: 21, addr: "95a4518ae9e019c757df6703dce9ea5ecac8b319b9afed3a44c4d50363a66b42", symbol: "TURBOS", coinGeckoId: "turbos-finance", decimals: 9, price: 0.00288425}, // Addr: 0x5d1f47ea69bb0de31c313d7acf89b890dbb8991ea8e03c6c355171f84bb1ba4a::turbos::TURBOS, Notional: 153930.2676174286 - {chain: 21, addr: "9258181f5ceac8dbffb7030890243caed69a9599d2886d957a9cb7656af3bdb3", symbol: "SUI", coinGeckoId: "sui", decimals: 9, price: 1.1}, // Addr: 0x2::sui::SUI, Notional: 67384.26409360801 - {chain: 21, addr: "4c0dce55eff2db5419bbd2d239d1aa22b4a400c01bbb648b058a9883989025da", symbol: "CETUS", coinGeckoId: "cetus-protocol", decimals: 9, price: 0.095207}, // Addr: 0x6864a6f921804860930db6ddbe2e16acdf8504495ea7481637a1c8b9a8fe54b::cetus::CETUS, Notional: 0.00000111201776 - {chain: 21, addr: "5d26a1e9a55c88147ac870bfa31b729d7f49f8804b8b3adfdf3582d301cca844", symbol: "SCA", coinGeckoId: "scallop-2", decimals: 9, price: 0.644899}, // Addr: 0x7016aae72cfc67f2fadf55769c0a7dd54291a583b63051a5ed71081cce836ac6::sca::SCA, Notional: 51267.349523085475 - {chain: 22, addr: "ec43792d3639b37cfcf7a3381d4fd71e2a7c75e708a518970eb0d475a03097cf", symbol: "BNB", coinGeckoId: "wrapped-bnb-celer", decimals: 8, price: 555.23}, // Addr: 0x8d87a65ba30e09357fa2edea2c80dbac296e5dec2b18287113500b902942929d::celer_coin_manager::BnbCoin, Notional: 25.6630415288 - {chain: 22, addr: "c0ef1c9f58413f5fce5cf859b363b291eb43995b9e790da04afe15772f502fbf", symbol: "ANI", coinGeckoId: "animeswap", decimals: 8, price: 0.00064024}, // Addr: 0x16fe2df00ea7dde4a63409201f7f4e536bde7bb7335526a35d05111e68aa322c::AnimeCoin::ANI, Notional: 1.1054936664319408 - {chain: 22, addr: "6155e0a106aeb3b0944388613027aee11c84921969ff775727e8046b17b17154", symbol: "USDC", coinGeckoId: "usd-coin", decimals: 6, price: 1}, // Addr: 0xf22bede237a07e121b56d91a491eb7bcdfd1f5907926a9e58338f964a01b17fa::asset::USDC, Notional: 15747.869194 - {chain: 22, addr: "d64be880bc9b995c0028588e916e21e7e796ae5cf32cac551edeaf95f2f9fdbd", symbol: "doodoo", coinGeckoId: "doodoo", decimals: 8, price: 0.64683}, // Addr: 0x73eb84966be67e4697fc5ae75173ca6c35089e802650f75422ab49a8729704ec::coin::DooDoo, Notional: 2558601.324144405 - {chain: 22, addr: "5a03e1706af81b4176d7a25ec23b7ce4098f79082daf20e312d4bf6e52d2e195", symbol: "SLT", coinGeckoId: "sui-launch-token", decimals: 8, price: 0.00002697}, // Addr: 0x8b2df69c9766e18486c37e3cfc53c6ce6e9aa58bbc606a8a0a219f24cf9eafc1::sui_launch_token::SuiLaunchToken, Notional: 0.8650391089008969 - {chain: 22, addr: "a867703f5395cb2965feb7ebff5cdf39b771fc6156085da3ae4147a00be91b38", symbol: "APT", coinGeckoId: "aptos", decimals: 8, price: 8.63}, // Addr: 0x1::aptos_coin::AptosCoin, Notional: 92671.7998117301 - {chain: 22, addr: "2603e2b07403ec1ff0315cbbeffac190f08a85dd61157c503c8f88efb2a7e123", symbol: "MOVE", coinGeckoId: "bluemove", decimals: 8, price: 0.053242}, // Addr: 0x27fafcc4e39daac97556af8a803dbb52bcb03f0821898dc845ac54225b9793eb::move_coin::MoveCoin, Notional: 120.02575400909086 - {chain: 22, addr: "0d080af8d4c0959b482427505b893d59abca4d1c9670de1a1fe02dc9d7c66728", symbol: "tAPT", coinGeckoId: "tortuga-staked-aptos", decimals: 8, price: 9.43}, // Addr: 0x84d7aeef42d38a5ffc3ccef853e1b82e4958659d16a7de736a29c55fbbeb0114::staked_aptos_coin::StakedAptosCoin, Notional: 20.73177013 - {chain: 22, addr: "0cb75f840d0b043dda136e86fb2b01415a873169531ad5be0df923c12864d9bd", symbol: "Cake", coinGeckoId: "pancakeswap-token", decimals: 8, price: 2.45}, // Addr: 0x159df6b7689437016108a019fd5bef736bac692b6d4a1f10c941f6fbb9a74ca6::oft::CakeOFT, Notional: 177.98972000950002 - {chain: 22, addr: "f7835a613217e1b032007d111c9d34db23cf5f976e27e1afda8b97c3e35df17b", symbol: "WETH", coinGeckoId: "wrapped-ether-celer", decimals: 8, price: 2892.81}, // Addr: 0x8d87a65ba30e09357fa2edea2c80dbac296e5dec2b18287113500b902942929d::celer_coin_manager::WethCoin, Notional: 88.7232637587 - {chain: 22, addr: "b029b48ea7d6c38a48a0400a156544700a9fc7ac9b82a18a3e644326177996be", symbol: "MOD", coinGeckoId: "move-dollar", decimals: 8, price: 0.998295}, // Addr: 0x6f986d146e4a90b828d8c12c14b6f4e003fdff11a8eecceceb63744363eaac01::mod_coin::MOD, Notional: 1.0382268000000001 - {chain: 22, addr: "61f76dbc4bdb1add1afecc1f726638bc9b5b2ac42b62f8d598b27431e5c82b7c", symbol: "GUI", coinGeckoId: "gui-inu", decimals: 6, price: 0.00002713}, // Addr: 0xe4ccb6d39136469f376242c31b34d10515c8eaaa38092f804db8e08a8f53c5b2::assets_v1::EchoCoin002, Notional: 22.11925178 - {chain: 22, addr: "a4b99ea559e3faeb5ddaf5bf39101894d0ce210d5e79306034d031cb6ac79693", symbol: "MAU", coinGeckoId: "mau", decimals: 8, price: 0.00006617}, // Addr: 0x83b619e2d9e6e10d15ed4b714111a4cd9526c1c2ae0eec4b252a619d3e8bdda3::MAU::MAU, Notional: 0.0013234 - {chain: 22, addr: "eb1cbad587018a828b7e2d49456ed3e96d01baa8f7590723c558fecdfdffe842", symbol: "ALT", coinGeckoId: "aptos-launch-token", decimals: 8, price: 0.01454986}, // Addr: 0xd0b4efb4be7c3508d9a26a9b5405cf9f860d0b9e5fe2f498b90e68b8d2cedd3e::aptos_launch_token::AptosLaunchToken, Notional: 0.18915436369049998 - {chain: 23, addr: "0000000000000000000000002f2a2543b76a4166549f7aab2e75bef0aefc5b0f", symbol: "WBTC", coinGeckoId: "wrapped-bitcoin", decimals: 8, price: 57446}, // Addr: 0x2f2a2543b76a4166549f7aab2e75bef0aefc5b0f, Notional: 284.64607892 - {chain: 23, addr: "000000000000000000000000912ce59144191c1204e64559fe8253a0e49e6548", symbol: "ARB", coinGeckoId: "arbitrum", decimals: 18, price: 1.019}, // Addr: 0x912ce59144191c1204e64559fe8253a0e49e6548, Notional: 234558.27772752114 - {chain: 23, addr: "000000000000000000000000b261104a83887ae92392fb5ce5899fcfe5481456", symbol: "NFTE", coinGeckoId: "nftearth", decimals: 18, price: 0.00000465}, // Addr: 0xb261104a83887ae92392fb5ce5899fcfe5481456, Notional: 0.000046500000000000005 - {chain: 23, addr: "00000000000000000000000010393c20975cf177a3513071bc110f7962cd67da", symbol: "JONES", coinGeckoId: "jones-dao", decimals: 18, price: 0.606682}, // Addr: 0x10393c20975cf177a3513071bc110f7962cd67da, Notional: 0.0057037511571000005 - {chain: 23, addr: "00000000000000000000000099c409e5f62e4bd2ac142f17cafb6810b8f0baae", symbol: "BIFI", coinGeckoId: "beefy-finance", decimals: 18, price: 358.51}, // Addr: 0x99c409e5f62e4bd2ac142f17cafb6810b8f0baae, Notional: 1001.9656086668999 - {chain: 23, addr: "000000000000000000000000fa5ed56a203466cbbc2430a43c66b9d8723528e7", symbol: "agEUR", coinGeckoId: "ageur", decimals: 18, price: 1.055}, // Addr: 0xfa5ed56a203466cbbc2430a43c66b9d8723528e7, Notional: 46.764683217249996 - {chain: 23, addr: "0000000000000000000000006c2c06790b3e3e3c38e12ee22f8183b37a13ee55", symbol: "DPX", coinGeckoId: "dopex", decimals: 18, price: 26.82}, // Addr: 0x6c2c06790b3e3e3c38e12ee22f8183b37a13ee55, Notional: 0.002991771 - {chain: 23, addr: "000000000000000000000000a684cd057951541187f288294a1e1c2646aa2d24", symbol: "VSTA", coinGeckoId: "vesta-finance", decimals: 18, price: 0.453529}, // Addr: 0xa684cd057951541187f288294a1e1c2646aa2d24, Notional: 0.024386862058860002 - {chain: 23, addr: "00000000000000000000000013a7dedb7169a17be92b0e3c7c2315b46f4772b3", symbol: "Boop", coinGeckoId: "boop-2", decimals: 18, price: 0.00016316}, // Addr: 0x13a7dedb7169a17be92b0e3c7c2315b46f4772b3, Notional: 66705.89718342922 - {chain: 23, addr: "0000000000000000000000003b475f6f2f41853706afc9fa6a6b8c5df1a2724c", symbol: "ZYB", coinGeckoId: "zyberswap", decimals: 18, price: 0.03966956}, // Addr: 0x3b475f6f2f41853706afc9fa6a6b8c5df1a2724c, Notional: 0.1983478 - {chain: 23, addr: "00000000000000000000000051318b7d00db7acc4026c88c3952b66278b6a67f", symbol: "PLS", coinGeckoId: "plutusdao", decimals: 18, price: 0.03162446}, // Addr: 0x51318b7d00db7acc4026c88c3952b66278b6a67f, Notional: 0.0027113762071928 - {chain: 23, addr: "00000000000000000000000016f1967565aad72dd77588a332ce445e7cef752b", symbol: "CAW", coinGeckoId: "crow-with-knife", decimals: 0, price: 1.23494e-7}, // Addr: 0x16f1967565aad72dd77588a332ce445e7cef752b, Notional: 1405046.4888677176 - {chain: 23, addr: "000000000000000000000000b9af4762c039d63e30039f1712dfab77026408c7", symbol: "AIBB", coinGeckoId: "bullbear-ai", decimals: 18, price: 3.83163e-10}, // Addr: 0xb9af4762c039d63e30039f1712dfab77026408c7, Notional: 3.83163e-9 - {chain: 23, addr: "000000000000000000000000da10009cbd5d07dd0cecc66161fc93d7c9000da1", symbol: "DAI", coinGeckoId: "dai", decimals: 18, price: 0.999522}, // Addr: 0xda10009cbd5d07dd0cecc66161fc93d7c9000da1, Notional: 1619.53443209679 - {chain: 23, addr: "00000000000000000000000057f12fe6a4e5fe819eec699fadf9db2d06606bb4", symbol: "NPM", coinGeckoId: "neptune-mutual", decimals: 18, price: 0.03075929}, // Addr: 0x57f12fe6a4e5fe819eec699fadf9db2d06606bb4, Notional: 0.03075929 - {chain: 23, addr: "0000000000000000000000006c84a8f1c29108f47a79964b5fe888d4f4d0de40", symbol: "tBTC", coinGeckoId: "tbtc", decimals: 18, price: 57559}, // Addr: 0x6c84a8f1c29108f47a79964b5fe888d4f4d0de40, Notional: 98.11852494 - {chain: 23, addr: "000000000000000000000000fea7a6a0b346362bf88a9e4a88416b77a57d6c2a", symbol: "MIM", coinGeckoId: "magic-internet-money", decimals: 18, price: 0.995794}, // Addr: 0xfea7a6a0b346362bf88a9e4a88416b77a57d6c2a, Notional: 0.00099578404206 - {chain: 23, addr: "000000000000000000000000e6045890b20945d00e6f3c01878265c03c5435d3", symbol: "IDIA", coinGeckoId: "idia", decimals: 18, price: 0.066787}, // Addr: 0xe6045890b20945d00e6f3c01878265c03c5435d3, Notional: 56660.839891072195 - {chain: 23, addr: "000000000000000000000000289ba1701c2f088cf0faf8b3705246331cb8a839", symbol: "LPT", coinGeckoId: "livepeer", decimals: 18, price: 12.03}, // Addr: 0x289ba1701c2f088cf0faf8b3705246331cb8a839, Notional: 1779.6603667374 - {chain: 23, addr: "0000000000000000000000006694340fc020c5e6b96567843da2df01b2ce1eb6", symbol: "STG", coinGeckoId: "stargate-finance", decimals: 18, price: 0.486642}, // Addr: 0x6694340fc020c5e6b96567843da2df01b2ce1eb6, Notional: 66.05160004574975 - {chain: 23, addr: "000000000000000000000000aa54e84a3e6e5a80288d2c2f8e36ea5ca3a3ca30", symbol: "$SHARBI", coinGeckoId: "sharbi", decimals: 9, price: 9.4663e-7}, // Addr: 0xaa54e84a3e6e5a80288d2c2f8e36ea5ca3a3ca30, Notional: 0.0000026032324999999996 - {chain: 23, addr: "000000000000000000000000d56734d7f9979dd94fae3d67c7e928234e71cd4c", symbol: "TIA.n", coinGeckoId: "bridged-tia-hyperlane", decimals: 6, price: 9.5}, // Addr: 0xd56734d7f9979dd94fae3d67c7e928234e71cd4c, Notional: 14.25 - {chain: 23, addr: "000000000000000000000000ff970a61a04b1ca14834a43f5de4533ebddb5cc8", symbol: "USDC", coinGeckoId: "usd-coin", decimals: 6, price: 1}, // Addr: 0xff970a61a04b1ca14834a43f5de4533ebddb5cc8, Notional: 4587083.210365 - {chain: 23, addr: "000000000000000000000000f97f4df75117a78c1a5a0dbb814af92458539fb4", symbol: "LINK", coinGeckoId: "chainlink", decimals: 18, price: 12.9}, // Addr: 0xf97f4df75117a78c1a5a0dbb814af92458539fb4, Notional: 164.663093739 - {chain: 23, addr: "000000000000000000000000ba0dda8762c24da9487f5fa026a9b64b695a07ea", symbol: "OX", coinGeckoId: "ox-fun", decimals: 18, price: 0.01322877}, // Addr: 0xba0dda8762c24da9487f5fa026a9b64b695a07ea, Notional: 88755.99140068312 - {chain: 23, addr: "0000000000000000000000009d2f299715d94d8a7e6f5eaa8e654e8c74a988a7", symbol: "FXS", coinGeckoId: "frax-share", decimals: 18, price: 4.1}, // Addr: 0x9d2f299715d94d8a7e6f5eaa8e654e8c74a988a7, Notional: 10.316464648999998 - {chain: 23, addr: "0000000000000000000000009dce8e754913d928eb39bc4fc3cf047e364f7f2c", symbol: "BLOK", coinGeckoId: "bloktopia", decimals: 18, price: 0.00138954}, // Addr: 0x9dce8e754913d928eb39bc4fc3cf047e364f7f2c, Notional: 7.410416820000001 - {chain: 23, addr: "0000000000000000000000002297aebd383787a160dd0d9f71508148769342e3", symbol: "BTC.b", coinGeckoId: "bitcoin-avalanche-bridged-btc-b", decimals: 8, price: 57464}, // Addr: 0x2297aebd383787a160dd0d9f71508148769342e3, Notional: 412.71219440000004 - {chain: 23, addr: "0000000000000000000000004d15a3a2286d883af0aa1b3f21367843fac63e07", symbol: "TUSD", coinGeckoId: "true-usd", decimals: 18, price: 0.998201}, // Addr: 0x4d15a3a2286d883af0aa1b3f21367843fac63e07, Notional: 10.980211 - {chain: 23, addr: "00000000000000000000000051b902f19a56f0c8e409a34a215ad2673edf3284", symbol: "NFTE", coinGeckoId: "nftearth", decimals: 18, price: 0.00000465}, // Addr: 0x51b902f19a56f0c8e409a34a215ad2673edf3284, Notional: 0.0018634965064455002 - {chain: 23, addr: "000000000000000000000000f8388c2b6edf00e2e27eef5200b1befb24ce141d", symbol: "NOLA", coinGeckoId: "nola", decimals: 18, price: 0.00051576}, // Addr: 0xf8388c2b6edf00e2e27eef5200b1befb24ce141d, Notional: 8.534053989572763 - {chain: 23, addr: "00000000000000000000000051fc0f6660482ea73330e414efd7808811a57fa2", symbol: "PREMIA", coinGeckoId: "premia", decimals: 18, price: 0.281095}, // Addr: 0x51fc0f6660482ea73330e414efd7808811a57fa2, Notional: 1.32019077418905 - {chain: 23, addr: "000000000000000000000000af88d065e77c8cc2239327c5edb3a432268e5831", symbol: "USDC", coinGeckoId: "usd-coin", decimals: 6, price: 1}, // Addr: 0xaf88d065e77c8cc2239327c5edb3a432268e5831, Notional: 1520049.741509 - {chain: 23, addr: "000000000000000000000000580e933d90091b9ce380740e3a4a39c67eb85b4c", symbol: "GSWIFT", coinGeckoId: "gameswift", decimals: 18, price: 0.277606}, // Addr: 0x580e933d90091b9ce380740e3a4a39c67eb85b4c, Notional: 1.38803 - {chain: 23, addr: "0000000000000000000000003082cc23568ea640225c2467653db90e9250aaa0", symbol: "RDNT", coinGeckoId: "radiant-capital", decimals: 18, price: 0.174333}, // Addr: 0x3082cc23568ea640225c2467653db90e9250aaa0, Notional: 1.2363696359999998 - {chain: 23, addr: "000000000000000000000000371c7ec6d8039ff7933a2aa28eb827ffe1f52f07", symbol: "JOE", coinGeckoId: "joe", decimals: 18, price: 0.464342}, // Addr: 0x371c7ec6d8039ff7933a2aa28eb827ffe1f52f07, Notional: 874.0000294559165 - {chain: 23, addr: "00000000000000000000000042069d11a2cc72388a2e06210921e839cfbd3280", symbol: "GNOME", coinGeckoId: "gnomeland", decimals: 18, price: 0.00659796}, // Addr: 0x42069d11a2cc72388a2e06210921e839cfbd3280, Notional: 0.0659796 + {chain: 18, addr: "01fa6c6fbc36d8c245b0a852a43eb5d644e8b4c477b27bfab9537c10945939da", symbol: "LUNA", coinGeckoId: "terra-luna-2", decimals: 6, price: 0.328469}, // Addr: uluna, Notional: 781.241892400323 + {chain: 19, addr: "017038850bf3af746c36803cce35009268f00d22ae2b55ffb59ac5f2a6add40b", symbol: "INJ", coinGeckoId: "injective-protocol", decimals: 18, price: 18.7}, // Addr: inj, Notional: 2826.645175013 + {chain: 21, addr: "3e50a0a576877092bfaa4f8e4ec8cd7dd0a4a281bec3f806583949cf7873d07b", symbol: "SUIP", coinGeckoId: "suipad", decimals: 9, price: 0.03438981}, // Addr: 0xe4239cd951f6c53d9c41e25270d80d31f925ad1655e5ba5b543843d4a66975ee::SUIP::SUIP, Notional: 35024.80060093468 + {chain: 21, addr: "5075594c01d46f3bcbc4a7ef1462058273bece7793eebd0464963597c9fd0935", symbol: "SPT", coinGeckoId: "seapad", decimals: 9, price: 0.051602}, // Addr: 0xb779486cfd6c19e9218cc7dc17c453014d2d9ba12d2ee4dbb0ec4e1e02ae1cca::spt::SPT, Notional: 7.546224878 + {chain: 21, addr: "95a4518ae9e019c757df6703dce9ea5ecac8b319b9afed3a44c4d50363a66b42", symbol: "TURBOS", coinGeckoId: "turbos-finance", decimals: 9, price: 0.0017014}, // Addr: 0x5d1f47ea69bb0de31c313d7acf89b890dbb8991ea8e03c6c355171f84bb1ba4a::turbos::TURBOS, Notional: 90781.76463062246 + {chain: 21, addr: "9258181f5ceac8dbffb7030890243caed69a9599d2886d957a9cb7656af3bdb3", symbol: "SUI", coinGeckoId: "sui", decimals: 9, price: 0.932947}, // Addr: 0x2::sui::SUI, Notional: 150456.44556655549 + {chain: 21, addr: "4c0dce55eff2db5419bbd2d239d1aa22b4a400c01bbb648b058a9883989025da", symbol: "CETUS", coinGeckoId: "cetus-protocol", decimals: 9, price: 0.063596}, // Addr: 0x6864a6f921804860930db6ddbe2e16acdf8504495ea7481637a1c8b9a8fe54b::cetus::CETUS, Notional: 7.4280128e-7 + {chain: 21, addr: "5d26a1e9a55c88147ac870bfa31b729d7f49f8804b8b3adfdf3582d301cca844", symbol: "SCA", coinGeckoId: "scallop-2", decimals: 9, price: 0.312298}, // Addr: 0x7016aae72cfc67f2fadf55769c0a7dd54291a583b63051a5ed71081cce836ac6::sca::SCA, Notional: 34323.945694513284 + {chain: 22, addr: "ec43792d3639b37cfcf7a3381d4fd71e2a7c75e708a518970eb0d475a03097cf", symbol: "BNB", coinGeckoId: "wrapped-bnb-celer", decimals: 8, price: 467.46}, // Addr: 0x8d87a65ba30e09357fa2edea2c80dbac296e5dec2b18287113500b902942929d::celer_coin_manager::BnbCoin, Notional: 22.558623910199998 + {chain: 22, addr: "c0ef1c9f58413f5fce5cf859b363b291eb43995b9e790da04afe15772f502fbf", symbol: "ANI", coinGeckoId: "animeswap", decimals: 8, price: 0.00029655}, // Addr: 0x16fe2df00ea7dde4a63409201f7f4e536bde7bb7335526a35d05111e68aa322c::AnimeCoin::ANI, Notional: 0.512048836030851 + {chain: 22, addr: "6155e0a106aeb3b0944388613027aee11c84921969ff775727e8046b17b17154", symbol: "USDC", coinGeckoId: "usd-coin", decimals: 6, price: 0.999097}, // Addr: 0xf22bede237a07e121b56d91a491eb7bcdfd1f5907926a9e58338f964a01b17fa::asset::USDC, Notional: 15049.906156819985 + {chain: 22, addr: "d64be880bc9b995c0028588e916e21e7e796ae5cf32cac551edeaf95f2f9fdbd", symbol: "doodoo", coinGeckoId: "doodoo", decimals: 8, price: 0.375611}, // Addr: 0x73eb84966be67e4697fc5ae75173ca6c35089e802650f75422ab49a8729704ec::coin::DooDoo, Notional: 1559683.755501892 + {chain: 22, addr: "5a03e1706af81b4176d7a25ec23b7ce4098f79082daf20e312d4bf6e52d2e195", symbol: "SLT", coinGeckoId: "sui-launch-token", decimals: 8, price: 0.00003745}, // Addr: 0x8b2df69c9766e18486c37e3cfc53c6ce6e9aa58bbc606a8a0a219f24cf9eafc1::sui_launch_token::SuiLaunchToken, Notional: 1.2011759224448866 + {chain: 22, addr: "a867703f5395cb2965feb7ebff5cdf39b771fc6156085da3ae4147a00be91b38", symbol: "APT", coinGeckoId: "aptos", decimals: 8, price: 6.69}, // Addr: 0x1::aptos_coin::AptosCoin, Notional: 92099.0625934017 + {chain: 22, addr: "2603e2b07403ec1ff0315cbbeffac190f08a85dd61157c503c8f88efb2a7e123", symbol: "MOVE", coinGeckoId: "bluemove", decimals: 8, price: 0.03190413}, // Addr: 0x27fafcc4e39daac97556af8a803dbb52bcb03f0821898dc845ac54225b9793eb::move_coin::MoveCoin, Notional: 71.92286651992895 + {chain: 22, addr: "0d080af8d4c0959b482427505b893d59abca4d1c9670de1a1fe02dc9d7c66728", symbol: "tAPT", coinGeckoId: "tortuga-staked-aptos", decimals: 8, price: 7.37}, // Addr: 0x84d7aeef42d38a5ffc3ccef853e1b82e4958659d16a7de736a29c55fbbeb0114::staked_aptos_coin::StakedAptosCoin, Notional: 16.20287867 + {chain: 22, addr: "0cb75f840d0b043dda136e86fb2b01415a873169531ad5be0df923c12864d9bd", symbol: "Cake", coinGeckoId: "pancakeswap-token", decimals: 8, price: 1.6}, // Addr: 0x159df6b7689437016108a019fd5bef736bac692b6d4a1f10c941f6fbb9a74ca6::oft::CakeOFT, Notional: 116.23818449600002 + {chain: 22, addr: "f7835a613217e1b032007d111c9d34db23cf5f976e27e1afda8b97c3e35df17b", symbol: "WETH", coinGeckoId: "wrapped-ether-celer", decimals: 8, price: 2662.07}, // Addr: 0x8d87a65ba30e09357fa2edea2c80dbac296e5dec2b18287113500b902942929d::celer_coin_manager::WethCoin, Notional: 81.64640565890001 + {chain: 22, addr: "b029b48ea7d6c38a48a0400a156544700a9fc7ac9b82a18a3e644326177996be", symbol: "MOD", coinGeckoId: "move-dollar", decimals: 8, price: 0.999036}, // Addr: 0x6f986d146e4a90b828d8c12c14b6f4e003fdff11a8eecceceb63744363eaac01::mod_coin::MOD, Notional: 1.0389974400000002 + {chain: 22, addr: "61f76dbc4bdb1add1afecc1f726638bc9b5b2ac42b62f8d598b27431e5c82b7c", symbol: "GUI", coinGeckoId: "gui-inu", decimals: 6, price: 0.00001279}, // Addr: 0xe4ccb6d39136469f376242c31b34d10515c8eaaa38092f804db8e08a8f53c5b2::assets_v1::EchoCoin002, Notional: 10.42776374 + {chain: 22, addr: "a4b99ea559e3faeb5ddaf5bf39101894d0ce210d5e79306034d031cb6ac79693", symbol: "MAU", coinGeckoId: "mau", decimals: 8, price: 0.00006215}, // Addr: 0x83b619e2d9e6e10d15ed4b714111a4cd9526c1c2ae0eec4b252a619d3e8bdda3::MAU::MAU, Notional: 0.0012430000000000002 + {chain: 22, addr: "eb1cbad587018a828b7e2d49456ed3e96d01baa8f7590723c558fecdfdffe842", symbol: "ALT", coinGeckoId: "aptos-launch-token", decimals: 8, price: 0.00903012}, // Addr: 0xd0b4efb4be7c3508d9a26a9b5405cf9f860d0b9e5fe2f498b90e68b8d2cedd3e::aptos_launch_token::AptosLaunchToken, Notional: 0.11739539780100001 + {chain: 23, addr: "0000000000000000000000002f2a2543b76a4166549f7aab2e75bef0aefc5b0f", symbol: "WBTC", coinGeckoId: "wrapped-bitcoin", decimals: 8, price: 58724}, // Addr: 0x2f2a2543b76a4166549f7aab2e75bef0aefc5b0f, Notional: 291.006782 + {chain: 23, addr: "000000000000000000000000912ce59144191c1204e64559fe8253a0e49e6548", symbol: "ARB", coinGeckoId: "arbitrum", decimals: 18, price: 0.561394}, // Addr: 0x912ce59144191c1204e64559fe8253a0e49e6548, Notional: 150918.14344969636 + {chain: 23, addr: "000000000000000000000000b261104a83887ae92392fb5ce5899fcfe5481456", symbol: "NFTE", coinGeckoId: "nftearth", decimals: 18, price: 0.00005538}, // Addr: 0xb261104a83887ae92392fb5ce5899fcfe5481456, Notional: 0.0005538 + {chain: 23, addr: "00000000000000000000000010393c20975cf177a3513071bc110f7962cd67da", symbol: "JONES", coinGeckoId: "jones-dao", decimals: 18, price: 0.450223}, // Addr: 0x10393c20975cf177a3513071bc110f7962cd67da, Notional: 0.00423279404565 + {chain: 23, addr: "00000000000000000000000099c409e5f62e4bd2ac142f17cafb6810b8f0baae", symbol: "BIFI", coinGeckoId: "beefy-finance", decimals: 18, price: 274.44}, // Addr: 0x99c409e5f62e4bd2ac142f17cafb6810b8f0baae, Notional: 767.0063363436 + {chain: 23, addr: "000000000000000000000000fa5ed56a203466cbbc2430a43c66b9d8723528e7", symbol: "agEUR", coinGeckoId: "ageur", decimals: 18, price: 1.092}, // Addr: 0xfa5ed56a203466cbbc2430a43c66b9d8723528e7, Notional: 48.4047716334 + {chain: 23, addr: "0000000000000000000000006c2c06790b3e3e3c38e12ee22f8183b37a13ee55", symbol: "DPX", coinGeckoId: "dopex", decimals: 18, price: 11.91}, // Addr: 0x6c2c06790b3e3e3c38e12ee22f8183b37a13ee55, Notional: 0.0013285605 + {chain: 23, addr: "000000000000000000000000a684cd057951541187f288294a1e1c2646aa2d24", symbol: "VSTA", coinGeckoId: "vesta-finance", decimals: 18, price: 0.226736}, // Addr: 0xa684cd057951541187f288294a1e1c2646aa2d24, Notional: 0.012191898546239999 + {chain: 23, addr: "00000000000000000000000013a7dedb7169a17be92b0e3c7c2315b46f4772b3", symbol: "Boop", coinGeckoId: "boop-2", decimals: 18, price: 0.00003367}, // Addr: 0x13a7dedb7169a17be92b0e3c7c2315b46f4772b3, Notional: 26855.882720804697 + {chain: 23, addr: "0000000000000000000000003b475f6f2f41853706afc9fa6a6b8c5df1a2724c", symbol: "ZYB", coinGeckoId: "zyberswap", decimals: 18, price: 0.01159471}, // Addr: 0x3b475f6f2f41853706afc9fa6a6b8c5df1a2724c, Notional: 0.05797355 + {chain: 23, addr: "00000000000000000000000051318b7d00db7acc4026c88c3952b66278b6a67f", symbol: "PLS", coinGeckoId: "plutusdao", decimals: 18, price: 0.02819997}, // Addr: 0x51318b7d00db7acc4026c88c3952b66278b6a67f, Notional: 0.0024177718038996 + {chain: 23, addr: "00000000000000000000000016f1967565aad72dd77588a332ce445e7cef752b", symbol: "CAW", coinGeckoId: "crow-with-knife", decimals: 0, price: 4.6493e-8}, // Addr: 0x16f1967565aad72dd77588a332ce445e7cef752b, Notional: 430255.7962523012 + {chain: 23, addr: "000000000000000000000000b9af4762c039d63e30039f1712dfab77026408c7", symbol: "AIBB", coinGeckoId: "bullbear-ai", decimals: 18, price: 1.26834e-10}, // Addr: 0xb9af4762c039d63e30039f1712dfab77026408c7, Notional: 1.26834e-9 + {chain: 23, addr: "000000000000000000000000da10009cbd5d07dd0cecc66161fc93d7c9000da1", symbol: "DAI", coinGeckoId: "dai", decimals: 18, price: 0.999076}, // Addr: 0xda10009cbd5d07dd0cecc66161fc93d7c9000da1, Notional: 1619.0594152777724 + {chain: 23, addr: "00000000000000000000000057f12fe6a4e5fe819eec699fadf9db2d06606bb4", symbol: "NPM", coinGeckoId: "neptune-mutual", decimals: 18, price: 0.04894073}, // Addr: 0x57f12fe6a4e5fe819eec699fadf9db2d06606bb4, Notional: 0.04894073 + {chain: 23, addr: "0000000000000000000000006c84a8f1c29108f47a79964b5fe888d4f4d0de40", symbol: "tBTC", coinGeckoId: "tbtc", decimals: 18, price: 58729}, // Addr: 0x6c84a8f1c29108f47a79964b5fe888d4f4d0de40, Notional: 100.11297714 + {chain: 23, addr: "000000000000000000000000fea7a6a0b346362bf88a9e4a88416b77a57d6c2a", symbol: "MIM", coinGeckoId: "magic-internet-money", decimals: 18, price: 1.001}, // Addr: 0xfea7a6a0b346362bf88a9e4a88416b77a57d6c2a, Notional: 0.00100098999 + {chain: 23, addr: "000000000000000000000000e6045890b20945d00e6f3c01878265c03c5435d3", symbol: "IDIA", coinGeckoId: "idia", decimals: 18, price: 0.02630288}, // Addr: 0xe6045890b20945d00e6f3c01878265c03c5435d3, Notional: 22314.870743619045 + {chain: 23, addr: "000000000000000000000000289ba1701c2f088cf0faf8b3705246331cb8a839", symbol: "LPT", coinGeckoId: "livepeer", decimals: 18, price: 11.25}, // Addr: 0x289ba1701c2f088cf0faf8b3705246331cb8a839, Notional: 1664.270916525 + {chain: 23, addr: "0000000000000000000000006694340fc020c5e6b96567843da2df01b2ce1eb6", symbol: "STG", coinGeckoId: "stargate-finance", decimals: 18, price: 0.331083}, // Addr: 0x6694340fc020c5e6b96567843da2df01b2ce1eb6, Notional: 44.93767882333824 + {chain: 23, addr: "000000000000000000000000aa54e84a3e6e5a80288d2c2f8e36ea5ca3a3ca30", symbol: "$SHARBI", coinGeckoId: "sharbi", decimals: 9, price: 0.00000547}, // Addr: 0xaa54e84a3e6e5a80288d2c2f8e36ea5ca3a3ca30, Notional: 0.0000150425 + {chain: 23, addr: "000000000000000000000000d56734d7f9979dd94fae3d67c7e928234e71cd4c", symbol: "TIA.n", coinGeckoId: "bridged-tia-hyperlane", decimals: 6, price: 5.73}, // Addr: 0xd56734d7f9979dd94fae3d67c7e928234e71cd4c, Notional: 8.595 + {chain: 23, addr: "000000000000000000000000ff970a61a04b1ca14834a43f5de4533ebddb5cc8", symbol: "USDC", coinGeckoId: "usd-coin", decimals: 6, price: 0.999097}, // Addr: 0xff970a61a04b1ca14834a43f5de4533ebddb5cc8, Notional: 2295098.3969672085 + {chain: 23, addr: "000000000000000000000000f97f4df75117a78c1a5a0dbb814af92458539fb4", symbol: "LINK", coinGeckoId: "chainlink", decimals: 18, price: 10.39}, // Addr: 0xf97f4df75117a78c1a5a0dbb814af92458539fb4, Notional: 132.6239956549 + {chain: 23, addr: "000000000000000000000000ba0dda8762c24da9487f5fa026a9b64b695a07ea", symbol: "OX", coinGeckoId: "ox-fun", decimals: 18, price: 0.00417115}, // Addr: 0xba0dda8762c24da9487f5fa026a9b64b695a07ea, Notional: 517431.9708858202 + {chain: 23, addr: "0000000000000000000000009d2f299715d94d8a7e6f5eaa8e654e8c74a988a7", symbol: "FXS", coinGeckoId: "frax-share", decimals: 18, price: 1.8}, // Addr: 0x9d2f299715d94d8a7e6f5eaa8e654e8c74a988a7, Notional: 4.529179602 + {chain: 23, addr: "0000000000000000000000009dce8e754913d928eb39bc4fc3cf047e364f7f2c", symbol: "BLOK", coinGeckoId: "bloktopia", decimals: 18, price: 0.00079231}, // Addr: 0x9dce8e754913d928eb39bc4fc3cf047e364f7f2c, Notional: 4.225389229999999 + {chain: 23, addr: "0000000000000000000000002297aebd383787a160dd0d9f71508148769342e3", symbol: "BTC.b", coinGeckoId: "bitcoin-avalanche-bridged-btc-b", decimals: 8, price: 58806}, // Addr: 0x2297aebd383787a160dd0d9f71508148769342e3, Notional: 422.3505726 + {chain: 23, addr: "0000000000000000000000004d15a3a2286d883af0aa1b3f21367843fac63e07", symbol: "TUSD", coinGeckoId: "true-usd", decimals: 18, price: 0.99852}, // Addr: 0x4d15a3a2286d883af0aa1b3f21367843fac63e07, Notional: 10.98372 + {chain: 23, addr: "00000000000000000000000051b902f19a56f0c8e409a34a215ad2673edf3284", symbol: "NFTE", coinGeckoId: "nftearth", decimals: 18, price: 0.00005538}, // Addr: 0x51b902f19a56f0c8e409a34a215ad2673edf3284, Notional: 0.0221936422638606 + {chain: 23, addr: "000000000000000000000000f8388c2b6edf00e2e27eef5200b1befb24ce141d", symbol: "NOLA", coinGeckoId: "nola", decimals: 18, price: 0.00021942}, // Addr: 0xf8388c2b6edf00e2e27eef5200b1befb24ce141d, Notional: 3.6306462819762215 + {chain: 23, addr: "00000000000000000000000051fc0f6660482ea73330e414efd7808811a57fa2", symbol: "PREMIA", coinGeckoId: "premia", decimals: 18, price: 0.153632}, // Addr: 0x51fc0f6660482ea73330e414efd7808811a57fa2, Notional: 0.72154804966368 + {chain: 23, addr: "000000000000000000000000af88d065e77c8cc2239327c5edb3a432268e5831", symbol: "USDC", coinGeckoId: "usd-coin", decimals: 6, price: 0.999097}, // Addr: 0xaf88d065e77c8cc2239327c5edb3a432268e5831, Notional: 1385010.9925285932 + {chain: 23, addr: "000000000000000000000000b6093b61544572ab42a0e43af08abafd41bf25a6", symbol: "WXM", coinGeckoId: "weatherxm-network", decimals: 18, price: 0.526488}, // Addr: 0xb6093b61544572ab42a0e43af08abafd41bf25a6, Notional: 526.4879999999999 + {chain: 23, addr: "000000000000000000000000580e933d90091b9ce380740e3a4a39c67eb85b4c", symbol: "GSWIFT", coinGeckoId: "gameswift", decimals: 18, price: 0.074954}, // Addr: 0x580e933d90091b9ce380740e3a4a39c67eb85b4c, Notional: 0.37477000000000005 + {chain: 23, addr: "0000000000000000000000003082cc23568ea640225c2467653db90e9250aaa0", symbol: "RDNT", coinGeckoId: "radiant-capital", decimals: 18, price: 0.066981}, // Addr: 0x3082cc23568ea640225c2467653db90e9250aaa0, Notional: 0.47502925199999996 + {chain: 23, addr: "000000000000000000000000371c7ec6d8039ff7933a2aa28eb827ffe1f52f07", symbol: "JOE", coinGeckoId: "joe", decimals: 18, price: 0.289609}, // Addr: 0x371c7ec6d8039ff7933a2aa28eb827ffe1f52f07, Notional: 545.1117377508357 + {chain: 23, addr: "00000000000000000000000042069d11a2cc72388a2e06210921e839cfbd3280", symbol: "GNOME", coinGeckoId: "gnomeland", decimals: 18, price: 0.00029504}, // Addr: 0x42069d11a2cc72388a2e06210921e839cfbd3280, Notional: 0.0029503999999999997 {chain: 23, addr: "000000000000000000000000c628534100180582e43271448098cb2c185795bd", symbol: "FLASH", coinGeckoId: "flash-stake", decimals: 18, price: 0.00650277}, // Addr: 0xc628534100180582e43271448098cb2c185795bd, Notional: 3.3615650033012283 - {chain: 23, addr: "000000000000000000000000bfbcfe8873fe28dfa25f1099282b088d52bbad9c", symbol: "EQB", coinGeckoId: "equilibria-finance", decimals: 18, price: 0.468878}, // Addr: 0xbfbcfe8873fe28dfa25f1099282b088d52bbad9c, Notional: 104.67011957269966 - {chain: 23, addr: "000000000000000000000000625e7708f30ca75bfd92586e17077590c60eb4cd", symbol: "aArbUSDC", coinGeckoId: "aave-usdc", decimals: 6, price: 1.001}, // Addr: 0x625e7708f30ca75bfd92586e17077590c60eb4cd, Notional: 0.01001 - {chain: 23, addr: "000000000000000000000000191c10aa4af7c30e871e70c95db0e4eb77237530", symbol: "aArbLINK", coinGeckoId: "aave-v3-link", decimals: 18, price: 12.89}, // Addr: 0x191c10aa4af7c30e871e70c95db0e4eb77237530, Notional: 1.1516374572 - {chain: 23, addr: "000000000000000000000000847503fbf003ce8b005546aa3c03b80b7c2f9771", symbol: "BYTE", coinGeckoId: "byte", decimals: 9, price: 0.00001549}, // Addr: 0x847503fbf003ce8b005546aa3c03b80b7c2f9771, Notional: 0.1708360040819445 - {chain: 23, addr: "00000000000000000000000018c11fd286c5ec11c3b683caa813b77f5163a122", symbol: "GNS", coinGeckoId: "gains-network", decimals: 18, price: 3.08}, // Addr: 0x18c11fd286c5ec11c3b683caa813b77f5163a122, Notional: 1.0006506048 + {chain: 23, addr: "000000000000000000000000bfbcfe8873fe28dfa25f1099282b088d52bbad9c", symbol: "EQB", coinGeckoId: "equilibria-finance", decimals: 18, price: 0.244103}, // Addr: 0xbfbcfe8873fe28dfa25f1099282b088d52bbad9c, Notional: 57.22322435466981 + {chain: 23, addr: "000000000000000000000000625e7708f30ca75bfd92586e17077590c60eb4cd", symbol: "aArbUSDC", coinGeckoId: "aave-usdc", decimals: 6, price: 0.997614}, // Addr: 0x625e7708f30ca75bfd92586e17077590c60eb4cd, Notional: 0.00997614 + {chain: 23, addr: "000000000000000000000000191c10aa4af7c30e871e70c95db0e4eb77237530", symbol: "aArbLINK", coinGeckoId: "aave-v3-link", decimals: 18, price: 10.43}, // Addr: 0x191c10aa4af7c30e871e70c95db0e4eb77237530, Notional: 0.9318524964 + {chain: 23, addr: "000000000000000000000000847503fbf003ce8b005546aa3c03b80b7c2f9771", symbol: "BYTE", coinGeckoId: "byte", decimals: 9, price: 0.0000052}, // Addr: 0x847503fbf003ce8b005546aa3c03b80b7c2f9771, Notional: 168.8114635253517 + {chain: 23, addr: "00000000000000000000000018c11fd286c5ec11c3b683caa813b77f5163a122", symbol: "GNS", coinGeckoId: "gains-network", decimals: 18, price: 2.52}, // Addr: 0x18c11fd286c5ec11c3b683caa813b77f5163a122, Notional: 0.8187141312 {chain: 23, addr: "000000000000000000000000db13df2ea134e7df2208d74b96db063837db5b5c", symbol: "LAMB", coinGeckoId: "lamb-by-opnx", decimals: 18, price: 0.0140567}, // Addr: 0xdb13df2ea134e7df2208d74b96db063837db5b5c, Notional: 2333369.751398398 - {chain: 23, addr: "000000000000000000000000921f99719eb6c01b4b8f0ba7973a7c24891e740a", symbol: "XCAD", coinGeckoId: "xcad-network", decimals: 18, price: 0.750677}, // Addr: 0x921f99719eb6c01b4b8f0ba7973a7c24891e740a, Notional: 61.826157095177535 - {chain: 23, addr: "0000000000000000000000009623063377ad1b27544c965ccd7342f7ea7e88c7", symbol: "GRT", coinGeckoId: "the-graph", decimals: 18, price: 0.229592}, // Addr: 0x9623063377ad1b27544c965ccd7342f7ea7e88c7, Notional: 256.26341714693984 - {chain: 23, addr: "0000000000000000000000002598c30330d5771ae9f983979209486ae26de875", symbol: "AI", coinGeckoId: "any-inu", decimals: 18, price: 0.00002101}, // Addr: 0x2598c30330d5771ae9f983979209486ae26de875, Notional: 14.829640029127386 - {chain: 23, addr: "000000000000000000000000dfb8be6f8c87f74295a87de951974362cedcfa30", symbol: "EMC", coinGeckoId: "edge-matrix-computing", decimals: 18, price: 0.873298}, // Addr: 0xdfb8be6f8c87f74295a87de951974362cedcfa30, Notional: 2.5325642 - {chain: 23, addr: "00000000000000000000000009fd3d6e6889940ca1158b9221309bd69fafa32b", symbol: "DROP", coinGeckoId: "droparb", decimals: 18, price: 2.545e-11}, // Addr: 0x09fd3d6e6889940ca1158b9221309bd69fafa32b, Notional: 0.03243659246948031 - {chain: 23, addr: "0000000000000000000000007f7d7806f4eb90d63b0b278daf32a2db2c2001bd", symbol: "BONUS", coinGeckoId: "bonusblock", decimals: 18, price: 0.575517}, // Addr: 0x7f7d7806f4eb90d63b0b278daf32a2db2c2001bd, Notional: 75966.62550059019 - {chain: 23, addr: "000000000000000000000000d77b108d4f6cefaa0cae9506a934e825becca46e", symbol: "WINR", coinGeckoId: "winr-protocol", decimals: 18, price: 0.04905381}, // Addr: 0xd77b108d4f6cefaa0cae9506a934e825becca46e, Notional: 207499.73592588908 - {chain: 23, addr: "000000000000000000000000fd086bc7cd5c481dcc9c85ebe478a1c0b69fcbb9", symbol: "USDT", coinGeckoId: "tether", decimals: 6, price: 0.999172}, // Addr: 0xfd086bc7cd5c481dcc9c85ebe478a1c0b69fcbb9, Notional: 685970.4957953618 - {chain: 23, addr: "000000000000000000000000539bde0d7dbd336b79148aa742883198bbf60342", symbol: "MAGIC", coinGeckoId: "magic", decimals: 18, price: 0.696221}, // Addr: 0x539bde0d7dbd336b79148aa742883198bbf60342, Notional: 9.68985345249074 - {chain: 23, addr: "0000000000000000000000006fd58f5a2f3468e35feb098b5f59f04157002407", symbol: "pogai", coinGeckoId: "pogai", decimals: 18, price: 0.00006716}, // Addr: 0x6fd58f5a2f3468e35feb098b5f59f04157002407, Notional: 0.449972 - {chain: 23, addr: "00000000000000000000000024ef78c7092d255ed14a0281ac1800c359af3afe", symbol: "RAB", coinGeckoId: "rabbit-wallet", decimals: 18, price: 0.00390619}, // Addr: 0x24ef78c7092d255ed14a0281ac1800c359af3afe, Notional: 0.0390619 - {chain: 23, addr: "00000000000000000000000046f74778b265df3a15ec9695ccd2fd3869ca848c", symbol: "ANKR", coinGeckoId: "ankr", decimals: 18, price: 0.043493}, // Addr: 0x46f74778b265df3a15ec9695ccd2fd3869ca848c, Notional: 6828.358368795092 - {chain: 23, addr: "000000000000000000000000509fd25ee2ac7833a017f17ee8a6fb4aaf947876", symbol: "mWOM", coinGeckoId: "magpie-wom", decimals: 18, price: 0.02165958}, // Addr: 0x509fd25ee2ac7833a017f17ee8a6fb4aaf947876, Notional: 0.23185249625404802 - {chain: 23, addr: "000000000000000000000000de903e2712288a1da82942dddf2c20529565ac30", symbol: "SWPR", coinGeckoId: "swapr", decimals: 18, price: 0.0084507}, // Addr: 0xde903e2712288a1da82942dddf2c20529565ac30, Notional: 0.2788731 - {chain: 23, addr: "000000000000000000000000d5a56b510247db33695b0bea29992ac6670081ea", symbol: "GOB", coinGeckoId: "goons-of-balatroon", decimals: 18, price: 0.00226635}, // Addr: 0xd5a56b510247db33695b0bea29992ac6670081ea, Notional: 19.63339005 - {chain: 23, addr: "00000000000000000000000082af49447d8a07e3bd95bd0d56f35241523fbab1", symbol: "WETH", coinGeckoId: "weth", decimals: 18, price: 2901.39}, // Addr: 0x82af49447d8a07e3bd95bd0d56f35241523fbab1, Notional: 335418.75188397476 - {chain: 23, addr: "0000000000000000000000005979d7b546e38e414f7e9822514be443a4800529", symbol: "wstETH", coinGeckoId: "wrapped-steth", decimals: 18, price: 3375.92}, // Addr: 0x5979d7b546e38e414f7e9822514be443a4800529, Notional: 15.2660452768 - {chain: 23, addr: "0000000000000000000000003269a3c00ab86c753856fd135d97b87facb0d848", symbol: "FFM", coinGeckoId: "florence-finance-medici", decimals: 18, price: 0.051089}, // Addr: 0x3269a3c00ab86c753856fd135d97b87facb0d848, Notional: 525409.3501119867 - {chain: 23, addr: "000000000000000000000000894134a25a5fac1c2c26f1d8fbf05111a3cb9487", symbol: "GRAI", coinGeckoId: "grai", decimals: 18, price: 0.985948}, // Addr: 0x894134a25a5fac1c2c26f1d8fbf05111a3cb9487, Notional: 0.2957844 - {chain: 23, addr: "00000000000000000000000009090e22118b375f2c7b95420c04414e4bf68e1a", symbol: "BELA", coinGeckoId: "beluga-protocol", decimals: 18, price: 0.00027018}, // Addr: 0x09090e22118b375f2c7b95420c04414e4bf68e1a, Notional: 0.027018 - {chain: 23, addr: "0000000000000000000000009e20461bc2c4c980f62f1b279d71734207a6a356", symbol: "OMNI", coinGeckoId: "omnicat", decimals: 18, price: 0.00037669}, // Addr: 0x9e20461bc2c4c980f62f1b279d71734207a6a356, Notional: 437.1855114166093 - {chain: 23, addr: "0000000000000000000000000c880f6761f1af8d9aa9c466984b80dab9a8c9e8", symbol: "PENDLE", coinGeckoId: "pendle", decimals: 18, price: 4.2}, // Addr: 0x0c880f6761f1af8d9aa9c466984b80dab9a8c9e8, Notional: 21 - {chain: 23, addr: "000000000000000000000000b827710314a05bcbee9180e11c2abe5823289422", symbol: "ABI", coinGeckoId: "abachi-2", decimals: 18, price: 1.28}, // Addr: 0xb827710314a05bcbee9180e11c2abe5823289422, Notional: 1.28 - {chain: 23, addr: "00000000000000000000000068ead55c258d6fa5e46d67fc90f53211eab885be", symbol: "POP", coinGeckoId: "popcorn", decimals: 18, price: 0.00883053}, // Addr: 0x68ead55c258d6fa5e46d67fc90f53211eab885be, Notional: 0.9217264051252413 - {chain: 23, addr: "00000000000000000000000009e18590e8f76b6cf471b3cd75fe1a1a9d2b2c2b", symbol: "AIDOGE", coinGeckoId: "arbdoge-ai", decimals: 6, price: 3.50903e-10}, // Addr: 0x09e18590e8f76b6cf471b3cd75fe1a1a9d2b2c2b, Notional: 3.5090300000000003e-7 - {chain: 24, addr: "00000000000000000000000094b008aa00579c1307b0ef2c499ad98a8ce58e58", symbol: "USDT", coinGeckoId: "tether", decimals: 6, price: 0.999172}, // Addr: 0x94b008aa00579c1307b0ef2c499ad98a8ce58e58, Notional: 340233.55605760374 - {chain: 24, addr: "000000000000000000000000625e7708f30ca75bfd92586e17077590c60eb4cd", symbol: "aOptUSDC", coinGeckoId: "aave-usdc", decimals: 6, price: 1.001}, // Addr: 0x625e7708f30ca75bfd92586e17077590c60eb4cd, Notional: 6.613783175999999 - {chain: 24, addr: "0000000000000000000000002e3d870790dc77a83dd1d18184acc7439a53f475", symbol: "FRAX", coinGeckoId: "frax", decimals: 18, price: 0.99874}, // Addr: 0x2e3d870790dc77a83dd1d18184acc7439a53f475, Notional: 0.00031759932 - {chain: 24, addr: "00000000000000000000000068f180fcce6836688e9084f035309e29bf0a2095", symbol: "WBTC", coinGeckoId: "wrapped-bitcoin", decimals: 8, price: 57446}, // Addr: 0x68f180fcce6836688e9084f035309e29bf0a2095, Notional: 71483.49192187999 - {chain: 24, addr: "000000000000000000000000296f55f8fb28e498b858d0bcda06d955b2cb3f97", symbol: "STG", coinGeckoId: "stargate-finance", decimals: 18, price: 0.486642}, // Addr: 0x296f55f8fb28e498b858d0bcda06d955b2cb3f97, Notional: 167.3709855760683 - {chain: 24, addr: "000000000000000000000000c26921b5b9ee80773774d36c84328ccb22c3a819", symbol: "wOptiDoge", coinGeckoId: "wrapped-optidoge", decimals: 18, price: 0.00000123}, // Addr: 0xc26921b5b9ee80773774d36c84328ccb22c3a819, Notional: 15.25700364 - {chain: 24, addr: "0000000000000000000000007f5c764cbc14f9669b88837ca1490cca17c31607", symbol: "USDC", coinGeckoId: "usd-coin", decimals: 6, price: 1}, // Addr: 0x7f5c764cbc14f9669b88837ca1490cca17c31607, Notional: 670753.860713 - {chain: 24, addr: "0000000000000000000000008b21e9b7daf2c4325bf3d18c1beb79a347fe902a", symbol: "COLLAB", coinGeckoId: "collab-land", decimals: 18, price: 0.00543386}, // Addr: 0x8b21e9b7daf2c4325bf3d18c1beb79a347fe902a, Notional: 0.849153705800144 - {chain: 24, addr: "000000000000000000000000da10009cbd5d07dd0cecc66161fc93d7c9000da1", symbol: "DAI", coinGeckoId: "dai", decimals: 18, price: 0.999522}, // Addr: 0xda10009cbd5d07dd0cecc66161fc93d7c9000da1, Notional: 164.82920323200892 - {chain: 24, addr: "0000000000000000000000000b2c639c533813f4aa9d7837caf62653d097ff85", symbol: "USDC", coinGeckoId: "usd-coin", decimals: 6, price: 1}, // Addr: 0x0b2c639c533813f4aa9d7837caf62653d097ff85, Notional: 1308489.250813 - {chain: 24, addr: "0000000000000000000000009e1028f5f1d5ede59748ffcee5532509976840e0", symbol: "PERP", coinGeckoId: "perpetual-protocol", decimals: 18, price: 0.935387}, // Addr: 0x9e1028f5f1d5ede59748ffcee5532509976840e0, Notional: 0.22387016481248997 - {chain: 24, addr: "0000000000000000000000006d80113e533a2c0fe82eabd35f1875dcea89ea97", symbol: "aOptSUSD", coinGeckoId: "aave-susd", decimals: 18, price: 0.996748}, // Addr: 0x6d80113e533a2c0fe82eabd35f1875dcea89ea97, Notional: 16.64517210490988 - {chain: 24, addr: "000000000000000000000000fdb794692724153d1488ccdbe0c56c252596735f", symbol: "LDO", coinGeckoId: "lido-dao", decimals: 18, price: 1.91}, // Addr: 0xfdb794692724153d1488ccdbe0c56c252596735f, Notional: 3.0604045746 - {chain: 24, addr: "00000000000000000000000014778860e937f509e651192a90589de711fb88a9", symbol: "CYBER", coinGeckoId: "cyberconnect", decimals: 18, price: 7.93}, // Addr: 0x14778860e937f509e651192a90589de711fb88a9, Notional: 45.350851306799996 - {chain: 24, addr: "0000000000000000000000006c84a8f1c29108f47a79964b5fe888d4f4d0de40", symbol: "tBTC", coinGeckoId: "tbtc", decimals: 18, price: 57559}, // Addr: 0x6c84a8f1c29108f47a79964b5fe888d4f4d0de40, Notional: 6.9070800000000006 - {chain: 24, addr: "0000000000000000000000003ed9acaac7bd974eb83a8ea6432a239e3c829d5d", symbol: "2192", coinGeckoId: "lernitas", decimals: 18, price: 0.00226254}, // Addr: 0x3ed9acaac7bd974eb83a8ea6432a239e3c829d5d, Notional: 414754.00772717537 - {chain: 24, addr: "000000000000000000000000e50fa9b3c56ffb159cb0fca61f5c9d750e8128c8", symbol: "aOptWETH", coinGeckoId: "aave-weth", decimals: 18, price: 2903.05}, // Addr: 0xe50fa9b3c56ffb159cb0fca61f5c9d750e8128c8, Notional: 0.00008709149999999999 - {chain: 24, addr: "0000000000000000000000002dad3a13ef0c6366220f989157009e501e7938f8", symbol: "EXTRA", coinGeckoId: "extra-finance", decimals: 18, price: 0.111879}, // Addr: 0x2dad3a13ef0c6366220f989157009e501e7938f8, Notional: 0.04897727878032 - {chain: 24, addr: "000000000000000000000000375488f097176507e39b9653b88fdc52cde736bf", symbol: "TAROT", coinGeckoId: "tarot", decimals: 18, price: 0.02025331}, // Addr: 0x375488f097176507e39b9653b88fdc52cde736bf, Notional: 0.1585867868431847 - {chain: 24, addr: "000000000000000000000000135c78d7f52aab6e9f17bcf4a9e8627aa233d050", symbol: "BOO", coinGeckoId: "boo-2", decimals: 18, price: 0.00014771}, // Addr: 0x135c78d7f52aab6e9f17bcf4a9e8627aa233d050, Notional: 18.47675461526779 - {chain: 24, addr: "0000000000000000000000006f620ec89b8479e97a6985792d0c64f237566746", symbol: "WPC", coinGeckoId: "wepiggy-coin", decimals: 18, price: 0.000119}, // Addr: 0x6f620ec89b8479e97a6985792d0c64f237566746, Notional: 0.018564 + {chain: 23, addr: "000000000000000000000000921f99719eb6c01b4b8f0ba7973a7c24891e740a", symbol: "XCAD", coinGeckoId: "xcad-network", decimals: 18, price: 0.354335}, // Addr: 0x921f99719eb6c01b4b8f0ba7973a7c24891e740a, Notional: 29.1832191133067 + {chain: 23, addr: "0000000000000000000000009623063377ad1b27544c965ccd7342f7ea7e88c7", symbol: "GRT", coinGeckoId: "the-graph", decimals: 18, price: 0.142296}, // Addr: 0x9623063377ad1b27544c965ccd7342f7ea7e88c7, Notional: 158.82634937776993 + {chain: 23, addr: "0000000000000000000000002598c30330d5771ae9f983979209486ae26de875", symbol: "AI", coinGeckoId: "any-inu", decimals: 18, price: 0.00000776}, // Addr: 0x2598c30330d5771ae9f983979209486ae26de875, Notional: 5.477296840839053 + {chain: 23, addr: "000000000000000000000000dfb8be6f8c87f74295a87de951974362cedcfa30", symbol: "EMC", coinGeckoId: "edge-matrix-computing", decimals: 18, price: 0.082701}, // Addr: 0xdfb8be6f8c87f74295a87de951974362cedcfa30, Notional: 0.2398329 + {chain: 23, addr: "00000000000000000000000009fd3d6e6889940ca1158b9221309bd69fafa32b", symbol: "DROP", coinGeckoId: "droparb", decimals: 18, price: 2.2927e-11}, // Addr: 0x09fd3d6e6889940ca1158b9221309bd69fafa32b, Notional: 0.029220972713075638 + {chain: 23, addr: "0000000000000000000000007f7d7806f4eb90d63b0b278daf32a2db2c2001bd", symbol: "BONUS", coinGeckoId: "bonusblock", decimals: 18, price: 0.093356}, // Addr: 0x7f7d7806f4eb90d63b0b278daf32a2db2c2001bd, Notional: 12294.06916730893 + {chain: 23, addr: "000000000000000000000000d77b108d4f6cefaa0cae9506a934e825becca46e", symbol: "WINR", coinGeckoId: "winr-protocol", decimals: 18, price: 0.01943952}, // Addr: 0xd77b108d4f6cefaa0cae9506a934e825becca46e, Notional: 155780.2549848331 + {chain: 23, addr: "000000000000000000000000fd086bc7cd5c481dcc9c85ebe478a1c0b69fcbb9", symbol: "USDT", coinGeckoId: "tether", decimals: 6, price: 0.999545}, // Addr: 0xfd086bc7cd5c481dcc9c85ebe478a1c0b69fcbb9, Notional: 49344.198431580786 + {chain: 23, addr: "000000000000000000000000539bde0d7dbd336b79148aa742883198bbf60342", symbol: "MAGIC", coinGeckoId: "magic", decimals: 18, price: 0.342762}, // Addr: 0x539bde0d7dbd336b79148aa742883198bbf60342, Notional: 5.11504171678122 + {chain: 23, addr: "0000000000000000000000006fd58f5a2f3468e35feb098b5f59f04157002407", symbol: "pogai", coinGeckoId: "pogai", decimals: 18, price: 0.00002215}, // Addr: 0x6fd58f5a2f3468e35feb098b5f59f04157002407, Notional: 0.148405 + {chain: 23, addr: "00000000000000000000000024ef78c7092d255ed14a0281ac1800c359af3afe", symbol: "RAB", coinGeckoId: "rabbit-wallet", decimals: 18, price: 0.00222822}, // Addr: 0x24ef78c7092d255ed14a0281ac1800c359af3afe, Notional: 0.0222822 + {chain: 23, addr: "00000000000000000000000046f74778b265df3a15ec9695ccd2fd3869ca848c", symbol: "ANKR", coinGeckoId: "ankr", decimals: 18, price: 0.02543622}, // Addr: 0x46f74778b265df3a15ec9695ccd2fd3869ca848c, Notional: 3993.4616077877613 + {chain: 23, addr: "000000000000000000000000509fd25ee2ac7833a017f17ee8a6fb4aaf947876", symbol: "mWOM", coinGeckoId: "magpie-wom", decimals: 18, price: 0.01287727}, // Addr: 0x509fd25ee2ac7833a017f17ee8a6fb4aaf947876, Notional: 0.137843263555312 + {chain: 23, addr: "000000000000000000000000de903e2712288a1da82942dddf2c20529565ac30", symbol: "SWPR", coinGeckoId: "swapr", decimals: 18, price: 0.00566564}, // Addr: 0xde903e2712288a1da82942dddf2c20529565ac30, Notional: 0.18696612 + {chain: 23, addr: "000000000000000000000000d5a56b510247db33695b0bea29992ac6670081ea", symbol: "GOB", coinGeckoId: "goons-of-balatroon", decimals: 18, price: 0.00073101}, // Addr: 0xd5a56b510247db33695b0bea29992ac6670081ea, Notional: 6.332739630000001 + {chain: 23, addr: "00000000000000000000000082af49447d8a07e3bd95bd0d56f35241523fbab1", symbol: "WETH", coinGeckoId: "weth", decimals: 18, price: 2661.57}, // Addr: 0x82af49447d8a07e3bd95bd0d56f35241523fbab1, Notional: 257430.18570284432 + {chain: 23, addr: "0000000000000000000000005979d7b546e38e414f7e9822514be443a4800529", symbol: "wstETH", coinGeckoId: "wrapped-steth", decimals: 18, price: 3128.91}, // Addr: 0x5979d7b546e38e414f7e9822514be443a4800529, Notional: 14.149056176399998 + {chain: 23, addr: "0000000000000000000000003269a3c00ab86c753856fd135d97b87facb0d848", symbol: "FFM", coinGeckoId: "florence-finance-medici", decimals: 18, price: 0.02231895}, // Addr: 0x3269a3c00ab86c753856fd135d97b87facb0d848, Notional: 338907.7044204582 + {chain: 23, addr: "000000000000000000000000894134a25a5fac1c2c26f1d8fbf05111a3cb9487", symbol: "GRAI", coinGeckoId: "grai", decimals: 18, price: 0.986152}, // Addr: 0x894134a25a5fac1c2c26f1d8fbf05111a3cb9487, Notional: 0.2958456 + {chain: 23, addr: "00000000000000000000000009090e22118b375f2c7b95420c04414e4bf68e1a", symbol: "BELA", coinGeckoId: "beluga-protocol", decimals: 18, price: 0.00000518}, // Addr: 0x09090e22118b375f2c7b95420c04414e4bf68e1a, Notional: 0.000518 + {chain: 23, addr: "0000000000000000000000009e20461bc2c4c980f62f1b279d71734207a6a356", symbol: "OMNI", coinGeckoId: "omnicat", decimals: 18, price: 0.00004164}, // Addr: 0x9e20461bc2c4c980f62f1b279d71734207a6a356, Notional: 44.16328422678492 + {chain: 23, addr: "0000000000000000000000000c880f6761f1af8d9aa9c466984b80dab9a8c9e8", symbol: "PENDLE", coinGeckoId: "pendle", decimals: 18, price: 2.82}, // Addr: 0x0c880f6761f1af8d9aa9c466984b80dab9a8c9e8, Notional: 16.919999999999998 + {chain: 23, addr: "000000000000000000000000b827710314a05bcbee9180e11c2abe5823289422", symbol: "ABI", coinGeckoId: "abachi-2", decimals: 18, price: 0.983225}, // Addr: 0xb827710314a05bcbee9180e11c2abe5823289422, Notional: 0.983225 + {chain: 23, addr: "00000000000000000000000068ead55c258d6fa5e46d67fc90f53211eab885be", symbol: "POP", coinGeckoId: "popcorn", decimals: 18, price: 0.00678111}, // Addr: 0x68ead55c258d6fa5e46d67fc90f53211eab885be, Notional: 0.7078089472612431 + {chain: 23, addr: "00000000000000000000000009e18590e8f76b6cf471b3cd75fe1a1a9d2b2c2b", symbol: "AIDOGE", coinGeckoId: "arbdoge-ai", decimals: 6, price: 2.544e-10}, // Addr: 0x09e18590e8f76b6cf471b3cd75fe1a1a9d2b2c2b, Notional: 2.544e-7 + {chain: 23, addr: "000000000000000000000000b0ffa8000886e57f86dd5264b9582b2ad87b2b91", symbol: "W", coinGeckoId: "wormhole", decimals: 18, price: 0.2171}, // Addr: 0xb0ffa8000886e57f86dd5264b9582b2ad87b2b91, Notional: 629.977265025082 + {chain: 24, addr: "000000000000000000000000528cdc92eab044e1e39fe43b9514bfdab4412b98", symbol: "GIV", coinGeckoId: "giveth", decimals: 18, price: 0.00603783}, // Addr: 0x528cdc92eab044e1e39fe43b9514bfdab4412b98, Notional: 20707.167100587056 + {chain: 24, addr: "00000000000000000000000094b008aa00579c1307b0ef2c499ad98a8ce58e58", symbol: "USDT", coinGeckoId: "tether", decimals: 6, price: 0.999545}, // Addr: 0x94b008aa00579c1307b0ef2c499ad98a8ce58e58, Notional: 154806.62762400013 + {chain: 24, addr: "000000000000000000000000625e7708f30ca75bfd92586e17077590c60eb4cd", symbol: "aOptUSDC", coinGeckoId: "aave-usdc", decimals: 6, price: 0.997614}, // Addr: 0x625e7708f30ca75bfd92586e17077590c60eb4cd, Notional: 6.591411278064 + {chain: 24, addr: "0000000000000000000000002e3d870790dc77a83dd1d18184acc7439a53f475", symbol: "FRAX", coinGeckoId: "frax", decimals: 18, price: 0.995775}, // Addr: 0x2e3d870790dc77a83dd1d18184acc7439a53f475, Notional: 0.00031665644999999995 + {chain: 24, addr: "00000000000000000000000068f180fcce6836688e9084f035309e29bf0a2095", symbol: "WBTC", coinGeckoId: "wrapped-bitcoin", decimals: 8, price: 58724}, // Addr: 0x68f180fcce6836688e9084f035309e29bf0a2095, Notional: 72652.554707 + {chain: 24, addr: "000000000000000000000000296f55f8fb28e498b858d0bcda06d955b2cb3f97", symbol: "STG", coinGeckoId: "stargate-finance", decimals: 18, price: 0.331083}, // Addr: 0x296f55f8fb28e498b858d0bcda06d955b2cb3f97, Notional: 113.86951397019045 + {chain: 24, addr: "000000000000000000000000c26921b5b9ee80773774d36c84328ccb22c3a819", symbol: "wOptiDoge", coinGeckoId: "wrapped-optidoge", decimals: 18, price: 5.91556e-7}, // Addr: 0xc26921b5b9ee80773774d36c84328ccb22c3a819, Notional: 7.337700849808001 + {chain: 24, addr: "0000000000000000000000007f5c764cbc14f9669b88837ca1490cca17c31607", symbol: "USDC", coinGeckoId: "usd-coin", decimals: 6, price: 0.999097}, // Addr: 0x7f5c764cbc14f9669b88837ca1490cca17c31607, Notional: 410169.8240674142 + {chain: 24, addr: "0000000000000000000000008b21e9b7daf2c4325bf3d18c1beb79a347fe902a", symbol: "COLLAB", coinGeckoId: "collab-land", decimals: 18, price: 0.00282129}, // Addr: 0x8b21e9b7daf2c4325bf3d18c1beb79a347fe902a, Notional: 0.440885274673416 + {chain: 24, addr: "000000000000000000000000da10009cbd5d07dd0cecc66161fc93d7c9000da1", symbol: "DAI", coinGeckoId: "dai", decimals: 18, price: 0.999076}, // Addr: 0xda10009cbd5d07dd0cecc66161fc93d7c9000da1, Notional: 164.98184505735452 + {chain: 24, addr: "00000000000000000000000048a9f8b4b65a55cc46ea557a610acf227454ab09", symbol: "OPC", coinGeckoId: "op-chads", decimals: 18, price: 0.00005315}, // Addr: 0x48a9f8b4b65a55cc46ea557a610acf227454ab09, Notional: 6.096931805423421 + {chain: 24, addr: "0000000000000000000000000b2c639c533813f4aa9d7837caf62653d097ff85", symbol: "USDC", coinGeckoId: "usd-coin", decimals: 6, price: 0.999097}, // Addr: 0x0b2c639c533813f4aa9d7837caf62653d097ff85, Notional: 1215753.877933586 + {chain: 24, addr: "0000000000000000000000009e1028f5f1d5ede59748ffcee5532509976840e0", symbol: "PERP", coinGeckoId: "perpetual-protocol", decimals: 18, price: 0.531595}, // Addr: 0x9e1028f5f1d5ede59748ffcee5532509976840e0, Notional: 0.12722890126065 + {chain: 24, addr: "0000000000000000000000006d80113e533a2c0fe82eabd35f1875dcea89ea97", symbol: "aOptSUSD", coinGeckoId: "aave-susd", decimals: 18, price: 0.995205}, // Addr: 0x6d80113e533a2c0fe82eabd35f1875dcea89ea97, Notional: 16.619404809106047 + {chain: 24, addr: "000000000000000000000000fdb794692724153d1488ccdbe0c56c252596735f", symbol: "LDO", coinGeckoId: "lido-dao", decimals: 18, price: 1.069}, // Addr: 0xfdb794692724153d1488ccdbe0c56c252596735f, Notional: 1.71286517814 + {chain: 24, addr: "000000000000000000000000dfa46478f9e5ea86d57387849598dbfb2e964b02", symbol: "MAI", coinGeckoId: "mimatic", decimals: 18, price: 0.998906}, // Addr: 0xdfa46478f9e5ea86d57387849598dbfb2e964b02, Notional: 4.99453 + {chain: 24, addr: "00000000000000000000000014778860e937f509e651192a90589de711fb88a9", symbol: "CYBER", coinGeckoId: "cyberconnect", decimals: 18, price: 3.03}, // Addr: 0x14778860e937f509e651192a90589de711fb88a9, Notional: 17.328257182799998 + {chain: 24, addr: "0000000000000000000000006c84a8f1c29108f47a79964b5fe888d4f4d0de40", symbol: "tBTC", coinGeckoId: "tbtc", decimals: 18, price: 58729}, // Addr: 0x6c84a8f1c29108f47a79964b5fe888d4f4d0de40, Notional: 2448.50891285 + {chain: 24, addr: "0000000000000000000000003ed9acaac7bd974eb83a8ea6432a239e3c829d5d", symbol: "2192", coinGeckoId: "lernitas", decimals: 18, price: 0.00033534}, // Addr: 0x3ed9acaac7bd974eb83a8ea6432a239e3c829d5d, Notional: 58197.29309905671 + {chain: 24, addr: "000000000000000000000000e50fa9b3c56ffb159cb0fca61f5c9d750e8128c8", symbol: "aOptWETH", coinGeckoId: "aave-weth", decimals: 18, price: 2662.48}, // Addr: 0xe50fa9b3c56ffb159cb0fca61f5c9d750e8128c8, Notional: 0.00007987439999999999 + {chain: 24, addr: "0000000000000000000000002dad3a13ef0c6366220f989157009e501e7938f8", symbol: "EXTRA", coinGeckoId: "extra-finance", decimals: 18, price: 0.080839}, // Addr: 0x2dad3a13ef0c6366220f989157009e501e7938f8, Notional: 0.035388895497119995 + {chain: 24, addr: "000000000000000000000000375488f097176507e39b9653b88fdc52cde736bf", symbol: "TAROT", coinGeckoId: "tarot", decimals: 18, price: 0.01099494}, // Addr: 0x375488f097176507e39b9653b88fdc52cde736bf, Notional: 0.0860922094281678 + {chain: 24, addr: "000000000000000000000000135c78d7f52aab6e9f17bcf4a9e8627aa233d050", symbol: "BOO", coinGeckoId: "boo-2", decimals: 18, price: 0.00003761}, // Addr: 0x135c78d7f52aab6e9f17bcf4a9e8627aa233d050, Notional: 4.704561242165199 + {chain: 24, addr: "0000000000000000000000006f620ec89b8479e97a6985792d0c64f237566746", symbol: "WPC", coinGeckoId: "wepiggy-coin", decimals: 18, price: 0.00007278}, // Addr: 0x6f620ec89b8479e97a6985792d0c64f237566746, Notional: 0.011353680000000001 {chain: 24, addr: "000000000000000000000000323665443cef804a3b5206103304bd4872ea4253", symbol: "USDV", coinGeckoId: "verified-usd-foundation-usdv", decimals: 6, price: 1}, // Addr: 0x323665443cef804a3b5206103304bd4872ea4253, Notional: 223.842965 - {chain: 24, addr: "000000000000000000000000fd389dc9533717239856190f42475d3f263a270d", symbol: "GRAIN", coinGeckoId: "granary", decimals: 18, price: 0.00972116}, // Addr: 0xfd389dc9533717239856190f42475d3f263a270d, Notional: 0.28191363999999997 - {chain: 24, addr: "000000000000000000000000c5102fe9359fd9a28f877a67e36b0f050d81a3cc", symbol: "HOP", coinGeckoId: "hop-protocol", decimals: 18, price: 0.03724175}, // Addr: 0xc5102fe9359fd9a28f877a67e36b0f050d81a3cc, Notional: 1.5783133496311998 - {chain: 24, addr: "0000000000000000000000001f32b1c2345538c0c6f582fcb022739c4a194ebb", symbol: "wstETH", coinGeckoId: "wrapped-steth", decimals: 18, price: 3375.92}, // Addr: 0x1f32b1c2345538c0c6f582fcb022739c4a194ebb, Notional: 73158.4536003536 - {chain: 24, addr: "000000000000000000000000e453d6649643f1f460c371dc3d1da98f7922fe51", symbol: "FUSE", coinGeckoId: "fuse-network-token", decimals: 18, price: 0.0584}, // Addr: 0xe453d6649643f1f460c371dc3d1da98f7922fe51, Notional: 0.057232 - {chain: 24, addr: "000000000000000000000000c40f949f8a4e094d1b49a23ea9241d289b7b2819", symbol: "LUSD", coinGeckoId: "liquity-usd", decimals: 18, price: 1}, // Addr: 0xc40f949f8a4e094d1b49a23ea9241d289b7b2819, Notional: 1.1e-7 - {chain: 24, addr: "0000000000000000000000004200000000000000000000000000000000000006", symbol: "WETH", coinGeckoId: "weth", decimals: 18, price: 2901.39}, // Addr: 0x4200000000000000000000000000000000000006, Notional: 53603.1641472855 - {chain: 24, addr: "00000000000000000000000081ab7e0d570b01411fcc4afd3d50ec8c241cb74b", symbol: "EQZ", coinGeckoId: "equalizer", decimals: 18, price: 0.00610452}, // Addr: 0x81ab7e0d570b01411fcc4afd3d50ec8c241cb74b, Notional: 0.610452 - {chain: 24, addr: "0000000000000000000000008c6f28f2f1a3c87f0f938b96d27520d9751ec8d9", symbol: "sUSD", coinGeckoId: "nusd", decimals: 18, price: 0.993623}, // Addr: 0x8c6f28f2f1a3c87f0f938b96d27520d9751ec8d9, Notional: 1.94089717339133 - {chain: 24, addr: "00000000000000000000000042069d11a2cc72388a2e06210921e839cfbd3280", symbol: "GNOME", coinGeckoId: "gnomeland", decimals: 18, price: 0.00659796}, // Addr: 0x42069d11a2cc72388a2e06210921e839cfbd3280, Notional: 13.19592 - {chain: 24, addr: "0000000000000000000000004200000000000000000000000000000000000042", symbol: "OP", coinGeckoId: "optimism", decimals: 18, price: 2.53}, // Addr: 0x4200000000000000000000000000000000000042, Notional: 265781.74877994735 - {chain: 24, addr: "00000000000000000000000074ccbe53f77b08632ce0cb91d3a545bf6b8e0979", symbol: "fBOMB", coinGeckoId: "fbomb", decimals: 18, price: 0.01884953}, // Addr: 0x74ccbe53f77b08632ce0cb91d3a545bf6b8e0979, Notional: 0.9330517349999999 - {chain: 28, addr: "017ce8aec5af3bb3ac0158d49771d4c8feba2e54a614fa2a1c0c95e9c4c37185", symbol: "XPLA", coinGeckoId: "xpla", decimals: 18, price: 0.134927}, // Addr: axpla, Notional: 0.8575967203667499 - {chain: 30, addr: "000000000000000000000000236aa50979d5f3de3bd1eeb40e81137f22ab794b", symbol: "tBTC", coinGeckoId: "tbtc", decimals: 18, price: 57559}, // Addr: 0x236aa50979d5f3de3bd1eeb40e81137f22ab794b, Notional: 0.72409222 - {chain: 30, addr: "0000000000000000000000008e16d46cb2da01cdd49601ec73d7b0344969ae33", symbol: "coin", coinGeckoId: "coin-on-base", decimals: 18, price: 0.0000027}, // Addr: 0x8e16d46cb2da01cdd49601ec73d7b0344969ae33, Notional: 4.027330703679579 - {chain: 30, addr: "000000000000000000000000c48e605c7b722a57277e087a6170b9e227e5ac0a", symbol: "OMNI", coinGeckoId: "omnicat", decimals: 18, price: 0.00037669}, // Addr: 0xc48e605c7b722a57277e087a6170b9e227e5ac0a, Notional: 851.4035094102601 - {chain: 30, addr: "000000000000000000000000ec1df7edfcdc2e2042c63252c1cef480f64f9189", symbol: "BOO", coinGeckoId: "boo-2", decimals: 18, price: 0.00014771}, // Addr: 0xec1df7edfcdc2e2042c63252c1cef480f64f9189, Notional: 15.658163042779183 - {chain: 30, addr: "000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda02913", symbol: "USDC", coinGeckoId: "usd-coin", decimals: 6, price: 1}, // Addr: 0x833589fcd6edb6e08f4c7c32d4f71b54bda02913, Notional: 33177.545646 - {chain: 30, addr: "0000000000000000000000004ed4e862860bed51a9570b96d89af5e1b0efefed", symbol: "DEGEN", coinGeckoId: "degen-base", decimals: 18, price: 0.01671164}, // Addr: 0x4ed4e862860bed51a9570b96d89af5e1b0efefed, Notional: 261.8469128056377 - {chain: 30, addr: "000000000000000000000000302ab9ae394d675676ddb41e294169224824fc9a", symbol: "CHZ", coinGeckoId: "cheezburger", decimals: 18, price: 0.00001539}, // Addr: 0x302ab9ae394d675676ddb41e294169224824fc9a, Notional: 1306.1156237530338 - {chain: 30, addr: "0000000000000000000000006653dd4b92a0e5bf8ae570a98906d9d6fd2eec09", symbol: "RCKT", coinGeckoId: "rocketswap", decimals: 18, price: 0.137587}, // Addr: 0x6653dd4b92a0e5bf8ae570a98906d9d6fd2eec09, Notional: 0.137587 - {chain: 30, addr: "000000000000000000000000255f1b39172f65dc6406b8bee8b08155c45fe1b6", symbol: "HARAMBE", coinGeckoId: "harambecoin", decimals: 18, price: 0.00001398}, // Addr: 0x255f1b39172f65dc6406b8bee8b08155c45fe1b6, Notional: 9.301167481781615 - {chain: 30, addr: "00000000000000000000000078a087d713be963bf307b18f2ff8122ef9a63ae9", symbol: "BSWAP", coinGeckoId: "baseswap", decimals: 18, price: 0.535222}, // Addr: 0x78a087d713be963bf307b18f2ff8122ef9a63ae9, Notional: 4.015183666623719 - {chain: 30, addr: "00000000000000000000000073e58c6f5e7b9def4bdda8f02f59f9ef2a342cca", symbol: "GP", coinGeckoId: "grabpenny", decimals: 18, price: 0.00227826}, // Addr: 0x73e58c6f5e7b9def4bdda8f02f59f9ef2a342cca, Notional: 4.55652 - {chain: 30, addr: "000000000000000000000000ac1bd2486aaf3b5c0fc3fd868558b082a531b2b4", symbol: "TOSHI", coinGeckoId: "toshi", decimals: 18, price: 0.00029472}, // Addr: 0xac1bd2486aaf3b5c0fc3fd868558b082a531b2b4, Notional: 0.2446176 - {chain: 30, addr: "000000000000000000000000eb466342c4d449bc9f53a865d5cb90586f405215", symbol: "axlUSDC", coinGeckoId: "axlusdc", decimals: 6, price: 1}, // Addr: 0xeb466342c4d449bc9f53a865d5cb90586f405215, Notional: 131.667202 + {chain: 24, addr: "000000000000000000000000fd389dc9533717239856190f42475d3f263a270d", symbol: "GRAIN", coinGeckoId: "granary", decimals: 18, price: 0.00544911}, // Addr: 0xfd389dc9533717239856190f42475d3f263a270d, Notional: 0.15802419 + {chain: 24, addr: "000000000000000000000000c5102fe9359fd9a28f877a67e36b0f050d81a3cc", symbol: "HOP", coinGeckoId: "hop-protocol", decimals: 18, price: 0.02256749}, // Addr: 0xc5102fe9359fd9a28f877a67e36b0f050d81a3cc, Notional: 0.9564150646698559 + {chain: 24, addr: "0000000000000000000000001f32b1c2345538c0c6f582fcb022739c4a194ebb", symbol: "wstETH", coinGeckoId: "wrapped-steth", decimals: 18, price: 3128.91}, // Addr: 0x1f32b1c2345538c0c6f582fcb022739c4a194ebb, Notional: 73123.3985395188 + {chain: 24, addr: "000000000000000000000000e453d6649643f1f460c371dc3d1da98f7922fe51", symbol: "FUSE", coinGeckoId: "fuse-network-token", decimals: 18, price: 0.03452347}, // Addr: 0xe453d6649643f1f460c371dc3d1da98f7922fe51, Notional: 0.0338330006 + {chain: 24, addr: "000000000000000000000000c40f949f8a4e094d1b49a23ea9241d289b7b2819", symbol: "LUSD", coinGeckoId: "liquity-usd", decimals: 18, price: 0.995568}, // Addr: 0xc40f949f8a4e094d1b49a23ea9241d289b7b2819, Notional: 1.0951248e-7 + {chain: 24, addr: "0000000000000000000000004200000000000000000000000000000000000006", symbol: "WETH", coinGeckoId: "weth", decimals: 18, price: 2661.57}, // Addr: 0x4200000000000000000000000000000000000006, Notional: 38717.6453054703 + {chain: 24, addr: "00000000000000000000000081ab7e0d570b01411fcc4afd3d50ec8c241cb74b", symbol: "EQZ", coinGeckoId: "equalizer", decimals: 18, price: 0.00378734}, // Addr: 0x81ab7e0d570b01411fcc4afd3d50ec8c241cb74b, Notional: 0.378734 + {chain: 24, addr: "0000000000000000000000008c6f28f2f1a3c87f0f938b96d27520d9751ec8d9", symbol: "sUSD", coinGeckoId: "nusd", decimals: 18, price: 0.999579}, // Addr: 0x8c6f28f2f1a3c87f0f938b96d27520d9751ec8d9, Notional: 1.95253134808809 + {chain: 24, addr: "00000000000000000000000042069d11a2cc72388a2e06210921e839cfbd3280", symbol: "GNOME", coinGeckoId: "gnomeland", decimals: 18, price: 0.00029504}, // Addr: 0x42069d11a2cc72388a2e06210921e839cfbd3280, Notional: 0.5900799999999999 + {chain: 24, addr: "0000000000000000000000004200000000000000000000000000000000000042", symbol: "OP", coinGeckoId: "optimism", decimals: 18, price: 1.33}, // Addr: 0x4200000000000000000000000000000000000042, Notional: 106514.22815659991 + {chain: 24, addr: "00000000000000000000000074ccbe53f77b08632ce0cb91d3a545bf6b8e0979", symbol: "fBOMB", coinGeckoId: "fbomb", decimals: 18, price: 0.0171795}, // Addr: 0x74ccbe53f77b08632ce0cb91d3a545bf6b8e0979, Notional: 0.85038525 + {chain: 28, addr: "017ce8aec5af3bb3ac0158d49771d4c8feba2e54a614fa2a1c0c95e9c4c37185", symbol: "XPLA", coinGeckoId: "xpla", decimals: 18, price: 0.096351}, // Addr: axpla, Notional: 0.6124074618427501 + {chain: 30, addr: "000000000000000000000000236aa50979d5f3de3bd1eeb40e81137f22ab794b", symbol: "tBTC", coinGeckoId: "tbtc", decimals: 18, price: 58729}, // Addr: 0x236aa50979d5f3de3bd1eeb40e81137f22ab794b, Notional: 3732.6108630800004 + {chain: 30, addr: "0000000000000000000000008e16d46cb2da01cdd49601ec73d7b0344969ae33", symbol: "coin", coinGeckoId: "coin-on-base", decimals: 18, price: 0.00000448}, // Addr: 0x8e16d46cb2da01cdd49601ec73d7b0344969ae33, Notional: 6.68238576017945 + {chain: 30, addr: "000000000000000000000000c48e605c7b722a57277e087a6170b9e227e5ac0a", symbol: "OMNI", coinGeckoId: "omnicat", decimals: 18, price: 0.00004164}, // Addr: 0xc48e605c7b722a57277e087a6170b9e227e5ac0a, Notional: 94.9901376076966 + {chain: 30, addr: "000000000000000000000000ec1df7edfcdc2e2042c63252c1cef480f64f9189", symbol: "BOO", coinGeckoId: "boo-2", decimals: 18, price: 0.00003761}, // Addr: 0xec1df7edfcdc2e2042c63252c1cef480f64f9189, Notional: 3.986889933240302 + {chain: 30, addr: "000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda02913", symbol: "USDC", coinGeckoId: "usd-coin", decimals: 6, price: 0.999097}, // Addr: 0x833589fcd6edb6e08f4c7c32d4f71b54bda02913, Notional: 45479.92488956686 + {chain: 30, addr: "0000000000000000000000004ed4e862860bed51a9570b96d89af5e1b0efefed", symbol: "DEGEN", coinGeckoId: "degen-base", decimals: 18, price: 0.00467955}, // Addr: 0x4ed4e862860bed51a9570b96d89af5e1b0efefed, Notional: 3348.7459645211684 + {chain: 30, addr: "00000000000000000000000076734b57dfe834f102fb61e1ebf844adf8dd931e", symbol: "weirdo", coinGeckoId: "weirdo-2", decimals: 8, price: 0.00003251}, // Addr: 0x76734b57dfe834f102fb61e1ebf844adf8dd931e, Notional: 16657.39336864788 + {chain: 30, addr: "000000000000000000000000302ab9ae394d675676ddb41e294169224824fc9a", symbol: "CHZ", coinGeckoId: "cheezburger", decimals: 18, price: 1.77908e-7}, // Addr: 0x302ab9ae394d675676ddb41e294169224824fc9a, Notional: 15.098662663460349 + {chain: 30, addr: "0000000000000000000000006653dd4b92a0e5bf8ae570a98906d9d6fd2eec09", symbol: "RCKT", coinGeckoId: "rocketswap", decimals: 18, price: 0.06622}, // Addr: 0x6653dd4b92a0e5bf8ae570a98906d9d6fd2eec09, Notional: 0.06622 + {chain: 30, addr: "000000000000000000000000255f1b39172f65dc6406b8bee8b08155c45fe1b6", symbol: "HARAMBE", coinGeckoId: "harambecoin", decimals: 18, price: 0.00000102}, // Addr: 0x255f1b39172f65dc6406b8bee8b08155c45fe1b6, Notional: 0.678625953606384 + {chain: 30, addr: "00000000000000000000000078a087d713be963bf307b18f2ff8122ef9a63ae9", symbol: "BSWAP", coinGeckoId: "baseswap", decimals: 18, price: 0.152193}, // Addr: 0x78a087d713be963bf307b18f2ff8122ef9a63ae9, Notional: 1.14173716284918 + {chain: 30, addr: "00000000000000000000000073e58c6f5e7b9def4bdda8f02f59f9ef2a342cca", symbol: "GP", coinGeckoId: "grabpenny", decimals: 18, price: 0.00221663}, // Addr: 0x73e58c6f5e7b9def4bdda8f02f59f9ef2a342cca, Notional: 392.0280367784667 + {chain: 30, addr: "000000000000000000000000ac1bd2486aaf3b5c0fc3fd868558b082a531b2b4", symbol: "TOSHI", coinGeckoId: "toshi", decimals: 18, price: 0.00015315}, // Addr: 0xac1bd2486aaf3b5c0fc3fd868558b082a531b2b4, Notional: 0.12711450000000002 + {chain: 30, addr: "000000000000000000000000eb466342c4d449bc9f53a865d5cb90586f405215", symbol: "axlUSDC", coinGeckoId: "axlusdc", decimals: 6, price: 0.998063}, // Addr: 0xeb466342c4d449bc9f53a865d5cb90586f405215, Notional: 131.49200766972598 + {chain: 30, addr: "000000000000000000000000e3b53af74a4bf62ae5511055290838050bf764df", symbol: "STG", coinGeckoId: "stargate-finance", decimals: 18, price: 0.331083}, // Addr: 0xe3b53af74a4bf62ae5511055290838050bf764df, Notional: 3.70464679886814 + {chain: 30, addr: "00000000000000000000000019b50c63d3d7f7a22308cb0fc8d41b66ff9c318a", symbol: "GPX", coinGeckoId: "grabpenny", decimals: 18, price: 0.00221663}, // Addr: 0x19b50c63d3d7f7a22308cb0fc8d41b66ff9c318a, Notional: 11083.15 {chain: 30, addr: "00000000000000000000000060cbb875d3c6314280dd90a4fe6cafc1d7ce5dfd", symbol: "EBASE", coinGeckoId: "ebase", decimals: 9, price: 0.00000782}, // Addr: 0x60cbb875d3c6314280dd90a4fe6cafc1d7ce5dfd, Notional: 0.008542689225092598 - {chain: 30, addr: "000000000000000000000000717d31a60a9e811469673429c9f8ea24358990f1", symbol: "EVERY", coinGeckoId: "everyworld", decimals: 18, price: 0.01111438}, // Addr: 0x717d31a60a9e811469673429c9f8ea24358990f1, Notional: 15691.335999276522 - {chain: 30, addr: "0000000000000000000000008fbd0648971d56f1f2c35fa075ff5bc75fb0e39d", symbol: "MBS", coinGeckoId: "monkeyball", decimals: 18, price: 0.01569609}, // Addr: 0x8fbd0648971d56f1f2c35fa075ff5bc75fb0e39d, Notional: 52.51182283861479 - {chain: 30, addr: "000000000000000000000000b5c457ddb4ce3312a6c5a2b056a1652bd542a208", symbol: "O404", coinGeckoId: "omni404", decimals: 18, price: 1153.28}, // Addr: 0xb5c457ddb4ce3312a6c5a2b056a1652bd542a208, Notional: 7.646246399999999 - {chain: 30, addr: "00000000000000000000000096e890c6b2501a69cad5dba402bfb871a2a2874c", symbol: "AAG", coinGeckoId: "aag-ventures", decimals: 18, price: 0.01086646}, // Addr: 0x96e890c6b2501a69cad5dba402bfb871a2a2874c, Notional: 0.01086646 - {chain: 30, addr: "00000000000000000000000054a65b16d18527160fafc6fcfebaed47c2976dfa", symbol: "RFKJ", coinGeckoId: "independence-token", decimals: 18, price: 0.00030272}, // Addr: 0x54a65b16d18527160fafc6fcfebaed47c2976dfa, Notional: 0.30272 - {chain: 30, addr: "0000000000000000000000002ae3f1ec7f1f5012cfeab0185bfc7aa3cf0dec22", symbol: "cbETH", coinGeckoId: "coinbase-wrapped-staked-eth", decimals: 18, price: 3100.68}, // Addr: 0x2ae3f1ec7f1f5012cfeab0185bfc7aa3cf0dec22, Notional: 4486.072660938 - {chain: 30, addr: "000000000000000000000000afb89a09d82fbde58f18ac6437b3fc81724e4df6", symbol: "DOG", coinGeckoId: "the-doge-nft", decimals: 18, price: 0.01189264}, // Addr: 0xafb89a09d82fbde58f18ac6437b3fc81724e4df6, Notional: 394044.55871914054 - {chain: 30, addr: "0000000000000000000000007f12d13b34f5f4f0a9449c16bcd42f0da47af200", symbol: "NORMIE", coinGeckoId: "normie-2", decimals: 9, price: 0.04468688}, // Addr: 0x7f12d13b34f5f4f0a9449c16bcd42f0da47af200, Notional: 0.04468688 - {chain: 30, addr: "000000000000000000000000dfbea88c4842d30c26669602888d746d30f9d60d", symbol: "CAW", coinGeckoId: "crow-with-knife", decimals: 18, price: 1.23494e-7}, // Addr: 0xdfbea88c4842d30c26669602888d746d30f9d60d, Notional: 1205.5785530932774 - {chain: 30, addr: "00000000000000000000000050c5725949a6f0c72e6c4a641f24049a917db0cb", symbol: "DAI", coinGeckoId: "dai", decimals: 18, price: 0.999522}, // Addr: 0x50c5725949a6f0c72e6c4a641f24049a917db0cb, Notional: 1297.360797930645 - {chain: 30, addr: "000000000000000000000000532f27101965dd16442e59d40670faf5ebb142e4", symbol: "BRETT", coinGeckoId: "based-brett", decimals: 18, price: 0.03143716}, // Addr: 0x532f27101965dd16442e59d40670faf5ebb142e4, Notional: 7.85929 - {chain: 30, addr: "0000000000000000000000004200000000000000000000000000000000000006", symbol: "WETH", coinGeckoId: "weth", decimals: 18, price: 2901.39}, // Addr: 0x4200000000000000000000000000000000000006, Notional: 168765.06276718798 - {chain: 30, addr: "000000000000000000000000d07379a755a8f11b57610154861d694b2a0f615a", symbol: "BASE", coinGeckoId: "base", decimals: 18, price: 0.00000402}, // Addr: 0xd07379a755a8f11b57610154861d694b2a0f615a, Notional: 1.0050141082343003 - {chain: 30, addr: "0000000000000000000000004a3a6dd60a34bb2aba60d73b4c88315e9ceb6a3d", symbol: "MIM", coinGeckoId: "magic-internet-money", decimals: 18, price: 0.995794}, // Addr: 0x4a3a6dd60a34bb2aba60d73b4c88315e9ceb6a3d, Notional: 25.12382857825962 - {chain: 30, addr: "000000000000000000000000c5bebd5a6ae6be4fcf383eea014fb1dbd43789ca", symbol: "BNS", coinGeckoId: "base-name-service", decimals: 18, price: 0.00124906}, // Addr: 0xc5bebd5a6ae6be4fcf383eea014fb1dbd43789ca, Notional: 2.49812 - {chain: 30, addr: "000000000000000000000000d9aaec86b65d86f6a7b5b1b0c42ffa531710b6ca", symbol: "USDbC", coinGeckoId: "bridged-usd-coin-base", decimals: 6, price: 1.001}, // Addr: 0xd9aaec86b65d86f6a7b5b1b0c42ffa531710b6ca, Notional: 14412.133095359999 + {chain: 30, addr: "000000000000000000000000717d31a60a9e811469673429c9f8ea24358990f1", symbol: "EVERY", coinGeckoId: "everyworld", decimals: 18, price: 0.00455175}, // Addr: 0x717d31a60a9e811469673429c9f8ea24358990f1, Notional: 6059.064408131816 + {chain: 30, addr: "0000000000000000000000008fbd0648971d56f1f2c35fa075ff5bc75fb0e39d", symbol: "MBS", coinGeckoId: "monkeyball", decimals: 18, price: 0.00629148}, // Addr: 0x8fbd0648971d56f1f2c35fa075ff5bc75fb0e39d, Notional: 21.048368297626237 + {chain: 30, addr: "000000000000000000000000b5c457ddb4ce3312a6c5a2b056a1652bd542a208", symbol: "O404", coinGeckoId: "omni404", decimals: 18, price: 1132.55}, // Addr: 0xb5c457ddb4ce3312a6c5a2b056a1652bd542a208, Notional: 7.5088064999999995 + {chain: 30, addr: "00000000000000000000000096e890c6b2501a69cad5dba402bfb871a2a2874c", symbol: "AAG", coinGeckoId: "aag-ventures", decimals: 18, price: 0.00029756}, // Addr: 0x96e890c6b2501a69cad5dba402bfb871a2a2874c, Notional: 0.00029756 + {chain: 30, addr: "00000000000000000000000054a65b16d18527160fafc6fcfebaed47c2976dfa", symbol: "RFKJ", coinGeckoId: "independence-token", decimals: 18, price: 0.00001654}, // Addr: 0x54a65b16d18527160fafc6fcfebaed47c2976dfa, Notional: 0.01654 + {chain: 30, addr: "000000000000000000000000a88594d404727625a9437c3f886c7643872296ae", symbol: "WELL", coinGeckoId: "moonwell-artemis", decimals: 18, price: 0.01183656}, // Addr: 0xa88594d404727625a9437c3f886c7643872296ae, Notional: 1.183656 + {chain: 30, addr: "0000000000000000000000009a3b7959e998bf2b50ef1969067d623877050d92", symbol: "PBB", coinGeckoId: "pepe-but-blue", decimals: 18, price: 0.00003554}, // Addr: 0x9a3b7959e998bf2b50ef1969067d623877050d92, Notional: 0.08639575662881581 + {chain: 30, addr: "0000000000000000000000002ae3f1ec7f1f5012cfeab0185bfc7aa3cf0dec22", symbol: "cbETH", coinGeckoId: "coinbase-wrapped-staked-eth", decimals: 18, price: 2866.46}, // Addr: 0x2ae3f1ec7f1f5012cfeab0185bfc7aa3cf0dec22, Notional: 5394.8780568894 + {chain: 30, addr: "000000000000000000000000afb89a09d82fbde58f18ac6437b3fc81724e4df6", symbol: "DOG", coinGeckoId: "the-doge-nft", decimals: 18, price: 0.005485}, // Addr: 0xafb89a09d82fbde58f18ac6437b3fc81724e4df6, Notional: 66555.98607060588 + {chain: 30, addr: "00000000000000000000000022a2488fe295047ba13bd8cccdbc8361dbd8cf7c", symbol: "SONNE", coinGeckoId: "sonne-finance", decimals: 18, price: 0.00714198}, // Addr: 0x22a2488fe295047ba13bd8cccdbc8361dbd8cf7c, Notional: 0.09998772 + {chain: 30, addr: "0000000000000000000000007f12d13b34f5f4f0a9449c16bcd42f0da47af200", symbol: "NORMIE", coinGeckoId: "normie-2", decimals: 9, price: 0.00679509}, // Addr: 0x7f12d13b34f5f4f0a9449c16bcd42f0da47af200, Notional: 3929.59183547609 + {chain: 30, addr: "000000000000000000000000dfbea88c4842d30c26669602888d746d30f9d60d", symbol: "CAW", coinGeckoId: "crow-with-knife", decimals: 18, price: 4.6493e-8}, // Addr: 0xdfbea88c4842d30c26669602888d746d30f9d60d, Notional: 454.2108727919945 + {chain: 30, addr: "00000000000000000000000050c5725949a6f0c72e6c4a641f24049a917db0cb", symbol: "DAI", coinGeckoId: "dai", decimals: 18, price: 0.999076}, // Addr: 0x50c5725949a6f0c72e6c4a641f24049a917db0cb, Notional: 687.1941107991611 + {chain: 30, addr: "000000000000000000000000532f27101965dd16442e59d40670faf5ebb142e4", symbol: "BRETT", coinGeckoId: "based-brett", decimals: 18, price: 0.088872}, // Addr: 0x532f27101965dd16442e59d40670faf5ebb142e4, Notional: 6882.778690200001 + {chain: 30, addr: "0000000000000000000000004200000000000000000000000000000000000006", symbol: "WETH", coinGeckoId: "weth", decimals: 18, price: 2661.57}, // Addr: 0x4200000000000000000000000000000000000006, Notional: 160840.36588895821 + {chain: 30, addr: "000000000000000000000000d07379a755a8f11b57610154861d694b2a0f615a", symbol: "BASE", coinGeckoId: "base", decimals: 18, price: 0.00000209}, // Addr: 0xd07379a755a8f11b57610154861d694b2a0f615a, Notional: 0.5225073348780318 + {chain: 30, addr: "000000000000000000000000b0ffa8000886e57f86dd5264b9582b2ad87b2b91", symbol: "W", coinGeckoId: "wormhole", decimals: 18, price: 0.2171}, // Addr: 0xb0ffa8000886e57f86dd5264b9582b2ad87b2b91, Notional: 13.67757204801 + {chain: 30, addr: "0000000000000000000000004a3a6dd60a34bb2aba60d73b4c88315e9ceb6a3d", symbol: "MIM", coinGeckoId: "magic-internet-money", decimals: 18, price: 1.001}, // Addr: 0x4a3a6dd60a34bb2aba60d73b4c88315e9ceb6a3d, Notional: 25.255175675729998 + {chain: 30, addr: "000000000000000000000000c5bebd5a6ae6be4fcf383eea014fb1dbd43789ca", symbol: "BNS", coinGeckoId: "base-name-service", decimals: 18, price: 0.0000866}, // Addr: 0xc5bebd5a6ae6be4fcf383eea014fb1dbd43789ca, Notional: 0.17320000000000002 + {chain: 30, addr: "000000000000000000000000d9aaec86b65d86f6a7b5b1b0c42ffa531710b6ca", symbol: "USDbC", coinGeckoId: "bridged-usd-coin-base", decimals: 6, price: 0.997296}, // Addr: 0xd9aaec86b65d86f6a7b5b1b0c42ffa531710b6ca, Notional: 14265.674099298718 + {chain: 34, addr: "0000000000000000000000005300000000000000000000000000000000000004", symbol: "WETH", coinGeckoId: "bridged-wrapped-ether-scroll", decimals: 18, price: 2664.21}, // Addr: 0x5300000000000000000000000000000000000004, Notional: 200419.0727164344 } } diff --git a/node/pkg/governor/governor.go b/node/pkg/governor/governor.go index 017b8f88e2..fbea430def 100644 --- a/node/pkg/governor/governor.go +++ b/node/pkg/governor/governor.go @@ -28,9 +28,12 @@ package governor import ( "context" "encoding/hex" + "errors" "fmt" "math" "math/big" + "sort" + "strconv" "sync" "time" @@ -179,12 +182,15 @@ func (ce *chainEntry) isBigTransfer(value uint64) bool { } type ChainGovernor struct { - db db.GovernorDB // protected by `mutex` - logger *zap.Logger - mutex sync.Mutex - tokens map[tokenKey]*tokenEntry // protected by `mutex` - tokensByCoinGeckoId map[string][]*tokenEntry // protected by `mutex` - chains map[vaa.ChainID]*chainEntry // protected by `mutex` + db db.GovernorDB // protected by `mutex` + logger *zap.Logger + mutex sync.Mutex + tokens map[tokenKey]*tokenEntry // protected by `mutex` + tokensByCoinGeckoId map[string][]*tokenEntry // protected by `mutex` + chains map[vaa.ChainID]*chainEntry // protected by `mutex` + // We maintain a sorted slice of governed chainIds so we can iterate over maps in a deterministic way + // This slice should be sorted in ascending order by (Wormhole) Chain ID. + chainIds []vaa.ChainID msgsSeen map[string]bool // protected by `mutex` // Key is hash, payload is consts transferComplete and transferEnqueued. msgsToPublish []*common.MessagePublication // protected by `mutex` dayLengthInMinutes int @@ -194,12 +200,14 @@ type ChainGovernor struct { nextConfigPublishTime time.Time statusPublishCounter int64 configPublishCounter int64 + flowCancelEnabled bool } func NewChainGovernor( logger *zap.Logger, db db.GovernorDB, env common.Environment, + flowCancelEnabled bool, ) *ChainGovernor { return &ChainGovernor{ db: db, @@ -209,6 +217,7 @@ func NewChainGovernor( chains: make(map[vaa.ChainID]*chainEntry), msgsSeen: make(map[string]bool), env: env, + flowCancelEnabled: flowCancelEnabled, } } @@ -232,19 +241,28 @@ func (gov *ChainGovernor) Run(ctx context.Context) error { return nil } +func (gov *ChainGovernor) IsFlowCancelEnabled() bool { + return gov.flowCancelEnabled +} + func (gov *ChainGovernor) initConfig() error { gov.mutex.Lock() defer gov.mutex.Unlock() gov.dayLengthInMinutes = 24 * 60 - configTokens := tokenList() - flowCancelTokens := FlowCancelTokenList() configChains := chainList() + configTokens := tokenList() + flowCancelTokens := []tokenConfigEntry{} if gov.env == common.UnsafeDevNet { configTokens, flowCancelTokens, configChains = gov.initDevnetConfig() } else if gov.env == common.TestNet { configTokens, flowCancelTokens, configChains = gov.initTestnetConfig() + } else { + // mainnet, unit tests, or accountant-mock + if gov.flowCancelEnabled { + flowCancelTokens = FlowCancelTokenList() + } } for _, ct := range configTokens { @@ -306,23 +324,27 @@ func (gov *ChainGovernor) initConfig() error { } } - for _, flowCancelConfigEntry := range flowCancelTokens { - addr, err := vaa.StringToAddress(flowCancelConfigEntry.addr) - if err != nil { - return err - } - key := tokenKey{chain: vaa.ChainID(flowCancelConfigEntry.chain), addr: addr} + // If flow cancelling is enabled, enable the `flowCancels` field for the Governed assets that + // correspond to the entries in the Flow Cancel Tokens List + if gov.flowCancelEnabled { + for _, flowCancelConfigEntry := range flowCancelTokens { + addr, err := vaa.StringToAddress(flowCancelConfigEntry.addr) + if err != nil { + return err + } + key := tokenKey{chain: vaa.ChainID(flowCancelConfigEntry.chain), addr: addr} - // Only add flow cancelling for tokens that are already configured for rate-limiting. - if _, ok := gov.tokens[key]; ok { - gov.tokens[key].flowCancels = true - } else { - gov.logger.Debug("token present in flow cancel list but absent from main token list:", - zap.Stringer("chain", key.chain), - zap.Stringer("addr", key.addr), - zap.String("symbol", flowCancelConfigEntry.symbol), - zap.String("coinGeckoId", flowCancelConfigEntry.coinGeckoId), - ) + // Only add flow cancelling for tokens that are already configured for rate-limiting. + if _, ok := gov.tokens[key]; ok { + gov.tokens[key].flowCancels = true + } else { + gov.logger.Debug("token present in flow cancel list but absent from main token list:", + zap.Stringer("chain", key.chain), + zap.Stringer("addr", key.addr), + zap.String("symbol", flowCancelConfigEntry.symbol), + zap.String("coinGeckoId", flowCancelConfigEntry.coinGeckoId), + ) + } } } @@ -375,6 +397,22 @@ func (gov *ChainGovernor) initConfig() error { return fmt.Errorf("no chains are configured") } + // Populate a sorted list of chain IDs so that we can iterate over maps in a determinstic way. + // https://go.dev/blog/maps, "Iteration order" section + governedChainIds := make([]vaa.ChainID, len(gov.chains)) + i := 0 + for id := range gov.chains { + // updating the slice in place here to satisfy prealloc lint. In theory this should be more performant + governedChainIds[i] = id + i++ + } + // Custom sorting for the vaa.ChainID type + sort.Slice(governedChainIds, func(i, j int) bool { + return governedChainIds[i] < governedChainIds[j] + }) + + gov.chainIds = governedChainIds + return nil } @@ -390,6 +428,10 @@ func (gov *ChainGovernor) ProcessMsg(msg *common.MessagePublication) bool { } // ProcessMsgForTime handles an incoming message (transfer) and registers it in the chain entries for the Governor. +// Returns true if: +// - the message is not governed +// - the transfer is complete and has already been observed +// - the transfer does not trigger any error conditions (happy path) // Validation: // - ensure MessagePublication is not nil // - check that the MessagePublication is governed @@ -567,7 +609,8 @@ func (gov *ChainGovernor) ProcessMsgForTime(msg *common.MessagePublication, now emitterChainEntry.transfers = append(emitterChainEntry.transfers, transfer) // Add inverse transfer to destination chain entry if this asset can cancel flows. - key := tokenKey{chain: msg.EmitterChain, addr: msg.EmitterAddress} + key := tokenKey{chain: token.token.chain, addr: token.token.addr} + tokenEntry := gov.tokens[key] if tokenEntry != nil { // Mandatory check to ensure that the token should be able to reduce the Governor limit. @@ -646,10 +689,23 @@ func (gov *ChainGovernor) parseMsgAlreadyLocked( return true, ce, token, payload, nil } +// CheckPending is a wrapper method for CheckPendingForTime. It is called by the processor with the purpose of releasing +// queued transfers. func (gov *ChainGovernor) CheckPending() ([]*common.MessagePublication, error) { return gov.CheckPendingForTime(time.Now()) } +// CheckPendingForTime checks whether a pending message is ready to be released, and if so, modifies the chain entry's `pending` and `transfers` slices by +// moving a `dbTransfer` element from `pending` to `transfers`. Returns a slice of Messages that will be published. +// A transfer is ready to be released when one of the following conditions holds: +// - The 'release time' duration has passed since `now` (i.e. the transfer has been queued for 24 hours, regardless of +// the Governor's current capacity) +// - Within the release time duration, other transfers have been processed and have freed up outbound Governor capacity. +// This happens either because other transfers get released after 24 hours or because incoming transfers of +// flow-cancelling assets have freed up outbound capacity. +// +// WARNING: When this function returns an error, it propagates to the `processor` which in turn interprets this as a +// signal to RESTART THE PROCESSOR. Therefore, errors returned by this function effectively act as panics. func (gov *ChainGovernor) CheckPendingForTime(now time.Time) ([]*common.MessagePublication, error) { gov.mutex.Lock() defer gov.mutex.Unlock() @@ -664,15 +720,26 @@ func (gov *ChainGovernor) CheckPendingForTime(now time.Time) ([]*common.MessageP gov.msgsToPublish = nil } - for _, ce := range gov.chains { + // Iterate deterministically by accessing keys from this slice instead of the chainEntry map directly + for _, chainId := range gov.chainIds { + ce, ok := gov.chains[chainId] + if !ok { + gov.logger.Error("chainId not found in gov.chains", zap.Stringer("chainId", chainId)) + + } // Keep going as long as we find something that will fit. for { foundOne := false prevTotalValue, err := gov.TrimAndSumValueForChain(ce, startTime) if err != nil { gov.logger.Error("error when attempting to trim and sum transfers", zap.Error(err)) + gov.logger.Error("refusing to release transfers for this chain until the sum can be correctly calculated", + zap.Stringer("chainId", chainId), + zap.Uint64("prevTotalValue", prevTotalValue), + zap.Error(err)) gov.msgsToPublish = msgsToPublish - return nil, err + // Skip further processing for this chain entry + break } // Keep going until we find something that fits or hit the end. @@ -729,7 +796,8 @@ func (gov *ChainGovernor) CheckPendingForTime(now time.Time) ([]*common.MessageP zap.Uint64("value", value), zap.Uint64("prevTotalValue", prevTotalValue), zap.Uint64("newTotalValue", newTotalValue), - zap.String("msgID", pe.dbData.Msg.MessageIDString())) + zap.String("msgID", pe.dbData.Msg.MessageIDString()), + zap.String("flowCancels", strconv.FormatBool(pe.token.flowCancels))) } payload, err := vaa.DecodeTransferPayloadHdr(pe.dbData.Msg.Payload) @@ -741,7 +809,9 @@ func (gov *ChainGovernor) CheckPendingForTime(now time.Time) ([]*common.MessageP ) delete(gov.msgsSeen, pe.hash) // Rest of the clean up happens below. } else { - // If we get here, publish it and remove it from the pending list. + // If we get here, publish it and move it from the pending list to the + // transfers list. Also add a flow-cancel transfer to the destination chain + // if the transfer is sending a flow-canceling asset. msgsToPublish = append(msgsToPublish, &pe.dbData.Msg) if countsTowardsTransfers { @@ -757,26 +827,47 @@ func (gov *ChainGovernor) CheckPendingForTime(now time.Time) ([]*common.MessageP Hash: pe.hash, } - if err := gov.db.StoreTransfer(&dbTransfer); err != nil { - gov.msgsToPublish = msgsToPublish + transfer, err := newTransferFromDbTransfer(&dbTransfer) + if err != nil { + // Should never occur unless dbTransfer.Value overflows MaxInt64 + gov.logger.Error("could not convert dbTransfer to transfer", + zap.String("msgID", dbTransfer.MsgID), + zap.String("hash", pe.hash), + zap.Error(err), + ) + // This causes the processor to die. We don't want to process transfers that + // have USD value in excess of MaxInt64 under any circumstances. + // This check should occur before the call to the database so + // that we don't store a problematic transfer. return nil, err } - transfer, err := newTransferFromDbTransfer(&dbTransfer) - if err != nil { + if err := gov.db.StoreTransfer(&dbTransfer); err != nil { + // This causes the processor to die. We can't tolerate DB connection + // errors. return nil, err } + ce.transfers = append(ce.transfers, transfer) + gov.msgsSeen[pe.hash] = transferComplete + // Add inverse transfer to destination chain entry if this asset can cancel flows. - key := tokenKey{chain: dbTransfer.EmitterChain, addr: dbTransfer.EmitterAddress} + key := tokenKey{chain: pe.token.token.chain, addr: pe.token.token.addr} tokenEntry := gov.tokens[key] if tokenEntry != nil { // Mandatory check to ensure that the token should be able to reduce the Governor limit. if tokenEntry.flowCancels { if destinationChainEntry, ok := gov.chains[payload.TargetChain]; ok { + if err := destinationChainEntry.addFlowCancelTransferFromDbTransfer(&dbTransfer); err != nil { - return nil, err + gov.logger.Warn("could not add flow canceling transfer to destination chain", + zap.String("msgID", dbTransfer.MsgID), + zap.String("hash", pe.hash), + zap.Error(err), + ) + // Process the next pending transfer + continue } } else { gov.logger.Warn("tried to cancel flow but chain entry for target chain does not exist", @@ -787,7 +878,6 @@ func (gov *ChainGovernor) CheckPendingForTime(now time.Time) ([]*common.MessageP } } } - gov.msgsSeen[pe.hash] = transferComplete } else { delete(gov.msgsSeen, pe.hash) } @@ -831,46 +921,46 @@ func computeValue(amount *big.Int, token *tokenEntry) (uint64, error) { return value, nil } -// TrimAndSumValueForChain calculates the `sum` of `Transfer`s for a given chain `emitter`. In effect, it represents a +// TrimAndSumValueForChain calculates the `sum` of `Transfer`s for a given chain `chainEntry`. In effect, it represents a // chain's "Governor Usage" for a given 24 hour period. // This sum may be reduced by the sum of 'flow cancelling' transfers: that is, transfers of an allow-listed token // that have the `emitter` as their destination chain. // The resulting `sum` return value therefore represents the net flow across a chain when taking flow-cancelling tokens // into account. Therefore, this value should never be less than 0 and should never exceed the "Governor limit" for the chain. -// As a side-effect, this function modifies the parameter `emitter`, updating its `transfers` field so that it only includes +// As a side-effect, this function modifies the parameter `chainEntry`, updating its `transfers` field so that it only includes // filtered `Transfer`s (i.e. outgoing `Transfer`s newer than `startTime`). +// Returns an error if the sum cannot be calculated. The transfers field will still be updated in this case. When +// an error condition occurs, this function returns the chain's `dailyLimit` as the sum. This should result in the +// chain appearing at maximum capacity from the perspective of the Governor, and therefore cause new transfers to be +// queued until space opens up. // SECURITY Invariant: The `sum` return value should never be less than 0 -// SECURITY Invariant: The `sum` return value should never exceed the "Governor limit" for the chain -func (gov *ChainGovernor) TrimAndSumValueForChain(emitter *chainEntry, startTime time.Time) (sum uint64, err error) { - // Sum the value of all outgoing transfers - var sumOutgoing int64 - sumOutgoing, emitter.transfers, err = gov.TrimAndSumValue(emitter.transfers, startTime) +func (gov *ChainGovernor) TrimAndSumValueForChain(chainEntry *chainEntry, startTime time.Time) (sum uint64, err error) { + if chainEntry == nil { + // We don't expect this to happen but this prevents a nil pointer deference + return 0, errors.New("TrimAndSumValeForChain parameter chainEntry must not be nil") + } + // Sum the value of all transfers for this chain. This sum can be negative if flow-cancelling is enabled + // and the incoming value of flow-cancelling assets exceeds the summed value of all outgoing assets. + var sumValue int64 + sumValue, chainEntry.transfers, err = gov.TrimAndSumValue(chainEntry.transfers, startTime) if err != nil { - return 0, err + // Return the daily limit as the sum so that any further transfers will be queued. + return chainEntry.dailyLimit, err } - // Return early if the sum is not positive as it cannot exceed the daily limit. - // In this case, return 0 even if the sum is negative. - if sumOutgoing <= 0 { + // Return 0 even if the sum is negative. + if sumValue <= 0 { return 0, nil } - sum = uint64(sumOutgoing) - if sum > emitter.dailyLimit { - return 0, fmt.Errorf( - "invariant violation: calculated sum %d exceeds Governor limit %d", - sum, - emitter.dailyLimit, - ) - } - - return sum, nil + return uint64(sumValue), nil } // TrimAndSumValue iterates over a slice of transfer structs. It filters out transfers that have Timestamp values that // are earlier than the parameter `startTime`. The function then iterates over the remaining transfers, sums their Value, // and returns the sum and the filtered transfers. +// As a side-effect, this function deletes transfers from the database if their Timestamp is before `startTime`. // The `transfers` slice must be sorted by Timestamp. We expect this to be the case as transfers are added to the // Governor in chronological order as they arrive. Note that `Timestamp` is created by the Governor; it is not read // from the actual on-chain transaction. @@ -943,7 +1033,8 @@ func CheckedAddUint64(x uint64, y uint64) (uint64, error) { return sum, nil } -// CheckedAddInt64 adds two uint64 values with overflow checks +// CheckedAddInt64 adds two uint64 values with overflow checks. Returns an error if the calculation would +// overflow or underflow. In this case, the returned value is 0. func CheckedAddInt64(x int64, y int64) (int64, error) { if x == 0 { return y, nil diff --git a/node/pkg/governor/governor_db.go b/node/pkg/governor/governor_db.go index 146f2c26f9..db928ce868 100644 --- a/node/pkg/governor/governor_db.go +++ b/node/pkg/governor/governor_db.go @@ -18,6 +18,9 @@ func (gov *ChainGovernor) loadFromDB() error { return gov.loadFromDBAlreadyLocked() } +// loadFromDBAlreadyLocked method loads transfers and pending data from the database and modifies the corresponding fields in the ChainGovernor. +// These fields are slices of transfers or pendingTransfers and will be sorted by their Timestamp property. +// Modifies the state of the database as a side-effect: 'transfers' that are older than 24 hours are deleted. func (gov *ChainGovernor) loadFromDBAlreadyLocked() error { xfers, pending, err := gov.db.GetChainGovernorData(gov.logger) if err != nil { @@ -154,10 +157,16 @@ func (gov *ChainGovernor) reloadPendingTransfer(pending *db.PendingTransfer) { zap.String("Hash", hash), ) + // Note: no flow cancel added here. We only want to add an inverse, flow-cancel transfer when the transfer is + // released from the pending queue, not when it's added. ce.pending = append(ce.pending, &pendingEntry{token: token, amount: payload.Amount, hash: hash, dbData: *pending}) gov.msgsSeen[hash] = transferEnqueued } +// reloadTransfer method processes a db.Transfer and validates that it should be loaded into `gov`. +// Modifies `gov` as a side-effect: when a valid transfer is loaded, the properties 'transfers' and 'msgsSeen' are +// updated with information about the loaded transfer. In the case where a flow-canceling asset's transfer is loaded, +// both chain entries (emitter and target) will be updated. func (gov *ChainGovernor) reloadTransfer(xfer *db.Transfer) error { ce, exists := gov.chains[xfer.EmitterChain] if !exists { @@ -233,5 +242,31 @@ func (gov *ChainGovernor) reloadTransfer(xfer *db.Transfer) error { return err } ce.transfers = append(ce.transfers, transfer) + + // Reload flow-cancel transfers for the TargetChain. This is important when the node restarts so that a corresponding, + // inverse transfer is added to the TargetChain. This is already done during the `ProcessMsgForTime` and + // `CheckPending` loops but those functions do not capture flow-cancelling when the node is restarted. + tokenEntry := gov.tokens[tk] + if tokenEntry != nil { + // Mandatory check to ensure that the token should be able to reduce the Governor limit. + if tokenEntry.flowCancels { + if destinationChainEntry, ok := gov.chains[xfer.TargetChain]; ok { + if err := destinationChainEntry.addFlowCancelTransferFromDbTransfer(xfer); err != nil { + gov.logger.Error("could not add flow canceling transfer to destination chain", + zap.String("msgID", xfer.MsgID), + zap.String("hash", xfer.Hash), zap.Error(err), + ) + return err + } + } else { + gov.logger.Error("tried to cancel flow but chain entry for target chain does not exist", + zap.String("msgID", xfer.MsgID), + zap.Stringer("token chain", xfer.OriginChain), + zap.Stringer("token address", xfer.OriginAddress), + zap.Stringer("target chain", xfer.TargetChain), + ) + } + } + } return nil } diff --git a/node/pkg/governor/governor_monitoring.go b/node/pkg/governor/governor_monitoring.go index b43e8e5ba3..142a90dd8e 100644 --- a/node/pkg/governor/governor_monitoring.go +++ b/node/pkg/governor/governor_monitoring.go @@ -100,15 +100,16 @@ func (gov *ChainGovernor) Status() (resp string) { defer gov.mutex.Unlock() startTime := time.Now().Add(-time.Minute * time.Duration(gov.dayLengthInMinutes)) + for _, ce := range gov.chains { - valueTrans, err := sumValue(ce.transfers, startTime) + netValue, _, _, err := sumValue(ce.transfers, startTime) if err != nil { // We don't want to actually return an error or otherwise stop // execution in this case. Instead of propagating the error here, print the contents of the // error message. return fmt.Sprintf("chain: %v, dailyLimit: OVERFLOW. error: %s", ce.emitterChainId, err) } - s1 := fmt.Sprintf("chain: %v, dailyLimit: %v, total: %v, numPending: %v", ce.emitterChainId, ce.dailyLimit, valueTrans, len(ce.pending)) + s1 := fmt.Sprintf("chain: %v, dailyLimit: %v, total: %v, numPending: %v", ce.emitterChainId, ce.dailyLimit, netValue, len(ce.pending)) resp += s1 + "\n" gov.logger.Info(s1) if len(ce.pending) != 0 { @@ -213,11 +214,11 @@ func (gov *ChainGovernor) ReleasePendingVAA(vaaId string) (string, error) { } // Admin command to reset the release timer for a pending VAA, extending it to the configured limit. -func (gov *ChainGovernor) ResetReleaseTimer(vaaId string) (string, error) { - return gov.resetReleaseTimerForTime(vaaId, time.Now()) +func (gov *ChainGovernor) ResetReleaseTimer(vaaId string, numDays uint32) (string, error) { + return gov.resetReleaseTimerForTime(vaaId, time.Now(), numDays) } -func (gov *ChainGovernor) resetReleaseTimerForTime(vaaId string, now time.Time) (string, error) { +func (gov *ChainGovernor) resetReleaseTimerForTime(vaaId string, now time.Time, numDays uint32) (string, error) { gov.mutex.Lock() defer gov.mutex.Unlock() @@ -225,7 +226,7 @@ func (gov *ChainGovernor) resetReleaseTimerForTime(vaaId string, now time.Time) for _, pe := range ce.pending { msgId := pe.dbData.Msg.MessageIDString() if msgId == vaaId { - pe.dbData.ReleaseTime = now.Add(maxEnqueuedTime) + pe.dbData.ReleaseTime = now.Add(time.Duration(numDays) * time.Hour * 24) gov.logger.Info("updating the release time due to admin command", zap.String("msgId", msgId), zap.Stringer("timeStamp", pe.dbData.Msg.Timestamp), @@ -244,62 +245,111 @@ func (gov *ChainGovernor) resetReleaseTimerForTime(vaaId string, now time.Time) } return "", fmt.Errorf("vaa not found in the pending list") + } -// sumValue sums the value of all `transfers`. See also `TrimAndSumValue`. -func sumValue(transfers []transfer, startTime time.Time) (uint64, error) { +// sumValue sums the value of all `transfers`, returning separate fields for: +// - the net sum of all outgoing small tranasfers minus flow cancel sum +// - the sum of all outgoing small tranasfers +// - the sum of all incoming flow-cancelling transfers +// NOTE these sums exclude "big transfers" as they are always queued for 24h and are never added to the chain entry's 'transfers' field. +// Returns an error if the sum of all transfers would overflow the bounds of Int64. In this case, the function +// returns a value of 0. +func sumValue(transfers []transfer, startTime time.Time) (netNotional int64, smallTxOutgoingNotional uint64, flowCancelNotional uint64, err error) { if len(transfers) == 0 { - return 0, nil + return 0, 0, 0, nil } - var sum int64 + // Sum of all outgoing small tranasfers minus incoming flow cancel transfers. Big transfers are excluded + netNotional = int64(0) + smallTxOutgoingNotional = uint64(0) + flowCancelNotional = uint64(0) for _, t := range transfers { if t.dbTransfer.Timestamp.Before(startTime) { continue } - checkedSum, err := CheckedAddInt64(sum, t.value) + netNotional, err = CheckedAddInt64(netNotional, t.value) if err != nil { // We have to stop and return an error here (rather than saturate, for example). The // transfers are not sorted by value so we can't make any guarantee on the final value // if we hit the upper or lower bound. We don't expect this to happen in any case. - return 0, err + return 0, 0, 0, err + } + if t.value < 0 { + // If a transfer is negative then it is an incoming, flow-cancelling transfer. + // We can use the dbTransfer.Value for calculating the sum because it is the unsigned version + // of t.Value + flowCancelNotional += t.dbTransfer.Value + } else { + smallTxOutgoingNotional += t.dbTransfer.Value } - sum = checkedSum - } - - // Do not return negative values. Instead, saturate to zero. - if sum <= 0 { - return 0, nil } - return uint64(sum), nil + return netNotional, smallTxOutgoingNotional, flowCancelNotional, nil } -// REST query to get the current available notional value per chain. +// REST query to get the current available notional value per chain. This is defined as the sum of all transfers +// subtracted from the chains's dailyLimit. +// The available notional limit by chain represents the remaining capacity of a chain. As a result, it should not be +// a negative number: we don't want to represent that there is "negative value" available. func (gov *ChainGovernor) GetAvailableNotionalByChain() (resp []*publicrpcv1.GovernorGetAvailableNotionalByChainResponse_Entry) { gov.mutex.Lock() defer gov.mutex.Unlock() startTime := time.Now().Add(-time.Minute * time.Duration(gov.dayLengthInMinutes)) - for _, ce := range gov.chains { - value, err := sumValue(ce.transfers, startTime) + + // Iterate deterministically by accessing keys from this slice instead of the chainEntry map directly + for _, chainId := range gov.chainIds { + ce := gov.chains[chainId] + netUsage, _, incoming, err := sumValue(ce.transfers, startTime) if err != nil { - // Don't return an error here, just return 0 - return make([]*publicrpcv1.GovernorGetAvailableNotionalByChainResponse_Entry, 0) + // Report 0 available notional if we can't calculate the current usage + gov.logger.Error("GetAvailableNotionalByChain: failed to compute sum of transfers for chain entry", + zap.String("chainID", chainId.String()), + zap.Error(err)) + resp = append(resp, &publicrpcv1.GovernorGetAvailableNotionalByChainResponse_Entry{ + ChainId: uint32(ce.emitterChainId), + RemainingAvailableNotional: 0, + NotionalLimit: ce.dailyLimit, + BigTransactionSize: ce.bigTransactionSize, + }) + continue } - if value >= ce.dailyLimit { - value = 0 - } else { - value = ce.dailyLimit - value + + remaining := gov.availableNotionalValue(chainId, netUsage) + + if !gov.flowCancelEnabled { + // When flow cancel is disabled, we expect that both the netUsage and remaining notional should be + // within the range of [0, dailyLimit]. Flow cancel allows flexibility here. netUsage may be + // negative if there is a lot of incoming flow; conversely, it may exceed dailyLimit if incoming + // flow added space, allowed additional transfers through, and then expired after 24h. + // Note that if flow cancel is enabled and then later disabled, netUsage can exceed dailyLimit + // for 24h as old transfers will be loaded from the database into the Governor, but the flow + // cancel transfers will not. The value should return to the normal range after 24h has elapsed + // since the old transfers were sent. + if netUsage < 0 || incoming != 0 { + gov.logger.Warn("GetAvailableNotionalByChain: net value for chain is negative even though flow cancel is disabled", + zap.String("chainID", chainId.String()), + zap.Uint64("dailyLimit", ce.dailyLimit), + zap.Int64("netUsage", netUsage), + zap.Error(err)) + } else if uint64(netUsage) > ce.dailyLimit { + gov.logger.Warn("GetAvailableNotionalByChain: net value for chain exceeds daily limit even though flow cancel is disabled", + zap.String("chainID", chainId.String()), + zap.Uint64("dailyLimit", ce.dailyLimit), + zap.Error(err)) + } + } resp = append(resp, &publicrpcv1.GovernorGetAvailableNotionalByChainResponse_Entry{ ChainId: uint32(ce.emitterChainId), - RemainingAvailableNotional: value, + RemainingAvailableNotional: remaining, NotionalLimit: ce.dailyLimit, BigTransactionSize: ce.bigTransactionSize, }) + } sort.SliceStable(resp, func(i, j int) bool { @@ -365,6 +415,25 @@ func (gov *ChainGovernor) IsVAAEnqueued(msgId *publicrpcv1.MessageID) (bool, err return false, nil } +// availableNotionalValue calculates the available notional USD value for a chain entry based on the net value +// of the chain. +func (gov *ChainGovernor) availableNotionalValue(id vaa.ChainID, netUsage int64) uint64 { + remaining := uint64(0) + ce := gov.chains[id] + + // Handle negative case here so we can safely cast to uint64 below + if netUsage < 0 { + // The full capacity is available for the chain. + remaining = ce.dailyLimit + } else if uint64(netUsage) > ce.dailyLimit { + remaining = 0 + } else { + remaining = ce.dailyLimit - uint64(netUsage) + } + + return remaining +} + // REST query to get the list of tokens being monitored by the governor. func (gov *ChainGovernor) GetTokenList() []*publicrpcv1.GovernorGetTokenListResponse_Entry { gov.mutex.Lock() @@ -441,21 +510,21 @@ func (gov *ChainGovernor) CollectMetrics(hb *gossipv1.Heartbeat, sendC chan<- [] if exists { enabled = "1" - value, err := sumValue(ce.transfers, startTime) + netUsage, _, _, err := sumValue(ce.transfers, startTime) + + remaining := uint64(0) if err != nil { // Error can occur if the sum overflows. Return 0 in this case rather than returning an // error. - value = 0 - } - if value >= ce.dailyLimit { - value = 0 + gov.logger.Error("CollectMetrics: failed to compute sum of transfers for chain entry", zap.String("chain", chain.String()), zap.Error(err)) + remaining = 0 } else { - value = ce.dailyLimit - value + remaining = gov.availableNotionalValue(chain, netUsage) } pending := len(ce.pending) totalNotional = fmt.Sprint(ce.dailyLimit) - available = float64(value) + available = float64(remaining) numPending = float64(pending) totalPending += pending } @@ -493,7 +562,9 @@ var governorMessagePrefixStatus = []byte("governor_status_000000000000000000|") func (gov *ChainGovernor) publishConfig(hb *gossipv1.Heartbeat, sendC chan<- []byte, gk *ecdsa.PrivateKey, ourAddr ethCommon.Address) { chains := make([]*gossipv1.ChainGovernorConfig_Chain, 0) - for _, ce := range gov.chains { + // Iterate deterministically by accessing keys from this slice instead of the chainEntry map directly + for _, cid := range gov.chainIds { + ce := gov.chains[cid] chains = append(chains, &gossipv1.ChainGovernorConfig_Chain{ ChainId: uint32(ce.emitterChainId), NotionalLimit: ce.dailyLimit, @@ -513,11 +584,12 @@ func (gov *ChainGovernor) publishConfig(hb *gossipv1.Heartbeat, sendC chan<- []b gov.configPublishCounter += 1 payload := &gossipv1.ChainGovernorConfig{ - NodeName: hb.NodeName, - Counter: gov.configPublishCounter, - Timestamp: hb.Timestamp, - Chains: chains, - Tokens: tokens, + NodeName: hb.NodeName, + Counter: gov.configPublishCounter, + Timestamp: hb.Timestamp, + Chains: chains, + Tokens: tokens, + FlowCancelEnabled: gov.flowCancelEnabled, } b, err := proto.Marshal(payload) @@ -551,16 +623,15 @@ func (gov *ChainGovernor) publishConfig(hb *gossipv1.Heartbeat, sendC chan<- []b func (gov *ChainGovernor) publishStatus(hb *gossipv1.Heartbeat, sendC chan<- []byte, startTime time.Time, gk *ecdsa.PrivateKey, ourAddr ethCommon.Address) { chains := make([]*gossipv1.ChainGovernorStatus_Chain, 0) numEnqueued := 0 - for _, ce := range gov.chains { - value, err := sumValue(ce.transfers, startTime) + for chainId, ce := range gov.chains { + // The capacity for the chain to emit further messages, denoted as USD value. + remaining := uint64(0) + netUsage, smallTxNotional, flowCancelNotional, err := sumValue(ce.transfers, startTime) - if err != nil || value >= ce.dailyLimit { - // In case of error, set value to 0 rather than returning an error to the caller. An error - // here means sumValue has encountered an overflow and this should never happen. Even if it did - // we don't want to stop execution here. - value = 0 + if err != nil { + gov.logger.Error("publishStatus: failed to compute sum of transfers for chain entry", zap.String("chain", chainId.String()), zap.Error(err)) } else { - value = ce.dailyLimit - value + remaining = gov.availableNotionalValue(chainId, netUsage) } enqueuedVaas := make([]*gossipv1.ChainGovernorStatus_EnqueuedVAA, 0) @@ -589,9 +660,12 @@ func (gov *ChainGovernor) publishStatus(hb *gossipv1.Heartbeat, sendC chan<- []b } chains = append(chains, &gossipv1.ChainGovernorStatus_Chain{ - ChainId: uint32(ce.emitterChainId), - RemainingAvailableNotional: value, - Emitters: []*gossipv1.ChainGovernorStatus_Emitter{&emitter}, + ChainId: uint32(ce.emitterChainId), + RemainingAvailableNotional: remaining, + Emitters: []*gossipv1.ChainGovernorStatus_Emitter{&emitter}, + SmallTxNetNotionalValue: netUsage, + SmallTxOutgoingNotionalValue: smallTxNotional, + FlowCancelNotionalValue: flowCancelNotional, }) } diff --git a/node/pkg/governor/governor_monitoring_test.go b/node/pkg/governor/governor_monitoring_test.go index aac6449556..5683e17429 100644 --- a/node/pkg/governor/governor_monitoring_test.go +++ b/node/pkg/governor/governor_monitoring_test.go @@ -11,7 +11,7 @@ import ( func TestIsVAAEnqueuedNilMessageID(t *testing.T) { logger, _ := zap.NewProduction() - gov := NewChainGovernor(logger, nil, common.GoTest) + gov := NewChainGovernor(logger, nil, common.GoTest, true) enqueued, err := gov.IsVAAEnqueued(nil) require.EqualError(t, err, "no message ID specified") assert.Equal(t, false, enqueued) diff --git a/node/pkg/governor/governor_prices.go b/node/pkg/governor/governor_prices.go index 510e7a5f00..f3ebe8fded 100644 --- a/node/pkg/governor/governor_prices.go +++ b/node/pkg/governor/governor_prices.go @@ -309,7 +309,7 @@ func CheckQuery(logger *zap.Logger) error { logger.Info("Instantiating governor.") ctx := context.Background() var db db.MockGovernorDB - gov := NewChainGovernor(logger, &db, common.MainNet) + gov := NewChainGovernor(logger, &db, common.MainNet, true) if err := gov.initConfig(); err != nil { return err diff --git a/node/pkg/governor/governor_test.go b/node/pkg/governor/governor_test.go index 3faf3799ba..388af53d37 100644 --- a/node/pkg/governor/governor_test.go +++ b/node/pkg/governor/governor_test.go @@ -42,6 +42,7 @@ func (gov *ChainGovernor) initConfigForTest( decimalsFloat := big.NewFloat(math.Pow(10.0, float64(tokenDecimals))) decimals, _ := decimalsFloat.Int(nil) key := tokenKey{chain: tokenChainID, addr: tokenAddr} + gov.tokens[key] = &tokenEntry{price: price, decimals: decimals, symbol: tokenSymbol, token: key} } @@ -49,6 +50,8 @@ func (gov *ChainGovernor) setDayLengthInMinutes(min int) { gov.dayLengthInMinutes = min } +// Utility method: adds a new `chainEntry` to `gov` +// Supplying a bigTransactionSize of 0 will skip checks for big transactions. func (gov *ChainGovernor) setChainForTesting( emitterChainId vaa.ChainID, emitterAddrStr string, @@ -75,11 +78,13 @@ func (gov *ChainGovernor) setChainForTesting( return nil } +// Utility method: adds a new `tokenEntry` to `gov` func (gov *ChainGovernor) setTokenForTesting( tokenChainID vaa.ChainID, tokenAddrStr string, symbol string, price float64, + flowCancels bool, ) error { gov.mutex.Lock() defer gov.mutex.Unlock() @@ -94,7 +99,7 @@ func (gov *ChainGovernor) setTokenForTesting( decimals, _ := decimalsFloat.Int(nil) key := tokenKey{chain: tokenChainID, addr: tokenAddr} - te := &tokenEntry{cfgPrice: bigPrice, price: bigPrice, decimals: decimals, symbol: symbol, coinGeckoId: symbol, token: key} + te := &tokenEntry{cfgPrice: bigPrice, price: bigPrice, decimals: decimals, symbol: symbol, coinGeckoId: symbol, token: key, flowCancels: flowCancels} gov.tokens[key] = te cge, cgExists := gov.tokensByCoinGeckoId[te.coinGeckoId] if !cgExists { @@ -130,6 +135,28 @@ func (gov *ChainGovernor) getStatsForAllChains() (numTrans int, valueTrans uint6 return } +// getStatsForAllChains but includes flow cancelling in its statistics. This results in different values for valueTrans +// TODO these functions can probably be merged together and a boolean can be passed if we want flow cancel results. +func (gov *ChainGovernor) getStatsForAllChainsCancelFlow() (numTrans int, valueTrans int64, numPending int, valuePending uint64) { + gov.mutex.Lock() + defer gov.mutex.Unlock() + + for _, ce := range gov.chains { + numTrans += len(ce.transfers) + for _, te := range ce.transfers { + valueTrans += te.value // Needs to be .value and not .dbTransfer.value because we want the SIGNED version of this. + } + + numPending += len(ce.pending) + for _, pe := range ce.pending { + value, _ := computeValue(pe.amount, pe.token) + valuePending += value + } + } + + return +} + func checkTargetOnReleasedIsSet(t *testing.T, toBePublished []*common.MessagePublication, targetChain vaa.ChainID, targetAddressStr string) { require.NotEqual(t, 0, len(toBePublished)) toAddr, err := vaa.StringToAddress(targetAddressStr) @@ -158,6 +185,21 @@ func TestTrimEmptyTransfers(t *testing.T) { assert.Equal(t, 0, len(updatedTransfers)) } +// Make sure that the code doesn't panic if called with a nil chainEntry +func TestTrimAndSumValueForChainReturnsErrorForNilChainEntry(t *testing.T) { + ctx := context.Background() + gov, err := newChainGovernorForTest(ctx) + require.NoError(t, err) + assert.NotNil(t, gov) + + now, err := time.Parse("Jan 2, 2006 at 3:04pm (MST)", "Jun 1, 2022 at 12:00pm (CST)") + require.NoError(t, err) + + sum, err := gov.TrimAndSumValueForChain(nil, now) + require.Error(t, err) + assert.Equal(t, uint64(0), sum) +} + func TestSumAllFromToday(t *testing.T) { ctx := context.Background() gov, err := newChainGovernorForTest(ctx) @@ -180,6 +222,7 @@ func TestSumAllFromToday(t *testing.T) { assert.Equal(t, 1, len(updatedTransfers)) } +// Checks sum calculation for the flow cancel mechanism func TestSumWithFlowCancelling(t *testing.T) { ctx := context.Background() gov, err := newChainGovernorForTest(ctx) @@ -188,9 +231,9 @@ func TestSumWithFlowCancelling(t *testing.T) { // Choose a hard-coded value from the Flow Cancel Token List // NOTE: Replace this Chain:Address pair if the Flow Cancel Token List is modified - var originChain vaa.ChainID = 2 + var originChain vaa.ChainID = 1 var originAddress vaa.Address - originAddress, err = vaa.StringToAddress("000000000000000000000000bcca60bb61934080951369a648fb03df4f96263c") + originAddress, err = vaa.StringToAddress("c6fa7af3bedbad3a3d65f36aabc97431b1bbe4c2d2f6e0e47ca60203452f5d61") require.NoError(t, err) // Ensure asset is registered in the governor and can flow cancel @@ -255,6 +298,51 @@ func TestSumWithFlowCancelling(t *testing.T) { assert.Equal(t, difference, usage) } +func TestFlowCancelFeatureFlag(t *testing.T) { + + ctx := context.Background() + var db db.MockGovernorDB + gov := NewChainGovernor(zap.NewNop(), &db, common.GoTest, true) + + // Trigger the evaluation of the flow cancelling config + err := gov.Run(ctx) + require.NoError(t, err) + assert.NotNil(t, gov) + + // Test private bool + assert.True(t, gov.flowCancelEnabled) + // Test public getter + assert.True(t, gov.IsFlowCancelEnabled()) + numFlowCancelling := 0 + for _, tokenEntry := range gov.tokens { + if tokenEntry.flowCancels == true { + numFlowCancelling++ + } + } + assert.NotZero(t, numFlowCancelling) + + // Disable flow cancelling + gov = NewChainGovernor(zap.NewNop(), &db, common.GoTest, false) + + // Trigger the evaluation of the flow cancelling config + err = gov.Run(ctx) + require.NoError(t, err) + assert.NotNil(t, gov) + + // Test private bool + assert.False(t, gov.flowCancelEnabled) + // Test public getter + assert.False(t, gov.IsFlowCancelEnabled()) + numFlowCancelling = 0 + for _, tokenEntry := range gov.tokens { + if tokenEntry.flowCancels == true { + numFlowCancelling++ + } + } + assert.Zero(t, numFlowCancelling) + +} + // Flow cancelling transfers are subtracted from the overall sum of all transfers from a given // emitter chain. Since we are working with uint64 values, ensure that there is no underflow. // When the sum of all flow cancelling transfers is greater than emitted transfers for a chain, @@ -269,9 +357,9 @@ func TestFlowCancelCannotUnderflow(t *testing.T) { // Set-up asset to be used in the test // NOTE: Replace this Chain:Address pair if the Flow Cancel Token List is modified - var originChain vaa.ChainID = 2 + var originChain vaa.ChainID = 1 var originAddress vaa.Address - originAddress, err = vaa.StringToAddress("000000000000000000000000bcca60bb61934080951369a648fb03df4f96263c") + originAddress, err = vaa.StringToAddress("c6fa7af3bedbad3a3d65f36aabc97431b1bbe4c2d2f6e0e47ca60203452f5d61") require.NoError(t, err) // Ensure asset is registered in the governor and can flow cancel @@ -332,10 +420,12 @@ func TestFlowCancelCannotUnderflow(t *testing.T) { assert.Zero(t, usage) } -// Simulate a case where the total sum of transfers for a chain in a 24 hour period exceeds -// the configured Governor limit. This should never happen, so we make sure that an error -// is returned if the system is in this state -func TestInvariantGovernorLimit(t *testing.T) { +// We never expect this to occur when flow-cancelling is disabled. If flow-cancelling is enabled, there +// are some cases where the outgoing value exceeds the daily limit. Example: a large, incoming transfer +// of a flow-cancelling asset increases the Governor capacity beyond the daily limit. After 24h, that +// transfer is trimmed. This reduces the daily limit back to normal, but by this time more outgoing +// transfers have been emitted, causing the sum to exceed the daily limit. +func TestChainEntrySumExceedsDailyLimit(t *testing.T) { ctx := context.Background() gov, err := newChainGovernorForTest(ctx) require.NoError(t, err) @@ -378,10 +468,69 @@ func TestInvariantGovernorLimit(t *testing.T) { assert.Equal(t, expectedNumTransfers, len(transfers)) assert.NotZero(t, sum) - // Make sure we trigger the Invariant usage, err := gov.TrimAndSumValueForChain(emitter, now.Add(-time.Hour*24)) - require.ErrorContains(t, err, "invariant violation: calculated sum") - assert.Zero(t, usage) + require.NoError(t, err) + assert.Equal(t, emitterTransferValue*uint64(expectedNumTransfers), usage) +} + +func TestTrimAndSumValueOverflowErrors(t *testing.T) { + ctx := context.Background() + gov, err := newChainGovernorForTest(ctx) + require.NoError(t, err) + assert.NotNil(t, gov) + + now, err := time.Parse("2006-Jan-02", "2024-Feb-19") + require.NoError(t, err) + + var transfers_from_emitter []transfer + transferTime, err := time.Parse("2006-Jan-02", "2024-Feb-19") + require.NoError(t, err) + + emitterChainId := vaa.ChainIDSolana + + transfer, err := newTransferFromDbTransfer(&db.Transfer{Value: math.MaxInt64, Timestamp: transferTime}) + require.NoError(t, err) + transfer2, err := newTransferFromDbTransfer(&db.Transfer{Value: 1, Timestamp: transferTime}) + require.NoError(t, err) + transfers_from_emitter = append(transfers_from_emitter, transfer, transfer2) + + // Populate chainEntry and ChainGovernor + emitter := &chainEntry{ + transfers: transfers_from_emitter, + emitterChainId: vaa.ChainID(emitterChainId), + dailyLimit: 10000, + } + gov.chains[emitter.emitterChainId] = emitter + + sum, _, err := gov.TrimAndSumValue(emitter.transfers, now.Add(-time.Hour*24)) + require.ErrorContains(t, err, "integer overflow") + assert.Zero(t, sum) + usage, err := gov.TrimAndSumValueForChain(emitter, now.Add(-time.Hour*24)) + require.ErrorContains(t, err, "integer overflow") + assert.Equal(t, uint64(10000), usage) + + // overwrite emitter (discard transfer added above) + emitter = &chainEntry{ + emitterChainId: vaa.ChainID(emitterChainId), + dailyLimit: 10000, + } + gov.chains[emitter.emitterChainId] = emitter + + // Now test underflow + transfer3 := &db.Transfer{Value: math.MaxInt64, Timestamp: transferTime, TargetChain: vaa.ChainIDSolana} + + ce := gov.chains[emitter.emitterChainId] + err = ce.addFlowCancelTransferFromDbTransfer(transfer3) + require.NoError(t, err) + err = ce.addFlowCancelTransferFromDbTransfer(transfer3) + require.NoError(t, err) + + sum, _, err = gov.TrimAndSumValue(emitter.transfers, now.Add(-time.Hour*24)) + require.ErrorContains(t, err, "integer underflow") + assert.Zero(t, sum) + usage, err = gov.TrimAndSumValueForChain(emitter, now.Add(-time.Hour*24)) + require.ErrorContains(t, err, "integer underflow") + assert.Equal(t, uint64(10000), usage) } func TestTrimOneOfTwoTransfers(t *testing.T) { @@ -517,21 +666,21 @@ func newChainGovernorForTestWithLogger(ctx context.Context, logger *zap.Logger) } var db db.MockGovernorDB - gov := NewChainGovernor(logger, &db, common.GoTest) + gov := NewChainGovernor(logger, &db, common.GoTest, true) err := gov.Run(ctx) if err != nil { - return gov, nil + return gov, err } emitterAddr, err := vaa.StringToAddress("0x0290fb167208af455bb137780163b7b7a9a10c16") if err != nil { - return gov, nil + return gov, err } tokenAddr, err := vaa.StringToAddress("0xDDb64fE46a91D46ee29420539FC25FD07c5FEa3E") if err != nil { - return gov, nil + return gov, err } gov.initConfigForTest( @@ -759,6 +908,460 @@ func TestVaaForUninterestingToken(t *testing.T) { assert.Equal(t, 0, len(gov.msgsSeen)) } +// Test the flow cancel mechanism at the resolution of the ProcessMsgForTime (VAA parsing) +// This test simulates a transaction of a flow-cancelling asset from one chain to another and back. +// After this operation, we verify that the net flow across these chains is zero but that the +// transfers have indeed been processed. +// Finally a regular (non flow-cancelling) transfer is added just to ensure we aren't testing some empty/nil/0 case. +// The flow cancelling asset has an origin chain that is different from the emitter chain to demonstrate +// that these values don't have to match. +func TestFlowCancelProcessMsgForTimeFullCancel(t *testing.T) { + + ctx := context.Background() + gov, err := newChainGovernorForTest(ctx) + + require.NoError(t, err) + assert.NotNil(t, gov) + + // Set-up time + gov.setDayLengthInMinutes(24 * 60) + transferTime := time.Unix(int64(1654543099), 0) + + // Solana USDC used as the flow cancelling asset. This ensures that the flow cancel mechanism works + // when the Origin chain of the asset does not match the emitter chain + // NOTE: Replace this Chain:Address pair if the Flow Cancel Token List is modified + var flowCancelTokenOriginAddress vaa.Address + flowCancelTokenOriginAddress, err = vaa.StringToAddress("c6fa7af3bedbad3a3d65f36aabc97431b1bbe4c2d2f6e0e47ca60203452f5d61") + require.NoError(t, err) + + var notFlowCancelTokenOriginAddress vaa.Address + notFlowCancelTokenOriginAddress, err = vaa.StringToAddress("77777af3bedbad3a3d65f36aabc97431b1bbe4c2d2f6e0e47ca60203452f7777") + require.NoError(t, err) + + // Data for Ethereum + tokenBridgeAddrStrEthereum := "0x0290fb167208af455bb137780163b7b7a9a10c16" //nolint:gosec + tokenBridgeAddrEthereum, err := vaa.StringToAddress(tokenBridgeAddrStrEthereum) + require.NoError(t, err) + recipientEthereum := "0x707f9118e33a9b8998bea41dd0d46f38bb963fc8" //nolint:gosec + + // Data for Sui + tokenBridgeAddrStrSui := "0xc57508ee0d4595e5a8728974a4a93a787d38f339757230d441e895422c07aba9" //nolint:gosec + tokenBridgeAddrSui, err := vaa.StringToAddress(tokenBridgeAddrStrSui) + require.NoError(t, err) + recipientSui := "0x84a5f374d29fc77e370014dce4fd6a55b58ad608de8074b0be5571701724da31" + + // Data for Solana. Only used to represent the flow cancel asset. + // "wormDTUJ6AWPNvk59vGQbDvGJmqbDTdgWgAqcLBCgUb" + tokenBridgeAddrStrSolana := "0x0e0a589e6488147a94dcfa592b90fdd41152bb2ca77bf6016758a6f4df9d21b4" //nolint:gosec + + // Add chain entries to `gov` + err = gov.setChainForTesting(vaa.ChainIDEthereum, tokenBridgeAddrStrEthereum, 10000, 0) + require.NoError(t, err) + err = gov.setChainForTesting(vaa.ChainIDSui, tokenBridgeAddrStrSui, 10000, 0) + require.NoError(t, err) + err = gov.setChainForTesting(vaa.ChainIDSolana, tokenBridgeAddrStrSolana, 10000, 0) + require.NoError(t, err) + + // Add flow cancel asset and non-flow cancelable asset to the token entry for `gov` + err = gov.setTokenForTesting(vaa.ChainIDSolana, flowCancelTokenOriginAddress.String(), "USDC", 1.0, true) + require.NoError(t, err) + assert.NotNil(t, gov.tokens[tokenKey{chain: vaa.ChainIDSolana, addr: flowCancelTokenOriginAddress}]) + err = gov.setTokenForTesting(vaa.ChainIDEthereum, notFlowCancelTokenOriginAddress.String(), "NOTCANCELABLE", 1.0, false) + require.NoError(t, err) + + // Transfer from Ethereum to Sui via the token bridge + msg1 := common.MessagePublication{ + TxHash: hashFromString("0x06f541f5ecfc43407c31587aa6ac3a689e8960f36dc23c332db5510dfc6a4063"), + Timestamp: transferTime, + Nonce: uint32(1), + Sequence: uint64(1), + EmitterChain: vaa.ChainIDEthereum, + EmitterAddress: tokenBridgeAddrEthereum, + ConsistencyLevel: uint8(32), + Payload: buildMockTransferPayloadBytes(1, + vaa.ChainIDSolana, // The origin asset for the token being transferred + flowCancelTokenOriginAddress.String(), + vaa.ChainIDSui, // destination chain of the transfer + recipientSui, + 5000, + ), + } + + // Transfer from Sui to Ethereum via the token bridge + msg2 := common.MessagePublication{ + TxHash: hashFromString("0xabc123f5ecfc43407c31587aa6ac3a689e8960f36dc23c332db5510dfc6a4064"), + Timestamp: transferTime, + Nonce: uint32(2), + Sequence: uint64(2), + EmitterChain: vaa.ChainIDSui, + EmitterAddress: tokenBridgeAddrSui, + ConsistencyLevel: uint8(0), // Sui has a consistency level of 0 (instant) + Payload: buildMockTransferPayloadBytes(1, + vaa.ChainIDSolana, // Asset is owned by Solana chain. That's all we care about here. + flowCancelTokenOriginAddress.String(), + vaa.ChainIDEthereum, // destination chain + recipientEthereum, + 1000, + ), + } + + // msg and asset that are NOT flow cancelable + msg3 := common.MessagePublication{ + TxHash: hashFromString("0x888888f5ecfc43407c31587aa6ac3a689e8960f36dc23c332db5510dfc6a8888"), + Timestamp: time.Unix(int64(transferTime.Unix()+1), 0), + Nonce: uint32(3), + Sequence: uint64(3), + EmitterChain: vaa.ChainIDEthereum, + EmitterAddress: tokenBridgeAddrEthereum, + ConsistencyLevel: uint8(0), // Sui has a consistency level of 0 (instant) + Payload: buildMockTransferPayloadBytes(1, + vaa.ChainIDEthereum, // Asset is owned by Ethereum chain. That's all we care about here. + notFlowCancelTokenOriginAddress.String(), + vaa.ChainIDSui, + recipientSui, + 1500, + ), + } + + // Stage 0: No transfers sent + chainEntryEthereum, exists := gov.chains[vaa.ChainIDEthereum] + assert.True(t, exists) + assert.NotNil(t, chainEntryEthereum) + chainEntrySui, exists := gov.chains[vaa.ChainIDSui] + assert.True(t, exists) + assert.NotNil(t, chainEntrySui) + sumEth, ethTransfers, err := gov.TrimAndSumValue(chainEntryEthereum.transfers, time.Unix(int64(transferTime.Unix()-1000), 0)) + assert.Zero(t, len(ethTransfers)) + assert.Zero(t, sumEth) + require.NoError(t, err) + sumSui, suiTransfers, err := gov.TrimAndSumValue(chainEntrySui.transfers, time.Unix(int64(1654543099), 0)) + assert.Zero(t, len(suiTransfers)) + assert.Zero(t, sumSui) + require.NoError(t, err) + + // Perform a FIRST transfer (Ethereum --> Sui) + result, err := gov.ProcessMsgForTime(&msg1, time.Now()) + assert.True(t, result) + require.NoError(t, err) + + numTrans, valueTrans, numPending, valuePending := gov.getStatsForAllChainsCancelFlow() + assert.Equal(t, 2, numTrans) // One for the positive and one for the negative + assert.Equal(t, int64(0), valueTrans) // Zero! Cancel flow token! + assert.Equal(t, 0, numPending) + assert.Equal(t, uint64(0), valuePending) + assert.Equal(t, 1, len(gov.msgsSeen)) + + // Check the state of the governor + chainEntryEthereum = gov.chains[vaa.ChainIDEthereum] + chainEntrySui = gov.chains[vaa.ChainIDSui] + assert.Equal(t, int(1), len(chainEntryEthereum.transfers)) + assert.Equal(t, int(1), len(chainEntrySui.transfers)) + sumEth, ethTransfers, err = gov.TrimAndSumValue(chainEntryEthereum.transfers, time.Unix(int64(transferTime.Unix()-1000), 0)) + assert.Equal(t, int64(5000), sumEth) // Outbound on Ethereum + assert.Equal(t, int(1), len(ethTransfers)) + require.NoError(t, err) + + // Outbound check: + // - ensure that the sum of the transfers is equal to the value of the inverse transfer + // - ensure the actual governor usage is Zero (any negative value is converted to zero by TrimAndSumValueForChain) + sumSui, suiTransfers, err = gov.TrimAndSumValue(chainEntrySui.transfers, time.Unix(int64(transferTime.Unix()-1000), 0)) + assert.Equal(t, 1, len(suiTransfers)) // A single NEGATIVE transfer + assert.Equal(t, int64(-5000), sumSui) // Ensure the inverse (negative) transfer is in the Sui chain Entry + require.NoError(t, err) + suiGovernorUsage, err := gov.TrimAndSumValueForChain(chainEntrySui, time.Unix(int64(transferTime.Unix()-1000), 0)) + assert.Zero(t, suiGovernorUsage) // Actual governor usage must not be negative. + require.NoError(t, err) + + // Perform a SECOND transfer (Sui --> Ethereum) + result, err = gov.ProcessMsgForTime(&msg2, time.Now()) + assert.True(t, result) + require.NoError(t, err) + + // Stage 2: Transfer sent from Sui to Ethereum. + // This transfer should result in some flow cancelling on Ethereum so we assert that its sum has decreased + // compared to the previous step. + // Check the governor stats both with respect to flow cancelling and to the actual value that has moved. + numTrans, valueTrans, numPending, valuePending = gov.getStatsForAllChainsCancelFlow() + assert.Equal(t, 2, len(gov.msgsSeen)) // Two messages observed + assert.Equal(t, 4, numTrans) // Two messages, but four transfers because inverses are added. + assert.Equal(t, int64(0), valueTrans) // The two transfers and their inverses cancel each other out. + assert.Equal(t, 0, numPending) + assert.Equal(t, uint64(0), valuePending) + // Verify the stats that are non flow-cancelling. + // In practice this is the sum of the absolute value of all the transfers. + // 5000 * 2 + 1000 * 2 = 12000 + _, absValueTrans, _, _ := gov.getStatsForAllChains() + assert.Equal(t, uint64(12000), absValueTrans) + + // Check the state of the governor. + chainEntryEthereum = gov.chains[vaa.ChainIDEthereum] + chainEntrySui = gov.chains[vaa.ChainIDSui] + assert.Equal(t, int(2), len(chainEntryEthereum.transfers)) // One for inbound refund and another for outbound + assert.Equal(t, int(2), len(chainEntrySui.transfers)) // One for inbound refund and another for outbound + sumEth, ethTransfers, err = gov.TrimAndSumValue(chainEntryEthereum.transfers, time.Unix(int64(transferTime.Unix()-1000), 0)) + assert.Equal(t, int64(4000), sumEth) // Out was 5000 then the cancellation makes this 4000. + assert.Equal(t, int(2), len(ethTransfers)) // Two transfers: outbound 5000 and inverse -1000 transfer + require.NoError(t, err) + sumSui, suiTransfers, err = gov.TrimAndSumValue(chainEntrySui.transfers, time.Unix(int64(transferTime.Unix()-1000), 0)) + assert.Equal(t, int(2), len(suiTransfers)) + assert.Equal(t, int64(-4000), sumSui) // -5000 from Ethereum inverse added to 1000 from sending to Ethereum + require.NoError(t, err) + suiGovernorUsage, err = gov.TrimAndSumValueForChain(chainEntrySui, time.Unix(int64(transferTime.Unix()-1000), 0)) + assert.Zero(t, suiGovernorUsage) // Actual governor usage must not be negative. + require.NoError(t, err) + + // Message for a non-flow cancellable token (Ethereum --> Sui) + result, err = gov.ProcessMsgForTime(&msg3, time.Now()) + assert.True(t, result) + require.NoError(t, err) + + // Stage 3: Asset withoout flow cancelling has also been sent + numTrans, valueTrans, numPending, valuePending = gov.getStatsForAllChainsCancelFlow() + assert.Equal(t, 3, len(gov.msgsSeen)) + assert.Equal(t, 5, numTrans) // Only a single new transfer for the positive change + assert.Equal(t, int64(1500), valueTrans) // Consume 1500 capacity on Ethereum + assert.Equal(t, 0, numPending) + assert.Equal(t, uint64(0), valuePending) + // Verify the stats that are non flow-cancelling. + // In practice this is the sum of the absolute value of all the transfers. + // 5000 * 2 + 1000 * 2 + 1500 = 13500 + _, absValueTrans, _, _ = gov.getStatsForAllChains() + assert.Equal(t, uint64(13500), absValueTrans) // The net actual flow of assets is 4000 (after cancelling) plus 1500 + + // Check the state of the governor + chainEntryEthereum = gov.chains[vaa.ChainIDEthereum] + chainEntrySui = gov.chains[vaa.ChainIDSui] + assert.Equal(t, int(3), len(chainEntryEthereum.transfers)) // One for inbound refund and another for outbound + assert.Equal(t, int(2), len(chainEntrySui.transfers)) // One for inbound refund and another for outbound + sumEth, ethTransfers, err = gov.TrimAndSumValue(chainEntryEthereum.transfers, time.Unix(int64(transferTime.Unix()-1000), 0)) + assert.Equal(t, int64(5500), sumEth) // The value of the non-cancelled transfer + assert.Equal(t, int(3), len(ethTransfers)) // Two transfers cancel each other out + require.NoError(t, err) + sumSui, suiTransfers, err = gov.TrimAndSumValue(chainEntrySui.transfers, time.Unix(int64(transferTime.Unix()-1000), 0)) + assert.Equal(t, int(2), len(suiTransfers)) + assert.Equal(t, int64(-4000), sumSui) // Sui's limit should not change + require.NoError(t, err) + suiGovernorUsage, err = gov.TrimAndSumValueForChain(chainEntrySui, time.Unix(int64(transferTime.Unix()-1000), 0)) + assert.Zero(t, suiGovernorUsage) // Actual governor usage must not be negative. + require.NoError(t, err) +} + +// Test the flow cancel mechanism at the resolution of the ProcessMsgForTime (VAA parsing) +// This test checks a flow cancel scenario where the amounts don't completely cancel each other +// out. +// It also highlights the differences between the following values: +// - Governor stats for chains: the sum of the absolute values of all transfers +// - Governor stats for chains, flow cancelling: the sum of transfer values, including 'inverse' transfers +// - The sum of transfers in a chain entry: The sum of outbound transfers and inbound flow cancelling transfers for a chain +// - The Governor usage for a chain: Same as above but saturates to 0 as a lower bound +func TestFlowCancelProcessMsgForTimePartialCancel(t *testing.T) { + + ctx := context.Background() + gov, err := newChainGovernorForTest(ctx) + + require.NoError(t, err) + assert.NotNil(t, gov) + + // Set-up time + gov.setDayLengthInMinutes(24 * 60) + transferTime := time.Unix(int64(1654543099), 0) + + // Solana USDC used as the flow cancelling asset. This ensures that the flow cancel mechanism works + // when the Origin chain of the asset does not match the emitter chain + // NOTE: Replace this Chain:Address pair if the Flow Cancel Token List is modified + var flowCancelTokenOriginAddress vaa.Address + flowCancelTokenOriginAddress, err = vaa.StringToAddress("c6fa7af3bedbad3a3d65f36aabc97431b1bbe4c2d2f6e0e47ca60203452f5d61") + require.NoError(t, err) + + var notFlowCancelTokenOriginAddress vaa.Address + notFlowCancelTokenOriginAddress, err = vaa.StringToAddress("77777af3bedbad3a3d65f36aabc97431b1bbe4c2d2f6e0e47ca60203452f7777") + require.NoError(t, err) + + // Data for Ethereum + tokenBridgeAddrStrEthereum := "0x0290fb167208af455bb137780163b7b7a9a10c16" //nolint:gosec + tokenBridgeAddrEthereum, err := vaa.StringToAddress(tokenBridgeAddrStrEthereum) + require.NoError(t, err) + recipientEthereum := "0x707f9118e33a9b8998bea41dd0d46f38bb963fc8" //nolint:gosec + + // Data for Sui + tokenBridgeAddrStrSui := "0xc57508ee0d4595e5a8728974a4a93a787d38f339757230d441e895422c07aba9" //nolint:gosec + tokenBridgeAddrSui, err := vaa.StringToAddress(tokenBridgeAddrStrSui) + require.NoError(t, err) + recipientSui := "0x84a5f374d29fc77e370014dce4fd6a55b58ad608de8074b0be5571701724da31" //nolint:gosec + + // Add chain entries to `gov` + err = gov.setChainForTesting(vaa.ChainIDEthereum, tokenBridgeAddrStrEthereum, 10000, 0) + require.NoError(t, err) + err = gov.setChainForTesting(vaa.ChainIDSui, tokenBridgeAddrStrSui, 10000, 0) + require.NoError(t, err) + + // Add flow cancel asset and non-flow cancelable asset to the token entry for `gov` + err = gov.setTokenForTesting(vaa.ChainIDEthereum, flowCancelTokenOriginAddress.String(), "USDC", 1.0, true) + require.NoError(t, err) + assert.NotNil(t, gov.tokens[tokenKey{chain: vaa.ChainIDEthereum, addr: flowCancelTokenOriginAddress}]) + err = gov.setTokenForTesting(vaa.ChainIDEthereum, notFlowCancelTokenOriginAddress.String(), "NOTCANCELABLE", 2.5, false) + require.NoError(t, err) + + // Transfer from Ethereum to Sui via the token bridge + msg1 := common.MessagePublication{ + TxHash: hashFromString("0x06f541f5ecfc43407c31587aa6ac3a689e8960f36dc23c332db5510dfc6a4063"), + Timestamp: transferTime, + Nonce: uint32(1), + Sequence: uint64(1), + EmitterChain: vaa.ChainIDEthereum, + EmitterAddress: tokenBridgeAddrEthereum, + ConsistencyLevel: uint8(32), + Payload: buildMockTransferPayloadBytes(1, + vaa.ChainIDEthereum, // The origin asset for the token being transferred + flowCancelTokenOriginAddress.String(), + vaa.ChainIDSui, // destination chain of the transfer + recipientSui, + 5000, + ), + } + + // Transfer from Sui to Ethereum via the token bridge + msg2 := common.MessagePublication{ + TxHash: hashFromString("0xabc123f5ecfc43407c31587aa6ac3a689e8960f36dc23c332db5510dfc6a4064"), + Timestamp: transferTime, + Nonce: uint32(2), + Sequence: uint64(2), + EmitterChain: vaa.ChainIDSui, + EmitterAddress: tokenBridgeAddrSui, + ConsistencyLevel: uint8(0), // Sui has a consistency level of 0 (instant) + Payload: buildMockTransferPayloadBytes(1, + vaa.ChainIDEthereum, // Asset is owned by Ethereum chain. That's all we care about here. + flowCancelTokenOriginAddress.String(), + vaa.ChainIDEthereum, // destination chain + recipientEthereum, + 5000, + ), + } + + // msg and asset that are NOT flow cancelable + msg3 := common.MessagePublication{ + TxHash: hashFromString("0x888888f5ecfc43407c31587aa6ac3a689e8960f36dc23c332db5510dfc6a8888"), + Timestamp: time.Unix(int64(transferTime.Unix()+1), 0), + Nonce: uint32(3), + Sequence: uint64(3), + EmitterChain: vaa.ChainIDEthereum, + EmitterAddress: tokenBridgeAddrEthereum, + ConsistencyLevel: uint8(0), // Sui has a consistency level of 0 (instant) + Payload: buildMockTransferPayloadBytes(1, + vaa.ChainIDEthereum, // Asset is owned by Ethereum chain. That's all we care about here. + notFlowCancelTokenOriginAddress.String(), + vaa.ChainIDSui, + recipientSui, + 1000, // Note that this asset is worth 2.5 USD, so the notional value is 2500 + ), + } + + // Stage 0: No transfers sent + chainEntryEthereum, exists := gov.chains[vaa.ChainIDEthereum] + assert.True(t, exists) + assert.NotNil(t, chainEntryEthereum) + chainEntrySui, exists := gov.chains[vaa.ChainIDSui] + assert.True(t, exists) + assert.NotNil(t, chainEntrySui) + sumEth, ethTransfers, err := gov.TrimAndSumValue(chainEntryEthereum.transfers, time.Unix(int64(transferTime.Unix()-1000), 0)) + assert.Zero(t, len(ethTransfers)) + assert.Zero(t, sumEth) + require.NoError(t, err) + sumSui, suiTransfers, err := gov.TrimAndSumValue(chainEntrySui.transfers, time.Unix(int64(1654543099), 0)) + assert.Zero(t, len(suiTransfers)) + assert.Zero(t, sumSui) + require.NoError(t, err) + + result, err := gov.ProcessMsgForTime(&msg1, time.Now()) + assert.True(t, result) + require.NoError(t, err) + + numTrans, valueTrans, numPending, valuePending := gov.getStatsForAllChainsCancelFlow() + assert.Equal(t, 2, numTrans) // One for the positive and one for the negative + assert.Equal(t, int64(0), valueTrans) // Zero! Cancel flow token! + assert.Equal(t, 0, numPending) + assert.Equal(t, uint64(0), valuePending) + assert.Equal(t, 1, len(gov.msgsSeen)) + + // Check the state of the governor + chainEntryEthereum = gov.chains[vaa.ChainIDEthereum] + chainEntrySui = gov.chains[vaa.ChainIDSui] + assert.Equal(t, int(1), len(chainEntryEthereum.transfers)) + assert.Equal(t, int(1), len(chainEntrySui.transfers)) + sumEth, ethTransfers, err = gov.TrimAndSumValue(chainEntryEthereum.transfers, time.Unix(int64(transferTime.Unix()-1000), 0)) + assert.Equal(t, int64(5000), sumEth) // Outbound on Ethereum + assert.Equal(t, int(1), len(ethTransfers)) + require.NoError(t, err) + + // Outbound check: + // - ensure that the sum of the transfers is equal to the value of the inverse transfer + // - ensure the actual governor usage is Zero (any negative value is converted to zero by TrimAndSumValueForChain) + sumSui, suiTransfers, err = gov.TrimAndSumValue(chainEntrySui.transfers, time.Unix(int64(transferTime.Unix()-1000), 0)) + assert.Equal(t, 1, len(suiTransfers)) // A single NEGATIVE transfer + assert.Equal(t, int64(-5000), sumSui) // Ensure the inverse (negative) transfer is in the Sui chain Entry + require.NoError(t, err) + suiGovernorUsage, err := gov.TrimAndSumValueForChain(chainEntrySui, time.Unix(int64(transferTime.Unix()-1000), 0)) + assert.Zero(t, suiGovernorUsage) // Actual governor usage must not be negative. + require.NoError(t, err) + + // Perform a SECOND transfer (Sui --> Ethereum) + result, err = gov.ProcessMsgForTime(&msg2, time.Now()) + assert.True(t, result) + require.NoError(t, err) + + // Stage 2: Transfer sent from Sui to Ethereum. + // This transfer should result in flow cancelling on Ethereum so we assert that its sum has decreased + // compared to the previous step. + numTrans, valueTrans, numPending, valuePending = gov.getStatsForAllChainsCancelFlow() + assert.Equal(t, 2, len(gov.msgsSeen)) // Two messages observed + assert.Equal(t, 4, numTrans) // Two messages, but four transfers because inverses are added. + assert.Equal(t, int64(0), valueTrans) // New flow is zero! Cancel flow token! + assert.Equal(t, 0, numPending) + assert.Equal(t, uint64(0), valuePending) + + // Check the state of the governor. Confirm that both chains have two transfers but have cancelled + // each other out in terms of the summed values. + chainEntryEthereum = gov.chains[vaa.ChainIDEthereum] + chainEntrySui = gov.chains[vaa.ChainIDSui] + assert.Equal(t, int(2), len(chainEntryEthereum.transfers)) // One for inbound refund and another for outbound + assert.Equal(t, int(2), len(chainEntrySui.transfers)) // One for inbound refund and another for outbound + sumEth, ethTransfers, err = gov.TrimAndSumValue(chainEntryEthereum.transfers, time.Unix(int64(transferTime.Unix()-1000), 0)) + assert.Equal(t, int64(0), sumEth) // Out was 4000 then the cancellation makes this zero. + assert.Equal(t, int(2), len(ethTransfers)) // Two transfers cancel each other out + require.NoError(t, err) + sumSui, suiTransfers, err = gov.TrimAndSumValue(chainEntrySui.transfers, time.Unix(int64(transferTime.Unix()-1000), 0)) + assert.Equal(t, int(2), len(suiTransfers)) + assert.Equal(t, int64(0), sumSui) + require.NoError(t, err) + + // Message for a non-flow cancellable token (Ethereum --> Sui) + result, err = gov.ProcessMsgForTime(&msg3, time.Now()) + assert.True(t, result) + require.NoError(t, err) + + // Stage 3: Asset withoout flow cancelling has also been sent + numTrans, valueTrans, numPending, valuePending = gov.getStatsForAllChainsCancelFlow() + assert.Equal(t, 3, len(gov.msgsSeen)) + assert.Equal(t, 5, numTrans) // Only a single new transfer for the positive change + assert.Equal(t, int64(2500), valueTrans) // Change in value from the transfer: 1000 tokens worth $2.5 USD + assert.Equal(t, 0, numPending) + assert.Equal(t, uint64(0), valuePending) + + // Check the state of the governor + chainEntryEthereum = gov.chains[vaa.ChainIDEthereum] + chainEntrySui = gov.chains[vaa.ChainIDSui] + assert.Equal(t, int(3), len(chainEntryEthereum.transfers)) // One for inbound refund and another for outbound + assert.Equal(t, int(2), len(chainEntrySui.transfers)) // One for inbound refund and another for outbound + sumEth, ethTransfers, err = gov.TrimAndSumValue(chainEntryEthereum.transfers, time.Unix(int64(transferTime.Unix()-1000), 0)) + assert.Equal(t, int64(2500), sumEth) // The value of the non-cancelled transfer + assert.Equal(t, int(3), len(ethTransfers)) // Two transfers cancel each other out + require.NoError(t, err) + sumSui, suiTransfers, err = gov.TrimAndSumValue(chainEntrySui.transfers, time.Unix(int64(transferTime.Unix()-1000), 0)) + assert.Equal(t, int(2), len(suiTransfers)) + assert.Equal(t, int64(0), sumSui) // Sui's limit is still zero + require.NoError(t, err) +} + func TestTransfersUpToAndOverTheLimit(t *testing.T) { ctx := context.Background() gov, err := newChainGovernorForTest(ctx) @@ -775,7 +1378,7 @@ func TestTransfersUpToAndOverTheLimit(t *testing.T) { gov.setDayLengthInMinutes(24 * 60) err = gov.setChainForTesting(vaa.ChainIDEthereum, tokenBridgeAddrStr, 1000000, 0) require.NoError(t, err) - err = gov.setTokenForTesting(vaa.ChainIDEthereum, tokenAddrStr, "WETH", 1774.62) + err = gov.setTokenForTesting(vaa.ChainIDEthereum, tokenAddrStr, "WETH", 1774.62, false) require.NoError(t, err) payloadBytes1 := buildMockTransferPayloadBytes(1, @@ -889,7 +1492,6 @@ func TestTransfersUpToAndOverTheLimit(t *testing.T) { func TestPendingTransferBeingReleased(t *testing.T) { ctx := context.Background() gov, err := newChainGovernorForTest(ctx) - require.NoError(t, err) assert.NotNil(t, gov) @@ -902,7 +1504,7 @@ func TestPendingTransferBeingReleased(t *testing.T) { gov.setDayLengthInMinutes(24 * 60) err = gov.setChainForTesting(vaa.ChainIDEthereum, tokenBridgeAddrStr, 1000000, 0) require.NoError(t, err) - err = gov.setTokenForTesting(vaa.ChainIDEthereum, tokenAddrStr, "WETH", 1774.62) + err = gov.setTokenForTesting(vaa.ChainIDEthereum, tokenAddrStr, "WETH", 1774.62, false) require.NoError(t, err) // The first VAA should be accepted. @@ -1034,7 +1636,9 @@ func TestPendingTransferBeingReleased(t *testing.T) { assert.Equal(t, 4, len(gov.msgsSeen)) // If we check pending before noon, nothing should happen. - now, _ = time.Parse("Jan 2, 2006 at 3:04pm (MST)", "Jun 2, 2022 at 9:00am (CST)") + now, err = time.Parse("Jan 2, 2006 at 3:04pm (MST)", "Jun 2, 2022 at 9:00am (CST)") + require.NoError(t, err) + assert.NotNil(t, now) toBePublished, err := gov.CheckPendingForTime(now) require.NoError(t, err) assert.Equal(t, 0, len(toBePublished)) @@ -1062,6 +1666,292 @@ func TestPendingTransferBeingReleased(t *testing.T) { assert.Equal(t, 3, len(gov.msgsSeen)) } +func TestPopulateChainIds(t *testing.T) { + ctx := context.Background() + gov, err := newChainGovernorForTest(ctx) + require.NoError(t, err) + assert.NotNil(t, gov) + // Sanity check + assert.NotZero(t, len(gov.chainIds)) + + // Ensure that the chainIds slice match the entries in the chains map + assert.Equal(t, len(gov.chains), len(gov.chainIds)) + lowest := 0 + for _, chainId := range gov.chainIds { + chainEntry, ok := gov.chains[chainId] + assert.NotNil(t, chainEntry) + assert.True(t, ok) + assert.Equal(t, chainEntry.emitterChainId, chainId) + // Check that the chainIds are in ascending order. The point of this slice is that it provides + // deterministic ordering over chainIds. + assert.Greater(t, int(chainId), lowest) + lowest = int(chainId) + } +} + +// Test that, when a small transfer (under the 'big tx limit') of a flow-cancelling asset is queued and +// later released, it causes a reduction in the Governor usage for the destination chain. +func TestPendingTransferFlowCancelsWhenReleased(t *testing.T) { + + ctx := context.Background() + gov, err := newChainGovernorForTest(ctx) + + require.NoError(t, err) + assert.NotNil(t, gov) + + // Set-up time + gov.setDayLengthInMinutes(24 * 60) + transferTime := time.Unix(int64(1654543099), 0) + + // Solana USDC used as the flow cancelling asset. This ensures that the flow cancel mechanism works + // when the Origin chain of the asset does not match the emitter chain + // NOTE: Replace this Chain:Address pair if the Flow Cancel Token List is modified + var flowCancelTokenOriginAddress vaa.Address + flowCancelTokenOriginAddress, err = vaa.StringToAddress("c6fa7af3bedbad3a3d65f36aabc97431b1bbe4c2d2f6e0e47ca60203452f5d61") + require.NoError(t, err) + + require.NoError(t, err) + + // Data for Ethereum + tokenBridgeAddrStrEthereum := "0x0290fb167208af455bb137780163b7b7a9a10c16" //nolint:gosec + tokenBridgeAddrEthereum, err := vaa.StringToAddress(tokenBridgeAddrStrEthereum) + require.NoError(t, err) + recipientEthereum := "0x707f9118e33a9b8998bea41dd0d46f38bb963fc8" //nolint:gosec + + // Data for Sui + tokenBridgeAddrStrSui := "0xc57508ee0d4595e5a8728974a4a93a787d38f339757230d441e895422c07aba9" //nolint:gosec + tokenBridgeAddrSui, err := vaa.StringToAddress(tokenBridgeAddrStrSui) + require.NoError(t, err) + recipientSui := "0x84a5f374d29fc77e370014dce4fd6a55b58ad608de8074b0be5571701724da31" + + // Data for Solana. Only used to represent the flow cancel asset. + // "wormDTUJ6AWPNvk59vGQbDvGJmqbDTdgWgAqcLBCgUb" + tokenBridgeAddrStrSolana := "0x0e0a589e6488147a94dcfa592b90fdd41152bb2ca77bf6016758a6f4df9d21b4" //nolint:gosec + + // Add chain entries to `gov` + dailyLimit := uint64(10000) + err = gov.setChainForTesting(vaa.ChainIDEthereum, tokenBridgeAddrStrEthereum, dailyLimit, 0) + require.NoError(t, err) + err = gov.setChainForTesting(vaa.ChainIDSui, tokenBridgeAddrStrSui, dailyLimit, 0) + require.NoError(t, err) + err = gov.setChainForTesting(vaa.ChainIDSolana, tokenBridgeAddrStrSolana, dailyLimit, 0) + require.NoError(t, err) + + // Add flow cancel asset and non-flow cancelable asset to the token entry for `gov` + err = gov.setTokenForTesting(vaa.ChainIDSolana, flowCancelTokenOriginAddress.String(), "USDC", 1.0, true) + require.NoError(t, err) + assert.NotNil(t, gov.tokens[tokenKey{chain: vaa.ChainIDSolana, addr: flowCancelTokenOriginAddress}]) + + // First message: consume most of the dailyLimit for the emitter chain + msg1 := common.MessagePublication{ + TxHash: hashFromString("0x888888f5ecfc43407c31587aa6ac3a689e8960f36dc23c332db5510dfc6a8888"), + Timestamp: time.Unix(int64(transferTime.Unix()+1), 0), + Nonce: uint32(1), + Sequence: uint64(1), + EmitterChain: vaa.ChainIDEthereum, + EmitterAddress: tokenBridgeAddrEthereum, + ConsistencyLevel: uint8(32), + Payload: buildMockTransferPayloadBytes(1, + vaa.ChainIDSolana, // The origin asset for the token being transferred + flowCancelTokenOriginAddress.String(), + vaa.ChainIDSui, + recipientSui, + 10000, + ), + } + + // Second message: This transfer gets queued because the limit is exhausted + msg2 := common.MessagePublication{ + TxHash: hashFromString("0x888888f5ecfc43407c31587aa6ac3a689e8960f36dc23c332db5510dfc6a8888"), + Timestamp: time.Unix(int64(transferTime.Unix()+2), 0), + Nonce: uint32(2), + Sequence: uint64(2), + EmitterChain: vaa.ChainIDEthereum, + EmitterAddress: tokenBridgeAddrEthereum, + ConsistencyLevel: uint8(32), + Payload: buildMockTransferPayloadBytes(1, + vaa.ChainIDSolana, + flowCancelTokenOriginAddress.String(), + vaa.ChainIDSui, + recipientSui, + 500, + ), + } + + // Third message: Incoming flow cancelling transfer to the emitter chain for the previous messages. This + // reduces the Governor usage for that chain. + msg3 := common.MessagePublication{ + TxHash: hashFromString("0x888888f5ecfc43407c31587aa6ac3a689e8960f36dc23c332db5510dfc6a8888"), + Timestamp: time.Unix(int64(transferTime.Unix()+3), 0), + Nonce: uint32(3), + Sequence: uint64(3), + EmitterChain: vaa.ChainIDSui, + EmitterAddress: tokenBridgeAddrSui, + ConsistencyLevel: uint8(0), // Sui has a consistency level of 0 (instant) + Payload: buildMockTransferPayloadBytes(1, + vaa.ChainIDSolana, + flowCancelTokenOriginAddress.String(), + vaa.ChainIDEthereum, + recipientEthereum, + 1000, + ), + } + + // Stage 0: No transfers sent + chainEntryEthereum, exists := gov.chains[vaa.ChainIDEthereum] + assert.True(t, exists) + assert.NotNil(t, chainEntryEthereum) + chainEntrySui, exists := gov.chains[vaa.ChainIDSui] + assert.True(t, exists) + assert.NotNil(t, chainEntrySui) + sumEth, ethTransfers, err := gov.TrimAndSumValue(chainEntryEthereum.transfers, time.Unix(int64(transferTime.Unix()-1000), 0)) + assert.Zero(t, len(ethTransfers)) + assert.Zero(t, len(chainEntryEthereum.pending)) + assert.Zero(t, sumEth) + require.NoError(t, err) + sumSui, suiTransfers, err := gov.TrimAndSumValue(chainEntrySui.transfers, time.Unix(int64(1654543099), 0)) + assert.Zero(t, len(suiTransfers)) + assert.Zero(t, sumSui) + require.NoError(t, err) + + // Perform a FIRST transfer (Ethereum --> Sui) + result, err := gov.ProcessMsgForTime(&msg1, time.Now()) + assert.True(t, result) + require.NoError(t, err) + + numTrans, netValueTrans, numPending, valuePending := gov.getStatsForAllChainsCancelFlow() + assert.Equal(t, 2, numTrans) // One for the positive and one for the negative + assert.Equal(t, int64(0), netValueTrans) // Zero, because the asset flow cancels + assert.Equal(t, 0, numPending) + assert.Equal(t, uint64(0), valuePending) + assert.Equal(t, 1, len(gov.msgsSeen)) + + // Check the state of the governor + chainEntryEthereum = gov.chains[vaa.ChainIDEthereum] + chainEntrySui = gov.chains[vaa.ChainIDSui] + assert.Equal(t, int(1), len(chainEntryEthereum.transfers)) + assert.Equal(t, int(0), len(chainEntryEthereum.pending)) // One for inbound refund and another for outbound + assert.Equal(t, int(1), len(chainEntrySui.transfers)) + sumEth, ethTransfers, err = gov.TrimAndSumValue(chainEntryEthereum.transfers, time.Unix(int64(transferTime.Unix()-1000), 0)) + assert.Equal(t, int64(10000), sumEth) // Equal to total dailyLimit + assert.Equal(t, int(1), len(ethTransfers)) + require.NoError(t, err) + + // Outbound check: + // - ensure that the sum of the transfers is equal to the value of the inverse transfer + // - ensure the actual governor usage is Zero (any negative value is converted to zero by TrimAndSumValueForChain) + sumSui, suiTransfers, err = gov.TrimAndSumValue(chainEntrySui.transfers, time.Unix(int64(transferTime.Unix()-1000), 0)) + assert.Equal(t, 1, len(suiTransfers)) // A single NEGATIVE transfer + assert.Equal(t, int64(-10000), sumSui) // Ensure the inverse (negative) transfer is in the Sui chain Entry + require.NoError(t, err) + suiGovernorUsage, err := gov.TrimAndSumValueForChain(chainEntrySui, time.Unix(int64(transferTime.Unix()-1000), 0)) + assert.Zero(t, suiGovernorUsage) // Actual governor usage must not be negative. + require.NoError(t, err) + + // Perform a SECOND transfer (Ethereum --> Sui again) + // When a transfer is queued, ProcessMsgForTime should return false. + result, err = gov.ProcessMsgForTime(&msg2, time.Unix(int64(transferTime.Unix()-1000), 0)) + assert.False(t, result) + require.NoError(t, err) + + // Stage 2: Transfer sent from Ethereum to Sui gets queued + numTrans, netValueTrans, numPending, valuePending = gov.getStatsForAllChainsCancelFlow() + assert.Equal(t, 2, len(gov.msgsSeen)) // Two messages observed + assert.Equal(t, 2, numTrans) // Two transfers (same as previous step) + assert.Equal(t, int64(0), netValueTrans) // The two transfers and their inverses cancel each other out. + assert.Equal(t, 1, numPending) // Second transfer is queued because the limit is exhausted + assert.Equal(t, uint64(500), valuePending) + + // Check the state of the governor. + chainEntryEthereum = gov.chains[vaa.ChainIDEthereum] + chainEntrySui = gov.chains[vaa.ChainIDSui] + assert.Equal(t, int(1), len(chainEntryEthereum.transfers)) // One from previous step + assert.Equal(t, int(1), len(chainEntryEthereum.pending)) // One for inbound refund and another for outbound + assert.Equal(t, int(1), len(chainEntrySui.transfers)) // One inverse transfer. Inverse from pending not added yet + sumEth, ethTransfers, err = gov.TrimAndSumValue(chainEntryEthereum.transfers, time.Unix(int64(transferTime.Unix()-1000), 0)) + assert.Equal(t, int64(10000), sumEth) // Same as before: full dailyLimit + assert.Equal(t, int(1), len(ethTransfers)) // Same as before + require.NoError(t, err) + sumSui, suiTransfers, err = gov.TrimAndSumValue(chainEntrySui.transfers, time.Unix(int64(transferTime.Unix()-1000), 0)) + assert.Equal(t, int(1), len(suiTransfers)) // just the inverse from before + assert.Equal(t, int64(-10000), sumSui) // Unchanged. + require.NoError(t, err) + suiGovernorUsage, err = gov.TrimAndSumValueForChain(chainEntrySui, time.Unix(int64(transferTime.Unix()-1000), 0)) + assert.Zero(t, suiGovernorUsage) // Actual governor usage must not be negative. + require.NoError(t, err) + + // Stage 3: Message that reduces Governor usage for Ethereum (Sui --> Ethereum) + result, err = gov.ProcessMsgForTime(&msg3, time.Now()) + assert.True(t, result) + require.NoError(t, err) + + // Stage 3: Governor usage reduced on Ethereum due to incoming from Sui + numTrans, netValueTrans, numPending, valuePending = gov.getStatsForAllChainsCancelFlow() + assert.Equal(t, 3, len(gov.msgsSeen)) + assert.Equal(t, 4, numTrans) // Two transfers and their inverses + assert.Equal(t, int64(0), netValueTrans) // Still zero because everything flow cancels + assert.Equal(t, 1, numPending) // Not released yet + assert.Equal(t, uint64(500), valuePending) + + // Check the state of the governor + chainEntryEthereum = gov.chains[vaa.ChainIDEthereum] + chainEntrySui = gov.chains[vaa.ChainIDSui] + assert.Equal(t, int(2), len(chainEntryEthereum.transfers)) + assert.Equal(t, int(1), len(chainEntryEthereum.pending)) // We have not yet released the pending transfer + assert.Equal(t, int(2), len(chainEntrySui.transfers)) + sumEth, ethTransfers, err = gov.TrimAndSumValue(chainEntryEthereum.transfers, time.Unix(int64(transferTime.Unix()-1000), 0)) + assert.Equal(t, int64(9000), sumEth) // We freed up room because of Sui incoming + assert.Equal(t, int(2), len(ethTransfers)) // Two transfers cancel each other out + require.NoError(t, err) + sumSui, suiTransfers, err = gov.TrimAndSumValue(chainEntrySui.transfers, time.Unix(int64(transferTime.Unix()-1000), 0)) + assert.Equal(t, int(2), len(suiTransfers)) + assert.Equal(t, int64(-9000), sumSui) // We consumed some outbound capacity + require.NoError(t, err) + suiGovernorUsage, err = gov.TrimAndSumValueForChain(chainEntrySui, time.Unix(int64(transferTime.Unix()-1000), 0)) + assert.Equal(t, uint64(0), suiGovernorUsage) // Still zero because it's still negative + require.NoError(t, err) + + // Stage 4: Release the pending transfer. We deliberately do not advance the time here because we are relying + // on the pending transfer being released as a result of flow-cancelling and not because 24 hours have passed. + // NOTE that even though the function says "Checked..." it modifies `gov` as a side-effect when a pending + // transfer is ready to be released + toBePublished, err := gov.CheckPendingForTime(time.Unix(int64(transferTime.Unix()-1000), 0)) + require.NoError(t, err) + assert.Equal(t, 1, len(toBePublished)) + + // Stage 4: Pending transfer released. This increases the Ethereum Governor usage again and reduces Sui. + numTrans, netValueTrans, numPending, valuePending = gov.getStatsForAllChainsCancelFlow() + assert.Equal(t, 3, len(gov.msgsSeen)) + assert.Equal(t, 6, numTrans) // Two new transfers created from previous pending transfer + assert.Equal(t, int64(0), netValueTrans) // Still zero because everything flow cancels + assert.Equal(t, 0, numPending) // Pending transfer has been released + assert.Equal(t, uint64(0), valuePending) + + // Verify the stats that are non flow-cancelling. + // In practice this is the sum of the absolute value of all the transfers, including the inverses. + // 2 * (10000 + 1000 + 500) = 23000 + _, absValueTrans, _, _ := gov.getStatsForAllChains() + assert.Equal(t, uint64(23000), absValueTrans) + + // Check the state of the governor + chainEntryEthereum = gov.chains[vaa.ChainIDEthereum] + chainEntrySui = gov.chains[vaa.ChainIDSui] + assert.Equal(t, int(3), len(chainEntryEthereum.transfers)) // Two outbound, one inverse from Sui + assert.Equal(t, int(0), len(chainEntryEthereum.pending)) // Released + assert.Equal(t, int(3), len(chainEntrySui.transfers)) // One outbound, two inverses from Ethereum + sumEth, ethTransfers, err = gov.TrimAndSumValue(chainEntryEthereum.transfers, time.Unix(int64(transferTime.Unix()-1000), 0)) + assert.Equal(t, int64(9500), sumEth) + assert.Equal(t, int(3), len(ethTransfers)) + require.NoError(t, err) + sumSui, suiTransfers, err = gov.TrimAndSumValue(chainEntrySui.transfers, time.Unix(int64(transferTime.Unix()-1000), 0)) + assert.Equal(t, int(3), len(suiTransfers)) // New inverse transfer added after pending transfer was released + assert.Equal(t, int64(-9500), sumSui) // Flow-cancelling inverse transfer added to Sui after released + require.NoError(t, err) + suiGovernorUsage, err = gov.TrimAndSumValueForChain(chainEntrySui, time.Unix(int64(transferTime.Unix()-1000), 0)) + assert.Equal(t, uint64(0), suiGovernorUsage) // Still zero + require.NoError(t, err) +} + func TestSmallerPendingTransfersAfterBigOneShouldGetReleased(t *testing.T) { ctx := context.Background() gov, err := newChainGovernorForTest(ctx) @@ -1078,7 +1968,7 @@ func TestSmallerPendingTransfersAfterBigOneShouldGetReleased(t *testing.T) { gov.setDayLengthInMinutes(24 * 60) err = gov.setChainForTesting(vaa.ChainIDEthereum, tokenBridgeAddrStr, 1000000, 0) require.NoError(t, err) - err = gov.setTokenForTesting(vaa.ChainIDEthereum, tokenAddrStr, "WETH", 1774.62) + err = gov.setTokenForTesting(vaa.ChainIDEthereum, tokenAddrStr, "WETH", 1774.62, false) require.NoError(t, err) // The first VAA should be accepted. @@ -1293,7 +2183,7 @@ func TestSmallerPendingTransfersAfterBigOneShouldGetReleased(t *testing.T) { func TestMainnetConfigIsValid(t *testing.T) { logger := zap.NewNop() var db db.MockGovernorDB - gov := NewChainGovernor(logger, &db, common.GoTest) + gov := NewChainGovernor(logger, &db, common.GoTest, true) gov.env = common.TestNet err := gov.initConfig() @@ -1303,13 +2193,76 @@ func TestMainnetConfigIsValid(t *testing.T) { func TestTestnetConfigIsValid(t *testing.T) { logger := zap.NewNop() var db db.MockGovernorDB - gov := NewChainGovernor(logger, &db, common.GoTest) + gov := NewChainGovernor(logger, &db, common.GoTest, true) gov.env = common.TestNet err := gov.initConfig() require.NoError(t, err) } +func TestNumDaysForReleaseTimerReset(t *testing.T) { + ctx := context.Background() + gov, err := newChainGovernorForTest(ctx) + + require.NoError(t, err) + + tokenAddrStr := "0xDDb64fE46a91D46ee29420539FC25FD07c5FEa3E" //nolint:gosec + toAddrStr := "0x707f9118e33a9b8998bea41dd0d46f38bb963fc8" + tokenBridgeAddrStr := "0x0290fb167208af455bb137780163b7b7a9a10c16" //nolint:gosec + tokenBridgeAddr, err := vaa.StringToAddress(tokenBridgeAddrStr) + require.NoError(t, err) + + gov.setDayLengthInMinutes(24 * 60) + err = gov.setChainForTesting(vaa.ChainIDEthereum, tokenBridgeAddrStr, 1000000, 100000) + require.NoError(t, err) + err = gov.setTokenForTesting(vaa.ChainIDEthereum, tokenAddrStr, "WETH", 1774.62, false) + require.NoError(t, err) + + now := time.Now() + messageTimestamp := now.Add(-5) // 5 seconds ago + + // message that, when processed, should exceed the big transfer size + msg := common.MessagePublication{ + TxHash: hashFromString("0x06f541f5ecfc43407c31587aa6ac3a689e8960f36dc23c332db5510dfc6a4063"), + Timestamp: messageTimestamp, + Nonce: uint32(1), + Sequence: uint64(3), + EmitterChain: vaa.ChainIDEthereum, + EmitterAddress: tokenBridgeAddr, + ConsistencyLevel: uint8(32), + Payload: buildMockTransferPayloadBytes(1, + vaa.ChainIDEthereum, + tokenAddrStr, + vaa.ChainIDPolygon, + toAddrStr, + 100, + ), + } + + canPost, err := gov.ProcessMsgForTime(&msg, now) + require.NoError(t, err) + assert.Equal(t, false, canPost) + + msg.MessageIDString() + + // check that the enqueued vaa's release date is now + 1 day + expectedReleaseTime := uint32(now.Add(24 * time.Hour).Unix()) + enqueuedVaas := gov.GetEnqueuedVAAs() + assert.Equal(t, len(enqueuedVaas), 1) + assert.Equal(t, enqueuedVaas[0].ReleaseTime, expectedReleaseTime) + + // the release timer gets reset to 5 days + _, err = gov.resetReleaseTimerForTime(msg.MessageIDString(), now, 5) + require.NoError(t, err) + + // check that the enqueued vaa's release date is now + 5 days + enqueuedVaas = gov.GetEnqueuedVAAs() + assert.Equal(t, len(enqueuedVaas), 1) + expectedReleaseTime = uint32(now.Add(5 * 24 * time.Hour).Unix()) + assert.Equal(t, enqueuedVaas[0].ReleaseTime, expectedReleaseTime) + +} + func TestLargeTransactionGetsEnqueuedAndReleasedWhenTheTimerExpires(t *testing.T) { ctx := context.Background() gov, err := newChainGovernorForTest(ctx) @@ -1326,7 +2279,7 @@ func TestLargeTransactionGetsEnqueuedAndReleasedWhenTheTimerExpires(t *testing.T gov.setDayLengthInMinutes(24 * 60) err = gov.setChainForTesting(vaa.ChainIDEthereum, tokenBridgeAddrStr, 1000000, 100000) require.NoError(t, err) - err = gov.setTokenForTesting(vaa.ChainIDEthereum, tokenAddrStr, "WETH", 1774.62) + err = gov.setTokenForTesting(vaa.ChainIDEthereum, tokenAddrStr, "WETH", 1774.62, false) require.NoError(t, err) // The first small transfer should be accepted. @@ -1481,7 +2434,7 @@ func TestLargeTransactionGetsEnqueuedAndReleasedWhenTheTimerExpires(t *testing.T assert.Equal(t, 1, len(gov.msgsSeen)) // But then the operator resets the release time. - _, err = gov.resetReleaseTimerForTime(msg3.MessageIDString(), now) + _, err = gov.resetReleaseTimerForTime(msg3.MessageIDString(), now, 1) require.NoError(t, err) // So now, 12 hours later the big transaction is enqueued, it still won't get released. @@ -1516,9 +2469,9 @@ func TestLargeTransactionGetsEnqueuedAndReleasedWhenTheTimerExpires(t *testing.T // But the big transaction should not affect the daily notional. ce, exists := gov.chains[vaa.ChainIDEthereum] require.Equal(t, true, exists) - valueTrans, err = sumValue(ce.transfers, now) + _, outgoing, _, err := sumValue(ce.transfers, now) require.NoError(t, err) - assert.Equal(t, uint64(0), valueTrans) + assert.Equal(t, uint64(0), outgoing) } func TestSmallTransactionsGetReleasedWhenTheTimerExpires(t *testing.T) { @@ -1543,7 +2496,7 @@ func TestSmallTransactionsGetReleasedWhenTheTimerExpires(t *testing.T) { err = gov.setChainForTesting(vaa.ChainIDEthereum, tokenBridgeAddrStr, 10000, 100000) require.NoError(t, err) - err = gov.setTokenForTesting(vaa.ChainIDEthereum, tokenAddrStr, "WETH", 1774.62) + err = gov.setTokenForTesting(vaa.ChainIDEthereum, tokenAddrStr, "WETH", 1774.62, false) require.NoError(t, err) // Submit a small transfer that will get enqueued due to the low daily limit. @@ -1639,7 +2592,7 @@ func TestTransferPayloadTooShort(t *testing.T) { gov.setDayLengthInMinutes(24 * 60) err = gov.setChainForTesting(vaa.ChainIDEthereum, tokenBridgeAddrStr, 1000000, 0) require.NoError(t, err) - err = gov.setTokenForTesting(vaa.ChainIDEthereum, tokenAddrStr, "WETH", 1774.62) + err = gov.setTokenForTesting(vaa.ChainIDEthereum, tokenAddrStr, "WETH", 1774.62, false) require.NoError(t, err) payloadBytes1 := buildMockTransferPayloadBytes(1, @@ -1695,7 +2648,7 @@ func TestDontReloadDuplicates(t *testing.T) { gov.setDayLengthInMinutes(24 * 60) err = gov.setChainForTesting(vaa.ChainIDEthereum, emitterAddrStr, 1000000, 0) require.NoError(t, err) - err = gov.setTokenForTesting(vaa.ChainIDEthereum, emitterAddrStr, "WETH", 1774.62) + err = gov.setTokenForTesting(vaa.ChainIDEthereum, emitterAddrStr, "WETH", 1774.62, false) require.NoError(t, err) now, _ := time.Parse("Jan 2, 2006 at 3:04pm (MST)", "Jun 2, 2022 at 12:01pm (CST)") @@ -1792,6 +2745,203 @@ func TestDontReloadDuplicates(t *testing.T) { assert.Equal(t, uint64(4436), valuePending) } +// With the addition of the flow-cancel feature, it's possible to in a way "exceed the daily limit" of outflow from a +// Governor as long as there is corresponding inflow of a flow-canceling asset to allow for additional outflow. +// When the node is restarted, it reloads all transfers and pending transfers. If the actual outflow is greater than +// the daily limit (due to flow cancel) ensure that the calculated limit on start-up is correct. +// This test ensures that governor usage limits are correctly calculated when reloading transfers from the database. +func TestReloadTransfersNearCapacity(t *testing.T) { + // Setup + ctx := context.Background() + gov, err := newChainGovernorForTest(ctx) + + require.NoError(t, err) + assert.NotNil(t, gov) + + // Set-up time + gov.setDayLengthInMinutes(24 * 60) + transferTime := time.Now() + + // Solana USDC used as the flow cancelling asset. This ensures that the flow cancel mechanism works + // when the Origin chain of the asset does not match the emitter chain + // NOTE: Replace this Chain:Address pair if the Flow Cancel Token List is modified + var flowCancelTokenOriginAddress vaa.Address + flowCancelTokenOriginAddress, err = vaa.StringToAddress("c6fa7af3bedbad3a3d65f36aabc97431b1bbe4c2d2f6e0e47ca60203452f5d61") + require.NoError(t, err) + + var notFlowCancelTokenOriginAddress vaa.Address + notFlowCancelTokenOriginAddress, err = vaa.StringToAddress("77777af3bedbad3a3d65f36aabc97431b1bbe4c2d2f6e0e47ca60203452f7777") + require.NoError(t, err) + + // Data for Ethereum + tokenBridgeAddrStrEthereum := "0x0290fb167208af455bb137780163b7b7a9a10c16" //nolint:gosec + tokenBridgeAddrEthereum, err := vaa.StringToAddress(tokenBridgeAddrStrEthereum) + require.NoError(t, err) + + // Data for Sui + tokenBridgeAddrStrSui := "0xc57508ee0d4595e5a8728974a4a93a787d38f339757230d441e895422c07aba9" //nolint:gosec + tokenBridgeAddrSui, err := vaa.StringToAddress(tokenBridgeAddrStrSui) + require.NoError(t, err) + + // Data for Solana. Only used to represent the flow cancel asset. + // "wormDTUJ6AWPNvk59vGQbDvGJmqbDTdgWgAqcLBCgUb" + tokenBridgeAddrStrSolana := "0x0e0a589e6488147a94dcfa592b90fdd41152bb2ca77bf6016758a6f4df9d21b4" //nolint:gosec + + // Add chain entries to `gov` + err = gov.setChainForTesting(vaa.ChainIDEthereum, tokenBridgeAddrStrEthereum, 10000, 50000) + require.NoError(t, err) + err = gov.setChainForTesting(vaa.ChainIDSui, tokenBridgeAddrStrSui, 10000, 0) + require.NoError(t, err) + err = gov.setChainForTesting(vaa.ChainIDSolana, tokenBridgeAddrStrSolana, 10000, 0) + require.NoError(t, err) + + // Add flow cancel asset and non-flow cancelable asset to the token entry for `gov` + err = gov.setTokenForTesting(vaa.ChainIDSolana, flowCancelTokenOriginAddress.String(), "USDC", 1.0, true) + require.NoError(t, err) + assert.NotNil(t, gov.tokens[tokenKey{chain: vaa.ChainIDSolana, addr: flowCancelTokenOriginAddress}]) + err = gov.setTokenForTesting(vaa.ChainIDEthereum, notFlowCancelTokenOriginAddress.String(), "NOTCANCELABLE", 1.0, false) + require.NoError(t, err) + + // This transfer should exhaust the dailyLimit for the emitter chain + xfer1 := &db.Transfer{ + Timestamp: transferTime.Add(-10), + Value: uint64(10000), + OriginChain: vaa.ChainIDSolana, + OriginAddress: flowCancelTokenOriginAddress, + EmitterChain: vaa.ChainIDEthereum, + EmitterAddress: tokenBridgeAddrEthereum, + TargetAddress: tokenBridgeAddrSui, + TargetChain: vaa.ChainIDSui, + MsgID: "2/" + tokenBridgeAddrEthereum.String() + "/125", + Hash: "Hash1", + } + + // This incoming transfer should free up some of the space on the previous emitter chain + xfer2 := &db.Transfer{ + Timestamp: transferTime.Add(-9), + Value: uint64(2000), + OriginChain: vaa.ChainIDSolana, + OriginAddress: flowCancelTokenOriginAddress, + EmitterChain: vaa.ChainIDSui, + EmitterAddress: tokenBridgeAddrSui, + TargetAddress: tokenBridgeAddrEthereum, + TargetChain: vaa.ChainIDEthereum, + MsgID: "2/" + tokenBridgeAddrSui.String() + "/126", + Hash: "Hash2", + } + + // Send another transfer out from the original emitter chain so that we "exceed the daily limit" if flow + // cancel is not applied + xfer3 := &db.Transfer{ + Timestamp: transferTime.Add(-8), + Value: uint64(50), + OriginChain: vaa.ChainIDSolana, + OriginAddress: flowCancelTokenOriginAddress, + EmitterChain: vaa.ChainIDEthereum, + EmitterAddress: tokenBridgeAddrEthereum, + TargetAddress: tokenBridgeAddrSui, + TargetChain: vaa.ChainIDSui, + MsgID: "2/" + tokenBridgeAddrEthereum.String() + "/125", + Hash: "Hash3", + } + + // Simulate reloading from the database. + // NOTE: The actual execution path we want to test is the following and runs when the node is restarted: + // gov.Run () --> gov.loadFromDb() --> gov.loadFromDBAlreadyLocked() --> gov.reloadTransfer() + // We don't have access to Run() from the test suite and the other functions are mocked to return `nil`. + // Therefore, the remainder of this test proceeds by operating on a list of `transfersLoadedFromDb` which + // simulates loading transfers from the database. + // From here we proceed with the next function we can actually test: `reloadTransfer()`. + + // STEP 0: Initial state + assert.Equal(t, len(gov.msgsSeen), 0) + numTrans, netValueTransferred, numPending, valuePending := gov.getStatsForAllChainsCancelFlow() + assert.Equal(t, 0, numTrans) + assert.Equal(t, int64(0), netValueTransferred) + assert.Equal(t, 0, numPending) + assert.Equal(t, uint64(0), valuePending) + + chainEntryEth, exists := gov.chains[vaa.ChainIDEthereum] + require.True(t, exists) + chainEntrySui, exists := gov.chains[vaa.ChainIDSui] + require.True(t, exists) + + // STEP 1: Load first transfer + err = gov.reloadTransfer(xfer1) + require.NoError(t, err) + assert.Equal(t, len(gov.msgsSeen), 1) + numTrans, netValueTransferred, _, _ = gov.getStatsForAllChainsCancelFlow() + assert.Equal(t, 2, numTrans) // 1 plus transfer the inverse flow transfer on the TargetChain + assert.Equal(t, int64(0), netValueTransferred) // Value cancels out for all transfers + + // Sum of absolute value of all transfers, including inverse flow cancel transfers: + // 2 * (10_000) = 20_000 + _, valueTransferred, _, _ := gov.getStatsForAllChains() + assert.Equal(t, uint64(20000), valueTransferred) + + governorUsageEth, err := gov.TrimAndSumValueForChain(chainEntryEth, time.Unix(int64(transferTime.Unix()-1000), 0)) + assert.Equal(t, uint64(10000), governorUsageEth) + assert.Zero(t, governorUsageEth-chainEntryEth.dailyLimit) // Make sure we used the whole capacity + require.NoError(t, err) + governorUsageSui, err := gov.TrimAndSumValueForChain(chainEntrySui, time.Unix(int64(transferTime.Unix()-1000), 0)) + assert.Zero(t, governorUsageSui) + require.NoError(t, err) + sumTransfersSui, _, err := gov.TrimAndSumValue(chainEntrySui.transfers, time.Unix(int64(transferTime.Unix()-1000), 0)) + assert.Equal(t, int64(-10000), sumTransfersSui) + require.NoError(t, err) + + // STEP 2: Load second transfer + err = gov.reloadTransfer(xfer2) + require.NoError(t, err) + assert.Equal(t, len(gov.msgsSeen), 2) + numTrans, netValueTransferred, _, _ = gov.getStatsForAllChainsCancelFlow() + assert.Equal(t, 4, numTrans) // 2 transfers and their inverse flow transfers on the TargetChain + assert.Equal(t, int64(0), netValueTransferred) // Value cancels out for all transfers + + // Sum of absolute value of all transfers, including inverse flow cancel transfers: + // 2 * (10_000 + 2_000) = 24_000 + _, valueTransferred, _, _ = gov.getStatsForAllChains() + assert.Equal(t, uint64(24000), valueTransferred) + + governorUsageEth, err = gov.TrimAndSumValueForChain(chainEntryEth, time.Unix(int64(transferTime.Unix()-1000), 0)) + assert.Equal(t, uint64(8000), governorUsageEth) + assert.Equal(t, int(chainEntryEth.dailyLimit-governorUsageEth), 2000) // Remaining capacity + require.NoError(t, err) + governorUsageSui, err = gov.TrimAndSumValueForChain(chainEntrySui, time.Unix(int64(transferTime.Unix()-1000), 0)) + assert.Zero(t, governorUsageSui) + require.NoError(t, err) + sumTransfersSui, _, err = gov.TrimAndSumValue(chainEntrySui.transfers, time.Unix(int64(transferTime.Unix()-1000), 0)) + assert.Equal(t, int64(-8000), sumTransfersSui) + require.NoError(t, err) + + // STEP 3: Load third transfer + err = gov.reloadTransfer(xfer3) + require.NoError(t, err) + // Sum of absolute value of all transfers, including inverse flow cancel transfers: + // 2 * (10_000 + 2_000 + 50) = 24_100 + _, valueTransferred, _, _ = gov.getStatsForAllChains() + assert.Equal(t, uint64(24100), valueTransferred) + + numTrans, netValueTransferred, numPending, valuePending = gov.getStatsForAllChainsCancelFlow() + assert.Equal(t, 6, numTrans) // 3 transfers and their inverse flow transfers on the TargetChain + assert.Equal(t, int64(0), netValueTransferred) // Value cancels out for all transfers + + governorUsageEth, err = gov.TrimAndSumValueForChain(chainEntryEth, time.Unix(int64(transferTime.Unix()-1000), 0)) + assert.Equal(t, uint64(8050), governorUsageEth) + assert.Equal(t, int(chainEntryEth.dailyLimit-governorUsageEth), 1950) // Remaining capacity + require.NoError(t, err) + governorUsageSui, err = gov.TrimAndSumValueForChain(chainEntrySui, time.Unix(int64(transferTime.Unix()-1000), 0)) + require.NoError(t, err) + assert.Zero(t, governorUsageSui) + sumTransfersSui, _, err = gov.TrimAndSumValue(chainEntrySui.transfers, time.Unix(int64(transferTime.Unix()-1000), 0)) + assert.Equal(t, int64(-8050), sumTransfersSui) + require.NoError(t, err) + + // Sanity check: make sure these are still empty/zero + assert.Equal(t, 0, numPending) + assert.Equal(t, uint64(0), valuePending) +} + func TestReobservationOfPublishedMsg(t *testing.T) { ctx := context.Background() gov, err := newChainGovernorForTest(ctx) @@ -1808,7 +2958,7 @@ func TestReobservationOfPublishedMsg(t *testing.T) { gov.setDayLengthInMinutes(24 * 60) err = gov.setChainForTesting(vaa.ChainIDEthereum, tokenBridgeAddrStr, 1000000, 100000) require.NoError(t, err) - err = gov.setTokenForTesting(vaa.ChainIDEthereum, tokenAddrStr, "WETH", 1774.62) + err = gov.setTokenForTesting(vaa.ChainIDEthereum, tokenAddrStr, "WETH", 1774.62, false) require.NoError(t, err) // The first transfer should be accepted. @@ -1871,7 +3021,7 @@ func TestReobservationOfEnqueued(t *testing.T) { gov.setDayLengthInMinutes(24 * 60) err = gov.setChainForTesting(vaa.ChainIDEthereum, tokenBridgeAddrStr, 1000000, 100000) require.NoError(t, err) - err = gov.setTokenForTesting(vaa.ChainIDEthereum, tokenAddrStr, "WETH", 1774.62) + err = gov.setTokenForTesting(vaa.ChainIDEthereum, tokenAddrStr, "WETH", 1774.62, false) require.NoError(t, err) // A big transfer should get enqueued. @@ -1933,7 +3083,7 @@ func TestReusedMsgIdWithDifferentPayloadGetsProcessed(t *testing.T) { gov.setDayLengthInMinutes(24 * 60) err = gov.setChainForTesting(vaa.ChainIDEthereum, tokenBridgeAddrStr, 1000000, 100000) require.NoError(t, err) - err = gov.setTokenForTesting(vaa.ChainIDEthereum, tokenAddrStr, "WETH", 1774.62) + err = gov.setTokenForTesting(vaa.ChainIDEthereum, tokenAddrStr, "WETH", 1774.62, false) require.NoError(t, err) // The first transfer should be accepted. @@ -2092,7 +3242,7 @@ func TestPendingTransferWithBadPayloadGetsDroppedNotReleased(t *testing.T) { err = gov.setChainForTesting(vaa.ChainIDEthereum, tokenBridgeAddrStr, 10000, 100000) require.NoError(t, err) - err = gov.setTokenForTesting(vaa.ChainIDEthereum, tokenAddrStr, "WETH", 1774.62) + err = gov.setTokenForTesting(vaa.ChainIDEthereum, tokenAddrStr, "WETH", 1774.62, false) require.NoError(t, err) // Create two big transactions. diff --git a/node/pkg/governor/mainnet_chains.go b/node/pkg/governor/mainnet_chains.go index 927d578556..e6e4dc597c 100644 --- a/node/pkg/governor/mainnet_chains.go +++ b/node/pkg/governor/mainnet_chains.go @@ -40,5 +40,6 @@ func chainList() []chainConfigEntry { {emitterChainID: vaa.ChainIDBlast, dailyLimit: 500_000, bigTransactionSize: 50_000}, {emitterChainID: vaa.ChainIDXLayer, dailyLimit: 500_000, bigTransactionSize: 50_000}, {emitterChainID: vaa.ChainIDWormchain, dailyLimit: 500_000, bigTransactionSize: 50_000}, + {emitterChainID: vaa.ChainIDSnaxchain, dailyLimit: 500_000, bigTransactionSize: 50_000}, } } diff --git a/node/pkg/governor/mainnet_tokens_test.go b/node/pkg/governor/mainnet_tokens_test.go index 8b5972f955..4ea21aafe9 100644 --- a/node/pkg/governor/mainnet_tokens_test.go +++ b/node/pkg/governor/mainnet_tokens_test.go @@ -2,10 +2,10 @@ package governor import ( "fmt" + "strings" "testing" "github.com/stretchr/testify/assert" - "github.com/wormhole-foundation/wormhole/sdk" "github.com/wormhole-foundation/wormhole/sdk/vaa" ) @@ -33,11 +33,35 @@ func TestTokenListAddressSize(t *testing.T) { } } -func TestTokenListChainTokensPresent(t *testing.T) { +// Flag a situation where a Governed chain does not have any governed assets. Often times when adding a mainnet chain, +// a list of tokens will be added so that they can be governed. (These tokens are sourced by CoinGecko or manually +// populated.) While this is not a hard requirement, it may represent that a developer has forgotten to take the step +// of configuring tokens when deploying the chain. This test helps to remind them. +func TestGovernedChainHasGovernedAssets(t *testing.T) { + // Add a chain ID to this set if it genuinely has no native assets that should be governed. + ignoredChains := map[vaa.ChainID]bool{ + // TODO: Remove this once we have governed tokens for Snax. + vaa.ChainIDSnaxchain: true, + + // Wormchain is an abstraction over IBC-connected chains so no assets are "native" to it + vaa.ChainIDWormchain: true, + } + if len(ignoredChains) > 0 { + ignoredOutput := []string{} + for id := range ignoredChains { + ignoredOutput = append(ignoredOutput, id.String()) + } + + t.Logf("This test ignored the following chains: %s\n", strings.Join(ignoredOutput, "\n")) + } + tokenConfigEntries := tokenList() - /* Assume that all chains within a token bridge will have governed tokens */ - for e := range sdk.KnownTokenbridgeEmitters { + for _, chainConfigEntry := range chainList() { + e := chainConfigEntry.emitterChainID + if _, ignored := ignoredChains[e]; ignored { + continue + } t.Run(e.String(), func(t *testing.T) { found := false for _, tokenConfigEntry := range tokenConfigEntries { @@ -46,9 +70,15 @@ func TestTokenListChainTokensPresent(t *testing.T) { break } } + assert.True(t, found, "Chain is governed but has no governed native assets configured") + }) + } - if e != vaa.ChainIDXpla && e != vaa.ChainIDAptos && e != vaa.ChainIDArbitrum && e != vaa.ChainIDWormchain { - assert.Equal(t, found, true) + // Make sure we're not ignoring any chains with governed tokens. + for _, tokenEntry := range tokenList() { + t.Run(vaa.ChainID(tokenEntry.chain).String(), func(t *testing.T) { + if _, exists := ignoredChains[vaa.ChainID(tokenEntry.chain)]; exists { + assert.Fail(t, "Chain is in ignoredChains but it has governed tokens") } }) } diff --git a/node/pkg/governor/manual_tokens.go b/node/pkg/governor/manual_tokens.go index bbdec9c049..d09cc3731d 100644 --- a/node/pkg/governor/manual_tokens.go +++ b/node/pkg/governor/manual_tokens.go @@ -4,16 +4,17 @@ package governor func manualTokenList() []tokenConfigEntry { return []tokenConfigEntry{ {chain: 2, addr: "000000000000000000000000ef19f4e48830093ce5bc8b3ff7f903a0ae3e9fa1", symbol: "BOTX", coinGeckoId: "botxcoin", decimals: 8, price: 0.02053366}, - {chain: 2, addr: "00000000000000000000000085f17cf997934a597031b2e18a9ab6ebd4b9f6a4", symbol: "NEAR", coinGeckoId: "near", decimals: 8, price: 3.85}, // Near on ethereum + {chain: 2, addr: "0000000000000000000000006c3ea9036406852006290770bedfcaba0e23a0e8", symbol: "PYUSD", coinGeckoId: "paypal-usd", decimals: 6, price: 1.00}, + {chain: 2, addr: "00000000000000000000000085f17cf997934a597031b2e18a9ab6ebd4b9f6a4", symbol: "NEAR", coinGeckoId: "near", decimals: 8, price: 4.34}, // Near on ethereum {chain: 8, addr: "000000000000000000000000000000000000000000000000000000000004c5c1", symbol: "USDt", coinGeckoId: "tether", decimals: 6, price: 1.002}, // Addr: 312769, Notional: 22.31747085 - {chain: 8, addr: "0000000000000000000000000000000000000000000000000000000001e1ab70", symbol: "USDC", coinGeckoId: "usd-coin", decimals: 6, price: 0.998934}, {chain: 9, addr: "000000000000000000000000e4b9e004389d91e4134a28f19bd833cba1d994b6", symbol: "FRAX", coinGeckoId: "frax", decimals: 8, price: 1.00}, - {chain: 9, addr: "000000000000000000000000c42c30ac6cc15fac9bd938618bcaa1a1fae8501d", symbol: "NEAR", coinGeckoId: "near", decimals: 8, price: 3.85}, // Near on aurora. 24 decimals + {chain: 9, addr: "000000000000000000000000c42c30ac6cc15fac9bd938618bcaa1a1fae8501d", symbol: "NEAR", coinGeckoId: "near", decimals: 8, price: 4.34}, // Near on aurora. 24 decimals {chain: 12, addr: "0000000000000000000000000000000000000000000100000000000000000002", symbol: "DOT", coinGeckoId: "polkadot", decimals: 8, price: 6.48}, {chain: 13, addr: "0000000000000000000000005fff3a6c16c2208103f318f4713d4d90601a7313", symbol: "KLEVA", coinGeckoId: "kleva", decimals: 8, price: 0.086661}, {chain: 13, addr: "0000000000000000000000005096db80b21ef45230c9e423c373f1fc9c0198dd", symbol: "WEMIX", coinGeckoId: "wemix-token", decimals: 8, price: 1.74}, - {chain: 15, addr: "0000000000000000000000000000000000000000000000000000000000000000", symbol: "NEAR", coinGeckoId: "near", decimals: 8, price: 3.85}, - {chain: 32, addr: "00881043998ff2b738519d444d2dd0da3da4545de08290c1076746538d5333df", symbol: "Sei", coinGeckoId: "sei-network", decimals: 6, price: 0.0}, + {chain: 15, addr: "0000000000000000000000000000000000000000000000000000000000000000", symbol: "NEAR", coinGeckoId: "near", decimals: 8, price: 4.34}, + {chain: 22, addr: "93601512902fe46ad6c51440c23a1a7e166c4b60e773579eda639c113a81325a", symbol: "USDT", coinGeckoId: "tether", decimals: 6, price: 1.00}, + {chain: 32, addr: "01881043998ff2b738519d444d2dd0da3da4545de08290c1076746538d5333df", symbol: "SEI", coinGeckoId: "sei-network", decimals: 6, price: 0.3}, // BLAST (tokens over $50,000 24h volume) {chain: 36, addr: "0000000000000000000000004300000000000000000000000000000000000003", symbol: "USDB", coinGeckoId: "usdb", decimals: 18, price: 1.00}, {chain: 36, addr: "0000000000000000000000004300000000000000000000000000000000000004", symbol: "WETH", coinGeckoId: "weth", decimals: 18, price: 3157.42}, @@ -36,7 +37,6 @@ func manualTokenList() []tokenConfigEntry { // SCROLL (tokens over $50,000 24h volume) {chain: 34, addr: "0000000000000000000000000018d96c579121a94307249d47f053e2d687b5e7", symbol: "MVX", coinGeckoId: "metavault-trade", decimals: 18, price: 2.06}, {chain: 34, addr: "00000000000000000000000047c337bd5b9344a6f3d6f58c474d9d8cd419d8ca", symbol: "DACKIE", coinGeckoId: "dackieswap", decimals: 18, price: 0.00655}, - {chain: 34, addr: "0000000000000000000000005300000000000000000000000000000000000004", symbol: "WETH", coinGeckoId: "bridged-wrapped-ether-scroll", decimals: 18, price: 3145.98}, {chain: 34, addr: "000000000000000000000000f55bec9cafdbe8730f096aa55dad6d22d44099df", symbol: "USDT", coinGeckoId: "bridged-tether-scroll", decimals: 6, price: 1.00}, {chain: 34, addr: "00000000000000000000000006efdbff2a14a7c8e15944d1f4a48f9f95f663a4", symbol: "USDC", coinGeckoId: "bridged-usd-coin-scroll", decimals: 6, price: 1.00}, {chain: 34, addr: "000000000000000000000000eb466342c4d449bc9f53a865d5cb90586f405215", symbol: "AXLUSDC", coinGeckoId: "bridged-axelar-wrapped-usd-coin-scroll", decimals: 6, price: 1.01}, diff --git a/node/pkg/governor/testnet_config.go b/node/pkg/governor/testnet_config.go index c2650bcc17..2f01878b9c 100644 --- a/node/pkg/governor/testnet_config.go +++ b/node/pkg/governor/testnet_config.go @@ -10,12 +10,16 @@ func (gov *ChainGovernor) initTestnetConfig() ([]tokenConfigEntry, []tokenConfig gov.logger.Info("setting up testnet config") tokens := []tokenConfigEntry{ - {chain: 1, addr: "069b8857feab8184fb687f634618c035dac439dc1aeb3b5598a0f00000000001", symbol: "SOL", coinGeckoId: "wrapped-solana", decimals: 8, price: 34.94}, // Addr: So11111111111111111111111111111111111111112, Notional: 4145006tese - {chain: 1, addr: "3b442cb3912157f13a933d0134282d032b5ffecd01a2dbf1b7790608df002ea7", symbol: "USDC", coinGeckoId: "usdc", decimals: 6, price: 1}, // Addr: 4zMMC9srt5Ri5X14GAgXhaHii3GnPAEERYPJgZJDncDU, Notional: 1 + {chain: 1, addr: "069b8857feab8184fb687f634618c035dac439dc1aeb3b5598a0f00000000001", symbol: "SOL", coinGeckoId: "wrapped-solana", decimals: 9, price: 138.11}, // Addr: So11111111111111111111111111111111111111112, Notional: 82226686.73036034 + {chain: 1, addr: "3b442cb3912157f13a933d0134282d032b5ffecd01a2dbf1b7790608df002ea7", symbol: "USDC", coinGeckoId: "usd-coin", decimals: 6, price: 1.001}, // Addr: 4zMMC9srt5Ri5X14GAgXhaHii3GnPAEERYPJgZJDncDU, Notional: 6780118.197035182 } - flowCancelTokens := []tokenConfigEntry{ - {chain: 1, addr: "3b442cb3912157f13a933d0134282d032b5ffecd01a2dbf1b7790608df002ea7", symbol: "USDC", coinGeckoId: "usdc", decimals: 6, price: 1}, // Addr: 4zMMC9srt5Ri5X14GAgXhaHii3GnPAEERYPJgZJDncDU, Notional: 1 + flowCancelTokens := []tokenConfigEntry{} + + if gov.flowCancelEnabled { + flowCancelTokens = []tokenConfigEntry{ + {chain: 1, addr: "3b442cb3912157f13a933d0134282d032b5ffecd01a2dbf1b7790608df002ea7", symbol: "USDC", coinGeckoId: "usd-coin", decimals: 6, price: 1.001}, // Addr: 4zMMC9srt5Ri5X14GAgXhaHii3GnPAEERYPJgZJDncDU, Notional: 6780118.197035182 + } } chains := []chainConfigEntry{ diff --git a/node/pkg/gwrelayer/gwrelayer.go b/node/pkg/gwrelayer/gwrelayer.go index f22b526451..615598ed9a 100644 --- a/node/pkg/gwrelayer/gwrelayer.go +++ b/node/pkg/gwrelayer/gwrelayer.go @@ -220,7 +220,7 @@ func convertBech32AddressToWormhole(contractAddress string) (vaa.Address, error) // SubmitVAA checks to see if the VAA should be submitted to the smart contract, and if so, writes it to the channel for publishing. func (gwr *GatewayRelayer) SubmitVAA(v *vaa.VAA) { var v2p VaaToPublish - if shouldPub, err := shouldPublishToIbcTranslator(v.Payload, vaa.ChainIDWormchain, gwr.ibcTranslatorPayloadAddress); err != nil { + if shouldPub, err := shouldPublishToIbcTranslator(gwr.tokenBridges, v, vaa.ChainIDWormchain, gwr.ibcTranslatorPayloadAddress); err != nil { gwr.logger.Error("failed to check if vaa should be published", zap.String("msgId", v.MessageID()), zap.Error(err)) return } else if shouldPub { @@ -246,16 +246,20 @@ func (gwr *GatewayRelayer) SubmitVAA(v *vaa.VAA) { } // shouldPublishToIbcTranslator returns true if a message should be forwarded to the contract on wormchain, false if not. -func shouldPublishToIbcTranslator(payload []byte, targetChain vaa.ChainID, targetAddress vaa.Address) (bool, error) { - if len(payload) == 0 { +func shouldPublishToIbcTranslator(tokenBridges tokenBridgeMap, v *vaa.VAA, targetChain vaa.ChainID, targetAddress vaa.Address) (bool, error) { + if _, exists := tokenBridges[tokenBridgeKey{emitterChainId: v.EmitterChain, emitterAddr: v.EmitterAddress}]; !exists { return false, nil } - if payload[0] != 3 { + if len(v.Payload) == 0 { return false, nil } - hdr, err := vaa.DecodeTransferPayloadHdr(payload) + if v.Payload[0] != 3 { + return false, nil + } + + hdr, err := vaa.DecodeTransferPayloadHdr(v.Payload) if err != nil { return false, fmt.Errorf("failed to decode payload: %w", err) } @@ -293,7 +297,24 @@ func (gwr *GatewayRelayer) worker(ctx context.Context) error { return nil case v2p := <-gwr.subChan: if err := gwr.submitVAAToContract(v2p); err != nil { - gwr.logger.Error("failed to submit vaa to contract", zap.String("msgId", v2p.V.MessageID()), zap.String("contract", v2p.ContractAddress), zap.Uint8("vaaType", uint8(v2p.VType)), zap.Error(err)) + vaaBytes, marshalErr := v2p.V.Marshal() + if marshalErr != nil { + gwr.logger.Error("failed to submit vaa to contract", + zap.String("msgId", v2p.V.MessageID()), + zap.String("contract", v2p.ContractAddress), + zap.Uint8("vaaType", uint8(v2p.VType)), + zap.Error(err), + zap.Any("vaa", v2p.V), + ) + } else { + gwr.logger.Error("failed to submit vaa to contract", + zap.String("msgId", v2p.V.MessageID()), + zap.String("contract", v2p.ContractAddress), + zap.Uint8("vaaType", uint8(v2p.VType)), + zap.Error(err), + zap.String("vaa", hex.EncodeToString(vaaBytes)), + ) + } // TODO: For now we don't want to restart because this will happen if the VAA has already been submitted by another guardian. //return fmt.Errorf("failed to submit vaa to contract: %w", err) } @@ -403,7 +424,7 @@ func SubmitVAAToContract( return txResp, fmt.Errorf("out of gas: %s", txResp.TxResponse.RawLog) } - if strings.Contains(txResp.TxResponse.RawLog, "failed") && !strings.Contains(txResp.TxResponse.RawLog, "VaaAlreadyExecuted") { + if strings.Contains(txResp.TxResponse.RawLog, "failed") && !canIgnoreFailure(txResp.TxResponse.RawLog) { return txResp, fmt.Errorf("submit failed: %s", txResp.TxResponse.RawLog) } @@ -420,3 +441,8 @@ func SubmitVAAToContract( return txResp, nil } + +// canIgnoreFailure checks for returns from the contract that aren't really errors. +func canIgnoreFailure(rawLog string) bool { + return strings.Contains(rawLog, "VaaAlreadyExecuted") || strings.Contains(rawLog, "this asset has already been attested") +} diff --git a/node/pkg/gwrelayer/gwrelayer_test.go b/node/pkg/gwrelayer/gwrelayer_test.go index 49b28045da..3c61a8e7da 100644 --- a/node/pkg/gwrelayer/gwrelayer_test.go +++ b/node/pkg/gwrelayer/gwrelayer_test.go @@ -53,12 +53,32 @@ func Test_shouldPublishToIbcTranslator(t *testing.T) { {label: "should publish", payload: decodeBytes("0300000000000000000000000000000000000000000000000000000000000000640000000000000000000000005425890298aed601595a70ab815c96711a31bc650006ade4a5f5803a439835c636395a8d648dee57b2fc90d98dc17fa887159b69638b0C20000000000000000000000000e6990c7e206d418d62b9e50c8e61f59dc360183b7b2262617369635f726563697069656e74223a7b22726563697069656e74223a22633256704d57786c656d3179636d31336348687865575679626e6c344d33706a595768735a4756715958686e4f485a364f484e774d32526f227d7d"), result: true, err: false}, } + logger := zap.NewNop() + + solanaEmitter, err := vaa.StringToAddress("ec7372995d5cc8732397fb0ad35c0121e0eaa90d26f828a534cab54391b3a4f5") + require.NoError(t, err) + + tokenBridges, _, err := buildTokenBridgeMap(logger, common.MainNet) + require.NoError(t, err) + targetAddress, err := convertBech32AddressToWormhole("wormhole14hj2tavq8fpesdwxxcu44rty3hh90vhujrvcmstl4zr3txmfvw9srrg465") require.NoError(t, err) - for _, tc := range tests { + for seqNum, tc := range tests { t.Run(string(tc.label), func(t *testing.T) { - result, err := shouldPublishToIbcTranslator(tc.payload, vaa.ChainIDWormchain, targetAddress) + v := &vaa.VAA{ + Version: uint8(1), + GuardianSetIndex: uint32(1), + Signatures: []*vaa.Signature{}, + Timestamp: time.Unix(0, 0), + Nonce: uint32(1), + Sequence: uint64(seqNum), + ConsistencyLevel: uint8(32), + EmitterChain: vaa.ChainIDSolana, + EmitterAddress: solanaEmitter, + Payload: tc.payload, + } + result, err := shouldPublishToIbcTranslator(tokenBridges, v, vaa.ChainIDWormchain, targetAddress) assert.Equal(t, tc.err, err != nil) assert.Equal(t, tc.result, result) }) @@ -139,3 +159,30 @@ func Test_verifyDevnetTokenBridgeAddress(t *testing.T) { require.True(t, exists) assert.True(t, bytes.Equal(expectedAddress[:], targetAddress[:])) } + +func Test_shouldPublishToIbcTranslatorShouldIgnoreUnknownEmitter(t *testing.T) { + vaaBytes, err := hex.DecodeString("01000000040d008f68689ec1cef3f53d7a20e83b6f42346ddcdcaff1c8f9435905a674949621b73a37e803e65f213564d2b019964ad3b66586c2f8255c5308dde4444759e702ef01024d6b7e7b74d6d56d11ee0fd59468142a7566cf019cc57dd63c010dbdfd32da155d8d4fc3bf6404ff26bfd754b96f7c2426e680acb99a224687ba819e289d92d401040feda4402fdf099b7aa50553aa9bdd991724d25309ae325fbd56ec13136f83bc0fc4129ecee55d08c38257d6bc7465cf21568212e9199ab1e4e28001baeaf2b0000634097288b9f9570af929f1cc52bb966430d1606f13c916180f86ff2e0467b49e2e05d299fa24150f7f478319b39b03815b8a23f52e8e6c994d6bdd6a544607bf0007bb7b6393e60523997c2d2f999a4ce2d57a2958dca25284a966c4abb0c097284324d1329d9eb75b4d1d24601a3ed5b94571ee57b9fb4c873ce5bcc398505f5694000844d5fe1672a004612c436c9fffd2c2c8bbe09e827754cef20b81dd65f9094e9a757888203b0f84747f2a1259e1699a3605b7320202011875b8b497584c4b253500092badc4d98dd77ef6b55d189d74c8191f32a374c450cfaea380951cf266683bd7097f5ada2e3fe5747baa99cc4db933e12f9b3270739230b834fa19c8da962612000a6d08e0b4a6bf5e59ae96c63169f2566a839aa7eee125ff31536f797fa1a4174a158be54f31c583453025fba6b768e2aad6966871ea367d11958f1aa683ec913a000d5a69c9968066e471726fe59633df72ecad6737b931754314ebde14fcf4b723b97ab58774aad432e3aa75896ec4620a07b3041ca531a5b67a1eb40805cd05f222010eb82dc0abf7c87bceb03ded9d83186eb3cd3082d042eaed3b1c05f69f13aeeffa7e93a224100acc12f1425feb63e235b63b38ca6e3507847f099ec41b8aea0453010f55af1b26a5c2b704aa064dad6db5105fa5c75816732da3ecdad1dc285eda6e043aaa37f5f5e1d613c4df5a15a82c347e6badde62382d16f9b1be58e93fb157a30011d63eac9a9c84d01a32fb03f12ae113fd28201682eec627d56db30496a837ed086560b674c2e305235eba76e20260afd566ee4c2125a1e8366aa1ca46415f504401129ed9924a060e5e83ac17076fd01204b5b35c6a0d754dd5ab27f8a4d7d3451b8710708fa090525ecbfeba2e72bdaff0ffecd0e71ab02f10c5bf74bea76e54efeb0166856d4400000001000175233cdd3dab6c9f3134860c2b2443e80072b0880a3405b2bd87234f024711bc0000000000002a1f200301000000000000a62c00000005000000000000000000000000aa446e32b8c1f1bb82e6a548c6baf54654ebe9110000000000000000000000000000348b") + require.NoError(t, err) + v, err := vaa.Unmarshal(vaaBytes) + require.NoError(t, err) + + logger := zap.NewNop() + + tokenBridges, tokenBridgeAddress, err := buildTokenBridgeMap(logger, common.MainNet) + require.NoError(t, err) + require.NotNil(t, tokenBridges) + require.Equal(t, tokenBridgeAddress, "wormhole1466nf3zuxpya8q9emxukd7vftaf6h4psr0a07srl5zw74zh84yjq4lyjmh") + + targetAddress, err := convertBech32AddressToWormhole("wormhole14hj2tavq8fpesdwxxcu44rty3hh90vhujrvcmstl4zr3txmfvw9srrg465") + require.NoError(t, err) + + shouldPub, err := shouldPublishToIbcTranslator(tokenBridges, v, vaa.ChainIDWormchain, targetAddress) + assert.NoError(t, err) + assert.False(t, shouldPub) +} + +func Test_canIgnoreFailure(t *testing.T) { + assert.True(t, canIgnoreFailure("failed to execute message; message index: 0: Generic error: VaaAlreadyExecuted: execute wasm contract failed")) + assert.True(t, canIgnoreFailure("failed to execute message; message index: 0: Generic error: this asset has already been attested: execute wasm contract failed")) + assert.False(t, canIgnoreFailure("failed to execute message; message index: 0: Generic error: some other failure: execute wasm contract failed")) +} diff --git a/node/pkg/node/node.go b/node/pkg/node/node.go index d957db3218..3bb934d2de 100644 --- a/node/pkg/node/node.go +++ b/node/pkg/node/node.go @@ -20,13 +20,24 @@ import ( ) const ( - // gossipSendBufferSize configures the size of the gossip network send buffer - gossipSendBufferSize = 5000 + // gossipControlSendBufferSize configures the size of the gossip network send buffer + gossipControlSendBufferSize = 100 + + // gossipAttestationSendBufferSize configures the size of the gossip network send buffer + gossipAttestationSendBufferSize = 5000 + + // gossipVaaSendBufferSize configures the size of the gossip network send buffer + gossipVaaSendBufferSize = 5000 // inboundObservationBufferSize configures the size of the obsvC channel that contains observations from other Guardians. // One observation takes roughly 0.1ms to process on one core, so the whole queue could be processed in 1s inboundObservationBufferSize = 10000 + // inboundBatchObservationBufferSize configures the size of the batchObsvC channel that contains batches of observations from other Guardians. + // Since a batch contains many observations, the guardians should not be publishing too many of these. With 19 guardians, we would expect 19 messages + // per second during normal operations. However, since some messages get published immediately, we need to allow extra room. + inboundBatchObservationBufferSize = 1000 + // inboundSignedVaaBufferSize configures the size of the signedInC channel that contains VAAs from other Guardians. // One VAA takes roughly 0.01ms to process if we already have one in the database and 2ms if we don't. // So in the worst case the entire queue can be processed in 2s. @@ -69,10 +80,14 @@ type G struct { runnables map[string]supervisor.Runnable // various channels - // Outbound gossip message queue (needs to be read/write because p2p needs read/write) - gossipSendC chan []byte + // Outbound gossip message queues (need to be read/write because p2p needs read/write) + gossipControlSendC chan []byte + gossipAttestationSendC chan []byte + gossipVaaSendC chan []byte // Inbound observations. This is read/write because the processor also writes to it as a fast-path when handling locally made observations. obsvC chan *common.MsgWithTimeStamp[gossipv1.SignedObservation] + // Inbound observation batches. + batchObsvC channelPair[*common.MsgWithTimeStamp[gossipv1.SignedObservationBatch]] // Finalized guardian observations aggregated across all chains msgC channelPair[*common.MessagePublication] // Ethereum incoming guardian set updates @@ -109,8 +124,11 @@ func (g *G) initializeBasic(rootCtxCancel context.CancelFunc) { g.rootCtxCancel = rootCtxCancel // Setup various channels... - g.gossipSendC = make(chan []byte, gossipSendBufferSize) + g.gossipControlSendC = make(chan []byte, gossipControlSendBufferSize) + g.gossipAttestationSendC = make(chan []byte, gossipAttestationSendBufferSize) + g.gossipVaaSendC = make(chan []byte, gossipVaaSendBufferSize) g.obsvC = make(chan *common.MsgWithTimeStamp[gossipv1.SignedObservation], inboundObservationBufferSize) + g.batchObsvC = makeChannelPair[*common.MsgWithTimeStamp[gossipv1.SignedObservationBatch]](inboundBatchObservationBufferSize) g.msgC = makeChannelPair[*common.MessagePublication](0) g.setC = makeChannelPair[*common.GuardianSet](1) // This needs to be a buffered channel because of a circular dependency between processor and accountant during startup. g.signedInC = makeChannelPair[*gossipv1.SignedVAAWithQuorum](inboundSignedVaaBufferSize) diff --git a/node/pkg/node/node_test.go b/node/pkg/node/node_test.go index a0e47ea79f..9c74be7af4 100644 --- a/node/pkg/node/node_test.go +++ b/node/pkg/node/node_test.go @@ -188,15 +188,15 @@ func mockGuardianRunnable(t testing.TB, gs []*mockGuardian, mockGuardianIndex ui GuardianOptionDatabase(db), GuardianOptionWatchers(watcherConfigs, nil), GuardianOptionNoAccountant(), // disable accountant - GuardianOptionGovernor(true), + GuardianOptionGovernor(true, false), GuardianOptionGatewayRelayer("", nil), // disable gateway relayer - GuardianOptionP2P(gs[mockGuardianIndex].p2pKey, networkID, bootstrapPeers, nodeName, false, cfg.p2pPort, "", 0, "", "", func() string { return "" }), + GuardianOptionP2P(gs[mockGuardianIndex].p2pKey, networkID, bootstrapPeers, nodeName, false, false, cfg.p2pPort, "", 0, "", "", func() string { return "" }), GuardianOptionPublicRpcSocket(cfg.publicSocket, publicRpcLogDetail), GuardianOptionPublicrpcTcpService(cfg.publicRpc, publicRpcLogDetail), GuardianOptionPublicWeb(cfg.publicWeb, cfg.publicSocket, "", false, ""), GuardianOptionAdminService(cfg.adminSocket, nil, nil, rpcMap), GuardianOptionStatusServer(fmt.Sprintf("[::]:%d", cfg.statusPort)), - GuardianOptionProcessor(), + GuardianOptionProcessor(networkID), } guardianNode := NewGuardianNode( @@ -669,10 +669,10 @@ func runConsensusTests(t *testing.T, testCases []testCase, numGuardians int) { supervisor.Signal(ctx, supervisor.SignalHealthy) // Inform them of the Guardian Set - commonGuardianSet := common.GuardianSet{ - Keys: mockGuardianSetToGuardianAddrList(t, gs), - Index: guardianSetIndex, - } + commonGuardianSet := *common.NewGuardianSet( + mockGuardianSetToGuardianAddrList(t, gs), + guardianSetIndex, + ) for i, g := range gs { logger.Info("Sending guardian set update", zap.Int("guardian_index", i)) g.MockSetC <- &commonGuardianSet @@ -939,54 +939,64 @@ func runGuardianConfigTests(t *testing.T, testCases []testCaseGuardianConfig) { // because we're only instantiating the guardians and kill them right after they started running, 2s should be plenty of time const testTimeout = time.Second * 2 - // Test's main lifecycle context. - rootCtx, rootCtxCancel := context.WithTimeout(context.Background(), testTimeout) - defer rootCtxCancel() + func() { + // Test's main lifecycle context. + rootCtx, rootCtxCancel := context.WithTimeout(context.Background(), testTimeout) + defer rootCtxCancel() + + // we need to catch a zap.Logger.Fatal() here. + // By default zap.Logger.Fatal() will os.Exit(1), which we can't catch. + // We modify zap's behavior to instead assert that the error is the one we're looking for and then panic + // The panic will be subsequently caught by the supervisor + fatalHook := make(fatalHook) + defer close(fatalHook) + zapLogger, zapObserver, _ := setupLogsCapture(t, zap.WithFatalHook(fatalHook)) + + supervisor.New(rootCtx, zapLogger, func(ctx context.Context) error { + // Create a sub-context with cancel function that we can pass to G.run. + ctx, ctxCancel := context.WithCancel(ctx) + defer ctxCancel() + + if err := supervisor.Run(ctx, tc.name, NewGuardianNode(common.GoTest, nil).Run(ctxCancel, tc.opts...)); err != nil { + panic(err) + } - // we need to catch a zap.Logger.Fatal() here. - // By default zap.Logger.Fatal() will os.Exit(1), which we can't catch. - // We modify zap's behavior to instead assert that the error is the one we're looking for and then panic - // The panic will be subsequently caught by the supervisor - fatalHook := make(fatalHook) - defer close(fatalHook) - zapLogger, zapObserver, _ := setupLogsCapture(t, zap.WithFatalHook(fatalHook)) + supervisor.Signal(ctx, supervisor.SignalHealthy) - supervisor.New(rootCtx, zapLogger, func(ctx context.Context) error { - // Create a sub-context with cancel function that we can pass to G.run. - ctx, ctxCancel := context.WithCancel(ctx) - defer ctxCancel() + // wait for all options to get applied + // If we were expecting an error, we should never get past this point. + for len(zapObserver.FilterMessage("GuardianNode initialization done.").All()) == 0 { + time.Sleep(time.Millisecond * 10) + } - if err := supervisor.Run(ctx, tc.name, NewGuardianNode(common.GoTest, nil).Run(ctxCancel, tc.opts...)); err != nil { - panic(err) - } + // Test done. + logger.Info("Test done.") + supervisor.Signal(ctx, supervisor.SignalDone) + rootCtxCancel() - supervisor.Signal(ctx, supervisor.SignalHealthy) + return nil + }) - // wait for all options to get applied - // If we were expecting an error, we should never get past this point. - for len(zapObserver.FilterMessage("GuardianNode initialization done.").All()) == 0 { - time.Sleep(time.Millisecond * 10) + select { + case r := <-fatalHook: + if tc.err == "" { + assert.Equal(t, tc.err, r) + } + assert.Contains(t, r, tc.err) + rootCtxCancel() + case <-rootCtx.Done(): + assert.NotEqual(t, rootCtx.Err(), context.DeadlineExceeded) + assert.Equal(t, tc.err, "") // we only want to end up here if we did not expect an error. } - // Test done. - logger.Info("Test done.") - supervisor.Signal(ctx, supervisor.SignalDone) - rootCtxCancel() - - return nil - }) - - select { - case r := <-fatalHook: - if tc.err == "" { - assert.Equal(t, tc.err, r) + // There is a race condition where the logger can get destroyed before the supervisor finishes logging on exit. Wait for the last log message from the supervisor. + count := 0 + for len(zapObserver.FilterMessage("supervisor exited").All()) == 0 { + time.Sleep(time.Millisecond * 10) + count++ + assert.Greater(t, 100, count) } - assert.Contains(t, r, tc.err) - rootCtxCancel() - case <-rootCtx.Done(): - assert.NotEqual(t, rootCtx.Err(), context.DeadlineExceeded) - assert.Equal(t, tc.err, "") // we only want to end up here if we did not expect an error. - } + }() } } @@ -1183,10 +1193,10 @@ func runConsensusBenchmark(t *testing.B, name string, numGuardians int, numMessa supervisor.Signal(ctx, supervisor.SignalHealthy) // Inform them of the Guardian Set - commonGuardianSet := common.GuardianSet{ - Keys: mockGuardianSetToGuardianAddrList(t, gs), - Index: guardianSetIndex, - } + commonGuardianSet := *common.NewGuardianSet( + mockGuardianSetToGuardianAddrList(t, gs), + guardianSetIndex, + ) for i, g := range gs { logger.Info("Sending guardian set update", zap.Int("guardian_index", i)) g.MockSetC <- &commonGuardianSet diff --git a/node/pkg/node/options.go b/node/pkg/node/options.go index c84147bf32..48f2e8c5af 100644 --- a/node/pkg/node/options.go +++ b/node/pkg/node/options.go @@ -39,7 +39,20 @@ type GuardianOption struct { // GuardianOptionP2P configures p2p networking. // Dependencies: Accountant, Governor -func GuardianOptionP2P(p2pKey libp2p_crypto.PrivKey, networkId, bootstrapPeers, nodeName string, disableHeartbeatVerify bool, port uint, ccqBootstrapPeers string, ccqPort uint, ccqAllowedPeers, gossipAdvertiseAddress string, ibcFeaturesFunc func() string) *GuardianOption { +func GuardianOptionP2P( + p2pKey libp2p_crypto.PrivKey, + networkId string, + bootstrapPeers string, + nodeName string, + subscribeToVAAs bool, + disableHeartbeatVerify bool, + port uint, + ccqBootstrapPeers string, + ccqPort uint, + ccqAllowedPeers string, + gossipAdvertiseAddress string, + ibcFeaturesFunc func() string, +) *GuardianOption { return &GuardianOption{ name: "p2p", dependencies: []string{"accountant", "governor", "gateway-relayer"}, @@ -47,6 +60,12 @@ func GuardianOptionP2P(p2pKey libp2p_crypto.PrivKey, networkId, bootstrapPeers, components := p2p.DefaultComponents() components.Port = port + var signedInC chan<- *gossipv1.SignedVAAWithQuorum + if subscribeToVAAs { + logger.Info("subscribing to incoming signed VAAs") + signedInC = g.signedInC.writeC + } + if g.env == common.GoTest { components.WarnChannelOverflow = true components.SignedHeartbeatLogLevel = zapcore.InfoLevel @@ -55,33 +74,43 @@ func GuardianOptionP2P(p2pKey libp2p_crypto.PrivKey, networkId, bootstrapPeers, // Add the gossip advertisement address components.GossipAdvertiseAddress = gossipAdvertiseAddress - g.runnables["p2p"] = p2p.Run( - g.obsvC, - g.obsvReqC.writeC, - g.obsvReqSendC.readC, - g.gossipSendC, - g.signedInC.writeC, + params, err := p2p.NewRunParams( + bootstrapPeers, + networkId, p2pKey, - g.gk, g.gst, - networkId, - bootstrapPeers, - nodeName, - disableHeartbeatVerify, g.rootCtxCancel, - g.acct, - g.gov, - nil, - nil, - components, - ibcFeaturesFunc, - (g.gatewayRelayer != nil), - (g.queryHandler != nil), - g.signedQueryReqC.writeC, - g.queryResponsePublicationC.readC, - ccqBootstrapPeers, - ccqPort, - ccqAllowedPeers, + p2p.WithGuardianOptions( + nodeName, + g.gk, + g.obsvC, + g.batchObsvC.writeC, + signedInC, + g.obsvReqC.writeC, + g.gossipControlSendC, + g.gossipAttestationSendC, + g.gossipVaaSendC, + g.obsvReqSendC.readC, + g.acct, + g.gov, + disableHeartbeatVerify, + components, + ibcFeaturesFunc, + (g.gatewayRelayer != nil), // gatewayRelayerEnabled, + (g.queryHandler != nil), // ccqEnabled, + g.signedQueryReqC.writeC, + g.queryResponsePublicationC.readC, + ccqBootstrapPeers, + ccqPort, + ccqAllowedPeers), + p2p.WithProcessorFeaturesFunc(processor.GetFeatures), + ) + if err != nil { + return err + } + + g.runnables["p2p"] = p2p.Run( + params, ) return nil @@ -189,14 +218,18 @@ func GuardianOptionAccountant( // GuardianOptionGovernor enables or disables the governor. // Dependencies: db -func GuardianOptionGovernor(governorEnabled bool) *GuardianOption { +func GuardianOptionGovernor(governorEnabled bool, flowCancelEnabled bool) *GuardianOption { return &GuardianOption{ name: "governor", dependencies: []string{"db"}, f: func(ctx context.Context, logger *zap.Logger, g *G) error { if governorEnabled { - logger.Info("chain governor is enabled") - g.gov = governor.NewChainGovernor(logger, g.db, g.env) + if flowCancelEnabled { + logger.Info("chain governor is enabled with flow cancel enabled") + } else { + logger.Info("chain governor is enabled without flow cancel") + } + g.gov = governor.NewChainGovernor(logger, g.db, g.env, flowCancelEnabled) } else { logger.Info("chain governor is disabled") } @@ -542,7 +575,7 @@ func GuardianOptionDatabase(db *db.Database) *GuardianOption { // GuardianOptionProcessor enables the default processor, which is required to make consensus on messages. // Dependencies: db, governor, accountant -func GuardianOptionProcessor() *GuardianOption { +func GuardianOptionProcessor(networkId string) *GuardianOption { return &GuardianOption{ name: "processor", // governor and accountant may be set to nil, but that choice needs to be made before the processor is configured @@ -554,8 +587,10 @@ func GuardianOptionProcessor() *GuardianOption { g.db, g.msgC.readC, g.setC.readC, - g.gossipSendC, + g.gossipAttestationSendC, + g.gossipVaaSendC, g.obsvC, + g.batchObsvC.readC, g.obsvReqSendC.writeC, g.signedInC.readC, g.gk, @@ -564,6 +599,7 @@ func GuardianOptionProcessor() *GuardianOption { g.acct, g.acctC.readC, g.gatewayRelayer, + networkId, ).Run return nil diff --git a/node/pkg/p2p/gossip_cutover.go b/node/pkg/p2p/gossip_cutover.go new file mode 100644 index 0000000000..8629644e84 --- /dev/null +++ b/node/pkg/p2p/gossip_cutover.go @@ -0,0 +1,87 @@ +package p2p + +import ( + "fmt" + "strings" + "sync/atomic" + "time" + + "go.uber.org/zap" +) + +// The format of this time is very picky. Please use the exact format specified by cutOverFmtStr! +const mainnetCutOverTimeStr = "" +const testnetCutOverTimeStr = "" +const devnetCutOverTimeStr = "" +const cutOverFmtStr = "2006-01-02T15:04:05-0700" + +// gossipCutoverCompleteFlag indicates if the cutover time has passed, meaning we should publish only on the new topics. +var gossipCutoverCompleteFlag atomic.Bool + +// GossipCutoverComplete returns true if the cutover time has passed, meaning we should publish on the new topic. +func GossipCutoverComplete() bool { + return gossipCutoverCompleteFlag.Load() +} + +// evaluateCutOver determines if the gossip cutover time has passed yet and sets the global flag accordingly. If the time has +// not yet passed, it creates a go routine to wait for that time and then set the flag. +func evaluateGossipCutOver(logger *zap.Logger, networkID string) error { + cutOverTimeStr := getCutOverTimeStr(networkID) + + sco, delay, err := evaluateGossipCutOverImpl(logger, cutOverTimeStr, time.Now()) + if err != nil { + return err + } + + gossipCutoverCompleteFlag.Store(sco) + logger.Info("evaluated cutover flag", zap.Bool("cutOverFlag", GossipCutoverComplete()), zap.String("cutOverTime", cutOverTimeStr), zap.String("component", "p2pco")) + + if delay != time.Duration(0) { + // Wait for the cut over time and then update the flag. + go func() { + time.Sleep(delay) + logger.Info("time to cut over to new gossip topics", zap.String("cutOverTime", cutOverTimeStr), zap.String("component", "p2pco")) + gossipCutoverCompleteFlag.Store(true) + }() + } + + return nil +} + +// evaluateGossipCutOverImpl performs the actual cut over check. It is a separate function for testing purposes. +func evaluateGossipCutOverImpl(logger *zap.Logger, cutOverTimeStr string, now time.Time) (bool, time.Duration, error) { + if cutOverTimeStr == "" { + return false, 0, nil + } + + cutOverTime, err := time.Parse(cutOverFmtStr, cutOverTimeStr) + if err != nil { + return false, 0, fmt.Errorf(`failed to parse cut over time: %w`, err) + } + + if cutOverTime.Before(now) { + logger.Info("cut over time has passed, should use new gossip topics", zap.String("cutOverTime", cutOverTime.Format(cutOverFmtStr)), zap.String("now", now.Format(cutOverFmtStr)), zap.String("component", "p2pco")) + return true, 0, nil + } + + // If we get here, we need to wait for the cutover and then switch the global flag. + delay := cutOverTime.Sub(now) + logger.Info("still waiting for cut over time", + zap.Stringer("cutOverTime", cutOverTime), + zap.String("now", now.Format(cutOverFmtStr)), + zap.Stringer("delay", delay), + zap.String("component", "p2pco")) + + return false, delay, nil +} + +// getCutOverTimeStr returns the cut over time string based on the network ID passed in. +func getCutOverTimeStr(networkID string) string { //nolint:unparam + if strings.Contains(networkID, "/mainnet/") { + return mainnetCutOverTimeStr + } + if strings.Contains(networkID, "/testnet/") { + return testnetCutOverTimeStr + } + return devnetCutOverTimeStr +} diff --git a/node/pkg/p2p/gossip_cutover_test.go b/node/pkg/p2p/gossip_cutover_test.go new file mode 100644 index 0000000000..f398985b08 --- /dev/null +++ b/node/pkg/p2p/gossip_cutover_test.go @@ -0,0 +1,81 @@ +package p2p + +import ( + "testing" + "time" + + "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" + "go.uber.org/zap" +) + +func TestVerifyCutOverTime(t *testing.T) { + if mainnetCutOverTimeStr != "" { + _, err := time.Parse(cutOverFmtStr, mainnetCutOverTimeStr) + require.NoError(t, err) + } + if testnetCutOverTimeStr != "" { + _, err := time.Parse(cutOverFmtStr, testnetCutOverTimeStr) + require.NoError(t, err) + } + if devnetCutOverTimeStr != "" { + _, err := time.Parse(cutOverFmtStr, devnetCutOverTimeStr) + require.NoError(t, err) + } +} + +func TestGetCutOverTimeStr(t *testing.T) { + assert.Equal(t, mainnetCutOverTimeStr, getCutOverTimeStr("blah/blah/mainnet/blah")) + assert.Equal(t, testnetCutOverTimeStr, getCutOverTimeStr("blah/blah/testnet/blah")) + assert.Equal(t, devnetCutOverTimeStr, getCutOverTimeStr("blah/blah/devnet/blah")) +} + +func TestCutOverDisabled(t *testing.T) { + logger := zap.NewNop() + + cutOverTimeStr := "" + now, err := time.Parse(cutOverFmtStr, "2023-10-06T18:19:00-0000") + require.NoError(t, err) + + cuttingOver, delay, err := evaluateGossipCutOverImpl(logger, cutOverTimeStr, now) + require.NoError(t, err) + assert.False(t, cuttingOver) + assert.Equal(t, time.Duration(0), delay) +} + +func TestCutOverInvalidTime(t *testing.T) { + logger := zap.NewNop() + + cutOverTimeStr := "Hello World" + now, err := time.Parse(cutOverFmtStr, "2023-10-06T18:19:00-0000") + require.NoError(t, err) + + _, _, err = evaluateGossipCutOverImpl(logger, cutOverTimeStr, now) + require.EqualError(t, err, `failed to parse cut over time: parsing time "Hello World" as "2006-01-02T15:04:05-0700": cannot parse "Hello World" as "2006"`) +} + +func TestCutOverAlreadyHappened(t *testing.T) { + logger := zap.NewNop() + + cutOverTimeStr := "2023-10-06T18:18:00-0000" + now, err := time.Parse(cutOverFmtStr, "2023-10-06T18:19:00-0000") + require.NoError(t, err) + + cuttingOver, delay, err := evaluateGossipCutOverImpl(logger, cutOverTimeStr, now) + require.NoError(t, err) + assert.True(t, cuttingOver) + assert.Equal(t, time.Duration(0), delay) +} + +func TestCutOverDelayRequired(t *testing.T) { + logger := zap.NewNop() + + cutOverTimeStr := "2023-10-06T18:18:00-0000" + now, err := time.Parse(cutOverFmtStr, "2023-10-06T17:18:00-0000") + require.NoError(t, err) + + cuttingOver, delay, err := evaluateGossipCutOverImpl(logger, cutOverTimeStr, now) + require.NoError(t, err) + assert.False(t, cuttingOver) + assert.Equal(t, time.Duration(60*time.Minute), delay) +} diff --git a/node/pkg/p2p/network_consts.go b/node/pkg/p2p/network_consts.go index 63696b00d3..5935620458 100644 --- a/node/pkg/p2p/network_consts.go +++ b/node/pkg/p2p/network_consts.go @@ -12,8 +12,8 @@ const MainnetBootstrapPeers = "/dns4/wormhole-v2-mainnet-bootstrap.xlabs.xyz/udp const MainnetCcqBootstrapPeers = "/dns4/wormhole-v2-mainnet-bootstrap.xlabs.xyz/udp/8996/quic/p2p/12D3KooWNQ9tVrcb64tw6bNs2CaNrUGPM7yRrKvBBheQ5yCyPHKC,/dns4/wormhole.mcf.rocks/udp/8996/quic/p2p/12D3KooWDZVv7BhZ8yFLkarNdaSWaB43D6UbQwExJ8nnGAEmfHcU,/dns4/wormhole-v2-mainnet-bootstrap.staking.fund/udp/8996/quic/p2p/12D3KooWG8obDX9DNi1KUwZNu9xkGwfKqTp2GFwuuHpWZ3nQruS1" const TestnetNetworkId = "/wormhole/testnet/2/1" -const TestnetBootstrapPeers = "/dns4/t-guardian-01.nodes.stable.io/udp/8999/quic/p2p/12D3KooWCW3LGUtkCVkHZmVSZHzL3C4WRKWfqAiJPz1NR7dT9Bxh,/dns4/t-guardian-02.nodes.stable.io/udp/8999/quic/p2p/12D3KooWJXA6goBCiWM8ucjzc4jVUBSqL9Rri6UpjHbkMPErz5zK,/dns4/p2p-guardian-testnet-1.solana.p2p.org/udp/8999/quic/p2p/12D3KooWE4dmZwxhfjCKHLUqSaww96Cf7kmq1ZuKmzPz3MrJgZxp" -const TestnetCcqBootstrapPeers = "/dns4/t-guardian-01.nodes.stable.io/udp/8996/quic/p2p/12D3KooWCW3LGUtkCVkHZmVSZHzL3C4WRKWfqAiJPz1NR7dT9Bxh,/dns4/t-guardian-02.nodes.stable.io/udp/8996/quic/p2p/12D3KooWJXA6goBCiWM8ucjzc4jVUBSqL9Rri6UpjHbkMPErz5zK,/dns4/p2p-guardian-testnet-1.solana.p2p.org/udp/8996/quic/p2p/12D3KooWE4dmZwxhfjCKHLUqSaww96Cf7kmq1ZuKmzPz3MrJgZxp" +const TestnetBootstrapPeers = "/dns4/t-guardian-01.testnet.xlabs.xyz/udp/8999/quic/p2p/12D3KooWCW3LGUtkCVkHZmVSZHzL3C4WRKWfqAiJPz1NR7dT9Bxh,/dns4/t-guardian-02.testnet.xlabs.xyz/udp/8999/quic/p2p/12D3KooWJXA6goBCiWM8ucjzc4jVUBSqL9Rri6UpjHbkMPErz5zK,/dns4/p2p-guardian-testnet-1.solana.p2p.org/udp/8999/quic/p2p/12D3KooWE4dmZwxhfjCKHLUqSaww96Cf7kmq1ZuKmzPz3MrJgZxp" +const TestnetCcqBootstrapPeers = "/dns4/t-guardian-01.testnet.xlabs.xyz/udp/8996/quic/p2p/12D3KooWCW3LGUtkCVkHZmVSZHzL3C4WRKWfqAiJPz1NR7dT9Bxh,/dns4/t-guardian-02.testnet.xlabs.xyz/udp/8996/quic/p2p/12D3KooWJXA6goBCiWM8ucjzc4jVUBSqL9Rri6UpjHbkMPErz5zK,/dns4/p2p-guardian-testnet-1.solana.p2p.org/udp/8996/quic/p2p/12D3KooWE4dmZwxhfjCKHLUqSaww96Cf7kmq1ZuKmzPz3MrJgZxp" // The Devnet bootstrap peers are derived from the guardian key so we can't include them here. const DevnetNetworkId = "/wormhole/dev" diff --git a/node/pkg/p2p/p2p.go b/node/pkg/p2p/p2p.go index 7f01c2bb51..486496e833 100644 --- a/node/pkg/p2p/p2p.go +++ b/node/pkg/p2p/p2p.go @@ -10,10 +10,7 @@ import ( "sync" "time" - "github.com/certusone/wormhole/node/pkg/accountant" "github.com/certusone/wormhole/node/pkg/common" - "github.com/certusone/wormhole/node/pkg/governor" - "github.com/certusone/wormhole/node/pkg/query" "github.com/certusone/wormhole/node/pkg/version" eth_common "github.com/ethereum/go-ethereum/common" ethcrypto "github.com/ethereum/go-ethereum/crypto" @@ -27,6 +24,7 @@ import ( "github.com/libp2p/go-libp2p" dht "github.com/libp2p/go-libp2p-kad-dht" pubsub "github.com/libp2p/go-libp2p-pubsub" + libp2ppb "github.com/libp2p/go-libp2p-pubsub/pb" "github.com/libp2p/go-libp2p/core/crypto" "github.com/libp2p/go-libp2p/core/host" "github.com/libp2p/go-libp2p/core/protocol" @@ -50,17 +48,23 @@ const P2P_SUBSCRIPTION_BUFFER_SIZE = 1024 // TESTNET_BOOTSTRAP_DHI configures how many nodes may connect to the testnet bootstrap node. This number should not exceed HighWaterMark. const TESTNET_BOOTSTRAP_DHI = 350 +// MaxObservationBatchSize is the maximum number of observations that will fit in a single `SignedObservationBatch` message. +const MaxObservationBatchSize = 4000 + +// MaxObservationBatchDelay is the longest we will wait before publishing any queued up observations. +const MaxObservationBatchDelay = time.Second + var ( p2pHeartbeatsSent = promauto.NewCounter( prometheus.CounterOpts{ Name: "wormhole_p2p_heartbeats_sent_total", Help: "Total number of p2p heartbeats sent", }) - p2pMessagesSent = promauto.NewCounter( + p2pMessagesSent = promauto.NewCounterVec( prometheus.CounterOpts{ Name: "wormhole_p2p_broadcast_messages_sent_total", Help: "Total number of p2p pubsub broadcast messages sent", - }) + }, []string{"type"}) p2pMessagesReceived = promauto.NewCounterVec( prometheus.CounterOpts{ Name: "wormhole_p2p_broadcast_messages_received_total", @@ -71,6 +75,11 @@ var ( Name: "wormhole_p2p_receive_channel_overflow", Help: "Total number of p2p received messages dropped due to channel overflow", }, []string{"type"}) + p2pDrop = promauto.NewCounter( + prometheus.CounterOpts{ + Name: "wormhole_p2p_drops", + Help: "Total number of messages that were dropped by libp2p", + }) ) var heartbeatMessagePrefix = []byte("heartbeat|") @@ -102,6 +111,7 @@ type Components struct { // is only accessed by a single routine at any given time in a running Guardian. ProtectedHostByGuardianKeyLock sync.Mutex // WarnChannelOverflow: If true, errors due to overflowing channels will produce logger.Warn + // WARNING: This should not be enabled in production. It is only used in node tests to watch for overflows. WarnChannelOverflow bool // SignedHeartbeatLogLevel is the log level at which SignedHeartbeatReceived events will be logged. SignedHeartbeatLogLevel zapcore.Level @@ -155,6 +165,19 @@ func DefaultConnectionManager() (*connmgr.BasicConnMgr, error) { ) } +// traceHandler is used to intercept libp2p trace events so we can peg metrics. +type traceHandler struct { +} + +// Trace is the interface to the libp2p trace handler. It pegs metrics as appropriate. +func (*traceHandler) Trace(evt *libp2ppb.TraceEvent) { + if evt.Type != nil { + if *evt.Type == libp2ppb.TraceEvent_DROP_RPC { + p2pDrop.Inc() + } + } +} + // BootstrapAddrs takes a comma-separated string of multi-address strings and returns an array of []peer.AddrInfo that does not include `self`. // if `self` is part of `bootstrapPeers`, return isBootstrapNode=true func BootstrapAddrs(logger *zap.Logger, bootstrapPeers string, self peer.ID) (bootstrappers []peer.AddrInfo, isBootstrapNode bool) { @@ -267,53 +290,45 @@ func NewHost(logger *zap.Logger, ctx context.Context, networkID string, bootstra return h, err } -func Run( - obsvC chan<- *common.MsgWithTimeStamp[gossipv1.SignedObservation], - obsvReqC chan<- *gossipv1.ObservationRequest, - obsvReqSendC <-chan *gossipv1.ObservationRequest, - gossipSendC chan []byte, - signedInC chan<- *gossipv1.SignedVAAWithQuorum, - priv crypto.PrivKey, - gk *ecdsa.PrivateKey, - gst *common.GuardianSetState, - networkID string, - bootstrapPeers string, - nodeName string, - disableHeartbeatVerify bool, - rootCtxCancel context.CancelFunc, - acct *accountant.Accountant, - gov *governor.ChainGovernor, - signedGovCfg chan *gossipv1.SignedChainGovernorConfig, - signedGovSt chan *gossipv1.SignedChainGovernorStatus, - components *Components, - ibcFeaturesFunc func() string, - gatewayRelayerEnabled bool, - ccqEnabled bool, - signedQueryReqC chan<- *gossipv1.SignedQueryRequest, - queryResponseReadC <-chan *query.QueryResponsePublication, - ccqBootstrapPeers string, - ccqPort uint, - ccqAllowedPeers string, -) func(ctx context.Context) error { - if components == nil { - components = DefaultComponents() +func Run(params *RunParams) func(ctx context.Context) error { + if params == nil { + return func(ctx context.Context) error { + return errors.New("params may not be nil") + } + } + if params.components == nil { + params.components = DefaultComponents() } return func(ctx context.Context) error { + p2pMessagesSent.WithLabelValues("control").Add(0) + p2pMessagesSent.WithLabelValues("attestation").Add(0) + p2pMessagesSent.WithLabelValues("vaa").Add(0) p2pReceiveChannelOverflow.WithLabelValues("observation").Add(0) + p2pReceiveChannelOverflow.WithLabelValues("batch_observation").Add(0) p2pReceiveChannelOverflow.WithLabelValues("signed_vaa_with_quorum").Add(0) p2pReceiveChannelOverflow.WithLabelValues("signed_observation_request").Add(0) logger := supervisor.Logger(ctx) + // Evaluate the gossip cutover time. If it has passed, then the flag will be set to make us publish on the new topics. + // If not, a routine will be started to wait for that time before starting to publish on the new topics. + cutoverErr := evaluateGossipCutOver(logger, params.networkID) + if cutoverErr != nil { + panic(cutoverErr) + } + + // If the cutover has not happened yet, we need to join and subscribe to the VAA topic because it is also the old topic. + needOldTopic := !GossipCutoverComplete() + defer func() { // TODO: Right now we're canceling the root context because it used to be the case that libp2p cannot be cleanly restarted. // But that seems to no longer be the case. We may want to revisit this. See (https://github.com/libp2p/go-libp2p/issues/992) for background. logger.Warn("p2p routine has exited, cancelling root context...") - rootCtxCancel() + params.rootCtxCancel() }() - h, err := NewHost(logger, ctx, networkID, bootstrapPeers, components, priv) + h, err := NewHost(logger, ctx, params.networkID, params.bootstrapPeers, params.components, params.priv) if err != nil { panic(err) } @@ -329,45 +344,107 @@ func Run( panic(err) } - topic := fmt.Sprintf("%s/%s", networkID, "broadcast") - - bootstrappers, bootstrapNode := BootstrapAddrs(logger, bootstrapPeers, h.ID()) + bootstrappers, bootstrapNode := BootstrapAddrs(logger, params.bootstrapPeers, h.ID()) if bootstrapNode { logger.Info("We are a bootstrap node.") - if networkID == "/wormhole/testnet/2/1" { - components.GossipParams.Dhi = TESTNET_BOOTSTRAP_DHI - logger.Info("We are a bootstrap node in Testnet. Setting gossipParams.Dhi.", zap.Int("gossipParams.Dhi", components.GossipParams.Dhi)) + if params.networkID == "/wormhole/testnet/2/1" { + params.components.GossipParams.Dhi = TESTNET_BOOTSTRAP_DHI + logger.Info("We are a bootstrap node in Testnet. Setting gossipParams.Dhi.", zap.Int("gossipParams.Dhi", params.components.GossipParams.Dhi)) } } - logger.Info("Subscribing pubsub topic", zap.String("topic", topic)) + logger.Info("connecting to pubsub") + ourTracer := &traceHandler{} ps, err := pubsub.NewGossipSub(ctx, h, pubsub.WithValidateQueueSize(P2P_VALIDATE_QUEUE_SIZE), - pubsub.WithGossipSubParams(components.GossipParams), + pubsub.WithGossipSubParams(params.components.GossipParams), + pubsub.WithEventTracer(ourTracer), + // TODO: Investigate making this change. May need to use LaxSign until everyone has upgraded to that. + // pubsub.WithMessageSignaturePolicy(pubsub.StrictNoSign), ) if err != nil { panic(err) } - th, err := ps.Join(topic) - if err != nil { - return fmt.Errorf("failed to join topic: %w", err) + // These will only be non-nil if the application plans to listen for or publish to that topic. + var controlPubsubTopic, attestationPubsubTopic, vaaPubsubTopic *pubsub.Topic + var controlSubscription, attestationSubscription, vaaSubscription *pubsub.Subscription + + // Set up the control channel. //////////////////////////////////////////////////////////////////// + if params.nodeName != "" || params.gossipControlSendC != nil || params.obsvReqSendC != nil || params.obsvReqRecvC != nil || params.signedGovCfgRecvC != nil || params.signedGovStatusRecvC != nil { + controlTopic := fmt.Sprintf("%s/%s", params.networkID, "control") + logger.Info("joining the control topic", zap.String("topic", controlTopic)) + controlPubsubTopic, err = ps.Join(controlTopic) + if err != nil { + return fmt.Errorf("failed to join the control topic: %w", err) + } + + defer func() { + if err := controlPubsubTopic.Close(); err != nil && !errors.Is(err, context.Canceled) { + logger.Error("Error closing the control topic", zap.Error(err)) + } + }() + + if params.obsvReqRecvC != nil || params.signedGovCfgRecvC != nil || params.signedGovStatusRecvC != nil { + logger.Info("subscribing to the control topic", zap.String("topic", controlTopic)) + controlSubscription, err = controlPubsubTopic.Subscribe(pubsub.WithBufferSize(P2P_SUBSCRIPTION_BUFFER_SIZE)) + if err != nil { + return fmt.Errorf("failed to subscribe to the control topic: %w", err) + } + defer controlSubscription.Cancel() + } } - defer func() { - if err := th.Close(); err != nil && !errors.Is(err, context.Canceled) { - logger.Error("Error closing the topic", zap.Error(err)) + // Set up the attestation channel. //////////////////////////////////////////////////////////////////// + if params.gossipAttestationSendC != nil || params.obsvRecvC != nil || params.batchObsvRecvC != nil { + attestationTopic := fmt.Sprintf("%s/%s", params.networkID, "attestation") + logger.Info("joining the attestation topic", zap.String("topic", attestationTopic)) + attestationPubsubTopic, err = ps.Join(attestationTopic) + if err != nil { + return fmt.Errorf("failed to join the attestation topic: %w", err) } - }() - // Increase the buffer size to prevent failed delivery - // to slower subscribers - sub, err := th.Subscribe(pubsub.WithBufferSize(P2P_SUBSCRIPTION_BUFFER_SIZE)) - if err != nil { - return fmt.Errorf("failed to subscribe topic: %w", err) + defer func() { + if err := attestationPubsubTopic.Close(); err != nil && !errors.Is(err, context.Canceled) { + logger.Error("Error closing the attestation topic", zap.Error(err)) + } + }() + + if params.obsvRecvC != nil || params.batchObsvRecvC != nil { + logger.Info("subscribing to the attestation topic", zap.String("topic", attestationTopic)) + attestationSubscription, err = attestationPubsubTopic.Subscribe(pubsub.WithBufferSize(P2P_SUBSCRIPTION_BUFFER_SIZE)) + if err != nil { + return fmt.Errorf("failed to subscribe to the attestation topic: %w", err) + } + defer attestationSubscription.Cancel() + } + } + + // Set up the VAA channel. //////////////////////////////////////////////////////////////////// + if params.gossipVaaSendC != nil || params.signedIncomingVaaRecvC != nil || needOldTopic { + vaaTopic := fmt.Sprintf("%s/%s", params.networkID, "broadcast") + logger.Info("joining the vaa topic", zap.String("topic", vaaTopic)) + vaaPubsubTopic, err = ps.Join(vaaTopic) + if err != nil { + return fmt.Errorf("failed to join the vaa topic: %w", err) + } + + defer func() { + if err := vaaPubsubTopic.Close(); err != nil && !errors.Is(err, context.Canceled) { + logger.Error("Error closing the vaa topic", zap.Error(err)) + } + }() + + if params.signedIncomingVaaRecvC != nil || needOldTopic { + logger.Info("subscribing to the vaa topic", zap.String("topic", vaaTopic)) + vaaSubscription, err = vaaPubsubTopic.Subscribe(pubsub.WithBufferSize(P2P_SUBSCRIPTION_BUFFER_SIZE)) + if err != nil { + return fmt.Errorf("failed to subscribe to the vaa topic: %w", err) + } + defer vaaSubscription.Cancel() + } } - defer sub.Cancel() // Make sure we connect to at least 1 bootstrap node (this is particularly important in a local devnet and CI // as peer discovery can take a long time). @@ -386,10 +463,10 @@ func Run( bootTime := time.Now() - if ccqEnabled { + if params.ccqEnabled { ccqErrC := make(chan error) - ccq := newCcqRunP2p(logger, ccqAllowedPeers, components) - if err := ccq.run(ctx, priv, gk, networkID, ccqBootstrapPeers, ccqPort, signedQueryReqC, queryResponseReadC, ccqErrC); err != nil { + ccq := newCcqRunP2p(logger, params.ccqAllowedPeers, params.components) + if err := ccq.run(ctx, params.priv, params.gk, params.networkID, params.ccqBootstrapPeers, params.ccqPort, params.signedQueryReqC, params.queryResponseReadC, ccqErrC); err != nil { return fmt.Errorf("failed to start p2p for CCQ: %w", err) } defer ccq.close() @@ -400,7 +477,7 @@ func Run( return case ccqErr := <-ccqErrC: logger.Error("ccqp2p returned an error", zap.Error(ccqErr), zap.String("component", "ccqp2p")) - rootCtxCancel() + params.rootCtxCancel() return } } @@ -414,124 +491,187 @@ func Run( for { select { case <-ticker.C: - gst.Cleanup() + params.gst.Cleanup() case <-ctx.Done(): return } } }() - go func() { - // Disable heartbeat when no node name is provided (spy mode) - if nodeName == "" { - return - } - ourAddr := ethcrypto.PubkeyToAddress(gk.PublicKey) + // Start up heartbeating if it is enabled. + if params.nodeName != "" { + go func() { + ourAddr := ethcrypto.PubkeyToAddress(params.gk.PublicKey) - ctr := int64(0) - // Guardians should send out their first heartbeat immediately to speed up test runs. - // But we also want to wait a little bit such that network connections can be established by then. - timer := time.NewTimer(time.Second * 2) - defer timer.Stop() + ctr := int64(0) + // Guardians should send out their first heartbeat immediately to speed up test runs. + // But we also want to wait a little bit such that network connections can be established by then. + timer := time.NewTimer(time.Second * 2) + defer timer.Stop() - for { - select { - case <-ctx.Done(): - return - case <-timer.C: - timer.Reset(15 * time.Second) - - // create a heartbeat - b := func() []byte { - DefaultRegistry.mu.Lock() - defer DefaultRegistry.mu.Unlock() - networks := make([]*gossipv1.Heartbeat_Network, 0, len(DefaultRegistry.networkStats)) - for _, v := range DefaultRegistry.networkStats { - errCtr := DefaultRegistry.GetErrorCount(vaa.ChainID(v.Id)) - v.ErrorCount = errCtr - networks = append(networks, v) - } + for { + select { + case <-ctx.Done(): + return + case <-timer.C: + timer.Reset(15 * time.Second) + + // create a heartbeat + b := func() []byte { + DefaultRegistry.mu.Lock() + defer DefaultRegistry.mu.Unlock() + networks := make([]*gossipv1.Heartbeat_Network, 0, len(DefaultRegistry.networkStats)) + for _, v := range DefaultRegistry.networkStats { + errCtr := DefaultRegistry.GetErrorCount(vaa.ChainID(v.Id)) + v.ErrorCount = errCtr + networks = append(networks, v) + } - features := make([]string, 0) - if gov != nil { - features = append(features, "governor") - } - if acct != nil { - features = append(features, acct.FeatureString()) - } - if ibcFeaturesFunc != nil { - ibcFlags := ibcFeaturesFunc() - if ibcFlags != "" { - features = append(features, ibcFlags) + features := make([]string, 0) + if GossipCutoverComplete() { + features = append(features, "p2p:new_gossip") + } + if params.processorFeaturesFunc != nil { + flag := params.processorFeaturesFunc() + if flag != "" { + features = append(features, flag) + } + } + if params.gov != nil { + if params.gov.IsFlowCancelEnabled() { + features = append(features, "governor:fc") + } else { + features = append(features, "governor") + } + } + if params.acct != nil { + features = append(features, params.acct.FeatureString()) + } + if params.ibcFeaturesFunc != nil { + ibcFlags := params.ibcFeaturesFunc() + if ibcFlags != "" { + features = append(features, ibcFlags) + } + } + if params.gatewayRelayerEnabled { + features = append(features, "gwrelayer") + } + if params.ccqEnabled { + features = append(features, "ccq") } - } - if gatewayRelayerEnabled { - features = append(features, "gwrelayer") - } - if ccqEnabled { - features = append(features, "ccq") - } - heartbeat := &gossipv1.Heartbeat{ - NodeName: nodeName, - Counter: ctr, - Timestamp: time.Now().UnixNano(), - Networks: networks, - Version: version.Version(), - GuardianAddr: ourAddr.String(), - BootTimestamp: bootTime.UnixNano(), - Features: features, - } + heartbeat := &gossipv1.Heartbeat{ + NodeName: params.nodeName, + Counter: ctr, + Timestamp: time.Now().UnixNano(), + Networks: networks, + Version: version.Version(), + GuardianAddr: ourAddr.String(), + BootTimestamp: bootTime.UnixNano(), + Features: features, + } - if components.P2PIDInHeartbeat { - heartbeat.P2PNodeId = nodeIdBytes - } + if params.components.P2PIDInHeartbeat { + heartbeat.P2PNodeId = nodeIdBytes + } - if err := gst.SetHeartbeat(ourAddr, h.ID(), heartbeat); err != nil { - panic(err) - } - collectNodeMetrics(ourAddr, h.ID(), heartbeat) + if err := params.gst.SetHeartbeat(ourAddr, h.ID(), heartbeat); err != nil { + panic(err) + } + collectNodeMetrics(ourAddr, h.ID(), heartbeat) - if gov != nil { - gov.CollectMetrics(heartbeat, gossipSendC, gk, ourAddr) - } + if params.gov != nil { + params.gov.CollectMetrics(heartbeat, params.gossipControlSendC, params.gk, ourAddr) + } - msg := gossipv1.GossipMessage{ - Message: &gossipv1.GossipMessage_SignedHeartbeat{ - SignedHeartbeat: createSignedHeartbeat(gk, heartbeat), - }, - } + msg := gossipv1.GossipMessage{ + Message: &gossipv1.GossipMessage_SignedHeartbeat{ + SignedHeartbeat: createSignedHeartbeat(params.gk, heartbeat), + }, + } - b, err := proto.Marshal(&msg) - if err != nil { - panic(err) + b, err := proto.Marshal(&msg) + if err != nil { + panic(err) + } + return b + }() + + if GossipCutoverComplete() { + if controlPubsubTopic == nil { + panic("controlPubsubTopic should not be nil when nodeName is set") + } + err = controlPubsubTopic.Publish(ctx, b) + p2pMessagesSent.WithLabelValues("control").Inc() + if err != nil { + logger.Warn("failed to publish heartbeat message", zap.Error(err)) + } + } else if vaaPubsubTopic != nil { + err = vaaPubsubTopic.Publish(ctx, b) + p2pMessagesSent.WithLabelValues("old_control").Inc() + if err != nil { + logger.Warn("failed to publish heartbeat message to old topic", zap.Error(err)) + } } - return b - }() - err = th.Publish(ctx, b) - if err != nil { - logger.Warn("failed to publish heartbeat message", zap.Error(err)) + p2pHeartbeatsSent.Inc() + ctr += 1 } - - p2pHeartbeatsSent.Inc() - ctr += 1 } - } - }() + }() + } + // This routine processes messages received from the internal channels and publishes them to gossip. /////////////////// + // NOTE: The go specification says that it is safe to receive on a nil channel, it just blocks forever. go func() { for { select { case <-ctx.Done(): return - case msg := <-gossipSendC: - err := th.Publish(ctx, msg) - p2pMessagesSent.Inc() + case msg := <-params.gossipControlSendC: + if GossipCutoverComplete() { + if controlPubsubTopic == nil { + panic("controlPubsubTopic should not be nil when gossipControlSendC is set") + } + err := controlPubsubTopic.Publish(ctx, msg) + p2pMessagesSent.WithLabelValues("control").Inc() + if err != nil { + logger.Error("failed to publish message from control queue", zap.Error(err)) + } + } else if vaaPubsubTopic != nil { + err := vaaPubsubTopic.Publish(ctx, msg) + p2pMessagesSent.WithLabelValues("old_control").Inc() + if err != nil { + logger.Error("failed to publish message from control queue to old topic", zap.Error(err)) + } + } + case msg := <-params.gossipAttestationSendC: + if GossipCutoverComplete() { + if attestationPubsubTopic == nil { + panic("attestationPubsubTopic should not be nil when gossipAttestationSendC is set") + } + err := attestationPubsubTopic.Publish(ctx, msg) + p2pMessagesSent.WithLabelValues("attestation").Inc() + if err != nil { + logger.Error("failed to publish message from attestation queue", zap.Error(err)) + } + } else if vaaPubsubTopic != nil { + err := vaaPubsubTopic.Publish(ctx, msg) + p2pMessagesSent.WithLabelValues("old_attestation").Inc() + if err != nil { + logger.Error("failed to publish message from attestation queue to old topic", zap.Error(err)) + } + } + case msg := <-params.gossipVaaSendC: + if vaaPubsubTopic == nil { + panic("vaaPubsubTopic should not be nil when gossipVaaSendC is set") + } + err := vaaPubsubTopic.Publish(ctx, msg) + p2pMessagesSent.WithLabelValues("vaa").Inc() if err != nil { - logger.Error("failed to publish message from queue", zap.Error(err)) + logger.Error("failed to publish message from vaa queue", zap.Error(err)) } - case msg := <-obsvReqSendC: + case msg := <-params.obsvReqSendC: b, err := proto.Marshal(msg) if err != nil { panic(err) @@ -539,7 +679,7 @@ func Run( // Sign the observation request using our node's guardian key. digest := signedObservationRequestDigest(b) - sig, err := ethcrypto.Sign(digest.Bytes(), gk) + sig, err := ethcrypto.Sign(digest.Bytes(), params.gk) if err != nil { panic(err) } @@ -547,7 +687,7 @@ func Run( sReq := &gossipv1.SignedObservationRequest{ ObservationRequest: b, Signature: sig, - GuardianAddr: ethcrypto.PubkeyToAddress(gk.PublicKey).Bytes(), + GuardianAddr: ethcrypto.PubkeyToAddress(params.gk.PublicKey).Bytes(), } envelope := &gossipv1.GossipMessage{ @@ -560,185 +700,463 @@ func Run( } // Send to local observation request queue (the loopback message is ignored) - obsvReqC <- msg + if params.obsvReqRecvC != nil { + params.obsvReqRecvC <- msg + } - err = th.Publish(ctx, b) - p2pMessagesSent.Inc() - if err != nil { - logger.Error("failed to publish observation request", zap.Error(err)) - } else { - logger.Info("published signed observation request", zap.Any("signed_observation_request", sReq)) + if GossipCutoverComplete() { + if controlPubsubTopic == nil { + panic("controlPubsubTopic should not be nil when obsvReqSendC is set") + } + err = controlPubsubTopic.Publish(ctx, b) + p2pMessagesSent.WithLabelValues("control").Inc() + if err != nil { + logger.Error("failed to publish observation request", zap.Error(err)) + } else { + logger.Info("published signed observation request", zap.Any("signed_observation_request", sReq)) + } + } else if vaaPubsubTopic != nil { + err = vaaPubsubTopic.Publish(ctx, b) + p2pMessagesSent.WithLabelValues("old_control").Inc() + if err != nil { + logger.Error("failed to publish observation request to old topic", zap.Error(err)) + } } } } }() - for { - envelope, err := sub.Next(ctx) // Note: sub.Next(ctx) will return an error once ctx is canceled - if err != nil { - return fmt.Errorf("failed to receive pubsub message: %w", err) - } + errC := make(chan error) - var msg gossipv1.GossipMessage - err = proto.Unmarshal(envelope.Data, &msg) - if err != nil { - logger.Info("received invalid message", - zap.Binary("data", envelope.Data), - zap.String("from", envelope.GetFrom().String())) - p2pMessagesReceived.WithLabelValues("invalid").Inc() - continue - } + // This routine processes control messages received from gossip. ////////////////////////////////////////////// + if controlSubscription != nil { + go func() { + for { + envelope, err := controlSubscription.Next(ctx) // Note: sub.Next(ctx) will return an error once ctx is canceled + if err != nil { + errC <- fmt.Errorf("failed to receive pubsub message on control topic: %w", err) + return + } - if envelope.GetFrom() == h.ID() { - if logger.Level().Enabled(zapcore.DebugLevel) { - logger.Debug("received message from ourselves, ignoring", zap.Any("payload", msg.Message)) - } - p2pMessagesReceived.WithLabelValues("loopback").Inc() - continue - } + var msg gossipv1.GossipMessage + err = proto.Unmarshal(envelope.Data, &msg) + if err != nil { + logger.Info("received invalid message on control topic", + zap.Binary("data", envelope.Data), + zap.String("from", envelope.GetFrom().String())) + p2pMessagesReceived.WithLabelValues("invalid").Inc() + continue + } - if logger.Level().Enabled(zapcore.DebugLevel) { - logger.Debug("received message", - zap.Any("payload", msg.Message), - zap.Binary("raw", envelope.Data), - zap.String("from", envelope.GetFrom().String())) - } + if envelope.GetFrom() == h.ID() { + if logger.Level().Enabled(zapcore.DebugLevel) { + logger.Debug("received message from ourselves on control topic, ignoring", zap.Any("payload", msg.Message)) + } + p2pMessagesReceived.WithLabelValues("loopback").Inc() + continue + } - switch m := msg.Message.(type) { - case *gossipv1.GossipMessage_SignedHeartbeat: - s := m.SignedHeartbeat - gs := gst.Get() - if gs == nil { - // No valid guardian set yet - dropping heartbeat - logger.Log(components.SignedHeartbeatLogLevel, "skipping heartbeat - no guardian set", - zap.Any("value", s), - zap.String("from", envelope.GetFrom().String())) - break - } - if heartbeat, err := processSignedHeartbeat(envelope.GetFrom(), s, gs, gst, disableHeartbeatVerify); err != nil { - p2pMessagesReceived.WithLabelValues("invalid_heartbeat").Inc() - logger.Log(components.SignedHeartbeatLogLevel, "invalid signed heartbeat received", - zap.Error(err), - zap.Any("payload", msg.Message), - zap.Any("value", s), - zap.Binary("raw", envelope.Data), - zap.String("from", envelope.GetFrom().String())) - } else { - p2pMessagesReceived.WithLabelValues("valid_heartbeat").Inc() - logger.Log(components.SignedHeartbeatLogLevel, "valid signed heartbeat received", - zap.Any("value", heartbeat), - zap.String("from", envelope.GetFrom().String())) - - func() { - if len(heartbeat.P2PNodeId) != 0 { - components.ProtectedHostByGuardianKeyLock.Lock() - defer components.ProtectedHostByGuardianKeyLock.Unlock() - var peerId peer.ID - if err = peerId.Unmarshal(heartbeat.P2PNodeId); err != nil { - logger.Error("p2p_node_id_in_heartbeat_invalid", + if logger.Level().Enabled(zapcore.DebugLevel) { + logger.Debug("received message on control topic", + zap.Any("payload", msg.Message), + zap.Binary("raw", envelope.Data), + zap.String("from", envelope.GetFrom().String())) + } + + switch m := msg.Message.(type) { + case *gossipv1.GossipMessage_SignedHeartbeat: + s := m.SignedHeartbeat + gs := params.gst.Get() + if gs == nil { + // No valid guardian set yet - dropping heartbeat + if logger.Level().Enabled(params.components.SignedHeartbeatLogLevel) { + logger.Log(params.components.SignedHeartbeatLogLevel, "skipping heartbeat - no guardian set", + zap.Any("value", s), + zap.String("from", envelope.GetFrom().String())) + } + break + } + if heartbeat, err := processSignedHeartbeat(envelope.GetFrom(), s, gs, params.gst, params.disableHeartbeatVerify); err != nil { + p2pMessagesReceived.WithLabelValues("invalid_heartbeat").Inc() + if logger.Level().Enabled(params.components.SignedHeartbeatLogLevel) { + logger.Log(params.components.SignedHeartbeatLogLevel, "invalid signed heartbeat received", + zap.Error(err), zap.Any("payload", msg.Message), zap.Any("value", s), zap.Binary("raw", envelope.Data), zap.String("from", envelope.GetFrom().String())) - } else { - guardianAddr := eth_common.BytesToAddress(s.GuardianAddr) - if gk == nil || guardianAddr != ethcrypto.PubkeyToAddress(gk.PublicKey) { - prevPeerId, ok := components.ProtectedHostByGuardianKey[guardianAddr] - if ok { - if prevPeerId != peerId { - logger.Info("p2p_guardian_peer_changed", - zap.String("guardian_addr", guardianAddr.String()), - zap.String("prevPeerId", prevPeerId.String()), - zap.String("newPeerId", peerId.String()), - ) - components.ConnMgr.Unprotect(prevPeerId, "heartbeat") - components.ConnMgr.Protect(peerId, "heartbeat") - components.ProtectedHostByGuardianKey[guardianAddr] = peerId - } + } + } else { + p2pMessagesReceived.WithLabelValues("valid_heartbeat").Inc() + if logger.Level().Enabled(params.components.SignedHeartbeatLogLevel) { + logger.Log(params.components.SignedHeartbeatLogLevel, "valid signed heartbeat received", + zap.Any("value", heartbeat), + zap.String("from", envelope.GetFrom().String())) + } + + func() { + if len(heartbeat.P2PNodeId) != 0 { + params.components.ProtectedHostByGuardianKeyLock.Lock() + defer params.components.ProtectedHostByGuardianKeyLock.Unlock() + var peerId peer.ID + if err = peerId.Unmarshal(heartbeat.P2PNodeId); err != nil { + logger.Error("p2p_node_id_in_heartbeat_invalid", + zap.Any("payload", msg.Message), + zap.Any("value", s), + zap.Binary("raw", envelope.Data), + zap.String("from", envelope.GetFrom().String())) } else { - components.ConnMgr.Protect(peerId, "heartbeat") - components.ProtectedHostByGuardianKey[guardianAddr] = peerId + guardianAddr := eth_common.BytesToAddress(s.GuardianAddr) + if params.gk == nil || guardianAddr != ethcrypto.PubkeyToAddress(params.gk.PublicKey) { + prevPeerId, ok := params.components.ProtectedHostByGuardianKey[guardianAddr] + if ok { + if prevPeerId != peerId { + logger.Info("p2p_guardian_peer_changed", + zap.String("guardian_addr", guardianAddr.String()), + zap.String("prevPeerId", prevPeerId.String()), + zap.String("newPeerId", peerId.String()), + ) + params.components.ConnMgr.Unprotect(prevPeerId, "heartbeat") + params.components.ConnMgr.Protect(peerId, "heartbeat") + params.components.ProtectedHostByGuardianKey[guardianAddr] = peerId + } + } else { + params.components.ConnMgr.Protect(peerId, "heartbeat") + params.components.ProtectedHostByGuardianKey[guardianAddr] = peerId + } + } } + } else { + if logger.Level().Enabled(zapcore.DebugLevel) { + logger.Debug("p2p_node_id_not_in_heartbeat", zap.Error(err), zap.Any("payload", heartbeat.NodeName)) + } + } + }() + } + case *gossipv1.GossipMessage_SignedObservationRequest: + if params.obsvReqRecvC != nil { + s := m.SignedObservationRequest + gs := params.gst.Get() + if gs == nil { + if logger.Level().Enabled(zapcore.DebugLevel) { + logger.Debug("dropping SignedObservationRequest - no guardian set", zap.Any("value", s), zap.String("from", envelope.GetFrom().String())) } + break } - } else { - if logger.Level().Enabled(zapcore.DebugLevel) { - logger.Debug("p2p_node_id_not_in_heartbeat", zap.Error(err), zap.Any("payload", heartbeat.NodeName)) + r, err := processSignedObservationRequest(s, gs) + if err != nil { + p2pMessagesReceived.WithLabelValues("invalid_signed_observation_request").Inc() + if logger.Level().Enabled(zapcore.DebugLevel) { + logger.Debug("invalid signed observation request received", + zap.Error(err), + zap.Any("payload", msg.Message), + zap.Any("value", s), + zap.Binary("raw", envelope.Data), + zap.String("from", envelope.GetFrom().String())) + } + } else { + if logger.Level().Enabled(zapcore.DebugLevel) { + logger.Debug("valid signed observation request received", zap.Any("value", r), zap.String("from", envelope.GetFrom().String())) + } + + select { + case params.obsvReqRecvC <- r: + p2pMessagesReceived.WithLabelValues("signed_observation_request").Inc() + default: + p2pReceiveChannelOverflow.WithLabelValues("signed_observation_request").Inc() + } } } - }() - } - case *gossipv1.GossipMessage_SignedObservation: - if err := common.PostMsgWithTimestamp[gossipv1.SignedObservation](m.SignedObservation, obsvC); err == nil { - p2pMessagesReceived.WithLabelValues("observation").Inc() - } else { - if components.WarnChannelOverflow { - logger.Warn("Ignoring SignedObservation because obsvC full", zap.String("hash", hex.EncodeToString(m.SignedObservation.Hash))) + case *gossipv1.GossipMessage_SignedChainGovernorConfig: + if params.signedGovCfgRecvC != nil { + params.signedGovCfgRecvC <- m.SignedChainGovernorConfig + } + case *gossipv1.GossipMessage_SignedChainGovernorStatus: + if params.signedGovStatusRecvC != nil { + params.signedGovStatusRecvC <- m.SignedChainGovernorStatus + } + default: + p2pMessagesReceived.WithLabelValues("unknown").Inc() + logger.Warn("received unknown message type on control topic (running outdated software?)", + zap.Any("payload", msg.Message), + zap.Binary("raw", envelope.Data), + zap.String("from", envelope.GetFrom().String())) } - p2pReceiveChannelOverflow.WithLabelValues("observation").Inc() } - case *gossipv1.GossipMessage_SignedVaaWithQuorum: - select { - case signedInC <- m.SignedVaaWithQuorum: - p2pMessagesReceived.WithLabelValues("signed_vaa_with_quorum").Inc() - default: - if components.WarnChannelOverflow { - // TODO do not log this in production - var hexStr string - if vaa, err := vaa.Unmarshal(m.SignedVaaWithQuorum.Vaa); err == nil { - hexStr = vaa.HexDigest() + }() + } + + // This routine processes attestation messages received from gossip. ////////////////////////////////////////////// + if attestationSubscription != nil { + go func() { + for { + envelope, err := attestationSubscription.Next(ctx) // Note: sub.Next(ctx) will return an error once ctx is canceled + if err != nil { + errC <- fmt.Errorf("failed to receive pubsub message on attestation topic: %w", err) + return + } + + var msg gossipv1.GossipMessage + err = proto.Unmarshal(envelope.Data, &msg) + if err != nil { + logger.Info("received invalid message on attestation topic", + zap.Binary("data", envelope.Data), + zap.String("from", envelope.GetFrom().String())) + p2pMessagesReceived.WithLabelValues("invalid").Inc() + continue + } + + if envelope.GetFrom() == h.ID() { + if logger.Level().Enabled(zapcore.DebugLevel) { + logger.Debug("received message from ourselves on attestation topic, ignoring", zap.Any("payload", msg.Message)) } - logger.Warn("Ignoring SignedVaaWithQuorum because signedInC full", zap.String("hash", hexStr)) + p2pMessagesReceived.WithLabelValues("loopback").Inc() + continue } - p2pReceiveChannelOverflow.WithLabelValues("signed_vaa_with_quorum").Inc() - } - case *gossipv1.GossipMessage_SignedObservationRequest: - s := m.SignedObservationRequest - gs := gst.Get() - if gs == nil { + if logger.Level().Enabled(zapcore.DebugLevel) { - logger.Debug("dropping SignedObservationRequest - no guardian set", zap.Any("value", s), zap.String("from", envelope.GetFrom().String())) + logger.Debug("received message on attestation topic", + zap.Any("payload", msg.Message), + zap.Binary("raw", envelope.Data), + zap.String("from", envelope.GetFrom().String())) } - break - } - r, err := processSignedObservationRequest(s, gs) - if err != nil { - p2pMessagesReceived.WithLabelValues("invalid_signed_observation_request").Inc() - if logger.Level().Enabled(zapcore.DebugLevel) { - logger.Debug("invalid signed observation request received", - zap.Error(err), + + switch m := msg.Message.(type) { + case *gossipv1.GossipMessage_SignedObservation: + if params.obsvRecvC != nil { + if err := common.PostMsgWithTimestamp(m.SignedObservation, params.obsvRecvC); err == nil { + p2pMessagesReceived.WithLabelValues("observation").Inc() + } else { + if params.components.WarnChannelOverflow { + logger.Warn("Ignoring SignedObservation because obsvRecvC is full", zap.String("addr", hex.EncodeToString(m.SignedObservation.Addr))) + } + p2pReceiveChannelOverflow.WithLabelValues("observation").Inc() + } + } + case *gossipv1.GossipMessage_SignedObservationBatch: + if params.batchObsvRecvC != nil { + if err := common.PostMsgWithTimestamp(m.SignedObservationBatch, params.batchObsvRecvC); err == nil { + p2pMessagesReceived.WithLabelValues("batch_observation").Inc() + } else { + if params.components.WarnChannelOverflow { + logger.Warn("Ignoring SignedObservationBatch because batchObsvRecvC is full", zap.String("addr", hex.EncodeToString(m.SignedObservationBatch.Addr))) + } + p2pReceiveChannelOverflow.WithLabelValues("batch_observation").Inc() + } + } + default: + p2pMessagesReceived.WithLabelValues("unknown").Inc() + logger.Warn("received unknown message type on attestation topic (running outdated software?)", zap.Any("payload", msg.Message), - zap.Any("value", s), zap.Binary("raw", envelope.Data), zap.String("from", envelope.GetFrom().String())) } - } else { + } + }() + } + + // This routine processes signed VAA messages received from gossip. ////////////////////////////////////////////// + if vaaSubscription != nil { + go func() { + for { + envelope, err := vaaSubscription.Next(ctx) // Note: sub.Next(ctx) will return an error once ctx is canceled + if err != nil { + errC <- fmt.Errorf("failed to receive pubsub message on vaa topic: %w", err) + return + } + + var msg gossipv1.GossipMessage + err = proto.Unmarshal(envelope.Data, &msg) + if err != nil { + logger.Info("received invalid message on vaa topic", + zap.Binary("data", envelope.Data), + zap.String("from", envelope.GetFrom().String())) + p2pMessagesReceived.WithLabelValues("invalid").Inc() + continue + } + + if envelope.GetFrom() == h.ID() { + if logger.Level().Enabled(zapcore.DebugLevel) { + logger.Debug("received message from ourselves on vaa topic, ignoring", zap.Any("payload", msg.Message)) + } + p2pMessagesReceived.WithLabelValues("loopback").Inc() + continue + } + if logger.Level().Enabled(zapcore.DebugLevel) { - logger.Debug("valid signed observation request received", zap.Any("value", r), zap.String("from", envelope.GetFrom().String())) + logger.Debug("received message on vaa topic", + zap.Any("payload", msg.Message), + zap.Binary("raw", envelope.Data), + zap.String("from", envelope.GetFrom().String())) } - select { - case obsvReqC <- r: - p2pMessagesReceived.WithLabelValues("signed_observation_request").Inc() + switch m := msg.Message.(type) { + case *gossipv1.GossipMessage_SignedHeartbeat: // TODO: Get rid of this after the cutover. + s := m.SignedHeartbeat + gs := params.gst.Get() + if gs == nil { + // No valid guardian set yet - dropping heartbeat + if logger.Level().Enabled(params.components.SignedHeartbeatLogLevel) { + logger.Log(params.components.SignedHeartbeatLogLevel, "skipping heartbeat - no guardian set", + zap.Any("value", s), + zap.String("from", envelope.GetFrom().String())) + } + break + } + if heartbeat, err := processSignedHeartbeat(envelope.GetFrom(), s, gs, params.gst, params.disableHeartbeatVerify); err != nil { + p2pMessagesReceived.WithLabelValues("invalid_heartbeat").Inc() + if logger.Level().Enabled(params.components.SignedHeartbeatLogLevel) { + logger.Log(params.components.SignedHeartbeatLogLevel, "invalid signed heartbeat received", + zap.Error(err), + zap.Any("payload", msg.Message), + zap.Any("value", s), + zap.Binary("raw", envelope.Data), + zap.String("from", envelope.GetFrom().String())) + } + } else { + p2pMessagesReceived.WithLabelValues("valid_heartbeat").Inc() + if logger.Level().Enabled(params.components.SignedHeartbeatLogLevel) { + logger.Log(params.components.SignedHeartbeatLogLevel, "valid signed heartbeat received", + zap.Any("value", heartbeat), + zap.String("from", envelope.GetFrom().String())) + } + + func() { + if len(heartbeat.P2PNodeId) != 0 { + params.components.ProtectedHostByGuardianKeyLock.Lock() + defer params.components.ProtectedHostByGuardianKeyLock.Unlock() + var peerId peer.ID + if err = peerId.Unmarshal(heartbeat.P2PNodeId); err != nil { + logger.Error("p2p_node_id_in_heartbeat_invalid", + zap.Any("payload", msg.Message), + zap.Any("value", s), + zap.Binary("raw", envelope.Data), + zap.String("from", envelope.GetFrom().String())) + } else { + guardianAddr := eth_common.BytesToAddress(s.GuardianAddr) + if params.gk == nil || guardianAddr != ethcrypto.PubkeyToAddress(params.gk.PublicKey) { + prevPeerId, ok := params.components.ProtectedHostByGuardianKey[guardianAddr] + if ok { + if prevPeerId != peerId { + logger.Info("p2p_guardian_peer_changed", + zap.String("guardian_addr", guardianAddr.String()), + zap.String("prevPeerId", prevPeerId.String()), + zap.String("newPeerId", peerId.String()), + ) + params.components.ConnMgr.Unprotect(prevPeerId, "heartbeat") + params.components.ConnMgr.Protect(peerId, "heartbeat") + params.components.ProtectedHostByGuardianKey[guardianAddr] = peerId + } + } else { + params.components.ConnMgr.Protect(peerId, "heartbeat") + params.components.ProtectedHostByGuardianKey[guardianAddr] = peerId + } + } + } + } else { + if logger.Level().Enabled(zapcore.DebugLevel) { + logger.Debug("p2p_node_id_not_in_heartbeat", zap.Error(err), zap.Any("payload", heartbeat.NodeName)) + } + } + }() + } + case *gossipv1.GossipMessage_SignedObservation: // TODO: Get rid of this after the cutover. + if params.obsvRecvC != nil { + if err := common.PostMsgWithTimestamp(m.SignedObservation, params.obsvRecvC); err == nil { + p2pMessagesReceived.WithLabelValues("observation").Inc() + } else { + if params.components.WarnChannelOverflow { + logger.Warn("Ignoring SignedObservation because obsvRecvC is full", zap.String("hash", hex.EncodeToString(m.SignedObservation.Hash))) + } + p2pReceiveChannelOverflow.WithLabelValues("observation").Inc() + } + } + case *gossipv1.GossipMessage_SignedObservationBatch: // TODO: Get rid of this after the cutover. + if params.batchObsvRecvC != nil { + if err := common.PostMsgWithTimestamp(m.SignedObservationBatch, params.batchObsvRecvC); err == nil { + p2pMessagesReceived.WithLabelValues("batch_observation").Inc() + } else { + if params.components.WarnChannelOverflow { + logger.Warn("Ignoring SignedObservationBatch because obsvRecvC is full") + } + p2pReceiveChannelOverflow.WithLabelValues("batch_observation").Inc() + } + } + case *gossipv1.GossipMessage_SignedVaaWithQuorum: + if params.signedIncomingVaaRecvC != nil { + select { + case params.signedIncomingVaaRecvC <- m.SignedVaaWithQuorum: + p2pMessagesReceived.WithLabelValues("signed_vaa_with_quorum").Inc() + default: + if params.components.WarnChannelOverflow { + var hexStr string + if vaa, err := vaa.Unmarshal(m.SignedVaaWithQuorum.Vaa); err == nil { + hexStr = vaa.HexDigest() + } + logger.Warn("Ignoring SignedVaaWithQuorum because signedIncomingVaaRecvC full", zap.String("hash", hexStr)) + } + p2pReceiveChannelOverflow.WithLabelValues("signed_vaa_with_quorum").Inc() + } + } + case *gossipv1.GossipMessage_SignedObservationRequest: // TODO: Get rid of this after the cutover. + if params.obsvReqRecvC != nil { + s := m.SignedObservationRequest + gs := params.gst.Get() + if gs == nil { + if logger.Level().Enabled(zapcore.DebugLevel) { + logger.Debug("dropping SignedObservationRequest - no guardian set", zap.Any("value", s), zap.String("from", envelope.GetFrom().String())) + } + break + } + r, err := processSignedObservationRequest(s, gs) + if err != nil { + p2pMessagesReceived.WithLabelValues("invalid_signed_observation_request").Inc() + if logger.Level().Enabled(zapcore.DebugLevel) { + logger.Debug("invalid signed observation request received", + zap.Error(err), + zap.Any("payload", msg.Message), + zap.Any("value", s), + zap.Binary("raw", envelope.Data), + zap.String("from", envelope.GetFrom().String())) + } + } else { + if logger.Level().Enabled(zapcore.DebugLevel) { + logger.Debug("valid signed observation request received", zap.Any("value", r), zap.String("from", envelope.GetFrom().String())) + } + + select { + case params.obsvReqRecvC <- r: + p2pMessagesReceived.WithLabelValues("signed_observation_request").Inc() + default: + p2pReceiveChannelOverflow.WithLabelValues("signed_observation_request").Inc() + } + } + } + case *gossipv1.GossipMessage_SignedChainGovernorConfig: // TODO: Get rid of this after the cutover. + if params.signedGovCfgRecvC != nil { + params.signedGovCfgRecvC <- m.SignedChainGovernorConfig + } + case *gossipv1.GossipMessage_SignedChainGovernorStatus: // TODO: Get rid of this after the cutover. + if params.signedGovStatusRecvC != nil { + params.signedGovStatusRecvC <- m.SignedChainGovernorStatus + } default: - p2pReceiveChannelOverflow.WithLabelValues("signed_observation_request").Inc() + p2pMessagesReceived.WithLabelValues("unknown").Inc() + logger.Warn("received unknown message type on vaa topic (running outdated software?)", + zap.Any("payload", msg.Message), + zap.Binary("raw", envelope.Data), + zap.String("from", envelope.GetFrom().String())) } } - case *gossipv1.GossipMessage_SignedChainGovernorConfig: - if signedGovCfg != nil { - signedGovCfg <- m.SignedChainGovernorConfig - } - case *gossipv1.GossipMessage_SignedChainGovernorStatus: - if signedGovSt != nil { - signedGovSt <- m.SignedChainGovernorStatus - } - default: - p2pMessagesReceived.WithLabelValues("unknown").Inc() - logger.Warn("received unknown message type (running outdated software?)", - zap.Any("payload", msg.Message), - zap.Binary("raw", envelope.Data), - zap.String("from", envelope.GetFrom().String())) - } + }() + } + + // Wait for either a shutdown or a fatal error from a pubsub subscription. + select { + case <-ctx.Done(): + return nil + case err := <-errC: + return err } } } diff --git a/node/pkg/p2p/run_params.go b/node/pkg/p2p/run_params.go new file mode 100644 index 0000000000..558117d6fa --- /dev/null +++ b/node/pkg/p2p/run_params.go @@ -0,0 +1,256 @@ +package p2p + +import ( + "context" + "crypto/ecdsa" + "errors" + + "github.com/certusone/wormhole/node/pkg/accountant" + "github.com/certusone/wormhole/node/pkg/common" + "github.com/certusone/wormhole/node/pkg/governor" + gossipv1 "github.com/certusone/wormhole/node/pkg/proto/gossip/v1" + "github.com/certusone/wormhole/node/pkg/query" + "github.com/libp2p/go-libp2p/core/crypto" +) + +type ( + // RunParams is used to pass parameters into `p2p.Run()`. It allows applications to specify only what they need. + RunParams struct { + // These parameters are always required. + bootstrapPeers string + networkID string + priv crypto.PrivKey + gst *common.GuardianSetState + rootCtxCancel context.CancelFunc + + // obsvRecvC is optional and can be set with `WithSignedObservationListener`. + obsvRecvC chan<- *common.MsgWithTimeStamp[gossipv1.SignedObservation] + + // batchObsvRecvC is optional and can be set with `WithSignedObservationBatchListener`. + batchObsvRecvC chan<- *common.MsgWithTimeStamp[gossipv1.SignedObservationBatch] + + // obsvReqRecvC is optional and can be set with `WithObservationRequestListener`. + obsvReqRecvC chan<- *gossipv1.ObservationRequest + + // signedIncomingVaaRecvC is optional and can be set with `WithSignedVAAListener`. + signedIncomingVaaRecvC chan<- *gossipv1.SignedVAAWithQuorum + + // signedGovCfgRecvC is optional and can be set with `WithChainGovernorConfigListener`. + signedGovCfgRecvC chan *gossipv1.SignedChainGovernorConfig + + // signedGovStatusRecvC is optional and can be set with `WithChainGovernorStatusListener`. + signedGovStatusRecvC chan *gossipv1.SignedChainGovernorStatus + + // disableHeartbeatVerify is optional and can be set with `WithDisableHeartbeatVerify` or `WithGuardianOptions`. + disableHeartbeatVerify bool + + // The following options are guardian specific. Set with `WithGuardianOptions`. + nodeName string + gk *ecdsa.PrivateKey + gossipControlSendC chan []byte + gossipAttestationSendC chan []byte + gossipVaaSendC chan []byte + obsvReqSendC <-chan *gossipv1.ObservationRequest + acct *accountant.Accountant + gov *governor.ChainGovernor + components *Components + ibcFeaturesFunc func() string + processorFeaturesFunc func() string + gatewayRelayerEnabled bool + ccqEnabled bool + signedQueryReqC chan<- *gossipv1.SignedQueryRequest + queryResponseReadC <-chan *query.QueryResponsePublication + ccqBootstrapPeers string + ccqPort uint + ccqAllowedPeers string + } + + // RunOpt is used to specify optional parameters. + RunOpt func(p *RunParams) error +) + +// NewRunParams is used to create the `RunParams` which gets passed into `p2p.Run()`. It takes the required parameters, +// plus any desired optional ones, which can be set using the various `With` functions defined below. +func NewRunParams( + bootstrapPeers string, + networkID string, + priv crypto.PrivKey, + gst *common.GuardianSetState, + rootCtxCancel context.CancelFunc, + opts ...RunOpt, +) (*RunParams, error) { + p := &RunParams{ + bootstrapPeers: bootstrapPeers, + networkID: networkID, + priv: priv, + gst: gst, + rootCtxCancel: rootCtxCancel, + } + + for _, opt := range opts { + err := opt(p) + if err != nil { + return nil, err + } + } + + if err := p.verify(); err != nil { + return nil, err + } + + return p, nil +} + +// WithComponents is used to set the components if you need something other than the defaults. +func WithComponents(components *Components) RunOpt { + return func(p *RunParams) error { + p.components = components + return nil + } +} + +// WithProcessorFeaturesFunc is used to set the processor features function. +func WithProcessorFeaturesFunc(processorFeaturesFunc func() string) RunOpt { + return func(p *RunParams) error { + p.processorFeaturesFunc = processorFeaturesFunc + return nil + } +} + +// WithSignedObservationListener is used to set the channel to receive `SignedObservation` messages. +func WithSignedObservationListener(obsvRecvC chan<- *common.MsgWithTimeStamp[gossipv1.SignedObservation]) RunOpt { + return func(p *RunParams) error { + p.obsvRecvC = obsvRecvC + return nil + } +} + +// WithSignedObservationBatchListener is used to set the channel to receive `SignedObservationBatch` messages. +func WithSignedObservationBatchListener(batchObsvC chan<- *common.MsgWithTimeStamp[gossipv1.SignedObservationBatch]) RunOpt { + return func(p *RunParams) error { + p.batchObsvRecvC = batchObsvC + return nil + } +} + +// WithSignedVAAListener is used to set the channel to receive `SignedVAAWithQuorum messages`. +func WithSignedVAAListener(signedIncomingVaaRecvC chan<- *gossipv1.SignedVAAWithQuorum) RunOpt { + return func(p *RunParams) error { + p.signedIncomingVaaRecvC = signedIncomingVaaRecvC + return nil + } +} + +// WithObservationRequestListener is used to set the channel to receive `ObservationRequest` messages. +func WithObservationRequestListener(obsvReqRecvC chan<- *gossipv1.ObservationRequest) RunOpt { + return func(p *RunParams) error { + p.obsvReqRecvC = obsvReqRecvC + return nil + } +} + +// WithChainGovernorConfigListener is used to set the channel to receive `SignedChainGovernorConfig` messages. +func WithChainGovernorConfigListener(signedGovCfgRecvC chan *gossipv1.SignedChainGovernorConfig) RunOpt { + return func(p *RunParams) error { + p.signedGovCfgRecvC = signedGovCfgRecvC + return nil + } +} + +// WithChainGovernorStatusListener is used to set the channel to receive `SignedChainGovernorStatus` messages. +func WithChainGovernorStatusListener(signedGovStatusRecvC chan *gossipv1.SignedChainGovernorStatus) RunOpt { + return func(p *RunParams) error { + p.signedGovStatusRecvC = signedGovStatusRecvC + return nil + } +} + +// WithDisableHeartbeatVerify is used to set disableHeartbeatVerify. +func WithDisableHeartbeatVerify(disableHeartbeatVerify bool) RunOpt { + return func(p *RunParams) error { + p.disableHeartbeatVerify = disableHeartbeatVerify + return nil + } +} + +// WithGuardianOptions is used to set options that are only meaningful to the guardian. +func WithGuardianOptions( + nodeName string, + gk *ecdsa.PrivateKey, + obsvRecvC chan<- *common.MsgWithTimeStamp[gossipv1.SignedObservation], + batchObsvRecvC chan<- *common.MsgWithTimeStamp[gossipv1.SignedObservationBatch], + signedIncomingVaaRecvC chan<- *gossipv1.SignedVAAWithQuorum, + obsvReqRecvC chan<- *gossipv1.ObservationRequest, + gossipControlSendC chan []byte, + gossipAttestationSendC chan []byte, + gossipVaaSendC chan []byte, + obsvReqSendC <-chan *gossipv1.ObservationRequest, + acct *accountant.Accountant, + gov *governor.ChainGovernor, + disableHeartbeatVerify bool, + components *Components, + ibcFeaturesFunc func() string, + gatewayRelayerEnabled bool, + ccqEnabled bool, + signedQueryReqC chan<- *gossipv1.SignedQueryRequest, + queryResponseReadC <-chan *query.QueryResponsePublication, + ccqBootstrapPeers string, + ccqPort uint, + ccqAllowedPeers string, +) RunOpt { + return func(p *RunParams) error { + p.nodeName = nodeName + p.gk = gk + p.obsvRecvC = obsvRecvC + p.batchObsvRecvC = batchObsvRecvC + p.signedIncomingVaaRecvC = signedIncomingVaaRecvC + p.obsvReqRecvC = obsvReqRecvC + p.gossipControlSendC = gossipControlSendC + p.gossipAttestationSendC = gossipAttestationSendC + p.gossipVaaSendC = gossipVaaSendC + p.obsvReqSendC = obsvReqSendC + p.acct = acct + p.gov = gov + p.disableHeartbeatVerify = disableHeartbeatVerify + p.components = components + p.ibcFeaturesFunc = ibcFeaturesFunc + p.gatewayRelayerEnabled = gatewayRelayerEnabled + p.ccqEnabled = ccqEnabled + p.signedQueryReqC = signedQueryReqC + p.queryResponseReadC = queryResponseReadC + p.ccqBootstrapPeers = ccqBootstrapPeers + p.ccqPort = ccqPort + p.ccqAllowedPeers = ccqAllowedPeers + return nil + } +} + +// verify is used to verify the RunParams object. +func (p *RunParams) verify() error { + if p.bootstrapPeers == "" { + return errors.New("bootstrapPeers may not be nil") + } + if p.networkID == "" { + return errors.New("networkID may not be nil") + } + if p.priv == nil { + return errors.New("priv may not be nil") + } + if p.gst == nil { + return errors.New("gst may not be nil") + } + if p.rootCtxCancel == nil { + return errors.New("rootCtxCancel may not be nil") + } + if p.nodeName != "" { // Heartbeating is enabled. + if p.gk == nil { + return errors.New("if heart beating is enabled, gk may not be nil") + } + } + if p.obsvReqSendC != nil { + if p.gk == nil { + return errors.New("if obsvReqSendC is not nil, gk may not be nil") + } + } + return nil +} diff --git a/node/pkg/p2p/run_params_test.go b/node/pkg/p2p/run_params_test.go new file mode 100644 index 0000000000..46ff215419 --- /dev/null +++ b/node/pkg/p2p/run_params_test.go @@ -0,0 +1,218 @@ +package p2p + +import ( + "context" + "crypto/ecdsa" + "crypto/rand" + "testing" + + "github.com/certusone/wormhole/node/pkg/accountant" + "github.com/certusone/wormhole/node/pkg/common" + "github.com/certusone/wormhole/node/pkg/governor" + gossipv1 "github.com/certusone/wormhole/node/pkg/proto/gossip/v1" + "github.com/certusone/wormhole/node/pkg/query" + "github.com/ethereum/go-ethereum/crypto" + p2pcrypto "github.com/libp2p/go-libp2p/core/crypto" + "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" +) + +const bootstrapPeers = "/dns4/guardian-0.guardian/udp/8999/quic/p2p/12D3KooWHHzSeKaY8xuZVzkLbKFfvNgPPeKhFBGrMbNzbm5akpqu" +const networkId = "/wormhole/dev" +const nodeName = "guardian-0" + +func TestRunParamsBootstrapPeersRequired(t *testing.T) { + priv, _, err := p2pcrypto.GenerateKeyPair(p2pcrypto.Ed25519, -1) + require.NoError(t, err) + gst := common.NewGuardianSetState(nil) + _, rootCtxCancel := context.WithCancel(context.Background()) + defer rootCtxCancel() + + params, err := NewRunParams( + "", // bootstrapPeers, + networkId, + priv, + gst, + rootCtxCancel, + ) + require.ErrorContains(t, err, "bootstrapPeers may not be nil") + require.Nil(t, params) +} + +func TestRunParamsNetworkIdRequired(t *testing.T) { + priv, _, err := p2pcrypto.GenerateKeyPair(p2pcrypto.Ed25519, -1) + require.NoError(t, err) + gst := common.NewGuardianSetState(nil) + _, rootCtxCancel := context.WithCancel(context.Background()) + defer rootCtxCancel() + + params, err := NewRunParams( + bootstrapPeers, + "", // networkId, + priv, + gst, + rootCtxCancel, + ) + require.ErrorContains(t, err, "networkID may not be nil") + require.Nil(t, params) +} + +func TestRunParamsPrivRequired(t *testing.T) { + gst := common.NewGuardianSetState(nil) + _, rootCtxCancel := context.WithCancel(context.Background()) + defer rootCtxCancel() + + params, err := NewRunParams( + bootstrapPeers, + networkId, + nil, // priv, + gst, + rootCtxCancel, + ) + require.ErrorContains(t, err, "priv may not be nil") + require.Nil(t, params) +} + +func TestRunParamsGstRequired(t *testing.T) { + priv, _, err := p2pcrypto.GenerateKeyPair(p2pcrypto.Ed25519, -1) + require.NoError(t, err) + _, rootCtxCancel := context.WithCancel(context.Background()) + defer rootCtxCancel() + + params, err := NewRunParams( + bootstrapPeers, + networkId, + priv, + nil, // gst, + rootCtxCancel, + ) + require.ErrorContains(t, err, "gst may not be nil") + require.Nil(t, params) +} + +func TestRunParamsRootCtxCancelRequired(t *testing.T) { + priv, _, err := p2pcrypto.GenerateKeyPair(p2pcrypto.Ed25519, -1) + require.NoError(t, err) + gst := common.NewGuardianSetState(nil) + _, rootCtxCancel := context.WithCancel(context.Background()) + defer rootCtxCancel() + + params, err := NewRunParams( + bootstrapPeers, + networkId, + priv, + gst, + nil, // rootCtxCancel, + ) + require.ErrorContains(t, err, "rootCtxCancel may not be nil") + require.Nil(t, params) +} + +func TestRunParamsWithDisableHeartbeatVerify(t *testing.T) { + priv, _, err := p2pcrypto.GenerateKeyPair(p2pcrypto.Ed25519, -1) + require.NoError(t, err) + gst := common.NewGuardianSetState(nil) + _, rootCtxCancel := context.WithCancel(context.Background()) + defer rootCtxCancel() + + params, err := NewRunParams( + bootstrapPeers, + networkId, + priv, + gst, + rootCtxCancel, + WithDisableHeartbeatVerify(true), + ) + + require.NoError(t, err) + require.NotNil(t, params) + assert.True(t, params.disableHeartbeatVerify) +} + +func TestRunParamsWithGuardianOptions(t *testing.T) { + priv, _, err := p2pcrypto.GenerateKeyPair(p2pcrypto.Ed25519, -1) + require.NoError(t, err) + gst := common.NewGuardianSetState(nil) + _, rootCtxCancel := context.WithCancel(context.Background()) + defer rootCtxCancel() + + gk, err := ecdsa.GenerateKey(crypto.S256(), rand.Reader) + require.NoError(t, err) + require.NotNil(t, gk) + + obsvC := make(chan<- *common.MsgWithTimeStamp[gossipv1.SignedObservation], 42) + batchObsvC := make(chan<- *common.MsgWithTimeStamp[gossipv1.SignedObservationBatch], 42) + signedInC := make(chan<- *gossipv1.SignedVAAWithQuorum, 42) + obsvReqC := make(chan<- *gossipv1.ObservationRequest, 42) + gossipControlSendC := make(chan []byte, 42) + gossipAttestationSendC := make(chan []byte, 42) + gossipVaaSendC := make(chan []byte, 42) + obsvReqSendC := make(<-chan *gossipv1.ObservationRequest, 42) + + acct := &accountant.Accountant{} + gov := &governor.ChainGovernor{} + disableHeartbeatVerify := false + components := &Components{} + ibcFeaturesFunc := func() string { return "Hello, World!" } + gatewayRelayerEnabled := true + + ccqEnabled := true + signedQueryReqC := make(chan<- *gossipv1.SignedQueryRequest, 42) + queryResponseReadC := make(<-chan *query.QueryResponsePublication, 42) + ccqBootstrapPeers := "some bootstrap string" + ccqPort := uint(4242) + ccqAllowedPeers := "some allowed peers" + + params, err := NewRunParams( + bootstrapPeers, + networkId, + priv, + gst, + rootCtxCancel, + WithGuardianOptions( + nodeName, + gk, + obsvC, + batchObsvC, + signedInC, + obsvReqC, + gossipControlSendC, + gossipAttestationSendC, + gossipVaaSendC, + obsvReqSendC, + acct, + gov, + disableHeartbeatVerify, + components, + ibcFeaturesFunc, + gatewayRelayerEnabled, + ccqEnabled, + signedQueryReqC, + queryResponseReadC, + ccqBootstrapPeers, + ccqPort, + ccqAllowedPeers), + ) + + require.NoError(t, err) + require.NotNil(t, params) + assert.Equal(t, nodeName, params.nodeName) + assert.Equal(t, obsvC, params.obsvRecvC) + assert.Equal(t, signedInC, params.signedIncomingVaaRecvC) + assert.Equal(t, obsvReqC, params.obsvReqRecvC) + assert.Equal(t, gossipControlSendC, params.gossipControlSendC) + assert.Equal(t, gossipAttestationSendC, params.gossipAttestationSendC) + assert.Equal(t, gossipVaaSendC, params.gossipVaaSendC) + assert.Equal(t, obsvReqSendC, params.obsvReqSendC) + assert.Equal(t, acct, params.acct) + assert.Equal(t, gov, params.gov) + assert.Equal(t, components, params.components) + assert.NotNil(t, params.ibcFeaturesFunc) // Can't compare function pointers, so just verify it's set. + assert.True(t, params.gatewayRelayerEnabled) + assert.True(t, params.ccqEnabled) + assert.Equal(t, signedQueryReqC, params.signedQueryReqC) + assert.Equal(t, queryResponseReadC, params.queryResponseReadC) + assert.Equal(t, ccqBootstrapPeers, params.ccqBootstrapPeers) + assert.Equal(t, ccqPort, params.ccqPort) + assert.Equal(t, ccqAllowedPeers, params.ccqAllowedPeers) +} diff --git a/node/pkg/p2p/watermark_test.go b/node/pkg/p2p/watermark_test.go index 3e1373b282..5ca92e38fc 100644 --- a/node/pkg/p2p/watermark_test.go +++ b/node/pkg/p2p/watermark_test.go @@ -28,9 +28,12 @@ const LOCAL_P2P_PORTRANGE_START = 11000 type G struct { // arguments passed to p2p.New obsvC chan *node_common.MsgWithTimeStamp[gossipv1.SignedObservation] + batchObsvC chan *node_common.MsgWithTimeStamp[gossipv1.SignedObservationBatch] obsvReqC chan *gossipv1.ObservationRequest obsvReqSendC chan *gossipv1.ObservationRequest - sendC chan []byte + controlSendC chan []byte + attestationSendC chan []byte + vaaSendC chan []byte signedInC chan *gossipv1.SignedVAAWithQuorum priv p2pcrypto.PrivKey gk *ecdsa.PrivateKey @@ -61,18 +64,23 @@ func NewG(t *testing.T, nodeName string) *G { panic(err) } + _, rootCtxCancel := context.WithCancel(context.Background()) + g := &G{ obsvC: make(chan *node_common.MsgWithTimeStamp[gossipv1.SignedObservation], cs), + batchObsvC: make(chan *node_common.MsgWithTimeStamp[gossipv1.SignedObservationBatch], cs), obsvReqC: make(chan *gossipv1.ObservationRequest, cs), obsvReqSendC: make(chan *gossipv1.ObservationRequest, cs), - sendC: make(chan []byte, cs), + controlSendC: make(chan []byte, cs), + attestationSendC: make(chan []byte, cs), + vaaSendC: make(chan []byte, cs), signedInC: make(chan *gossipv1.SignedVAAWithQuorum, cs), priv: p2ppriv, gk: guardianpriv, gst: node_common.NewGuardianSetState(nil), nodeName: nodeName, disableHeartbeatVerify: false, - rootCtxCancel: nil, + rootCtxCancel: rootCtxCancel, gov: nil, signedGovCfg: make(chan *gossipv1.SignedChainGovernorConfig, cs), signedGovSt: make(chan *gossipv1.SignedChainGovernorStatus, cs), @@ -89,7 +97,9 @@ func NewG(t *testing.T, nodeName string) *G { case <-g.signedInC: case <-g.signedGovCfg: case <-g.signedGovSt: - case <-g.sendC: + case <-g.controlSendC: + case <-g.attestationSendC: + case <-g.vaaSendC: } }() @@ -164,32 +174,38 @@ func TestWatermark(t *testing.T) { func startGuardian(t *testing.T, ctx context.Context, g *G) { t.Helper() - supervisor.New(ctx, zap.L(), - Run(g.obsvC, + params, err := NewRunParams( + g.bootstrapPeers, + g.networkID, + g.priv, + g.gst, + g.rootCtxCancel, + WithGuardianOptions( + g.nodeName, + g.gk, + g.obsvC, + g.batchObsvC, + g.signedInC, g.obsvReqC, + g.controlSendC, + g.attestationSendC, + g.vaaSendC, g.obsvReqSendC, - g.sendC, - g.signedInC, - g.priv, - g.gk, - g.gst, - g.networkID, - g.bootstrapPeers, - g.nodeName, - g.disableHeartbeatVerify, - g.rootCtxCancel, g.acct, g.gov, - g.signedGovCfg, - g.signedGovSt, + g.disableHeartbeatVerify, g.components, - nil, // ibc feature string + nil, //g.ibcFeaturesFunc, false, // gateway relayer enabled false, // ccqEnabled nil, // signed query request channel nil, // query response channel "", // query bootstrap peers 0, // query port - "", // query allowed peers + "", // query allowed peers), )) + require.NoError(t, err) + + supervisor.New(ctx, zap.L(), + Run(params)) } diff --git a/node/pkg/processor/batch_obs.go b/node/pkg/processor/batch_obs.go new file mode 100644 index 0000000000..2bf728ce85 --- /dev/null +++ b/node/pkg/processor/batch_obs.go @@ -0,0 +1,87 @@ +package processor + +import ( + "context" + "errors" + "fmt" + + "github.com/certusone/wormhole/node/pkg/common" + "github.com/certusone/wormhole/node/pkg/p2p" + gossipv1 "github.com/certusone/wormhole/node/pkg/proto/gossip/v1" + "github.com/wormhole-foundation/wormhole/sdk/vaa" + "google.golang.org/protobuf/proto" +) + +// postObservationToBatch posts an individual observation to the batch processor. +func (p *Processor) postObservationToBatch(obs *gossipv1.Observation) { + select { + case p.batchObsvPubC <- obs: + default: + batchObservationChannelOverflow.WithLabelValues("batchObsvPub").Inc() + } +} + +// batchProcessor is the entry point for the batch processor, which is responsible for taking individual +// observations and publishing them as batches. It limits the size of a batch and the delay before publishing. +func (p *Processor) batchProcessor(ctx context.Context) error { + for { + select { + case <-ctx.Done(): + return nil + default: + if err := p.handleBatch(ctx); err != nil { + return err + } + } + } +} + +// handleBatch reads observations from the channel, either until a timeout occurs or the batch is full. +// Then it builds a `SendObservationBatch` gossip message and posts it to p2p. +func (p *Processor) handleBatch(ctx context.Context) error { + ctx, cancel := context.WithTimeout(ctx, p2p.MaxObservationBatchDelay) + defer cancel() + + observations, err := common.ReadFromChannelWithTimeout(ctx, p.batchObsvPubC, p2p.MaxObservationBatchSize) + if err != nil && !errors.Is(err, context.DeadlineExceeded) { + return fmt.Errorf("failed to read observations from the internal observation batch channel: %w", err) + } + + if len(observations) != 0 { + _ = p.publishBatch(observations) + } + + return nil +} + +// publishBatch formats the set of observations into a gossip message, publishes it, and returns the message bytes. +func (p *Processor) publishBatch(observations []*gossipv1.Observation) []byte { + batchMsg := gossipv1.SignedObservationBatch{ + Addr: p.ourAddr.Bytes(), + Observations: observations, + } + + gossipMsg := gossipv1.GossipMessage{Message: &gossipv1.GossipMessage_SignedObservationBatch{SignedObservationBatch: &batchMsg}} + msg, err := proto.Marshal(&gossipMsg) + if err != nil { + panic(err) + } + + select { + case p.gossipAttestationSendC <- msg: + default: + batchObservationChannelOverflow.WithLabelValues("gossipSend").Inc() + } + + return msg +} + +// shouldPublishImmediately returns true if the observation should be published immediately, rather than waiting for the next batch. +func (p *Processor) shouldPublishImmediately(v *vaa.VAA) bool { + return v.EmitterChain == vaa.ChainIDPythNet +} + +// publishImmediately formats a single observation into a `SignedObservationBatch` gossip message and publishes it. It the returns the message bytes. +func (p *Processor) publishImmediately(obs *gossipv1.Observation) []byte { + return p.publishBatch([]*gossipv1.Observation{obs}) +} diff --git a/node/pkg/processor/batch_obs_test.go b/node/pkg/processor/batch_obs_test.go new file mode 100644 index 0000000000..381fd985ca --- /dev/null +++ b/node/pkg/processor/batch_obs_test.go @@ -0,0 +1,85 @@ +package processor + +import ( + "bytes" + "testing" + "time" + + "github.com/certusone/wormhole/node/pkg/devnet" + "github.com/certusone/wormhole/node/pkg/p2p" + gossipv1 "github.com/certusone/wormhole/node/pkg/proto/gossip/v1" + ethcommon "github.com/ethereum/go-ethereum/common" + "github.com/ethereum/go-ethereum/crypto" + pubsub "github.com/libp2p/go-libp2p-pubsub" + "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" + "github.com/wormhole-foundation/wormhole/sdk/vaa" + "google.golang.org/protobuf/proto" +) + +func getUniqueVAA(seqNo uint64) vaa.VAA { + var payload = []byte{97, 97, 97, 97, 97, 97} + var governanceEmitter = vaa.Address{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4} + + vaa := vaa.VAA{ + Version: uint8(1), + GuardianSetIndex: uint32(1), + Signatures: nil, + Timestamp: time.Unix(0, 0), + Nonce: uint32(1), + Sequence: seqNo, + ConsistencyLevel: uint8(32), + EmitterChain: vaa.ChainIDSolana, + EmitterAddress: governanceEmitter, + Payload: payload, + } + + return vaa +} + +func TestMarshalSignedObservationBatch(t *testing.T) { + gk := devnet.InsecureDeterministicEcdsaKeyByIndex(crypto.S256(), uint64(0)) + require.NotNil(t, gk) + + NumObservations := uint64(p2p.MaxObservationBatchSize) + observations := make([]*gossipv1.Observation, 0, NumObservations) + for seqNo := uint64(1); seqNo <= NumObservations; seqNo++ { + vaa := getUniqueVAA(seqNo) + digest := vaa.SigningDigest() + sig, err := crypto.Sign(digest.Bytes(), gk) + require.NoError(t, err) + + observations = append(observations, &gossipv1.Observation{ + Hash: digest.Bytes(), + Signature: sig, + TxHash: ethcommon.HexToHash("0x06f541f5ecfc43407c31587aa6ac3a689e8960f36dc23c332db5510dfc6a4063").Bytes(), + MessageId: vaa.MessageID(), + }) + } + + obsBuf, err := proto.Marshal(observations[0]) + require.NoError(t, err) + assert.Equal(t, 205, len(obsBuf)) + + batch := gossipv1.SignedObservationBatch{ + Addr: crypto.PubkeyToAddress(gk.PublicKey).Bytes(), + Observations: observations, + } + + buf, err := proto.Marshal((&batch)) + require.NoError(t, err) + assert.Greater(t, pubsub.DefaultMaxMessageSize, len(buf)) + + var batch2 gossipv1.SignedObservationBatch + err = proto.Unmarshal(buf, &batch2) + require.NoError(t, err) + + assert.True(t, bytes.Equal(batch.Addr, batch2.Addr)) + assert.Equal(t, len(batch.Observations), len(batch2.Observations)) + for idx := range batch2.Observations { + assert.True(t, bytes.Equal(batch.Observations[idx].Hash, batch2.Observations[idx].Hash)) + assert.True(t, bytes.Equal(batch.Observations[idx].Signature, batch2.Observations[idx].Signature)) + assert.True(t, bytes.Equal(batch.Observations[idx].TxHash, batch2.Observations[idx].TxHash)) + assert.Equal(t, batch.Observations[idx].MessageId, batch2.Observations[idx].MessageId) + } +} diff --git a/node/pkg/processor/broadcast.go b/node/pkg/processor/broadcast.go index a5cee6a568..eea8d81f15 100644 --- a/node/pkg/processor/broadcast.go +++ b/node/pkg/processor/broadcast.go @@ -1,83 +1,86 @@ package processor import ( - "encoding/hex" - "time" - "github.com/prometheus/client_golang/prometheus" "github.com/prometheus/client_golang/prometheus/promauto" - ethcommon "github.com/ethereum/go-ethereum/common" - "github.com/ethereum/go-ethereum/crypto" + ethCommon "github.com/ethereum/go-ethereum/common" "google.golang.org/protobuf/proto" - node_common "github.com/certusone/wormhole/node/pkg/common" gossipv1 "github.com/certusone/wormhole/node/pkg/proto/gossip/v1" "github.com/wormhole-foundation/wormhole/sdk/vaa" ) var ( - observationsBroadcastTotal = promauto.NewCounter( + observationsBroadcast = promauto.NewCounter( prometheus.CounterOpts{ - Name: "wormhole_observations_broadcast_total", + Name: "wormhole_observations_queued_for_broadcast", Help: "Total number of signed observations queued for broadcast", }) + + batchObservationsBroadcast = promauto.NewCounter( + prometheus.CounterOpts{ + Name: "wormhole_batch_observations_queued_for_broadcast", + Help: "Total number of signed batched observations queued for broadcast", + }) + + signedVAAsBroadcast = promauto.NewCounter( + prometheus.CounterOpts{ + Name: "wormhole_signed_vaas_queued_for_broadcast", + Help: "Total number of signed vaas queued for broadcast", + }) ) +// broadcastSignature broadcasts the observation for something we observed locally. func (p *Processor) broadcastSignature( - o Observation, - signature []byte, + messageID string, txhash []byte, -) { - digest := o.SigningDigest() - obsv := gossipv1.SignedObservation{ - Addr: crypto.PubkeyToAddress(p.gk.PublicKey).Bytes(), + digest ethCommon.Hash, + signature []byte, + shouldPublishImmediately bool, +) (ourObs *gossipv1.Observation, msg []byte) { + // Create the observation to either be submitted to the batch processor or published immediately. + ourObs = &gossipv1.Observation{ Hash: digest.Bytes(), Signature: signature, TxHash: txhash, - MessageId: o.MessageID(), + MessageId: messageID, } - w := gossipv1.GossipMessage{Message: &gossipv1.GossipMessage_SignedObservation{SignedObservation: &obsv}} - - msg, err := proto.Marshal(&w) - if err != nil { - panic(err) - } - - p.gossipSendC <- msg + if batchCutoverComplete() { + if shouldPublishImmediately { + msg = p.publishImmediately(ourObs) + observationsBroadcast.Inc() + } else { + p.postObservationToBatch(ourObs) + batchObservationsBroadcast.Inc() + } + } else { + // Post the observation in its own gossip message. + obsv := gossipv1.SignedObservation{ + Addr: p.ourAddr.Bytes(), + Hash: digest.Bytes(), + Signature: signature, + TxHash: txhash, + MessageId: messageID, + } - // Store our VAA in case we're going to submit it to Solana - hash := hex.EncodeToString(digest.Bytes()) + w := gossipv1.GossipMessage{Message: &gossipv1.GossipMessage_SignedObservation{SignedObservation: &obsv}} - if p.state.signatures[hash] == nil { - p.state.signatures[hash] = &state{ - firstObserved: time.Now(), - nextRetry: time.Now().Add(nextRetryDuration(0)), - signatures: map[ethcommon.Address][]byte{}, - source: "loopback", + var err error + msg, err = proto.Marshal(&w) + if err != nil { + panic(err) } - } - p.state.signatures[hash].ourObservation = o - p.state.signatures[hash].ourMsg = msg - p.state.signatures[hash].txHash = txhash - p.state.signatures[hash].source = o.GetEmitterChain().String() - p.state.signatures[hash].gs = p.gs // guaranteed to match ourObservation - there's no concurrent access to p.gs - - // Fast path for our own signature - // send to obsvC directly if there is capacity, otherwise do it in a go routine. - // We can't block here because the same process would be responsible for reading from obsvC. - om := node_common.CreateMsgWithTimestamp[gossipv1.SignedObservation](&obsv) - select { - case p.obsvC <- om: - default: - go func() { p.obsvC <- om }() + // Broadcast the observation. + p.gossipAttestationSendC <- msg + observationsBroadcast.Inc() } - - observationsBroadcastTotal.Inc() + return ourObs, msg } +// broadcastSignedVAA broadcasts a VAA to the gossip network. func (p *Processor) broadcastSignedVAA(v *vaa.VAA) { b, err := v.Marshal() if err != nil { @@ -93,7 +96,9 @@ func (p *Processor) broadcastSignedVAA(v *vaa.VAA) { panic(err) } - p.gossipSendC <- msg + // Broadcast the signed VAA. + p.gossipVaaSendC <- msg + signedVAAsBroadcast.Inc() if p.gatewayRelayer != nil { p.gatewayRelayer.SubmitVAA(v) diff --git a/node/pkg/processor/cleanup.go b/node/pkg/processor/cleanup.go index d9a9cfc7d9..496d5e9952 100644 --- a/node/pkg/processor/cleanup.go +++ b/node/pkg/processor/cleanup.go @@ -115,8 +115,7 @@ func (p *Processor) handleCleanup(ctx context.Context) { } hasSigs := len(s.signatures) - wantSigs := vaa.CalculateQuorum(len(gs.Keys)) - quorum := hasSigs >= wantSigs + quorum := hasSigs >= gs.Quorum() var chain vaa.ChainID if s.ourObservation != nil { @@ -129,7 +128,7 @@ func (p *Processor) handleCleanup(ctx context.Context) { zap.String("digest", hash), zap.Duration("delta", delta), zap.Int("have_sigs", hasSigs), - zap.Int("required_sigs", wantSigs), + zap.Int("required_sigs", gs.Quorum()), zap.Bool("quorum", quorum), zap.Stringer("emitter_chain", chain), ) @@ -156,13 +155,13 @@ func (p *Processor) handleCleanup(ctx context.Context) { } delete(p.state.signatures, hash) aggregationStateExpiration.Inc() - case !s.submitted && ((s.ourMsg != nil && delta > retryLimitOurs) || (s.ourMsg == nil && delta > retryLimitNotOurs)): + case !s.submitted && ((s.ourObs != nil && delta > retryLimitOurs) || (s.ourObs == nil && delta > retryLimitNotOurs)): // Clearly, this horse is dead and continued beatings won't bring it closer to quorum. p.logger.Info("expiring unsubmitted observation after exhausting retries", zap.String("message_id", s.LoggingID()), zap.String("digest", hash), zap.Duration("delta", delta), - zap.Bool("weObserved", s.ourMsg != nil), + zap.Bool("weObserved", s.ourObs != nil), ) delete(p.state.signatures, hash) aggregationStateTimeout.Inc() @@ -173,7 +172,7 @@ func (p *Processor) handleCleanup(ctx context.Context) { // sig. If we do not have an observation, it means we either never observed it, or it got // revived by a malfunctioning guardian node, in which case, we can't do anything about it // and just delete it to keep our state nice and lean. - if s.ourMsg != nil { + if s.ourObs != nil { // Unreliable observations cannot be resubmitted and can be considered failed after 5 minutes if !s.ourObservation.IsReliable() { p.logger.Info("expiring unsubmitted unreliable observation", @@ -220,6 +219,7 @@ func (p *Processor) handleCleanup(ctx context.Context) { zap.String("digest", hash), zap.Duration("delta", delta), zap.String("firstObserved", s.firstObserved.String()), + zap.Int("numSignatures", len(s.signatures)), ) req := &gossipv1.ObservationRequest{ ChainId: uint32(s.ourObservation.GetEmitterChain()), @@ -228,7 +228,12 @@ func (p *Processor) handleCleanup(ctx context.Context) { if err := common.PostObservationRequest(p.obsvReqSendC, req); err != nil { p.logger.Warn("failed to broadcast re-observation request", zap.String("message_id", s.LoggingID()), zap.Error(err)) } - p.gossipSendC <- s.ourMsg + if s.ourMsg != nil { + // This is the case for immediately published messages (as well as anything still pending from before the cutover). + p.gossipAttestationSendC <- s.ourMsg + } else { + p.postObservationToBatch(s.ourObs) + } s.retryCtr++ s.nextRetry = time.Now().Add(nextRetryDuration(s.retryCtr)) aggregationStateRetries.Inc() @@ -238,7 +243,6 @@ func (p *Processor) handleCleanup(ctx context.Context) { // network reached consensus without us. We don't know the correct guardian // set, so we simply use the most recent one. hasSigs := len(s.signatures) - wantSigs := vaa.CalculateQuorum(len(p.gs.Keys)) if p.logger.Level().Enabled(zapcore.DebugLevel) { p.logger.Debug("expiring unsubmitted nil observation", @@ -246,8 +250,8 @@ func (p *Processor) handleCleanup(ctx context.Context) { zap.String("digest", hash), zap.Duration("delta", delta), zap.Int("have_sigs", hasSigs), - zap.Int("required_sigs", wantSigs), - zap.Bool("quorum", hasSigs >= wantSigs), + zap.Int("required_sigs", p.gs.Quorum()), + zap.Bool("quorum", hasSigs >= p.gs.Quorum()), ) } delete(p.state.signatures, hash) @@ -272,29 +276,34 @@ func (p *Processor) signedVaaAlreadyInDB(hash string, s *state) (bool, error) { return false, nil } - vaaID, err := db.VaaIDFromString(s.ourObservation.MessageID()) + msgId := s.ourObservation.MessageID() + vaaID, err := db.VaaIDFromString(msgId) if err != nil { return false, fmt.Errorf(`failed to generate VAA ID from message id "%s": %w`, s.ourObservation.MessageID(), err) } - vb, err := p.db.GetSignedVAABytes(*vaaID) - if err != nil { - if err == db.ErrVAANotFound { - if p.logger.Level().Enabled(zapcore.DebugLevel) { - p.logger.Debug("VAA not in DB", - zap.String("message_id", s.ourObservation.MessageID()), - zap.String("digest", hash), - ) + // If the VAA is waiting to be written to the DB, use that version. Otherwise use the DB. + v := p.getVaaFromUpdateMap(msgId) + if v == nil { + vb, err := p.db.GetSignedVAABytes(*vaaID) + if err != nil { + if err == db.ErrVAANotFound { + if p.logger.Level().Enabled(zapcore.DebugLevel) { + p.logger.Debug("VAA not in DB", + zap.String("message_id", s.ourObservation.MessageID()), + zap.String("digest", hash), + ) + } + return false, nil } - return false, nil - } else { + return false, fmt.Errorf(`failed to look up message id "%s" in db: %w`, s.ourObservation.MessageID(), err) } - } - v, err := vaa.Unmarshal(vb) - if err != nil { - return false, fmt.Errorf("failed to unmarshal VAA: %w", err) + v, err = vaa.Unmarshal(vb) + if err != nil { + return false, fmt.Errorf("failed to unmarshal VAA: %w", err) + } } oldHash := hex.EncodeToString(v.SigningDigest().Bytes()) diff --git a/node/pkg/processor/cutover.go b/node/pkg/processor/cutover.go new file mode 100644 index 0000000000..70a49685c7 --- /dev/null +++ b/node/pkg/processor/cutover.go @@ -0,0 +1,87 @@ +package processor + +import ( + "fmt" + "strings" + "sync/atomic" + "time" + + "go.uber.org/zap" +) + +// The format of this time is very picky. Please use the exact format specified by cutOverFmtStr! +const mainnetCutOverTimeStr = "" +const testnetCutOverTimeStr = "" +const devnetCutOverTimeStr = "" +const cutOverFmtStr = "2006-01-02T15:04:05-0700" + +// batchCutoverCompleteFlag indicates if the cutover time has passed, meaning we should publish observation batches. +var batchCutoverCompleteFlag atomic.Bool + +// batchCutoverComplete returns true if the cutover time has passed, meaning we should publish observation batches. +func batchCutoverComplete() bool { + return batchCutoverCompleteFlag.Load() +} + +// evaluateCutOver determines if the cutover time has passed yet and sets the global flag accordingly. If the time has +// not yet passed, it creates a go routine to wait for that time and then sets the flag. +func evaluateBatchCutover(logger *zap.Logger, networkID string) error { + cutOverTimeStr := getCutOverTimeStr(networkID) + + sco, delay, err := evaluateBatchCutoverImpl(logger, cutOverTimeStr, time.Now()) + if err != nil { + return err + } + + batchCutoverCompleteFlag.Store(sco) + logger.Info("evaluated cutover flag", zap.Bool("cutOverFlag", batchCutoverComplete()), zap.String("cutOverTime", cutOverTimeStr), zap.String("component", "batchco")) + + if delay != time.Duration(0) { + // Wait for the cut over time and then update the flag. + go func() { + time.Sleep(delay) + logger.Info("time to cut over to batch publishing", zap.String("cutOverTime", cutOverTimeStr), zap.String("component", "batchco")) + batchCutoverCompleteFlag.Store(true) + }() + } + + return nil +} + +// evaluateBatchCutoverImpl performs the actual cut over check. It is a separate function for testing purposes. +func evaluateBatchCutoverImpl(logger *zap.Logger, cutOverTimeStr string, now time.Time) (bool, time.Duration, error) { + if cutOverTimeStr == "" { + return false, 0, nil + } + + cutOverTime, err := time.Parse(cutOverFmtStr, cutOverTimeStr) + if err != nil { + return false, 0, fmt.Errorf(`failed to parse cut over time: %w`, err) + } + + if cutOverTime.Before(now) { + logger.Info("cut over time has passed, should publish observation batches", zap.String("cutOverTime", cutOverTime.Format(cutOverFmtStr)), zap.String("now", now.Format(cutOverFmtStr)), zap.String("component", "batchco")) + return true, 0, nil + } + + // If we get here, we need to wait for the cutover and then switch the global flag. + delay := cutOverTime.Sub(now) + logger.Info("still waiting for cut over time", + zap.Stringer("cutOverTime", cutOverTime), + zap.String("now", now.Format(cutOverFmtStr)), + zap.Stringer("delay", delay), + zap.String("component", "batchco")) + + return false, delay, nil +} + +// getCutOverTimeStr returns the cut over time string based on the network ID passed in. +func getCutOverTimeStr(networkID string) string { //nolint:unparam + if strings.Contains(networkID, "/mainnet/") { + return mainnetCutOverTimeStr + } + if strings.Contains(networkID, "/testnet/") { + return testnetCutOverTimeStr + } + return devnetCutOverTimeStr +} diff --git a/node/pkg/processor/cutover_test.go b/node/pkg/processor/cutover_test.go new file mode 100644 index 0000000000..eb79b9bc2d --- /dev/null +++ b/node/pkg/processor/cutover_test.go @@ -0,0 +1,81 @@ +package processor + +import ( + "testing" + "time" + + "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" + "go.uber.org/zap" +) + +func TestVerifyCutOverTime(t *testing.T) { + if mainnetCutOverTimeStr != "" { + _, err := time.Parse(cutOverFmtStr, mainnetCutOverTimeStr) + require.NoError(t, err) + } + if testnetCutOverTimeStr != "" { + _, err := time.Parse(cutOverFmtStr, testnetCutOverTimeStr) + require.NoError(t, err) + } + if devnetCutOverTimeStr != "" { + _, err := time.Parse(cutOverFmtStr, devnetCutOverTimeStr) + require.NoError(t, err) + } +} + +func TestGetCutOverTimeStr(t *testing.T) { + assert.Equal(t, mainnetCutOverTimeStr, getCutOverTimeStr("blah/blah/mainnet/blah")) + assert.Equal(t, testnetCutOverTimeStr, getCutOverTimeStr("blah/blah/testnet/blah")) + assert.Equal(t, devnetCutOverTimeStr, getCutOverTimeStr("blah/blah/devnet/blah")) +} + +func TestCutOverDisabled(t *testing.T) { + logger := zap.NewNop() + + cutOverTimeStr := "" + now, err := time.Parse(cutOverFmtStr, "2023-10-06T18:19:00-0000") + require.NoError(t, err) + + cuttingOver, delay, err := evaluateBatchCutoverImpl(logger, cutOverTimeStr, now) + require.NoError(t, err) + assert.False(t, cuttingOver) + assert.Equal(t, time.Duration(0), delay) +} + +func TestCutOverInvalidTime(t *testing.T) { + logger := zap.NewNop() + + cutOverTimeStr := "Hello World" + now, err := time.Parse(cutOverFmtStr, "2023-10-06T18:19:00-0000") + require.NoError(t, err) + + _, _, err = evaluateBatchCutoverImpl(logger, cutOverTimeStr, now) + require.EqualError(t, err, `failed to parse cut over time: parsing time "Hello World" as "2006-01-02T15:04:05-0700": cannot parse "Hello World" as "2006"`) +} + +func TestCutOverAlreadyHappened(t *testing.T) { + logger := zap.NewNop() + + cutOverTimeStr := "2023-10-06T18:18:00-0000" + now, err := time.Parse(cutOverFmtStr, "2023-10-06T18:19:00-0000") + require.NoError(t, err) + + cuttingOver, delay, err := evaluateBatchCutoverImpl(logger, cutOverTimeStr, now) + require.NoError(t, err) + assert.True(t, cuttingOver) + assert.Equal(t, time.Duration(0), delay) +} + +func TestCutOverDelayRequired(t *testing.T) { + logger := zap.NewNop() + + cutOverTimeStr := "2023-10-06T18:18:00-0000" + now, err := time.Parse(cutOverFmtStr, "2023-10-06T17:18:00-0000") + require.NoError(t, err) + + cuttingOver, delay, err := evaluateBatchCutoverImpl(logger, cutOverTimeStr, now) + require.NoError(t, err) + assert.False(t, cuttingOver) + assert.Equal(t, time.Duration(60*time.Minute), delay) +} diff --git a/node/pkg/processor/message.go b/node/pkg/processor/message.go index c5351bf363..65e947678a 100644 --- a/node/pkg/processor/message.go +++ b/node/pkg/processor/message.go @@ -2,12 +2,14 @@ package processor import ( "encoding/hex" + "time" "github.com/mr-tron/base58" "github.com/prometheus/client_golang/prometheus" "github.com/prometheus/client_golang/prometheus/promauto" + ethCommon "github.com/ethereum/go-ethereum/common" "github.com/ethereum/go-ethereum/crypto" "go.uber.org/zap" "go.uber.org/zap/zapcore" @@ -26,13 +28,6 @@ var ( Help: "Total number of messages observed", }, []string{"emitter_chain"}) - - messagesSignedTotal = promauto.NewCounterVec( - prometheus.CounterOpts{ - Name: "wormhole_message_observations_signed_total", - Help: "Total number of message observations that were successfully signed", - }, - []string{"emitter_chain"}) ) // handleMessage processes a message received from a chain and instantiates our deterministic copy of the VAA. An @@ -48,18 +43,7 @@ func (p *Processor) handleMessage(k *common.MessagePublication) { return } - if p.logger.Core().Enabled(zapcore.DebugLevel) { - p.logger.Debug("message publication confirmed", - zap.String("message_id", k.MessageIDString()), - zap.Uint32("nonce", k.Nonce), - zap.Stringer("txhash", k.TxHash), - zap.Time("timestamp", k.Timestamp), - ) - } - - messagesObservedTotal.With(prometheus.Labels{ - "emitter_chain": k.EmitterChain.String(), - }).Add(1) + messagesObservedTotal.WithLabelValues(k.EmitterChain.String()).Inc() // All nodes will create the exact same VAA and sign its digest. // Consensus is established on this digest. @@ -83,28 +67,60 @@ func (p *Processor) handleMessage(k *common.MessagePublication) { // Generate digest of the unsigned VAA. digest := v.SigningDigest() + hash := hex.EncodeToString(digest.Bytes()) // Sign the digest using our node's guardian key. - s, err := crypto.Sign(digest.Bytes(), p.gk) + signature, err := crypto.Sign(digest.Bytes(), p.gk) if err != nil { panic(err) } + shouldPublishImmediately := p.shouldPublishImmediately(&v.VAA) + if p.logger.Core().Enabled(zapcore.DebugLevel) { p.logger.Debug("observed and signed confirmed message publication", zap.String("message_id", k.MessageIDString()), zap.Stringer("txhash", k.TxHash), zap.String("txhash_b58", base58.Encode(k.TxHash.Bytes())), - zap.String("digest", hex.EncodeToString(digest.Bytes())), + zap.String("hash", hash), zap.Uint32("nonce", k.Nonce), + zap.Time("timestamp", k.Timestamp), zap.Uint8("consistency_level", k.ConsistencyLevel), - zap.String("signature", hex.EncodeToString(s)), + zap.String("signature", hex.EncodeToString(signature)), + zap.Bool("shouldPublishImmediately", shouldPublishImmediately), zap.Bool("isReobservation", k.IsReobservation), ) } - messagesSignedTotal.With(prometheus.Labels{ - "emitter_chain": k.EmitterChain.String()}).Add(1) + // Broadcast the signature. + ourObs, msg := p.broadcastSignature(v.MessageID(), k.TxHash.Bytes(), digest, signature, shouldPublishImmediately) - p.broadcastSignature(v, s, k.TxHash.Bytes()) + // Get / create our state entry. + s := p.state.signatures[hash] + if s == nil { + s = &state{ + firstObserved: time.Now(), + nextRetry: time.Now().Add(nextRetryDuration(0)), + signatures: map[ethCommon.Address][]byte{}, + source: "loopback", + } + + p.state.signatures[hash] = s + } + + // Update our state. + s.ourObservation = v + s.txHash = k.TxHash.Bytes() + s.source = v.GetEmitterChain().String() + s.gs = p.gs // guaranteed to match ourObservation - there's no concurrent access to p.gs + s.signatures[p.ourAddr] = signature + s.ourObs = ourObs + s.ourMsg = msg + + // Fast path for our own signature. + if !s.submitted { + start := time.Now() + p.checkForQuorum(ourObs, s, s.gs, hash) + timeToHandleObservation.Observe(float64(time.Since(start).Microseconds())) + } } diff --git a/node/pkg/processor/observation.go b/node/pkg/processor/observation.go index 0c92e761df..3fcea6318d 100644 --- a/node/pkg/processor/observation.go +++ b/node/pkg/processor/observation.go @@ -2,7 +2,6 @@ package processor import ( - "context" "encoding/hex" "fmt" "time" @@ -46,11 +45,9 @@ var ( ) // signaturesToVaaFormat converts a map[common.Address][]byte (processor state format) to []*vaa.Signature (VAA format) given a set of keys gsKeys -// It also returns a bool array indicating which key in gsKeys had a signature -// The processor state format is used for effeciently storing signatures during aggregation while the VAA format is more efficient for on-chain verification. -func signaturesToVaaFormat(signatures map[common.Address][]byte, gsKeys []common.Address) ([]*vaa.Signature, []bool) { +// The processor state format is used for efficiently storing signatures during aggregation while the VAA format is more efficient for on-chain verification. +func signaturesToVaaFormat(signatures map[common.Address][]byte, gsKeys []common.Address) []*vaa.Signature { // Aggregate all valid signatures into a list of vaa.Signature and construct signed VAA. - agg := make([]bool, len(gsKeys)) var sigs []*vaa.Signature for i, a := range gsKeys { sig, ok := signatures[a] @@ -66,25 +63,46 @@ func signaturesToVaaFormat(signatures map[common.Address][]byte, gsKeys []common Signature: bs, }) } + } + return sigs +} + +// handleBatchObservation processes a batch of remote VAA observations. +func (p *Processor) handleBatchObservation(m *node_common.MsgWithTimeStamp[gossipv1.SignedObservationBatch]) { + for _, obs := range m.Msg.Observations { + p.handleSingleObservation(m.Msg.Addr, obs) + } + batchObservationTotalDelay.Observe(float64(time.Since(m.Timestamp).Microseconds())) +} - agg[i] = ok +// handleObservation processes a remote VAA observation. +func (p *Processor) handleObservation(m *node_common.MsgWithTimeStamp[gossipv1.SignedObservation]) { + obs := gossipv1.Observation{ + Hash: m.Msg.Hash, + Signature: m.Msg.Signature, + TxHash: m.Msg.TxHash, + MessageId: m.Msg.MessageId, } - return sigs, agg + p.handleSingleObservation(m.Msg.Addr, &obs) + observationTotalDelay.Observe(float64(time.Since(m.Timestamp).Microseconds())) } -// handleObservation processes a remote VAA observation, verifies it, checks whether the VAA has met quorum, -// and assembles and submits a valid VAA if possible. -func (p *Processor) handleObservation(ctx context.Context, obs *node_common.MsgWithTimeStamp[gossipv1.SignedObservation]) { +// handleObservation processes a remote VAA observation, verifies it, checks whether the VAA has met quorum, and assembles and submits a valid VAA if possible. +func (p *Processor) handleSingleObservation(addr []byte, m *gossipv1.Observation) { // SECURITY: at this point, observations received from the p2p network are fully untrusted (all fields!) // // Note that observations are never tied to the (verified) p2p identity key - the p2p network // identity is completely decoupled from the guardian identity, p2p is just transport. - m := obs.Msg + start := time.Now() + observationsReceivedTotal.Inc() + + their_addr := common.BytesToAddress(addr) hash := hex.EncodeToString(m.Hash) s := p.state.signatures[hash] if s != nil && s.submitted { // already submitted; ignoring additional signatures for it. + timeToHandleObservation.Observe(float64(time.Since(start).Microseconds())) return } @@ -93,43 +111,12 @@ func (p *Processor) handleObservation(ctx context.Context, obs *node_common.MsgW zap.String("message_id", m.MessageId), zap.String("digest", hash), zap.String("signature", hex.EncodeToString(m.Signature)), - zap.String("addr", hex.EncodeToString(m.Addr)), + zap.String("addr", hex.EncodeToString(addr)), zap.String("txhash", hex.EncodeToString(m.TxHash)), zap.String("txhash_b58", base58.Encode(m.TxHash)), ) } - observationsReceivedTotal.Inc() - - // Verify the Guardian's signature. This verifies that m.Signature matches m.Hash and recovers - // the public key that was used to sign the payload. - pk, err := crypto.Ecrecover(m.Hash, m.Signature) - if err != nil { - p.logger.Warn("failed to verify signature on observation", - zap.String("messageId", m.MessageId), - zap.String("digest", hash), - zap.String("signature", hex.EncodeToString(m.Signature)), - zap.String("addr", hex.EncodeToString(m.Addr)), - zap.Error(err)) - observationsFailedTotal.WithLabelValues("invalid_signature").Inc() - return - } - - // Verify that m.Addr matches the public key that signed m.Hash. - their_addr := common.BytesToAddress(m.Addr) - signer_pk := common.BytesToAddress(crypto.Keccak256(pk[1:])[12:]) - - if their_addr != signer_pk { - p.logger.Info("invalid observation - address does not match pubkey", - zap.String("messageId", m.MessageId), - zap.String("digest", hash), - zap.String("signature", hex.EncodeToString(m.Signature)), - zap.String("addr", hex.EncodeToString(m.Addr)), - zap.String("pk", signer_pk.Hex())) - observationsFailedTotal.WithLabelValues("pubkey_mismatch").Inc() - return - } - // Determine which guardian set to use. The following cases are possible: // // - We have already seen the message and generated ourObservation. In this case, use the guardian set valid at the time, @@ -165,7 +152,7 @@ func (p *Processor) handleObservation(ctx context.Context, obs *node_common.MsgW return } - // Verify that m.Addr is included in the guardian set. If it's not, drop the message. In case it's us + // Verify that addr is included in the guardian set. If it's not, drop the message. In case it's us // who have the outdated guardian set, we'll just wait for the message to be retransmitted eventually. _, ok := gs.KeyIndex(their_addr) if !ok { @@ -182,6 +169,34 @@ func (p *Processor) handleObservation(ctx context.Context, obs *node_common.MsgW return } + // Verify the Guardian's signature. This verifies that m.Signature matches m.Hash and recovers + // the public key that was used to sign the payload. + pk, err := crypto.Ecrecover(m.Hash, m.Signature) + if err != nil { + p.logger.Warn("failed to verify signature on observation", + zap.String("messageId", m.MessageId), + zap.String("digest", hash), + zap.String("signature", hex.EncodeToString(m.Signature)), + zap.String("addr", hex.EncodeToString(addr)), + zap.Error(err)) + observationsFailedTotal.WithLabelValues("invalid_signature").Inc() + return + } + + // Verify that addr matches the public key that signed m.Hash. + signer_pk := common.BytesToAddress(crypto.Keccak256(pk[1:])[12:]) + + if their_addr != signer_pk { + p.logger.Info("invalid observation - address does not match pubkey", + zap.String("messageId", m.MessageId), + zap.String("digest", hash), + zap.String("signature", hex.EncodeToString(m.Signature)), + zap.String("addr", hex.EncodeToString(addr)), + zap.String("pk", signer_pk.Hex())) + observationsFailedTotal.WithLabelValues("pubkey_mismatch").Inc() + return + } + // Hooray! Now, we have verified all fields on SignedObservation and know that it includes // a valid signature by an active guardian. We still don't fully trust them, as they may be // byzantine, but now we know who we're dealing with. @@ -214,68 +229,74 @@ func (p *Processor) handleObservation(ctx context.Context, obs *node_common.MsgW s.signatures[their_addr] = m.Signature if s.ourObservation != nil { - // We have made this observation on chain! - - quorum := vaa.CalculateQuorum(len(gs.Keys)) - - // Check if we have more signatures than required for quorum. - // s.signatures may contain signatures from multiple guardian sets during guardian set updates - // Hence, if len(s.signatures) < quorum, then there is definitely no quorum and we can return early to save additional computation, - // but if len(s.signatures) >= quorum, there is not necessarily quorum for the active guardian set. - // We will later check for quorum again after assembling the VAA for a particular guardian set. - if len(s.signatures) < quorum { - // no quorum yet, we're done here - if p.logger.Level().Enabled(zapcore.DebugLevel) { - p.logger.Debug("quorum not yet met", - zap.String("messageId", m.MessageId), - zap.String("digest", hash), - ) - } - return + p.checkForQuorum(m, s, gs, hash) + } else { + if p.logger.Level().Enabled(zapcore.DebugLevel) { + p.logger.Debug("we have not yet seen this observation yet", + zap.String("messageId", m.MessageId), + zap.String("digest", hash), + ) } + // Keep going to update metrics. + } - // Now we *may* have quorum, depending on the guardian set in use. - // Let's construct the VAA and check if we actually have quorum. - sigsVaaFormat, agg := signaturesToVaaFormat(s.signatures, gs.Keys) + timeToHandleObservation.Observe(float64(time.Since(start).Microseconds())) +} +// checkForQuorum checks for quorum after a valid signature has been added to the observation state. If quorum is met, it broadcasts the signed VAA. This function +// is called both for local and external observations. It assumes we that we have made the observation ourselves but have not already submitted the VAA. +func (p *Processor) checkForQuorum(m *gossipv1.Observation, s *state, gs *node_common.GuardianSet, hash string) { + // Check if we have more signatures than required for quorum. + // s.signatures may contain signatures from multiple guardian sets during guardian set updates + // Hence, if len(s.signatures) < quorum, then there is definitely no quorum and we can return early to save additional computation, + // but if len(s.signatures) >= quorum, there is not necessarily quorum for the active guardian set. + // We will later check for quorum again after assembling the VAA for a particular guardian set. + if len(s.signatures) < gs.Quorum() { + // no quorum yet, we're done here if p.logger.Level().Enabled(zapcore.DebugLevel) { - p.logger.Debug("aggregation state for observation", // 1.3M out of 3M info messages / hour / guardian + p.logger.Debug("quorum not yet met", zap.String("messageId", m.MessageId), zap.String("digest", hash), - zap.Any("set", gs.KeysAsHexStrings()), - zap.Uint32("index", gs.Index), - zap.Bools("aggregation", agg), - zap.Int("required_sigs", quorum), - zap.Int("have_sigs", len(sigsVaaFormat)), - zap.Bool("quorum", len(sigsVaaFormat) >= quorum), ) } + return + } - if len(sigsVaaFormat) >= quorum && !s.submitted { - // we have reached quorum *with the active guardian set* - s.ourObservation.HandleQuorum(sigsVaaFormat, hash, p) - } else { - if p.logger.Level().Enabled(zapcore.DebugLevel) { - p.logger.Debug("quorum not met or already submitted, doing nothing", // 1.2M out of 3M info messages / hour / guardian - zap.String("messageId", m.MessageId), - zap.String("digest", hash), - ) - } - } - } else { + // Now we *may* have quorum, depending on the guardian set in use. + // Let's construct the VAA and check if we actually have quorum. + sigsVaaFormat := signaturesToVaaFormat(s.signatures, gs.Keys) + + if p.logger.Level().Enabled(zapcore.DebugLevel) { + p.logger.Debug("aggregation state for observation", // 1.3M out of 3M info messages / hour / guardian + zap.String("messageId", m.MessageId), + zap.String("digest", hash), + zap.Any("set", gs.KeysAsHexStrings()), + zap.Uint32("index", gs.Index), + zap.Int("required_sigs", gs.Quorum()), + zap.Int("have_sigs", len(sigsVaaFormat)), + zap.Bool("quorum", len(sigsVaaFormat) >= gs.Quorum()), + ) + } + + if len(sigsVaaFormat) < gs.Quorum() { if p.logger.Level().Enabled(zapcore.DebugLevel) { - p.logger.Debug("we have not yet seen this observation - temporarily storing signature", // 175K out of 3M info messages / hour / guardian + p.logger.Debug("quorum not met, doing nothing", zap.String("messageId", m.MessageId), zap.String("digest", hash), ) } - + return } - observationTotalDelay.Observe(float64(time.Since(obs.Timestamp).Microseconds())) + // We have reached quorum *with the active guardian set*. + start := time.Now() + s.ourObservation.HandleQuorum(sigsVaaFormat, hash, p) + s.submitted = true + timeToHandleQuorum.Observe(float64(time.Since(start).Microseconds())) } -func (p *Processor) handleInboundSignedVAAWithQuorum(ctx context.Context, m *gossipv1.SignedVAAWithQuorum) { +// handleInboundSignedVAAWithQuorum takes a VAA received from the network. If we have not already seen it and it is valid, we store it in the database. +func (p *Processor) handleInboundSignedVAAWithQuorum(m *gossipv1.SignedVAAWithQuorum) { v, err := vaa.Unmarshal(m.Vaa) if err != nil { p.logger.Warn("received invalid VAA in SignedVAAWithQuorum message", @@ -333,11 +354,5 @@ func (p *Processor) handleInboundSignedVAAWithQuorum(ctx context.Context, m *gos ) } - if err := p.storeSignedVAA(v); err != nil { - p.logger.Error("failed to store signed VAA", - zap.String("message_id", v.MessageID()), - zap.Error(err), - ) - return - } + p.storeSignedVAA(v) } diff --git a/node/pkg/processor/observation_test.go b/node/pkg/processor/observation_test.go index c384ffc641..eeef648339 100644 --- a/node/pkg/processor/observation_test.go +++ b/node/pkg/processor/observation_test.go @@ -1,7 +1,6 @@ package processor import ( - "context" "crypto/ecdsa" "crypto/rand" "testing" @@ -45,12 +44,11 @@ func TestHandleInboundSignedVAAWithQuorum_NilGuardianSet(t *testing.T) { observedZapCore, observedLogs := observer.New(zap.InfoLevel) observedLogger := zap.New(observedZapCore) - ctx := context.Background() signedVAAWithQuorum := &gossipv1.SignedVAAWithQuorum{Vaa: marshalVAA} processor := Processor{} processor.logger = observedLogger - processor.handleInboundSignedVAAWithQuorum(ctx, signedVAAWithQuorum) + processor.handleInboundSignedVAAWithQuorum(signedVAAWithQuorum) // Check to see if we got an error, which we should have, // because a `gs` is not defined on processor @@ -108,13 +106,12 @@ func TestHandleInboundSignedVAAWithQuorum(t *testing.T) { observedZapCore, observedLogs := observer.New(zap.InfoLevel) observedLogger := zap.New(observedZapCore) - ctx := context.Background() signedVAAWithQuorum := &gossipv1.SignedVAAWithQuorum{Vaa: marshalVAA} processor := Processor{} processor.gs = &guardianSet processor.logger = observedLogger - processor.handleInboundSignedVAAWithQuorum(ctx, signedVAAWithQuorum) + processor.handleInboundSignedVAAWithQuorum(signedVAAWithQuorum) // Check to see if we got an error, which we should have assert.Equal(t, 1, observedLogs.Len()) diff --git a/node/pkg/processor/processor.go b/node/pkg/processor/processor.go index 3a1fdfaab9..1a2ad16438 100644 --- a/node/pkg/processor/processor.go +++ b/node/pkg/processor/processor.go @@ -5,10 +5,12 @@ import ( "crypto/ecdsa" "encoding/hex" "fmt" + "sync" "time" "github.com/certusone/wormhole/node/pkg/db" "github.com/certusone/wormhole/node/pkg/governor" + "github.com/certusone/wormhole/node/pkg/p2p" ethcommon "github.com/ethereum/go-ethereum/common" "github.com/ethereum/go-ethereum/crypto" @@ -23,7 +25,6 @@ import ( "github.com/prometheus/client_golang/prometheus" "github.com/prometheus/client_golang/prometheus/promauto" - dto "github.com/prometheus/client_model/go" ) var GovInterval = time.Minute @@ -67,6 +68,8 @@ type ( settled bool // Human-readable description of the VAA's source, used for metrics. source string + // Our observation in case we need to resubmit it to the batch publisher. + ourObs *gossipv1.Observation // Copy of the bytes we submitted (ourObservation, but signed and serialized). Used for retransmissions. ourMsg []byte // The hash of the transaction in which the observation was made. Used for re-observation requests. @@ -101,13 +104,22 @@ type PythNetVaaEntry struct { type Processor struct { // msgC is a channel of observed emitted messages msgC <-chan *common.MessagePublication + // setC is a channel of guardian set updates setC <-chan *common.GuardianSet - // gossipSendC is a channel of outbound messages to broadcast on p2p - gossipSendC chan<- []byte + + // gossipAttestationSendC is a channel of outbound observation messages to broadcast on p2p + gossipAttestationSendC chan<- []byte + + // gossipVaaSendC is a channel of outbound VAA messages to broadcast on p2p + gossipVaaSendC chan<- []byte + // obsvC is a channel of inbound decoded observations from p2p obsvC chan *common.MsgWithTimeStamp[gossipv1.SignedObservation] + // batchObsvC is a channel of inbound decoded batches of observations from p2p + batchObsvC <-chan *common.MsgWithTimeStamp[gossipv1.SignedObservationBatch] + // obsvReqSendC is a send-only channel of outbound re-observation requests to broadcast on p2p obsvReqSendC chan<- *gossipv1.ObservationRequest @@ -139,6 +151,18 @@ type Processor struct { acctReadC <-chan *common.MessagePublication pythnetVaas map[string]PythNetVaaEntry gatewayRelayer *gwrelayer.GatewayRelayer + updateVAALock sync.Mutex + updatedVAAs map[string]*updateVaaEntry + networkID string + + // batchObsvPubC is the internal channel used to publish observations to the batch processor for publishing. + batchObsvPubC chan *gossipv1.Observation +} + +// updateVaaEntry is used to queue up a VAA to be written to the database. +type updateVaaEntry struct { + v *vaa.VAA + dirty bool } var ( @@ -146,24 +170,63 @@ var ( prometheus.HistogramOpts{ Name: "wormhole_signed_observation_channel_delay_us", Help: "Latency histogram for delay of signed observations in channel", - Buckets: []float64{10.0, 20.0, 50.0, 100.0, 1000.0, 5000.0, 10000.0}, + Buckets: []float64{10.0, 20.0, 50.0, 100.0, 1000.0, 5000.0, 10000.0, 100_000.0, 1_000_000.0, 10_000_000.0, 100_000_000.0, 1_000_000_000.0}, }) observationTotalDelay = promauto.NewHistogram( prometheus.HistogramOpts{ Name: "wormhole_signed_observation_total_delay_us", Help: "Latency histogram for total time to process signed observations", + Buckets: []float64{10.0, 20.0, 50.0, 100.0, 1000.0, 5000.0, 10_000.0, 100_000.0, 1_000_000.0, 10_000_000.0, 100_000_000.0, 1_000_000_000.0}, + }) + + batchObservationChanDelay = promauto.NewHistogram( + prometheus.HistogramOpts{ + Name: "wormhole_batch_observation_channel_delay_us", + Help: "Latency histogram for delay of batched observations in channel", + Buckets: []float64{10.0, 20.0, 50.0, 100.0, 1000.0, 5000.0, 10000.0}, + }) + + batchObservationTotalDelay = promauto.NewHistogram( + prometheus.HistogramOpts{ + Name: "wormhole_batch_observation_total_delay_us", + Help: "Latency histogram for total time to process batched observations", Buckets: []float64{10.0, 20.0, 50.0, 100.0, 1000.0, 5000.0, 10000.0}, }) + + batchObservationChannelOverflow = promauto.NewCounterVec( + prometheus.CounterOpts{ + Name: "wormhole_batch_observation_channel_overflow", + Help: "Total number of times a write to the batch observation publish channel failed", + }, []string{"channel"}) + + timeToHandleObservation = promauto.NewHistogram( + prometheus.HistogramOpts{ + Name: "wormhole_time_to_handle_observation_us", + Help: "Latency histogram for total time to handle observation on an observation", + Buckets: []float64{10.0, 20.0, 50.0, 100.0, 1000.0, 5000.0, 10_000.0, 100_000.0, 1_000_000.0, 10_000_000.0, 100_000_000.0, 1_000_000_000.0}, + }) + + timeToHandleQuorum = promauto.NewHistogram( + prometheus.HistogramOpts{ + Name: "wormhole_time_to_handle_quorum_us", + Help: "Latency histogram for total time to handle quorum on an observation", + Buckets: []float64{10.0, 20.0, 50.0, 100.0, 1000.0, 5000.0, 10_000.0, 100_000.0, 1_000_000.0, 10_000_000.0, 100_000_000.0, 1_000_000_000.0}, + }) ) +// batchObsvPubChanSize specifies the size of the channel used to publish observation batches. Allow five seconds worth. +const batchObsvPubChanSize = p2p.MaxObservationBatchSize * 5 + func NewProcessor( ctx context.Context, db *db.Database, msgC <-chan *common.MessagePublication, setC <-chan *common.GuardianSet, - gossipSendC chan<- []byte, + gossipAttestationSendC chan<- []byte, + gossipVaaSendC chan<- []byte, obsvC chan *common.MsgWithTimeStamp[gossipv1.SignedObservation], + batchObsvC <-chan *common.MsgWithTimeStamp[gossipv1.SignedObservationBatch], obsvReqSendC chan<- *gossipv1.ObservationRequest, signedInC <-chan *gossipv1.SignedVAAWithQuorum, gk *ecdsa.PrivateKey, @@ -172,18 +235,21 @@ func NewProcessor( acct *accountant.Accountant, acctReadC <-chan *common.MessagePublication, gatewayRelayer *gwrelayer.GatewayRelayer, + networkID string, ) *Processor { return &Processor{ - msgC: msgC, - setC: setC, - gossipSendC: gossipSendC, - obsvC: obsvC, - obsvReqSendC: obsvReqSendC, - signedInC: signedInC, - gk: gk, - gst: gst, - db: db, + msgC: msgC, + setC: setC, + gossipAttestationSendC: gossipAttestationSendC, + gossipVaaSendC: gossipVaaSendC, + obsvC: obsvC, + batchObsvC: batchObsvC, + obsvReqSendC: obsvReqSendC, + signedInC: signedInC, + gk: gk, + gst: gst, + db: db, logger: supervisor.Logger(ctx), state: &aggregationState{observationMap{}}, @@ -193,10 +259,28 @@ func NewProcessor( acctReadC: acctReadC, pythnetVaas: make(map[string]PythNetVaaEntry), gatewayRelayer: gatewayRelayer, + batchObsvPubC: make(chan *gossipv1.Observation, batchObsvPubChanSize), + updatedVAAs: make(map[string]*updateVaaEntry), + networkID: networkID, } } func (p *Processor) Run(ctx context.Context) error { + // Evaluate the batch cutover time. If it has passed, then the flag will be set to make us publish observation batches. + // If not, a routine will be started to wait for that time before starting to publish batches. + cutoverErr := evaluateBatchCutover(p.logger, p.networkID) + if cutoverErr != nil { + panic(cutoverErr) + } + + if err := supervisor.Run(ctx, "vaaWriter", common.WrapWithScissors(p.vaaWriter, "vaaWriter")); err != nil { + return fmt.Errorf("failed to start vaa writer: %w", err) + } + + if err := supervisor.Run(ctx, "batchProcessor", common.WrapWithScissors(p.batchProcessor, "batchProcessor")); err != nil { + return fmt.Errorf("failed to start batch processor: %w", err) + } + cleanup := time.NewTicker(CleanupInterval) // Always initialize the timer so don't have a nil pointer in the case below. It won't get rearmed after that. @@ -208,21 +292,13 @@ func (p *Processor) Run(ctx context.Context) error { if p.acct != nil { p.acct.Close() } - - // Log these as warnings so they show up in the benchmark logs. - metric := &dto.Metric{} - _ = observationChanDelay.Write(metric) - p.logger.Warn("PROCESSOR_METRICS", zap.Any("observationChannelDelay", metric.String())) - - metric = &dto.Metric{} - _ = observationTotalDelay.Write(metric) - p.logger.Warn("PROCESSOR_METRICS", zap.Any("observationProcessingDelay", metric.String())) - return ctx.Err() case p.gs = <-p.setC: p.logger.Info("guardian set updated", zap.Strings("set", p.gs.KeysAsHexStrings()), - zap.Uint32("index", p.gs.Index)) + zap.Uint32("index", p.gs.Index), + zap.Int("quorum", p.gs.Quorum()), + ) p.gst.Set(p.gs) case k := <-p.msgC: if p.governor != nil { @@ -252,9 +328,12 @@ func (p *Processor) Run(ctx context.Context) error { p.handleMessage(k) case m := <-p.obsvC: observationChanDelay.Observe(float64(time.Since(m.Timestamp).Microseconds())) - p.handleObservation(ctx, m) + p.handleObservation(m) + case m := <-p.batchObsvC: + batchObservationChanDelay.Observe(float64(time.Since(m.Timestamp).Microseconds())) + p.handleBatchObservation(m) case m := <-p.signedInC: - p.handleInboundSignedVAAWithQuorum(ctx, m) + p.handleInboundSignedVAAWithQuorum(m) case <-cleanup.C: p.handleCleanup(ctx) case <-govTimer.C: @@ -291,13 +370,17 @@ func (p *Processor) Run(ctx context.Context) error { } } -func (p *Processor) storeSignedVAA(v *vaa.VAA) error { +// storeSignedVAA schedules a database update for a VAA. +func (p *Processor) storeSignedVAA(v *vaa.VAA) { if v.EmitterChain == vaa.ChainIDPythNet { key := fmt.Sprintf("%v/%v", v.EmitterAddress, v.Sequence) p.pythnetVaas[key] = PythNetVaaEntry{v: v, updateTime: time.Now()} - return nil + return } - return p.db.StoreSignedVAA(v) + key := fmt.Sprintf("%d/%v/%v", v.EmitterChain, v.EmitterAddress, v.Sequence) + p.updateVAALock.Lock() + p.updatedVAAs[key] = &updateVaaEntry{v: v, dirty: true} + p.updateVAALock.Unlock() } // haveSignedVAA returns true if we already have a VAA for the given VAAID @@ -311,12 +394,16 @@ func (p *Processor) haveSignedVAA(id db.VAAID) bool { return exists } + key := fmt.Sprintf("%d/%v/%v", id.EmitterChain, id.EmitterAddress, id.Sequence) + if p.getVaaFromUpdateMap(key) != nil { + return true + } + if p.db == nil { return false } ok, err := p.db.HasVAA(id) - if err != nil { p.logger.Error("failed to look up VAA in database", zap.String("vaaID", string(id.Bytes())), @@ -327,3 +414,68 @@ func (p *Processor) haveSignedVAA(id db.VAAID) bool { return ok } + +// getVaaFromUpdateMap gets the VAA from the local map. If it's not there, it returns nil. +func (p *Processor) getVaaFromUpdateMap(key string) *vaa.VAA { + p.updateVAALock.Lock() + entry, exists := p.updatedVAAs[key] + p.updateVAALock.Unlock() + if !exists { + return nil + } + return entry.v +} + +// vaaWriter is the routine that writes VAAs to the database once per second. It creates a local copy of the map +// being used by the processor to reduce lock contention. It uses a dirty flag to handle the case where the VAA +// gets updated again while we are in the process of writing it to the database. +func (p *Processor) vaaWriter(ctx context.Context) error { + ticker := time.NewTicker(time.Second) + for { + select { + case <-ctx.Done(): + return nil + case <-ticker.C: + var updatedVAAs map[string]*updateVaaEntry + p.updateVAALock.Lock() + if len(p.updatedVAAs) != 0 { + // There's something to write. Create a local copy of the map so we can release the lock. + updatedVAAs = make(map[string]*updateVaaEntry) + for key, entry := range p.updatedVAAs { + updatedVAAs[key] = entry + entry.dirty = false + } + } + p.updateVAALock.Unlock() + if updatedVAAs != nil { + // If there's anything to write, do that. + vaaBatch := make([]*vaa.VAA, 0, len(updatedVAAs)) + for _, entry := range updatedVAAs { + vaaBatch = append(vaaBatch, entry.v) + } + + if err := p.db.StoreSignedVAABatch(vaaBatch); err != nil { + p.logger.Error("failed to write VAAs to database", zap.Int("numVAAs", len(vaaBatch)), zap.Error(err)) + } + + // Go through the map and delete anything we have written that hasn't been updated again. + // If something has been updated again, it will get written next interval. + p.updateVAALock.Lock() + for key, entry := range p.updatedVAAs { + if !entry.dirty { + delete(p.updatedVAAs, key) + } + } + p.updateVAALock.Unlock() + } + } + } +} + +// GetFeatures returns the processor feature string that can be published in heartbeat messages. +func GetFeatures() string { + if batchCutoverComplete() { + return "processor:batching" + } + return "" +} diff --git a/node/pkg/processor/vaa.go b/node/pkg/processor/vaa.go index d1ce007d81..1f4a64fc86 100644 --- a/node/pkg/processor/vaa.go +++ b/node/pkg/processor/vaa.go @@ -11,6 +11,7 @@ type VAA struct { Reobservation bool } +// HandleQuorum is called when a VAA reaches quorum. It publishes the VAA to the gossip network and stores it in the database. func (v *VAA) HandleQuorum(sigs []*vaa.Signature, hash string, p *Processor) { // Deep copy the observation and add signatures signed := &vaa.VAA{ @@ -26,22 +27,14 @@ func (v *VAA) HandleQuorum(sigs []*vaa.Signature, hash string, p *Processor) { ConsistencyLevel: v.ConsistencyLevel, } - // Store signed VAA in database. p.logger.Info("signed VAA with quorum", zap.String("message_id", signed.MessageID()), zap.String("digest", hash), ) - if err := p.storeSignedVAA(signed); err != nil { - p.logger.Error("failed to store signed VAA", - zap.String("message_id", signed.MessageID()), - zap.String("digest", hash), - zap.Error(err), - ) - } - + // Broadcast the VAA and store it in the database. p.broadcastSignedVAA(signed) - p.state.signatures[hash].submitted = true + p.storeSignedVAA(signed) } func (v *VAA) IsReliable() bool { diff --git a/node/pkg/proto/gossip/v1/gossip.pb.go b/node/pkg/proto/gossip/v1/gossip.pb.go index 96ab3498eb..f41bcc34e9 100644 --- a/node/pkg/proto/gossip/v1/gossip.pb.go +++ b/node/pkg/proto/gossip/v1/gossip.pb.go @@ -35,6 +35,7 @@ type GossipMessage struct { // *GossipMessage_SignedChainGovernorStatus // *GossipMessage_SignedQueryRequest // *GossipMessage_SignedQueryResponse + // *GossipMessage_SignedObservationBatch Message isGossipMessage_Message `protobuf_oneof:"message"` } @@ -133,6 +134,13 @@ func (x *GossipMessage) GetSignedQueryResponse() *SignedQueryResponse { return nil } +func (x *GossipMessage) GetSignedObservationBatch() *SignedObservationBatch { + if x, ok := x.GetMessage().(*GossipMessage_SignedObservationBatch); ok { + return x.SignedObservationBatch + } + return nil +} + type isGossipMessage_Message interface { isGossipMessage_Message() } @@ -169,6 +177,10 @@ type GossipMessage_SignedQueryResponse struct { SignedQueryResponse *SignedQueryResponse `protobuf:"bytes,11,opt,name=signed_query_response,json=signedQueryResponse,proto3,oneof"` } +type GossipMessage_SignedObservationBatch struct { + SignedObservationBatch *SignedObservationBatch `protobuf:"bytes,12,opt,name=signed_observation_batch,json=signedObservationBatch,proto3,oneof"` +} + func (*GossipMessage_SignedObservation) isGossipMessage_Message() {} func (*GossipMessage_SignedHeartbeat) isGossipMessage_Message() {} @@ -185,6 +197,8 @@ func (*GossipMessage_SignedQueryRequest) isGossipMessage_Message() {} func (*GossipMessage_SignedQueryResponse) isGossipMessage_Message() {} +func (*GossipMessage_SignedObservationBatch) isGossipMessage_Message() {} + type SignedHeartbeat struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -720,11 +734,12 @@ type ChainGovernorConfig struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - NodeName string `protobuf:"bytes,1,opt,name=node_name,json=nodeName,proto3" json:"node_name,omitempty"` - Counter int64 `protobuf:"varint,2,opt,name=counter,proto3" json:"counter,omitempty"` - Timestamp int64 `protobuf:"varint,3,opt,name=timestamp,proto3" json:"timestamp,omitempty"` - Chains []*ChainGovernorConfig_Chain `protobuf:"bytes,4,rep,name=chains,proto3" json:"chains,omitempty"` - Tokens []*ChainGovernorConfig_Token `protobuf:"bytes,5,rep,name=tokens,proto3" json:"tokens,omitempty"` + NodeName string `protobuf:"bytes,1,opt,name=node_name,json=nodeName,proto3" json:"node_name,omitempty"` + Counter int64 `protobuf:"varint,2,opt,name=counter,proto3" json:"counter,omitempty"` + Timestamp int64 `protobuf:"varint,3,opt,name=timestamp,proto3" json:"timestamp,omitempty"` + Chains []*ChainGovernorConfig_Chain `protobuf:"bytes,4,rep,name=chains,proto3" json:"chains,omitempty"` + Tokens []*ChainGovernorConfig_Token `protobuf:"bytes,5,rep,name=tokens,proto3" json:"tokens,omitempty"` + FlowCancelEnabled bool `protobuf:"varint,6,opt,name=flow_cancel_enabled,json=flowCancelEnabled,proto3" json:"flow_cancel_enabled,omitempty"` } func (x *ChainGovernorConfig) Reset() { @@ -794,6 +809,13 @@ func (x *ChainGovernorConfig) GetTokens() []*ChainGovernorConfig_Token { return nil } +func (x *ChainGovernorConfig) GetFlowCancelEnabled() bool { + if x != nil { + return x.FlowCancelEnabled + } + return false +} + // This message is published every minute. type SignedChainGovernorStatus struct { state protoimpl.MessageState @@ -1046,6 +1068,143 @@ func (x *SignedQueryResponse) GetSignature() []byte { return nil } +// A SignedObservationBatch is a signed statement by a given guardian node that they observed a number of events. +type SignedObservationBatch struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Guardian pubkey as truncated eth address. + Addr []byte `protobuf:"bytes,1,opt,name=addr,proto3" json:"addr,omitempty"` + // The set of observations in this batch. Note that the default max message size in libp2p before fragmentation is 1MB. + // If we limit this array to 4000 entries, that gives us a marshaled message size of 800K, which is safely below that limit. + Observations []*Observation `protobuf:"bytes,2,rep,name=observations,proto3" json:"observations,omitempty"` +} + +func (x *SignedObservationBatch) Reset() { + *x = SignedObservationBatch{} + if protoimpl.UnsafeEnabled { + mi := &file_gossip_v1_gossip_proto_msgTypes[13] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SignedObservationBatch) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SignedObservationBatch) ProtoMessage() {} + +func (x *SignedObservationBatch) ProtoReflect() protoreflect.Message { + mi := &file_gossip_v1_gossip_proto_msgTypes[13] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SignedObservationBatch.ProtoReflect.Descriptor instead. +func (*SignedObservationBatch) Descriptor() ([]byte, []int) { + return file_gossip_v1_gossip_proto_rawDescGZIP(), []int{13} +} + +func (x *SignedObservationBatch) GetAddr() []byte { + if x != nil { + return x.Addr + } + return nil +} + +func (x *SignedObservationBatch) GetObservations() []*Observation { + if x != nil { + return x.Observations + } + return nil +} + +// Observation defines a single observation that is contained in SignedObservationBatch +type Observation struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The observation's deterministic, unique hash. + Hash []byte `protobuf:"bytes,1,opt,name=hash,proto3" json:"hash,omitempty"` + // ECSDA signature of the hash using the node's guardian key. + Signature []byte `protobuf:"bytes,2,opt,name=signature,proto3" json:"signature,omitempty"` + // Transaction hash this observation was made from. + // Optional, included for observability. + TxHash []byte `protobuf:"bytes,3,opt,name=tx_hash,json=txHash,proto3" json:"tx_hash,omitempty"` + // Message ID (chain/emitter/seq) for this observation. + // Optional, included for observability. + MessageId string `protobuf:"bytes,4,opt,name=message_id,json=messageId,proto3" json:"message_id,omitempty"` +} + +func (x *Observation) Reset() { + *x = Observation{} + if protoimpl.UnsafeEnabled { + mi := &file_gossip_v1_gossip_proto_msgTypes[14] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Observation) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Observation) ProtoMessage() {} + +func (x *Observation) ProtoReflect() protoreflect.Message { + mi := &file_gossip_v1_gossip_proto_msgTypes[14] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Observation.ProtoReflect.Descriptor instead. +func (*Observation) Descriptor() ([]byte, []int) { + return file_gossip_v1_gossip_proto_rawDescGZIP(), []int{14} +} + +func (x *Observation) GetHash() []byte { + if x != nil { + return x.Hash + } + return nil +} + +func (x *Observation) GetSignature() []byte { + if x != nil { + return x.Signature + } + return nil +} + +func (x *Observation) GetTxHash() []byte { + if x != nil { + return x.TxHash + } + return nil +} + +func (x *Observation) GetMessageId() string { + if x != nil { + return x.MessageId + } + return "" +} + type Heartbeat_Network struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -1068,7 +1227,7 @@ type Heartbeat_Network struct { func (x *Heartbeat_Network) Reset() { *x = Heartbeat_Network{} if protoimpl.UnsafeEnabled { - mi := &file_gossip_v1_gossip_proto_msgTypes[13] + mi := &file_gossip_v1_gossip_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1081,7 +1240,7 @@ func (x *Heartbeat_Network) String() string { func (*Heartbeat_Network) ProtoMessage() {} func (x *Heartbeat_Network) ProtoReflect() protoreflect.Message { - mi := &file_gossip_v1_gossip_proto_msgTypes[13] + mi := &file_gossip_v1_gossip_proto_msgTypes[15] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1152,7 +1311,7 @@ type ChainGovernorConfig_Chain struct { func (x *ChainGovernorConfig_Chain) Reset() { *x = ChainGovernorConfig_Chain{} if protoimpl.UnsafeEnabled { - mi := &file_gossip_v1_gossip_proto_msgTypes[14] + mi := &file_gossip_v1_gossip_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1165,7 +1324,7 @@ func (x *ChainGovernorConfig_Chain) String() string { func (*ChainGovernorConfig_Chain) ProtoMessage() {} func (x *ChainGovernorConfig_Chain) ProtoReflect() protoreflect.Message { - mi := &file_gossip_v1_gossip_proto_msgTypes[14] + mi := &file_gossip_v1_gossip_proto_msgTypes[16] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1215,7 +1374,7 @@ type ChainGovernorConfig_Token struct { func (x *ChainGovernorConfig_Token) Reset() { *x = ChainGovernorConfig_Token{} if protoimpl.UnsafeEnabled { - mi := &file_gossip_v1_gossip_proto_msgTypes[15] + mi := &file_gossip_v1_gossip_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1228,7 +1387,7 @@ func (x *ChainGovernorConfig_Token) String() string { func (*ChainGovernorConfig_Token) ProtoMessage() {} func (x *ChainGovernorConfig_Token) ProtoReflect() protoreflect.Message { - mi := &file_gossip_v1_gossip_proto_msgTypes[15] + mi := &file_gossip_v1_gossip_proto_msgTypes[17] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1279,7 +1438,7 @@ type ChainGovernorStatus_EnqueuedVAA struct { func (x *ChainGovernorStatus_EnqueuedVAA) Reset() { *x = ChainGovernorStatus_EnqueuedVAA{} if protoimpl.UnsafeEnabled { - mi := &file_gossip_v1_gossip_proto_msgTypes[16] + mi := &file_gossip_v1_gossip_proto_msgTypes[18] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1292,7 +1451,7 @@ func (x *ChainGovernorStatus_EnqueuedVAA) String() string { func (*ChainGovernorStatus_EnqueuedVAA) ProtoMessage() {} func (x *ChainGovernorStatus_EnqueuedVAA) ProtoReflect() protoreflect.Message { - mi := &file_gossip_v1_gossip_proto_msgTypes[16] + mi := &file_gossip_v1_gossip_proto_msgTypes[18] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1349,7 +1508,7 @@ type ChainGovernorStatus_Emitter struct { func (x *ChainGovernorStatus_Emitter) Reset() { *x = ChainGovernorStatus_Emitter{} if protoimpl.UnsafeEnabled { - mi := &file_gossip_v1_gossip_proto_msgTypes[17] + mi := &file_gossip_v1_gossip_proto_msgTypes[19] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1362,7 +1521,7 @@ func (x *ChainGovernorStatus_Emitter) String() string { func (*ChainGovernorStatus_Emitter) ProtoMessage() {} func (x *ChainGovernorStatus_Emitter) ProtoReflect() protoreflect.Message { - mi := &file_gossip_v1_gossip_proto_msgTypes[17] + mi := &file_gossip_v1_gossip_proto_msgTypes[19] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1404,15 +1563,18 @@ type ChainGovernorStatus_Chain struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - ChainId uint32 `protobuf:"varint,1,opt,name=chain_id,json=chainId,proto3" json:"chain_id,omitempty"` - RemainingAvailableNotional uint64 `protobuf:"varint,2,opt,name=remaining_available_notional,json=remainingAvailableNotional,proto3" json:"remaining_available_notional,omitempty"` - Emitters []*ChainGovernorStatus_Emitter `protobuf:"bytes,3,rep,name=emitters,proto3" json:"emitters,omitempty"` + ChainId uint32 `protobuf:"varint,1,opt,name=chain_id,json=chainId,proto3" json:"chain_id,omitempty"` + RemainingAvailableNotional uint64 `protobuf:"varint,2,opt,name=remaining_available_notional,json=remainingAvailableNotional,proto3" json:"remaining_available_notional,omitempty"` + Emitters []*ChainGovernorStatus_Emitter `protobuf:"bytes,3,rep,name=emitters,proto3" json:"emitters,omitempty"` + SmallTxNetNotionalValue int64 `protobuf:"varint,4,opt,name=small_tx_net_notional_value,json=smallTxNetNotionalValue,proto3" json:"small_tx_net_notional_value,omitempty"` + SmallTxOutgoingNotionalValue uint64 `protobuf:"varint,5,opt,name=small_tx_outgoing_notional_value,json=smallTxOutgoingNotionalValue,proto3" json:"small_tx_outgoing_notional_value,omitempty"` + FlowCancelNotionalValue uint64 `protobuf:"varint,6,opt,name=flow_cancel_notional_value,json=flowCancelNotionalValue,proto3" json:"flow_cancel_notional_value,omitempty"` } func (x *ChainGovernorStatus_Chain) Reset() { *x = ChainGovernorStatus_Chain{} if protoimpl.UnsafeEnabled { - mi := &file_gossip_v1_gossip_proto_msgTypes[18] + mi := &file_gossip_v1_gossip_proto_msgTypes[20] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1425,7 +1587,7 @@ func (x *ChainGovernorStatus_Chain) String() string { func (*ChainGovernorStatus_Chain) ProtoMessage() {} func (x *ChainGovernorStatus_Chain) ProtoReflect() protoreflect.Message { - mi := &file_gossip_v1_gossip_proto_msgTypes[18] + mi := &file_gossip_v1_gossip_proto_msgTypes[20] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1462,12 +1624,33 @@ func (x *ChainGovernorStatus_Chain) GetEmitters() []*ChainGovernorStatus_Emitter return nil } +func (x *ChainGovernorStatus_Chain) GetSmallTxNetNotionalValue() int64 { + if x != nil { + return x.SmallTxNetNotionalValue + } + return 0 +} + +func (x *ChainGovernorStatus_Chain) GetSmallTxOutgoingNotionalValue() uint64 { + if x != nil { + return x.SmallTxOutgoingNotionalValue + } + return 0 +} + +func (x *ChainGovernorStatus_Chain) GetFlowCancelNotionalValue() uint64 { + if x != nil { + return x.FlowCancelNotionalValue + } + return 0 +} + var File_gossip_v1_gossip_proto protoreflect.FileDescriptor var file_gossip_v1_gossip_proto_rawDesc = []byte{ 0x0a, 0x16, 0x67, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x2f, 0x76, 0x31, 0x2f, 0x67, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x09, 0x67, 0x6f, 0x73, 0x73, 0x69, 0x70, - 0x2e, 0x76, 0x31, 0x22, 0xe9, 0x05, 0x0a, 0x0d, 0x47, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x4d, 0x65, + 0x2e, 0x76, 0x31, 0x22, 0xc8, 0x06, 0x0a, 0x0d, 0x47, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x4d, 0x0a, 0x12, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x5f, 0x6f, 0x62, 0x73, 0x65, 0x72, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x69, @@ -1513,175 +1696,210 @@ var file_gossip_v1_gossip_proto_rawDesc = []byte{ 0x67, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x00, 0x52, 0x13, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, - 0x72, 0x0a, 0x0f, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x48, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, - 0x61, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x68, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x68, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, - 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0c, 0x52, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x23, - 0x0a, 0x0d, 0x67, 0x75, 0x61, 0x72, 0x64, 0x69, 0x61, 0x6e, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0c, 0x67, 0x75, 0x61, 0x72, 0x64, 0x69, 0x61, 0x6e, 0x41, - 0x64, 0x64, 0x72, 0x22, 0x88, 0x04, 0x0a, 0x09, 0x48, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, - 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5d, 0x0a, 0x18, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x5f, 0x6f, + 0x62, 0x73, 0x65, 0x72, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x62, 0x61, 0x74, 0x63, 0x68, + 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x67, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x2e, + 0x76, 0x31, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x4f, 0x62, 0x73, 0x65, 0x72, 0x76, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x48, 0x00, 0x52, 0x16, 0x73, 0x69, 0x67, + 0x6e, 0x65, 0x64, 0x4f, 0x62, 0x73, 0x65, 0x72, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x61, + 0x74, 0x63, 0x68, 0x42, 0x09, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x72, + 0x0a, 0x0f, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x48, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, + 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x68, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x68, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x12, + 0x1c, 0x0a, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0c, 0x52, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x23, 0x0a, + 0x0d, 0x67, 0x75, 0x61, 0x72, 0x64, 0x69, 0x61, 0x6e, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0c, 0x67, 0x75, 0x61, 0x72, 0x64, 0x69, 0x61, 0x6e, 0x41, 0x64, + 0x64, 0x72, 0x22, 0x88, 0x04, 0x0a, 0x09, 0x48, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, + 0x12, 0x1b, 0x0a, 0x09, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x08, 0x6e, 0x6f, 0x64, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, + 0x07, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, + 0x74, 0x61, 0x6d, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, + 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x38, 0x0a, 0x08, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, + 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x73, 0x73, 0x69, 0x70, + 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x2e, 0x4e, 0x65, + 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x52, 0x08, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x12, + 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x23, 0x0a, 0x0d, 0x67, 0x75, 0x61, + 0x72, 0x64, 0x69, 0x61, 0x6e, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0c, 0x67, 0x75, 0x61, 0x72, 0x64, 0x69, 0x61, 0x6e, 0x41, 0x64, 0x64, 0x72, 0x12, 0x25, + 0x0a, 0x0e, 0x62, 0x6f, 0x6f, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, + 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x62, 0x6f, 0x6f, 0x74, 0x54, 0x69, 0x6d, 0x65, + 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, + 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, + 0x73, 0x12, 0x1e, 0x0a, 0x0b, 0x70, 0x32, 0x70, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x69, 0x64, + 0x18, 0x09, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x70, 0x32, 0x70, 0x4e, 0x6f, 0x64, 0x65, 0x49, + 0x64, 0x1a, 0xc9, 0x01, 0x0a, 0x07, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x12, 0x0e, 0x0a, + 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x02, 0x69, 0x64, 0x12, 0x16, 0x0a, + 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x68, + 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x29, 0x0a, 0x10, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, + 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, + 0x12, 0x1f, 0x0a, 0x0b, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x61, 0x66, 0x65, 0x5f, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x73, 0x61, 0x66, 0x65, 0x48, 0x65, 0x69, 0x67, + 0x68, 0x74, 0x12, 0x29, 0x0a, 0x10, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x5f, + 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0f, 0x66, 0x69, + 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x22, 0x91, 0x01, + 0x0a, 0x11, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x4f, 0x62, 0x73, 0x65, 0x72, 0x76, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x61, 0x64, 0x64, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0c, 0x52, 0x04, 0x61, 0x64, 0x64, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x61, 0x73, 0x68, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x68, 0x61, 0x73, 0x68, 0x12, 0x1c, 0x0a, 0x09, 0x73, + 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, + 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x78, 0x5f, + 0x68, 0x61, 0x73, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x74, 0x78, 0x48, 0x61, + 0x73, 0x68, 0x12, 0x1d, 0x0a, 0x0a, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x69, 0x64, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x49, + 0x64, 0x22, 0x27, 0x0a, 0x13, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x56, 0x41, 0x41, 0x57, 0x69, + 0x74, 0x68, 0x51, 0x75, 0x6f, 0x72, 0x75, 0x6d, 0x12, 0x10, 0x0a, 0x03, 0x76, 0x61, 0x61, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x03, 0x76, 0x61, 0x61, 0x22, 0x8e, 0x01, 0x0a, 0x18, 0x53, + 0x69, 0x67, 0x6e, 0x65, 0x64, 0x4f, 0x62, 0x73, 0x65, 0x72, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2f, 0x0a, 0x13, 0x6f, 0x62, 0x73, 0x65, 0x72, + 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0c, 0x52, 0x12, 0x6f, 0x62, 0x73, 0x65, 0x72, 0x76, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x69, 0x67, 0x6e, + 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x73, 0x69, 0x67, + 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x67, 0x75, 0x61, 0x72, 0x64, 0x69, + 0x61, 0x6e, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0c, 0x67, + 0x75, 0x61, 0x72, 0x64, 0x69, 0x61, 0x6e, 0x41, 0x64, 0x64, 0x72, 0x22, 0x48, 0x0a, 0x12, 0x4f, + 0x62, 0x73, 0x65, 0x72, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x19, 0x0a, 0x08, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x07, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x49, 0x64, 0x12, 0x17, 0x0a, 0x07, + 0x74, 0x78, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x74, + 0x78, 0x48, 0x61, 0x73, 0x68, 0x22, 0x76, 0x0a, 0x19, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x43, + 0x68, 0x61, 0x69, 0x6e, 0x47, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x6f, 0x72, 0x43, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0c, 0x52, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x69, + 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x73, + 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x67, 0x75, 0x61, 0x72, + 0x64, 0x69, 0x61, 0x6e, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, + 0x0c, 0x67, 0x75, 0x61, 0x72, 0x64, 0x69, 0x61, 0x6e, 0x41, 0x64, 0x64, 0x72, 0x22, 0x81, 0x04, + 0x0a, 0x13, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x47, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x6f, 0x72, 0x43, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x1b, 0x0a, 0x09, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6e, 0x6f, 0x64, 0x65, 0x4e, 0x61, + 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x03, 0x52, 0x07, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x1c, 0x0a, 0x09, + 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x3c, 0x0a, 0x06, 0x63, 0x68, + 0x61, 0x69, 0x6e, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x73, + 0x73, 0x69, 0x70, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x47, 0x6f, 0x76, 0x65, + 0x72, 0x6e, 0x6f, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x43, 0x68, 0x61, 0x69, 0x6e, + 0x52, 0x06, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x73, 0x12, 0x3c, 0x0a, 0x06, 0x74, 0x6f, 0x6b, 0x65, + 0x6e, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x73, 0x73, 0x69, + 0x70, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x47, 0x6f, 0x76, 0x65, 0x72, 0x6e, + 0x6f, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x06, + 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x12, 0x2e, 0x0a, 0x13, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x63, + 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x11, 0x66, 0x6c, 0x6f, 0x77, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x45, + 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x1a, 0x7b, 0x0a, 0x05, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x12, + 0x19, 0x0a, 0x08, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x07, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x49, 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x6e, 0x6f, + 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x0d, 0x6e, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x6d, 0x69, + 0x74, 0x12, 0x30, 0x0a, 0x14, 0x62, 0x69, 0x67, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x12, 0x62, 0x69, 0x67, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, + 0x69, 0x7a, 0x65, 0x1a, 0x6c, 0x0a, 0x05, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x26, 0x0a, 0x0f, + 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x5f, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x5f, 0x69, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x43, 0x68, 0x61, + 0x69, 0x6e, 0x49, 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x5f, 0x61, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6f, 0x72, + 0x69, 0x67, 0x69, 0x6e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x70, + 0x72, 0x69, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x05, 0x70, 0x72, 0x69, 0x63, + 0x65, 0x22, 0x76, 0x0a, 0x19, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x43, 0x68, 0x61, 0x69, 0x6e, + 0x47, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x6f, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x16, + 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, + 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, + 0x75, 0x72, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, + 0x74, 0x75, 0x72, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x67, 0x75, 0x61, 0x72, 0x64, 0x69, 0x61, 0x6e, + 0x5f, 0x61, 0x64, 0x64, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0c, 0x67, 0x75, 0x61, + 0x72, 0x64, 0x69, 0x61, 0x6e, 0x41, 0x64, 0x64, 0x72, 0x22, 0xdb, 0x06, 0x0a, 0x13, 0x43, 0x68, + 0x61, 0x69, 0x6e, 0x47, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x6f, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6e, 0x6f, 0x64, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x74, 0x69, 0x6d, - 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x38, 0x0a, 0x08, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, - 0x6b, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x73, 0x73, 0x69, - 0x70, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x2e, 0x4e, - 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x52, 0x08, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x73, - 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x23, 0x0a, 0x0d, 0x67, 0x75, - 0x61, 0x72, 0x64, 0x69, 0x61, 0x6e, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0c, 0x67, 0x75, 0x61, 0x72, 0x64, 0x69, 0x61, 0x6e, 0x41, 0x64, 0x64, 0x72, 0x12, - 0x25, 0x0a, 0x0e, 0x62, 0x6f, 0x6f, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, - 0x70, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x62, 0x6f, 0x6f, 0x74, 0x54, 0x69, 0x6d, - 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, - 0x65, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, - 0x65, 0x73, 0x12, 0x1e, 0x0a, 0x0b, 0x70, 0x32, 0x70, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x69, - 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x70, 0x32, 0x70, 0x4e, 0x6f, 0x64, 0x65, - 0x49, 0x64, 0x1a, 0xc9, 0x01, 0x0a, 0x07, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x12, 0x0e, - 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x02, 0x69, 0x64, 0x12, 0x16, - 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, - 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x29, 0x0a, 0x10, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, - 0x63, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, - 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x43, 0x6f, 0x75, - 0x6e, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x61, 0x66, 0x65, 0x5f, 0x68, 0x65, 0x69, 0x67, 0x68, - 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x73, 0x61, 0x66, 0x65, 0x48, 0x65, 0x69, - 0x67, 0x68, 0x74, 0x12, 0x29, 0x0a, 0x10, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, - 0x5f, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0f, 0x66, - 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x22, 0x91, - 0x01, 0x0a, 0x11, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x4f, 0x62, 0x73, 0x65, 0x72, 0x76, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x61, 0x64, 0x64, 0x72, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0c, 0x52, 0x04, 0x61, 0x64, 0x64, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x61, 0x73, 0x68, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x68, 0x61, 0x73, 0x68, 0x12, 0x1c, 0x0a, 0x09, - 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, - 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x78, - 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x74, 0x78, 0x48, - 0x61, 0x73, 0x68, 0x12, 0x1d, 0x0a, 0x0a, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x69, - 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, - 0x49, 0x64, 0x22, 0x27, 0x0a, 0x13, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x56, 0x41, 0x41, 0x57, - 0x69, 0x74, 0x68, 0x51, 0x75, 0x6f, 0x72, 0x75, 0x6d, 0x12, 0x10, 0x0a, 0x03, 0x76, 0x61, 0x61, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x03, 0x76, 0x61, 0x61, 0x22, 0x8e, 0x01, 0x0a, 0x18, + 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x3c, 0x0a, 0x06, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x73, + 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x2e, + 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x47, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x6f, 0x72, + 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x2e, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x52, 0x06, 0x63, 0x68, + 0x61, 0x69, 0x6e, 0x73, 0x1a, 0x8c, 0x01, 0x0a, 0x0b, 0x45, 0x6e, 0x71, 0x75, 0x65, 0x75, 0x65, + 0x64, 0x56, 0x41, 0x41, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, + 0x12, 0x21, 0x0a, 0x0c, 0x72, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x72, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x54, + 0x69, 0x6d, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x6e, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d, 0x6e, 0x6f, 0x74, + 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x78, + 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x78, 0x48, + 0x61, 0x73, 0x68, 0x1a, 0xb3, 0x01, 0x0a, 0x07, 0x45, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x72, 0x12, + 0x27, 0x0a, 0x0f, 0x65, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, + 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x65, 0x6d, 0x69, 0x74, 0x74, 0x65, + 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x2e, 0x0a, 0x13, 0x74, 0x6f, 0x74, 0x61, + 0x6c, 0x5f, 0x65, 0x6e, 0x71, 0x75, 0x65, 0x75, 0x65, 0x64, 0x5f, 0x76, 0x61, 0x61, 0x73, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x11, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x45, 0x6e, 0x71, 0x75, + 0x65, 0x75, 0x65, 0x64, 0x56, 0x61, 0x61, 0x73, 0x12, 0x4f, 0x0a, 0x0d, 0x65, 0x6e, 0x71, 0x75, + 0x65, 0x75, 0x65, 0x64, 0x5f, 0x76, 0x61, 0x61, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x2a, 0x2e, 0x67, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x69, + 0x6e, 0x47, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x6f, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x2e, + 0x45, 0x6e, 0x71, 0x75, 0x65, 0x75, 0x65, 0x64, 0x56, 0x41, 0x41, 0x52, 0x0c, 0x65, 0x6e, 0x71, + 0x75, 0x65, 0x75, 0x65, 0x64, 0x56, 0x61, 0x61, 0x73, 0x1a, 0xeb, 0x02, 0x0a, 0x05, 0x43, 0x68, + 0x61, 0x69, 0x6e, 0x12, 0x19, 0x0a, 0x08, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x5f, 0x69, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x49, 0x64, 0x12, 0x40, + 0x0a, 0x1c, 0x72, 0x65, 0x6d, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x5f, 0x61, 0x76, 0x61, 0x69, + 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x6e, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x1a, 0x72, 0x65, 0x6d, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x41, + 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x4e, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, + 0x12, 0x42, 0x0a, 0x08, 0x65, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x72, 0x73, 0x18, 0x03, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x67, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x2e, 0x76, 0x31, 0x2e, 0x43, + 0x68, 0x61, 0x69, 0x6e, 0x47, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x6f, 0x72, 0x53, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x2e, 0x45, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x72, 0x52, 0x08, 0x65, 0x6d, 0x69, 0x74, + 0x74, 0x65, 0x72, 0x73, 0x12, 0x3c, 0x0a, 0x1b, 0x73, 0x6d, 0x61, 0x6c, 0x6c, 0x5f, 0x74, 0x78, + 0x5f, 0x6e, 0x65, 0x74, 0x5f, 0x6e, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x17, 0x73, 0x6d, 0x61, 0x6c, 0x6c, + 0x54, 0x78, 0x4e, 0x65, 0x74, 0x4e, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x56, 0x61, 0x6c, + 0x75, 0x65, 0x12, 0x46, 0x0a, 0x20, 0x73, 0x6d, 0x61, 0x6c, 0x6c, 0x5f, 0x74, 0x78, 0x5f, 0x6f, + 0x75, 0x74, 0x67, 0x6f, 0x69, 0x6e, 0x67, 0x5f, 0x6e, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, + 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x1c, 0x73, 0x6d, + 0x61, 0x6c, 0x6c, 0x54, 0x78, 0x4f, 0x75, 0x74, 0x67, 0x6f, 0x69, 0x6e, 0x67, 0x4e, 0x6f, 0x74, + 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x3b, 0x0a, 0x1a, 0x66, 0x6c, + 0x6f, 0x77, 0x5f, 0x63, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x5f, 0x6e, 0x6f, 0x74, 0x69, 0x6f, 0x6e, + 0x61, 0x6c, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x17, + 0x66, 0x6c, 0x6f, 0x77, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x4e, 0x6f, 0x74, 0x69, 0x6f, 0x6e, + 0x61, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x57, 0x0a, 0x12, 0x53, 0x69, 0x67, 0x6e, 0x65, + 0x64, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x23, 0x0a, + 0x0d, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0c, 0x71, 0x75, 0x65, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, + 0x22, 0x5a, 0x0a, 0x13, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x71, 0x75, 0x65, 0x72, 0x79, + 0x5f, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, + 0x0d, 0x71, 0x75, 0x65, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1c, + 0x0a, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0c, 0x52, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x22, 0x68, 0x0a, 0x16, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x4f, 0x62, 0x73, 0x65, 0x72, 0x76, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2f, 0x0a, 0x13, 0x6f, 0x62, 0x73, 0x65, - 0x72, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x12, 0x6f, 0x62, 0x73, 0x65, 0x72, 0x76, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x69, 0x67, + 0x6e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x12, 0x12, 0x0a, 0x04, 0x61, 0x64, 0x64, 0x72, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x61, 0x64, 0x64, 0x72, 0x12, 0x3a, 0x0a, 0x0c, 0x6f, 0x62, + 0x73, 0x65, 0x72, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x16, 0x2e, 0x67, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x62, 0x73, + 0x65, 0x72, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0c, 0x6f, 0x62, 0x73, 0x65, 0x72, 0x76, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x77, 0x0a, 0x0b, 0x4f, 0x62, 0x73, 0x65, 0x72, 0x76, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x61, 0x73, 0x68, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0c, 0x52, 0x04, 0x68, 0x61, 0x73, 0x68, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x73, 0x69, - 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x67, 0x75, 0x61, 0x72, 0x64, - 0x69, 0x61, 0x6e, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0c, - 0x67, 0x75, 0x61, 0x72, 0x64, 0x69, 0x61, 0x6e, 0x41, 0x64, 0x64, 0x72, 0x22, 0x48, 0x0a, 0x12, - 0x4f, 0x62, 0x73, 0x65, 0x72, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x49, 0x64, 0x12, 0x17, 0x0a, - 0x07, 0x74, 0x78, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, - 0x74, 0x78, 0x48, 0x61, 0x73, 0x68, 0x22, 0x76, 0x0a, 0x19, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, - 0x43, 0x68, 0x61, 0x69, 0x6e, 0x47, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x6f, 0x72, 0x43, 0x6f, 0x6e, - 0x66, 0x69, 0x67, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0c, 0x52, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x1c, 0x0a, 0x09, 0x73, - 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, - 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x67, 0x75, 0x61, - 0x72, 0x64, 0x69, 0x61, 0x6e, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, - 0x52, 0x0c, 0x67, 0x75, 0x61, 0x72, 0x64, 0x69, 0x61, 0x6e, 0x41, 0x64, 0x64, 0x72, 0x22, 0xd1, - 0x03, 0x0a, 0x13, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x47, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x6f, 0x72, - 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x1b, 0x0a, 0x09, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x6e, - 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6e, 0x6f, 0x64, 0x65, 0x4e, - 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x1c, 0x0a, - 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, - 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x3c, 0x0a, 0x06, 0x63, - 0x68, 0x61, 0x69, 0x6e, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, - 0x73, 0x73, 0x69, 0x70, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x47, 0x6f, 0x76, - 0x65, 0x72, 0x6e, 0x6f, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x43, 0x68, 0x61, 0x69, - 0x6e, 0x52, 0x06, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x73, 0x12, 0x3c, 0x0a, 0x06, 0x74, 0x6f, 0x6b, - 0x65, 0x6e, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x73, 0x73, - 0x69, 0x70, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x47, 0x6f, 0x76, 0x65, 0x72, - 0x6e, 0x6f, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, - 0x06, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x1a, 0x7b, 0x0a, 0x05, 0x43, 0x68, 0x61, 0x69, 0x6e, - 0x12, 0x19, 0x0a, 0x08, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x07, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x49, 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x6e, - 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x0d, 0x6e, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x6d, - 0x69, 0x74, 0x12, 0x30, 0x0a, 0x14, 0x62, 0x69, 0x67, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, - 0x52, 0x12, 0x62, 0x69, 0x67, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x53, 0x69, 0x7a, 0x65, 0x1a, 0x6c, 0x0a, 0x05, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x26, 0x0a, - 0x0f, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x5f, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x5f, 0x69, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x43, 0x68, - 0x61, 0x69, 0x6e, 0x49, 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x5f, - 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6f, - 0x72, 0x69, 0x67, 0x69, 0x6e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x14, 0x0a, 0x05, - 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x05, 0x70, 0x72, 0x69, - 0x63, 0x65, 0x22, 0x76, 0x0a, 0x19, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x43, 0x68, 0x61, 0x69, - 0x6e, 0x47, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x6f, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, - 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, - 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, - 0x74, 0x75, 0x72, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x73, 0x69, 0x67, 0x6e, - 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x67, 0x75, 0x61, 0x72, 0x64, 0x69, 0x61, - 0x6e, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0c, 0x67, 0x75, - 0x61, 0x72, 0x64, 0x69, 0x61, 0x6e, 0x41, 0x64, 0x64, 0x72, 0x22, 0x98, 0x05, 0x0a, 0x13, 0x43, - 0x68, 0x61, 0x69, 0x6e, 0x47, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x6f, 0x72, 0x53, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6e, 0x6f, 0x64, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, - 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, - 0x52, 0x07, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, - 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x74, 0x69, - 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x3c, 0x0a, 0x06, 0x63, 0x68, 0x61, 0x69, 0x6e, - 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x73, 0x73, 0x69, 0x70, - 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x47, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x6f, - 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x2e, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x52, 0x06, 0x63, - 0x68, 0x61, 0x69, 0x6e, 0x73, 0x1a, 0x8c, 0x01, 0x0a, 0x0b, 0x45, 0x6e, 0x71, 0x75, 0x65, 0x75, - 0x65, 0x64, 0x56, 0x41, 0x41, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, - 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x72, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x5f, 0x74, 0x69, 0x6d, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x72, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, - 0x54, 0x69, 0x6d, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x6e, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, - 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d, 0x6e, 0x6f, - 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x74, - 0x78, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x78, - 0x48, 0x61, 0x73, 0x68, 0x1a, 0xb3, 0x01, 0x0a, 0x07, 0x45, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x72, - 0x12, 0x27, 0x0a, 0x0f, 0x65, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, - 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x65, 0x6d, 0x69, 0x74, 0x74, - 0x65, 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x2e, 0x0a, 0x13, 0x74, 0x6f, 0x74, - 0x61, 0x6c, 0x5f, 0x65, 0x6e, 0x71, 0x75, 0x65, 0x75, 0x65, 0x64, 0x5f, 0x76, 0x61, 0x61, 0x73, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x11, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x45, 0x6e, 0x71, - 0x75, 0x65, 0x75, 0x65, 0x64, 0x56, 0x61, 0x61, 0x73, 0x12, 0x4f, 0x0a, 0x0d, 0x65, 0x6e, 0x71, - 0x75, 0x65, 0x75, 0x65, 0x64, 0x5f, 0x76, 0x61, 0x61, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x2a, 0x2e, 0x67, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, - 0x69, 0x6e, 0x47, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x6f, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x2e, 0x45, 0x6e, 0x71, 0x75, 0x65, 0x75, 0x65, 0x64, 0x56, 0x41, 0x41, 0x52, 0x0c, 0x65, 0x6e, - 0x71, 0x75, 0x65, 0x75, 0x65, 0x64, 0x56, 0x61, 0x61, 0x73, 0x1a, 0xa8, 0x01, 0x0a, 0x05, 0x43, - 0x68, 0x61, 0x69, 0x6e, 0x12, 0x19, 0x0a, 0x08, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x5f, 0x69, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x49, 0x64, 0x12, - 0x40, 0x0a, 0x1c, 0x72, 0x65, 0x6d, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x5f, 0x61, 0x76, 0x61, - 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x6e, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x1a, 0x72, 0x65, 0x6d, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, - 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x4e, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x61, - 0x6c, 0x12, 0x42, 0x0a, 0x08, 0x65, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x72, 0x73, 0x18, 0x03, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x67, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x2e, 0x76, 0x31, 0x2e, - 0x43, 0x68, 0x61, 0x69, 0x6e, 0x47, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x6f, 0x72, 0x53, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x2e, 0x45, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x72, 0x52, 0x08, 0x65, 0x6d, 0x69, - 0x74, 0x74, 0x65, 0x72, 0x73, 0x22, 0x57, 0x0a, 0x12, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x51, - 0x75, 0x65, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x71, - 0x75, 0x65, 0x72, 0x79, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0c, 0x52, 0x0c, 0x71, 0x75, 0x65, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0c, 0x52, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x22, 0x5a, - 0x0a, 0x13, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x72, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0d, 0x71, - 0x75, 0x65, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1c, 0x0a, 0x09, - 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, - 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x42, 0x41, 0x5a, 0x3f, 0x67, 0x69, - 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x65, 0x72, 0x74, 0x75, 0x73, 0x6f, - 0x6e, 0x65, 0x2f, 0x77, 0x6f, 0x72, 0x6d, 0x68, 0x6f, 0x6c, 0x65, 0x2f, 0x6e, 0x6f, 0x64, 0x65, - 0x2f, 0x70, 0x6b, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x67, 0x6f, 0x73, 0x73, 0x69, - 0x70, 0x2f, 0x76, 0x31, 0x3b, 0x67, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x76, 0x31, 0x62, 0x06, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x78, 0x5f, 0x68, 0x61, + 0x73, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x74, 0x78, 0x48, 0x61, 0x73, 0x68, + 0x12, 0x1d, 0x0a, 0x0a, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x49, 0x64, 0x42, + 0x41, 0x5a, 0x3f, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x65, + 0x72, 0x74, 0x75, 0x73, 0x6f, 0x6e, 0x65, 0x2f, 0x77, 0x6f, 0x72, 0x6d, 0x68, 0x6f, 0x6c, 0x65, + 0x2f, 0x6e, 0x6f, 0x64, 0x65, 0x2f, 0x70, 0x6b, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, + 0x67, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x2f, 0x76, 0x31, 0x3b, 0x67, 0x6f, 0x73, 0x73, 0x69, 0x70, + 0x76, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -1696,7 +1914,7 @@ func file_gossip_v1_gossip_proto_rawDescGZIP() []byte { return file_gossip_v1_gossip_proto_rawDescData } -var file_gossip_v1_gossip_proto_msgTypes = make([]protoimpl.MessageInfo, 19) +var file_gossip_v1_gossip_proto_msgTypes = make([]protoimpl.MessageInfo, 21) var file_gossip_v1_gossip_proto_goTypes = []interface{}{ (*GossipMessage)(nil), // 0: gossip.v1.GossipMessage (*SignedHeartbeat)(nil), // 1: gossip.v1.SignedHeartbeat @@ -1711,12 +1929,14 @@ var file_gossip_v1_gossip_proto_goTypes = []interface{}{ (*ChainGovernorStatus)(nil), // 10: gossip.v1.ChainGovernorStatus (*SignedQueryRequest)(nil), // 11: gossip.v1.SignedQueryRequest (*SignedQueryResponse)(nil), // 12: gossip.v1.SignedQueryResponse - (*Heartbeat_Network)(nil), // 13: gossip.v1.Heartbeat.Network - (*ChainGovernorConfig_Chain)(nil), // 14: gossip.v1.ChainGovernorConfig.Chain - (*ChainGovernorConfig_Token)(nil), // 15: gossip.v1.ChainGovernorConfig.Token - (*ChainGovernorStatus_EnqueuedVAA)(nil), // 16: gossip.v1.ChainGovernorStatus.EnqueuedVAA - (*ChainGovernorStatus_Emitter)(nil), // 17: gossip.v1.ChainGovernorStatus.Emitter - (*ChainGovernorStatus_Chain)(nil), // 18: gossip.v1.ChainGovernorStatus.Chain + (*SignedObservationBatch)(nil), // 13: gossip.v1.SignedObservationBatch + (*Observation)(nil), // 14: gossip.v1.Observation + (*Heartbeat_Network)(nil), // 15: gossip.v1.Heartbeat.Network + (*ChainGovernorConfig_Chain)(nil), // 16: gossip.v1.ChainGovernorConfig.Chain + (*ChainGovernorConfig_Token)(nil), // 17: gossip.v1.ChainGovernorConfig.Token + (*ChainGovernorStatus_EnqueuedVAA)(nil), // 18: gossip.v1.ChainGovernorStatus.EnqueuedVAA + (*ChainGovernorStatus_Emitter)(nil), // 19: gossip.v1.ChainGovernorStatus.Emitter + (*ChainGovernorStatus_Chain)(nil), // 20: gossip.v1.ChainGovernorStatus.Chain } var file_gossip_v1_gossip_proto_depIdxs = []int32{ 3, // 0: gossip.v1.GossipMessage.signed_observation:type_name -> gossip.v1.SignedObservation @@ -1727,17 +1947,19 @@ var file_gossip_v1_gossip_proto_depIdxs = []int32{ 9, // 5: gossip.v1.GossipMessage.signed_chain_governor_status:type_name -> gossip.v1.SignedChainGovernorStatus 11, // 6: gossip.v1.GossipMessage.signed_query_request:type_name -> gossip.v1.SignedQueryRequest 12, // 7: gossip.v1.GossipMessage.signed_query_response:type_name -> gossip.v1.SignedQueryResponse - 13, // 8: gossip.v1.Heartbeat.networks:type_name -> gossip.v1.Heartbeat.Network - 14, // 9: gossip.v1.ChainGovernorConfig.chains:type_name -> gossip.v1.ChainGovernorConfig.Chain - 15, // 10: gossip.v1.ChainGovernorConfig.tokens:type_name -> gossip.v1.ChainGovernorConfig.Token - 18, // 11: gossip.v1.ChainGovernorStatus.chains:type_name -> gossip.v1.ChainGovernorStatus.Chain - 16, // 12: gossip.v1.ChainGovernorStatus.Emitter.enqueued_vaas:type_name -> gossip.v1.ChainGovernorStatus.EnqueuedVAA - 17, // 13: gossip.v1.ChainGovernorStatus.Chain.emitters:type_name -> gossip.v1.ChainGovernorStatus.Emitter - 14, // [14:14] is the sub-list for method output_type - 14, // [14:14] is the sub-list for method input_type - 14, // [14:14] is the sub-list for extension type_name - 14, // [14:14] is the sub-list for extension extendee - 0, // [0:14] is the sub-list for field type_name + 13, // 8: gossip.v1.GossipMessage.signed_observation_batch:type_name -> gossip.v1.SignedObservationBatch + 15, // 9: gossip.v1.Heartbeat.networks:type_name -> gossip.v1.Heartbeat.Network + 16, // 10: gossip.v1.ChainGovernorConfig.chains:type_name -> gossip.v1.ChainGovernorConfig.Chain + 17, // 11: gossip.v1.ChainGovernorConfig.tokens:type_name -> gossip.v1.ChainGovernorConfig.Token + 20, // 12: gossip.v1.ChainGovernorStatus.chains:type_name -> gossip.v1.ChainGovernorStatus.Chain + 14, // 13: gossip.v1.SignedObservationBatch.observations:type_name -> gossip.v1.Observation + 18, // 14: gossip.v1.ChainGovernorStatus.Emitter.enqueued_vaas:type_name -> gossip.v1.ChainGovernorStatus.EnqueuedVAA + 19, // 15: gossip.v1.ChainGovernorStatus.Chain.emitters:type_name -> gossip.v1.ChainGovernorStatus.Emitter + 16, // [16:16] is the sub-list for method output_type + 16, // [16:16] is the sub-list for method input_type + 16, // [16:16] is the sub-list for extension type_name + 16, // [16:16] is the sub-list for extension extendee + 0, // [0:16] is the sub-list for field type_name } func init() { file_gossip_v1_gossip_proto_init() } @@ -1903,7 +2125,7 @@ func file_gossip_v1_gossip_proto_init() { } } file_gossip_v1_gossip_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Heartbeat_Network); i { + switch v := v.(*SignedObservationBatch); i { case 0: return &v.state case 1: @@ -1915,7 +2137,7 @@ func file_gossip_v1_gossip_proto_init() { } } file_gossip_v1_gossip_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ChainGovernorConfig_Chain); i { + switch v := v.(*Observation); i { case 0: return &v.state case 1: @@ -1927,7 +2149,7 @@ func file_gossip_v1_gossip_proto_init() { } } file_gossip_v1_gossip_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ChainGovernorConfig_Token); i { + switch v := v.(*Heartbeat_Network); i { case 0: return &v.state case 1: @@ -1939,7 +2161,7 @@ func file_gossip_v1_gossip_proto_init() { } } file_gossip_v1_gossip_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ChainGovernorStatus_EnqueuedVAA); i { + switch v := v.(*ChainGovernorConfig_Chain); i { case 0: return &v.state case 1: @@ -1951,7 +2173,7 @@ func file_gossip_v1_gossip_proto_init() { } } file_gossip_v1_gossip_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ChainGovernorStatus_Emitter); i { + switch v := v.(*ChainGovernorConfig_Token); i { case 0: return &v.state case 1: @@ -1963,6 +2185,30 @@ func file_gossip_v1_gossip_proto_init() { } } file_gossip_v1_gossip_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ChainGovernorStatus_EnqueuedVAA); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_gossip_v1_gossip_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ChainGovernorStatus_Emitter); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_gossip_v1_gossip_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ChainGovernorStatus_Chain); i { case 0: return &v.state @@ -1984,6 +2230,7 @@ func file_gossip_v1_gossip_proto_init() { (*GossipMessage_SignedChainGovernorStatus)(nil), (*GossipMessage_SignedQueryRequest)(nil), (*GossipMessage_SignedQueryResponse)(nil), + (*GossipMessage_SignedObservationBatch)(nil), } type x struct{} out := protoimpl.TypeBuilder{ @@ -1991,7 +2238,7 @@ func file_gossip_v1_gossip_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_gossip_v1_gossip_proto_rawDesc, NumEnums: 0, - NumMessages: 19, + NumMessages: 21, NumExtensions: 0, NumServices: 0, }, diff --git a/node/pkg/proto/node/v1/node.pb.go b/node/pkg/proto/node/v1/node.pb.go index 422bb9bad4..8dd5b247dc 100644 --- a/node/pkg/proto/node/v1/node.pb.go +++ b/node/pkg/proto/node/v1/node.pb.go @@ -2422,7 +2422,8 @@ type ChainGovernorResetReleaseTimerRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - VaaId string `protobuf:"bytes,1,opt,name=vaa_id,json=vaaId,proto3" json:"vaa_id,omitempty"` + VaaId string `protobuf:"bytes,1,opt,name=vaa_id,json=vaaId,proto3" json:"vaa_id,omitempty"` + NumDays uint32 `protobuf:"varint,2,opt,name=num_days,json=numDays,proto3" json:"num_days,omitempty"` } func (x *ChainGovernorResetReleaseTimerRequest) Reset() { @@ -2464,6 +2465,13 @@ func (x *ChainGovernorResetReleaseTimerRequest) GetVaaId() string { return "" } +func (x *ChainGovernorResetReleaseTimerRequest) GetNumDays() uint32 { + if x != nil { + return x.NumDays + } + return 0 +} + type ChainGovernorResetReleaseTimerResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -3474,190 +3482,191 @@ var file_node_v1_node_proto_rawDesc = []byte{ 0x72, 0x6e, 0x6f, 0x72, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x56, 0x41, 0x41, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x08, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x3e, 0x0a, 0x25, 0x43, 0x68, 0x61, + 0x08, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x59, 0x0a, 0x25, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x47, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x6f, 0x72, 0x52, 0x65, 0x73, 0x65, 0x74, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x15, 0x0a, 0x06, 0x76, 0x61, 0x61, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x61, 0x49, 0x64, 0x22, 0x44, 0x0a, 0x26, 0x43, 0x68, 0x61, - 0x69, 0x6e, 0x47, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x6f, 0x72, 0x52, 0x65, 0x73, 0x65, 0x74, 0x52, - 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, - 0x4f, 0x0a, 0x17, 0x50, 0x75, 0x72, 0x67, 0x65, 0x50, 0x79, 0x74, 0x68, 0x4e, 0x65, 0x74, 0x56, - 0x61, 0x61, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x64, 0x61, - 0x79, 0x73, 0x5f, 0x6f, 0x6c, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x64, 0x61, - 0x79, 0x73, 0x4f, 0x6c, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x6c, 0x6f, 0x67, 0x5f, 0x6f, 0x6e, 0x6c, - 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x6c, 0x6f, 0x67, 0x4f, 0x6e, 0x6c, 0x79, - 0x22, 0x36, 0x0a, 0x18, 0x50, 0x75, 0x72, 0x67, 0x65, 0x50, 0x79, 0x74, 0x68, 0x4e, 0x65, 0x74, - 0x56, 0x61, 0x61, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1a, 0x0a, 0x08, + 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x61, 0x49, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x6e, 0x75, 0x6d, + 0x5f, 0x64, 0x61, 0x79, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x6e, 0x75, 0x6d, + 0x44, 0x61, 0x79, 0x73, 0x22, 0x44, 0x0a, 0x26, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x47, 0x6f, 0x76, + 0x65, 0x72, 0x6e, 0x6f, 0x72, 0x52, 0x65, 0x73, 0x65, 0x74, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, + 0x65, 0x54, 0x69, 0x6d, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1a, + 0x0a, 0x08, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x08, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x4f, 0x0a, 0x17, 0x50, 0x75, + 0x72, 0x67, 0x65, 0x50, 0x79, 0x74, 0x68, 0x4e, 0x65, 0x74, 0x56, 0x61, 0x61, 0x73, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x64, 0x61, 0x79, 0x73, 0x5f, 0x6f, 0x6c, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x64, 0x61, 0x79, 0x73, 0x4f, 0x6c, 0x64, + 0x12, 0x19, 0x0a, 0x08, 0x6c, 0x6f, 0x67, 0x5f, 0x6f, 0x6e, 0x6c, 0x79, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x07, 0x6c, 0x6f, 0x67, 0x4f, 0x6e, 0x6c, 0x79, 0x22, 0x36, 0x0a, 0x18, 0x50, + 0x75, 0x72, 0x67, 0x65, 0x50, 0x79, 0x74, 0x68, 0x4e, 0x65, 0x74, 0x56, 0x61, 0x61, 0x73, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x8d, 0x01, 0x0a, 0x16, 0x53, 0x69, 0x67, 0x6e, 0x45, 0x78, 0x69, 0x73, + 0x74, 0x69, 0x6e, 0x67, 0x56, 0x41, 0x41, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, + 0x0a, 0x03, 0x76, 0x61, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x03, 0x76, 0x61, 0x61, + 0x12, 0x2c, 0x0a, 0x12, 0x6e, 0x65, 0x77, 0x5f, 0x67, 0x75, 0x61, 0x72, 0x64, 0x69, 0x61, 0x6e, + 0x5f, 0x61, 0x64, 0x64, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x10, 0x6e, 0x65, + 0x77, 0x47, 0x75, 0x61, 0x72, 0x64, 0x69, 0x61, 0x6e, 0x41, 0x64, 0x64, 0x72, 0x73, 0x12, 0x33, + 0x0a, 0x16, 0x6e, 0x65, 0x77, 0x5f, 0x67, 0x75, 0x61, 0x72, 0x64, 0x69, 0x61, 0x6e, 0x5f, 0x73, + 0x65, 0x74, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x13, + 0x6e, 0x65, 0x77, 0x47, 0x75, 0x61, 0x72, 0x64, 0x69, 0x61, 0x6e, 0x53, 0x65, 0x74, 0x49, 0x6e, + 0x64, 0x65, 0x78, 0x22, 0x2b, 0x0a, 0x17, 0x53, 0x69, 0x67, 0x6e, 0x45, 0x78, 0x69, 0x73, 0x74, + 0x69, 0x6e, 0x67, 0x56, 0x41, 0x41, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, + 0x0a, 0x03, 0x76, 0x61, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x03, 0x76, 0x61, 0x61, + 0x22, 0x11, 0x0a, 0x0f, 0x44, 0x75, 0x6d, 0x70, 0x52, 0x50, 0x43, 0x73, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x22, 0x94, 0x01, 0x0a, 0x10, 0x44, 0x75, 0x6d, 0x70, 0x52, 0x50, 0x43, 0x73, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x43, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6e, 0x6f, 0x64, + 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x75, 0x6d, 0x70, 0x52, 0x50, 0x43, 0x73, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x45, 0x6e, + 0x74, 0x72, 0x79, 0x52, 0x08, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x1a, 0x3b, 0x0a, + 0x0d, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, + 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, + 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x4c, 0x0a, 0x1f, 0x47, 0x65, + 0x74, 0x41, 0x6e, 0x64, 0x4f, 0x62, 0x73, 0x65, 0x72, 0x76, 0x65, 0x4d, 0x69, 0x73, 0x73, 0x69, + 0x6e, 0x67, 0x56, 0x41, 0x41, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, + 0x03, 0x75, 0x72, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x12, + 0x17, 0x0a, 0x07, 0x61, 0x70, 0x69, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x06, 0x61, 0x70, 0x69, 0x4b, 0x65, 0x79, 0x22, 0x3e, 0x0a, 0x20, 0x47, 0x65, 0x74, 0x41, + 0x6e, 0x64, 0x4f, 0x62, 0x73, 0x65, 0x72, 0x76, 0x65, 0x4d, 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, + 0x56, 0x41, 0x41, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, - 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x8d, 0x01, 0x0a, 0x16, 0x53, 0x69, 0x67, - 0x6e, 0x45, 0x78, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x56, 0x41, 0x41, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x76, 0x61, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, - 0x52, 0x03, 0x76, 0x61, 0x61, 0x12, 0x2c, 0x0a, 0x12, 0x6e, 0x65, 0x77, 0x5f, 0x67, 0x75, 0x61, - 0x72, 0x64, 0x69, 0x61, 0x6e, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, - 0x09, 0x52, 0x10, 0x6e, 0x65, 0x77, 0x47, 0x75, 0x61, 0x72, 0x64, 0x69, 0x61, 0x6e, 0x41, 0x64, - 0x64, 0x72, 0x73, 0x12, 0x33, 0x0a, 0x16, 0x6e, 0x65, 0x77, 0x5f, 0x67, 0x75, 0x61, 0x72, 0x64, - 0x69, 0x61, 0x6e, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0d, 0x52, 0x13, 0x6e, 0x65, 0x77, 0x47, 0x75, 0x61, 0x72, 0x64, 0x69, 0x61, 0x6e, - 0x53, 0x65, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x22, 0x2b, 0x0a, 0x17, 0x53, 0x69, 0x67, 0x6e, - 0x45, 0x78, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x56, 0x41, 0x41, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x76, 0x61, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, - 0x52, 0x03, 0x76, 0x61, 0x61, 0x22, 0x11, 0x0a, 0x0f, 0x44, 0x75, 0x6d, 0x70, 0x52, 0x50, 0x43, - 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x94, 0x01, 0x0a, 0x10, 0x44, 0x75, 0x6d, - 0x70, 0x52, 0x50, 0x43, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x43, 0x0a, - 0x08, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x27, 0x2e, 0x6e, 0x6f, 0x64, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x75, 0x6d, 0x70, 0x52, 0x50, - 0x43, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x08, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x1a, 0x3b, 0x0a, 0x0d, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x45, 0x6e, - 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, - 0x4c, 0x0a, 0x1f, 0x47, 0x65, 0x74, 0x41, 0x6e, 0x64, 0x4f, 0x62, 0x73, 0x65, 0x72, 0x76, 0x65, - 0x4d, 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x56, 0x41, 0x41, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x03, 0x75, 0x72, 0x6c, 0x12, 0x17, 0x0a, 0x07, 0x61, 0x70, 0x69, 0x5f, 0x6b, 0x65, 0x79, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x70, 0x69, 0x4b, 0x65, 0x79, 0x22, 0x3e, 0x0a, - 0x20, 0x47, 0x65, 0x74, 0x41, 0x6e, 0x64, 0x4f, 0x62, 0x73, 0x65, 0x72, 0x76, 0x65, 0x4d, 0x69, - 0x73, 0x73, 0x69, 0x6e, 0x67, 0x56, 0x41, 0x41, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xa8, 0x01, - 0x0a, 0x07, 0x45, 0x76, 0x6d, 0x43, 0x61, 0x6c, 0x6c, 0x12, 0x19, 0x0a, 0x08, 0x63, 0x68, 0x61, - 0x69, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x63, 0x68, 0x61, - 0x69, 0x6e, 0x49, 0x64, 0x12, 0x2f, 0x0a, 0x13, 0x67, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x61, 0x6e, - 0x63, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x12, 0x67, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x43, 0x6f, 0x6e, - 0x74, 0x72, 0x61, 0x63, 0x74, 0x12, 0x27, 0x0a, 0x0f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, - 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, - 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x12, 0x28, - 0x0a, 0x10, 0x61, 0x62, 0x69, 0x5f, 0x65, 0x6e, 0x63, 0x6f, 0x64, 0x65, 0x64, 0x5f, 0x63, 0x61, - 0x6c, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x61, 0x62, 0x69, 0x45, 0x6e, 0x63, - 0x6f, 0x64, 0x65, 0x64, 0x43, 0x61, 0x6c, 0x6c, 0x22, 0x89, 0x01, 0x0a, 0x0a, 0x53, 0x6f, 0x6c, - 0x61, 0x6e, 0x61, 0x43, 0x61, 0x6c, 0x6c, 0x12, 0x19, 0x0a, 0x08, 0x63, 0x68, 0x61, 0x69, 0x6e, - 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x63, 0x68, 0x61, 0x69, 0x6e, - 0x49, 0x64, 0x12, 0x2f, 0x0a, 0x13, 0x67, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x61, 0x6e, 0x63, 0x65, - 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x12, 0x67, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, - 0x61, 0x63, 0x74, 0x12, 0x2f, 0x0a, 0x13, 0x65, 0x6e, 0x63, 0x6f, 0x64, 0x65, 0x64, 0x5f, 0x69, - 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x12, 0x65, 0x6e, 0x63, 0x6f, 0x64, 0x65, 0x64, 0x49, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x2a, 0x70, 0x0a, 0x10, 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x63, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x4b, 0x69, 0x6e, 0x64, 0x12, 0x21, 0x0a, 0x1d, 0x4d, 0x4f, 0x44, 0x49, - 0x46, 0x49, 0x43, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x55, 0x4e, - 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x19, 0x0a, 0x15, 0x4d, - 0x4f, 0x44, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4b, 0x49, 0x4e, 0x44, - 0x5f, 0x41, 0x44, 0x44, 0x10, 0x01, 0x12, 0x1e, 0x0a, 0x1a, 0x4d, 0x4f, 0x44, 0x49, 0x46, 0x49, - 0x43, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x53, 0x55, 0x42, 0x54, - 0x52, 0x41, 0x43, 0x54, 0x10, 0x02, 0x2a, 0xd3, 0x01, 0x0a, 0x27, 0x57, 0x6f, 0x72, 0x6d, 0x63, - 0x68, 0x61, 0x69, 0x6e, 0x57, 0x61, 0x73, 0x6d, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x69, - 0x61, 0x74, 0x65, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x6c, 0x69, 0x73, 0x74, 0x41, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x12, 0x3b, 0x0a, 0x37, 0x57, 0x4f, 0x52, 0x4d, 0x43, 0x48, 0x41, 0x49, 0x4e, 0x5f, - 0x57, 0x41, 0x53, 0x4d, 0x5f, 0x49, 0x4e, 0x53, 0x54, 0x41, 0x4e, 0x54, 0x49, 0x41, 0x54, 0x45, - 0x5f, 0x41, 0x4c, 0x4c, 0x4f, 0x57, 0x4c, 0x49, 0x53, 0x54, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, - 0x4e, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, - 0x33, 0x0a, 0x2f, 0x57, 0x4f, 0x52, 0x4d, 0x43, 0x48, 0x41, 0x49, 0x4e, 0x5f, 0x57, 0x41, 0x53, + 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xa8, 0x01, 0x0a, 0x07, 0x45, 0x76, 0x6d, + 0x43, 0x61, 0x6c, 0x6c, 0x12, 0x19, 0x0a, 0x08, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x5f, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x49, 0x64, 0x12, + 0x2f, 0x0a, 0x13, 0x67, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x63, 0x6f, + 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x67, 0x6f, + 0x76, 0x65, 0x72, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, + 0x12, 0x27, 0x0a, 0x0f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, + 0x61, 0x63, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x74, 0x61, 0x72, 0x67, 0x65, + 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x12, 0x28, 0x0a, 0x10, 0x61, 0x62, 0x69, + 0x5f, 0x65, 0x6e, 0x63, 0x6f, 0x64, 0x65, 0x64, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0e, 0x61, 0x62, 0x69, 0x45, 0x6e, 0x63, 0x6f, 0x64, 0x65, 0x64, 0x43, + 0x61, 0x6c, 0x6c, 0x22, 0x89, 0x01, 0x0a, 0x0a, 0x53, 0x6f, 0x6c, 0x61, 0x6e, 0x61, 0x43, 0x61, + 0x6c, 0x6c, 0x12, 0x19, 0x0a, 0x08, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x49, 0x64, 0x12, 0x2f, 0x0a, + 0x13, 0x67, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x74, + 0x72, 0x61, 0x63, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x67, 0x6f, 0x76, 0x65, + 0x72, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x12, 0x2f, + 0x0a, 0x13, 0x65, 0x6e, 0x63, 0x6f, 0x64, 0x65, 0x64, 0x5f, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x65, 0x6e, 0x63, + 0x6f, 0x64, 0x65, 0x64, 0x49, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2a, + 0x70, 0x0a, 0x10, 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4b, + 0x69, 0x6e, 0x64, 0x12, 0x21, 0x0a, 0x1d, 0x4d, 0x4f, 0x44, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, + 0x49, 0x4f, 0x4e, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, + 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x19, 0x0a, 0x15, 0x4d, 0x4f, 0x44, 0x49, 0x46, 0x49, + 0x43, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x41, 0x44, 0x44, 0x10, + 0x01, 0x12, 0x1e, 0x0a, 0x1a, 0x4d, 0x4f, 0x44, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x49, 0x4f, + 0x4e, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x53, 0x55, 0x42, 0x54, 0x52, 0x41, 0x43, 0x54, 0x10, + 0x02, 0x2a, 0xd3, 0x01, 0x0a, 0x27, 0x57, 0x6f, 0x72, 0x6d, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x57, + 0x61, 0x73, 0x6d, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x69, 0x61, 0x74, 0x65, 0x41, 0x6c, + 0x6c, 0x6f, 0x77, 0x6c, 0x69, 0x73, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3b, 0x0a, + 0x37, 0x57, 0x4f, 0x52, 0x4d, 0x43, 0x48, 0x41, 0x49, 0x4e, 0x5f, 0x57, 0x41, 0x53, 0x4d, 0x5f, + 0x49, 0x4e, 0x53, 0x54, 0x41, 0x4e, 0x54, 0x49, 0x41, 0x54, 0x45, 0x5f, 0x41, 0x4c, 0x4c, 0x4f, + 0x57, 0x4c, 0x49, 0x53, 0x54, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x55, 0x4e, 0x53, + 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x33, 0x0a, 0x2f, 0x57, 0x4f, + 0x52, 0x4d, 0x43, 0x48, 0x41, 0x49, 0x4e, 0x5f, 0x57, 0x41, 0x53, 0x4d, 0x5f, 0x49, 0x4e, 0x53, + 0x54, 0x41, 0x4e, 0x54, 0x49, 0x41, 0x54, 0x45, 0x5f, 0x41, 0x4c, 0x4c, 0x4f, 0x57, 0x4c, 0x49, + 0x53, 0x54, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x41, 0x44, 0x44, 0x10, 0x01, 0x12, + 0x36, 0x0a, 0x32, 0x57, 0x4f, 0x52, 0x4d, 0x43, 0x48, 0x41, 0x49, 0x4e, 0x5f, 0x57, 0x41, 0x53, 0x4d, 0x5f, 0x49, 0x4e, 0x53, 0x54, 0x41, 0x4e, 0x54, 0x49, 0x41, 0x54, 0x45, 0x5f, 0x41, 0x4c, - 0x4c, 0x4f, 0x57, 0x4c, 0x49, 0x53, 0x54, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x41, - 0x44, 0x44, 0x10, 0x01, 0x12, 0x36, 0x0a, 0x32, 0x57, 0x4f, 0x52, 0x4d, 0x43, 0x48, 0x41, 0x49, - 0x4e, 0x5f, 0x57, 0x41, 0x53, 0x4d, 0x5f, 0x49, 0x4e, 0x53, 0x54, 0x41, 0x4e, 0x54, 0x49, 0x41, - 0x54, 0x45, 0x5f, 0x41, 0x4c, 0x4c, 0x4f, 0x57, 0x4c, 0x49, 0x53, 0x54, 0x5f, 0x41, 0x43, 0x54, - 0x49, 0x4f, 0x4e, 0x5f, 0x44, 0x45, 0x4c, 0x45, 0x54, 0x45, 0x10, 0x02, 0x2a, 0xac, 0x01, 0x0a, - 0x1b, 0x49, 0x62, 0x63, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, - 0x6c, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x12, 0x2f, 0x0a, 0x2b, - 0x49, 0x42, 0x43, 0x5f, 0x55, 0x50, 0x44, 0x41, 0x54, 0x45, 0x5f, 0x43, 0x48, 0x41, 0x4e, 0x4e, - 0x45, 0x4c, 0x5f, 0x43, 0x48, 0x41, 0x49, 0x4e, 0x5f, 0x4d, 0x4f, 0x44, 0x55, 0x4c, 0x45, 0x5f, - 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x2c, 0x0a, - 0x28, 0x49, 0x42, 0x43, 0x5f, 0x55, 0x50, 0x44, 0x41, 0x54, 0x45, 0x5f, 0x43, 0x48, 0x41, 0x4e, - 0x4e, 0x45, 0x4c, 0x5f, 0x43, 0x48, 0x41, 0x49, 0x4e, 0x5f, 0x4d, 0x4f, 0x44, 0x55, 0x4c, 0x45, - 0x5f, 0x52, 0x45, 0x43, 0x45, 0x49, 0x56, 0x45, 0x52, 0x10, 0x01, 0x12, 0x2e, 0x0a, 0x2a, 0x49, - 0x42, 0x43, 0x5f, 0x55, 0x50, 0x44, 0x41, 0x54, 0x45, 0x5f, 0x43, 0x48, 0x41, 0x4e, 0x4e, 0x45, - 0x4c, 0x5f, 0x43, 0x48, 0x41, 0x49, 0x4e, 0x5f, 0x4d, 0x4f, 0x44, 0x55, 0x4c, 0x45, 0x5f, 0x54, - 0x52, 0x41, 0x4e, 0x53, 0x4c, 0x41, 0x54, 0x4f, 0x52, 0x10, 0x02, 0x32, 0xed, 0x09, 0x0a, 0x15, - 0x4e, 0x6f, 0x64, 0x65, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x64, 0x53, 0x65, - 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x60, 0x0a, 0x13, 0x49, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x47, - 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x56, 0x41, 0x41, 0x12, 0x23, 0x2e, 0x6e, + 0x4c, 0x4f, 0x57, 0x4c, 0x49, 0x53, 0x54, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x44, + 0x45, 0x4c, 0x45, 0x54, 0x45, 0x10, 0x02, 0x2a, 0xac, 0x01, 0x0a, 0x1b, 0x49, 0x62, 0x63, 0x55, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x43, 0x68, 0x61, 0x69, + 0x6e, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x12, 0x2f, 0x0a, 0x2b, 0x49, 0x42, 0x43, 0x5f, 0x55, + 0x50, 0x44, 0x41, 0x54, 0x45, 0x5f, 0x43, 0x48, 0x41, 0x4e, 0x4e, 0x45, 0x4c, 0x5f, 0x43, 0x48, + 0x41, 0x49, 0x4e, 0x5f, 0x4d, 0x4f, 0x44, 0x55, 0x4c, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, + 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x2c, 0x0a, 0x28, 0x49, 0x42, 0x43, 0x5f, + 0x55, 0x50, 0x44, 0x41, 0x54, 0x45, 0x5f, 0x43, 0x48, 0x41, 0x4e, 0x4e, 0x45, 0x4c, 0x5f, 0x43, + 0x48, 0x41, 0x49, 0x4e, 0x5f, 0x4d, 0x4f, 0x44, 0x55, 0x4c, 0x45, 0x5f, 0x52, 0x45, 0x43, 0x45, + 0x49, 0x56, 0x45, 0x52, 0x10, 0x01, 0x12, 0x2e, 0x0a, 0x2a, 0x49, 0x42, 0x43, 0x5f, 0x55, 0x50, + 0x44, 0x41, 0x54, 0x45, 0x5f, 0x43, 0x48, 0x41, 0x4e, 0x4e, 0x45, 0x4c, 0x5f, 0x43, 0x48, 0x41, + 0x49, 0x4e, 0x5f, 0x4d, 0x4f, 0x44, 0x55, 0x4c, 0x45, 0x5f, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x4c, + 0x41, 0x54, 0x4f, 0x52, 0x10, 0x02, 0x32, 0xed, 0x09, 0x0a, 0x15, 0x4e, 0x6f, 0x64, 0x65, 0x50, + 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, + 0x12, 0x60, 0x0a, 0x13, 0x49, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x47, 0x6f, 0x76, 0x65, 0x72, 0x6e, + 0x61, 0x6e, 0x63, 0x65, 0x56, 0x41, 0x41, 0x12, 0x23, 0x2e, 0x6e, 0x6f, 0x64, 0x65, 0x2e, 0x76, + 0x31, 0x2e, 0x49, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x47, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x61, 0x6e, + 0x63, 0x65, 0x56, 0x41, 0x41, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x6e, 0x6f, 0x64, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x47, 0x6f, 0x76, - 0x65, 0x72, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x56, 0x41, 0x41, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x24, 0x2e, 0x6e, 0x6f, 0x64, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x6a, 0x65, - 0x63, 0x74, 0x47, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x56, 0x41, 0x41, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x60, 0x0a, 0x13, 0x46, 0x69, 0x6e, 0x64, 0x4d, - 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x12, 0x23, + 0x65, 0x72, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x56, 0x41, 0x41, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x60, 0x0a, 0x13, 0x46, 0x69, 0x6e, 0x64, 0x4d, 0x69, 0x73, 0x73, 0x69, 0x6e, + 0x67, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x12, 0x23, 0x2e, 0x6e, 0x6f, 0x64, 0x65, + 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x4d, 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x4d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x6e, 0x6f, 0x64, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x4d, 0x69, 0x73, - 0x73, 0x69, 0x6e, 0x67, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x6e, 0x6f, 0x64, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x69, - 0x6e, 0x64, 0x4d, 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, - 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x69, 0x0a, 0x16, 0x53, 0x65, 0x6e, - 0x64, 0x4f, 0x62, 0x73, 0x65, 0x72, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x12, 0x26, 0x2e, 0x6e, 0x6f, 0x64, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, - 0x6e, 0x64, 0x4f, 0x62, 0x73, 0x65, 0x72, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x6e, 0x6f, - 0x64, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x4f, 0x62, 0x73, 0x65, 0x72, 0x76, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x60, 0x0a, 0x13, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x47, 0x6f, 0x76, - 0x65, 0x72, 0x6e, 0x6f, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x23, 0x2e, 0x6e, 0x6f, + 0x73, 0x69, 0x6e, 0x67, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x69, 0x0a, 0x16, 0x53, 0x65, 0x6e, 0x64, 0x4f, 0x62, 0x73, 0x65, + 0x72, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x26, + 0x2e, 0x6e, 0x6f, 0x64, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x4f, 0x62, 0x73, + 0x65, 0x72, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x6e, 0x6f, 0x64, 0x65, 0x2e, 0x76, 0x31, + 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x4f, 0x62, 0x73, 0x65, 0x72, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x60, 0x0a, 0x13, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x47, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x6f, 0x72, + 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x23, 0x2e, 0x6e, 0x6f, 0x64, 0x65, 0x2e, 0x76, 0x31, + 0x2e, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x47, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x6f, 0x72, 0x53, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x6e, 0x6f, 0x64, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x47, 0x6f, 0x76, 0x65, 0x72, - 0x6e, 0x6f, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x24, 0x2e, 0x6e, 0x6f, 0x64, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x69, 0x6e, - 0x47, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x6f, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x60, 0x0a, 0x13, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x47, - 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x6f, 0x72, 0x52, 0x65, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x23, 0x2e, + 0x6e, 0x6f, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x60, 0x0a, 0x13, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x47, 0x6f, 0x76, 0x65, 0x72, 0x6e, + 0x6f, 0x72, 0x52, 0x65, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x23, 0x2e, 0x6e, 0x6f, 0x64, 0x65, 0x2e, + 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x47, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x6f, 0x72, + 0x52, 0x65, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x6e, 0x6f, 0x64, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x47, 0x6f, 0x76, - 0x65, 0x72, 0x6e, 0x6f, 0x72, 0x52, 0x65, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x6e, 0x6f, 0x64, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, - 0x69, 0x6e, 0x47, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x6f, 0x72, 0x52, 0x65, 0x6c, 0x6f, 0x61, 0x64, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x78, 0x0a, 0x1b, 0x43, 0x68, 0x61, 0x69, - 0x6e, 0x47, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x6f, 0x72, 0x44, 0x72, 0x6f, 0x70, 0x50, 0x65, 0x6e, - 0x64, 0x69, 0x6e, 0x67, 0x56, 0x41, 0x41, 0x12, 0x2b, 0x2e, 0x6e, 0x6f, 0x64, 0x65, 0x2e, 0x76, - 0x31, 0x2e, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x47, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x6f, 0x72, 0x44, - 0x72, 0x6f, 0x70, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x56, 0x41, 0x41, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x6e, 0x6f, 0x64, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x43, - 0x68, 0x61, 0x69, 0x6e, 0x47, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x6f, 0x72, 0x44, 0x72, 0x6f, 0x70, - 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x56, 0x41, 0x41, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x81, 0x01, 0x0a, 0x1e, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x47, 0x6f, 0x76, 0x65, - 0x72, 0x6e, 0x6f, 0x72, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x50, 0x65, 0x6e, 0x64, 0x69, - 0x6e, 0x67, 0x56, 0x41, 0x41, 0x12, 0x2e, 0x2e, 0x6e, 0x6f, 0x64, 0x65, 0x2e, 0x76, 0x31, 0x2e, - 0x43, 0x68, 0x61, 0x69, 0x6e, 0x47, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x6f, 0x72, 0x52, 0x65, 0x6c, - 0x65, 0x61, 0x73, 0x65, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x56, 0x41, 0x41, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x6e, 0x6f, 0x64, 0x65, 0x2e, 0x76, 0x31, 0x2e, - 0x43, 0x68, 0x61, 0x69, 0x6e, 0x47, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x6f, 0x72, 0x52, 0x65, 0x6c, - 0x65, 0x61, 0x73, 0x65, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x56, 0x41, 0x41, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x81, 0x01, 0x0a, 0x1e, 0x43, 0x68, 0x61, 0x69, 0x6e, - 0x47, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x6f, 0x72, 0x52, 0x65, 0x73, 0x65, 0x74, 0x52, 0x65, 0x6c, - 0x65, 0x61, 0x73, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x72, 0x12, 0x2e, 0x2e, 0x6e, 0x6f, 0x64, 0x65, - 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x47, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x6f, - 0x72, 0x52, 0x65, 0x73, 0x65, 0x74, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x54, 0x69, 0x6d, - 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x6e, 0x6f, 0x64, 0x65, - 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x47, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x6f, - 0x72, 0x52, 0x65, 0x73, 0x65, 0x74, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x54, 0x69, 0x6d, - 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x57, 0x0a, 0x10, 0x50, 0x75, - 0x72, 0x67, 0x65, 0x50, 0x79, 0x74, 0x68, 0x4e, 0x65, 0x74, 0x56, 0x61, 0x61, 0x73, 0x12, 0x20, - 0x2e, 0x6e, 0x6f, 0x64, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x75, 0x72, 0x67, 0x65, 0x50, 0x79, - 0x74, 0x68, 0x4e, 0x65, 0x74, 0x56, 0x61, 0x61, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x21, 0x2e, 0x6e, 0x6f, 0x64, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x75, 0x72, 0x67, 0x65, - 0x50, 0x79, 0x74, 0x68, 0x4e, 0x65, 0x74, 0x56, 0x61, 0x61, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x54, 0x0a, 0x0f, 0x53, 0x69, 0x67, 0x6e, 0x45, 0x78, 0x69, 0x73, 0x74, - 0x69, 0x6e, 0x67, 0x56, 0x41, 0x41, 0x12, 0x1f, 0x2e, 0x6e, 0x6f, 0x64, 0x65, 0x2e, 0x76, 0x31, - 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x45, 0x78, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x56, 0x41, 0x41, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x6e, 0x6f, 0x64, 0x65, 0x2e, 0x76, - 0x31, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x45, 0x78, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x56, 0x41, - 0x41, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3f, 0x0a, 0x08, 0x44, 0x75, 0x6d, - 0x70, 0x52, 0x50, 0x43, 0x73, 0x12, 0x18, 0x2e, 0x6e, 0x6f, 0x64, 0x65, 0x2e, 0x76, 0x31, 0x2e, - 0x44, 0x75, 0x6d, 0x70, 0x52, 0x50, 0x43, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x19, 0x2e, 0x6e, 0x6f, 0x64, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x75, 0x6d, 0x70, 0x52, 0x50, - 0x43, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6f, 0x0a, 0x18, 0x47, 0x65, - 0x74, 0x41, 0x6e, 0x64, 0x4f, 0x62, 0x73, 0x65, 0x72, 0x76, 0x65, 0x4d, 0x69, 0x73, 0x73, 0x69, - 0x6e, 0x67, 0x56, 0x41, 0x41, 0x73, 0x12, 0x28, 0x2e, 0x6e, 0x6f, 0x64, 0x65, 0x2e, 0x76, 0x31, - 0x2e, 0x47, 0x65, 0x74, 0x41, 0x6e, 0x64, 0x4f, 0x62, 0x73, 0x65, 0x72, 0x76, 0x65, 0x4d, 0x69, - 0x73, 0x73, 0x69, 0x6e, 0x67, 0x56, 0x41, 0x41, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x29, 0x2e, 0x6e, 0x6f, 0x64, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x6e, - 0x64, 0x4f, 0x62, 0x73, 0x65, 0x72, 0x76, 0x65, 0x4d, 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x56, - 0x41, 0x41, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x3d, 0x5a, 0x3b, 0x67, - 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x65, 0x72, 0x74, 0x75, 0x73, - 0x6f, 0x6e, 0x65, 0x2f, 0x77, 0x6f, 0x72, 0x6d, 0x68, 0x6f, 0x6c, 0x65, 0x2f, 0x6e, 0x6f, 0x64, - 0x65, 0x2f, 0x70, 0x6b, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x6e, 0x6f, 0x64, 0x65, - 0x2f, 0x76, 0x31, 0x3b, 0x6e, 0x6f, 0x64, 0x65, 0x76, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x33, + 0x65, 0x72, 0x6e, 0x6f, 0x72, 0x52, 0x65, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x78, 0x0a, 0x1b, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x47, 0x6f, 0x76, 0x65, + 0x72, 0x6e, 0x6f, 0x72, 0x44, 0x72, 0x6f, 0x70, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x56, + 0x41, 0x41, 0x12, 0x2b, 0x2e, 0x6e, 0x6f, 0x64, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, + 0x69, 0x6e, 0x47, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x6f, 0x72, 0x44, 0x72, 0x6f, 0x70, 0x50, 0x65, + 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x56, 0x41, 0x41, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x2c, 0x2e, 0x6e, 0x6f, 0x64, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x47, + 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x6f, 0x72, 0x44, 0x72, 0x6f, 0x70, 0x50, 0x65, 0x6e, 0x64, 0x69, + 0x6e, 0x67, 0x56, 0x41, 0x41, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x81, 0x01, + 0x0a, 0x1e, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x47, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x6f, 0x72, 0x52, + 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x56, 0x41, 0x41, + 0x12, 0x2e, 0x2e, 0x6e, 0x6f, 0x64, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x69, 0x6e, + 0x47, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x6f, 0x72, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x50, + 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x56, 0x41, 0x41, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x2f, 0x2e, 0x6e, 0x6f, 0x64, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x69, 0x6e, + 0x47, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x6f, 0x72, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x50, + 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x56, 0x41, 0x41, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x81, 0x01, 0x0a, 0x1e, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x47, 0x6f, 0x76, 0x65, 0x72, + 0x6e, 0x6f, 0x72, 0x52, 0x65, 0x73, 0x65, 0x74, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x54, + 0x69, 0x6d, 0x65, 0x72, 0x12, 0x2e, 0x2e, 0x6e, 0x6f, 0x64, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x43, + 0x68, 0x61, 0x69, 0x6e, 0x47, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x6f, 0x72, 0x52, 0x65, 0x73, 0x65, + 0x74, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x72, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x6e, 0x6f, 0x64, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x43, + 0x68, 0x61, 0x69, 0x6e, 0x47, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x6f, 0x72, 0x52, 0x65, 0x73, 0x65, + 0x74, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x72, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x57, 0x0a, 0x10, 0x50, 0x75, 0x72, 0x67, 0x65, 0x50, 0x79, + 0x74, 0x68, 0x4e, 0x65, 0x74, 0x56, 0x61, 0x61, 0x73, 0x12, 0x20, 0x2e, 0x6e, 0x6f, 0x64, 0x65, + 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x75, 0x72, 0x67, 0x65, 0x50, 0x79, 0x74, 0x68, 0x4e, 0x65, 0x74, + 0x56, 0x61, 0x61, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x6e, 0x6f, + 0x64, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x75, 0x72, 0x67, 0x65, 0x50, 0x79, 0x74, 0x68, 0x4e, + 0x65, 0x74, 0x56, 0x61, 0x61, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x54, + 0x0a, 0x0f, 0x53, 0x69, 0x67, 0x6e, 0x45, 0x78, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x56, 0x41, + 0x41, 0x12, 0x1f, 0x2e, 0x6e, 0x6f, 0x64, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x69, 0x67, 0x6e, + 0x45, 0x78, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x56, 0x41, 0x41, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x6e, 0x6f, 0x64, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x69, 0x67, + 0x6e, 0x45, 0x78, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x56, 0x41, 0x41, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3f, 0x0a, 0x08, 0x44, 0x75, 0x6d, 0x70, 0x52, 0x50, 0x43, 0x73, + 0x12, 0x18, 0x2e, 0x6e, 0x6f, 0x64, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x75, 0x6d, 0x70, 0x52, + 0x50, 0x43, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x6e, 0x6f, 0x64, + 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x75, 0x6d, 0x70, 0x52, 0x50, 0x43, 0x73, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6f, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x41, 0x6e, 0x64, 0x4f, + 0x62, 0x73, 0x65, 0x72, 0x76, 0x65, 0x4d, 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x56, 0x41, 0x41, + 0x73, 0x12, 0x28, 0x2e, 0x6e, 0x6f, 0x64, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x41, + 0x6e, 0x64, 0x4f, 0x62, 0x73, 0x65, 0x72, 0x76, 0x65, 0x4d, 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, + 0x56, 0x41, 0x41, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x6e, 0x6f, + 0x64, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x6e, 0x64, 0x4f, 0x62, 0x73, 0x65, + 0x72, 0x76, 0x65, 0x4d, 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x56, 0x41, 0x41, 0x73, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x3d, 0x5a, 0x3b, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, + 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x65, 0x72, 0x74, 0x75, 0x73, 0x6f, 0x6e, 0x65, 0x2f, 0x77, + 0x6f, 0x72, 0x6d, 0x68, 0x6f, 0x6c, 0x65, 0x2f, 0x6e, 0x6f, 0x64, 0x65, 0x2f, 0x70, 0x6b, 0x67, + 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x6e, 0x6f, 0x64, 0x65, 0x2f, 0x76, 0x31, 0x3b, 0x6e, + 0x6f, 0x64, 0x65, 0x76, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/node/pkg/publicrpc/publicrpcserver_test.go b/node/pkg/publicrpc/publicrpcserver_test.go index e9b614d262..a6b9dad416 100644 --- a/node/pkg/publicrpc/publicrpcserver_test.go +++ b/node/pkg/publicrpc/publicrpcserver_test.go @@ -69,7 +69,7 @@ func TestGetSignedVAABadAddress(t *testing.T) { func TestGovernorIsVAAEnqueuedNoMessage(t *testing.T) { ctx := context.Background() logger, _ := zap.NewProduction() - gov := governor.NewChainGovernor(logger, nil, common.GoTest) + gov := governor.NewChainGovernor(logger, nil, common.GoTest, false) server := &PublicrpcServer{logger: logger, gov: gov} // A message without the messageId set should not panic but return an error instead. diff --git a/node/pkg/query/query.go b/node/pkg/query/query.go index 361070d83a..64a1cea753 100644 --- a/node/pkg/query/query.go +++ b/node/pkg/query/query.go @@ -130,6 +130,7 @@ var perChainConfig = map[vaa.ChainID]PerChainConfig{ vaa.ChainIDXLayer: {NumWorkers: 1, TimestampCacheSupported: true}, vaa.ChainIDLinea: {NumWorkers: 1, TimestampCacheSupported: true}, vaa.ChainIDBerachain: {NumWorkers: 1, TimestampCacheSupported: true}, + vaa.ChainIDSnaxchain: {NumWorkers: 1, TimestampCacheSupported: true}, vaa.ChainIDSepolia: {NumWorkers: 1, TimestampCacheSupported: true}, vaa.ChainIDHolesky: {NumWorkers: 1, TimestampCacheSupported: true}, vaa.ChainIDArbitrumSepolia: {NumWorkers: 1, TimestampCacheSupported: true}, diff --git a/node/pkg/telemetry/loki.go b/node/pkg/telemetry/loki.go index 71c9b562f9..243d8976d2 100644 --- a/node/pkg/telemetry/loki.go +++ b/node/pkg/telemetry/loki.go @@ -57,6 +57,11 @@ func (logger *ExternalLoggerLoki) log(time time.Time, message json.RawMessage, l } logger.c.Chan() <- entry + + // A fatal error exits, which can cause us to lose messages. Flush everything. + if level == zapcore.FatalLevel { + logger.c.StopNow() + } } func (logger *ExternalLoggerLoki) close() error { diff --git a/node/pkg/watchers/evm/blocks_by_timestamp.go b/node/pkg/watchers/evm/blocks_by_timestamp.go index afbcd09934..b48090fbc2 100644 --- a/node/pkg/watchers/evm/blocks_by_timestamp.go +++ b/node/pkg/watchers/evm/blocks_by_timestamp.go @@ -166,3 +166,17 @@ func (lhs Block) Cmp(rhs Block) int { return 0 } + +// GetRange returns the range covered by the cache for debugging purposes. +func (bts *BlocksByTimestamp) GetRange() (firstBlockNum, firstBlockTime, lastBlockNum, lastBlockTime uint64) { + bts.mutex.Lock() + defer bts.mutex.Unlock() + + l := len(bts.cache) + if l <= 0 { + return 0, 0, 0, 0 + } + + l = l - 1 + return bts.cache[0].BlockNum, bts.cache[0].Timestamp, bts.cache[l].BlockNum, bts.cache[l].Timestamp +} diff --git a/node/pkg/watchers/evm/ccq.go b/node/pkg/watchers/evm/ccq.go index ab1999c4cd..8faa5a4516 100644 --- a/node/pkg/watchers/evm/ccq.go +++ b/node/pkg/watchers/evm/ccq.go @@ -220,9 +220,11 @@ func (w *Watcher) ccqHandleEthCallByTimestampQueryRequest(ctx context.Context, q } // Look the timestamp up in the cache. Note that the cache uses native EVM time, which is seconds, but CCQ uses microseconds, so we have to convert. - blockNum, nextBlockNum, found := w.ccqTimestampCache.LookUp(req.TargetTimestamp / 1000000) + timestampForCache := req.TargetTimestamp / 1000000 + blockNum, nextBlockNum, found := w.ccqTimestampCache.LookUp(timestampForCache) if !found { status := query.QueryRetryNeeded + firstBlockNum, firstBlockTime, lastBlockNum, lastBlockTime := w.ccqTimestampCache.GetRange() if nextBlockNum == 0 { w.ccqLogger.Warn("block look up failed in eth_call_by_timestamp query request, timestamp beyond the end of the cache, will wait and retry", zap.String("requestId", requestId), @@ -231,6 +233,11 @@ func (w *Watcher) ccqHandleEthCallByTimestampQueryRequest(ctx context.Context, q zap.String("nextBlock", nextBlock), zap.Uint64("blockNum", blockNum), zap.Uint64("nextBlockNum", nextBlockNum), + zap.Uint64("timestampForCache", timestampForCache), + zap.Uint64("firstBlockNum", firstBlockNum), + zap.Uint64("firstBlockTime", firstBlockTime), + zap.Uint64("lastBlockNum", lastBlockNum), + zap.Uint64("lastBlockTime", lastBlockTime), ) } else if blockNum == 0 { w.ccqLogger.Error("block look up failed in eth_call_by_timestamp query request, timestamp too old, failing request", @@ -240,6 +247,11 @@ func (w *Watcher) ccqHandleEthCallByTimestampQueryRequest(ctx context.Context, q zap.String("nextBlock", nextBlock), zap.Uint64("blockNum", blockNum), zap.Uint64("nextBlockNum", nextBlockNum), + zap.Uint64("timestampForCache", timestampForCache), + zap.Uint64("firstBlockNum", firstBlockNum), + zap.Uint64("firstBlockTime", firstBlockTime), + zap.Uint64("lastBlockNum", lastBlockNum), + zap.Uint64("lastBlockTime", lastBlockTime), ) status = query.QueryFatalError } else if w.ccqBackfillCache { @@ -250,8 +262,13 @@ func (w *Watcher) ccqHandleEthCallByTimestampQueryRequest(ctx context.Context, q zap.String("nextBlock", nextBlock), zap.Uint64("blockNum", blockNum), zap.Uint64("nextBlockNum", nextBlockNum), + zap.Uint64("timestampForCache", timestampForCache), + zap.Uint64("firstBlockNum", firstBlockNum), + zap.Uint64("firstBlockTime", firstBlockTime), + zap.Uint64("lastBlockNum", lastBlockNum), + zap.Uint64("lastBlockTime", lastBlockTime), ) - w.ccqRequestBackfill(req.TargetTimestamp / 1000000) + w.ccqRequestBackfill(timestampForCache) } else { w.ccqLogger.Error("block look up failed in eth_call_by_timestamp query request, timestamp is in a gap in the cache, failing request", zap.String("requestId", requestId), @@ -260,6 +277,11 @@ func (w *Watcher) ccqHandleEthCallByTimestampQueryRequest(ctx context.Context, q zap.String("nextBlock", nextBlock), zap.Uint64("blockNum", blockNum), zap.Uint64("nextBlockNum", nextBlockNum), + zap.Uint64("timestampForCache", timestampForCache), + zap.Uint64("firstBlockNum", firstBlockNum), + zap.Uint64("firstBlockTime", firstBlockTime), + zap.Uint64("lastBlockNum", lastBlockNum), + zap.Uint64("lastBlockTime", lastBlockTime), ) status = query.QueryFatalError } diff --git a/node/pkg/watchers/evm/watcher.go b/node/pkg/watchers/evm/watcher.go index 2cdb6122e0..cb91502fa0 100644 --- a/node/pkg/watchers/evm/watcher.go +++ b/node/pkg/watchers/evm/watcher.go @@ -21,7 +21,6 @@ import ( "github.com/prometheus/client_golang/prometheus" - ethereum "github.com/ethereum/go-ethereum" eth_common "github.com/ethereum/go-ethereum/common" eth_hexutil "github.com/ethereum/go-ethereum/common/hexutil" "go.uber.org/zap" @@ -536,25 +535,12 @@ func (w *Watcher) Run(parentCtx context.Context) error { continue } - // Transaction was dropped and never picked up again - if pLock.height+MaxWaitConfirmations <= blockNumberU { - logger.Info("observation timed out", - zap.String("msgId", pLock.message.MessageIDString()), - zap.Stringer("txHash", pLock.message.TxHash), - zap.Stringer("blockHash", key.BlockHash), - zap.Stringer("current_blockNum", ev.Number), - zap.Stringer("finality", ev.Finality), - zap.Stringer("current_blockHash", currentHash), - ) - ethMessagesOrphaned.WithLabelValues(w.networkName, "timeout").Inc() - delete(w.pending, key) - continue - } - // Transaction is now ready if pLock.height <= blockNumberU { + msm := time.Now() timeout, cancel := context.WithTimeout(ctx, 5*time.Second) tx, err := w.ethConn.TransactionReceipt(timeout, pLock.message.TxHash) + queryLatency.WithLabelValues(w.networkName, "transaction_receipt").Observe(time.Since(msm).Seconds()) cancel() // If the node returns an error after waiting expectedConfirmation blocks, @@ -598,14 +584,29 @@ func (w *Watcher) Run(parentCtx context.Context) error { // Any error other than "not found" is likely transient - we retry next block. if err != nil { - logger.Warn("transaction could not be fetched", - zap.String("msgId", pLock.message.MessageIDString()), - zap.Stringer("txHash", pLock.message.TxHash), - zap.Stringer("blockHash", key.BlockHash), - zap.Stringer("current_blockNum", ev.Number), - zap.Stringer("finality", ev.Finality), - zap.Stringer("current_blockHash", currentHash), - zap.Error(err)) + if pLock.height+MaxWaitConfirmations <= blockNumberU { + // An error from this "transient" case has persisted for more than MaxWaitConfirmations. + logger.Info("observation timed out", + zap.String("msgId", pLock.message.MessageIDString()), + zap.Stringer("txHash", pLock.message.TxHash), + zap.Stringer("blockHash", key.BlockHash), + zap.Uint64("target_blockNum", pLock.height), + zap.Stringer("current_blockNum", ev.Number), + zap.Stringer("finality", ev.Finality), + zap.Stringer("current_blockHash", currentHash), + ) + ethMessagesOrphaned.WithLabelValues(w.networkName, "timeout").Inc() + delete(w.pending, key) + } else { + logger.Warn("transaction could not be fetched", + zap.String("msgId", pLock.message.MessageIDString()), + zap.Stringer("txHash", pLock.message.TxHash), + zap.Stringer("blockHash", key.BlockHash), + zap.Stringer("current_blockNum", ev.Number), + zap.Stringer("finality", ev.Finality), + zap.Stringer("current_blockHash", currentHash), + zap.Error(err)) + } continue } @@ -690,10 +691,7 @@ func (w *Watcher) fetchAndUpdateGuardianSet( w.currentGuardianSet = &idx if w.setC != nil { - w.setC <- &common.GuardianSet{ - Keys: gs.Keys, - Index: idx, - } + w.setC <- common.NewGuardianSet(gs.Keys, idx) } return nil @@ -741,6 +739,7 @@ func (w *Watcher) getFinality(ctx context.Context) (bool, bool, error) { w.chainID == vaa.ChainIDOptimism || w.chainID == vaa.ChainIDOptimismSepolia || w.chainID == vaa.ChainIDSepolia || + w.chainID == vaa.ChainIDSnaxchain || w.chainID == vaa.ChainIDXLayer { finalized = true safe = true @@ -860,6 +859,7 @@ func (w *Watcher) postMessage(logger *zap.Logger, ev *ethabi.AbiLogMessagePublis zap.String("msgId", message.MessageIDString()), zap.Stringer("txHash", message.TxHash), zap.Uint64("blockNum", ev.Raw.BlockNumber), + zap.Uint64("latestFinalizedBlock", atomic.LoadUint64(&w.latestFinalizedBlockNumber)), zap.Stringer("blockHash", ev.Raw.BlockHash), zap.Uint64("blockTime", blockTime), zap.Uint32("Nonce", ev.Nonce), @@ -875,6 +875,7 @@ func (w *Watcher) postMessage(logger *zap.Logger, ev *ethabi.AbiLogMessagePublis zap.String("msgId", message.MessageIDString()), zap.Stringer("txHash", message.TxHash), zap.Uint64("blockNum", ev.Raw.BlockNumber), + zap.Uint64("latestFinalizedBlock", atomic.LoadUint64(&w.latestFinalizedBlockNumber)), zap.Stringer("blockHash", ev.Raw.BlockHash), zap.Uint64("blockTime", blockTime), zap.Uint32("Nonce", ev.Nonce), @@ -896,9 +897,17 @@ func (w *Watcher) postMessage(logger *zap.Logger, ev *ethabi.AbiLogMessagePublis w.pendingMu.Unlock() } +// blockNotFoundErrors is used by `canRetryGetBlockTime`. It is a map of the error returns from `getBlockTime` that can trigger a retry. +var blockNotFoundErrors = map[string]struct{}{ + "not found": {}, + "Unknown block": {}, + "cannot query unfinalized data": {}, // Seen on Avalanche +} + // canRetryGetBlockTime returns true if the error returned by getBlockTime warrants doing a retry. func canRetryGetBlockTime(err error) bool { - return err == ethereum.NotFound /* go-ethereum */ || err.Error() == "cannot query unfinalized data" /* avalanche */ + _, exists := blockNotFoundErrors[err.Error()] + return exists } // waitForBlockTime is a go routine that repeatedly attempts to read the block time for a single log event. It is used when the initial attempt to read @@ -908,6 +917,7 @@ func (w *Watcher) waitForBlockTime(ctx context.Context, logger *zap.Logger, errC zap.String("msgId", msgIdFromLogEvent(w.chainID, ev)), zap.Stringer("txHash", ev.Raw.TxHash), zap.Uint64("blockNum", ev.Raw.BlockNumber), + zap.Uint64("latestFinalizedBlock", atomic.LoadUint64(&w.latestFinalizedBlockNumber)), zap.Stringer("blockHash", ev.Raw.BlockHash), zap.Uint32("Nonce", ev.Nonce), zap.Uint8("ConsistencyLevel", ev.ConsistencyLevel), diff --git a/node/pkg/watchers/evm/watcher_test.go b/node/pkg/watchers/evm/watcher_test.go index 72cd3fc8e1..96db5ce338 100644 --- a/node/pkg/watchers/evm/watcher_test.go +++ b/node/pkg/watchers/evm/watcher_test.go @@ -2,9 +2,11 @@ package evm import ( "encoding/json" + "errors" "testing" "github.com/certusone/wormhole/node/pkg/watchers/evm/connectors/ethabi" + ethereum "github.com/ethereum/go-ethereum" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" "github.com/wormhole-foundation/wormhole/sdk/vaa" @@ -40,3 +42,11 @@ func TestMsgIdFromLogEvent(t *testing.T) { msgId := msgIdFromLogEvent(vaa.ChainIDSepolia, &ev) assert.Equal(t, "10002/00000000000000000000000045c140dd2526e4bfd1c2a5bb0aa6aa1db00b1744/3685", msgId) } + +func Test_canRetryGetBlockTime(t *testing.T) { + assert.True(t, canRetryGetBlockTime(ethereum.NotFound)) + assert.True(t, canRetryGetBlockTime(errors.New("not found"))) + assert.True(t, canRetryGetBlockTime(errors.New("Unknown block"))) + assert.True(t, canRetryGetBlockTime(errors.New("cannot query unfinalized data"))) + assert.False(t, canRetryGetBlockTime(errors.New("Hello, World!"))) +} diff --git a/node/pkg/watchers/solana/ccq.go b/node/pkg/watchers/solana/ccq.go index 137c5f6c49..01e70ec8ff 100644 --- a/node/pkg/watchers/solana/ccq.go +++ b/node/pkg/watchers/solana/ccq.go @@ -7,6 +7,7 @@ import ( "errors" "fmt" "strconv" + "strings" "time" "go.uber.org/zap" @@ -27,6 +28,12 @@ const ( // CCQ_FAST_RETRY_INTERVAL is how long we sleep between fast retry attempts. CCQ_FAST_RETRY_INTERVAL = 200 * time.Millisecond + + // CCQ_MAX_BLOCK_READ_ATTEMPTS the total number of times we will try to read the block when it returns "Block not available". + CCQ_MAX_BLOCK_READ_ATTEMPTS = 3 + + // CCQ_BLOCK_RETRY_DELAY is how long we sleep between attempts to read the block time. + CCQ_BLOCK_RETRY_DELAY = 250 * time.Millisecond ) // ccqStart starts up CCQ query processing. @@ -140,22 +147,44 @@ func (w *SolanaWatcher) ccqBaseHandleSolanaAccountQueryRequest( } // Read the block for this slot to get the block time. - maxSupportedTransactionVersion := uint64(0) - block, err := w.rpcClient.GetBlockWithOpts(rCtx, info.Context.Slot, &rpc.GetBlockOpts{ - Encoding: solana.EncodingBase64, - Commitment: params.Commitment, - TransactionDetails: rpc.TransactionDetailsNone, - MaxSupportedTransactionVersion: &maxSupportedTransactionVersion, - }) - if err != nil { - w.ccqLogger.Error(fmt.Sprintf("failed to read block time for %s query request", tag), - zap.String("requestId", requestId), - zap.Uint64("slotNumber", info.Context.Slot), - zap.Error(err), - ) + var block *rpc.GetBlockResult + var numBlockReadAttempts int + for { + maxSupportedTransactionVersion := uint64(0) + block, err = w.rpcClient.GetBlockWithOpts(rCtx, info.Context.Slot, &rpc.GetBlockOpts{ + Encoding: solana.EncodingBase64, + Commitment: params.Commitment, + TransactionDetails: rpc.TransactionDetailsNone, + MaxSupportedTransactionVersion: &maxSupportedTransactionVersion, + }) + if err == nil { + break + } - w.ccqSendErrorResponse(queryRequest, query.QueryRetryNeeded) - return + if !ccqIsBlockNotAvailable(err) { + w.ccqLogger.Error(fmt.Sprintf("failed to read block time for %s query request", tag), + zap.String("requestId", requestId), + zap.Uint64("slotNumber", info.Context.Slot), + zap.Error(err), + ) + + w.ccqSendErrorResponse(queryRequest, query.QueryRetryNeeded) + return + } + + numBlockReadAttempts += 1 + if numBlockReadAttempts >= CCQ_MAX_BLOCK_READ_ATTEMPTS { + w.ccqLogger.Error(fmt.Sprintf("repeatedly failed to read block time for %s query request, giving up", tag), + zap.String("requestId", requestId), + zap.Uint64("slotNumber", info.Context.Slot), + zap.Error(err), + ) + + w.ccqSendErrorResponse(queryRequest, query.QueryRetryNeeded) + return + } + + time.Sleep(CCQ_BLOCK_RETRY_DELAY) } if info == nil { @@ -539,3 +568,21 @@ func (w *SolanaWatcher) getMultipleAccountsWithOpts( } return } + +// ccqIsBlockNotAvailable parses an error to see if it is a "Block not available for slot" error. +func ccqIsBlockNotAvailable(err error) bool { + /* + A "Block not available for slot" error looks like this: + "(*jsonrpc.RPCError)(0xc0208a0270)({\n Code: (int) -32004,\n Message: (string) (len=38) \"Block not available for slot 282135928\",\n Data: (interface {}) \n})\n" + */ + var rpcErr *jsonrpc.RPCError + if !errors.As(err, &rpcErr) { + return false // Some other kind of error. + } + + if rpcErr.Code != -32004 { // Block not available for slot + return false // Some other kind of RPC error. + } + + return strings.Contains(rpcErr.Message, "Block not available for slot") +} diff --git a/node/pkg/watchers/solana/ccq_test.go b/node/pkg/watchers/solana/ccq_test.go index 9c0931b3f6..cace58d2dc 100644 --- a/node/pkg/watchers/solana/ccq_test.go +++ b/node/pkg/watchers/solana/ccq_test.go @@ -101,3 +101,37 @@ func TestCcqIsMinContextSlotErrorContextSlotIsNotUint64(t *testing.T) { require.True(t, isMinContext) assert.Equal(t, uint64(0), currentSlot) } + +func TestCcqIsBlockNotAvailableSuccess(t *testing.T) { + myErr := &jsonrpc.RPCError{ + Code: -32004, + Message: "Block not available for slot 282135928", + Data: nil, + } + + assert.True(t, ccqIsBlockNotAvailable(error(myErr))) +} + +func TestCcqIsBlockNotAvailableWrongErrorNumberFailure(t *testing.T) { + myErr := &jsonrpc.RPCError{ + Code: -32016, + Message: "Minimum context slot has not been reached", + Data: map[string]interface{}{ + "contextSlot": json.Number("13526"), + }, + } + + assert.False(t, ccqIsBlockNotAvailable(error(myErr))) +} + +func TestCcqIsBlockNotAvailableWrongTextFailure(t *testing.T) { + myErr := &jsonrpc.RPCError{ + Code: -32004, + Message: "Minimum context slot has not been reached", + Data: map[string]interface{}{ + "contextSlot": json.Number("13526"), + }, + } + + assert.False(t, ccqIsBlockNotAvailable(error(myErr))) +} diff --git a/node/pkg/watchers/sui/config.go b/node/pkg/watchers/sui/config.go index eb99c6d84f..1111db14a2 100644 --- a/node/pkg/watchers/sui/config.go +++ b/node/pkg/watchers/sui/config.go @@ -14,7 +14,6 @@ type WatcherConfig struct { NetworkID watchers.NetworkID // human readable name ChainID vaa.ChainID // ChainID Rpc string - Websocket string SuiMoveEventType string } @@ -44,5 +43,5 @@ func (wc *WatcherConfig) Create( ) (interfaces.L1Finalizer, supervisor.Runnable, error) { var devMode bool = (env == common.UnsafeDevNet) - return nil, NewWatcher(wc.Rpc, wc.Websocket, wc.SuiMoveEventType, devMode, msgC, obsvReqC).Run, nil + return nil, NewWatcher(wc.Rpc, wc.SuiMoveEventType, devMode, msgC, obsvReqC).Run, nil } diff --git a/node/pkg/watchers/sui/watcher.go b/node/pkg/watchers/sui/watcher.go index bb3c7826bb..fae0635d52 100644 --- a/node/pkg/watchers/sui/watcher.go +++ b/node/pkg/watchers/sui/watcher.go @@ -2,21 +2,16 @@ package sui import ( "context" - "crypto/rand" "errors" "fmt" "io" - "math/big" "net/http" - "net/url" "strconv" "strings" "time" "encoding/json" - "nhooyr.io/websocket" - "github.com/certusone/wormhole/node/pkg/common" "github.com/certusone/wormhole/node/pkg/p2p" gossipv1 "github.com/certusone/wormhole/node/pkg/proto/gossip/v1" @@ -36,16 +31,38 @@ type ( // Watcher is responsible for looking over Sui blockchain and reporting new transactions to the wormhole contract Watcher struct { suiRPC string - suiWS string suiMoveEventType string unsafeDevMode bool - msgChan chan<- *common.MessagePublication - obsvReqC <-chan *gossipv1.ObservationRequest - readinessSync readiness.Component + msgChan chan<- *common.MessagePublication + obsvReqC <-chan *gossipv1.ObservationRequest + readinessSync readiness.Component + latestProcessedCheckpoint int64 + maximumBatchSize int + descendingOrder bool + loopDelay time.Duration + queryEventsCmd string + postTimeout time.Duration + } + + SuiEventResponse struct { + Jsonrpc string `json:"jsonrpc"` + Result SuiEventResponseData `json:"result"` + ID int `json:"id"` + } + SuiEventResponseData struct { + Data []SuiResult `json:"data"` + NextCursor struct { + TxDigest string `json:"txDigest"` + EventSeq string `json:"eventSeq"` + } `json:"nextCursor"` + HasNextPage bool `json:"hasNextPage"` + } - subId int64 + SuiResultInfo struct { + result SuiResult + checkpoint int64 } FieldsData struct { @@ -101,45 +118,43 @@ type ( Result []SuiResult `json:"result"` ID int `json:"id"` } - // { - // "jsonrpc": "2.0", - // "result": [ - // { - // "id": { - // "txDigest": "6Yff8smmPZMandj6Psjy6wgZv5Deii78o1Sbghh5sHPA", - // "eventSeq": "0" - // }, - // "packageId": "0x8b04a73ab3cb1e36bee5a86fdbfa481e97d3cc7ce8b594edea1400103ff0134d", - // "transactionModule": "sender", - // "sender": "0xed867315e3f7c83ae82e6d5858b6a6cc57c291fd84f7509646ebc8162169cf96", - // "type": "0x7483d0db53a140eed72bd6cb133daa59c539844f4c053924b9e3f0d2d7ba146d::publish_message::WormholeMessage", - // "parsedJson": { - // "consistency_level": 0, - // "nonce": 0, - // "payload": [104, 101, 108, 108, 111], - // "sender": "0x71c2aa2c549bb7381e88fbeca7eeb791be0afd455c8af9184613ce5db5ddba47", - // "sequence": "0", - // "timestamp": "1681411389" - // }, - // "bcs": "5ZuknLT3Xsicr2D8zyk828thPByMBfR1cPJyEHF67k16AcEotDWhrpCDCTbk6BBbpSSs3bUk3msfADzrs" - // } - // ], - // "id": 1 - // } SuiCheckpointSN struct { Jsonrpc string `json:"jsonrpc"` Result string `json:"result"` ID int `json:"id"` } + + GetCheckpointResponse struct { + Jsonrpc string `json:"jsonrpc"` + Result struct { + Digest string `json:"digest"` + TimestampMs string `json:"timestampMs"` + Checkpoint string `json:"checkpoint"` + } `json:"result"` + ID int `json:"id"` + } + + RequestPayload struct { + JSONRPC string `json:"jsonrpc"` + ID int `json:"id"` + Method string `json:"method"` + Params [][]string `json:"params"` + } + + TxBlockResult struct { + Digest string `json:"digest"` + TimestampMs string `json:"timestampMs"` + Checkpoint string `json:"checkpoint"` + } + + MultipleBlockResult struct { + Jsonrpc string `json:"jsonrpc"` + Result []TxBlockResult `json:"result"` + } ) var ( - suiConnectionErrors = promauto.NewCounterVec( - prometheus.CounterOpts{ - Name: "wormhole_sui_connection_errors_total", - Help: "Total number of SUI connection errors", - }, []string{"reason"}) suiMessagesConfirmed = promauto.NewCounter( prometheus.CounterOpts{ Name: "wormhole_sui_observations_confirmed_total", @@ -155,21 +170,27 @@ var ( // NewWatcher creates a new Sui appid watcher func NewWatcher( suiRPC string, - suiWS string, suiMoveEventType string, unsafeDevMode bool, messageEvents chan<- *common.MessagePublication, obsvReqC <-chan *gossipv1.ObservationRequest, ) *Watcher { + maxBatchSize := 10 + descOrder := true return &Watcher{ - suiRPC: suiRPC, - suiWS: suiWS, - suiMoveEventType: suiMoveEventType, - unsafeDevMode: unsafeDevMode, - msgChan: messageEvents, - obsvReqC: obsvReqC, - readinessSync: common.MustConvertChainIdToReadinessSyncing(vaa.ChainIDSui), - subId: 0, + suiRPC: suiRPC, + suiMoveEventType: suiMoveEventType, + unsafeDevMode: unsafeDevMode, + msgChan: messageEvents, + obsvReqC: obsvReqC, + readinessSync: common.MustConvertChainIdToReadinessSyncing(vaa.ChainIDSui), + latestProcessedCheckpoint: 0, + maximumBatchSize: maxBatchSize, + descendingOrder: descOrder, // Retrieve newest events first + loopDelay: time.Second, // SUI produces a checkpoint every ~3 seconds + queryEventsCmd: fmt.Sprintf(`{"jsonrpc":"2.0", "id": 1, "method": "suix_queryEvents", "params": [{ "MoveEventType": "%s" }, null, %d, %t]}`, + suiMoveEventType, maxBatchSize, descOrder), + postTimeout: time.Second * 5, } } @@ -277,61 +298,19 @@ func (e *Watcher) Run(ctx context.Context) error { logger := supervisor.Logger(ctx) - // guardiand v2.16.0 shipped hardcoding "ws://" for the websocket url. This makes - // the flag value the same as all of the other uses of rpc websocket values. - err := e.fixSuiWsURL(logger) - if err != nil { - return err - } - logger.Info("Starting watcher", zap.String("watcher_name", "sui"), zap.String("suiRPC", e.suiRPC), - zap.String("suiWS", e.suiWS), zap.String("suiMoveEventType", e.suiMoveEventType), zap.Bool("unsafeDevMode", e.unsafeDevMode), ) - ws, _, err := websocket.Dial(ctx, e.suiWS, nil) - if err != nil { - p2p.DefaultRegistry.AddErrorCount(vaa.ChainIDSui, 1) - suiConnectionErrors.WithLabelValues("websocket_dial_error").Inc() - return fmt.Errorf("websocket dial failed: %w", err) - } - defer ws.Close(websocket.StatusNormalClosure, "") - - nBig, _ := rand.Int(rand.Reader, big.NewInt(27)) - e.subId = nBig.Int64() - - subscription := fmt.Sprintf(`{"jsonrpc":"2.0", "id": %d, "method": "suix_subscribeEvent", "params": [{"MoveEventType": "%s"}]}`, e.subId, e.suiMoveEventType) - - logger.Debug("Subscribing using", zap.String("json:", subscription)) - - err = ws.Write(ctx, websocket.MessageText, []byte(subscription)) - if err != nil { - p2p.DefaultRegistry.AddErrorCount(vaa.ChainIDSui, 1) - suiConnectionErrors.WithLabelValues("websocket_subscription_error").Inc() - return fmt.Errorf("websocket subscription failed: %w", err) - } - // Wait for the success response - mType, p, err := ws.Read(ctx) - if err != nil { - p2p.DefaultRegistry.AddErrorCount(vaa.ChainIDSui, 1) - suiConnectionErrors.WithLabelValues("event_subscription_error").Inc() - return fmt.Errorf("event subscription failed: %w", err) - } - var subRes map[string]any - err = json.Unmarshal(p, &subRes) + // Get the latest checkpoint sequence number. This will be the starting point for the watcher. + latest, err := e.getLatestCheckpointSN(logger) if err != nil { - return fmt.Errorf("failed to Unmarshal the subscription result: %w", err) + return fmt.Errorf("failed to get latest checkpoint sequence number: %w", err) } - logger.Debug("Unmarshalled json", zap.Any("subRes", subRes)) - actualResult := subRes["result"] - logger.Debug("actualResult", zap.Any("res", actualResult)) - if actualResult == nil { - return fmt.Errorf("Failed to request filter in subscription request") - } - logger.Debug("subscribed to new transaction events", zap.Int("messageType", int(mType)), zap.String("bytes", string(p))) + e.latestProcessedCheckpoint = latest timer := time.NewTicker(time.Second * 5) defer timer.Stop() @@ -351,36 +330,26 @@ func (e *Watcher) Run(ctx context.Context) error { return ctx.Err() default: - _, msg, err := ws.Read(ctx) + dataWithEvents, err := e.getEvents() if err != nil { - logger.Error(fmt.Sprintf("ReadMessage: '%s'", err.Error())) - p2p.DefaultRegistry.AddErrorCount(vaa.ChainIDSui, 1) - suiConnectionErrors.WithLabelValues("channel_read_error").Inc() - return err - } - - var res SuiEventMsg - err = json.Unmarshal(msg, &res) - if err != nil { - logger.Error("Failed to unmarshal SuiEventMsg", zap.String("body", string(msg)), zap.Error(err)) - return fmt.Errorf("Failed to unmarshal SuiEventMsg, body: %s, error: %w", string(msg), err) - } - if res.Error != nil { - return fmt.Errorf("Bad SuiEventMsg, body: %s, error: %w", string(msg), err) - } - logger.Debug("SUI result message", zap.String("message", string(msg)), zap.Any("event", res)) - if res.ID != nil { - logger.Error("Found an unexpected res.ID") + logger.Error("sui_data_pump Error", zap.Error(err)) continue } - - if res.Params != nil && (*res.Params).Result != nil { - err := e.inspectBody(logger, *(*res.Params).Result, false) - if err != nil { - logger.Error(fmt.Sprintf("inspectBody: %s", err.Error())) + // dataWithEvents is in descending order, so we need to process it in reverse order. + if len(dataWithEvents) > 0 { + for idx := len(dataWithEvents) - 1; idx >= 0; idx-- { + event := dataWithEvents[idx] + err = e.inspectBody(logger, event.result, false) + if err != nil { + logger.Error("inspectBody Error", zap.Error(err)) + continue + } + if event.checkpoint > e.latestProcessedCheckpoint { + e.latestProcessedCheckpoint = event.checkpoint + } } - continue } + time.Sleep(e.loopDelay) } } }) @@ -393,35 +362,12 @@ func (e *Watcher) Run(ctx context.Context) error { return ctx.Err() case <-timer.C: - resp, err := http.Post(e.suiRPC, "application/json", strings.NewReader(`{"jsonrpc":"2.0", "id": 1, "method": "sui_getLatestCheckpointSequenceNumber", "params": []}`)) //nolint:noctx // TODO FIXME we should propagate context with Deadline here. - if err != nil { - logger.Error("sui_getLatestCheckpointSequenceNumber failed", zap.Error(err)) - p2p.DefaultRegistry.AddErrorCount(vaa.ChainIDSui, 1) - return fmt.Errorf("sui_getLatestCheckpointSequenceNumber failed to post: %w", err) - } - body, err := io.ReadAll(resp.Body) + height, err := e.getLatestCheckpointSN(logger) if err != nil { - logger.Error("sui_getLatestCheckpointSequenceNumber failed", zap.Error(err)) - p2p.DefaultRegistry.AddErrorCount(vaa.ChainIDSui, 1) - return fmt.Errorf("sui_getLatestCheckpointSequenceNumber failed to read: %w", err) - } - resp.Body.Close() - logger.Debug("Body before unmarshalling", zap.String("body", string(body))) - - var res SuiCheckpointSN - err = json.Unmarshal(body, &res) - if err != nil { - logger.Error("unmarshal failed into uint64", zap.String("body", string(body)), zap.Error(err)) - p2p.DefaultRegistry.AddErrorCount(vaa.ChainIDSui, 1) - return fmt.Errorf("sui_getLatestCheckpointSequenceNumber failed to unmarshal body: %s, error: %w", string(body), err) - } - - height, pErr := strconv.ParseInt(res.Result, 0, 64) - if pErr != nil { - logger.Error("Failed to ParseInt") + logger.Error("Failed to get latest checkpoint sequence number", zap.Error(err)) } else { currentSuiHeight.Set(float64(height)) - logger.Debug("sui_getLatestCheckpointSequenceNumber", zap.String("result", res.Result)) + logger.Debug("sui_getLatestCheckpointSequenceNumber", zap.Int64("result", height)) p2p.DefaultRegistry.SetNetworkStats(vaa.ChainIDSui, &gossipv1.Heartbeat_Network{ Height: height, @@ -447,23 +393,14 @@ func (e *Watcher) Run(ctx context.Context) error { tx58 := base58.Encode(r.TxHash) - buf := fmt.Sprintf(`{"jsonrpc":"2.0", "id": 1, "method": "sui_getEvents", "params": ["%s"]}`, tx58) - - resp, err := http.Post(e.suiRPC, "application/json", strings.NewReader(buf)) //nolint:noctx // TODO FIXME we should propagate context with Deadline here. - if err != nil { - logger.Error("getEvents API failed", zap.String("suiRPC", e.suiRPC), zap.Error(err)) - p2p.DefaultRegistry.AddErrorCount(vaa.ChainIDSui, 1) - continue - } + payload := fmt.Sprintf(`{"jsonrpc":"2.0", "id": 1, "method": "sui_getEvents", "params": ["%s"]}`, tx58) - body, err := io.ReadAll(resp.Body) + body, err := e.createAndExecReq(payload) if err != nil { - logger.Error("unexpected truncated body when calling getEvents", zap.Error(err)) + logger.Error("sui_fetch_obvs_req failed", zap.Error(err)) p2p.DefaultRegistry.AddErrorCount(vaa.ChainIDSui, 1) - return fmt.Errorf("sui__fetch_obvs_req failed to post: %w", err) - + return fmt.Errorf("sui_fetch_obvs_req failed to create and execute request: %w", err) } - resp.Body.Close() logger.Debug("receive", zap.String("body", string(body))) @@ -471,13 +408,13 @@ func (e *Watcher) Run(ctx context.Context) error { var err_res SuiTxnQueryError err = json.Unmarshal(body, &err_res) if err != nil { - logger.Error("Failed to unmarshal event error message", zap.String("Result", string(body))) + logger.Error("sui_fetch_obvs_req failed to unmarshal event error message", zap.String("Result", string(body))) p2p.DefaultRegistry.AddErrorCount(vaa.ChainIDSui, 1) return err } if err_res.Error.Message != nil { - logger.Error("Failed to get events for re-observation request, detected error", zap.String("Result", string(body))) + logger.Error("sui_fetch_obvs_req failed to get events for re-observation request, detected error", zap.String("Result", string(body))) p2p.DefaultRegistry.AddErrorCount(vaa.ChainIDSui, 1) // Don't need to kill the watcher on this error. So, just continue. continue @@ -487,14 +424,14 @@ func (e *Watcher) Run(ctx context.Context) error { if err != nil { logger.Error("failed to unmarshal event message", zap.String("body", string(body)), zap.Error(err)) p2p.DefaultRegistry.AddErrorCount(vaa.ChainIDSui, 1) - return fmt.Errorf("sui__fetch_obvs_req failed to unmarshal: %w", err) + return fmt.Errorf("sui_fetch_obvs_req failed to unmarshal: %w", err) } for i, chunk := range res.Result { err := e.inspectBody(logger, chunk, true) if err != nil { - logger.Info("skipping event data in result", zap.String("txhash", tx58), zap.Int("index", i), zap.Error(err)) + logger.Info("sui_fetch_obvs_req skipping event data in result", zap.String("txhash", tx58), zap.Int("index", i), zap.Error(err)) } } } @@ -503,25 +440,203 @@ func (e *Watcher) Run(ctx context.Context) error { select { case <-ctx.Done(): - _ = ws.Close(websocket.StatusNormalClosure, "") return ctx.Err() case err := <-errC: - _ = ws.Close(websocket.StatusInternalError, err.Error()) return err } } -// fixSuiWsURL ensures the websocket scheme is properly specified -func (e *Watcher) fixSuiWsURL(logger *zap.Logger) error { - u, _ := url.Parse(e.suiWS) +func (w *Watcher) getEvents() ([]SuiResultInfo, error) { + // Only get events newer than the last processed height + var retVal []SuiResultInfo + var results []SuiResult + var txs []string + var nextCursor struct { + TxDigest string + EventSeq string + } + firstTime := true + for { + var payload string + if firstTime { + payload = w.queryEventsCmd + firstTime = false + } else { + payload = fmt.Sprintf(`{"jsonrpc":"2.0", "id": 1, "method": "suix_queryEvents", "params": [{ "MoveEventType": "%s" }, { "txDigest": "%s", "eventSeq": "%s" }, %d, %t]}`, + w.suiMoveEventType, nextCursor.TxDigest, nextCursor.EventSeq, w.maximumBatchSize, w.descendingOrder) + } + res, err := w.suiQueryEvents(payload) + if err != nil { + return retVal, err + } + for _, datum := range res.Result.Data { + txs = append(txs, *datum.ID.TxDigest) + results = append(results, datum) + } + if (len(res.Result.Data) == 0) || (len(txs) == 0) { + // In devnet (tilt) the core contract may not have any events and we don't want to flood the logs. + if w.unsafeDevMode { + return retVal, nil + } + return retVal, errors.New("getEvents was unable to get any events") + } + // Get and check the checkpoint for the last event against the lastProcessedHeight to see if we are done. + height, hErr := w.getCheckpointForDigest(txs[len(txs)-1]) + if hErr != nil { + return retVal, hErr + } + if height <= w.latestProcessedCheckpoint || !res.Result.HasNextPage { + break + } + nextCursor.TxDigest = res.Result.NextCursor.TxDigest + nextCursor.EventSeq = res.Result.NextCursor.EventSeq + } + // At this point we have events but no checkpoints. + // Also, we probably have more events than we need. + // Need to do a bulk query to get all the checkpoints and then filter out the ones we don't need. + mbRes, err := w.getMultipleBlocks(txs) + if err != nil { + return retVal, err + } + if (len(mbRes) == 0) || (len(mbRes) != len(txs)) { + return retVal, errors.New("getEvents error getting multiple blocks") + } + for idx, block := range mbRes { + cp, err := strconv.ParseInt(block.Checkpoint, 10, 64) + if err != nil { + return retVal, fmt.Errorf("getEvents failed to ParseInt: %w", err) + } + if cp > w.latestProcessedCheckpoint { + // Double check the digest here + if txs[idx] != block.Digest { + return retVal, fmt.Errorf("getEvents digest mismatch: [%s] [%s]", txs[idx], block.Digest) + } + sri := SuiResultInfo{result: results[idx], checkpoint: cp} + retVal = append(retVal, sri) + } else { + // We can break here because the blocks are in order. + break + } + } + + return retVal, nil +} + +func (w *Watcher) getMultipleBlocks(txs []string) ([]TxBlockResult, error) { + retVal := []TxBlockResult{} + payload := RequestPayload{ + JSONRPC: "2.0", + ID: 1, + Method: "sui_multiGetTransactionBlocks", + Params: [][]string{txs}, + } - // When the scheme is empty/nil or when the Host is empty but a scheme is set - if u == nil || u.Scheme == "" || (u.Scheme != "" && u.Host == "") { - logger.Warn(fmt.Sprintf("DEPRECATED: Prefix --suiWS address with the url scheme e.g.: ws://%s or wss://%s", e.suiWS, e.suiWS)) - u = &url.URL{Scheme: "ws", Host: e.suiWS} - } else if u.Scheme != "ws" && u.Scheme != "wss" { - return fmt.Errorf("invalid url scheme specified for --suiWS, try ws:// or wss://: %s", e.suiWS) + payloadBytes, err := json.Marshal(payload) + if err != nil { + return retVal, fmt.Errorf("getMultipleBlocks failed to marshal payload: %w", err) } - e.suiWS = u.String() - return nil + + body, err := w.createAndExecReq(string(payloadBytes)) + if err != nil { + return retVal, fmt.Errorf("getMultipleBlocks failed to create and execute request: %w", err) + } + + var res MultipleBlockResult + err = json.Unmarshal(body, &res) + if err != nil { + return retVal, fmt.Errorf("getMultipleBlocks failed to unmarshal body: %s, error: %w", string(body), err) + } + retVal = res.Result + + return retVal, nil +} + +func (e *Watcher) getLatestCheckpointSN(logger *zap.Logger) (int64, error) { + payload := `{"jsonrpc":"2.0", "id": 1, "method": "sui_getLatestCheckpointSequenceNumber", "params": []}` + + body, err := e.createAndExecReq(payload) + if err != nil { + logger.Error("sui_getLatestCheckpointSequenceNumber failed", zap.Error(err)) + p2p.DefaultRegistry.AddErrorCount(vaa.ChainIDSui, 1) + return 0, fmt.Errorf("sui_getLatestCheckpointSequenceNumber failed to create and execute request: %w", err) + } + + var res SuiCheckpointSN + err = json.Unmarshal(body, &res) + if err != nil { + logger.Error("unmarshal failed into uint64", zap.String("body", string(body)), zap.Error(err)) + p2p.DefaultRegistry.AddErrorCount(vaa.ChainIDSui, 1) + return 0, fmt.Errorf("sui_getLatestCheckpointSequenceNumber failed to unmarshal body: %s, error: %w", string(body), err) + } + + height, pErr := strconv.ParseInt(res.Result, 0, 64) + if pErr != nil { + logger.Error("Failed to ParseInt") + p2p.DefaultRegistry.AddErrorCount(vaa.ChainIDSui, 1) + return 0, fmt.Errorf("sui_getLatestCheckpointSequenceNumber failed to ParseInt, error: %w", err) + } + return height, nil +} + +func (e *Watcher) getCheckpointForDigest(tx string) (int64, error) { + retVal := int64(0) + payload := fmt.Sprintf(`{"jsonrpc":"2.0", "id": 1, "method": "sui_getTransactionBlock", "params": [ "%s" ]}`, tx) + + body, err := e.createAndExecReq(payload) + if err != nil { + return retVal, fmt.Errorf("getCheckpointForDigest failed to create and execute request: %w", err) + } + + var res GetCheckpointResponse + err = json.Unmarshal(body, &res) + if err != nil { + return retVal, fmt.Errorf("getCheckpointForDigest failed to unmarshal body: %s, error: %w", string(body), err) + } + retVal, err = strconv.ParseInt(res.Result.Checkpoint, 10, 64) + if err != nil { + return retVal, fmt.Errorf("getCheckpointForDigest failed to ParseInt: %w", err) + } + + return retVal, nil +} + +func (w *Watcher) suiQueryEvents(payload string) (SuiEventResponse, error) { + retVal := SuiEventResponse{} + + body, err := w.createAndExecReq(payload) + if err != nil { + return retVal, fmt.Errorf("suix_queryEvents failed to create and execute request: %w", err) + } + + err = json.Unmarshal(body, &retVal) + if err != nil { + return retVal, fmt.Errorf("suix_queryEvents failed to unmarshal body: %s, error: %w", string(body), err) + } + return retVal, nil +} + +func (w *Watcher) createAndExecReq(payload string) ([]byte, error) { + var retVal []byte + ctx, cancel := context.WithTimeout(context.Background(), w.postTimeout) + defer cancel() + // Create a new request with the context + req, err := http.NewRequestWithContext(ctx, "POST", w.suiRPC, strings.NewReader(payload)) + if err != nil { + return retVal, fmt.Errorf("createAndExecReq failed to create request: %w, payload: %s", err, payload) + } + + // Set the Content-Type header + req.Header.Set("Content-Type", "application/json") + + // Send the request using DefaultClient + resp, err := http.DefaultClient.Do(req) + if err != nil { + return retVal, fmt.Errorf("createAndExecReq failed to post: %w", err) + } + body, err := io.ReadAll(resp.Body) + if err != nil { + return retVal, fmt.Errorf("createAndExecReq failed to read: %w", err) + } + resp.Body.Close() + return body, nil } diff --git a/node/pkg/watchers/sui/watcher_test.go b/node/pkg/watchers/sui/watcher_test.go index 075774c6b7..4d95818977 100644 --- a/node/pkg/watchers/sui/watcher_test.go +++ b/node/pkg/watchers/sui/watcher_test.go @@ -7,84 +7,8 @@ import ( "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" - "go.uber.org/zap" - "go.uber.org/zap/zaptest/observer" ) -func Test_fixSuiWsURL(t *testing.T) { - tests := []struct { - name string - value string - expected string - logMessage string - errMessage string - }{ - { - name: "valid", - value: "ws://1.2.3.4:5678", - expected: "ws://1.2.3.4:5678", - }, - { - name: "tilt", - value: "sui:9000", - expected: "ws://sui:9000", - logMessage: "DEPRECATED: Prefix --suiWS address with the url scheme e.g.: ws://sui:9000 or wss://sui:9000", - }, - { - name: "valid-no-port", - value: "ws://1.2.3.4", - expected: "ws://1.2.3.4", - }, - { - name: "no-scheme", - value: "1.2.3.4:5678", - expected: "ws://1.2.3.4:5678", - logMessage: "DEPRECATED: Prefix --suiWS address with the url scheme e.g.: ws://1.2.3.4:5678 or wss://1.2.3.4:5678", - }, - { - name: "no-scheme-no-port", - value: "1.2.3.4", - expected: "ws://1.2.3.4", - logMessage: "DEPRECATED: Prefix --suiWS address with the url scheme e.g.: ws://1.2.3.4 or wss://1.2.3.4", - }, - { - name: "wrong-scheme", - value: "http://1.2.3.4", - errMessage: "invalid url scheme specified for --suiWS, try ws:// or wss://: http://1.2.3.4", - }, - } - for _, testCase := range tests { - t.Run(testCase.name, func(t *testing.T) { - testCore, logs := observer.New(zap.InfoLevel) - testLogger := zap.New(testCore) - - suiWatcher := Watcher{ - suiWS: testCase.value, - } - err := suiWatcher.fixSuiWsURL(testLogger) - if testCase.errMessage != "" { - require.EqualError(t, err, testCase.errMessage) - } else { - require.NoError(t, err) - // Only verify the value if no error was returned - assert.Equal(t, testCase.expected, suiWatcher.suiWS) - } - - if len(testCase.logMessage) != 0 { - // If the testcase expects a log, then there should only be 1 log - require.Equal(t, 1, logs.Len()) - - // Ensure the log message is correct - actualLogMessage := logs.All()[0].Message - require.Equal(t, testCase.logMessage, actualLogMessage) - } else { - // If the testcase does not expect a log, none should be emitted - require.Equal(t, 0, logs.Len()) - } - }) - } -} - func Test_JSONParseOneWHMSg(t *testing.T) { // JSON with only the first result (contains all of the fields in `FieldsData` - parses successfully) msg := []byte("{\"jsonrpc\":\"2.0\",\"result\":[{\"id\":{\"txDigest\":\"2Z4A1ND5JL8c5ma9WMzFXUvpVqnwoQdYuaX4RwnLyMXU\",\"eventSeq\":\"0\"},\"packageId\":\"0x826915f8ca6d11597dfe6599b8aa02a4c08bd8d39674855254a06ee83fe7220e\",\"transactionModule\":\"lending_portal_v2\",\"sender\":\"0xccce7bbffaf1b9e9e8ca88a68a08fec11f568a697023f475f99efb7bcee951cf\",\"type\":\"0x5306f64e312b581766351c07af79c72fcb1cd25147157fdc2f8ad76de9a3fb6a::publish_message::WormholeMessage\",\"parsedJson\":{\"consistency_level\":0,\"nonce\":0,\"payload\":[0,1,0,34,0,0,204,206,123,191,250,241,185,233,232,202,136,166,138,8,254,193,31,86,138,105,112,35,244,117,249,158,251,123,206,233,81,207,2,0,133,0,0,0,0,0,0,0,0,10,202,0,0,0,10,122,53,130,0,0,76,0,0,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,50,58,58,115,117,105,58,58,83,85,73,0,34,0,0,204,206,123,191,250,241,185,233,232,202,136,166,138,8,254,193,31,86,138,105,112,35,244,117,249,158,251,123,206,233,81,207,2],\"sender\":\"0xdd1ca0bd0b9e449ff55259e5bcf7e0fc1b8b7ab49aabad218681ccce7b202bd6\",\"sequence\":\"2768\",\"timestamp\":\"1693091880\"},\"bcs\":\"J8cfJrtMWT2kg6uBgWQmd8T9k9cSibQg65ufpgxugVM2ghgC8bb1vvqoXmETiMvfb9DJLEDKy2pnvAYivyWJfz8zKSn5u7EfDbMntpszG7D4gsNNu9cU2rMUi4aF7DXnv6QAp5hoaHvJymehRwXkncHfjZ7zKsZ8cUtSKJh6S6YjHMRZ67s1PPwGEVwUdQt5S3WhQdag3tuySe8FDrUWgJfbBawyUKLdbNcR1aXFtBiPu6jQ51BF7sv13x9hp2nbs5EUMYjnN1ykK4YQaKx55eY7TQcxVCRzPrEARSkMjB8VgqefLNpwiCRdq\"}],\"id\":1}") diff --git a/proto/gossip/v1/gossip.proto b/proto/gossip/v1/gossip.proto index 914d707f01..b71be47543 100644 --- a/proto/gossip/v1/gossip.proto +++ b/proto/gossip/v1/gossip.proto @@ -14,6 +14,7 @@ message GossipMessage { SignedChainGovernorStatus signed_chain_governor_status = 9; SignedQueryRequest signed_query_request = 10; SignedQueryResponse signed_query_response = 11; + SignedObservationBatch signed_observation_batch = 12; } } @@ -156,6 +157,7 @@ message ChainGovernorConfig { int64 timestamp = 3; repeated Chain chains = 4; repeated Token tokens = 5; + bool flow_cancel_enabled = 6; } // This message is published every minute. @@ -188,6 +190,9 @@ message ChainGovernorStatus { uint32 chain_id = 1; uint64 remaining_available_notional = 2; repeated Emitter emitters = 3; + int64 small_tx_net_notional_value = 4; + uint64 small_tx_outgoing_notional_value = 5; + uint64 flow_cancel_notional_value = 6; } string node_name = 1; @@ -211,3 +216,26 @@ message SignedQueryResponse { // ECDSA signature using the node's guardian public key. bytes signature = 2; } + +// A SignedObservationBatch is a signed statement by a given guardian node that they observed a number of events. +message SignedObservationBatch { + // Guardian pubkey as truncated eth address. + bytes addr = 1; + // The set of observations in this batch. Note that the default max message size in libp2p before fragmentation is 1MB. + // If we limit this array to 4000 entries, that gives us a marshaled message size of 800K, which is safely below that limit. + repeated Observation observations = 2; +} + +// Observation defines a single observation that is contained in SignedObservationBatch +message Observation { + // The observation's deterministic, unique hash. + bytes hash = 1; + // ECSDA signature of the hash using the node's guardian key. + bytes signature = 2; + // Transaction hash this observation was made from. + // Optional, included for observability. + bytes tx_hash = 3; + // Message ID (chain/emitter/seq) for this observation. + // Optional, included for observability. + string message_id = 4; +} diff --git a/proto/node/v1/node.proto b/proto/node/v1/node.proto index 7940bf4dfb..1bf502b692 100644 --- a/proto/node/v1/node.proto +++ b/proto/node/v1/node.proto @@ -382,6 +382,7 @@ message ChainGovernorReleasePendingVAAResponse { message ChainGovernorResetReleaseTimerRequest { string vaa_id = 1; + uint32 num_days = 2; } message ChainGovernorResetReleaseTimerResponse { diff --git a/relayer/ethereum/foundry.toml b/relayer/ethereum/foundry.toml index 743596ebb1..32faa6f4b1 100644 --- a/relayer/ethereum/foundry.toml +++ b/relayer/ethereum/foundry.toml @@ -16,6 +16,7 @@ remappings = [ '@solidity-parser/=node_modules/@solidity-parser/', 'ds-test/=lib/forge-std/lib/ds-test/src/', 'forge-std/=lib/forge-std/src/', + 'truffle/=node_modules/truffle/', ] [fmt] diff --git a/relayer/ethereum/package-lock.json b/relayer/ethereum/package-lock.json index b9e9d40fb3..fbba284e05 100644 --- a/relayer/ethereum/package-lock.json +++ b/relayer/ethereum/package-lock.json @@ -1,32 +1,23 @@ { - "name": "@wormhole-foundation/contracts-ethereum", + "name": "@wormhole-foundation/contracts-ethereum-relayer", "version": "0.0.1", "lockfileVersion": 2, "requires": true, "packages": { "": { - "name": "@wormhole-foundation/contracts-ethereum", + "name": "@wormhole-foundation/contracts-ethereum-relayer", "version": "0.0.1", - "license": "ISC", + "license": "Apache-2.0", "dependencies": { "@certusone/wormhole-sdk": "^0.9.11", "@typechain/ethers-v5": "^10.2.0", "dotenv": "^10.0.0", "elliptic": "^6.5.2", - "jsonfile": "^4.0.0", - "truffle-hdwallet-provider-klaytn": "^1.4.2", + "js-sha3": "^0.8.0", "typechain": "^8.1.1" }, "devDependencies": { - "@chainsafe/truffle-plugin-abigen": "0.0.1", - "@openzeppelin/cli": "^2.8.2", "@openzeppelin/contracts": "^4.3.1", - "@truffle/hdwallet-provider": "^1.7.0", - "chai": "^4.3.7", - "mocha": "^8.4.0", - "truffle": "5.8.4", - "truffle-flattener": "^1.6.0", - "truffle-plugin-verify": "^0.5.11", "ts-node": "^10.9.1", "typescript": "^4.9.5" } @@ -115,13 +106,64 @@ "zen-observable": "0.8.15" } }, - "node_modules/@apollo/protobufjs": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/@apollo/protobufjs/-/protobufjs-1.2.7.tgz", - "integrity": "sha512-Lahx5zntHPZia35myYDBRuF58tlwPskwHc5CWBZC/4bMKB6siTBWwtMrkqXcsNwQiFSzSx5hKdRPUmemrEp3Gg==", - "dev": true, + "node_modules/@babel/runtime": { + "version": "7.20.13", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.20.13.tgz", + "integrity": "sha512-gt3PKXs0DBoL9xCvOIIZ2NEqAGZqHjAnmVbfQtB620V0uReIQutpel14KcneZuer7UioY8ALKZ7iocavvzTNFA==", + "dependencies": { + "regenerator-runtime": "^0.13.11" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@certusone/wormhole-sdk": { + "version": "0.9.11", + "resolved": "https://registry.npmjs.org/@certusone/wormhole-sdk/-/wormhole-sdk-0.9.11.tgz", + "integrity": "sha512-HpqlgNle09E6v8EhEBSjBe9MexO7av4cznM4kRR4CYCKTLfwqT75LQRYuSnCJgxrpwNiVRDVJaPWRi7ZEgIipw==", + "dependencies": { + "@certusone/wormhole-sdk-proto-web": "0.0.6", + "@certusone/wormhole-sdk-wasm": "^0.0.1", + "@coral-xyz/borsh": "0.2.6", + "@injectivelabs/networks": "^1.0.73", + "@injectivelabs/sdk-ts": "^1.0.368", + "@injectivelabs/utils": "^1.0.63", + "@project-serum/anchor": "^0.25.0", + "@solana/spl-token": "^0.3.5", + "@solana/web3.js": "^1.66.2", + "@terra-money/terra.js": "^3.1.3", + "@xpla/xpla.js": "^0.2.1", + "algosdk": "^1.15.0", + "aptos": "1.5.0", + "axios": "^0.24.0", + "bech32": "^2.0.0", + "binary-parser": "^2.2.1", + "bs58": "^4.0.1", + "elliptic": "^6.5.4", + "js-base64": "^3.6.1", + "near-api-js": "^1.0.0" + } + }, + "node_modules/@certusone/wormhole-sdk-proto-web": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/@certusone/wormhole-sdk-proto-web/-/wormhole-sdk-proto-web-0.0.6.tgz", + "integrity": "sha512-LTyjsrWryefx5WmkoBP6FQ2EjLxhMExAGxLkloHUhufVQZdrbGh0htBBUviP+HaDSJBCMPMtulNFwkBJV6muqQ==", + "dependencies": { + "@improbable-eng/grpc-web": "^0.15.0", + "protobufjs": "^7.0.0", + "rxjs": "^7.5.6" + } + }, + "node_modules/@certusone/wormhole-sdk-proto-web/node_modules/long": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/long/-/long-5.2.1.tgz", + "integrity": "sha512-GKSNGeNAtw8IryjjkhZxuKB3JzlcLTwjtiQCHKvqQet81I93kXslhDQruGI/QsddO83mcDToBVy7GqGS/zYf/A==" + }, + "node_modules/@certusone/wormhole-sdk-proto-web/node_modules/protobufjs": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.2.3.tgz", + "integrity": "sha512-TtpvOqwB5Gdz/PQmOjgsrGH1nHjAQVCN7JG4A6r1sXRWESL5rNMAiRcBQlCAdKxZcAbstExQePYG8xof/JVRgg==", "hasInstallScript": true, - "optional": true, "dependencies": { "@protobufjs/aspromise": "^1.1.2", "@protobufjs/base64": "^1.1.2", @@ -133,991 +175,994 @@ "@protobufjs/path": "^1.1.2", "@protobufjs/pool": "^1.1.0", "@protobufjs/utf8": "^1.1.0", - "@types/long": "^4.0.0", - "long": "^4.0.0" + "@types/node": ">=13.7.0", + "long": "^5.0.0" }, - "bin": { - "apollo-pbjs": "bin/pbjs", - "apollo-pbts": "bin/pbts" + "engines": { + "node": ">=12.0.0" } }, - "node_modules/@apollo/usage-reporting-protobuf": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/@apollo/usage-reporting-protobuf/-/usage-reporting-protobuf-4.1.0.tgz", - "integrity": "sha512-hXouMuw5pQVkzi8dgMybmr6Y11+eRmMQVoB5TF0HyTwAg9SOq/v3OCuiYqcVUKdBcskU9Msp+XvjAk0GKpWCwQ==", - "dev": true, - "optional": true, + "node_modules/@certusone/wormhole-sdk-proto-web/node_modules/rxjs": { + "version": "7.8.0", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.0.tgz", + "integrity": "sha512-F2+gxDshqmIub1KdvZkaEfGDwLNpPvk9Fs6LD/MyQxNgMds/WH9OdDDXOmxUZpME+iSK3rQCctkL0DYyytUqMg==", "dependencies": { - "@apollo/protobufjs": "1.2.7" + "tslib": "^2.1.0" } }, - "node_modules/@apollo/utils.dropunuseddefinitions": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@apollo/utils.dropunuseddefinitions/-/utils.dropunuseddefinitions-1.1.0.tgz", - "integrity": "sha512-jU1XjMr6ec9pPoL+BFWzEPW7VHHulVdGKMkPAMiCigpVIT11VmCbnij0bWob8uS3ODJ65tZLYKAh/55vLw2rbg==", - "dev": true, - "optional": true, - "engines": { - "node": ">=12.13.0" - }, - "peerDependencies": { - "graphql": "14.x || 15.x || 16.x" - } + "node_modules/@certusone/wormhole-sdk-proto-web/node_modules/tslib": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz", + "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==" }, - "node_modules/@apollo/utils.keyvaluecache": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@apollo/utils.keyvaluecache/-/utils.keyvaluecache-1.0.2.tgz", - "integrity": "sha512-p7PVdLPMnPzmXSQVEsy27cYEjVON+SH/Wb7COyW3rQN8+wJgT1nv9jZouYtztWW8ZgTkii5T6tC9qfoDREd4mg==", - "dev": true, - "optional": true, + "node_modules/@certusone/wormhole-sdk-wasm": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/@certusone/wormhole-sdk-wasm/-/wormhole-sdk-wasm-0.0.1.tgz", + "integrity": "sha512-LdIwLhOyr4pPs2jqYubqC7d4UkqYBX0EG/ppspQlW3qlVE0LZRMrH6oVzzLMyHtV0Rw7O9sIKzORW/T3mrJv2w==", "dependencies": { - "@apollo/utils.logger": "^1.0.0", - "lru-cache": "7.10.1 - 7.13.1" + "@types/long": "^4.0.2", + "@types/node": "^18.0.3" } }, - "node_modules/@apollo/utils.keyvaluecache/node_modules/lru-cache": { - "version": "7.13.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.13.1.tgz", - "integrity": "sha512-CHqbAq7NFlW3RSnoWXLJBxCWaZVBrfa9UEHId2M3AW8iEBurbqduNexEUCGc3SHc6iCYXNJCDi903LajSVAEPQ==", - "dev": true, - "optional": true, - "engines": { - "node": ">=12" + "node_modules/@certusone/wormhole-sdk/node_modules/axios": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.24.0.tgz", + "integrity": "sha512-Q6cWsys88HoPgAaFAVUb0WpPk0O8iTeisR9IMqy9G8AbO4NlpVknrnQS03zzF9PGAWgO3cgletO3VjV/P7VztA==", + "dependencies": { + "follow-redirects": "^1.14.4" } }, - "node_modules/@apollo/utils.logger": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@apollo/utils.logger/-/utils.logger-1.0.1.tgz", - "integrity": "sha512-XdlzoY7fYNK4OIcvMD2G94RoFZbzTQaNP0jozmqqMudmaGo2I/2Jx71xlDJ801mWA/mbYRihyaw6KJii7k5RVA==", - "dev": true, - "optional": true - }, - "node_modules/@apollo/utils.printwithreducedwhitespace": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@apollo/utils.printwithreducedwhitespace/-/utils.printwithreducedwhitespace-1.1.0.tgz", - "integrity": "sha512-GfFSkAv3n1toDZ4V6u2d7L4xMwLA+lv+6hqXicMN9KELSJ9yy9RzuEXaX73c/Ry+GzRsBy/fdSUGayGqdHfT2Q==", - "dev": true, - "optional": true, + "node_modules/@certusone/wormhole-sdk/node_modules/follow-redirects": { + "version": "1.15.2", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", + "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], "engines": { - "node": ">=12.13.0" + "node": ">=4.0" }, - "peerDependencies": { - "graphql": "14.x || 15.x || 16.x" + "peerDependenciesMeta": { + "debug": { + "optional": true + } } }, - "node_modules/@apollo/utils.removealiases": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@apollo/utils.removealiases/-/utils.removealiases-1.0.0.tgz", - "integrity": "sha512-6cM8sEOJW2LaGjL/0vHV0GtRaSekrPQR4DiywaApQlL9EdROASZU5PsQibe2MWeZCOhNrPRuHh4wDMwPsWTn8A==", - "dev": true, - "optional": true, - "engines": { - "node": ">=12.13.0" - }, - "peerDependencies": { - "graphql": "14.x || 15.x || 16.x" + "node_modules/@classic-terra/terra.proto": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@classic-terra/terra.proto/-/terra.proto-1.1.0.tgz", + "integrity": "sha512-bYhQG5LUaGF0KPRY9hYT/HEcd1QExZPQd6zLV/rQkCe/eDxfwFRLzZHpaaAdfWoAAZjsRWqJbUCqCg7gXBbJpw==", + "dependencies": { + "@improbable-eng/grpc-web": "^0.14.1", + "google-protobuf": "^3.17.3", + "long": "^4.0.0", + "protobufjs": "~6.11.2" } }, - "node_modules/@apollo/utils.sortast": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@apollo/utils.sortast/-/utils.sortast-1.1.0.tgz", - "integrity": "sha512-VPlTsmUnOwzPK5yGZENN069y6uUHgeiSlpEhRnLFYwYNoJHsuJq2vXVwIaSmts015WTPa2fpz1inkLYByeuRQA==", - "dev": true, - "optional": true, + "node_modules/@classic-terra/terra.proto/node_modules/@improbable-eng/grpc-web": { + "version": "0.14.1", + "resolved": "https://registry.npmjs.org/@improbable-eng/grpc-web/-/grpc-web-0.14.1.tgz", + "integrity": "sha512-XaIYuunepPxoiGVLLHmlnVminUGzBTnXr8Wv7khzmLWbNw4TCwJKX09GSMJlKhu/TRk6gms0ySFxewaETSBqgw==", "dependencies": { - "lodash.sortby": "^4.7.0" - }, - "engines": { - "node": ">=12.13.0" + "browser-headers": "^0.4.1" }, "peerDependencies": { - "graphql": "14.x || 15.x || 16.x" + "google-protobuf": "^3.14.0" } }, - "node_modules/@apollo/utils.stripsensitiveliterals": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@apollo/utils.stripsensitiveliterals/-/utils.stripsensitiveliterals-1.2.0.tgz", - "integrity": "sha512-E41rDUzkz/cdikM5147d8nfCFVKovXxKBcjvLEQ7bjZm/cg9zEcXvS6vFY8ugTubI3fn6zoqo0CyU8zT+BGP9w==", - "dev": true, - "optional": true, - "engines": { - "node": ">=12.13.0" - }, - "peerDependencies": { - "graphql": "14.x || 15.x || 16.x" + "node_modules/@confio/ics23": { + "version": "0.6.8", + "resolved": "https://registry.npmjs.org/@confio/ics23/-/ics23-0.6.8.tgz", + "integrity": "sha512-wB6uo+3A50m0sW/EWcU64xpV/8wShZ6bMTa7pF8eYsTrSkQA7oLUIJcs/wb8g4y2Oyq701BaGiO6n/ak5WXO1w==", + "dependencies": { + "@noble/hashes": "^1.0.0", + "protobufjs": "^6.8.8" } }, - "node_modules/@apollo/utils.usagereporting": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@apollo/utils.usagereporting/-/utils.usagereporting-1.0.1.tgz", - "integrity": "sha512-6dk+0hZlnDbahDBB2mP/PZ5ybrtCJdLMbeNJD+TJpKyZmSY6bA3SjI8Cr2EM9QA+AdziywuWg+SgbWUF3/zQqQ==", - "dev": true, - "optional": true, + "node_modules/@coral-xyz/borsh": { + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/@coral-xyz/borsh/-/borsh-0.2.6.tgz", + "integrity": "sha512-y6nmHw1bFcJib7sMHsQPpC8r47xhqDZVvhUdna7NUPzpSbOZG6f46N21+aXsQ2w/tG8Ggls488J/ZmwbgVmyjg==", "dependencies": { - "@apollo/usage-reporting-protobuf": "^4.0.0", - "@apollo/utils.dropunuseddefinitions": "^1.1.0", - "@apollo/utils.printwithreducedwhitespace": "^1.1.0", - "@apollo/utils.removealiases": "1.0.0", - "@apollo/utils.sortast": "^1.1.0", - "@apollo/utils.stripsensitiveliterals": "^1.2.0" + "bn.js": "^5.1.2", + "buffer-layout": "^1.2.0" }, "engines": { - "node": ">=12.13.0" + "node": ">=10" }, "peerDependencies": { - "graphql": "14.x || 15.x || 16.x" + "@solana/web3.js": "^1.2.0" } }, - "node_modules/@apollographql/apollo-tools": { - "version": "0.5.4", - "resolved": "https://registry.npmjs.org/@apollographql/apollo-tools/-/apollo-tools-0.5.4.tgz", - "integrity": "sha512-shM3q7rUbNyXVVRkQJQseXv6bnYM3BUma/eZhwXR4xsuM+bqWnJKvW7SAfRjP7LuSCocrexa5AXhjjawNHrIlw==", - "dev": true, - "optional": true, - "engines": { - "node": ">=8", - "npm": ">=6" - }, - "peerDependencies": { - "graphql": "^14.2.1 || ^15.0.0 || ^16.0.0" - } + "node_modules/@coral-xyz/borsh/node_modules/bn.js": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", + "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==" }, - "node_modules/@apollographql/graphql-playground-html": { - "version": "1.6.29", - "resolved": "https://registry.npmjs.org/@apollographql/graphql-playground-html/-/graphql-playground-html-1.6.29.tgz", - "integrity": "sha512-xCcXpoz52rI4ksJSdOCxeOCn2DLocxwHf9dVT/Q90Pte1LX+LY+91SFtJF3KXVHH8kEin+g1KKCQPKBjZJfWNA==", - "dev": true, - "optional": true, + "node_modules/@cosmjs/amino": { + "version": "0.29.5", + "resolved": "https://registry.npmjs.org/@cosmjs/amino/-/amino-0.29.5.tgz", + "integrity": "sha512-Qo8jpC0BiziTSUqpkNatBcwtKNhCovUnFul9SlT/74JUCdLYaeG5hxr3q1cssQt++l4LvlcpF+OUXL48XjNjLw==", "dependencies": { - "xss": "^1.0.8" + "@cosmjs/crypto": "^0.29.5", + "@cosmjs/encoding": "^0.29.5", + "@cosmjs/math": "^0.29.5", + "@cosmjs/utils": "^0.29.5" } }, - "node_modules/@babel/code-frame": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.7.tgz", - "integrity": "sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==", + "node_modules/@cosmjs/crypto": { + "version": "0.29.5", + "resolved": "https://registry.npmjs.org/@cosmjs/crypto/-/crypto-0.29.5.tgz", + "integrity": "sha512-2bKkaLGictaNL0UipQCL6C1afaisv6k8Wr/GCLx9FqiyFkh9ZgRHDyetD64ZsjnWV/N/D44s/esI+k6oPREaiQ==", "dependencies": { - "@babel/highlight": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" + "@cosmjs/encoding": "^0.29.5", + "@cosmjs/math": "^0.29.5", + "@cosmjs/utils": "^0.29.5", + "@noble/hashes": "^1", + "bn.js": "^5.2.0", + "elliptic": "^6.5.4", + "libsodium-wrappers": "^0.7.6" } }, - "node_modules/@babel/compat-data": { - "version": "7.14.0", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.14.0.tgz", - "integrity": "sha512-vu9V3uMM/1o5Hl5OekMUowo3FqXLJSw+s+66nt0fSWVWTtmosdzn45JHOB3cPtZoe6CTBDzvSw0RdOY85Q37+Q==" + "node_modules/@cosmjs/crypto/node_modules/bn.js": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", + "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==" }, - "node_modules/@babel/core": { - "version": "7.14.2", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.14.2.tgz", - "integrity": "sha512-OgC1mON+l4U4B4wiohJlQNUU3H73mpTyYY3j/c8U9dr9UagGGSm+WFpzjy/YLdoyjiG++c1kIDgxCo/mLwQJeQ==", - "peer": true, + "node_modules/@cosmjs/encoding": { + "version": "0.29.5", + "resolved": "https://registry.npmjs.org/@cosmjs/encoding/-/encoding-0.29.5.tgz", + "integrity": "sha512-G4rGl/Jg4dMCw5u6PEZHZcoHnUBlukZODHbm/wcL4Uu91fkn5jVo5cXXZcvs4VCkArVGrEj/52eUgTZCmOBGWQ==", "dependencies": { - "@babel/code-frame": "^7.12.13", - "@babel/generator": "^7.14.2", - "@babel/helper-compilation-targets": "^7.13.16", - "@babel/helper-module-transforms": "^7.14.2", - "@babel/helpers": "^7.14.0", - "@babel/parser": "^7.14.2", - "@babel/template": "^7.12.13", - "@babel/traverse": "^7.14.2", - "@babel/types": "^7.14.2", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.1.2", - "semver": "^6.3.0", - "source-map": "^0.5.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/babel" + "base64-js": "^1.3.0", + "bech32": "^1.1.4", + "readonly-date": "^1.0.0" } }, - "node_modules/@babel/core/node_modules/@babel/traverse": { - "version": "7.14.2", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.14.2.tgz", - "integrity": "sha512-TsdRgvBFHMyHOOzcP9S6QU0QQtjxlRpEYOy3mcCO5RgmC305ki42aSAmfZEMSSYBla2oZ9BMqYlncBaKmD/7iA==", - "peer": true, + "node_modules/@cosmjs/encoding/node_modules/bech32": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/bech32/-/bech32-1.1.4.tgz", + "integrity": "sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ==" + }, + "node_modules/@cosmjs/json-rpc": { + "version": "0.29.5", + "resolved": "https://registry.npmjs.org/@cosmjs/json-rpc/-/json-rpc-0.29.5.tgz", + "integrity": "sha512-C78+X06l+r9xwdM1yFWIpGl03LhB9NdM1xvZpQHwgCOl0Ir/WV8pw48y3Ez2awAoUBRfTeejPe4KvrE6NoIi/w==", "dependencies": { - "@babel/code-frame": "^7.12.13", - "@babel/generator": "^7.14.2", - "@babel/helper-function-name": "^7.14.2", - "@babel/helper-split-export-declaration": "^7.12.13", - "@babel/parser": "^7.14.2", - "@babel/types": "^7.14.2", - "debug": "^4.1.0", - "globals": "^11.1.0" + "@cosmjs/stream": "^0.29.5", + "xstream": "^11.14.0" } }, - "node_modules/@babel/core/node_modules/@babel/types": { - "version": "7.14.2", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.14.2.tgz", - "integrity": "sha512-SdjAG/3DikRHpUOjxZgnkbR11xUlyDMUFJdvnIgZEE16mqmY0BINMmc4//JMJglEmn6i7sq6p+mGrFWyZ98EEw==", - "peer": true, + "node_modules/@cosmjs/math": { + "version": "0.29.5", + "resolved": "https://registry.npmjs.org/@cosmjs/math/-/math-0.29.5.tgz", + "integrity": "sha512-2GjKcv+A9f86MAWYLUkjhw1/WpRl2R1BTb3m9qPG7lzMA7ioYff9jY5SPCfafKdxM4TIQGxXQlYGewQL16O68Q==", "dependencies": { - "@babel/helper-validator-identifier": "^7.14.0", - "to-fast-properties": "^2.0.0" + "bn.js": "^5.2.0" } }, - "node_modules/@babel/core/node_modules/debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", - "peer": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } + "node_modules/@cosmjs/math/node_modules/bn.js": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", + "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==" }, - "node_modules/@babel/core/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==", - "peer": true, - "engines": { - "node": ">=4" + "node_modules/@cosmjs/proto-signing": { + "version": "0.29.5", + "resolved": "https://registry.npmjs.org/@cosmjs/proto-signing/-/proto-signing-0.29.5.tgz", + "integrity": "sha512-QRrS7CiKaoETdgIqvi/7JC2qCwCR7lnWaUsTzh/XfRy3McLkEd+cXbKAW3cygykv7IN0VAEIhZd2lyIfT8KwNA==", + "dependencies": { + "@cosmjs/amino": "^0.29.5", + "@cosmjs/crypto": "^0.29.5", + "@cosmjs/encoding": "^0.29.5", + "@cosmjs/math": "^0.29.5", + "@cosmjs/utils": "^0.29.5", + "cosmjs-types": "^0.5.2", + "long": "^4.0.0" } }, - "node_modules/@babel/core/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "peer": true - }, - "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==", - "peer": true, - "bin": { - "semver": "bin/semver.js" + "node_modules/@cosmjs/proto-signing/node_modules/cosmjs-types": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/cosmjs-types/-/cosmjs-types-0.5.2.tgz", + "integrity": "sha512-zxCtIJj8v3Di7s39uN4LNcN3HIE1z0B9Z0SPE8ZNQR0oSzsuSe1ACgxoFkvhkS7WBasCAFcglS11G2hyfd5tPg==", + "dependencies": { + "long": "^4.0.0", + "protobufjs": "~6.11.2" } }, - "node_modules/@babel/core/node_modules/source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "peer": true, - "engines": { - "node": ">=0.10.0" + "node_modules/@cosmjs/socket": { + "version": "0.29.5", + "resolved": "https://registry.npmjs.org/@cosmjs/socket/-/socket-0.29.5.tgz", + "integrity": "sha512-5VYDupIWbIXq3ftPV1LkS5Ya/T7Ol/AzWVhNxZ79hPe/mBfv1bGau/LqIYOm2zxGlgm9hBHOTmWGqNYDwr9LNQ==", + "dependencies": { + "@cosmjs/stream": "^0.29.5", + "isomorphic-ws": "^4.0.1", + "ws": "^7", + "xstream": "^11.14.0" } }, - "node_modules/@babel/generator": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.16.8.tgz", - "integrity": "sha512-1ojZwE9+lOXzcWdWmO6TbUzDfqLD39CmEhN8+2cX9XkDo5yW1OpgfejfliysR2AWLpMamTiOiAp/mtroaymhpw==", - "dependencies": { - "@babel/types": "^7.16.8", - "jsesc": "^2.5.1", - "source-map": "^0.5.0" - }, + "node_modules/@cosmjs/socket/node_modules/ws": { + "version": "7.5.9", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz", + "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==", "engines": { - "node": ">=6.9.0" + "node": ">=8.3.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } } }, - "node_modules/@babel/generator/node_modules/@babel/types": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.16.8.tgz", - "integrity": "sha512-smN2DQc5s4M7fntyjGtyIPbRJv6wW4rU/94fmYJ7PKQuZkC0qGMHXJbg6sNGt12JmVr4k5YaptI/XtiLJBnmIg==", + "node_modules/@cosmjs/stargate": { + "version": "0.29.5", + "resolved": "https://registry.npmjs.org/@cosmjs/stargate/-/stargate-0.29.5.tgz", + "integrity": "sha512-hjEv8UUlJruLrYGJcUZXM/CziaINOKwfVm2BoSdUnNTMxGvY/jC1ABHKeZUYt9oXHxEJ1n9+pDqzbKc8pT0nBw==", "dependencies": { - "@babel/helper-validator-identifier": "^7.16.7", - "to-fast-properties": "^2.0.0" - }, - "engines": { - "node": ">=6.9.0" + "@confio/ics23": "^0.6.8", + "@cosmjs/amino": "^0.29.5", + "@cosmjs/encoding": "^0.29.5", + "@cosmjs/math": "^0.29.5", + "@cosmjs/proto-signing": "^0.29.5", + "@cosmjs/stream": "^0.29.5", + "@cosmjs/tendermint-rpc": "^0.29.5", + "@cosmjs/utils": "^0.29.5", + "cosmjs-types": "^0.5.2", + "long": "^4.0.0", + "protobufjs": "~6.11.3", + "xstream": "^11.14.0" } }, - "node_modules/@babel/generator/node_modules/source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "engines": { - "node": ">=0.10.0" + "node_modules/@cosmjs/stargate/node_modules/cosmjs-types": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/cosmjs-types/-/cosmjs-types-0.5.2.tgz", + "integrity": "sha512-zxCtIJj8v3Di7s39uN4LNcN3HIE1z0B9Z0SPE8ZNQR0oSzsuSe1ACgxoFkvhkS7WBasCAFcglS11G2hyfd5tPg==", + "dependencies": { + "long": "^4.0.0", + "protobufjs": "~6.11.2" } }, - "node_modules/@babel/helper-compilation-targets": { - "version": "7.13.16", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.13.16.tgz", - "integrity": "sha512-3gmkYIrpqsLlieFwjkGgLaSHmhnvlAYzZLlYVjlW+QwI+1zE17kGxuJGmIqDQdYp56XdmGeD+Bswx0UTyG18xA==", + "node_modules/@cosmjs/stargate/node_modules/protobufjs": { + "version": "6.11.3", + "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-6.11.3.tgz", + "integrity": "sha512-xL96WDdCZYdU7Slin569tFX712BxsxslWwAfAhCYjQKGTq7dAU91Lomy6nLLhh/dyGhk/YH4TwTSRxTzhuHyZg==", + "hasInstallScript": true, "dependencies": { - "@babel/compat-data": "^7.13.15", - "@babel/helper-validator-option": "^7.12.17", - "browserslist": "^4.14.5", - "semver": "^6.3.0" + "@protobufjs/aspromise": "^1.1.2", + "@protobufjs/base64": "^1.1.2", + "@protobufjs/codegen": "^2.0.4", + "@protobufjs/eventemitter": "^1.1.0", + "@protobufjs/fetch": "^1.1.0", + "@protobufjs/float": "^1.0.2", + "@protobufjs/inquire": "^1.1.0", + "@protobufjs/path": "^1.1.2", + "@protobufjs/pool": "^1.1.0", + "@protobufjs/utf8": "^1.1.0", + "@types/long": "^4.0.1", + "@types/node": ">=13.7.0", + "long": "^4.0.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==", "bin": { - "semver": "bin/semver.js" + "pbjs": "bin/pbjs", + "pbts": "bin/pbts" } }, - "node_modules/@babel/helper-define-polyfill-provider": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.0.tgz", - "integrity": "sha512-7hfT8lUljl/tM3h+izTX/pO3W3frz2ok6Pk+gzys8iJqDfZrZy2pXjRTZAvG2YmfHun1X4q8/UZRLatMfqc5Tg==", + "node_modules/@cosmjs/stream": { + "version": "0.29.5", + "resolved": "https://registry.npmjs.org/@cosmjs/stream/-/stream-0.29.5.tgz", + "integrity": "sha512-TToTDWyH1p05GBtF0Y8jFw2C+4783ueDCmDyxOMM6EU82IqpmIbfwcdMOCAm0JhnyMh+ocdebbFvnX/sGKzRAA==", "dependencies": { - "@babel/helper-compilation-targets": "^7.13.0", - "@babel/helper-module-imports": "^7.12.13", - "@babel/helper-plugin-utils": "^7.13.0", - "@babel/traverse": "^7.13.0", - "debug": "^4.1.1", - "lodash.debounce": "^4.0.8", - "resolve": "^1.14.2", - "semver": "^6.1.2" - }, - "peerDependencies": { - "@babel/core": "^7.4.0-0" - } - }, - "node_modules/@babel/helper-define-polyfill-provider/node_modules/@babel/traverse": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.16.8.tgz", - "integrity": "sha512-xe+H7JlvKsDQwXRsBhSnq1/+9c+LlQcCK3Tn/l5sbx02HYns/cn7ibp9+RV1sIUqu7hKg91NWsgHurO9dowITQ==", - "dependencies": { - "@babel/code-frame": "^7.16.7", - "@babel/generator": "^7.16.8", - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-function-name": "^7.16.7", - "@babel/helper-hoist-variables": "^7.16.7", - "@babel/helper-split-export-declaration": "^7.16.7", - "@babel/parser": "^7.16.8", - "@babel/types": "^7.16.8", - "debug": "^4.1.0", - "globals": "^11.1.0" - }, - "engines": { - "node": ">=6.9.0" + "xstream": "^11.14.0" } }, - "node_modules/@babel/helper-define-polyfill-provider/node_modules/@babel/types": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.16.8.tgz", - "integrity": "sha512-smN2DQc5s4M7fntyjGtyIPbRJv6wW4rU/94fmYJ7PKQuZkC0qGMHXJbg6sNGt12JmVr4k5YaptI/XtiLJBnmIg==", + "node_modules/@cosmjs/tendermint-rpc": { + "version": "0.29.5", + "resolved": "https://registry.npmjs.org/@cosmjs/tendermint-rpc/-/tendermint-rpc-0.29.5.tgz", + "integrity": "sha512-ar80twieuAxsy0x2za/aO3kBr2DFPAXDmk2ikDbmkda+qqfXgl35l9CVAAjKRqd9d+cRvbQyb5M4wy6XQpEV6w==", "dependencies": { - "@babel/helper-validator-identifier": "^7.16.7", - "to-fast-properties": "^2.0.0" - }, - "engines": { - "node": ">=6.9.0" + "@cosmjs/crypto": "^0.29.5", + "@cosmjs/encoding": "^0.29.5", + "@cosmjs/json-rpc": "^0.29.5", + "@cosmjs/math": "^0.29.5", + "@cosmjs/socket": "^0.29.5", + "@cosmjs/stream": "^0.29.5", + "@cosmjs/utils": "^0.29.5", + "axios": "^0.21.2", + "readonly-date": "^1.0.0", + "xstream": "^11.14.0" } }, - "node_modules/@babel/helper-define-polyfill-provider/node_modules/debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", + "node_modules/@cosmjs/tendermint-rpc/node_modules/axios": { + "version": "0.21.4", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.4.tgz", + "integrity": "sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==", "dependencies": { - "ms": "2.1.2" - }, + "follow-redirects": "^1.14.0" + } + }, + "node_modules/@cosmjs/tendermint-rpc/node_modules/follow-redirects": { + "version": "1.15.2", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", + "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], "engines": { - "node": ">=6.0" + "node": ">=4.0" }, "peerDependenciesMeta": { - "supports-color": { + "debug": { "optional": true } } }, - "node_modules/@babel/helper-define-polyfill-provider/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==", - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/helper-define-polyfill-provider/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/@babel/helper-define-polyfill-provider/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "bin": { - "semver": "bin/semver.js" - } + "node_modules/@cosmjs/utils": { + "version": "0.29.5", + "resolved": "https://registry.npmjs.org/@cosmjs/utils/-/utils-0.29.5.tgz", + "integrity": "sha512-m7h+RXDUxOzEOGt4P+3OVPX7PuakZT3GBmaM/Y2u+abN3xZkziykD/NvedYFvvCCdQo714XcGl33bwifS9FZPQ==" }, - "node_modules/@babel/helper-environment-visitor": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.16.7.tgz", - "integrity": "sha512-SLLb0AAn6PkUeAfKJCCOl9e1R53pQlGAfc4y4XuMRZfqeMYLE0dM1LMhqbGAlGQY0lfw5/ohoYWAe9V1yibRag==", + "node_modules/@cspotcode/source-map-support": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", + "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", + "dev": true, "dependencies": { - "@babel/types": "^7.16.7" + "@jridgewell/trace-mapping": "0.3.9" }, "engines": { - "node": ">=6.9.0" + "node": ">=12" } }, - "node_modules/@babel/helper-environment-visitor/node_modules/@babel/types": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.16.8.tgz", - "integrity": "sha512-smN2DQc5s4M7fntyjGtyIPbRJv6wW4rU/94fmYJ7PKQuZkC0qGMHXJbg6sNGt12JmVr4k5YaptI/XtiLJBnmIg==", + "node_modules/@ethereumjs/common": { + "version": "2.6.5", + "resolved": "https://registry.npmjs.org/@ethereumjs/common/-/common-2.6.5.tgz", + "integrity": "sha512-lRyVQOeCDaIVtgfbowla32pzeDv2Obr8oR8Put5RdUBNRGr1VGPGQNGP6elWIpgK3YdpzqTOh4GyUGOureVeeA==", "dependencies": { - "@babel/helper-validator-identifier": "^7.16.7", - "to-fast-properties": "^2.0.0" - }, - "engines": { - "node": ">=6.9.0" + "crc-32": "^1.2.0", + "ethereumjs-util": "^7.1.5" } }, - "node_modules/@babel/helper-function-name": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.16.7.tgz", - "integrity": "sha512-QfDfEnIUyyBSR3HtrtGECuZ6DAyCkYFp7GHl75vFtTnn6pjKeK0T1DB5lLkFvBea8MdaiUABx3osbgLyInoejA==", + "node_modules/@ethereumjs/common/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": { - "@babel/helper-get-function-arity": "^7.16.7", - "@babel/template": "^7.16.7", - "@babel/types": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" + "@types/node": "*" } }, - "node_modules/@babel/helper-function-name/node_modules/@babel/types": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.16.8.tgz", - "integrity": "sha512-smN2DQc5s4M7fntyjGtyIPbRJv6wW4rU/94fmYJ7PKQuZkC0qGMHXJbg6sNGt12JmVr4k5YaptI/XtiLJBnmIg==", - "dependencies": { - "@babel/helper-validator-identifier": "^7.16.7", - "to-fast-properties": "^2.0.0" - }, - "engines": { - "node": ">=6.9.0" - } + "node_modules/@ethereumjs/common/node_modules/bn.js": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", + "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==" }, - "node_modules/@babel/helper-get-function-arity": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.16.7.tgz", - "integrity": "sha512-flc+RLSOBXzNzVhcLu6ujeHUrD6tANAOU5ojrRx/as+tbzf8+stUCj7+IfRRoAbEZqj/ahXEMsjhOhgeZsrnTw==", + "node_modules/@ethereumjs/common/node_modules/ethereumjs-util": { + "version": "7.1.5", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.5.tgz", + "integrity": "sha512-SDl5kKrQAudFBUe5OJM9Ac6WmMyYmXX/6sTmLZ3ffG2eY6ZIGBes3pEDxNN6V72WyOw4CPD5RomKdsa8DAAwLg==", "dependencies": { - "@babel/types": "^7.16.7" + "@types/bn.js": "^5.1.0", + "bn.js": "^5.1.2", + "create-hash": "^1.1.2", + "ethereum-cryptography": "^0.1.3", + "rlp": "^2.2.4" }, "engines": { - "node": ">=6.9.0" + "node": ">=10.0.0" } }, - "node_modules/@babel/helper-get-function-arity/node_modules/@babel/types": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.16.8.tgz", - "integrity": "sha512-smN2DQc5s4M7fntyjGtyIPbRJv6wW4rU/94fmYJ7PKQuZkC0qGMHXJbg6sNGt12JmVr4k5YaptI/XtiLJBnmIg==", + "node_modules/@ethereumjs/tx": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/@ethereumjs/tx/-/tx-3.5.2.tgz", + "integrity": "sha512-gQDNJWKrSDGu2w7w0PzVXVBNMzb7wwdDOmOqczmhNjqFxFuIbhVJDwiGEnxFNC2/b8ifcZzY7MLcluizohRzNw==", "dependencies": { - "@babel/helper-validator-identifier": "^7.16.7", - "to-fast-properties": "^2.0.0" - }, - "engines": { - "node": ">=6.9.0" + "@ethereumjs/common": "^2.6.4", + "ethereumjs-util": "^7.1.5" } }, - "node_modules/@babel/helper-hoist-variables": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.7.tgz", - "integrity": "sha512-m04d/0Op34H5v7pbZw6pSKP7weA6lsMvfiIAMeIvkY/R4xQtBSMFEigu9QTZ2qB/9l22vsxtM8a+Q8CzD255fg==", + "node_modules/@ethereumjs/tx/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": { - "@babel/types": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" + "@types/node": "*" } }, - "node_modules/@babel/helper-hoist-variables/node_modules/@babel/types": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.16.8.tgz", - "integrity": "sha512-smN2DQc5s4M7fntyjGtyIPbRJv6wW4rU/94fmYJ7PKQuZkC0qGMHXJbg6sNGt12JmVr4k5YaptI/XtiLJBnmIg==", - "dependencies": { - "@babel/helper-validator-identifier": "^7.16.7", - "to-fast-properties": "^2.0.0" - }, - "engines": { - "node": ">=6.9.0" - } + "node_modules/@ethereumjs/tx/node_modules/bn.js": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", + "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==" }, - "node_modules/@babel/helper-member-expression-to-functions": { - "version": "7.13.12", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.13.12.tgz", - "integrity": "sha512-48ql1CLL59aKbU94Y88Xgb2VFy7a95ykGRbJJaaVv+LX5U8wFpLfiGXJJGUozsmA1oEh/o5Bp60Voq7ACyA/Sw==", - "peer": true, + "node_modules/@ethereumjs/tx/node_modules/ethereumjs-util": { + "version": "7.1.5", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.5.tgz", + "integrity": "sha512-SDl5kKrQAudFBUe5OJM9Ac6WmMyYmXX/6sTmLZ3ffG2eY6ZIGBes3pEDxNN6V72WyOw4CPD5RomKdsa8DAAwLg==", "dependencies": { - "@babel/types": "^7.13.12" + "@types/bn.js": "^5.1.0", + "bn.js": "^5.1.2", + "create-hash": "^1.1.2", + "ethereum-cryptography": "^0.1.3", + "rlp": "^2.2.4" + }, + "engines": { + "node": ">=10.0.0" } }, - "node_modules/@babel/helper-member-expression-to-functions/node_modules/@babel/types": { - "version": "7.14.2", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.14.2.tgz", - "integrity": "sha512-SdjAG/3DikRHpUOjxZgnkbR11xUlyDMUFJdvnIgZEE16mqmY0BINMmc4//JMJglEmn6i7sq6p+mGrFWyZ98EEw==", - "peer": true, + "node_modules/@ethersproject/abi": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/abi/-/abi-5.7.0.tgz", + "integrity": "sha512-351ktp42TiRcYB3H1OP8yajPeAQstMW/yCFokj/AthP9bLHzQFPlOrxOcwYEDkUAICmOHljvN4K39OMTMUa9RA==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], "dependencies": { - "@babel/helper-validator-identifier": "^7.14.0", - "to-fast-properties": "^2.0.0" + "@ethersproject/address": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/hash": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/strings": "^5.7.0" } }, - "node_modules/@babel/helper-module-imports": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.16.7.tgz", - "integrity": "sha512-LVtS6TqjJHFc+nYeITRo6VLXve70xmq7wPhWTqDJusJEgGmkAACWwMiTNrvfoQo6hEhFwAIixNkvB0jPXDL8Wg==", + "node_modules/@ethersproject/abstract-provider": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/abstract-provider/-/abstract-provider-5.7.0.tgz", + "integrity": "sha512-R41c9UkchKCpAqStMYUpdunjo3pkEvZC3FAwZn5S5MGbXoMQOHIdHItezTETxAO5bevtMApSyEhn9+CHcDsWBw==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], "dependencies": { - "@babel/types": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/networks": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/transactions": "^5.7.0", + "@ethersproject/web": "^5.7.0" } }, - "node_modules/@babel/helper-module-imports/node_modules/@babel/types": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.16.8.tgz", - "integrity": "sha512-smN2DQc5s4M7fntyjGtyIPbRJv6wW4rU/94fmYJ7PKQuZkC0qGMHXJbg6sNGt12JmVr4k5YaptI/XtiLJBnmIg==", + "node_modules/@ethersproject/abstract-signer": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/abstract-signer/-/abstract-signer-5.7.0.tgz", + "integrity": "sha512-a16V8bq1/Cz+TGCkE2OPMTOUDLS3grCpdjoJCYNnVBbdYEMSgKrU0+B90s8b6H+ByYTBZN7a3g76jdIJi7UfKQ==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], "dependencies": { - "@babel/helper-validator-identifier": "^7.16.7", - "to-fast-properties": "^2.0.0" - }, - "engines": { - "node": ">=6.9.0" + "@ethersproject/abstract-provider": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0" } }, - "node_modules/@babel/helper-module-transforms": { - "version": "7.14.2", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.14.2.tgz", - "integrity": "sha512-OznJUda/soKXv0XhpvzGWDnml4Qnwp16GN+D/kZIdLsWoHj05kyu8Rm5kXmMef+rVJZ0+4pSGLkeixdqNUATDA==", - "peer": true, + "node_modules/@ethersproject/address": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/address/-/address-5.7.0.tgz", + "integrity": "sha512-9wYhYt7aghVGo758POM5nqcOMaE168Q6aRLJZwUmiqSrAungkG74gSSeKEIR7ukixesdRZGPgVqme6vmxs1fkA==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], "dependencies": { - "@babel/helper-module-imports": "^7.13.12", - "@babel/helper-replace-supers": "^7.13.12", - "@babel/helper-simple-access": "^7.13.12", - "@babel/helper-split-export-declaration": "^7.12.13", - "@babel/helper-validator-identifier": "^7.14.0", - "@babel/template": "^7.12.13", - "@babel/traverse": "^7.14.2", - "@babel/types": "^7.14.2" + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/rlp": "^5.7.0" } }, - "node_modules/@babel/helper-module-transforms/node_modules/@babel/traverse": { - "version": "7.14.2", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.14.2.tgz", - "integrity": "sha512-TsdRgvBFHMyHOOzcP9S6QU0QQtjxlRpEYOy3mcCO5RgmC305ki42aSAmfZEMSSYBla2oZ9BMqYlncBaKmD/7iA==", - "peer": true, + "node_modules/@ethersproject/base64": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/base64/-/base64-5.7.0.tgz", + "integrity": "sha512-Dr8tcHt2mEbsZr/mwTPIQAf3Ai0Bks/7gTw9dSqk1mQvhW3XvRlmDJr/4n+wg1JmCl16NZue17CDh8xb/vZ0sQ==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], "dependencies": { - "@babel/code-frame": "^7.12.13", - "@babel/generator": "^7.14.2", - "@babel/helper-function-name": "^7.14.2", - "@babel/helper-split-export-declaration": "^7.12.13", - "@babel/parser": "^7.14.2", - "@babel/types": "^7.14.2", - "debug": "^4.1.0", - "globals": "^11.1.0" + "@ethersproject/bytes": "^5.7.0" } }, - "node_modules/@babel/helper-module-transforms/node_modules/@babel/types": { - "version": "7.14.2", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.14.2.tgz", - "integrity": "sha512-SdjAG/3DikRHpUOjxZgnkbR11xUlyDMUFJdvnIgZEE16mqmY0BINMmc4//JMJglEmn6i7sq6p+mGrFWyZ98EEw==", + "node_modules/@ethersproject/basex": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@ethersproject/basex/-/basex-5.4.0.tgz", + "integrity": "sha512-J07+QCVJ7np2bcpxydFVf/CuYo9mZ7T73Pe7KQY4c1lRlrixMeblauMxHXD0MPwFmUHZIILDNViVkykFBZylbg==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], "peer": true, "dependencies": { - "@babel/helper-validator-identifier": "^7.14.0", - "to-fast-properties": "^2.0.0" + "@ethersproject/bytes": "^5.4.0", + "@ethersproject/properties": "^5.4.0" } }, - "node_modules/@babel/helper-module-transforms/node_modules/debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", - "peer": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true + "node_modules/@ethersproject/bignumber": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/bignumber/-/bignumber-5.7.0.tgz", + "integrity": "sha512-n1CAdIHRWjSucQO3MC1zPSVgV/6dy/fjL9pMrPP9peL+QxEg9wOsVqwD4+818B6LUEtaXzVHQiuivzRoxPxUGw==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" } + ], + "dependencies": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "bn.js": "^5.2.1" } }, - "node_modules/@babel/helper-module-transforms/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==", - "peer": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/helper-module-transforms/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "peer": true + "node_modules/@ethersproject/bignumber/node_modules/bn.js": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", + "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==" }, - "node_modules/@babel/helper-optimise-call-expression": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.12.13.tgz", - "integrity": "sha512-BdWQhoVJkp6nVjB7nkFWcn43dkprYauqtk++Py2eaf/GRDFm5BxRqEIZCiHlZUGAVmtwKcsVL1dC68WmzeFmiA==", - "peer": true, + "node_modules/@ethersproject/bytes": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/bytes/-/bytes-5.7.0.tgz", + "integrity": "sha512-nsbxwgFXWh9NyYWo+U8atvmMsSdKJprTcICAkvbBffT75qDocbuggBU0SJiVK2MuTrp0q+xvLkTnGMPK1+uA9A==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], "dependencies": { - "@babel/types": "^7.12.13" - } - }, - "node_modules/@babel/helper-plugin-utils": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz", - "integrity": "sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA==", - "engines": { - "node": ">=6.9.0" + "@ethersproject/logger": "^5.7.0" } }, - "node_modules/@babel/helper-replace-supers": { - "version": "7.13.12", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.13.12.tgz", - "integrity": "sha512-Gz1eiX+4yDO8mT+heB94aLVNCL+rbuT2xy4YfyNqu8F+OI6vMvJK891qGBTqL9Uc8wxEvRW92Id6G7sDen3fFw==", - "peer": true, + "node_modules/@ethersproject/constants": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/constants/-/constants-5.7.0.tgz", + "integrity": "sha512-DHI+y5dBNvkpYUMiRQyxRBYBefZkJfo70VUkUAsRjcPs47muV9evftfZ0PJVCXYbAiCgght0DtcF9srFQmIgWA==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], "dependencies": { - "@babel/helper-member-expression-to-functions": "^7.13.12", - "@babel/helper-optimise-call-expression": "^7.12.13", - "@babel/traverse": "^7.13.0", - "@babel/types": "^7.13.12" + "@ethersproject/bignumber": "^5.7.0" } }, - "node_modules/@babel/helper-replace-supers/node_modules/@babel/traverse": { - "version": "7.14.2", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.14.2.tgz", - "integrity": "sha512-TsdRgvBFHMyHOOzcP9S6QU0QQtjxlRpEYOy3mcCO5RgmC305ki42aSAmfZEMSSYBla2oZ9BMqYlncBaKmD/7iA==", - "peer": true, + "node_modules/@ethersproject/hash": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/hash/-/hash-5.7.0.tgz", + "integrity": "sha512-qX5WrQfnah1EFnO5zJv1v46a8HW0+E5xuBBDTwMFZLuVTx0tbU2kkx15NqdjxecrLGatQN9FGQKpb1FKdHCt+g==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], "dependencies": { - "@babel/code-frame": "^7.12.13", - "@babel/generator": "^7.14.2", - "@babel/helper-function-name": "^7.14.2", - "@babel/helper-split-export-declaration": "^7.12.13", - "@babel/parser": "^7.14.2", - "@babel/types": "^7.14.2", - "debug": "^4.1.0", - "globals": "^11.1.0" + "@ethersproject/abstract-signer": "^5.7.0", + "@ethersproject/address": "^5.7.0", + "@ethersproject/base64": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/strings": "^5.7.0" } }, - "node_modules/@babel/helper-replace-supers/node_modules/@babel/types": { - "version": "7.14.2", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.14.2.tgz", - "integrity": "sha512-SdjAG/3DikRHpUOjxZgnkbR11xUlyDMUFJdvnIgZEE16mqmY0BINMmc4//JMJglEmn6i7sq6p+mGrFWyZ98EEw==", - "peer": true, + "node_modules/@ethersproject/keccak256": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/keccak256/-/keccak256-5.7.0.tgz", + "integrity": "sha512-2UcPboeL/iW+pSg6vZ6ydF8tCnv3Iu/8tUmLLzWWGzxWKFFqOBQFLo6uLUv6BDrLgCDfN28RJ/wtByx+jZ4KBg==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], "dependencies": { - "@babel/helper-validator-identifier": "^7.14.0", - "to-fast-properties": "^2.0.0" + "@ethersproject/bytes": "^5.7.0", + "js-sha3": "0.8.0" } }, - "node_modules/@babel/helper-replace-supers/node_modules/debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", - "peer": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true + "node_modules/@ethersproject/logger": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/logger/-/logger-5.7.0.tgz", + "integrity": "sha512-0odtFdXu/XHtjQXJYA3u9G0G8btm0ND5Cu8M7i5vhEcE8/HmF4Lbdqanwyv4uQTr2tx6b7fQRmgLrsnpQlmnig==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" } - } - }, - "node_modules/@babel/helper-replace-supers/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==", - "peer": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/helper-replace-supers/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "peer": true + ] }, - "node_modules/@babel/helper-simple-access": { - "version": "7.13.12", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.13.12.tgz", - "integrity": "sha512-7FEjbrx5SL9cWvXioDbnlYTppcZGuCY6ow3/D5vMggb2Ywgu4dMrpTJX0JdQAIcRRUElOIxF3yEooa9gUb9ZbA==", - "peer": true, + "node_modules/@ethersproject/networks": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/@ethersproject/networks/-/networks-5.7.1.tgz", + "integrity": "sha512-n/MufjFYv3yFcUyfhnXotyDlNdFb7onmkSy8aQERi2PjNcnWQ66xXxa3XlS8nCcA8aJKJjIIMNJTC7tu80GwpQ==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], "dependencies": { - "@babel/types": "^7.13.12" + "@ethersproject/logger": "^5.7.0" } }, - "node_modules/@babel/helper-simple-access/node_modules/@babel/types": { - "version": "7.14.2", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.14.2.tgz", - "integrity": "sha512-SdjAG/3DikRHpUOjxZgnkbR11xUlyDMUFJdvnIgZEE16mqmY0BINMmc4//JMJglEmn6i7sq6p+mGrFWyZ98EEw==", - "peer": true, + "node_modules/@ethersproject/properties": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/properties/-/properties-5.7.0.tgz", + "integrity": "sha512-J87jy8suntrAkIZtecpxEPxY//szqr1mlBaYlQ0r4RCaiD2hjheqF9s1LVE8vVuJCXisjIP+JgtK/Do54ej4Sw==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], "dependencies": { - "@babel/helper-validator-identifier": "^7.14.0", - "to-fast-properties": "^2.0.0" + "@ethersproject/logger": "^5.7.0" } }, - "node_modules/@babel/helper-split-export-declaration": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.7.tgz", - "integrity": "sha512-xbWoy/PFoxSWazIToT9Sif+jJTlrMcndIsaOKvTA6u7QEo7ilkRZpjew18/W3c7nm8fXdUDXh02VXTbZ0pGDNw==", + "node_modules/@ethersproject/providers": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/@ethersproject/providers/-/providers-5.4.1.tgz", + "integrity": "sha512-p06eiFKz8nu/5Ju0kIX024gzEQIgE5pvvGrBCngpyVjpuLtUIWT3097Agw4mTn9/dEA0FMcfByzFqacBMSgCVg==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "peer": true, "dependencies": { - "@babel/types": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" + "@ethersproject/abstract-provider": "^5.4.0", + "@ethersproject/abstract-signer": "^5.4.0", + "@ethersproject/address": "^5.4.0", + "@ethersproject/basex": "^5.4.0", + "@ethersproject/bignumber": "^5.4.0", + "@ethersproject/bytes": "^5.4.0", + "@ethersproject/constants": "^5.4.0", + "@ethersproject/hash": "^5.4.0", + "@ethersproject/logger": "^5.4.0", + "@ethersproject/networks": "^5.4.0", + "@ethersproject/properties": "^5.4.0", + "@ethersproject/random": "^5.4.0", + "@ethersproject/rlp": "^5.4.0", + "@ethersproject/sha2": "^5.4.0", + "@ethersproject/strings": "^5.4.0", + "@ethersproject/transactions": "^5.4.0", + "@ethersproject/web": "^5.4.0", + "bech32": "1.1.4", + "ws": "7.4.6" } }, - "node_modules/@babel/helper-split-export-declaration/node_modules/@babel/types": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.16.8.tgz", - "integrity": "sha512-smN2DQc5s4M7fntyjGtyIPbRJv6wW4rU/94fmYJ7PKQuZkC0qGMHXJbg6sNGt12JmVr4k5YaptI/XtiLJBnmIg==", - "dependencies": { - "@babel/helper-validator-identifier": "^7.16.7", - "to-fast-properties": "^2.0.0" - }, - "engines": { - "node": ">=6.9.0" - } + "node_modules/@ethersproject/providers/node_modules/bech32": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/bech32/-/bech32-1.1.4.tgz", + "integrity": "sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ==", + "peer": true }, - "node_modules/@babel/helper-validator-identifier": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz", - "integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==", + "node_modules/@ethersproject/providers/node_modules/ws": { + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz", + "integrity": "sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==", + "peer": true, "engines": { - "node": ">=6.9.0" + "node": ">=8.3.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } } }, - "node_modules/@babel/helper-validator-option": { - "version": "7.12.17", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.12.17.tgz", - "integrity": "sha512-TopkMDmLzq8ngChwRlyjR6raKD6gMSae4JdYDB8bByKreQgG0RBTuKe9LRxW3wFtUnjxOPRKBDwEH6Mg5KeDfw==" - }, - "node_modules/@babel/helpers": { - "version": "7.14.0", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.14.0.tgz", - "integrity": "sha512-+ufuXprtQ1D1iZTO/K9+EBRn+qPWMJjZSw/S0KlFrxCw4tkrzv9grgpDHkY9MeQTjTY8i2sp7Jep8DfU6tN9Mg==", + "node_modules/@ethersproject/random": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@ethersproject/random/-/random-5.4.0.tgz", + "integrity": "sha512-pnpWNQlf0VAZDEOVp1rsYQosmv2o0ITS/PecNw+mS2/btF8eYdspkN0vIXrCMtkX09EAh9bdk8GoXmFXM1eAKw==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], "peer": true, "dependencies": { - "@babel/template": "^7.12.13", - "@babel/traverse": "^7.14.0", - "@babel/types": "^7.14.0" + "@ethersproject/bytes": "^5.4.0", + "@ethersproject/logger": "^5.4.0" } }, - "node_modules/@babel/helpers/node_modules/@babel/traverse": { - "version": "7.14.2", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.14.2.tgz", - "integrity": "sha512-TsdRgvBFHMyHOOzcP9S6QU0QQtjxlRpEYOy3mcCO5RgmC305ki42aSAmfZEMSSYBla2oZ9BMqYlncBaKmD/7iA==", - "peer": true, + "node_modules/@ethersproject/rlp": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/rlp/-/rlp-5.7.0.tgz", + "integrity": "sha512-rBxzX2vK8mVF7b0Tol44t5Tb8gomOHkj5guL+HhzQ1yBh/ydjGnpw6at+X6Iw0Kp3OzzzkcKp8N9r0W4kYSs9w==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], "dependencies": { - "@babel/code-frame": "^7.12.13", - "@babel/generator": "^7.14.2", - "@babel/helper-function-name": "^7.14.2", - "@babel/helper-split-export-declaration": "^7.12.13", - "@babel/parser": "^7.14.2", - "@babel/types": "^7.14.2", - "debug": "^4.1.0", - "globals": "^11.1.0" + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0" } }, - "node_modules/@babel/helpers/node_modules/@babel/types": { - "version": "7.14.2", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.14.2.tgz", - "integrity": "sha512-SdjAG/3DikRHpUOjxZgnkbR11xUlyDMUFJdvnIgZEE16mqmY0BINMmc4//JMJglEmn6i7sq6p+mGrFWyZ98EEw==", + "node_modules/@ethersproject/sha2": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@ethersproject/sha2/-/sha2-5.4.0.tgz", + "integrity": "sha512-siheo36r1WD7Cy+bDdE1BJ8y0bDtqXCOxRMzPa4bV1TGt/eTUUt03BHoJNB6reWJD8A30E/pdJ8WFkq+/uz4Gg==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], "peer": true, "dependencies": { - "@babel/helper-validator-identifier": "^7.14.0", - "to-fast-properties": "^2.0.0" + "@ethersproject/bytes": "^5.4.0", + "@ethersproject/logger": "^5.4.0", + "hash.js": "1.1.7" } }, - "node_modules/@babel/helpers/node_modules/debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "node_modules/@ethersproject/sha2/node_modules/hash.js": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", + "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", "peer": true, "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/@babel/helpers/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==", - "peer": true, - "engines": { - "node": ">=4" + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.1" } }, - "node_modules/@babel/helpers/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "peer": true - }, - "node_modules/@babel/highlight": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.16.7.tgz", - "integrity": "sha512-aKpPMfLvGO3Q97V0qhw/V2SWNWlwfJknuwAunU7wZLSfrM4xTBvg7E5opUVi1kJTBKihE38CPg4nBiqX83PWYw==", + "node_modules/@ethersproject/signing-key": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/signing-key/-/signing-key-5.7.0.tgz", + "integrity": "sha512-MZdy2nL3wO0u7gkB4nA/pEf8lu1TlFswPNmy8AiYkfKTdO6eXBJyUdmHO/ehm/htHw9K/qF8ujnTyUAD+Ry54Q==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], "dependencies": { - "@babel/helper-validator-identifier": "^7.16.7", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - }, - "engines": { - "node": ">=6.9.0" + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "bn.js": "^5.2.1", + "elliptic": "6.5.4", + "hash.js": "1.1.7" } }, - "node_modules/@babel/parser": { - "version": "7.17.10", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.17.10.tgz", - "integrity": "sha512-n2Q6i+fnJqzOaq2VkdXxy2TCPCWQZHiCo0XqmrCvDWcZQKRyZzYi4Z0yxlBuN0w+r2ZHmre+Q087DSrw3pbJDQ==", - "bin": { - "parser": "bin/babel-parser.js" - }, - "engines": { - "node": ">=6.0.0" - } + "node_modules/@ethersproject/signing-key/node_modules/bn.js": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", + "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==" }, - "node_modules/@babel/plugin-transform-runtime": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.16.8.tgz", - "integrity": "sha512-6Kg2XHPFnIarNweZxmzbgYnnWsXxkx9WQUVk2sksBRL80lBC1RAQV3wQagWxdCHiYHqPN+oenwNIuttlYgIbQQ==", + "node_modules/@ethersproject/signing-key/node_modules/hash.js": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", + "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", "dependencies": { - "@babel/helper-module-imports": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "babel-plugin-polyfill-corejs2": "^0.3.0", - "babel-plugin-polyfill-corejs3": "^0.5.0", - "babel-plugin-polyfill-regenerator": "^0.3.0", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-runtime/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "bin": { - "semver": "bin/semver.js" + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.1" } }, - "node_modules/@babel/runtime": { - "version": "7.20.13", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.20.13.tgz", - "integrity": "sha512-gt3PKXs0DBoL9xCvOIIZ2NEqAGZqHjAnmVbfQtB620V0uReIQutpel14KcneZuer7UioY8ALKZ7iocavvzTNFA==", + "node_modules/@ethersproject/strings": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/strings/-/strings-5.7.0.tgz", + "integrity": "sha512-/9nu+lj0YswRNSH0NXYqrh8775XNyEdUQAuf3f+SmOrnVewcJ5SBNAjF7lpgehKi4abvNNXyf+HX86czCdJ8Mg==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], "dependencies": { - "regenerator-runtime": "^0.13.11" - }, - "engines": { - "node": ">=6.9.0" + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/logger": "^5.7.0" } }, - "node_modules/@babel/template": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.16.7.tgz", - "integrity": "sha512-I8j/x8kHUrbYRTUxXrrMbfCa7jxkE7tZre39x3kjr9hvI82cK1FfqLygotcWN5kdPGWcLdWMHpSBavse5tWw3w==", + "node_modules/@ethersproject/transactions": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/transactions/-/transactions-5.7.0.tgz", + "integrity": "sha512-kmcNicCp1lp8qanMTC3RIikGgoJ80ztTyvtsFvCYpSCfkjhD0jZ2LOrnbcuxuToLIUYYf+4XwD1rP+B/erDIhQ==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], "dependencies": { - "@babel/code-frame": "^7.16.7", - "@babel/parser": "^7.16.7", - "@babel/types": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" + "@ethersproject/address": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/rlp": "^5.7.0", + "@ethersproject/signing-key": "^5.7.0" } }, - "node_modules/@babel/template/node_modules/@babel/types": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.16.8.tgz", - "integrity": "sha512-smN2DQc5s4M7fntyjGtyIPbRJv6wW4rU/94fmYJ7PKQuZkC0qGMHXJbg6sNGt12JmVr4k5YaptI/XtiLJBnmIg==", + "node_modules/@ethersproject/web": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/@ethersproject/web/-/web-5.7.1.tgz", + "integrity": "sha512-Gueu8lSvyjBWL4cYsWsjh6MtMwM0+H4HvqFPZfB6dV8ctbP9zFAO73VG1cMWae0FLPCtz0peKPpZY8/ugJJX2w==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], "dependencies": { - "@babel/helper-validator-identifier": "^7.16.7", - "to-fast-properties": "^2.0.0" - }, - "engines": { - "node": ">=6.9.0" + "@ethersproject/base64": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/strings": "^5.7.0" } }, - "node_modules/@babel/types": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.13.tgz", - "integrity": "sha512-oKrdZTld2im1z8bDwTOQvUbxKwE+854zc16qWZQlcTqMN00pWxHQ4ZeOq0yDMnisOpRykH2/5Qqcrk/OlbAjiQ==", - "peer": true, - "dependencies": { - "@babel/helper-validator-identifier": "^7.12.11", - "lodash": "^4.17.19", - "to-fast-properties": "^2.0.0" + "node_modules/@graphql-typed-document-node/core": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@graphql-typed-document-node/core/-/core-3.2.0.tgz", + "integrity": "sha512-mB9oAsNCm9aM3/SOv4YtBMqZbYj10R7dkq8byBqxGY/ncFwhf2oQzMV+LCRlWoDSEBJ3COiR1yeDvMtsoOsuFQ==", + "peerDependencies": { + "graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" } }, - "node_modules/@certusone/wormhole-sdk": { - "version": "0.9.11", - "resolved": "https://registry.npmjs.org/@certusone/wormhole-sdk/-/wormhole-sdk-0.9.11.tgz", - "integrity": "sha512-HpqlgNle09E6v8EhEBSjBe9MexO7av4cznM4kRR4CYCKTLfwqT75LQRYuSnCJgxrpwNiVRDVJaPWRi7ZEgIipw==", + "node_modules/@improbable-eng/grpc-web": { + "version": "0.15.0", + "resolved": "https://registry.npmjs.org/@improbable-eng/grpc-web/-/grpc-web-0.15.0.tgz", + "integrity": "sha512-ERft9/0/8CmYalqOVnJnpdDry28q+j+nAlFFARdjyxXDJ+Mhgv9+F600QC8BR9ygOfrXRlAk6CvST2j+JCpQPg==", "dependencies": { - "@certusone/wormhole-sdk-proto-web": "0.0.6", - "@certusone/wormhole-sdk-wasm": "^0.0.1", - "@coral-xyz/borsh": "0.2.6", - "@injectivelabs/networks": "^1.0.73", - "@injectivelabs/sdk-ts": "^1.0.368", - "@injectivelabs/utils": "^1.0.63", - "@project-serum/anchor": "^0.25.0", - "@solana/spl-token": "^0.3.5", - "@solana/web3.js": "^1.66.2", - "@terra-money/terra.js": "^3.1.3", - "@xpla/xpla.js": "^0.2.1", - "algosdk": "^1.15.0", - "aptos": "1.5.0", - "axios": "^0.24.0", - "bech32": "^2.0.0", - "binary-parser": "^2.2.1", - "bs58": "^4.0.1", - "elliptic": "^6.5.4", - "js-base64": "^3.6.1", - "near-api-js": "^1.0.0" + "browser-headers": "^0.4.1" + }, + "peerDependencies": { + "google-protobuf": "^3.14.0" } }, - "node_modules/@certusone/wormhole-sdk-proto-web": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/@certusone/wormhole-sdk-proto-web/-/wormhole-sdk-proto-web-0.0.6.tgz", - "integrity": "sha512-LTyjsrWryefx5WmkoBP6FQ2EjLxhMExAGxLkloHUhufVQZdrbGh0htBBUviP+HaDSJBCMPMtulNFwkBJV6muqQ==", + "node_modules/@injectivelabs/core-proto-ts": { + "version": "0.0.11", + "resolved": "https://registry.npmjs.org/@injectivelabs/core-proto-ts/-/core-proto-ts-0.0.11.tgz", + "integrity": "sha512-gYMzkoZ0olXLbEhSQVarUCMR6VAHytvENDv2Psjl9EjO5Pg93vTGLViS4E4vA5fezRfdF/x0Uic31w+ogp66jA==", "dependencies": { - "@improbable-eng/grpc-web": "^0.15.0", + "@injectivelabs/grpc-web": "^0.0.1", + "google-protobuf": "^3.14.0", "protobufjs": "^7.0.0", - "rxjs": "^7.5.6" + "rxjs": "^7.4.0" } }, - "node_modules/@certusone/wormhole-sdk-proto-web/node_modules/long": { + "node_modules/@injectivelabs/core-proto-ts/node_modules/long": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/long/-/long-5.2.1.tgz", "integrity": "sha512-GKSNGeNAtw8IryjjkhZxuKB3JzlcLTwjtiQCHKvqQet81I93kXslhDQruGI/QsddO83mcDToBVy7GqGS/zYf/A==" }, - "node_modules/@certusone/wormhole-sdk-proto-web/node_modules/protobufjs": { + "node_modules/@injectivelabs/core-proto-ts/node_modules/protobufjs": { "version": "7.2.3", "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.2.3.tgz", "integrity": "sha512-TtpvOqwB5Gdz/PQmOjgsrGH1nHjAQVCN7JG4A6r1sXRWESL5rNMAiRcBQlCAdKxZcAbstExQePYG8xof/JVRgg==", @@ -1140,7 +1185,7 @@ "node": ">=12.0.0" } }, - "node_modules/@certusone/wormhole-sdk-proto-web/node_modules/rxjs": { + "node_modules/@injectivelabs/core-proto-ts/node_modules/rxjs": { "version": "7.8.0", "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.0.tgz", "integrity": "sha512-F2+gxDshqmIub1KdvZkaEfGDwLNpPvk9Fs6LD/MyQxNgMds/WH9OdDDXOmxUZpME+iSK3rQCctkL0DYyytUqMg==", @@ -1148,308 +1193,331 @@ "tslib": "^2.1.0" } }, - "node_modules/@certusone/wormhole-sdk-proto-web/node_modules/tslib": { + "node_modules/@injectivelabs/core-proto-ts/node_modules/tslib": { "version": "2.5.0", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz", "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==" }, - "node_modules/@certusone/wormhole-sdk-wasm": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/@certusone/wormhole-sdk-wasm/-/wormhole-sdk-wasm-0.0.1.tgz", - "integrity": "sha512-LdIwLhOyr4pPs2jqYubqC7d4UkqYBX0EG/ppspQlW3qlVE0LZRMrH6oVzzLMyHtV0Rw7O9sIKzORW/T3mrJv2w==", + "node_modules/@injectivelabs/exceptions": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/@injectivelabs/exceptions/-/exceptions-1.10.0.tgz", + "integrity": "sha512-YD9MEUEwJDalj+bV+/4P8TEqyR7asnQfjacCtuCYEF59qWsSYjYWxfZdZDssmSK8FA4HgJaQ2sghhK/LUfBneA==", + "hasInstallScript": true, "dependencies": { - "@types/long": "^4.0.2", - "@types/node": "^18.0.3" + "@injectivelabs/grpc-web": "^0.0.1", + "@injectivelabs/ts-types": "^1.10.0", + "http-status-codes": "^2.2.0", + "link-module-alias": "^1.2.0", + "shx": "^0.3.2" } }, - "node_modules/@certusone/wormhole-sdk/node_modules/axios": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.24.0.tgz", - "integrity": "sha512-Q6cWsys88HoPgAaFAVUb0WpPk0O8iTeisR9IMqy9G8AbO4NlpVknrnQS03zzF9PGAWgO3cgletO3VjV/P7VztA==", + "node_modules/@injectivelabs/grpc-web": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/@injectivelabs/grpc-web/-/grpc-web-0.0.1.tgz", + "integrity": "sha512-Pu5YgaZp+OvR5UWfqbrPdHer3+gDf+b5fQoY+t2VZx1IAVHX8bzbN9EreYTvTYtFeDpYRWM8P7app2u4EX5wTw==", "dependencies": { - "follow-redirects": "^1.14.4" + "browser-headers": "^0.4.1" + }, + "peerDependencies": { + "google-protobuf": "^3.14.0" } }, - "node_modules/@certusone/wormhole-sdk/node_modules/follow-redirects": { - "version": "1.15.2", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", - "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==", - "funding": [ - { - "type": "individual", - "url": "https://github.com/sponsors/RubenVerborgh" - } - ], - "engines": { - "node": ">=4.0" - }, - "peerDependenciesMeta": { - "debug": { - "optional": true - } + "node_modules/@injectivelabs/grpc-web-node-http-transport": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/@injectivelabs/grpc-web-node-http-transport/-/grpc-web-node-http-transport-0.0.2.tgz", + "integrity": "sha512-rpyhXLiGY/UMs6v6YmgWHJHiO9l0AgDyVNv+jcutNVt4tQrmNvnpvz2wCAGOFtq5LuX/E9ChtTVpk3gWGqXcGA==", + "peerDependencies": { + "@injectivelabs/grpc-web": ">=0.0.1" } }, - "node_modules/@chainsafe/truffle-plugin-abigen": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/@chainsafe/truffle-plugin-abigen/-/truffle-plugin-abigen-0.0.1.tgz", - "integrity": "sha512-/8wPXE2HCEdngSQCXJdjMtzpPVjjG9RGR+GwOZf4ve0o2LpOc2gPzxYvd67g6IOkI6pJwfAHoFb3L+qtc9G5pQ==", - "dev": true, - "dependencies": { - "cli-logger": "^0.5.40", - "eslint": "^6.8.0" + "node_modules/@injectivelabs/grpc-web-react-native-transport": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/@injectivelabs/grpc-web-react-native-transport/-/grpc-web-react-native-transport-0.0.2.tgz", + "integrity": "sha512-mk+aukQXnYNgPsPnu3KBi+FD0ZHQpazIlaBZ2jNZG7QAVmxTWtv3R66Zoq99Wx2dnE946NsZBYAoa0K5oSjnow==", + "peerDependencies": { + "@injectivelabs/grpc-web": ">=0.0.1" } }, - "node_modules/@classic-terra/terra.proto": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@classic-terra/terra.proto/-/terra.proto-1.1.0.tgz", - "integrity": "sha512-bYhQG5LUaGF0KPRY9hYT/HEcd1QExZPQd6zLV/rQkCe/eDxfwFRLzZHpaaAdfWoAAZjsRWqJbUCqCg7gXBbJpw==", + "node_modules/@injectivelabs/indexer-proto-ts": { + "version": "0.0.9", + "resolved": "https://registry.npmjs.org/@injectivelabs/indexer-proto-ts/-/indexer-proto-ts-0.0.9.tgz", + "integrity": "sha512-ZFTUKlHAY2WYnB9RPPf11nq7SNm7wcKFTmFTavTiHV8UvNEni7dCR3Un6U5Mo1qD0xHEsfoCDMdqGcIguliPMA==", "dependencies": { - "@improbable-eng/grpc-web": "^0.14.1", - "google-protobuf": "^3.17.3", - "long": "^4.0.0", - "protobufjs": "~6.11.2" + "@injectivelabs/grpc-web": "^0.0.1", + "google-protobuf": "^3.14.0", + "protobufjs": "^7.0.0", + "rxjs": "^7.4.0" } }, - "node_modules/@classic-terra/terra.proto/node_modules/@improbable-eng/grpc-web": { - "version": "0.14.1", - "resolved": "https://registry.npmjs.org/@improbable-eng/grpc-web/-/grpc-web-0.14.1.tgz", - "integrity": "sha512-XaIYuunepPxoiGVLLHmlnVminUGzBTnXr8Wv7khzmLWbNw4TCwJKX09GSMJlKhu/TRk6gms0ySFxewaETSBqgw==", + "node_modules/@injectivelabs/indexer-proto-ts/node_modules/long": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/long/-/long-5.2.1.tgz", + "integrity": "sha512-GKSNGeNAtw8IryjjkhZxuKB3JzlcLTwjtiQCHKvqQet81I93kXslhDQruGI/QsddO83mcDToBVy7GqGS/zYf/A==" + }, + "node_modules/@injectivelabs/indexer-proto-ts/node_modules/protobufjs": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.2.3.tgz", + "integrity": "sha512-TtpvOqwB5Gdz/PQmOjgsrGH1nHjAQVCN7JG4A6r1sXRWESL5rNMAiRcBQlCAdKxZcAbstExQePYG8xof/JVRgg==", + "hasInstallScript": true, "dependencies": { - "browser-headers": "^0.4.1" + "@protobufjs/aspromise": "^1.1.2", + "@protobufjs/base64": "^1.1.2", + "@protobufjs/codegen": "^2.0.4", + "@protobufjs/eventemitter": "^1.1.0", + "@protobufjs/fetch": "^1.1.0", + "@protobufjs/float": "^1.0.2", + "@protobufjs/inquire": "^1.1.0", + "@protobufjs/path": "^1.1.2", + "@protobufjs/pool": "^1.1.0", + "@protobufjs/utf8": "^1.1.0", + "@types/node": ">=13.7.0", + "long": "^5.0.0" }, - "peerDependencies": { - "google-protobuf": "^3.14.0" + "engines": { + "node": ">=12.0.0" } }, - "node_modules/@confio/ics23": { - "version": "0.6.8", - "resolved": "https://registry.npmjs.org/@confio/ics23/-/ics23-0.6.8.tgz", - "integrity": "sha512-wB6uo+3A50m0sW/EWcU64xpV/8wShZ6bMTa7pF8eYsTrSkQA7oLUIJcs/wb8g4y2Oyq701BaGiO6n/ak5WXO1w==", + "node_modules/@injectivelabs/indexer-proto-ts/node_modules/rxjs": { + "version": "7.8.0", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.0.tgz", + "integrity": "sha512-F2+gxDshqmIub1KdvZkaEfGDwLNpPvk9Fs6LD/MyQxNgMds/WH9OdDDXOmxUZpME+iSK3rQCctkL0DYyytUqMg==", "dependencies": { - "@noble/hashes": "^1.0.0", - "protobufjs": "^6.8.8" + "tslib": "^2.1.0" } }, - "node_modules/@coral-xyz/borsh": { - "version": "0.2.6", - "resolved": "https://registry.npmjs.org/@coral-xyz/borsh/-/borsh-0.2.6.tgz", - "integrity": "sha512-y6nmHw1bFcJib7sMHsQPpC8r47xhqDZVvhUdna7NUPzpSbOZG6f46N21+aXsQ2w/tG8Ggls488J/ZmwbgVmyjg==", - "dependencies": { - "bn.js": "^5.1.2", - "buffer-layout": "^1.2.0" - }, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "@solana/web3.js": "^1.2.0" - } - }, - "node_modules/@coral-xyz/borsh/node_modules/bn.js": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", - "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==" + "node_modules/@injectivelabs/indexer-proto-ts/node_modules/tslib": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz", + "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==" }, - "node_modules/@cosmjs/amino": { - "version": "0.29.5", - "resolved": "https://registry.npmjs.org/@cosmjs/amino/-/amino-0.29.5.tgz", - "integrity": "sha512-Qo8jpC0BiziTSUqpkNatBcwtKNhCovUnFul9SlT/74JUCdLYaeG5hxr3q1cssQt++l4LvlcpF+OUXL48XjNjLw==", + "node_modules/@injectivelabs/networks": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/@injectivelabs/networks/-/networks-1.10.0.tgz", + "integrity": "sha512-S0f1iWBcnc+HgvtIJLNlMC0iBsiT5AH0rXfwJpvkRehqwyB/J2WPKN7uOdsplK72nH4fauA3emokzGS8JknyEA==", + "hasInstallScript": true, "dependencies": { - "@cosmjs/crypto": "^0.29.5", - "@cosmjs/encoding": "^0.29.5", - "@cosmjs/math": "^0.29.5", - "@cosmjs/utils": "^0.29.5" + "@injectivelabs/exceptions": "^1.10.0", + "@injectivelabs/ts-types": "^1.10.0", + "@injectivelabs/utils": "^1.10.0", + "link-module-alias": "^1.2.0", + "shx": "^0.3.2" } }, - "node_modules/@cosmjs/crypto": { - "version": "0.29.5", - "resolved": "https://registry.npmjs.org/@cosmjs/crypto/-/crypto-0.29.5.tgz", - "integrity": "sha512-2bKkaLGictaNL0UipQCL6C1afaisv6k8Wr/GCLx9FqiyFkh9ZgRHDyetD64ZsjnWV/N/D44s/esI+k6oPREaiQ==", + "node_modules/@injectivelabs/ninja-proto-ts": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@injectivelabs/ninja-proto-ts/-/ninja-proto-ts-1.0.1.tgz", + "integrity": "sha512-ZHyVp/yPQcl7QdHxRU49G5xFVDXJwBtMvu7BW//nUVDrTWxBy2zS1AUYpL37nvKpTG9AtB1EqMYKLPXD2sdLsg==", "dependencies": { - "@cosmjs/encoding": "^0.29.5", - "@cosmjs/math": "^0.29.5", - "@cosmjs/utils": "^0.29.5", - "@noble/hashes": "^1", - "bn.js": "^5.2.0", - "elliptic": "^6.5.4", - "libsodium-wrappers": "^0.7.6" + "@injectivelabs/grpc-web": "^0.0.1", + "google-protobuf": "^3.14.0", + "protobufjs": "^7.0.0", + "rxjs": "^7.4.0" } }, - "node_modules/@cosmjs/crypto/node_modules/bn.js": { + "node_modules/@injectivelabs/ninja-proto-ts/node_modules/long": { "version": "5.2.1", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", - "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==" + "resolved": "https://registry.npmjs.org/long/-/long-5.2.1.tgz", + "integrity": "sha512-GKSNGeNAtw8IryjjkhZxuKB3JzlcLTwjtiQCHKvqQet81I93kXslhDQruGI/QsddO83mcDToBVy7GqGS/zYf/A==" }, - "node_modules/@cosmjs/encoding": { - "version": "0.29.5", - "resolved": "https://registry.npmjs.org/@cosmjs/encoding/-/encoding-0.29.5.tgz", - "integrity": "sha512-G4rGl/Jg4dMCw5u6PEZHZcoHnUBlukZODHbm/wcL4Uu91fkn5jVo5cXXZcvs4VCkArVGrEj/52eUgTZCmOBGWQ==", + "node_modules/@injectivelabs/ninja-proto-ts/node_modules/protobufjs": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.2.3.tgz", + "integrity": "sha512-TtpvOqwB5Gdz/PQmOjgsrGH1nHjAQVCN7JG4A6r1sXRWESL5rNMAiRcBQlCAdKxZcAbstExQePYG8xof/JVRgg==", + "hasInstallScript": true, "dependencies": { - "base64-js": "^1.3.0", - "bech32": "^1.1.4", - "readonly-date": "^1.0.0" + "@protobufjs/aspromise": "^1.1.2", + "@protobufjs/base64": "^1.1.2", + "@protobufjs/codegen": "^2.0.4", + "@protobufjs/eventemitter": "^1.1.0", + "@protobufjs/fetch": "^1.1.0", + "@protobufjs/float": "^1.0.2", + "@protobufjs/inquire": "^1.1.0", + "@protobufjs/path": "^1.1.2", + "@protobufjs/pool": "^1.1.0", + "@protobufjs/utf8": "^1.1.0", + "@types/node": ">=13.7.0", + "long": "^5.0.0" + }, + "engines": { + "node": ">=12.0.0" } }, - "node_modules/@cosmjs/encoding/node_modules/bech32": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/bech32/-/bech32-1.1.4.tgz", - "integrity": "sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ==" - }, - "node_modules/@cosmjs/json-rpc": { - "version": "0.29.5", - "resolved": "https://registry.npmjs.org/@cosmjs/json-rpc/-/json-rpc-0.29.5.tgz", - "integrity": "sha512-C78+X06l+r9xwdM1yFWIpGl03LhB9NdM1xvZpQHwgCOl0Ir/WV8pw48y3Ez2awAoUBRfTeejPe4KvrE6NoIi/w==", + "node_modules/@injectivelabs/ninja-proto-ts/node_modules/rxjs": { + "version": "7.8.0", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.0.tgz", + "integrity": "sha512-F2+gxDshqmIub1KdvZkaEfGDwLNpPvk9Fs6LD/MyQxNgMds/WH9OdDDXOmxUZpME+iSK3rQCctkL0DYyytUqMg==", "dependencies": { - "@cosmjs/stream": "^0.29.5", - "xstream": "^11.14.0" + "tslib": "^2.1.0" } }, - "node_modules/@cosmjs/math": { - "version": "0.29.5", - "resolved": "https://registry.npmjs.org/@cosmjs/math/-/math-0.29.5.tgz", - "integrity": "sha512-2GjKcv+A9f86MAWYLUkjhw1/WpRl2R1BTb3m9qPG7lzMA7ioYff9jY5SPCfafKdxM4TIQGxXQlYGewQL16O68Q==", + "node_modules/@injectivelabs/ninja-proto-ts/node_modules/tslib": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz", + "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==" + }, + "node_modules/@injectivelabs/sdk-ts": { + "version": "1.10.15", + "resolved": "https://registry.npmjs.org/@injectivelabs/sdk-ts/-/sdk-ts-1.10.15.tgz", + "integrity": "sha512-W8ysWwqmKBH8U8xe8n2B6vuSW9qu2sBf26VkdMGQE0del26EHfGSy5U5vTLGkdXP+ZgBabvcAzGhuIBr6V8vxQ==", + "hasInstallScript": true, "dependencies": { - "bn.js": "^5.2.0" + "@apollo/client": "^3.5.8", + "@cosmjs/amino": "^0.29.5", + "@cosmjs/proto-signing": "^0.29.5", + "@cosmjs/stargate": "^0.29.5", + "@ethersproject/bytes": "^5.7.0", + "@injectivelabs/core-proto-ts": "^0.0.11", + "@injectivelabs/exceptions": "^1.10.0", + "@injectivelabs/grpc-web": "^0.0.1", + "@injectivelabs/grpc-web-node-http-transport": "^0.0.2", + "@injectivelabs/grpc-web-react-native-transport": "^0.0.2", + "@injectivelabs/indexer-proto-ts": "^0.0.9", + "@injectivelabs/networks": "^1.10.0", + "@injectivelabs/ninja-proto-ts": "1.0.1", + "@injectivelabs/test-utils": "^1.10.0", + "@injectivelabs/token-metadata": "^1.10.4", + "@injectivelabs/ts-types": "^1.10.0", + "@injectivelabs/utils": "^1.10.0", + "@metamask/eth-sig-util": "^4.0.0", + "axios": "^0.27.2", + "bech32": "^2.0.0", + "bip39": "^3.0.4", + "cosmjs-types": "^0.7.1", + "eth-crypto": "^2.6.0", + "ethereumjs-util": "^7.1.4", + "ethers": "^5.6.4", + "google-protobuf": "^3.21.0", + "graphql": "^16.3.0", + "http-status-codes": "^2.2.0", + "js-sha3": "^0.8.0", + "jscrypto": "^1.0.3", + "keccak256": "^1.0.6", + "link-module-alias": "^1.2.0", + "rxjs": "^7.8.0", + "secp256k1": "^4.0.3", + "shx": "^0.3.2", + "snakecase-keys": "^5.4.1" } }, - "node_modules/@cosmjs/math/node_modules/bn.js": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", - "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==" - }, - "node_modules/@cosmjs/proto-signing": { - "version": "0.29.5", - "resolved": "https://registry.npmjs.org/@cosmjs/proto-signing/-/proto-signing-0.29.5.tgz", - "integrity": "sha512-QRrS7CiKaoETdgIqvi/7JC2qCwCR7lnWaUsTzh/XfRy3McLkEd+cXbKAW3cygykv7IN0VAEIhZd2lyIfT8KwNA==", + "node_modules/@injectivelabs/sdk-ts/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": { - "@cosmjs/amino": "^0.29.5", - "@cosmjs/crypto": "^0.29.5", - "@cosmjs/encoding": "^0.29.5", - "@cosmjs/math": "^0.29.5", - "@cosmjs/utils": "^0.29.5", - "cosmjs-types": "^0.5.2", - "long": "^4.0.0" + "@types/node": "*" } }, - "node_modules/@cosmjs/proto-signing/node_modules/cosmjs-types": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/cosmjs-types/-/cosmjs-types-0.5.2.tgz", - "integrity": "sha512-zxCtIJj8v3Di7s39uN4LNcN3HIE1z0B9Z0SPE8ZNQR0oSzsuSe1ACgxoFkvhkS7WBasCAFcglS11G2hyfd5tPg==", + "node_modules/@injectivelabs/sdk-ts/node_modules/axios": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.27.2.tgz", + "integrity": "sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==", "dependencies": { - "long": "^4.0.0", - "protobufjs": "~6.11.2" + "follow-redirects": "^1.14.9", + "form-data": "^4.0.0" } }, - "node_modules/@cosmjs/socket": { - "version": "0.29.5", - "resolved": "https://registry.npmjs.org/@cosmjs/socket/-/socket-0.29.5.tgz", - "integrity": "sha512-5VYDupIWbIXq3ftPV1LkS5Ya/T7Ol/AzWVhNxZ79hPe/mBfv1bGau/LqIYOm2zxGlgm9hBHOTmWGqNYDwr9LNQ==", + "node_modules/@injectivelabs/sdk-ts/node_modules/bn.js": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", + "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==" + }, + "node_modules/@injectivelabs/sdk-ts/node_modules/ethereumjs-util": { + "version": "7.1.5", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.5.tgz", + "integrity": "sha512-SDl5kKrQAudFBUe5OJM9Ac6WmMyYmXX/6sTmLZ3ffG2eY6ZIGBes3pEDxNN6V72WyOw4CPD5RomKdsa8DAAwLg==", "dependencies": { - "@cosmjs/stream": "^0.29.5", - "isomorphic-ws": "^4.0.1", - "ws": "^7", - "xstream": "^11.14.0" + "@types/bn.js": "^5.1.0", + "bn.js": "^5.1.2", + "create-hash": "^1.1.2", + "ethereum-cryptography": "^0.1.3", + "rlp": "^2.2.4" + }, + "engines": { + "node": ">=10.0.0" } }, - "node_modules/@cosmjs/socket/node_modules/ws": { - "version": "7.5.9", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz", - "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==", + "node_modules/@injectivelabs/sdk-ts/node_modules/follow-redirects": { + "version": "1.15.2", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", + "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], "engines": { - "node": ">=8.3.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": "^5.0.2" + "node": ">=4.0" }, "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { + "debug": { "optional": true } } }, - "node_modules/@cosmjs/stargate": { - "version": "0.29.5", - "resolved": "https://registry.npmjs.org/@cosmjs/stargate/-/stargate-0.29.5.tgz", - "integrity": "sha512-hjEv8UUlJruLrYGJcUZXM/CziaINOKwfVm2BoSdUnNTMxGvY/jC1ABHKeZUYt9oXHxEJ1n9+pDqzbKc8pT0nBw==", + "node_modules/@injectivelabs/sdk-ts/node_modules/form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", "dependencies": { - "@confio/ics23": "^0.6.8", - "@cosmjs/amino": "^0.29.5", - "@cosmjs/encoding": "^0.29.5", - "@cosmjs/math": "^0.29.5", - "@cosmjs/proto-signing": "^0.29.5", - "@cosmjs/stream": "^0.29.5", - "@cosmjs/tendermint-rpc": "^0.29.5", - "@cosmjs/utils": "^0.29.5", - "cosmjs-types": "^0.5.2", - "long": "^4.0.0", - "protobufjs": "~6.11.3", - "xstream": "^11.14.0" + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" } }, - "node_modules/@cosmjs/stargate/node_modules/cosmjs-types": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/cosmjs-types/-/cosmjs-types-0.5.2.tgz", - "integrity": "sha512-zxCtIJj8v3Di7s39uN4LNcN3HIE1z0B9Z0SPE8ZNQR0oSzsuSe1ACgxoFkvhkS7WBasCAFcglS11G2hyfd5tPg==", + "node_modules/@injectivelabs/sdk-ts/node_modules/graphql": { + "version": "16.6.0", + "resolved": "https://registry.npmjs.org/graphql/-/graphql-16.6.0.tgz", + "integrity": "sha512-KPIBPDlW7NxrbT/eh4qPXz5FiFdL5UbaA0XUNz2Rp3Z3hqBSkbj0GVjwFDztsWVauZUWsbKHgMg++sk8UX0bkw==", + "engines": { + "node": "^12.22.0 || ^14.16.0 || ^16.0.0 || >=17.0.0" + } + }, + "node_modules/@injectivelabs/sdk-ts/node_modules/rxjs": { + "version": "7.8.0", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.0.tgz", + "integrity": "sha512-F2+gxDshqmIub1KdvZkaEfGDwLNpPvk9Fs6LD/MyQxNgMds/WH9OdDDXOmxUZpME+iSK3rQCctkL0DYyytUqMg==", "dependencies": { - "long": "^4.0.0", - "protobufjs": "~6.11.2" + "tslib": "^2.1.0" } }, - "node_modules/@cosmjs/stargate/node_modules/protobufjs": { - "version": "6.11.3", - "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-6.11.3.tgz", - "integrity": "sha512-xL96WDdCZYdU7Slin569tFX712BxsxslWwAfAhCYjQKGTq7dAU91Lomy6nLLhh/dyGhk/YH4TwTSRxTzhuHyZg==", + "node_modules/@injectivelabs/sdk-ts/node_modules/secp256k1": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-4.0.3.tgz", + "integrity": "sha512-NLZVf+ROMxwtEj3Xa562qgv2BK5e2WNmXPiOdVIPLgs6lyTzMvBq0aWTYMI5XCP9jZMVKOcqZLw/Wc4vDkuxhA==", "hasInstallScript": true, "dependencies": { - "@protobufjs/aspromise": "^1.1.2", - "@protobufjs/base64": "^1.1.2", - "@protobufjs/codegen": "^2.0.4", - "@protobufjs/eventemitter": "^1.1.0", - "@protobufjs/fetch": "^1.1.0", - "@protobufjs/float": "^1.0.2", - "@protobufjs/inquire": "^1.1.0", - "@protobufjs/path": "^1.1.2", - "@protobufjs/pool": "^1.1.0", - "@protobufjs/utf8": "^1.1.0", - "@types/long": "^4.0.1", - "@types/node": ">=13.7.0", - "long": "^4.0.0" + "elliptic": "^6.5.4", + "node-addon-api": "^2.0.0", + "node-gyp-build": "^4.2.0" }, - "bin": { - "pbjs": "bin/pbjs", - "pbts": "bin/pbts" + "engines": { + "node": ">=10.0.0" } }, - "node_modules/@cosmjs/stream": { - "version": "0.29.5", - "resolved": "https://registry.npmjs.org/@cosmjs/stream/-/stream-0.29.5.tgz", - "integrity": "sha512-TToTDWyH1p05GBtF0Y8jFw2C+4783ueDCmDyxOMM6EU82IqpmIbfwcdMOCAm0JhnyMh+ocdebbFvnX/sGKzRAA==", - "dependencies": { - "xstream": "^11.14.0" - } + "node_modules/@injectivelabs/sdk-ts/node_modules/tslib": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz", + "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==" }, - "node_modules/@cosmjs/tendermint-rpc": { - "version": "0.29.5", - "resolved": "https://registry.npmjs.org/@cosmjs/tendermint-rpc/-/tendermint-rpc-0.29.5.tgz", - "integrity": "sha512-ar80twieuAxsy0x2za/aO3kBr2DFPAXDmk2ikDbmkda+qqfXgl35l9CVAAjKRqd9d+cRvbQyb5M4wy6XQpEV6w==", + "node_modules/@injectivelabs/test-utils": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/@injectivelabs/test-utils/-/test-utils-1.10.0.tgz", + "integrity": "sha512-OS1AUq3Wu4nxhchpOa/zjAp2rgq5aKniLnNt07RzQQAM+4mPw3PcF7zWuClkUFAgVCxlpvFnV1f6LyzXW46mGQ==", + "hasInstallScript": true, "dependencies": { - "@cosmjs/crypto": "^0.29.5", - "@cosmjs/encoding": "^0.29.5", - "@cosmjs/json-rpc": "^0.29.5", - "@cosmjs/math": "^0.29.5", - "@cosmjs/socket": "^0.29.5", - "@cosmjs/stream": "^0.29.5", - "@cosmjs/utils": "^0.29.5", - "axios": "^0.21.2", - "readonly-date": "^1.0.0", - "xstream": "^11.14.0" + "axios": "^0.21.1", + "bignumber.js": "^9.0.1", + "link-module-alias": "^1.2.0", + "shx": "^0.3.2", + "snakecase-keys": "^5.1.2", + "store2": "^2.12.0" } }, - "node_modules/@cosmjs/tendermint-rpc/node_modules/axios": { + "node_modules/@injectivelabs/test-utils/node_modules/axios": { "version": "0.21.4", "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.4.tgz", "integrity": "sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==", @@ -1457,7 +1525,15 @@ "follow-redirects": "^1.14.0" } }, - "node_modules/@cosmjs/tendermint-rpc/node_modules/follow-redirects": { + "node_modules/@injectivelabs/test-utils/node_modules/bignumber.js": { + "version": "9.1.1", + "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.1.1.tgz", + "integrity": "sha512-pHm4LsMJ6lzgNGVfZHjMoO8sdoRhOzOH4MLmY65Jg70bpxCKu5iOHNJyfF6OyvYw7t8Fpf35RuzUyqnQsj8Vig==", + "engines": { + "node": "*" + } + }, + "node_modules/@injectivelabs/test-utils/node_modules/follow-redirects": { "version": "1.15.2", "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==", @@ -1476,1409 +1552,1269 @@ } } }, - "node_modules/@cosmjs/utils": { - "version": "0.29.5", - "resolved": "https://registry.npmjs.org/@cosmjs/utils/-/utils-0.29.5.tgz", - "integrity": "sha512-m7h+RXDUxOzEOGt4P+3OVPX7PuakZT3GBmaM/Y2u+abN3xZkziykD/NvedYFvvCCdQo714XcGl33bwifS9FZPQ==" + "node_modules/@injectivelabs/token-metadata": { + "version": "1.10.4", + "resolved": "https://registry.npmjs.org/@injectivelabs/token-metadata/-/token-metadata-1.10.4.tgz", + "integrity": "sha512-2uCRkL5pYaLSziva9w4cpH0AJ+JMgg2irA22dEkM5JPK9kLB4rv0gey1Us7EzcX6WnY4RRO3aN2e0uTG08WVzA==", + "hasInstallScript": true, + "dependencies": { + "@injectivelabs/exceptions": "^1.10.0", + "@injectivelabs/networks": "^1.10.0", + "@injectivelabs/ts-types": "^1.10.0", + "@injectivelabs/utils": "^1.10.0", + "@types/lodash.values": "^4.3.6", + "copyfiles": "^2.4.1", + "jsonschema": "^1.4.0", + "link-module-alias": "^1.2.0", + "lodash": "^4.17.21", + "lodash.values": "^4.3.0", + "shx": "^0.3.2" + } }, - "node_modules/@cspotcode/source-map-support": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", - "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", - "dev": true, + "node_modules/@injectivelabs/ts-types": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/@injectivelabs/ts-types/-/ts-types-1.10.0.tgz", + "integrity": "sha512-2PczKP93fmkg4HIbg1ZWO115GF1oUQaCkc34SRDYDZ9oGjAnr3rV31tju4DW9uxT8eVb2olxqUy71LVHGD7AUA==", + "hasInstallScript": true, "dependencies": { - "@jridgewell/trace-mapping": "0.3.9" - }, - "engines": { - "node": ">=12" + "link-module-alias": "^1.2.0", + "shx": "^0.3.2" } }, - "node_modules/@ethereumjs/common": { - "version": "2.6.5", - "resolved": "https://registry.npmjs.org/@ethereumjs/common/-/common-2.6.5.tgz", - "integrity": "sha512-lRyVQOeCDaIVtgfbowla32pzeDv2Obr8oR8Put5RdUBNRGr1VGPGQNGP6elWIpgK3YdpzqTOh4GyUGOureVeeA==", + "node_modules/@injectivelabs/utils": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/@injectivelabs/utils/-/utils-1.10.0.tgz", + "integrity": "sha512-r7/z1+0Xd6XSYnLf+IO2ydQ0VRFBw2ETxWdvvkpsror3uYLvaAcuCjkRhNsOYM5R4VPCER+0TBm6sm5A1ahiQw==", + "hasInstallScript": true, "dependencies": { - "crc-32": "^1.2.0", - "ethereumjs-util": "^7.1.5" + "@injectivelabs/exceptions": "^1.10.0", + "@injectivelabs/ts-types": "^1.10.0", + "axios": "^0.21.1", + "bignumber.js": "^9.0.1", + "http-status-codes": "^2.2.0", + "link-module-alias": "^1.2.0", + "shx": "^0.3.2", + "snakecase-keys": "^5.1.2", + "store2": "^2.12.0" } }, - "node_modules/@ethereumjs/common/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==", + "node_modules/@injectivelabs/utils/node_modules/axios": { + "version": "0.21.4", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.4.tgz", + "integrity": "sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==", "dependencies": { - "@types/node": "*" + "follow-redirects": "^1.14.0" } }, - "node_modules/@ethereumjs/common/node_modules/bn.js": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", - "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==" + "node_modules/@injectivelabs/utils/node_modules/bignumber.js": { + "version": "9.1.1", + "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.1.1.tgz", + "integrity": "sha512-pHm4LsMJ6lzgNGVfZHjMoO8sdoRhOzOH4MLmY65Jg70bpxCKu5iOHNJyfF6OyvYw7t8Fpf35RuzUyqnQsj8Vig==", + "engines": { + "node": "*" + } }, - "node_modules/@ethereumjs/common/node_modules/ethereumjs-util": { - "version": "7.1.5", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.5.tgz", - "integrity": "sha512-SDl5kKrQAudFBUe5OJM9Ac6WmMyYmXX/6sTmLZ3ffG2eY6ZIGBes3pEDxNN6V72WyOw4CPD5RomKdsa8DAAwLg==", - "dependencies": { - "@types/bn.js": "^5.1.0", - "bn.js": "^5.1.2", - "create-hash": "^1.1.2", - "ethereum-cryptography": "^0.1.3", - "rlp": "^2.2.4" + "node_modules/@injectivelabs/utils/node_modules/follow-redirects": { + "version": "1.15.2", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", + "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "engines": { + "node": ">=4.0" }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz", + "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==", + "dev": true, "engines": { - "node": ">=10.0.0" + "node": ">=6.0.0" } }, - "node_modules/@ethereumjs/tx": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/@ethereumjs/tx/-/tx-3.5.2.tgz", - "integrity": "sha512-gQDNJWKrSDGu2w7w0PzVXVBNMzb7wwdDOmOqczmhNjqFxFuIbhVJDwiGEnxFNC2/b8ifcZzY7MLcluizohRzNw==", + "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 + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", + "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", + "dev": true, "dependencies": { - "@ethereumjs/common": "^2.6.4", - "ethereumjs-util": "^7.1.5" + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" } }, - "node_modules/@ethereumjs/tx/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==", + "node_modules/@metamask/eth-sig-util": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@metamask/eth-sig-util/-/eth-sig-util-4.0.1.tgz", + "integrity": "sha512-tghyZKLHZjcdlDqCA3gNZmLeR0XvOE9U1qoQO9ohyAZT6Pya+H9vkBPcsyXytmYLNgVoin7CKCmweo/R43V+tQ==", "dependencies": { - "@types/node": "*" + "ethereumjs-abi": "^0.6.8", + "ethereumjs-util": "^6.2.1", + "ethjs-util": "^0.1.6", + "tweetnacl": "^1.0.3", + "tweetnacl-util": "^0.15.1" + }, + "engines": { + "node": ">=12.0.0" } }, - "node_modules/@ethereumjs/tx/node_modules/bn.js": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", - "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==" + "node_modules/@metamask/eth-sig-util/node_modules/tweetnacl": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.3.tgz", + "integrity": "sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==" }, - "node_modules/@ethereumjs/tx/node_modules/ethereumjs-util": { - "version": "7.1.5", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.5.tgz", - "integrity": "sha512-SDl5kKrQAudFBUe5OJM9Ac6WmMyYmXX/6sTmLZ3ffG2eY6ZIGBes3pEDxNN6V72WyOw4CPD5RomKdsa8DAAwLg==", + "node_modules/@morgan-stanley/ts-mocking-bird": { + "version": "0.6.4", + "resolved": "https://registry.npmjs.org/@morgan-stanley/ts-mocking-bird/-/ts-mocking-bird-0.6.4.tgz", + "integrity": "sha512-57VJIflP8eR2xXa9cD1LUawh+Gh+BVQfVu0n6GALyg/AqV/Nz25kDRvws3i9kIe1PTrbsZZOYpsYp6bXPd6nVA==", "dependencies": { - "@types/bn.js": "^5.1.0", - "bn.js": "^5.1.2", - "create-hash": "^1.1.2", - "ethereum-cryptography": "^0.1.3", - "rlp": "^2.2.4" + "lodash": "^4.17.16", + "uuid": "^7.0.3" }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/@ethersproject/abi": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/abi/-/abi-5.7.0.tgz", - "integrity": "sha512-351ktp42TiRcYB3H1OP8yajPeAQstMW/yCFokj/AthP9bLHzQFPlOrxOcwYEDkUAICmOHljvN4K39OMTMUa9RA==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + "peerDependencies": { + "jasmine": "2.x || 3.x || 4.x", + "jest": "26.x || 27.x || 28.x", + "typescript": ">=4.2" + }, + "peerDependenciesMeta": { + "jasmine": { + "optional": true }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" + "jest": { + "optional": true } - ], - "dependencies": { - "@ethersproject/address": "^5.7.0", - "@ethersproject/bignumber": "^5.7.0", - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/constants": "^5.7.0", - "@ethersproject/hash": "^5.7.0", - "@ethersproject/keccak256": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/properties": "^5.7.0", - "@ethersproject/strings": "^5.7.0" } }, - "node_modules/@ethersproject/abstract-provider": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/abstract-provider/-/abstract-provider-5.7.0.tgz", - "integrity": "sha512-R41c9UkchKCpAqStMYUpdunjo3pkEvZC3FAwZn5S5MGbXoMQOHIdHItezTETxAO5bevtMApSyEhn9+CHcDsWBw==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/bignumber": "^5.7.0", - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/networks": "^5.7.0", - "@ethersproject/properties": "^5.7.0", - "@ethersproject/transactions": "^5.7.0", - "@ethersproject/web": "^5.7.0" + "node_modules/@morgan-stanley/ts-mocking-bird/node_modules/uuid": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-7.0.3.tgz", + "integrity": "sha512-DPSke0pXhTZgoF/d+WSt2QaKMCFSfx7QegxEWT+JOuHF5aWrKEn0G+ztjuJg/gG8/ItK+rbPCD/yNv8yyih6Cg==", + "bin": { + "uuid": "dist/bin/uuid" } }, - "node_modules/@ethersproject/abstract-signer": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/abstract-signer/-/abstract-signer-5.7.0.tgz", - "integrity": "sha512-a16V8bq1/Cz+TGCkE2OPMTOUDLS3grCpdjoJCYNnVBbdYEMSgKrU0+B90s8b6H+ByYTBZN7a3g76jdIJi7UfKQ==", + "node_modules/@noble/ed25519": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/@noble/ed25519/-/ed25519-1.7.3.tgz", + "integrity": "sha512-iR8GBkDt0Q3GyaVcIu7mSsVIqnFbkbRzGLWlvhwunacoLwt4J3swfKhfaM6rN6WY+TBGoYT1GtT1mIh2/jGbRQ==", "funding": [ { "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" + "url": "https://paulmillr.com/funding/" } - ], - "dependencies": { - "@ethersproject/abstract-provider": "^5.7.0", - "@ethersproject/bignumber": "^5.7.0", - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/properties": "^5.7.0" - } + ] }, - "node_modules/@ethersproject/address": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/address/-/address-5.7.0.tgz", - "integrity": "sha512-9wYhYt7aghVGo758POM5nqcOMaE168Q6aRLJZwUmiqSrAungkG74gSSeKEIR7ukixesdRZGPgVqme6vmxs1fkA==", + "node_modules/@noble/hashes": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.3.0.tgz", + "integrity": "sha512-ilHEACi9DwqJB0pw7kv+Apvh50jiiSyR/cQ3y4W7lOR5mhvn/50FLUfsnfJz0BDZtl/RR16kXvptiv6q1msYZg==", "funding": [ { "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" + "url": "https://paulmillr.com/funding/" } - ], - "dependencies": { - "@ethersproject/bignumber": "^5.7.0", - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/keccak256": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/rlp": "^5.7.0" - } + ] }, - "node_modules/@ethersproject/base64": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/base64/-/base64-5.7.0.tgz", - "integrity": "sha512-Dr8tcHt2mEbsZr/mwTPIQAf3Ai0Bks/7gTw9dSqk1mQvhW3XvRlmDJr/4n+wg1JmCl16NZue17CDh8xb/vZ0sQ==", + "node_modules/@noble/secp256k1": { + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/@noble/secp256k1/-/secp256k1-1.7.1.tgz", + "integrity": "sha512-hOUk6AyBFmqVrv7k5WAw/LpszxVbj9gGN4JRkIX52fdFAj1UA61KXmZDvqVEm+pOyec3+fIeZB02LYa/pWOArw==", "funding": [ { "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" + "url": "https://paulmillr.com/funding/" } - ], - "dependencies": { - "@ethersproject/bytes": "^5.7.0" - } + ] }, - "node_modules/@ethersproject/basex": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/@ethersproject/basex/-/basex-5.4.0.tgz", - "integrity": "sha512-J07+QCVJ7np2bcpxydFVf/CuYo9mZ7T73Pe7KQY4c1lRlrixMeblauMxHXD0MPwFmUHZIILDNViVkykFBZylbg==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "peer": true, - "dependencies": { - "@ethersproject/bytes": "^5.4.0", - "@ethersproject/properties": "^5.4.0" - } + "node_modules/@openzeppelin/contracts": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/@openzeppelin/contracts/-/contracts-4.3.1.tgz", + "integrity": "sha512-QjgbPPlmDK2clK1hzjw2ROfY8KA5q+PfhDUUxZFEBCZP9fi6d5FuNoh/Uq0oCTMEKPmue69vhX2jcl0N/tFKGw==", + "dev": true }, - "node_modules/@ethersproject/bignumber": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/bignumber/-/bignumber-5.7.0.tgz", - "integrity": "sha512-n1CAdIHRWjSucQO3MC1zPSVgV/6dy/fjL9pMrPP9peL+QxEg9wOsVqwD4+818B6LUEtaXzVHQiuivzRoxPxUGw==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], + "node_modules/@project-serum/anchor": { + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/@project-serum/anchor/-/anchor-0.25.0.tgz", + "integrity": "sha512-E6A5Y/ijqpfMJ5psJvbw0kVTzLZFUcOFgs6eSM2M2iWE1lVRF18T6hWZVNl6zqZsoz98jgnNHtVGJMs+ds9A7A==", "dependencies": { - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "bn.js": "^5.2.1" + "@project-serum/borsh": "^0.2.5", + "@solana/web3.js": "^1.36.0", + "base64-js": "^1.5.1", + "bn.js": "^5.1.2", + "bs58": "^4.0.1", + "buffer-layout": "^1.2.2", + "camelcase": "^5.3.1", + "cross-fetch": "^3.1.5", + "crypto-hash": "^1.3.0", + "eventemitter3": "^4.0.7", + "js-sha256": "^0.9.0", + "pako": "^2.0.3", + "snake-case": "^3.0.4", + "superstruct": "^0.15.4", + "toml": "^3.0.0" + }, + "engines": { + "node": ">=11" } }, - "node_modules/@ethersproject/bignumber/node_modules/bn.js": { + "node_modules/@project-serum/anchor/node_modules/bn.js": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==" }, - "node_modules/@ethersproject/bytes": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/bytes/-/bytes-5.7.0.tgz", - "integrity": "sha512-nsbxwgFXWh9NyYWo+U8atvmMsSdKJprTcICAkvbBffT75qDocbuggBU0SJiVK2MuTrp0q+xvLkTnGMPK1+uA9A==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/logger": "^5.7.0" + "node_modules/@project-serum/anchor/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/@ethersproject/constants": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/constants/-/constants-5.7.0.tgz", - "integrity": "sha512-DHI+y5dBNvkpYUMiRQyxRBYBefZkJfo70VUkUAsRjcPs47muV9evftfZ0PJVCXYbAiCgght0DtcF9srFQmIgWA==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], + "node_modules/@project-serum/anchor/node_modules/cross-fetch": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.5.tgz", + "integrity": "sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw==", "dependencies": { - "@ethersproject/bignumber": "^5.7.0" + "node-fetch": "2.6.7" } }, - "node_modules/@ethersproject/hash": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/hash/-/hash-5.7.0.tgz", - "integrity": "sha512-qX5WrQfnah1EFnO5zJv1v46a8HW0+E5xuBBDTwMFZLuVTx0tbU2kkx15NqdjxecrLGatQN9FGQKpb1FKdHCt+g==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], + "node_modules/@project-serum/anchor/node_modules/dot-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz", + "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==", "dependencies": { - "@ethersproject/abstract-signer": "^5.7.0", - "@ethersproject/address": "^5.7.0", - "@ethersproject/base64": "^5.7.0", - "@ethersproject/bignumber": "^5.7.0", - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/keccak256": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/properties": "^5.7.0", - "@ethersproject/strings": "^5.7.0" + "no-case": "^3.0.4", + "tslib": "^2.0.3" } }, - "node_modules/@ethersproject/keccak256": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/keccak256/-/keccak256-5.7.0.tgz", - "integrity": "sha512-2UcPboeL/iW+pSg6vZ6ydF8tCnv3Iu/8tUmLLzWWGzxWKFFqOBQFLo6uLUv6BDrLgCDfN28RJ/wtByx+jZ4KBg==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" + "node_modules/@project-serum/anchor/node_modules/eventemitter3": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==" + }, + "node_modules/@project-serum/anchor/node_modules/lower-case": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", + "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", + "dependencies": { + "tslib": "^2.0.3" + } + }, + "node_modules/@project-serum/anchor/node_modules/no-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", + "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", + "dependencies": { + "lower-case": "^2.0.2", + "tslib": "^2.0.3" + } + }, + "node_modules/@project-serum/anchor/node_modules/node-fetch": { + "version": "2.6.7", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", + "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true } - ], + } + }, + "node_modules/@project-serum/anchor/node_modules/pako": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/pako/-/pako-2.1.0.tgz", + "integrity": "sha512-w+eufiZ1WuJYgPXbV/PO3NCMEc3xqylkKHzp8bxp1uW4qaSNQUkwmLLEc3kKsfz8lpV1F8Ht3U1Cm+9Srog2ug==" + }, + "node_modules/@project-serum/anchor/node_modules/snake-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/snake-case/-/snake-case-3.0.4.tgz", + "integrity": "sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==", "dependencies": { - "@ethersproject/bytes": "^5.7.0", - "js-sha3": "0.8.0" + "dot-case": "^3.0.4", + "tslib": "^2.0.3" } }, - "node_modules/@ethersproject/keccak256/node_modules/js-sha3": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.8.0.tgz", - "integrity": "sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q==" + "node_modules/@project-serum/anchor/node_modules/tslib": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz", + "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==" }, - "node_modules/@ethersproject/logger": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/logger/-/logger-5.7.0.tgz", - "integrity": "sha512-0odtFdXu/XHtjQXJYA3u9G0G8btm0ND5Cu8M7i5vhEcE8/HmF4Lbdqanwyv4uQTr2tx6b7fQRmgLrsnpQlmnig==", + "node_modules/@project-serum/borsh": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/@project-serum/borsh/-/borsh-0.2.5.tgz", + "integrity": "sha512-UmeUkUoKdQ7rhx6Leve1SssMR/Ghv8qrEiyywyxSWg7ooV7StdpPBhciiy5eB3T0qU1BXvdRNC8TdrkxK7WC5Q==", + "dependencies": { + "bn.js": "^5.1.2", + "buffer-layout": "^1.2.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@solana/web3.js": "^1.2.0" + } + }, + "node_modules/@project-serum/borsh/node_modules/bn.js": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", + "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==" + }, + "node_modules/@protobufjs/aspromise": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", + "integrity": "sha1-m4sMxmPWaafY9vXQiToU00jzD78=" + }, + "node_modules/@protobufjs/base64": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz", + "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==" + }, + "node_modules/@protobufjs/codegen": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz", + "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==" + }, + "node_modules/@protobufjs/eventemitter": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz", + "integrity": "sha1-NVy8mLr61ZePntCV85diHx0Ga3A=" + }, + "node_modules/@protobufjs/fetch": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz", + "integrity": "sha1-upn7WYYUr2VwDBYZ/wbUVLDYTEU=", + "dependencies": { + "@protobufjs/aspromise": "^1.1.1", + "@protobufjs/inquire": "^1.1.0" + } + }, + "node_modules/@protobufjs/float": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz", + "integrity": "sha1-Xp4avctz/Ap8uLKR33jIy9l7h9E=" + }, + "node_modules/@protobufjs/inquire": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz", + "integrity": "sha1-/yAOPnzyQp4tyvwRQIKOjMY48Ik=" + }, + "node_modules/@protobufjs/path": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz", + "integrity": "sha1-bMKyDFya1q0NzP0hynZz2Nf79o0=" + }, + "node_modules/@protobufjs/pool": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz", + "integrity": "sha1-Cf0V8tbTq/qbZbw2ZQbWrXhG/1Q=" + }, + "node_modules/@protobufjs/utf8": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", + "integrity": "sha1-p3c2C1s5oaLlEG+OhY8v0tBgxXA=" + }, + "node_modules/@scure/base": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@scure/base/-/base-1.1.1.tgz", + "integrity": "sha512-ZxOhsSyxYwLJj3pLZCefNitxsj093tb2vq90mp2txoYeBqbcjDjqFhyM8eUjq/uFm6zJ+mUuqxlS2FkuSY1MTA==", "funding": [ { "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" + "url": "https://paulmillr.com/funding/" } ] }, - "node_modules/@ethersproject/networks": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/@ethersproject/networks/-/networks-5.7.1.tgz", - "integrity": "sha512-n/MufjFYv3yFcUyfhnXotyDlNdFb7onmkSy8aQERi2PjNcnWQ66xXxa3XlS8nCcA8aJKJjIIMNJTC7tu80GwpQ==", + "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://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" + "url": "https://paulmillr.com/funding/" } ], "dependencies": { - "@ethersproject/logger": "^5.7.0" + "@noble/hashes": "~1.1.1", + "@scure/base": "~1.1.0" } }, - "node_modules/@ethersproject/properties": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/properties/-/properties-5.7.0.tgz", - "integrity": "sha512-J87jy8suntrAkIZtecpxEPxY//szqr1mlBaYlQ0r4RCaiD2hjheqF9s1LVE8vVuJCXisjIP+JgtK/Do54ej4Sw==", + "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://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" + "url": "https://paulmillr.com/funding/" } - ], + ] + }, + "node_modules/@solana/buffer-layout": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@solana/buffer-layout/-/buffer-layout-4.0.1.tgz", + "integrity": "sha512-E1ImOIAD1tBZFRdjeM4/pzTiTApC0AOBGwyAMS4fwIodCWArzJ3DWdoh8cKxeFM2fElkxBh2Aqts1BPC373rHA==", "dependencies": { - "@ethersproject/logger": "^5.7.0" + "buffer": "~6.0.3" + }, + "engines": { + "node": ">=5.10" } }, - "node_modules/@ethersproject/providers": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/@ethersproject/providers/-/providers-5.4.1.tgz", - "integrity": "sha512-p06eiFKz8nu/5Ju0kIX024gzEQIgE5pvvGrBCngpyVjpuLtUIWT3097Agw4mTn9/dEA0FMcfByzFqacBMSgCVg==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "peer": true, + "node_modules/@solana/buffer-layout-utils": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@solana/buffer-layout-utils/-/buffer-layout-utils-0.2.0.tgz", + "integrity": "sha512-szG4sxgJGktbuZYDg2FfNmkMi0DYQoVjN2h7ta1W1hPrwzarcFLBq9UpX1UjNXsNpT9dn+chgprtWGioUAr4/g==", "dependencies": { - "@ethersproject/abstract-provider": "^5.4.0", - "@ethersproject/abstract-signer": "^5.4.0", - "@ethersproject/address": "^5.4.0", - "@ethersproject/basex": "^5.4.0", - "@ethersproject/bignumber": "^5.4.0", - "@ethersproject/bytes": "^5.4.0", - "@ethersproject/constants": "^5.4.0", - "@ethersproject/hash": "^5.4.0", - "@ethersproject/logger": "^5.4.0", - "@ethersproject/networks": "^5.4.0", - "@ethersproject/properties": "^5.4.0", - "@ethersproject/random": "^5.4.0", - "@ethersproject/rlp": "^5.4.0", - "@ethersproject/sha2": "^5.4.0", - "@ethersproject/strings": "^5.4.0", - "@ethersproject/transactions": "^5.4.0", - "@ethersproject/web": "^5.4.0", - "bech32": "1.1.4", - "ws": "7.4.6" + "@solana/buffer-layout": "^4.0.0", + "@solana/web3.js": "^1.32.0", + "bigint-buffer": "^1.1.5", + "bignumber.js": "^9.0.1" + }, + "engines": { + "node": ">= 10" } }, - "node_modules/@ethersproject/providers/node_modules/bech32": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/bech32/-/bech32-1.1.4.tgz", - "integrity": "sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ==", - "peer": true - }, - "node_modules/@ethersproject/providers/node_modules/ws": { - "version": "7.4.6", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz", - "integrity": "sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==", - "peer": true, + "node_modules/@solana/buffer-layout-utils/node_modules/bignumber.js": { + "version": "9.1.1", + "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.1.1.tgz", + "integrity": "sha512-pHm4LsMJ6lzgNGVfZHjMoO8sdoRhOzOH4MLmY65Jg70bpxCKu5iOHNJyfF6OyvYw7t8Fpf35RuzUyqnQsj8Vig==", "engines": { - "node": ">=8.3.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": "^5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } + "node": "*" } }, - "node_modules/@ethersproject/random": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/@ethersproject/random/-/random-5.4.0.tgz", - "integrity": "sha512-pnpWNQlf0VAZDEOVp1rsYQosmv2o0ITS/PecNw+mS2/btF8eYdspkN0vIXrCMtkX09EAh9bdk8GoXmFXM1eAKw==", + "node_modules/@solana/buffer-layout/node_modules/buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", "funding": [ { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + "type": "github", + "url": "https://github.com/sponsors/feross" }, { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" } ], - "peer": true, "dependencies": { - "@ethersproject/bytes": "^5.4.0", - "@ethersproject/logger": "^5.4.0" + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" } }, - "node_modules/@ethersproject/rlp": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/rlp/-/rlp-5.7.0.tgz", - "integrity": "sha512-rBxzX2vK8mVF7b0Tol44t5Tb8gomOHkj5guL+HhzQ1yBh/ydjGnpw6at+X6Iw0Kp3OzzzkcKp8N9r0W4kYSs9w==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], + "node_modules/@solana/spl-token": { + "version": "0.3.7", + "resolved": "https://registry.npmjs.org/@solana/spl-token/-/spl-token-0.3.7.tgz", + "integrity": "sha512-bKGxWTtIw6VDdCBngjtsGlKGLSmiu/8ghSt/IOYJV24BsymRbgq7r12GToeetpxmPaZYLddKwAz7+EwprLfkfg==", "dependencies": { - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/logger": "^5.7.0" + "@solana/buffer-layout": "^4.0.0", + "@solana/buffer-layout-utils": "^0.2.0", + "buffer": "^6.0.3" + }, + "engines": { + "node": ">=16" + }, + "peerDependencies": { + "@solana/web3.js": "^1.47.4" } }, - "node_modules/@ethersproject/sha2": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/@ethersproject/sha2/-/sha2-5.4.0.tgz", - "integrity": "sha512-siheo36r1WD7Cy+bDdE1BJ8y0bDtqXCOxRMzPa4bV1TGt/eTUUt03BHoJNB6reWJD8A30E/pdJ8WFkq+/uz4Gg==", + "node_modules/@solana/spl-token/node_modules/buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", "funding": [ { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + "type": "github", + "url": "https://github.com/sponsors/feross" }, { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" } ], - "peer": true, "dependencies": { - "@ethersproject/bytes": "^5.4.0", - "@ethersproject/logger": "^5.4.0", - "hash.js": "1.1.7" + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" } }, - "node_modules/@ethersproject/sha2/node_modules/hash.js": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", - "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", - "peer": true, + "node_modules/@solana/web3.js": { + "version": "1.74.0", + "resolved": "https://registry.npmjs.org/@solana/web3.js/-/web3.js-1.74.0.tgz", + "integrity": "sha512-RKZyPqizPCxmpMGfpu4fuplNZEWCrhRBjjVstv5QnAJvgln1jgOfgui+rjl1ExnqDnWKg9uaZ5jtGROH/cwabg==", "dependencies": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.1" + "@babel/runtime": "^7.12.5", + "@noble/ed25519": "^1.7.0", + "@noble/hashes": "^1.1.2", + "@noble/secp256k1": "^1.6.3", + "@solana/buffer-layout": "^4.0.0", + "agentkeepalive": "^4.2.1", + "bigint-buffer": "^1.1.5", + "bn.js": "^5.0.0", + "borsh": "^0.7.0", + "bs58": "^4.0.1", + "buffer": "6.0.1", + "fast-stable-stringify": "^1.0.0", + "jayson": "^3.4.4", + "node-fetch": "^2.6.7", + "rpc-websockets": "^7.5.1", + "superstruct": "^0.14.2" } }, - "node_modules/@ethersproject/signing-key": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/signing-key/-/signing-key-5.7.0.tgz", - "integrity": "sha512-MZdy2nL3wO0u7gkB4nA/pEf8lu1TlFswPNmy8AiYkfKTdO6eXBJyUdmHO/ehm/htHw9K/qF8ujnTyUAD+Ry54Q==", + "node_modules/@solana/web3.js/node_modules/bn.js": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", + "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==" + }, + "node_modules/@solana/web3.js/node_modules/buffer": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.1.tgz", + "integrity": "sha512-rVAXBwEcEoYtxnHSO5iWyhzV/O1WMtkUYWlfdLS7FjU4PnSJJHEfHXi/uHPI5EwltmOA794gN3bm3/pzuctWjQ==", "funding": [ { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + "type": "github", + "url": "https://github.com/sponsors/feross" }, { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" } ], "dependencies": { - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/properties": "^5.7.0", - "bn.js": "^5.2.1", - "elliptic": "6.5.4", - "hash.js": "1.1.7" + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" } }, - "node_modules/@ethersproject/signing-key/node_modules/bn.js": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", - "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==" + "node_modules/@solana/web3.js/node_modules/eventemitter3": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==" }, - "node_modules/@ethersproject/signing-key/node_modules/hash.js": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", - "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", + "node_modules/@solana/web3.js/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==", "dependencies": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.1" + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } } }, - "node_modules/@ethersproject/strings": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/strings/-/strings-5.7.0.tgz", - "integrity": "sha512-/9nu+lj0YswRNSH0NXYqrh8775XNyEdUQAuf3f+SmOrnVewcJ5SBNAjF7lpgehKi4abvNNXyf+HX86czCdJ8Mg==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], + "node_modules/@solana/web3.js/node_modules/rpc-websockets": { + "version": "7.5.1", + "resolved": "https://registry.npmjs.org/rpc-websockets/-/rpc-websockets-7.5.1.tgz", + "integrity": "sha512-kGFkeTsmd37pHPMaHIgN1LVKXMi0JD782v4Ds9ZKtLlwdTKjn+CxM9A9/gLT2LaOuEcEFGL98h1QWQtlOIdW0w==", "dependencies": { - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/constants": "^5.7.0", - "@ethersproject/logger": "^5.7.0" + "@babel/runtime": "^7.17.2", + "eventemitter3": "^4.0.7", + "uuid": "^8.3.2", + "ws": "^8.5.0" + }, + "funding": { + "type": "paypal", + "url": "https://paypal.me/kozjak" + }, + "optionalDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" } }, - "node_modules/@ethersproject/transactions": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/transactions/-/transactions-5.7.0.tgz", - "integrity": "sha512-kmcNicCp1lp8qanMTC3RIikGgoJ80ztTyvtsFvCYpSCfkjhD0jZ2LOrnbcuxuToLIUYYf+4XwD1rP+B/erDIhQ==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/address": "^5.7.0", - "@ethersproject/bignumber": "^5.7.0", - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/constants": "^5.7.0", - "@ethersproject/keccak256": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/properties": "^5.7.0", - "@ethersproject/rlp": "^5.7.0", - "@ethersproject/signing-key": "^5.7.0" + "node_modules/@solana/web3.js/node_modules/superstruct": { + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/superstruct/-/superstruct-0.14.2.tgz", + "integrity": "sha512-nPewA6m9mR3d6k7WkZ8N8zpTWfenFH3q9pA2PkuiZxINr9DKB2+40wEQf0ixn8VaGuJ78AB6iWOtStI+/4FKZQ==" + }, + "node_modules/@solana/web3.js/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==", + "bin": { + "uuid": "dist/bin/uuid" } }, - "node_modules/@ethersproject/web": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/@ethersproject/web/-/web-5.7.1.tgz", - "integrity": "sha512-Gueu8lSvyjBWL4cYsWsjh6MtMwM0+H4HvqFPZfB6dV8ctbP9zFAO73VG1cMWae0FLPCtz0peKPpZY8/ugJJX2w==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + "node_modules/@solana/web3.js/node_modules/ws": { + "version": "8.13.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.13.0.tgz", + "integrity": "sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA==", + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" + "utf-8-validate": { + "optional": true } - ], - "dependencies": { - "@ethersproject/base64": "^5.7.0", - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/properties": "^5.7.0", - "@ethersproject/strings": "^5.7.0" } }, - "node_modules/@firebase/analytics": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/@firebase/analytics/-/analytics-0.4.1.tgz", - "integrity": "sha512-y5ZuhqX/PwLi0t7AKxNAi3NnlEwXe0rpknulUWUg3/1dALqtd2RrAOATQoV5FNnKK6YUH5UmK0Jb9KcSjsFeNw==", - "dev": true, + "node_modules/@terra-money/legacy.proto": { + "name": "@terra-money/terra.proto", + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/@terra-money/terra.proto/-/terra.proto-0.1.7.tgz", + "integrity": "sha512-NXD7f6pQCulvo6+mv6MAPzhOkUzRjgYVuHZE/apih+lVnPG5hDBU0rRYnOGGofwvKT5/jQoOENnFn/gioWWnyQ==", "dependencies": { - "@firebase/analytics-types": "0.3.1", - "@firebase/component": "0.1.17", - "@firebase/installations": "0.4.15", - "@firebase/logger": "0.2.6", - "@firebase/util": "0.3.0", - "tslib": "^1.11.1" + "google-protobuf": "^3.17.3", + "long": "^4.0.0", + "protobufjs": "~6.11.2" } }, - "node_modules/@firebase/analytics-types": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/@firebase/analytics-types/-/analytics-types-0.3.1.tgz", - "integrity": "sha512-63vVJ5NIBh/JF8l9LuPrQYSzFimk7zYHySQB4Dk9rVdJ8kV/vGQoVTvRu1UW05sEc2Ug5PqtEChtTHU+9hvPcA==", - "dev": true - }, - "node_modules/@firebase/app": { - "version": "0.6.9", - "resolved": "https://registry.npmjs.org/@firebase/app/-/app-0.6.9.tgz", - "integrity": "sha512-X2riRgK49IK8LCQ3j7BKLu3zqHDTJSaT6YgcLewtHuOVwtpHfGODiS1cL5VMvKm3ogxP84GA70tN3sdoL/vTog==", - "dev": true, + "node_modules/@terra-money/terra.js": { + "version": "3.1.8", + "resolved": "https://registry.npmjs.org/@terra-money/terra.js/-/terra.js-3.1.8.tgz", + "integrity": "sha512-Cd/fh4MswT00fDGVckoZ0cm77EpIy4+CjSDO0RqZ3Qfp4CJBp7sWTLRNsyzUWjdYOT5iTx+1wOMCYbbyKo6LAw==", "dependencies": { - "@firebase/app-types": "0.6.1", - "@firebase/component": "0.1.17", - "@firebase/logger": "0.2.6", - "@firebase/util": "0.3.0", - "dom-storage": "2.1.0", - "tslib": "^1.11.1", - "xmlhttprequest": "1.8.0" + "@classic-terra/terra.proto": "^1.1.0", + "@terra-money/terra.proto": "^2.1.0", + "axios": "^0.27.2", + "bech32": "^2.0.0", + "bip32": "^2.0.6", + "bip39": "^3.0.3", + "bufferutil": "^4.0.3", + "decimal.js": "^10.2.1", + "jscrypto": "^1.0.1", + "readable-stream": "^3.6.0", + "secp256k1": "^4.0.2", + "tmp": "^0.2.1", + "utf-8-validate": "^5.0.5", + "ws": "^7.5.9" + }, + "engines": { + "node": ">=14" } }, - "node_modules/@firebase/app-types": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/@firebase/app-types/-/app-types-0.6.1.tgz", - "integrity": "sha512-L/ZnJRAq7F++utfuoTKX4CLBG5YR7tFO3PLzG1/oXXKEezJ0kRL3CMRoueBEmTCzVb/6SIs2Qlaw++uDgi5Xyg==", - "dev": true - }, - "node_modules/@firebase/auth": { - "version": "0.14.9", - "resolved": "https://registry.npmjs.org/@firebase/auth/-/auth-0.14.9.tgz", - "integrity": "sha512-PxYa2r5qUEdheXTvqROFrMstK8W4uPiP7NVfp+2Bec+AjY5PxZapCx/YFDLkU0D7YBI82H74PtZrzdJZw7TJ4w==", - "dev": true, + "node_modules/@terra-money/terra.js/node_modules/axios": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.27.2.tgz", + "integrity": "sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==", "dependencies": { - "@firebase/auth-types": "0.10.1" + "follow-redirects": "^1.14.9", + "form-data": "^4.0.0" } }, - "node_modules/@firebase/auth-interop-types": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/@firebase/auth-interop-types/-/auth-interop-types-0.1.5.tgz", - "integrity": "sha512-88h74TMQ6wXChPA6h9Q3E1Jg6TkTHep2+k63OWg3s0ozyGVMeY+TTOti7PFPzq5RhszQPQOoCi59es4MaRvgCw==", - "dev": true - }, - "node_modules/@firebase/auth-types": { - "version": "0.10.1", - "resolved": "https://registry.npmjs.org/@firebase/auth-types/-/auth-types-0.10.1.tgz", - "integrity": "sha512-/+gBHb1O9x/YlG7inXfxff/6X3BPZt4zgBv4kql6HEmdzNQCodIRlEYnI+/da+lN+dha7PjaFH7C7ewMmfV7rw==", - "dev": true + "node_modules/@terra-money/terra.js/node_modules/follow-redirects": { + "version": "1.15.2", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", + "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } }, - "node_modules/@firebase/component": { - "version": "0.1.17", - "resolved": "https://registry.npmjs.org/@firebase/component/-/component-0.1.17.tgz", - "integrity": "sha512-/tN5iLcFp9rdpTfCJPfQ/o2ziGHlDxOzNx6XD2FoHlu4pG/PPGu+59iRfQXIowBGhxcTGD/l7oJhZEY/PVg0KQ==", - "dev": true, + "node_modules/@terra-money/terra.js/node_modules/form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", "dependencies": { - "@firebase/util": "0.3.0", - "tslib": "^1.11.1" + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" } }, - "node_modules/@firebase/database": { - "version": "0.6.9", - "resolved": "https://registry.npmjs.org/@firebase/database/-/database-0.6.9.tgz", - "integrity": "sha512-+X2dNFDpcLEcDRdXp2Hgkf0RnNz3AOIC+Y7UFMQYadm9buB+snXomlnlkMzOj6o+Cp3V7GnpBrKKeeFqzF6wGQ==", - "dev": true, + "node_modules/@terra-money/terra.js/node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", "dependencies": { - "@firebase/auth-interop-types": "0.1.5", - "@firebase/component": "0.1.17", - "@firebase/database-types": "0.5.1", - "@firebase/logger": "0.2.6", - "@firebase/util": "0.3.0", - "faye-websocket": "0.11.3", - "tslib": "^1.11.1" + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" } }, - "node_modules/@firebase/database-types": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/@firebase/database-types/-/database-types-0.5.1.tgz", - "integrity": "sha512-onQxom1ZBYBJ648w/VNRzUewovEDAH7lvnrrpCd69ukkyrMk6rGEO/PQ9BcNEbhlNtukpsqRS0oNOFlHs0FaSA==", - "dev": true, + "node_modules/@terra-money/terra.js/node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", "dependencies": { - "@firebase/app-types": "0.6.1" + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/@firebase/firestore": { - "version": "1.16.2", - "resolved": "https://registry.npmjs.org/@firebase/firestore/-/firestore-1.16.2.tgz", - "integrity": "sha512-iIkAL860oD/QA1uYI9JBbWqBYFWd+DnuSj//BIbOGn3DNAruDFy07g8re1vn+0MMas9bMk6CZATJNCFPeH8AsQ==", - "dev": true, + "node_modules/@terra-money/terra.js/node_modules/tmp": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz", + "integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==", "dependencies": { - "@firebase/component": "0.1.17", - "@firebase/firestore-types": "1.12.0", - "@firebase/logger": "0.2.6", - "@firebase/util": "0.3.0", - "@firebase/webchannel-wrapper": "0.2.41", - "@grpc/grpc-js": "^1.0.0", - "@grpc/proto-loader": "^0.5.0", - "tslib": "^1.11.1" + "rimraf": "^3.0.0" }, "engines": { - "node": "^8.13.0 || >=10.10.0" + "node": ">=8.17.0" } }, - "node_modules/@firebase/firestore-types": { - "version": "1.12.0", - "resolved": "https://registry.npmjs.org/@firebase/firestore-types/-/firestore-types-1.12.0.tgz", - "integrity": "sha512-OqNxVb63wPZdUc7YnpacAW1WNIMSKERSewCRi+unCQ0YI0KNfrDSypyGCyel+S3GdOtKMk9KnvDknaGbnaFX4g==", - "dev": true + "node_modules/@terra-money/terra.js/node_modules/ws": { + "version": "7.5.9", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz", + "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==", + "engines": { + "node": ">=8.3.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } }, - "node_modules/@firebase/functions": { - "version": "0.4.49", - "resolved": "https://registry.npmjs.org/@firebase/functions/-/functions-0.4.49.tgz", - "integrity": "sha512-ma3+z1wMKervmEJCLWxwIjbSV+n3/BTfFPSZdTjt18Wgiso5q4BzEObFkorxaXZiyT3KpZ0qOO97lgcoth2hIA==", - "dev": true, + "node_modules/@terra-money/terra.proto": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@terra-money/terra.proto/-/terra.proto-2.1.0.tgz", + "integrity": "sha512-rhaMslv3Rkr+QsTQEZs64FKA4QlfO0DfQHaR6yct/EovenMkibDEQ63dEL6yJA6LCaEQGYhyVB9JO9pTUA8ybw==", "dependencies": { - "@firebase/component": "0.1.17", - "@firebase/functions-types": "0.3.17", - "@firebase/messaging-types": "0.4.5", - "isomorphic-fetch": "2.2.1", - "tslib": "^1.11.1" + "@improbable-eng/grpc-web": "^0.14.1", + "google-protobuf": "^3.17.3", + "long": "^4.0.0", + "protobufjs": "~6.11.2" } }, - "node_modules/@firebase/functions-types": { - "version": "0.3.17", - "resolved": "https://registry.npmjs.org/@firebase/functions-types/-/functions-types-0.3.17.tgz", - "integrity": "sha512-DGR4i3VI55KnYk4IxrIw7+VG7Q3gA65azHnZxo98Il8IvYLr2UTBlSh72dTLlDf25NW51HqvJgYJDKvSaAeyHQ==", - "dev": true - }, - "node_modules/@firebase/installations": { - "version": "0.4.15", - "resolved": "https://registry.npmjs.org/@firebase/installations/-/installations-0.4.15.tgz", - "integrity": "sha512-6uGgDocDGu5gI7FeDBDcLaH4npz0cm2f0kctOFK+5N1CyK8Tv2YGv5/uGqlrTtSwDW+8tgKNo/5XXJJOPr9Jsw==", - "dev": true, + "node_modules/@terra-money/terra.proto/node_modules/@improbable-eng/grpc-web": { + "version": "0.14.1", + "resolved": "https://registry.npmjs.org/@improbable-eng/grpc-web/-/grpc-web-0.14.1.tgz", + "integrity": "sha512-XaIYuunepPxoiGVLLHmlnVminUGzBTnXr8Wv7khzmLWbNw4TCwJKX09GSMJlKhu/TRk6gms0ySFxewaETSBqgw==", "dependencies": { - "@firebase/component": "0.1.17", - "@firebase/installations-types": "0.3.4", - "@firebase/util": "0.3.0", - "idb": "3.0.2", - "tslib": "^1.11.1" + "browser-headers": "^0.4.1" + }, + "peerDependencies": { + "google-protobuf": "^3.14.0" } }, - "node_modules/@firebase/installations-types": { - "version": "0.3.4", - "resolved": "https://registry.npmjs.org/@firebase/installations-types/-/installations-types-0.3.4.tgz", - "integrity": "sha512-RfePJFovmdIXb6rYwtngyxuEcWnOrzdZd9m7xAW0gRxDIjBT20n3BOhjpmgRWXo/DAxRmS7bRjWAyTHY9cqN7Q==", + "node_modules/@tsconfig/node10": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.9.tgz", + "integrity": "sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==", "dev": true }, - "node_modules/@firebase/logger": { - "version": "0.2.6", - "resolved": "https://registry.npmjs.org/@firebase/logger/-/logger-0.2.6.tgz", - "integrity": "sha512-KIxcUvW/cRGWlzK9Vd2KB864HlUnCfdTH0taHE0sXW5Xl7+W68suaeau1oKNEqmc3l45azkd4NzXTCWZRZdXrw==", + "node_modules/@tsconfig/node12": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz", + "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==", "dev": true }, - "node_modules/@firebase/messaging": { - "version": "0.6.21", - "resolved": "https://registry.npmjs.org/@firebase/messaging/-/messaging-0.6.21.tgz", - "integrity": "sha512-cunbFNCtUy25Zp4/jn5lenYUPqgHpjKNUwRjKc7vIzYb4IT2Vu/7kaEptO3K0KQBC6O0QV3ZtqQxKrI9aLiSHg==", - "dev": true, - "dependencies": { - "@firebase/component": "0.1.17", - "@firebase/installations": "0.4.15", - "@firebase/messaging-types": "0.4.5", - "@firebase/util": "0.3.0", - "idb": "3.0.2", - "tslib": "^1.11.1" - } - }, - "node_modules/@firebase/messaging-types": { - "version": "0.4.5", - "resolved": "https://registry.npmjs.org/@firebase/messaging-types/-/messaging-types-0.4.5.tgz", - "integrity": "sha512-sux4fgqr/0KyIxqzHlatI04Ajs5rc3WM+WmtCpxrKP1E5Bke8xu/0M+2oy4lK/sQ7nov9z15n3iltAHCgTRU3Q==", + "node_modules/@tsconfig/node14": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz", + "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==", "dev": true }, - "node_modules/@firebase/performance": { - "version": "0.3.10", - "resolved": "https://registry.npmjs.org/@firebase/performance/-/performance-0.3.10.tgz", - "integrity": "sha512-j/hsx2xfOO1hZulmz7KxemoTIVXxrv94rt79x8qO1HzysT7ziViNvQ9cQGjDZWwVSO29TpLH31GOWLVnwmnxWQ==", - "dev": true, - "dependencies": { - "@firebase/component": "0.1.17", - "@firebase/installations": "0.4.15", - "@firebase/logger": "0.2.6", - "@firebase/performance-types": "0.0.13", - "@firebase/util": "0.3.0", - "tslib": "^1.11.1" - } - }, - "node_modules/@firebase/performance-types": { - "version": "0.0.13", - "resolved": "https://registry.npmjs.org/@firebase/performance-types/-/performance-types-0.0.13.tgz", - "integrity": "sha512-6fZfIGjQpwo9S5OzMpPyqgYAUZcFzZxHFqOyNtorDIgNXq33nlldTL/vtaUZA8iT9TT5cJlCrF/jthKU7X21EA==", + "node_modules/@tsconfig/node16": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.4.tgz", + "integrity": "sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==", "dev": true }, - "node_modules/@firebase/polyfill": { - "version": "0.3.36", - "resolved": "https://registry.npmjs.org/@firebase/polyfill/-/polyfill-0.3.36.tgz", - "integrity": "sha512-zMM9oSJgY6cT2jx3Ce9LYqb0eIpDE52meIzd/oe/y70F+v9u1LDqk5kUF5mf16zovGBWMNFmgzlsh6Wj0OsFtg==", - "dev": true, + "node_modules/@typechain/ethers-v5": { + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/@typechain/ethers-v5/-/ethers-v5-10.2.0.tgz", + "integrity": "sha512-ikaq0N/w9fABM+G01OFmU3U3dNnyRwEahkdvi9mqy1a3XwKiPZaF/lu54OcNaEWnpvEYyhhS0N7buCtLQqC92w==", "dependencies": { - "core-js": "3.6.5", - "promise-polyfill": "8.1.3", - "whatwg-fetch": "2.0.4" + "lodash": "^4.17.15", + "ts-essentials": "^7.0.1" + }, + "peerDependencies": { + "@ethersproject/abi": "^5.0.0", + "@ethersproject/bytes": "^5.0.0", + "@ethersproject/providers": "^5.0.0", + "ethers": "^5.1.3", + "typechain": "^8.1.1", + "typescript": ">=4.3.0" } }, - "node_modules/@firebase/polyfill/node_modules/whatwg-fetch": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-2.0.4.tgz", - "integrity": "sha512-dcQ1GWpOD/eEQ97k66aiEVpNnapVj90/+R+SXTPYGHpYBBypfKJEQjLrvMZ7YXbKm21gXd4NcuxUTjiv1YtLng==", - "dev": true + "node_modules/@typechain/ethers-v5/node_modules/ts-essentials": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/ts-essentials/-/ts-essentials-7.0.3.tgz", + "integrity": "sha512-8+gr5+lqO3G84KdiTSMRLtuyJ+nTBVRKuCrK4lidMPdVeEp0uqC875uE5NMcaA7YYMN7XsNiFQuMvasF8HT/xQ==", + "peerDependencies": { + "typescript": ">=3.7.0" + } }, - "node_modules/@firebase/remote-config": { - "version": "0.1.26", - "resolved": "https://registry.npmjs.org/@firebase/remote-config/-/remote-config-0.1.26.tgz", - "integrity": "sha512-B6+nARVNcswysd6C16nK5tdGECgEpr1wdH6LyqylEQ8hUxYWN18qe49b9uPu+ktaHq0gFLg03gayZvQs7fxJOg==", - "dev": true, + "node_modules/@types/bn.js": { + "version": "4.11.6", + "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-4.11.6.tgz", + "integrity": "sha512-pqr857jrp2kPuO9uRjZ3PwnJTjoQy+fcdxvBTvHm6dkmEL9q+hDD/2j/0ELOBPtPnS8LjCX0gI9nbl8lVkadpg==", "dependencies": { - "@firebase/component": "0.1.17", - "@firebase/installations": "0.4.15", - "@firebase/logger": "0.2.6", - "@firebase/remote-config-types": "0.1.9", - "@firebase/util": "0.3.0", - "tslib": "^1.11.1" + "@types/node": "*" } }, - "node_modules/@firebase/remote-config-types": { - "version": "0.1.9", - "resolved": "https://registry.npmjs.org/@firebase/remote-config-types/-/remote-config-types-0.1.9.tgz", - "integrity": "sha512-G96qnF3RYGbZsTRut7NBX0sxyczxt1uyCgXQuH/eAfUCngxjEGcZQnBdy6mvSdqdJh5mC31rWPO4v9/s7HwtzA==", - "dev": true - }, - "node_modules/@firebase/storage": { - "version": "0.3.41", - "resolved": "https://registry.npmjs.org/@firebase/storage/-/storage-0.3.41.tgz", - "integrity": "sha512-2imzI78HcB7FjUqXMRHsGLlZnTYkaCHBjJflSbypwLrEty0hreR6vx3ThOO5y0MFH93WwifqUFJAa+Twkx6CIA==", - "dev": true, + "node_modules/@types/connect": { + "version": "3.4.35", + "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz", + "integrity": "sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==", "dependencies": { - "@firebase/component": "0.1.17", - "@firebase/storage-types": "0.3.13", - "@firebase/util": "0.3.0", - "tslib": "^1.11.1" + "@types/node": "*" } }, - "node_modules/@firebase/storage-types": { - "version": "0.3.13", - "resolved": "https://registry.npmjs.org/@firebase/storage-types/-/storage-types-0.3.13.tgz", - "integrity": "sha512-pL7b8d5kMNCCL0w9hF7pr16POyKkb3imOW7w0qYrhBnbyJTdVxMWZhb0HxCFyQWC0w3EiIFFmxoz8NTFZDEFog==", - "dev": true + "node_modules/@types/lodash": { + "version": "4.14.192", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.192.tgz", + "integrity": "sha512-km+Vyn3BYm5ytMO13k9KTp27O75rbQ0NFw+U//g+PX7VZyjCioXaRFisqSIJRECljcTv73G3i6BpglNGHgUQ5A==" }, - "node_modules/@firebase/util": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/@firebase/util/-/util-0.3.0.tgz", - "integrity": "sha512-GTwC+FSLeCPc44/TXCDReNQ5FPRIS5cb8Gr1XcD1TgiNBOvmyx61Om2YLwHp2GnN++6m6xmwmXARm06HOukATA==", - "dev": true, + "node_modules/@types/lodash.values": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/@types/lodash.values/-/lodash.values-4.3.7.tgz", + "integrity": "sha512-Moex9/sWxtKEa+BKiH5zvmhfcieDlcz4wRxMhO/oJ2qOKUdujoU6dQjUTxWA8jwEREpHXmiY4HCwNRpycW8JQA==", "dependencies": { - "tslib": "^1.11.1" + "@types/lodash": "*" } }, - "node_modules/@firebase/webchannel-wrapper": { - "version": "0.2.41", - "resolved": "https://registry.npmjs.org/@firebase/webchannel-wrapper/-/webchannel-wrapper-0.2.41.tgz", - "integrity": "sha512-XcdMT5PSZHiuf7LJIhzKIe+RyYa25S3LHRRvLnZc6iFjwXkrSDJ8J/HWO6VT8d2ZTbawp3VcLEjRF/VN8glCrA==", - "dev": true + "node_modules/@types/long": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@types/long/-/long-4.0.2.tgz", + "integrity": "sha512-MqTGEo5bj5t157U6fA/BiDynNkn0YknVdh48CMPkTSpFTVmvao5UQmm7uEF6xBEo7qIMAlY/JSleYaE6VOdpaA==" }, - "node_modules/@graphql-tools/batch-execute": { - "version": "8.5.1", - "resolved": "https://registry.npmjs.org/@graphql-tools/batch-execute/-/batch-execute-8.5.1.tgz", - "integrity": "sha512-hRVDduX0UDEneVyEWtc2nu5H2PxpfSfM/riUlgZvo/a/nG475uyehxR5cFGvTEPEQUKY3vGIlqvtRigzqTfCew==", - "dev": true, - "optional": true, + "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/@types/pbkdf2": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@types/pbkdf2/-/pbkdf2-3.1.0.tgz", + "integrity": "sha512-Cf63Rv7jCQ0LaL8tNXmEyqTHuIJxRdlS5vMh1mj5voN4+QFhVZnlZruezqpWYDiJ8UTzhP0VmeLXCmBk66YrMQ==", "dependencies": { - "@graphql-tools/utils": "8.9.0", - "dataloader": "2.1.0", - "tslib": "^2.4.0", - "value-or-promise": "1.0.11" - }, - "peerDependencies": { - "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + "@types/node": "*" } }, - "node_modules/@graphql-tools/batch-execute/node_modules/tslib": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz", - "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==", - "dev": true, - "optional": true - }, - "node_modules/@graphql-tools/delegate": { - "version": "8.8.1", - "resolved": "https://registry.npmjs.org/@graphql-tools/delegate/-/delegate-8.8.1.tgz", - "integrity": "sha512-NDcg3GEQmdEHlnF7QS8b4lM1PSF+DKeFcIlLEfZFBvVq84791UtJcDj8734sIHLukmyuAxXMfA1qLd2l4lZqzA==", - "dev": true, - "optional": true, + "node_modules/@types/secp256k1": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@types/secp256k1/-/secp256k1-4.0.1.tgz", + "integrity": "sha512-+ZjSA8ELlOp8SlKi0YLB2tz9d5iPNEmOBd+8Rz21wTMdaXQIa9b6TEnD6l5qKOCypE7FSyPyck12qZJxSDNoog==", "dependencies": { - "@graphql-tools/batch-execute": "8.5.1", - "@graphql-tools/schema": "8.5.1", - "@graphql-tools/utils": "8.9.0", - "dataloader": "2.1.0", - "tslib": "~2.4.0", - "value-or-promise": "1.0.11" - }, - "peerDependencies": { - "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + "@types/node": "*" } }, - "node_modules/@graphql-tools/delegate/node_modules/tslib": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz", - "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==", - "dev": true, - "optional": true + "node_modules/@types/ws": { + "version": "7.4.7", + "resolved": "https://registry.npmjs.org/@types/ws/-/ws-7.4.7.tgz", + "integrity": "sha512-JQbbmxZTZehdc2iszGKs5oC3NFnjeay7mtAWrdt7qNtAVK0g19muApzAy4bm9byz79xa2ZnO/BOBC2R8RC5Lww==", + "dependencies": { + "@types/node": "*" + } }, - "node_modules/@graphql-tools/merge": { - "version": "8.3.1", - "resolved": "https://registry.npmjs.org/@graphql-tools/merge/-/merge-8.3.1.tgz", - "integrity": "sha512-BMm99mqdNZbEYeTPK3it9r9S6rsZsQKtlqJsSBknAclXq2pGEfOxjcIZi+kBSkHZKPKCRrYDd5vY0+rUmIHVLg==", - "dev": true, - "optional": true, + "node_modules/@wry/context": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/@wry/context/-/context-0.7.0.tgz", + "integrity": "sha512-LcDAiYWRtwAoSOArfk7cuYvFXytxfVrdX7yxoUmK7pPITLk5jYh2F8knCwS7LjgYL8u1eidPlKKV6Ikqq0ODqQ==", "dependencies": { - "@graphql-tools/utils": "8.9.0", - "tslib": "^2.4.0" + "tslib": "^2.3.0" }, - "peerDependencies": { - "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + "engines": { + "node": ">=8" } }, - "node_modules/@graphql-tools/merge/node_modules/tslib": { + "node_modules/@wry/context/node_modules/tslib": { "version": "2.5.0", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz", - "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==", - "dev": true, - "optional": true + "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==" }, - "node_modules/@graphql-tools/mock": { - "version": "8.7.20", - "resolved": "https://registry.npmjs.org/@graphql-tools/mock/-/mock-8.7.20.tgz", - "integrity": "sha512-ljcHSJWjC/ZyzpXd5cfNhPI7YljRVvabKHPzKjEs5ElxWu2cdlLGvyNYepApXDsM/OJG/2xuhGM+9GWu5gEAPQ==", - "dev": true, - "optional": true, + "node_modules/@wry/trie": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@wry/trie/-/trie-0.3.2.tgz", + "integrity": "sha512-yRTyhWSls2OY/pYLfwff867r8ekooZ4UI+/gxot5Wj8EFwSf2rG+n+Mo/6LoLQm1TKA4GRj2+LCpbfS937dClQ==", "dependencies": { - "@graphql-tools/schema": "^9.0.18", - "@graphql-tools/utils": "^9.2.1", - "fast-json-stable-stringify": "^2.1.0", - "tslib": "^2.4.0" + "tslib": "^2.3.0" }, - "peerDependencies": { - "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + "engines": { + "node": ">=8" } }, - "node_modules/@graphql-tools/mock/node_modules/@graphql-tools/merge": { - "version": "8.4.1", - "resolved": "https://registry.npmjs.org/@graphql-tools/merge/-/merge-8.4.1.tgz", - "integrity": "sha512-hssnPpZ818mxgl5+GfyOOSnnflAxiaTn1A1AojZcIbh4J52sS1Q0gSuBR5VrnUDjuxiqoCotpXdAQl+K+U6KLQ==", - "dev": true, - "optional": true, - "dependencies": { - "@graphql-tools/utils": "^9.2.1", - "tslib": "^2.4.0" - }, - "peerDependencies": { - "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" - } + "node_modules/@wry/trie/node_modules/tslib": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz", + "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==" }, - "node_modules/@graphql-tools/mock/node_modules/@graphql-tools/schema": { - "version": "9.0.19", - "resolved": "https://registry.npmjs.org/@graphql-tools/schema/-/schema-9.0.19.tgz", - "integrity": "sha512-oBRPoNBtCkk0zbUsyP4GaIzCt8C0aCI4ycIRUL67KK5pOHljKLBBtGT+Jr6hkzA74C8Gco8bpZPe7aWFjiaK2w==", - "dev": true, - "optional": true, + "node_modules/@xpla/xpla.js": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@xpla/xpla.js/-/xpla.js-0.2.3.tgz", + "integrity": "sha512-Tfk7hCGWXtwr08reY3Pi6dmzIqFbzri9jcyzJdfNmdo4cN0PMwpRJuZZcPmtxiIUnNef3AN1E/6nJUD5MKniuA==", "dependencies": { - "@graphql-tools/merge": "^8.4.1", - "@graphql-tools/utils": "^9.2.1", - "tslib": "^2.4.0", - "value-or-promise": "^1.0.12" + "@ethersproject/bytes": "^5.6.1", + "@ethersproject/keccak256": "^5.6.1", + "@ethersproject/signing-key": "^5.6.2", + "@terra-money/legacy.proto": "npm:@terra-money/terra.proto@^0.1.7", + "@terra-money/terra.proto": "^2.1.0", + "axios": "^0.26.1", + "bech32": "^2.0.0", + "bip32": "^2.0.6", + "bip39": "^3.0.3", + "bufferutil": "^4.0.3", + "crypto-addr-codec": "^0.1.7", + "decimal.js": "^10.2.1", + "elliptic": "^6.5.4", + "ethereumjs-util": "^7.1.5", + "jscrypto": "^1.0.1", + "readable-stream": "^3.6.0", + "secp256k1": "^4.0.2", + "tmp": "^0.2.1", + "utf-8-validate": "^5.0.5", + "ws": "^7.5.8" }, - "peerDependencies": { - "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + "engines": { + "node": ">=14" } }, - "node_modules/@graphql-tools/mock/node_modules/@graphql-tools/utils": { - "version": "9.2.1", - "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-9.2.1.tgz", - "integrity": "sha512-WUw506Ql6xzmOORlriNrD6Ugx+HjVgYxt9KCXD9mHAak+eaXSwuGGPyE60hy9xaDEoXKBsG7SkG69ybitaVl6A==", - "dev": true, - "optional": true, + "node_modules/@xpla/xpla.js/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": { - "@graphql-typed-document-node/core": "^3.1.1", - "tslib": "^2.4.0" - }, - "peerDependencies": { - "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" - } - }, - "node_modules/@graphql-tools/mock/node_modules/tslib": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz", - "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==", - "dev": true, - "optional": true - }, - "node_modules/@graphql-tools/mock/node_modules/value-or-promise": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/value-or-promise/-/value-or-promise-1.0.12.tgz", - "integrity": "sha512-Z6Uz+TYwEqE7ZN50gwn+1LCVo9ZVrpxRPOhOLnncYkY1ZzOYtrX8Fwf/rFktZ8R5mJms6EZf5TqNOMeZmnPq9Q==", - "dev": true, - "optional": true, - "engines": { - "node": ">=12" + "@types/node": "*" } }, - "node_modules/@graphql-tools/schema": { - "version": "8.5.1", - "resolved": "https://registry.npmjs.org/@graphql-tools/schema/-/schema-8.5.1.tgz", - "integrity": "sha512-0Esilsh0P/qYcB5DKQpiKeQs/jevzIadNTaT0jeWklPMwNbT7yMX4EqZany7mbeRRlSRwMzNzL5olyFdffHBZg==", - "dev": true, - "optional": true, + "node_modules/@xpla/xpla.js/node_modules/axios": { + "version": "0.26.1", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.26.1.tgz", + "integrity": "sha512-fPwcX4EvnSHuInCMItEhAGnaSEXRBjtzh9fOtsE6E1G6p7vl7edEeZe11QHf18+6+9gR5PbKV/sGKNaD8YaMeA==", "dependencies": { - "@graphql-tools/merge": "8.3.1", - "@graphql-tools/utils": "8.9.0", - "tslib": "^2.4.0", - "value-or-promise": "1.0.11" - }, - "peerDependencies": { - "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + "follow-redirects": "^1.14.8" } }, - "node_modules/@graphql-tools/schema/node_modules/tslib": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz", - "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==", - "dev": true, - "optional": true + "node_modules/@xpla/xpla.js/node_modules/bn.js": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", + "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==" }, - "node_modules/@graphql-tools/utils": { - "version": "8.9.0", - "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-8.9.0.tgz", - "integrity": "sha512-pjJIWH0XOVnYGXCqej8g/u/tsfV4LvLlj0eATKQu5zwnxd/TiTHq7Cg313qUPTFFHZ3PP5wJ15chYVtLDwaymg==", - "dev": true, - "optional": true, + "node_modules/@xpla/xpla.js/node_modules/ethereumjs-util": { + "version": "7.1.5", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.5.tgz", + "integrity": "sha512-SDl5kKrQAudFBUe5OJM9Ac6WmMyYmXX/6sTmLZ3ffG2eY6ZIGBes3pEDxNN6V72WyOw4CPD5RomKdsa8DAAwLg==", "dependencies": { - "tslib": "^2.4.0" + "@types/bn.js": "^5.1.0", + "bn.js": "^5.1.2", + "create-hash": "^1.1.2", + "ethereum-cryptography": "^0.1.3", + "rlp": "^2.2.4" }, - "peerDependencies": { - "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + "engines": { + "node": ">=10.0.0" } }, - "node_modules/@graphql-tools/utils/node_modules/tslib": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz", - "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==", - "dev": true, - "optional": true - }, - "node_modules/@graphql-typed-document-node/core": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/@graphql-typed-document-node/core/-/core-3.2.0.tgz", - "integrity": "sha512-mB9oAsNCm9aM3/SOv4YtBMqZbYj10R7dkq8byBqxGY/ncFwhf2oQzMV+LCRlWoDSEBJ3COiR1yeDvMtsoOsuFQ==", - "peerDependencies": { - "graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + "node_modules/@xpla/xpla.js/node_modules/follow-redirects": { + "version": "1.15.2", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", + "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } } }, - "node_modules/@grpc/grpc-js": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.1.3.tgz", - "integrity": "sha512-HtOsk2YUofBcm1GkPqGzb6pwHhv+74eC2CUO229USIDKRtg30ycbZmqC+HdNtY3nHqoc9IgcRlntFgopyQoYCA==", - "dev": true, + "node_modules/@xpla/xpla.js/node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", "dependencies": { - "semver": "^6.2.0" + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" }, "engines": { - "node": "^8.13.0 || >=10.10.0" + "node": ">= 6" } }, - "node_modules/@grpc/grpc-js/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, + "node_modules/@xpla/xpla.js/node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dependencies": { + "glob": "^7.1.3" + }, "bin": { - "semver": "bin/semver.js" + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/@grpc/proto-loader": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/@grpc/proto-loader/-/proto-loader-0.5.5.tgz", - "integrity": "sha512-WwN9jVNdHRQoOBo9FDH7qU+mgfjPc8GygPYms3M+y3fbQLfnCe/Kv/E01t7JRgnrsOHH8euvSbed3mIalXhwqQ==", - "dev": true, + "node_modules/@xpla/xpla.js/node_modules/tmp": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz", + "integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==", "dependencies": { - "lodash.camelcase": "^4.3.0", - "protobufjs": "^6.8.6" + "rimraf": "^3.0.0" }, "engines": { - "node": ">=6" + "node": ">=8.17.0" } }, - "node_modules/@improbable-eng/grpc-web": { - "version": "0.15.0", - "resolved": "https://registry.npmjs.org/@improbable-eng/grpc-web/-/grpc-web-0.15.0.tgz", - "integrity": "sha512-ERft9/0/8CmYalqOVnJnpdDry28q+j+nAlFFARdjyxXDJ+Mhgv9+F600QC8BR9ygOfrXRlAk6CvST2j+JCpQPg==", - "dependencies": { - "browser-headers": "^0.4.1" + "node_modules/@xpla/xpla.js/node_modules/ws": { + "version": "7.5.9", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz", + "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==", + "engines": { + "node": ">=8.3.0" }, "peerDependencies": { - "google-protobuf": "^3.14.0" + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } } }, - "node_modules/@injectivelabs/core-proto-ts": { - "version": "0.0.11", - "resolved": "https://registry.npmjs.org/@injectivelabs/core-proto-ts/-/core-proto-ts-0.0.11.tgz", - "integrity": "sha512-gYMzkoZ0olXLbEhSQVarUCMR6VAHytvENDv2Psjl9EjO5Pg93vTGLViS4E4vA5fezRfdF/x0Uic31w+ogp66jA==", - "dependencies": { - "@injectivelabs/grpc-web": "^0.0.1", - "google-protobuf": "^3.14.0", - "protobufjs": "^7.0.0", - "rxjs": "^7.4.0" + "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, + "engines": { + "node": ">=0.4.0" } }, - "node_modules/@injectivelabs/core-proto-ts/node_modules/long": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/long/-/long-5.2.1.tgz", - "integrity": "sha512-GKSNGeNAtw8IryjjkhZxuKB3JzlcLTwjtiQCHKvqQet81I93kXslhDQruGI/QsddO83mcDToBVy7GqGS/zYf/A==" + "node_modules/aes-js": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/aes-js/-/aes-js-3.0.0.tgz", + "integrity": "sha1-4h3xCtbCBTKVvLuNq0Cwnb6ofk0=" }, - "node_modules/@injectivelabs/core-proto-ts/node_modules/protobufjs": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.2.3.tgz", - "integrity": "sha512-TtpvOqwB5Gdz/PQmOjgsrGH1nHjAQVCN7JG4A6r1sXRWESL5rNMAiRcBQlCAdKxZcAbstExQePYG8xof/JVRgg==", - "hasInstallScript": true, + "node_modules/agentkeepalive": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.3.0.tgz", + "integrity": "sha512-7Epl1Blf4Sy37j4v9f9FjICCh4+KAQOyXgHEwlyBiAQLbhKdq/i2QQU3amQalS/wPhdPzDXPL5DMR5bkn+YeWg==", "dependencies": { - "@protobufjs/aspromise": "^1.1.2", - "@protobufjs/base64": "^1.1.2", - "@protobufjs/codegen": "^2.0.4", - "@protobufjs/eventemitter": "^1.1.0", - "@protobufjs/fetch": "^1.1.0", - "@protobufjs/float": "^1.0.2", - "@protobufjs/inquire": "^1.1.0", - "@protobufjs/path": "^1.1.2", - "@protobufjs/pool": "^1.1.0", - "@protobufjs/utf8": "^1.1.0", - "@types/node": ">=13.7.0", - "long": "^5.0.0" + "debug": "^4.1.0", + "depd": "^2.0.0", + "humanize-ms": "^1.2.1" }, "engines": { - "node": ">=12.0.0" + "node": ">= 8.0.0" } }, - "node_modules/@injectivelabs/core-proto-ts/node_modules/rxjs": { - "version": "7.8.0", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.0.tgz", - "integrity": "sha512-F2+gxDshqmIub1KdvZkaEfGDwLNpPvk9Fs6LD/MyQxNgMds/WH9OdDDXOmxUZpME+iSK3rQCctkL0DYyytUqMg==", + "node_modules/agentkeepalive/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", "dependencies": { - "tslib": "^2.1.0" + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } } }, - "node_modules/@injectivelabs/core-proto-ts/node_modules/tslib": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz", - "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==" + "node_modules/agentkeepalive/node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "engines": { + "node": ">= 0.8" + } }, - "node_modules/@injectivelabs/exceptions": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/@injectivelabs/exceptions/-/exceptions-1.10.0.tgz", - "integrity": "sha512-YD9MEUEwJDalj+bV+/4P8TEqyR7asnQfjacCtuCYEF59qWsSYjYWxfZdZDssmSK8FA4HgJaQ2sghhK/LUfBneA==", - "hasInstallScript": true, - "dependencies": { - "@injectivelabs/grpc-web": "^0.0.1", - "@injectivelabs/ts-types": "^1.10.0", - "http-status-codes": "^2.2.0", - "link-module-alias": "^1.2.0", - "shx": "^0.3.2" + "node_modules/agentkeepalive/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "node_modules/algo-msgpack-with-bigint": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/algo-msgpack-with-bigint/-/algo-msgpack-with-bigint-2.1.1.tgz", + "integrity": "sha512-F1tGh056XczEaEAqu7s+hlZUDWwOBT70Eq0lfMpBP2YguSQVyxRbprLq5rELXKQOyOaixTWYhMeMQMzP0U5FoQ==", + "engines": { + "node": ">= 10" } }, - "node_modules/@injectivelabs/grpc-web": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/@injectivelabs/grpc-web/-/grpc-web-0.0.1.tgz", - "integrity": "sha512-Pu5YgaZp+OvR5UWfqbrPdHer3+gDf+b5fQoY+t2VZx1IAVHX8bzbN9EreYTvTYtFeDpYRWM8P7app2u4EX5wTw==", + "node_modules/algosdk": { + "version": "1.24.1", + "resolved": "https://registry.npmjs.org/algosdk/-/algosdk-1.24.1.tgz", + "integrity": "sha512-9moZxdqeJ6GdE4N6fA/GlUP4LrbLZMYcYkt141J4Ss68OfEgH9qW0wBuZ3ZOKEx/xjc5bg7mLP2Gjg7nwrkmww==", "dependencies": { - "browser-headers": "^0.4.1" + "algo-msgpack-with-bigint": "^2.1.1", + "buffer": "^6.0.2", + "cross-fetch": "^3.1.5", + "hi-base32": "^0.5.1", + "js-sha256": "^0.9.0", + "js-sha3": "^0.8.0", + "js-sha512": "^0.8.0", + "json-bigint": "^1.0.0", + "tweetnacl": "^1.0.3", + "vlq": "^2.0.4" }, - "peerDependencies": { - "google-protobuf": "^3.14.0" + "engines": { + "node": ">=14.0.0" } }, - "node_modules/@injectivelabs/grpc-web-node-http-transport": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/@injectivelabs/grpc-web-node-http-transport/-/grpc-web-node-http-transport-0.0.2.tgz", - "integrity": "sha512-rpyhXLiGY/UMs6v6YmgWHJHiO9l0AgDyVNv+jcutNVt4tQrmNvnpvz2wCAGOFtq5LuX/E9ChtTVpk3gWGqXcGA==", - "peerDependencies": { - "@injectivelabs/grpc-web": ">=0.0.1" + "node_modules/algosdk/node_modules/buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" } }, - "node_modules/@injectivelabs/grpc-web-react-native-transport": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/@injectivelabs/grpc-web-react-native-transport/-/grpc-web-react-native-transport-0.0.2.tgz", - "integrity": "sha512-mk+aukQXnYNgPsPnu3KBi+FD0ZHQpazIlaBZ2jNZG7QAVmxTWtv3R66Zoq99Wx2dnE946NsZBYAoa0K5oSjnow==", - "peerDependencies": { - "@injectivelabs/grpc-web": ">=0.0.1" + "node_modules/algosdk/node_modules/cross-fetch": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.5.tgz", + "integrity": "sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw==", + "dependencies": { + "node-fetch": "2.6.7" } }, - "node_modules/@injectivelabs/indexer-proto-ts": { - "version": "0.0.9", - "resolved": "https://registry.npmjs.org/@injectivelabs/indexer-proto-ts/-/indexer-proto-ts-0.0.9.tgz", - "integrity": "sha512-ZFTUKlHAY2WYnB9RPPf11nq7SNm7wcKFTmFTavTiHV8UvNEni7dCR3Un6U5Mo1qD0xHEsfoCDMdqGcIguliPMA==", + "node_modules/algosdk/node_modules/node-fetch": { + "version": "2.6.7", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", + "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", "dependencies": { - "@injectivelabs/grpc-web": "^0.0.1", - "google-protobuf": "^3.14.0", - "protobufjs": "^7.0.0", - "rxjs": "^7.4.0" + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } } }, - "node_modules/@injectivelabs/indexer-proto-ts/node_modules/long": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/long/-/long-5.2.1.tgz", - "integrity": "sha512-GKSNGeNAtw8IryjjkhZxuKB3JzlcLTwjtiQCHKvqQet81I93kXslhDQruGI/QsddO83mcDToBVy7GqGS/zYf/A==" + "node_modules/algosdk/node_modules/tweetnacl": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.3.tgz", + "integrity": "sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==" }, - "node_modules/@injectivelabs/indexer-proto-ts/node_modules/protobufjs": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.2.3.tgz", - "integrity": "sha512-TtpvOqwB5Gdz/PQmOjgsrGH1nHjAQVCN7JG4A6r1sXRWESL5rNMAiRcBQlCAdKxZcAbstExQePYG8xof/JVRgg==", - "hasInstallScript": true, + "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": { - "@protobufjs/aspromise": "^1.1.2", - "@protobufjs/base64": "^1.1.2", - "@protobufjs/codegen": "^2.0.4", - "@protobufjs/eventemitter": "^1.1.0", - "@protobufjs/fetch": "^1.1.0", - "@protobufjs/float": "^1.0.2", - "@protobufjs/inquire": "^1.1.0", - "@protobufjs/path": "^1.1.2", - "@protobufjs/pool": "^1.1.0", - "@protobufjs/utf8": "^1.1.0", - "@types/node": ">=13.7.0", - "long": "^5.0.0" + "color-convert": "^1.9.0" }, "engines": { - "node": ">=12.0.0" + "node": ">=4" } }, - "node_modules/@injectivelabs/indexer-proto-ts/node_modules/rxjs": { - "version": "7.8.0", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.0.tgz", - "integrity": "sha512-F2+gxDshqmIub1KdvZkaEfGDwLNpPvk9Fs6LD/MyQxNgMds/WH9OdDDXOmxUZpME+iSK3rQCctkL0DYyytUqMg==", + "node_modules/aptos": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/aptos/-/aptos-1.5.0.tgz", + "integrity": "sha512-N7OuRtU7IYHkDkNx+4QS3g/QQGCp+36KzYn3oXPmT7Kttfuv+UKliQVdjy3cLmwd/DCQSh9ObTovwdxnHjUn0g==", "dependencies": { - "tslib": "^2.1.0" + "@noble/hashes": "1.1.3", + "@scure/bip39": "1.1.0", + "axios": "0.27.2", + "form-data": "4.0.0", + "tweetnacl": "1.0.3" + }, + "engines": { + "node": ">=11.0.0" } }, - "node_modules/@injectivelabs/indexer-proto-ts/node_modules/tslib": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz", - "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==" - }, - "node_modules/@injectivelabs/networks": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/@injectivelabs/networks/-/networks-1.10.0.tgz", - "integrity": "sha512-S0f1iWBcnc+HgvtIJLNlMC0iBsiT5AH0rXfwJpvkRehqwyB/J2WPKN7uOdsplK72nH4fauA3emokzGS8JknyEA==", - "hasInstallScript": true, - "dependencies": { - "@injectivelabs/exceptions": "^1.10.0", - "@injectivelabs/ts-types": "^1.10.0", - "@injectivelabs/utils": "^1.10.0", - "link-module-alias": "^1.2.0", - "shx": "^0.3.2" - } - }, - "node_modules/@injectivelabs/ninja-proto-ts": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@injectivelabs/ninja-proto-ts/-/ninja-proto-ts-1.0.1.tgz", - "integrity": "sha512-ZHyVp/yPQcl7QdHxRU49G5xFVDXJwBtMvu7BW//nUVDrTWxBy2zS1AUYpL37nvKpTG9AtB1EqMYKLPXD2sdLsg==", - "dependencies": { - "@injectivelabs/grpc-web": "^0.0.1", - "google-protobuf": "^3.14.0", - "protobufjs": "^7.0.0", - "rxjs": "^7.4.0" - } - }, - "node_modules/@injectivelabs/ninja-proto-ts/node_modules/long": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/long/-/long-5.2.1.tgz", - "integrity": "sha512-GKSNGeNAtw8IryjjkhZxuKB3JzlcLTwjtiQCHKvqQet81I93kXslhDQruGI/QsddO83mcDToBVy7GqGS/zYf/A==" - }, - "node_modules/@injectivelabs/ninja-proto-ts/node_modules/protobufjs": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.2.3.tgz", - "integrity": "sha512-TtpvOqwB5Gdz/PQmOjgsrGH1nHjAQVCN7JG4A6r1sXRWESL5rNMAiRcBQlCAdKxZcAbstExQePYG8xof/JVRgg==", - "hasInstallScript": true, - "dependencies": { - "@protobufjs/aspromise": "^1.1.2", - "@protobufjs/base64": "^1.1.2", - "@protobufjs/codegen": "^2.0.4", - "@protobufjs/eventemitter": "^1.1.0", - "@protobufjs/fetch": "^1.1.0", - "@protobufjs/float": "^1.0.2", - "@protobufjs/inquire": "^1.1.0", - "@protobufjs/path": "^1.1.2", - "@protobufjs/pool": "^1.1.0", - "@protobufjs/utf8": "^1.1.0", - "@types/node": ">=13.7.0", - "long": "^5.0.0" - }, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/@injectivelabs/ninja-proto-ts/node_modules/rxjs": { - "version": "7.8.0", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.0.tgz", - "integrity": "sha512-F2+gxDshqmIub1KdvZkaEfGDwLNpPvk9Fs6LD/MyQxNgMds/WH9OdDDXOmxUZpME+iSK3rQCctkL0DYyytUqMg==", - "dependencies": { - "tslib": "^2.1.0" - } - }, - "node_modules/@injectivelabs/ninja-proto-ts/node_modules/tslib": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz", - "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==" - }, - "node_modules/@injectivelabs/sdk-ts": { - "version": "1.10.15", - "resolved": "https://registry.npmjs.org/@injectivelabs/sdk-ts/-/sdk-ts-1.10.15.tgz", - "integrity": "sha512-W8ysWwqmKBH8U8xe8n2B6vuSW9qu2sBf26VkdMGQE0del26EHfGSy5U5vTLGkdXP+ZgBabvcAzGhuIBr6V8vxQ==", - "hasInstallScript": true, - "dependencies": { - "@apollo/client": "^3.5.8", - "@cosmjs/amino": "^0.29.5", - "@cosmjs/proto-signing": "^0.29.5", - "@cosmjs/stargate": "^0.29.5", - "@ethersproject/bytes": "^5.7.0", - "@injectivelabs/core-proto-ts": "^0.0.11", - "@injectivelabs/exceptions": "^1.10.0", - "@injectivelabs/grpc-web": "^0.0.1", - "@injectivelabs/grpc-web-node-http-transport": "^0.0.2", - "@injectivelabs/grpc-web-react-native-transport": "^0.0.2", - "@injectivelabs/indexer-proto-ts": "^0.0.9", - "@injectivelabs/networks": "^1.10.0", - "@injectivelabs/ninja-proto-ts": "1.0.1", - "@injectivelabs/test-utils": "^1.10.0", - "@injectivelabs/token-metadata": "^1.10.4", - "@injectivelabs/ts-types": "^1.10.0", - "@injectivelabs/utils": "^1.10.0", - "@metamask/eth-sig-util": "^4.0.0", - "axios": "^0.27.2", - "bech32": "^2.0.0", - "bip39": "^3.0.4", - "cosmjs-types": "^0.7.1", - "eth-crypto": "^2.6.0", - "ethereumjs-util": "^7.1.4", - "ethers": "^5.6.4", - "google-protobuf": "^3.21.0", - "graphql": "^16.3.0", - "http-status-codes": "^2.2.0", - "js-sha3": "^0.8.0", - "jscrypto": "^1.0.3", - "keccak256": "^1.0.6", - "link-module-alias": "^1.2.0", - "rxjs": "^7.8.0", - "secp256k1": "^4.0.3", - "shx": "^0.3.2", - "snakecase-keys": "^5.4.1" - } - }, - "node_modules/@injectivelabs/sdk-ts/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/aptos/node_modules/@noble/hashes": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.1.3.tgz", + "integrity": "sha512-CE0FCR57H2acVI5UOzIGSSIYxZ6v/HOhDR0Ro9VLyhnzLwx0o8W1mmgaqlEUx4049qJDlIBRztv5k+MM8vbO3A==", + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ] }, - "node_modules/@injectivelabs/sdk-ts/node_modules/axios": { + "node_modules/aptos/node_modules/axios": { "version": "0.27.2", "resolved": "https://registry.npmjs.org/axios/-/axios-0.27.2.tgz", "integrity": "sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==", @@ -2887,27 +2823,7 @@ "form-data": "^4.0.0" } }, - "node_modules/@injectivelabs/sdk-ts/node_modules/bn.js": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", - "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==" - }, - "node_modules/@injectivelabs/sdk-ts/node_modules/ethereumjs-util": { - "version": "7.1.5", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.5.tgz", - "integrity": "sha512-SDl5kKrQAudFBUe5OJM9Ac6WmMyYmXX/6sTmLZ3ffG2eY6ZIGBes3pEDxNN6V72WyOw4CPD5RomKdsa8DAAwLg==", - "dependencies": { - "@types/bn.js": "^5.1.0", - "bn.js": "^5.1.2", - "create-hash": "^1.1.2", - "ethereum-cryptography": "^0.1.3", - "rlp": "^2.2.4" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/@injectivelabs/sdk-ts/node_modules/follow-redirects": { + "node_modules/aptos/node_modules/follow-redirects": { "version": "1.15.2", "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==", @@ -2926,7 +2842,7 @@ } } }, - "node_modules/@injectivelabs/sdk-ts/node_modules/form-data": { + "node_modules/aptos/node_modules/form-data": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", @@ -2939,1514 +2855,1318 @@ "node": ">= 6" } }, - "node_modules/@injectivelabs/sdk-ts/node_modules/graphql": { - "version": "16.6.0", - "resolved": "https://registry.npmjs.org/graphql/-/graphql-16.6.0.tgz", - "integrity": "sha512-KPIBPDlW7NxrbT/eh4qPXz5FiFdL5UbaA0XUNz2Rp3Z3hqBSkbj0GVjwFDztsWVauZUWsbKHgMg++sk8UX0bkw==", + "node_modules/aptos/node_modules/tweetnacl": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.3.tgz", + "integrity": "sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==" + }, + "node_modules/arg": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", + "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", + "dev": true + }, + "node_modules/array-back": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-3.1.0.tgz", + "integrity": "sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q==", "engines": { - "node": "^12.22.0 || ^14.16.0 || ^16.0.0 || >=17.0.0" + "node": ">=6" } }, - "node_modules/@injectivelabs/sdk-ts/node_modules/js-sha3": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.8.0.tgz", - "integrity": "sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q==" + "node_modules/async-limiter": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz", + "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==", + "peer": true }, - "node_modules/@injectivelabs/sdk-ts/node_modules/rxjs": { - "version": "7.8.0", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.0.tgz", - "integrity": "sha512-F2+gxDshqmIub1KdvZkaEfGDwLNpPvk9Fs6LD/MyQxNgMds/WH9OdDDXOmxUZpME+iSK3rQCctkL0DYyytUqMg==", + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" + }, + "node_modules/backo2": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/backo2/-/backo2-1.0.2.tgz", + "integrity": "sha1-MasayLEpNjRj41s+u2n038+6eUc=", + "optional": true, + "peer": true + }, + "node_modules/balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" + }, + "node_modules/base-x": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.8.tgz", + "integrity": "sha512-Rl/1AWP4J/zRrk54hhlxH4drNxPJXYUaKffODVI53/dAsV4t9fBxyxYKAVPU1XBHxYwOWP9h9H0hM2MVw4YfJA==", "dependencies": { - "tslib": "^2.1.0" + "safe-buffer": "^5.0.1" } }, - "node_modules/@injectivelabs/sdk-ts/node_modules/secp256k1": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-4.0.3.tgz", - "integrity": "sha512-NLZVf+ROMxwtEj3Xa562qgv2BK5e2WNmXPiOdVIPLgs6lyTzMvBq0aWTYMI5XCP9jZMVKOcqZLw/Wc4vDkuxhA==", + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "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/bech32": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/bech32/-/bech32-2.0.0.tgz", + "integrity": "sha512-LcknSilhIGatDAsY1ak2I8VtGaHNhgMSYVxFrGLXv+xLHytaKZKcaUJJUE7qmBr7h33o5YQwP55pMI0xmkpJwg==" + }, + "node_modules/big-integer": { + "version": "1.6.36", + "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.36.tgz", + "integrity": "sha512-t70bfa7HYEA1D9idDbmuv7YbsbVkQ+Hp+8KFSul4aE5e/i1bjCNIRYJZlA8Q8p0r9T8cF/RVvwUgRA//FydEyg==", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/bigint-buffer": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/bigint-buffer/-/bigint-buffer-1.1.5.tgz", + "integrity": "sha512-trfYco6AoZ+rKhKnxA0hgX0HAbVP/s808/EuDSe2JDzUnCp/xAsli35Orvk67UrTEcwuxZqYZDmfA2RXJgxVvA==", "hasInstallScript": true, "dependencies": { - "elliptic": "^6.5.4", - "node-addon-api": "^2.0.0", - "node-gyp-build": "^4.2.0" + "bindings": "^1.3.0" }, "engines": { - "node": ">=10.0.0" + "node": ">= 10.0.0" } }, - "node_modules/@injectivelabs/sdk-ts/node_modules/tslib": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz", - "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==" - }, - "node_modules/@injectivelabs/test-utils": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/@injectivelabs/test-utils/-/test-utils-1.10.0.tgz", - "integrity": "sha512-OS1AUq3Wu4nxhchpOa/zjAp2rgq5aKniLnNt07RzQQAM+4mPw3PcF7zWuClkUFAgVCxlpvFnV1f6LyzXW46mGQ==", - "hasInstallScript": true, - "dependencies": { - "axios": "^0.21.1", - "bignumber.js": "^9.0.1", - "link-module-alias": "^1.2.0", - "shx": "^0.3.2", - "snakecase-keys": "^5.1.2", - "store2": "^2.12.0" + "node_modules/binary-parser": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/binary-parser/-/binary-parser-2.2.1.tgz", + "integrity": "sha512-5ATpz/uPDgq5GgEDxTB4ouXCde7q2lqAQlSdBRQVl/AJnxmQmhIfyxJx+0MGu//D5rHQifkfGbWWlaysG0o9NA==", + "engines": { + "node": ">=12" } }, - "node_modules/@injectivelabs/test-utils/node_modules/axios": { - "version": "0.21.4", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.4.tgz", - "integrity": "sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==", + "node_modules/bindings": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", + "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", "dependencies": { - "follow-redirects": "^1.14.0" + "file-uri-to-path": "1.0.0" } }, - "node_modules/@injectivelabs/test-utils/node_modules/bignumber.js": { - "version": "9.1.1", - "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.1.1.tgz", - "integrity": "sha512-pHm4LsMJ6lzgNGVfZHjMoO8sdoRhOzOH4MLmY65Jg70bpxCKu5iOHNJyfF6OyvYw7t8Fpf35RuzUyqnQsj8Vig==", + "node_modules/bip32": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/bip32/-/bip32-2.0.6.tgz", + "integrity": "sha512-HpV5OMLLGTjSVblmrtYRfFFKuQB+GArM0+XP8HGWfJ5vxYBqo+DesvJwOdC2WJ3bCkZShGf0QIfoIpeomVzVdA==", + "dependencies": { + "@types/node": "10.12.18", + "bs58check": "^2.1.1", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "tiny-secp256k1": "^1.1.3", + "typeforce": "^1.11.5", + "wif": "^2.0.6" + }, "engines": { - "node": "*" + "node": ">=6.0.0" } }, - "node_modules/@injectivelabs/test-utils/node_modules/follow-redirects": { - "version": "1.15.2", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", - "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==", - "funding": [ - { - "type": "individual", - "url": "https://github.com/sponsors/RubenVerborgh" - } - ], - "engines": { - "node": ">=4.0" - }, - "peerDependenciesMeta": { - "debug": { - "optional": true - } - } + "node_modules/bip32/node_modules/@types/node": { + "version": "10.12.18", + "resolved": "https://registry.npmjs.org/@types/node/-/node-10.12.18.tgz", + "integrity": "sha512-fh+pAqt4xRzPfqA6eh3Z2y6fyZavRIumvjhaCL753+TVkGKGhpPeyrJG2JftD0T9q4GF00KjefsQ+PQNDdWQaQ==" }, - "node_modules/@injectivelabs/token-metadata": { - "version": "1.10.4", - "resolved": "https://registry.npmjs.org/@injectivelabs/token-metadata/-/token-metadata-1.10.4.tgz", - "integrity": "sha512-2uCRkL5pYaLSziva9w4cpH0AJ+JMgg2irA22dEkM5JPK9kLB4rv0gey1Us7EzcX6WnY4RRO3aN2e0uTG08WVzA==", - "hasInstallScript": true, + "node_modules/bip39": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/bip39/-/bip39-3.0.4.tgz", + "integrity": "sha512-YZKQlb752TrUWqHWj7XAwCSjYEgGAk+/Aas3V7NyjQeZYsztO8JnQUaCWhcnL4T+jL8nvB8typ2jRPzTlgugNw==", "dependencies": { - "@injectivelabs/exceptions": "^1.10.0", - "@injectivelabs/networks": "^1.10.0", - "@injectivelabs/ts-types": "^1.10.0", - "@injectivelabs/utils": "^1.10.0", - "@types/lodash.values": "^4.3.6", - "copyfiles": "^2.4.1", - "jsonschema": "^1.4.0", - "link-module-alias": "^1.2.0", - "lodash": "^4.17.21", - "lodash.values": "^4.3.0", - "shx": "^0.3.2" + "@types/node": "11.11.6", + "create-hash": "^1.1.0", + "pbkdf2": "^3.0.9", + "randombytes": "^2.0.1" } }, - "node_modules/@injectivelabs/ts-types": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/@injectivelabs/ts-types/-/ts-types-1.10.0.tgz", - "integrity": "sha512-2PczKP93fmkg4HIbg1ZWO115GF1oUQaCkc34SRDYDZ9oGjAnr3rV31tju4DW9uxT8eVb2olxqUy71LVHGD7AUA==", - "hasInstallScript": true, - "dependencies": { - "link-module-alias": "^1.2.0", - "shx": "^0.3.2" - } + "node_modules/bip39/node_modules/@types/node": { + "version": "11.11.6", + "resolved": "https://registry.npmjs.org/@types/node/-/node-11.11.6.tgz", + "integrity": "sha512-Exw4yUWMBXM3X+8oqzJNRqZSwUAaS4+7NdvHqQuFi/d+synz++xmX3QIf+BFqneW8N31R8Ky+sikfZUXq07ggQ==" }, - "node_modules/@injectivelabs/utils": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/@injectivelabs/utils/-/utils-1.10.0.tgz", - "integrity": "sha512-r7/z1+0Xd6XSYnLf+IO2ydQ0VRFBw2ETxWdvvkpsror3uYLvaAcuCjkRhNsOYM5R4VPCER+0TBm6sm5A1ahiQw==", - "hasInstallScript": true, + "node_modules/bip66": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/bip66/-/bip66-1.1.5.tgz", + "integrity": "sha1-AfqHSHhcpwlV1QESF9GzE5lpyiI=", + "optional": true, "dependencies": { - "@injectivelabs/exceptions": "^1.10.0", - "@injectivelabs/ts-types": "^1.10.0", - "axios": "^0.21.1", - "bignumber.js": "^9.0.1", - "http-status-codes": "^2.2.0", - "link-module-alias": "^1.2.0", - "shx": "^0.3.2", - "snakecase-keys": "^5.1.2", - "store2": "^2.12.0" + "safe-buffer": "^5.0.1" } }, - "node_modules/@injectivelabs/utils/node_modules/axios": { - "version": "0.21.4", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.4.tgz", - "integrity": "sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==", - "dependencies": { - "follow-redirects": "^1.14.0" - } + "node_modules/blakejs": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/blakejs/-/blakejs-1.1.0.tgz", + "integrity": "sha1-ad+S75U6qIylGjLfarHFShVfx6U=" }, - "node_modules/@injectivelabs/utils/node_modules/bignumber.js": { - "version": "9.1.1", - "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.1.1.tgz", - "integrity": "sha512-pHm4LsMJ6lzgNGVfZHjMoO8sdoRhOzOH4MLmY65Jg70bpxCKu5iOHNJyfF6OyvYw7t8Fpf35RuzUyqnQsj8Vig==", - "engines": { - "node": "*" - } + "node_modules/bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==" }, - "node_modules/@injectivelabs/utils/node_modules/follow-redirects": { - "version": "1.15.2", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", - "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==", - "funding": [ - { - "type": "individual", - "url": "https://github.com/sponsors/RubenVerborgh" - } - ], - "engines": { - "node": ">=4.0" - }, - "peerDependenciesMeta": { - "debug": { - "optional": true - } + "node_modules/borsh": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/borsh/-/borsh-0.7.0.tgz", + "integrity": "sha512-CLCsZGIBCFnPtkNnieW/a8wmreDmfUtjU2m9yHrzPXIlNbqVs0AQrSatSG6vdNYUqdc83tkQi2eHfF98ubzQLA==", + "dependencies": { + "bn.js": "^5.2.0", + "bs58": "^4.0.0", + "text-encoding-utf-8": "^1.0.2" } }, - "node_modules/@josephg/resolvable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@josephg/resolvable/-/resolvable-1.0.1.tgz", - "integrity": "sha512-CtzORUwWTTOTqfVtHaKRJ0I1kNQd1bpn3sUh8I3nJDVY+5/M/Oe1DnEWzPQvqq/xPIIkzzzIP7mfCoAjFRvDhg==", - "dev": true, - "optional": true + "node_modules/borsh/node_modules/bn.js": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", + "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==" }, - "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz", - "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==", - "dev": true, - "engines": { - "node": ">=6.0.0" + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" } }, - "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 + "node_modules/brorand": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", + "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=" }, - "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.9", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", - "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", - "dev": true, + "node_modules/browser-headers": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/browser-headers/-/browser-headers-0.4.1.tgz", + "integrity": "sha512-CA9hsySZVo9371qEHjHZtYxV2cFtVj5Wj/ZHi8ooEsrtm4vOnl9Y9HmyYWk9q+05d7K3rdoAE0j3MVEFVvtQtg==" + }, + "node_modules/browserify-aes": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", + "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", "dependencies": { - "@jridgewell/resolve-uri": "^3.0.3", - "@jridgewell/sourcemap-codec": "^1.4.10" + "buffer-xor": "^1.0.3", + "cipher-base": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.3", + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" } }, - "node_modules/@metamask/eth-sig-util": { + "node_modules/bs58": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@metamask/eth-sig-util/-/eth-sig-util-4.0.1.tgz", - "integrity": "sha512-tghyZKLHZjcdlDqCA3gNZmLeR0XvOE9U1qoQO9ohyAZT6Pya+H9vkBPcsyXytmYLNgVoin7CKCmweo/R43V+tQ==", + "resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz", + "integrity": "sha1-vhYedsNU9veIrkBx9j806MTwpCo=", "dependencies": { - "ethereumjs-abi": "^0.6.8", - "ethereumjs-util": "^6.2.1", - "ethjs-util": "^0.1.6", - "tweetnacl": "^1.0.3", - "tweetnacl-util": "^0.15.1" - }, + "base-x": "^3.0.2" + } + }, + "node_modules/bs58check": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/bs58check/-/bs58check-2.1.2.tgz", + "integrity": "sha512-0TS1jicxdU09dwJMNZtVAfzPi6Q6QeN0pM1Fkzrjn+XYHvzMKPU3pHVpva+769iNVSfIYWf7LJ6WR+BuuMf8cA==", + "dependencies": { + "bs58": "^4.0.0", + "create-hash": "^1.1.0", + "safe-buffer": "^5.1.2" + } + }, + "node_modules/buffer-layout": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/buffer-layout/-/buffer-layout-1.2.2.tgz", + "integrity": "sha512-kWSuLN694+KTk8SrYvCqwP2WcgQjoRCiF5b4QDvkkz8EmgD+aWAIceGFKMIAdmF/pH+vpgNV3d3kAKorcdAmWA==", "engines": { - "node": ">=12.0.0" + "node": ">=4.5" } }, - "node_modules/@metamask/eth-sig-util/node_modules/tweetnacl": { + "node_modules/buffer-xor": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.3.tgz", - "integrity": "sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==" + "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", + "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=" }, - "node_modules/@morgan-stanley/ts-mocking-bird": { - "version": "0.6.4", - "resolved": "https://registry.npmjs.org/@morgan-stanley/ts-mocking-bird/-/ts-mocking-bird-0.6.4.tgz", - "integrity": "sha512-57VJIflP8eR2xXa9cD1LUawh+Gh+BVQfVu0n6GALyg/AqV/Nz25kDRvws3i9kIe1PTrbsZZOYpsYp6bXPd6nVA==", + "node_modules/bufferutil": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/bufferutil/-/bufferutil-4.0.7.tgz", + "integrity": "sha512-kukuqc39WOHtdxtw4UScxF/WVnMFVSQVKhtx3AjZJzhd0RGZZldcrfSEbVsWWe6KNH253574cq5F+wpv0G9pJw==", + "hasInstallScript": true, "dependencies": { - "lodash": "^4.17.16", - "uuid": "^7.0.3" - }, - "peerDependencies": { - "jasmine": "2.x || 3.x || 4.x", - "jest": "26.x || 27.x || 28.x", - "typescript": ">=4.2" + "node-gyp-build": "^4.3.0" }, - "peerDependenciesMeta": { - "jasmine": { - "optional": true - }, - "jest": { - "optional": true - } + "engines": { + "node": ">=6.14.2" } }, - "node_modules/@morgan-stanley/ts-mocking-bird/node_modules/uuid": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-7.0.3.tgz", - "integrity": "sha512-DPSke0pXhTZgoF/d+WSt2QaKMCFSfx7QegxEWT+JOuHF5aWrKEn0G+ztjuJg/gG8/ItK+rbPCD/yNv8yyih6Cg==", - "bin": { - "uuid": "dist/bin/uuid" - } + "node_modules/capability": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/capability/-/capability-0.2.5.tgz", + "integrity": "sha512-rsJZYVCgXd08sPqwmaIqjAd5SUTfonV0z/gDJ8D6cN8wQphky1kkAYEqQ+hmDxTw7UihvBfjUVUSY+DBEe44jg==" }, - "node_modules/@multiformats/base-x": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@multiformats/base-x/-/base-x-4.0.1.tgz", - "integrity": "sha512-eMk0b9ReBbV23xXU693TAIrLyeO5iTgBZGSJfpqriG8UkYvr/hC9u9pyMlAakDNHWmbhMZCDs6KQO0jzKD8OTw==" + "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==", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } }, - "node_modules/@noble/ed25519": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/@noble/ed25519/-/ed25519-1.7.3.tgz", - "integrity": "sha512-iR8GBkDt0Q3GyaVcIu7mSsVIqnFbkbRzGLWlvhwunacoLwt4J3swfKhfaM6rN6WY+TBGoYT1GtT1mIh2/jGbRQ==", - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ] + "node_modules/cipher-base": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", + "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", + "dependencies": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } }, - "node_modules/@noble/hashes": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.3.0.tgz", - "integrity": "sha512-ilHEACi9DwqJB0pw7kv+Apvh50jiiSyR/cQ3y4W7lOR5mhvn/50FLUfsnfJz0BDZtl/RR16kXvptiv6q1msYZg==", - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ] + "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/@noble/secp256k1": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/@noble/secp256k1/-/secp256k1-1.7.1.tgz", - "integrity": "sha512-hOUk6AyBFmqVrv7k5WAw/LpszxVbj9gGN4JRkIX52fdFAj1UA61KXmZDvqVEm+pOyec3+fIeZB02LYa/pWOArw==", - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ] + "node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" }, - "node_modules/@openzeppelin/cli": { - "version": "2.8.2", - "resolved": "https://registry.npmjs.org/@openzeppelin/cli/-/cli-2.8.2.tgz", - "integrity": "sha512-K0m1UAywnweAwzbwwmqI+JSezDRnqDRWkKQMI2VV6T03LOXcG/L9oqO9KRORI8md+KbxBW9v5rmNV63wGQIRlA==", - "dev": true, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", "dependencies": { - "@openzeppelin/fuzzy-solidity-import-parser": "^0.1.2", - "@openzeppelin/upgrades": "2.8.0", - "@types/fs-extra": "^7.0.0", - "@types/npm": "^2.0.29", - "@types/semver": "^5.5.0", - "ajv": "^6.10.0", - "axios": "^0.18.0", - "bignumber.js": "^8.0.2", - "chalk": "^2.4.1", - "cheerio": "^1.0.0-rc.2", - "commander": "^2.15.1", - "env-paths": "^2.2.0", - "ethereumjs-util": "^6.1.0", - "find-up": "^3.0.0", - "firebase": "^7.8.0", - "fs-extra": "^7.0.1", - "glob": "^7.1.6", - "inquirer": "^6.4.1", - "is-url": "^1.2.4", - "lockfile": "^1.0.4", - "npm-programmatic": "0.0.12", - "rlp": "^2.2.3", - "semver": "^5.5.0", - "simple-git": "^1.110.0", - "solc-wrapper": "^0.6.3", - "spinnies": "^0.3.0", - "toposort": "^2.0.2", - "truffle-config": "1.1.16", - "ts-generator": "^0.0.8", - "typechain": "^1.0.3", - "typechain-target-truffle": "^1.0.1", - "typechain-target-web3-v1": "^1.0.1", - "underscore": "^1.9.1", - "uuid": "^3.3.3", - "web3": "1.2.2", - "web3-eth": "1.2.2", - "web3-eth-contract": "1.2.2", - "web3-utils": "1.2.2" + "delayed-stream": "~1.0.0" }, - "bin": { - "openzeppelin": "lib/bin/oz-cli.js", - "oz": "lib/bin/oz-cli.js", - "zos": "lib/bin/oz-cli.js" + "engines": { + "node": ">= 0.8" } }, - "node_modules/@openzeppelin/cli/node_modules/array-back": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-2.0.0.tgz", - "integrity": "sha512-eJv4pLLufP3g5kcZry0j6WXpIbzYw9GUB4mVJZno9wfwiBxbizTnHCw3VJb07cBihbFX48Y7oSrW9y+gt4glyw==", - "dev": true, + "node_modules/command-line-args": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/command-line-args/-/command-line-args-5.2.1.tgz", + "integrity": "sha512-H4UfQhZyakIjC74I9d34fGYDwk3XpSr17QhEd0Q3I9Xq1CETHo4Hcuo87WyWHpAF1aSLjLRf5lD9ZGX2qStUvg==", "dependencies": { - "typical": "^2.6.1" + "array-back": "^3.1.0", + "find-replace": "^3.0.0", + "lodash.camelcase": "^4.3.0", + "typical": "^4.0.0" }, "engines": { - "node": ">=4" + "node": ">=4.0.0" } }, - "node_modules/@openzeppelin/cli/node_modules/command-line-args": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/command-line-args/-/command-line-args-4.0.7.tgz", - "integrity": "sha512-aUdPvQRAyBvQd2n7jXcsMDz68ckBJELXNzBybCHOibUWEg0mWTnaYCSRU8h9R+aNRSvDihJtssSRCiDRpLaezA==", - "dev": true, + "node_modules/command-line-usage": { + "version": "6.1.3", + "resolved": "https://registry.npmjs.org/command-line-usage/-/command-line-usage-6.1.3.tgz", + "integrity": "sha512-sH5ZSPr+7UStsloltmDh7Ce5fb8XPlHyoPzTpyyMuYCtervL65+ubVZ6Q61cFtFl62UyJlc8/JwERRbAFPUqgw==", "dependencies": { - "array-back": "^2.0.0", - "find-replace": "^1.0.3", - "typical": "^2.6.1" + "array-back": "^4.0.2", + "chalk": "^2.4.2", + "table-layout": "^1.0.2", + "typical": "^5.2.0" }, - "bin": { - "command-line-args": "bin/cli.js" + "engines": { + "node": ">=8.0.0" } }, - "node_modules/@openzeppelin/cli/node_modules/find-replace": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/find-replace/-/find-replace-1.0.3.tgz", - "integrity": "sha512-KrUnjzDCD9426YnCP56zGYy/eieTnhtK6Vn++j+JJzmlsWWwEkDnsyVF575spT6HJ6Ow9tlbT3TQTDsa+O4UWA==", - "dev": true, - "dependencies": { - "array-back": "^1.0.4", - "test-value": "^2.1.0" - }, + "node_modules/command-line-usage/node_modules/array-back": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-4.0.2.tgz", + "integrity": "sha512-NbdMezxqf94cnNfWLL7V/im0Ub+Anbb0IoZhvzie8+4HJ4nMQuzHuy49FkGYCJK2yAloZ3meiB6AVMClbrI1vg==", "engines": { - "node": ">=4.0.0" + "node": ">=8" } }, - "node_modules/@openzeppelin/cli/node_modules/find-replace/node_modules/array-back": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-1.0.4.tgz", - "integrity": "sha512-1WxbZvrmyhkNoeYcizokbmh5oiOCIfyvGtcqbK3Ls1v1fKcquzxnQSceOx6tzq7jmai2kFLWIpGND2cLhH6TPw==", - "dev": true, - "dependencies": { - "typical": "^2.6.0" - }, + "node_modules/command-line-usage/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": ">=0.12.0" + "node": ">=8" } }, - "node_modules/@openzeppelin/cli/node_modules/js-sha3": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.8.0.tgz", - "integrity": "sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q==", - "dev": true + "node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" }, - "node_modules/@openzeppelin/cli/node_modules/typechain": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/typechain/-/typechain-1.0.5.tgz", - "integrity": "sha512-gbQmJXPKuYQ0p3tK+dMhpdQql/UPtSnkPQXw2QM/aqwCengI86z2vEM2e5rVQpmk/blFx1PYNdApSDxE12rR1Q==", - "dev": true, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" + }, + "node_modules/copyfiles": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/copyfiles/-/copyfiles-2.4.1.tgz", + "integrity": "sha512-fereAvAvxDrQDOXybk3Qu3dPbOoKoysFMWtkY3mv5BsL8//OSZVL5DCLYqgRfY5cWirgRzlC+WSrxp6Bo3eNZg==", "dependencies": { - "command-line-args": "^4.0.7", - "debug": "^3.0.1", - "fs-extra": "^7.0.0", - "js-sha3": "^0.8.0", - "lodash": "^4.17.15", - "ts-generator": "^0.0.8" + "glob": "^7.0.5", + "minimatch": "^3.0.3", + "mkdirp": "^1.0.4", + "noms": "0.0.0", + "through2": "^2.0.1", + "untildify": "^4.0.0", + "yargs": "^16.1.0" }, "bin": { - "typechain": "dist/cli/cli.js" + "copyfiles": "copyfiles", + "copyup": "copyfiles" } }, - "node_modules/@openzeppelin/cli/node_modules/typical": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/typical/-/typical-2.6.1.tgz", - "integrity": "sha512-ofhi8kjIje6npGozTip9Fr8iecmYfEbS06i0JnIg+rh51KakryWF4+jX8lLKZVhy6N+ID45WYSFCxPOdTWCzNg==", - "dev": true - }, - "node_modules/@openzeppelin/contracts": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/@openzeppelin/contracts/-/contracts-4.3.1.tgz", - "integrity": "sha512-QjgbPPlmDK2clK1hzjw2ROfY8KA5q+PfhDUUxZFEBCZP9fi6d5FuNoh/Uq0oCTMEKPmue69vhX2jcl0N/tFKGw==", - "dev": true - }, - "node_modules/@openzeppelin/fuzzy-solidity-import-parser": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/@openzeppelin/fuzzy-solidity-import-parser/-/fuzzy-solidity-import-parser-0.1.2.tgz", - "integrity": "sha512-leqEwfs8GlrPDrVcVc8Hv6LJ62ZzR0RgjwQNCkpT6H5jW9RB8YdR0a3inHoricSvw+sKI1b1hOqsCtPPZNnhng==", - "dev": true + "node_modules/copyfiles/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "engines": { + "node": ">=8" + } }, - "node_modules/@openzeppelin/upgrades": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/@openzeppelin/upgrades/-/upgrades-2.8.0.tgz", - "integrity": "sha512-LzjTQPeljPsgHDPdZyH9cMCbIHZILgd2cpNcYEkdsC2IylBYRHShlbEDXJV9snnqg9JWfzPiKIqyj3XVliwtqQ==", - "dev": true, + "node_modules/copyfiles/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dependencies": { - "@types/cbor": "^2.0.0", - "axios": "^0.18.0", - "bignumber.js": "^7.2.0", - "cbor": "^4.1.5", - "chalk": "^2.4.1", - "ethers": "^4.0.20", - "glob": "^7.1.3", - "lodash": "^4.17.15", - "semver": "^5.5.1", - "spinnies": "^0.4.2", - "truffle-flattener": "^1.4.0", - "web3": "1.2.2", - "web3-eth": "1.2.2", - "web3-eth-contract": "1.2.2", - "web3-utils": "1.2.2" - } - }, - "node_modules/@openzeppelin/upgrades/node_modules/bignumber.js": { - "version": "7.2.1", - "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-7.2.1.tgz", - "integrity": "sha512-S4XzBk5sMB+Rcb/LNcpzXr57VRTxgAvaAEDAl1AwRx27j00hT84O6OkteE7u8UB3NuaaygCRrEpqox4uDOrbdQ==", - "dev": true, + "color-convert": "^2.0.1" + }, "engines": { - "node": "*" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/@openzeppelin/upgrades/node_modules/ethers": { - "version": "4.0.49", - "resolved": "https://registry.npmjs.org/ethers/-/ethers-4.0.49.tgz", - "integrity": "sha512-kPltTvWiyu+OktYy1IStSO16i2e7cS9D9OxZ81q2UUaiNPVrm/RTcbxamCXF9VUSKzJIdJV68EAIhTEVBalRWg==", - "dev": true, - "dependencies": { - "aes-js": "3.0.0", - "bn.js": "^4.11.9", - "elliptic": "6.5.4", - "hash.js": "1.1.3", - "js-sha3": "0.5.7", - "scrypt-js": "2.0.4", - "setimmediate": "1.0.4", - "uuid": "2.0.1", - "xmlhttprequest": "1.8.0" - } - }, - "node_modules/@openzeppelin/upgrades/node_modules/spinnies": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/spinnies/-/spinnies-0.4.3.tgz", - "integrity": "sha512-TTA2vWXrXJpfThWAl2t2hchBnCMI1JM5Wmb2uyI7Zkefdw/xO98LDy6/SBYwQPiYXL3swx3Eb44ZxgoS8X5wpA==", - "dev": true, + "node_modules/copyfiles/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": { - "chalk": "^2.4.2", - "cli-cursor": "^3.0.0", - "strip-ansi": "^5.2.0" + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" } }, - "node_modules/@openzeppelin/upgrades/node_modules/uuid": { + "node_modules/copyfiles/node_modules/color-convert": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-2.0.1.tgz", - "integrity": "sha512-nWg9+Oa3qD2CQzHIP4qKUqwNfzKn8P0LtFhotaCTFchsV7ZfDhAybeip/HZVeMIpZi9JgY1E3nUlwaCmZT1sEg==", - "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", - "dev": true - }, - "node_modules/@project-serum/anchor": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@project-serum/anchor/-/anchor-0.25.0.tgz", - "integrity": "sha512-E6A5Y/ijqpfMJ5psJvbw0kVTzLZFUcOFgs6eSM2M2iWE1lVRF18T6hWZVNl6zqZsoz98jgnNHtVGJMs+ds9A7A==", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dependencies": { - "@project-serum/borsh": "^0.2.5", - "@solana/web3.js": "^1.36.0", - "base64-js": "^1.5.1", - "bn.js": "^5.1.2", - "bs58": "^4.0.1", - "buffer-layout": "^1.2.2", - "camelcase": "^5.3.1", - "cross-fetch": "^3.1.5", - "crypto-hash": "^1.3.0", - "eventemitter3": "^4.0.7", - "js-sha256": "^0.9.0", - "pako": "^2.0.3", - "snake-case": "^3.0.4", - "superstruct": "^0.15.4", - "toml": "^3.0.0" + "color-name": "~1.1.4" }, "engines": { - "node": ">=11" + "node": ">=7.0.0" } }, - "node_modules/@project-serum/anchor/node_modules/bn.js": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", - "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==" + "node_modules/copyfiles/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, - "node_modules/@project-serum/anchor/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/copyfiles/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/@project-serum/anchor/node_modules/cross-fetch": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.5.tgz", - "integrity": "sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw==", - "dependencies": { - "node-fetch": "2.6.7" + "node_modules/copyfiles/node_modules/is-fullwidth-code-point": { + "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==", + "engines": { + "node": ">=8" } }, - "node_modules/@project-serum/anchor/node_modules/dot-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz", - "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==", + "node_modules/copyfiles/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dependencies": { - "no-case": "^3.0.4", - "tslib": "^2.0.3" + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" } }, - "node_modules/@project-serum/anchor/node_modules/eventemitter3": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", - "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==" - }, - "node_modules/@project-serum/anchor/node_modules/lower-case": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", - "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", + "node_modules/copyfiles/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dependencies": { - "tslib": "^2.0.3" + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" } }, - "node_modules/@project-serum/anchor/node_modules/no-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", - "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", + "node_modules/copyfiles/node_modules/through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", "dependencies": { - "lower-case": "^2.0.2", - "tslib": "^2.0.3" + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" } }, - "node_modules/@project-serum/anchor/node_modules/node-fetch": { - "version": "2.6.7", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", - "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", + "node_modules/copyfiles/node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", "dependencies": { - "whatwg-url": "^5.0.0" + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" }, "engines": { - "node": "4.x || >=6.0.0" - }, - "peerDependencies": { - "encoding": "^0.1.0" + "node": ">=10" }, - "peerDependenciesMeta": { - "encoding": { - "optional": true - } + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, - "node_modules/@project-serum/anchor/node_modules/pako": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/pako/-/pako-2.1.0.tgz", - "integrity": "sha512-w+eufiZ1WuJYgPXbV/PO3NCMEc3xqylkKHzp8bxp1uW4qaSNQUkwmLLEc3kKsfz8lpV1F8Ht3U1Cm+9Srog2ug==" - }, - "node_modules/@project-serum/anchor/node_modules/snake-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/snake-case/-/snake-case-3.0.4.tgz", - "integrity": "sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==", - "dependencies": { - "dot-case": "^3.0.4", - "tslib": "^2.0.3" + "node_modules/copyfiles/node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "engines": { + "node": ">=10" } }, - "node_modules/@project-serum/anchor/node_modules/tslib": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz", - "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==" - }, - "node_modules/@project-serum/borsh": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/@project-serum/borsh/-/borsh-0.2.5.tgz", - "integrity": "sha512-UmeUkUoKdQ7rhx6Leve1SssMR/Ghv8qrEiyywyxSWg7ooV7StdpPBhciiy5eB3T0qU1BXvdRNC8TdrkxK7WC5Q==", + "node_modules/copyfiles/node_modules/yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", "dependencies": { - "bn.js": "^5.1.2", - "buffer-layout": "^1.2.0" + "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" - }, - "peerDependencies": { - "@solana/web3.js": "^1.2.0" } }, - "node_modules/@project-serum/borsh/node_modules/bn.js": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", - "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==" - }, - "node_modules/@protobufjs/aspromise": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", - "integrity": "sha1-m4sMxmPWaafY9vXQiToU00jzD78=" - }, - "node_modules/@protobufjs/base64": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz", - "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==" - }, - "node_modules/@protobufjs/codegen": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz", - "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==" - }, - "node_modules/@protobufjs/eventemitter": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz", - "integrity": "sha1-NVy8mLr61ZePntCV85diHx0Ga3A=" - }, - "node_modules/@protobufjs/fetch": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz", - "integrity": "sha1-upn7WYYUr2VwDBYZ/wbUVLDYTEU=", - "dependencies": { - "@protobufjs/aspromise": "^1.1.1", - "@protobufjs/inquire": "^1.1.0" + "node_modules/copyfiles/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/@protobufjs/float": { + "node_modules/core-util-is": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz", - "integrity": "sha1-Xp4avctz/Ap8uLKR33jIy9l7h9E=" - }, - "node_modules/@protobufjs/inquire": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz", - "integrity": "sha1-/yAOPnzyQp4tyvwRQIKOjMY48Ik=" - }, - "node_modules/@protobufjs/path": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz", - "integrity": "sha1-bMKyDFya1q0NzP0hynZz2Nf79o0=" - }, - "node_modules/@protobufjs/pool": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz", - "integrity": "sha1-Cf0V8tbTq/qbZbw2ZQbWrXhG/1Q=" + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" }, - "node_modules/@protobufjs/utf8": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", - "integrity": "sha1-p3c2C1s5oaLlEG+OhY8v0tBgxXA=" + "node_modules/cosmjs-types": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/cosmjs-types/-/cosmjs-types-0.7.1.tgz", + "integrity": "sha512-qP89SGwi6YpvMTrM9CPzTfZ0JPNlXzgimqMLsa/ZjzW+L6MC8TCr6XmoWtFOT6GSfefvJLwFWq7YCtL456Bdzg==", + "dependencies": { + "long": "^4.0.0", + "protobufjs": "~6.11.2" + } }, - "node_modules/@redux-saga/core": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/@redux-saga/core/-/core-1.2.3.tgz", - "integrity": "sha512-U1JO6ncFBAklFTwoQ3mjAeQZ6QGutsJzwNBjgVLSWDpZTRhobUzuVDS1qH3SKGJD8fvqoaYOjp6XJ3gCmeZWgA==", - "dev": true, + "node_modules/crc-32": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/crc-32/-/crc-32-1.2.0.tgz", + "integrity": "sha512-1uBwHxF+Y/4yF5G48fwnKq6QsIXheor3ZLPT80yGBV1oEUwpPojlEhQbWKVw1VwcTQyMGHK1/XMmTjmlsmTTGA==", "dependencies": { - "@babel/runtime": "^7.6.3", - "@redux-saga/deferred": "^1.2.1", - "@redux-saga/delay-p": "^1.2.1", - "@redux-saga/is": "^1.1.3", - "@redux-saga/symbols": "^1.1.3", - "@redux-saga/types": "^1.2.1", - "redux": "^4.0.4", - "typescript-tuple": "^2.2.1" + "exit-on-epipe": "~1.0.1", + "printj": "~1.1.0" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/redux-saga" + "bin": { + "crc32": "bin/crc32.njs" + }, + "engines": { + "node": ">=0.8" } }, - "node_modules/@redux-saga/core/node_modules/redux": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/redux/-/redux-4.2.1.tgz", - "integrity": "sha512-LAUYz4lc+Do8/g7aeRa8JkyDErK6ekstQaqWQrNRW//MY1TvCEpMtpTWvlQ+FPbWCx+Xixu/6SHt5N0HR+SB4w==", - "dev": true, + "node_modules/create-hash": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", + "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", "dependencies": { - "@babel/runtime": "^7.9.2" + "cipher-base": "^1.0.1", + "inherits": "^2.0.1", + "md5.js": "^1.3.4", + "ripemd160": "^2.0.1", + "sha.js": "^2.4.0" } }, - "node_modules/@redux-saga/deferred": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@redux-saga/deferred/-/deferred-1.2.1.tgz", - "integrity": "sha512-cmin3IuuzMdfQjA0lG4B+jX+9HdTgHZZ+6u3jRAOwGUxy77GSlTi4Qp2d6PM1PUoTmQUR5aijlA39scWWPF31g==", - "dev": true - }, - "node_modules/@redux-saga/delay-p": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@redux-saga/delay-p/-/delay-p-1.2.1.tgz", - "integrity": "sha512-MdiDxZdvb1m+Y0s4/hgdcAXntpUytr9g0hpcOO1XFVyyzkrDu3SKPgBFOtHn7lhu7n24ZKIAT1qtKyQjHqRd+w==", - "dev": true, + "node_modules/create-hmac": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", + "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", "dependencies": { - "@redux-saga/symbols": "^1.1.3" + "cipher-base": "^1.0.3", + "create-hash": "^1.1.0", + "inherits": "^2.0.1", + "ripemd160": "^2.0.0", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" } }, - "node_modules/@redux-saga/is": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@redux-saga/is/-/is-1.1.3.tgz", - "integrity": "sha512-naXrkETG1jLRfVfhOx/ZdLj0EyAzHYbgJWkXbB3qFliPcHKiWbv/ULQryOAEKyjrhiclmr6AMdgsXFyx7/yE6Q==", - "dev": true, - "dependencies": { - "@redux-saga/symbols": "^1.1.3", - "@redux-saga/types": "^1.2.1" - } - }, - "node_modules/@redux-saga/symbols": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@redux-saga/symbols/-/symbols-1.1.3.tgz", - "integrity": "sha512-hCx6ZvU4QAEUojETnX8EVg4ubNLBFl1Lps4j2tX7o45x/2qg37m3c6v+kSp8xjDJY+2tJw4QB3j8o8dsl1FDXg==", - "dev": true - }, - "node_modules/@redux-saga/types": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@redux-saga/types/-/types-1.2.1.tgz", - "integrity": "sha512-1dgmkh+3so0+LlBWRhGA33ua4MYr7tUOj+a9Si28vUi0IUFNbff1T3sgpeDJI/LaC75bBYnQ0A3wXjn0OrRNBA==", + "node_modules/create-require": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", + "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", "dev": true }, - "node_modules/@resolver-engine/core": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/@resolver-engine/core/-/core-0.2.1.tgz", - "integrity": "sha512-nsLQHmPJ77QuifqsIvqjaF5B9aHnDzJjp73Q1z6apY3e9nqYrx4Dtowhpsf7Jwftg/XzVDEMQC+OzUBNTS+S1A==", - "dev": true, + "node_modules/crypto-addr-codec": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/crypto-addr-codec/-/crypto-addr-codec-0.1.7.tgz", + "integrity": "sha512-X4hzfBzNhy4mAc3UpiXEC/L0jo5E8wAa9unsnA8nNXYzXjCcGk83hfC5avJWCSGT8V91xMnAS9AKMHmjw5+XCg==", "dependencies": { - "debug": "^3.1.0", - "request": "^2.85.0" + "base-x": "^3.0.8", + "big-integer": "1.6.36", + "blakejs": "^1.1.0", + "bs58": "^4.0.1", + "ripemd160-min": "0.0.6", + "safe-buffer": "^5.2.0", + "sha3": "^2.1.1" } }, - "node_modules/@resolver-engine/fs": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/@resolver-engine/fs/-/fs-0.2.1.tgz", - "integrity": "sha512-7kJInM1Qo2LJcKyDhuYzh9ZWd+mal/fynfL9BNjWOiTcOpX+jNfqb/UmGUqros5pceBITlWGqS4lU709yHFUbg==", - "dev": true, - "dependencies": { - "@resolver-engine/core": "^0.2.1", - "debug": "^3.1.0" + "node_modules/crypto-hash": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/crypto-hash/-/crypto-hash-1.3.0.tgz", + "integrity": "sha512-lyAZ0EMyjDkVvz8WOeVnuCPvKVBXcMv1l5SVqO1yC7PzTwrD/pPje/BIRbWhMoPe436U+Y2nD7f5bFx0kt+Sbg==", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@resolver-engine/imports": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/@resolver-engine/imports/-/imports-0.2.2.tgz", - "integrity": "sha512-u5/HUkvo8q34AA+hnxxqqXGfby5swnH0Myw91o3Sm2TETJlNKXibFGSKBavAH+wvWdBi4Z5gS2Odu0PowgVOUg==", - "dev": true, - "dependencies": { - "@resolver-engine/core": "^0.2.1", - "debug": "^3.1.0", - "hosted-git-info": "^2.6.0" + "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==" + }, + "node_modules/deep-extend": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", + "engines": { + "node": ">=4.0.0" } }, - "node_modules/@resolver-engine/imports-fs": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/@resolver-engine/imports-fs/-/imports-fs-0.2.2.tgz", - "integrity": "sha512-gFCgMvCwyppjwq0UzIjde/WI+yDs3oatJhozG9xdjJdewwtd7LiF0T5i9lrHAUtqrQbqoFE4E+ZMRVHWpWHpKQ==", - "dev": true, + "node_modules/define-properties": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", + "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", "dependencies": { - "@resolver-engine/fs": "^0.2.1", - "@resolver-engine/imports": "^0.2.2", - "debug": "^3.1.0" + "object-keys": "^1.0.12" + }, + "engines": { + "node": ">= 0.4" } }, - "node_modules/@scure/base": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@scure/base/-/base-1.1.1.tgz", - "integrity": "sha512-ZxOhsSyxYwLJj3pLZCefNitxsj093tb2vq90mp2txoYeBqbcjDjqFhyM8eUjq/uFm6zJ+mUuqxlS2FkuSY1MTA==", - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ] + "node_modules/delay": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/delay/-/delay-5.0.0.tgz", + "integrity": "sha512-ReEBKkIfe4ya47wlPYf/gu5ib6yUG0/Aez0JQZQz94kiWtRQvZIQbTiehsnwHvLSWJnQdhVeqYue7Id1dKr0qw==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, - "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/" - } - ], - "dependencies": { - "@noble/hashes": "~1.1.1", - "@scure/base": "~1.1.0" + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", + "engines": { + "node": ">=0.4.0" } }, - "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/" - } - ] + "node_modules/depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", + "engines": { + "node": ">= 0.6" + } }, - "node_modules/@sindresorhus/is": { - "version": "0.14.0", - "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", - "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==", + "node_modules/diff": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", "dev": true, "engines": { - "node": ">=6" + "node": ">=0.3.1" } }, - "node_modules/@solana/buffer-layout": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@solana/buffer-layout/-/buffer-layout-4.0.1.tgz", - "integrity": "sha512-E1ImOIAD1tBZFRdjeM4/pzTiTApC0AOBGwyAMS4fwIodCWArzJ3DWdoh8cKxeFM2fElkxBh2Aqts1BPC373rHA==", + "node_modules/dotenv": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-10.0.0.tgz", + "integrity": "sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q==", + "engines": { + "node": ">=10" + } + }, + "node_modules/drbg.js": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/drbg.js/-/drbg.js-1.0.1.tgz", + "integrity": "sha1-Pja2xCs3BDgjzbwzLVjzHiRFSAs=", + "optional": true, "dependencies": { - "buffer": "~6.0.3" + "browserify-aes": "^1.0.6", + "create-hash": "^1.1.2", + "create-hmac": "^1.1.4" }, "engines": { - "node": ">=5.10" + "node": ">=0.10" } }, - "node_modules/@solana/buffer-layout-utils": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/@solana/buffer-layout-utils/-/buffer-layout-utils-0.2.0.tgz", - "integrity": "sha512-szG4sxgJGktbuZYDg2FfNmkMi0DYQoVjN2h7ta1W1hPrwzarcFLBq9UpX1UjNXsNpT9dn+chgprtWGioUAr4/g==", + "node_modules/eccrypto": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/eccrypto/-/eccrypto-1.1.6.tgz", + "integrity": "sha512-d78ivVEzu7Tn0ZphUUaL43+jVPKTMPFGtmgtz1D0LrFn7cY3K8CdrvibuLz2AAkHBLKZtR8DMbB2ukRYFk987A==", + "hasInstallScript": true, "dependencies": { - "@solana/buffer-layout": "^4.0.0", - "@solana/web3.js": "^1.32.0", - "bigint-buffer": "^1.1.5", - "bignumber.js": "^9.0.1" + "acorn": "7.1.1", + "elliptic": "6.5.4", + "es6-promise": "4.2.8", + "nan": "2.14.0" }, - "engines": { - "node": ">= 10" + "optionalDependencies": { + "secp256k1": "3.7.1" } }, - "node_modules/@solana/buffer-layout-utils/node_modules/bignumber.js": { - "version": "9.1.1", - "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.1.1.tgz", - "integrity": "sha512-pHm4LsMJ6lzgNGVfZHjMoO8sdoRhOzOH4MLmY65Jg70bpxCKu5iOHNJyfF6OyvYw7t8Fpf35RuzUyqnQsj8Vig==", + "node_modules/eccrypto/node_modules/acorn": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.1.1.tgz", + "integrity": "sha512-add7dgA5ppRPxCFJoAGfMDi7PIBXq1RtGo7BhbLaxwrXPOmw8gq48Y9ozT01hUKy9byMjlR20EJhu5zlkErEkg==", + "bin": { + "acorn": "bin/acorn" + }, "engines": { - "node": "*" + "node": ">=0.4.0" } }, - "node_modules/@solana/buffer-layout/node_modules/buffer": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", - "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" - } + "node_modules/eccrypto/node_modules/nan": { + "version": "2.14.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.0.tgz", + "integrity": "sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg==" }, - "node_modules/@solana/spl-token": { - "version": "0.3.7", - "resolved": "https://registry.npmjs.org/@solana/spl-token/-/spl-token-0.3.7.tgz", - "integrity": "sha512-bKGxWTtIw6VDdCBngjtsGlKGLSmiu/8ghSt/IOYJV24BsymRbgq7r12GToeetpxmPaZYLddKwAz7+EwprLfkfg==", + "node_modules/eccrypto/node_modules/secp256k1": { + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-3.7.1.tgz", + "integrity": "sha512-1cf8sbnRreXrQFdH6qsg2H71Xw91fCCS9Yp021GnUNJzWJS/py96fS4lHbnTnouLp08Xj6jBoBB6V78Tdbdu5g==", + "hasInstallScript": true, + "optional": true, "dependencies": { - "@solana/buffer-layout": "^4.0.0", - "@solana/buffer-layout-utils": "^0.2.0", - "buffer": "^6.0.3" + "bindings": "^1.5.0", + "bip66": "^1.1.5", + "bn.js": "^4.11.8", + "create-hash": "^1.2.0", + "drbg.js": "^1.0.1", + "elliptic": "^6.4.1", + "nan": "^2.14.0", + "safe-buffer": "^5.1.2" }, "engines": { - "node": ">=16" - }, - "peerDependencies": { - "@solana/web3.js": "^1.47.4" + "node": ">=4.0.0" } }, - "node_modules/@solana/spl-token/node_modules/buffer": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", - "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", - "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/elliptic": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", + "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" - } - }, - "node_modules/@solana/web3.js": { - "version": "1.74.0", - "resolved": "https://registry.npmjs.org/@solana/web3.js/-/web3.js-1.74.0.tgz", - "integrity": "sha512-RKZyPqizPCxmpMGfpu4fuplNZEWCrhRBjjVstv5QnAJvgln1jgOfgui+rjl1ExnqDnWKg9uaZ5jtGROH/cwabg==", - "dependencies": { - "@babel/runtime": "^7.12.5", - "@noble/ed25519": "^1.7.0", - "@noble/hashes": "^1.1.2", - "@noble/secp256k1": "^1.6.3", - "@solana/buffer-layout": "^4.0.0", - "agentkeepalive": "^4.2.1", - "bigint-buffer": "^1.1.5", - "bn.js": "^5.0.0", - "borsh": "^0.7.0", - "bs58": "^4.0.1", - "buffer": "6.0.1", - "fast-stable-stringify": "^1.0.0", - "jayson": "^3.4.4", - "node-fetch": "^2.6.7", - "rpc-websockets": "^7.5.1", - "superstruct": "^0.14.2" + "bn.js": "^4.11.9", + "brorand": "^1.1.0", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.1", + "inherits": "^2.0.4", + "minimalistic-assert": "^1.0.1", + "minimalistic-crypto-utils": "^1.0.1" } }, - "node_modules/@solana/web3.js/node_modules/bn.js": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", - "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==" - }, - "node_modules/@solana/web3.js/node_modules/buffer": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.1.tgz", - "integrity": "sha512-rVAXBwEcEoYtxnHSO5iWyhzV/O1WMtkUYWlfdLS7FjU4PnSJJHEfHXi/uHPI5EwltmOA794gN3bm3/pzuctWjQ==", - "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/encoding": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", + "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", + "optional": true, + "peer": true, "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" + "iconv-lite": "^0.6.2" } }, - "node_modules/@solana/web3.js/node_modules/eventemitter3": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", - "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==" - }, - "node_modules/@solana/web3.js/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==", + "node_modules/encoding/node_modules/iconv-lite": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.2.tgz", + "integrity": "sha512-2y91h5OpQlolefMPmUlivelittSWy0rP+oYVpn6A7GwVHNE8AWzoYOBNmlwks3LobaJxgHCYZAnyNo2GgpNRNQ==", + "optional": true, + "peer": true, "dependencies": { - "whatwg-url": "^5.0.0" + "safer-buffer": ">= 2.1.2 < 3.0.0" }, "engines": { - "node": "4.x || >=6.0.0" - }, - "peerDependencies": { - "encoding": "^0.1.0" - }, - "peerDependenciesMeta": { - "encoding": { - "optional": true - } + "node": ">=0.10.0" } }, - "node_modules/@solana/web3.js/node_modules/rpc-websockets": { - "version": "7.5.1", - "resolved": "https://registry.npmjs.org/rpc-websockets/-/rpc-websockets-7.5.1.tgz", - "integrity": "sha512-kGFkeTsmd37pHPMaHIgN1LVKXMi0JD782v4Ds9ZKtLlwdTKjn+CxM9A9/gLT2LaOuEcEFGL98h1QWQtlOIdW0w==", + "node_modules/error-polyfill": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/error-polyfill/-/error-polyfill-0.1.3.tgz", + "integrity": "sha512-XHJk60ufE+TG/ydwp4lilOog549iiQF2OAPhkk9DdiYWMrltz5yhDz/xnKuenNwP7gy3dsibssO5QpVhkrSzzg==", "dependencies": { - "@babel/runtime": "^7.17.2", - "eventemitter3": "^4.0.7", - "uuid": "^8.3.2", - "ws": "^8.5.0" - }, - "funding": { - "type": "paypal", - "url": "https://paypal.me/kozjak" - }, - "optionalDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": "^5.0.2" + "capability": "^0.2.5", + "o3": "^1.0.3", + "u3": "^0.1.1" } }, - "node_modules/@solana/web3.js/node_modules/superstruct": { - "version": "0.14.2", - "resolved": "https://registry.npmjs.org/superstruct/-/superstruct-0.14.2.tgz", - "integrity": "sha512-nPewA6m9mR3d6k7WkZ8N8zpTWfenFH3q9pA2PkuiZxINr9DKB2+40wEQf0ixn8VaGuJ78AB6iWOtStI+/4FKZQ==" + "node_modules/es6-promise": { + "version": "4.2.8", + "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz", + "integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==" }, - "node_modules/@solana/web3.js/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==", - "bin": { - "uuid": "dist/bin/uuid" + "node_modules/es6-promisify": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz", + "integrity": "sha512-C+d6UdsYDk0lMebHNR4S2NybQMMngAOnOwYBQjTOiv0MkoJMP0Myw2mgpDLBcpfCmRLxyFqYhS/CfOENq4SJhQ==", + "dependencies": { + "es6-promise": "^4.0.3" } }, - "node_modules/@solana/web3.js/node_modules/ws": { - "version": "8.13.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.13.0.tgz", - "integrity": "sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA==", + "node_modules/escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": ">=5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } + "node": ">=6" } }, - "node_modules/@solidity-parser/parser": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/@solidity-parser/parser/-/parser-0.14.5.tgz", - "integrity": "sha512-6dKnHZn7fg/iQATVEzqyUOyEidbn05q7YA2mQ9hC0MMXhhV3/JrsxmFSYZAcr7j1yUP700LLhTruvJ3MiQmjJg==", - "dev": true, - "dependencies": { - "antlr4ts": "^0.5.0-alpha.4" + "node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "engines": { + "node": ">=0.8.0" } }, - "node_modules/@szmarczak/http-timer": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz", - "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==", - "dev": true, + "node_modules/eth-crypto": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/eth-crypto/-/eth-crypto-2.6.0.tgz", + "integrity": "sha512-GCX4ffFYRUGgnuWR5qxcZIRQJ1KEqPFiyXU9yVy7s6dtXIMlUXZQ2h+5ID6rFaOHWbpJbjfkC6YdhwtwRYCnug==", "dependencies": { - "defer-to-connect": "^1.0.1" + "@babel/runtime": "7.20.13", + "@ethereumjs/tx": "3.5.2", + "@types/bn.js": "5.1.1", + "eccrypto": "1.1.6", + "ethereumjs-util": "7.1.5", + "ethers": "5.7.2", + "secp256k1": "5.0.0" }, - "engines": { - "node": ">=6" + "funding": { + "url": "https://github.com/sponsors/pubkey" } }, - "node_modules/@terra-money/legacy.proto": { - "name": "@terra-money/terra.proto", - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/@terra-money/terra.proto/-/terra.proto-0.1.7.tgz", - "integrity": "sha512-NXD7f6pQCulvo6+mv6MAPzhOkUzRjgYVuHZE/apih+lVnPG5hDBU0rRYnOGGofwvKT5/jQoOENnFn/gioWWnyQ==", + "node_modules/eth-crypto/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": { - "google-protobuf": "^3.17.3", - "long": "^4.0.0", - "protobufjs": "~6.11.2" + "@types/node": "*" } }, - "node_modules/@terra-money/terra.js": { - "version": "3.1.8", - "resolved": "https://registry.npmjs.org/@terra-money/terra.js/-/terra.js-3.1.8.tgz", - "integrity": "sha512-Cd/fh4MswT00fDGVckoZ0cm77EpIy4+CjSDO0RqZ3Qfp4CJBp7sWTLRNsyzUWjdYOT5iTx+1wOMCYbbyKo6LAw==", + "node_modules/eth-crypto/node_modules/bn.js": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", + "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==" + }, + "node_modules/eth-crypto/node_modules/ethereumjs-util": { + "version": "7.1.5", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.5.tgz", + "integrity": "sha512-SDl5kKrQAudFBUe5OJM9Ac6WmMyYmXX/6sTmLZ3ffG2eY6ZIGBes3pEDxNN6V72WyOw4CPD5RomKdsa8DAAwLg==", "dependencies": { - "@classic-terra/terra.proto": "^1.1.0", - "@terra-money/terra.proto": "^2.1.0", - "axios": "^0.27.2", - "bech32": "^2.0.0", - "bip32": "^2.0.6", - "bip39": "^3.0.3", - "bufferutil": "^4.0.3", - "decimal.js": "^10.2.1", - "jscrypto": "^1.0.1", - "readable-stream": "^3.6.0", - "secp256k1": "^4.0.2", - "tmp": "^0.2.1", - "utf-8-validate": "^5.0.5", - "ws": "^7.5.9" + "@types/bn.js": "^5.1.0", + "bn.js": "^5.1.2", + "create-hash": "^1.1.2", + "ethereum-cryptography": "^0.1.3", + "rlp": "^2.2.4" }, "engines": { - "node": ">=14" + "node": ">=10.0.0" } }, - "node_modules/@terra-money/terra.js/node_modules/axios": { - "version": "0.27.2", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.27.2.tgz", - "integrity": "sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==", + "node_modules/eth-crypto/node_modules/node-addon-api": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-5.1.0.tgz", + "integrity": "sha512-eh0GgfEkpnoWDq+VY8OyvYhFEzBk6jIYbRKdIlyTiAXIVJ8PyBaKb0rp7oDtoddbdoHWhq8wwr+XZ81F1rpNdA==" + }, + "node_modules/eth-crypto/node_modules/secp256k1": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-5.0.0.tgz", + "integrity": "sha512-TKWX8xvoGHrxVdqbYeZM9w+izTF4b9z3NhSaDkdn81btvuh+ivbIMGT/zQvDtTFWhRlThpoz6LEYTr7n8A5GcA==", + "hasInstallScript": true, "dependencies": { - "follow-redirects": "^1.14.9", - "form-data": "^4.0.0" + "elliptic": "^6.5.4", + "node-addon-api": "^5.0.0", + "node-gyp-build": "^4.2.0" + }, + "engines": { + "node": ">=14.0.0" } }, - "node_modules/@terra-money/terra.js/node_modules/follow-redirects": { - "version": "1.15.2", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", - "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==", - "funding": [ - { - "type": "individual", - "url": "https://github.com/sponsors/RubenVerborgh" - } - ], - "engines": { - "node": ">=4.0" - }, - "peerDependenciesMeta": { - "debug": { - "optional": true - } - } - }, - "node_modules/@terra-money/terra.js/node_modules/form-data": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", - "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "node_modules/ethereum-cryptography": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz", + "integrity": "sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ==", "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 6" + "@types/pbkdf2": "^3.0.0", + "@types/secp256k1": "^4.0.1", + "blakejs": "^1.1.0", + "browserify-aes": "^1.2.0", + "bs58check": "^2.1.2", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "hash.js": "^1.1.7", + "keccak": "^3.0.0", + "pbkdf2": "^3.0.17", + "randombytes": "^2.1.0", + "safe-buffer": "^5.1.2", + "scrypt-js": "^3.0.0", + "secp256k1": "^4.0.1", + "setimmediate": "^1.0.5" } }, - "node_modules/@terra-money/terra.js/node_modules/readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "node_modules/ethereum-cryptography/node_modules/hash.js": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", + "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", "dependencies": { "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" + "minimalistic-assert": "^1.0.1" } }, - "node_modules/@terra-money/terra.js/node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "node_modules/ethereum-cryptography/node_modules/scrypt-js": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-3.0.1.tgz", + "integrity": "sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA==" + }, + "node_modules/ethereum-cryptography/node_modules/setimmediate": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", + "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=" + }, + "node_modules/ethereumjs-abi": { + "version": "0.6.8", + "resolved": "https://registry.npmjs.org/ethereumjs-abi/-/ethereumjs-abi-0.6.8.tgz", + "integrity": "sha512-Tx0r/iXI6r+lRsdvkFDlut0N08jWMnKRZ6Gkq+Nmw75lZe4e6o3EkSnkaBP5NF6+m5PTGAr9JP43N3LyeoglsA==", "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "bn.js": "^4.11.8", + "ethereumjs-util": "^6.0.0" } }, - "node_modules/@terra-money/terra.js/node_modules/tmp": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz", - "integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==", + "node_modules/ethereumjs-util": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-6.2.1.tgz", + "integrity": "sha512-W2Ktez4L01Vexijrm5EB6w7dg4n/TgpoYU4avuT5T3Vmnw/eCRtiBrJfQYS/DCSvDIOLn2k57GcHdeBcgVxAqw==", "dependencies": { - "rimraf": "^3.0.0" - }, - "engines": { - "node": ">=8.17.0" + "@types/bn.js": "^4.11.3", + "bn.js": "^4.11.0", + "create-hash": "^1.1.2", + "elliptic": "^6.5.2", + "ethereum-cryptography": "^0.1.3", + "ethjs-util": "0.1.6", + "rlp": "^2.2.3" } }, - "node_modules/@terra-money/terra.js/node_modules/ws": { - "version": "7.5.9", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz", - "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==", - "engines": { - "node": ">=8.3.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": "^5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true + "node_modules/ethers": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/ethers/-/ethers-5.7.2.tgz", + "integrity": "sha512-wswUsmWo1aOK8rR7DIKiWSw9DbLWe6x98Jrn8wcTflTVvaXhAMaB5zGAXy0GYQEQp9iO1iSHWVyARQm11zUtyg==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" }, - "utf-8-validate": { - "optional": true + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" } - } - }, - "node_modules/@terra-money/terra.proto": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@terra-money/terra.proto/-/terra.proto-2.1.0.tgz", - "integrity": "sha512-rhaMslv3Rkr+QsTQEZs64FKA4QlfO0DfQHaR6yct/EovenMkibDEQ63dEL6yJA6LCaEQGYhyVB9JO9pTUA8ybw==", + ], "dependencies": { - "@improbable-eng/grpc-web": "^0.14.1", - "google-protobuf": "^3.17.3", - "long": "^4.0.0", - "protobufjs": "~6.11.2" + "@ethersproject/abi": "5.7.0", + "@ethersproject/abstract-provider": "5.7.0", + "@ethersproject/abstract-signer": "5.7.0", + "@ethersproject/address": "5.7.0", + "@ethersproject/base64": "5.7.0", + "@ethersproject/basex": "5.7.0", + "@ethersproject/bignumber": "5.7.0", + "@ethersproject/bytes": "5.7.0", + "@ethersproject/constants": "5.7.0", + "@ethersproject/contracts": "5.7.0", + "@ethersproject/hash": "5.7.0", + "@ethersproject/hdnode": "5.7.0", + "@ethersproject/json-wallets": "5.7.0", + "@ethersproject/keccak256": "5.7.0", + "@ethersproject/logger": "5.7.0", + "@ethersproject/networks": "5.7.1", + "@ethersproject/pbkdf2": "5.7.0", + "@ethersproject/properties": "5.7.0", + "@ethersproject/providers": "5.7.2", + "@ethersproject/random": "5.7.0", + "@ethersproject/rlp": "5.7.0", + "@ethersproject/sha2": "5.7.0", + "@ethersproject/signing-key": "5.7.0", + "@ethersproject/solidity": "5.7.0", + "@ethersproject/strings": "5.7.0", + "@ethersproject/transactions": "5.7.0", + "@ethersproject/units": "5.7.0", + "@ethersproject/wallet": "5.7.0", + "@ethersproject/web": "5.7.1", + "@ethersproject/wordlists": "5.7.0" } }, - "node_modules/@terra-money/terra.proto/node_modules/@improbable-eng/grpc-web": { - "version": "0.14.1", - "resolved": "https://registry.npmjs.org/@improbable-eng/grpc-web/-/grpc-web-0.14.1.tgz", - "integrity": "sha512-XaIYuunepPxoiGVLLHmlnVminUGzBTnXr8Wv7khzmLWbNw4TCwJKX09GSMJlKhu/TRk6gms0ySFxewaETSBqgw==", + "node_modules/ethers/node_modules/@ethersproject/basex": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/basex/-/basex-5.7.0.tgz", + "integrity": "sha512-ywlh43GwZLv2Voc2gQVTKBoVQ1mti3d8HK5aMxsfu/nRDnMmNqaSJ3r3n85HBByT8OpoY96SXM1FogC533T4zw==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], "dependencies": { - "browser-headers": "^0.4.1" - }, - "peerDependencies": { - "google-protobuf": "^3.14.0" + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/properties": "^5.7.0" } }, - "node_modules/@truffle/abi-utils": { - "version": "0.3.9", - "resolved": "https://registry.npmjs.org/@truffle/abi-utils/-/abi-utils-0.3.9.tgz", - "integrity": "sha512-G5dqgwRHx5zwlXjz3QT8OJVfB2cOqWwD6DwKso0KttUt/zejhCjnkKq72rSgyeLMkz7wBB9ERLOsupLBILM8MA==", - "dev": true, + "node_modules/ethers/node_modules/@ethersproject/contracts": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/contracts/-/contracts-5.7.0.tgz", + "integrity": "sha512-5GJbzEU3X+d33CdfPhcyS+z8MzsTrBGk/sc+G+59+tPa9yFkl6HQ9D6L0QMgNTA9q8dT0XKxxkyp883XsQvbbg==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], "dependencies": { - "change-case": "3.0.2", - "fast-check": "3.1.1", - "web3-utils": "1.8.2" + "@ethersproject/abi": "^5.7.0", + "@ethersproject/abstract-provider": "^5.7.0", + "@ethersproject/abstract-signer": "^5.7.0", + "@ethersproject/address": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/transactions": "^5.7.0" } }, - "node_modules/@truffle/abi-utils/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==", - "dev": true, + "node_modules/ethers/node_modules/@ethersproject/hdnode": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/hdnode/-/hdnode-5.7.0.tgz", + "integrity": "sha512-OmyYo9EENBPPf4ERhR7oj6uAtUAhYGqOnIS+jE5pTXvdKBS99ikzq1E7Iv0ZQZ5V36Lqx1qZLeak0Ra16qpeOg==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], "dependencies": { - "@types/node": "*" + "@ethersproject/abstract-signer": "^5.7.0", + "@ethersproject/basex": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/pbkdf2": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/sha2": "^5.7.0", + "@ethersproject/signing-key": "^5.7.0", + "@ethersproject/strings": "^5.7.0", + "@ethersproject/transactions": "^5.7.0", + "@ethersproject/wordlists": "^5.7.0" } }, - "node_modules/@truffle/abi-utils/node_modules/bn.js": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", - "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==", - "dev": true - }, - "node_modules/@truffle/abi-utils/node_modules/ethereumjs-util": { - "version": "7.1.5", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.5.tgz", - "integrity": "sha512-SDl5kKrQAudFBUe5OJM9Ac6WmMyYmXX/6sTmLZ3ffG2eY6ZIGBes3pEDxNN6V72WyOw4CPD5RomKdsa8DAAwLg==", - "dev": true, - "dependencies": { - "@types/bn.js": "^5.1.0", - "bn.js": "^5.1.2", - "create-hash": "^1.1.2", - "ethereum-cryptography": "^0.1.3", - "rlp": "^2.2.4" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/@truffle/abi-utils/node_modules/web3-utils": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.8.2.tgz", - "integrity": "sha512-v7j6xhfLQfY7xQDrUP0BKbaNrmZ2/+egbqP9q3KYmOiPpnvAfol+32slgL0WX/5n8VPvKCK5EZ1HGrAVICSToA==", - "dev": true, - "dependencies": { - "bn.js": "^5.2.1", - "ethereum-bloom-filters": "^1.0.6", - "ethereumjs-util": "^7.1.0", - "ethjs-unit": "0.1.6", - "number-to-bn": "1.7.0", - "randombytes": "^2.1.0", - "utf8": "3.0.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@truffle/code-utils": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@truffle/code-utils/-/code-utils-3.0.2.tgz", - "integrity": "sha512-Q4FyYIX9G4GyMa8RJDk19kvgiyGZ1CGEx2RmVcXoCDZqEyiHLzqjvCRp+/fuBz2fv7szO6d+60LO1gLCGS1drQ==", - "dev": true, - "dependencies": { - "cbor": "^5.2.0" - } - }, - "node_modules/@truffle/code-utils/node_modules/bignumber.js": { - "version": "9.1.1", - "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.1.1.tgz", - "integrity": "sha512-pHm4LsMJ6lzgNGVfZHjMoO8sdoRhOzOH4MLmY65Jg70bpxCKu5iOHNJyfF6OyvYw7t8Fpf35RuzUyqnQsj8Vig==", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/@truffle/code-utils/node_modules/cbor": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/cbor/-/cbor-5.2.0.tgz", - "integrity": "sha512-5IMhi9e1QU76ppa5/ajP1BmMWZ2FHkhAhjeVKQ/EFCgYSEaeVaoGtL7cxJskf9oCCk+XjzaIdc3IuU/dbA/o2A==", - "dev": true, + "node_modules/ethers/node_modules/@ethersproject/json-wallets": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/json-wallets/-/json-wallets-5.7.0.tgz", + "integrity": "sha512-8oee5Xgu6+RKgJTkvEMl2wDgSPSAQ9MB/3JYjFV9jlKvcYHUXZC+cQp0njgmxdHkYWn8s6/IqIZYm0YWCjO/0g==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], "dependencies": { - "bignumber.js": "^9.0.1", - "nofilter": "^1.0.4" - }, - "engines": { - "node": ">=6.0.0" + "@ethersproject/abstract-signer": "^5.7.0", + "@ethersproject/address": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/hdnode": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/pbkdf2": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/random": "^5.7.0", + "@ethersproject/strings": "^5.7.0", + "@ethersproject/transactions": "^5.7.0", + "aes-js": "3.0.0", + "scrypt-js": "3.0.1" } }, - "node_modules/@truffle/compile-common": { - "version": "0.9.4", - "resolved": "https://registry.npmjs.org/@truffle/compile-common/-/compile-common-0.9.4.tgz", - "integrity": "sha512-mnqJB/hLiPHNf+WKwt/2MH6lv34xSG/SFCib7+ckAklutUqVLeFo8EwQxinuHNkU7LY0C+YgZXhK1WTCO5YRJQ==", - "dev": true, + "node_modules/ethers/node_modules/@ethersproject/pbkdf2": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/pbkdf2/-/pbkdf2-5.7.0.tgz", + "integrity": "sha512-oR/dBRZR6GTyaofd86DehG72hY6NpAjhabkhxgr3X2FpJtJuodEl2auADWBZfhDHgVCbu3/H/Ocq2uC6dpNjjw==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], "dependencies": { - "@truffle/error": "^0.2.0", - "colors": "1.4.0" + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/sha2": "^5.7.0" } }, - "node_modules/@truffle/compile-common/node_modules/@truffle/error": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/@truffle/error/-/error-0.2.0.tgz", - "integrity": "sha512-Fe0/z4WWb7IP2gBnv3l6zqP87Y0kSMs7oiSLakKJq17q3GUunrHSdioKuNspdggxkXIBhEQLhi8C+LJdwmHKWQ==", - "dev": true - }, - "node_modules/@truffle/config": { - "version": "1.3.55", - "resolved": "https://registry.npmjs.org/@truffle/config/-/config-1.3.55.tgz", - "integrity": "sha512-18nLgtnkDCwMiTB3fyJxXzRzuO28wtJyY3YIgJBMg4ujKYpAxeI6hOPafhrp9qGqR7tC0Pj1o+ip3wFxEZJtuQ==", - "dev": true, - "optional": true, + "node_modules/ethers/node_modules/@ethersproject/providers": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/@ethersproject/providers/-/providers-5.7.2.tgz", + "integrity": "sha512-g34EWZ1WWAVgr4aptGlVBF8mhl3VWjv+8hoAnzStu8Ah22VHBsuGzP17eb6xDVRzw895G4W7vvx60lFFur/1Rg==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], "dependencies": { - "@truffle/error": "^0.2.0", - "@truffle/events": "^0.1.22", - "@truffle/provider": "^0.3.8", - "conf": "^10.1.2", - "debug": "^4.3.1", - "find-up": "^2.1.0", - "lodash": "^4.17.21", - "original-require": "^1.0.1" + "@ethersproject/abstract-provider": "^5.7.0", + "@ethersproject/abstract-signer": "^5.7.0", + "@ethersproject/address": "^5.7.0", + "@ethersproject/base64": "^5.7.0", + "@ethersproject/basex": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/hash": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/networks": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/random": "^5.7.0", + "@ethersproject/rlp": "^5.7.0", + "@ethersproject/sha2": "^5.7.0", + "@ethersproject/strings": "^5.7.0", + "@ethersproject/transactions": "^5.7.0", + "@ethersproject/web": "^5.7.0", + "bech32": "1.1.4", + "ws": "7.4.6" } }, - "node_modules/@truffle/config/node_modules/@truffle/error": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/@truffle/error/-/error-0.2.0.tgz", - "integrity": "sha512-Fe0/z4WWb7IP2gBnv3l6zqP87Y0kSMs7oiSLakKJq17q3GUunrHSdioKuNspdggxkXIBhEQLhi8C+LJdwmHKWQ==", - "dev": true, - "optional": true - }, - "node_modules/@truffle/config/node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "optional": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true + "node_modules/ethers/node_modules/@ethersproject/random": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/random/-/random-5.7.0.tgz", + "integrity": "sha512-19WjScqRA8IIeWclFme75VMXSBvi4e6InrUNuaR4s5pTF2qNhcGdCUwdxUVGtDDqC00sDLCO93jPQoDUH4HVmQ==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" } - } - }, - "node_modules/@truffle/config/node_modules/find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ==", - "dev": true, - "optional": true, + ], "dependencies": { - "locate-path": "^2.0.0" - }, - "engines": { - "node": ">=4" + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0" } }, - "node_modules/@truffle/config/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true, - "optional": true - }, - "node_modules/@truffle/dashboard-message-bus-client": { - "version": "0.1.10", - "resolved": "https://registry.npmjs.org/@truffle/dashboard-message-bus-client/-/dashboard-message-bus-client-0.1.10.tgz", - "integrity": "sha512-r9GpdR96T8xzk2Z3Qq5lowixT6hQwDZ9F3D3oNjOv2AOwBrC7dGkt1Ra1FQRsABn4K7LUVvnjjn6rALlsatAdw==", - "dev": true, - "optional": true, + "node_modules/ethers/node_modules/@ethersproject/sha2": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/sha2/-/sha2-5.7.0.tgz", + "integrity": "sha512-gKlH42riwb3KYp0reLsFTokByAKoJdgFCwI+CCiX/k+Jm2mbNs6oOaCjYQSlI1+XBVejwH2KrmCbMAT/GnRDQw==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], "dependencies": { - "@truffle/dashboard-message-bus-common": "^0.1.5", - "@truffle/promise-tracker": "^0.1.5", - "axios": "1.2.4", - "debug": "^4.3.1", - "delay": "^5.0.0", - "isomorphic-ws": "^4.0.1", - "node-abort-controller": "^3.0.1", - "tiny-typed-emitter": "^2.1.0", - "ws": "^7.2.0" + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "hash.js": "1.1.7" } }, - "node_modules/@truffle/dashboard-message-bus-client/node_modules/axios": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.2.4.tgz", - "integrity": "sha512-lIQuCfBJvZB/Bv7+RWUqEJqNShGOVpk9v7P0ZWx5Ip0qY6u7JBAU6dzQPMLasU9vHL2uD8av/1FDJXj7n6c39w==", - "dev": true, - "optional": true, + "node_modules/ethers/node_modules/@ethersproject/solidity": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/solidity/-/solidity-5.7.0.tgz", + "integrity": "sha512-HmabMd2Dt/raavyaGukF4XxizWKhKQ24DoLtdNbBmNKUOPqwjsKQSdV9GQtj9CBEea9DlzETlVER1gYeXXBGaA==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], "dependencies": { - "follow-redirects": "^1.15.0", - "form-data": "^4.0.0", - "proxy-from-env": "^1.1.0" + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/sha2": "^5.7.0", + "@ethersproject/strings": "^5.7.0" } }, - "node_modules/@truffle/dashboard-message-bus-client/node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "optional": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true + "node_modules/ethers/node_modules/@ethersproject/units": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/units/-/units-5.7.0.tgz", + "integrity": "sha512-pD3xLMy3SJu9kG5xDGI7+xhTEmGXlEqXU4OfNapmfnxLVY4EMSSRp7j1k7eezutBPH7RBN/7QPnwR7hzNlEFeg==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" } + ], + "dependencies": { + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/logger": "^5.7.0" } }, - "node_modules/@truffle/dashboard-message-bus-client/node_modules/follow-redirects": { - "version": "1.15.2", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", - "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==", - "dev": true, + "node_modules/ethers/node_modules/@ethersproject/wallet": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/wallet/-/wallet-5.7.0.tgz", + "integrity": "sha512-MhmXlJXEJFBFVKrDLB4ZdDzxcBxQ3rLyCkhNqVu3CDYvR97E+8r01UgrI+TI99Le+aYm/in/0vp86guJuM7FCA==", "funding": [ { "type": "individual", - "url": "https://github.com/sponsors/RubenVerborgh" + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" } ], - "optional": true, - "engines": { - "node": ">=4.0" - }, - "peerDependenciesMeta": { - "debug": { - "optional": true + "dependencies": { + "@ethersproject/abstract-provider": "^5.7.0", + "@ethersproject/abstract-signer": "^5.7.0", + "@ethersproject/address": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/hash": "^5.7.0", + "@ethersproject/hdnode": "^5.7.0", + "@ethersproject/json-wallets": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/random": "^5.7.0", + "@ethersproject/signing-key": "^5.7.0", + "@ethersproject/transactions": "^5.7.0", + "@ethersproject/wordlists": "^5.7.0" + } + }, + "node_modules/ethers/node_modules/@ethersproject/wordlists": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/wordlists/-/wordlists-5.7.0.tgz", + "integrity": "sha512-S2TFNJNfHWVHNE6cNDjbVlZ6MgE17MIxMbMg2zv3wn+3XSJGosL1m9ZVv3GXCf/2ymSsQ+hRI5IzoMJTG6aoVA==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" } + ], + "dependencies": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/hash": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/strings": "^5.7.0" } }, - "node_modules/@truffle/dashboard-message-bus-client/node_modules/form-data": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", - "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", - "dev": true, - "optional": true, + "node_modules/ethers/node_modules/bech32": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/bech32/-/bech32-1.1.4.tgz", + "integrity": "sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ==" + }, + "node_modules/ethers/node_modules/hash.js": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", + "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 6" + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.1" } }, - "node_modules/@truffle/dashboard-message-bus-client/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true, - "optional": true + "node_modules/ethers/node_modules/scrypt-js": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-3.0.1.tgz", + "integrity": "sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA==" }, - "node_modules/@truffle/dashboard-message-bus-client/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, + "node_modules/ethers/node_modules/ws": { + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz", + "integrity": "sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==", "engines": { "node": ">=8.3.0" }, @@ -4463,2413 +4183,1568 @@ } } }, - "node_modules/@truffle/dashboard-message-bus-common": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/@truffle/dashboard-message-bus-common/-/dashboard-message-bus-common-0.1.5.tgz", - "integrity": "sha512-F4RfXi7ymNA3HFOlaujRJxAb3I8ciErCRQq+MZVaqjSPF9LSw23IizZsGpLaY43K2bGoBSxyNQRZWxsUEBujPQ==", - "dev": true, - "optional": true - }, - "node_modules/@truffle/db": { - "version": "2.0.23", - "resolved": "https://registry.npmjs.org/@truffle/db/-/db-2.0.23.tgz", - "integrity": "sha512-MoeqjxL5++plcBjZpm7eSFYovMzz6AF/FmMUvai94zdmgukbBmSHFegGLh2VruDvouFIpHw6IW5H6LEEkdddNg==", - "dev": true, - "optional": true, - "dependencies": { - "@graphql-tools/delegate": "^8.4.3", - "@graphql-tools/schema": "^8.3.1", - "@truffle/abi-utils": "^0.3.9", - "@truffle/code-utils": "^3.0.2", - "@truffle/config": "^1.3.55", - "abstract-leveldown": "^7.2.0", - "apollo-server": "^3.11.0", - "debug": "^4.3.1", - "fs-extra": "^9.1.0", - "graphql": "^15.3.0", - "graphql-tag": "^2.12.6", - "json-stable-stringify": "^1.0.1", - "pascal-case": "^2.0.1", - "pluralize": "^8.0.0", - "pouchdb": "7.3.0", - "pouchdb-adapter-memory": "^7.1.1", - "pouchdb-debug": "^7.1.1", - "pouchdb-find": "^7.0.0", - "web3-utils": "1.8.2" - } - }, - "node_modules/@truffle/db-loader": { - "version": "0.2.23", - "resolved": "https://registry.npmjs.org/@truffle/db-loader/-/db-loader-0.2.23.tgz", - "integrity": "sha512-YFsiyb0+gcGJJgk6/xihTnoom5lf8JS0nCeHGnKM1eIUtOcGTLgFs+jeXOpNa3DIgHHjZ3/p1CVWuZnXslf9UA==", - "dev": true, - "optionalDependencies": { - "@truffle/db": "^2.0.23" - } - }, - "node_modules/@truffle/db/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==", - "dev": true, - "optional": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@truffle/db/node_modules/abstract-leveldown": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-7.2.0.tgz", - "integrity": "sha512-DnhQwcFEaYsvYDnACLZhMmCWd3rkOeEvglpa4q5i/5Jlm3UIsWaxVzuXvDLFCSCWRO3yy2/+V/G7FusFgejnfQ==", - "dev": true, - "optional": true, + "node_modules/ethjs-util": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/ethjs-util/-/ethjs-util-0.1.6.tgz", + "integrity": "sha512-CUnVOQq7gSpDHZVVrQW8ExxUETWrnrvXYvYz55wOU8Uj4VCgw56XC2B/fVqQN+f7gmrnRHSLVnFAwsCuNwji8w==", "dependencies": { - "buffer": "^6.0.3", - "catering": "^2.0.0", - "is-buffer": "^2.0.5", - "level-concat-iterator": "^3.0.0", - "level-supports": "^2.0.1", - "queue-microtask": "^1.2.3" + "is-hex-prefixed": "1.0.0", + "strip-hex-prefix": "1.0.0" }, "engines": { - "node": ">=10" + "node": ">=6.5.0", + "npm": ">=3" } }, - "node_modules/@truffle/db/node_modules/bn.js": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", - "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==", - "dev": true, - "optional": true - }, - "node_modules/@truffle/db/node_modules/buffer": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", - "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", - "dev": true, - "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/eventemitter3": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-3.1.2.tgz", + "integrity": "sha512-tvtQIeLVHjDkJYnzf2dgVMxfuSGJeM/7UCG17TT4EumTfNtF+0nebF/4zWOIkCreAbtNqhGEboB6BWrwqNaw4Q==", "optional": true, + "peer": true + }, + "node_modules/evp_bytestokey": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", + "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" + "md5.js": "^1.3.4", + "safe-buffer": "^5.1.1" } }, - "node_modules/@truffle/db/node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "optional": true, - "dependencies": { - "ms": "2.1.2" - }, + "node_modules/exit-on-epipe": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/exit-on-epipe/-/exit-on-epipe-1.0.1.tgz", + "integrity": "sha512-h2z5mrROTxce56S+pnvAV890uu7ls7f1kEvVGJbw1OlFH3/mlJ5bkXu0KRyW94v37zzHPiUd55iLn3DA7TjWpw==", "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } + "node": ">=0.8" } }, - "node_modules/@truffle/db/node_modules/ethereumjs-util": { - "version": "7.1.5", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.5.tgz", - "integrity": "sha512-SDl5kKrQAudFBUe5OJM9Ac6WmMyYmXX/6sTmLZ3ffG2eY6ZIGBes3pEDxNN6V72WyOw4CPD5RomKdsa8DAAwLg==", - "dev": true, - "optional": true, - "dependencies": { - "@types/bn.js": "^5.1.0", - "bn.js": "^5.1.2", - "create-hash": "^1.1.2", - "ethereum-cryptography": "^0.1.3", - "rlp": "^2.2.4" - }, + "node_modules/eyes": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/eyes/-/eyes-0.1.8.tgz", + "integrity": "sha512-GipyPsXO1anza0AOZdy69Im7hGFCNB7Y/NGjDlZGJ3GJJLtwNSb2vrzYrTYJRrRloVx7pl+bhUaTB8yiccPvFQ==", "engines": { - "node": ">=10.0.0" + "node": "> 0.1.90" } }, - "node_modules/@truffle/db/node_modules/fs-extra": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", - "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", - "dev": true, - "optional": true, + "node_modules/fast-stable-stringify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fast-stable-stringify/-/fast-stable-stringify-1.0.0.tgz", + "integrity": "sha512-wpYMUmFu5f00Sm0cj2pfivpmawLZ0NKdviQ4w9zJeR8JVtOpOxHmLaJuj0vxvGqMJQWyP/COUkF75/57OKyRag==" + }, + "node_modules/file-uri-to-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", + "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==" + }, + "node_modules/find-replace": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-replace/-/find-replace-3.0.0.tgz", + "integrity": "sha512-6Tb2myMioCAgv5kfvP5/PkZZ/ntTpVK39fHY7WkWBgvbeE+VHd/tZuZ4mrC+bxh4cfOZeYKVPaJIZtZXV7GNCQ==", "dependencies": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" + "array-back": "^3.0.1" }, "engines": { - "node": ">=10" + "node": ">=4.0.0" } }, - "node_modules/@truffle/db/node_modules/jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", - "dev": true, - "optional": true, + "node_modules/fs-extra": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", + "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", "dependencies": { - "universalify": "^2.0.0" + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" }, - "optionalDependencies": { - "graceful-fs": "^4.1.6" + "engines": { + "node": ">=6 <7 || >=8" } }, - "node_modules/@truffle/db/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true, - "optional": true + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" }, - "node_modules/@truffle/db/node_modules/universalify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", - "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", - "dev": true, - "optional": true, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", "engines": { - "node": ">= 10.0.0" + "node": "6.* || 8.* || >= 10.*" } }, - "node_modules/@truffle/db/node_modules/web3-utils": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.8.2.tgz", - "integrity": "sha512-v7j6xhfLQfY7xQDrUP0BKbaNrmZ2/+egbqP9q3KYmOiPpnvAfol+32slgL0WX/5n8VPvKCK5EZ1HGrAVICSToA==", - "dev": true, - "optional": true, + "node_modules/glob": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", "dependencies": { - "bn.js": "^5.2.1", - "ethereum-bloom-filters": "^1.0.6", - "ethereumjs-util": "^7.1.0", - "ethjs-unit": "0.1.6", - "number-to-bn": "1.7.0", - "randombytes": "^2.1.0", - "utf8": "3.0.0" + "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": ">=8.0.0" + "node": "*" } }, - "node_modules/@truffle/debugger": { - "version": "11.0.34", - "resolved": "https://registry.npmjs.org/@truffle/debugger/-/debugger-11.0.34.tgz", - "integrity": "sha512-24mJiH7o16OMxFHyH241yu0QnWOwbc7MOl8gFrOgWxoXwhkcNv0fy3++i/k7pi9EZdOGK84ppe4KuMTvW0x9Sg==", - "dev": true, + "node_modules/globalthis": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.2.tgz", + "integrity": "sha512-ZQnSFO1la8P7auIOQECnm0sSuoMeaSq0EEdXMBFF2QJO4uNcwbyhSgG3MruWNbFTqCLmxVwGOl7LZ9kASvHdeQ==", "dependencies": { - "@truffle/abi-utils": "^0.3.9", - "@truffle/codec": "^0.14.17", - "@truffle/source-map-utils": "^1.3.110", - "bn.js": "^5.1.3", - "debug": "^4.3.1", - "json-pointer": "^0.6.1", - "json-stable-stringify": "^1.0.1", - "lodash": "^4.17.21", - "redux": "^3.7.2", - "redux-saga": "1.0.0", - "reselect-tree": "^1.3.7", - "semver": "7.3.7", - "web3": "1.8.2", - "web3-eth-abi": "1.8.2" - } - }, - "node_modules/@truffle/debugger/node_modules/@ethereumjs/common": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@ethereumjs/common/-/common-2.5.0.tgz", - "integrity": "sha512-DEHjW6e38o+JmB/NO3GZBpW4lpaiBpkFgXF6jLcJ6gETBYpEyaA5nTimsWBUJR3Vmtm/didUEbNjajskugZORg==", - "dev": true, - "dependencies": { - "crc-32": "^1.2.0", - "ethereumjs-util": "^7.1.1" - } - }, - "node_modules/@truffle/debugger/node_modules/@ethereumjs/tx": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/@ethereumjs/tx/-/tx-3.3.2.tgz", - "integrity": "sha512-6AaJhwg4ucmwTvw/1qLaZUX5miWrwZ4nLOUsKyb/HtzS3BMw/CasKhdi1ims9mBKeK9sOJCH4qGKOBGyJCeeog==", - "dev": true, - "dependencies": { - "@ethereumjs/common": "^2.5.0", - "ethereumjs-util": "^7.1.2" - } - }, - "node_modules/@truffle/debugger/node_modules/@sindresorhus/is": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.6.0.tgz", - "integrity": "sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/is?sponsor=1" - } - }, - "node_modules/@truffle/debugger/node_modules/@szmarczak/http-timer": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-5.0.1.tgz", - "integrity": "sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw==", - "dev": true, - "dependencies": { - "defer-to-connect": "^2.0.1" + "define-properties": "^1.1.3" }, "engines": { - "node": ">=14.16" - } - }, - "node_modules/@truffle/debugger/node_modules/@truffle/codec": { - "version": "0.14.17", - "resolved": "https://registry.npmjs.org/@truffle/codec/-/codec-0.14.17.tgz", - "integrity": "sha512-kD4dD86huLeaBEq5R8D1zleJEu6NsXbyYLdXl1V1TKdiO8odw5CBC6Y/+wdu5d3t1dyEYrTbhn1dqknZa52pmw==", - "dev": true, - "dependencies": { - "@truffle/abi-utils": "^0.3.9", - "@truffle/compile-common": "^0.9.4", - "big.js": "^6.0.3", - "bn.js": "^5.1.3", - "cbor": "^5.2.0", - "debug": "^4.3.1", - "lodash": "^4.17.21", - "semver": "7.3.7", - "utf8": "^3.0.0", - "web3-utils": "1.8.2" - } - }, - "node_modules/@truffle/debugger/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==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@truffle/debugger/node_modules/@types/node": { - "version": "12.20.55", - "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.55.tgz", - "integrity": "sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==", - "dev": true - }, - "node_modules/@truffle/debugger/node_modules/big.js": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/big.js/-/big.js-6.2.1.tgz", - "integrity": "sha512-bCtHMwL9LeDIozFn+oNhhFoq+yQ3BNdnsLSASUxLciOb1vgvpHsIO1dsENiGMgbb4SkP5TrzWzRiLddn8ahVOQ==", - "dev": true, - "engines": { - "node": "*" + "node": ">= 0.4" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/bigjs" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/@truffle/debugger/node_modules/bignumber.js": { - "version": "9.1.1", - "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.1.1.tgz", - "integrity": "sha512-pHm4LsMJ6lzgNGVfZHjMoO8sdoRhOzOH4MLmY65Jg70bpxCKu5iOHNJyfF6OyvYw7t8Fpf35RuzUyqnQsj8Vig==", - "dev": true, - "engines": { - "node": "*" - } + "node_modules/google-protobuf": { + "version": "3.21.2", + "resolved": "https://registry.npmjs.org/google-protobuf/-/google-protobuf-3.21.2.tgz", + "integrity": "sha512-3MSOYFO5U9mPGikIYCzK0SaThypfGgS6bHqrUGXG3DPHCrb+txNqeEcns1W0lkGfk0rCyNXm7xB9rMxnCiZOoA==" }, - "node_modules/@truffle/debugger/node_modules/bn.js": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", - "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==", - "dev": true + "node_modules/graceful-fs": { + "version": "4.2.10", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", + "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==" }, - "node_modules/@truffle/debugger/node_modules/cacheable-request": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-7.0.2.tgz", - "integrity": "sha512-pouW8/FmiPQbuGpkXQ9BAPv/Mo5xDGANgSNXzTzJ8DrKGuXOssM4wIQRjfanNRh3Yu5cfYPvcorqbhg2KIJtew==", - "dev": true, - "dependencies": { - "clone-response": "^1.0.2", - "get-stream": "^5.1.0", - "http-cache-semantics": "^4.0.0", - "keyv": "^4.0.0", - "lowercase-keys": "^2.0.0", - "normalize-url": "^6.0.1", - "responselike": "^2.0.0" - }, + "node_modules/graphql": { + "version": "15.8.0", + "resolved": "https://registry.npmjs.org/graphql/-/graphql-15.8.0.tgz", + "integrity": "sha512-5gghUc24tP9HRznNpV2+FIoq3xKkj5dTQqf4v0CpdPbFVwFkWoxOM+o+2OC9ZSvjEMTjfmG9QT+gcvggTwW1zw==", + "peer": true, "engines": { - "node": ">=8" + "node": ">= 10.x" } }, - "node_modules/@truffle/debugger/node_modules/cacheable-request/node_modules/get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "dev": true, + "node_modules/graphql-tag": { + "version": "2.12.6", + "resolved": "https://registry.npmjs.org/graphql-tag/-/graphql-tag-2.12.6.tgz", + "integrity": "sha512-FdSNcu2QQcWnM2VNvSCCDCVS5PpPqpzgFT8+GXzqJuoDd0CBncxCY278u4mhRO7tMgo2JjgJA5aZ+nWSQ/Z+xg==", "dependencies": { - "pump": "^3.0.0" + "tslib": "^2.1.0" }, "engines": { - "node": ">=8" + "node": ">=10" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "peerDependencies": { + "graphql": "^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0" } }, - "node_modules/@truffle/debugger/node_modules/cacheable-request/node_modules/lowercase-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", - "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", - "dev": true, - "engines": { - "node": ">=8" - } + "node_modules/graphql-tag/node_modules/tslib": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", + "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" }, - "node_modules/@truffle/debugger/node_modules/cbor": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/cbor/-/cbor-5.2.0.tgz", - "integrity": "sha512-5IMhi9e1QU76ppa5/ajP1BmMWZ2FHkhAhjeVKQ/EFCgYSEaeVaoGtL7cxJskf9oCCk+XjzaIdc3IuU/dbA/o2A==", - "dev": true, - "dependencies": { - "bignumber.js": "^9.0.1", - "nofilter": "^1.0.4" - }, + "node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@truffle/debugger/node_modules/cross-fetch": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.5.tgz", - "integrity": "sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw==", - "dev": true, - "dependencies": { - "node-fetch": "2.6.7" + "node": ">=4" } }, - "node_modules/@truffle/debugger/node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, + "node_modules/hash-base": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", + "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", "dependencies": { - "ms": "2.1.2" + "inherits": "^2.0.4", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" }, "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } + "node": ">=4" } }, - "node_modules/@truffle/debugger/node_modules/decompress-response": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", - "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", - "dev": true, + "node_modules/hash-base/node_modules/readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", "dependencies": { - "mimic-response": "^3.1.0" - }, - "engines": { - "node": ">=10" + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@truffle/debugger/node_modules/defer-to-connect": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz", - "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==", - "dev": true, "engines": { - "node": ">=10" + "node": ">= 6" } }, - "node_modules/@truffle/debugger/node_modules/ethereumjs-util": { - "version": "7.1.5", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.5.tgz", - "integrity": "sha512-SDl5kKrQAudFBUe5OJM9Ac6WmMyYmXX/6sTmLZ3ffG2eY6ZIGBes3pEDxNN6V72WyOw4CPD5RomKdsa8DAAwLg==", - "dev": true, + "node_modules/hash.js": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.3.tgz", + "integrity": "sha512-/UETyP0W22QILqS+6HowevwhEFJ3MBJnwTf75Qob9Wz9t0DPuisL8kW8YZMK62dHAKE1c1p+gY1TtOLY+USEHA==", "dependencies": { - "@types/bn.js": "^5.1.0", - "bn.js": "^5.1.2", - "create-hash": "^1.1.2", - "ethereum-cryptography": "^0.1.3", - "rlp": "^2.2.4" - }, - "engines": { - "node": ">=10.0.0" + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.0" } }, - "node_modules/@truffle/debugger/node_modules/eventemitter3": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.4.tgz", - "integrity": "sha512-rlaVLnVxtxvoyLsQQFBx53YmXHDxRIzzTLbdfxqi4yocpSjAxXwkU0cScM5JgSKMqEhrZpnvQ2D9gjylR0AimQ==", - "dev": true + "node_modules/hi-base32": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/hi-base32/-/hi-base32-0.5.1.tgz", + "integrity": "sha512-EmBBpvdYh/4XxsnUybsPag6VikPYnN30td+vQk+GI3qpahVEG9+gTkG0aXVxTjBqQ5T6ijbWIu77O+C5WFWsnA==" }, - "node_modules/@truffle/debugger/node_modules/fs-extra": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-4.0.3.tgz", - "integrity": "sha512-q6rbdDd1o2mAnQreO7YADIxf/Whx4AHBiRf6d+/cVT8h44ss+lHgxf1FemcqDnQt9X3ct4McHr+JMGlYSsK7Cg==", - "dev": true, + "node_modules/hmac-drbg": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", + "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", "dependencies": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" + "hash.js": "^1.0.3", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.1" } }, - "node_modules/@truffle/debugger/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/hoist-non-react-statics": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", + "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", + "dependencies": { + "react-is": "^16.7.0" } }, - "node_modules/@truffle/debugger/node_modules/got": { - "version": "12.1.0", - "resolved": "https://registry.npmjs.org/got/-/got-12.1.0.tgz", - "integrity": "sha512-hBv2ty9QN2RdbJJMK3hesmSkFTjVIHyIDDbssCKnSmq62edGgImJWD10Eb1k77TiV1bxloxqcFAVK8+9pkhOig==", - "dev": true, + "node_modules/http-errors": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz", + "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==", "dependencies": { - "@sindresorhus/is": "^4.6.0", - "@szmarczak/http-timer": "^5.0.1", - "@types/cacheable-request": "^6.0.2", - "@types/responselike": "^1.0.0", - "cacheable-lookup": "^6.0.4", - "cacheable-request": "^7.0.2", - "decompress-response": "^6.0.0", - "form-data-encoder": "1.7.1", - "get-stream": "^6.0.1", - "http2-wrapper": "^2.1.10", - "lowercase-keys": "^3.0.0", - "p-cancelable": "^3.0.0", - "responselike": "^2.0.0" + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.1", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.0" }, "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sindresorhus/got?sponsor=1" + "node": ">= 0.6" } }, - "node_modules/@truffle/debugger/node_modules/json-buffer": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", - "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", - "dev": true - }, - "node_modules/@truffle/debugger/node_modules/keyv": { - "version": "4.5.2", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.2.tgz", - "integrity": "sha512-5MHbFaKn8cNSmVW7BYnijeAVlE4cYA/SVkifVgrh7yotnfhKmjuXpDKjrABLnT0SfHWV21P8ow07OGfRrNDg8g==", - "dev": true, - "dependencies": { - "json-buffer": "3.0.1" - } + "node_modules/http-errors/node_modules/inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" }, - "node_modules/@truffle/debugger/node_modules/lowercase-keys": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-3.0.0.tgz", - "integrity": "sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ==", - "dev": true, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } + "node_modules/http-status-codes": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/http-status-codes/-/http-status-codes-2.2.0.tgz", + "integrity": "sha512-feERVo9iWxvnejp3SEfm/+oNG517npqL2/PIA8ORjyOZjGC7TwCRQsZylciLS64i6pJ0wRYz3rkXLRwbtFa8Ng==" }, - "node_modules/@truffle/debugger/node_modules/mimic-response": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", - "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node_modules/humanize-ms": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz", + "integrity": "sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==", + "dependencies": { + "ms": "^2.0.0" } }, - "node_modules/@truffle/debugger/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true + "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/@truffle/debugger/node_modules/node-fetch": { - "version": "2.6.7", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", - "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", - "dev": true, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", "dependencies": { - "whatwg-url": "^5.0.0" - }, - "engines": { - "node": "4.x || >=6.0.0" - }, - "peerDependencies": { - "encoding": "^0.1.0" - }, - "peerDependenciesMeta": { - "encoding": { - "optional": true - } + "once": "^1.3.0", + "wrappy": "1" } }, - "node_modules/@truffle/debugger/node_modules/normalize-url": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", - "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" }, - "node_modules/@truffle/debugger/node_modules/oboe": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/oboe/-/oboe-2.1.5.tgz", - "integrity": "sha512-zRFWiF+FoicxEs3jNI/WYUrVEgA7DeET/InK0XQuudGHRg8iIob3cNPrJTKaz4004uaA9Pbe+Dwa8iluhjLZWA==", - "dev": true, - "dependencies": { - "http-https": "^1.0.0" + "node_modules/interpret": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", + "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==", + "engines": { + "node": ">= 0.10" } }, - "node_modules/@truffle/debugger/node_modules/p-cancelable": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-3.0.0.tgz", - "integrity": "sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw==", - "dev": true, + "node_modules/is-hex-prefixed": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-hex-prefixed/-/is-hex-prefixed-1.0.0.tgz", + "integrity": "sha1-fY035q135dEnFIkTxXPggtd39VQ=", "engines": { - "node": ">=12.20" + "node": ">=6.5.0", + "npm": ">=3" } }, - "node_modules/@truffle/debugger/node_modules/responselike": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/responselike/-/responselike-2.0.1.tgz", - "integrity": "sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw==", - "dev": true, - "dependencies": { - "lowercase-keys": "^2.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } + "node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" }, - "node_modules/@truffle/debugger/node_modules/responselike/node_modules/lowercase-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", - "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", - "dev": true, - "engines": { - "node": ">=8" + "node_modules/isomorphic-ws": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/isomorphic-ws/-/isomorphic-ws-4.0.1.tgz", + "integrity": "sha512-BhBvN2MBpWTaSHdWRb/bwdZJ1WaehQ2L1KngkCkfLUGF0mAWAT1sQUQacEmQ0jXkFw/czDXPNQSL5u2/Krsz1w==", + "peerDependencies": { + "ws": "*" } }, - "node_modules/@truffle/debugger/node_modules/scrypt-js": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-3.0.1.tgz", - "integrity": "sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA==", - "dev": true + "node_modules/iterall": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/iterall/-/iterall-1.3.0.tgz", + "integrity": "sha512-QZ9qOMdF+QLHxy1QIpUHUU1D5pS2CG2P69LF6L6CPjPYA/XMOmKV3PZpawHoAjHNyB0swdVTRxdYT4tbBbxqwg==", + "optional": true, + "peer": true }, - "node_modules/@truffle/debugger/node_modules/semver": { - "version": "7.3.7", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", - "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", - "dev": true, + "node_modules/jayson": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/jayson/-/jayson-3.7.0.tgz", + "integrity": "sha512-tfy39KJMrrXJ+mFcMpxwBvFDetS8LAID93+rycFglIQM4kl3uNR3W4lBLE/FFhsoUCEox5Dt2adVpDm/XtebbQ==", "dependencies": { - "lru-cache": "^6.0.0" + "@types/connect": "^3.4.33", + "@types/node": "^12.12.54", + "@types/ws": "^7.4.4", + "commander": "^2.20.3", + "delay": "^5.0.0", + "es6-promisify": "^5.0.0", + "eyes": "^0.1.8", + "isomorphic-ws": "^4.0.1", + "json-stringify-safe": "^5.0.1", + "JSONStream": "^1.3.5", + "lodash": "^4.17.20", + "uuid": "^8.3.2", + "ws": "^7.4.5" }, "bin": { - "semver": "bin/semver.js" + "jayson": "bin/jayson.js" }, "engines": { - "node": ">=10" + "node": ">=8" } }, - "node_modules/@truffle/debugger/node_modules/setimmediate": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", - "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==", - "dev": true + "node_modules/jayson/node_modules/@types/node": { + "version": "12.20.55", + "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.55.tgz", + "integrity": "sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==" }, - "node_modules/@truffle/debugger/node_modules/swarm-js": { - "version": "0.1.42", - "resolved": "https://registry.npmjs.org/swarm-js/-/swarm-js-0.1.42.tgz", - "integrity": "sha512-BV7c/dVlA3R6ya1lMlSSNPLYrntt0LUq4YMgy3iwpCIc6rZnS5W2wUoctarZ5pXlpKtxDDf9hNziEkcfrxdhqQ==", - "dev": true, - "dependencies": { - "bluebird": "^3.5.0", - "buffer": "^5.0.5", - "eth-lib": "^0.1.26", - "fs-extra": "^4.0.2", - "got": "^11.8.5", - "mime-types": "^2.1.16", - "mkdirp-promise": "^5.0.1", - "mock-fs": "^4.1.0", - "setimmediate": "^1.0.5", - "tar": "^4.0.2", - "xhr-request": "^1.0.1" - } - }, - "node_modules/@truffle/debugger/node_modules/swarm-js/node_modules/@szmarczak/http-timer": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-4.0.6.tgz", - "integrity": "sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==", - "dev": true, - "dependencies": { - "defer-to-connect": "^2.0.0" - }, - "engines": { - "node": ">=10" + "node_modules/jayson/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==", + "bin": { + "uuid": "dist/bin/uuid" } }, - "node_modules/@truffle/debugger/node_modules/swarm-js/node_modules/cacheable-lookup": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz", - "integrity": "sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==", - "dev": true, + "node_modules/jayson/node_modules/ws": { + "version": "7.5.9", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz", + "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==", "engines": { - "node": ">=10.6.0" - } - }, - "node_modules/@truffle/debugger/node_modules/swarm-js/node_modules/got": { - "version": "11.8.6", - "resolved": "https://registry.npmjs.org/got/-/got-11.8.6.tgz", - "integrity": "sha512-6tfZ91bOr7bOXnK7PRDCGBLa1H4U080YHNaAQ2KsMGlLEzRbk44nsZF2E1IeRc3vtJHPVbKCYgdFbaGO2ljd8g==", - "dev": true, - "dependencies": { - "@sindresorhus/is": "^4.0.0", - "@szmarczak/http-timer": "^4.0.5", - "@types/cacheable-request": "^6.0.1", - "@types/responselike": "^1.0.0", - "cacheable-lookup": "^5.0.3", - "cacheable-request": "^7.0.2", - "decompress-response": "^6.0.0", - "http2-wrapper": "^1.0.0-beta.5.2", - "lowercase-keys": "^2.0.0", - "p-cancelable": "^2.0.0", - "responselike": "^2.0.0" + "node": ">=8.3.0" }, - "engines": { - "node": ">=10.19.0" + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" }, - "funding": { - "url": "https://github.com/sindresorhus/got?sponsor=1" + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } } }, - "node_modules/@truffle/debugger/node_modules/swarm-js/node_modules/http2-wrapper": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-1.0.3.tgz", - "integrity": "sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg==", - "dev": true, - "dependencies": { - "quick-lru": "^5.1.1", - "resolve-alpn": "^1.0.0" - }, - "engines": { - "node": ">=10.19.0" - } + "node_modules/js-base64": { + "version": "3.7.5", + "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-3.7.5.tgz", + "integrity": "sha512-3MEt5DTINKqfScXKfJFrRbxkrnk2AxPWGBL/ycjz4dK8iqiSJ06UxD8jh8xuh6p10TX4t2+7FsBYVxxQbMg+qA==" }, - "node_modules/@truffle/debugger/node_modules/swarm-js/node_modules/lowercase-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", - "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", - "dev": true, - "engines": { - "node": ">=8" - } + "node_modules/js-sha256": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/js-sha256/-/js-sha256-0.9.0.tgz", + "integrity": "sha512-sga3MHh9sgQN2+pJ9VYZ+1LPwXOxuBJBA5nrR5/ofPfuiJBE2hnjsaN8se8JznOmGLN2p49Pe5U/ttafcs/apA==" }, - "node_modules/@truffle/debugger/node_modules/swarm-js/node_modules/p-cancelable": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.1.1.tgz", - "integrity": "sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==", - "dev": true, - "engines": { - "node": ">=8" - } + "node_modules/js-sha3": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.8.0.tgz", + "integrity": "sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q==", + "license": "MIT" }, - "node_modules/@truffle/debugger/node_modules/uuid": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.0.tgz", - "integrity": "sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg==", - "dev": true, - "bin": { - "uuid": "dist/bin/uuid" - } + "node_modules/js-sha512": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/js-sha512/-/js-sha512-0.8.0.tgz", + "integrity": "sha512-PWsmefG6Jkodqt+ePTvBZCSMFgN7Clckjd0O7su3I0+BW2QWUTJNzjktHsztGLhncP2h8mcF9V9Y2Ha59pAViQ==" }, - "node_modules/@truffle/debugger/node_modules/web3": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/web3/-/web3-1.8.2.tgz", - "integrity": "sha512-92h0GdEHW9wqDICQQKyG4foZBYi0OQkyg4CRml2F7XBl/NG+fu9o6J19kzfFXzSBoA4DnJXbyRgj/RHZv5LRiw==", - "dev": true, - "hasInstallScript": true, - "dependencies": { - "web3-bzz": "1.8.2", - "web3-core": "1.8.2", - "web3-eth": "1.8.2", - "web3-eth-personal": "1.8.2", - "web3-net": "1.8.2", - "web3-shh": "1.8.2", - "web3-utils": "1.8.2" - }, - "engines": { - "node": ">=8.0.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==" }, - "node_modules/@truffle/debugger/node_modules/web3-bzz": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/web3-bzz/-/web3-bzz-1.8.2.tgz", - "integrity": "sha512-1EEnxjPnFnvNWw3XeeKuTR8PBxYd0+XWzvaLK7OJC/Go9O8llLGxrxICbKV+8cgIE0sDRBxiYx02X+6OhoAQ9w==", - "dev": true, - "hasInstallScript": true, - "dependencies": { - "@types/node": "^12.12.6", - "got": "12.1.0", - "swarm-js": "^0.1.40" - }, - "engines": { - "node": ">=8.0.0" + "node_modules/jscrypto": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/jscrypto/-/jscrypto-1.0.3.tgz", + "integrity": "sha512-lryZl0flhodv4SZHOqyb1bx5sKcJxj0VBo0Kzb4QMAg3L021IC9uGpl0RCZa+9KJwlRGSK2C80ITcwbe19OKLQ==", + "bin": { + "jscrypto": "bin/cli.js" } }, - "node_modules/@truffle/debugger/node_modules/web3-core": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/web3-core/-/web3-core-1.8.2.tgz", - "integrity": "sha512-DJTVEAYcNqxkqruJE+Rxp3CIv0y5AZMwPHQmOkz/cz+MM75SIzMTc0AUdXzGyTS8xMF8h3YWMQGgGEy8SBf1PQ==", - "dev": true, + "node_modules/json-bigint": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-bigint/-/json-bigint-1.0.0.tgz", + "integrity": "sha512-SiPv/8VpZuWbvLSMtTDU8hEfrZWg/mH/nV/b4o0CYbSxu1UIQPLdwKOCIyLQX+VIPO5vrLX3i8qtqFyhdPSUSQ==", "dependencies": { - "@types/bn.js": "^5.1.0", - "@types/node": "^12.12.6", - "bignumber.js": "^9.0.0", - "web3-core-helpers": "1.8.2", - "web3-core-method": "1.8.2", - "web3-core-requestmanager": "1.8.2", - "web3-utils": "1.8.2" - }, - "engines": { - "node": ">=8.0.0" + "bignumber.js": "^9.0.0" } }, - "node_modules/@truffle/debugger/node_modules/web3-core-helpers": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.8.2.tgz", - "integrity": "sha512-6B1eLlq9JFrfealZBomd1fmlq1o4A09vrCVQSa51ANoib/jllT3atZrRDr0zt1rfI7TSZTZBXdN/aTdeN99DWw==", - "dev": true, - "dependencies": { - "web3-eth-iban": "1.8.2", - "web3-utils": "1.8.2" - }, + "node_modules/json-bigint/node_modules/bignumber.js": { + "version": "9.1.1", + "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.1.1.tgz", + "integrity": "sha512-pHm4LsMJ6lzgNGVfZHjMoO8sdoRhOzOH4MLmY65Jg70bpxCKu5iOHNJyfF6OyvYw7t8Fpf35RuzUyqnQsj8Vig==", "engines": { - "node": ">=8.0.0" + "node": "*" } }, - "node_modules/@truffle/debugger/node_modules/web3-core-method": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/web3-core-method/-/web3-core-method-1.8.2.tgz", - "integrity": "sha512-1qnr5mw5wVyULzLOrk4B+ryO3gfGjGd/fx8NR+J2xCGLf1e6OSjxT9vbfuQ3fErk/NjSTWWreieYWLMhaogcRA==", - "dev": true, + "node_modules/json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" + }, + "node_modules/jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", "dependencies": { - "@ethersproject/transactions": "^5.6.2", - "web3-core-helpers": "1.8.2", - "web3-core-promievent": "1.8.2", - "web3-core-subscriptions": "1.8.2", - "web3-utils": "1.8.2" - }, - "engines": { - "node": ">=8.0.0" + "graceful-fs": "^4.1.6" } }, - "node_modules/@truffle/debugger/node_modules/web3-core-promievent": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/web3-core-promievent/-/web3-core-promievent-1.8.2.tgz", - "integrity": "sha512-nvkJWDVgoOSsolJldN33tKW6bKKRJX3MCPDYMwP5SUFOA/mCzDEoI88N0JFofDTXkh1k7gOqp1pvwi9heuaxGg==", - "dev": true, - "dependencies": { - "eventemitter3": "4.0.4" - }, - "engines": { - "node": ">=8.0.0" - } + "node_modules/jsonparse": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", + "integrity": "sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==", + "engines": [ + "node >= 0.2.0" + ] }, - "node_modules/@truffle/debugger/node_modules/web3-core-requestmanager": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/web3-core-requestmanager/-/web3-core-requestmanager-1.8.2.tgz", - "integrity": "sha512-p1d090RYs5Mu7DK1yyc3GCBVZB/03rBtFhYFoS2EruGzOWs/5Q0grgtpwS/DScdRAm8wB8mYEBhY/RKJWF6B2g==", - "dev": true, - "dependencies": { - "util": "^0.12.5", - "web3-core-helpers": "1.8.2", - "web3-providers-http": "1.8.2", - "web3-providers-ipc": "1.8.2", - "web3-providers-ws": "1.8.2" - }, + "node_modules/jsonschema": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jsonschema/-/jsonschema-1.4.1.tgz", + "integrity": "sha512-S6cATIPVv1z0IlxdN+zUk5EPjkGCdnhN4wVSBlvoUO1tOLJootbo9CquNJmbIh4yikWHiUedhRYrNPn1arpEmQ==", "engines": { - "node": ">=8.0.0" + "node": "*" } }, - "node_modules/@truffle/debugger/node_modules/web3-core-subscriptions": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/web3-core-subscriptions/-/web3-core-subscriptions-1.8.2.tgz", - "integrity": "sha512-vXQogHDmAIQcKpXvGiMddBUeP9lnKgYF64+yQJhPNE5PnWr1sAibXuIPV7mIPihpFr/n/DORRj6Wh1pUv9zaTw==", - "dev": true, + "node_modules/JSONStream": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz", + "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==", "dependencies": { - "eventemitter3": "4.0.4", - "web3-core-helpers": "1.8.2" + "jsonparse": "^1.2.0", + "through": ">=2.2.7 <3" + }, + "bin": { + "JSONStream": "bin.js" }, "engines": { - "node": ">=8.0.0" + "node": "*" } }, - "node_modules/@truffle/debugger/node_modules/web3-eth": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/web3-eth/-/web3-eth-1.8.2.tgz", - "integrity": "sha512-JoTiWWc4F4TInpbvDUGb0WgDYJsFhuIjJlinc5ByjWD88Gvh+GKLsRjjFdbqe5YtwIGT4NymwoC5LQd1K6u/QQ==", - "dev": true, + "node_modules/keccak": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/keccak/-/keccak-3.0.3.tgz", + "integrity": "sha512-JZrLIAJWuZxKbCilMpNz5Vj7Vtb4scDG3dMXLOsbzBmQGyjwE61BbW7bJkfKKCShXiQZt3T6sBgALRtmd+nZaQ==", + "hasInstallScript": true, "dependencies": { - "web3-core": "1.8.2", - "web3-core-helpers": "1.8.2", - "web3-core-method": "1.8.2", - "web3-core-subscriptions": "1.8.2", - "web3-eth-abi": "1.8.2", - "web3-eth-accounts": "1.8.2", - "web3-eth-contract": "1.8.2", - "web3-eth-ens": "1.8.2", - "web3-eth-iban": "1.8.2", - "web3-eth-personal": "1.8.2", - "web3-net": "1.8.2", - "web3-utils": "1.8.2" + "node-addon-api": "^2.0.0", + "node-gyp-build": "^4.2.0", + "readable-stream": "^3.6.0" }, "engines": { - "node": ">=8.0.0" + "node": ">=10.0.0" } }, - "node_modules/@truffle/debugger/node_modules/web3-eth-abi": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/web3-eth-abi/-/web3-eth-abi-1.8.2.tgz", - "integrity": "sha512-Om9g3kaRNjqiNPAgKwGT16y+ZwtBzRe4ZJFGjLiSs6v5I7TPNF+rRMWuKnR6jq0azQZDj6rblvKFMA49/k48Og==", - "dev": true, + "node_modules/keccak/node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", "dependencies": { - "@ethersproject/abi": "^5.6.3", - "web3-utils": "1.8.2" + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" }, "engines": { - "node": ">=8.0.0" + "node": ">= 6" } }, - "node_modules/@truffle/debugger/node_modules/web3-eth-accounts": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/web3-eth-accounts/-/web3-eth-accounts-1.8.2.tgz", - "integrity": "sha512-c367Ij63VCz9YdyjiHHWLFtN85l6QghgwMQH2B1eM/p9Y5lTlTX7t/Eg/8+f1yoIStXbk2w/PYM2lk+IkbqdLA==", - "dev": true, + "node_modules/keccak256": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/keccak256/-/keccak256-1.0.6.tgz", + "integrity": "sha512-8GLiM01PkdJVGUhR1e6M/AvWnSqYS0HaERI+K/QtStGDGlSTx2B1zTqZk4Zlqu5TxHJNTxWAdP9Y+WI50OApUw==", "dependencies": { - "@ethereumjs/common": "2.5.0", - "@ethereumjs/tx": "3.3.2", - "eth-lib": "0.2.8", - "ethereumjs-util": "^7.1.5", - "scrypt-js": "^3.0.1", - "uuid": "^9.0.0", - "web3-core": "1.8.2", - "web3-core-helpers": "1.8.2", - "web3-core-method": "1.8.2", - "web3-utils": "1.8.2" - }, - "engines": { - "node": ">=8.0.0" + "bn.js": "^5.2.0", + "buffer": "^6.0.3", + "keccak": "^3.0.2" } }, - "node_modules/@truffle/debugger/node_modules/web3-eth-accounts/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true + "node_modules/keccak256/node_modules/bn.js": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", + "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==" }, - "node_modules/@truffle/debugger/node_modules/web3-eth-accounts/node_modules/eth-lib": { - "version": "0.2.8", - "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.8.tgz", - "integrity": "sha512-ArJ7x1WcWOlSpzdoTBX8vkwlkSQ85CjjifSZtV4co64vWxSV8geWfPI9x4SVYu3DSxnX4yWFVTtGL+j9DUFLNw==", - "dev": true, + "node_modules/keccak256/node_modules/buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], "dependencies": { - "bn.js": "^4.11.6", - "elliptic": "^6.4.0", - "xhr-request-promise": "^0.1.2" + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" } }, - "node_modules/@truffle/debugger/node_modules/web3-eth-contract": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/web3-eth-contract/-/web3-eth-contract-1.8.2.tgz", - "integrity": "sha512-ID5A25tHTSBNwOPjiXSVzxruz006ULRIDbzWTYIFTp7NJ7vXu/kynKK2ag/ObuTqBpMbobP8nXcA9b5EDkIdQA==", - "dev": true, - "dependencies": { - "@types/bn.js": "^5.1.0", - "web3-core": "1.8.2", - "web3-core-helpers": "1.8.2", - "web3-core-method": "1.8.2", - "web3-core-promievent": "1.8.2", - "web3-core-subscriptions": "1.8.2", - "web3-eth-abi": "1.8.2", - "web3-utils": "1.8.2" - }, - "engines": { - "node": ">=8.0.0" - } + "node_modules/libsodium": { + "version": "0.7.11", + "resolved": "https://registry.npmjs.org/libsodium/-/libsodium-0.7.11.tgz", + "integrity": "sha512-WPfJ7sS53I2s4iM58QxY3Inb83/6mjlYgcmZs7DJsvDlnmVUwNinBCi5vBT43P6bHRy01O4zsMU2CoVR6xJ40A==" }, - "node_modules/@truffle/debugger/node_modules/web3-eth-ens": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/web3-eth-ens/-/web3-eth-ens-1.8.2.tgz", - "integrity": "sha512-PWph7C/CnqdWuu1+SH4U4zdrK4t2HNt0I4XzPYFdv9ugE8EuojselioPQXsVGvjql+Nt3jDLvQvggPqlMbvwRw==", - "dev": true, + "node_modules/libsodium-wrappers": { + "version": "0.7.11", + "resolved": "https://registry.npmjs.org/libsodium-wrappers/-/libsodium-wrappers-0.7.11.tgz", + "integrity": "sha512-SrcLtXj7BM19vUKtQuyQKiQCRJPgbpauzl3s0rSwD+60wtHqSUuqcoawlMDheCJga85nKOQwxNYQxf/CKAvs6Q==", "dependencies": { - "content-hash": "^2.5.2", - "eth-ens-namehash": "2.0.8", - "web3-core": "1.8.2", - "web3-core-helpers": "1.8.2", - "web3-core-promievent": "1.8.2", - "web3-eth-abi": "1.8.2", - "web3-eth-contract": "1.8.2", - "web3-utils": "1.8.2" - }, - "engines": { - "node": ">=8.0.0" + "libsodium": "^0.7.11" } }, - "node_modules/@truffle/debugger/node_modules/web3-eth-iban": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/web3-eth-iban/-/web3-eth-iban-1.8.2.tgz", - "integrity": "sha512-h3vNblDWkWMuYx93Q27TAJz6lhzpP93EiC3+45D6xoz983p6si773vntoQ+H+5aZhwglBtoiBzdh7PSSOnP/xQ==", - "dev": true, + "node_modules/link-module-alias": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/link-module-alias/-/link-module-alias-1.2.0.tgz", + "integrity": "sha512-ahPjXepbSVKbahTB6LxR//VHm8HPfI+QQygCH+E82spBY4HR5VPJTvlhKBc9F7muVxnS6C1rRfoPOXAbWO/fyw==", "dependencies": { - "bn.js": "^5.2.1", - "web3-utils": "1.8.2" + "chalk": "^2.4.1" }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@truffle/debugger/node_modules/web3-eth-personal": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/web3-eth-personal/-/web3-eth-personal-1.8.2.tgz", - "integrity": "sha512-Vg4HfwCr7doiUF/RC+Jz0wT4+cYaXcOWMAW2AHIjHX6Z7Xwa8nrURIeQgeEE62qcEHAzajyAdB1u6bJyTfuCXw==", - "dev": true, - "dependencies": { - "@types/node": "^12.12.6", - "web3-core": "1.8.2", - "web3-core-helpers": "1.8.2", - "web3-core-method": "1.8.2", - "web3-net": "1.8.2", - "web3-utils": "1.8.2" + "bin": { + "link-module-alias": "index.js" }, "engines": { - "node": ">=8.0.0" + "node": "> 8.0.0" } }, - "node_modules/@truffle/debugger/node_modules/web3-net": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/web3-net/-/web3-net-1.8.2.tgz", - "integrity": "sha512-1itkDMGmbgb83Dg9nporFes9/fxsU7smJ3oRXlFkg4ZHn8YJyP1MSQFPJWWwSc+GrcCFt4O5IrUTvEkHqE3xag==", - "dev": true, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + }, + "node_modules/lodash.camelcase": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", + "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY=" + }, + "node_modules/lodash.values": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.values/-/lodash.values-4.3.0.tgz", + "integrity": "sha512-r0RwvdCv8id9TUblb/O7rYPwVy6lerCbcawrfdo9iC/1t1wsNMJknO79WNBgwkH0hIeJ08jmvvESbFpNb4jH0Q==" + }, + "node_modules/long": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz", + "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==" + }, + "node_modules/loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", "dependencies": { - "web3-core": "1.8.2", - "web3-core-method": "1.8.2", - "web3-utils": "1.8.2" + "js-tokens": "^3.0.0 || ^4.0.0" }, - "engines": { - "node": ">=8.0.0" + "bin": { + "loose-envify": "cli.js" } }, - "node_modules/@truffle/debugger/node_modules/web3-providers-http": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/web3-providers-http/-/web3-providers-http-1.8.2.tgz", - "integrity": "sha512-2xY94IIEQd16+b+vIBF4IC1p7GVaz9q4EUFscvMUjtEq4ru4Atdzjs9GP+jmcoo49p70II0UV3bqQcz0TQfVyQ==", - "dev": true, - "dependencies": { - "abortcontroller-polyfill": "^1.7.3", - "cross-fetch": "^3.1.4", - "es6-promise": "^4.2.8", - "web3-core-helpers": "1.8.2" - }, + "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/map-obj": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.3.0.tgz", + "integrity": "sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==", "engines": { - "node": ">=8.0.0" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@truffle/debugger/node_modules/web3-providers-ipc": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/web3-providers-ipc/-/web3-providers-ipc-1.8.2.tgz", - "integrity": "sha512-p6fqKVGFg+WiXGHWnB1hu43PbvPkDHTz4RgoEzbXugv5rtv5zfYLqm8Ba6lrJOS5ks9kGKR21a0y3NzE3u7V4w==", - "dev": true, + "node_modules/md5.js": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", + "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", "dependencies": { - "oboe": "2.1.5", - "web3-core-helpers": "1.8.2" - }, - "engines": { - "node": ">=8.0.0" + "hash-base": "^3.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" } }, - "node_modules/@truffle/debugger/node_modules/web3-providers-ws": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/web3-providers-ws/-/web3-providers-ws-1.8.2.tgz", - "integrity": "sha512-3s/4K+wHgbiN+Zrp9YjMq2eqAF6QGABw7wFftPdx+m5hWImV27/MoIx57c6HffNRqZXmCHnfWWFCNHHsi7wXnA==", - "dev": true, - "dependencies": { - "eventemitter3": "4.0.4", - "web3-core-helpers": "1.8.2", - "websocket": "^1.0.32" - }, + "node_modules/mime-db": { + "version": "1.44.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.44.0.tgz", + "integrity": "sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg==", "engines": { - "node": ">=8.0.0" + "node": ">= 0.6" } }, - "node_modules/@truffle/debugger/node_modules/web3-shh": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/web3-shh/-/web3-shh-1.8.2.tgz", - "integrity": "sha512-uZ+3MAoNcaJsXXNCDnizKJ5viBNeHOFYsCbFhV755Uu52FswzTOw6DtE7yK9nYXMtIhiSgi7nwl1RYzP8pystw==", - "dev": true, - "hasInstallScript": true, + "node_modules/mime-types": { + "version": "2.1.27", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.27.tgz", + "integrity": "sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w==", "dependencies": { - "web3-core": "1.8.2", - "web3-core-method": "1.8.2", - "web3-core-subscriptions": "1.8.2", - "web3-net": "1.8.2" + "mime-db": "1.44.0" }, "engines": { - "node": ">=8.0.0" + "node": ">= 0.6" } }, - "node_modules/@truffle/debugger/node_modules/web3-utils": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.8.2.tgz", - "integrity": "sha512-v7j6xhfLQfY7xQDrUP0BKbaNrmZ2/+egbqP9q3KYmOiPpnvAfol+32slgL0WX/5n8VPvKCK5EZ1HGrAVICSToA==", - "dev": true, + "node_modules/minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==" + }, + "node_modules/minimalistic-crypto-utils": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", + "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=" + }, + "node_modules/minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "dependencies": { - "bn.js": "^5.2.1", - "ethereum-bloom-filters": "^1.0.6", - "ethereumjs-util": "^7.1.0", - "ethjs-unit": "0.1.6", - "number-to-bn": "1.7.0", - "randombytes": "^2.1.0", - "utf8": "3.0.0" + "brace-expansion": "^1.1.7" }, "engines": { - "node": ">=8.0.0" + "node": "*" } }, - "node_modules/@truffle/debugger/node_modules/websocket": { - "version": "1.0.34", - "resolved": "https://registry.npmjs.org/websocket/-/websocket-1.0.34.tgz", - "integrity": "sha512-PRDso2sGwF6kM75QykIesBijKSVceR6jL2G8NGYyq2XrItNC2P5/qL5XeR056GhA+Ly7JMFvJb9I312mJfmqnQ==", - "dev": true, - "dependencies": { - "bufferutil": "^4.0.1", - "debug": "^2.2.0", - "es5-ext": "^0.10.50", - "typedarray-to-buffer": "^3.1.5", - "utf-8-validate": "^5.0.2", - "yaeti": "^0.0.6" + "node_modules/minimist": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", + "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==" + }, + "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": ">=4.0.0" - } - }, - "node_modules/@truffle/debugger/node_modules/websocket/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "dependencies": { - "ms": "2.0.0" + "node": ">=10" } }, - "node_modules/@truffle/debugger/node_modules/websocket/node_modules/ms": { + "node_modules/ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true - }, - "node_modules/@truffle/error": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/@truffle/error/-/error-0.0.6.tgz", - "integrity": "sha512-QUM9ZWiwlXGixFGpV18g5I6vua6/r+ZV9W/5DQA5go9A3eZUNPHPaTKMIQPJLYn6+ZV5jg5H28zCHq56LHF3yA==", - "dev": true + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" }, - "node_modules/@truffle/events": { - "version": "0.1.22", - "resolved": "https://registry.npmjs.org/@truffle/events/-/events-0.1.22.tgz", - "integrity": "sha512-WBEfaQ5zagS3J1M66J8wQ8N1As/EnBjLQsRlCCFs3/KbmeWhsoalVZ5Effhe0Vxd+e+k7lvwbloQBdS6roc+wg==", - "dev": true, - "optional": true, - "dependencies": { - "@truffle/dashboard-message-bus-client": "^0.1.10", - "@truffle/spinners": "^0.2.3", - "debug": "^4.3.1", - "emittery": "^0.4.1", - "web3-utils": "1.8.2" + "node_modules/mustache": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/mustache/-/mustache-4.2.0.tgz", + "integrity": "sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ==", + "bin": { + "mustache": "bin/mustache" } }, - "node_modules/@truffle/events/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==", - "dev": true, - "optional": true, + "node_modules/nan": { + "version": "2.14.2", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.2.tgz", + "integrity": "sha512-M2ufzIiINKCuDfBSAUr1vWQ+vuVcA9kqx8JJUsbQi6yf1uGRyb7HfpdfUr5qLXf3B/t8dPvcjhKMmlfnP47EzQ==" + }, + "node_modules/near-api-js": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/near-api-js/-/near-api-js-1.1.0.tgz", + "integrity": "sha512-qYKv1mYsaDZc2uYndhS+ttDhR9+60qFc+ZjD6lWsAxr3ZskMjRwPffDGQZYhC7BRDQMe1HEbk6d5mf+TVm0Lqg==", "dependencies": { - "@types/node": "*" + "bn.js": "5.2.1", + "borsh": "^0.7.0", + "bs58": "^4.0.0", + "depd": "^2.0.0", + "error-polyfill": "^0.1.3", + "http-errors": "^1.7.2", + "js-sha256": "^0.9.0", + "mustache": "^4.0.0", + "node-fetch": "^2.6.1", + "text-encoding-utf-8": "^1.0.2", + "tweetnacl": "^1.0.1" } }, - "node_modules/@truffle/events/node_modules/bn.js": { + "node_modules/near-api-js/node_modules/bn.js": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", - "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==", - "dev": true, - "optional": true + "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==" }, - "node_modules/@truffle/events/node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "optional": true, + "node_modules/near-api-js/node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/near-api-js/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==", "dependencies": { - "ms": "2.1.2" + "whatwg-url": "^5.0.0" }, "engines": { - "node": ">=6.0" + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" }, "peerDependenciesMeta": { - "supports-color": { + "encoding": { "optional": true } } }, - "node_modules/@truffle/events/node_modules/ethereumjs-util": { - "version": "7.1.5", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.5.tgz", - "integrity": "sha512-SDl5kKrQAudFBUe5OJM9Ac6WmMyYmXX/6sTmLZ3ffG2eY6ZIGBes3pEDxNN6V72WyOw4CPD5RomKdsa8DAAwLg==", - "dev": true, - "optional": true, - "dependencies": { - "@types/bn.js": "^5.1.0", - "bn.js": "^5.1.2", - "create-hash": "^1.1.2", - "ethereum-cryptography": "^0.1.3", - "rlp": "^2.2.4" - }, - "engines": { - "node": ">=10.0.0" - } + "node_modules/near-api-js/node_modules/tweetnacl": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.3.tgz", + "integrity": "sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==" }, - "node_modules/@truffle/events/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true, - "optional": true + "node_modules/node-addon-api": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-2.0.2.tgz", + "integrity": "sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA==" }, - "node_modules/@truffle/events/node_modules/web3-utils": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.8.2.tgz", - "integrity": "sha512-v7j6xhfLQfY7xQDrUP0BKbaNrmZ2/+egbqP9q3KYmOiPpnvAfol+32slgL0WX/5n8VPvKCK5EZ1HGrAVICSToA==", - "dev": true, - "optional": true, - "dependencies": { - "bn.js": "^5.2.1", - "ethereum-bloom-filters": "^1.0.6", - "ethereumjs-util": "^7.1.0", - "ethjs-unit": "0.1.6", - "number-to-bn": "1.7.0", - "randombytes": "^2.1.0", - "utf8": "3.0.0" - }, - "engines": { - "node": ">=8.0.0" + "node_modules/node-gyp-build": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.6.0.tgz", + "integrity": "sha512-NTZVKn9IylLwUzaKjkas1e4u2DLNcV4rdYagA4PWdPwW87Bi7z+BznyKSRwS/761tV/lzCGXplWsiaMjLqP2zQ==", + "bin": { + "node-gyp-build": "bin.js", + "node-gyp-build-optional": "optional.js", + "node-gyp-build-test": "build-test.js" } }, - "node_modules/@truffle/hdwallet-provider": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/@truffle/hdwallet-provider/-/hdwallet-provider-1.7.0.tgz", - "integrity": "sha512-nT7BPJJ2jPCLJc5uZdVtRnRMny5he5d3kO9Hi80ZSqe5xlnK905grBptM/+CwOfbeqHKQirI1btwm6r3wIBM8A==", - "dev": true, + "node_modules/noms": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/noms/-/noms-0.0.0.tgz", + "integrity": "sha512-lNDU9VJaOPxUmXcLb+HQFeUgQQPtMI24Gt6hgfuMHRJgMRHMF/qZ4HJD3GDru4sSw9IQl2jPjAYnQrdIeLbwow==", "dependencies": { - "@ethereumjs/common": "^2.4.0", - "@ethereumjs/tx": "^3.3.0", - "@trufflesuite/web3-provider-engine": "15.0.14", - "eth-sig-util": "^3.0.1", - "ethereum-cryptography": "^0.1.3", - "ethereum-protocol": "^1.0.1", - "ethereumjs-util": "^6.1.0", - "ethereumjs-wallet": "^1.0.1" + "inherits": "^2.0.1", + "readable-stream": "~1.0.31" } }, - "node_modules/@truffle/hdwallet-provider/node_modules/@types/bn.js": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-5.1.0.tgz", - "integrity": "sha512-QSSVYj7pYFN49kW77o2s9xTCwZ8F2xLbjLLSEVh8D2F4JUhZtPAGOFLTD+ffqksBx/u4cE/KImFjyhqCjn/LIA==", - "dev": true, + "node_modules/noms/node_modules/isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==" + }, + "node_modules/noms/node_modules/readable-stream": { + "version": "1.0.34", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", + "integrity": "sha512-ok1qVCJuRkNmvebYikljxJA/UEsKwLl2nI1OmaqAu4/UE+h0wKCHok4XkL/gvi39OacXvw59RJUOFUkDib2rHg==", "dependencies": { - "@types/node": "*" + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" } }, - "node_modules/@truffle/hdwallet-provider/node_modules/aes-js": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/aes-js/-/aes-js-3.1.2.tgz", - "integrity": "sha512-e5pEa2kBnBOgR4Y/p20pskXI74UEz7de8ZGVo58asOtvSVG5YAbJeELPZxOmt+Bnz3rX753YKhfIn4X4l1PPRQ==", - "dev": true - }, - "node_modules/@truffle/hdwallet-provider/node_modules/bn.js": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.0.tgz", - "integrity": "sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw==", - "dev": true + "node_modules/noms/node_modules/string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==" }, - "node_modules/@truffle/hdwallet-provider/node_modules/ethereumjs-wallet": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/ethereumjs-wallet/-/ethereumjs-wallet-1.0.2.tgz", - "integrity": "sha512-CCWV4RESJgRdHIvFciVQFnCHfqyhXWchTPlkfp28Qc53ufs+doi5I/cV2+xeK9+qEo25XCWfP9MiL+WEPAZfdA==", - "dev": true, + "node_modules/o3": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/o3/-/o3-1.0.3.tgz", + "integrity": "sha512-f+4n+vC6s4ysy7YO7O2gslWZBUu8Qj2i2OUJOvjRxQva7jVjYjB29jrr9NCjmxZQR0gzrOcv1RnqoYOeMs5VRQ==", "dependencies": { - "aes-js": "^3.1.2", - "bs58check": "^2.1.2", - "ethereum-cryptography": "^0.1.3", - "ethereumjs-util": "^7.1.2", - "randombytes": "^2.1.0", - "scrypt-js": "^3.0.1", - "utf8": "^3.0.0", - "uuid": "^8.3.2" + "capability": "^0.2.5" } }, - "node_modules/@truffle/hdwallet-provider/node_modules/ethereumjs-wallet/node_modules/ethereumjs-util": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.3.tgz", - "integrity": "sha512-y+82tEbyASO0K0X1/SRhbJJoAlfcvq8JbrG4a5cjrOks7HS/36efU/0j2flxCPOUM++HFahk33kr/ZxyC4vNuw==", - "dev": true, - "dependencies": { - "@types/bn.js": "^5.1.0", - "bn.js": "^5.1.2", - "create-hash": "^1.1.2", - "ethereum-cryptography": "^0.1.3", - "rlp": "^2.2.4" - }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", "engines": { - "node": ">=10.0.0" + "node": ">=0.10.0" } }, - "node_modules/@truffle/hdwallet-provider/node_modules/scrypt-js": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-3.0.1.tgz", - "integrity": "sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA==", - "dev": true - }, - "node_modules/@truffle/hdwallet-provider/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/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "engines": { + "node": ">= 0.4" } }, - "node_modules/@truffle/promise-tracker": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/@truffle/promise-tracker/-/promise-tracker-0.1.5.tgz", - "integrity": "sha512-wZx8eeu/6rcwwkmRF0Y832/NSQR9A9u6pyhTozv+j77jklnd/KZvu2JlACaAjP30eL5SOtSrSOzAMcSh/trJjg==", - "dev": true, - "optional": true - }, - "node_modules/@truffle/provider": { - "version": "0.3.8", - "resolved": "https://registry.npmjs.org/@truffle/provider/-/provider-0.3.8.tgz", - "integrity": "sha512-qukkmGOZPsbV7WeKlj/bfYWOu/dbHWlF67QHDhV2KHBVardN06VDf40aB8WeeVkONHijb623hkUI/DE4DpHO+Q==", - "dev": true, - "optional": true, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", "dependencies": { - "@truffle/error": "^0.2.0", - "@truffle/interface-adapter": "^0.5.32", - "debug": "^4.3.1", - "web3": "1.8.2" + "wrappy": "1" } }, - "node_modules/@truffle/provider/node_modules/@ethereumjs/common": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@ethereumjs/common/-/common-2.5.0.tgz", - "integrity": "sha512-DEHjW6e38o+JmB/NO3GZBpW4lpaiBpkFgXF6jLcJ6gETBYpEyaA5nTimsWBUJR3Vmtm/didUEbNjajskugZORg==", - "dev": true, - "optional": true, + "node_modules/optimism": { + "version": "0.16.2", + "resolved": "https://registry.npmjs.org/optimism/-/optimism-0.16.2.tgz", + "integrity": "sha512-zWNbgWj+3vLEjZNIh/okkY2EUfX+vB9TJopzIZwT1xxaMqC5hRLLraePod4c5n4He08xuXNH+zhKFFCu390wiQ==", "dependencies": { - "crc-32": "^1.2.0", - "ethereumjs-util": "^7.1.1" + "@wry/context": "^0.7.0", + "@wry/trie": "^0.3.0" } }, - "node_modules/@truffle/provider/node_modules/@ethereumjs/tx": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/@ethereumjs/tx/-/tx-3.3.2.tgz", - "integrity": "sha512-6AaJhwg4ucmwTvw/1qLaZUX5miWrwZ4nLOUsKyb/HtzS3BMw/CasKhdi1ims9mBKeK9sOJCH4qGKOBGyJCeeog==", - "dev": true, - "optional": true, - "dependencies": { - "@ethereumjs/common": "^2.5.0", - "ethereumjs-util": "^7.1.2" + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "engines": { + "node": ">=0.10.0" } }, - "node_modules/@truffle/provider/node_modules/@sindresorhus/is": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.6.0.tgz", - "integrity": "sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==", - "dev": true, - "optional": true, - "engines": { - "node": ">=10" + "node_modules/path-parse": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", + "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==" + }, + "node_modules/pbkdf2": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.1.tgz", + "integrity": "sha512-4Ejy1OPxi9f2tt1rRV7Go7zmfDQ+ZectEQz3VGUQhgq62HtIRPDyG/JtnwIxs6x3uNMwo2V7q1fMvKjb+Tnpqg==", + "dependencies": { + "create-hash": "^1.1.2", + "create-hmac": "^1.1.4", + "ripemd160": "^2.0.1", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" }, - "funding": { - "url": "https://github.com/sindresorhus/is?sponsor=1" + "engines": { + "node": ">=0.12" } }, - "node_modules/@truffle/provider/node_modules/@szmarczak/http-timer": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-5.0.1.tgz", - "integrity": "sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw==", - "dev": true, - "optional": true, - "dependencies": { - "defer-to-connect": "^2.0.1" + "node_modules/printj": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/printj/-/printj-1.1.2.tgz", + "integrity": "sha512-zA2SmoLaxZyArQTOPj5LXecR+RagfPSU5Kw1qP+jkWeNlrq+eJZyY2oS68SU1Z/7/myXM4lo9716laOFAVStCQ==", + "bin": { + "printj": "bin/printj.njs" }, "engines": { - "node": ">=14.16" + "node": ">=0.8" } }, - "node_modules/@truffle/provider/node_modules/@truffle/error": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/@truffle/error/-/error-0.2.0.tgz", - "integrity": "sha512-Fe0/z4WWb7IP2gBnv3l6zqP87Y0kSMs7oiSLakKJq17q3GUunrHSdioKuNspdggxkXIBhEQLhi8C+LJdwmHKWQ==", - "dev": true, - "optional": true + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" }, - "node_modules/@truffle/provider/node_modules/@truffle/interface-adapter": { - "version": "0.5.32", - "resolved": "https://registry.npmjs.org/@truffle/interface-adapter/-/interface-adapter-0.5.32.tgz", - "integrity": "sha512-7Hgmdb4nJUcWtq4vvgWY7Mr2RLOTOp5FZaWyMiFmjkcEEhDlezm2QstALWAXgT0W6q7tDmDBpw3vTIFenRhHBA==", - "dev": true, - "optional": true, + "node_modules/prop-types": { + "version": "15.8.1", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", + "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", "dependencies": { - "bn.js": "^5.1.3", - "ethers": "^4.0.32", - "web3": "1.8.2" + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.13.1" } }, - "node_modules/@truffle/provider/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==", - "dev": true, - "optional": true, + "node_modules/protobufjs": { + "version": "6.11.2", + "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-6.11.2.tgz", + "integrity": "sha512-4BQJoPooKJl2G9j3XftkIXjoC9C0Av2NOrWmbLWT1vH32GcSUHjM0Arra6UfTsVyfMAuFzaLucXn1sadxJydAw==", + "hasInstallScript": true, "dependencies": { - "@types/node": "*" + "@protobufjs/aspromise": "^1.1.2", + "@protobufjs/base64": "^1.1.2", + "@protobufjs/codegen": "^2.0.4", + "@protobufjs/eventemitter": "^1.1.0", + "@protobufjs/fetch": "^1.1.0", + "@protobufjs/float": "^1.0.2", + "@protobufjs/inquire": "^1.1.0", + "@protobufjs/path": "^1.1.2", + "@protobufjs/pool": "^1.1.0", + "@protobufjs/utf8": "^1.1.0", + "@types/long": "^4.0.1", + "@types/node": ">=13.7.0", + "long": "^4.0.0" + }, + "bin": { + "pbjs": "bin/pbjs", + "pbts": "bin/pbts" } }, - "node_modules/@truffle/provider/node_modules/@types/node": { - "version": "12.20.55", - "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.55.tgz", - "integrity": "sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==", - "dev": true, - "optional": true - }, - "node_modules/@truffle/provider/node_modules/bignumber.js": { - "version": "9.1.1", - "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.1.1.tgz", - "integrity": "sha512-pHm4LsMJ6lzgNGVfZHjMoO8sdoRhOzOH4MLmY65Jg70bpxCKu5iOHNJyfF6OyvYw7t8Fpf35RuzUyqnQsj8Vig==", - "dev": true, - "optional": true, - "engines": { - "node": "*" + "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/@truffle/provider/node_modules/bn.js": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", - "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==", - "dev": true, - "optional": true + "node_modules/react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" }, - "node_modules/@truffle/provider/node_modules/cacheable-request": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-7.0.2.tgz", - "integrity": "sha512-pouW8/FmiPQbuGpkXQ9BAPv/Mo5xDGANgSNXzTzJ8DrKGuXOssM4wIQRjfanNRh3Yu5cfYPvcorqbhg2KIJtew==", - "dev": true, - "optional": true, + "node_modules/readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", "dependencies": { - "clone-response": "^1.0.2", - "get-stream": "^5.1.0", - "http-cache-semantics": "^4.0.0", - "keyv": "^4.0.0", - "lowercase-keys": "^2.0.0", - "normalize-url": "^6.0.1", - "responselike": "^2.0.0" - }, - "engines": { - "node": ">=8" + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" } }, - "node_modules/@truffle/provider/node_modules/cacheable-request/node_modules/get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "dev": true, - "optional": true, + "node_modules/readable-stream/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "node_modules/readonly-date": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/readonly-date/-/readonly-date-1.0.0.tgz", + "integrity": "sha512-tMKIV7hlk0h4mO3JTmmVuIlJVXjKk3Sep9Bf5OH0O+758ruuVkUy2J9SttDLm91IEX/WHlXPSpxMGjPj4beMIQ==" + }, + "node_modules/rechoir": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", + "integrity": "sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==", "dependencies": { - "pump": "^3.0.0" + "resolve": "^1.1.6" }, "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">= 0.10" } }, - "node_modules/@truffle/provider/node_modules/cacheable-request/node_modules/lowercase-keys": { + "node_modules/reduce-flatten": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", - "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", - "dev": true, - "optional": true, + "resolved": "https://registry.npmjs.org/reduce-flatten/-/reduce-flatten-2.0.0.tgz", + "integrity": "sha512-EJ4UNY/U1t2P/2k6oqotuX2Cc3T6nxJwsM0N0asT7dhrtH1ltUxDn4NalSYmPE2rCkVpcf/X6R0wDwcFpzhd4w==", "engines": { - "node": ">=8" + "node": ">=6" } }, - "node_modules/@truffle/provider/node_modules/cross-fetch": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.5.tgz", - "integrity": "sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw==", - "dev": true, - "optional": true, - "dependencies": { - "node-fetch": "2.6.7" - } + "node_modules/regenerator-runtime": { + "version": "0.13.11", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", + "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==" }, - "node_modules/@truffle/provider/node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "optional": true, - "dependencies": { - "ms": "2.1.2" - }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } + "node": ">=0.10.0" } }, - "node_modules/@truffle/provider/node_modules/decompress-response": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", - "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", - "dev": true, - "optional": true, + "node_modules/resolve": { + "version": "1.17.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz", + "integrity": "sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==", "dependencies": { - "mimic-response": "^3.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "path-parse": "^1.0.6" } }, - "node_modules/@truffle/provider/node_modules/defer-to-connect": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz", - "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==", - "dev": true, - "optional": true, + "node_modules/response-iterator": { + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/response-iterator/-/response-iterator-0.2.6.tgz", + "integrity": "sha512-pVzEEzrsg23Sh053rmDUvLSkGXluZio0qu8VT6ukrYuvtjVfCbDZH9d6PGXb8HZfzdNZt8feXv/jvUzlhRgLnw==", "engines": { - "node": ">=10" + "node": ">=0.8" } }, - "node_modules/@truffle/provider/node_modules/ethereumjs-util": { - "version": "7.1.5", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.5.tgz", - "integrity": "sha512-SDl5kKrQAudFBUe5OJM9Ac6WmMyYmXX/6sTmLZ3ffG2eY6ZIGBes3pEDxNN6V72WyOw4CPD5RomKdsa8DAAwLg==", - "dev": true, - "optional": true, + "node_modules/ripemd160": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", + "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", "dependencies": { - "@types/bn.js": "^5.1.0", - "bn.js": "^5.1.2", - "create-hash": "^1.1.2", - "ethereum-cryptography": "^0.1.3", - "rlp": "^2.2.4" - }, + "hash-base": "^3.0.0", + "inherits": "^2.0.1" + } + }, + "node_modules/ripemd160-min": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/ripemd160-min/-/ripemd160-min-0.0.6.tgz", + "integrity": "sha512-+GcJgQivhs6S9qvLogusiTcS9kQUfgR75whKuy5jIhuiOfQuJ8fjqxV6EGD5duH1Y/FawFUMtMhyeq3Fbnib8A==", "engines": { - "node": ">=10.0.0" + "node": ">=8" } }, - "node_modules/@truffle/provider/node_modules/ethers": { - "version": "4.0.49", - "resolved": "https://registry.npmjs.org/ethers/-/ethers-4.0.49.tgz", - "integrity": "sha512-kPltTvWiyu+OktYy1IStSO16i2e7cS9D9OxZ81q2UUaiNPVrm/RTcbxamCXF9VUSKzJIdJV68EAIhTEVBalRWg==", - "dev": true, - "optional": true, + "node_modules/rlp": { + "version": "2.2.6", + "resolved": "https://registry.npmjs.org/rlp/-/rlp-2.2.6.tgz", + "integrity": "sha512-HAfAmL6SDYNWPUOJNrM500x4Thn4PZsEy5pijPh40U9WfNk0z15hUYzO9xVIMAdIHdFtD8CBDHd75Td1g36Mjg==", "dependencies": { - "aes-js": "3.0.0", - "bn.js": "^4.11.9", - "elliptic": "6.5.4", - "hash.js": "1.1.3", - "js-sha3": "0.5.7", - "scrypt-js": "2.0.4", - "setimmediate": "1.0.4", - "uuid": "2.0.1", - "xmlhttprequest": "1.8.0" - } - }, - "node_modules/@truffle/provider/node_modules/ethers/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true, - "optional": true + "bn.js": "^4.11.1" + }, + "bin": { + "rlp": "bin/rlp" + } }, - "node_modules/@truffle/provider/node_modules/eventemitter3": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.4.tgz", - "integrity": "sha512-rlaVLnVxtxvoyLsQQFBx53YmXHDxRIzzTLbdfxqi4yocpSjAxXwkU0cScM5JgSKMqEhrZpnvQ2D9gjylR0AimQ==", - "dev": true, - "optional": true + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" }, - "node_modules/@truffle/provider/node_modules/fs-extra": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-4.0.3.tgz", - "integrity": "sha512-q6rbdDd1o2mAnQreO7YADIxf/Whx4AHBiRf6d+/cVT8h44ss+lHgxf1FemcqDnQt9X3ct4McHr+JMGlYSsK7Cg==", - "dev": true, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", "optional": true, - "dependencies": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } + "peer": true }, - "node_modules/@truffle/provider/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, - "optional": true, - "engines": { - "node": ">=10" + "node_modules/secp256k1": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-4.0.2.tgz", + "integrity": "sha512-UDar4sKvWAksIlfX3xIaQReADn+WFnHvbVujpcbr+9Sf/69odMwy2MUsz5CKLQgX9nsIyrjuxL2imVyoNHa3fg==", + "hasInstallScript": true, + "dependencies": { + "elliptic": "^6.5.2", + "node-addon-api": "^2.0.0", + "node-gyp-build": "^4.2.0" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "engines": { + "node": ">=10.0.0" } }, - "node_modules/@truffle/provider/node_modules/got": { - "version": "12.1.0", - "resolved": "https://registry.npmjs.org/got/-/got-12.1.0.tgz", - "integrity": "sha512-hBv2ty9QN2RdbJJMK3hesmSkFTjVIHyIDDbssCKnSmq62edGgImJWD10Eb1k77TiV1bxloxqcFAVK8+9pkhOig==", - "dev": true, - "optional": true, + "node_modules/setprototypeof": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", + "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==" + }, + "node_modules/sha.js": { + "version": "2.4.11", + "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", + "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", "dependencies": { - "@sindresorhus/is": "^4.6.0", - "@szmarczak/http-timer": "^5.0.1", - "@types/cacheable-request": "^6.0.2", - "@types/responselike": "^1.0.0", - "cacheable-lookup": "^6.0.4", - "cacheable-request": "^7.0.2", - "decompress-response": "^6.0.0", - "form-data-encoder": "1.7.1", - "get-stream": "^6.0.1", - "http2-wrapper": "^2.1.10", - "lowercase-keys": "^3.0.0", - "p-cancelable": "^3.0.0", - "responselike": "^2.0.0" - }, - "engines": { - "node": ">=14.16" + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" }, - "funding": { - "url": "https://github.com/sindresorhus/got?sponsor=1" + "bin": { + "sha.js": "bin.js" } }, - "node_modules/@truffle/provider/node_modules/json-buffer": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", - "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", - "dev": true, - "optional": true - }, - "node_modules/@truffle/provider/node_modules/keyv": { - "version": "4.5.2", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.2.tgz", - "integrity": "sha512-5MHbFaKn8cNSmVW7BYnijeAVlE4cYA/SVkifVgrh7yotnfhKmjuXpDKjrABLnT0SfHWV21P8ow07OGfRrNDg8g==", - "dev": true, - "optional": true, + "node_modules/sha3": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/sha3/-/sha3-2.1.4.tgz", + "integrity": "sha512-S8cNxbyb0UGUM2VhRD4Poe5N58gJnJsLJ5vC7FYWGUmGhcsj4++WaIOBFVDxlG0W3To6xBuiRh+i0Qp2oNCOtg==", "dependencies": { - "json-buffer": "3.0.1" + "buffer": "6.0.3" } }, - "node_modules/@truffle/provider/node_modules/lowercase-keys": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-3.0.0.tgz", - "integrity": "sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ==", - "dev": true, - "optional": true, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node_modules/sha3/node_modules/buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" } }, - "node_modules/@truffle/provider/node_modules/mimic-response": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", - "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==", - "dev": true, - "optional": true, - "engines": { - "node": ">=10" + "node_modules/shelljs": { + "version": "0.8.5", + "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.5.tgz", + "integrity": "sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==", + "dependencies": { + "glob": "^7.0.0", + "interpret": "^1.0.0", + "rechoir": "^0.6.2" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "bin": { + "shjs": "bin/shjs" + }, + "engines": { + "node": ">=4" } }, - "node_modules/@truffle/provider/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true, - "optional": true - }, - "node_modules/@truffle/provider/node_modules/node-fetch": { - "version": "2.6.7", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", - "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", - "dev": true, - "optional": true, + "node_modules/shx": { + "version": "0.3.4", + "resolved": "https://registry.npmjs.org/shx/-/shx-0.3.4.tgz", + "integrity": "sha512-N6A9MLVqjxZYcVn8hLmtneQWIJtp8IKzMP4eMnx+nqkvXoqinUPCbUFLp2UcWTEIUONhlk0ewxr/jaVGlc+J+g==", "dependencies": { - "whatwg-url": "^5.0.0" - }, - "engines": { - "node": "4.x || >=6.0.0" + "minimist": "^1.2.3", + "shelljs": "^0.8.5" }, - "peerDependencies": { - "encoding": "^0.1.0" + "bin": { + "shx": "lib/cli.js" }, - "peerDependenciesMeta": { - "encoding": { - "optional": true - } - } - }, - "node_modules/@truffle/provider/node_modules/normalize-url": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", - "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==", - "dev": true, - "optional": true, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=6" } }, - "node_modules/@truffle/provider/node_modules/oboe": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/oboe/-/oboe-2.1.5.tgz", - "integrity": "sha512-zRFWiF+FoicxEs3jNI/WYUrVEgA7DeET/InK0XQuudGHRg8iIob3cNPrJTKaz4004uaA9Pbe+Dwa8iluhjLZWA==", - "dev": true, - "optional": true, + "node_modules/snakecase-keys": { + "version": "5.4.5", + "resolved": "https://registry.npmjs.org/snakecase-keys/-/snakecase-keys-5.4.5.tgz", + "integrity": "sha512-qSQVcgcWk8mQUN1miVGnRMAUye1dbj9+F9PVkR7wZUXNCidQwrl/kOKmoYf+WbH2ju6c9pXnlmbS2he7pb2/9A==", "dependencies": { - "http-https": "^1.0.0" - } - }, - "node_modules/@truffle/provider/node_modules/p-cancelable": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-3.0.0.tgz", - "integrity": "sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw==", - "dev": true, - "optional": true, + "map-obj": "^4.1.0", + "snake-case": "^3.0.4", + "type-fest": "^2.5.2" + }, "engines": { - "node": ">=12.20" + "node": ">=12" } }, - "node_modules/@truffle/provider/node_modules/responselike": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/responselike/-/responselike-2.0.1.tgz", - "integrity": "sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw==", - "dev": true, - "optional": true, + "node_modules/snakecase-keys/node_modules/dot-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz", + "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==", "dependencies": { - "lowercase-keys": "^2.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "no-case": "^3.0.4", + "tslib": "^2.0.3" } }, - "node_modules/@truffle/provider/node_modules/responselike/node_modules/lowercase-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", - "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", - "dev": true, - "optional": true, - "engines": { - "node": ">=8" + "node_modules/snakecase-keys/node_modules/lower-case": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", + "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", + "dependencies": { + "tslib": "^2.0.3" } }, - "node_modules/@truffle/provider/node_modules/swarm-js": { - "version": "0.1.42", - "resolved": "https://registry.npmjs.org/swarm-js/-/swarm-js-0.1.42.tgz", - "integrity": "sha512-BV7c/dVlA3R6ya1lMlSSNPLYrntt0LUq4YMgy3iwpCIc6rZnS5W2wUoctarZ5pXlpKtxDDf9hNziEkcfrxdhqQ==", - "dev": true, - "optional": true, - "dependencies": { - "bluebird": "^3.5.0", - "buffer": "^5.0.5", - "eth-lib": "^0.1.26", - "fs-extra": "^4.0.2", - "got": "^11.8.5", - "mime-types": "^2.1.16", - "mkdirp-promise": "^5.0.1", - "mock-fs": "^4.1.0", - "setimmediate": "^1.0.5", - "tar": "^4.0.2", - "xhr-request": "^1.0.1" - } - }, - "node_modules/@truffle/provider/node_modules/swarm-js/node_modules/@szmarczak/http-timer": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-4.0.6.tgz", - "integrity": "sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==", - "dev": true, - "optional": true, + "node_modules/snakecase-keys/node_modules/no-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", + "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", "dependencies": { - "defer-to-connect": "^2.0.0" - }, - "engines": { - "node": ">=10" + "lower-case": "^2.0.2", + "tslib": "^2.0.3" } }, - "node_modules/@truffle/provider/node_modules/swarm-js/node_modules/cacheable-lookup": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz", - "integrity": "sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==", - "dev": true, - "optional": true, - "engines": { - "node": ">=10.6.0" + "node_modules/snakecase-keys/node_modules/snake-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/snake-case/-/snake-case-3.0.4.tgz", + "integrity": "sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==", + "dependencies": { + "dot-case": "^3.0.4", + "tslib": "^2.0.3" } }, - "node_modules/@truffle/provider/node_modules/swarm-js/node_modules/got": { - "version": "11.8.6", - "resolved": "https://registry.npmjs.org/got/-/got-11.8.6.tgz", - "integrity": "sha512-6tfZ91bOr7bOXnK7PRDCGBLa1H4U080YHNaAQ2KsMGlLEzRbk44nsZF2E1IeRc3vtJHPVbKCYgdFbaGO2ljd8g==", - "dev": true, - "optional": true, - "dependencies": { - "@sindresorhus/is": "^4.0.0", - "@szmarczak/http-timer": "^4.0.5", - "@types/cacheable-request": "^6.0.1", - "@types/responselike": "^1.0.0", - "cacheable-lookup": "^5.0.3", - "cacheable-request": "^7.0.2", - "decompress-response": "^6.0.0", - "http2-wrapper": "^1.0.0-beta.5.2", - "lowercase-keys": "^2.0.0", - "p-cancelable": "^2.0.0", - "responselike": "^2.0.0" - }, + "node_modules/snakecase-keys/node_modules/tslib": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz", + "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==" + }, + "node_modules/snakecase-keys/node_modules/type-fest": { + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz", + "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==", "engines": { - "node": ">=10.19.0" + "node": ">=12.20" }, "funding": { - "url": "https://github.com/sindresorhus/got?sponsor=1" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@truffle/provider/node_modules/swarm-js/node_modules/http2-wrapper": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-1.0.3.tgz", - "integrity": "sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg==", - "dev": true, - "optional": true, - "dependencies": { - "quick-lru": "^5.1.1", - "resolve-alpn": "^1.0.0" - }, + "node_modules/statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", "engines": { - "node": ">=10.19.0" + "node": ">= 0.6" } }, - "node_modules/@truffle/provider/node_modules/swarm-js/node_modules/lowercase-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", - "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", - "dev": true, - "optional": true, - "engines": { - "node": ">=8" - } + "node_modules/store2": { + "version": "2.14.2", + "resolved": "https://registry.npmjs.org/store2/-/store2-2.14.2.tgz", + "integrity": "sha512-siT1RiqlfQnGqgT/YzXVUNsom9S0H1OX+dpdGN1xkyYATo4I6sep5NmsRD/40s3IIOvlCq6akxkqG82urIZW1w==" }, - "node_modules/@truffle/provider/node_modules/swarm-js/node_modules/p-cancelable": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.1.1.tgz", - "integrity": "sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==", - "dev": true, - "optional": true, - "engines": { - "node": ">=8" + "node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dependencies": { + "safe-buffer": "~5.1.0" } }, - "node_modules/@truffle/provider/node_modules/swarm-js/node_modules/setimmediate": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", - "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==", - "dev": true, - "optional": true + "node_modules/string_decoder/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" }, - "node_modules/@truffle/provider/node_modules/uuid": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-2.0.1.tgz", - "integrity": "sha512-nWg9+Oa3qD2CQzHIP4qKUqwNfzKn8P0LtFhotaCTFchsV7ZfDhAybeip/HZVeMIpZi9JgY1E3nUlwaCmZT1sEg==", - "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", - "dev": true, - "optional": true + "node_modules/string-format": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/string-format/-/string-format-2.0.0.tgz", + "integrity": "sha512-bbEs3scLeYNXLecRRuk6uJxdXUSj6le/8rNPHChIJTn2V79aXVTR1EH2OH5zLKKoz0V02fOUKZZcw01pLUShZA==" }, - "node_modules/@truffle/provider/node_modules/web3": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/web3/-/web3-1.8.2.tgz", - "integrity": "sha512-92h0GdEHW9wqDICQQKyG4foZBYi0OQkyg4CRml2F7XBl/NG+fu9o6J19kzfFXzSBoA4DnJXbyRgj/RHZv5LRiw==", - "dev": true, - "hasInstallScript": true, - "optional": true, + "node_modules/strip-hex-prefix": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-hex-prefix/-/strip-hex-prefix-1.0.0.tgz", + "integrity": "sha1-DF8VX+8RUTczd96du1iNoFUA428=", "dependencies": { - "web3-bzz": "1.8.2", - "web3-core": "1.8.2", - "web3-eth": "1.8.2", - "web3-eth-personal": "1.8.2", - "web3-net": "1.8.2", - "web3-shh": "1.8.2", - "web3-utils": "1.8.2" + "is-hex-prefixed": "1.0.0" }, "engines": { - "node": ">=8.0.0" + "node": ">=6.5.0", + "npm": ">=3" } }, - "node_modules/@truffle/provider/node_modules/web3-bzz": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/web3-bzz/-/web3-bzz-1.8.2.tgz", - "integrity": "sha512-1EEnxjPnFnvNWw3XeeKuTR8PBxYd0+XWzvaLK7OJC/Go9O8llLGxrxICbKV+8cgIE0sDRBxiYx02X+6OhoAQ9w==", - "dev": true, - "hasInstallScript": true, + "node_modules/subscriptions-transport-ws": { + "version": "0.9.19", + "resolved": "https://registry.npmjs.org/subscriptions-transport-ws/-/subscriptions-transport-ws-0.9.19.tgz", + "integrity": "sha512-dxdemxFFB0ppCLg10FTtRqH/31FNRL1y1BQv8209MK5I4CwALb7iihQg+7p65lFcIl8MHatINWBLOqpgU4Kyyw==", + "deprecated": "The `subscriptions-transport-ws` package is no longer maintained. We recommend you use `graphql-ws` instead. For help migrating Apollo software to `graphql-ws`, see https://www.apollographql.com/docs/apollo-server/data/subscriptions/#switching-from-subscriptions-transport-ws For general help using `graphql-ws`, see https://github.com/enisdenjo/graphql-ws/blob/master/README.md", "optional": true, + "peer": true, "dependencies": { - "@types/node": "^12.12.6", - "got": "12.1.0", - "swarm-js": "^0.1.40" + "backo2": "^1.0.2", + "eventemitter3": "^3.1.0", + "iterall": "^1.2.1", + "symbol-observable": "^1.0.4", + "ws": "^5.2.0 || ^6.0.0 || ^7.0.0" }, - "engines": { - "node": ">=8.0.0" + "peerDependencies": { + "graphql": ">=0.10.0" } }, - "node_modules/@truffle/provider/node_modules/web3-core": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/web3-core/-/web3-core-1.8.2.tgz", - "integrity": "sha512-DJTVEAYcNqxkqruJE+Rxp3CIv0y5AZMwPHQmOkz/cz+MM75SIzMTc0AUdXzGyTS8xMF8h3YWMQGgGEy8SBf1PQ==", - "dev": true, + "node_modules/subscriptions-transport-ws/node_modules/ws": { + "version": "7.5.7", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.7.tgz", + "integrity": "sha512-KMvVuFzpKBuiIXW3E4u3mySRO2/mCHSyZDJQM5NQ9Q9KHWHWh0NHgfbRMLLrceUK5qAL4ytALJbpRMjixFZh8A==", "optional": true, - "dependencies": { - "@types/bn.js": "^5.1.0", - "@types/node": "^12.12.6", - "bignumber.js": "^9.0.0", - "web3-core-helpers": "1.8.2", - "web3-core-method": "1.8.2", - "web3-core-requestmanager": "1.8.2", - "web3-utils": "1.8.2" - }, + "peer": true, "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@truffle/provider/node_modules/web3-core-helpers": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.8.2.tgz", - "integrity": "sha512-6B1eLlq9JFrfealZBomd1fmlq1o4A09vrCVQSa51ANoib/jllT3atZrRDr0zt1rfI7TSZTZBXdN/aTdeN99DWw==", - "dev": true, - "optional": true, - "dependencies": { - "web3-eth-iban": "1.8.2", - "web3-utils": "1.8.2" + "node": ">=8.3.0" }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@truffle/provider/node_modules/web3-core-method": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/web3-core-method/-/web3-core-method-1.8.2.tgz", - "integrity": "sha512-1qnr5mw5wVyULzLOrk4B+ryO3gfGjGd/fx8NR+J2xCGLf1e6OSjxT9vbfuQ3fErk/NjSTWWreieYWLMhaogcRA==", - "dev": true, - "optional": true, - "dependencies": { - "@ethersproject/transactions": "^5.6.2", - "web3-core-helpers": "1.8.2", - "web3-core-promievent": "1.8.2", - "web3-core-subscriptions": "1.8.2", - "web3-utils": "1.8.2" + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" }, - "engines": { - "node": ">=8.0.0" + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } } }, - "node_modules/@truffle/provider/node_modules/web3-core-promievent": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/web3-core-promievent/-/web3-core-promievent-1.8.2.tgz", - "integrity": "sha512-nvkJWDVgoOSsolJldN33tKW6bKKRJX3MCPDYMwP5SUFOA/mCzDEoI88N0JFofDTXkh1k7gOqp1pvwi9heuaxGg==", - "dev": true, - "optional": true, + "node_modules/superstruct": { + "version": "0.15.5", + "resolved": "https://registry.npmjs.org/superstruct/-/superstruct-0.15.5.tgz", + "integrity": "sha512-4AOeU+P5UuE/4nOUkmcQdW5y7i9ndt1cQd/3iUe+LTz3RxESf/W/5lg4B74HbDMMv8PHnPnGCQFH45kBcrQYoQ==" + }, + "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==", "dependencies": { - "eventemitter3": "4.0.4" + "has-flag": "^3.0.0" }, "engines": { - "node": ">=8.0.0" + "node": ">=4" } }, - "node_modules/@truffle/provider/node_modules/web3-core-requestmanager": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/web3-core-requestmanager/-/web3-core-requestmanager-1.8.2.tgz", - "integrity": "sha512-p1d090RYs5Mu7DK1yyc3GCBVZB/03rBtFhYFoS2EruGzOWs/5Q0grgtpwS/DScdRAm8wB8mYEBhY/RKJWF6B2g==", - "dev": true, + "node_modules/symbol-observable": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.2.0.tgz", + "integrity": "sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ==", "optional": true, - "dependencies": { - "util": "^0.12.5", - "web3-core-helpers": "1.8.2", - "web3-providers-http": "1.8.2", - "web3-providers-ipc": "1.8.2", - "web3-providers-ws": "1.8.2" - }, + "peer": true, "engines": { - "node": ">=8.0.0" + "node": ">=0.10.0" } }, - "node_modules/@truffle/provider/node_modules/web3-core-subscriptions": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/web3-core-subscriptions/-/web3-core-subscriptions-1.8.2.tgz", - "integrity": "sha512-vXQogHDmAIQcKpXvGiMddBUeP9lnKgYF64+yQJhPNE5PnWr1sAibXuIPV7mIPihpFr/n/DORRj6Wh1pUv9zaTw==", - "dev": true, - "optional": true, + "node_modules/table-layout": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/table-layout/-/table-layout-1.0.2.tgz", + "integrity": "sha512-qd/R7n5rQTRFi+Zf2sk5XVVd9UQl6ZkduPFC3S7WEGJAmetDTjY3qPN50eSKzwuzEyQKy5TN2TiZdkIjos2L6A==", "dependencies": { - "eventemitter3": "4.0.4", - "web3-core-helpers": "1.8.2" + "array-back": "^4.0.1", + "deep-extend": "~0.6.0", + "typical": "^5.2.0", + "wordwrapjs": "^4.0.0" }, "engines": { "node": ">=8.0.0" } }, - "node_modules/@truffle/provider/node_modules/web3-eth": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/web3-eth/-/web3-eth-1.8.2.tgz", - "integrity": "sha512-JoTiWWc4F4TInpbvDUGb0WgDYJsFhuIjJlinc5ByjWD88Gvh+GKLsRjjFdbqe5YtwIGT4NymwoC5LQd1K6u/QQ==", - "dev": true, - "optional": true, - "dependencies": { - "web3-core": "1.8.2", - "web3-core-helpers": "1.8.2", - "web3-core-method": "1.8.2", - "web3-core-subscriptions": "1.8.2", - "web3-eth-abi": "1.8.2", - "web3-eth-accounts": "1.8.2", - "web3-eth-contract": "1.8.2", - "web3-eth-ens": "1.8.2", - "web3-eth-iban": "1.8.2", - "web3-eth-personal": "1.8.2", - "web3-net": "1.8.2", - "web3-utils": "1.8.2" - }, + "node_modules/table-layout/node_modules/array-back": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-4.0.2.tgz", + "integrity": "sha512-NbdMezxqf94cnNfWLL7V/im0Ub+Anbb0IoZhvzie8+4HJ4nMQuzHuy49FkGYCJK2yAloZ3meiB6AVMClbrI1vg==", "engines": { - "node": ">=8.0.0" + "node": ">=8" } }, - "node_modules/@truffle/provider/node_modules/web3-eth-abi": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/web3-eth-abi/-/web3-eth-abi-1.8.2.tgz", - "integrity": "sha512-Om9g3kaRNjqiNPAgKwGT16y+ZwtBzRe4ZJFGjLiSs6v5I7TPNF+rRMWuKnR6jq0azQZDj6rblvKFMA49/k48Og==", - "dev": true, - "optional": true, - "dependencies": { - "@ethersproject/abi": "^5.6.3", - "web3-utils": "1.8.2" - }, + "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.0.0" + "node": ">=8" } }, - "node_modules/@truffle/provider/node_modules/web3-eth-accounts": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/web3-eth-accounts/-/web3-eth-accounts-1.8.2.tgz", - "integrity": "sha512-c367Ij63VCz9YdyjiHHWLFtN85l6QghgwMQH2B1eM/p9Y5lTlTX7t/Eg/8+f1yoIStXbk2w/PYM2lk+IkbqdLA==", - "dev": true, - "optional": true, + "node_modules/text-encoding-utf-8": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/text-encoding-utf-8/-/text-encoding-utf-8-1.0.2.tgz", + "integrity": "sha512-8bw4MY9WjdsD2aMtO0OzOCY3pXGYNx2d2FfHRVUKkiCPDWjKuOlhLVASS+pD7VkLTVjW268LYJHwsnPFlBpbAg==" + }, + "node_modules/through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=" + }, + "node_modules/tiny-secp256k1": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/tiny-secp256k1/-/tiny-secp256k1-1.1.6.tgz", + "integrity": "sha512-FmqJZGduTyvsr2cF3375fqGHUovSwDi/QytexX1Se4BPuPZpTE5Ftp5fg+EFSuEf3lhZqgCRjEG3ydUQ/aNiwA==", + "hasInstallScript": true, "dependencies": { - "@ethereumjs/common": "2.5.0", - "@ethereumjs/tx": "3.3.2", - "eth-lib": "0.2.8", - "ethereumjs-util": "^7.1.5", - "scrypt-js": "^3.0.1", - "uuid": "^9.0.0", - "web3-core": "1.8.2", - "web3-core-helpers": "1.8.2", - "web3-core-method": "1.8.2", - "web3-utils": "1.8.2" + "bindings": "^1.3.0", + "bn.js": "^4.11.8", + "create-hmac": "^1.1.7", + "elliptic": "^6.4.0", + "nan": "^2.13.2" }, "engines": { - "node": ">=8.0.0" + "node": ">=6.0.0" } }, - "node_modules/@truffle/provider/node_modules/web3-eth-accounts/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true, - "optional": true - }, - "node_modules/@truffle/provider/node_modules/web3-eth-accounts/node_modules/eth-lib": { - "version": "0.2.8", - "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.8.tgz", - "integrity": "sha512-ArJ7x1WcWOlSpzdoTBX8vkwlkSQ85CjjifSZtV4co64vWxSV8geWfPI9x4SVYu3DSxnX4yWFVTtGL+j9DUFLNw==", - "dev": true, - "optional": true, - "dependencies": { - "bn.js": "^4.11.6", - "elliptic": "^6.4.0", - "xhr-request-promise": "^0.1.2" + "node_modules/toidentifier": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", + "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==", + "engines": { + "node": ">=0.6" } }, - "node_modules/@truffle/provider/node_modules/web3-eth-accounts/node_modules/scrypt-js": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-3.0.1.tgz", - "integrity": "sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA==", - "dev": true, - "optional": true + "node_modules/toml": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/toml/-/toml-3.0.0.tgz", + "integrity": "sha512-y/mWCZinnvxjTKYhJ+pYxwD0mRLVvOtdS2Awbgxln6iEnt4rk0yBxeSBHkGJcPucRiG0e55mwWp+g/05rsrd6w==" }, - "node_modules/@truffle/provider/node_modules/web3-eth-accounts/node_modules/uuid": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.0.tgz", - "integrity": "sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg==", - "dev": true, - "optional": true, - "bin": { - "uuid": "dist/bin/uuid" - } + "node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=" }, - "node_modules/@truffle/provider/node_modules/web3-eth-contract": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/web3-eth-contract/-/web3-eth-contract-1.8.2.tgz", - "integrity": "sha512-ID5A25tHTSBNwOPjiXSVzxruz006ULRIDbzWTYIFTp7NJ7vXu/kynKK2ag/ObuTqBpMbobP8nXcA9b5EDkIdQA==", - "dev": true, - "optional": true, + "node_modules/ts-command-line-args": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/ts-command-line-args/-/ts-command-line-args-2.4.2.tgz", + "integrity": "sha512-mJLQQBOdyD4XI/ZWQY44PIdYde47JhV2xl380O7twPkTQ+Y5vFDHsk8LOeXKuz7dVY5aDCfAzRarNfSqtKOkQQ==", "dependencies": { - "@types/bn.js": "^5.1.0", - "web3-core": "1.8.2", - "web3-core-helpers": "1.8.2", - "web3-core-method": "1.8.2", - "web3-core-promievent": "1.8.2", - "web3-core-subscriptions": "1.8.2", - "web3-eth-abi": "1.8.2", - "web3-utils": "1.8.2" + "@morgan-stanley/ts-mocking-bird": "^0.6.2", + "chalk": "^4.1.0", + "command-line-args": "^5.1.1", + "command-line-usage": "^6.1.0", + "string-format": "^2.0.0" }, - "engines": { - "node": ">=8.0.0" + "bin": { + "write-markdown": "dist/write-markdown.js" } }, - "node_modules/@truffle/provider/node_modules/web3-eth-ens": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/web3-eth-ens/-/web3-eth-ens-1.8.2.tgz", - "integrity": "sha512-PWph7C/CnqdWuu1+SH4U4zdrK4t2HNt0I4XzPYFdv9ugE8EuojselioPQXsVGvjql+Nt3jDLvQvggPqlMbvwRw==", - "dev": true, - "optional": true, + "node_modules/ts-command-line-args/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dependencies": { - "content-hash": "^2.5.2", - "eth-ens-namehash": "2.0.8", - "web3-core": "1.8.2", - "web3-core-helpers": "1.8.2", - "web3-core-promievent": "1.8.2", - "web3-eth-abi": "1.8.2", - "web3-eth-contract": "1.8.2", - "web3-utils": "1.8.2" + "color-convert": "^2.0.1" }, "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@truffle/provider/node_modules/web3-eth-iban": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/web3-eth-iban/-/web3-eth-iban-1.8.2.tgz", - "integrity": "sha512-h3vNblDWkWMuYx93Q27TAJz6lhzpP93EiC3+45D6xoz983p6si773vntoQ+H+5aZhwglBtoiBzdh7PSSOnP/xQ==", - "dev": true, - "optional": true, - "dependencies": { - "bn.js": "^5.2.1", - "web3-utils": "1.8.2" + "node": ">=8" }, - "engines": { - "node": ">=8.0.0" + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/@truffle/provider/node_modules/web3-eth-personal": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/web3-eth-personal/-/web3-eth-personal-1.8.2.tgz", - "integrity": "sha512-Vg4HfwCr7doiUF/RC+Jz0wT4+cYaXcOWMAW2AHIjHX6Z7Xwa8nrURIeQgeEE62qcEHAzajyAdB1u6bJyTfuCXw==", - "dev": true, - "optional": true, + "node_modules/ts-command-line-args/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": { - "@types/node": "^12.12.6", - "web3-core": "1.8.2", - "web3-core-helpers": "1.8.2", - "web3-core-method": "1.8.2", - "web3-net": "1.8.2", - "web3-utils": "1.8.2" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, "engines": { - "node": ">=8.0.0" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/@truffle/provider/node_modules/web3-net": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/web3-net/-/web3-net-1.8.2.tgz", - "integrity": "sha512-1itkDMGmbgb83Dg9nporFes9/fxsU7smJ3oRXlFkg4ZHn8YJyP1MSQFPJWWwSc+GrcCFt4O5IrUTvEkHqE3xag==", - "dev": true, - "optional": true, + "node_modules/ts-command-line-args/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dependencies": { - "web3-core": "1.8.2", - "web3-core-method": "1.8.2", - "web3-utils": "1.8.2" + "color-name": "~1.1.4" }, "engines": { - "node": ">=8.0.0" + "node": ">=7.0.0" } }, - "node_modules/@truffle/provider/node_modules/web3-providers-http": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/web3-providers-http/-/web3-providers-http-1.8.2.tgz", - "integrity": "sha512-2xY94IIEQd16+b+vIBF4IC1p7GVaz9q4EUFscvMUjtEq4ru4Atdzjs9GP+jmcoo49p70II0UV3bqQcz0TQfVyQ==", - "dev": true, - "optional": true, - "dependencies": { - "abortcontroller-polyfill": "^1.7.3", - "cross-fetch": "^3.1.4", - "es6-promise": "^4.2.8", - "web3-core-helpers": "1.8.2" - }, + "node_modules/ts-command-line-args/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/ts-command-line-args/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "engines": { - "node": ">=8.0.0" + "node": ">=8" } }, - "node_modules/@truffle/provider/node_modules/web3-providers-ipc": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/web3-providers-ipc/-/web3-providers-ipc-1.8.2.tgz", - "integrity": "sha512-p6fqKVGFg+WiXGHWnB1hu43PbvPkDHTz4RgoEzbXugv5rtv5zfYLqm8Ba6lrJOS5ks9kGKR21a0y3NzE3u7V4w==", - "dev": true, - "optional": true, + "node_modules/ts-command-line-args/node_modules/supports-color": { + "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": { - "oboe": "2.1.5", - "web3-core-helpers": "1.8.2" + "has-flag": "^4.0.0" }, "engines": { - "node": ">=8.0.0" + "node": ">=8" } }, - "node_modules/@truffle/provider/node_modules/web3-providers-ws": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/web3-providers-ws/-/web3-providers-ws-1.8.2.tgz", - "integrity": "sha512-3s/4K+wHgbiN+Zrp9YjMq2eqAF6QGABw7wFftPdx+m5hWImV27/MoIx57c6HffNRqZXmCHnfWWFCNHHsi7wXnA==", + "node_modules/ts-node": { + "version": "10.9.1", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.1.tgz", + "integrity": "sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==", "dev": true, - "optional": true, "dependencies": { - "eventemitter3": "4.0.4", - "web3-core-helpers": "1.8.2", - "websocket": "^1.0.32" + "@cspotcode/source-map-support": "^0.8.0", + "@tsconfig/node10": "^1.0.7", + "@tsconfig/node12": "^1.0.7", + "@tsconfig/node14": "^1.0.0", + "@tsconfig/node16": "^1.0.2", + "acorn": "^8.4.1", + "acorn-walk": "^8.1.1", + "arg": "^4.1.0", + "create-require": "^1.1.0", + "diff": "^4.0.1", + "make-error": "^1.1.1", + "v8-compile-cache-lib": "^3.0.1", + "yn": "3.1.1" }, - "engines": { - "node": ">=8.0.0" + "bin": { + "ts-node": "dist/bin.js", + "ts-node-cwd": "dist/bin-cwd.js", + "ts-node-esm": "dist/bin-esm.js", + "ts-node-script": "dist/bin-script.js", + "ts-node-transpile-only": "dist/bin-transpile.js", + "ts-script": "dist/bin-script-deprecated.js" + }, + "peerDependencies": { + "@swc/core": ">=1.2.50", + "@swc/wasm": ">=1.2.50", + "@types/node": "*", + "typescript": ">=2.7" + }, + "peerDependenciesMeta": { + "@swc/core": { + "optional": true + }, + "@swc/wasm": { + "optional": true + } } }, - "node_modules/@truffle/provider/node_modules/web3-shh": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/web3-shh/-/web3-shh-1.8.2.tgz", - "integrity": "sha512-uZ+3MAoNcaJsXXNCDnizKJ5viBNeHOFYsCbFhV755Uu52FswzTOw6DtE7yK9nYXMtIhiSgi7nwl1RYzP8pystw==", + "node_modules/ts-node/node_modules/acorn": { + "version": "8.8.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz", + "integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==", "dev": true, - "hasInstallScript": true, - "optional": true, - "dependencies": { - "web3-core": "1.8.2", - "web3-core-method": "1.8.2", - "web3-core-subscriptions": "1.8.2", - "web3-net": "1.8.2" + "bin": { + "acorn": "bin/acorn" }, "engines": { - "node": ">=8.0.0" + "node": ">=0.4.0" } }, - "node_modules/@truffle/provider/node_modules/web3-utils": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.8.2.tgz", - "integrity": "sha512-v7j6xhfLQfY7xQDrUP0BKbaNrmZ2/+egbqP9q3KYmOiPpnvAfol+32slgL0WX/5n8VPvKCK5EZ1HGrAVICSToA==", - "dev": true, - "optional": true, - "dependencies": { - "bn.js": "^5.2.1", - "ethereum-bloom-filters": "^1.0.6", - "ethereumjs-util": "^7.1.0", - "ethjs-unit": "0.1.6", - "number-to-bn": "1.7.0", - "randombytes": "^2.1.0", - "utf8": "3.0.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@truffle/provider/node_modules/websocket": { - "version": "1.0.34", - "resolved": "https://registry.npmjs.org/websocket/-/websocket-1.0.34.tgz", - "integrity": "sha512-PRDso2sGwF6kM75QykIesBijKSVceR6jL2G8NGYyq2XrItNC2P5/qL5XeR056GhA+Ly7JMFvJb9I312mJfmqnQ==", - "dev": true, - "optional": true, - "dependencies": { - "bufferutil": "^4.0.1", - "debug": "^2.2.0", - "es5-ext": "^0.10.50", - "typedarray-to-buffer": "^3.1.5", - "utf-8-validate": "^5.0.2", - "yaeti": "^0.0.6" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/@truffle/provider/node_modules/websocket/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "optional": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/@truffle/provider/node_modules/websocket/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true, - "optional": true - }, - "node_modules/@truffle/source-map-utils": { - "version": "1.3.110", - "resolved": "https://registry.npmjs.org/@truffle/source-map-utils/-/source-map-utils-1.3.110.tgz", - "integrity": "sha512-lkKWwLxGfQITRXjH9fWdy95jSIIzyfX+ggUi5rgkjz5rUUEXFaJ/YX3mxQLQJMi18kKn/yv0ZiGju84aMR3qoA==", - "dev": true, - "dependencies": { - "@truffle/code-utils": "^3.0.2", - "@truffle/codec": "^0.14.17", - "debug": "^4.3.1", - "json-pointer": "^0.6.1", - "node-interval-tree": "^1.3.3", - "web3-utils": "1.8.2" - } + "node_modules/tweetnacl-util": { + "version": "0.15.1", + "resolved": "https://registry.npmjs.org/tweetnacl-util/-/tweetnacl-util-0.15.1.tgz", + "integrity": "sha512-RKJBIj8lySrShN4w6i/BonWp2Z/uxwC3h4y7xsRrpP59ZboCd0GpEVsOnMDYLMmKBpYhb5TgHzZXy7wTfYFBRw==" }, - "node_modules/@truffle/source-map-utils/node_modules/@truffle/codec": { - "version": "0.14.17", - "resolved": "https://registry.npmjs.org/@truffle/codec/-/codec-0.14.17.tgz", - "integrity": "sha512-kD4dD86huLeaBEq5R8D1zleJEu6NsXbyYLdXl1V1TKdiO8odw5CBC6Y/+wdu5d3t1dyEYrTbhn1dqknZa52pmw==", - "dev": true, + "node_modules/typechain": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/typechain/-/typechain-8.1.1.tgz", + "integrity": "sha512-uF/sUvnXTOVF2FHKhQYnxHk4su4JjZR8vr4mA2mBaRwHTbwh0jIlqARz9XJr1tA0l7afJGvEa1dTSi4zt039LQ==", "dependencies": { - "@truffle/abi-utils": "^0.3.9", - "@truffle/compile-common": "^0.9.4", - "big.js": "^6.0.3", - "bn.js": "^5.1.3", - "cbor": "^5.2.0", + "@types/prettier": "^2.1.1", "debug": "^4.3.1", - "lodash": "^4.17.21", - "semver": "7.3.7", - "utf8": "^3.0.0", - "web3-utils": "1.8.2" - } - }, - "node_modules/@truffle/source-map-utils/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==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@truffle/source-map-utils/node_modules/big.js": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/big.js/-/big.js-6.2.1.tgz", - "integrity": "sha512-bCtHMwL9LeDIozFn+oNhhFoq+yQ3BNdnsLSASUxLciOb1vgvpHsIO1dsENiGMgbb4SkP5TrzWzRiLddn8ahVOQ==", - "dev": true, - "engines": { - "node": "*" + "fs-extra": "^7.0.0", + "glob": "7.1.7", + "js-sha3": "^0.8.0", + "lodash": "^4.17.15", + "mkdirp": "^1.0.4", + "prettier": "^2.3.1", + "ts-command-line-args": "^2.2.0", + "ts-essentials": "^7.0.1" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/bigjs" - } - }, - "node_modules/@truffle/source-map-utils/node_modules/bignumber.js": { - "version": "9.1.1", - "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.1.1.tgz", - "integrity": "sha512-pHm4LsMJ6lzgNGVfZHjMoO8sdoRhOzOH4MLmY65Jg70bpxCKu5iOHNJyfF6OyvYw7t8Fpf35RuzUyqnQsj8Vig==", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/@truffle/source-map-utils/node_modules/bn.js": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", - "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==", - "dev": true - }, - "node_modules/@truffle/source-map-utils/node_modules/cbor": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/cbor/-/cbor-5.2.0.tgz", - "integrity": "sha512-5IMhi9e1QU76ppa5/ajP1BmMWZ2FHkhAhjeVKQ/EFCgYSEaeVaoGtL7cxJskf9oCCk+XjzaIdc3IuU/dbA/o2A==", - "dev": true, - "dependencies": { - "bignumber.js": "^9.0.1", - "nofilter": "^1.0.4" + "bin": { + "typechain": "dist/cli/cli.js" }, - "engines": { - "node": ">=6.0.0" + "peerDependencies": { + "typescript": ">=4.3.0" } }, - "node_modules/@truffle/source-map-utils/node_modules/debug": { + "node_modules/typechain/node_modules/@types/prettier": { + "version": "2.7.2", + "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.7.2.tgz", + "integrity": "sha512-KufADq8uQqo1pYKVIYzfKbJfBAc0sOeXqGbFaSpv8MRmC/zXgowNZmFcbngndGk922QDmOASEXUZCaY48gs4cg==" + }, + "node_modules/typechain/node_modules/debug": { "version": "4.3.4", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, "dependencies": { "ms": "2.1.2" }, @@ -6882,37847 +5757,1586 @@ } } }, - "node_modules/@truffle/source-map-utils/node_modules/ethereumjs-util": { - "version": "7.1.5", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.5.tgz", - "integrity": "sha512-SDl5kKrQAudFBUe5OJM9Ac6WmMyYmXX/6sTmLZ3ffG2eY6ZIGBes3pEDxNN6V72WyOw4CPD5RomKdsa8DAAwLg==", - "dev": true, + "node_modules/typechain/node_modules/glob": { + "version": "7.1.7", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz", + "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==", "dependencies": { - "@types/bn.js": "^5.1.0", - "bn.js": "^5.1.2", - "create-hash": "^1.1.2", - "ethereum-cryptography": "^0.1.3", - "rlp": "^2.2.4" + "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": ">=10.0.0" + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/@truffle/source-map-utils/node_modules/ms": { + "node_modules/typechain/node_modules/ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" }, - "node_modules/@truffle/source-map-utils/node_modules/semver": { - "version": "7.3.7", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", - "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, + "node_modules/typechain/node_modules/prettier": { + "version": "2.8.7", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.7.tgz", + "integrity": "sha512-yPngTo3aXUUmyuTjeTUT75txrf+aMh9FiD7q9ZE/i6r0bPb22g4FsE6Y338PQX1bmfy08i9QQCB7/rcUAVntfw==", "bin": { - "semver": "bin/semver.js" + "prettier": "bin-prettier.js" }, "engines": { - "node": ">=10" + "node": ">=10.13.0" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" } }, - "node_modules/@truffle/source-map-utils/node_modules/web3-utils": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.8.2.tgz", - "integrity": "sha512-v7j6xhfLQfY7xQDrUP0BKbaNrmZ2/+egbqP9q3KYmOiPpnvAfol+32slgL0WX/5n8VPvKCK5EZ1HGrAVICSToA==", - "dev": true, - "dependencies": { - "bn.js": "^5.2.1", - "ethereum-bloom-filters": "^1.0.6", - "ethereumjs-util": "^7.1.0", - "ethjs-unit": "0.1.6", - "number-to-bn": "1.7.0", - "randombytes": "^2.1.0", - "utf8": "3.0.0" + "node_modules/typechain/node_modules/ts-essentials": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/ts-essentials/-/ts-essentials-7.0.3.tgz", + "integrity": "sha512-8+gr5+lqO3G84KdiTSMRLtuyJ+nTBVRKuCrK4lidMPdVeEp0uqC875uE5NMcaA7YYMN7XsNiFQuMvasF8HT/xQ==", + "peerDependencies": { + "typescript": ">=3.7.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==", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" }, "engines": { - "node": ">=8.0.0" + "node": ">=4.2.0" } }, - "node_modules/@truffle/spinners": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/@truffle/spinners/-/spinners-0.2.3.tgz", - "integrity": "sha512-YnaQ+oBRQ1I1+/P18i8oSW4orUYi6vwpZQxauEZ5X0L8atjKq+RWdiNaza6J6L+KOLunXM4+pWxnNzuUmxlJZw==", - "dev": true, - "optional": true, - "dependencies": { - "@trufflesuite/spinnies": "^0.1.1" + "node_modules/typical": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/typical/-/typical-4.0.0.tgz", + "integrity": "sha512-VAH4IvQ7BDFYglMd7BPRDfLgxZZX4O4TFcRDA6EN5X7erNJJq+McIEp8np9aVtxrCJ6qx4GTYVfOWNjcqwZgRw==", + "engines": { + "node": ">=8" } }, - "node_modules/@trufflesuite/eth-json-rpc-filters": { - "version": "4.1.2-1", - "resolved": "https://registry.npmjs.org/@trufflesuite/eth-json-rpc-filters/-/eth-json-rpc-filters-4.1.2-1.tgz", - "integrity": "sha512-/MChvC5dw2ck9NU1cZmdovCz2VKbOeIyR4tcxDvA5sT+NaL0rA2/R5U0yI7zsbo1zD+pgqav77rQHTzpUdDNJQ==", - "dependencies": { - "@trufflesuite/eth-json-rpc-middleware": "^4.4.2-0", - "await-semaphore": "^0.1.3", - "eth-query": "^2.1.2", - "json-rpc-engine": "^5.1.3", - "lodash.flatmap": "^4.5.0", - "safe-event-emitter": "^1.0.1" + "node_modules/u3": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/u3/-/u3-0.1.1.tgz", + "integrity": "sha512-+J5D5ir763y+Am/QY6hXNRlwljIeRMZMGs0cT6qqZVVzzT3X3nFPXVyPOFRMOR4kupB0T8JnCdpWdp6Q/iXn3w==" + }, + "node_modules/ultron": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ultron/-/ultron-1.1.1.tgz", + "integrity": "sha512-UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og==", + "peer": true + }, + "node_modules/universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "engines": { + "node": ">= 4.0.0" } }, - "node_modules/@trufflesuite/eth-json-rpc-infura": { - "version": "4.0.3-0", - "resolved": "https://registry.npmjs.org/@trufflesuite/eth-json-rpc-infura/-/eth-json-rpc-infura-4.0.3-0.tgz", - "integrity": "sha512-xaUanOmo0YLqRsL0SfXpFienhdw5bpQ1WEXxMTRi57az4lwpZBv4tFUDvcerdwJrxX9wQqNmgUgd1BrR01dumw==", - "dependencies": { - "@trufflesuite/eth-json-rpc-middleware": "^4.4.2-1", - "cross-fetch": "^2.1.1", - "eth-json-rpc-errors": "^1.0.1", - "json-rpc-engine": "^5.1.3" + "node_modules/untildify": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/untildify/-/untildify-4.0.0.tgz", + "integrity": "sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==", + "engines": { + "node": ">=8" } }, - "node_modules/@trufflesuite/eth-json-rpc-infura/node_modules/eth-json-rpc-errors": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/eth-json-rpc-errors/-/eth-json-rpc-errors-1.1.1.tgz", - "integrity": "sha512-WT5shJ5KfNqHi9jOZD+ID8I1kuYWNrigtZat7GOQkvwo99f8SzAVaEcWhJUv656WiZOAg3P1RiJQANtUmDmbIg==", - "deprecated": "Package renamed: https://www.npmjs.com/package/eth-rpc-errors", - "dependencies": { - "fast-safe-stringify": "^2.0.6" - } - }, - "node_modules/@trufflesuite/eth-json-rpc-middleware": { - "version": "4.4.2-1", - "resolved": "https://registry.npmjs.org/@trufflesuite/eth-json-rpc-middleware/-/eth-json-rpc-middleware-4.4.2-1.tgz", - "integrity": "sha512-iEy9H8ja7/8aYES5HfrepGBKU9n/Y4OabBJEklVd/zIBlhCCBAWBqkIZgXt11nBXO/rYAeKwYuE3puH3ByYnLA==", - "dependencies": { - "@trufflesuite/eth-sig-util": "^1.4.2", - "btoa": "^1.2.1", - "clone": "^2.1.1", - "eth-json-rpc-errors": "^1.0.1", - "eth-query": "^2.1.2", - "ethereumjs-block": "^1.6.0", - "ethereumjs-tx": "^1.3.7", - "ethereumjs-util": "^5.1.2", - "ethereumjs-vm": "^2.6.0", - "fetch-ponyfill": "^4.0.0", - "json-rpc-engine": "^5.1.3", - "json-stable-stringify": "^1.0.1", - "pify": "^3.0.0", - "safe-event-emitter": "^1.0.1" - } - }, - "node_modules/@trufflesuite/eth-json-rpc-middleware/node_modules/eth-json-rpc-errors": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/eth-json-rpc-errors/-/eth-json-rpc-errors-1.1.1.tgz", - "integrity": "sha512-WT5shJ5KfNqHi9jOZD+ID8I1kuYWNrigtZat7GOQkvwo99f8SzAVaEcWhJUv656WiZOAg3P1RiJQANtUmDmbIg==", - "deprecated": "Package renamed: https://www.npmjs.com/package/eth-rpc-errors", + "node_modules/utf-8-validate": { + "version": "5.0.10", + "resolved": "https://registry.npmjs.org/utf-8-validate/-/utf-8-validate-5.0.10.tgz", + "integrity": "sha512-Z6czzLq4u8fPOyx7TU6X3dvUZVvoJmxSQ+IcrlmagKhilxlhZgxPK6C5Jqbkw1IDUmFTM+cz9QDnnLTwDz/2gQ==", + "hasInstallScript": true, "dependencies": { - "fast-safe-stringify": "^2.0.6" + "node-gyp-build": "^4.3.0" + }, + "engines": { + "node": ">=6.14.2" } }, - "node_modules/@trufflesuite/eth-json-rpc-middleware/node_modules/ethereum-common": { - "version": "0.0.18", - "resolved": "https://registry.npmjs.org/ethereum-common/-/ethereum-common-0.0.18.tgz", - "integrity": "sha1-L9w1dvIykDNYl26znaeDIT/5Uj8=" + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" + }, + "node_modules/v8-compile-cache-lib": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", + "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==", + "dev": true + }, + "node_modules/vlq": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/vlq/-/vlq-2.0.4.tgz", + "integrity": "sha512-aodjPa2wPQFkra1G8CzJBTHXhgk3EVSwxSWXNPr1fgdFLUb8kvLV1iEb6rFgasIsjP82HWI6dsb5Io26DDnasA==" + }, + "node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=" }, - "node_modules/@trufflesuite/eth-json-rpc-middleware/node_modules/ethereumjs-tx": { - "version": "1.3.7", - "resolved": "https://registry.npmjs.org/ethereumjs-tx/-/ethereumjs-tx-1.3.7.tgz", - "integrity": "sha512-wvLMxzt1RPhAQ9Yi3/HKZTn0FZYpnsmQdbKYfUUpi4j1SEIcbkd9tndVjcPrufY3V7j2IebOpC00Zp2P/Ay2kA==", - "deprecated": "New package name format for new versions: @ethereumjs/tx. Please update.", + "node_modules/whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha1-lmRU6HZUYuN2RNNib2dCzotwll0=", "dependencies": { - "ethereum-common": "^0.0.18", - "ethereumjs-util": "^5.0.0" + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" } }, - "node_modules/@trufflesuite/eth-json-rpc-middleware/node_modules/ethereumjs-util": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", - "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", + "node_modules/wif": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/wif/-/wif-2.0.6.tgz", + "integrity": "sha1-CNP1IFbGZnkplyb63g1DKudLRwQ=", "dependencies": { - "bn.js": "^4.11.0", - "create-hash": "^1.1.2", - "elliptic": "^6.5.2", - "ethereum-cryptography": "^0.1.3", - "ethjs-util": "^0.1.3", - "rlp": "^2.0.0", - "safe-buffer": "^5.1.1" + "bs58check": "<3.0.0" } }, - "node_modules/@trufflesuite/eth-json-rpc-middleware/node_modules/pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "node_modules/wordwrapjs": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/wordwrapjs/-/wordwrapjs-4.0.1.tgz", + "integrity": "sha512-kKlNACbvHrkpIw6oPeYDSmdCTu2hdMHoyXLTcUKala++lx5Y+wjJ/e474Jqv5abnVmwxw08DiTuHmw69lJGksA==", + "dependencies": { + "reduce-flatten": "^2.0.0", + "typical": "^5.2.0" + }, "engines": { - "node": ">=4" + "node": ">=8.0.0" } }, - "node_modules/@trufflesuite/eth-sig-util": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/@trufflesuite/eth-sig-util/-/eth-sig-util-1.4.2.tgz", - "integrity": "sha512-+GyfN6b0LNW77hbQlH3ufZ/1eCON7mMrGym6tdYf7xiNw9Vv3jBO72bmmos1EId2NgBvPMhmYYm6DSLQFTmzrA==", - "dependencies": { - "ethereumjs-abi": "^0.6.8", - "ethereumjs-util": "^5.1.1" + "node_modules/wordwrapjs/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/@trufflesuite/eth-sig-util/node_modules/ethereumjs-util": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", - "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", - "dependencies": { - "bn.js": "^4.11.0", - "create-hash": "^1.1.2", - "elliptic": "^6.5.2", - "ethereum-cryptography": "^0.1.3", - "ethjs-util": "^0.1.3", - "rlp": "^2.0.0", - "safe-buffer": "^5.1.1" - } + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" }, - "node_modules/@trufflesuite/spinnies": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@trufflesuite/spinnies/-/spinnies-0.1.1.tgz", - "integrity": "sha512-jltEtmFJj6xmQqr85gP8OqBHCEiId+zw+uAsb3DyLLRD17O6sySW6Afa2Z/jpzSafj+32ssDfLJ+c0of1NLqcA==", - "dev": true, - "optional": true, + "node_modules/ws": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/ws/-/ws-3.3.3.tgz", + "integrity": "sha512-nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA==", + "peer": true, "dependencies": { - "chalk": "^4.1.2", - "cli-cursor": "^3.1.0", - "strip-ansi": "^6.0.0" + "async-limiter": "~1.0.0", + "safe-buffer": "~5.1.0", + "ultron": "~1.1.0" } }, - "node_modules/@trufflesuite/spinnies/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "optional": true, - "engines": { - "node": ">=8" - } + "node_modules/ws/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "peer": true }, - "node_modules/@trufflesuite/spinnies/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "optional": true, + "node_modules/xstream": { + "version": "11.14.0", + "resolved": "https://registry.npmjs.org/xstream/-/xstream-11.14.0.tgz", + "integrity": "sha512-1bLb+kKKtKPbgTK6i/BaoAn03g47PpFstlbe1BA+y3pNS/LfvcaghS5BFf9+EE1J+KwSQsEpfJvFN5GqFtiNmw==", "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "globalthis": "^1.0.1", + "symbol-observable": "^2.0.3" } }, - "node_modules/@trufflesuite/spinnies/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "optional": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, + "node_modules/xstream/node_modules/symbol-observable": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-2.0.3.tgz", + "integrity": "sha512-sQV7phh2WCYAn81oAkakC5qjq2Ml0g8ozqz03wOGnx9dDlG1de6yrF+0RAzSJD8fPUow3PTSMf2SAbOGxb93BA==", "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "node": ">=0.10" } }, - "node_modules/@trufflesuite/spinnies/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "optional": true, - "dependencies": { - "color-name": "~1.1.4" - }, + "node_modules/xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", "engines": { - "node": ">=7.0.0" + "node": ">=0.4" } }, - "node_modules/@trufflesuite/spinnies/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true, - "optional": true - }, - "node_modules/@trufflesuite/spinnies/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "node_modules/yn": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", + "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", "dev": true, - "optional": true, "engines": { - "node": ">=8" + "node": ">=6" } }, - "node_modules/@trufflesuite/spinnies/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "optional": true, - "dependencies": { - "ansi-regex": "^5.0.1" + "node_modules/zen-observable": { + "version": "0.8.15", + "resolved": "https://registry.npmjs.org/zen-observable/-/zen-observable-0.8.15.tgz", + "integrity": "sha512-PQ2PC7R9rslx84ndNBZB/Dkv8V8fZEpk83RLgXtYd0fwUgEjseMn1Dgajh2x6S8QbZAFa9p2qVCEuYZNgve0dQ==" + } + }, + "dependencies": { + "@apollo/client": { + "version": "3.7.10", + "resolved": "https://registry.npmjs.org/@apollo/client/-/client-3.7.10.tgz", + "integrity": "sha512-/k1MfrqPKYiPNdHcOzdxg9cEx96vhAGxAcSorzfBvV29XtFQcYW2cPNQOTjK/fpSMtqVo8UNmu5vwQAWD1gfCg==", + "requires": { + "@graphql-typed-document-node/core": "^3.1.1", + "@wry/context": "^0.7.0", + "@wry/equality": "^0.5.0", + "@wry/trie": "^0.3.0", + "graphql-tag": "^2.12.6", + "hoist-non-react-statics": "^3.3.2", + "optimism": "^0.16.1", + "prop-types": "^15.7.2", + "response-iterator": "^0.2.6", + "symbol-observable": "^4.0.0", + "ts-invariant": "^0.10.3", + "tslib": "^2.3.0", + "zen-observable-ts": "^1.2.5" }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@trufflesuite/spinnies/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "optional": true, "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" + "@wry/equality": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/@wry/equality/-/equality-0.5.3.tgz", + "integrity": "sha512-avR+UXdSrsF2v8vIqIgmeTY0UR91UT+IyablCyKe/uk22uOJ8fusKZnH9JH9e1/EtLeNJBtagNmL3eJdnOV53g==", + "requires": { + "tslib": "^2.3.0" + } + }, + "symbol-observable": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-4.0.0.tgz", + "integrity": "sha512-b19dMThMV4HVFynSAM1++gBHAbk2Tc/osgLIBZMKsyqh34jb2e8Os7T6ZW/Bt3pJFdBTd2JwAnAAEQV7rSNvcQ==" + }, + "ts-invariant": { + "version": "0.10.3", + "resolved": "https://registry.npmjs.org/ts-invariant/-/ts-invariant-0.10.3.tgz", + "integrity": "sha512-uivwYcQaxAucv1CzRp2n/QdYPo4ILf9VXgH19zEIjFx2EJufV16P0JtJVpYHy89DItG6Kwj2oIUjrcK5au+4tQ==", + "requires": { + "tslib": "^2.1.0" + } + }, + "tslib": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz", + "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==" + }, + "zen-observable-ts": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/zen-observable-ts/-/zen-observable-ts-1.2.5.tgz", + "integrity": "sha512-QZWQekv6iB72Naeake9hS1KxHlotfRpe+WGNbNx5/ta+R3DNjVO2bswf63gXlWDcs+EMd7XY8HfVQyP1X6T4Zg==", + "requires": { + "zen-observable": "0.8.15" + } + } } }, - "node_modules/@trufflesuite/web3-provider-engine": { - "version": "15.0.14", - "resolved": "https://registry.npmjs.org/@trufflesuite/web3-provider-engine/-/web3-provider-engine-15.0.14.tgz", - "integrity": "sha512-6/LoWvNMxYf0oaYzJldK2a9AdnkAdIeJhHW4nuUBAeO29eK9xezEaEYQ0ph1QRTaICxGxvn+1Azp4u8bQ8NEZw==", - "dev": true, - "dependencies": { - "@ethereumjs/tx": "^3.3.0", - "@trufflesuite/eth-json-rpc-filters": "^4.1.2-1", - "@trufflesuite/eth-json-rpc-infura": "^4.0.3-0", - "@trufflesuite/eth-json-rpc-middleware": "^4.4.2-1", - "@trufflesuite/eth-sig-util": "^1.4.2", - "async": "^2.5.0", - "backoff": "^2.5.0", - "clone": "^2.0.0", - "cross-fetch": "^2.1.0", - "eth-block-tracker": "^4.4.2", - "eth-json-rpc-errors": "^2.0.2", - "ethereumjs-block": "^1.2.2", - "ethereumjs-util": "^5.1.5", - "ethereumjs-vm": "^2.3.4", - "json-stable-stringify": "^1.0.1", - "promise-to-callback": "^1.0.0", - "readable-stream": "^2.2.9", - "request": "^2.85.0", - "semaphore": "^1.0.3", - "ws": "^5.1.1", - "xhr": "^2.2.0", - "xtend": "^4.0.1" - } - }, - "node_modules/@trufflesuite/web3-provider-engine/node_modules/ethereumjs-util": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", - "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", - "dev": true, - "dependencies": { - "bn.js": "^4.11.0", - "create-hash": "^1.1.2", - "elliptic": "^6.5.2", - "ethereum-cryptography": "^0.1.3", - "ethjs-util": "^0.1.3", - "rlp": "^2.0.0", - "safe-buffer": "^5.1.1" + "@babel/runtime": { + "version": "7.20.13", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.20.13.tgz", + "integrity": "sha512-gt3PKXs0DBoL9xCvOIIZ2NEqAGZqHjAnmVbfQtB620V0uReIQutpel14KcneZuer7UioY8ALKZ7iocavvzTNFA==", + "requires": { + "regenerator-runtime": "^0.13.11" } }, - "node_modules/@trufflesuite/web3-provider-engine/node_modules/ws": { - "version": "5.2.3", - "resolved": "https://registry.npmjs.org/ws/-/ws-5.2.3.tgz", - "integrity": "sha512-jZArVERrMsKUatIdnLzqvcfydI85dvd/Fp1u/VOpfdDWQ4c9qWXe+VIeAbQ5FrDwciAkr+lzofXLz3Kuf26AOA==", - "dev": true, + "@certusone/wormhole-sdk": { + "version": "0.9.11", + "resolved": "https://registry.npmjs.org/@certusone/wormhole-sdk/-/wormhole-sdk-0.9.11.tgz", + "integrity": "sha512-HpqlgNle09E6v8EhEBSjBe9MexO7av4cznM4kRR4CYCKTLfwqT75LQRYuSnCJgxrpwNiVRDVJaPWRi7ZEgIipw==", + "requires": { + "@certusone/wormhole-sdk-proto-web": "0.0.6", + "@certusone/wormhole-sdk-wasm": "^0.0.1", + "@coral-xyz/borsh": "0.2.6", + "@injectivelabs/networks": "^1.0.73", + "@injectivelabs/sdk-ts": "^1.0.368", + "@injectivelabs/utils": "^1.0.63", + "@project-serum/anchor": "^0.25.0", + "@solana/spl-token": "^0.3.5", + "@solana/web3.js": "^1.66.2", + "@terra-money/terra.js": "^3.1.3", + "@xpla/xpla.js": "^0.2.1", + "algosdk": "^1.15.0", + "aptos": "1.5.0", + "axios": "^0.24.0", + "bech32": "^2.0.0", + "binary-parser": "^2.2.1", + "bs58": "^4.0.1", + "elliptic": "^6.5.4", + "js-base64": "^3.6.1", + "near-api-js": "^1.0.0" + }, "dependencies": { - "async-limiter": "~1.0.0" + "axios": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.24.0.tgz", + "integrity": "sha512-Q6cWsys88HoPgAaFAVUb0WpPk0O8iTeisR9IMqy9G8AbO4NlpVknrnQS03zzF9PGAWgO3cgletO3VjV/P7VztA==", + "requires": { + "follow-redirects": "^1.14.4" + } + }, + "follow-redirects": { + "version": "1.15.2", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", + "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==" + } } }, - "node_modules/@tsconfig/node10": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.9.tgz", - "integrity": "sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==", - "dev": true - }, - "node_modules/@tsconfig/node12": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz", - "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==", - "dev": true - }, - "node_modules/@tsconfig/node14": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz", - "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==", - "dev": true - }, - "node_modules/@tsconfig/node16": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.4.tgz", - "integrity": "sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==", - "dev": true - }, - "node_modules/@typechain/ethers-v5": { - "version": "10.2.0", - "resolved": "https://registry.npmjs.org/@typechain/ethers-v5/-/ethers-v5-10.2.0.tgz", - "integrity": "sha512-ikaq0N/w9fABM+G01OFmU3U3dNnyRwEahkdvi9mqy1a3XwKiPZaF/lu54OcNaEWnpvEYyhhS0N7buCtLQqC92w==", - "dependencies": { - "lodash": "^4.17.15", - "ts-essentials": "^7.0.1" + "@certusone/wormhole-sdk-proto-web": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/@certusone/wormhole-sdk-proto-web/-/wormhole-sdk-proto-web-0.0.6.tgz", + "integrity": "sha512-LTyjsrWryefx5WmkoBP6FQ2EjLxhMExAGxLkloHUhufVQZdrbGh0htBBUviP+HaDSJBCMPMtulNFwkBJV6muqQ==", + "requires": { + "@improbable-eng/grpc-web": "^0.15.0", + "protobufjs": "^7.0.0", + "rxjs": "^7.5.6" }, - "peerDependencies": { - "@ethersproject/abi": "^5.0.0", - "@ethersproject/bytes": "^5.0.0", - "@ethersproject/providers": "^5.0.0", - "ethers": "^5.1.3", - "typechain": "^8.1.1", - "typescript": ">=4.3.0" - } - }, - "node_modules/@typechain/ethers-v5/node_modules/ts-essentials": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/ts-essentials/-/ts-essentials-7.0.3.tgz", - "integrity": "sha512-8+gr5+lqO3G84KdiTSMRLtuyJ+nTBVRKuCrK4lidMPdVeEp0uqC875uE5NMcaA7YYMN7XsNiFQuMvasF8HT/xQ==", - "peerDependencies": { - "typescript": ">=3.7.0" - } - }, - "node_modules/@types/accepts": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/@types/accepts/-/accepts-1.3.5.tgz", - "integrity": "sha512-jOdnI/3qTpHABjM5cx1Hc0sKsPoYCp+DP/GJRGtDlPd7fiV9oXGGIcjW/ZOxLIvjGz8MA+uMZI9metHlgqbgwQ==", - "dev": true, - "optional": true, "dependencies": { - "@types/node": "*" + "long": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/long/-/long-5.2.1.tgz", + "integrity": "sha512-GKSNGeNAtw8IryjjkhZxuKB3JzlcLTwjtiQCHKvqQet81I93kXslhDQruGI/QsddO83mcDToBVy7GqGS/zYf/A==" + }, + "protobufjs": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.2.3.tgz", + "integrity": "sha512-TtpvOqwB5Gdz/PQmOjgsrGH1nHjAQVCN7JG4A6r1sXRWESL5rNMAiRcBQlCAdKxZcAbstExQePYG8xof/JVRgg==", + "requires": { + "@protobufjs/aspromise": "^1.1.2", + "@protobufjs/base64": "^1.1.2", + "@protobufjs/codegen": "^2.0.4", + "@protobufjs/eventemitter": "^1.1.0", + "@protobufjs/fetch": "^1.1.0", + "@protobufjs/float": "^1.0.2", + "@protobufjs/inquire": "^1.1.0", + "@protobufjs/path": "^1.1.2", + "@protobufjs/pool": "^1.1.0", + "@protobufjs/utf8": "^1.1.0", + "@types/node": ">=13.7.0", + "long": "^5.0.0" + } + }, + "rxjs": { + "version": "7.8.0", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.0.tgz", + "integrity": "sha512-F2+gxDshqmIub1KdvZkaEfGDwLNpPvk9Fs6LD/MyQxNgMds/WH9OdDDXOmxUZpME+iSK3rQCctkL0DYyytUqMg==", + "requires": { + "tslib": "^2.1.0" + } + }, + "tslib": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz", + "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==" + } } }, - "node_modules/@types/bn.js": { - "version": "4.11.6", - "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-4.11.6.tgz", - "integrity": "sha512-pqr857jrp2kPuO9uRjZ3PwnJTjoQy+fcdxvBTvHm6dkmEL9q+hDD/2j/0ELOBPtPnS8LjCX0gI9nbl8lVkadpg==", - "dependencies": { - "@types/node": "*" + "@certusone/wormhole-sdk-wasm": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/@certusone/wormhole-sdk-wasm/-/wormhole-sdk-wasm-0.0.1.tgz", + "integrity": "sha512-LdIwLhOyr4pPs2jqYubqC7d4UkqYBX0EG/ppspQlW3qlVE0LZRMrH6oVzzLMyHtV0Rw7O9sIKzORW/T3mrJv2w==", + "requires": { + "@types/long": "^4.0.2", + "@types/node": "^18.0.3" } }, - "node_modules/@types/body-parser": { - "version": "1.19.2", - "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.2.tgz", - "integrity": "sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==", - "dev": true, - "optional": true, + "@classic-terra/terra.proto": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@classic-terra/terra.proto/-/terra.proto-1.1.0.tgz", + "integrity": "sha512-bYhQG5LUaGF0KPRY9hYT/HEcd1QExZPQd6zLV/rQkCe/eDxfwFRLzZHpaaAdfWoAAZjsRWqJbUCqCg7gXBbJpw==", + "requires": { + "@improbable-eng/grpc-web": "^0.14.1", + "google-protobuf": "^3.17.3", + "long": "^4.0.0", + "protobufjs": "~6.11.2" + }, "dependencies": { - "@types/connect": "*", - "@types/node": "*" + "@improbable-eng/grpc-web": { + "version": "0.14.1", + "resolved": "https://registry.npmjs.org/@improbable-eng/grpc-web/-/grpc-web-0.14.1.tgz", + "integrity": "sha512-XaIYuunepPxoiGVLLHmlnVminUGzBTnXr8Wv7khzmLWbNw4TCwJKX09GSMJlKhu/TRk6gms0ySFxewaETSBqgw==", + "requires": { + "browser-headers": "^0.4.1" + } + } } }, - "node_modules/@types/cacheable-request": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/@types/cacheable-request/-/cacheable-request-6.0.3.tgz", - "integrity": "sha512-IQ3EbTzGxIigb1I3qPZc1rWJnH0BmSKv5QYTalEwweFvyBDLSAe24zP0le/hyi7ecGfZVlIVAg4BZqb8WBwKqw==", - "dev": true, - "dependencies": { - "@types/http-cache-semantics": "*", - "@types/keyv": "^3.1.4", - "@types/node": "*", - "@types/responselike": "^1.0.0" + "@confio/ics23": { + "version": "0.6.8", + "resolved": "https://registry.npmjs.org/@confio/ics23/-/ics23-0.6.8.tgz", + "integrity": "sha512-wB6uo+3A50m0sW/EWcU64xpV/8wShZ6bMTa7pF8eYsTrSkQA7oLUIJcs/wb8g4y2Oyq701BaGiO6n/ak5WXO1w==", + "requires": { + "@noble/hashes": "^1.0.0", + "protobufjs": "^6.8.8" } }, - "node_modules/@types/cbor": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@types/cbor/-/cbor-2.0.0.tgz", - "integrity": "sha1-xievwu4i8j8jN/7LNGKKT5fGr7s=", - "dev": true, + "@coral-xyz/borsh": { + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/@coral-xyz/borsh/-/borsh-0.2.6.tgz", + "integrity": "sha512-y6nmHw1bFcJib7sMHsQPpC8r47xhqDZVvhUdna7NUPzpSbOZG6f46N21+aXsQ2w/tG8Ggls488J/ZmwbgVmyjg==", + "requires": { + "bn.js": "^5.1.2", + "buffer-layout": "^1.2.0" + }, "dependencies": { - "@types/node": "*" + "bn.js": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", + "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==" + } } }, - "node_modules/@types/color-name": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz", - "integrity": "sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==", - "dev": true + "@cosmjs/amino": { + "version": "0.29.5", + "resolved": "https://registry.npmjs.org/@cosmjs/amino/-/amino-0.29.5.tgz", + "integrity": "sha512-Qo8jpC0BiziTSUqpkNatBcwtKNhCovUnFul9SlT/74JUCdLYaeG5hxr3q1cssQt++l4LvlcpF+OUXL48XjNjLw==", + "requires": { + "@cosmjs/crypto": "^0.29.5", + "@cosmjs/encoding": "^0.29.5", + "@cosmjs/math": "^0.29.5", + "@cosmjs/utils": "^0.29.5" + } }, - "node_modules/@types/connect": { - "version": "3.4.35", - "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz", - "integrity": "sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==", + "@cosmjs/crypto": { + "version": "0.29.5", + "resolved": "https://registry.npmjs.org/@cosmjs/crypto/-/crypto-0.29.5.tgz", + "integrity": "sha512-2bKkaLGictaNL0UipQCL6C1afaisv6k8Wr/GCLx9FqiyFkh9ZgRHDyetD64ZsjnWV/N/D44s/esI+k6oPREaiQ==", + "requires": { + "@cosmjs/encoding": "^0.29.5", + "@cosmjs/math": "^0.29.5", + "@cosmjs/utils": "^0.29.5", + "@noble/hashes": "^1", + "bn.js": "^5.2.0", + "elliptic": "^6.5.4", + "libsodium-wrappers": "^0.7.6" + }, "dependencies": { - "@types/node": "*" + "bn.js": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", + "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==" + } } }, - "node_modules/@types/cors": { - "version": "2.8.12", - "resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.12.tgz", - "integrity": "sha512-vt+kDhq/M2ayberEtJcIN/hxXy1Pk+59g2FV/ZQceeaTyCtCucjL2Q7FXlFjtWn4n15KCr1NE2lNNFhp0lEThw==", - "dev": true, - "optional": true - }, - "node_modules/@types/express": { - "version": "4.17.14", - "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.14.tgz", - "integrity": "sha512-TEbt+vaPFQ+xpxFLFssxUDXj5cWCxZJjIcB7Yg0k0GMHGtgtQgpvx/MUQUeAkNbA9AAGrwkAsoeItdTgS7FMyg==", - "dev": true, - "optional": true, + "@cosmjs/encoding": { + "version": "0.29.5", + "resolved": "https://registry.npmjs.org/@cosmjs/encoding/-/encoding-0.29.5.tgz", + "integrity": "sha512-G4rGl/Jg4dMCw5u6PEZHZcoHnUBlukZODHbm/wcL4Uu91fkn5jVo5cXXZcvs4VCkArVGrEj/52eUgTZCmOBGWQ==", + "requires": { + "base64-js": "^1.3.0", + "bech32": "^1.1.4", + "readonly-date": "^1.0.0" + }, "dependencies": { - "@types/body-parser": "*", - "@types/express-serve-static-core": "^4.17.18", - "@types/qs": "*", - "@types/serve-static": "*" + "bech32": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/bech32/-/bech32-1.1.4.tgz", + "integrity": "sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ==" + } } }, - "node_modules/@types/express-serve-static-core": { - "version": "4.17.34", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.34.tgz", - "integrity": "sha512-fvr49XlCGoUj2Pp730AItckfjat4WNb0lb3kfrLWffd+RLeoGAMsq7UOy04PAPtoL01uKwcp6u8nhzpgpDYr3w==", - "dev": true, - "optional": true, - "dependencies": { - "@types/node": "*", - "@types/qs": "*", - "@types/range-parser": "*", - "@types/send": "*" + "@cosmjs/json-rpc": { + "version": "0.29.5", + "resolved": "https://registry.npmjs.org/@cosmjs/json-rpc/-/json-rpc-0.29.5.tgz", + "integrity": "sha512-C78+X06l+r9xwdM1yFWIpGl03LhB9NdM1xvZpQHwgCOl0Ir/WV8pw48y3Ez2awAoUBRfTeejPe4KvrE6NoIi/w==", + "requires": { + "@cosmjs/stream": "^0.29.5", + "xstream": "^11.14.0" } }, - "node_modules/@types/fs-extra": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-7.0.0.tgz", - "integrity": "sha512-ndoMMbGyuToTy4qB6Lex/inR98nPiNHacsgMPvy+zqMLgSxbt8VtWpDArpGp69h1fEDQHn1KB+9DWD++wgbwYA==", - "dev": true, + "@cosmjs/math": { + "version": "0.29.5", + "resolved": "https://registry.npmjs.org/@cosmjs/math/-/math-0.29.5.tgz", + "integrity": "sha512-2GjKcv+A9f86MAWYLUkjhw1/WpRl2R1BTb3m9qPG7lzMA7ioYff9jY5SPCfafKdxM4TIQGxXQlYGewQL16O68Q==", + "requires": { + "bn.js": "^5.2.0" + }, "dependencies": { - "@types/node": "*" + "bn.js": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", + "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==" + } } }, - "node_modules/@types/http-cache-semantics": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.1.tgz", - "integrity": "sha512-SZs7ekbP8CN0txVG2xVRH6EgKmEm31BOxA07vkFaETzZz1xh+cbt8BcI0slpymvwhx5dlFnQG2rTlPVQn+iRPQ==", - "dev": true - }, - "node_modules/@types/keyv": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/@types/keyv/-/keyv-3.1.4.tgz", - "integrity": "sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==", - "dev": true, + "@cosmjs/proto-signing": { + "version": "0.29.5", + "resolved": "https://registry.npmjs.org/@cosmjs/proto-signing/-/proto-signing-0.29.5.tgz", + "integrity": "sha512-QRrS7CiKaoETdgIqvi/7JC2qCwCR7lnWaUsTzh/XfRy3McLkEd+cXbKAW3cygykv7IN0VAEIhZd2lyIfT8KwNA==", + "requires": { + "@cosmjs/amino": "^0.29.5", + "@cosmjs/crypto": "^0.29.5", + "@cosmjs/encoding": "^0.29.5", + "@cosmjs/math": "^0.29.5", + "@cosmjs/utils": "^0.29.5", + "cosmjs-types": "^0.5.2", + "long": "^4.0.0" + }, "dependencies": { - "@types/node": "*" + "cosmjs-types": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/cosmjs-types/-/cosmjs-types-0.5.2.tgz", + "integrity": "sha512-zxCtIJj8v3Di7s39uN4LNcN3HIE1z0B9Z0SPE8ZNQR0oSzsuSe1ACgxoFkvhkS7WBasCAFcglS11G2hyfd5tPg==", + "requires": { + "long": "^4.0.0", + "protobufjs": "~6.11.2" + } + } } }, - "node_modules/@types/lodash": { - "version": "4.14.192", - "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.192.tgz", - "integrity": "sha512-km+Vyn3BYm5ytMO13k9KTp27O75rbQ0NFw+U//g+PX7VZyjCioXaRFisqSIJRECljcTv73G3i6BpglNGHgUQ5A==" - }, - "node_modules/@types/lodash.values": { - "version": "4.3.7", - "resolved": "https://registry.npmjs.org/@types/lodash.values/-/lodash.values-4.3.7.tgz", - "integrity": "sha512-Moex9/sWxtKEa+BKiH5zvmhfcieDlcz4wRxMhO/oJ2qOKUdujoU6dQjUTxWA8jwEREpHXmiY4HCwNRpycW8JQA==", + "@cosmjs/socket": { + "version": "0.29.5", + "resolved": "https://registry.npmjs.org/@cosmjs/socket/-/socket-0.29.5.tgz", + "integrity": "sha512-5VYDupIWbIXq3ftPV1LkS5Ya/T7Ol/AzWVhNxZ79hPe/mBfv1bGau/LqIYOm2zxGlgm9hBHOTmWGqNYDwr9LNQ==", + "requires": { + "@cosmjs/stream": "^0.29.5", + "isomorphic-ws": "^4.0.1", + "ws": "^7", + "xstream": "^11.14.0" + }, "dependencies": { - "@types/lodash": "*" + "ws": { + "version": "7.5.9", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz", + "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==", + "requires": {} + } } }, - "node_modules/@types/long": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/@types/long/-/long-4.0.2.tgz", - "integrity": "sha512-MqTGEo5bj5t157U6fA/BiDynNkn0YknVdh48CMPkTSpFTVmvao5UQmm7uEF6xBEo7qIMAlY/JSleYaE6VOdpaA==" - }, - "node_modules/@types/mime": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.2.tgz", - "integrity": "sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw==", - "dev": true, - "optional": true - }, - "node_modules/@types/mkdirp": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/@types/mkdirp/-/mkdirp-0.5.2.tgz", - "integrity": "sha512-U5icWpv7YnZYGsN4/cmh3WD2onMY0aJIiTE6+51TwJCttdHvtCYmkBNOobHlXwrJRL0nkH9jH4kD+1FAdMN4Tg==", - "dev": true, + "@cosmjs/stargate": { + "version": "0.29.5", + "resolved": "https://registry.npmjs.org/@cosmjs/stargate/-/stargate-0.29.5.tgz", + "integrity": "sha512-hjEv8UUlJruLrYGJcUZXM/CziaINOKwfVm2BoSdUnNTMxGvY/jC1ABHKeZUYt9oXHxEJ1n9+pDqzbKc8pT0nBw==", + "requires": { + "@confio/ics23": "^0.6.8", + "@cosmjs/amino": "^0.29.5", + "@cosmjs/encoding": "^0.29.5", + "@cosmjs/math": "^0.29.5", + "@cosmjs/proto-signing": "^0.29.5", + "@cosmjs/stream": "^0.29.5", + "@cosmjs/tendermint-rpc": "^0.29.5", + "@cosmjs/utils": "^0.29.5", + "cosmjs-types": "^0.5.2", + "long": "^4.0.0", + "protobufjs": "~6.11.3", + "xstream": "^11.14.0" + }, "dependencies": { - "@types/node": "*" + "cosmjs-types": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/cosmjs-types/-/cosmjs-types-0.5.2.tgz", + "integrity": "sha512-zxCtIJj8v3Di7s39uN4LNcN3HIE1z0B9Z0SPE8ZNQR0oSzsuSe1ACgxoFkvhkS7WBasCAFcglS11G2hyfd5tPg==", + "requires": { + "long": "^4.0.0", + "protobufjs": "~6.11.2" + } + }, + "protobufjs": { + "version": "6.11.3", + "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-6.11.3.tgz", + "integrity": "sha512-xL96WDdCZYdU7Slin569tFX712BxsxslWwAfAhCYjQKGTq7dAU91Lomy6nLLhh/dyGhk/YH4TwTSRxTzhuHyZg==", + "requires": { + "@protobufjs/aspromise": "^1.1.2", + "@protobufjs/base64": "^1.1.2", + "@protobufjs/codegen": "^2.0.4", + "@protobufjs/eventemitter": "^1.1.0", + "@protobufjs/fetch": "^1.1.0", + "@protobufjs/float": "^1.0.2", + "@protobufjs/inquire": "^1.1.0", + "@protobufjs/path": "^1.1.2", + "@protobufjs/pool": "^1.1.0", + "@protobufjs/utf8": "^1.1.0", + "@types/long": "^4.0.1", + "@types/node": ">=13.7.0", + "long": "^4.0.0" + } + } } }, - "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/@types/npm": { - "version": "2.0.31", - "resolved": "https://registry.npmjs.org/@types/npm/-/npm-2.0.31.tgz", - "integrity": "sha512-v4JpUx83wVGItleYsnYeZrM8NTLSnYDfTE/iGm4owy6zZPNFNmnsvvrxiYtG3cVHt/XutzTjUBQ9Bh8bnvEkCw==", - "dev": true, - "dependencies": { - "@types/node": "*" + "@cosmjs/stream": { + "version": "0.29.5", + "resolved": "https://registry.npmjs.org/@cosmjs/stream/-/stream-0.29.5.tgz", + "integrity": "sha512-TToTDWyH1p05GBtF0Y8jFw2C+4783ueDCmDyxOMM6EU82IqpmIbfwcdMOCAm0JhnyMh+ocdebbFvnX/sGKzRAA==", + "requires": { + "xstream": "^11.14.0" } }, - "node_modules/@types/pbkdf2": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@types/pbkdf2/-/pbkdf2-3.1.0.tgz", - "integrity": "sha512-Cf63Rv7jCQ0LaL8tNXmEyqTHuIJxRdlS5vMh1mj5voN4+QFhVZnlZruezqpWYDiJ8UTzhP0VmeLXCmBk66YrMQ==", + "@cosmjs/tendermint-rpc": { + "version": "0.29.5", + "resolved": "https://registry.npmjs.org/@cosmjs/tendermint-rpc/-/tendermint-rpc-0.29.5.tgz", + "integrity": "sha512-ar80twieuAxsy0x2za/aO3kBr2DFPAXDmk2ikDbmkda+qqfXgl35l9CVAAjKRqd9d+cRvbQyb5M4wy6XQpEV6w==", + "requires": { + "@cosmjs/crypto": "^0.29.5", + "@cosmjs/encoding": "^0.29.5", + "@cosmjs/json-rpc": "^0.29.5", + "@cosmjs/math": "^0.29.5", + "@cosmjs/socket": "^0.29.5", + "@cosmjs/stream": "^0.29.5", + "@cosmjs/utils": "^0.29.5", + "axios": "^0.21.2", + "readonly-date": "^1.0.0", + "xstream": "^11.14.0" + }, "dependencies": { - "@types/node": "*" + "axios": { + "version": "0.21.4", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.4.tgz", + "integrity": "sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==", + "requires": { + "follow-redirects": "^1.14.0" + } + }, + "follow-redirects": { + "version": "1.15.2", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", + "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==" + } } }, - "node_modules/@types/prettier": { - "version": "1.19.1", - "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-1.19.1.tgz", - "integrity": "sha512-5qOlnZscTn4xxM5MeGXAMOsIOIKIbh9e85zJWfBRVPlRMEVawzoPhINYbRGkBZCI8LxvBe7tJCdWiarA99OZfQ==", - "dev": true - }, - "node_modules/@types/qs": { - "version": "6.9.7", - "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.7.tgz", - "integrity": "sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==", - "dev": true, - "optional": true - }, - "node_modules/@types/range-parser": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.4.tgz", - "integrity": "sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==", - "dev": true, - "optional": true + "@cosmjs/utils": { + "version": "0.29.5", + "resolved": "https://registry.npmjs.org/@cosmjs/utils/-/utils-0.29.5.tgz", + "integrity": "sha512-m7h+RXDUxOzEOGt4P+3OVPX7PuakZT3GBmaM/Y2u+abN3xZkziykD/NvedYFvvCCdQo714XcGl33bwifS9FZPQ==" }, - "node_modules/@types/resolve": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-0.0.8.tgz", - "integrity": "sha512-auApPaJf3NPfe18hSoJkp8EbZzer2ISk7o8mCC3M9he/a04+gbMF97NkpD2S8riMGvm4BMRI59/SZQSaLTKpsQ==", + "@cspotcode/source-map-support": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", + "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", "dev": true, - "dependencies": { - "@types/node": "*" + "requires": { + "@jridgewell/trace-mapping": "0.3.9" } }, - "node_modules/@types/responselike": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@types/responselike/-/responselike-1.0.0.tgz", - "integrity": "sha512-85Y2BjiufFzaMIlvJDvTTB8Fxl2xfLo4HgmHzVBz08w4wDePCTjYw66PdrolO0kzli3yam/YCgRufyo1DdQVTA==", - "dev": true, + "@ethereumjs/common": { + "version": "2.6.5", + "resolved": "https://registry.npmjs.org/@ethereumjs/common/-/common-2.6.5.tgz", + "integrity": "sha512-lRyVQOeCDaIVtgfbowla32pzeDv2Obr8oR8Put5RdUBNRGr1VGPGQNGP6elWIpgK3YdpzqTOh4GyUGOureVeeA==", + "requires": { + "crc-32": "^1.2.0", + "ethereumjs-util": "^7.1.5" + }, "dependencies": { - "@types/node": "*" + "@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==", + "requires": { + "@types/node": "*" + } + }, + "bn.js": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", + "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==" + }, + "ethereumjs-util": { + "version": "7.1.5", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.5.tgz", + "integrity": "sha512-SDl5kKrQAudFBUe5OJM9Ac6WmMyYmXX/6sTmLZ3ffG2eY6ZIGBes3pEDxNN6V72WyOw4CPD5RomKdsa8DAAwLg==", + "requires": { + "@types/bn.js": "^5.1.0", + "bn.js": "^5.1.2", + "create-hash": "^1.1.2", + "ethereum-cryptography": "^0.1.3", + "rlp": "^2.2.4" + } + } } }, - "node_modules/@types/secp256k1": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@types/secp256k1/-/secp256k1-4.0.1.tgz", - "integrity": "sha512-+ZjSA8ELlOp8SlKi0YLB2tz9d5iPNEmOBd+8Rz21wTMdaXQIa9b6TEnD6l5qKOCypE7FSyPyck12qZJxSDNoog==", + "@ethereumjs/tx": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/@ethereumjs/tx/-/tx-3.5.2.tgz", + "integrity": "sha512-gQDNJWKrSDGu2w7w0PzVXVBNMzb7wwdDOmOqczmhNjqFxFuIbhVJDwiGEnxFNC2/b8ifcZzY7MLcluizohRzNw==", + "requires": { + "@ethereumjs/common": "^2.6.4", + "ethereumjs-util": "^7.1.5" + }, "dependencies": { - "@types/node": "*" + "@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==", + "requires": { + "@types/node": "*" + } + }, + "bn.js": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", + "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==" + }, + "ethereumjs-util": { + "version": "7.1.5", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.5.tgz", + "integrity": "sha512-SDl5kKrQAudFBUe5OJM9Ac6WmMyYmXX/6sTmLZ3ffG2eY6ZIGBes3pEDxNN6V72WyOw4CPD5RomKdsa8DAAwLg==", + "requires": { + "@types/bn.js": "^5.1.0", + "bn.js": "^5.1.2", + "create-hash": "^1.1.2", + "ethereum-cryptography": "^0.1.3", + "rlp": "^2.2.4" + } + } } }, - "node_modules/@types/semver": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/@types/semver/-/semver-5.5.0.tgz", - "integrity": "sha512-41qEJgBH/TWgo5NFSvBCJ1qkoi3Q6ONSF2avrHq1LVEZfYpdHmj0y9SuTK+u9ZhG1sYQKBL1AWXKyLWP4RaUoQ==", - "dev": true - }, - "node_modules/@types/send": { - "version": "0.17.1", - "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.1.tgz", - "integrity": "sha512-Cwo8LE/0rnvX7kIIa3QHCkcuF21c05Ayb0ZfxPiv0W8VRiZiNW/WuRupHKpqqGVGf7SUA44QSOUKaEd9lIrd/Q==", - "dev": true, - "optional": true, - "dependencies": { - "@types/mime": "^1", - "@types/node": "*" + "@ethersproject/abi": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/abi/-/abi-5.7.0.tgz", + "integrity": "sha512-351ktp42TiRcYB3H1OP8yajPeAQstMW/yCFokj/AthP9bLHzQFPlOrxOcwYEDkUAICmOHljvN4K39OMTMUa9RA==", + "requires": { + "@ethersproject/address": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/hash": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/strings": "^5.7.0" } }, - "node_modules/@types/serve-static": { - "version": "1.15.1", - "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.1.tgz", - "integrity": "sha512-NUo5XNiAdULrJENtJXZZ3fHtfMolzZwczzBbnAeBbqBwG+LaG6YaJtuwzwGSQZ2wsCrxjEhNNjAkKigy3n8teQ==", - "dev": true, - "optional": true, - "dependencies": { - "@types/mime": "*", - "@types/node": "*" + "@ethersproject/abstract-provider": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/abstract-provider/-/abstract-provider-5.7.0.tgz", + "integrity": "sha512-R41c9UkchKCpAqStMYUpdunjo3pkEvZC3FAwZn5S5MGbXoMQOHIdHItezTETxAO5bevtMApSyEhn9+CHcDsWBw==", + "requires": { + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/networks": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/transactions": "^5.7.0", + "@ethersproject/web": "^5.7.0" } }, - "node_modules/@types/ws": { - "version": "7.4.7", - "resolved": "https://registry.npmjs.org/@types/ws/-/ws-7.4.7.tgz", - "integrity": "sha512-JQbbmxZTZehdc2iszGKs5oC3NFnjeay7mtAWrdt7qNtAVK0g19muApzAy4bm9byz79xa2ZnO/BOBC2R8RC5Lww==", - "dependencies": { - "@types/node": "*" + "@ethersproject/abstract-signer": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/abstract-signer/-/abstract-signer-5.7.0.tgz", + "integrity": "sha512-a16V8bq1/Cz+TGCkE2OPMTOUDLS3grCpdjoJCYNnVBbdYEMSgKrU0+B90s8b6H+ByYTBZN7a3g76jdIJi7UfKQ==", + "requires": { + "@ethersproject/abstract-provider": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0" } }, - "node_modules/@ungap/promise-all-settled": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@ungap/promise-all-settled/-/promise-all-settled-1.1.2.tgz", - "integrity": "sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q==" - }, - "node_modules/@web3-js/scrypt-shim": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/@web3-js/scrypt-shim/-/scrypt-shim-0.1.0.tgz", - "integrity": "sha512-ZtZeWCc/s0nMcdx/+rZwY1EcuRdemOK9ag21ty9UsHkFxsNb/AaoucUz0iPuyGe0Ku+PFuRmWZG7Z7462p9xPw==", - "deprecated": "This package is deprecated, for a pure JS implementation please use scrypt-js", - "hasInstallScript": true, - "dependencies": { - "scryptsy": "^2.1.0", - "semver": "^6.3.0" + "@ethersproject/address": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/address/-/address-5.7.0.tgz", + "integrity": "sha512-9wYhYt7aghVGo758POM5nqcOMaE168Q6aRLJZwUmiqSrAungkG74gSSeKEIR7ukixesdRZGPgVqme6vmxs1fkA==", + "requires": { + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/rlp": "^5.7.0" } }, - "node_modules/@web3-js/scrypt-shim/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "bin": { - "semver": "bin/semver.js" + "@ethersproject/base64": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/base64/-/base64-5.7.0.tgz", + "integrity": "sha512-Dr8tcHt2mEbsZr/mwTPIQAf3Ai0Bks/7gTw9dSqk1mQvhW3XvRlmDJr/4n+wg1JmCl16NZue17CDh8xb/vZ0sQ==", + "requires": { + "@ethersproject/bytes": "^5.7.0" } }, - "node_modules/@webassemblyjs/helper-code-frame": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.9.0.tgz", - "integrity": "sha512-ERCYdJBkD9Vu4vtjUYe8LZruWuNIToYq/ME22igL+2vj2dQ2OOujIZr3MEFvfEaqKoVqpsFKAGsRdBSBjrIvZA==", - "dependencies": { - "@webassemblyjs/wast-printer": "1.9.0" + "@ethersproject/basex": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@ethersproject/basex/-/basex-5.4.0.tgz", + "integrity": "sha512-J07+QCVJ7np2bcpxydFVf/CuYo9mZ7T73Pe7KQY4c1lRlrixMeblauMxHXD0MPwFmUHZIILDNViVkykFBZylbg==", + "peer": true, + "requires": { + "@ethersproject/bytes": "^5.4.0", + "@ethersproject/properties": "^5.4.0" } }, - "node_modules/@webassemblyjs/helper-code-frame/node_modules/@webassemblyjs/ast": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.9.0.tgz", - "integrity": "sha512-C6wW5L+b7ogSDVqymbkkvuW9kruN//YisMED04xzeBBqjHa2FYnmvOlS6Xj68xWQRgWvI9cIglsjFowH/RJyEA==", + "@ethersproject/bignumber": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/bignumber/-/bignumber-5.7.0.tgz", + "integrity": "sha512-n1CAdIHRWjSucQO3MC1zPSVgV/6dy/fjL9pMrPP9peL+QxEg9wOsVqwD4+818B6LUEtaXzVHQiuivzRoxPxUGw==", + "requires": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "bn.js": "^5.2.1" + }, "dependencies": { - "@webassemblyjs/helper-module-context": "1.9.0", - "@webassemblyjs/helper-wasm-bytecode": "1.9.0", - "@webassemblyjs/wast-parser": "1.9.0" + "bn.js": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", + "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==" + } } }, - "node_modules/@webassemblyjs/helper-code-frame/node_modules/@webassemblyjs/helper-wasm-bytecode": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.9.0.tgz", - "integrity": "sha512-R7FStIzyNcd7xKxCZH5lE0Bqy+hGTwS3LJjuv1ZVxd9O7eHCedSdrId/hMOd20I+v8wDXEn+bjfKDLzTepoaUw==" - }, - "node_modules/@webassemblyjs/helper-code-frame/node_modules/@webassemblyjs/wast-printer": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.9.0.tgz", - "integrity": "sha512-2J0nE95rHXHyQ24cWjMKJ1tqB/ds8z/cyeOZxJhcb+rW+SQASVjuznUSmdz5GpVJTzU8JkhYut0D3siFDD6wsA==", - "dependencies": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/wast-parser": "1.9.0", - "@xtuc/long": "4.2.2" + "@ethersproject/bytes": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/bytes/-/bytes-5.7.0.tgz", + "integrity": "sha512-nsbxwgFXWh9NyYWo+U8atvmMsSdKJprTcICAkvbBffT75qDocbuggBU0SJiVK2MuTrp0q+xvLkTnGMPK1+uA9A==", + "requires": { + "@ethersproject/logger": "^5.7.0" } }, - "node_modules/@webassemblyjs/helper-fsm": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-fsm/-/helper-fsm-1.9.0.tgz", - "integrity": "sha512-OPRowhGbshCb5PxJ8LocpdX9Kl0uB4XsAjl6jH/dWKlk/mzsANvhwbiULsaiqT5GZGT9qinTICdj6PLuM5gslw==" + "@ethersproject/constants": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/constants/-/constants-5.7.0.tgz", + "integrity": "sha512-DHI+y5dBNvkpYUMiRQyxRBYBefZkJfo70VUkUAsRjcPs47muV9evftfZ0PJVCXYbAiCgght0DtcF9srFQmIgWA==", + "requires": { + "@ethersproject/bignumber": "^5.7.0" + } }, - "node_modules/@webassemblyjs/helper-module-context": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-module-context/-/helper-module-context-1.9.0.tgz", - "integrity": "sha512-MJCW8iGC08tMk2enck1aPW+BE5Cw8/7ph/VGZxwyvGbJwjktKkDK7vy7gAmMDx88D7mhDTCNKAW5tED+gZ0W8g==", - "dependencies": { - "@webassemblyjs/ast": "1.9.0" + "@ethersproject/hash": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/hash/-/hash-5.7.0.tgz", + "integrity": "sha512-qX5WrQfnah1EFnO5zJv1v46a8HW0+E5xuBBDTwMFZLuVTx0tbU2kkx15NqdjxecrLGatQN9FGQKpb1FKdHCt+g==", + "requires": { + "@ethersproject/abstract-signer": "^5.7.0", + "@ethersproject/address": "^5.7.0", + "@ethersproject/base64": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/strings": "^5.7.0" } }, - "node_modules/@webassemblyjs/helper-module-context/node_modules/@webassemblyjs/ast": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.9.0.tgz", - "integrity": "sha512-C6wW5L+b7ogSDVqymbkkvuW9kruN//YisMED04xzeBBqjHa2FYnmvOlS6Xj68xWQRgWvI9cIglsjFowH/RJyEA==", - "dependencies": { - "@webassemblyjs/helper-module-context": "1.9.0", - "@webassemblyjs/helper-wasm-bytecode": "1.9.0", - "@webassemblyjs/wast-parser": "1.9.0" + "@ethersproject/keccak256": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/keccak256/-/keccak256-5.7.0.tgz", + "integrity": "sha512-2UcPboeL/iW+pSg6vZ6ydF8tCnv3Iu/8tUmLLzWWGzxWKFFqOBQFLo6uLUv6BDrLgCDfN28RJ/wtByx+jZ4KBg==", + "requires": { + "@ethersproject/bytes": "^5.7.0", + "js-sha3": "0.8.0" } }, - "node_modules/@webassemblyjs/helper-module-context/node_modules/@webassemblyjs/helper-wasm-bytecode": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.9.0.tgz", - "integrity": "sha512-R7FStIzyNcd7xKxCZH5lE0Bqy+hGTwS3LJjuv1ZVxd9O7eHCedSdrId/hMOd20I+v8wDXEn+bjfKDLzTepoaUw==" + "@ethersproject/logger": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/logger/-/logger-5.7.0.tgz", + "integrity": "sha512-0odtFdXu/XHtjQXJYA3u9G0G8btm0ND5Cu8M7i5vhEcE8/HmF4Lbdqanwyv4uQTr2tx6b7fQRmgLrsnpQlmnig==" }, - "node_modules/@webassemblyjs/wast-parser": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-parser/-/wast-parser-1.9.0.tgz", - "integrity": "sha512-qsqSAP3QQ3LyZjNC/0jBJ/ToSxfYJ8kYyuiGvtn/8MK89VrNEfwj7BPQzJVHi0jGTRK2dGdJ5PRqhtjzoww+bw==", - "dependencies": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/floating-point-hex-parser": "1.9.0", - "@webassemblyjs/helper-api-error": "1.9.0", - "@webassemblyjs/helper-code-frame": "1.9.0", - "@webassemblyjs/helper-fsm": "1.9.0", - "@xtuc/long": "4.2.2" + "@ethersproject/networks": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/@ethersproject/networks/-/networks-5.7.1.tgz", + "integrity": "sha512-n/MufjFYv3yFcUyfhnXotyDlNdFb7onmkSy8aQERi2PjNcnWQ66xXxa3XlS8nCcA8aJKJjIIMNJTC7tu80GwpQ==", + "requires": { + "@ethersproject/logger": "^5.7.0" } }, - "node_modules/@webassemblyjs/wast-parser/node_modules/@webassemblyjs/ast": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.9.0.tgz", - "integrity": "sha512-C6wW5L+b7ogSDVqymbkkvuW9kruN//YisMED04xzeBBqjHa2FYnmvOlS6Xj68xWQRgWvI9cIglsjFowH/RJyEA==", - "dependencies": { - "@webassemblyjs/helper-module-context": "1.9.0", - "@webassemblyjs/helper-wasm-bytecode": "1.9.0", - "@webassemblyjs/wast-parser": "1.9.0" + "@ethersproject/properties": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/properties/-/properties-5.7.0.tgz", + "integrity": "sha512-J87jy8suntrAkIZtecpxEPxY//szqr1mlBaYlQ0r4RCaiD2hjheqF9s1LVE8vVuJCXisjIP+JgtK/Do54ej4Sw==", + "requires": { + "@ethersproject/logger": "^5.7.0" } }, - "node_modules/@webassemblyjs/wast-parser/node_modules/@webassemblyjs/floating-point-hex-parser": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.9.0.tgz", - "integrity": "sha512-TG5qcFsS8QB4g4MhrxK5TqfdNe7Ey/7YL/xN+36rRjl/BlGE/NcBvJcqsRgCP6Z92mRE+7N50pRIi8SmKUbcQA==" - }, - "node_modules/@webassemblyjs/wast-parser/node_modules/@webassemblyjs/helper-api-error": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.9.0.tgz", - "integrity": "sha512-NcMLjoFMXpsASZFxJ5h2HZRcEhDkvnNFOAKneP5RbKRzaWJN36NC4jqQHKwStIhGXu5mUWlUUk7ygdtrO8lbmw==" - }, - "node_modules/@webassemblyjs/wast-parser/node_modules/@webassemblyjs/helper-wasm-bytecode": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.9.0.tgz", - "integrity": "sha512-R7FStIzyNcd7xKxCZH5lE0Bqy+hGTwS3LJjuv1ZVxd9O7eHCedSdrId/hMOd20I+v8wDXEn+bjfKDLzTepoaUw==" - }, - "node_modules/@wry/context": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/@wry/context/-/context-0.7.0.tgz", - "integrity": "sha512-LcDAiYWRtwAoSOArfk7cuYvFXytxfVrdX7yxoUmK7pPITLk5jYh2F8knCwS7LjgYL8u1eidPlKKV6Ikqq0ODqQ==", - "dependencies": { - "tslib": "^2.3.0" + "@ethersproject/providers": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/@ethersproject/providers/-/providers-5.4.1.tgz", + "integrity": "sha512-p06eiFKz8nu/5Ju0kIX024gzEQIgE5pvvGrBCngpyVjpuLtUIWT3097Agw4mTn9/dEA0FMcfByzFqacBMSgCVg==", + "peer": true, + "requires": { + "@ethersproject/abstract-provider": "^5.4.0", + "@ethersproject/abstract-signer": "^5.4.0", + "@ethersproject/address": "^5.4.0", + "@ethersproject/basex": "^5.4.0", + "@ethersproject/bignumber": "^5.4.0", + "@ethersproject/bytes": "^5.4.0", + "@ethersproject/constants": "^5.4.0", + "@ethersproject/hash": "^5.4.0", + "@ethersproject/logger": "^5.4.0", + "@ethersproject/networks": "^5.4.0", + "@ethersproject/properties": "^5.4.0", + "@ethersproject/random": "^5.4.0", + "@ethersproject/rlp": "^5.4.0", + "@ethersproject/sha2": "^5.4.0", + "@ethersproject/strings": "^5.4.0", + "@ethersproject/transactions": "^5.4.0", + "@ethersproject/web": "^5.4.0", + "bech32": "1.1.4", + "ws": "7.4.6" }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@wry/context/node_modules/tslib": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz", - "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==" - }, - "node_modules/@wry/trie": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@wry/trie/-/trie-0.3.2.tgz", - "integrity": "sha512-yRTyhWSls2OY/pYLfwff867r8ekooZ4UI+/gxot5Wj8EFwSf2rG+n+Mo/6LoLQm1TKA4GRj2+LCpbfS937dClQ==", "dependencies": { - "tslib": "^2.3.0" - }, - "engines": { - "node": ">=8" + "bech32": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/bech32/-/bech32-1.1.4.tgz", + "integrity": "sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ==", + "peer": true + }, + "ws": { + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz", + "integrity": "sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==", + "peer": true, + "requires": {} + } } }, - "node_modules/@wry/trie/node_modules/tslib": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz", - "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==" + "@ethersproject/random": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@ethersproject/random/-/random-5.4.0.tgz", + "integrity": "sha512-pnpWNQlf0VAZDEOVp1rsYQosmv2o0ITS/PecNw+mS2/btF8eYdspkN0vIXrCMtkX09EAh9bdk8GoXmFXM1eAKw==", + "peer": true, + "requires": { + "@ethersproject/bytes": "^5.4.0", + "@ethersproject/logger": "^5.4.0" + } }, - "node_modules/@xpla/xpla.js": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/@xpla/xpla.js/-/xpla.js-0.2.3.tgz", - "integrity": "sha512-Tfk7hCGWXtwr08reY3Pi6dmzIqFbzri9jcyzJdfNmdo4cN0PMwpRJuZZcPmtxiIUnNef3AN1E/6nJUD5MKniuA==", - "dependencies": { - "@ethersproject/bytes": "^5.6.1", - "@ethersproject/keccak256": "^5.6.1", - "@ethersproject/signing-key": "^5.6.2", - "@terra-money/legacy.proto": "npm:@terra-money/terra.proto@^0.1.7", - "@terra-money/terra.proto": "^2.1.0", - "axios": "^0.26.1", - "bech32": "^2.0.0", - "bip32": "^2.0.6", - "bip39": "^3.0.3", - "bufferutil": "^4.0.3", - "crypto-addr-codec": "^0.1.7", - "decimal.js": "^10.2.1", - "elliptic": "^6.5.4", - "ethereumjs-util": "^7.1.5", - "jscrypto": "^1.0.1", - "readable-stream": "^3.6.0", - "secp256k1": "^4.0.2", - "tmp": "^0.2.1", - "utf-8-validate": "^5.0.5", - "ws": "^7.5.8" - }, - "engines": { - "node": ">=14" + "@ethersproject/rlp": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/rlp/-/rlp-5.7.0.tgz", + "integrity": "sha512-rBxzX2vK8mVF7b0Tol44t5Tb8gomOHkj5guL+HhzQ1yBh/ydjGnpw6at+X6Iw0Kp3OzzzkcKp8N9r0W4kYSs9w==", + "requires": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0" } }, - "node_modules/@xpla/xpla.js/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==", + "@ethersproject/sha2": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@ethersproject/sha2/-/sha2-5.4.0.tgz", + "integrity": "sha512-siheo36r1WD7Cy+bDdE1BJ8y0bDtqXCOxRMzPa4bV1TGt/eTUUt03BHoJNB6reWJD8A30E/pdJ8WFkq+/uz4Gg==", + "peer": true, + "requires": { + "@ethersproject/bytes": "^5.4.0", + "@ethersproject/logger": "^5.4.0", + "hash.js": "1.1.7" + }, "dependencies": { - "@types/node": "*" + "hash.js": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", + "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", + "peer": true, + "requires": { + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.1" + } + } } }, - "node_modules/@xpla/xpla.js/node_modules/axios": { - "version": "0.26.1", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.26.1.tgz", - "integrity": "sha512-fPwcX4EvnSHuInCMItEhAGnaSEXRBjtzh9fOtsE6E1G6p7vl7edEeZe11QHf18+6+9gR5PbKV/sGKNaD8YaMeA==", - "dependencies": { - "follow-redirects": "^1.14.8" - } - }, - "node_modules/@xpla/xpla.js/node_modules/bn.js": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", - "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==" - }, - "node_modules/@xpla/xpla.js/node_modules/ethereumjs-util": { - "version": "7.1.5", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.5.tgz", - "integrity": "sha512-SDl5kKrQAudFBUe5OJM9Ac6WmMyYmXX/6sTmLZ3ffG2eY6ZIGBes3pEDxNN6V72WyOw4CPD5RomKdsa8DAAwLg==", - "dependencies": { - "@types/bn.js": "^5.1.0", - "bn.js": "^5.1.2", - "create-hash": "^1.1.2", - "ethereum-cryptography": "^0.1.3", - "rlp": "^2.2.4" + "@ethersproject/signing-key": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/signing-key/-/signing-key-5.7.0.tgz", + "integrity": "sha512-MZdy2nL3wO0u7gkB4nA/pEf8lu1TlFswPNmy8AiYkfKTdO6eXBJyUdmHO/ehm/htHw9K/qF8ujnTyUAD+Ry54Q==", + "requires": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "bn.js": "^5.2.1", + "elliptic": "6.5.4", + "hash.js": "1.1.7" }, - "engines": { - "node": ">=10.0.0" + "dependencies": { + "bn.js": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", + "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==" + }, + "hash.js": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", + "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", + "requires": { + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.1" + } + } } }, - "node_modules/@xpla/xpla.js/node_modules/follow-redirects": { - "version": "1.15.2", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", - "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==", - "funding": [ - { - "type": "individual", - "url": "https://github.com/sponsors/RubenVerborgh" - } - ], - "engines": { - "node": ">=4.0" - }, - "peerDependenciesMeta": { - "debug": { - "optional": true - } + "@ethersproject/strings": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/strings/-/strings-5.7.0.tgz", + "integrity": "sha512-/9nu+lj0YswRNSH0NXYqrh8775XNyEdUQAuf3f+SmOrnVewcJ5SBNAjF7lpgehKi4abvNNXyf+HX86czCdJ8Mg==", + "requires": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/logger": "^5.7.0" } }, - "node_modules/@xpla/xpla.js/node_modules/readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" + "@ethersproject/transactions": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/transactions/-/transactions-5.7.0.tgz", + "integrity": "sha512-kmcNicCp1lp8qanMTC3RIikGgoJ80ztTyvtsFvCYpSCfkjhD0jZ2LOrnbcuxuToLIUYYf+4XwD1rP+B/erDIhQ==", + "requires": { + "@ethersproject/address": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/rlp": "^5.7.0", + "@ethersproject/signing-key": "^5.7.0" } }, - "node_modules/@xpla/xpla.js/node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "@ethersproject/web": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/@ethersproject/web/-/web-5.7.1.tgz", + "integrity": "sha512-Gueu8lSvyjBWL4cYsWsjh6MtMwM0+H4HvqFPZfB6dV8ctbP9zFAO73VG1cMWae0FLPCtz0peKPpZY8/ugJJX2w==", + "requires": { + "@ethersproject/base64": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/strings": "^5.7.0" } }, - "node_modules/@xpla/xpla.js/node_modules/tmp": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz", - "integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==", - "dependencies": { - "rimraf": "^3.0.0" - }, - "engines": { - "node": ">=8.17.0" + "@graphql-typed-document-node/core": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@graphql-typed-document-node/core/-/core-3.2.0.tgz", + "integrity": "sha512-mB9oAsNCm9aM3/SOv4YtBMqZbYj10R7dkq8byBqxGY/ncFwhf2oQzMV+LCRlWoDSEBJ3COiR1yeDvMtsoOsuFQ==", + "requires": {} + }, + "@improbable-eng/grpc-web": { + "version": "0.15.0", + "resolved": "https://registry.npmjs.org/@improbable-eng/grpc-web/-/grpc-web-0.15.0.tgz", + "integrity": "sha512-ERft9/0/8CmYalqOVnJnpdDry28q+j+nAlFFARdjyxXDJ+Mhgv9+F600QC8BR9ygOfrXRlAk6CvST2j+JCpQPg==", + "requires": { + "browser-headers": "^0.4.1" } }, - "node_modules/@xpla/xpla.js/node_modules/ws": { - "version": "7.5.9", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz", - "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==", - "engines": { - "node": ">=8.3.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": "^5.0.2" + "@injectivelabs/core-proto-ts": { + "version": "0.0.11", + "resolved": "https://registry.npmjs.org/@injectivelabs/core-proto-ts/-/core-proto-ts-0.0.11.tgz", + "integrity": "sha512-gYMzkoZ0olXLbEhSQVarUCMR6VAHytvENDv2Psjl9EjO5Pg93vTGLViS4E4vA5fezRfdF/x0Uic31w+ogp66jA==", + "requires": { + "@injectivelabs/grpc-web": "^0.0.1", + "google-protobuf": "^3.14.0", + "protobufjs": "^7.0.0", + "rxjs": "^7.4.0" }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true + "dependencies": { + "long": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/long/-/long-5.2.1.tgz", + "integrity": "sha512-GKSNGeNAtw8IryjjkhZxuKB3JzlcLTwjtiQCHKvqQet81I93kXslhDQruGI/QsddO83mcDToBVy7GqGS/zYf/A==" }, - "utf-8-validate": { - "optional": true + "protobufjs": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.2.3.tgz", + "integrity": "sha512-TtpvOqwB5Gdz/PQmOjgsrGH1nHjAQVCN7JG4A6r1sXRWESL5rNMAiRcBQlCAdKxZcAbstExQePYG8xof/JVRgg==", + "requires": { + "@protobufjs/aspromise": "^1.1.2", + "@protobufjs/base64": "^1.1.2", + "@protobufjs/codegen": "^2.0.4", + "@protobufjs/eventemitter": "^1.1.0", + "@protobufjs/fetch": "^1.1.0", + "@protobufjs/float": "^1.0.2", + "@protobufjs/inquire": "^1.1.0", + "@protobufjs/path": "^1.1.2", + "@protobufjs/pool": "^1.1.0", + "@protobufjs/utf8": "^1.1.0", + "@types/node": ">=13.7.0", + "long": "^5.0.0" + } + }, + "rxjs": { + "version": "7.8.0", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.0.tgz", + "integrity": "sha512-F2+gxDshqmIub1KdvZkaEfGDwLNpPvk9Fs6LD/MyQxNgMds/WH9OdDDXOmxUZpME+iSK3rQCctkL0DYyytUqMg==", + "requires": { + "tslib": "^2.1.0" + } + }, + "tslib": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz", + "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==" } } }, - "node_modules/@xtuc/ieee754": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", - "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==" - }, - "node_modules/@xtuc/long": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", - "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==" - }, - "node_modules/abort-controller": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", - "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", - "dependencies": { - "event-target-shim": "^5.0.0" - }, - "engines": { - "node": ">=6.5" - } - }, - "node_modules/abortcontroller-polyfill": { - "version": "1.7.5", - "resolved": "https://registry.npmjs.org/abortcontroller-polyfill/-/abortcontroller-polyfill-1.7.5.tgz", - "integrity": "sha512-JMJ5soJWP18htbbxJjG7bG6yuI6pRhgJ0scHHTfkUjf6wjP912xZWvM+A4sJK3gqd9E8fcPbDnOefbA9Th/FIQ==", - "dev": true - }, - "node_modules/abstract-leveldown": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-2.6.3.tgz", - "integrity": "sha512-2++wDf/DYqkPR3o5tbfdhF96EfMApo1GpPfzOsR/ZYXdkSmELlvOOEAl9iKkRsktMPHdGjO4rtkBpf2I7TiTeA==", - "dependencies": { - "xtend": "~4.0.0" + "@injectivelabs/exceptions": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/@injectivelabs/exceptions/-/exceptions-1.10.0.tgz", + "integrity": "sha512-YD9MEUEwJDalj+bV+/4P8TEqyR7asnQfjacCtuCYEF59qWsSYjYWxfZdZDssmSK8FA4HgJaQ2sghhK/LUfBneA==", + "requires": { + "@injectivelabs/grpc-web": "^0.0.1", + "@injectivelabs/ts-types": "^1.10.0", + "http-status-codes": "^2.2.0", + "link-module-alias": "^1.2.0", + "shx": "^0.3.2" } }, - "node_modules/accepts": { - "version": "1.3.7", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", - "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", - "dev": true, - "dependencies": { - "mime-types": "~2.1.24", - "negotiator": "0.6.2" - }, - "engines": { - "node": ">= 0.6" + "@injectivelabs/grpc-web": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/@injectivelabs/grpc-web/-/grpc-web-0.0.1.tgz", + "integrity": "sha512-Pu5YgaZp+OvR5UWfqbrPdHer3+gDf+b5fQoY+t2VZx1IAVHX8bzbN9EreYTvTYtFeDpYRWM8P7app2u4EX5wTw==", + "requires": { + "browser-headers": "^0.4.1" } }, - "node_modules/acorn": { - "version": "7.4.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.0.tgz", - "integrity": "sha512-+G7P8jJmCHr+S+cLfQxygbWhXy+8YTVGzAkpEbcLo2mLoL7tij/VG41QSHACSf5QgYRhMZYHuNc6drJaO0Da+w==", - "dev": true, - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } + "@injectivelabs/grpc-web-node-http-transport": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/@injectivelabs/grpc-web-node-http-transport/-/grpc-web-node-http-transport-0.0.2.tgz", + "integrity": "sha512-rpyhXLiGY/UMs6v6YmgWHJHiO9l0AgDyVNv+jcutNVt4tQrmNvnpvz2wCAGOFtq5LuX/E9ChtTVpk3gWGqXcGA==", + "requires": {} }, - "node_modules/acorn-jsx": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.2.0.tgz", - "integrity": "sha512-HiUX/+K2YpkpJ+SzBffkM/AQ2YE03S0U1kjTLVpoJdhZMOWy8qvXVN9JdLqv2QsaQ6MPYQIuNmwD8zOiYUofLQ==", - "dev": true + "@injectivelabs/grpc-web-react-native-transport": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/@injectivelabs/grpc-web-react-native-transport/-/grpc-web-react-native-transport-0.0.2.tgz", + "integrity": "sha512-mk+aukQXnYNgPsPnu3KBi+FD0ZHQpazIlaBZ2jNZG7QAVmxTWtv3R66Zoq99Wx2dnE946NsZBYAoa0K5oSjnow==", + "requires": {} }, - "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, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/aes-js": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/aes-js/-/aes-js-3.0.0.tgz", - "integrity": "sha1-4h3xCtbCBTKVvLuNq0Cwnb6ofk0=" - }, - "node_modules/agentkeepalive": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.3.0.tgz", - "integrity": "sha512-7Epl1Blf4Sy37j4v9f9FjICCh4+KAQOyXgHEwlyBiAQLbhKdq/i2QQU3amQalS/wPhdPzDXPL5DMR5bkn+YeWg==", - "dependencies": { - "debug": "^4.1.0", - "depd": "^2.0.0", - "humanize-ms": "^1.2.1" - }, - "engines": { - "node": ">= 8.0.0" - } - }, - "node_modules/agentkeepalive/node_modules/debug": { - "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" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/agentkeepalive/node_modules/depd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", - "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/agentkeepalive/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/ajv-errors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/ajv-errors/-/ajv-errors-1.0.1.tgz", - "integrity": "sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ==", - "peerDependencies": { - "ajv": ">=5.0.0" - } - }, - "node_modules/ajv-formats": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", - "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", - "dev": true, - "optional": true, - "dependencies": { - "ajv": "^8.0.0" - }, - "peerDependencies": { - "ajv": "^8.0.0" - }, - "peerDependenciesMeta": { - "ajv": { - "optional": true - } - } - }, - "node_modules/ajv-formats/node_modules/ajv": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", - "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", - "dev": true, - "optional": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/ajv-formats/node_modules/json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true, - "optional": true - }, - "node_modules/ajv-keywords": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", - "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "peerDependencies": { - "ajv": "^6.9.1" - } - }, - "node_modules/algo-msgpack-with-bigint": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/algo-msgpack-with-bigint/-/algo-msgpack-with-bigint-2.1.1.tgz", - "integrity": "sha512-F1tGh056XczEaEAqu7s+hlZUDWwOBT70Eq0lfMpBP2YguSQVyxRbprLq5rELXKQOyOaixTWYhMeMQMzP0U5FoQ==", - "engines": { - "node": ">= 10" - } - }, - "node_modules/algosdk": { - "version": "1.24.1", - "resolved": "https://registry.npmjs.org/algosdk/-/algosdk-1.24.1.tgz", - "integrity": "sha512-9moZxdqeJ6GdE4N6fA/GlUP4LrbLZMYcYkt141J4Ss68OfEgH9qW0wBuZ3ZOKEx/xjc5bg7mLP2Gjg7nwrkmww==", - "dependencies": { - "algo-msgpack-with-bigint": "^2.1.1", - "buffer": "^6.0.2", - "cross-fetch": "^3.1.5", - "hi-base32": "^0.5.1", - "js-sha256": "^0.9.0", - "js-sha3": "^0.8.0", - "js-sha512": "^0.8.0", - "json-bigint": "^1.0.0", - "tweetnacl": "^1.0.3", - "vlq": "^2.0.4" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/algosdk/node_modules/buffer": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", - "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" - } - }, - "node_modules/algosdk/node_modules/cross-fetch": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.5.tgz", - "integrity": "sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw==", - "dependencies": { - "node-fetch": "2.6.7" - } - }, - "node_modules/algosdk/node_modules/js-sha3": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.8.0.tgz", - "integrity": "sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q==" - }, - "node_modules/algosdk/node_modules/node-fetch": { - "version": "2.6.7", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", - "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", - "dependencies": { - "whatwg-url": "^5.0.0" - }, - "engines": { - "node": "4.x || >=6.0.0" - }, - "peerDependencies": { - "encoding": "^0.1.0" - }, - "peerDependenciesMeta": { - "encoding": { - "optional": true - } - } - }, - "node_modules/algosdk/node_modules/tweetnacl": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.3.tgz", - "integrity": "sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==" - }, - "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": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz", - "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "engines": { - "node": ">=6" - } - }, - "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/antlr4ts": { - "version": "0.5.0-alpha.4", - "resolved": "https://registry.npmjs.org/antlr4ts/-/antlr4ts-0.5.0-alpha.4.tgz", - "integrity": "sha512-WPQDt1B74OfPv/IMS2ekXAKkTZIHl88uMetg6q3OTqgFxZ/dxDXI0EWLyZid/1Pe6hTftyg5N7gel5wNAGxXyQ==", - "dev": true - }, - "node_modules/any-promise": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", - "integrity": "sha1-q8av7tzqUugJzcA3au0845Y10X8=" - }, - "node_modules/anymatch": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", - "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", - "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/apollo-datasource": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/apollo-datasource/-/apollo-datasource-3.3.2.tgz", - "integrity": "sha512-L5TiS8E2Hn/Yz7SSnWIVbZw0ZfEIXZCa5VUiVxD9P53JvSrf4aStvsFDlGWPvpIdCR+aly2CfoB79B9/JjKFqg==", - "deprecated": "The `apollo-datasource` package is part of Apollo Server v2 and v3, which are now deprecated (end-of-life October 22nd 2023). See https://www.apollographql.com/docs/apollo-server/previous-versions/ for more details.", - "dev": true, - "optional": true, - "dependencies": { - "@apollo/utils.keyvaluecache": "^1.0.1", - "apollo-server-env": "^4.2.1" - }, - "engines": { - "node": ">=12.0" - } - }, - "node_modules/apollo-reporting-protobuf": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/apollo-reporting-protobuf/-/apollo-reporting-protobuf-3.4.0.tgz", - "integrity": "sha512-h0u3EbC/9RpihWOmcSsvTW2O6RXVaD/mPEjfrPkxRPTEPWqncsgOoRJw+wih4OqfH3PvTJvoEIf4LwKrUaqWog==", - "deprecated": "The `apollo-reporting-protobuf` package is part of Apollo Server v2 and v3, which are now deprecated (end-of-life October 22nd 2023). This package's functionality is now found in the `@apollo/usage-reporting-protobuf` package. See https://www.apollographql.com/docs/apollo-server/previous-versions/ for more details.", - "dev": true, - "optional": true, - "dependencies": { - "@apollo/protobufjs": "1.2.6" - } - }, - "node_modules/apollo-reporting-protobuf/node_modules/@apollo/protobufjs": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/@apollo/protobufjs/-/protobufjs-1.2.6.tgz", - "integrity": "sha512-Wqo1oSHNUj/jxmsVp4iR3I480p6qdqHikn38lKrFhfzcDJ7lwd7Ck7cHRl4JE81tWNArl77xhnG/OkZhxKBYOw==", - "dev": true, - "hasInstallScript": true, - "optional": true, - "dependencies": { - "@protobufjs/aspromise": "^1.1.2", - "@protobufjs/base64": "^1.1.2", - "@protobufjs/codegen": "^2.0.4", - "@protobufjs/eventemitter": "^1.1.0", - "@protobufjs/fetch": "^1.1.0", - "@protobufjs/float": "^1.0.2", - "@protobufjs/inquire": "^1.1.0", - "@protobufjs/path": "^1.1.2", - "@protobufjs/pool": "^1.1.0", - "@protobufjs/utf8": "^1.1.0", - "@types/long": "^4.0.0", - "@types/node": "^10.1.0", - "long": "^4.0.0" - }, - "bin": { - "apollo-pbjs": "bin/pbjs", - "apollo-pbts": "bin/pbts" - } - }, - "node_modules/apollo-reporting-protobuf/node_modules/@types/node": { - "version": "10.17.60", - "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.60.tgz", - "integrity": "sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw==", - "dev": true, - "optional": true - }, - "node_modules/apollo-server": { - "version": "3.12.0", - "resolved": "https://registry.npmjs.org/apollo-server/-/apollo-server-3.12.0.tgz", - "integrity": "sha512-wZHLgBoIdGxr/YpPTG5RwNnS+B2y70T/nCegCnU6Yl+H3PXB92OIguLMhdJIZVjukIOhiQT12dNIehqLQ+1hMQ==", - "deprecated": "The `apollo-server` package is part of Apollo Server v2 and v3, which are now deprecated (end-of-life October 22nd 2023). This package's functionality is now found in the `@apollo/server` package. See https://www.apollographql.com/docs/apollo-server/previous-versions/ for more details.", - "dev": true, - "optional": true, - "dependencies": { - "@types/express": "4.17.14", - "apollo-server-core": "^3.12.0", - "apollo-server-express": "^3.12.0", - "express": "^4.17.1" - }, - "peerDependencies": { - "graphql": "^15.3.0 || ^16.0.0" - } - }, - "node_modules/apollo-server-core": { - "version": "3.12.0", - "resolved": "https://registry.npmjs.org/apollo-server-core/-/apollo-server-core-3.12.0.tgz", - "integrity": "sha512-hq7iH6Cgldgmnjs9FVSZeKWRpi0/ZR+iJ1arzeD2VXGxxgk1mAm/cz1Tx0TYgegZI+FvvrRl0UhKEx7sLnIxIg==", - "deprecated": "The `apollo-server-core` package is part of Apollo Server v2 and v3, which are now deprecated (end-of-life October 22nd 2023). This package's functionality is now found in the `@apollo/server` package. See https://www.apollographql.com/docs/apollo-server/previous-versions/ for more details.", - "dev": true, - "optional": true, - "dependencies": { - "@apollo/utils.keyvaluecache": "^1.0.1", - "@apollo/utils.logger": "^1.0.0", - "@apollo/utils.usagereporting": "^1.0.0", - "@apollographql/apollo-tools": "^0.5.3", - "@apollographql/graphql-playground-html": "1.6.29", - "@graphql-tools/mock": "^8.1.2", - "@graphql-tools/schema": "^8.0.0", - "@josephg/resolvable": "^1.0.0", - "apollo-datasource": "^3.3.2", - "apollo-reporting-protobuf": "^3.4.0", - "apollo-server-env": "^4.2.1", - "apollo-server-errors": "^3.3.1", - "apollo-server-plugin-base": "^3.7.2", - "apollo-server-types": "^3.8.0", - "async-retry": "^1.2.1", - "fast-json-stable-stringify": "^2.1.0", - "graphql-tag": "^2.11.0", - "loglevel": "^1.6.8", - "lru-cache": "^6.0.0", - "node-abort-controller": "^3.0.1", - "sha.js": "^2.4.11", - "uuid": "^9.0.0", - "whatwg-mimetype": "^3.0.0" - }, - "engines": { - "node": ">=12.0" - }, - "peerDependencies": { - "graphql": "^15.3.0 || ^16.0.0" - } - }, - "node_modules/apollo-server-core/node_modules/uuid": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.0.tgz", - "integrity": "sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg==", - "dev": true, - "optional": true, - "bin": { - "uuid": "dist/bin/uuid" - } - }, - "node_modules/apollo-server-env": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/apollo-server-env/-/apollo-server-env-4.2.1.tgz", - "integrity": "sha512-vm/7c7ld+zFMxibzqZ7SSa5tBENc4B0uye9LTfjJwGoQFY5xsUPH5FpO5j0bMUDZ8YYNbrF9SNtzc5Cngcr90g==", - "deprecated": "The `apollo-server-env` package is part of Apollo Server v2 and v3, which are now deprecated (end-of-life October 22nd 2023). This package's functionality is now found in the `@apollo/utils.fetcher` package. See https://www.apollographql.com/docs/apollo-server/previous-versions/ for more details.", - "dev": true, - "optional": true, - "dependencies": { - "node-fetch": "^2.6.7" - }, - "engines": { - "node": ">=12.0" - } - }, - "node_modules/apollo-server-env/node_modules/node-fetch": { - "version": "2.6.11", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.11.tgz", - "integrity": "sha512-4I6pdBY1EthSqDmJkiNk3JIT8cswwR9nfeW/cPdUagJYEQG7R95WRH74wpz7ma8Gh/9dI9FP+OU+0E4FvtA55w==", - "dev": true, - "optional": true, - "dependencies": { - "whatwg-url": "^5.0.0" - }, - "engines": { - "node": "4.x || >=6.0.0" - }, - "peerDependencies": { - "encoding": "^0.1.0" - }, - "peerDependenciesMeta": { - "encoding": { - "optional": true - } - } - }, - "node_modules/apollo-server-errors": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/apollo-server-errors/-/apollo-server-errors-3.3.1.tgz", - "integrity": "sha512-xnZJ5QWs6FixHICXHxUfm+ZWqqxrNuPlQ+kj5m6RtEgIpekOPssH/SD9gf2B4HuWV0QozorrygwZnux8POvyPA==", - "deprecated": "The `apollo-server-errors` package is part of Apollo Server v2 and v3, which are now deprecated (end-of-life October 22nd 2023). This package's functionality is now found in the `@apollo/server` package. See https://www.apollographql.com/docs/apollo-server/previous-versions/ for more details.", - "dev": true, - "optional": true, - "engines": { - "node": ">=12.0" - }, - "peerDependencies": { - "graphql": "^15.3.0 || ^16.0.0" - } - }, - "node_modules/apollo-server-express": { - "version": "3.12.0", - "resolved": "https://registry.npmjs.org/apollo-server-express/-/apollo-server-express-3.12.0.tgz", - "integrity": "sha512-m8FaGPUfDOEGSm7QRWRmUUGjG/vqvpQoorkId9/FXkC57fz/A59kEdrzkMt9538Xgsa5AV+X4MEWLJhTvlW3LQ==", - "deprecated": "The `apollo-server-express` package is part of Apollo Server v2 and v3, which are now deprecated (end-of-life October 22nd 2023). This package's functionality is now found in the `@apollo/server` package. See https://www.apollographql.com/docs/apollo-server/previous-versions/ for more details.", - "dev": true, - "optional": true, - "dependencies": { - "@types/accepts": "^1.3.5", - "@types/body-parser": "1.19.2", - "@types/cors": "2.8.12", - "@types/express": "4.17.14", - "@types/express-serve-static-core": "4.17.31", - "accepts": "^1.3.5", - "apollo-server-core": "^3.12.0", - "apollo-server-types": "^3.8.0", - "body-parser": "^1.19.0", - "cors": "^2.8.5", - "parseurl": "^1.3.3" - }, - "engines": { - "node": ">=12.0" - }, - "peerDependencies": { - "express": "^4.17.1", - "graphql": "^15.3.0 || ^16.0.0" - } - }, - "node_modules/apollo-server-express/node_modules/@types/express-serve-static-core": { - "version": "4.17.31", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.31.tgz", - "integrity": "sha512-DxMhY+NAsTwMMFHBTtJFNp5qiHKJ7TeqOo23zVEM9alT1Ml27Q3xcTH0xwxn7Q0BbMcVEJOs/7aQtUWupUQN3Q==", - "dev": true, - "optional": true, - "dependencies": { - "@types/node": "*", - "@types/qs": "*", - "@types/range-parser": "*" - } - }, - "node_modules/apollo-server-plugin-base": { - "version": "3.7.2", - "resolved": "https://registry.npmjs.org/apollo-server-plugin-base/-/apollo-server-plugin-base-3.7.2.tgz", - "integrity": "sha512-wE8dwGDvBOGehSsPTRZ8P/33Jan6/PmL0y0aN/1Z5a5GcbFhDaaJCjK5cav6npbbGL2DPKK0r6MPXi3k3N45aw==", - "deprecated": "The `apollo-server-plugin-base` package is part of Apollo Server v2 and v3, which are now deprecated (end-of-life October 22nd 2023). This package's functionality is now found in the `@apollo/server` package. See https://www.apollographql.com/docs/apollo-server/previous-versions/ for more details.", - "dev": true, - "optional": true, - "dependencies": { - "apollo-server-types": "^3.8.0" - }, - "engines": { - "node": ">=12.0" - }, - "peerDependencies": { - "graphql": "^15.3.0 || ^16.0.0" - } - }, - "node_modules/apollo-server-types": { - "version": "3.8.0", - "resolved": "https://registry.npmjs.org/apollo-server-types/-/apollo-server-types-3.8.0.tgz", - "integrity": "sha512-ZI/8rTE4ww8BHktsVpb91Sdq7Cb71rdSkXELSwdSR0eXu600/sY+1UXhTWdiJvk+Eq5ljqoHLwLbY2+Clq2b9A==", - "deprecated": "The `apollo-server-types` package is part of Apollo Server v2 and v3, which are now deprecated (end-of-life October 22nd 2023). This package's functionality is now found in the `@apollo/server` package. See https://www.apollographql.com/docs/apollo-server/previous-versions/ for more details.", - "dev": true, - "optional": true, - "dependencies": { - "@apollo/utils.keyvaluecache": "^1.0.1", - "@apollo/utils.logger": "^1.0.0", - "apollo-reporting-protobuf": "^3.4.0", - "apollo-server-env": "^4.2.1" - }, - "engines": { - "node": ">=12.0" - }, - "peerDependencies": { - "graphql": "^15.3.0 || ^16.0.0" - } - }, - "node_modules/app-module-path": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/app-module-path/-/app-module-path-2.2.0.tgz", - "integrity": "sha1-ZBqlXft9am8KgUHEucCqULbCTdU=", - "dev": true - }, - "node_modules/aproba": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", - "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==" - }, - "node_modules/aptos": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/aptos/-/aptos-1.5.0.tgz", - "integrity": "sha512-N7OuRtU7IYHkDkNx+4QS3g/QQGCp+36KzYn3oXPmT7Kttfuv+UKliQVdjy3cLmwd/DCQSh9ObTovwdxnHjUn0g==", - "dependencies": { - "@noble/hashes": "1.1.3", - "@scure/bip39": "1.1.0", - "axios": "0.27.2", - "form-data": "4.0.0", - "tweetnacl": "1.0.3" - }, - "engines": { - "node": ">=11.0.0" - } - }, - "node_modules/aptos/node_modules/@noble/hashes": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.1.3.tgz", - "integrity": "sha512-CE0FCR57H2acVI5UOzIGSSIYxZ6v/HOhDR0Ro9VLyhnzLwx0o8W1mmgaqlEUx4049qJDlIBRztv5k+MM8vbO3A==", - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ] - }, - "node_modules/aptos/node_modules/axios": { - "version": "0.27.2", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.27.2.tgz", - "integrity": "sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==", - "dependencies": { - "follow-redirects": "^1.14.9", - "form-data": "^4.0.0" - } - }, - "node_modules/aptos/node_modules/follow-redirects": { - "version": "1.15.2", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", - "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==", - "funding": [ - { - "type": "individual", - "url": "https://github.com/sponsors/RubenVerborgh" - } - ], - "engines": { - "node": ">=4.0" - }, - "peerDependenciesMeta": { - "debug": { - "optional": true - } - } - }, - "node_modules/aptos/node_modules/form-data": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", - "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/aptos/node_modules/tweetnacl": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.3.tgz", - "integrity": "sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==" - }, - "node_modules/arg": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", - "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", - "dev": true - }, - "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/argsarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/argsarray/-/argsarray-0.0.1.tgz", - "integrity": "sha512-u96dg2GcAKtpTrBdDoFIM7PjcBA+6rSP0OR94MOReNRyUECL6MtQt5XXmRr4qrftYaef9+l5hcpO5te7sML1Cg==", - "dev": true, - "optional": true - }, - "node_modules/arr-diff": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/arr-flatten": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", - "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/arr-union": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", - "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/array-back": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-3.1.0.tgz", - "integrity": "sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q==", - "engines": { - "node": ">=6" - } - }, - "node_modules/array-filter": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/array-filter/-/array-filter-1.0.0.tgz", - "integrity": "sha1-uveeYubvTCpMC4MSMtr/7CUfnYM=", - "dev": true - }, - "node_modules/array-flatten": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", - "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=", - "dev": true - }, - "node_modules/array-unique": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/asn1": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", - "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", - "dependencies": { - "safer-buffer": "~2.1.0" - } - }, - "node_modules/asn1.js": { - "version": "4.10.1", - "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.10.1.tgz", - "integrity": "sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==", - "dependencies": { - "bn.js": "^4.0.0", - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0" - } - }, - "node_modules/assert": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/assert/-/assert-1.5.0.tgz", - "integrity": "sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA==", - "dependencies": { - "object-assign": "^4.1.1", - "util": "0.10.3" - } - }, - "node_modules/assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", - "engines": { - "node": ">=0.8" - } - }, - "node_modules/assert/node_modules/inherits": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", - "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=" - }, - "node_modules/assert/node_modules/util": { - "version": "0.10.3", - "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", - "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", - "dependencies": { - "inherits": "2.0.1" - } - }, - "node_modules/assertion-error": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", - "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", - "engines": { - "node": "*" - } - }, - "node_modules/assign-symbols": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", - "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/astral-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz", - "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/async": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", - "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", - "dependencies": { - "lodash": "^4.17.14" - } - }, - "node_modules/async-each": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz", - "integrity": "sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==", - "optional": true - }, - "node_modules/async-eventemitter": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/async-eventemitter/-/async-eventemitter-0.2.4.tgz", - "integrity": "sha512-pd20BwL7Yt1zwDFy+8MX8F1+WCT8aQeKj0kQnTrH9WaeRETlRamVhD0JtRPmrV4GfOJ2F9CvdQkZeZhnh2TuHw==", - "dependencies": { - "async": "^2.4.0" - } - }, - "node_modules/async-iterator-to-pull-stream": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/async-iterator-to-pull-stream/-/async-iterator-to-pull-stream-1.3.0.tgz", - "integrity": "sha512-NjyhAEz/sx32olqgKIk/2xbWEM6o8qef1yetIgb0U/R3oBgndP1kE/0CslowH3jvnA94BO4I6OXpOkTKH7Z1AA==", - "dependencies": { - "get-iterator": "^1.0.2", - "pull-stream-to-async-iterator": "^1.0.1" - } - }, - "node_modules/async-limiter": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz", - "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==" - }, - "node_modules/async-retry": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/async-retry/-/async-retry-1.3.3.tgz", - "integrity": "sha512-wfr/jstw9xNi/0teMHrRW7dsz3Lt5ARhYNZ2ewpadnhaIp5mbALhOAP+EAdsC7t4Z6wqsDVv9+W6gm1Dk9mEyw==", - "dev": true, - "optional": true, - "dependencies": { - "retry": "0.13.1" - } - }, - "node_modules/asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" - }, - "node_modules/at-least-node": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", - "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", - "dev": true, - "optional": true, - "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/atob": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", - "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", - "bin": { - "atob": "bin/atob.js" - }, - "engines": { - "node": ">= 4.5.0" - } - }, - "node_modules/atomically": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/atomically/-/atomically-1.7.0.tgz", - "integrity": "sha512-Xcz9l0z7y9yQ9rdDaxlmaI4uJHf/T8g9hOEzJcsEqX2SjCj4J20uK7+ldkDHMbpJDK76wF7xEIgxc/vSlsfw5w==", - "dev": true, - "optional": true, - "engines": { - "node": ">=10.12.0" - } - }, - "node_modules/available-typed-arrays": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.2.tgz", - "integrity": "sha512-XWX3OX8Onv97LMk/ftVyBibpGwY5a8SmuxZPzeOxqmuEqUCOM9ZE+uIaD1VNJ5QnvU2UQusvmKbuM1FR8QWGfQ==", - "dev": true, - "dependencies": { - "array-filter": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/await-semaphore": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/await-semaphore/-/await-semaphore-0.1.3.tgz", - "integrity": "sha512-d1W2aNSYcz/sxYO4pMGX9vq65qOTu0P800epMud+6cYYX0QcT7zyqcxec3VWzpgvdXo57UWmVbZpLMjX2m1I7Q==" - }, - "node_modules/aws-sign2": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", - "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", - "engines": { - "node": "*" - } - }, - "node_modules/aws4": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.10.0.tgz", - "integrity": "sha512-3YDiu347mtVtjpyV3u5kVqQLP242c06zwDOgpeRnybmXlYYsLbtTrUBUm8i8srONt+FWobl5aibnU1030PeeuA==" - }, - "node_modules/axios": { - "version": "0.18.1", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.18.1.tgz", - "integrity": "sha512-0BfJq4NSfQXd+SkFdrvFbG7addhYSBA2mQwISr46pD6E5iqkWg02RAs8vyTT/j0RTnoYmeXauBuSv1qKwR179g==", - "dev": true, - "dependencies": { - "follow-redirects": "1.5.10", - "is-buffer": "^2.0.2" - } - }, - "node_modules/babel-plugin-polyfill-corejs2": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.0.tgz", - "integrity": "sha512-wMDoBJ6uG4u4PNFh72Ty6t3EgfA91puCuAwKIazbQlci+ENb/UU9A3xG5lutjUIiXCIn1CY5L15r9LimiJyrSA==", - "dependencies": { - "@babel/compat-data": "^7.13.11", - "@babel/helper-define-polyfill-provider": "^0.3.0", - "semver": "^6.1.1" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/babel-plugin-polyfill-corejs2/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/babel-plugin-polyfill-corejs3": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.5.0.tgz", - "integrity": "sha512-Hcrgnmkf+4JTj73GbK3bBhlVPiLL47owUAnoJIf69Hakl3q+KfodbDXiZWGMM7iqCZTxCG3Z2VRfPNYES4rXqQ==", - "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.3.0", - "core-js-compat": "^3.20.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/babel-plugin-polyfill-regenerator": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.3.0.tgz", - "integrity": "sha512-dhAPTDLGoMW5/84wkgwiLRwMnio2i1fUe53EuvtKMv0pn2p3S8OCoV1xAzfJPl0KOX7IB89s2ib85vbYiea3jg==", - "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.3.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/backo2": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/backo2/-/backo2-1.0.2.tgz", - "integrity": "sha1-MasayLEpNjRj41s+u2n038+6eUc=", - "optional": true, - "peer": true - }, - "node_modules/backoff": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/backoff/-/backoff-2.5.0.tgz", - "integrity": "sha1-9hbtqdPktmuMp/ynn2lXIsX44m8=", - "dependencies": { - "precond": "0.2" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/balanced-match": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" - }, - "node_modules/base": { - "version": "0.11.2", - "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", - "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", - "dependencies": { - "cache-base": "^1.0.1", - "class-utils": "^0.3.5", - "component-emitter": "^1.2.1", - "define-property": "^1.0.0", - "isobject": "^3.0.1", - "mixin-deep": "^1.2.0", - "pascalcase": "^0.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/base-x": { - "version": "3.0.8", - "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.8.tgz", - "integrity": "sha512-Rl/1AWP4J/zRrk54hhlxH4drNxPJXYUaKffODVI53/dAsV4t9fBxyxYKAVPU1XBHxYwOWP9h9H0hM2MVw4YfJA==", - "dependencies": { - "safe-buffer": "^5.0.1" - } - }, - "node_modules/base/node_modules/define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dependencies": { - "is-descriptor": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", - "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/bcrypt-pbkdf": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", - "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", - "dependencies": { - "tweetnacl": "^0.14.3" - } - }, - "node_modules/bech32": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/bech32/-/bech32-2.0.0.tgz", - "integrity": "sha512-LcknSilhIGatDAsY1ak2I8VtGaHNhgMSYVxFrGLXv+xLHytaKZKcaUJJUE7qmBr7h33o5YQwP55pMI0xmkpJwg==" - }, - "node_modules/big-integer": { - "version": "1.6.36", - "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.36.tgz", - "integrity": "sha512-t70bfa7HYEA1D9idDbmuv7YbsbVkQ+Hp+8KFSul4aE5e/i1bjCNIRYJZlA8Q8p0r9T8cF/RVvwUgRA//FydEyg==", - "engines": { - "node": ">=0.6" - } - }, - "node_modules/big.js": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", - "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", - "engines": { - "node": "*" - } - }, - "node_modules/bigint-buffer": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/bigint-buffer/-/bigint-buffer-1.1.5.tgz", - "integrity": "sha512-trfYco6AoZ+rKhKnxA0hgX0HAbVP/s808/EuDSe2JDzUnCp/xAsli35Orvk67UrTEcwuxZqYZDmfA2RXJgxVvA==", - "hasInstallScript": true, - "dependencies": { - "bindings": "^1.3.0" - }, - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/bignumber.js": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-8.1.1.tgz", - "integrity": "sha512-QD46ppGintwPGuL1KqmwhR0O+N2cZUg8JG/VzwI2e28sM9TqHjQB10lI4QAaMHVbLzwVLLAwEglpKPViWX+5NQ==", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/binary-extensions": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.1.0.tgz", - "integrity": "sha512-1Yj8h9Q+QDF5FzhMs/c9+6UntbD5MkRfRwac8DoEm9ZfUBZ7tZ55YcGVAzEe4bXsdQHEk+s9S5wsOKVdZrw0tQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/binary-parser": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/binary-parser/-/binary-parser-2.2.1.tgz", - "integrity": "sha512-5ATpz/uPDgq5GgEDxTB4ouXCde7q2lqAQlSdBRQVl/AJnxmQmhIfyxJx+0MGu//D5rHQifkfGbWWlaysG0o9NA==", - "engines": { - "node": ">=12" - } - }, - "node_modules/bindings": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", - "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", - "dependencies": { - "file-uri-to-path": "1.0.0" - } - }, - "node_modules/bip32": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/bip32/-/bip32-2.0.6.tgz", - "integrity": "sha512-HpV5OMLLGTjSVblmrtYRfFFKuQB+GArM0+XP8HGWfJ5vxYBqo+DesvJwOdC2WJ3bCkZShGf0QIfoIpeomVzVdA==", - "dependencies": { - "@types/node": "10.12.18", - "bs58check": "^2.1.1", - "create-hash": "^1.2.0", - "create-hmac": "^1.1.7", - "tiny-secp256k1": "^1.1.3", - "typeforce": "^1.11.5", - "wif": "^2.0.6" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/bip32/node_modules/@types/node": { - "version": "10.12.18", - "resolved": "https://registry.npmjs.org/@types/node/-/node-10.12.18.tgz", - "integrity": "sha512-fh+pAqt4xRzPfqA6eh3Z2y6fyZavRIumvjhaCL753+TVkGKGhpPeyrJG2JftD0T9q4GF00KjefsQ+PQNDdWQaQ==" - }, - "node_modules/bip39": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/bip39/-/bip39-3.0.4.tgz", - "integrity": "sha512-YZKQlb752TrUWqHWj7XAwCSjYEgGAk+/Aas3V7NyjQeZYsztO8JnQUaCWhcnL4T+jL8nvB8typ2jRPzTlgugNw==", - "dependencies": { - "@types/node": "11.11.6", - "create-hash": "^1.1.0", - "pbkdf2": "^3.0.9", - "randombytes": "^2.0.1" - } - }, - "node_modules/bip39/node_modules/@types/node": { - "version": "11.11.6", - "resolved": "https://registry.npmjs.org/@types/node/-/node-11.11.6.tgz", - "integrity": "sha512-Exw4yUWMBXM3X+8oqzJNRqZSwUAaS4+7NdvHqQuFi/d+synz++xmX3QIf+BFqneW8N31R8Ky+sikfZUXq07ggQ==" - }, - "node_modules/bip66": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/bip66/-/bip66-1.1.5.tgz", - "integrity": "sha1-AfqHSHhcpwlV1QESF9GzE5lpyiI=", - "dependencies": { - "safe-buffer": "^5.0.1" - } - }, - "node_modules/bl": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/bl/-/bl-1.2.2.tgz", - "integrity": "sha512-e8tQYnZodmebYDWGH7KMRvtzKXaJHx3BbilrgZCfvyLUYdKpK1t5PSPmpkny/SgiTSCnjfLW7v5rlONXVFkQEA==", - "dev": true, - "dependencies": { - "readable-stream": "^2.3.5", - "safe-buffer": "^5.1.1" - } - }, - "node_modules/blakejs": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/blakejs/-/blakejs-1.1.0.tgz", - "integrity": "sha1-ad+S75U6qIylGjLfarHFShVfx6U=" - }, - "node_modules/bluebird": { - "version": "3.7.2", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", - "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==" - }, - "node_modules/bn.js": { - "version": "4.11.9", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", - "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==" - }, - "node_modules/body-parser": { - "version": "1.19.0", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz", - "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==", - "dev": true, - "dependencies": { - "bytes": "3.1.0", - "content-type": "~1.0.4", - "debug": "2.6.9", - "depd": "~1.1.2", - "http-errors": "1.7.2", - "iconv-lite": "0.4.24", - "on-finished": "~2.3.0", - "qs": "6.7.0", - "raw-body": "2.4.0", - "type-is": "~1.6.17" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/body-parser/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/body-parser/node_modules/qs": { - "version": "6.7.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", - "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==", - "dev": true, - "engines": { - "node": ">=0.6" - } - }, - "node_modules/boolbase": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", - "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=", - "dev": true - }, - "node_modules/borsh": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/borsh/-/borsh-0.7.0.tgz", - "integrity": "sha512-CLCsZGIBCFnPtkNnieW/a8wmreDmfUtjU2m9yHrzPXIlNbqVs0AQrSatSG6vdNYUqdc83tkQi2eHfF98ubzQLA==", - "dependencies": { - "bn.js": "^5.2.0", - "bs58": "^4.0.0", - "text-encoding-utf-8": "^1.0.2" - } - }, - "node_modules/borsh/node_modules/bn.js": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", - "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==" - }, - "node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/braces": { - "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" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/brorand": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", - "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=" - }, - "node_modules/browser-headers": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/browser-headers/-/browser-headers-0.4.1.tgz", - "integrity": "sha512-CA9hsySZVo9371qEHjHZtYxV2cFtVj5Wj/ZHi8ooEsrtm4vOnl9Y9HmyYWk9q+05d7K3rdoAE0j3MVEFVvtQtg==" - }, - "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/browserify-aes": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", - "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", - "dependencies": { - "buffer-xor": "^1.0.3", - "cipher-base": "^1.0.0", - "create-hash": "^1.1.0", - "evp_bytestokey": "^1.0.3", - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "node_modules/browserify-cipher": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", - "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", - "dependencies": { - "browserify-aes": "^1.0.4", - "browserify-des": "^1.0.0", - "evp_bytestokey": "^1.0.0" - } - }, - "node_modules/browserify-des": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", - "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", - "dependencies": { - "cipher-base": "^1.0.1", - "des.js": "^1.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "node_modules/browserify-rsa": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz", - "integrity": "sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ=", - "dependencies": { - "bn.js": "^4.1.0", - "randombytes": "^2.0.1" - } - }, - "node_modules/browserify-sign": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.0.tgz", - "integrity": "sha512-hEZC1KEeYuoHRqhGhTy6gWrpJA3ZDjFWv0DE61643ZnOXAKJb3u7yWcrU0mMc9SwAqK1n7myPGndkp0dFG7NFA==", - "dependencies": { - "bn.js": "^5.1.1", - "browserify-rsa": "^4.0.1", - "create-hash": "^1.2.0", - "create-hmac": "^1.1.7", - "elliptic": "^6.5.2", - "inherits": "^2.0.4", - "parse-asn1": "^5.1.5", - "readable-stream": "^3.6.0", - "safe-buffer": "^5.2.0" - } - }, - "node_modules/browserify-sign/node_modules/bn.js": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.1.2.tgz", - "integrity": "sha512-40rZaf3bUNKTVYu9sIeeEGOg7g14Yvnj9kH7b50EiwX0Q7A6umbvfI5tvHaOERH0XigqKkfLkFQxzb4e6CIXnA==" - }, - "node_modules/browserify-sign/node_modules/readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/browserify-zlib": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", - "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", - "dependencies": { - "pako": "~1.0.5" - } - }, - "node_modules/browserslist": { - "version": "4.19.1", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.19.1.tgz", - "integrity": "sha512-u2tbbG5PdKRTUoctO3NBD8FQ5HdPh1ZXPHzp1rwaa5jTc+RV9/+RlWiAIKmjRPQF+xbGM9Kklj5bZQFa2s/38A==", - "dependencies": { - "caniuse-lite": "^1.0.30001286", - "electron-to-chromium": "^1.4.17", - "escalade": "^3.1.1", - "node-releases": "^2.0.1", - "picocolors": "^1.0.0" - }, - "bin": { - "browserslist": "cli.js" - }, - "engines": { - "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - } - }, - "node_modules/bs58": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz", - "integrity": "sha1-vhYedsNU9veIrkBx9j806MTwpCo=", - "dependencies": { - "base-x": "^3.0.2" - } - }, - "node_modules/bs58check": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/bs58check/-/bs58check-2.1.2.tgz", - "integrity": "sha512-0TS1jicxdU09dwJMNZtVAfzPi6Q6QeN0pM1Fkzrjn+XYHvzMKPU3pHVpva+769iNVSfIYWf7LJ6WR+BuuMf8cA==", - "dependencies": { - "bs58": "^4.0.0", - "create-hash": "^1.1.0", - "safe-buffer": "^5.1.2" - } - }, - "node_modules/btoa": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/btoa/-/btoa-1.2.1.tgz", - "integrity": "sha512-SB4/MIGlsiVkMcHmT+pSmIPoNDoHg+7cMzmt3Uxt628MTz2487DKSqK/fuhFBrkuqrYv5UCEnACpF4dTFNKc/g==", - "bin": { - "btoa": "bin/btoa.js" - }, - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/buffer": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" - } - }, - "node_modules/buffer-alloc": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/buffer-alloc/-/buffer-alloc-1.2.0.tgz", - "integrity": "sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow==", - "dev": true, - "dependencies": { - "buffer-alloc-unsafe": "^1.1.0", - "buffer-fill": "^1.0.0" - } - }, - "node_modules/buffer-alloc-unsafe": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz", - "integrity": "sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg==", - "dev": true - }, - "node_modules/buffer-crc32": { - "version": "0.2.13", - "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", - "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/buffer-fill": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/buffer-fill/-/buffer-fill-1.0.0.tgz", - "integrity": "sha1-+PeLdniYiO858gXNY39o5wISKyw=", - "dev": true - }, - "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==" - }, - "node_modules/buffer-layout": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/buffer-layout/-/buffer-layout-1.2.2.tgz", - "integrity": "sha512-kWSuLN694+KTk8SrYvCqwP2WcgQjoRCiF5b4QDvkkz8EmgD+aWAIceGFKMIAdmF/pH+vpgNV3d3kAKorcdAmWA==", - "engines": { - "node": ">=4.5" - } - }, - "node_modules/buffer-to-arraybuffer": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/buffer-to-arraybuffer/-/buffer-to-arraybuffer-0.0.5.tgz", - "integrity": "sha1-YGSkD6dutDxyOrqe+PbhIW0QURo=" - }, - "node_modules/buffer-xor": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", - "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=" - }, - "node_modules/bufferutil": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/bufferutil/-/bufferutil-4.0.7.tgz", - "integrity": "sha512-kukuqc39WOHtdxtw4UScxF/WVnMFVSQVKhtx3AjZJzhd0RGZZldcrfSEbVsWWe6KNH253574cq5F+wpv0G9pJw==", - "hasInstallScript": true, - "dependencies": { - "node-gyp-build": "^4.3.0" - }, - "engines": { - "node": ">=6.14.2" - } - }, - "node_modules/builtin-status-codes": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", - "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=" - }, - "node_modules/bytes": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", - "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/cacache": { - "version": "12.0.4", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-12.0.4.tgz", - "integrity": "sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ==", - "dependencies": { - "bluebird": "^3.5.5", - "chownr": "^1.1.1", - "figgy-pudding": "^3.5.1", - "glob": "^7.1.4", - "graceful-fs": "^4.1.15", - "infer-owner": "^1.0.3", - "lru-cache": "^5.1.1", - "mississippi": "^3.0.0", - "mkdirp": "^0.5.1", - "move-concurrently": "^1.0.1", - "promise-inflight": "^1.0.1", - "rimraf": "^2.6.3", - "ssri": "^6.0.1", - "unique-filename": "^1.1.1", - "y18n": "^4.0.0" - } - }, - "node_modules/cacache/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==", - "dependencies": { - "yallist": "^3.0.2" - } - }, - "node_modules/cacache/node_modules/mkdirp": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", - "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", - "dependencies": { - "minimist": "^1.2.6" - }, - "bin": { - "mkdirp": "bin/cmd.js" - } - }, - "node_modules/cache-base": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", - "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", - "dependencies": { - "collection-visit": "^1.0.0", - "component-emitter": "^1.2.1", - "get-value": "^2.0.6", - "has-value": "^1.0.0", - "isobject": "^3.0.1", - "set-value": "^2.0.0", - "to-object-path": "^0.3.0", - "union-value": "^1.0.0", - "unset-value": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/cacheable-lookup": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-6.1.0.tgz", - "integrity": "sha512-KJ/Dmo1lDDhmW2XDPMo+9oiy/CeqosPguPCrgcVzKyZrL6pM1gU2GmPY/xo6OQPTUaA/c0kwHuywB4E6nmT9ww==", - "dev": true, - "engines": { - "node": ">=10.6.0" - } - }, - "node_modules/cacheable-request": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz", - "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==", - "dev": true, - "dependencies": { - "clone-response": "^1.0.2", - "get-stream": "^5.1.0", - "http-cache-semantics": "^4.0.0", - "keyv": "^3.0.0", - "lowercase-keys": "^2.0.0", - "normalize-url": "^4.1.0", - "responselike": "^1.0.2" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/cacheable-request/node_modules/get-stream": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.1.0.tgz", - "integrity": "sha512-EXr1FOzrzTfGeL0gQdeFEvOMm2mzMOglyiOXSTpPC+iAjAKftbr3jpCMWynogwYnM+eSj9sHGc6wjIcDvYiygw==", - "dev": true, - "dependencies": { - "pump": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/cacheable-request/node_modules/lowercase-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", - "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/call-bind": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", - "dev": true, - "dependencies": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "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, - "engines": { - "node": ">=6" - } - }, - "node_modules/camel-case": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-3.0.0.tgz", - "integrity": "sha512-+MbKztAYHXPr1jNTSKQF52VpcFjwY5RkR7fxksV8Doo4KAYc5Fl4UJRgthBbTmEx8C54DqahhbLJkDwjI3PI/w==", - "dev": true, - "dependencies": { - "no-case": "^2.2.0", - "upper-case": "^1.1.1" - } - }, - "node_modules/caniuse-lite": { - "version": "1.0.30001299", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001299.tgz", - "integrity": "sha512-iujN4+x7QzqA2NCSrS5VUy+4gLmRd4xv6vbBBsmfVqTx8bLAD8097euLqQgKxSVLvxjSDcvF1T/i9ocgnUFexw==", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - } - }, - "node_modules/capability": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/capability/-/capability-0.2.5.tgz", - "integrity": "sha512-rsJZYVCgXd08sPqwmaIqjAd5SUTfonV0z/gDJ8D6cN8wQphky1kkAYEqQ+hmDxTw7UihvBfjUVUSY+DBEe44jg==" - }, - "node_modules/caseless": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=" - }, - "node_modules/catering": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/catering/-/catering-2.1.1.tgz", - "integrity": "sha512-K7Qy8O9p76sL3/3m7/zLKbRkyOlSZAgzEaLhyj2mXS8PsCud2Eo4hAb8aLtZqHh0QGqLcb9dlJSu6lHRVENm1w==", - "dev": true, - "optional": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/cbor": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/cbor/-/cbor-4.3.0.tgz", - "integrity": "sha512-CvzaxQlaJVa88sdtTWvLJ++MbdtPHtZOBBNjm7h3YKUHILMs9nQyD4AC6hvFZy7GBVB3I6bRibJcxeHydyT2IQ==", - "dev": true, - "dependencies": { - "bignumber.js": "^9.0.0", - "commander": "^3.0.0", - "json-text-sequence": "^0.1", - "nofilter": "^1.0.3" - }, - "bin": { - "cbor2comment": "bin/cbor2comment", - "cbor2diag": "bin/cbor2diag", - "cbor2json": "bin/cbor2json", - "json2cbor": "bin/json2cbor" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/cbor/node_modules/bignumber.js": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.0.0.tgz", - "integrity": "sha512-t/OYhhJ2SD+YGBQcjY8GzzDHEk9f3nerxjtfa6tlMXfe7frs/WozhvCNoGvpM0P3bNf3Gq5ZRMlGr5f3r4/N8A==", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/cbor/node_modules/commander": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/commander/-/commander-3.0.2.tgz", - "integrity": "sha512-Gar0ASD4BDyKC4hl4DwHqDrmvjoxWKZigVnAbn5H1owvm4CxCPdb0HQDehwNYMJpla5+M2tPmPARzhtYuwpHow==", - "dev": true - }, - "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, - "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" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/chai/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" - }, - "engines": { - "node": ">=6" - } - }, - "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==", - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/change-case": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/change-case/-/change-case-3.0.2.tgz", - "integrity": "sha512-Mww+SLF6MZ0U6kdg11algyKd5BARbyM4TbFBepwowYSR5ClfQGCGtxNXgykpN0uF/bstWeaGDT4JWaDh8zWAHA==", - "dev": true, - "dependencies": { - "camel-case": "^3.0.0", - "constant-case": "^2.0.0", - "dot-case": "^2.1.0", - "header-case": "^1.0.0", - "is-lower-case": "^1.1.0", - "is-upper-case": "^1.1.0", - "lower-case": "^1.1.1", - "lower-case-first": "^1.0.0", - "no-case": "^2.3.2", - "param-case": "^2.1.0", - "pascal-case": "^2.0.0", - "path-case": "^2.1.0", - "sentence-case": "^2.1.0", - "snake-case": "^2.1.0", - "swap-case": "^1.1.0", - "title-case": "^2.1.0", - "upper-case": "^1.1.1", - "upper-case-first": "^1.1.0" - } - }, - "node_modules/chardet": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", - "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", - "dev": true - }, - "node_modules/check-error": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz", - "integrity": "sha1-V00xLt2Iu13YkS6Sht1sCu1KrII=", - "engines": { - "node": "*" - } - }, - "node_modules/checkpoint-store": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/checkpoint-store/-/checkpoint-store-1.1.0.tgz", - "integrity": "sha1-BOTLUWuRQziTWB5tRgGnjpVS6gY=", - "dependencies": { - "functional-red-black-tree": "^1.0.1" - } - }, - "node_modules/cheerio": { - "version": "1.0.0-rc.3", - "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.3.tgz", - "integrity": "sha512-0td5ijfUPuubwLUu0OBoe98gZj8C/AA+RW3v67GPlGOrvxWjZmBXiBCRU+I8VEiNyJzjth40POfHiz2RB3gImA==", - "dev": true, - "dependencies": { - "css-select": "~1.2.0", - "dom-serializer": "~0.1.1", - "entities": "~1.1.1", - "htmlparser2": "^3.9.1", - "lodash": "^4.15.0", - "parse5": "^3.0.1" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/chokidar": { - "version": "3.5.1", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.1.tgz", - "integrity": "sha512-9+s+Od+W0VJJzawDma/gvBNQqkTiqYTWLuZoyAsivsI4AaWTCzHG06/TMjsf1cYe9Cb97UCEhjz7HvnPk2p/tw==", - "dependencies": { - "anymatch": "~3.1.1", - "braces": "~3.0.2", - "glob-parent": "~5.1.0", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.5.0" - }, - "engines": { - "node": ">= 8.10.0" - }, - "optionalDependencies": { - "fsevents": "~2.3.1" - } - }, - "node_modules/chownr": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", - "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==" - }, - "node_modules/chrome-trace-event": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", - "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==", - "engines": { - "node": ">=6.0" - } - }, - "node_modules/cids": { - "version": "0.7.5", - "resolved": "https://registry.npmjs.org/cids/-/cids-0.7.5.tgz", - "integrity": "sha512-zT7mPeghoWAu+ppn8+BS1tQ5qGmbMfB4AregnQjA/qHY3GC1m1ptI9GkWNlgeu38r7CuRdXB47uY2XgAYt6QVA==", - "dependencies": { - "buffer": "^5.5.0", - "class-is": "^1.1.0", - "multibase": "~0.6.0", - "multicodec": "^1.0.0", - "multihashes": "~0.4.15" - }, - "engines": { - "node": ">=4.0.0", - "npm": ">=3.0.0" - } - }, - "node_modules/cids/node_modules/multicodec": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/multicodec/-/multicodec-1.0.4.tgz", - "integrity": "sha512-NDd7FeS3QamVtbgfvu5h7fd1IlbaC4EQ0/pgU4zqE2vdHCmBGsUa0TiM8/TdSeG6BMPC92OOCf8F1ocE/Wkrrg==", - "dependencies": { - "buffer": "^5.6.0", - "varint": "^5.0.0" - } - }, - "node_modules/cipher-base": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", - "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", - "dependencies": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "node_modules/circular": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/circular/-/circular-1.0.5.tgz", - "integrity": "sha1-fad6+Yu96c5LWzWM1Va13e0tMUk=", - "dev": true - }, - "node_modules/class-is": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/class-is/-/class-is-1.1.0.tgz", - "integrity": "sha512-rhjH9AG1fvabIDoGRVH587413LPjTZgmDF9fOFCbFJQV4yuocX1mHxxvXI4g3cGwbVY9wAYIoKlg1N79frJKQw==" - }, - "node_modules/class-utils": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", - "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", - "dependencies": { - "arr-union": "^3.1.0", - "define-property": "^0.2.5", - "isobject": "^3.0.0", - "static-extend": "^0.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/class-utils/node_modules/define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dependencies": { - "is-descriptor": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/class-utils/node_modules/is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/class-utils/node_modules/is-accessor-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/class-utils/node_modules/is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" - }, - "node_modules/class-utils/node_modules/is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/class-utils/node_modules/is-data-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/class-utils/node_modules/is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dependencies": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/class-utils/node_modules/kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/cli-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", - "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", - "dev": true, - "dependencies": { - "restore-cursor": "^3.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/cli-logger": { - "version": "0.5.40", - "resolved": "https://registry.npmjs.org/cli-logger/-/cli-logger-0.5.40.tgz", - "integrity": "sha1-CX8OEbByx8aYomxH9YiinCC0iws=", - "dev": true, - "dependencies": { - "circular": "^1.0.5", - "cli-util": "~1.1.27" - } - }, - "node_modules/cli-regexp": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/cli-regexp/-/cli-regexp-0.1.2.tgz", - "integrity": "sha1-a82TsJ+y7RAl0woRVdWZeVSlNRI=", - "dev": true - }, - "node_modules/cli-util": { - "version": "1.1.27", - "resolved": "https://registry.npmjs.org/cli-util/-/cli-util-1.1.27.tgz", - "integrity": "sha1-QtaeNqBAoyH8nPhRwVE8rcUJMFQ=", - "dev": true, - "dependencies": { - "cli-regexp": "~0.1.0" - } - }, - "node_modules/cli-width": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.1.tgz", - "integrity": "sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw==", - "dev": true - }, - "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/cliui/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": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/clone": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", - "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=", - "engines": { - "node": ">=0.8" - } - }, - "node_modules/clone-buffer": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/clone-buffer/-/clone-buffer-1.0.0.tgz", - "integrity": "sha512-KLLTJWrvwIP+OPfMn0x2PheDEP20RPUcGXj/ERegTgdmPEZylALQldygiqrPPu8P45uNuPs7ckmReLY6v/iA5g==", - "dev": true, - "optional": true, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/clone-response": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", - "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=", - "dev": true, - "dependencies": { - "mimic-response": "^1.0.0" - } - }, - "node_modules/co": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", - "engines": { - "iojs": ">= 1.0.0", - "node": ">= 0.12.0" - } - }, - "node_modules/collection-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", - "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", - "dependencies": { - "map-visit": "^1.0.0", - "object-visit": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "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/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" - }, - "node_modules/colors": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", - "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", - "dev": true, - "engines": { - "node": ">=0.1.90" - } - }, - "node_modules/combined-stream": { - "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" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/command-exists": { - "version": "1.2.9", - "resolved": "https://registry.npmjs.org/command-exists/-/command-exists-1.2.9.tgz", - "integrity": "sha512-LTQ/SGc+s0Xc0Fu5WaKnR0YiygZkm9eKFvyS+fRsU7/ZWFF8ykFM6Pc9aCVf1+xasOOZpO3BAVgVrKvsqKHV7w==", - "dev": true - }, - "node_modules/command-line-args": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/command-line-args/-/command-line-args-5.2.1.tgz", - "integrity": "sha512-H4UfQhZyakIjC74I9d34fGYDwk3XpSr17QhEd0Q3I9Xq1CETHo4Hcuo87WyWHpAF1aSLjLRf5lD9ZGX2qStUvg==", - "dependencies": { - "array-back": "^3.1.0", - "find-replace": "^3.0.0", - "lodash.camelcase": "^4.3.0", - "typical": "^4.0.0" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/command-line-usage": { - "version": "6.1.3", - "resolved": "https://registry.npmjs.org/command-line-usage/-/command-line-usage-6.1.3.tgz", - "integrity": "sha512-sH5ZSPr+7UStsloltmDh7Ce5fb8XPlHyoPzTpyyMuYCtervL65+ubVZ6Q61cFtFl62UyJlc8/JwERRbAFPUqgw==", - "dependencies": { - "array-back": "^4.0.2", - "chalk": "^2.4.2", - "table-layout": "^1.0.2", - "typical": "^5.2.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/command-line-usage/node_modules/array-back": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-4.0.2.tgz", - "integrity": "sha512-NbdMezxqf94cnNfWLL7V/im0Ub+Anbb0IoZhvzie8+4HJ4nMQuzHuy49FkGYCJK2yAloZ3meiB6AVMClbrI1vg==", - "engines": { - "node": ">=8" - } - }, - "node_modules/command-line-usage/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/commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" - }, - "node_modules/commondir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=" - }, - "node_modules/component-emitter": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", - "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==" - }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" - }, - "node_modules/concat-stream": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.5.1.tgz", - "integrity": "sha1-87gKz54fSOOHXAaItBtsMWAu6hw=", - "engines": [ - "node >= 0.8" - ], - "dependencies": { - "inherits": "~2.0.1", - "readable-stream": "~2.0.0", - "typedarray": "~0.0.5" - } - }, - "node_modules/concat-stream/node_modules/process-nextick-args": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", - "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=" - }, - "node_modules/concat-stream/node_modules/readable-stream": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.6.tgz", - "integrity": "sha1-j5A0HmilPMySh4jaz80Rs265t44=", - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "~1.0.0", - "process-nextick-args": "~1.0.6", - "string_decoder": "~0.10.x", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/concat-stream/node_modules/string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" - }, - "node_modules/conf": { - "version": "10.2.0", - "resolved": "https://registry.npmjs.org/conf/-/conf-10.2.0.tgz", - "integrity": "sha512-8fLl9F04EJqjSqH+QjITQfJF8BrOVaYr1jewVgSRAEWePfxT0sku4w2hrGQ60BC/TNLGQ2pgxNlTbWQmMPFvXg==", - "dev": true, - "optional": true, - "dependencies": { - "ajv": "^8.6.3", - "ajv-formats": "^2.1.1", - "atomically": "^1.7.0", - "debounce-fn": "^4.0.0", - "dot-prop": "^6.0.1", - "env-paths": "^2.2.1", - "json-schema-typed": "^7.0.3", - "onetime": "^5.1.2", - "pkg-up": "^3.1.0", - "semver": "^7.3.5" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/conf/node_modules/ajv": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", - "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", - "dev": true, - "optional": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/conf/node_modules/dot-prop": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-6.0.1.tgz", - "integrity": "sha512-tE7ztYzXHIeyvc7N+hR3oi7FIbf/NIjVP9hmAt3yMXzrQ072/fpjGLx2GxNxGxUl5V73MEqYzioOMoVhGMJ5cA==", - "dev": true, - "optional": true, - "dependencies": { - "is-obj": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/conf/node_modules/is-obj": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", - "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", - "dev": true, - "optional": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/conf/node_modules/json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true, - "optional": true - }, - "node_modules/conf/node_modules/semver": { - "version": "7.5.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.0.tgz", - "integrity": "sha512-+XC0AD/R7Q2mPSRuy2Id0+CGTZ98+8f+KvwirxOKIEyid+XSx6HbC63p+O4IndTHuX5Z+JxQ0TghCkO5Cg/2HA==", - "dev": true, - "optional": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/configstore": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/configstore/-/configstore-4.0.0.tgz", - "integrity": "sha512-CmquAXFBocrzaSM8mtGPMM/HiWmyIpr4CcJl/rgY2uCObZ/S7cKU0silxslqJejl+t/T9HS8E0PUNQD81JGUEQ==", - "dev": true, - "dependencies": { - "dot-prop": "^4.1.0", - "graceful-fs": "^4.1.2", - "make-dir": "^1.0.0", - "unique-string": "^1.0.0", - "write-file-atomic": "^2.0.0", - "xdg-basedir": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/console-browserify": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz", - "integrity": "sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==" - }, - "node_modules/constant-case": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/constant-case/-/constant-case-2.0.0.tgz", - "integrity": "sha512-eS0N9WwmjTqrOmR3o83F5vW8Z+9R1HnVz3xmzT2PMFug9ly+Au/fxRWlEBSb6LcZwspSsEn9Xs1uw9YgzAg1EQ==", - "dev": true, - "dependencies": { - "snake-case": "^2.1.0", - "upper-case": "^1.1.1" - } - }, - "node_modules/constants-browserify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", - "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=" - }, - "node_modules/content-disposition": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz", - "integrity": "sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==", - "dev": true, - "dependencies": { - "safe-buffer": "5.1.2" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/content-disposition/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, - "node_modules/content-hash": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/content-hash/-/content-hash-2.5.2.tgz", - "integrity": "sha512-FvIQKy0S1JaWV10sMsA7TRx8bpU+pqPkhbsfvOJAdjRXvYxEckAwQWGwtRjiaJfh+E0DvcWUGqcdjwMGFjsSdw==", - "dev": true, - "dependencies": { - "cids": "^0.7.1", - "multicodec": "^0.5.5", - "multihashes": "^0.4.15" - } - }, - "node_modules/content-type": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", - "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/convert-source-map": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz", - "integrity": "sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==", - "peer": true, - "dependencies": { - "safe-buffer": "~5.1.1" - } - }, - "node_modules/convert-source-map/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "peer": true - }, - "node_modules/cookie": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz", - "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/cookie-signature": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=", - "dev": true - }, - "node_modules/cookiejar": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/cookiejar/-/cookiejar-2.1.2.tgz", - "integrity": "sha512-Mw+adcfzPxcPeI+0WlvRrr/3lGVO0bD75SxX6811cxSh1Wbxx7xZBGK1eVtDf6si8rg2lhnUjsVLMFMfbRIuwA==" - }, - "node_modules/copy-concurrently": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz", - "integrity": "sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==", - "dependencies": { - "aproba": "^1.1.1", - "fs-write-stream-atomic": "^1.0.8", - "iferr": "^0.1.5", - "mkdirp": "^0.5.1", - "rimraf": "^2.5.4", - "run-queue": "^1.0.0" - } - }, - "node_modules/copy-concurrently/node_modules/mkdirp": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", - "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", - "dependencies": { - "minimist": "^1.2.6" - }, - "bin": { - "mkdirp": "bin/cmd.js" - } - }, - "node_modules/copy-descriptor": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", - "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/copyfiles": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/copyfiles/-/copyfiles-2.4.1.tgz", - "integrity": "sha512-fereAvAvxDrQDOXybk3Qu3dPbOoKoysFMWtkY3mv5BsL8//OSZVL5DCLYqgRfY5cWirgRzlC+WSrxp6Bo3eNZg==", - "dependencies": { - "glob": "^7.0.5", - "minimatch": "^3.0.3", - "mkdirp": "^1.0.4", - "noms": "0.0.0", - "through2": "^2.0.1", - "untildify": "^4.0.0", - "yargs": "^16.1.0" - }, - "bin": { - "copyfiles": "copyfiles", - "copyup": "copyfiles" - } - }, - "node_modules/copyfiles/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/copyfiles/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/copyfiles/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/copyfiles/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/copyfiles/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "node_modules/copyfiles/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/copyfiles/node_modules/is-fullwidth-code-point": { - "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==", - "engines": { - "node": ">=8" - } - }, - "node_modules/copyfiles/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/copyfiles/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/copyfiles/node_modules/through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", - "dependencies": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" - } - }, - "node_modules/copyfiles/node_modules/wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/copyfiles/node_modules/y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "engines": { - "node": ">=10" - } - }, - "node_modules/copyfiles/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/copyfiles/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/core-js": { - "version": "3.6.5", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.6.5.tgz", - "integrity": "sha512-vZVEEwZoIsI+vPEuoF9Iqf5H7/M3eeQqWlQnYa8FSKKePuYTf5MWnxb5SDAzCa60b3JBRS5g9b+Dq7b1y/RCrA==", - "dev": true, - "hasInstallScript": true - }, - "node_modules/core-js-compat": { - "version": "3.20.2", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.20.2.tgz", - "integrity": "sha512-qZEzVQ+5Qh6cROaTPFLNS4lkvQ6mBzE3R6A6EEpssj7Zr2egMHgsy4XapdifqJDGC9CBiNv7s+ejI96rLNQFdg==", - "dependencies": { - "browserslist": "^4.19.1", - "semver": "7.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/core-js" - } - }, - "node_modules/core-js-compat/node_modules/semver": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", - "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" - }, - "node_modules/cors": { - "version": "2.8.5", - "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", - "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", - "dev": true, - "dependencies": { - "object-assign": "^4", - "vary": "^1" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/cosmjs-types": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/cosmjs-types/-/cosmjs-types-0.7.1.tgz", - "integrity": "sha512-qP89SGwi6YpvMTrM9CPzTfZ0JPNlXzgimqMLsa/ZjzW+L6MC8TCr6XmoWtFOT6GSfefvJLwFWq7YCtL456Bdzg==", - "dependencies": { - "long": "^4.0.0", - "protobufjs": "~6.11.2" - } - }, - "node_modules/crc-32": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/crc-32/-/crc-32-1.2.0.tgz", - "integrity": "sha512-1uBwHxF+Y/4yF5G48fwnKq6QsIXheor3ZLPT80yGBV1oEUwpPojlEhQbWKVw1VwcTQyMGHK1/XMmTjmlsmTTGA==", - "dependencies": { - "exit-on-epipe": "~1.0.1", - "printj": "~1.1.0" - }, - "bin": { - "crc32": "bin/crc32.njs" - }, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/create-ecdh": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.3.tgz", - "integrity": "sha512-GbEHQPMOswGpKXM9kCWVrremUcBmjteUaQ01T9rkKCPDXfUHX0IoP9LpHYo2NPFampa4e+/pFDc3jQdxrxQLaw==", - "dependencies": { - "bn.js": "^4.1.0", - "elliptic": "^6.0.0" - } - }, - "node_modules/create-hash": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", - "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", - "dependencies": { - "cipher-base": "^1.0.1", - "inherits": "^2.0.1", - "md5.js": "^1.3.4", - "ripemd160": "^2.0.1", - "sha.js": "^2.4.0" - } - }, - "node_modules/create-hmac": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", - "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", - "dependencies": { - "cipher-base": "^1.0.3", - "create-hash": "^1.1.0", - "inherits": "^2.0.1", - "ripemd160": "^2.0.0", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" - } - }, - "node_modules/create-require": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", - "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", - "dev": true - }, - "node_modules/cross-fetch": { - "version": "2.2.5", - "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-2.2.5.tgz", - "integrity": "sha512-xqYAhQb4NhCJSRym03dwxpP1bYXpK3y7UN83Bo2WFi3x1Zmzn0SL/6xGoPr+gpt4WmNrgCCX3HPysvOwFOW36w==", - "dependencies": { - "node-fetch": "2.6.1", - "whatwg-fetch": "2.0.4" - } - }, - "node_modules/cross-fetch/node_modules/node-fetch": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz", - "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==", - "engines": { - "node": "4.x || >=6.0.0" - } - }, - "node_modules/cross-fetch/node_modules/whatwg-fetch": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-2.0.4.tgz", - "integrity": "sha512-dcQ1GWpOD/eEQ97k66aiEVpNnapVj90/+R+SXTPYGHpYBBypfKJEQjLrvMZ7YXbKm21gXd4NcuxUTjiv1YtLng==" - }, - "node_modules/cross-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", - "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", - "dependencies": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - }, - "engines": { - "node": ">=4.8" - } - }, - "node_modules/cross-spawn/node_modules/which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "which": "bin/which" - } - }, - "node_modules/crypto-addr-codec": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/crypto-addr-codec/-/crypto-addr-codec-0.1.7.tgz", - "integrity": "sha512-X4hzfBzNhy4mAc3UpiXEC/L0jo5E8wAa9unsnA8nNXYzXjCcGk83hfC5avJWCSGT8V91xMnAS9AKMHmjw5+XCg==", - "dependencies": { - "base-x": "^3.0.8", - "big-integer": "1.6.36", - "blakejs": "^1.1.0", - "bs58": "^4.0.1", - "ripemd160-min": "0.0.6", - "safe-buffer": "^5.2.0", - "sha3": "^2.1.1" - } - }, - "node_modules/crypto-browserify": { - "version": "3.12.0", - "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", - "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", - "dependencies": { - "browserify-cipher": "^1.0.0", - "browserify-sign": "^4.0.0", - "create-ecdh": "^4.0.0", - "create-hash": "^1.1.0", - "create-hmac": "^1.1.0", - "diffie-hellman": "^5.0.0", - "inherits": "^2.0.1", - "pbkdf2": "^3.0.3", - "public-encrypt": "^4.0.0", - "randombytes": "^2.0.0", - "randomfill": "^1.0.3" - }, - "engines": { - "node": "*" - } - }, - "node_modules/crypto-hash": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/crypto-hash/-/crypto-hash-1.3.0.tgz", - "integrity": "sha512-lyAZ0EMyjDkVvz8WOeVnuCPvKVBXcMv1l5SVqO1yC7PzTwrD/pPje/BIRbWhMoPe436U+Y2nD7f5bFx0kt+Sbg==", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/crypto-random-string": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-1.0.0.tgz", - "integrity": "sha1-ojD2T1aDEOFJgAmUB5DsmVRbyn4=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/css-select": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-1.2.0.tgz", - "integrity": "sha1-KzoRBTnFNV8c2NMUYj6HCxIeyFg=", - "dev": true, - "dependencies": { - "boolbase": "~1.0.0", - "css-what": "2.1", - "domutils": "1.5.1", - "nth-check": "~1.0.1" - } - }, - "node_modules/css-what": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/css-what/-/css-what-2.1.3.tgz", - "integrity": "sha512-a+EPoD+uZiNfh+5fxw2nO9QwFa6nJe2Or35fGY6Ipw1R3R4AGz1d1TEZrCegvw2YTmZ0jXirGYlzxxpYSHwpEg==", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/cssfilter": { - "version": "0.0.10", - "resolved": "https://registry.npmjs.org/cssfilter/-/cssfilter-0.0.10.tgz", - "integrity": "sha512-FAaLDaplstoRsDR8XGYH51znUN0UY7nMc6Z9/fvE8EXGwvJE9hu7W2vHwx1+bd6gCYnln9nLbzxFTrcO9YQDZw==", - "dev": true, - "optional": true - }, - "node_modules/cyclist": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-1.0.1.tgz", - "integrity": "sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk=" - }, - "node_modules/d": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz", - "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==", - "dependencies": { - "es5-ext": "^0.10.50", - "type": "^1.0.1" - } - }, - "node_modules/dashdash": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", - "dependencies": { - "assert-plus": "^1.0.0" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/dataloader": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/dataloader/-/dataloader-2.1.0.tgz", - "integrity": "sha512-qTcEYLen3r7ojZNgVUaRggOI+KM7jrKxXeSHhogh/TWxYMeONEMqY+hmkobiYQozsGIyg9OYVzO4ZIfoB4I0pQ==", - "dev": true, - "optional": true - }, - "node_modules/debounce-fn": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/debounce-fn/-/debounce-fn-4.0.0.tgz", - "integrity": "sha512-8pYCQiL9Xdcg0UPSD3d+0KMlOjp+KGU5EPwYddgzQ7DATsg4fuUDjQtsYLmWjnk2obnNHgV3vE2Y4jejSOJVBQ==", - "dev": true, - "optional": true, - "dependencies": { - "mimic-fn": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/debounce-fn/node_modules/mimic-fn": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-3.1.0.tgz", - "integrity": "sha512-Ysbi9uYW9hFyfrThdDEQuykN4Ey6BuwPD2kpI5ES/nFTDn/98yxYNLZJcgUAKPT/mcrLLKaGzJR9YVxJrIdASQ==", - "dev": true, - "optional": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", - "engines": { - "node": ">=0.10.0" - } - }, - "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==" - }, - "node_modules/decode-uri-component": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", - "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", - "engines": { - "node": ">=0.10" - } - }, - "node_modules/decompress": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/decompress/-/decompress-4.2.1.tgz", - "integrity": "sha512-e48kc2IjU+2Zw8cTb6VZcJQ3lgVbS4uuB1TfCHbiZIP/haNXm+SVyhu+87jts5/3ROpd82GSVCoNs/z8l4ZOaQ==", - "dev": true, - "dependencies": { - "decompress-tar": "^4.0.0", - "decompress-tarbz2": "^4.0.0", - "decompress-targz": "^4.0.0", - "decompress-unzip": "^4.0.1", - "graceful-fs": "^4.1.10", - "make-dir": "^1.0.0", - "pify": "^2.3.0", - "strip-dirs": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/decompress-response": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", - "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", - "dependencies": { - "mimic-response": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/decompress-tar": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/decompress-tar/-/decompress-tar-4.1.1.tgz", - "integrity": "sha512-JdJMaCrGpB5fESVyxwpCx4Jdj2AagLmv3y58Qy4GE6HMVjWz1FeVQk1Ct4Kye7PftcdOo/7U7UKzYBJgqnGeUQ==", - "dev": true, - "dependencies": { - "file-type": "^5.2.0", - "is-stream": "^1.1.0", - "tar-stream": "^1.5.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/decompress-tarbz2": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/decompress-tarbz2/-/decompress-tarbz2-4.1.1.tgz", - "integrity": "sha512-s88xLzf1r81ICXLAVQVzaN6ZmX4A6U4z2nMbOwobxkLoIIfjVMBg7TeguTUXkKeXni795B6y5rnvDw7rxhAq9A==", - "dev": true, - "dependencies": { - "decompress-tar": "^4.1.0", - "file-type": "^6.1.0", - "is-stream": "^1.1.0", - "seek-bzip": "^1.0.5", - "unbzip2-stream": "^1.0.9" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/decompress-tarbz2/node_modules/file-type": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/file-type/-/file-type-6.2.0.tgz", - "integrity": "sha512-YPcTBDV+2Tm0VqjybVd32MHdlEGAtuxS3VAYsumFokDSMG+ROT5wawGlnHDoz7bfMcMDt9hxuXvXwoKUx2fkOg==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/decompress-targz": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/decompress-targz/-/decompress-targz-4.1.1.tgz", - "integrity": "sha512-4z81Znfr6chWnRDNfFNqLwPvm4db3WuZkqV+UgXQzSngG3CEKdBkw5jrv3axjjL96glyiiKjsxJG3X6WBZwX3w==", - "dev": true, - "dependencies": { - "decompress-tar": "^4.1.1", - "file-type": "^5.2.0", - "is-stream": "^1.1.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/decompress-unzip": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/decompress-unzip/-/decompress-unzip-4.0.1.tgz", - "integrity": "sha1-3qrM39FK6vhVePczroIQ+bSEj2k=", - "dev": true, - "dependencies": { - "file-type": "^3.8.0", - "get-stream": "^2.2.0", - "pify": "^2.3.0", - "yauzl": "^2.4.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/decompress-unzip/node_modules/file-type": { - "version": "3.9.0", - "resolved": "https://registry.npmjs.org/file-type/-/file-type-3.9.0.tgz", - "integrity": "sha1-JXoHg4TR24CHvESdEH1SpSZyuek=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/decompress-unzip/node_modules/get-stream": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-2.3.1.tgz", - "integrity": "sha1-Xzj5PzRgCWZu4BUKBUFn+Rvdld4=", - "dev": true, - "dependencies": { - "object-assign": "^4.0.1", - "pinkie-promise": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/deep-eql": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-3.0.1.tgz", - "integrity": "sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==", - "dependencies": { - "type-detect": "^4.0.0" - }, - "engines": { - "node": ">=0.12" - } - }, - "node_modules/deep-extend": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", - "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/deep-is": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", - "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", - "dev": true - }, - "node_modules/defer-to-connect": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz", - "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==", - "dev": true - }, - "node_modules/deferred-leveldown": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/deferred-leveldown/-/deferred-leveldown-1.2.2.tgz", - "integrity": "sha512-uukrWD2bguRtXilKt6cAWKyoXrTSMo5m7crUdLfWQmu8kIm88w3QZoUL+6nhpfKVmhHANER6Re3sKoNoZ3IKMA==", - "dependencies": { - "abstract-leveldown": "~2.6.0" - } - }, - "node_modules/define-properties": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", - "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", - "dependencies": { - "object-keys": "^1.0.12" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/define-property": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", - "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", - "dependencies": { - "is-descriptor": "^1.0.2", - "isobject": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/delay": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/delay/-/delay-5.0.0.tgz", - "integrity": "sha512-ReEBKkIfe4ya47wlPYf/gu5ib6yUG0/Aez0JQZQz94kiWtRQvZIQbTiehsnwHvLSWJnQdhVeqYue7Id1dKr0qw==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/delimit-stream": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/delimit-stream/-/delimit-stream-0.1.0.tgz", - "integrity": "sha1-m4MZR3wOX4rrPONXrjBfwl6hzSs=", - "dev": true - }, - "node_modules/depd": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/des.js": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz", - "integrity": "sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==", - "dependencies": { - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0" - } - }, - "node_modules/destroy": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", - "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=", - "dev": true - }, - "node_modules/detect-file": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/detect-file/-/detect-file-1.0.0.tgz", - "integrity": "sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/diff": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", - "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", - "dev": true, - "engines": { - "node": ">=0.3.1" - } - }, - "node_modules/diffie-hellman": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", - "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", - "dependencies": { - "bn.js": "^4.1.0", - "miller-rabin": "^4.0.0", - "randombytes": "^2.0.0" - } - }, - "node_modules/doctrine": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", - "dev": true, - "dependencies": { - "esutils": "^2.0.2" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/dom-serializer": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.1.tgz", - "integrity": "sha512-l0IU0pPzLWSHBcieZbpOKgkIn3ts3vAh7ZuFyXNwJxJXk/c4Gwj9xaTJwIDVQCXawWD0qb3IzMGH5rglQaO0XA==", - "dev": true, - "dependencies": { - "domelementtype": "^1.3.0", - "entities": "^1.1.1" - } - }, - "node_modules/dom-storage": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/dom-storage/-/dom-storage-2.1.0.tgz", - "integrity": "sha512-g6RpyWXzl0RR6OTElHKBl7nwnK87GUyZMYC7JWsB/IA73vpqK2K6LT39x4VepLxlSsWBFrPVLnsSR5Jyty0+2Q==", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/dom-walk": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/dom-walk/-/dom-walk-0.1.2.tgz", - "integrity": "sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w==" - }, - "node_modules/domain-browser": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz", - "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==", - "engines": { - "node": ">=0.4", - "npm": ">=1.2" - } - }, - "node_modules/domelementtype": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz", - "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==", - "dev": true - }, - "node_modules/domhandler": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.4.2.tgz", - "integrity": "sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==", - "dev": true, - "dependencies": { - "domelementtype": "1" - } - }, - "node_modules/domutils": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz", - "integrity": "sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=", - "dev": true, - "dependencies": { - "dom-serializer": "0", - "domelementtype": "1" - } - }, - "node_modules/dot-case": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-2.1.1.tgz", - "integrity": "sha512-HnM6ZlFqcajLsyudHq7LeeLDr2rFAVYtDv/hV5qchQEidSck8j9OPUsXY9KwJv/lHMtYlX4DjRQqwFYa+0r8Ug==", - "dev": true, - "dependencies": { - "no-case": "^2.2.0" - } - }, - "node_modules/dot-notes": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/dot-notes/-/dot-notes-3.1.1.tgz", - "integrity": "sha1-eufhqUgTRSnzdosvsT9Mj6kqV88=" - }, - "node_modules/dot-prop": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-4.2.0.tgz", - "integrity": "sha512-tUMXrxlExSW6U2EXiiKGSBVdYgtV8qlHL+C10TsW4PURY/ic+eaysnSkwB4kA/mBlCyy/IKDJ+Lc3wbWeaXtuQ==", - "dev": true, - "dependencies": { - "is-obj": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/dotenv": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-10.0.0.tgz", - "integrity": "sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q==", - "engines": { - "node": ">=10" - } - }, - "node_modules/double-ended-queue": { - "version": "2.1.0-0", - "resolved": "https://registry.npmjs.org/double-ended-queue/-/double-ended-queue-2.1.0-0.tgz", - "integrity": "sha512-+BNfZ+deCo8hMNpDqDnvT+c0XpJ5cUa6mqYq89bho2Ifze4URTqRkcwR399hWoTrTkbZ/XJYDgP6rc7pRgffEQ==", - "dev": true, - "optional": true - }, - "node_modules/drbg.js": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/drbg.js/-/drbg.js-1.0.1.tgz", - "integrity": "sha1-Pja2xCs3BDgjzbwzLVjzHiRFSAs=", - "dependencies": { - "browserify-aes": "^1.0.6", - "create-hash": "^1.1.2", - "create-hmac": "^1.1.4" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/duplexer3": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", - "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=", - "dev": true - }, - "node_modules/duplexify": { - "version": "3.7.1", - "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz", - "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==", - "dependencies": { - "end-of-stream": "^1.0.0", - "inherits": "^2.0.1", - "readable-stream": "^2.0.0", - "stream-shift": "^1.0.0" - } - }, - "node_modules/ecc-jsbn": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", - "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", - "dependencies": { - "jsbn": "~0.1.0", - "safer-buffer": "^2.1.0" - } - }, - "node_modules/eccrypto": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/eccrypto/-/eccrypto-1.1.6.tgz", - "integrity": "sha512-d78ivVEzu7Tn0ZphUUaL43+jVPKTMPFGtmgtz1D0LrFn7cY3K8CdrvibuLz2AAkHBLKZtR8DMbB2ukRYFk987A==", - "hasInstallScript": true, - "dependencies": { - "acorn": "7.1.1", - "elliptic": "6.5.4", - "es6-promise": "4.2.8", - "nan": "2.14.0" - }, - "optionalDependencies": { - "secp256k1": "3.7.1" - } - }, - "node_modules/eccrypto/node_modules/acorn": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.1.1.tgz", - "integrity": "sha512-add7dgA5ppRPxCFJoAGfMDi7PIBXq1RtGo7BhbLaxwrXPOmw8gq48Y9ozT01hUKy9byMjlR20EJhu5zlkErEkg==", - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/eccrypto/node_modules/nan": { - "version": "2.14.0", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.0.tgz", - "integrity": "sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg==" - }, - "node_modules/eccrypto/node_modules/secp256k1": { - "version": "3.7.1", - "resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-3.7.1.tgz", - "integrity": "sha512-1cf8sbnRreXrQFdH6qsg2H71Xw91fCCS9Yp021GnUNJzWJS/py96fS4lHbnTnouLp08Xj6jBoBB6V78Tdbdu5g==", - "hasInstallScript": true, - "optional": true, - "dependencies": { - "bindings": "^1.5.0", - "bip66": "^1.1.5", - "bn.js": "^4.11.8", - "create-hash": "^1.2.0", - "drbg.js": "^1.0.1", - "elliptic": "^6.4.1", - "nan": "^2.14.0", - "safe-buffer": "^5.1.2" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/ee-first": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=", - "dev": true - }, - "node_modules/electron-to-chromium": { - "version": "1.4.45", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.45.tgz", - "integrity": "sha512-czF9eYVuOmlY/vxyMQz2rGlNSjZpxNQYBe1gmQv7al171qOIhgyO9k7D5AKlgeTCSPKk+LHhj5ZyIdmEub9oNg==" - }, - "node_modules/elliptic": { - "version": "6.5.4", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", - "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", - "dependencies": { - "bn.js": "^4.11.9", - "brorand": "^1.1.0", - "hash.js": "^1.0.0", - "hmac-drbg": "^1.0.1", - "inherits": "^2.0.4", - "minimalistic-assert": "^1.0.1", - "minimalistic-crypto-utils": "^1.0.1" - } - }, - "node_modules/emittery": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.4.1.tgz", - "integrity": "sha512-r4eRSeStEGf6M5SKdrQhhLK5bOwOBxQhIE3YSTnZE3GpKiLfnnhE+tPtrJE79+eDJgm39BM6LSoI8SCx4HbwlQ==", - "dev": true, - "optional": true, - "engines": { - "node": ">=6" - } - }, - "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/emojis-list": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", - "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", - "engines": { - "node": ">= 4" - } - }, - "node_modules/encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/encoding": { - "version": "0.1.13", - "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", - "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", - "dependencies": { - "iconv-lite": "^0.6.2" - } - }, - "node_modules/encoding-down": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/encoding-down/-/encoding-down-6.3.0.tgz", - "integrity": "sha512-QKrV0iKR6MZVJV08QY0wp1e7vF6QbhnbQhb07bwpEyuz4uZiZgPlEGdkCROuFkUwdxlFaiPIhjyarH1ee/3vhw==", - "dev": true, - "optional": true, - "dependencies": { - "abstract-leveldown": "^6.2.1", - "inherits": "^2.0.3", - "level-codec": "^9.0.0", - "level-errors": "^2.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/encoding-down/node_modules/abstract-leveldown": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-6.3.0.tgz", - "integrity": "sha512-TU5nlYgta8YrBMNpc9FwQzRbiXsj49gsALsXadbGHt9CROPzX5fB0rWDR5mtdpOOKa5XqRFpbj1QroPAoPzVjQ==", - "dev": true, - "optional": true, - "dependencies": { - "buffer": "^5.5.0", - "immediate": "^3.2.3", - "level-concat-iterator": "~2.0.0", - "level-supports": "~1.0.0", - "xtend": "~4.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/encoding-down/node_modules/level-codec": { - "version": "9.0.2", - "resolved": "https://registry.npmjs.org/level-codec/-/level-codec-9.0.2.tgz", - "integrity": "sha512-UyIwNb1lJBChJnGfjmO0OR+ezh2iVu1Kas3nvBS/BzGnx79dv6g7unpKIDNPMhfdTEGoc7mC8uAu51XEtX+FHQ==", - "dev": true, - "optional": true, - "dependencies": { - "buffer": "^5.6.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/encoding-down/node_modules/level-concat-iterator": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/level-concat-iterator/-/level-concat-iterator-2.0.1.tgz", - "integrity": "sha512-OTKKOqeav2QWcERMJR7IS9CUo1sHnke2C0gkSmcR7QuEtFNLLzHQAvnMw8ykvEcv0Qtkg0p7FOwP1v9e5Smdcw==", - "dev": true, - "optional": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/encoding-down/node_modules/level-errors": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/level-errors/-/level-errors-2.0.1.tgz", - "integrity": "sha512-UVprBJXite4gPS+3VznfgDSU8PTRuVX0NXwoWW50KLxd2yw4Y1t2JUR5In1itQnudZqRMT9DlAM3Q//9NCjCFw==", - "dev": true, - "optional": true, - "dependencies": { - "errno": "~0.1.1" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/encoding-down/node_modules/level-supports": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/level-supports/-/level-supports-1.0.1.tgz", - "integrity": "sha512-rXM7GYnW8gsl1vedTJIbzOrRv85c/2uCMpiiCzO2fndd06U/kUXEEU9evYn4zFggBOg36IsBW8LzqIpETwwQzg==", - "dev": true, - "optional": true, - "dependencies": { - "xtend": "^4.0.2" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/encoding/node_modules/iconv-lite": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.2.tgz", - "integrity": "sha512-2y91h5OpQlolefMPmUlivelittSWy0rP+oYVpn6A7GwVHNE8AWzoYOBNmlwks3LobaJxgHCYZAnyNo2GgpNRNQ==", - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "dependencies": { - "once": "^1.4.0" - } - }, - "node_modules/end-stream": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/end-stream/-/end-stream-0.1.0.tgz", - "integrity": "sha512-Brl10T8kYnc75IepKizW6Y9liyW8ikz1B7n/xoHrJxoVSSjoqPn30sb7XVFfQERK4QfUMYRGs9dhWwtt2eu6uA==", - "dev": true, - "optional": true, - "dependencies": { - "write-stream": "~0.4.3" - } - }, - "node_modules/entities": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz", - "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==", - "dev": true - }, - "node_modules/env-paths": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", - "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/errno": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.7.tgz", - "integrity": "sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg==", - "dependencies": { - "prr": "~1.0.1" - }, - "bin": { - "errno": "cli.js" - } - }, - "node_modules/error-polyfill": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/error-polyfill/-/error-polyfill-0.1.3.tgz", - "integrity": "sha512-XHJk60ufE+TG/ydwp4lilOog549iiQF2OAPhkk9DdiYWMrltz5yhDz/xnKuenNwP7gy3dsibssO5QpVhkrSzzg==", - "dependencies": { - "capability": "^0.2.5", - "o3": "^1.0.3", - "u3": "^0.1.1" - } - }, - "node_modules/es-abstract": { - "version": "1.18.0", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.0.tgz", - "integrity": "sha512-LJzK7MrQa8TS0ja2w3YNLzUgJCGPdPOV1yVvezjNnS89D+VR08+Szt2mz3YB2Dck/+w5tfIq/RoUAFqJJGM2yw==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "get-intrinsic": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.2", - "is-callable": "^1.2.3", - "is-negative-zero": "^2.0.1", - "is-regex": "^1.1.2", - "is-string": "^1.0.5", - "object-inspect": "^1.9.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.2", - "string.prototype.trimend": "^1.0.4", - "string.prototype.trimstart": "^1.0.4", - "unbox-primitive": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/es-abstract/node_modules/object.assign": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", - "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "has-symbols": "^1.0.1", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/es-to-primitive": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", - "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", - "dev": true, - "dependencies": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es5-ext": { - "version": "0.10.53", - "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.53.tgz", - "integrity": "sha512-Xs2Stw6NiNHWypzRTY1MtaG/uJlwCk8kH81920ma8mvN8Xq1gsfhZvpkImLQArw8AHnv8MT2I45J3c0R8slE+Q==", - "dependencies": { - "es6-iterator": "~2.0.3", - "es6-symbol": "~3.1.3", - "next-tick": "~1.0.0" - } - }, - "node_modules/es6-iterator": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", - "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=", - "dependencies": { - "d": "1", - "es5-ext": "^0.10.35", - "es6-symbol": "^3.1.1" - } - }, - "node_modules/es6-promise": { - "version": "4.2.8", - "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz", - "integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==" - }, - "node_modules/es6-promisify": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz", - "integrity": "sha512-C+d6UdsYDk0lMebHNR4S2NybQMMngAOnOwYBQjTOiv0MkoJMP0Myw2mgpDLBcpfCmRLxyFqYhS/CfOENq4SJhQ==", - "dependencies": { - "es6-promise": "^4.0.3" - } - }, - "node_modules/es6-symbol": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz", - "integrity": "sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==", - "dependencies": { - "d": "^1.0.1", - "ext": "^1.1.2" - } - }, - "node_modules/escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", - "engines": { - "node": ">=6" - } - }, - "node_modules/escape-html": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=", - "dev": true - }, - "node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/eslint": { - "version": "6.8.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-6.8.0.tgz", - "integrity": "sha512-K+Iayyo2LtyYhDSYwz5D5QdWw0hCacNzyq1Y821Xna2xSJj7cijoLLYmLxTQgcgZ9mC61nryMy9S7GRbYpI5Ig==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.0.0", - "ajv": "^6.10.0", - "chalk": "^2.1.0", - "cross-spawn": "^6.0.5", - "debug": "^4.0.1", - "doctrine": "^3.0.0", - "eslint-scope": "^5.0.0", - "eslint-utils": "^1.4.3", - "eslint-visitor-keys": "^1.1.0", - "espree": "^6.1.2", - "esquery": "^1.0.1", - "esutils": "^2.0.2", - "file-entry-cache": "^5.0.1", - "functional-red-black-tree": "^1.0.1", - "glob-parent": "^5.0.0", - "globals": "^12.1.0", - "ignore": "^4.0.6", - "import-fresh": "^3.0.0", - "imurmurhash": "^0.1.4", - "inquirer": "^7.0.0", - "is-glob": "^4.0.0", - "js-yaml": "^3.13.1", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.3.0", - "lodash": "^4.17.14", - "minimatch": "^3.0.4", - "mkdirp": "^0.5.1", - "natural-compare": "^1.4.0", - "optionator": "^0.8.3", - "progress": "^2.0.0", - "regexpp": "^2.0.1", - "semver": "^6.1.2", - "strip-ansi": "^5.2.0", - "strip-json-comments": "^3.0.1", - "table": "^5.2.3", - "text-table": "^0.2.0", - "v8-compile-cache": "^2.0.3" - }, - "bin": { - "eslint": "bin/eslint.js" - }, - "engines": { - "node": "^8.10.0 || ^10.13.0 || >=11.10.1" - } - }, - "node_modules/eslint-scope": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", - "dev": true, - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/eslint-utils": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-1.4.3.tgz", - "integrity": "sha512-fbBN5W2xdY45KulGXmLHZ3c3FHfVYmKg0IrAKGOkT/464PQsx2UeIzfz1RmEci+KLm1bBaAzZAh8+/E+XAeZ8Q==", - "dev": true, - "dependencies": { - "eslint-visitor-keys": "^1.1.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/eslint-visitor-keys": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", - "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/eslint/node_modules/ansi-escapes": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.1.tgz", - "integrity": "sha512-JWF7ocqNrp8u9oqpgV+wH5ftbt+cfvv+PTjOvKLT3AdYly/LmORARfEVT1iyjwN+4MqE5UmVKoAdIBqeoCHgLA==", - "dev": true, - "dependencies": { - "type-fest": "^0.11.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/eslint/node_modules/ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/eslint/node_modules/ansi-styles": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", - "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", - "dev": true, - "dependencies": { - "@types/color-name": "^1.1.1", - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/eslint/node_modules/cli-width": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz", - "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==", - "dev": true, - "engines": { - "node": ">= 10" - } - }, - "node_modules/eslint/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/eslint/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/eslint/node_modules/debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", - "dev": true, - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/eslint/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==", - "dev": true - }, - "node_modules/eslint/node_modules/figures": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", - "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", - "dev": true, - "dependencies": { - "escape-string-regexp": "^1.0.5" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/eslint/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/eslint/node_modules/inquirer": { - "version": "7.3.3", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.3.3.tgz", - "integrity": "sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA==", - "dev": true, - "dependencies": { - "ansi-escapes": "^4.2.1", - "chalk": "^4.1.0", - "cli-cursor": "^3.1.0", - "cli-width": "^3.0.0", - "external-editor": "^3.0.3", - "figures": "^3.0.0", - "lodash": "^4.17.19", - "mute-stream": "0.0.8", - "run-async": "^2.4.0", - "rxjs": "^6.6.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0", - "through": "^2.3.6" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/eslint/node_modules/inquirer/node_modules/chalk": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/eslint/node_modules/inquirer/node_modules/strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/eslint/node_modules/is-fullwidth-code-point": { - "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==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/eslint/node_modules/mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "dev": true, - "dependencies": { - "minimist": "^1.2.5" - }, - "bin": { - "mkdirp": "bin/cmd.js" - } - }, - "node_modules/eslint/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "node_modules/eslint/node_modules/mute-stream": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", - "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", - "dev": true - }, - "node_modules/eslint/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/eslint/node_modules/string-width": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", - "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", - "dev": true, - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/eslint/node_modules/string-width/node_modules/strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/eslint/node_modules/supports-color": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", - "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/eslint/node_modules/type-fest": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.11.0.tgz", - "integrity": "sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/espree": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-6.2.1.tgz", - "integrity": "sha512-ysCxRQY3WaXJz9tdbWOwuWr5Y/XrPTGX9Kiz3yoUXwW0VZ4w30HTkQLaGx/+ttFjF8i+ACbArnB4ce68a9m5hw==", - "dev": true, - "dependencies": { - "acorn": "^7.1.1", - "acorn-jsx": "^5.2.0", - "eslint-visitor-keys": "^1.1.0" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/esprima": { - "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, - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/esquery": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.3.1.tgz", - "integrity": "sha512-olpvt9QG0vniUBZspVRN6lwB7hOZoTRtT+jzR+tS4ffYx2mzbw+z0XCOk44aaLYKApNX5nMm+E+P6o25ip/DHQ==", - "dev": true, - "dependencies": { - "estraverse": "^5.1.0" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/esquery/node_modules/estraverse": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", - "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/esrecurse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", - "dependencies": { - "estraverse": "^5.2.0" - }, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/esrecurse/node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "engines": { - "node": ">=4.0" - } - }, - "node_modules/estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "engines": { - "node": ">=4.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, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/etag": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/eth-block-tracker": { - "version": "4.4.3", - "resolved": "https://registry.npmjs.org/eth-block-tracker/-/eth-block-tracker-4.4.3.tgz", - "integrity": "sha512-A8tG4Z4iNg4mw5tP1Vung9N9IjgMNqpiMoJ/FouSFwNCGHv2X0mmOYwtQOJzki6XN7r7Tyo01S29p7b224I4jw==", - "dependencies": { - "@babel/plugin-transform-runtime": "^7.5.5", - "@babel/runtime": "^7.5.5", - "eth-query": "^2.1.0", - "json-rpc-random-id": "^1.0.1", - "pify": "^3.0.0", - "safe-event-emitter": "^1.0.1" - } - }, - "node_modules/eth-block-tracker/node_modules/pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", - "engines": { - "node": ">=4" - } - }, - "node_modules/eth-crypto": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/eth-crypto/-/eth-crypto-2.6.0.tgz", - "integrity": "sha512-GCX4ffFYRUGgnuWR5qxcZIRQJ1KEqPFiyXU9yVy7s6dtXIMlUXZQ2h+5ID6rFaOHWbpJbjfkC6YdhwtwRYCnug==", - "dependencies": { - "@babel/runtime": "7.20.13", - "@ethereumjs/tx": "3.5.2", - "@types/bn.js": "5.1.1", - "eccrypto": "1.1.6", - "ethereumjs-util": "7.1.5", - "ethers": "5.7.2", - "secp256k1": "5.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/pubkey" - } - }, - "node_modules/eth-crypto/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/eth-crypto/node_modules/bn.js": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", - "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==" - }, - "node_modules/eth-crypto/node_modules/ethereumjs-util": { - "version": "7.1.5", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.5.tgz", - "integrity": "sha512-SDl5kKrQAudFBUe5OJM9Ac6WmMyYmXX/6sTmLZ3ffG2eY6ZIGBes3pEDxNN6V72WyOw4CPD5RomKdsa8DAAwLg==", - "dependencies": { - "@types/bn.js": "^5.1.0", - "bn.js": "^5.1.2", - "create-hash": "^1.1.2", - "ethereum-cryptography": "^0.1.3", - "rlp": "^2.2.4" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/eth-crypto/node_modules/node-addon-api": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-5.1.0.tgz", - "integrity": "sha512-eh0GgfEkpnoWDq+VY8OyvYhFEzBk6jIYbRKdIlyTiAXIVJ8PyBaKb0rp7oDtoddbdoHWhq8wwr+XZ81F1rpNdA==" - }, - "node_modules/eth-crypto/node_modules/secp256k1": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-5.0.0.tgz", - "integrity": "sha512-TKWX8xvoGHrxVdqbYeZM9w+izTF4b9z3NhSaDkdn81btvuh+ivbIMGT/zQvDtTFWhRlThpoz6LEYTr7n8A5GcA==", - "hasInstallScript": true, - "dependencies": { - "elliptic": "^6.5.4", - "node-addon-api": "^5.0.0", - "node-gyp-build": "^4.2.0" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/eth-ens-namehash": { - "version": "2.0.8", - "resolved": "https://registry.npmjs.org/eth-ens-namehash/-/eth-ens-namehash-2.0.8.tgz", - "integrity": "sha1-IprEbsqG1S4MmR58sq74P/D2i88=", - "dev": true, - "dependencies": { - "idna-uts46-hx": "^2.3.1", - "js-sha3": "^0.5.7" - } - }, - "node_modules/eth-json-rpc-errors": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/eth-json-rpc-errors/-/eth-json-rpc-errors-2.0.2.tgz", - "integrity": "sha512-uBCRM2w2ewusRHGxN8JhcuOb2RN3ueAOYH/0BhqdFmQkZx5lj5+fLKTz0mIVOzd4FG5/kUksCzCD7eTEim6gaA==", - "deprecated": "Package renamed: https://www.npmjs.com/package/eth-rpc-errors", - "dependencies": { - "fast-safe-stringify": "^2.0.6" - } - }, - "node_modules/eth-lib": { - "version": "0.1.29", - "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.1.29.tgz", - "integrity": "sha512-bfttrr3/7gG4E02HoWTDUcDDslN003OlOoBxk9virpAZQ1ja/jDgwkWB8QfJF7ojuEowrqy+lzp9VcJG7/k5bQ==", - "dev": true, - "dependencies": { - "bn.js": "^4.11.6", - "elliptic": "^6.4.0", - "nano-json-stream-parser": "^0.1.2", - "servify": "^0.1.12", - "ws": "^3.0.0", - "xhr-request-promise": "^0.1.2" - } - }, - "node_modules/eth-query": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/eth-query/-/eth-query-2.1.2.tgz", - "integrity": "sha1-1nQdkAAQa1FRDHLbktY2VFam2l4=", - "dependencies": { - "json-rpc-random-id": "^1.0.0", - "xtend": "^4.0.1" - } - }, - "node_modules/eth-rpc-errors": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/eth-rpc-errors/-/eth-rpc-errors-3.0.0.tgz", - "integrity": "sha512-iPPNHPrLwUlR9xCSYm7HHQjWBasor3+KZfRvwEWxMz3ca0yqnlBeJrnyphkGIXZ4J7AMAaOLmwy4AWhnxOiLxg==", - "dependencies": { - "fast-safe-stringify": "^2.0.6" - } - }, - "node_modules/eth-sig-util": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/eth-sig-util/-/eth-sig-util-3.0.1.tgz", - "integrity": "sha512-0Us50HiGGvZgjtWTyAI/+qTzYPMLy5Q451D0Xy68bxq1QMWdoOddDwGvsqcFT27uohKgalM9z/yxplyt+mY2iQ==", - "deprecated": "Deprecated in favor of '@metamask/eth-sig-util'", - "dev": true, - "dependencies": { - "ethereumjs-abi": "^0.6.8", - "ethereumjs-util": "^5.1.1", - "tweetnacl": "^1.0.3", - "tweetnacl-util": "^0.15.0" - } - }, - "node_modules/eth-sig-util/node_modules/ethereumjs-util": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", - "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", - "dev": true, - "dependencies": { - "bn.js": "^4.11.0", - "create-hash": "^1.1.2", - "elliptic": "^6.5.2", - "ethereum-cryptography": "^0.1.3", - "ethjs-util": "^0.1.3", - "rlp": "^2.0.0", - "safe-buffer": "^5.1.1" - } - }, - "node_modules/eth-sig-util/node_modules/tweetnacl": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.3.tgz", - "integrity": "sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==", - "dev": true - }, - "node_modules/ethereum-bloom-filters": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/ethereum-bloom-filters/-/ethereum-bloom-filters-1.0.7.tgz", - "integrity": "sha512-cDcJJSJ9GMAcURiAWO3DxIEhTL/uWqlQnvgKpuYQzYPrt/izuGU+1ntQmHt0IRq6ADoSYHFnB+aCEFIldjhkMQ==", - "dev": true, - "dependencies": { - "js-sha3": "^0.8.0" - } - }, - "node_modules/ethereum-bloom-filters/node_modules/js-sha3": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.8.0.tgz", - "integrity": "sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q==", - "dev": true - }, - "node_modules/ethereum-common": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/ethereum-common/-/ethereum-common-0.2.0.tgz", - "integrity": "sha512-XOnAR/3rntJgbCdGhqdaLIxDLWKLmsZOGhHdBKadEr6gEnJLH52k93Ou+TUdFaPN3hJc3isBZBal3U/XZ15abA==" - }, - "node_modules/ethereum-cryptography": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz", - "integrity": "sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ==", - "dependencies": { - "@types/pbkdf2": "^3.0.0", - "@types/secp256k1": "^4.0.1", - "blakejs": "^1.1.0", - "browserify-aes": "^1.2.0", - "bs58check": "^2.1.2", - "create-hash": "^1.2.0", - "create-hmac": "^1.1.7", - "hash.js": "^1.1.7", - "keccak": "^3.0.0", - "pbkdf2": "^3.0.17", - "randombytes": "^2.1.0", - "safe-buffer": "^5.1.2", - "scrypt-js": "^3.0.0", - "secp256k1": "^4.0.1", - "setimmediate": "^1.0.5" - } - }, - "node_modules/ethereum-cryptography/node_modules/hash.js": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", - "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", - "dependencies": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.1" - } - }, - "node_modules/ethereum-cryptography/node_modules/scrypt-js": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-3.0.1.tgz", - "integrity": "sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA==" - }, - "node_modules/ethereum-cryptography/node_modules/setimmediate": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", - "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=" - }, - "node_modules/ethereum-protocol": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/ethereum-protocol/-/ethereum-protocol-1.0.1.tgz", - "integrity": "sha512-3KLX1mHuEsBW0dKG+c6EOJS1NBNqdCICvZW9sInmZTt5aY0oxmHVggYRE0lJu1tcnMD1K+AKHdLi6U43Awm1Vg==" - }, - "node_modules/ethereumjs-abi": { - "version": "0.6.8", - "resolved": "https://registry.npmjs.org/ethereumjs-abi/-/ethereumjs-abi-0.6.8.tgz", - "integrity": "sha512-Tx0r/iXI6r+lRsdvkFDlut0N08jWMnKRZ6Gkq+Nmw75lZe4e6o3EkSnkaBP5NF6+m5PTGAr9JP43N3LyeoglsA==", - "dependencies": { - "bn.js": "^4.11.8", - "ethereumjs-util": "^6.0.0" - } - }, - "node_modules/ethereumjs-account": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/ethereumjs-account/-/ethereumjs-account-2.0.5.tgz", - "integrity": "sha512-bgDojnXGjhMwo6eXQC0bY6UK2liSFUSMwwylOmQvZbSl/D7NXQ3+vrGO46ZeOgjGfxXmgIeVNDIiHw7fNZM4VA==", - "dependencies": { - "ethereumjs-util": "^5.0.0", - "rlp": "^2.0.0", - "safe-buffer": "^5.1.1" - } - }, - "node_modules/ethereumjs-account/node_modules/ethereumjs-util": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", - "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", - "dependencies": { - "bn.js": "^4.11.0", - "create-hash": "^1.1.2", - "elliptic": "^6.5.2", - "ethereum-cryptography": "^0.1.3", - "ethjs-util": "^0.1.3", - "rlp": "^2.0.0", - "safe-buffer": "^5.1.1" - } - }, - "node_modules/ethereumjs-block": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/ethereumjs-block/-/ethereumjs-block-1.7.1.tgz", - "integrity": "sha512-B+sSdtqm78fmKkBq78/QLKJbu/4Ts4P2KFISdgcuZUPDm9x+N7qgBPIIFUGbaakQh8bzuquiRVbdmvPKqbILRg==", - "deprecated": "New package name format for new versions: @ethereumjs/block. Please update.", - "dependencies": { - "async": "^2.0.1", - "ethereum-common": "0.2.0", - "ethereumjs-tx": "^1.2.2", - "ethereumjs-util": "^5.0.0", - "merkle-patricia-tree": "^2.1.2" - } - }, - "node_modules/ethereumjs-block/node_modules/ethereumjs-tx": { - "version": "1.3.7", - "resolved": "https://registry.npmjs.org/ethereumjs-tx/-/ethereumjs-tx-1.3.7.tgz", - "integrity": "sha512-wvLMxzt1RPhAQ9Yi3/HKZTn0FZYpnsmQdbKYfUUpi4j1SEIcbkd9tndVjcPrufY3V7j2IebOpC00Zp2P/Ay2kA==", - "deprecated": "New package name format for new versions: @ethereumjs/tx. Please update.", - "dependencies": { - "ethereum-common": "^0.0.18", - "ethereumjs-util": "^5.0.0" - } - }, - "node_modules/ethereumjs-block/node_modules/ethereumjs-tx/node_modules/ethereum-common": { - "version": "0.0.18", - "resolved": "https://registry.npmjs.org/ethereum-common/-/ethereum-common-0.0.18.tgz", - "integrity": "sha1-L9w1dvIykDNYl26znaeDIT/5Uj8=" - }, - "node_modules/ethereumjs-block/node_modules/ethereumjs-util": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", - "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", - "dependencies": { - "bn.js": "^4.11.0", - "create-hash": "^1.1.2", - "elliptic": "^6.5.2", - "ethereum-cryptography": "^0.1.3", - "ethjs-util": "^0.1.3", - "rlp": "^2.0.0", - "safe-buffer": "^5.1.1" - } - }, - "node_modules/ethereumjs-common": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/ethereumjs-common/-/ethereumjs-common-1.5.1.tgz", - "integrity": "sha512-aVUPRLgmXORGXXEVkFYgPhr9TGtpBY2tGhZ9Uh0A3lIUzUDr1x6kQx33SbjPUkLkX3eniPQnIL/2psjkjrOfcQ==" - }, - "node_modules/ethereumjs-tx": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ethereumjs-tx/-/ethereumjs-tx-2.1.2.tgz", - "integrity": "sha512-zZEK1onCeiORb0wyCXUvg94Ve5It/K6GD1K+26KfFKodiBiS6d9lfCXlUKGBBdQ+bv7Day+JK0tj1K+BeNFRAw==", - "dependencies": { - "ethereumjs-common": "^1.5.0", - "ethereumjs-util": "^6.0.0" - } - }, - "node_modules/ethereumjs-util": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-6.2.1.tgz", - "integrity": "sha512-W2Ktez4L01Vexijrm5EB6w7dg4n/TgpoYU4avuT5T3Vmnw/eCRtiBrJfQYS/DCSvDIOLn2k57GcHdeBcgVxAqw==", - "dependencies": { - "@types/bn.js": "^4.11.3", - "bn.js": "^4.11.0", - "create-hash": "^1.1.2", - "elliptic": "^6.5.2", - "ethereum-cryptography": "^0.1.3", - "ethjs-util": "0.1.6", - "rlp": "^2.2.3" - } - }, - "node_modules/ethereumjs-vm": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/ethereumjs-vm/-/ethereumjs-vm-2.6.0.tgz", - "integrity": "sha512-r/XIUik/ynGbxS3y+mvGnbOKnuLo40V5Mj1J25+HEO63aWYREIqvWeRO/hnROlMBE5WoniQmPmhiaN0ctiHaXw==", - "deprecated": "New package name format for new versions: @ethereumjs/vm. Please update.", - "dependencies": { - "async": "^2.1.2", - "async-eventemitter": "^0.2.2", - "ethereumjs-account": "^2.0.3", - "ethereumjs-block": "~2.2.0", - "ethereumjs-common": "^1.1.0", - "ethereumjs-util": "^6.0.0", - "fake-merkle-patricia-tree": "^1.0.1", - "functional-red-black-tree": "^1.0.1", - "merkle-patricia-tree": "^2.3.2", - "rustbn.js": "~0.2.0", - "safe-buffer": "^5.1.1" - } - }, - "node_modules/ethereumjs-vm/node_modules/ethereumjs-block": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/ethereumjs-block/-/ethereumjs-block-2.2.2.tgz", - "integrity": "sha512-2p49ifhek3h2zeg/+da6XpdFR3GlqY3BIEiqxGF8j9aSRIgkb7M1Ky+yULBKJOu8PAZxfhsYA+HxUk2aCQp3vg==", - "deprecated": "New package name format for new versions: @ethereumjs/block. Please update.", - "dependencies": { - "async": "^2.0.1", - "ethereumjs-common": "^1.5.0", - "ethereumjs-tx": "^2.1.1", - "ethereumjs-util": "^5.0.0", - "merkle-patricia-tree": "^2.1.2" - } - }, - "node_modules/ethereumjs-vm/node_modules/ethereumjs-block/node_modules/ethereumjs-util": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", - "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", - "dependencies": { - "bn.js": "^4.11.0", - "create-hash": "^1.1.2", - "elliptic": "^6.5.2", - "ethereum-cryptography": "^0.1.3", - "ethjs-util": "^0.1.3", - "rlp": "^2.0.0", - "safe-buffer": "^5.1.1" - } - }, - "node_modules/ethers": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/ethers/-/ethers-5.7.2.tgz", - "integrity": "sha512-wswUsmWo1aOK8rR7DIKiWSw9DbLWe6x98Jrn8wcTflTVvaXhAMaB5zGAXy0GYQEQp9iO1iSHWVyARQm11zUtyg==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/abi": "5.7.0", - "@ethersproject/abstract-provider": "5.7.0", - "@ethersproject/abstract-signer": "5.7.0", - "@ethersproject/address": "5.7.0", - "@ethersproject/base64": "5.7.0", - "@ethersproject/basex": "5.7.0", - "@ethersproject/bignumber": "5.7.0", - "@ethersproject/bytes": "5.7.0", - "@ethersproject/constants": "5.7.0", - "@ethersproject/contracts": "5.7.0", - "@ethersproject/hash": "5.7.0", - "@ethersproject/hdnode": "5.7.0", - "@ethersproject/json-wallets": "5.7.0", - "@ethersproject/keccak256": "5.7.0", - "@ethersproject/logger": "5.7.0", - "@ethersproject/networks": "5.7.1", - "@ethersproject/pbkdf2": "5.7.0", - "@ethersproject/properties": "5.7.0", - "@ethersproject/providers": "5.7.2", - "@ethersproject/random": "5.7.0", - "@ethersproject/rlp": "5.7.0", - "@ethersproject/sha2": "5.7.0", - "@ethersproject/signing-key": "5.7.0", - "@ethersproject/solidity": "5.7.0", - "@ethersproject/strings": "5.7.0", - "@ethersproject/transactions": "5.7.0", - "@ethersproject/units": "5.7.0", - "@ethersproject/wallet": "5.7.0", - "@ethersproject/web": "5.7.1", - "@ethersproject/wordlists": "5.7.0" - } - }, - "node_modules/ethers/node_modules/@ethersproject/basex": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/basex/-/basex-5.7.0.tgz", - "integrity": "sha512-ywlh43GwZLv2Voc2gQVTKBoVQ1mti3d8HK5aMxsfu/nRDnMmNqaSJ3r3n85HBByT8OpoY96SXM1FogC533T4zw==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/properties": "^5.7.0" - } - }, - "node_modules/ethers/node_modules/@ethersproject/contracts": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/contracts/-/contracts-5.7.0.tgz", - "integrity": "sha512-5GJbzEU3X+d33CdfPhcyS+z8MzsTrBGk/sc+G+59+tPa9yFkl6HQ9D6L0QMgNTA9q8dT0XKxxkyp883XsQvbbg==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/abi": "^5.7.0", - "@ethersproject/abstract-provider": "^5.7.0", - "@ethersproject/abstract-signer": "^5.7.0", - "@ethersproject/address": "^5.7.0", - "@ethersproject/bignumber": "^5.7.0", - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/constants": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/properties": "^5.7.0", - "@ethersproject/transactions": "^5.7.0" - } - }, - "node_modules/ethers/node_modules/@ethersproject/hdnode": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/hdnode/-/hdnode-5.7.0.tgz", - "integrity": "sha512-OmyYo9EENBPPf4ERhR7oj6uAtUAhYGqOnIS+jE5pTXvdKBS99ikzq1E7Iv0ZQZ5V36Lqx1qZLeak0Ra16qpeOg==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/abstract-signer": "^5.7.0", - "@ethersproject/basex": "^5.7.0", - "@ethersproject/bignumber": "^5.7.0", - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/pbkdf2": "^5.7.0", - "@ethersproject/properties": "^5.7.0", - "@ethersproject/sha2": "^5.7.0", - "@ethersproject/signing-key": "^5.7.0", - "@ethersproject/strings": "^5.7.0", - "@ethersproject/transactions": "^5.7.0", - "@ethersproject/wordlists": "^5.7.0" - } - }, - "node_modules/ethers/node_modules/@ethersproject/json-wallets": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/json-wallets/-/json-wallets-5.7.0.tgz", - "integrity": "sha512-8oee5Xgu6+RKgJTkvEMl2wDgSPSAQ9MB/3JYjFV9jlKvcYHUXZC+cQp0njgmxdHkYWn8s6/IqIZYm0YWCjO/0g==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/abstract-signer": "^5.7.0", - "@ethersproject/address": "^5.7.0", - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/hdnode": "^5.7.0", - "@ethersproject/keccak256": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/pbkdf2": "^5.7.0", - "@ethersproject/properties": "^5.7.0", - "@ethersproject/random": "^5.7.0", - "@ethersproject/strings": "^5.7.0", - "@ethersproject/transactions": "^5.7.0", - "aes-js": "3.0.0", - "scrypt-js": "3.0.1" - } - }, - "node_modules/ethers/node_modules/@ethersproject/pbkdf2": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/pbkdf2/-/pbkdf2-5.7.0.tgz", - "integrity": "sha512-oR/dBRZR6GTyaofd86DehG72hY6NpAjhabkhxgr3X2FpJtJuodEl2auADWBZfhDHgVCbu3/H/Ocq2uC6dpNjjw==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/sha2": "^5.7.0" - } - }, - "node_modules/ethers/node_modules/@ethersproject/providers": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/@ethersproject/providers/-/providers-5.7.2.tgz", - "integrity": "sha512-g34EWZ1WWAVgr4aptGlVBF8mhl3VWjv+8hoAnzStu8Ah22VHBsuGzP17eb6xDVRzw895G4W7vvx60lFFur/1Rg==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/abstract-provider": "^5.7.0", - "@ethersproject/abstract-signer": "^5.7.0", - "@ethersproject/address": "^5.7.0", - "@ethersproject/base64": "^5.7.0", - "@ethersproject/basex": "^5.7.0", - "@ethersproject/bignumber": "^5.7.0", - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/constants": "^5.7.0", - "@ethersproject/hash": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/networks": "^5.7.0", - "@ethersproject/properties": "^5.7.0", - "@ethersproject/random": "^5.7.0", - "@ethersproject/rlp": "^5.7.0", - "@ethersproject/sha2": "^5.7.0", - "@ethersproject/strings": "^5.7.0", - "@ethersproject/transactions": "^5.7.0", - "@ethersproject/web": "^5.7.0", - "bech32": "1.1.4", - "ws": "7.4.6" - } - }, - "node_modules/ethers/node_modules/@ethersproject/random": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/random/-/random-5.7.0.tgz", - "integrity": "sha512-19WjScqRA8IIeWclFme75VMXSBvi4e6InrUNuaR4s5pTF2qNhcGdCUwdxUVGtDDqC00sDLCO93jPQoDUH4HVmQ==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/logger": "^5.7.0" - } - }, - "node_modules/ethers/node_modules/@ethersproject/sha2": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/sha2/-/sha2-5.7.0.tgz", - "integrity": "sha512-gKlH42riwb3KYp0reLsFTokByAKoJdgFCwI+CCiX/k+Jm2mbNs6oOaCjYQSlI1+XBVejwH2KrmCbMAT/GnRDQw==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "hash.js": "1.1.7" - } - }, - "node_modules/ethers/node_modules/@ethersproject/solidity": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/solidity/-/solidity-5.7.0.tgz", - "integrity": "sha512-HmabMd2Dt/raavyaGukF4XxizWKhKQ24DoLtdNbBmNKUOPqwjsKQSdV9GQtj9CBEea9DlzETlVER1gYeXXBGaA==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/bignumber": "^5.7.0", - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/keccak256": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/sha2": "^5.7.0", - "@ethersproject/strings": "^5.7.0" - } - }, - "node_modules/ethers/node_modules/@ethersproject/units": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/units/-/units-5.7.0.tgz", - "integrity": "sha512-pD3xLMy3SJu9kG5xDGI7+xhTEmGXlEqXU4OfNapmfnxLVY4EMSSRp7j1k7eezutBPH7RBN/7QPnwR7hzNlEFeg==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/bignumber": "^5.7.0", - "@ethersproject/constants": "^5.7.0", - "@ethersproject/logger": "^5.7.0" - } - }, - "node_modules/ethers/node_modules/@ethersproject/wallet": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/wallet/-/wallet-5.7.0.tgz", - "integrity": "sha512-MhmXlJXEJFBFVKrDLB4ZdDzxcBxQ3rLyCkhNqVu3CDYvR97E+8r01UgrI+TI99Le+aYm/in/0vp86guJuM7FCA==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/abstract-provider": "^5.7.0", - "@ethersproject/abstract-signer": "^5.7.0", - "@ethersproject/address": "^5.7.0", - "@ethersproject/bignumber": "^5.7.0", - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/hash": "^5.7.0", - "@ethersproject/hdnode": "^5.7.0", - "@ethersproject/json-wallets": "^5.7.0", - "@ethersproject/keccak256": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/properties": "^5.7.0", - "@ethersproject/random": "^5.7.0", - "@ethersproject/signing-key": "^5.7.0", - "@ethersproject/transactions": "^5.7.0", - "@ethersproject/wordlists": "^5.7.0" - } - }, - "node_modules/ethers/node_modules/@ethersproject/wordlists": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/wordlists/-/wordlists-5.7.0.tgz", - "integrity": "sha512-S2TFNJNfHWVHNE6cNDjbVlZ6MgE17MIxMbMg2zv3wn+3XSJGosL1m9ZVv3GXCf/2ymSsQ+hRI5IzoMJTG6aoVA==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/hash": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/properties": "^5.7.0", - "@ethersproject/strings": "^5.7.0" - } - }, - "node_modules/ethers/node_modules/bech32": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/bech32/-/bech32-1.1.4.tgz", - "integrity": "sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ==" - }, - "node_modules/ethers/node_modules/hash.js": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", - "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", - "dependencies": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.1" - } - }, - "node_modules/ethers/node_modules/scrypt-js": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-3.0.1.tgz", - "integrity": "sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA==" - }, - "node_modules/ethers/node_modules/ws": { - "version": "7.4.6", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz", - "integrity": "sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==", - "engines": { - "node": ">=8.3.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": "^5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, - "node_modules/ethjs-unit": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/ethjs-unit/-/ethjs-unit-0.1.6.tgz", - "integrity": "sha1-xmWSHkduh7ziqdWIpv4EBbLEFpk=", - "dependencies": { - "bn.js": "4.11.6", - "number-to-bn": "1.7.0" - }, - "engines": { - "node": ">=6.5.0", - "npm": ">=3" - } - }, - "node_modules/ethjs-unit/node_modules/bn.js": { - "version": "4.11.6", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz", - "integrity": "sha1-UzRK2xRhehP26N0s4okF0cC6MhU=" - }, - "node_modules/ethjs-util": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/ethjs-util/-/ethjs-util-0.1.6.tgz", - "integrity": "sha512-CUnVOQq7gSpDHZVVrQW8ExxUETWrnrvXYvYz55wOU8Uj4VCgw56XC2B/fVqQN+f7gmrnRHSLVnFAwsCuNwji8w==", - "dependencies": { - "is-hex-prefixed": "1.0.0", - "strip-hex-prefix": "1.0.0" - }, - "engines": { - "node": ">=6.5.0", - "npm": ">=3" - } - }, - "node_modules/event-target-shim": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", - "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==", - "engines": { - "node": ">=6" - } - }, - "node_modules/eventemitter3": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-3.1.2.tgz", - "integrity": "sha512-tvtQIeLVHjDkJYnzf2dgVMxfuSGJeM/7UCG17TT4EumTfNtF+0nebF/4zWOIkCreAbtNqhGEboB6BWrwqNaw4Q==", - "devOptional": true - }, - "node_modules/events": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", - "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", - "engines": { - "node": ">=0.8.x" - } - }, - "node_modules/evp_bytestokey": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", - "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", - "dependencies": { - "md5.js": "^1.3.4", - "safe-buffer": "^5.1.1" - } - }, - "node_modules/exit-on-epipe": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/exit-on-epipe/-/exit-on-epipe-1.0.1.tgz", - "integrity": "sha512-h2z5mrROTxce56S+pnvAV890uu7ls7f1kEvVGJbw1OlFH3/mlJ5bkXu0KRyW94v37zzHPiUd55iLn3DA7TjWpw==", - "engines": { - "node": ">=0.8" - } - }, - "node_modules/expand-brackets": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", - "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", - "dependencies": { - "debug": "^2.3.3", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "posix-character-classes": "^0.1.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-brackets/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/expand-brackets/node_modules/define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dependencies": { - "is-descriptor": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-brackets/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-brackets/node_modules/is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-brackets/node_modules/is-accessor-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-brackets/node_modules/is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" - }, - "node_modules/expand-brackets/node_modules/is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-brackets/node_modules/is-data-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-brackets/node_modules/is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dependencies": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-brackets/node_modules/is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-brackets/node_modules/kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-tilde": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz", - "integrity": "sha1-l+gBqgUt8CRU3kawK/YhZCzchQI=", - "dependencies": { - "homedir-polyfill": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/explain-error": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/explain-error/-/explain-error-1.0.4.tgz", - "integrity": "sha1-p5PTrAytTGq1cemWj7urbLJTKSk=" - }, - "node_modules/express": { - "version": "4.17.1", - "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz", - "integrity": "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==", - "dev": true, - "dependencies": { - "accepts": "~1.3.7", - "array-flatten": "1.1.1", - "body-parser": "1.19.0", - "content-disposition": "0.5.3", - "content-type": "~1.0.4", - "cookie": "0.4.0", - "cookie-signature": "1.0.6", - "debug": "2.6.9", - "depd": "~1.1.2", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "finalhandler": "~1.1.2", - "fresh": "0.5.2", - "merge-descriptors": "1.0.1", - "methods": "~1.1.2", - "on-finished": "~2.3.0", - "parseurl": "~1.3.3", - "path-to-regexp": "0.1.7", - "proxy-addr": "~2.0.5", - "qs": "6.7.0", - "range-parser": "~1.2.1", - "safe-buffer": "5.1.2", - "send": "0.17.1", - "serve-static": "1.14.1", - "setprototypeof": "1.1.1", - "statuses": "~1.5.0", - "type-is": "~1.6.18", - "utils-merge": "1.0.1", - "vary": "~1.1.2" - }, - "engines": { - "node": ">= 0.10.0" - } - }, - "node_modules/express/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/express/node_modules/qs": { - "version": "6.7.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", - "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==", - "dev": true, - "engines": { - "node": ">=0.6" - } - }, - "node_modules/express/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, - "node_modules/ext": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/ext/-/ext-1.4.0.tgz", - "integrity": "sha512-Key5NIsUxdqKg3vIsdw9dSuXpPCQ297y6wBjL30edxwPgt2E44WcWBZey/ZvUc6sERLTxKdyCu4gZFmUbk1Q7A==", - "dependencies": { - "type": "^2.0.0" - } - }, - "node_modules/ext/node_modules/type": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/type/-/type-2.0.0.tgz", - "integrity": "sha512-KBt58xCHry4Cejnc2ISQAF7QY+ORngsWfxezO68+12hKV6lQY8P/psIkcbjeHWn7MqcgciWJyCCevFMJdIXpow==" - }, - "node_modules/extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" - }, - "node_modules/extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", - "dependencies": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/external-editor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", - "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", - "dev": true, - "dependencies": { - "chardet": "^0.7.0", - "iconv-lite": "^0.4.24", - "tmp": "^0.0.33" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/extglob": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", - "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", - "dependencies": { - "array-unique": "^0.3.2", - "define-property": "^1.0.0", - "expand-brackets": "^2.1.4", - "extend-shallow": "^2.0.1", - "fragment-cache": "^0.2.1", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/extglob/node_modules/define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dependencies": { - "is-descriptor": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/extglob/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/extglob/node_modules/is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/extsprintf": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", - "engines": [ - "node >=0.6.0" - ] - }, - "node_modules/eyes": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/eyes/-/eyes-0.1.8.tgz", - "integrity": "sha512-GipyPsXO1anza0AOZdy69Im7hGFCNB7Y/NGjDlZGJ3GJJLtwNSb2vrzYrTYJRrRloVx7pl+bhUaTB8yiccPvFQ==", - "engines": { - "node": "> 0.1.90" - } - }, - "node_modules/fake-merkle-patricia-tree": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/fake-merkle-patricia-tree/-/fake-merkle-patricia-tree-1.0.1.tgz", - "integrity": "sha1-S4w6z7Ugr635hgsfFM2M40As3dM=", - "dependencies": { - "checkpoint-store": "^1.1.0" - } - }, - "node_modules/fast-check": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/fast-check/-/fast-check-3.1.1.tgz", - "integrity": "sha512-3vtXinVyuUKCKFKYcwXhGE6NtGWkqF8Yh3rvMZNzmwz8EPrgoc/v4pDdLHyLnCyCI5MZpZZkDEwFyXyEONOxpA==", - "dev": true, - "dependencies": { - "pure-rand": "^5.0.1" - }, - "engines": { - "node": ">=8.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/fast-check" - } - }, - "node_modules/fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" - }, - "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==" - }, - "node_modules/fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", - "dev": true - }, - "node_modules/fast-safe-stringify": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz", - "integrity": "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==" - }, - "node_modules/fast-stable-stringify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fast-stable-stringify/-/fast-stable-stringify-1.0.0.tgz", - "integrity": "sha512-wpYMUmFu5f00Sm0cj2pfivpmawLZ0NKdviQ4w9zJeR8JVtOpOxHmLaJuj0vxvGqMJQWyP/COUkF75/57OKyRag==" - }, - "node_modules/faye-websocket": { - "version": "0.11.3", - "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.3.tgz", - "integrity": "sha512-D2y4bovYpzziGgbHYtGCMjlJM36vAl/y+xUyn1C+FVx8szd1E+86KwVw6XvYSzOP8iMpm1X0I4xJD+QtUb36OA==", - "dev": true, - "dependencies": { - "websocket-driver": ">=0.5.1" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/fd-slicer": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", - "integrity": "sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4=", - "dev": true, - "dependencies": { - "pend": "~1.2.0" - } - }, - "node_modules/fetch-cookie": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/fetch-cookie/-/fetch-cookie-0.11.0.tgz", - "integrity": "sha512-BQm7iZLFhMWFy5CZ/162sAGjBfdNWb7a8LEqqnzsHFhxT/X/SVj/z2t2nu3aJvjlbQkrAlTUApplPRjWyH4mhA==", - "dev": true, - "optional": true, - "dependencies": { - "tough-cookie": "^2.3.3 || ^3.0.1 || ^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/fetch-ponyfill": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/fetch-ponyfill/-/fetch-ponyfill-4.1.0.tgz", - "integrity": "sha1-rjzl9zLGReq4fkroeTQUcJsjmJM=", - "dependencies": { - "node-fetch": "~1.7.1" - } - }, - "node_modules/figgy-pudding": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.2.tgz", - "integrity": "sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw==" - }, - "node_modules/figures": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", - "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", - "dev": true, - "dependencies": { - "escape-string-regexp": "^1.0.5" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/file-entry-cache": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-5.0.1.tgz", - "integrity": "sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g==", - "dev": true, - "dependencies": { - "flat-cache": "^2.0.1" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/file-type": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/file-type/-/file-type-5.2.0.tgz", - "integrity": "sha1-LdvqfHP/42No365J3DOMBYwritY=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/file-uri-to-path": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", - "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==" - }, - "node_modules/fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/finalhandler": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", - "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", - "dev": true, - "dependencies": { - "debug": "2.6.9", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "on-finished": "~2.3.0", - "parseurl": "~1.3.3", - "statuses": "~1.5.0", - "unpipe": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/finalhandler/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/find-cache-dir": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz", - "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==", - "dependencies": { - "commondir": "^1.0.1", - "make-dir": "^2.0.0", - "pkg-dir": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/find-cache-dir/node_modules/make-dir": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", - "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", - "dependencies": { - "pify": "^4.0.1", - "semver": "^5.6.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/find-cache-dir/node_modules/pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", - "engines": { - "node": ">=6" - } - }, - "node_modules/find-replace": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-replace/-/find-replace-3.0.0.tgz", - "integrity": "sha512-6Tb2myMioCAgv5kfvP5/PkZZ/ntTpVK39fHY7WkWBgvbeE+VHd/tZuZ4mrC+bxh4cfOZeYKVPaJIZtZXV7GNCQ==", - "dependencies": { - "array-back": "^3.0.1" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "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": { - "locate-path": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/find-up/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/find-up/node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/find-up/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/find-up/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==", - "engines": { - "node": ">=6" - } - }, - "node_modules/findup-sync": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-3.0.0.tgz", - "integrity": "sha512-YbffarhcicEhOrm4CtrwdKBdCuz576RLdhJDsIfvNtxUuhdRet1qZcsMjqbePtAseKdAnDyM/IyXbu7PRPRLYg==", - "dependencies": { - "detect-file": "^1.0.0", - "is-glob": "^4.0.0", - "micromatch": "^3.0.4", - "resolve-dir": "^1.0.1" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/firebase": { - "version": "7.17.1", - "resolved": "https://registry.npmjs.org/firebase/-/firebase-7.17.1.tgz", - "integrity": "sha512-g2Wkk2fz8VoeSrxv2PIQizm2j74EtbpxQ+wd2AvH2iEF5LRaJOsk3zVBtIlyJIQ3vGTmlutIxtyyoDAQcPO9TA==", - "dev": true, - "dependencies": { - "@firebase/analytics": "0.4.1", - "@firebase/app": "0.6.9", - "@firebase/app-types": "0.6.1", - "@firebase/auth": "0.14.9", - "@firebase/database": "0.6.9", - "@firebase/firestore": "1.16.2", - "@firebase/functions": "0.4.49", - "@firebase/installations": "0.4.15", - "@firebase/messaging": "0.6.21", - "@firebase/performance": "0.3.10", - "@firebase/polyfill": "0.3.36", - "@firebase/remote-config": "0.1.26", - "@firebase/storage": "0.3.41", - "@firebase/util": "0.3.0" - }, - "engines": { - "node": "^8.13.0 || >=10.10.0" - } - }, - "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/flat-cache": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-2.0.1.tgz", - "integrity": "sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA==", - "dev": true, - "dependencies": { - "flatted": "^2.0.0", - "rimraf": "2.6.3", - "write": "1.0.3" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/flat-cache/node_modules/rimraf": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", - "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", - "dev": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - } - }, - "node_modules/flatted": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.2.tgz", - "integrity": "sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==", - "dev": true - }, - "node_modules/flush-write-stream": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz", - "integrity": "sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==", - "dependencies": { - "inherits": "^2.0.3", - "readable-stream": "^2.3.6" - } - }, - "node_modules/follow-redirects": { - "version": "1.5.10", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.5.10.tgz", - "integrity": "sha512-0V5l4Cizzvqt5D44aTXbFZz+FtyXV1vrDN6qrelxtfYQKW0KO0W2T/hkE8xvGa/540LkZlkaUjO4ailYTFtHVQ==", - "dev": true, - "dependencies": { - "debug": "=3.1.0" - }, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/for-in": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", - "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/foreach": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz", - "integrity": "sha1-C+4AUBiusmDQo6865ljdATbsG5k=", - "dev": true - }, - "node_modules/forever-agent": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", - "engines": { - "node": "*" - } - }, - "node_modules/form-data": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", - "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 0.12" - } - }, - "node_modules/form-data-encoder": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/form-data-encoder/-/form-data-encoder-1.7.1.tgz", - "integrity": "sha512-EFRDrsMm/kyqbTQocNvRXMLjc7Es2Vk+IQFx/YW7hkUH1eBl4J1fqiP34l74Yt0pFLCNpc06fkbVk00008mzjg==", - "dev": true - }, - "node_modules/forwarded": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz", - "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/fragment-cache": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", - "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", - "dependencies": { - "map-cache": "^0.2.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/fresh": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/from2": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", - "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", - "dependencies": { - "inherits": "^2.0.1", - "readable-stream": "^2.0.0" - } - }, - "node_modules/fs-constants": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", - "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==", - "dev": true - }, - "node_modules/fs-extra": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", - "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", - "dependencies": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - }, - "engines": { - "node": ">=6 <7 || >=8" - } - }, - "node_modules/fs-minipass": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.7.tgz", - "integrity": "sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==", - "dev": true, - "dependencies": { - "minipass": "^2.6.0" - } - }, - "node_modules/fs-write-stream-atomic": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz", - "integrity": "sha1-tH31NJPvkR33VzHnCp3tAYnbQMk=", - "dependencies": { - "graceful-fs": "^4.1.2", - "iferr": "^0.1.5", - "imurmurhash": "^0.1.4", - "readable-stream": "1 || 2" - } - }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" - }, - "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/functional-red-black-tree": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", - "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=" - }, - "node_modules/ganache": { - "version": "7.8.0", - "resolved": "https://registry.npmjs.org/ganache/-/ganache-7.8.0.tgz", - "integrity": "sha512-IrUYvsaE/m2/NaVIZ7D/gCnsmyU/buechnH6MhUipzG1qJcZIwIp/DoP/LZUcHyhy0Bv0NKZD2pGOjpRhn7l7A==", - "bundleDependencies": [ - "@trufflesuite/bigint-buffer", - "keccak", - "leveldown", - "secp256k1" - ], - "dev": true, - "hasShrinkwrap": true, - "dependencies": { - "@trufflesuite/bigint-buffer": "1.1.10", - "@trufflesuite/uws-js-unofficial": "20.10.0-unofficial.2", - "@types/bn.js": "^5.1.0", - "@types/lru-cache": "5.1.1", - "@types/seedrandom": "3.0.1", - "abstract-level": "1.0.3", - "abstract-leveldown": "7.2.0", - "async-eventemitter": "0.2.4", - "emittery": "0.10.0", - "keccak": "3.0.2", - "leveldown": "6.1.0", - "secp256k1": "4.0.3" - }, - "bin": { - "ganache": "dist/node/cli.js", - "ganache-cli": "dist/node/cli.js" - }, - "optionalDependencies": { - "bufferutil": "4.0.5", - "utf-8-validate": "5.0.7" - } - }, - "node_modules/ganache/node_modules/@trufflesuite/bigint-buffer": { - "version": "1.1.10", - "resolved": "https://registry.npmjs.org/@trufflesuite/bigint-buffer/-/bigint-buffer-1.1.10.tgz", - "integrity": "sha512-pYIQC5EcMmID74t26GCC67946mgTJFiLXOT/BYozgrd4UEY2JHEGLhWi9cMiQCt5BSqFEvKkCHNnoj82SRjiEw==", - "dev": true, - "hasInstallScript": true, - "inBundle": true, - "license": "Apache-2.0", - "dependencies": { - "node-gyp-build": "4.4.0" - }, - "engines": { - "node": ">= 14.0.0" - } - }, - "node_modules/ganache/node_modules/@trufflesuite/bigint-buffer/node_modules/node-gyp-build": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.4.0.tgz", - "integrity": "sha512-amJnQCcgtRVw9SvoebO3BKGESClrfXGCUTX9hSn1OuGQTQBOZmVd0Z0OlecpuRksKvbsUqALE8jls/ErClAPuQ==", - "dev": true, - "inBundle": true, - "license": "MIT", - "bin": { - "node-gyp-build": "bin.js", - "node-gyp-build-optional": "optional.js", - "node-gyp-build-test": "build-test.js" - } - }, - "node_modules/ganache/node_modules/@trufflesuite/uws-js-unofficial": { - "version": "20.10.0-unofficial.2", - "resolved": "https://registry.npmjs.org/@trufflesuite/uws-js-unofficial/-/uws-js-unofficial-20.10.0-unofficial.2.tgz", - "integrity": "sha512-oQQlnS3oNeGsgS4K3KCSSavJgSb0W9D5ktZs4FacX9VbM7b+NlhjH96d6/G4fMrz+bc5MXRyco419on0X0dvRA==", - "dev": true, - "dependencies": { - "ws": "8.2.3" - }, - "optionalDependencies": { - "bufferutil": "4.0.5", - "utf-8-validate": "5.0.7" - } - }, - "node_modules/ganache/node_modules/@types/bn.js": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-5.1.0.tgz", - "integrity": "sha512-QSSVYj7pYFN49kW77o2s9xTCwZ8F2xLbjLLSEVh8D2F4JUhZtPAGOFLTD+ffqksBx/u4cE/KImFjyhqCjn/LIA==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/ganache/node_modules/@types/lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/@types/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-ssE3Vlrys7sdIzs5LOxCzTVMsU7i9oa/IaW92wF32JFb3CVczqOkru2xspuKczHEbG3nvmPY7IFqVmGGHdNbYw==", - "dev": true - }, - "node_modules/ganache/node_modules/@types/node": { - "version": "17.0.0", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.0.tgz", - "integrity": "sha512-eMhwJXc931Ihh4tkU+Y7GiLzT/y/DBNpNtr4yU9O2w3SYBsr9NaOPhQlLKRmoWtI54uNwuo0IOUFQjVOTZYRvw==", - "dev": true - }, - "node_modules/ganache/node_modules/@types/seedrandom": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@types/seedrandom/-/seedrandom-3.0.1.tgz", - "integrity": "sha512-giB9gzDeiCeloIXDgzFBCgjj1k4WxcDrZtGl6h1IqmUPlxF+Nx8Ve+96QCyDZ/HseB/uvDsKbpib9hU5cU53pw==", - "dev": true - }, - "node_modules/ganache/node_modules/abstract-level": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/abstract-level/-/abstract-level-1.0.3.tgz", - "integrity": "sha512-t6jv+xHy+VYwc4xqZMn2Pa9DjcdzvzZmQGRjTFc8spIbRGHgBrEKbPq+rYXc7CCo0lxgYvSgKVg9qZAhpVQSjA==", - "dev": true, - "dependencies": { - "buffer": "^6.0.3", - "catering": "^2.1.0", - "is-buffer": "^2.0.5", - "level-supports": "^4.0.0", - "level-transcoder": "^1.0.1", - "module-error": "^1.0.1", - "queue-microtask": "^1.2.3" - } - }, - "node_modules/ganache/node_modules/abstract-level/node_modules/level-supports": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/level-supports/-/level-supports-4.0.1.tgz", - "integrity": "sha512-PbXpve8rKeNcZ9C1mUicC9auIYFyGpkV9/i6g76tLgANwWhtG2v7I4xNBUlkn3lE2/dZF3Pi0ygYGtLc4RXXdA==", - "dev": true - }, - "node_modules/ganache/node_modules/abstract-leveldown": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-7.2.0.tgz", - "integrity": "sha512-DnhQwcFEaYsvYDnACLZhMmCWd3rkOeEvglpa4q5i/5Jlm3UIsWaxVzuXvDLFCSCWRO3yy2/+V/G7FusFgejnfQ==", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "buffer": "^6.0.3", - "catering": "^2.0.0", - "is-buffer": "^2.0.5", - "level-concat-iterator": "^3.0.0", - "level-supports": "^2.0.1", - "queue-microtask": "^1.2.3" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/ganache/node_modules/async": { - "version": "2.6.4", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.4.tgz", - "integrity": "sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==", - "dev": true, - "dependencies": { - "lodash": "^4.17.14" - } - }, - "node_modules/ganache/node_modules/async-eventemitter": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/async-eventemitter/-/async-eventemitter-0.2.4.tgz", - "integrity": "sha512-pd20BwL7Yt1zwDFy+8MX8F1+WCT8aQeKj0kQnTrH9WaeRETlRamVhD0JtRPmrV4GfOJ2F9CvdQkZeZhnh2TuHw==", - "dev": true, - "dependencies": { - "async": "^2.4.0" - } - }, - "node_modules/ganache/node_modules/base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "inBundle": true, - "license": "MIT" - }, - "node_modules/ganache/node_modules/brorand": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", - "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=", - "dev": true, - "inBundle": true, - "license": "MIT" - }, - "node_modules/ganache/node_modules/buffer": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", - "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "inBundle": true, - "license": "MIT", - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" - } - }, - "node_modules/ganache/node_modules/bufferutil": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/bufferutil/-/bufferutil-4.0.5.tgz", - "integrity": "sha512-HTm14iMQKK2FjFLRTM5lAVcyaUzOnqbPtesFIvREgXpJHdQm8bWS+GkQgIkfaBYRHuCnea7w8UVNfwiAQhlr9A==", - "dev": true, - "hasInstallScript": true, - "optional": true, - "dependencies": { - "node-gyp-build": "^4.3.0" - } - }, - "node_modules/ganache/node_modules/catering": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/catering/-/catering-2.1.0.tgz", - "integrity": "sha512-M5imwzQn6y+ODBfgi+cfgZv2hIUI6oYU/0f35Mdb1ujGeqeoI5tOnl9Q13DTH7LW+7er+NYq8stNOKZD/Z3U/A==", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "queue-tick": "^1.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/ganache/node_modules/elliptic": { - "version": "6.5.4", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", - "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "bn.js": "^4.11.9", - "brorand": "^1.1.0", - "hash.js": "^1.0.0", - "hmac-drbg": "^1.0.1", - "inherits": "^2.0.4", - "minimalistic-assert": "^1.0.1", - "minimalistic-crypto-utils": "^1.0.1" - } - }, - "node_modules/ganache/node_modules/elliptic/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true, - "inBundle": true, - "license": "MIT" - }, - "node_modules/ganache/node_modules/emittery": { - "version": "0.10.0", - "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.10.0.tgz", - "integrity": "sha512-AGvFfs+d0JKCJQ4o01ASQLGPmSCxgfU9RFXvzPvZdjKK8oscynksuJhWrSTSw7j7Ep/sZct5b5ZhYCi8S/t0HQ==", - "dev": true - }, - "node_modules/ganache/node_modules/hash.js": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", - "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.1" - } - }, - "node_modules/ganache/node_modules/hmac-drbg": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", - "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "hash.js": "^1.0.3", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.1" - } - }, - "node_modules/ganache/node_modules/ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "inBundle": true, - "license": "BSD-3-Clause" - }, - "node_modules/ganache/node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true, - "inBundle": true, - "license": "ISC" - }, - "node_modules/ganache/node_modules/is-buffer": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz", - "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/ganache/node_modules/keccak": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/keccak/-/keccak-3.0.2.tgz", - "integrity": "sha512-PyKKjkH53wDMLGrvmRGSNWgmSxZOUqbnXwKL9tmgbFYA1iAYqW21kfR7mZXV0MlESiefxQQE9X9fTa3X+2MPDQ==", - "dev": true, - "hasInstallScript": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "node-addon-api": "^2.0.0", - "node-gyp-build": "^4.2.0", - "readable-stream": "^3.6.0" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/ganache/node_modules/level-concat-iterator": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/level-concat-iterator/-/level-concat-iterator-3.1.0.tgz", - "integrity": "sha512-BWRCMHBxbIqPxJ8vHOvKUsaO0v1sLYZtjN3K2iZJsRBYtp+ONsY6Jfi6hy9K3+zolgQRryhIn2NRZjZnWJ9NmQ==", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "catering": "^2.1.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/ganache/node_modules/level-supports": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/level-supports/-/level-supports-2.1.0.tgz", - "integrity": "sha512-E486g1NCjW5cF78KGPrMDRBYzPuueMZ6VBXHT6gC7A8UYWGiM14fGgp+s/L1oFfDWSPV/+SFkYCmZ0SiESkRKA==", - "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=10" - } - }, - "node_modules/ganache/node_modules/level-transcoder": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/level-transcoder/-/level-transcoder-1.0.1.tgz", - "integrity": "sha512-t7bFwFtsQeD8cl8NIoQ2iwxA0CL/9IFw7/9gAjOonH0PWTTiRfY7Hq+Ejbsxh86tXobDQ6IOiddjNYIfOBs06w==", - "dev": true, - "dependencies": { - "buffer": "^6.0.3", - "module-error": "^1.0.1" - } - }, - "node_modules/ganache/node_modules/leveldown": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/leveldown/-/leveldown-6.1.0.tgz", - "integrity": "sha512-8C7oJDT44JXxh04aSSsfcMI8YiaGRhOFI9/pMEL7nWJLVsWajDPTRxsSHTM2WcTVY5nXM+SuRHzPPi0GbnDX+w==", - "dev": true, - "hasInstallScript": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "abstract-leveldown": "^7.2.0", - "napi-macros": "~2.0.0", - "node-gyp-build": "^4.3.0" - }, - "engines": { - "node": ">=10.12.0" - } - }, - "node_modules/ganache/node_modules/lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "dev": true - }, - "node_modules/ganache/node_modules/minimalistic-assert": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", - "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", - "dev": true, - "inBundle": true, - "license": "ISC" - }, - "node_modules/ganache/node_modules/minimalistic-crypto-utils": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", - "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=", - "dev": true, - "inBundle": true, - "license": "MIT" - }, - "node_modules/ganache/node_modules/module-error": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/module-error/-/module-error-1.0.2.tgz", - "integrity": "sha512-0yuvsqSCv8LbaOKhnsQ/T5JhyFlCYLPXK3U2sgV10zoKQwzs/MyfuQUOZQ1V/6OCOJsK/TRgNVrPuPDqtdMFtA==", - "dev": true - }, - "node_modules/ganache/node_modules/napi-macros": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/napi-macros/-/napi-macros-2.0.0.tgz", - "integrity": "sha512-A0xLykHtARfueITVDernsAWdtIMbOJgKgcluwENp3AlsKN/PloyO10HtmoqnFAQAcxPkgZN7wdfPfEd0zNGxbg==", - "dev": true, - "inBundle": true, - "license": "MIT" - }, - "node_modules/ganache/node_modules/node-addon-api": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-2.0.2.tgz", - "integrity": "sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA==", - "dev": true, - "inBundle": true, - "license": "MIT" - }, - "node_modules/ganache/node_modules/node-gyp-build": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.3.0.tgz", - "integrity": "sha512-iWjXZvmboq0ja1pUGULQBexmxq8CV4xBhX7VDOTbL7ZR4FOowwY/VOtRxBN/yKxmdGoIp4j5ysNT4u3S2pDQ3Q==", - "dev": true, - "inBundle": true, - "license": "MIT", - "bin": { - "node-gyp-build": "bin.js", - "node-gyp-build-optional": "optional.js", - "node-gyp-build-test": "build-test.js" - } - }, - "node_modules/ganache/node_modules/queue-microtask": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "inBundle": true, - "license": "MIT" - }, - "node_modules/ganache/node_modules/queue-tick": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/queue-tick/-/queue-tick-1.0.0.tgz", - "integrity": "sha512-ULWhjjE8BmiICGn3G8+1L9wFpERNxkf8ysxkAer4+TFdRefDaXOCV5m92aMB9FtBVmn/8sETXLXY6BfW7hyaWQ==", - "dev": true, - "inBundle": true, - "license": "MIT" - }, - "node_modules/ganache/node_modules/readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/ganache/node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "inBundle": true, - "license": "MIT" - }, - "node_modules/ganache/node_modules/secp256k1": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-4.0.3.tgz", - "integrity": "sha512-NLZVf+ROMxwtEj3Xa562qgv2BK5e2WNmXPiOdVIPLgs6lyTzMvBq0aWTYMI5XCP9jZMVKOcqZLw/Wc4vDkuxhA==", - "dev": true, - "hasInstallScript": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "elliptic": "^6.5.4", - "node-addon-api": "^2.0.0", - "node-gyp-build": "^4.2.0" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/ganache/node_modules/string_decoder": { - "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==", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "safe-buffer": "~5.2.0" - } - }, - "node_modules/ganache/node_modules/utf-8-validate": { - "version": "5.0.7", - "resolved": "https://registry.npmjs.org/utf-8-validate/-/utf-8-validate-5.0.7.tgz", - "integrity": "sha512-vLt1O5Pp+flcArHGIyKEQq883nBt8nN8tVBcoL0qUXj2XT1n7p70yGIq2VK98I5FdZ1YHc0wk/koOnHjnXWk1Q==", - "dev": true, - "hasInstallScript": true, - "optional": true, - "dependencies": { - "node-gyp-build": "^4.3.0" - } - }, - "node_modules/ganache/node_modules/util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", - "dev": true, - "inBundle": true, - "license": "MIT" - }, - "node_modules/ganache/node_modules/ws": { - "version": "8.2.3", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.2.3.tgz", - "integrity": "sha512-wBuoj1BDpC6ZQ1B7DWQBYVLphPWkm8i9Y0/3YdHjHKHiohOJ1ws+3OccDWtH+PoC9DZD5WOTrJvNbWvjS6JWaA==", - "dev": true - }, - "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==", - "peer": 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", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "engines": { - "node": "6.* || 8.* || >= 10.*" - } - }, - "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": "sha1-6td0q+5y4gQJQzoGY2YCPdaIekE=", - "engines": { - "node": "*" - } - }, - "node_modules/get-intrinsic": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", - "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", - "dev": true, - "dependencies": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/get-iterator": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/get-iterator/-/get-iterator-1.0.2.tgz", - "integrity": "sha512-v+dm9bNVfOYsY1OrhaCrmyOcYoSeVvbt+hHZ0Au+T+p1y+0Uyj9aMaGIeUTT6xdpRbWzDeYKvfOslPhggQMcsg==" - }, - "node_modules/get-stream": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", - "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", - "dev": true, - "dependencies": { - "pump": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/get-value": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", - "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/getpass": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", - "dependencies": { - "assert-plus": "^1.0.0" - } - }, - "node_modules/glob": { - "version": "7.1.6", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", - "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", - "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": "*" - } - }, - "node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/global": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/global/-/global-4.3.2.tgz", - "integrity": "sha1-52mJJopsdMOJCLEwWxD8DjlOnQ8=", - "dependencies": { - "min-document": "^2.19.0", - "process": "~0.5.1" - } - }, - "node_modules/global-modules": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz", - "integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==", - "dependencies": { - "global-prefix": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/global-prefix": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz", - "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==", - "dependencies": { - "ini": "^1.3.5", - "kind-of": "^6.0.2", - "which": "^1.3.1" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/global-prefix/node_modules/which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "which": "bin/which" - } - }, - "node_modules/globals": { - "version": "12.4.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-12.4.0.tgz", - "integrity": "sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg==", - "dev": true, - "dependencies": { - "type-fest": "^0.8.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/globalthis": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.2.tgz", - "integrity": "sha512-ZQnSFO1la8P7auIOQECnm0sSuoMeaSq0EEdXMBFF2QJO4uNcwbyhSgG3MruWNbFTqCLmxVwGOl7LZ9kASvHdeQ==", - "dependencies": { - "define-properties": "^1.1.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/google-protobuf": { - "version": "3.21.2", - "resolved": "https://registry.npmjs.org/google-protobuf/-/google-protobuf-3.21.2.tgz", - "integrity": "sha512-3MSOYFO5U9mPGikIYCzK0SaThypfGgS6bHqrUGXG3DPHCrb+txNqeEcns1W0lkGfk0rCyNXm7xB9rMxnCiZOoA==" - }, - "node_modules/got": { - "version": "9.6.0", - "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz", - "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==", - "dev": true, - "dependencies": { - "@sindresorhus/is": "^0.14.0", - "@szmarczak/http-timer": "^1.1.2", - "cacheable-request": "^6.0.0", - "decompress-response": "^3.3.0", - "duplexer3": "^0.1.4", - "get-stream": "^4.1.0", - "lowercase-keys": "^1.0.1", - "mimic-response": "^1.0.1", - "p-cancelable": "^1.0.0", - "to-readable-stream": "^1.0.0", - "url-parse-lax": "^3.0.0" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/graceful-fs": { - "version": "4.2.10", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", - "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==" - }, - "node_modules/graceful-readlink": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz", - "integrity": "sha1-TK+tdrxi8C+gObL5Tpo906ORpyU=", - "dev": true - }, - "node_modules/graphql": { - "version": "15.8.0", - "resolved": "https://registry.npmjs.org/graphql/-/graphql-15.8.0.tgz", - "integrity": "sha512-5gghUc24tP9HRznNpV2+FIoq3xKkj5dTQqf4v0CpdPbFVwFkWoxOM+o+2OC9ZSvjEMTjfmG9QT+gcvggTwW1zw==", - "engines": { - "node": ">= 10.x" - } - }, - "node_modules/graphql-tag": { - "version": "2.12.6", - "resolved": "https://registry.npmjs.org/graphql-tag/-/graphql-tag-2.12.6.tgz", - "integrity": "sha512-FdSNcu2QQcWnM2VNvSCCDCVS5PpPqpzgFT8+GXzqJuoDd0CBncxCY278u4mhRO7tMgo2JjgJA5aZ+nWSQ/Z+xg==", - "dependencies": { - "tslib": "^2.1.0" - }, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "graphql": "^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0" - } - }, - "node_modules/graphql-tag/node_modules/tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" - }, - "node_modules/growl": { - "version": "1.10.5", - "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz", - "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==", - "engines": { - "node": ">=4.x" - } - }, - "node_modules/har-schema": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", - "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", - "engines": { - "node": ">=4" - } - }, - "node_modules/har-validator": { - "version": "5.1.5", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", - "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", - "deprecated": "this library is no longer supported", - "dev": true, - "dependencies": { - "ajv": "^6.12.3", - "har-schema": "^2.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "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-bigints": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz", - "integrity": "sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "engines": { - "node": ">=4" - } - }, - "node_modules/has-symbol-support-x": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/has-symbol-support-x/-/has-symbol-support-x-1.4.2.tgz", - "integrity": "sha512-3ToOva++HaW+eCpgqZrCfN51IPB+7bJNVT6CUATzueB5Heb8o6Nam0V3HG5dlDvZU1Gn5QLcbahiKw/XVk5JJw==", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/has-symbols": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", - "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-to-string-tag-x": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/has-to-string-tag-x/-/has-to-string-tag-x-1.4.1.tgz", - "integrity": "sha512-vdbKfmw+3LoOYVr+mtxHaX5a96+0f3DljYd8JOqvOLsf5mw2Otda2qCDT9qRqLAhrjyQ0h7ual5nOiASpsGNFw==", - "dev": true, - "dependencies": { - "has-symbol-support-x": "^1.4.1" - }, - "engines": { - "node": "*" - } - }, - "node_modules/has-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", - "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", - "dependencies": { - "get-value": "^2.0.6", - "has-values": "^1.0.0", - "isobject": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/has-values": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", - "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", - "dependencies": { - "is-number": "^3.0.0", - "kind-of": "^4.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/has-values/node_modules/is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" - }, - "node_modules/has-values/node_modules/is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/has-values/node_modules/is-number/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/has-values/node_modules/kind-of": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", - "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/hash-base": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", - "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", - "dependencies": { - "inherits": "^2.0.4", - "readable-stream": "^3.6.0", - "safe-buffer": "^5.2.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/hash-base/node_modules/readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/hash.js": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.3.tgz", - "integrity": "sha512-/UETyP0W22QILqS+6HowevwhEFJ3MBJnwTf75Qob9Wz9t0DPuisL8kW8YZMK62dHAKE1c1p+gY1TtOLY+USEHA==", - "dependencies": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.0" - } - }, - "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/header-case": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/header-case/-/header-case-1.0.1.tgz", - "integrity": "sha512-i0q9mkOeSuhXw6bGgiQCCBgY/jlZuV/7dZXyZ9c6LcBrqwvT8eT719E9uxE5LiZftdl+z81Ugbg/VvXV4OJOeQ==", - "dev": true, - "dependencies": { - "no-case": "^2.2.0", - "upper-case": "^1.1.3" - } - }, - "node_modules/hi-base32": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/hi-base32/-/hi-base32-0.5.1.tgz", - "integrity": "sha512-EmBBpvdYh/4XxsnUybsPag6VikPYnN30td+vQk+GI3qpahVEG9+gTkG0aXVxTjBqQ5T6ijbWIu77O+C5WFWsnA==" - }, - "node_modules/hmac-drbg": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", - "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", - "dependencies": { - "hash.js": "^1.0.3", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.1" - } - }, - "node_modules/hoist-non-react-statics": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", - "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", - "dependencies": { - "react-is": "^16.7.0" - } - }, - "node_modules/homedir-polyfill": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz", - "integrity": "sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==", - "dependencies": { - "parse-passwd": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/hosted-git-info": { - "version": "2.8.8", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz", - "integrity": "sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==", - "dev": true - }, - "node_modules/htmlparser2": { - "version": "3.10.1", - "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.10.1.tgz", - "integrity": "sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ==", - "dev": true, - "dependencies": { - "domelementtype": "^1.3.1", - "domhandler": "^2.3.0", - "domutils": "^1.5.1", - "entities": "^1.1.1", - "inherits": "^2.0.1", - "readable-stream": "^3.1.1" - } - }, - "node_modules/htmlparser2/node_modules/readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dev": true, - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/http-cache-semantics": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", - "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==", - "dev": true - }, - "node_modules/http-errors": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz", - "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==", - "dependencies": { - "depd": "~1.1.2", - "inherits": "2.0.3", - "setprototypeof": "1.1.1", - "statuses": ">= 1.5.0 < 2", - "toidentifier": "1.0.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/http-errors/node_modules/inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" - }, - "node_modules/http-https": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/http-https/-/http-https-1.0.0.tgz", - "integrity": "sha1-L5CN1fHbQGjAWM1ubUzjkskTOJs=" - }, - "node_modules/http-parser-js": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.2.tgz", - "integrity": "sha512-opCO9ASqg5Wy2FNo7A0sxy71yGbbkJJXLdgMK04Tcypw9jr2MgWbyubb0+WdmDmGnFflO7fRbqbaihh/ENDlRQ==", - "dev": true - }, - "node_modules/http-signature": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", - "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", - "dependencies": { - "assert-plus": "^1.0.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" - }, - "engines": { - "node": ">=0.8", - "npm": ">=1.3.7" - } - }, - "node_modules/http-status-codes": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/http-status-codes/-/http-status-codes-2.2.0.tgz", - "integrity": "sha512-feERVo9iWxvnejp3SEfm/+oNG517npqL2/PIA8ORjyOZjGC7TwCRQsZylciLS64i6pJ0wRYz3rkXLRwbtFa8Ng==" - }, - "node_modules/http2-wrapper": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-2.2.0.tgz", - "integrity": "sha512-kZB0wxMo0sh1PehyjJUWRFEd99KC5TLjZ2cULC4f9iqJBAmKQQXEICjxl5iPJRwP40dpeHFqqhm7tYCvODpqpQ==", - "dev": true, - "dependencies": { - "quick-lru": "^5.1.1", - "resolve-alpn": "^1.2.0" - }, - "engines": { - "node": ">=10.19.0" - } - }, - "node_modules/https-browserify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", - "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=" - }, - "node_modules/humanize-ms": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz", - "integrity": "sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==", - "dependencies": { - "ms": "^2.0.0" - } - }, - "node_modules/iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "dev": true, - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/idb": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/idb/-/idb-3.0.2.tgz", - "integrity": "sha512-+FLa/0sTXqyux0o6C+i2lOR0VoS60LU/jzUo5xjfY6+7sEEgy4Gz1O7yFBXvjd7N0NyIGWIRg8DcQSLEG+VSPw==", - "dev": true - }, - "node_modules/idna-uts46-hx": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/idna-uts46-hx/-/idna-uts46-hx-2.3.1.tgz", - "integrity": "sha512-PWoF9Keq6laYdIRwwCdhTPl60xRqAloYNMQLiyUnG42VjT53oW07BXIRM+NK7eQjzXjAk2gUvX9caRxlnF9TAA==", - "dev": true, - "dependencies": { - "punycode": "2.1.0" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/idna-uts46-hx/node_modules/punycode": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.0.tgz", - "integrity": "sha1-X4Y+3Im5bbCQdLrXlHvwkFbKTn0=", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "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/iferr": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz", - "integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=" - }, - "node_modules/ignore": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", - "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", - "dev": true, - "engines": { - "node": ">= 4" - } - }, - "node_modules/immediate": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.3.0.tgz", - "integrity": "sha512-HR7EVodfFUdQCTIeySw+WDRFJlPcLOJbXfwwZ7Oom6tjsvZ3bOkCDJHehQC3nxJrv7+f9XecwazynjU8e4Vw3Q==" - }, - "node_modules/import-fresh": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.2.1.tgz", - "integrity": "sha512-6e1q1cnWP2RXD9/keSkxHScg508CdXqXWgWBaETNhyuBFz+kUZlKboh+ISK+bU++DmbHimVBrOz/zzPe0sZ3sQ==", - "dev": true, - "dependencies": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/import-local": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/import-local/-/import-local-2.0.0.tgz", - "integrity": "sha512-b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ==", - "dependencies": { - "pkg-dir": "^3.0.0", - "resolve-cwd": "^2.0.0" - }, - "bin": { - "import-local-fixture": "fixtures/cli.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", - "engines": { - "node": ">=0.8.19" - } - }, - "node_modules/infer-owner": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", - "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==" - }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" - }, - "node_modules/ini": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" - }, - "node_modules/inquirer": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-6.5.2.tgz", - "integrity": "sha512-cntlB5ghuB0iuO65Ovoi8ogLHiWGs/5yNrtUcKjFhSSiVeAIVpD7koaSU9RM8mpXw5YDi9RdYXGQMaOURB7ycQ==", - "dev": true, - "dependencies": { - "ansi-escapes": "^3.2.0", - "chalk": "^2.4.2", - "cli-cursor": "^2.1.0", - "cli-width": "^2.0.0", - "external-editor": "^3.0.3", - "figures": "^2.0.0", - "lodash": "^4.17.12", - "mute-stream": "0.0.7", - "run-async": "^2.2.0", - "rxjs": "^6.4.0", - "string-width": "^2.1.0", - "strip-ansi": "^5.1.0", - "through": "^2.3.6" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/inquirer/node_modules/cli-cursor": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", - "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", - "dev": true, - "dependencies": { - "restore-cursor": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/inquirer/node_modules/mimic-fn": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", - "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/inquirer/node_modules/onetime": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", - "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", - "dev": true, - "dependencies": { - "mimic-fn": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/inquirer/node_modules/restore-cursor": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", - "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", - "dev": true, - "dependencies": { - "onetime": "^2.0.0", - "signal-exit": "^3.0.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/interpret": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", - "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==", - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/ipaddr.js": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", - "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", - "dev": true, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/ipfs-http-client-lite": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/ipfs-http-client-lite/-/ipfs-http-client-lite-0.3.0.tgz", - "integrity": "sha512-fmxEctpzqaPd0gooBuvjMwxSoqz15rwjjm2ZF3Ns4Ckz/zz5JEmiDKuwlMOfwkARd5Wsiy2FqQpQEvBTJ8R7Og==", - "dependencies": { - "abort-controller": "^3.0.0", - "async-iterator-to-pull-stream": "^1.3.0", - "buffer": "^5.2.1", - "cids": "^0.7.1", - "explain-error": "^1.0.4", - "form-data": "^2.4.0", - "iterable-ndjson": "^1.1.0", - "node-fetch": "^2.6.0", - "pull-stream-to-async-iterator": "^1.0.2", - "querystring": "^0.2.0" - }, - "engines": { - "node": ">=10.0.0", - "npm": ">=5.6.0" - } - }, - "node_modules/ipfs-http-client-lite/node_modules/form-data": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.5.1.tgz", - "integrity": "sha512-m21N3WOmEEURgk6B9GLOE4RuWOFf28Lhh9qGYeNlGq4VDXUlJy2th2slBNU8Gp8EzloYZOibZJ7t5ecIrFSjVA==", - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 0.12" - } - }, - "node_modules/ipfs-http-client-lite/node_modules/node-fetch": { - "version": "2.6.7", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", - "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", - "dependencies": { - "whatwg-url": "^5.0.0" - }, - "engines": { - "node": "4.x || >=6.0.0" - }, - "peerDependencies": { - "encoding": "^0.1.0" - }, - "peerDependenciesMeta": { - "encoding": { - "optional": true - } - } - }, - "node_modules/is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dependencies": { - "kind-of": "^6.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-arguments": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.0.4.tgz", - "integrity": "sha512-xPh0Rmt8NE65sNzvyUmWgI1tz3mKq74lGA0mL8LYZcoIzKOzDh6HmrYm3d18k60nHerC8A9Km8kYu87zfSFnLA==", - "dev": true, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/is-bigint": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.2.tgz", - "integrity": "sha512-0JV5+SOCQkIdzjBK9buARcV804Ddu7A0Qet6sHi3FimE9ne6m4BGQZfRn+NZiXbBk4F4XmHfDZIipLj9pX8dSA==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dependencies": { - "binary-extensions": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-boolean-object": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.1.tgz", - "integrity": "sha512-bXdQWkECBUIAcCkeH1unwJLIpZYaa5VvuygSyS/c2lf719mTKZDU5UdDRlpd01UjADgmW8RfqaP+mRaVPdr/Ng==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-buffer": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz", - "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "engines": { - "node": ">=4" - } - }, - "node_modules/is-callable": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.3.tgz", - "integrity": "sha512-J1DcMe8UYTBSrKezuIUTUwjXsho29693unXM2YhJUTR2txK/eG47bvNa/wipPFmZFgr/N6f1GA66dv0mEyTIyQ==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dependencies": { - "kind-of": "^6.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-date-object": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz", - "integrity": "sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==", - "dev": true, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dependencies": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dependencies": { - "is-plain-object": "^2.0.4" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-fn": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fn/-/is-fn-1.0.0.tgz", - "integrity": "sha1-lUPV3nvPWwiiLsiiC65uKG1RDYw=", - "engines": { - "node": ">=0.10.0" - } - }, - "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": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "engines": { - "node": ">=4" - } - }, - "node_modules/is-function": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-function/-/is-function-1.0.2.tgz", - "integrity": "sha512-lw7DUp0aWXYg+CBCN+JKkcE0Q2RayZnSvnZBlwgxHBQhqt5pZNVy4Ri7H9GmmXkdu7LUthszM+Tor1u/2iBcpQ==" - }, - "node_modules/is-generator-function": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.9.tgz", - "integrity": "sha512-ZJ34p1uvIfptHCN7sFTjGibB9/oBg17sHqzDLfuwhvmN/qLVvIQXRQ8licZQ35WJ8KuEQt/etnnzQFI9C9Ue/A==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-glob": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", - "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", - "dependencies": { - "is-extglob": "^2.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-hex-prefixed": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-hex-prefixed/-/is-hex-prefixed-1.0.0.tgz", - "integrity": "sha1-fY035q135dEnFIkTxXPggtd39VQ=", - "engines": { - "node": ">=6.5.0", - "npm": ">=3" - } - }, - "node_modules/is-lower-case": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/is-lower-case/-/is-lower-case-1.1.3.tgz", - "integrity": "sha512-+5A1e/WJpLLXZEDlgz4G//WYSHyQBD32qa4Jd3Lw06qQlv3fJHnp3YIHjTQSGzHMgzmVKz2ZP3rBxTHkPw/lxA==", - "dev": true, - "dependencies": { - "lower-case": "^1.1.0" - } - }, - "node_modules/is-natural-number": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/is-natural-number/-/is-natural-number-4.0.1.tgz", - "integrity": "sha1-q5124dtM7VHjXeDHLr7PCfc0zeg=", - "dev": true - }, - "node_modules/is-negative-zero": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.1.tgz", - "integrity": "sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/is-number-object": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.5.tgz", - "integrity": "sha512-RU0lI/n95pMoUKu9v1BZP5MBcZuNSVJkMkAG2dJqC4z2GlkGUNeH68SuHuBKBD/XFe+LHZ+f9BKkLET60Niedw==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-obj": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", - "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-object": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-object/-/is-object-1.0.1.tgz", - "integrity": "sha1-iVJojF7C/9awPsyF52ngKQMINHA=", - "dev": true - }, - "node_modules/is-plain-obj": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", - "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "dependencies": { - "isobject": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-regex": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.3.tgz", - "integrity": "sha512-qSVXFz28HM7y+IWX6vLCsexdlvzT1PJNFSBuaQLQ5o0IEw8UDYW6/2+eCMVyIsbM8CNLX2a/QWmSpyxYEHY7CQ==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "has-symbols": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-retry-allowed": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.2.0.tgz", - "integrity": "sha512-RUbUeKwvm3XG2VYamhJL1xFktgjvPzL0Hq8C+6yrWIswDy3BIXGqCxhxkc30N9jqK311gVU137K8Ei55/zVJRg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-stream": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-string": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.5.tgz", - "integrity": "sha512-buY6VNRjhQMiF1qWDouloZlQbRhDPCebwxSjxMjxgemYT46YMd2NR0/H+fBhEfWX4A/w9TBJ+ol+okqJKFE6vQ==", - "dev": true, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/is-symbol": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz", - "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==", - "dev": true, - "dependencies": { - "has-symbols": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/is-typed-array": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.5.tgz", - "integrity": "sha512-S+GRDgJlR3PyEbsX/Fobd9cqpZBuvUS+8asRqYDMLCb2qMzt1oz5m5oxQCxOgUDxiWsOVNi4yaF+/uvdlHlYug==", - "dev": true, - "dependencies": { - "available-typed-arrays": "^1.0.2", - "call-bind": "^1.0.2", - "es-abstract": "^1.18.0-next.2", - "foreach": "^2.0.5", - "has-symbols": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" - }, - "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==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-upper-case": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/is-upper-case/-/is-upper-case-1.1.2.tgz", - "integrity": "sha512-GQYSJMgfeAmVwh9ixyk888l7OIhNAGKtY6QA+IrWlu9MDTCaXmeozOZ2S9Knj7bQwBO/H6J2kb+pbyTUiMNbsw==", - "dev": true, - "dependencies": { - "upper-case": "^1.1.0" - } - }, - "node_modules/is-url": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/is-url/-/is-url-1.2.4.tgz", - "integrity": "sha512-ITvGim8FhRiYe4IQ5uHSkj7pVaPDrCTkNd3yq3cV7iZAcJdHTUMPMEHcqSOy9xZ9qFenQCvi+2wjH9a1nXqHww==", - "dev": true - }, - "node_modules/is-windows": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", - "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-wsl": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", - "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=", - "engines": { - "node": ">=4" - } - }, - "node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" - }, - "node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" - }, - "node_modules/isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/isomorphic-fetch": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz", - "integrity": "sha1-YRrhrPFPXoH3KVB0coGf6XM1WKk=", - "dev": true, - "dependencies": { - "node-fetch": "^1.0.1", - "whatwg-fetch": ">=0.10.0" - } - }, - "node_modules/isomorphic-ws": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/isomorphic-ws/-/isomorphic-ws-4.0.1.tgz", - "integrity": "sha512-BhBvN2MBpWTaSHdWRb/bwdZJ1WaehQ2L1KngkCkfLUGF0mAWAT1sQUQacEmQ0jXkFw/czDXPNQSL5u2/Krsz1w==", - "peerDependencies": { - "ws": "*" - } - }, - "node_modules/isstream": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" - }, - "node_modules/isurl": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isurl/-/isurl-1.0.0.tgz", - "integrity": "sha512-1P/yWsxPlDtn7QeRD+ULKQPaIaN6yF368GZ2vDfv0AL0NwpStafjWCDDdn0k8wgFMWpVAqG7oJhxHnlud42i9w==", - "dev": true, - "dependencies": { - "has-to-string-tag-x": "^1.2.0", - "is-object": "^1.0.1" - }, - "engines": { - "node": ">= 4" - } - }, - "node_modules/it-each": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/it-each/-/it-each-0.4.0.tgz", - "integrity": "sha512-fbOxSUiOByQnkgoFUEKPfzAuoUZ0mQRAXdWWsfI53gMJZ2oyhPcJBOCFx8yuMM36yP6OUUL3LgilYEqBiSACmQ==", - "dependencies": { - "dot-notes": "3.1.1" - } - }, - "node_modules/iterable-ndjson": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/iterable-ndjson/-/iterable-ndjson-1.1.0.tgz", - "integrity": "sha512-OOp1Lb0o3k5MkXHx1YaIY5Z0ELosZfTnBaas9f8opJVcZGBIONA2zY/6CYE+LKkqrSDooIneZbrBGgOZnHPkrg==", - "dependencies": { - "string_decoder": "^1.2.0" - } - }, - "node_modules/iterable-ndjson/node_modules/string_decoder": { - "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" - } - }, - "node_modules/iterall": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/iterall/-/iterall-1.3.0.tgz", - "integrity": "sha512-QZ9qOMdF+QLHxy1QIpUHUU1D5pS2CG2P69LF6L6CPjPYA/XMOmKV3PZpawHoAjHNyB0swdVTRxdYT4tbBbxqwg==", - "optional": true, - "peer": true - }, - "node_modules/jayson": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/jayson/-/jayson-3.7.0.tgz", - "integrity": "sha512-tfy39KJMrrXJ+mFcMpxwBvFDetS8LAID93+rycFglIQM4kl3uNR3W4lBLE/FFhsoUCEox5Dt2adVpDm/XtebbQ==", - "dependencies": { - "@types/connect": "^3.4.33", - "@types/node": "^12.12.54", - "@types/ws": "^7.4.4", - "commander": "^2.20.3", - "delay": "^5.0.0", - "es6-promisify": "^5.0.0", - "eyes": "^0.1.8", - "isomorphic-ws": "^4.0.1", - "json-stringify-safe": "^5.0.1", - "JSONStream": "^1.3.5", - "lodash": "^4.17.20", - "uuid": "^8.3.2", - "ws": "^7.4.5" - }, - "bin": { - "jayson": "bin/jayson.js" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jayson/node_modules/@types/node": { - "version": "12.20.55", - "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.55.tgz", - "integrity": "sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==" - }, - "node_modules/jayson/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==", - "bin": { - "uuid": "dist/bin/uuid" - } - }, - "node_modules/jayson/node_modules/ws": { - "version": "7.5.9", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz", - "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==", - "engines": { - "node": ">=8.3.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": "^5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, - "node_modules/js-base64": { - "version": "3.7.5", - "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-3.7.5.tgz", - "integrity": "sha512-3MEt5DTINKqfScXKfJFrRbxkrnk2AxPWGBL/ycjz4dK8iqiSJ06UxD8jh8xuh6p10TX4t2+7FsBYVxxQbMg+qA==" - }, - "node_modules/js-sha256": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/js-sha256/-/js-sha256-0.9.0.tgz", - "integrity": "sha512-sga3MHh9sgQN2+pJ9VYZ+1LPwXOxuBJBA5nrR5/ofPfuiJBE2hnjsaN8se8JznOmGLN2p49Pe5U/ttafcs/apA==" - }, - "node_modules/js-sha3": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.5.7.tgz", - "integrity": "sha1-DU/9gALVMzqrr0oj7tL2N0yfKOc=" - }, - "node_modules/js-sha512": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/js-sha512/-/js-sha512-0.8.0.tgz", - "integrity": "sha512-PWsmefG6Jkodqt+ePTvBZCSMFgN7Clckjd0O7su3I0+BW2QWUTJNzjktHsztGLhncP2h8mcF9V9Y2Ha59pAViQ==" - }, - "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==" - }, - "node_modules/js-yaml": { - "version": "3.13.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz", - "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==", - "dev": true, - "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=" - }, - "node_modules/jscrypto": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/jscrypto/-/jscrypto-1.0.3.tgz", - "integrity": "sha512-lryZl0flhodv4SZHOqyb1bx5sKcJxj0VBo0Kzb4QMAg3L021IC9uGpl0RCZa+9KJwlRGSK2C80ITcwbe19OKLQ==", - "bin": { - "jscrypto": "bin/cli.js" - } - }, - "node_modules/jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", - "bin": { - "jsesc": "bin/jsesc" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/json-bigint": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-bigint/-/json-bigint-1.0.0.tgz", - "integrity": "sha512-SiPv/8VpZuWbvLSMtTDU8hEfrZWg/mH/nV/b4o0CYbSxu1UIQPLdwKOCIyLQX+VIPO5vrLX3i8qtqFyhdPSUSQ==", - "dependencies": { - "bignumber.js": "^9.0.0" - } - }, - "node_modules/json-bigint/node_modules/bignumber.js": { - "version": "9.1.1", - "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.1.1.tgz", - "integrity": "sha512-pHm4LsMJ6lzgNGVfZHjMoO8sdoRhOzOH4MLmY65Jg70bpxCKu5iOHNJyfF6OyvYw7t8Fpf35RuzUyqnQsj8Vig==", - "engines": { - "node": "*" - } - }, - "node_modules/json-buffer": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", - "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=", - "dev": true - }, - "node_modules/json-parse-better-errors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", - "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==" - }, - "node_modules/json-pointer": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/json-pointer/-/json-pointer-0.6.2.tgz", - "integrity": "sha512-vLWcKbOaXlO+jvRy4qNd+TI1QUPZzfJj1tpJ3vAXDych5XJf93ftpUKe5pKCrzyIIwgBJcOcCVRUfqQP25afBw==", - "dev": true, - "dependencies": { - "foreach": "^2.0.4" - } - }, - "node_modules/json-rpc-engine": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/json-rpc-engine/-/json-rpc-engine-5.4.0.tgz", - "integrity": "sha512-rAffKbPoNDjuRnXkecTjnsE3xLLrb00rEkdgalINhaYVYIxDwWtvYBr9UFbhTvPB1B2qUOLoFd/cV6f4Q7mh7g==", - "dependencies": { - "eth-rpc-errors": "^3.0.0", - "safe-event-emitter": "^1.0.1" - } - }, - "node_modules/json-rpc-random-id": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-rpc-random-id/-/json-rpc-random-id-1.0.1.tgz", - "integrity": "sha1-uknZat7RRE27jaPSA3SKy7zeyMg=" - }, - "node_modules/json-schema": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", - "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=" - }, - "node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" - }, - "node_modules/json-schema-typed": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/json-schema-typed/-/json-schema-typed-7.0.3.tgz", - "integrity": "sha512-7DE8mpG+/fVw+dTpjbxnx47TaMnDfOI1jwft9g1VybltZCduyRQPJPvc+zzKY9WPHxhPWczyFuYa6I8Mw4iU5A==", - "dev": true, - "optional": true - }, - "node_modules/json-stable-stringify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz", - "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=", - "dependencies": { - "jsonify": "~0.0.0" - } - }, - "node_modules/json-stable-stringify-without-jsonify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", - "dev": true - }, - "node_modules/json-stringify-safe": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" - }, - "node_modules/json-text-sequence": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/json-text-sequence/-/json-text-sequence-0.1.1.tgz", - "integrity": "sha1-py8hfcSvxGKf/1/rME3BvVGi89I=", - "dev": true, - "dependencies": { - "delimit-stream": "0.1.0" - } - }, - "node_modules/json5": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz", - "integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==", - "peer": true, - "dependencies": { - "minimist": "^1.2.5" - }, - "bin": { - "json5": "lib/cli.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", - "dependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/jsonify": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", - "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=" - }, - "node_modules/jsonparse": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", - "integrity": "sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==", - "engines": [ - "node >= 0.2.0" - ] - }, - "node_modules/jsonschema": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/jsonschema/-/jsonschema-1.4.1.tgz", - "integrity": "sha512-S6cATIPVv1z0IlxdN+zUk5EPjkGCdnhN4wVSBlvoUO1tOLJootbo9CquNJmbIh4yikWHiUedhRYrNPn1arpEmQ==", - "engines": { - "node": "*" - } - }, - "node_modules/JSONStream": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz", - "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==", - "dependencies": { - "jsonparse": "^1.2.0", - "through": ">=2.2.7 <3" - }, - "bin": { - "JSONStream": "bin.js" - }, - "engines": { - "node": "*" - } - }, - "node_modules/jsprim": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", - "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", - "engines": [ - "node >=0.6.0" - ], - "dependencies": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.2.3", - "verror": "1.10.0" - } - }, - "node_modules/keccak": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/keccak/-/keccak-3.0.3.tgz", - "integrity": "sha512-JZrLIAJWuZxKbCilMpNz5Vj7Vtb4scDG3dMXLOsbzBmQGyjwE61BbW7bJkfKKCShXiQZt3T6sBgALRtmd+nZaQ==", - "hasInstallScript": true, - "dependencies": { - "node-addon-api": "^2.0.0", - "node-gyp-build": "^4.2.0", - "readable-stream": "^3.6.0" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/keccak/node_modules/readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/keccak256": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/keccak256/-/keccak256-1.0.6.tgz", - "integrity": "sha512-8GLiM01PkdJVGUhR1e6M/AvWnSqYS0HaERI+K/QtStGDGlSTx2B1zTqZk4Zlqu5TxHJNTxWAdP9Y+WI50OApUw==", - "dependencies": { - "bn.js": "^5.2.0", - "buffer": "^6.0.3", - "keccak": "^3.0.2" - } - }, - "node_modules/keccak256/node_modules/bn.js": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", - "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==" - }, - "node_modules/keccak256/node_modules/buffer": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", - "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" - } - }, - "node_modules/keyv": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz", - "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==", - "dev": true, - "dependencies": { - "json-buffer": "3.0.0" - } - }, - "node_modules/kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/klaw": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/klaw/-/klaw-1.3.1.tgz", - "integrity": "sha1-QIhDO0azsbolnXh4XY6W9zugJDk=", - "dev": true, - "dependencies": { - "graceful-fs": "^4.1.9" - } - }, - "node_modules/level": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/level/-/level-6.0.1.tgz", - "integrity": "sha512-psRSqJZCsC/irNhfHzrVZbmPYXDcEYhA5TVNwr+V92jF44rbf86hqGp8fiT702FyiArScYIlPSBTDUASCVNSpw==", - "dev": true, - "optional": true, - "dependencies": { - "level-js": "^5.0.0", - "level-packager": "^5.1.0", - "leveldown": "^5.4.0" - }, - "engines": { - "node": ">=8.6.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/level" - } - }, - "node_modules/level-codec": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/level-codec/-/level-codec-7.0.1.tgz", - "integrity": "sha512-Ua/R9B9r3RasXdRmOtd+t9TCOEIIlts+TN/7XTT2unhDaL6sJn83S3rUyljbr6lVtw49N3/yA0HHjpV6Kzb2aQ==" - }, - "node_modules/level-concat-iterator": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/level-concat-iterator/-/level-concat-iterator-3.1.0.tgz", - "integrity": "sha512-BWRCMHBxbIqPxJ8vHOvKUsaO0v1sLYZtjN3K2iZJsRBYtp+ONsY6Jfi6hy9K3+zolgQRryhIn2NRZjZnWJ9NmQ==", - "dev": true, - "optional": true, - "dependencies": { - "catering": "^2.1.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/level-errors": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/level-errors/-/level-errors-1.0.5.tgz", - "integrity": "sha512-/cLUpQduF6bNrWuAC4pwtUKA5t669pCsCi2XbmojG2tFeOr9j6ShtdDCtFFQO1DRt+EVZhx9gPzP9G2bUaG4ig==", - "dependencies": { - "errno": "~0.1.1" - } - }, - "node_modules/level-iterator-stream": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/level-iterator-stream/-/level-iterator-stream-1.3.1.tgz", - "integrity": "sha1-5Dt4sagUPm+pek9IXrjqUwNS8u0=", - "dependencies": { - "inherits": "^2.0.1", - "level-errors": "^1.0.3", - "readable-stream": "^1.0.33", - "xtend": "^4.0.0" - } - }, - "node_modules/level-iterator-stream/node_modules/isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" - }, - "node_modules/level-iterator-stream/node_modules/readable-stream": { - "version": "1.1.14", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", - "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" - } - }, - "node_modules/level-iterator-stream/node_modules/string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" - }, - "node_modules/level-js": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/level-js/-/level-js-5.0.2.tgz", - "integrity": "sha512-SnBIDo2pdO5VXh02ZmtAyPP6/+6YTJg2ibLtl9C34pWvmtMEmRTWpra+qO/hifkUtBTOtfx6S9vLDjBsBK4gRg==", - "dev": true, - "optional": true, - "dependencies": { - "abstract-leveldown": "~6.2.3", - "buffer": "^5.5.0", - "inherits": "^2.0.3", - "ltgt": "^2.1.2" - } - }, - "node_modules/level-js/node_modules/abstract-leveldown": { - "version": "6.2.3", - "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-6.2.3.tgz", - "integrity": "sha512-BsLm5vFMRUrrLeCcRc+G0t2qOaTzpoJQLOubq2XM72eNpjF5UdU5o/5NvlNhx95XHcAvcl8OMXr4mlg/fRgUXQ==", - "dev": true, - "optional": true, - "dependencies": { - "buffer": "^5.5.0", - "immediate": "^3.2.3", - "level-concat-iterator": "~2.0.0", - "level-supports": "~1.0.0", - "xtend": "~4.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/level-js/node_modules/level-concat-iterator": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/level-concat-iterator/-/level-concat-iterator-2.0.1.tgz", - "integrity": "sha512-OTKKOqeav2QWcERMJR7IS9CUo1sHnke2C0gkSmcR7QuEtFNLLzHQAvnMw8ykvEcv0Qtkg0p7FOwP1v9e5Smdcw==", - "dev": true, - "optional": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/level-js/node_modules/level-supports": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/level-supports/-/level-supports-1.0.1.tgz", - "integrity": "sha512-rXM7GYnW8gsl1vedTJIbzOrRv85c/2uCMpiiCzO2fndd06U/kUXEEU9evYn4zFggBOg36IsBW8LzqIpETwwQzg==", - "dev": true, - "optional": true, - "dependencies": { - "xtend": "^4.0.2" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/level-packager": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/level-packager/-/level-packager-5.1.1.tgz", - "integrity": "sha512-HMwMaQPlTC1IlcwT3+swhqf/NUO+ZhXVz6TY1zZIIZlIR0YSn8GtAAWmIvKjNY16ZkEg/JcpAuQskxsXqC0yOQ==", - "dev": true, - "optional": true, - "dependencies": { - "encoding-down": "^6.3.0", - "levelup": "^4.3.2" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/level-packager/node_modules/abstract-leveldown": { - "version": "6.2.3", - "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-6.2.3.tgz", - "integrity": "sha512-BsLm5vFMRUrrLeCcRc+G0t2qOaTzpoJQLOubq2XM72eNpjF5UdU5o/5NvlNhx95XHcAvcl8OMXr4mlg/fRgUXQ==", - "dev": true, - "optional": true, - "dependencies": { - "buffer": "^5.5.0", - "immediate": "^3.2.3", - "level-concat-iterator": "~2.0.0", - "level-supports": "~1.0.0", - "xtend": "~4.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/level-packager/node_modules/deferred-leveldown": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/deferred-leveldown/-/deferred-leveldown-5.3.0.tgz", - "integrity": "sha512-a59VOT+oDy7vtAbLRCZwWgxu2BaCfd5Hk7wxJd48ei7I+nsg8Orlb9CLG0PMZienk9BSUKgeAqkO2+Lw+1+Ukw==", - "dev": true, - "optional": true, - "dependencies": { - "abstract-leveldown": "~6.2.1", - "inherits": "^2.0.3" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/level-packager/node_modules/level-concat-iterator": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/level-concat-iterator/-/level-concat-iterator-2.0.1.tgz", - "integrity": "sha512-OTKKOqeav2QWcERMJR7IS9CUo1sHnke2C0gkSmcR7QuEtFNLLzHQAvnMw8ykvEcv0Qtkg0p7FOwP1v9e5Smdcw==", - "dev": true, - "optional": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/level-packager/node_modules/level-errors": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/level-errors/-/level-errors-2.0.1.tgz", - "integrity": "sha512-UVprBJXite4gPS+3VznfgDSU8PTRuVX0NXwoWW50KLxd2yw4Y1t2JUR5In1itQnudZqRMT9DlAM3Q//9NCjCFw==", - "dev": true, - "optional": true, - "dependencies": { - "errno": "~0.1.1" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/level-packager/node_modules/level-iterator-stream": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/level-iterator-stream/-/level-iterator-stream-4.0.2.tgz", - "integrity": "sha512-ZSthfEqzGSOMWoUGhTXdX9jv26d32XJuHz/5YnuHZzH6wldfWMOVwI9TBtKcya4BKTyTt3XVA0A3cF3q5CY30Q==", - "dev": true, - "optional": true, - "dependencies": { - "inherits": "^2.0.4", - "readable-stream": "^3.4.0", - "xtend": "^4.0.2" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/level-packager/node_modules/level-supports": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/level-supports/-/level-supports-1.0.1.tgz", - "integrity": "sha512-rXM7GYnW8gsl1vedTJIbzOrRv85c/2uCMpiiCzO2fndd06U/kUXEEU9evYn4zFggBOg36IsBW8LzqIpETwwQzg==", - "dev": true, - "optional": true, - "dependencies": { - "xtend": "^4.0.2" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/level-packager/node_modules/levelup": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/levelup/-/levelup-4.4.0.tgz", - "integrity": "sha512-94++VFO3qN95cM/d6eBXvd894oJE0w3cInq9USsyQzzoJxmiYzPAocNcuGCPGGjoXqDVJcr3C1jzt1TSjyaiLQ==", - "dev": true, - "optional": true, - "dependencies": { - "deferred-leveldown": "~5.3.0", - "level-errors": "~2.0.0", - "level-iterator-stream": "~4.0.0", - "level-supports": "~1.0.0", - "xtend": "~4.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/level-packager/node_modules/readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "dev": true, - "optional": true, - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/level-supports": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/level-supports/-/level-supports-2.1.0.tgz", - "integrity": "sha512-E486g1NCjW5cF78KGPrMDRBYzPuueMZ6VBXHT6gC7A8UYWGiM14fGgp+s/L1oFfDWSPV/+SFkYCmZ0SiESkRKA==", - "dev": true, - "optional": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/level-write-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/level-write-stream/-/level-write-stream-1.0.0.tgz", - "integrity": "sha512-bBNKOEOMl8msO+uIM9YX/gUO6ckokZ/4pCwTm/lwvs46x6Xs8Zy0sn3Vh37eDqse4mhy4fOMIb/JsSM2nyQFtw==", - "dev": true, - "optional": true, - "dependencies": { - "end-stream": "~0.1.0" - } - }, - "node_modules/level-ws": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/level-ws/-/level-ws-0.0.0.tgz", - "integrity": "sha1-Ny5RIXeSSgBCSwtDrvK7QkltIos=", - "dependencies": { - "readable-stream": "~1.0.15", - "xtend": "~2.1.1" - } - }, - "node_modules/level-ws/node_modules/isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" - }, - "node_modules/level-ws/node_modules/object-keys": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-0.4.0.tgz", - "integrity": "sha1-KKaq50KN0sOpLz2V8hM13SBOAzY=" - }, - "node_modules/level-ws/node_modules/readable-stream": { - "version": "1.0.34", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", - "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" - } - }, - "node_modules/level-ws/node_modules/string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" - }, - "node_modules/level-ws/node_modules/xtend": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-2.1.2.tgz", - "integrity": "sha1-bv7MKk2tjmlixJAbM3znuoe10os=", - "dependencies": { - "object-keys": "~0.4.0" - }, - "engines": { - "node": ">=0.4" - } - }, - "node_modules/leveldown": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/leveldown/-/leveldown-5.6.0.tgz", - "integrity": "sha512-iB8O/7Db9lPaITU1aA2txU/cBEXAt4vWwKQRrrWuS6XDgbP4QZGj9BL2aNbwb002atoQ/lIotJkfyzz+ygQnUQ==", - "dev": true, - "hasInstallScript": true, - "optional": true, - "dependencies": { - "abstract-leveldown": "~6.2.1", - "napi-macros": "~2.0.0", - "node-gyp-build": "~4.1.0" - }, - "engines": { - "node": ">=8.6.0" - } - }, - "node_modules/leveldown/node_modules/abstract-leveldown": { - "version": "6.2.3", - "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-6.2.3.tgz", - "integrity": "sha512-BsLm5vFMRUrrLeCcRc+G0t2qOaTzpoJQLOubq2XM72eNpjF5UdU5o/5NvlNhx95XHcAvcl8OMXr4mlg/fRgUXQ==", - "dev": true, - "optional": true, - "dependencies": { - "buffer": "^5.5.0", - "immediate": "^3.2.3", - "level-concat-iterator": "~2.0.0", - "level-supports": "~1.0.0", - "xtend": "~4.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/leveldown/node_modules/level-concat-iterator": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/level-concat-iterator/-/level-concat-iterator-2.0.1.tgz", - "integrity": "sha512-OTKKOqeav2QWcERMJR7IS9CUo1sHnke2C0gkSmcR7QuEtFNLLzHQAvnMw8ykvEcv0Qtkg0p7FOwP1v9e5Smdcw==", - "dev": true, - "optional": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/leveldown/node_modules/level-supports": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/level-supports/-/level-supports-1.0.1.tgz", - "integrity": "sha512-rXM7GYnW8gsl1vedTJIbzOrRv85c/2uCMpiiCzO2fndd06U/kUXEEU9evYn4zFggBOg36IsBW8LzqIpETwwQzg==", - "dev": true, - "optional": true, - "dependencies": { - "xtend": "^4.0.2" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/leveldown/node_modules/node-gyp-build": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.1.1.tgz", - "integrity": "sha512-dSq1xmcPDKPZ2EED2S6zw/b9NKsqzXRE6dVr8TVQnI3FJOTteUMuqF3Qqs6LZg+mLGYJWqQzMbIjMtJqTv87nQ==", - "dev": true, - "optional": true, - "bin": { - "node-gyp-build": "bin.js", - "node-gyp-build-optional": "optional.js", - "node-gyp-build-test": "build-test.js" - } - }, - "node_modules/levelup": { - "version": "1.3.9", - "resolved": "https://registry.npmjs.org/levelup/-/levelup-1.3.9.tgz", - "integrity": "sha512-VVGHfKIlmw8w1XqpGOAGwq6sZm2WwWLmlDcULkKWQXEA5EopA8OBNJ2Ck2v6bdk8HeEZSbCSEgzXadyQFm76sQ==", - "dependencies": { - "deferred-leveldown": "~1.2.1", - "level-codec": "~7.0.0", - "level-errors": "~1.0.3", - "level-iterator-stream": "~1.3.0", - "prr": "~1.0.1", - "semver": "~5.4.1", - "xtend": "~4.0.0" - } - }, - "node_modules/levelup/node_modules/semver": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.4.1.tgz", - "integrity": "sha512-WfG/X9+oATh81XtllIo/I8gOiY9EXRdv1cQdyykeXK17YcUW3EXUAi2To4pcH6nZtJPr7ZOpM5OMyWJZm+8Rsg==", - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/levn": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", - "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", - "dev": true, - "dependencies": { - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/libsodium": { - "version": "0.7.11", - "resolved": "https://registry.npmjs.org/libsodium/-/libsodium-0.7.11.tgz", - "integrity": "sha512-WPfJ7sS53I2s4iM58QxY3Inb83/6mjlYgcmZs7DJsvDlnmVUwNinBCi5vBT43P6bHRy01O4zsMU2CoVR6xJ40A==" - }, - "node_modules/libsodium-wrappers": { - "version": "0.7.11", - "resolved": "https://registry.npmjs.org/libsodium-wrappers/-/libsodium-wrappers-0.7.11.tgz", - "integrity": "sha512-SrcLtXj7BM19vUKtQuyQKiQCRJPgbpauzl3s0rSwD+60wtHqSUuqcoawlMDheCJga85nKOQwxNYQxf/CKAvs6Q==", - "dependencies": { - "libsodium": "^0.7.11" - } - }, - "node_modules/link-module-alias": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/link-module-alias/-/link-module-alias-1.2.0.tgz", - "integrity": "sha512-ahPjXepbSVKbahTB6LxR//VHm8HPfI+QQygCH+E82spBY4HR5VPJTvlhKBc9F7muVxnS6C1rRfoPOXAbWO/fyw==", - "dependencies": { - "chalk": "^2.4.1" - }, - "bin": { - "link-module-alias": "index.js" - }, - "engines": { - "node": "> 8.0.0" - } - }, - "node_modules/loader-utils": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", - "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", - "dependencies": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^1.0.1" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/loader-utils/node_modules/json5": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", - "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", - "dependencies": { - "minimist": "^1.2.0" - }, - "bin": { - "json5": "lib/cli.js" - } - }, - "node_modules/locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", - "dev": true, - "dependencies": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/lockfile": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/lockfile/-/lockfile-1.0.4.tgz", - "integrity": "sha512-cvbTwETRfsFh4nHsL1eGWapU1XFi5Ot9E85sWAwia7Y7EgB7vfqcZhTKZ+l7hCGxSPoushMv5GKhT5PdLv03WA==", - "dev": true, - "dependencies": { - "signal-exit": "^3.0.2" - } - }, - "node_modules/lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" - }, - "node_modules/lodash-es": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz", - "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==", - "dev": true - }, - "node_modules/lodash.camelcase": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", - "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY=" - }, - "node_modules/lodash.debounce": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", - "integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168=" - }, - "node_modules/lodash.flatmap": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.flatmap/-/lodash.flatmap-4.5.0.tgz", - "integrity": "sha1-74y/QI9uSCaGYzRTBcaswLd4cC4=" - }, - "node_modules/lodash.sortby": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", - "integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=", - "dev": true, - "optional": true - }, - "node_modules/lodash.values": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/lodash.values/-/lodash.values-4.3.0.tgz", - "integrity": "sha512-r0RwvdCv8id9TUblb/O7rYPwVy6lerCbcawrfdo9iC/1t1wsNMJknO79WNBgwkH0hIeJ08jmvvESbFpNb4jH0Q==" - }, - "node_modules/log-symbols": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.0.0.tgz", - "integrity": "sha512-FN8JBzLx6CzeMrB0tg6pqlGU1wCrXW+ZXGH481kfsBqer0hToTIiHdjH4Mq8xJUbvATujKCvaREGWpGUionraA==", - "dependencies": { - "chalk": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/log-symbols/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/log-symbols/node_modules/chalk": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/log-symbols/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/log-symbols/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "node_modules/log-symbols/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/log-symbols/node_modules/supports-color": { - "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" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/loglevel": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.8.1.tgz", - "integrity": "sha512-tCRIJM51SHjAayKwC+QAg8hT8vg6z7GSgLJKGvzuPb1Wc+hLzqtuVLxp6/HzSPOozuK+8ErAhy7U/sVzw8Dgfg==", - "dev": true, - "optional": true, - "engines": { - "node": ">= 0.6.0" - }, - "funding": { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/loglevel" - } - }, - "node_modules/long": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz", - "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==" - }, - "node_modules/loose-envify": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", - "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", - "dependencies": { - "js-tokens": "^3.0.0 || ^4.0.0" - }, - "bin": { - "loose-envify": "cli.js" - } - }, - "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, - "dependencies": { - "get-func-name": "^2.0.0" - } - }, - "node_modules/lower-case": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz", - "integrity": "sha512-2Fgx1Ycm599x+WGpIYwJOvsjmXFzTSc34IwDWALRA/8AopUKAVPwfJ+h5+f85BCp0PWmmJcWzEpxOpoXycMpdA==", - "dev": true - }, - "node_modules/lower-case-first": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/lower-case-first/-/lower-case-first-1.0.2.tgz", - "integrity": "sha512-UuxaYakO7XeONbKrZf5FEgkantPf5DUqDayzP5VXZrtRPdH86s4kN47I8B3TW10S4QKiE3ziHNf3kRN//okHjA==", - "dev": true, - "dependencies": { - "lower-case": "^1.1.2" - } - }, - "node_modules/lowercase-keys": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", - "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "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==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/lru-cache/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, - "node_modules/ltgt": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ltgt/-/ltgt-2.2.1.tgz", - "integrity": "sha1-81ypHEk/e3PaDgdJUwTxezH4fuU=" - }, - "node_modules/make-dir": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", - "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", - "dev": true, - "dependencies": { - "pify": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/make-dir/node_modules/pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "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/map-cache": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", - "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/map-obj": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.3.0.tgz", - "integrity": "sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/map-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", - "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", - "dependencies": { - "object-visit": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/md5.js": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", - "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", - "dependencies": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "node_modules/media-typer": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/memdown": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/memdown/-/memdown-1.4.1.tgz", - "integrity": "sha1-tOThkhdGZP+65BNhqlAPMRnv4hU=", - "dependencies": { - "abstract-leveldown": "~2.7.1", - "functional-red-black-tree": "^1.0.1", - "immediate": "^3.2.3", - "inherits": "~2.0.1", - "ltgt": "~2.2.0", - "safe-buffer": "~5.1.1" - } - }, - "node_modules/memdown/node_modules/abstract-leveldown": { - "version": "2.7.2", - "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-2.7.2.tgz", - "integrity": "sha512-+OVvxH2rHVEhWLdbudP6p0+dNMXu8JA1CbhP19T8paTYAcX7oJ4OVjT+ZUVpv7mITxXHqDMej+GdqXBmXkw09w==", - "dependencies": { - "xtend": "~4.0.0" - } - }, - "node_modules/memdown/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, - "node_modules/memory-fs": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz", - "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=", - "dependencies": { - "errno": "^0.1.3", - "readable-stream": "^2.0.1" - } - }, - "node_modules/memorystream": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/memorystream/-/memorystream-0.3.1.tgz", - "integrity": "sha1-htcJCzDORV1j+64S3aUaR93K+bI=", - "dev": true, - "engines": { - "node": ">= 0.10.0" - } - }, - "node_modules/merge-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=", - "dev": true - }, - "node_modules/merkle-patricia-tree": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/merkle-patricia-tree/-/merkle-patricia-tree-2.3.2.tgz", - "integrity": "sha512-81PW5m8oz/pz3GvsAwbauj7Y00rqm81Tzad77tHBwU7pIAtN+TJnMSOJhxBKflSVYhptMMb9RskhqHqrSm1V+g==", - "dependencies": { - "async": "^1.4.2", - "ethereumjs-util": "^5.0.0", - "level-ws": "0.0.0", - "levelup": "^1.2.1", - "memdown": "^1.0.0", - "readable-stream": "^2.0.0", - "rlp": "^2.0.0", - "semaphore": ">=1.0.1" - } - }, - "node_modules/merkle-patricia-tree/node_modules/async": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", - "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=" - }, - "node_modules/merkle-patricia-tree/node_modules/ethereumjs-util": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", - "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", - "dependencies": { - "bn.js": "^4.11.0", - "create-hash": "^1.1.2", - "elliptic": "^6.5.2", - "ethereum-cryptography": "^0.1.3", - "ethjs-util": "^0.1.3", - "rlp": "^2.0.0", - "safe-buffer": "^5.1.1" - } - }, - "node_modules/methods": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "dependencies": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/micromatch/node_modules/braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "dependencies": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/micromatch/node_modules/braces/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/micromatch/node_modules/fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "dependencies": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/micromatch/node_modules/fill-range/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/micromatch/node_modules/is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" - }, - "node_modules/micromatch/node_modules/is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/micromatch/node_modules/is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/micromatch/node_modules/is-number/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/micromatch/node_modules/to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", - "dependencies": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/miller-rabin": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", - "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", - "dependencies": { - "bn.js": "^4.0.0", - "brorand": "^1.0.1" - }, - "bin": { - "miller-rabin": "bin/miller-rabin" - } - }, - "node_modules/mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", - "dev": true, - "bin": { - "mime": "cli.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/mime-db": { - "version": "1.44.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.44.0.tgz", - "integrity": "sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mime-types": { - "version": "2.1.27", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.27.tgz", - "integrity": "sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w==", - "dependencies": { - "mime-db": "1.44.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/mimic-response": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", - "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", - "engines": { - "node": ">=4" - } - }, - "node_modules/min-document": { - "version": "2.19.0", - "resolved": "https://registry.npmjs.org/min-document/-/min-document-2.19.0.tgz", - "integrity": "sha1-e9KC4/WELtKVu3SM3Z8f+iyCRoU=", - "dependencies": { - "dom-walk": "^0.1.0" - } - }, - "node_modules/minimalistic-assert": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", - "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==" - }, - "node_modules/minimalistic-crypto-utils": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", - "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=" - }, - "node_modules/minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/minimist": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", - "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==" - }, - "node_modules/minipass": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz", - "integrity": "sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==", - "dev": true, - "dependencies": { - "safe-buffer": "^5.1.2", - "yallist": "^3.0.0" - } - }, - "node_modules/minizlib": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.3.3.tgz", - "integrity": "sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==", - "dev": true, - "dependencies": { - "minipass": "^2.9.0" - } - }, - "node_modules/mississippi": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-3.0.0.tgz", - "integrity": "sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA==", - "dependencies": { - "concat-stream": "^1.5.0", - "duplexify": "^3.4.2", - "end-of-stream": "^1.1.0", - "flush-write-stream": "^1.0.0", - "from2": "^2.1.0", - "parallel-transform": "^1.1.0", - "pump": "^3.0.0", - "pumpify": "^1.3.3", - "stream-each": "^1.1.0", - "through2": "^2.0.0" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/mississippi/node_modules/through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", - "dependencies": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" - } - }, - "node_modules/mixin-deep": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", - "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", - "dependencies": { - "for-in": "^1.0.2", - "is-extendable": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "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/mkdirp-promise": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/mkdirp-promise/-/mkdirp-promise-5.0.1.tgz", - "integrity": "sha1-6bj2jlUsaKnBcTuEiD96HdA5uKE=", - "dev": true, - "dependencies": { - "mkdirp": "*" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/mocha": { - "version": "8.4.0", - "resolved": "https://registry.npmjs.org/mocha/-/mocha-8.4.0.tgz", - "integrity": "sha512-hJaO0mwDXmZS4ghXsvPVriOhsxQ7ofcpQdm8dE+jISUOKopitvnXFQmpRR7jd2K6VBG6E26gU3IAbXXGIbu4sQ==", - "dev": true, - "dependencies": { - "@ungap/promise-all-settled": "1.1.2", - "ansi-colors": "4.1.1", - "browser-stdout": "1.3.1", - "chokidar": "3.5.1", - "debug": "4.3.1", - "diff": "5.0.0", - "escape-string-regexp": "4.0.0", - "find-up": "5.0.0", - "glob": "7.1.6", - "growl": "1.10.5", - "he": "1.2.0", - "js-yaml": "4.0.0", - "log-symbols": "4.0.0", - "minimatch": "3.0.4", - "ms": "2.1.3", - "nanoid": "3.1.20", - "serialize-javascript": "5.0.1", - "strip-json-comments": "3.1.1", - "supports-color": "8.1.1", - "which": "2.0.2", - "wide-align": "1.1.3", - "workerpool": "6.1.0", - "yargs": "16.2.0", - "yargs-parser": "20.2.4", - "yargs-unparser": "2.0.0" - }, - "bin": { - "_mocha": "bin/_mocha", - "mocha": "bin/mocha" - }, - "engines": { - "node": ">= 10.12.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/mochajs" - } - }, - "node_modules/mocha/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/mocha/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "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==", - "dev": true - }, - "node_modules/mocha/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==", - "dev": true, - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" - } - }, - "node_modules/mocha/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/mocha/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/mocha/node_modules/debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", - "dev": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/mocha/node_modules/debug/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "node_modules/mocha/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==", - "dev": true, - "engines": { - "node": ">=0.3.1" - } - }, - "node_modules/mocha/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==", - "dev": true - }, - "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==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "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==", - "dev": true, - "dependencies": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/mocha/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/mocha/node_modules/is-fullwidth-code-point": { - "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==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/mocha/node_modules/js-yaml": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.0.0.tgz", - "integrity": "sha512-pqon0s+4ScYUvX30wxQi3PogGFAlUyH0awepWvwkj4jD4v+ova3RiYw8bmA6x2rDrEaj8i/oWKoRxpVNW+Re8Q==", - "dev": true, - "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==", - "dev": true, - "dependencies": { - "p-locate": "^5.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "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==", - "dev": true - }, - "node_modules/mocha/node_modules/p-limit": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.0.2.tgz", - "integrity": "sha512-iwqZSOoWIW+Ew4kAGUlN16J4M7OB3ysMLSZtnhmqx7njIHFPlxWBX8xo3lVTyFVq6mI/lL9qt2IsN1sHwaxJkg==", - "dev": true, - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "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==", - "dev": true, - "dependencies": { - "p-limit": "^3.0.2" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/mocha/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/mocha/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==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/mocha/node_modules/serialize-javascript": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-5.0.1.tgz", - "integrity": "sha512-SaaNal9imEO737H2c05Og0/8LUXG7EnsZyMa8MzkmuHoELfT6txuj0cMqRj6zfPKnmQ1yasR4PCJc8x+M4JSPA==", - "dev": true, - "dependencies": { - "randombytes": "^2.1.0" - } - }, - "node_modules/mocha/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/mocha/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "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==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" - } - }, - "node_modules/mocha/node_modules/workerpool": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.1.0.tgz", - "integrity": "sha512-toV7q9rWNYha963Pl/qyeZ6wG+3nnsyvolaNUS8+R5Wtw6qJPTxIlOP1ZSvcGhEJw+l3HMMmtiNo9Gl61G4GVg==", - "dev": true - }, - "node_modules/mocha/node_modules/wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/mocha/node_modules/y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/mocha/node_modules/yargs": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", - "dev": true, - "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/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==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/mock-fs": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/mock-fs/-/mock-fs-4.12.0.tgz", - "integrity": "sha512-/P/HtrlvBxY4o/PzXY9cCNBrdylDNxg7gnrv2sMNxj+UJ2m8jSpl0/A6fuJeNAWr99ZvGWH8XCbE0vmnM5KupQ==", - "dev": true - }, - "node_modules/move-concurrently": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz", - "integrity": "sha1-viwAX9oy4LKa8fBdfEszIUxwH5I=", - "dependencies": { - "aproba": "^1.1.1", - "copy-concurrently": "^1.0.0", - "fs-write-stream-atomic": "^1.0.8", - "mkdirp": "^0.5.1", - "rimraf": "^2.5.4", - "run-queue": "^1.0.3" - } - }, - "node_modules/move-concurrently/node_modules/mkdirp": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", - "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", - "dependencies": { - "minimist": "^1.2.6" - }, - "bin": { - "mkdirp": "bin/cmd.js" - } - }, - "node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "node_modules/multibase": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/multibase/-/multibase-0.6.1.tgz", - "integrity": "sha512-pFfAwyTjbbQgNc3G7D48JkJxWtoJoBMaR4xQUOuB8RnCgRqaYmWNFeJTTvrJ2w51bjLq2zTby6Rqj9TQ9elSUw==", - "dependencies": { - "base-x": "^3.0.8", - "buffer": "^5.5.0" - } - }, - "node_modules/multicodec": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/multicodec/-/multicodec-0.5.7.tgz", - "integrity": "sha512-PscoRxm3f+88fAtELwUnZxGDkduE2HD9Q6GHUOywQLjOGT/HAdhjLDYNZ1e7VR0s0TP0EwZ16LNUTFpoBGivOA==", - "dev": true, - "dependencies": { - "varint": "^5.0.0" - } - }, - "node_modules/multiformats": { - "version": "9.6.4", - "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-9.6.4.tgz", - "integrity": "sha512-fCCB6XMrr6CqJiHNjfFNGT0v//dxOBMrOMqUIzpPc/mmITweLEyhvMpY9bF+jZ9z3vaMAau5E8B68DW77QMXkg==" - }, - "node_modules/multihashes": { - "version": "0.4.21", - "resolved": "https://registry.npmjs.org/multihashes/-/multihashes-0.4.21.tgz", - "integrity": "sha512-uVSvmeCWf36pU2nB4/1kzYZjsXD9vofZKpgudqkceYY5g2aZZXJ5r9lxuzoRLl1OAp28XljXsEJ/X/85ZsKmKw==", - "dependencies": { - "buffer": "^5.5.0", - "multibase": "^0.7.0", - "varint": "^5.0.0" - } - }, - "node_modules/multihashes/node_modules/multibase": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/multibase/-/multibase-0.7.0.tgz", - "integrity": "sha512-TW8q03O0f6PNFTQDvh3xxH03c8CjGaaYrjkl9UQPG6rz53TQzzxJVCIWVjzcbN/Q5Y53Zd0IBQBMVktVgNx4Fg==", - "dependencies": { - "base-x": "^3.0.8", - "buffer": "^5.5.0" - } - }, - "node_modules/mustache": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/mustache/-/mustache-4.2.0.tgz", - "integrity": "sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ==", - "bin": { - "mustache": "bin/mustache" - } - }, - "node_modules/mute-stream": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", - "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=", - "dev": true - }, - "node_modules/nan": { - "version": "2.14.2", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.2.tgz", - "integrity": "sha512-M2ufzIiINKCuDfBSAUr1vWQ+vuVcA9kqx8JJUsbQi6yf1uGRyb7HfpdfUr5qLXf3B/t8dPvcjhKMmlfnP47EzQ==" - }, - "node_modules/nano-json-stream-parser": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/nano-json-stream-parser/-/nano-json-stream-parser-0.1.2.tgz", - "integrity": "sha1-DMj20OK2IrR5xA1JnEbWS3Vcb18=", - "dev": true - }, - "node_modules/nanoid": { - "version": "3.1.20", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.20.tgz", - "integrity": "sha512-a1cQNyczgKbLX9jwbS/+d7W8fX/RfgYR7lVWwWOGIPNgK2m0MWvrGF6/m4kk6U3QcFMnZf3RIhL0v2Jgh/0Uxw==", - "bin": { - "nanoid": "bin/nanoid.cjs" - }, - "engines": { - "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" - } - }, - "node_modules/nanomatch": { - "version": "1.2.13", - "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", - "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", - "dependencies": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "fragment-cache": "^0.2.1", - "is-windows": "^1.0.2", - "kind-of": "^6.0.2", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/napi-macros": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/napi-macros/-/napi-macros-2.0.0.tgz", - "integrity": "sha512-A0xLykHtARfueITVDernsAWdtIMbOJgKgcluwENp3AlsKN/PloyO10HtmoqnFAQAcxPkgZN7wdfPfEd0zNGxbg==", - "dev": true, - "optional": true - }, - "node_modules/natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", - "dev": true - }, - "node_modules/near-api-js": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/near-api-js/-/near-api-js-1.1.0.tgz", - "integrity": "sha512-qYKv1mYsaDZc2uYndhS+ttDhR9+60qFc+ZjD6lWsAxr3ZskMjRwPffDGQZYhC7BRDQMe1HEbk6d5mf+TVm0Lqg==", - "dependencies": { - "bn.js": "5.2.1", - "borsh": "^0.7.0", - "bs58": "^4.0.0", - "depd": "^2.0.0", - "error-polyfill": "^0.1.3", - "http-errors": "^1.7.2", - "js-sha256": "^0.9.0", - "mustache": "^4.0.0", - "node-fetch": "^2.6.1", - "text-encoding-utf-8": "^1.0.2", - "tweetnacl": "^1.0.1" - } - }, - "node_modules/near-api-js/node_modules/bn.js": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", - "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==" - }, - "node_modules/near-api-js/node_modules/depd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", - "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/near-api-js/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==", - "dependencies": { - "whatwg-url": "^5.0.0" - }, - "engines": { - "node": "4.x || >=6.0.0" - }, - "peerDependencies": { - "encoding": "^0.1.0" - }, - "peerDependenciesMeta": { - "encoding": { - "optional": true - } - } - }, - "node_modules/near-api-js/node_modules/tweetnacl": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.3.tgz", - "integrity": "sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==" - }, - "node_modules/negotiator": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", - "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/neo-async": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", - "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==" - }, - "node_modules/next-tick": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz", - "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw=" - }, - "node_modules/nice-try": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", - "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==" - }, - "node_modules/no-case": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/no-case/-/no-case-2.3.2.tgz", - "integrity": "sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ==", - "dev": true, - "dependencies": { - "lower-case": "^1.1.1" - } - }, - "node_modules/node-abort-controller": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/node-abort-controller/-/node-abort-controller-3.1.1.tgz", - "integrity": "sha512-AGK2yQKIjRuqnc6VkX2Xj5d+QW8xZ87pa1UK6yA6ouUyuxfHuMP6umE5QK7UmTeOAymo+Zx1Fxiuw9rVx8taHQ==", - "dev": true, - "optional": true - }, - "node_modules/node-addon-api": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-2.0.2.tgz", - "integrity": "sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA==" - }, - "node_modules/node-fetch": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-1.7.3.tgz", - "integrity": "sha512-NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ==", - "dependencies": { - "encoding": "^0.1.11", - "is-stream": "^1.0.1" - } - }, - "node_modules/node-gyp-build": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.6.0.tgz", - "integrity": "sha512-NTZVKn9IylLwUzaKjkas1e4u2DLNcV4rdYagA4PWdPwW87Bi7z+BznyKSRwS/761tV/lzCGXplWsiaMjLqP2zQ==", - "bin": { - "node-gyp-build": "bin.js", - "node-gyp-build-optional": "optional.js", - "node-gyp-build-test": "build-test.js" - } - }, - "node_modules/node-interval-tree": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/node-interval-tree/-/node-interval-tree-1.3.3.tgz", - "integrity": "sha512-K9vk96HdTK5fEipJwxSvIIqwTqr4e3HRJeJrNxBSeVMNSC/JWARRaX7etOLOuTmrRMeOI/K5TCJu3aWIwZiNTw==", - "dev": true, - "dependencies": { - "shallowequal": "^1.0.2" - }, - "engines": { - "node": ">= 7.6.0" - } - }, - "node_modules/node-libs-browser": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.1.tgz", - "integrity": "sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q==", - "dependencies": { - "assert": "^1.1.1", - "browserify-zlib": "^0.2.0", - "buffer": "^4.3.0", - "console-browserify": "^1.1.0", - "constants-browserify": "^1.0.0", - "crypto-browserify": "^3.11.0", - "domain-browser": "^1.1.1", - "events": "^3.0.0", - "https-browserify": "^1.0.0", - "os-browserify": "^0.3.0", - "path-browserify": "0.0.1", - "process": "^0.11.10", - "punycode": "^1.2.4", - "querystring-es3": "^0.2.0", - "readable-stream": "^2.3.3", - "stream-browserify": "^2.0.1", - "stream-http": "^2.7.2", - "string_decoder": "^1.0.0", - "timers-browserify": "^2.0.4", - "tty-browserify": "0.0.0", - "url": "^0.11.0", - "util": "^0.11.0", - "vm-browserify": "^1.0.1" - } - }, - "node_modules/node-libs-browser/node_modules/buffer": { - "version": "4.9.2", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz", - "integrity": "sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==", - "dependencies": { - "base64-js": "^1.0.2", - "ieee754": "^1.1.4", - "isarray": "^1.0.0" - } - }, - "node_modules/node-libs-browser/node_modules/inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" - }, - "node_modules/node-libs-browser/node_modules/process": { - "version": "0.11.10", - "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", - "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=", - "engines": { - "node": ">= 0.6.0" - } - }, - "node_modules/node-libs-browser/node_modules/punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=" - }, - "node_modules/node-libs-browser/node_modules/stream-browserify": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz", - "integrity": "sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==", - "dependencies": { - "inherits": "~2.0.1", - "readable-stream": "^2.0.2" - } - }, - "node_modules/node-libs-browser/node_modules/stream-http": { - "version": "2.8.3", - "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz", - "integrity": "sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==", - "dependencies": { - "builtin-status-codes": "^3.0.0", - "inherits": "^2.0.1", - "readable-stream": "^2.3.6", - "to-arraybuffer": "^1.0.0", - "xtend": "^4.0.0" - } - }, - "node_modules/node-libs-browser/node_modules/util": { - "version": "0.11.1", - "resolved": "https://registry.npmjs.org/util/-/util-0.11.1.tgz", - "integrity": "sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ==", - "dependencies": { - "inherits": "2.0.3" - } - }, - "node_modules/node-releases": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.1.tgz", - "integrity": "sha512-CqyzN6z7Q6aMeF/ktcMVTzhAHCEpf8SOarwpzpf8pNBY2k5/oM34UHldUwp8VKI7uxct2HxSRdJjBaZeESzcxA==" - }, - "node_modules/nofilter": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/nofilter/-/nofilter-1.0.4.tgz", - "integrity": "sha512-N8lidFp+fCz+TD51+haYdbDGrcBWwuHX40F5+z0qkUjMJ5Tp+rdSuAkMJ9N9eoolDlEVTf6u5icM+cNKkKW2mA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/noms": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/noms/-/noms-0.0.0.tgz", - "integrity": "sha512-lNDU9VJaOPxUmXcLb+HQFeUgQQPtMI24Gt6hgfuMHRJgMRHMF/qZ4HJD3GDru4sSw9IQl2jPjAYnQrdIeLbwow==", - "dependencies": { - "inherits": "^2.0.1", - "readable-stream": "~1.0.31" - } - }, - "node_modules/noms/node_modules/isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==" - }, - "node_modules/noms/node_modules/readable-stream": { - "version": "1.0.34", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", - "integrity": "sha512-ok1qVCJuRkNmvebYikljxJA/UEsKwLl2nI1OmaqAu4/UE+h0wKCHok4XkL/gvi39OacXvw59RJUOFUkDib2rHg==", - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" - } - }, - "node_modules/noms/node_modules/string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==" - }, - "node_modules/normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/normalize-url": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.0.tgz", - "integrity": "sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/npm-programmatic": { - "version": "0.0.12", - "resolved": "https://registry.npmjs.org/npm-programmatic/-/npm-programmatic-0.0.12.tgz", - "integrity": "sha512-fvZdiJS038ZH31z59cEiIywOcgX1u23aLc0wAKF4btyhbYQxE93wTQjzs/URERK+GhS/QghDILQmEvgxu77/zQ==", - "dev": true, - "dependencies": { - "bluebird": "^3.4.1" - } - }, - "node_modules/nth-check": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz", - "integrity": "sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==", - "dev": true, - "dependencies": { - "boolbase": "~1.0.0" - } - }, - "node_modules/number-to-bn": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/number-to-bn/-/number-to-bn-1.7.0.tgz", - "integrity": "sha1-uzYjWS9+X54AMLGXe9QaDFP+HqA=", - "dependencies": { - "bn.js": "4.11.6", - "strip-hex-prefix": "1.0.0" - }, - "engines": { - "node": ">=6.5.0", - "npm": ">=3" - } - }, - "node_modules/number-to-bn/node_modules/bn.js": { - "version": "4.11.6", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz", - "integrity": "sha1-UzRK2xRhehP26N0s4okF0cC6MhU=" - }, - "node_modules/o3": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/o3/-/o3-1.0.3.tgz", - "integrity": "sha512-f+4n+vC6s4ysy7YO7O2gslWZBUu8Qj2i2OUJOvjRxQva7jVjYjB29jrr9NCjmxZQR0gzrOcv1RnqoYOeMs5VRQ==", - "dependencies": { - "capability": "^0.2.5" - } - }, - "node_modules/oauth-sign": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", - "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-copy": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", - "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", - "dependencies": { - "copy-descriptor": "^0.1.0", - "define-property": "^0.2.5", - "kind-of": "^3.0.3" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-copy/node_modules/define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dependencies": { - "is-descriptor": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-copy/node_modules/is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-copy/node_modules/is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" - }, - "node_modules/object-copy/node_modules/is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-copy/node_modules/is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dependencies": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-copy/node_modules/is-descriptor/node_modules/kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-copy/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-inspect": { - "version": "1.10.3", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.10.3.tgz", - "integrity": "sha512-e5mCJlSH7poANfC8z8S9s9S2IN5/4Zb3aZ33f5s8YqoazCFzNLloLU8r5VCG+G7WoqLvAAZoVMcy3tp/3X0Plw==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/object-visit": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", - "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", - "dependencies": { - "isobject": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object.pick": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", - "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", - "dependencies": { - "isobject": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/oboe": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/oboe/-/oboe-2.1.4.tgz", - "integrity": "sha1-IMiM2wwVNxuwQRklfU/dNLCqSfY=", - "dev": true, - "dependencies": { - "http-https": "^1.0.0" - } - }, - "node_modules/on-finished": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", - "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", - "dev": true, - "dependencies": { - "ee-first": "1.1.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "dev": true, - "dependencies": { - "mimic-fn": "^2.1.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/optimism": { - "version": "0.16.2", - "resolved": "https://registry.npmjs.org/optimism/-/optimism-0.16.2.tgz", - "integrity": "sha512-zWNbgWj+3vLEjZNIh/okkY2EUfX+vB9TJopzIZwT1xxaMqC5hRLLraePod4c5n4He08xuXNH+zhKFFCu390wiQ==", - "dependencies": { - "@wry/context": "^0.7.0", - "@wry/trie": "^0.3.0" - } - }, - "node_modules/optionator": { - "version": "0.8.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", - "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", - "dev": true, - "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" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/original-require": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/original-require/-/original-require-1.0.1.tgz", - "integrity": "sha1-DxMEcVhM0zURxew4yNWSE/msXiA=", - "dev": true - }, - "node_modules/os-browserify": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", - "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=" - }, - "node_modules/os-tmpdir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/p-cancelable": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz", - "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/p-finally": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", - "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", - "dev": true, - "dependencies": { - "p-try": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", - "dev": true, - "dependencies": { - "p-limit": "^1.1.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/p-timeout": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-1.2.1.tgz", - "integrity": "sha1-XrOzU7f86Z8QGhA4iAuwVOu+o4Y=", - "dev": true, - "dependencies": { - "p-finally": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/pako": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", - "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==" - }, - "node_modules/parallel-transform": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.2.0.tgz", - "integrity": "sha512-P2vSmIu38uIlvdcU7fDkyrxj33gTUy/ABO5ZUbGowxNCopBq/OoD42bP4UmMrJoPyk4Uqf0mu3mtWBhHCZD8yg==", - "dependencies": { - "cyclist": "^1.0.1", - "inherits": "^2.0.3", - "readable-stream": "^2.1.5" - } - }, - "node_modules/param-case": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/param-case/-/param-case-2.1.1.tgz", - "integrity": "sha512-eQE845L6ot89sk2N8liD8HAuH4ca6Vvr7VWAWwt7+kvvG5aBcPmmphQ68JsEG2qa9n1TykS2DLeMt363AAH8/w==", - "dev": true, - "dependencies": { - "no-case": "^2.2.0" - } - }, - "node_modules/parent-module": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", - "dev": true, - "dependencies": { - "callsites": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/parse-asn1": { - "version": "5.1.5", - "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.5.tgz", - "integrity": "sha512-jkMYn1dcJqF6d5CpU689bq7w/b5ALS9ROVSpQDPrZsqqesUJii9qutvoT5ltGedNXMO2e16YUWIghG9KxaViTQ==", - "dependencies": { - "asn1.js": "^4.0.0", - "browserify-aes": "^1.0.0", - "create-hash": "^1.1.0", - "evp_bytestokey": "^1.0.0", - "pbkdf2": "^3.0.3", - "safe-buffer": "^5.1.1" - } - }, - "node_modules/parse-headers": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/parse-headers/-/parse-headers-2.0.3.tgz", - "integrity": "sha512-QhhZ+DCCit2Coi2vmAKbq5RGTRcQUOE2+REgv8vdyu7MnYx2eZztegqtTx99TZ86GTIwqiy3+4nQTWZ2tgmdCA==" - }, - "node_modules/parse-passwd": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz", - "integrity": "sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/parse5": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-3.0.3.tgz", - "integrity": "sha512-rgO9Zg5LLLkfJF9E6CCmXlSE4UVceloys8JrFqCcHloC3usd/kJCyPDwH2SOlzix2j3xaP9sUX3e8+kvkuleAA==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/parseurl": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/pascal-case": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-2.0.1.tgz", - "integrity": "sha512-qjS4s8rBOJa2Xm0jmxXiyh1+OFf6ekCWOvUaRgAQSktzlTbMotS0nmG9gyYAybCWBcuP4fsBeRCKNwGBnMe2OQ==", - "dev": true, - "dependencies": { - "camel-case": "^3.0.0", - "upper-case-first": "^1.1.0" - } - }, - "node_modules/pascalcase": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", - "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/path-browserify": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.1.tgz", - "integrity": "sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==" - }, - "node_modules/path-case": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/path-case/-/path-case-2.1.1.tgz", - "integrity": "sha512-Ou0N05MioItesaLr9q8TtHVWmJ6fxWdqKB2RohFmNWVyJ+2zeKIeDNWAN6B/Pe7wpzWChhZX6nONYmOnMeJQ/Q==", - "dev": true, - "dependencies": { - "no-case": "^2.2.0" - } - }, - "node_modules/path-dirname": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", - "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=", - "optional": true - }, - "node_modules/path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "engines": { - "node": ">=4" - } - }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/path-key": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", - "engines": { - "node": ">=4" - } - }, - "node_modules/path-parse": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", - "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==" - }, - "node_modules/path-to-regexp": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", - "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=", - "dev": true - }, - "node_modules/pathval": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz", - "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==", - "engines": { - "node": "*" - } - }, - "node_modules/pbkdf2": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.1.tgz", - "integrity": "sha512-4Ejy1OPxi9f2tt1rRV7Go7zmfDQ+ZectEQz3VGUQhgq62HtIRPDyG/JtnwIxs6x3uNMwo2V7q1fMvKjb+Tnpqg==", - "dependencies": { - "create-hash": "^1.1.2", - "create-hmac": "^1.1.4", - "ripemd160": "^2.0.1", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" - }, - "engines": { - "node": ">=0.12" - } - }, - "node_modules/pend": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", - "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=", - "dev": true - }, - "node_modules/performance-now": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" - }, - "node_modules/picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" - }, - "node_modules/picomatch": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.3.tgz", - "integrity": "sha512-KpELjfwcCDUb9PeigTs2mBJzXUPzAuP2oPcA989He8Rte0+YUAjw1JVedDhuTKPkHjSYzMN3npC9luThGYEKdg==", - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/pinkie": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", - "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/pinkie-promise": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", - "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", - "dev": true, - "dependencies": { - "pinkie": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/pkg-dir": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", - "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", - "dependencies": { - "find-up": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/pkg-up": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-3.1.0.tgz", - "integrity": "sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==", - "dev": true, - "optional": true, - "dependencies": { - "find-up": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/pluralize": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-8.0.0.tgz", - "integrity": "sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==", - "dev": true, - "optional": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/posix-character-classes": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", - "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/pouchdb": { - "version": "7.3.0", - "resolved": "https://registry.npmjs.org/pouchdb/-/pouchdb-7.3.0.tgz", - "integrity": "sha512-OwsIQGXsfx3TrU1pLruj6PGSwFH+h5k4hGNxFkZ76Um7/ZI8F5TzUHFrpldVVIhfXYi2vP31q0q7ot1FSLFYOw==", - "dev": true, - "optional": true, - "dependencies": { - "abort-controller": "3.0.0", - "argsarray": "0.0.1", - "buffer-from": "1.1.2", - "clone-buffer": "1.0.0", - "double-ended-queue": "2.1.0-0", - "fetch-cookie": "0.11.0", - "immediate": "3.3.0", - "inherits": "2.0.4", - "level": "6.0.1", - "level-codec": "9.0.2", - "level-write-stream": "1.0.0", - "leveldown": "5.6.0", - "levelup": "4.4.0", - "ltgt": "2.2.1", - "node-fetch": "2.6.7", - "readable-stream": "1.1.14", - "spark-md5": "3.0.2", - "through2": "3.0.2", - "uuid": "8.3.2", - "vuvuzela": "1.0.3" - } - }, - "node_modules/pouchdb-abstract-mapreduce": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/pouchdb-abstract-mapreduce/-/pouchdb-abstract-mapreduce-7.3.1.tgz", - "integrity": "sha512-0zKXVFBvrfc1KnN0ggrB762JDmZnUpePHywo9Bq3Jy+L1FnoG7fXM5luFfvv5/T0gEw+ZTIwoocZECMnESBI9w==", - "dev": true, - "optional": true, - "dependencies": { - "pouchdb-binary-utils": "7.3.1", - "pouchdb-collate": "7.3.1", - "pouchdb-collections": "7.3.1", - "pouchdb-errors": "7.3.1", - "pouchdb-fetch": "7.3.1", - "pouchdb-mapreduce-utils": "7.3.1", - "pouchdb-md5": "7.3.1", - "pouchdb-utils": "7.3.1" - } - }, - "node_modules/pouchdb-adapter-leveldb-core": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/pouchdb-adapter-leveldb-core/-/pouchdb-adapter-leveldb-core-7.3.1.tgz", - "integrity": "sha512-mxShHlqLMPz2gChrgtA9okV1ogFmQrRAoM/O4EN0CrQWPLXqYtpL1f7sI2asIvFe7SmpnvbLx7kkZyFmLTfwjA==", - "dev": true, - "optional": true, - "dependencies": { - "argsarray": "0.0.1", - "buffer-from": "1.1.2", - "double-ended-queue": "2.1.0-0", - "levelup": "4.4.0", - "pouchdb-adapter-utils": "7.3.1", - "pouchdb-binary-utils": "7.3.1", - "pouchdb-collections": "7.3.1", - "pouchdb-errors": "7.3.1", - "pouchdb-json": "7.3.1", - "pouchdb-md5": "7.3.1", - "pouchdb-merge": "7.3.1", - "pouchdb-utils": "7.3.1", - "sublevel-pouchdb": "7.3.1", - "through2": "3.0.2" - } - }, - "node_modules/pouchdb-adapter-leveldb-core/node_modules/abstract-leveldown": { - "version": "6.2.3", - "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-6.2.3.tgz", - "integrity": "sha512-BsLm5vFMRUrrLeCcRc+G0t2qOaTzpoJQLOubq2XM72eNpjF5UdU5o/5NvlNhx95XHcAvcl8OMXr4mlg/fRgUXQ==", - "dev": true, - "optional": true, - "dependencies": { - "buffer": "^5.5.0", - "immediate": "^3.2.3", - "level-concat-iterator": "~2.0.0", - "level-supports": "~1.0.0", - "xtend": "~4.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/pouchdb-adapter-leveldb-core/node_modules/deferred-leveldown": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/deferred-leveldown/-/deferred-leveldown-5.3.0.tgz", - "integrity": "sha512-a59VOT+oDy7vtAbLRCZwWgxu2BaCfd5Hk7wxJd48ei7I+nsg8Orlb9CLG0PMZienk9BSUKgeAqkO2+Lw+1+Ukw==", - "dev": true, - "optional": true, - "dependencies": { - "abstract-leveldown": "~6.2.1", - "inherits": "^2.0.3" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/pouchdb-adapter-leveldb-core/node_modules/level-concat-iterator": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/level-concat-iterator/-/level-concat-iterator-2.0.1.tgz", - "integrity": "sha512-OTKKOqeav2QWcERMJR7IS9CUo1sHnke2C0gkSmcR7QuEtFNLLzHQAvnMw8ykvEcv0Qtkg0p7FOwP1v9e5Smdcw==", - "dev": true, - "optional": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/pouchdb-adapter-leveldb-core/node_modules/level-errors": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/level-errors/-/level-errors-2.0.1.tgz", - "integrity": "sha512-UVprBJXite4gPS+3VznfgDSU8PTRuVX0NXwoWW50KLxd2yw4Y1t2JUR5In1itQnudZqRMT9DlAM3Q//9NCjCFw==", - "dev": true, - "optional": true, - "dependencies": { - "errno": "~0.1.1" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/pouchdb-adapter-leveldb-core/node_modules/level-iterator-stream": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/level-iterator-stream/-/level-iterator-stream-4.0.2.tgz", - "integrity": "sha512-ZSthfEqzGSOMWoUGhTXdX9jv26d32XJuHz/5YnuHZzH6wldfWMOVwI9TBtKcya4BKTyTt3XVA0A3cF3q5CY30Q==", - "dev": true, - "optional": true, - "dependencies": { - "inherits": "^2.0.4", - "readable-stream": "^3.4.0", - "xtend": "^4.0.2" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/pouchdb-adapter-leveldb-core/node_modules/level-supports": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/level-supports/-/level-supports-1.0.1.tgz", - "integrity": "sha512-rXM7GYnW8gsl1vedTJIbzOrRv85c/2uCMpiiCzO2fndd06U/kUXEEU9evYn4zFggBOg36IsBW8LzqIpETwwQzg==", - "dev": true, - "optional": true, - "dependencies": { - "xtend": "^4.0.2" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/pouchdb-adapter-leveldb-core/node_modules/levelup": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/levelup/-/levelup-4.4.0.tgz", - "integrity": "sha512-94++VFO3qN95cM/d6eBXvd894oJE0w3cInq9USsyQzzoJxmiYzPAocNcuGCPGGjoXqDVJcr3C1jzt1TSjyaiLQ==", - "dev": true, - "optional": true, - "dependencies": { - "deferred-leveldown": "~5.3.0", - "level-errors": "~2.0.0", - "level-iterator-stream": "~4.0.0", - "level-supports": "~1.0.0", - "xtend": "~4.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/pouchdb-adapter-leveldb-core/node_modules/readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "dev": true, - "optional": true, - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/pouchdb-adapter-memory": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/pouchdb-adapter-memory/-/pouchdb-adapter-memory-7.3.1.tgz", - "integrity": "sha512-iHdWGJAHONqQv0we3Oi1MYen69ZS8McLW9wUyaAYcWTJnAIIAr2ZM0/TeTDVSHfMUwYqEYk7X8jRtJZEMwLnwg==", - "dev": true, - "optional": true, - "dependencies": { - "memdown": "1.4.1", - "pouchdb-adapter-leveldb-core": "7.3.1", - "pouchdb-utils": "7.3.1" - } - }, - "node_modules/pouchdb-adapter-utils": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/pouchdb-adapter-utils/-/pouchdb-adapter-utils-7.3.1.tgz", - "integrity": "sha512-uKLG6dClwTs/sLIJ4WkLAi9wlnDBpOnfyhpeAgOjlOGN/XLz5nKHrA4UJRnURDyc+uv79S9r/Unc4hVpmbSPUw==", - "dev": true, - "optional": true, - "dependencies": { - "pouchdb-binary-utils": "7.3.1", - "pouchdb-collections": "7.3.1", - "pouchdb-errors": "7.3.1", - "pouchdb-md5": "7.3.1", - "pouchdb-merge": "7.3.1", - "pouchdb-utils": "7.3.1" - } - }, - "node_modules/pouchdb-binary-utils": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/pouchdb-binary-utils/-/pouchdb-binary-utils-7.3.1.tgz", - "integrity": "sha512-crZJNfAEOnUoRk977Qtmk4cxEv6sNKllQ6vDDKgQrQLFjMUXma35EHzNyIJr1s76J77Q4sqKQAmxz9Y40yHGtw==", - "dev": true, - "optional": true, - "dependencies": { - "buffer-from": "1.1.2" - } - }, - "node_modules/pouchdb-collate": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/pouchdb-collate/-/pouchdb-collate-7.3.1.tgz", - "integrity": "sha512-o4gyGqDMLMSNzf6EDTr3eHaH/JRMoqRhdc+eV+oA8u00nTBtr9wD+jypVe2LbgKLJ4NWqx2qVkXiTiQdUFtsLQ==", - "dev": true, - "optional": true - }, - "node_modules/pouchdb-collections": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/pouchdb-collections/-/pouchdb-collections-7.3.1.tgz", - "integrity": "sha512-yUyDqR+OJmtwgExOSJegpBJXDLAEC84TWnbAYycyh+DZoA51Yw0+XVQF5Vh8Ii90/Ut2xo88fmrmp0t6kqom8w==", - "dev": true, - "optional": true - }, - "node_modules/pouchdb-debug": { - "version": "7.2.1", - "resolved": "https://registry.npmjs.org/pouchdb-debug/-/pouchdb-debug-7.2.1.tgz", - "integrity": "sha512-eP3ht/AKavLF2RjTzBM6S9gaI2/apcW6xvaKRQhEdOfiANqerFuksFqHCal3aikVQuDO+cB/cw+a4RyJn/glBw==", - "dev": true, - "optional": true, - "dependencies": { - "debug": "3.1.0" - } - }, - "node_modules/pouchdb-errors": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/pouchdb-errors/-/pouchdb-errors-7.3.1.tgz", - "integrity": "sha512-Zktz4gnXEUcZcty8FmyvtYUYsHskoST05m6H5/E2gg/0mCfEXq/XeyyLkZHaZmqD0ZPS9yNmASB1VaFWEKEaDw==", - "dev": true, - "optional": true, - "dependencies": { - "inherits": "2.0.4" - } - }, - "node_modules/pouchdb-fetch": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/pouchdb-fetch/-/pouchdb-fetch-7.3.1.tgz", - "integrity": "sha512-205xAtvdHRPQ4fp1h9+RmT9oQabo9gafuPmWsS9aEl3ER54WbY8Vaj1JHZGbU4KtMTYvW7H5088zLS7Nrusuag==", - "dev": true, - "optional": true, - "dependencies": { - "abort-controller": "3.0.0", - "fetch-cookie": "0.11.0", - "node-fetch": "2.6.7" - } - }, - "node_modules/pouchdb-fetch/node_modules/node-fetch": { - "version": "2.6.7", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", - "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", - "dev": true, - "optional": true, - "dependencies": { - "whatwg-url": "^5.0.0" - }, - "engines": { - "node": "4.x || >=6.0.0" - }, - "peerDependencies": { - "encoding": "^0.1.0" - }, - "peerDependenciesMeta": { - "encoding": { - "optional": true - } - } - }, - "node_modules/pouchdb-find": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/pouchdb-find/-/pouchdb-find-7.3.1.tgz", - "integrity": "sha512-AeqUfAVY1c7IFaY36BRT0vIz9r4VTKq/YOWTmiqndOZUQ/pDGxyO2fNFal6NN3PyYww0JijlD377cPvhnrhJVA==", - "dev": true, - "optional": true, - "dependencies": { - "pouchdb-abstract-mapreduce": "7.3.1", - "pouchdb-collate": "7.3.1", - "pouchdb-errors": "7.3.1", - "pouchdb-fetch": "7.3.1", - "pouchdb-md5": "7.3.1", - "pouchdb-selector-core": "7.3.1", - "pouchdb-utils": "7.3.1" - } - }, - "node_modules/pouchdb-json": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/pouchdb-json/-/pouchdb-json-7.3.1.tgz", - "integrity": "sha512-AyOKsmc85/GtHjMZyEacqzja8qLVfycS1hh1oskR+Bm5PIITX52Fb8zyi0hEetV6VC0yuGbn0RqiLjJxQePeqQ==", - "dev": true, - "optional": true, - "dependencies": { - "vuvuzela": "1.0.3" - } - }, - "node_modules/pouchdb-mapreduce-utils": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/pouchdb-mapreduce-utils/-/pouchdb-mapreduce-utils-7.3.1.tgz", - "integrity": "sha512-oUMcq82+4pTGQ6dtrhgORHOVHZSr6w/5tFIUGlv7RABIDvJarL4snMawADjlpiEwPdiQ/ESG8Fqt8cxqvqsIgg==", - "dev": true, - "optional": true, - "dependencies": { - "argsarray": "0.0.1", - "inherits": "2.0.4", - "pouchdb-collections": "7.3.1", - "pouchdb-utils": "7.3.1" - } - }, - "node_modules/pouchdb-md5": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/pouchdb-md5/-/pouchdb-md5-7.3.1.tgz", - "integrity": "sha512-aDV8ui/mprnL3xmt0gT/81DFtTtJiKyn+OxIAbwKPMfz/rDFdPYvF0BmDC9QxMMzGfkV+JJUjU6at0PPs2mRLg==", - "dev": true, - "optional": true, - "dependencies": { - "pouchdb-binary-utils": "7.3.1", - "spark-md5": "3.0.2" - } - }, - "node_modules/pouchdb-merge": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/pouchdb-merge/-/pouchdb-merge-7.3.1.tgz", - "integrity": "sha512-FeK3r35mKimokf2PQ2tUI523QWyZ4lYZ0Yd75FfSch/SPY6wIokz5XBZZ6PHdu5aOJsEKzoLUxr8CpSg9DhcAw==", - "dev": true, - "optional": true - }, - "node_modules/pouchdb-selector-core": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/pouchdb-selector-core/-/pouchdb-selector-core-7.3.1.tgz", - "integrity": "sha512-HBX+nNGXcaL9z0uNpwSMRq2GNZd3EZXW+fe9rJHS0hvJohjZL7aRJLoaXfEdHPRTNW+CpjM3Rny60eGekQdI/w==", - "dev": true, - "optional": true, - "dependencies": { - "pouchdb-collate": "7.3.1", - "pouchdb-utils": "7.3.1" - } - }, - "node_modules/pouchdb-utils": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/pouchdb-utils/-/pouchdb-utils-7.3.1.tgz", - "integrity": "sha512-R3hHBo1zTdTu/NFs3iqkcaQAPwhIH0gMIdfVKd5lbDYlmP26rCG5pdS+v7NuoSSFLJ4xxnaGV+Gjf4duYsJ8wQ==", - "dev": true, - "optional": true, - "dependencies": { - "argsarray": "0.0.1", - "clone-buffer": "1.0.0", - "immediate": "3.3.0", - "inherits": "2.0.4", - "pouchdb-collections": "7.3.1", - "pouchdb-errors": "7.3.1", - "pouchdb-md5": "7.3.1", - "uuid": "8.3.2" - } - }, - "node_modules/pouchdb-utils/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, - "optional": true, - "bin": { - "uuid": "dist/bin/uuid" - } - }, - "node_modules/pouchdb/node_modules/abstract-leveldown": { - "version": "6.2.3", - "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-6.2.3.tgz", - "integrity": "sha512-BsLm5vFMRUrrLeCcRc+G0t2qOaTzpoJQLOubq2XM72eNpjF5UdU5o/5NvlNhx95XHcAvcl8OMXr4mlg/fRgUXQ==", - "dev": true, - "optional": true, - "dependencies": { - "buffer": "^5.5.0", - "immediate": "^3.2.3", - "level-concat-iterator": "~2.0.0", - "level-supports": "~1.0.0", - "xtend": "~4.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/pouchdb/node_modules/deferred-leveldown": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/deferred-leveldown/-/deferred-leveldown-5.3.0.tgz", - "integrity": "sha512-a59VOT+oDy7vtAbLRCZwWgxu2BaCfd5Hk7wxJd48ei7I+nsg8Orlb9CLG0PMZienk9BSUKgeAqkO2+Lw+1+Ukw==", - "dev": true, - "optional": true, - "dependencies": { - "abstract-leveldown": "~6.2.1", - "inherits": "^2.0.3" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/pouchdb/node_modules/isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==", - "dev": true, - "optional": true - }, - "node_modules/pouchdb/node_modules/level-codec": { - "version": "9.0.2", - "resolved": "https://registry.npmjs.org/level-codec/-/level-codec-9.0.2.tgz", - "integrity": "sha512-UyIwNb1lJBChJnGfjmO0OR+ezh2iVu1Kas3nvBS/BzGnx79dv6g7unpKIDNPMhfdTEGoc7mC8uAu51XEtX+FHQ==", - "dev": true, - "optional": true, - "dependencies": { - "buffer": "^5.6.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/pouchdb/node_modules/level-concat-iterator": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/level-concat-iterator/-/level-concat-iterator-2.0.1.tgz", - "integrity": "sha512-OTKKOqeav2QWcERMJR7IS9CUo1sHnke2C0gkSmcR7QuEtFNLLzHQAvnMw8ykvEcv0Qtkg0p7FOwP1v9e5Smdcw==", - "dev": true, - "optional": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/pouchdb/node_modules/level-errors": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/level-errors/-/level-errors-2.0.1.tgz", - "integrity": "sha512-UVprBJXite4gPS+3VznfgDSU8PTRuVX0NXwoWW50KLxd2yw4Y1t2JUR5In1itQnudZqRMT9DlAM3Q//9NCjCFw==", - "dev": true, - "optional": true, - "dependencies": { - "errno": "~0.1.1" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/pouchdb/node_modules/level-iterator-stream": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/level-iterator-stream/-/level-iterator-stream-4.0.2.tgz", - "integrity": "sha512-ZSthfEqzGSOMWoUGhTXdX9jv26d32XJuHz/5YnuHZzH6wldfWMOVwI9TBtKcya4BKTyTt3XVA0A3cF3q5CY30Q==", - "dev": true, - "optional": true, - "dependencies": { - "inherits": "^2.0.4", - "readable-stream": "^3.4.0", - "xtend": "^4.0.2" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/pouchdb/node_modules/level-iterator-stream/node_modules/readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "dev": true, - "optional": true, - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/pouchdb/node_modules/level-supports": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/level-supports/-/level-supports-1.0.1.tgz", - "integrity": "sha512-rXM7GYnW8gsl1vedTJIbzOrRv85c/2uCMpiiCzO2fndd06U/kUXEEU9evYn4zFggBOg36IsBW8LzqIpETwwQzg==", - "dev": true, - "optional": true, - "dependencies": { - "xtend": "^4.0.2" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/pouchdb/node_modules/levelup": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/levelup/-/levelup-4.4.0.tgz", - "integrity": "sha512-94++VFO3qN95cM/d6eBXvd894oJE0w3cInq9USsyQzzoJxmiYzPAocNcuGCPGGjoXqDVJcr3C1jzt1TSjyaiLQ==", - "dev": true, - "optional": true, - "dependencies": { - "deferred-leveldown": "~5.3.0", - "level-errors": "~2.0.0", - "level-iterator-stream": "~4.0.0", - "level-supports": "~1.0.0", - "xtend": "~4.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/pouchdb/node_modules/node-fetch": { - "version": "2.6.7", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", - "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", - "dev": true, - "optional": true, - "dependencies": { - "whatwg-url": "^5.0.0" - }, - "engines": { - "node": "4.x || >=6.0.0" - }, - "peerDependencies": { - "encoding": "^0.1.0" - }, - "peerDependenciesMeta": { - "encoding": { - "optional": true - } - } - }, - "node_modules/pouchdb/node_modules/readable-stream": { - "version": "1.1.14", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", - "integrity": "sha512-+MeVjFf4L44XUkhM1eYbD8fyEsxcV81pqMSR5gblfcLCHfZvbrqy4/qYHE+/R5HoBUT11WV5O08Cr1n3YXkWVQ==", - "dev": true, - "optional": true, - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" - } - }, - "node_modules/pouchdb/node_modules/readable-stream/node_modules/string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==", - "dev": true, - "optional": true - }, - "node_modules/pouchdb/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, - "optional": true, - "bin": { - "uuid": "dist/bin/uuid" - } - }, - "node_modules/precond": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/precond/-/precond-0.2.3.tgz", - "integrity": "sha1-qpWRvKokkj8eD0hJ0kD0fvwQdaw=", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/prelude-ls": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", - "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", - "dev": true, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/prepend-http": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", - "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/prettier": { - "version": "1.19.1", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-1.19.1.tgz", - "integrity": "sha512-s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew==", - "dev": true, - "bin": { - "prettier": "bin-prettier.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/printj": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/printj/-/printj-1.1.2.tgz", - "integrity": "sha512-zA2SmoLaxZyArQTOPj5LXecR+RagfPSU5Kw1qP+jkWeNlrq+eJZyY2oS68SU1Z/7/myXM4lo9716laOFAVStCQ==", - "bin": { - "printj": "bin/printj.njs" - }, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/process": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/process/-/process-0.5.2.tgz", - "integrity": "sha1-FjjYqONML0QKkduVq5rrZ3/Bhc8=", - "engines": { - "node": ">= 0.6.0" - } - }, - "node_modules/process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" - }, - "node_modules/progress": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", - "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", - "dev": true, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/promise-inflight": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", - "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=" - }, - "node_modules/promise-polyfill": { - "version": "8.1.3", - "resolved": "https://registry.npmjs.org/promise-polyfill/-/promise-polyfill-8.1.3.tgz", - "integrity": "sha512-MG5r82wBzh7pSKDRa9y+vllNHz3e3d4CNj1PQE4BQYxLme0gKYYBm9YENq+UkEikyZ0XbiGWxYlVw3Rl9O/U8g==", - "dev": true - }, - "node_modules/promise-to-callback": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/promise-to-callback/-/promise-to-callback-1.0.0.tgz", - "integrity": "sha1-XSp0kBC/tn2WNZj805YHRqaP7vc=", - "dependencies": { - "is-fn": "^1.0.0", - "set-immediate-shim": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/prop-types": { - "version": "15.8.1", - "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", - "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", - "dependencies": { - "loose-envify": "^1.4.0", - "object-assign": "^4.1.1", - "react-is": "^16.13.1" - } - }, - "node_modules/protobufjs": { - "version": "6.11.2", - "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-6.11.2.tgz", - "integrity": "sha512-4BQJoPooKJl2G9j3XftkIXjoC9C0Av2NOrWmbLWT1vH32GcSUHjM0Arra6UfTsVyfMAuFzaLucXn1sadxJydAw==", - "hasInstallScript": true, - "dependencies": { - "@protobufjs/aspromise": "^1.1.2", - "@protobufjs/base64": "^1.1.2", - "@protobufjs/codegen": "^2.0.4", - "@protobufjs/eventemitter": "^1.1.0", - "@protobufjs/fetch": "^1.1.0", - "@protobufjs/float": "^1.0.2", - "@protobufjs/inquire": "^1.1.0", - "@protobufjs/path": "^1.1.2", - "@protobufjs/pool": "^1.1.0", - "@protobufjs/utf8": "^1.1.0", - "@types/long": "^4.0.1", - "@types/node": ">=13.7.0", - "long": "^4.0.0" - }, - "bin": { - "pbjs": "bin/pbjs", - "pbts": "bin/pbts" - } - }, - "node_modules/proxy-addr": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.6.tgz", - "integrity": "sha512-dh/frvCBVmSsDYzw6n926jv974gddhkFPfiN8hPOi30Wax25QZyZEGveluCgliBnqmuM+UJmBErbAUFIoDbjOw==", - "dev": true, - "dependencies": { - "forwarded": "~0.1.2", - "ipaddr.js": "1.9.1" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/proxy-from-env": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", - "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", - "dev": true, - "optional": true - }, - "node_modules/prr": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", - "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=" - }, - "node_modules/psl": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", - "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==", - "dev": true - }, - "node_modules/public-encrypt": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", - "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", - "dependencies": { - "bn.js": "^4.1.0", - "browserify-rsa": "^4.0.0", - "create-hash": "^1.1.0", - "parse-asn1": "^5.0.0", - "randombytes": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "node_modules/pull-stream": { - "version": "3.6.14", - "resolved": "https://registry.npmjs.org/pull-stream/-/pull-stream-3.6.14.tgz", - "integrity": "sha512-KIqdvpqHHaTUA2mCYcLG1ibEbu/LCKoJZsBWyv9lSYtPkJPBq8m3Hxa103xHi6D2thj5YXa0TqK3L3GUkwgnew==" - }, - "node_modules/pull-stream-to-async-iterator": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/pull-stream-to-async-iterator/-/pull-stream-to-async-iterator-1.0.2.tgz", - "integrity": "sha512-c3KRs2EneuxP7b6pG9fvQTIjatf33RbIErhbQ75s5r2MI6E8R74NZC1nJgXc8kcmqiQxmr+TWY+WwK2mWaUnlA==", - "dependencies": { - "pull-stream": "^3.6.9" - } - }, - "node_modules/pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "dependencies": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "node_modules/pumpify": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz", - "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==", - "dependencies": { - "duplexify": "^3.6.0", - "inherits": "^2.0.3", - "pump": "^2.0.0" - } - }, - "node_modules/pumpify/node_modules/pump": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", - "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", - "dependencies": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "node_modules/punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", - "engines": { - "node": ">=6" - } - }, - "node_modules/pure-rand": { - "version": "5.0.5", - "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-5.0.5.tgz", - "integrity": "sha512-BwQpbqxSCBJVpamI6ydzcKqyFmnd5msMWUGvzXLm1aXvusbbgkbOto/EUPM00hjveJEaJtdbhUjKSzWRhQVkaw==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://github.com/sponsors/dubzzz" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/fast-check" - } - ] - }, - "node_modules/qs": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", - "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", - "engines": { - "node": ">=0.6" - } - }, - "node_modules/query-string": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/query-string/-/query-string-5.1.1.tgz", - "integrity": "sha512-gjWOsm2SoGlgLEdAGt7a6slVOk9mGiXmPFMqrEhLQ68rhQuBnpfs3+EmlvqKyxnCo9/PPlF+9MtY02S1aFg+Jw==", - "dependencies": { - "decode-uri-component": "^0.2.0", - "object-assign": "^4.1.0", - "strict-uri-encode": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/querystring": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.1.tgz", - "integrity": "sha512-wkvS7mL/JMugcup3/rMitHmd9ecIGd2lhFhK9N3UUQ450h66d1r3Y9nvXzQAW1Lq+wyx61k/1pfKS5KuKiyEbg==", - "engines": { - "node": ">=0.4.x" - } - }, - "node_modules/querystring-es3": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", - "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=", - "engines": { - "node": ">=0.4.x" - } - }, - "node_modules/queue-microtask": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "optional": true - }, - "node_modules/quick-lru": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", - "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "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/randomfill": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", - "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", - "dependencies": { - "randombytes": "^2.0.5", - "safe-buffer": "^5.1.0" - } - }, - "node_modules/randomhex": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/randomhex/-/randomhex-0.1.5.tgz", - "integrity": "sha1-us7vmCMpCRQA8qKRLGzQLxCU9YU=", - "dev": true - }, - "node_modules/range-parser": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", - "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/raw-body": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz", - "integrity": "sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==", - "dev": true, - "dependencies": { - "bytes": "3.1.0", - "http-errors": "1.7.2", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/react-is": { - "version": "16.13.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", - "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" - }, - "node_modules/readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/readable-stream/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, - "node_modules/readdirp": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.5.0.tgz", - "integrity": "sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ==", - "dependencies": { - "picomatch": "^2.2.1" - }, - "engines": { - "node": ">=8.10.0" - } - }, - "node_modules/readonly-date": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/readonly-date/-/readonly-date-1.0.0.tgz", - "integrity": "sha512-tMKIV7hlk0h4mO3JTmmVuIlJVXjKk3Sep9Bf5OH0O+758ruuVkUy2J9SttDLm91IEX/WHlXPSpxMGjPj4beMIQ==" - }, - "node_modules/rechoir": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", - "integrity": "sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==", - "dependencies": { - "resolve": "^1.1.6" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/reduce-flatten": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/reduce-flatten/-/reduce-flatten-2.0.0.tgz", - "integrity": "sha512-EJ4UNY/U1t2P/2k6oqotuX2Cc3T6nxJwsM0N0asT7dhrtH1ltUxDn4NalSYmPE2rCkVpcf/X6R0wDwcFpzhd4w==", - "engines": { - "node": ">=6" - } - }, - "node_modules/redux": { - "version": "3.7.2", - "resolved": "https://registry.npmjs.org/redux/-/redux-3.7.2.tgz", - "integrity": "sha512-pNqnf9q1hI5HHZRBkj3bAngGZW/JMCmexDlOxw4XagXY2o1327nHH54LoTjiPJ0gizoqPDRqWyX/00g0hD6w+A==", - "dev": true, - "dependencies": { - "lodash": "^4.2.1", - "lodash-es": "^4.2.1", - "loose-envify": "^1.1.0", - "symbol-observable": "^1.0.3" - } - }, - "node_modules/redux-saga": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/redux-saga/-/redux-saga-1.0.0.tgz", - "integrity": "sha512-GvJWs/SzMvEQgeaw6sRMXnS2FghlvEGsHiEtTLpJqc/FHF3I5EE/B+Hq5lyHZ8LSoT2r/X/46uWvkdCnK9WgHA==", - "dev": true, - "dependencies": { - "@redux-saga/core": "^1.0.0" - } - }, - "node_modules/regenerator-runtime": { - "version": "0.13.11", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", - "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==" - }, - "node_modules/regex-not": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", - "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", - "dependencies": { - "extend-shallow": "^3.0.2", - "safe-regex": "^1.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/regexpp": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-2.0.1.tgz", - "integrity": "sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw==", - "dev": true, - "engines": { - "node": ">=6.5.0" - } - }, - "node_modules/remove-trailing-separator": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", - "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", - "optional": true - }, - "node_modules/repeat-element": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.4.tgz", - "integrity": "sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/repeat-string": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", - "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", - "engines": { - "node": ">=0.10" - } - }, - "node_modules/request": { - "version": "2.88.2", - "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", - "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", - "deprecated": "request has been deprecated, see https://github.com/request/request/issues/3142", - "dev": true, - "dependencies": { - "aws-sign2": "~0.7.0", - "aws4": "^1.8.0", - "caseless": "~0.12.0", - "combined-stream": "~1.0.6", - "extend": "~3.0.2", - "forever-agent": "~0.6.1", - "form-data": "~2.3.2", - "har-validator": "~5.1.3", - "http-signature": "~1.2.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.19", - "oauth-sign": "~0.9.0", - "performance-now": "^2.1.0", - "qs": "~6.5.2", - "safe-buffer": "^5.1.2", - "tough-cookie": "~2.5.0", - "tunnel-agent": "^0.6.0", - "uuid": "^3.3.2" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/require-from-string": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", - "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", - "dev": true, - "engines": { - "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/reselect": { - "version": "4.1.8", - "resolved": "https://registry.npmjs.org/reselect/-/reselect-4.1.8.tgz", - "integrity": "sha512-ab9EmR80F/zQTMNeneUr4cv+jSwPJgIlvEmVwLerwrWVbpLlBuls9XHzIeTFy4cegU2NHBp3va0LKOzU5qFEYQ==", - "dev": true - }, - "node_modules/reselect-tree": { - "version": "1.3.7", - "resolved": "https://registry.npmjs.org/reselect-tree/-/reselect-tree-1.3.7.tgz", - "integrity": "sha512-kZN+C1cVJ6fFN2smSb0l4UvYZlRzttgnu183svH4NrU22cBY++ikgr2QT75Uuk4MYpv5gXSVijw4c5U6cx6GKg==", - "dev": true, - "dependencies": { - "debug": "^3.1.0", - "json-pointer": "^0.6.1", - "reselect": "^4.0.0" - } - }, - "node_modules/resolve": { - "version": "1.17.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz", - "integrity": "sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==", - "dependencies": { - "path-parse": "^1.0.6" - } - }, - "node_modules/resolve-alpn": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz", - "integrity": "sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==", - "dev": true - }, - "node_modules/resolve-cwd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-2.0.0.tgz", - "integrity": "sha1-AKn3OHVW4nA46uIyyqNypqWbZlo=", - "dependencies": { - "resolve-from": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/resolve-cwd/node_modules/resolve-from": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", - "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", - "engines": { - "node": ">=4" - } - }, - "node_modules/resolve-dir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz", - "integrity": "sha1-eaQGRMNivoLybv/nOcm7U4IEb0M=", - "dependencies": { - "expand-tilde": "^2.0.0", - "global-modules": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/resolve-dir/node_modules/global-modules": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz", - "integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==", - "dependencies": { - "global-prefix": "^1.0.1", - "is-windows": "^1.0.1", - "resolve-dir": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/resolve-dir/node_modules/global-prefix": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz", - "integrity": "sha1-2/dDxsFJklk8ZVVoy2btMsASLr4=", - "dependencies": { - "expand-tilde": "^2.0.2", - "homedir-polyfill": "^1.0.1", - "ini": "^1.3.4", - "is-windows": "^1.0.1", - "which": "^1.2.14" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/resolve-dir/node_modules/which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "which": "bin/which" - } - }, - "node_modules/resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/resolve-url": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", - "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", - "deprecated": "https://github.com/lydell/resolve-url#deprecated" - }, - "node_modules/response-iterator": { - "version": "0.2.6", - "resolved": "https://registry.npmjs.org/response-iterator/-/response-iterator-0.2.6.tgz", - "integrity": "sha512-pVzEEzrsg23Sh053rmDUvLSkGXluZio0qu8VT6ukrYuvtjVfCbDZH9d6PGXb8HZfzdNZt8feXv/jvUzlhRgLnw==", - "engines": { - "node": ">=0.8" - } - }, - "node_modules/responselike": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", - "integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=", - "dev": true, - "dependencies": { - "lowercase-keys": "^1.0.0" - } - }, - "node_modules/restore-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", - "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", - "dev": true, - "dependencies": { - "onetime": "^5.1.0", - "signal-exit": "^3.0.2" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/ret": { - "version": "0.1.15", - "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", - "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", - "engines": { - "node": ">=0.12" - } - }, - "node_modules/retry": { - "version": "0.13.1", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz", - "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==", - "dev": true, - "optional": true, - "engines": { - "node": ">= 4" - } - }, - "node_modules/rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - } - }, - "node_modules/ripemd160": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", - "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", - "dependencies": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1" - } - }, - "node_modules/ripemd160-min": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/ripemd160-min/-/ripemd160-min-0.0.6.tgz", - "integrity": "sha512-+GcJgQivhs6S9qvLogusiTcS9kQUfgR75whKuy5jIhuiOfQuJ8fjqxV6EGD5duH1Y/FawFUMtMhyeq3Fbnib8A==", - "engines": { - "node": ">=8" - } - }, - "node_modules/rlp": { - "version": "2.2.6", - "resolved": "https://registry.npmjs.org/rlp/-/rlp-2.2.6.tgz", - "integrity": "sha512-HAfAmL6SDYNWPUOJNrM500x4Thn4PZsEy5pijPh40U9WfNk0z15hUYzO9xVIMAdIHdFtD8CBDHd75Td1g36Mjg==", - "dependencies": { - "bn.js": "^4.11.1" - }, - "bin": { - "rlp": "bin/rlp" - } - }, - "node_modules/run-async": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", - "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==", - "dev": true, - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/run-queue": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz", - "integrity": "sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec=", - "dependencies": { - "aproba": "^1.1.1" - } - }, - "node_modules/rustbn.js": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/rustbn.js/-/rustbn.js-0.2.0.tgz", - "integrity": "sha512-4VlvkRUuCJvr2J6Y0ImW7NvTCriMi7ErOAqWk1y69vAdoNIzCF3yPmgeNzx+RQTLEDFq5sHfscn1MwHxP9hNfA==" - }, - "node_modules/rxjs": { - "version": "6.6.0", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.0.tgz", - "integrity": "sha512-3HMA8z/Oz61DUHe+SdOiQyzIf4tOx5oQHmMir7IZEu6TMqCLHT4LRcmNaUS0NwOz8VLvmmBduMsoaUvMaIiqzg==", - "dev": true, - "dependencies": { - "tslib": "^1.9.0" - }, - "engines": { - "npm": ">=2.0.0" - } - }, - "node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" - }, - "node_modules/safe-event-emitter": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/safe-event-emitter/-/safe-event-emitter-1.0.1.tgz", - "integrity": "sha512-e1wFe99A91XYYxoQbcq2ZJUWurxEyP8vfz7A7vuUe1s95q8r5ebraVaA1BukYJcpM6V16ugWoD9vngi8Ccu5fg==", - "deprecated": "Renamed to @metamask/safe-event-emitter", - "dependencies": { - "events": "^3.0.0" - } - }, - "node_modules/safe-regex": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", - "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", - "dependencies": { - "ret": "~0.1.10" - } - }, - "node_modules/safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" - }, - "node_modules/scrypt-js": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-2.0.4.tgz", - "integrity": "sha512-4KsaGcPnuhtCZQCxFxN3GVYIhKFPTdLd8PLC552XwbMndtD0cjRFAhDuuydXQ0h08ZfPgzqe6EKHozpuH74iDw==", - "dev": true - }, - "node_modules/scrypt-shim": { - "resolved": "git+ssh://git@github.com/web3-js/scrypt-shim.git#aafdadda13e660e25e1c525d1f5b2443f5eb1ebb", - "dev": true, - "hasInstallScript": true, - "dependencies": { - "scryptsy": "^2.1.0", - "semver": "^6.3.0" - } - }, - "node_modules/scrypt-shim/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/scryptsy": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/scryptsy/-/scryptsy-2.1.0.tgz", - "integrity": "sha512-1CdSqHQowJBnMAFyPEBRfqag/YP9OF394FV+4YREIJX4ljD7OxvQRDayyoyyCk+senRjSkP6VnUNQmVQqB6g7w==" - }, - "node_modules/secp256k1": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-4.0.2.tgz", - "integrity": "sha512-UDar4sKvWAksIlfX3xIaQReADn+WFnHvbVujpcbr+9Sf/69odMwy2MUsz5CKLQgX9nsIyrjuxL2imVyoNHa3fg==", - "hasInstallScript": true, - "dependencies": { - "elliptic": "^6.5.2", - "node-addon-api": "^2.0.0", - "node-gyp-build": "^4.2.0" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/seek-bzip": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/seek-bzip/-/seek-bzip-1.0.5.tgz", - "integrity": "sha1-z+kXyz0nS8/6x5J1ivUxc+sfq9w=", - "dev": true, - "dependencies": { - "commander": "~2.8.1" - }, - "bin": { - "seek-bunzip": "bin/seek-bunzip", - "seek-table": "bin/seek-bzip-table" - } - }, - "node_modules/seek-bzip/node_modules/commander": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.8.1.tgz", - "integrity": "sha1-Br42f+v9oMMwqh4qBy09yXYkJdQ=", - "dev": true, - "dependencies": { - "graceful-readlink": ">= 1.0.0" - }, - "engines": { - "node": ">= 0.6.x" - } - }, - "node_modules/semaphore": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/semaphore/-/semaphore-1.1.0.tgz", - "integrity": "sha512-O4OZEaNtkMd/K0i6js9SL+gqy0ZCBMgUvlSqHKi4IBdjhe7wB8pwztUk1BbZ1fmrvpwFrPbHzqd2w5pTcJH6LA==", - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/send": { - "version": "0.17.1", - "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz", - "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==", - "dev": true, - "dependencies": { - "debug": "2.6.9", - "depd": "~1.1.2", - "destroy": "~1.0.4", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "fresh": "0.5.2", - "http-errors": "~1.7.2", - "mime": "1.6.0", - "ms": "2.1.1", - "on-finished": "~2.3.0", - "range-parser": "~1.2.1", - "statuses": "~1.5.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/send/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/send/node_modules/debug/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, - "node_modules/send/node_modules/ms": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", - "dev": true - }, - "node_modules/sentence-case": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/sentence-case/-/sentence-case-2.1.1.tgz", - "integrity": "sha512-ENl7cYHaK/Ktwk5OTD+aDbQ3uC8IByu/6Bkg+HDv8Mm+XnBnppVNalcfJTNsp1ibstKh030/JKQQWglDvtKwEQ==", - "dev": true, - "dependencies": { - "no-case": "^2.2.0", - "upper-case-first": "^1.1.2" - } - }, - "node_modules/serialize-javascript": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz", - "integrity": "sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==", - "dependencies": { - "randombytes": "^2.1.0" - } - }, - "node_modules/serve-static": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz", - "integrity": "sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==", - "dev": true, - "dependencies": { - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "parseurl": "~1.3.3", - "send": "0.17.1" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/servify": { - "version": "0.1.12", - "resolved": "https://registry.npmjs.org/servify/-/servify-0.1.12.tgz", - "integrity": "sha512-/xE6GvsKKqyo1BAY+KxOWXcLpPsUUyji7Qg3bVD7hh1eRze5bR1uYiuDA/k3Gof1s9BTzQZEJK8sNcNGFIzeWw==", - "dev": true, - "dependencies": { - "body-parser": "^1.16.0", - "cors": "^2.8.1", - "express": "^4.14.0", - "request": "^2.79.0", - "xhr": "^2.3.3" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" - }, - "node_modules/set-immediate-shim": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz", - "integrity": "sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/set-value": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", - "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", - "dependencies": { - "extend-shallow": "^2.0.1", - "is-extendable": "^0.1.1", - "is-plain-object": "^2.0.3", - "split-string": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/set-value/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/set-value/node_modules/is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/setimmediate": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.4.tgz", - "integrity": "sha1-IOgd5iLUoCWIzgyNqJc8vPHTE48=" - }, - "node_modules/setprototypeof": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", - "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==" - }, - "node_modules/sha.js": { - "version": "2.4.11", - "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", - "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", - "dependencies": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - }, - "bin": { - "sha.js": "bin.js" - } - }, - "node_modules/sha3": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/sha3/-/sha3-2.1.4.tgz", - "integrity": "sha512-S8cNxbyb0UGUM2VhRD4Poe5N58gJnJsLJ5vC7FYWGUmGhcsj4++WaIOBFVDxlG0W3To6xBuiRh+i0Qp2oNCOtg==", - "dependencies": { - "buffer": "6.0.3" - } - }, - "node_modules/sha3/node_modules/buffer": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", - "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" - } - }, - "node_modules/shallowequal": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/shallowequal/-/shallowequal-1.1.0.tgz", - "integrity": "sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==", - "dev": true - }, - "node_modules/shebang-command": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", - "dependencies": { - "shebang-regex": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/shebang-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/shelljs": { - "version": "0.8.5", - "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.5.tgz", - "integrity": "sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==", - "dependencies": { - "glob": "^7.0.0", - "interpret": "^1.0.0", - "rechoir": "^0.6.2" - }, - "bin": { - "shjs": "bin/shjs" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/shx": { - "version": "0.3.4", - "resolved": "https://registry.npmjs.org/shx/-/shx-0.3.4.tgz", - "integrity": "sha512-N6A9MLVqjxZYcVn8hLmtneQWIJtp8IKzMP4eMnx+nqkvXoqinUPCbUFLp2UcWTEIUONhlk0ewxr/jaVGlc+J+g==", - "dependencies": { - "minimist": "^1.2.3", - "shelljs": "^0.8.5" - }, - "bin": { - "shx": "lib/cli.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/signal-exit": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", - "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==", - "dev": true - }, - "node_modules/simple-concat": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz", - "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==" - }, - "node_modules/simple-get": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-2.8.1.tgz", - "integrity": "sha512-lSSHRSw3mQNUGPAYRqo7xy9dhKmxFXIjLjp4KHpf99GEH2VH7C3AM+Qfx6du6jhfUi6Vm7XnbEVEf7Wb6N8jRw==", - "dependencies": { - "decompress-response": "^3.3.0", - "once": "^1.3.1", - "simple-concat": "^1.0.0" - } - }, - "node_modules/simple-git": { - "version": "1.132.0", - "resolved": "https://registry.npmjs.org/simple-git/-/simple-git-1.132.0.tgz", - "integrity": "sha512-xauHm1YqCTom1sC9eOjfq3/9RKiUA9iPnxBbrY2DdL8l4ADMu0jjM5l5lphQP5YWNqAL2aXC/OeuQ76vHtW5fg==", - "dev": true, - "dependencies": { - "debug": "^4.0.1" - } - }, - "node_modules/simple-git/node_modules/debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", - "dev": true, - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/simple-git/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "node_modules/slice-ansi": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz", - "integrity": "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.0", - "astral-regex": "^1.0.0", - "is-fullwidth-code-point": "^2.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/snake-case": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/snake-case/-/snake-case-2.1.0.tgz", - "integrity": "sha512-FMR5YoPFwOLuh4rRz92dywJjyKYZNLpMn1R5ujVpIYkbA9p01fq8RMg0FkO4M+Yobt4MjHeLTJVm5xFFBHSV2Q==", - "dev": true, - "dependencies": { - "no-case": "^2.2.0" - } - }, - "node_modules/snakecase-keys": { - "version": "5.4.5", - "resolved": "https://registry.npmjs.org/snakecase-keys/-/snakecase-keys-5.4.5.tgz", - "integrity": "sha512-qSQVcgcWk8mQUN1miVGnRMAUye1dbj9+F9PVkR7wZUXNCidQwrl/kOKmoYf+WbH2ju6c9pXnlmbS2he7pb2/9A==", - "dependencies": { - "map-obj": "^4.1.0", - "snake-case": "^3.0.4", - "type-fest": "^2.5.2" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/snakecase-keys/node_modules/dot-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz", - "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==", - "dependencies": { - "no-case": "^3.0.4", - "tslib": "^2.0.3" - } - }, - "node_modules/snakecase-keys/node_modules/lower-case": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", - "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", - "dependencies": { - "tslib": "^2.0.3" - } - }, - "node_modules/snakecase-keys/node_modules/no-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", - "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", - "dependencies": { - "lower-case": "^2.0.2", - "tslib": "^2.0.3" - } - }, - "node_modules/snakecase-keys/node_modules/snake-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/snake-case/-/snake-case-3.0.4.tgz", - "integrity": "sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==", - "dependencies": { - "dot-case": "^3.0.4", - "tslib": "^2.0.3" - } - }, - "node_modules/snakecase-keys/node_modules/tslib": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz", - "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==" - }, - "node_modules/snakecase-keys/node_modules/type-fest": { - "version": "2.19.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz", - "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==", - "engines": { - "node": ">=12.20" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/snapdragon": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", - "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", - "dependencies": { - "base": "^0.11.1", - "debug": "^2.2.0", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "map-cache": "^0.2.2", - "source-map": "^0.5.6", - "source-map-resolve": "^0.5.0", - "use": "^3.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon-node": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", - "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", - "dependencies": { - "define-property": "^1.0.0", - "isobject": "^3.0.0", - "snapdragon-util": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon-node/node_modules/define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dependencies": { - "is-descriptor": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon-util": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", - "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", - "dependencies": { - "kind-of": "^3.2.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon-util/node_modules/is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" - }, - "node_modules/snapdragon-util/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/snapdragon/node_modules/define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dependencies": { - "is-descriptor": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon/node_modules/is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon/node_modules/is-accessor-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon/node_modules/is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" - }, - "node_modules/snapdragon/node_modules/is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon/node_modules/is-data-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon/node_modules/is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dependencies": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon/node_modules/is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon/node_modules/kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon/node_modules/source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/solc-wrapper": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/solc-wrapper/-/solc-wrapper-0.6.3.tgz", - "integrity": "sha512-FWBnuQfU537SVSsBxuE4XkOKcK88a/bpLMVde2gc3BZcj0VmPc38wYO0Hkqqxsek7ZLK2lmXuEDLmgXhXl8Kyw==", - "dev": true, - "dependencies": { - "command-exists": "^1.2.8", - "fs-extra": "^0.30.0", - "js-sha3": "0.8.0", - "memorystream": "^0.3.1", - "require-from-string": "^2.0.0", - "semver": "^5.5.0", - "tmp": "0.0.33" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/solc-wrapper/node_modules/fs-extra": { - "version": "0.30.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-0.30.0.tgz", - "integrity": "sha1-8jP/zAjU2n1DLapEl3aYnbHfk/A=", - "dev": true, - "dependencies": { - "graceful-fs": "^4.1.2", - "jsonfile": "^2.1.0", - "klaw": "^1.0.0", - "path-is-absolute": "^1.0.0", - "rimraf": "^2.2.8" - } - }, - "node_modules/solc-wrapper/node_modules/js-sha3": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.8.0.tgz", - "integrity": "sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q==", - "dev": true - }, - "node_modules/solc-wrapper/node_modules/jsonfile": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz", - "integrity": "sha1-NzaitCi4e72gzIO1P6PWM6NcKug=", - "dev": true, - "dependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/source-list-map": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz", - "integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==" - }, - "node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/source-map-resolve": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", - "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", - "deprecated": "See https://github.com/lydell/source-map-resolve#deprecated", - "dependencies": { - "atob": "^2.1.2", - "decode-uri-component": "^0.2.0", - "resolve-url": "^0.2.1", - "source-map-url": "^0.4.0", - "urix": "^0.1.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==", - "dependencies": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "node_modules/source-map-url": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz", - "integrity": "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==", - "deprecated": "See https://github.com/lydell/source-map-url#deprecated" - }, - "node_modules/spark-md5": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/spark-md5/-/spark-md5-3.0.2.tgz", - "integrity": "sha512-wcFzz9cDfbuqe0FZzfi2or1sgyIrsDwmPwfZC4hiNidPdPINjeUwNfv5kldczoEAcjl9Y1L3SM7Uz2PUEQzxQw==", - "dev": true, - "optional": true - }, - "node_modules/spinnies": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/spinnies/-/spinnies-0.3.2.tgz", - "integrity": "sha512-WOvGI8X3h2XbAu/VBzIG99qJTeWCZ5RjyZtuLc4Q6qwAIv1/OPA2aL9j5wYEhwNsWLbBDHH5bLk/bOJTpexljw==", - "dev": true, - "dependencies": { - "chalk": "^2.4.2", - "cli-cursor": "^3.0.0" - } - }, - "node_modules/split-string": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", - "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", - "dependencies": { - "extend-shallow": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", - "dev": true - }, - "node_modules/sshpk": { - "version": "1.16.1", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", - "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", - "dependencies": { - "asn1": "~0.2.3", - "assert-plus": "^1.0.0", - "bcrypt-pbkdf": "^1.0.0", - "dashdash": "^1.12.0", - "ecc-jsbn": "~0.1.1", - "getpass": "^0.1.1", - "jsbn": "~0.1.0", - "safer-buffer": "^2.0.2", - "tweetnacl": "~0.14.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ssri": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.2.tgz", - "integrity": "sha512-cepbSq/neFK7xB6A50KHN0xHDotYzq58wWCa5LeWqnPrHG8GzfEjO/4O8kpmcGW+oaxkvhEJCWgbgNk4/ZV93Q==", - "dependencies": { - "figgy-pudding": "^3.5.1" - } - }, - "node_modules/static-extend": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", - "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", - "dependencies": { - "define-property": "^0.2.5", - "object-copy": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/static-extend/node_modules/define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dependencies": { - "is-descriptor": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/static-extend/node_modules/is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/static-extend/node_modules/is-accessor-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/static-extend/node_modules/is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" - }, - "node_modules/static-extend/node_modules/is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/static-extend/node_modules/is-data-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/static-extend/node_modules/is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dependencies": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/static-extend/node_modules/kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/statuses": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/store2": { - "version": "2.14.2", - "resolved": "https://registry.npmjs.org/store2/-/store2-2.14.2.tgz", - "integrity": "sha512-siT1RiqlfQnGqgT/YzXVUNsom9S0H1OX+dpdGN1xkyYATo4I6sep5NmsRD/40s3IIOvlCq6akxkqG82urIZW1w==" - }, - "node_modules/stream-each": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/stream-each/-/stream-each-1.2.3.tgz", - "integrity": "sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw==", - "dependencies": { - "end-of-stream": "^1.1.0", - "stream-shift": "^1.0.0" - } - }, - "node_modules/stream-shift": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz", - "integrity": "sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==" - }, - "node_modules/strict-uri-encode": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz", - "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/string_decoder/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, - "node_modules/string-format": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/string-format/-/string-format-2.0.0.tgz", - "integrity": "sha512-bbEs3scLeYNXLecRRuk6uJxdXUSj6le/8rNPHChIJTn2V79aXVTR1EH2OH5zLKKoz0V02fOUKZZcw01pLUShZA==" - }, - "node_modules/string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", - "dependencies": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/string-width/node_modules/ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "engines": { - "node": ">=4" - } - }, - "node_modules/string-width/node_modules/strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dependencies": { - "ansi-regex": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/string.prototype.trimend": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz", - "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/string.prototype.trimstart": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz", - "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "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-regex": "^4.1.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/strip-dirs": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/strip-dirs/-/strip-dirs-2.1.0.tgz", - "integrity": "sha512-JOCxOeKLm2CAS73y/U4ZeZPTkE+gNVCzKt7Eox84Iej1LT/2pTWYpZKJuxwQpvX1LiZb1xokNR7RLfuBAa7T3g==", - "dev": true, - "dependencies": { - "is-natural-number": "^4.0.1" - } - }, - "node_modules/strip-hex-prefix": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-hex-prefix/-/strip-hex-prefix-1.0.0.tgz", - "integrity": "sha1-DF8VX+8RUTczd96du1iNoFUA428=", - "dependencies": { - "is-hex-prefixed": "1.0.0" - }, - "engines": { - "node": ">=6.5.0", - "npm": ">=3" - } - }, - "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/sublevel-pouchdb": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/sublevel-pouchdb/-/sublevel-pouchdb-7.3.1.tgz", - "integrity": "sha512-n+4fK72F/ORdqPwoGgMGYeOrW2HaPpW9o9k80bT1B3Cim5BSvkKkr9WbWOWynni/GHkbCEdvLVFJL1ktosAdhQ==", - "dev": true, - "optional": true, - "dependencies": { - "inherits": "2.0.4", - "level-codec": "9.0.2", - "ltgt": "2.2.1", - "readable-stream": "1.1.14" - } - }, - "node_modules/sublevel-pouchdb/node_modules/isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==", - "dev": true, - "optional": true - }, - "node_modules/sublevel-pouchdb/node_modules/level-codec": { - "version": "9.0.2", - "resolved": "https://registry.npmjs.org/level-codec/-/level-codec-9.0.2.tgz", - "integrity": "sha512-UyIwNb1lJBChJnGfjmO0OR+ezh2iVu1Kas3nvBS/BzGnx79dv6g7unpKIDNPMhfdTEGoc7mC8uAu51XEtX+FHQ==", - "dev": true, - "optional": true, - "dependencies": { - "buffer": "^5.6.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/sublevel-pouchdb/node_modules/readable-stream": { - "version": "1.1.14", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", - "integrity": "sha512-+MeVjFf4L44XUkhM1eYbD8fyEsxcV81pqMSR5gblfcLCHfZvbrqy4/qYHE+/R5HoBUT11WV5O08Cr1n3YXkWVQ==", - "dev": true, - "optional": true, - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" - } - }, - "node_modules/sublevel-pouchdb/node_modules/string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==", - "dev": true, - "optional": true - }, - "node_modules/subscriptions-transport-ws": { - "version": "0.9.19", - "resolved": "https://registry.npmjs.org/subscriptions-transport-ws/-/subscriptions-transport-ws-0.9.19.tgz", - "integrity": "sha512-dxdemxFFB0ppCLg10FTtRqH/31FNRL1y1BQv8209MK5I4CwALb7iihQg+7p65lFcIl8MHatINWBLOqpgU4Kyyw==", - "deprecated": "The `subscriptions-transport-ws` package is no longer maintained. We recommend you use `graphql-ws` instead. For help migrating Apollo software to `graphql-ws`, see https://www.apollographql.com/docs/apollo-server/data/subscriptions/#switching-from-subscriptions-transport-ws For general help using `graphql-ws`, see https://github.com/enisdenjo/graphql-ws/blob/master/README.md", - "optional": true, - "peer": true, - "dependencies": { - "backo2": "^1.0.2", - "eventemitter3": "^3.1.0", - "iterall": "^1.2.1", - "symbol-observable": "^1.0.4", - "ws": "^5.2.0 || ^6.0.0 || ^7.0.0" - }, - "peerDependencies": { - "graphql": ">=0.10.0" - } - }, - "node_modules/subscriptions-transport-ws/node_modules/ws": { - "version": "7.5.7", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.7.tgz", - "integrity": "sha512-KMvVuFzpKBuiIXW3E4u3mySRO2/mCHSyZDJQM5NQ9Q9KHWHWh0NHgfbRMLLrceUK5qAL4ytALJbpRMjixFZh8A==", - "optional": true, - "peer": true, - "engines": { - "node": ">=8.3.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": "^5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, - "node_modules/superstruct": { - "version": "0.15.5", - "resolved": "https://registry.npmjs.org/superstruct/-/superstruct-0.15.5.tgz", - "integrity": "sha512-4AOeU+P5UuE/4nOUkmcQdW5y7i9ndt1cQd/3iUe+LTz3RxESf/W/5lg4B74HbDMMv8PHnPnGCQFH45kBcrQYoQ==" - }, - "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==", - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/swap-case": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/swap-case/-/swap-case-1.1.2.tgz", - "integrity": "sha512-BAmWG6/bx8syfc6qXPprof3Mn5vQgf5dwdUNJhsNqU9WdPt5P+ES/wQ5bxfijy8zwZgZZHslC3iAsxsuQMCzJQ==", - "dev": true, - "dependencies": { - "lower-case": "^1.1.1", - "upper-case": "^1.1.1" - } - }, - "node_modules/swarm-js": { - "version": "0.1.39", - "resolved": "https://registry.npmjs.org/swarm-js/-/swarm-js-0.1.39.tgz", - "integrity": "sha512-QLMqL2rzF6n5s50BptyD6Oi0R1aWlJC5Y17SRIVXRj6OR1DRIPM7nepvrxxkjA1zNzFz6mUOMjfeqeDaWB7OOg==", - "dev": true, - "dependencies": { - "bluebird": "^3.5.0", - "buffer": "^5.0.5", - "decompress": "^4.0.0", - "eth-lib": "^0.1.26", - "fs-extra": "^4.0.2", - "got": "^7.1.0", - "mime-types": "^2.1.16", - "mkdirp-promise": "^5.0.1", - "mock-fs": "^4.1.0", - "setimmediate": "^1.0.5", - "tar": "^4.0.2", - "xhr-request-promise": "^0.1.2" - } - }, - "node_modules/swarm-js/node_modules/fs-extra": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-4.0.3.tgz", - "integrity": "sha512-q6rbdDd1o2mAnQreO7YADIxf/Whx4AHBiRf6d+/cVT8h44ss+lHgxf1FemcqDnQt9X3ct4McHr+JMGlYSsK7Cg==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - }, - "node_modules/swarm-js/node_modules/get-stream": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", - "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/swarm-js/node_modules/got": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/got/-/got-7.1.0.tgz", - "integrity": "sha512-Y5WMo7xKKq1muPsxD+KmrR8DH5auG7fBdDVueZwETwV6VytKyU9OX/ddpq2/1hp1vIPvVb4T81dKQz3BivkNLw==", - "dev": true, - "dependencies": { - "decompress-response": "^3.2.0", - "duplexer3": "^0.1.4", - "get-stream": "^3.0.0", - "is-plain-obj": "^1.1.0", - "is-retry-allowed": "^1.0.0", - "is-stream": "^1.0.0", - "isurl": "^1.0.0-alpha5", - "lowercase-keys": "^1.0.0", - "p-cancelable": "^0.3.0", - "p-timeout": "^1.1.1", - "safe-buffer": "^5.0.1", - "timed-out": "^4.0.0", - "url-parse-lax": "^1.0.0", - "url-to-options": "^1.0.1" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/swarm-js/node_modules/p-cancelable": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-0.3.0.tgz", - "integrity": "sha512-RVbZPLso8+jFeq1MfNvgXtCRED2raz/dKpacfTNxsx6pLEpEomM7gah6VeHSYV3+vo0OAi4MkArtQcWWXuQoyw==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/swarm-js/node_modules/prepend-http": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", - "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/swarm-js/node_modules/setimmediate": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", - "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=", - "dev": true - }, - "node_modules/swarm-js/node_modules/url-parse-lax": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz", - "integrity": "sha1-evjzA2Rem9eaJy56FKxovAYJ2nM=", - "dev": true, - "dependencies": { - "prepend-http": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/symbol-observable": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.2.0.tgz", - "integrity": "sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ==", - "devOptional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/table": { - "version": "5.4.6", - "resolved": "https://registry.npmjs.org/table/-/table-5.4.6.tgz", - "integrity": "sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug==", - "dev": true, - "dependencies": { - "ajv": "^6.10.2", - "lodash": "^4.17.14", - "slice-ansi": "^2.1.0", - "string-width": "^3.0.0" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/table-layout": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/table-layout/-/table-layout-1.0.2.tgz", - "integrity": "sha512-qd/R7n5rQTRFi+Zf2sk5XVVd9UQl6ZkduPFC3S7WEGJAmetDTjY3qPN50eSKzwuzEyQKy5TN2TiZdkIjos2L6A==", - "dependencies": { - "array-back": "^4.0.1", - "deep-extend": "~0.6.0", - "typical": "^5.2.0", - "wordwrapjs": "^4.0.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/table-layout/node_modules/array-back": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-4.0.2.tgz", - "integrity": "sha512-NbdMezxqf94cnNfWLL7V/im0Ub+Anbb0IoZhvzie8+4HJ4nMQuzHuy49FkGYCJK2yAloZ3meiB6AVMClbrI1vg==", - "engines": { - "node": ">=8" - } - }, - "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/table/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==", - "dev": true, - "dependencies": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/tar": { - "version": "4.4.13", - "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.13.tgz", - "integrity": "sha512-w2VwSrBoHa5BsSyH+KxEqeQBAllHhccyMFVHtGtdMpF4W7IRWfZjFiQceJPChOeTsSDVUpER2T8FA93pr0L+QA==", - "dev": true, - "dependencies": { - "chownr": "^1.1.1", - "fs-minipass": "^1.2.5", - "minipass": "^2.8.6", - "minizlib": "^1.2.1", - "mkdirp": "^0.5.0", - "safe-buffer": "^5.1.2", - "yallist": "^3.0.3" - }, - "engines": { - "node": ">=4.5" - } - }, - "node_modules/tar-stream": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-1.6.2.tgz", - "integrity": "sha512-rzS0heiNf8Xn7/mpdSVVSMAWAoy9bfb1WOTYC78Z0UQKeKa/CWS8FOq0lKGNa8DWKAn9gxjCvMLYc5PGXYlK2A==", - "dev": true, - "dependencies": { - "bl": "^1.0.0", - "buffer-alloc": "^1.2.0", - "end-of-stream": "^1.0.0", - "fs-constants": "^1.0.0", - "readable-stream": "^2.3.0", - "to-buffer": "^1.1.1", - "xtend": "^4.0.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/tar/node_modules/mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "dev": true, - "dependencies": { - "minimist": "^1.2.5" - }, - "bin": { - "mkdirp": "bin/cmd.js" - } - }, - "node_modules/test-value": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/test-value/-/test-value-2.1.0.tgz", - "integrity": "sha512-+1epbAxtKeXttkGFMTX9H42oqzOTufR1ceCF+GYA5aOmvaPq9wd4PUS8329fn2RRLGNeUkgRLnVpycjx8DsO2w==", - "dev": true, - "dependencies": { - "array-back": "^1.0.3", - "typical": "^2.6.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/test-value/node_modules/array-back": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-1.0.4.tgz", - "integrity": "sha512-1WxbZvrmyhkNoeYcizokbmh5oiOCIfyvGtcqbK3Ls1v1fKcquzxnQSceOx6tzq7jmai2kFLWIpGND2cLhH6TPw==", - "dev": true, - "dependencies": { - "typical": "^2.6.0" - }, - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/test-value/node_modules/typical": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/typical/-/typical-2.6.1.tgz", - "integrity": "sha512-ofhi8kjIje6npGozTip9Fr8iecmYfEbS06i0JnIg+rh51KakryWF4+jX8lLKZVhy6N+ID45WYSFCxPOdTWCzNg==", - "dev": true - }, - "node_modules/text-encoding-utf-8": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/text-encoding-utf-8/-/text-encoding-utf-8-1.0.2.tgz", - "integrity": "sha512-8bw4MY9WjdsD2aMtO0OzOCY3pXGYNx2d2FfHRVUKkiCPDWjKuOlhLVASS+pD7VkLTVjW268LYJHwsnPFlBpbAg==" - }, - "node_modules/text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", - "dev": true - }, - "node_modules/through": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=" - }, - "node_modules/through2": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/through2/-/through2-3.0.2.tgz", - "integrity": "sha512-enaDQ4MUyP2W6ZyT6EsMzqBPZaM/avg8iuo+l2d3QCs0J+6RaqkHV/2/lOwDTueBHeJ/2LG9lrLW3d5rWPucuQ==", - "dev": true, - "optional": true, - "dependencies": { - "inherits": "^2.0.4", - "readable-stream": "2 || 3" - } - }, - "node_modules/timed-out": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz", - "integrity": "sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/timers-browserify": { - "version": "2.0.12", - "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.12.tgz", - "integrity": "sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ==", - "dependencies": { - "setimmediate": "^1.0.4" - }, - "engines": { - "node": ">=0.6.0" - } - }, - "node_modules/tiny-secp256k1": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/tiny-secp256k1/-/tiny-secp256k1-1.1.6.tgz", - "integrity": "sha512-FmqJZGduTyvsr2cF3375fqGHUovSwDi/QytexX1Se4BPuPZpTE5Ftp5fg+EFSuEf3lhZqgCRjEG3ydUQ/aNiwA==", - "hasInstallScript": true, - "dependencies": { - "bindings": "^1.3.0", - "bn.js": "^4.11.8", - "create-hmac": "^1.1.7", - "elliptic": "^6.4.0", - "nan": "^2.13.2" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/tiny-typed-emitter": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/tiny-typed-emitter/-/tiny-typed-emitter-2.1.0.tgz", - "integrity": "sha512-qVtvMxeXbVej0cQWKqVSSAHmKZEHAvxdF8HEUBFWts8h+xEo5m/lEiPakuyZ3BnCBjOD8i24kzNOiOLLgsSxhA==", - "dev": true, - "optional": true - }, - "node_modules/title-case": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/title-case/-/title-case-2.1.1.tgz", - "integrity": "sha512-EkJoZ2O3zdCz3zJsYCsxyq2OC5hrxR9mfdd5I+w8h/tmFfeOxJ+vvkxsKxdmN0WtS9zLdHEgfgVOiMVgv+Po4Q==", - "dev": true, - "dependencies": { - "no-case": "^2.2.0", - "upper-case": "^1.0.3" - } - }, - "node_modules/tmp": { - "version": "0.0.33", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", - "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", - "dev": true, - "dependencies": { - "os-tmpdir": "~1.0.2" - }, - "engines": { - "node": ">=0.6.0" - } - }, - "node_modules/to-arraybuffer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", - "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=" - }, - "node_modules/to-buffer": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/to-buffer/-/to-buffer-1.1.1.tgz", - "integrity": "sha512-lx9B5iv7msuFYE3dytT+KE5tap+rNYw+K4jVkb9R/asAb+pbBSM17jtunHplhBe6RRJdZx3Pn2Jph24O32mOVg==", - "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": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", - "engines": { - "node": ">=4" - } - }, - "node_modules/to-object-path": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", - "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/to-object-path/node_modules/is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" - }, - "node_modules/to-object-path/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/to-readable-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz", - "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/to-regex": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", - "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", - "dependencies": { - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "regex-not": "^1.0.2", - "safe-regex": "^1.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/toidentifier": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", - "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==", - "engines": { - "node": ">=0.6" - } - }, - "node_modules/toml": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/toml/-/toml-3.0.0.tgz", - "integrity": "sha512-y/mWCZinnvxjTKYhJ+pYxwD0mRLVvOtdS2Awbgxln6iEnt4rk0yBxeSBHkGJcPucRiG0e55mwWp+g/05rsrd6w==" - }, - "node_modules/toposort": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/toposort/-/toposort-2.0.2.tgz", - "integrity": "sha1-riF2gXXRVZ1IvvNUILL0li8JwzA=", - "dev": true - }, - "node_modules/tough-cookie": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", - "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", - "dev": true, - "dependencies": { - "psl": "^1.1.28", - "punycode": "^2.1.1" - }, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=" - }, - "node_modules/truffle": { - "version": "5.8.4", - "resolved": "https://registry.npmjs.org/truffle/-/truffle-5.8.4.tgz", - "integrity": "sha512-wl5q6geB1Elq+A8knQ5zW9v9ARDiiawDkZOJZF7D0CN8zXmgGzdO4+EFZ4Ig3O4U70c0J2F2s27Oxj2XB4/SiA==", - "dev": true, - "hasInstallScript": true, - "dependencies": { - "@truffle/db-loader": "^0.2.23", - "@truffle/debugger": "^11.0.34", - "app-module-path": "^2.2.0", - "ganache": "7.8.0", - "mocha": "10.1.0", - "original-require": "^1.0.1" - }, - "bin": { - "truffle": "build/cli.bundled.js" - }, - "optionalDependencies": { - "@truffle/db": "^2.0.23" - } - }, - "node_modules/truffle-config": { - "version": "1.1.16", - "resolved": "https://registry.npmjs.org/truffle-config/-/truffle-config-1.1.16.tgz", - "integrity": "sha512-of9wKDjXAKIA4kpdQbxnSxRl4EOPi6ipkoOn01J3yC1UJ942jeyLm7hUrTRdxcL8Nz3G47xO+xTMX5T7UYbdTA==", - "dev": true, - "dependencies": { - "configstore": "^4.0.0", - "find-up": "^2.1.0", - "lodash": "^4.17.13", - "original-require": "1.0.1", - "truffle-error": "^0.0.5", - "truffle-provider": "^0.1.12" - } - }, - "node_modules/truffle-config/node_modules/find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "dev": true, - "dependencies": { - "locate-path": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/truffle-error": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/truffle-error/-/truffle-error-0.0.5.tgz", - "integrity": "sha512-JpzPLMPSCE0vaZ3vH5NO5u42GpMj/Y1SRBkQ6b69PSw3xMSH1umApN32cEcg1nnh8q5FNYc5FnKu0m4tiBffyQ==", - "dev": true - }, - "node_modules/truffle-flattener": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/truffle-flattener/-/truffle-flattener-1.6.0.tgz", - "integrity": "sha512-scS5Bsi4CZyvlrmD4iQcLHTiG2RQFUXVheTgWeH6PuafmI+Lk5U87Es98loM3w3ImqC9/fPHq+3QIXbcPuoJ1Q==", - "dev": true, - "dependencies": { - "@resolver-engine/imports-fs": "^0.2.2", - "@solidity-parser/parser": "^0.14.1", - "find-up": "^2.1.0", - "mkdirp": "^1.0.4", - "tsort": "0.0.1" - }, - "bin": { - "truffle-flattener": "index.js" - } - }, - "node_modules/truffle-flattener/node_modules/find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "dev": true, - "dependencies": { - "locate-path": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/truffle-hdwallet-provider-klaytn/-/truffle-hdwallet-provider-klaytn-1.4.2.tgz", - "integrity": "sha512-ECsaulUnVIYwSXzgh71FX7qKcCGSNj77GdoqQWNls5jJR0T3ufdG8lmH85TEnz9JOHEeEnLeLvUJ/Tcn2U4OMw==", - "dependencies": { - "@trufflesuite/web3-provider-engine": "15.0.13-1", - "any-promise": "1.3.0", - "bindings": "1.5.0", - "caver-js": "1.6.3", - "ethereum-cryptography": "0.1.3", - "ethereum-protocol": "1.0.1", - "ethereumjs-util": "6.2.0", - "ethereumjs-wallet": "1.0.1" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/@babel/runtime": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.3.1.tgz", - "integrity": "sha512-7jGW8ppV0ant637pIqAcFfQDDH1orEPGJb8aXfUozuCU3QqX7rX4DA8iwrbPrR1hcH0FTTHz47yQnk+bl5xHQA==", - "dependencies": { - "regenerator-runtime": "^0.12.0" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/@ethersproject/abi": { - "version": "5.0.7", - "resolved": "https://registry.npmjs.org/@ethersproject/abi/-/abi-5.0.7.tgz", - "integrity": "sha512-Cqktk+hSIckwP/W8O47Eef60VwmoSC/L3lY0+dIBhQPCNn9E4V7rwmm2aFrNRRDJfFlGuZ1khkQUOc3oBX+niw==", - "dependencies": { - "@ethersproject/address": "^5.0.4", - "@ethersproject/bignumber": "^5.0.7", - "@ethersproject/bytes": "^5.0.4", - "@ethersproject/constants": "^5.0.4", - "@ethersproject/hash": "^5.0.4", - "@ethersproject/keccak256": "^5.0.3", - "@ethersproject/logger": "^5.0.5", - "@ethersproject/properties": "^5.0.3", - "@ethersproject/strings": "^5.0.4" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/@ethersproject/abstract-provider": { - "version": "5.0.10", - "resolved": "https://registry.npmjs.org/@ethersproject/abstract-provider/-/abstract-provider-5.0.10.tgz", - "integrity": "sha512-OSReY5iz94iIaPlRvLiJP8YVIvQLx4aUvMMnHWSaA/vTU8QHZmgNlt4OBdYV1+aFY8Xl+VRYiWBHq72ZDKXXCQ==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/bignumber": "^5.0.13", - "@ethersproject/bytes": "^5.0.9", - "@ethersproject/logger": "^5.0.8", - "@ethersproject/networks": "^5.0.7", - "@ethersproject/properties": "^5.0.7", - "@ethersproject/transactions": "^5.0.9", - "@ethersproject/web": "^5.0.12" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/@ethersproject/abstract-signer": { - "version": "5.0.14", - "resolved": "https://registry.npmjs.org/@ethersproject/abstract-signer/-/abstract-signer-5.0.14.tgz", - "integrity": "sha512-JztBwVO7o5OHLh2vyjordlS4/1EjRyaECtc8vPdXTF1i4dXN+J0coeRoPN6ZFbBvi/YbaB6br2fvqhst1VQD/g==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/abstract-provider": "^5.0.8", - "@ethersproject/bignumber": "^5.0.13", - "@ethersproject/bytes": "^5.0.9", - "@ethersproject/logger": "^5.0.8", - "@ethersproject/properties": "^5.0.7" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/@ethersproject/address": { - "version": "5.0.11", - "resolved": "https://registry.npmjs.org/@ethersproject/address/-/address-5.0.11.tgz", - "integrity": "sha512-Et4GBdD8/tsBGjCEOKee9upN29qjL5kbRcmJifb4Penmiuh9GARXL2/xpXvEp5EW+EIW/rfCHFJrkYBgoQFQBw==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/bignumber": "^5.0.13", - "@ethersproject/bytes": "^5.0.9", - "@ethersproject/keccak256": "^5.0.7", - "@ethersproject/logger": "^5.0.8", - "@ethersproject/rlp": "^5.0.7" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/@ethersproject/base64": { - "version": "5.0.9", - "resolved": "https://registry.npmjs.org/@ethersproject/base64/-/base64-5.0.9.tgz", - "integrity": "sha512-37RBz5LEZ9SlTNGiWCYFttnIN9J7qVs9Xo2EbqGqDH5LfW9EIji66S+YDMpXVo1zWDax1FkEldAoatxHK2gfgA==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/bytes": "^5.0.9" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/@ethersproject/basex": { - "version": "5.0.9", - "resolved": "https://registry.npmjs.org/@ethersproject/basex/-/basex-5.0.9.tgz", - "integrity": "sha512-FANswl1IN3PS0eltQxH2aM2+utPrkLUVG4XVFi6SafRG9EpAqXCgycxC8PU90mPGhigYTpg9cnTB5mCZ6ejQjw==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/bytes": "^5.0.9", - "@ethersproject/properties": "^5.0.7" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/@ethersproject/bignumber": { - "version": "5.0.15", - "resolved": "https://registry.npmjs.org/@ethersproject/bignumber/-/bignumber-5.0.15.tgz", - "integrity": "sha512-MTADqnyacvdRwtKh7o9ujwNDSM1SDJjYDMYAzjIgjoi9rh6TY4suMbhCa3i2vh3SUXiXSICyTI8ui+NPdrZ9Lw==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/bytes": "^5.0.9", - "@ethersproject/logger": "^5.0.8", - "bn.js": "^4.4.0" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/@ethersproject/bytes": { - "version": "5.0.11", - "resolved": "https://registry.npmjs.org/@ethersproject/bytes/-/bytes-5.0.11.tgz", - "integrity": "sha512-D51plLYY5qF05AsoVQwIZVLqlBkaTPVHVP/1WmmBIWyHB0cRW0C9kh0kx5Exo51rB63Hk8PfHxc7SmpoaQFEyg==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/logger": "^5.0.8" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/@ethersproject/constants": { - "version": "5.0.10", - "resolved": "https://registry.npmjs.org/@ethersproject/constants/-/constants-5.0.10.tgz", - "integrity": "sha512-OSo8jxkHLDXieCy8bgOFR7lMfgPxEzKvSDdP+WAWHCDM8+orwch0B6wzkTmiQFgryAtIctrBt5glAdJikZ3hGw==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/bignumber": "^5.0.13" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/@ethersproject/contracts": { - "version": "5.0.12", - "resolved": "https://registry.npmjs.org/@ethersproject/contracts/-/contracts-5.0.12.tgz", - "integrity": "sha512-srijy31idjz8bE+gL1I6IRj2H4I9dUwfQ+QroLrIgNdGArqY8y2iFUKa3QTy+JBX26fJsdYiCQi1kKkaNpnMpQ==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/abi": "^5.0.10", - "@ethersproject/abstract-provider": "^5.0.8", - "@ethersproject/abstract-signer": "^5.0.10", - "@ethersproject/address": "^5.0.9", - "@ethersproject/bignumber": "^5.0.13", - "@ethersproject/bytes": "^5.0.9", - "@ethersproject/constants": "^5.0.8", - "@ethersproject/logger": "^5.0.8", - "@ethersproject/properties": "^5.0.7" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/@ethersproject/contracts/node_modules/@ethersproject/abi": { - "version": "5.6.1", - "resolved": "https://registry.npmjs.org/@ethersproject/abi/-/abi-5.6.1.tgz", - "integrity": "sha512-0cqssYh6FXjlwKWBmLm3+zH2BNARoS5u/hxbz+LpQmcDB3w0W553h2btWui1/uZp2GBM/SI3KniTuMcYyHpA5w==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/address": "^5.6.0", - "@ethersproject/bignumber": "^5.6.0", - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/constants": "^5.6.0", - "@ethersproject/hash": "^5.6.0", - "@ethersproject/keccak256": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/properties": "^5.6.0", - "@ethersproject/strings": "^5.6.0" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/@ethersproject/contracts/node_modules/@ethersproject/abstract-provider": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/@ethersproject/abstract-provider/-/abstract-provider-5.6.0.tgz", - "integrity": "sha512-oPMFlKLN+g+y7a79cLK3WiLcjWFnZQtXWgnLAbHZcN3s7L4v90UHpTOrLk+m3yr0gt+/h9STTM6zrr7PM8uoRw==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/bignumber": "^5.6.0", - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/networks": "^5.6.0", - "@ethersproject/properties": "^5.6.0", - "@ethersproject/transactions": "^5.6.0", - "@ethersproject/web": "^5.6.0" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/@ethersproject/contracts/node_modules/@ethersproject/abstract-signer": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/@ethersproject/abstract-signer/-/abstract-signer-5.6.0.tgz", - "integrity": "sha512-WOqnG0NJKtI8n0wWZPReHtaLkDByPL67tn4nBaDAhmVq8sjHTPbCdz4DRhVu/cfTOvfy9w3iq5QZ7BX7zw56BQ==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/abstract-provider": "^5.6.0", - "@ethersproject/bignumber": "^5.6.0", - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/properties": "^5.6.0" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/@ethersproject/contracts/node_modules/@ethersproject/address": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/@ethersproject/address/-/address-5.6.0.tgz", - "integrity": "sha512-6nvhYXjbXsHPS+30sHZ+U4VMagFC/9zAk6Gd/h3S21YW4+yfb0WfRtaAIZ4kfM4rrVwqiy284LP0GtL5HXGLxQ==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/bignumber": "^5.6.0", - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/keccak256": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/rlp": "^5.6.0" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/@ethersproject/contracts/node_modules/@ethersproject/base64": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/@ethersproject/base64/-/base64-5.6.0.tgz", - "integrity": "sha512-2Neq8wxJ9xHxCF9TUgmKeSh9BXJ6OAxWfeGWvbauPh8FuHEjamgHilllx8KkSd5ErxyHIX7Xv3Fkcud2kY9ezw==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/bytes": "^5.6.0" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/@ethersproject/contracts/node_modules/@ethersproject/bignumber": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/@ethersproject/bignumber/-/bignumber-5.6.0.tgz", - "integrity": "sha512-VziMaXIUHQlHJmkv1dlcd6GY2PmT0khtAqaMctCIDogxkrarMzA9L94KN1NeXqqOfFD6r0sJT3vCTOFSmZ07DA==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "bn.js": "^4.11.9" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/@ethersproject/contracts/node_modules/@ethersproject/bytes": { - "version": "5.6.1", - "resolved": "https://registry.npmjs.org/@ethersproject/bytes/-/bytes-5.6.1.tgz", - "integrity": "sha512-NwQt7cKn5+ZE4uDn+X5RAXLp46E1chXoaMmrxAyA0rblpxz8t58lVkrHXoRIn0lz1joQElQ8410GqhTqMOwc6g==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/logger": "^5.6.0" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/@ethersproject/contracts/node_modules/@ethersproject/constants": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/@ethersproject/constants/-/constants-5.6.0.tgz", - "integrity": "sha512-SrdaJx2bK0WQl23nSpV/b1aq293Lh0sUaZT/yYKPDKn4tlAbkH96SPJwIhwSwTsoQQZxuh1jnqsKwyymoiBdWA==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/bignumber": "^5.6.0" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/@ethersproject/contracts/node_modules/@ethersproject/hash": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/@ethersproject/hash/-/hash-5.6.0.tgz", - "integrity": "sha512-fFd+k9gtczqlr0/BruWLAu7UAOas1uRRJvOR84uDf4lNZ+bTkGl366qvniUZHKtlqxBRU65MkOobkmvmpHU+jA==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/abstract-signer": "^5.6.0", - "@ethersproject/address": "^5.6.0", - "@ethersproject/bignumber": "^5.6.0", - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/keccak256": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/properties": "^5.6.0", - "@ethersproject/strings": "^5.6.0" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/@ethersproject/contracts/node_modules/@ethersproject/keccak256": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/@ethersproject/keccak256/-/keccak256-5.6.0.tgz", - "integrity": "sha512-tk56BJ96mdj/ksi7HWZVWGjCq0WVl/QvfhFQNeL8fxhBlGoP+L80uDCiQcpJPd+2XxkivS3lwRm3E0CXTfol0w==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/bytes": "^5.6.0", - "js-sha3": "0.8.0" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/@ethersproject/contracts/node_modules/@ethersproject/logger": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/@ethersproject/logger/-/logger-5.6.0.tgz", - "integrity": "sha512-BiBWllUROH9w+P21RzoxJKzqoqpkyM1pRnEKG69bulE9TSQD8SAIvTQqIMZmmCO8pUNkgLP1wndX1gKghSpBmg==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ] - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/@ethersproject/contracts/node_modules/@ethersproject/networks": { - "version": "5.6.2", - "resolved": "https://registry.npmjs.org/@ethersproject/networks/-/networks-5.6.2.tgz", - "integrity": "sha512-9uEzaJY7j5wpYGTojGp8U89mSsgQLc40PCMJLMCnFXTs7nhBveZ0t7dbqWUNrepWTszDbFkYD6WlL8DKx5huHA==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/logger": "^5.6.0" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/@ethersproject/contracts/node_modules/@ethersproject/properties": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/@ethersproject/properties/-/properties-5.6.0.tgz", - "integrity": "sha512-szoOkHskajKePTJSZ46uHUWWkbv7TzP2ypdEK6jGMqJaEt2sb0jCgfBo0gH0m2HBpRixMuJ6TBRaQCF7a9DoCg==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/logger": "^5.6.0" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/@ethersproject/contracts/node_modules/@ethersproject/rlp": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/@ethersproject/rlp/-/rlp-5.6.0.tgz", - "integrity": "sha512-dz9WR1xpcTL+9DtOT/aDO+YyxSSdO8YIS0jyZwHHSlAmnxA6cKU3TrTd4Xc/bHayctxTgGLYNuVVoiXE4tTq1g==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/logger": "^5.6.0" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/@ethersproject/contracts/node_modules/@ethersproject/signing-key": { - "version": "5.6.1", - "resolved": "https://registry.npmjs.org/@ethersproject/signing-key/-/signing-key-5.6.1.tgz", - "integrity": "sha512-XvqQ20DH0D+bS3qlrrgh+axRMth5kD1xuvqUQUTeezxUTXBOeR6hWz2/C6FBEu39FRytyybIWrYf7YLSAKr1LQ==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/properties": "^5.6.0", - "bn.js": "^4.11.9", - "elliptic": "6.5.4", - "hash.js": "1.1.7" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/@ethersproject/contracts/node_modules/@ethersproject/strings": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/@ethersproject/strings/-/strings-5.6.0.tgz", - "integrity": "sha512-uv10vTtLTZqrJuqBZR862ZQjTIa724wGPWQqZrofaPI/kUsf53TBG0I0D+hQ1qyNtllbNzaW+PDPHHUI6/65Mg==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/constants": "^5.6.0", - "@ethersproject/logger": "^5.6.0" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/@ethersproject/contracts/node_modules/@ethersproject/transactions": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/@ethersproject/transactions/-/transactions-5.6.0.tgz", - "integrity": "sha512-4HX+VOhNjXHZyGzER6E/LVI2i6lf9ejYeWD6l4g50AdmimyuStKc39kvKf1bXWQMg7QNVh+uC7dYwtaZ02IXeg==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/address": "^5.6.0", - "@ethersproject/bignumber": "^5.6.0", - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/constants": "^5.6.0", - "@ethersproject/keccak256": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/properties": "^5.6.0", - "@ethersproject/rlp": "^5.6.0", - "@ethersproject/signing-key": "^5.6.0" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/@ethersproject/contracts/node_modules/@ethersproject/web": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/@ethersproject/web/-/web-5.6.0.tgz", - "integrity": "sha512-G/XHj0hV1FxI2teHRfCGvfBUHFmU+YOSbCxlAMqJklxSa7QMiHFQfAxvwY2PFqgvdkxEKwRNr/eCjfAPEm2Ctg==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/base64": "^5.6.0", - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/properties": "^5.6.0", - "@ethersproject/strings": "^5.6.0" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/@ethersproject/contracts/node_modules/hash.js": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", - "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", - "dependencies": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.1" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/@ethersproject/contracts/node_modules/js-sha3": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.8.0.tgz", - "integrity": "sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q==" - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/@ethersproject/hash": { - "version": "5.0.12", - "resolved": "https://registry.npmjs.org/@ethersproject/hash/-/hash-5.0.12.tgz", - "integrity": "sha512-kn4QN+fhNFbUgX3XZTZUaQixi0oyfIEY+hfW+KtkHu+rq7dV76oAIvaLEEynu1/4npOL38E4X4YI42gGZk+C0Q==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/abstract-signer": "^5.0.10", - "@ethersproject/address": "^5.0.9", - "@ethersproject/bignumber": "^5.0.13", - "@ethersproject/bytes": "^5.0.9", - "@ethersproject/keccak256": "^5.0.7", - "@ethersproject/logger": "^5.0.8", - "@ethersproject/properties": "^5.0.7", - "@ethersproject/strings": "^5.0.8" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/@ethersproject/hdnode": { - "version": "5.0.10", - "resolved": "https://registry.npmjs.org/@ethersproject/hdnode/-/hdnode-5.0.10.tgz", - "integrity": "sha512-ZLwMtIcXK7xz2lSITDCl40W04CtRq4K9NwBxhCzdzPdaz6XnoJMwGz2YMVLg+8ksseq+RYtTwIIXtlK6vyvQyg==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/abstract-signer": "^5.0.10", - "@ethersproject/basex": "^5.0.7", - "@ethersproject/bignumber": "^5.0.13", - "@ethersproject/bytes": "^5.0.9", - "@ethersproject/logger": "^5.0.8", - "@ethersproject/pbkdf2": "^5.0.7", - "@ethersproject/properties": "^5.0.7", - "@ethersproject/sha2": "^5.0.7", - "@ethersproject/signing-key": "^5.0.8", - "@ethersproject/strings": "^5.0.8", - "@ethersproject/transactions": "^5.0.9", - "@ethersproject/wordlists": "^5.0.8" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/@ethersproject/json-wallets": { - "version": "5.0.12", - "resolved": "https://registry.npmjs.org/@ethersproject/json-wallets/-/json-wallets-5.0.12.tgz", - "integrity": "sha512-nac553zGZnOewpjlqbfy7WBl8m3y7qudzRsI2dCxrediYtPIVIs9f6Pbnou8vDmmp8X4/U4W788d+Ma88o+Gbg==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/abstract-signer": "^5.0.10", - "@ethersproject/address": "^5.0.9", - "@ethersproject/bytes": "^5.0.9", - "@ethersproject/hdnode": "^5.0.8", - "@ethersproject/keccak256": "^5.0.7", - "@ethersproject/logger": "^5.0.8", - "@ethersproject/pbkdf2": "^5.0.7", - "@ethersproject/properties": "^5.0.7", - "@ethersproject/random": "^5.0.7", - "@ethersproject/strings": "^5.0.8", - "@ethersproject/transactions": "^5.0.9", - "aes-js": "3.0.0", - "scrypt-js": "3.0.1" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/@ethersproject/json-wallets/node_modules/aes-js": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/aes-js/-/aes-js-3.0.0.tgz", - "integrity": "sha1-4h3xCtbCBTKVvLuNq0Cwnb6ofk0=" - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/@ethersproject/keccak256": { - "version": "5.0.9", - "resolved": "https://registry.npmjs.org/@ethersproject/keccak256/-/keccak256-5.0.9.tgz", - "integrity": "sha512-zhdUTj6RGtCJSgU+bDrWF6cGbvW453LoIC1DSNWrTlXzC7WuH4a+EiPrgc7/kNoRxerKuA/cxYlI8GwNtVtDlw==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/bytes": "^5.0.9", - "js-sha3": "0.5.7" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/@ethersproject/logger": { - "version": "5.0.10", - "resolved": "https://registry.npmjs.org/@ethersproject/logger/-/logger-5.0.10.tgz", - "integrity": "sha512-0y2T2NqykDrbPM3Zw9RSbPkDOxwChAL8detXaom76CfYoGxsOnRP/zTX8OUAV+x9LdwzgbWvWmeXrc0M7SuDZw==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ] - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/@ethersproject/networks": { - "version": "5.0.9", - "resolved": "https://registry.npmjs.org/@ethersproject/networks/-/networks-5.0.9.tgz", - "integrity": "sha512-L8+VCQwArBLGkxZb/5Ns/OH/OxP38AcaveXIxhUTq+VWpXYjrObG3E7RDQIKkUx1S1IcQl/UWTz5w4DK0UitJg==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/logger": "^5.0.8" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/@ethersproject/pbkdf2": { - "version": "5.0.9", - "resolved": "https://registry.npmjs.org/@ethersproject/pbkdf2/-/pbkdf2-5.0.9.tgz", - "integrity": "sha512-ItE/wQ/WVw/ajEHPUVgfu0aEvksPgOQc+278bke8sGKnGO3ppjmqp0MHh17tHc1EBTzJbSms5aLIqc56qZ/oiA==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/bytes": "^5.0.9", - "@ethersproject/sha2": "^5.0.7" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/@ethersproject/properties": { - "version": "5.0.9", - "resolved": "https://registry.npmjs.org/@ethersproject/properties/-/properties-5.0.9.tgz", - "integrity": "sha512-ZCjzbHYTw+rF1Pn8FDCEmx3gQttwIHcm/6Xee8g/M3Ga3SfW4tccNMbs5zqnBH0E4RoOPaeNgyg1O68TaF0tlg==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/logger": "^5.0.8" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/@ethersproject/providers": { - "version": "5.0.24", - "resolved": "https://registry.npmjs.org/@ethersproject/providers/-/providers-5.0.24.tgz", - "integrity": "sha512-M4Iw1r4gGJkt7ZUa++iREuviKL/DIpmIMsaUlVlXtV+ZrUXeN8xQ3zOTrbz7R4h9W9oljBZM7i4D3Kn1krJ30A==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/abstract-provider": "^5.0.8", - "@ethersproject/abstract-signer": "^5.0.10", - "@ethersproject/address": "^5.0.9", - "@ethersproject/basex": "^5.0.7", - "@ethersproject/bignumber": "^5.0.13", - "@ethersproject/bytes": "^5.0.9", - "@ethersproject/constants": "^5.0.8", - "@ethersproject/hash": "^5.0.10", - "@ethersproject/logger": "^5.0.8", - "@ethersproject/networks": "^5.0.7", - "@ethersproject/properties": "^5.0.7", - "@ethersproject/random": "^5.0.7", - "@ethersproject/rlp": "^5.0.7", - "@ethersproject/sha2": "^5.0.7", - "@ethersproject/strings": "^5.0.8", - "@ethersproject/transactions": "^5.0.9", - "@ethersproject/web": "^5.0.12", - "bech32": "1.1.4", - "ws": "7.2.3" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/@ethersproject/providers/node_modules/ws": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.2.3.tgz", - "integrity": "sha512-HTDl9G9hbkNDk98naoR/cHDws7+EyYMOdL1BmjsZXRUjf7d+MficC4B7HLUPlSiho0vg+CWKrGIt/VJBd1xunQ==", - "engines": { - "node": ">=8.3.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": "^5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/@ethersproject/random": { - "version": "5.0.9", - "resolved": "https://registry.npmjs.org/@ethersproject/random/-/random-5.0.9.tgz", - "integrity": "sha512-DANG8THsKqFbJOantrxumtG6gyETNE54VfbsWa+SQAT8WKpDo9W/X5Zhh73KuhClaey1UI32uVmISZeq/Zxn1A==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/bytes": "^5.0.9", - "@ethersproject/logger": "^5.0.8" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/@ethersproject/rlp": { - "version": "5.0.9", - "resolved": "https://registry.npmjs.org/@ethersproject/rlp/-/rlp-5.0.9.tgz", - "integrity": "sha512-ns1U7ZMVeruUW6JXc4om+1w3w4ynHN/0fpwmeNTsAjwGKoF8SAUgue6ylKpHKWSti2idx7jDxbn8hNNFHk67CA==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/bytes": "^5.0.9", - "@ethersproject/logger": "^5.0.8" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/@ethersproject/sha2": { - "version": "5.0.9", - "resolved": "https://registry.npmjs.org/@ethersproject/sha2/-/sha2-5.0.9.tgz", - "integrity": "sha512-5FH4s47gM7N1fFAYQ1+m7aX0SbLg0Xr+6tvqndmNqc382/qBIbzXiGlUookrsjlPb6gLNurnTssCXjNM72J6lQ==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/bytes": "^5.0.9", - "@ethersproject/logger": "^5.0.8", - "hash.js": "1.1.3" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/@ethersproject/signing-key": { - "version": "5.0.11", - "resolved": "https://registry.npmjs.org/@ethersproject/signing-key/-/signing-key-5.0.11.tgz", - "integrity": "sha512-Jfcru/BGwdkXhLxT+8WCZtFy7LL0TPFZw05FAb5asxB/MyVsEfNdNxGDtjVE9zXfmRSPe/EusXYY4K7wcygOyQ==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/bytes": "^5.0.9", - "@ethersproject/logger": "^5.0.8", - "@ethersproject/properties": "^5.0.7", - "elliptic": "6.5.4" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/@ethersproject/solidity": { - "version": "5.0.10", - "resolved": "https://registry.npmjs.org/@ethersproject/solidity/-/solidity-5.0.10.tgz", - "integrity": "sha512-8OG3HLqynWXDA6mVIHuHfF/ojTTwBahON7hc9GAKCqglzXCkVA3OpyxOJXPzjHClRIAUUiU7r9oy9Z/nsjtT/g==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/bignumber": "^5.0.13", - "@ethersproject/bytes": "^5.0.9", - "@ethersproject/keccak256": "^5.0.7", - "@ethersproject/sha2": "^5.0.7", - "@ethersproject/strings": "^5.0.8" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/@ethersproject/strings": { - "version": "5.0.10", - "resolved": "https://registry.npmjs.org/@ethersproject/strings/-/strings-5.0.10.tgz", - "integrity": "sha512-KAeoS1tZ9/5ECXiIZA6S6hywbD0so2VmuW+Wfyo5EDXeyZ6Na1nxTPhTnW7voQmjbeYJffCrOc0qLFJeylyg7w==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/bytes": "^5.0.9", - "@ethersproject/constants": "^5.0.8", - "@ethersproject/logger": "^5.0.8" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/@ethersproject/transactions": { - "version": "5.0.11", - "resolved": "https://registry.npmjs.org/@ethersproject/transactions/-/transactions-5.0.11.tgz", - "integrity": "sha512-ftsRvR9+gQp7L63F6+XmstvsZ4w8GtWvQB08e/zB+oB86Fnhq8+i/tkgpJplSHC8I/qgiCisva+M3u2GVhDFPA==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/address": "^5.0.9", - "@ethersproject/bignumber": "^5.0.13", - "@ethersproject/bytes": "^5.0.9", - "@ethersproject/constants": "^5.0.8", - "@ethersproject/keccak256": "^5.0.7", - "@ethersproject/logger": "^5.0.8", - "@ethersproject/properties": "^5.0.7", - "@ethersproject/rlp": "^5.0.7", - "@ethersproject/signing-key": "^5.0.8" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/@ethersproject/units": { - "version": "5.0.11", - "resolved": "https://registry.npmjs.org/@ethersproject/units/-/units-5.0.11.tgz", - "integrity": "sha512-nOSPmcCWyB/dwoBRhhTtPGCsTbiXqmc7Q0Adwvafc432AC7hy3Fj3IFZtnSXsbtJ/GdHCIUIoA8gtvxSsFuBJg==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/bignumber": "^5.0.13", - "@ethersproject/constants": "^5.0.8", - "@ethersproject/logger": "^5.0.8" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/@ethersproject/wallet": { - "version": "5.0.12", - "resolved": "https://registry.npmjs.org/@ethersproject/wallet/-/wallet-5.0.12.tgz", - "integrity": "sha512-rboJebGf47/KPZrKZQdYg9BAYuXbc/OwcUyML1K1f2jnJeo1ObWV11U1PAWTjTbhhSy6/Fg+34GO2yMb5Dt1Rw==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/abstract-provider": "^5.0.8", - "@ethersproject/abstract-signer": "^5.0.10", - "@ethersproject/address": "^5.0.9", - "@ethersproject/bignumber": "^5.0.13", - "@ethersproject/bytes": "^5.0.9", - "@ethersproject/hash": "^5.0.10", - "@ethersproject/hdnode": "^5.0.8", - "@ethersproject/json-wallets": "^5.0.10", - "@ethersproject/keccak256": "^5.0.7", - "@ethersproject/logger": "^5.0.8", - "@ethersproject/properties": "^5.0.7", - "@ethersproject/random": "^5.0.7", - "@ethersproject/signing-key": "^5.0.8", - "@ethersproject/transactions": "^5.0.9", - "@ethersproject/wordlists": "^5.0.8" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/@ethersproject/web": { - "version": "5.0.14", - "resolved": "https://registry.npmjs.org/@ethersproject/web/-/web-5.0.14.tgz", - "integrity": "sha512-QpTgplslwZ0Sp9oKNLoRuS6TKxnkwfaEk3gr7zd7XLF8XBsYejsrQO/03fNfnMx/TAT/RR6WEw/mbOwpRSeVRA==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/base64": "^5.0.7", - "@ethersproject/bytes": "^5.0.9", - "@ethersproject/logger": "^5.0.8", - "@ethersproject/properties": "^5.0.7", - "@ethersproject/strings": "^5.0.8" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/@ethersproject/wordlists": { - "version": "5.0.10", - "resolved": "https://registry.npmjs.org/@ethersproject/wordlists/-/wordlists-5.0.10.tgz", - "integrity": "sha512-jWsEm1iJzpg9SCXnNfFz+tcp4Ofzv0TJb6mj+soCNcar9GcT0yGz62ZsHC3pLQWaF4LkCzGwRJHJTXKjHQfG1A==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/bytes": "^5.0.9", - "@ethersproject/hash": "^5.0.10", - "@ethersproject/logger": "^5.0.8", - "@ethersproject/properties": "^5.0.7", - "@ethersproject/strings": "^5.0.8" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/@trufflesuite/web3-provider-engine": { - "version": "15.0.13-1", - "resolved": "https://registry.npmjs.org/@trufflesuite/web3-provider-engine/-/web3-provider-engine-15.0.13-1.tgz", - "integrity": "sha512-6u3x/iIN5fyj8pib5QTUDmIOUiwAGhaqdSTXdqCu6v9zo2BEwdCqgEJd1uXDh3DBmPRDfiZ/ge8oUPy7LerpHg==", - "dependencies": { - "@trufflesuite/eth-json-rpc-filters": "^4.1.2-1", - "@trufflesuite/eth-json-rpc-infura": "^4.0.3-0", - "@trufflesuite/eth-json-rpc-middleware": "^4.4.2-1", - "@trufflesuite/eth-sig-util": "^1.4.2", - "async": "^2.5.0", - "backoff": "^2.5.0", - "clone": "^2.0.0", - "cross-fetch": "^2.1.0", - "eth-block-tracker": "^4.4.2", - "eth-json-rpc-errors": "^2.0.2", - "ethereumjs-block": "^1.2.2", - "ethereumjs-tx": "^1.2.0", - "ethereumjs-util": "^5.1.5", - "ethereumjs-vm": "^2.3.4", - "json-stable-stringify": "^1.0.1", - "promise-to-callback": "^1.0.0", - "readable-stream": "^2.2.9", - "request": "^2.85.0", - "semaphore": "^1.0.3", - "ws": "^5.1.1", - "xhr": "^2.2.0", - "xtend": "^4.0.1" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/@trufflesuite/web3-provider-engine/node_modules/ethereumjs-util": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", - "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", - "dependencies": { - "bn.js": "^4.11.0", - "create-hash": "^1.1.2", - "elliptic": "^6.5.2", - "ethereum-cryptography": "^0.1.3", - "ethjs-util": "^0.1.3", - "rlp": "^2.0.0", - "safe-buffer": "^5.1.1" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/@webassemblyjs/ast": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.9.0.tgz", - "integrity": "sha512-C6wW5L+b7ogSDVqymbkkvuW9kruN//YisMED04xzeBBqjHa2FYnmvOlS6Xj68xWQRgWvI9cIglsjFowH/RJyEA==", - "dependencies": { - "@webassemblyjs/helper-module-context": "1.9.0", - "@webassemblyjs/helper-wasm-bytecode": "1.9.0", - "@webassemblyjs/wast-parser": "1.9.0" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/@webassemblyjs/helper-api-error": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.9.0.tgz", - "integrity": "sha512-NcMLjoFMXpsASZFxJ5h2HZRcEhDkvnNFOAKneP5RbKRzaWJN36NC4jqQHKwStIhGXu5mUWlUUk7ygdtrO8lbmw==" - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/@webassemblyjs/helper-buffer": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.9.0.tgz", - "integrity": "sha512-qZol43oqhq6yBPx7YM3m9Bv7WMV9Eevj6kMi6InKOuZxhw+q9hOkvq5e/PpKSiLfyetpaBnogSbNCfBwyB00CA==" - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/@webassemblyjs/helper-wasm-bytecode": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.9.0.tgz", - "integrity": "sha512-R7FStIzyNcd7xKxCZH5lE0Bqy+hGTwS3LJjuv1ZVxd9O7eHCedSdrId/hMOd20I+v8wDXEn+bjfKDLzTepoaUw==" - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/@webassemblyjs/helper-wasm-section": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.9.0.tgz", - "integrity": "sha512-XnMB8l3ek4tvrKUUku+IVaXNHz2YsJyOOmz+MMkZvh8h1uSJpSen6vYnw3IoQ7WwEuAhL8Efjms1ZWjqh2agvw==", - "dependencies": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-buffer": "1.9.0", - "@webassemblyjs/helper-wasm-bytecode": "1.9.0", - "@webassemblyjs/wasm-gen": "1.9.0" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/@webassemblyjs/ieee754": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.9.0.tgz", - "integrity": "sha512-dcX8JuYU/gvymzIHc9DgxTzUUTLexWwt8uCTWP3otys596io0L5aW02Gb1RjYpx2+0Jus1h4ZFqjla7umFniTg==", - "dependencies": { - "@xtuc/ieee754": "^1.2.0" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/@webassemblyjs/leb128": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.9.0.tgz", - "integrity": "sha512-ENVzM5VwV1ojs9jam6vPys97B/S65YQtv/aanqnU7D8aSoHFX8GyhGg0CMfyKNIHBuAVjy3tlzd5QMMINa7wpw==", - "dependencies": { - "@xtuc/long": "4.2.2" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/@webassemblyjs/utf8": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.9.0.tgz", - "integrity": "sha512-GZbQlWtopBTP0u7cHrEx+73yZKrQoBMpwkGEIqlacljhXCkVM1kMQge/Mf+csMJAjEdSwhOyLAS0AoR3AG5P8w==" - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/@webassemblyjs/wasm-edit": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.9.0.tgz", - "integrity": "sha512-FgHzBm80uwz5M8WKnMTn6j/sVbqilPdQXTWraSjBwFXSYGirpkSWE2R9Qvz9tNiTKQvoKILpCuTjBKzOIm0nxw==", - "dependencies": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-buffer": "1.9.0", - "@webassemblyjs/helper-wasm-bytecode": "1.9.0", - "@webassemblyjs/helper-wasm-section": "1.9.0", - "@webassemblyjs/wasm-gen": "1.9.0", - "@webassemblyjs/wasm-opt": "1.9.0", - "@webassemblyjs/wasm-parser": "1.9.0", - "@webassemblyjs/wast-printer": "1.9.0" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/@webassemblyjs/wasm-gen": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.9.0.tgz", - "integrity": "sha512-cPE3o44YzOOHvlsb4+E9qSqjc9Qf9Na1OO/BHFy4OI91XDE14MjFN4lTMezzaIWdPqHnsTodGGNP+iRSYfGkjA==", - "dependencies": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-wasm-bytecode": "1.9.0", - "@webassemblyjs/ieee754": "1.9.0", - "@webassemblyjs/leb128": "1.9.0", - "@webassemblyjs/utf8": "1.9.0" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/@webassemblyjs/wasm-opt": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.9.0.tgz", - "integrity": "sha512-Qkjgm6Anhm+OMbIL0iokO7meajkzQD71ioelnfPEj6r4eOFuqm4YC3VBPqXjFyyNwowzbMD+hizmprP/Fwkl2A==", - "dependencies": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-buffer": "1.9.0", - "@webassemblyjs/wasm-gen": "1.9.0", - "@webassemblyjs/wasm-parser": "1.9.0" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/@webassemblyjs/wasm-parser": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.9.0.tgz", - "integrity": "sha512-9+wkMowR2AmdSWQzsPEjFU7njh8HTO5MqO8vjwEHuM+AMHioNqSBONRdr0NQQ3dVQrzp0s8lTcYqzUdb7YgELA==", - "dependencies": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-api-error": "1.9.0", - "@webassemblyjs/helper-wasm-bytecode": "1.9.0", - "@webassemblyjs/ieee754": "1.9.0", - "@webassemblyjs/leb128": "1.9.0", - "@webassemblyjs/utf8": "1.9.0" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/@webassemblyjs/wast-printer": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.9.0.tgz", - "integrity": "sha512-2J0nE95rHXHyQ24cWjMKJ1tqB/ds8z/cyeOZxJhcb+rW+SQASVjuznUSmdz5GpVJTzU8JkhYut0D3siFDD6wsA==", - "dependencies": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/wast-parser": "1.9.0", - "@xtuc/long": "4.2.2" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/acorn": { - "version": "6.4.2", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.2.tgz", - "integrity": "sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ==", - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/aes-js": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/aes-js/-/aes-js-3.1.2.tgz", - "integrity": "sha512-e5pEa2kBnBOgR4Y/p20pskXI74UEz7de8ZGVo58asOtvSVG5YAbJeELPZxOmt+Bnz3rX753YKhfIn4X4l1PPRQ==" - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/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/truffle-hdwallet-provider-klaytn/node_modules/bech32": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/bech32/-/bech32-1.1.4.tgz", - "integrity": "sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ==" - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/bignumber.js": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-8.0.2.tgz", - "integrity": "sha512-EiuvFrnbv0jFixEQ9f58jo7X0qI2lNGIr/MxntmVzQc5JUweDSh8y8hbTCAomFtqwUPIOWcLXP0VEOSZTG7FFw==", - "engines": { - "node": "*" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/caver-js": { - "version": "1.6.3", - "resolved": "https://registry.npmjs.org/caver-js/-/caver-js-1.6.3.tgz", - "integrity": "sha512-xSPnawdVFregH6eTO+1TF1rDAueiyFkgphKOAgSaPSw8DGz9jcRliTU2OH0jCghyTt0k9yntAR0NzlIKTc/76A==", - "dependencies": { - "@babel/runtime": "7.3.1", - "@ethersproject/abi": "5.0.7", - "@web3-js/scrypt-shim": "0.1.0", - "any-promise": "1.3.0", - "bignumber.js": "8.0.2", - "bn.js": "4.11.6", - "chai": "4.1.2", - "crypto-browserify": "3.12.0", - "dotenv": "8.2.0", - "elliptic": "6.5.4", - "eth-lib": "0.2.8", - "ethers": "5.0.32", - "ethjs-unit": "0.1.6", - "eventemitter3": "4.0.0", - "ipfs-http-client-lite": "0.3.0", - "it-each": "0.4.0", - "lodash": "4.17.21", - "mocha": "8.3.2", - "multihashes": "4.0.2", - "node-fetch": "2.6.1", - "number-to-bn": "1.7.0", - "oboe": "2.1.3", - "request": "2.87.0", - "requestretry": "2.0.2", - "scrypt-js": "3.0.1", - "semver": "6.2.0", - "utf8": "2.1.1", - "uuid": "3.0.0", - "webpack": "4.44.2", - "webpack-cli": "3.3.12", - "websocket": "1.0.31", - "xhr2-cookies": "1.1.0" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/caver-js/node_modules/bn.js": { - "version": "4.11.6", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz", - "integrity": "sha1-UzRK2xRhehP26N0s4okF0cC6MhU=" - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/caver-js/node_modules/utf8": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/utf8/-/utf8-2.1.1.tgz", - "integrity": "sha1-LgHbAvfY0JRPdxBPFgnrDDBM92g=" - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/caver-js/node_modules/uuid": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.0.0.tgz", - "integrity": "sha1-Zyj8BFnEUNeWqZwxg3VpvfZy1yg=", - "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", - "bin": { - "uuid": "bin/uuid" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/chai": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chai/-/chai-4.1.2.tgz", - "integrity": "sha1-D2RYS6ZC8PKs4oBiefTwbKI61zw=", - "dependencies": { - "assertion-error": "^1.0.1", - "check-error": "^1.0.1", - "deep-eql": "^3.0.0", - "get-func-name": "^2.0.0", - "pathval": "^1.0.0", - "type-detect": "^4.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/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/truffle-hdwallet-provider-klaytn/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/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/truffle-hdwallet-provider-klaytn/node_modules/dotenv": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-8.2.0.tgz", - "integrity": "sha512-8sJ78ElpbDJBHNeBzUbUVLsqKdccaa/BXF1uPTw3GrvQTBgrQrtObr2mUrE38vzYd8cEv+m/JBfDLioYcfXoaw==", - "engines": { - "node": ">=8" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/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/truffle-hdwallet-provider-klaytn/node_modules/enhanced-resolve": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.5.0.tgz", - "integrity": "sha512-Nv9m36S/vxpsI+Hc4/ZGRs0n9mXqSWGGq49zxb/cJfPAQMbUtttJAlNPS4AQzaBdw/pKskw5bMbekT/Y7W/Wlg==", - "dependencies": { - "graceful-fs": "^4.1.2", - "memory-fs": "^0.5.0", - "tapable": "^1.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/enhanced-resolve/node_modules/memory-fs": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.5.0.tgz", - "integrity": "sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA==", - "dependencies": { - "errno": "^0.1.3", - "readable-stream": "^2.0.1" - }, - "engines": { - "node": ">=4.3.0 <5.0.0 || >=5.10" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/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/truffle-hdwallet-provider-klaytn/node_modules/eslint-scope": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.3.tgz", - "integrity": "sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg==", - "dependencies": { - "esrecurse": "^4.1.0", - "estraverse": "^4.1.1" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/eth-lib": { - "version": "0.2.8", - "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.8.tgz", - "integrity": "sha512-ArJ7x1WcWOlSpzdoTBX8vkwlkSQ85CjjifSZtV4co64vWxSV8geWfPI9x4SVYu3DSxnX4yWFVTtGL+j9DUFLNw==", - "dependencies": { - "bn.js": "^4.11.6", - "elliptic": "^6.4.0", - "xhr-request-promise": "^0.1.2" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/ethereum-common": { - "version": "0.0.18", - "resolved": "https://registry.npmjs.org/ethereum-common/-/ethereum-common-0.0.18.tgz", - "integrity": "sha1-L9w1dvIykDNYl26znaeDIT/5Uj8=" - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/ethereumjs-tx": { - "version": "1.3.7", - "resolved": "https://registry.npmjs.org/ethereumjs-tx/-/ethereumjs-tx-1.3.7.tgz", - "integrity": "sha512-wvLMxzt1RPhAQ9Yi3/HKZTn0FZYpnsmQdbKYfUUpi4j1SEIcbkd9tndVjcPrufY3V7j2IebOpC00Zp2P/Ay2kA==", - "deprecated": "New package name format for new versions: @ethereumjs/tx. Please update.", - "dependencies": { - "ethereum-common": "^0.0.18", - "ethereumjs-util": "^5.0.0" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/ethereumjs-tx/node_modules/ethereumjs-util": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", - "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", - "dependencies": { - "bn.js": "^4.11.0", - "create-hash": "^1.1.2", - "elliptic": "^6.5.2", - "ethereum-cryptography": "^0.1.3", - "ethjs-util": "^0.1.3", - "rlp": "^2.0.0", - "safe-buffer": "^5.1.1" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/ethereumjs-util": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-6.2.0.tgz", - "integrity": "sha512-vb0XN9J2QGdZGIEKG2vXM+kUdEivUfU6Wmi5y0cg+LRhDYKnXIZ/Lz7XjFbHRR9VIKq2lVGLzGBkA++y2nOdOQ==", - "dependencies": { - "@types/bn.js": "^4.11.3", - "bn.js": "^4.11.0", - "create-hash": "^1.1.2", - "ethjs-util": "0.1.6", - "keccak": "^2.0.0", - "rlp": "^2.2.3", - "secp256k1": "^3.0.1" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/ethereumjs-wallet": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/ethereumjs-wallet/-/ethereumjs-wallet-1.0.1.tgz", - "integrity": "sha512-3Z5g1hG1das0JWU6cQ9HWWTY2nt9nXCcwj7eXVNAHKbo00XAZO8+NHlwdgXDWrL0SXVQMvTWN8Q/82DRH/JhPw==", - "dependencies": { - "aes-js": "^3.1.1", - "bs58check": "^2.1.2", - "ethereum-cryptography": "^0.1.3", - "ethereumjs-util": "^7.0.2", - "randombytes": "^2.0.6", - "scrypt-js": "^3.0.1", - "utf8": "^3.0.0", - "uuid": "^3.3.2" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/ethereumjs-wallet/node_modules/@types/bn.js": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-5.1.0.tgz", - "integrity": "sha512-QSSVYj7pYFN49kW77o2s9xTCwZ8F2xLbjLLSEVh8D2F4JUhZtPAGOFLTD+ffqksBx/u4cE/KImFjyhqCjn/LIA==", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/ethereumjs-wallet/node_modules/bn.js": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.0.tgz", - "integrity": "sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw==" - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/ethereumjs-wallet/node_modules/ethereumjs-util": { - "version": "7.1.4", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.4.tgz", - "integrity": "sha512-p6KmuPCX4mZIqsQzXfmSx9Y0l2hqf+VkAiwSisW3UKUFdk8ZkAt+AYaor83z2nSi6CU2zSsXMlD80hAbNEGM0A==", - "dependencies": { - "@types/bn.js": "^5.1.0", - "bn.js": "^5.1.2", - "create-hash": "^1.1.2", - "ethereum-cryptography": "^0.1.3", - "rlp": "^2.2.4" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/ethers": { - "version": "5.0.32", - "resolved": "https://registry.npmjs.org/ethers/-/ethers-5.0.32.tgz", - "integrity": "sha512-rORfGWR0HsA4pjKMMcWZorw12DHsXqfIAuPVHJsXt+vI24jvXcVqx+rLsSvgOoLdaCMdxiN5qlIq2+4axKG31g==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/abi": "5.0.13", - "@ethersproject/abstract-provider": "5.0.10", - "@ethersproject/abstract-signer": "5.0.14", - "@ethersproject/address": "5.0.11", - "@ethersproject/base64": "5.0.9", - "@ethersproject/basex": "5.0.9", - "@ethersproject/bignumber": "5.0.15", - "@ethersproject/bytes": "5.0.11", - "@ethersproject/constants": "5.0.10", - "@ethersproject/contracts": "5.0.12", - "@ethersproject/hash": "5.0.12", - "@ethersproject/hdnode": "5.0.10", - "@ethersproject/json-wallets": "5.0.12", - "@ethersproject/keccak256": "5.0.9", - "@ethersproject/logger": "5.0.10", - "@ethersproject/networks": "5.0.9", - "@ethersproject/pbkdf2": "5.0.9", - "@ethersproject/properties": "5.0.9", - "@ethersproject/providers": "5.0.24", - "@ethersproject/random": "5.0.9", - "@ethersproject/rlp": "5.0.9", - "@ethersproject/sha2": "5.0.9", - "@ethersproject/signing-key": "5.0.11", - "@ethersproject/solidity": "5.0.10", - "@ethersproject/strings": "5.0.10", - "@ethersproject/transactions": "5.0.11", - "@ethersproject/units": "5.0.11", - "@ethersproject/wallet": "5.0.12", - "@ethersproject/web": "5.0.14", - "@ethersproject/wordlists": "5.0.10" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/ethers/node_modules/@ethersproject/abi": { - "version": "5.0.13", - "resolved": "https://registry.npmjs.org/@ethersproject/abi/-/abi-5.0.13.tgz", - "integrity": "sha512-2coOH3D7ra1lwamKEH0HVc+Jbcsw5yfeCgmY8ekhCDualEiyyovD2qDcMBBcY3+kjoLHVTmo7ost6MNClxdOrg==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/address": "^5.0.9", - "@ethersproject/bignumber": "^5.0.13", - "@ethersproject/bytes": "^5.0.9", - "@ethersproject/constants": "^5.0.8", - "@ethersproject/hash": "^5.0.10", - "@ethersproject/keccak256": "^5.0.7", - "@ethersproject/logger": "^5.0.8", - "@ethersproject/properties": "^5.0.7", - "@ethersproject/strings": "^5.0.8" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/eventemitter3": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.0.tgz", - "integrity": "sha512-qerSRB0p+UDEssxTtm6EDKcE7W4OaoisfIMl4CngyEhjpYglocpNg6UEqCvemdGhosAsg4sO2dXJOdyBifPGCg==" - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/fast-deep-equal": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz", - "integrity": "sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ=" - }, - "node_modules/truffle-hdwallet-provider-klaytn/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/truffle-hdwallet-provider-klaytn/node_modules/har-validator": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.0.3.tgz", - "integrity": "sha1-ukAsJmGU8VlW7xXg/PJCmT9qff0=", - "deprecated": "this library is no longer supported", - "dependencies": { - "ajv": "^5.1.0", - "har-schema": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/har-validator/node_modules/ajv": { - "version": "5.5.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", - "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", - "dependencies": { - "co": "^4.6.0", - "fast-deep-equal": "^1.0.0", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.3.0" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/is-fullwidth-code-point": { - "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==", - "engines": { - "node": ">=8" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/js-yaml": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.0.0.tgz", - "integrity": "sha512-pqon0s+4ScYUvX30wxQi3PogGFAlUyH0awepWvwkj4jD4v+ova3RiYw8bmA6x2rDrEaj8i/oWKoRxpVNW+Re8Q==", - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/json-schema-traverse": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz", - "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=" - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/keccak": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/keccak/-/keccak-2.1.0.tgz", - "integrity": "sha512-m1wbJRTo+gWbctZWay9i26v5fFnYkOn7D5PCxJ3fZUGUEb49dE1Pm4BREUYCt/aoO6di7jeoGmhvqN9Nzylm3Q==", - "hasInstallScript": true, - "dependencies": { - "bindings": "^1.5.0", - "inherits": "^2.0.4", - "nan": "^2.14.0", - "safe-buffer": "^5.2.0" - }, - "engines": { - "node": ">=5.12.0" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/loader-runner": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.4.0.tgz", - "integrity": "sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw==", - "engines": { - "node": ">=4.3.0 <5.0.0 || >=5.10" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/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/truffle-hdwallet-provider-klaytn/node_modules/mkdirp": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", - "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", - "dependencies": { - "minimist": "^1.2.6" - }, - "bin": { - "mkdirp": "bin/cmd.js" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/mocha": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/mocha/-/mocha-8.3.2.tgz", - "integrity": "sha512-UdmISwr/5w+uXLPKspgoV7/RXZwKRTiTjJ2/AC5ZiEztIoOYdfKb19+9jNmEInzx5pBsCyJQzarAxqIGBNYJhg==", - "dependencies": { - "@ungap/promise-all-settled": "1.1.2", - "ansi-colors": "4.1.1", - "browser-stdout": "1.3.1", - "chokidar": "3.5.1", - "debug": "4.3.1", - "diff": "5.0.0", - "escape-string-regexp": "4.0.0", - "find-up": "5.0.0", - "glob": "7.1.6", - "growl": "1.10.5", - "he": "1.2.0", - "js-yaml": "4.0.0", - "log-symbols": "4.0.0", - "minimatch": "3.0.4", - "ms": "2.1.3", - "nanoid": "3.1.20", - "serialize-javascript": "5.0.1", - "strip-json-comments": "3.1.1", - "supports-color": "8.1.1", - "which": "2.0.2", - "wide-align": "1.1.3", - "workerpool": "6.1.0", - "yargs": "16.2.0", - "yargs-parser": "20.2.4", - "yargs-unparser": "2.0.0" - }, - "bin": { - "_mocha": "bin/_mocha", - "mocha": "bin/mocha" - }, - "engines": { - "node": ">= 10.12.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/mochajs" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/mocha/node_modules/debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/mocha/node_modules/debug/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/mocha/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/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/truffle-hdwallet-provider-klaytn/node_modules/mocha/node_modules/serialize-javascript": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-5.0.1.tgz", - "integrity": "sha512-SaaNal9imEO737H2c05Og0/8LUXG7EnsZyMa8MzkmuHoELfT6txuj0cMqRj6zfPKnmQ1yasR4PCJc8x+M4JSPA==", - "dependencies": { - "randombytes": "^2.1.0" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/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/truffle-hdwallet-provider-klaytn/node_modules/mocha/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/truffle-hdwallet-provider-klaytn/node_modules/multibase": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/multibase/-/multibase-4.0.6.tgz", - "integrity": "sha512-x23pDe5+svdLz/k5JPGCVdfn7Q5mZVMBETiC+ORfO+sor9Sgs0smJzAjfTbM5tckeCqnaUuMYoz+k3RXMmJClQ==", - "deprecated": "This module has been superseded by the multiformats module", - "dependencies": { - "@multiformats/base-x": "^4.0.1" - }, - "engines": { - "node": ">=12.0.0", - "npm": ">=6.0.0" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/multihashes": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/multihashes/-/multihashes-4.0.2.tgz", - "integrity": "sha512-xpx++1iZr4ZQHjN1mcrXS6904R36LWLxX/CBifczjtmrtCXEX623DMWOF1eiNSg+pFpiZDFVBgou/4v6ayCHSQ==", - "dependencies": { - "multibase": "^4.0.1", - "uint8arrays": "^2.1.3", - "varint": "^5.0.2" - }, - "engines": { - "node": ">=12.0.0", - "npm": ">=6.0.0" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/node-fetch": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz", - "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==", - "engines": { - "node": "4.x || >=6.0.0" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/oauth-sign": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz", - "integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM=", - "engines": { - "node": "*" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/oboe": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/oboe/-/oboe-2.1.3.tgz", - "integrity": "sha1-K0hl29Rr6BIlcT9Om/5Lz09oCk8=", - "dependencies": { - "http-https": "^1.0.0" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/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/truffle-hdwallet-provider-klaytn/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/truffle-hdwallet-provider-klaytn/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" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=" - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/regenerator-runtime": { - "version": "0.12.1", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.12.1.tgz", - "integrity": "sha512-odxIc1/vDlo4iZcfXqRYFj0vpXFNoGdKMAUieAlFYO6m/nl5e9KR/beGf41z4a1FI+aQgtjhuaSlDxQ0hmkrHg==" - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/request": { - "version": "2.87.0", - "resolved": "https://registry.npmjs.org/request/-/request-2.87.0.tgz", - "integrity": "sha512-fcogkm7Az5bsS6Sl0sibkbhcKsnyon/jV1kF3ajGmF0c8HrttdKTPRT9hieOaQHA5HEq6r8OyWOo/o781C1tNw==", - "deprecated": "request has been deprecated, see https://github.com/request/request/issues/3142", - "dependencies": { - "aws-sign2": "~0.7.0", - "aws4": "^1.6.0", - "caseless": "~0.12.0", - "combined-stream": "~1.0.5", - "extend": "~3.0.1", - "forever-agent": "~0.6.1", - "form-data": "~2.3.1", - "har-validator": "~5.0.3", - "http-signature": "~1.2.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.17", - "oauth-sign": "~0.8.2", - "performance-now": "^2.1.0", - "qs": "~6.5.1", - "safe-buffer": "^5.1.1", - "tough-cookie": "~2.3.3", - "tunnel-agent": "^0.6.0", - "uuid": "^3.1.0" - }, - "engines": { - "node": ">= 4" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/requestretry": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/requestretry/-/requestretry-2.0.2.tgz", - "integrity": "sha512-wBIylIEvvGHnFAYRXIKCARGzWxChn+mo7X3KjXPgtofB+c0ejcZFdZ5k6RFhBV+IOf80fkemcVuVdUKqovnj8A==", - "dependencies": { - "extend": "^3.0.2", - "lodash": "^4.17.10", - "when": "^3.7.7" - }, - "peerDependencies": { - "request": "~2.87.0" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/schema-utils": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", - "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", - "dependencies": { - "ajv": "^6.1.0", - "ajv-errors": "^1.0.0", - "ajv-keywords": "^3.1.0" - }, - "engines": { - "node": ">= 4" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/scrypt-js": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-3.0.1.tgz", - "integrity": "sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA==" - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/secp256k1": { - "version": "3.8.0", - "resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-3.8.0.tgz", - "integrity": "sha512-k5ke5avRZbtl9Tqx/SA7CbY3NF6Ro+Sj9cZxezFzuBlLDmyqPiL8hJJ+EmzD8Ig4LUDByHJ3/iPOVoRixs/hmw==", - "hasInstallScript": true, - "dependencies": { - "bindings": "^1.5.0", - "bip66": "^1.1.5", - "bn.js": "^4.11.8", - "create-hash": "^1.2.0", - "drbg.js": "^1.0.1", - "elliptic": "^6.5.2", - "nan": "^2.14.0", - "safe-buffer": "^5.1.2" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/semver": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.2.0.tgz", - "integrity": "sha512-jdFC1VdUGT/2Scgbimf7FSx9iJLXoqfglSF+gJeuNWVpiE37OIbc1jywR/GJyFdz3mnkz2/id0L0J/cr0izR5A==", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/tapable": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz", - "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==", - "engines": { - "node": ">=6" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/terser": { - "version": "4.8.0", - "resolved": "https://registry.npmjs.org/terser/-/terser-4.8.0.tgz", - "integrity": "sha512-EAPipTNeWsb/3wLPeup1tVPaXfIaU68xMnVdPafIL1TV05OhASArYyIfFvnvJCNrR2NIOvDVNNTFRa+Re2MWyw==", - "dependencies": { - "commander": "^2.20.0", - "source-map": "~0.6.1", - "source-map-support": "~0.5.12" - }, - "bin": { - "terser": "bin/terser" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/terser-webpack-plugin": { - "version": "1.4.5", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.4.5.tgz", - "integrity": "sha512-04Rfe496lN8EYruwi6oPQkG0vo8C+HT49X687FZnpPF0qMAIHONI6HEXYPKDOE8e5HjXTyKfqRd/agHtH0kOtw==", - "dependencies": { - "cacache": "^12.0.2", - "find-cache-dir": "^2.1.0", - "is-wsl": "^1.1.0", - "schema-utils": "^1.0.0", - "serialize-javascript": "^4.0.0", - "source-map": "^0.6.1", - "terser": "^4.1.2", - "webpack-sources": "^1.4.0", - "worker-farm": "^1.7.0" - }, - "engines": { - "node": ">= 6.9.0" - }, - "peerDependencies": { - "webpack": "^4.0.0" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/tough-cookie": { - "version": "2.3.4", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.4.tgz", - "integrity": "sha512-TZ6TTfI5NtZnuyy/Kecv+CnoROnyXn2DN97LontgQpCwsX2XyLYCC0ENhYkehSOwAp8rTQKc/NUIF7BkQ5rKLA==", - "dependencies": { - "punycode": "^1.4.1" - }, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/uint8arrays": { - "version": "2.1.10", - "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-2.1.10.tgz", - "integrity": "sha512-Q9/hhJa2836nQfEJSZTmr+pg9+cDJS9XEAp7N2Vg5MzL3bK/mkMVfjscRGYruP9jNda6MAdf4QD/y78gSzkp6A==", - "dependencies": { - "multiformats": "^9.4.2" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/watchpack": { - "version": "1.7.5", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.7.5.tgz", - "integrity": "sha512-9P3MWk6SrKjHsGkLT2KHXdQ/9SNkyoJbabxnKOoJepsvJjJG8uYTR3yTPxPQvNDI3w4Nz1xnE0TLHK4RIVe/MQ==", - "dependencies": { - "graceful-fs": "^4.1.2", - "neo-async": "^2.5.0" - }, - "optionalDependencies": { - "chokidar": "^3.4.1", - "watchpack-chokidar2": "^2.0.1" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/webpack": { - "version": "4.44.2", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.44.2.tgz", - "integrity": "sha512-6KJVGlCxYdISyurpQ0IPTklv+DULv05rs2hseIXer6D7KrUicRDLFb4IUM1S6LUAKypPM/nSiVSuv8jHu1m3/Q==", - "dependencies": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-module-context": "1.9.0", - "@webassemblyjs/wasm-edit": "1.9.0", - "@webassemblyjs/wasm-parser": "1.9.0", - "acorn": "^6.4.1", - "ajv": "^6.10.2", - "ajv-keywords": "^3.4.1", - "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^4.3.0", - "eslint-scope": "^4.0.3", - "json-parse-better-errors": "^1.0.2", - "loader-runner": "^2.4.0", - "loader-utils": "^1.2.3", - "memory-fs": "^0.4.1", - "micromatch": "^3.1.10", - "mkdirp": "^0.5.3", - "neo-async": "^2.6.1", - "node-libs-browser": "^2.2.1", - "schema-utils": "^1.0.0", - "tapable": "^1.1.3", - "terser-webpack-plugin": "^1.4.3", - "watchpack": "^1.7.4", - "webpack-sources": "^1.4.1" - }, - "bin": { - "webpack": "bin/webpack.js" - }, - "engines": { - "node": ">=6.11.5" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependenciesMeta": { - "webpack-cli": { - "optional": true - }, - "webpack-command": { - "optional": true - } - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/webpack-cli": { - "version": "3.3.12", - "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-3.3.12.tgz", - "integrity": "sha512-NVWBaz9k839ZH/sinurM+HcDvJOTXwSjYp1ku+5XKeOC03z8v5QitnK/x+lAxGXFyhdayoIf/GOpv85z3/xPag==", - "dependencies": { - "chalk": "^2.4.2", - "cross-spawn": "^6.0.5", - "enhanced-resolve": "^4.1.1", - "findup-sync": "^3.0.0", - "global-modules": "^2.0.0", - "import-local": "^2.0.0", - "interpret": "^1.4.0", - "loader-utils": "^1.4.0", - "supports-color": "^6.1.0", - "v8-compile-cache": "^2.1.1", - "yargs": "^13.3.2" - }, - "bin": { - "webpack-cli": "bin/cli.js" - }, - "engines": { - "node": ">=6.11.5" - }, - "peerDependencies": { - "webpack": "4.x.x" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/webpack-sources": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz", - "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==", - "dependencies": { - "source-list-map": "^2.0.0", - "source-map": "~0.6.1" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/websocket": { - "version": "1.0.31", - "resolved": "https://registry.npmjs.org/websocket/-/websocket-1.0.31.tgz", - "integrity": "sha512-VAouplvGKPiKFDTeCCO65vYHsyay8DqoBSlzIO3fayrfOgU94lQN5a1uWVnFrMLceTJw/+fQXR5PGbUVRaHshQ==", - "hasInstallScript": true, - "dependencies": { - "debug": "^2.2.0", - "es5-ext": "^0.10.50", - "nan": "^2.14.0", - "typedarray-to-buffer": "^3.1.5", - "yaeti": "^0.0.6" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/workerpool": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.1.0.tgz", - "integrity": "sha512-toV7q9rWNYha963Pl/qyeZ6wG+3nnsyvolaNUS8+R5Wtw6qJPTxIlOP1ZSvcGhEJw+l3HMMmtiNo9Gl61G4GVg==" - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/ws": { - "version": "5.2.3", - "resolved": "https://registry.npmjs.org/ws/-/ws-5.2.3.tgz", - "integrity": "sha512-jZArVERrMsKUatIdnLzqvcfydI85dvd/Fp1u/VOpfdDWQ4c9qWXe+VIeAbQ5FrDwciAkr+lzofXLz3Kuf26AOA==", - "dependencies": { - "async-limiter": "~1.0.0" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/node_modules/y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "engines": { - "node": ">=10" - } - }, - "node_modules/truffle-hdwallet-provider-klaytn/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==", - "engines": { - "node": ">=10" - } - }, - "node_modules/truffle-interface-adapter": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/truffle-interface-adapter/-/truffle-interface-adapter-0.2.5.tgz", - "integrity": "sha512-EL39OpP8FcZ99ne1Rno3jImfb92Nectd4iVsZzoEUCBfbwHe7sr0k+i45guoruSoP8nMUE81Mov2s8I5pi6d9Q==", - "dev": true, - "dependencies": { - "bn.js": "^4.11.8", - "ethers": "^4.0.32", - "lodash": "^4.17.13", - "web3": "1.2.1" - } - }, - "node_modules/truffle-interface-adapter/node_modules/@types/node": { - "version": "10.17.28", - "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.28.tgz", - "integrity": "sha512-dzjES1Egb4c1a89C7lKwQh8pwjYmlOAG9dW1pBgxEk57tMrLnssOfEthz8kdkNaBd7lIqQx7APm5+mZ619IiCQ==", - "dev": true - }, - "node_modules/truffle-interface-adapter/node_modules/eth-lib": { - "version": "0.2.7", - "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.7.tgz", - "integrity": "sha1-L5Pxex4jrsN1nNSj/iDBKGo/wco=", - "dev": true, - "dependencies": { - "bn.js": "^4.11.6", - "elliptic": "^6.4.0", - "xhr-request-promise": "^0.1.2" - } - }, - "node_modules/truffle-interface-adapter/node_modules/ethers": { - "version": "4.0.49", - "resolved": "https://registry.npmjs.org/ethers/-/ethers-4.0.49.tgz", - "integrity": "sha512-kPltTvWiyu+OktYy1IStSO16i2e7cS9D9OxZ81q2UUaiNPVrm/RTcbxamCXF9VUSKzJIdJV68EAIhTEVBalRWg==", - "dev": true, - "dependencies": { - "aes-js": "3.0.0", - "bn.js": "^4.11.9", - "elliptic": "6.5.4", - "hash.js": "1.1.3", - "js-sha3": "0.5.7", - "scrypt-js": "2.0.4", - "setimmediate": "1.0.4", - "uuid": "2.0.1", - "xmlhttprequest": "1.8.0" - } - }, - "node_modules/truffle-interface-adapter/node_modules/ethers/node_modules/scrypt-js": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-2.0.4.tgz", - "integrity": "sha512-4KsaGcPnuhtCZQCxFxN3GVYIhKFPTdLd8PLC552XwbMndtD0cjRFAhDuuydXQ0h08ZfPgzqe6EKHozpuH74iDw==", - "dev": true - }, - "node_modules/truffle-interface-adapter/node_modules/scrypt-js": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-2.0.3.tgz", - "integrity": "sha1-uwBAvgMEPamgEqLOqfyfhSz8h9Q=", - "dev": true - }, - "node_modules/truffle-interface-adapter/node_modules/semver": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.2.0.tgz", - "integrity": "sha512-jdFC1VdUGT/2Scgbimf7FSx9iJLXoqfglSF+gJeuNWVpiE37OIbc1jywR/GJyFdz3mnkz2/id0L0J/cr0izR5A==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/truffle-interface-adapter/node_modules/underscore": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.9.1.tgz", - "integrity": "sha512-5/4etnCkd9c8gwgowi5/om/mYO5ajCaOgdzj/oW+0eQV9WxKBDZw5+ycmKmeaTXjInS/W0BzpGLo2xR2aBwZdg==", - "dev": true - }, - "node_modules/truffle-interface-adapter/node_modules/uuid": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-2.0.1.tgz", - "integrity": "sha1-wqMN7bPlNdcsz4LjQ5QaULqFM6w=", - "dev": true - }, - "node_modules/truffle-interface-adapter/node_modules/web3": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3/-/web3-1.2.1.tgz", - "integrity": "sha512-nNMzeCK0agb5i/oTWNdQ1aGtwYfXzHottFP2Dz0oGIzavPMGSKyVlr8ibVb1yK5sJBjrWVnTdGaOC2zKDFuFRw==", - "dev": true, - "dependencies": { - "web3-bzz": "1.2.1", - "web3-core": "1.2.1", - "web3-eth": "1.2.1", - "web3-eth-personal": "1.2.1", - "web3-net": "1.2.1", - "web3-shh": "1.2.1", - "web3-utils": "1.2.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/truffle-interface-adapter/node_modules/web3-bzz": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-bzz/-/web3-bzz-1.2.1.tgz", - "integrity": "sha512-LdOO44TuYbGIPfL4ilkuS89GQovxUpmLz6C1UC7VYVVRILeZS740FVB3j9V4P4FHUk1RenaDfKhcntqgVCHtjw==", - "dev": true, - "dependencies": { - "got": "9.6.0", - "swarm-js": "0.1.39", - "underscore": "1.9.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/truffle-interface-adapter/node_modules/web3-core": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-core/-/web3-core-1.2.1.tgz", - "integrity": "sha512-5ODwIqgl8oIg/0+Ai4jsLxkKFWJYE0uLuE1yUKHNVCL4zL6n3rFjRMpKPokd6id6nJCNgeA64KdWQ4XfpnjdMg==", - "dev": true, - "dependencies": { - "web3-core-helpers": "1.2.1", - "web3-core-method": "1.2.1", - "web3-core-requestmanager": "1.2.1", - "web3-utils": "1.2.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/truffle-interface-adapter/node_modules/web3-core-helpers": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.2.1.tgz", - "integrity": "sha512-Gx3sTEajD5r96bJgfuW377PZVFmXIH4TdqDhgGwd2lZQCcMi+DA4TgxJNJGxn0R3aUVzyyE76j4LBrh412mXrw==", - "dev": true, - "dependencies": { - "underscore": "1.9.1", - "web3-eth-iban": "1.2.1", - "web3-utils": "1.2.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/truffle-interface-adapter/node_modules/web3-core-method": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-core-method/-/web3-core-method-1.2.1.tgz", - "integrity": "sha512-Ghg2WS23qi6Xj8Od3VCzaImLHseEA7/usvnOItluiIc5cKs00WYWsNy2YRStzU9a2+z8lwQywPYp0nTzR/QXdQ==", - "dev": true, - "dependencies": { - "underscore": "1.9.1", - "web3-core-helpers": "1.2.1", - "web3-core-promievent": "1.2.1", - "web3-core-subscriptions": "1.2.1", - "web3-utils": "1.2.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/truffle-interface-adapter/node_modules/web3-core-promievent": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-core-promievent/-/web3-core-promievent-1.2.1.tgz", - "integrity": "sha512-IVUqgpIKoeOYblwpex4Hye6npM0aMR+kU49VP06secPeN0rHMyhGF0ZGveWBrGvf8WDPI7jhqPBFIC6Jf3Q3zw==", - "dev": true, - "dependencies": { - "any-promise": "1.3.0", - "eventemitter3": "3.1.2" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/truffle-interface-adapter/node_modules/web3-core-requestmanager": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-core-requestmanager/-/web3-core-requestmanager-1.2.1.tgz", - "integrity": "sha512-xfknTC69RfYmLKC+83Jz73IC3/sS2ZLhGtX33D4Q5nQ8yc39ElyAolxr9sJQS8kihOcM6u4J+8gyGMqsLcpIBg==", - "dev": true, - "dependencies": { - "underscore": "1.9.1", - "web3-core-helpers": "1.2.1", - "web3-providers-http": "1.2.1", - "web3-providers-ipc": "1.2.1", - "web3-providers-ws": "1.2.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/truffle-interface-adapter/node_modules/web3-core-subscriptions": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-core-subscriptions/-/web3-core-subscriptions-1.2.1.tgz", - "integrity": "sha512-nmOwe3NsB8V8UFsY1r+sW6KjdOS68h8nuh7NzlWxBQT/19QSUGiERRTaZXWu5BYvo1EoZRMxCKyCQpSSXLc08g==", - "dev": true, - "dependencies": { - "eventemitter3": "3.1.2", - "underscore": "1.9.1", - "web3-core-helpers": "1.2.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/truffle-interface-adapter/node_modules/web3-eth": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-eth/-/web3-eth-1.2.1.tgz", - "integrity": "sha512-/2xly4Yry5FW1i+uygPjhfvgUP/MS/Dk+PDqmzp5M88tS86A+j8BzKc23GrlA8sgGs0645cpZK/999LpEF5UdA==", - "dev": true, - "dependencies": { - "underscore": "1.9.1", - "web3-core": "1.2.1", - "web3-core-helpers": "1.2.1", - "web3-core-method": "1.2.1", - "web3-core-subscriptions": "1.2.1", - "web3-eth-abi": "1.2.1", - "web3-eth-accounts": "1.2.1", - "web3-eth-contract": "1.2.1", - "web3-eth-ens": "1.2.1", - "web3-eth-iban": "1.2.1", - "web3-eth-personal": "1.2.1", - "web3-net": "1.2.1", - "web3-utils": "1.2.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/truffle-interface-adapter/node_modules/web3-eth-abi": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-eth-abi/-/web3-eth-abi-1.2.1.tgz", - "integrity": "sha512-jI/KhU2a/DQPZXHjo2GW0myEljzfiKOn+h1qxK1+Y9OQfTcBMxrQJyH5AP89O6l6NZ1QvNdq99ThAxBFoy5L+g==", - "dev": true, - "dependencies": { - "ethers": "4.0.0-beta.3", - "underscore": "1.9.1", - "web3-utils": "1.2.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/truffle-interface-adapter/node_modules/web3-eth-abi/node_modules/elliptic": { - "version": "6.3.3", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.3.3.tgz", - "integrity": "sha1-VILZZG1UvLif19mU/J4ulWiHbj8=", - "dev": true, - "dependencies": { - "bn.js": "^4.4.0", - "brorand": "^1.0.1", - "hash.js": "^1.0.0", - "inherits": "^2.0.1" - } - }, - "node_modules/truffle-interface-adapter/node_modules/web3-eth-abi/node_modules/ethers": { - "version": "4.0.0-beta.3", - "resolved": "https://registry.npmjs.org/ethers/-/ethers-4.0.0-beta.3.tgz", - "integrity": "sha512-YYPogooSknTwvHg3+Mv71gM/3Wcrx+ZpCzarBj3mqs9njjRkrOo2/eufzhHloOCo3JSoNI4TQJJ6yU5ABm3Uog==", - "dev": true, - "dependencies": { - "@types/node": "^10.3.2", - "aes-js": "3.0.0", - "bn.js": "^4.4.0", - "elliptic": "6.3.3", - "hash.js": "1.1.3", - "js-sha3": "0.5.7", - "scrypt-js": "2.0.3", - "setimmediate": "1.0.4", - "uuid": "2.0.1", - "xmlhttprequest": "1.8.0" - } - }, - "node_modules/truffle-interface-adapter/node_modules/web3-eth-accounts": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-eth-accounts/-/web3-eth-accounts-1.2.1.tgz", - "integrity": "sha512-26I4qq42STQ8IeKUyur3MdQ1NzrzCqPsmzqpux0j6X/XBD7EjZ+Cs0lhGNkSKH5dI3V8CJasnQ5T1mNKeWB7nQ==", - "dev": true, - "dependencies": { - "any-promise": "1.3.0", - "crypto-browserify": "3.12.0", - "eth-lib": "0.2.7", - "scryptsy": "2.1.0", - "semver": "6.2.0", - "underscore": "1.9.1", - "uuid": "3.3.2", - "web3-core": "1.2.1", - "web3-core-helpers": "1.2.1", - "web3-core-method": "1.2.1", - "web3-utils": "1.2.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/truffle-interface-adapter/node_modules/web3-eth-accounts/node_modules/uuid": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", - "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==", - "dev": true, - "bin": { - "uuid": "bin/uuid" - } - }, - "node_modules/truffle-interface-adapter/node_modules/web3-eth-contract": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-eth-contract/-/web3-eth-contract-1.2.1.tgz", - "integrity": "sha512-kYFESbQ3boC9bl2rYVghj7O8UKMiuKaiMkxvRH5cEDHil8V7MGEGZNH0slSdoyeftZVlaWSMqkRP/chfnKND0g==", - "dev": true, - "dependencies": { - "underscore": "1.9.1", - "web3-core": "1.2.1", - "web3-core-helpers": "1.2.1", - "web3-core-method": "1.2.1", - "web3-core-promievent": "1.2.1", - "web3-core-subscriptions": "1.2.1", - "web3-eth-abi": "1.2.1", - "web3-utils": "1.2.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/truffle-interface-adapter/node_modules/web3-eth-ens": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-eth-ens/-/web3-eth-ens-1.2.1.tgz", - "integrity": "sha512-lhP1kFhqZr2nnbu3CGIFFrAnNxk2veXpOXBY48Tub37RtobDyHijHgrj+xTh+mFiPokyrapVjpFsbGa+Xzye4Q==", - "dev": true, - "dependencies": { - "eth-ens-namehash": "2.0.8", - "underscore": "1.9.1", - "web3-core": "1.2.1", - "web3-core-helpers": "1.2.1", - "web3-core-promievent": "1.2.1", - "web3-eth-abi": "1.2.1", - "web3-eth-contract": "1.2.1", - "web3-utils": "1.2.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/truffle-interface-adapter/node_modules/web3-eth-iban": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-eth-iban/-/web3-eth-iban-1.2.1.tgz", - "integrity": "sha512-9gkr4QPl1jCU+wkgmZ8EwODVO3ovVj6d6JKMos52ggdT2YCmlfvFVF6wlGLwi0VvNa/p+0BjJzaqxnnG/JewjQ==", - "dev": true, - "dependencies": { - "bn.js": "4.11.8", - "web3-utils": "1.2.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/truffle-interface-adapter/node_modules/web3-eth-iban/node_modules/bn.js": { - "version": "4.11.8", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz", - "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==", - "dev": true - }, - "node_modules/truffle-interface-adapter/node_modules/web3-eth-personal": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-eth-personal/-/web3-eth-personal-1.2.1.tgz", - "integrity": "sha512-RNDVSiaSoY4aIp8+Hc7z+X72H7lMb3fmAChuSBADoEc7DsJrY/d0R5qQDK9g9t2BO8oxgLrLNyBP/9ub2Hc6Bg==", - "dev": true, - "dependencies": { - "web3-core": "1.2.1", - "web3-core-helpers": "1.2.1", - "web3-core-method": "1.2.1", - "web3-net": "1.2.1", - "web3-utils": "1.2.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/truffle-interface-adapter/node_modules/web3-net": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-net/-/web3-net-1.2.1.tgz", - "integrity": "sha512-Yt1Bs7WgnLESPe0rri/ZoPWzSy55ovioaP35w1KZydrNtQ5Yq4WcrAdhBzcOW7vAkIwrsLQsvA+hrOCy7mNauw==", - "dev": true, - "dependencies": { - "web3-core": "1.2.1", - "web3-core-method": "1.2.1", - "web3-utils": "1.2.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/truffle-interface-adapter/node_modules/web3-providers-http": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-providers-http/-/web3-providers-http-1.2.1.tgz", - "integrity": "sha512-BDtVUVolT9b3CAzeGVA/np1hhn7RPUZ6YYGB/sYky+GjeO311Yoq8SRDUSezU92x8yImSC2B+SMReGhd1zL+bQ==", - "dev": true, - "dependencies": { - "web3-core-helpers": "1.2.1", - "xhr2-cookies": "1.1.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/truffle-interface-adapter/node_modules/web3-providers-ipc": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-providers-ipc/-/web3-providers-ipc-1.2.1.tgz", - "integrity": "sha512-oPEuOCwxVx8L4CPD0TUdnlOUZwGBSRKScCz/Ws2YHdr9Ium+whm+0NLmOZjkjQp5wovQbyBzNa6zJz1noFRvFA==", - "dev": true, - "dependencies": { - "oboe": "2.1.4", - "underscore": "1.9.1", - "web3-core-helpers": "1.2.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/truffle-interface-adapter/node_modules/web3-providers-ws": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-providers-ws/-/web3-providers-ws-1.2.1.tgz", - "integrity": "sha512-oqsQXzu+ejJACVHy864WwIyw+oB21nw/pI65/sD95Zi98+/HQzFfNcIFneF1NC4bVF3VNX4YHTNq2I2o97LAiA==", - "dev": true, - "dependencies": { - "underscore": "1.9.1", - "web3-core-helpers": "1.2.1", - "websocket": "github:web3-js/WebSocket-Node#polyfill/globalThis" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/truffle-interface-adapter/node_modules/web3-shh": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-shh/-/web3-shh-1.2.1.tgz", - "integrity": "sha512-/3Cl04nza5kuFn25bV3FJWa0s3Vafr5BlT933h26xovQ6HIIz61LmvNQlvX1AhFL+SNJOTcQmK1SM59vcyC8bA==", - "dev": true, - "dependencies": { - "web3-core": "1.2.1", - "web3-core-method": "1.2.1", - "web3-core-subscriptions": "1.2.1", - "web3-net": "1.2.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/truffle-interface-adapter/node_modules/web3-utils": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.2.1.tgz", - "integrity": "sha512-Mrcn3l58L+yCKz3zBryM6JZpNruWuT0OCbag8w+reeNROSGVlXzUQkU+gtAwc9JCZ7tKUyg67+2YUGqUjVcyBA==", - "dev": true, - "dependencies": { - "bn.js": "4.11.8", - "eth-lib": "0.2.7", - "ethjs-unit": "0.1.6", - "number-to-bn": "1.7.0", - "randomhex": "0.1.5", - "underscore": "1.9.1", - "utf8": "3.0.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/truffle-interface-adapter/node_modules/web3-utils/node_modules/bn.js": { - "version": "4.11.8", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz", - "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==", - "dev": true - }, - "node_modules/truffle-plugin-verify": { - "version": "0.5.11", - "resolved": "https://registry.npmjs.org/truffle-plugin-verify/-/truffle-plugin-verify-0.5.11.tgz", - "integrity": "sha512-IL8DDsA3YCUQcrRXtarTEXoZJeb2Rlj8jwNjdiWWyDZ7r/EQZndJooorWo19qDpZf9s8ydpvTE/Bb/uyna6Zag==", - "dev": true, - "dependencies": { - "axios": "^0.21.1", - "cli-logger": "^0.5.40", - "delay": "^5.0.0", - "querystring": "^0.2.1" - } - }, - "node_modules/truffle-plugin-verify/node_modules/axios": { - "version": "0.21.1", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.1.tgz", - "integrity": "sha512-dKQiRHxGD9PPRIUNIWvZhPTPpl1rf/OxTYKsqKUDjBwYylTvV7SjSHJb9ratfyzM6wCdLCOYLzs73qpg5c4iGA==", - "dev": true, - "dependencies": { - "follow-redirects": "^1.10.0" - } - }, - "node_modules/truffle-plugin-verify/node_modules/follow-redirects": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.1.tgz", - "integrity": "sha512-HWqDgT7ZEkqRzBvc2s64vSZ/hfOceEol3ac/7tKwzuvEyWx3/4UegXh5oBOIotkGsObyk3xznnSRVADBgWSQVg==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://github.com/sponsors/RubenVerborgh" - } - ], - "engines": { - "node": ">=4.0" - }, - "peerDependenciesMeta": { - "debug": { - "optional": true - } - } - }, - "node_modules/truffle-provider": { - "version": "0.1.16", - "resolved": "https://registry.npmjs.org/truffle-provider/-/truffle-provider-0.1.16.tgz", - "integrity": "sha512-3d5WqSKIzZcpgW44mdfF97s+Tgh2a/3Ly6vHJirBV9OZDUtiAzP6WVnlRNvmlDJXFCDqt6Yb9qQWoXFHbYoR6w==", - "dev": true, - "dependencies": { - "@truffle/error": "^0.0.6", - "truffle-interface-adapter": "^0.2.5", - "web3": "1.2.1" - } - }, - "node_modules/truffle-provider/node_modules/@types/node": { - "version": "10.17.28", - "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.28.tgz", - "integrity": "sha512-dzjES1Egb4c1a89C7lKwQh8pwjYmlOAG9dW1pBgxEk57tMrLnssOfEthz8kdkNaBd7lIqQx7APm5+mZ619IiCQ==", - "dev": true - }, - "node_modules/truffle-provider/node_modules/bn.js": { - "version": "4.11.8", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz", - "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==", - "dev": true - }, - "node_modules/truffle-provider/node_modules/eth-lib": { - "version": "0.2.7", - "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.7.tgz", - "integrity": "sha1-L5Pxex4jrsN1nNSj/iDBKGo/wco=", - "dev": true, - "dependencies": { - "bn.js": "^4.11.6", - "elliptic": "^6.4.0", - "xhr-request-promise": "^0.1.2" - } - }, - "node_modules/truffle-provider/node_modules/ethers": { - "version": "4.0.0-beta.3", - "resolved": "https://registry.npmjs.org/ethers/-/ethers-4.0.0-beta.3.tgz", - "integrity": "sha512-YYPogooSknTwvHg3+Mv71gM/3Wcrx+ZpCzarBj3mqs9njjRkrOo2/eufzhHloOCo3JSoNI4TQJJ6yU5ABm3Uog==", - "dev": true, - "dependencies": { - "@types/node": "^10.3.2", - "aes-js": "3.0.0", - "bn.js": "^4.4.0", - "elliptic": "6.3.3", - "hash.js": "1.1.3", - "js-sha3": "0.5.7", - "scrypt-js": "2.0.3", - "setimmediate": "1.0.4", - "uuid": "2.0.1", - "xmlhttprequest": "1.8.0" - } - }, - "node_modules/truffle-provider/node_modules/ethers/node_modules/elliptic": { - "version": "6.3.3", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.3.3.tgz", - "integrity": "sha1-VILZZG1UvLif19mU/J4ulWiHbj8=", - "dev": true, - "dependencies": { - "bn.js": "^4.4.0", - "brorand": "^1.0.1", - "hash.js": "^1.0.0", - "inherits": "^2.0.1" - } - }, - "node_modules/truffle-provider/node_modules/scrypt-js": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-2.0.3.tgz", - "integrity": "sha1-uwBAvgMEPamgEqLOqfyfhSz8h9Q=", - "dev": true - }, - "node_modules/truffle-provider/node_modules/semver": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.2.0.tgz", - "integrity": "sha512-jdFC1VdUGT/2Scgbimf7FSx9iJLXoqfglSF+gJeuNWVpiE37OIbc1jywR/GJyFdz3mnkz2/id0L0J/cr0izR5A==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/truffle-provider/node_modules/underscore": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.9.1.tgz", - "integrity": "sha512-5/4etnCkd9c8gwgowi5/om/mYO5ajCaOgdzj/oW+0eQV9WxKBDZw5+ycmKmeaTXjInS/W0BzpGLo2xR2aBwZdg==", - "dev": true - }, - "node_modules/truffle-provider/node_modules/uuid": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-2.0.1.tgz", - "integrity": "sha1-wqMN7bPlNdcsz4LjQ5QaULqFM6w=", - "dev": true - }, - "node_modules/truffle-provider/node_modules/web3": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3/-/web3-1.2.1.tgz", - "integrity": "sha512-nNMzeCK0agb5i/oTWNdQ1aGtwYfXzHottFP2Dz0oGIzavPMGSKyVlr8ibVb1yK5sJBjrWVnTdGaOC2zKDFuFRw==", - "dev": true, - "dependencies": { - "web3-bzz": "1.2.1", - "web3-core": "1.2.1", - "web3-eth": "1.2.1", - "web3-eth-personal": "1.2.1", - "web3-net": "1.2.1", - "web3-shh": "1.2.1", - "web3-utils": "1.2.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/truffle-provider/node_modules/web3-bzz": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-bzz/-/web3-bzz-1.2.1.tgz", - "integrity": "sha512-LdOO44TuYbGIPfL4ilkuS89GQovxUpmLz6C1UC7VYVVRILeZS740FVB3j9V4P4FHUk1RenaDfKhcntqgVCHtjw==", - "dev": true, - "dependencies": { - "got": "9.6.0", - "swarm-js": "0.1.39", - "underscore": "1.9.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/truffle-provider/node_modules/web3-core": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-core/-/web3-core-1.2.1.tgz", - "integrity": "sha512-5ODwIqgl8oIg/0+Ai4jsLxkKFWJYE0uLuE1yUKHNVCL4zL6n3rFjRMpKPokd6id6nJCNgeA64KdWQ4XfpnjdMg==", - "dev": true, - "dependencies": { - "web3-core-helpers": "1.2.1", - "web3-core-method": "1.2.1", - "web3-core-requestmanager": "1.2.1", - "web3-utils": "1.2.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/truffle-provider/node_modules/web3-core-helpers": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.2.1.tgz", - "integrity": "sha512-Gx3sTEajD5r96bJgfuW377PZVFmXIH4TdqDhgGwd2lZQCcMi+DA4TgxJNJGxn0R3aUVzyyE76j4LBrh412mXrw==", - "dev": true, - "dependencies": { - "underscore": "1.9.1", - "web3-eth-iban": "1.2.1", - "web3-utils": "1.2.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/truffle-provider/node_modules/web3-core-method": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-core-method/-/web3-core-method-1.2.1.tgz", - "integrity": "sha512-Ghg2WS23qi6Xj8Od3VCzaImLHseEA7/usvnOItluiIc5cKs00WYWsNy2YRStzU9a2+z8lwQywPYp0nTzR/QXdQ==", - "dev": true, - "dependencies": { - "underscore": "1.9.1", - "web3-core-helpers": "1.2.1", - "web3-core-promievent": "1.2.1", - "web3-core-subscriptions": "1.2.1", - "web3-utils": "1.2.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/truffle-provider/node_modules/web3-core-promievent": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-core-promievent/-/web3-core-promievent-1.2.1.tgz", - "integrity": "sha512-IVUqgpIKoeOYblwpex4Hye6npM0aMR+kU49VP06secPeN0rHMyhGF0ZGveWBrGvf8WDPI7jhqPBFIC6Jf3Q3zw==", - "dev": true, - "dependencies": { - "any-promise": "1.3.0", - "eventemitter3": "3.1.2" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/truffle-provider/node_modules/web3-core-requestmanager": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-core-requestmanager/-/web3-core-requestmanager-1.2.1.tgz", - "integrity": "sha512-xfknTC69RfYmLKC+83Jz73IC3/sS2ZLhGtX33D4Q5nQ8yc39ElyAolxr9sJQS8kihOcM6u4J+8gyGMqsLcpIBg==", - "dev": true, - "dependencies": { - "underscore": "1.9.1", - "web3-core-helpers": "1.2.1", - "web3-providers-http": "1.2.1", - "web3-providers-ipc": "1.2.1", - "web3-providers-ws": "1.2.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/truffle-provider/node_modules/web3-core-subscriptions": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-core-subscriptions/-/web3-core-subscriptions-1.2.1.tgz", - "integrity": "sha512-nmOwe3NsB8V8UFsY1r+sW6KjdOS68h8nuh7NzlWxBQT/19QSUGiERRTaZXWu5BYvo1EoZRMxCKyCQpSSXLc08g==", - "dev": true, - "dependencies": { - "eventemitter3": "3.1.2", - "underscore": "1.9.1", - "web3-core-helpers": "1.2.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/truffle-provider/node_modules/web3-eth": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-eth/-/web3-eth-1.2.1.tgz", - "integrity": "sha512-/2xly4Yry5FW1i+uygPjhfvgUP/MS/Dk+PDqmzp5M88tS86A+j8BzKc23GrlA8sgGs0645cpZK/999LpEF5UdA==", - "dev": true, - "dependencies": { - "underscore": "1.9.1", - "web3-core": "1.2.1", - "web3-core-helpers": "1.2.1", - "web3-core-method": "1.2.1", - "web3-core-subscriptions": "1.2.1", - "web3-eth-abi": "1.2.1", - "web3-eth-accounts": "1.2.1", - "web3-eth-contract": "1.2.1", - "web3-eth-ens": "1.2.1", - "web3-eth-iban": "1.2.1", - "web3-eth-personal": "1.2.1", - "web3-net": "1.2.1", - "web3-utils": "1.2.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/truffle-provider/node_modules/web3-eth-abi": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-eth-abi/-/web3-eth-abi-1.2.1.tgz", - "integrity": "sha512-jI/KhU2a/DQPZXHjo2GW0myEljzfiKOn+h1qxK1+Y9OQfTcBMxrQJyH5AP89O6l6NZ1QvNdq99ThAxBFoy5L+g==", - "dev": true, - "dependencies": { - "ethers": "4.0.0-beta.3", - "underscore": "1.9.1", - "web3-utils": "1.2.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/truffle-provider/node_modules/web3-eth-accounts": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-eth-accounts/-/web3-eth-accounts-1.2.1.tgz", - "integrity": "sha512-26I4qq42STQ8IeKUyur3MdQ1NzrzCqPsmzqpux0j6X/XBD7EjZ+Cs0lhGNkSKH5dI3V8CJasnQ5T1mNKeWB7nQ==", - "dev": true, - "dependencies": { - "any-promise": "1.3.0", - "crypto-browserify": "3.12.0", - "eth-lib": "0.2.7", - "scryptsy": "2.1.0", - "semver": "6.2.0", - "underscore": "1.9.1", - "uuid": "3.3.2", - "web3-core": "1.2.1", - "web3-core-helpers": "1.2.1", - "web3-core-method": "1.2.1", - "web3-utils": "1.2.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/truffle-provider/node_modules/web3-eth-accounts/node_modules/uuid": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", - "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==", - "dev": true, - "bin": { - "uuid": "bin/uuid" - } - }, - "node_modules/truffle-provider/node_modules/web3-eth-contract": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-eth-contract/-/web3-eth-contract-1.2.1.tgz", - "integrity": "sha512-kYFESbQ3boC9bl2rYVghj7O8UKMiuKaiMkxvRH5cEDHil8V7MGEGZNH0slSdoyeftZVlaWSMqkRP/chfnKND0g==", - "dev": true, - "dependencies": { - "underscore": "1.9.1", - "web3-core": "1.2.1", - "web3-core-helpers": "1.2.1", - "web3-core-method": "1.2.1", - "web3-core-promievent": "1.2.1", - "web3-core-subscriptions": "1.2.1", - "web3-eth-abi": "1.2.1", - "web3-utils": "1.2.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/truffle-provider/node_modules/web3-eth-ens": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-eth-ens/-/web3-eth-ens-1.2.1.tgz", - "integrity": "sha512-lhP1kFhqZr2nnbu3CGIFFrAnNxk2veXpOXBY48Tub37RtobDyHijHgrj+xTh+mFiPokyrapVjpFsbGa+Xzye4Q==", - "dev": true, - "dependencies": { - "eth-ens-namehash": "2.0.8", - "underscore": "1.9.1", - "web3-core": "1.2.1", - "web3-core-helpers": "1.2.1", - "web3-core-promievent": "1.2.1", - "web3-eth-abi": "1.2.1", - "web3-eth-contract": "1.2.1", - "web3-utils": "1.2.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/truffle-provider/node_modules/web3-eth-iban": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-eth-iban/-/web3-eth-iban-1.2.1.tgz", - "integrity": "sha512-9gkr4QPl1jCU+wkgmZ8EwODVO3ovVj6d6JKMos52ggdT2YCmlfvFVF6wlGLwi0VvNa/p+0BjJzaqxnnG/JewjQ==", - "dev": true, - "dependencies": { - "bn.js": "4.11.8", - "web3-utils": "1.2.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/truffle-provider/node_modules/web3-eth-personal": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-eth-personal/-/web3-eth-personal-1.2.1.tgz", - "integrity": "sha512-RNDVSiaSoY4aIp8+Hc7z+X72H7lMb3fmAChuSBADoEc7DsJrY/d0R5qQDK9g9t2BO8oxgLrLNyBP/9ub2Hc6Bg==", - "dev": true, - "dependencies": { - "web3-core": "1.2.1", - "web3-core-helpers": "1.2.1", - "web3-core-method": "1.2.1", - "web3-net": "1.2.1", - "web3-utils": "1.2.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/truffle-provider/node_modules/web3-net": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-net/-/web3-net-1.2.1.tgz", - "integrity": "sha512-Yt1Bs7WgnLESPe0rri/ZoPWzSy55ovioaP35w1KZydrNtQ5Yq4WcrAdhBzcOW7vAkIwrsLQsvA+hrOCy7mNauw==", - "dev": true, - "dependencies": { - "web3-core": "1.2.1", - "web3-core-method": "1.2.1", - "web3-utils": "1.2.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/truffle-provider/node_modules/web3-providers-http": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-providers-http/-/web3-providers-http-1.2.1.tgz", - "integrity": "sha512-BDtVUVolT9b3CAzeGVA/np1hhn7RPUZ6YYGB/sYky+GjeO311Yoq8SRDUSezU92x8yImSC2B+SMReGhd1zL+bQ==", - "dev": true, - "dependencies": { - "web3-core-helpers": "1.2.1", - "xhr2-cookies": "1.1.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/truffle-provider/node_modules/web3-providers-ipc": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-providers-ipc/-/web3-providers-ipc-1.2.1.tgz", - "integrity": "sha512-oPEuOCwxVx8L4CPD0TUdnlOUZwGBSRKScCz/Ws2YHdr9Ium+whm+0NLmOZjkjQp5wovQbyBzNa6zJz1noFRvFA==", - "dev": true, - "dependencies": { - "oboe": "2.1.4", - "underscore": "1.9.1", - "web3-core-helpers": "1.2.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/truffle-provider/node_modules/web3-providers-ws": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-providers-ws/-/web3-providers-ws-1.2.1.tgz", - "integrity": "sha512-oqsQXzu+ejJACVHy864WwIyw+oB21nw/pI65/sD95Zi98+/HQzFfNcIFneF1NC4bVF3VNX4YHTNq2I2o97LAiA==", - "dev": true, - "dependencies": { - "underscore": "1.9.1", - "web3-core-helpers": "1.2.1", - "websocket": "github:web3-js/WebSocket-Node#polyfill/globalThis" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/truffle-provider/node_modules/web3-shh": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-shh/-/web3-shh-1.2.1.tgz", - "integrity": "sha512-/3Cl04nza5kuFn25bV3FJWa0s3Vafr5BlT933h26xovQ6HIIz61LmvNQlvX1AhFL+SNJOTcQmK1SM59vcyC8bA==", - "dev": true, - "dependencies": { - "web3-core": "1.2.1", - "web3-core-method": "1.2.1", - "web3-core-subscriptions": "1.2.1", - "web3-net": "1.2.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/truffle-provider/node_modules/web3-utils": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.2.1.tgz", - "integrity": "sha512-Mrcn3l58L+yCKz3zBryM6JZpNruWuT0OCbag8w+reeNROSGVlXzUQkU+gtAwc9JCZ7tKUyg67+2YUGqUjVcyBA==", - "dev": true, - "dependencies": { - "bn.js": "4.11.8", - "eth-lib": "0.2.7", - "ethjs-unit": "0.1.6", - "number-to-bn": "1.7.0", - "randomhex": "0.1.5", - "underscore": "1.9.1", - "utf8": "3.0.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/truffle/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/truffle/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/truffle/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==", - "dev": true - }, - "node_modules/truffle/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==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/truffle/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "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/truffle/node_modules/chalk/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/truffle/node_modules/chokidar": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", - "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ], - "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" - } - }, - "node_modules/truffle/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==", - "dev": true, - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" - } - }, - "node_modules/truffle/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/truffle/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/truffle/node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/truffle/node_modules/debug/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "node_modules/truffle/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==", - "dev": true, - "engines": { - "node": ">=0.3.1" - } - }, - "node_modules/truffle/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==", - "dev": true - }, - "node_modules/truffle/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==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/truffle/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==", - "dev": true, - "dependencies": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/truffle/node_modules/glob": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", - "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", - "dev": true, - "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/truffle/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/truffle/node_modules/is-fullwidth-code-point": { - "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==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/truffle/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==", - "dev": true, - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/truffle/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==", - "dev": true, - "dependencies": { - "p-locate": "^5.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/truffle/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==", - "dev": true, - "dependencies": { - "chalk": "^4.1.0", - "is-unicode-supported": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/truffle/node_modules/mocha": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/mocha/-/mocha-10.1.0.tgz", - "integrity": "sha512-vUF7IYxEoN7XhQpFLxQAEMtE4W91acW4B6En9l97MwE9stL1A9gusXfoHZCLVHDUJ/7V5+lbCM6yMqzo5vNymg==", - "dev": true, - "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/truffle/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==", - "dev": true, - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/truffle/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==", - "dev": true - }, - "node_modules/truffle/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==", - "dev": true, - "bin": { - "nanoid": "bin/nanoid.cjs" - }, - "engines": { - "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" - } - }, - "node_modules/truffle/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==", - "dev": true, - "dependencies": { - "yocto-queue": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/truffle/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==", - "dev": true, - "dependencies": { - "p-limit": "^3.0.2" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/truffle/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==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/truffle/node_modules/readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "dev": true, - "dependencies": { - "picomatch": "^2.2.1" - }, - "engines": { - "node": ">=8.10.0" - } - }, - "node_modules/truffle/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==", - "dev": true, - "dependencies": { - "randombytes": "^2.1.0" - } - }, - "node_modules/truffle/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/truffle/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/truffle/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_modules/truffle/node_modules/wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/truffle/node_modules/y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/truffle/node_modules/yargs": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", - "dev": true, - "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/truffle/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==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/ts-command-line-args": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/ts-command-line-args/-/ts-command-line-args-2.4.2.tgz", - "integrity": "sha512-mJLQQBOdyD4XI/ZWQY44PIdYde47JhV2xl380O7twPkTQ+Y5vFDHsk8LOeXKuz7dVY5aDCfAzRarNfSqtKOkQQ==", - "dependencies": { - "@morgan-stanley/ts-mocking-bird": "^0.6.2", - "chalk": "^4.1.0", - "command-line-args": "^5.1.1", - "command-line-usage": "^6.1.0", - "string-format": "^2.0.0" - }, - "bin": { - "write-markdown": "dist/write-markdown.js" - } - }, - "node_modules/ts-command-line-args/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/ts-command-line-args/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/ts-command-line-args/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/ts-command-line-args/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "node_modules/ts-command-line-args/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/ts-command-line-args/node_modules/supports-color": { - "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" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/ts-essentials": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/ts-essentials/-/ts-essentials-1.0.4.tgz", - "integrity": "sha512-q3N1xS4vZpRouhYHDPwO0bDW3EZ6SK9CrrDHxi/D6BPReSjpVgWIOpLS2o0gSBZm+7q/wyKp6RVM1AeeW7uyfQ==", - "dev": true - }, - "node_modules/ts-generator": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/ts-generator/-/ts-generator-0.0.8.tgz", - "integrity": "sha512-Gi+aZCELpVL7Mqb+GuMgM+n8JZ/arZZib1iD/R9Ok8JDjOCOCrqS9b1lr72ku7J45WeDCFZxyJoRsiQvhokCnw==", - "dev": true, - "dependencies": { - "@types/mkdirp": "^0.5.2", - "@types/prettier": "^1.13.2", - "@types/resolve": "^0.0.8", - "chalk": "^2.4.1", - "glob": "^7.1.2", - "mkdirp": "^0.5.1", - "prettier": "^1.14.2", - "resolve": "^1.8.1", - "ts-essentials": "^1.0.0" - }, - "bin": { - "ts-generator": "dist/cli/run.js" - } - }, - "node_modules/ts-generator/node_modules/mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "dev": true, - "dependencies": { - "minimist": "^1.2.5" - }, - "bin": { - "mkdirp": "bin/cmd.js" - } - }, - "node_modules/ts-node": { - "version": "10.9.1", - "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.1.tgz", - "integrity": "sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==", - "dev": true, - "dependencies": { - "@cspotcode/source-map-support": "^0.8.0", - "@tsconfig/node10": "^1.0.7", - "@tsconfig/node12": "^1.0.7", - "@tsconfig/node14": "^1.0.0", - "@tsconfig/node16": "^1.0.2", - "acorn": "^8.4.1", - "acorn-walk": "^8.1.1", - "arg": "^4.1.0", - "create-require": "^1.1.0", - "diff": "^4.0.1", - "make-error": "^1.1.1", - "v8-compile-cache-lib": "^3.0.1", - "yn": "3.1.1" - }, - "bin": { - "ts-node": "dist/bin.js", - "ts-node-cwd": "dist/bin-cwd.js", - "ts-node-esm": "dist/bin-esm.js", - "ts-node-script": "dist/bin-script.js", - "ts-node-transpile-only": "dist/bin-transpile.js", - "ts-script": "dist/bin-script-deprecated.js" - }, - "peerDependencies": { - "@swc/core": ">=1.2.50", - "@swc/wasm": ">=1.2.50", - "@types/node": "*", - "typescript": ">=2.7" - }, - "peerDependenciesMeta": { - "@swc/core": { - "optional": true - }, - "@swc/wasm": { - "optional": true - } - } - }, - "node_modules/ts-node/node_modules/acorn": { - "version": "8.8.2", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz", - "integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==", - "dev": true, - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/tslib": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.13.0.tgz", - "integrity": "sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q==", - "dev": true - }, - "node_modules/tsort": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/tsort/-/tsort-0.0.1.tgz", - "integrity": "sha1-4igPXoF/i/QnVlf9D5rr1E9aJ4Y=", - "dev": true - }, - "node_modules/tty-browserify": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", - "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=" - }, - "node_modules/tunnel-agent": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", - "dependencies": { - "safe-buffer": "^5.0.1" - }, - "engines": { - "node": "*" - } - }, - "node_modules/tweetnacl": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=" - }, - "node_modules/tweetnacl-util": { - "version": "0.15.1", - "resolved": "https://registry.npmjs.org/tweetnacl-util/-/tweetnacl-util-0.15.1.tgz", - "integrity": "sha512-RKJBIj8lySrShN4w6i/BonWp2Z/uxwC3h4y7xsRrpP59ZboCd0GpEVsOnMDYLMmKBpYhb5TgHzZXy7wTfYFBRw==" - }, - "node_modules/type": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/type/-/type-1.2.0.tgz", - "integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==" - }, - "node_modules/type-check": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", - "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", - "dev": true, - "dependencies": { - "prelude-ls": "~1.1.2" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/type-detect": { - "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==", - "engines": { - "node": ">=4" - } - }, - "node_modules/type-fest": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", - "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/type-is": { - "version": "1.6.18", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", - "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", - "dev": true, - "dependencies": { - "media-typer": "0.3.0", - "mime-types": "~2.1.24" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/typechain": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/typechain/-/typechain-8.1.1.tgz", - "integrity": "sha512-uF/sUvnXTOVF2FHKhQYnxHk4su4JjZR8vr4mA2mBaRwHTbwh0jIlqARz9XJr1tA0l7afJGvEa1dTSi4zt039LQ==", - "dependencies": { - "@types/prettier": "^2.1.1", - "debug": "^4.3.1", - "fs-extra": "^7.0.0", - "glob": "7.1.7", - "js-sha3": "^0.8.0", - "lodash": "^4.17.15", - "mkdirp": "^1.0.4", - "prettier": "^2.3.1", - "ts-command-line-args": "^2.2.0", - "ts-essentials": "^7.0.1" - }, - "bin": { - "typechain": "dist/cli/cli.js" - }, - "peerDependencies": { - "typescript": ">=4.3.0" - } - }, - "node_modules/typechain-target-truffle": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/typechain-target-truffle/-/typechain-target-truffle-1.0.2.tgz", - "integrity": "sha512-XF3Iq2IzR+Pqvx6fcKIKGXNEk3lEcY24vYv9VqoVPfPB6vUM09PRLJCeLm1/ag6Pr2PICKUA0f4Es+YTR3ESKA==", - "dev": true, - "dependencies": { - "lodash": "^4.17.15" - } - }, - "node_modules/typechain-target-web3-v1": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/typechain-target-web3-v1/-/typechain-target-web3-v1-1.0.4.tgz", - "integrity": "sha512-jQ6eCfY7QorBq6kQDjSy5LMuImZGkp6IXR6FXZp7/ulITIxAfb6Dxh+yvh0NN/zboLnMPvvSJi6tHWCqlwfSDA==", - "dev": true, - "dependencies": { - "lodash": "^4.17.15", - "web3": "^1.2.4" - } - }, - "node_modules/typechain-target-web3-v1/node_modules/@ethersproject/abi": { - "version": "5.0.0-beta.153", - "resolved": "https://registry.npmjs.org/@ethersproject/abi/-/abi-5.0.0-beta.153.tgz", - "integrity": "sha512-aXweZ1Z7vMNzJdLpR1CZUAIgnwjrZeUSvN9syCwlBaEBUFJmFY+HHnfuTI5vIhVs/mRkfJVrbEyl51JZQqyjAg==", - "dev": true, - "dependencies": { - "@ethersproject/address": ">=5.0.0-beta.128", - "@ethersproject/bignumber": ">=5.0.0-beta.130", - "@ethersproject/bytes": ">=5.0.0-beta.129", - "@ethersproject/constants": ">=5.0.0-beta.128", - "@ethersproject/hash": ">=5.0.0-beta.128", - "@ethersproject/keccak256": ">=5.0.0-beta.127", - "@ethersproject/logger": ">=5.0.0-beta.129", - "@ethersproject/properties": ">=5.0.0-beta.131", - "@ethersproject/strings": ">=5.0.0-beta.130" - } - }, - "node_modules/typechain-target-web3-v1/node_modules/@types/node": { - "version": "12.12.53", - "resolved": "https://registry.npmjs.org/@types/node/-/node-12.12.53.tgz", - "integrity": "sha512-51MYTDTyCziHb70wtGNFRwB4l+5JNvdqzFSkbDvpbftEgVUBEE+T5f7pROhWMp/fxp07oNIEQZd5bbfAH22ohQ==", - "dev": true - }, - "node_modules/typechain-target-web3-v1/node_modules/bignumber.js": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.0.0.tgz", - "integrity": "sha512-t/OYhhJ2SD+YGBQcjY8GzzDHEk9f3nerxjtfa6tlMXfe7frs/WozhvCNoGvpM0P3bNf3Gq5ZRMlGr5f3r4/N8A==", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/typechain-target-web3-v1/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/typechain-target-web3-v1/node_modules/eventemitter3": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.4.tgz", - "integrity": "sha512-rlaVLnVxtxvoyLsQQFBx53YmXHDxRIzzTLbdfxqi4yocpSjAxXwkU0cScM5JgSKMqEhrZpnvQ2D9gjylR0AimQ==", - "dev": true - }, - "node_modules/typechain-target-web3-v1/node_modules/fs-extra": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-4.0.3.tgz", - "integrity": "sha512-q6rbdDd1o2mAnQreO7YADIxf/Whx4AHBiRf6d+/cVT8h44ss+lHgxf1FemcqDnQt9X3ct4McHr+JMGlYSsK7Cg==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - }, - "node_modules/typechain-target-web3-v1/node_modules/get-stream": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", - "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/typechain-target-web3-v1/node_modules/p-cancelable": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-0.3.0.tgz", - "integrity": "sha512-RVbZPLso8+jFeq1MfNvgXtCRED2raz/dKpacfTNxsx6pLEpEomM7gah6VeHSYV3+vo0OAi4MkArtQcWWXuQoyw==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/typechain-target-web3-v1/node_modules/prepend-http": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", - "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/typechain-target-web3-v1/node_modules/scrypt-js": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-3.0.1.tgz", - "integrity": "sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA==", - "dev": true - }, - "node_modules/typechain-target-web3-v1/node_modules/setimmediate": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", - "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=", - "dev": true - }, - "node_modules/typechain-target-web3-v1/node_modules/swarm-js": { - "version": "0.1.40", - "resolved": "https://registry.npmjs.org/swarm-js/-/swarm-js-0.1.40.tgz", - "integrity": "sha512-yqiOCEoA4/IShXkY3WKwP5PvZhmoOOD8clsKA7EEcRILMkTEYHCQ21HDCAcVpmIxZq4LyZvWeRJ6quIyHk1caA==", - "dev": true, - "dependencies": { - "bluebird": "^3.5.0", - "buffer": "^5.0.5", - "eth-lib": "^0.1.26", - "fs-extra": "^4.0.2", - "got": "^7.1.0", - "mime-types": "^2.1.16", - "mkdirp-promise": "^5.0.1", - "mock-fs": "^4.1.0", - "setimmediate": "^1.0.5", - "tar": "^4.0.2", - "xhr-request": "^1.0.1" - } - }, - "node_modules/typechain-target-web3-v1/node_modules/swarm-js/node_modules/got": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/got/-/got-7.1.0.tgz", - "integrity": "sha512-Y5WMo7xKKq1muPsxD+KmrR8DH5auG7fBdDVueZwETwV6VytKyU9OX/ddpq2/1hp1vIPvVb4T81dKQz3BivkNLw==", - "dev": true, - "dependencies": { - "decompress-response": "^3.2.0", - "duplexer3": "^0.1.4", - "get-stream": "^3.0.0", - "is-plain-obj": "^1.1.0", - "is-retry-allowed": "^1.0.0", - "is-stream": "^1.0.0", - "isurl": "^1.0.0-alpha5", - "lowercase-keys": "^1.0.0", - "p-cancelable": "^0.3.0", - "p-timeout": "^1.1.1", - "safe-buffer": "^5.0.1", - "timed-out": "^4.0.0", - "url-parse-lax": "^1.0.0", - "url-to-options": "^1.0.1" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/typechain-target-web3-v1/node_modules/underscore": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.9.1.tgz", - "integrity": "sha512-5/4etnCkd9c8gwgowi5/om/mYO5ajCaOgdzj/oW+0eQV9WxKBDZw5+ycmKmeaTXjInS/W0BzpGLo2xR2aBwZdg==", - "dev": true - }, - "node_modules/typechain-target-web3-v1/node_modules/url-parse-lax": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz", - "integrity": "sha1-evjzA2Rem9eaJy56FKxovAYJ2nM=", - "dev": true, - "dependencies": { - "prepend-http": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/typechain-target-web3-v1/node_modules/uuid": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", - "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==", - "dev": true, - "bin": { - "uuid": "bin/uuid" - } - }, - "node_modules/typechain-target-web3-v1/node_modules/web3": { - "version": "1.2.11", - "resolved": "https://registry.npmjs.org/web3/-/web3-1.2.11.tgz", - "integrity": "sha512-mjQ8HeU41G6hgOYm1pmeH0mRAeNKJGnJEUzDMoerkpw7QUQT4exVREgF1MYPvL/z6vAshOXei25LE/t/Bxl8yQ==", - "dev": true, - "hasInstallScript": true, - "dependencies": { - "web3-bzz": "1.2.11", - "web3-core": "1.2.11", - "web3-eth": "1.2.11", - "web3-eth-personal": "1.2.11", - "web3-net": "1.2.11", - "web3-shh": "1.2.11", - "web3-utils": "1.2.11" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/typechain-target-web3-v1/node_modules/web3-bzz": { - "version": "1.2.11", - "resolved": "https://registry.npmjs.org/web3-bzz/-/web3-bzz-1.2.11.tgz", - "integrity": "sha512-XGpWUEElGypBjeFyUhTkiPXFbDVD6Nr/S5jznE3t8cWUA0FxRf1n3n/NuIZeb0H9RkN2Ctd/jNma/k8XGa3YKg==", - "dev": true, - "dependencies": { - "@types/node": "^12.12.6", - "got": "9.6.0", - "swarm-js": "^0.1.40", - "underscore": "1.9.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/typechain-target-web3-v1/node_modules/web3-core": { - "version": "1.2.11", - "resolved": "https://registry.npmjs.org/web3-core/-/web3-core-1.2.11.tgz", - "integrity": "sha512-CN7MEYOY5ryo5iVleIWRE3a3cZqVaLlIbIzDPsvQRUfzYnvzZQRZBm9Mq+ttDi2STOOzc1MKylspz/o3yq/LjQ==", - "dev": true, - "dependencies": { - "@types/bn.js": "^4.11.5", - "@types/node": "^12.12.6", - "bignumber.js": "^9.0.0", - "web3-core-helpers": "1.2.11", - "web3-core-method": "1.2.11", - "web3-core-requestmanager": "1.2.11", - "web3-utils": "1.2.11" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/typechain-target-web3-v1/node_modules/web3-core-helpers": { - "version": "1.2.11", - "resolved": "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.2.11.tgz", - "integrity": "sha512-PEPoAoZd5ME7UfbnCZBdzIerpe74GEvlwT4AjOmHeCVZoIFk7EqvOZDejJHt+feJA6kMVTdd0xzRNN295UhC1A==", - "dev": true, - "dependencies": { - "underscore": "1.9.1", - "web3-eth-iban": "1.2.11", - "web3-utils": "1.2.11" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/typechain-target-web3-v1/node_modules/web3-core-method": { - "version": "1.2.11", - "resolved": "https://registry.npmjs.org/web3-core-method/-/web3-core-method-1.2.11.tgz", - "integrity": "sha512-ff0q76Cde94HAxLDZ6DbdmKniYCQVtvuaYh+rtOUMB6kssa5FX0q3vPmixi7NPooFnbKmmZCM6NvXg4IreTPIw==", - "dev": true, - "dependencies": { - "@ethersproject/transactions": "^5.0.0-beta.135", - "underscore": "1.9.1", - "web3-core-helpers": "1.2.11", - "web3-core-promievent": "1.2.11", - "web3-core-subscriptions": "1.2.11", - "web3-utils": "1.2.11" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/typechain-target-web3-v1/node_modules/web3-core-promievent": { - "version": "1.2.11", - "resolved": "https://registry.npmjs.org/web3-core-promievent/-/web3-core-promievent-1.2.11.tgz", - "integrity": "sha512-il4McoDa/Ox9Agh4kyfQ8Ak/9ABYpnF8poBLL33R/EnxLsJOGQG2nZhkJa3I067hocrPSjEdlPt/0bHXsln4qA==", - "dev": true, - "dependencies": { - "eventemitter3": "4.0.4" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/typechain-target-web3-v1/node_modules/web3-core-requestmanager": { - "version": "1.2.11", - "resolved": "https://registry.npmjs.org/web3-core-requestmanager/-/web3-core-requestmanager-1.2.11.tgz", - "integrity": "sha512-oFhBtLfOiIbmfl6T6gYjjj9igOvtyxJ+fjS+byRxiwFJyJ5BQOz4/9/17gWR1Cq74paTlI7vDGxYfuvfE/mKvA==", - "dev": true, - "dependencies": { - "underscore": "1.9.1", - "web3-core-helpers": "1.2.11", - "web3-providers-http": "1.2.11", - "web3-providers-ipc": "1.2.11", - "web3-providers-ws": "1.2.11" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/typechain-target-web3-v1/node_modules/web3-core-subscriptions": { - "version": "1.2.11", - "resolved": "https://registry.npmjs.org/web3-core-subscriptions/-/web3-core-subscriptions-1.2.11.tgz", - "integrity": "sha512-qEF/OVqkCvQ7MPs1JylIZCZkin0aKK9lDxpAtQ1F8niEDGFqn7DT8E/vzbIa0GsOjL2fZjDhWJsaW+BSoAW1gg==", - "dev": true, - "dependencies": { - "eventemitter3": "4.0.4", - "underscore": "1.9.1", - "web3-core-helpers": "1.2.11" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/typechain-target-web3-v1/node_modules/web3-eth": { - "version": "1.2.11", - "resolved": "https://registry.npmjs.org/web3-eth/-/web3-eth-1.2.11.tgz", - "integrity": "sha512-REvxW1wJ58AgHPcXPJOL49d1K/dPmuw4LjPLBPStOVkQjzDTVmJEIsiLwn2YeuNDd4pfakBwT8L3bz1G1/wVsQ==", - "dev": true, - "dependencies": { - "underscore": "1.9.1", - "web3-core": "1.2.11", - "web3-core-helpers": "1.2.11", - "web3-core-method": "1.2.11", - "web3-core-subscriptions": "1.2.11", - "web3-eth-abi": "1.2.11", - "web3-eth-accounts": "1.2.11", - "web3-eth-contract": "1.2.11", - "web3-eth-ens": "1.2.11", - "web3-eth-iban": "1.2.11", - "web3-eth-personal": "1.2.11", - "web3-net": "1.2.11", - "web3-utils": "1.2.11" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/typechain-target-web3-v1/node_modules/web3-eth-abi": { - "version": "1.2.11", - "resolved": "https://registry.npmjs.org/web3-eth-abi/-/web3-eth-abi-1.2.11.tgz", - "integrity": "sha512-PkRYc0+MjuLSgg03QVWqWlQivJqRwKItKtEpRUaxUAeLE7i/uU39gmzm2keHGcQXo3POXAbOnMqkDvOep89Crg==", - "dev": true, - "dependencies": { - "@ethersproject/abi": "5.0.0-beta.153", - "underscore": "1.9.1", - "web3-utils": "1.2.11" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/typechain-target-web3-v1/node_modules/web3-eth-accounts": { - "version": "1.2.11", - "resolved": "https://registry.npmjs.org/web3-eth-accounts/-/web3-eth-accounts-1.2.11.tgz", - "integrity": "sha512-6FwPqEpCfKIh3nSSGeo3uBm2iFSnFJDfwL3oS9pyegRBXNsGRVpgiW63yhNzL0796StsvjHWwQnQHsZNxWAkGw==", - "dev": true, - "dependencies": { - "crypto-browserify": "3.12.0", - "eth-lib": "0.2.8", - "ethereumjs-common": "^1.3.2", - "ethereumjs-tx": "^2.1.1", - "scrypt-js": "^3.0.1", - "underscore": "1.9.1", - "uuid": "3.3.2", - "web3-core": "1.2.11", - "web3-core-helpers": "1.2.11", - "web3-core-method": "1.2.11", - "web3-utils": "1.2.11" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/typechain-target-web3-v1/node_modules/web3-eth-accounts/node_modules/eth-lib": { - "version": "0.2.8", - "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.8.tgz", - "integrity": "sha512-ArJ7x1WcWOlSpzdoTBX8vkwlkSQ85CjjifSZtV4co64vWxSV8geWfPI9x4SVYu3DSxnX4yWFVTtGL+j9DUFLNw==", - "dev": true, - "dependencies": { - "bn.js": "^4.11.6", - "elliptic": "^6.4.0", - "xhr-request-promise": "^0.1.2" - } - }, - "node_modules/typechain-target-web3-v1/node_modules/web3-eth-contract": { - "version": "1.2.11", - "resolved": "https://registry.npmjs.org/web3-eth-contract/-/web3-eth-contract-1.2.11.tgz", - "integrity": "sha512-MzYuI/Rq2o6gn7vCGcnQgco63isPNK5lMAan2E51AJLknjSLnOxwNY3gM8BcKoy4Z+v5Dv00a03Xuk78JowFow==", - "dev": true, - "dependencies": { - "@types/bn.js": "^4.11.5", - "underscore": "1.9.1", - "web3-core": "1.2.11", - "web3-core-helpers": "1.2.11", - "web3-core-method": "1.2.11", - "web3-core-promievent": "1.2.11", - "web3-core-subscriptions": "1.2.11", - "web3-eth-abi": "1.2.11", - "web3-utils": "1.2.11" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/typechain-target-web3-v1/node_modules/web3-eth-ens": { - "version": "1.2.11", - "resolved": "https://registry.npmjs.org/web3-eth-ens/-/web3-eth-ens-1.2.11.tgz", - "integrity": "sha512-dbW7dXP6HqT1EAPvnniZVnmw6TmQEKF6/1KgAxbo8iBBYrVTMDGFQUUnZ+C4VETGrwwaqtX4L9d/FrQhZ6SUiA==", - "dev": true, - "dependencies": { - "content-hash": "^2.5.2", - "eth-ens-namehash": "2.0.8", - "underscore": "1.9.1", - "web3-core": "1.2.11", - "web3-core-helpers": "1.2.11", - "web3-core-promievent": "1.2.11", - "web3-eth-abi": "1.2.11", - "web3-eth-contract": "1.2.11", - "web3-utils": "1.2.11" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/typechain-target-web3-v1/node_modules/web3-eth-iban": { - "version": "1.2.11", - "resolved": "https://registry.npmjs.org/web3-eth-iban/-/web3-eth-iban-1.2.11.tgz", - "integrity": "sha512-ozuVlZ5jwFC2hJY4+fH9pIcuH1xP0HEFhtWsR69u9uDIANHLPQQtWYmdj7xQ3p2YT4bQLq/axKhZi7EZVetmxQ==", - "dev": true, - "dependencies": { - "bn.js": "^4.11.9", - "web3-utils": "1.2.11" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/typechain-target-web3-v1/node_modules/web3-eth-personal": { - "version": "1.2.11", - "resolved": "https://registry.npmjs.org/web3-eth-personal/-/web3-eth-personal-1.2.11.tgz", - "integrity": "sha512-42IzUtKq9iHZ8K9VN0vAI50iSU9tOA1V7XU2BhF/tb7We2iKBVdkley2fg26TxlOcKNEHm7o6HRtiiFsVK4Ifw==", - "dev": true, - "dependencies": { - "@types/node": "^12.12.6", - "web3-core": "1.2.11", - "web3-core-helpers": "1.2.11", - "web3-core-method": "1.2.11", - "web3-net": "1.2.11", - "web3-utils": "1.2.11" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/typechain-target-web3-v1/node_modules/web3-net": { - "version": "1.2.11", - "resolved": "https://registry.npmjs.org/web3-net/-/web3-net-1.2.11.tgz", - "integrity": "sha512-sjrSDj0pTfZouR5BSTItCuZ5K/oZPVdVciPQ6981PPPIwJJkCMeVjD7I4zO3qDPCnBjBSbWvVnLdwqUBPtHxyg==", - "dev": true, - "dependencies": { - "web3-core": "1.2.11", - "web3-core-method": "1.2.11", - "web3-utils": "1.2.11" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/typechain-target-web3-v1/node_modules/web3-providers-http": { - "version": "1.2.11", - "resolved": "https://registry.npmjs.org/web3-providers-http/-/web3-providers-http-1.2.11.tgz", - "integrity": "sha512-psh4hYGb1+ijWywfwpB2cvvOIMISlR44F/rJtYkRmQ5jMvG4FOCPlQJPiHQZo+2cc3HbktvvSJzIhkWQJdmvrA==", - "dev": true, - "dependencies": { - "web3-core-helpers": "1.2.11", - "xhr2-cookies": "1.1.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/typechain-target-web3-v1/node_modules/web3-providers-ipc": { - "version": "1.2.11", - "resolved": "https://registry.npmjs.org/web3-providers-ipc/-/web3-providers-ipc-1.2.11.tgz", - "integrity": "sha512-yhc7Y/k8hBV/KlELxynWjJDzmgDEDjIjBzXK+e0rHBsYEhdCNdIH5Psa456c+l0qTEU2YzycF8VAjYpWfPnBpQ==", - "dev": true, - "dependencies": { - "oboe": "2.1.4", - "underscore": "1.9.1", - "web3-core-helpers": "1.2.11" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/typechain-target-web3-v1/node_modules/web3-providers-ws": { - "version": "1.2.11", - "resolved": "https://registry.npmjs.org/web3-providers-ws/-/web3-providers-ws-1.2.11.tgz", - "integrity": "sha512-ZxnjIY1Er8Ty+cE4migzr43zA/+72AF1myzsLaU5eVgdsfV7Jqx7Dix1hbevNZDKFlSoEyq/3j/jYalh3So1Zg==", - "dev": true, - "dependencies": { - "eventemitter3": "4.0.4", - "underscore": "1.9.1", - "web3-core-helpers": "1.2.11", - "websocket": "^1.0.31" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/typechain-target-web3-v1/node_modules/web3-shh": { - "version": "1.2.11", - "resolved": "https://registry.npmjs.org/web3-shh/-/web3-shh-1.2.11.tgz", - "integrity": "sha512-B3OrO3oG1L+bv3E1sTwCx66injW1A8hhwpknDUbV+sw3fehFazA06z9SGXUefuFI1kVs4q2vRi0n4oCcI4dZDg==", - "dev": true, - "dependencies": { - "web3-core": "1.2.11", - "web3-core-method": "1.2.11", - "web3-core-subscriptions": "1.2.11", - "web3-net": "1.2.11" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/typechain-target-web3-v1/node_modules/web3-utils": { - "version": "1.2.11", - "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.2.11.tgz", - "integrity": "sha512-3Tq09izhD+ThqHEaWYX4VOT7dNPdZiO+c/1QMA0s5X2lDFKK/xHJb7cyTRRVzN2LvlHbR7baS1tmQhSua51TcQ==", - "dev": true, - "dependencies": { - "bn.js": "^4.11.9", - "eth-lib": "0.2.8", - "ethereum-bloom-filters": "^1.0.6", - "ethjs-unit": "0.1.6", - "number-to-bn": "1.7.0", - "randombytes": "^2.1.0", - "underscore": "1.9.1", - "utf8": "3.0.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/typechain-target-web3-v1/node_modules/web3-utils/node_modules/eth-lib": { - "version": "0.2.8", - "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.8.tgz", - "integrity": "sha512-ArJ7x1WcWOlSpzdoTBX8vkwlkSQ85CjjifSZtV4co64vWxSV8geWfPI9x4SVYu3DSxnX4yWFVTtGL+j9DUFLNw==", - "dev": true, - "dependencies": { - "bn.js": "^4.11.6", - "elliptic": "^6.4.0", - "xhr-request-promise": "^0.1.2" - } - }, - "node_modules/typechain-target-web3-v1/node_modules/websocket": { - "version": "1.0.31", - "resolved": "https://registry.npmjs.org/websocket/-/websocket-1.0.31.tgz", - "integrity": "sha512-VAouplvGKPiKFDTeCCO65vYHsyay8DqoBSlzIO3fayrfOgU94lQN5a1uWVnFrMLceTJw/+fQXR5PGbUVRaHshQ==", - "dev": true, - "hasInstallScript": true, - "dependencies": { - "debug": "^2.2.0", - "es5-ext": "^0.10.50", - "nan": "^2.14.0", - "typedarray-to-buffer": "^3.1.5", - "yaeti": "^0.0.6" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/typechain/node_modules/@types/prettier": { - "version": "2.7.2", - "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.7.2.tgz", - "integrity": "sha512-KufADq8uQqo1pYKVIYzfKbJfBAc0sOeXqGbFaSpv8MRmC/zXgowNZmFcbngndGk922QDmOASEXUZCaY48gs4cg==" - }, - "node_modules/typechain/node_modules/debug": { - "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" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/typechain/node_modules/glob": { - "version": "7.1.7", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz", - "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==", - "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/typechain/node_modules/js-sha3": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.8.0.tgz", - "integrity": "sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q==" - }, - "node_modules/typechain/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/typechain/node_modules/prettier": { - "version": "2.8.7", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.7.tgz", - "integrity": "sha512-yPngTo3aXUUmyuTjeTUT75txrf+aMh9FiD7q9ZE/i6r0bPb22g4FsE6Y338PQX1bmfy08i9QQCB7/rcUAVntfw==", - "bin": { - "prettier": "bin-prettier.js" - }, - "engines": { - "node": ">=10.13.0" - }, - "funding": { - "url": "https://github.com/prettier/prettier?sponsor=1" - } - }, - "node_modules/typechain/node_modules/ts-essentials": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/ts-essentials/-/ts-essentials-7.0.3.tgz", - "integrity": "sha512-8+gr5+lqO3G84KdiTSMRLtuyJ+nTBVRKuCrK4lidMPdVeEp0uqC875uE5NMcaA7YYMN7XsNiFQuMvasF8HT/xQ==", - "peerDependencies": { - "typescript": ">=3.7.0" - } - }, - "node_modules/typedarray": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=" - }, - "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==", - "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==", - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=4.2.0" - } - }, - "node_modules/typescript-compare": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/typescript-compare/-/typescript-compare-0.0.2.tgz", - "integrity": "sha512-8ja4j7pMHkfLJQO2/8tut7ub+J3Lw2S3061eJLFQcvs3tsmJKp8KG5NtpLn7KcY2w08edF74BSVN7qJS0U6oHA==", - "dev": true, - "dependencies": { - "typescript-logic": "^0.0.0" - } - }, - "node_modules/typescript-logic": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/typescript-logic/-/typescript-logic-0.0.0.tgz", - "integrity": "sha512-zXFars5LUkI3zP492ls0VskH3TtdeHCqu0i7/duGt60i5IGPIpAHE/DWo5FqJ6EjQ15YKXrt+AETjv60Dat34Q==", - "dev": true - }, - "node_modules/typescript-tuple": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/typescript-tuple/-/typescript-tuple-2.2.1.tgz", - "integrity": "sha512-Zcr0lbt8z5ZdEzERHAMAniTiIKerFCMgd7yjq1fPnDJ43et/k9twIFQMUYff9k5oXcsQ0WpvFcgzK2ZKASoW6Q==", - "dev": true, - "dependencies": { - "typescript-compare": "^0.0.2" - } - }, - "node_modules/typical": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/typical/-/typical-4.0.0.tgz", - "integrity": "sha512-VAH4IvQ7BDFYglMd7BPRDfLgxZZX4O4TFcRDA6EN5X7erNJJq+McIEp8np9aVtxrCJ6qx4GTYVfOWNjcqwZgRw==", - "engines": { - "node": ">=8" - } - }, - "node_modules/u3": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/u3/-/u3-0.1.1.tgz", - "integrity": "sha512-+J5D5ir763y+Am/QY6hXNRlwljIeRMZMGs0cT6qqZVVzzT3X3nFPXVyPOFRMOR4kupB0T8JnCdpWdp6Q/iXn3w==" - }, - "node_modules/ultron": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ultron/-/ultron-1.1.1.tgz", - "integrity": "sha512-UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og==" - }, - "node_modules/unbox-primitive": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz", - "integrity": "sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==", - "dev": true, - "dependencies": { - "function-bind": "^1.1.1", - "has-bigints": "^1.0.1", - "has-symbols": "^1.0.2", - "which-boxed-primitive": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/unbzip2-stream": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz", - "integrity": "sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg==", - "dev": true, - "dependencies": { - "buffer": "^5.2.1", - "through": "^2.3.8" - } - }, - "node_modules/underscore": { - "version": "1.13.3", - "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.13.3.tgz", - "integrity": "sha512-QvjkYpiD+dJJraRA8+dGAU4i7aBbb2s0S3jA45TFOvg2VgqvdCDd/3N6CqA8gluk1W91GLoXg5enMUx560QzuA==", - "dev": true - }, - "node_modules/union-value": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", - "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", - "dependencies": { - "arr-union": "^3.1.0", - "get-value": "^2.0.6", - "is-extendable": "^0.1.1", - "set-value": "^2.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/union-value/node_modules/is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/unique-filename": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", - "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", - "dependencies": { - "unique-slug": "^2.0.0" - } - }, - "node_modules/unique-slug": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz", - "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==", - "dependencies": { - "imurmurhash": "^0.1.4" - } - }, - "node_modules/unique-string": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-1.0.0.tgz", - "integrity": "sha1-nhBXzKhRq7kzmPizOuGHuZyuwRo=", - "dev": true, - "dependencies": { - "crypto-random-string": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", - "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/unpipe": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/unset-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", - "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", - "dependencies": { - "has-value": "^0.3.1", - "isobject": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/unset-value/node_modules/has-value": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", - "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", - "dependencies": { - "get-value": "^2.0.3", - "has-values": "^0.1.4", - "isobject": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/unset-value/node_modules/has-value/node_modules/isobject": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", - "dependencies": { - "isarray": "1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/unset-value/node_modules/has-values": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", - "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/untildify": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/untildify/-/untildify-4.0.0.tgz", - "integrity": "sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==", - "engines": { - "node": ">=8" - } - }, - "node_modules/upath": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", - "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==", - "optional": true, - "engines": { - "node": ">=4", - "yarn": "*" - } - }, - "node_modules/upper-case": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/upper-case/-/upper-case-1.1.3.tgz", - "integrity": "sha512-WRbjgmYzgXkCV7zNVpy5YgrHgbBv126rMALQQMrmzOVC4GM2waQ9x7xtm8VU+1yF2kWyPzI9zbZ48n4vSxwfSA==", - "dev": true - }, - "node_modules/upper-case-first": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/upper-case-first/-/upper-case-first-1.1.2.tgz", - "integrity": "sha512-wINKYvI3Db8dtjikdAqoBbZoP6Q+PZUyfMR7pmwHzjC2quzSkUq5DmPrTtPEqHaz8AGtmsB4TqwapMTM1QAQOQ==", - "dev": true, - "dependencies": { - "upper-case": "^1.1.1" - } - }, - "node_modules/uri-js": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", - "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", - "dependencies": { - "punycode": "^2.1.0" - } - }, - "node_modules/urix": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", - "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", - "deprecated": "Please see https://github.com/lydell/urix#deprecated" - }, - "node_modules/url": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", - "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", - "dependencies": { - "punycode": "1.3.2", - "querystring": "0.2.0" - } - }, - "node_modules/url-parse-lax": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", - "integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=", - "dev": true, - "dependencies": { - "prepend-http": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/url-set-query": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/url-set-query/-/url-set-query-1.0.0.tgz", - "integrity": "sha1-AW6M/Xwg7gXK/neV6JK9BwL6ozk=" - }, - "node_modules/url-to-options": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/url-to-options/-/url-to-options-1.0.1.tgz", - "integrity": "sha1-FQWgOiiaSMvXpDTvuu7FBV9WM6k=", - "dev": true, - "engines": { - "node": ">= 4" - } - }, - "node_modules/url/node_modules/punycode": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", - "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=" - }, - "node_modules/url/node_modules/querystring": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", - "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", - "deprecated": "The querystring API is considered Legacy. new code should use the URLSearchParams API instead.", - "engines": { - "node": ">=0.4.x" - } - }, - "node_modules/use": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", - "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/utf-8-validate": { - "version": "5.0.10", - "resolved": "https://registry.npmjs.org/utf-8-validate/-/utf-8-validate-5.0.10.tgz", - "integrity": "sha512-Z6czzLq4u8fPOyx7TU6X3dvUZVvoJmxSQ+IcrlmagKhilxlhZgxPK6C5Jqbkw1IDUmFTM+cz9QDnnLTwDz/2gQ==", - "hasInstallScript": true, - "dependencies": { - "node-gyp-build": "^4.3.0" - }, - "engines": { - "node": ">=6.14.2" - } - }, - "node_modules/utf8": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/utf8/-/utf8-3.0.0.tgz", - "integrity": "sha512-E8VjFIQ/TyQgp+TZfS6l8yp/xWppSAHzidGiRrqe4bK4XP9pTRyKFgGJpO3SN7zdX4DeomTrwaseCHovfpFcqQ==" - }, - "node_modules/util": { - "version": "0.12.5", - "resolved": "https://registry.npmjs.org/util/-/util-0.12.5.tgz", - "integrity": "sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==", - "dev": true, - "dependencies": { - "inherits": "^2.0.3", - "is-arguments": "^1.0.4", - "is-generator-function": "^1.0.7", - "is-typed-array": "^1.1.3", - "which-typed-array": "^1.1.2" - } - }, - "node_modules/util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" - }, - "node_modules/utils-merge": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=", - "dev": true, - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/uuid": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", - "bin": { - "uuid": "bin/uuid" - } - }, - "node_modules/v8-compile-cache": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.1.1.tgz", - "integrity": "sha512-8OQ9CL+VWyt3JStj7HX7/ciTL2V3Rl1Wf5OL+SNTm0yK1KvtReVulksyeRnCANHHuUxHlQig+JJDlUhBt1NQDQ==" - }, - "node_modules/v8-compile-cache-lib": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", - "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==", - "dev": true - }, - "node_modules/value-or-promise": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/value-or-promise/-/value-or-promise-1.0.11.tgz", - "integrity": "sha512-41BrgH+dIbCFXClcSapVs5M6GkENd3gQOJpEfPDNa71LsUGMXDL0jMWpI/Rh7WhX+Aalfz2TTS3Zt5pUsbnhLg==", - "dev": true, - "optional": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/varint": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/varint/-/varint-5.0.2.tgz", - "integrity": "sha512-lKxKYG6H03yCZUpAGOPOsMcGxd1RHCu1iKvEHYDPmTyq2HueGhD73ssNBqqQWfvYs04G9iUFRvmAVLW20Jw6ow==" - }, - "node_modules/vary": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/verror": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", - "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", - "engines": [ - "node >=0.6.0" - ], - "dependencies": { - "assert-plus": "^1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" - } - }, - "node_modules/vlq": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/vlq/-/vlq-2.0.4.tgz", - "integrity": "sha512-aodjPa2wPQFkra1G8CzJBTHXhgk3EVSwxSWXNPr1fgdFLUb8kvLV1iEb6rFgasIsjP82HWI6dsb5Io26DDnasA==" - }, - "node_modules/vm-browserify": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz", - "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==" - }, - "node_modules/vuvuzela": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/vuvuzela/-/vuvuzela-1.0.3.tgz", - "integrity": "sha512-Tm7jR1xTzBbPW+6y1tknKiEhz04Wf/1iZkcTJjSFcpNko43+dFW6+OOeQe9taJIug3NdfUAjFKgUSyQrIKaDvQ==", - "dev": true, - "optional": true - }, - "node_modules/watchpack-chokidar2": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/watchpack-chokidar2/-/watchpack-chokidar2-2.0.1.tgz", - "integrity": "sha512-nCFfBIPKr5Sh61s4LPpy1Wtfi0HE8isJ3d2Yb5/Ppw2P2B/3eVSEBjKfN0fmHJSK14+31KwMKmcrzs2GM4P0Ww==", - "optional": true, - "dependencies": { - "chokidar": "^2.1.8" - } - }, - "node_modules/watchpack-chokidar2/node_modules/anymatch": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", - "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", - "optional": true, - "dependencies": { - "micromatch": "^3.1.4", - "normalize-path": "^2.1.1" - } - }, - "node_modules/watchpack-chokidar2/node_modules/anymatch/node_modules/normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", - "optional": true, - "dependencies": { - "remove-trailing-separator": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/watchpack-chokidar2/node_modules/binary-extensions": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", - "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/watchpack-chokidar2/node_modules/braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "optional": true, - "dependencies": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/watchpack-chokidar2/node_modules/chokidar": { - "version": "2.1.8", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", - "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", - "deprecated": "Chokidar 2 does not receive security updates since 2019. Upgrade to chokidar 3 with 15x fewer dependencies", - "optional": true, - "dependencies": { - "anymatch": "^2.0.0", - "async-each": "^1.0.1", - "braces": "^2.3.2", - "glob-parent": "^3.1.0", - "inherits": "^2.0.3", - "is-binary-path": "^1.0.0", - "is-glob": "^4.0.0", - "normalize-path": "^3.0.0", - "path-is-absolute": "^1.0.0", - "readdirp": "^2.2.1", - "upath": "^1.1.1" - }, - "optionalDependencies": { - "fsevents": "^1.2.7" - } - }, - "node_modules/watchpack-chokidar2/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "optional": true, - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/watchpack-chokidar2/node_modules/fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "optional": true, - "dependencies": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/watchpack-chokidar2/node_modules/glob-parent": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", - "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", - "optional": true, - "dependencies": { - "is-glob": "^3.1.0", - "path-dirname": "^1.0.0" - } - }, - "node_modules/watchpack-chokidar2/node_modules/glob-parent/node_modules/is-glob": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", - "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", - "optional": true, - "dependencies": { - "is-extglob": "^2.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/watchpack-chokidar2/node_modules/is-binary-path": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", - "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", - "optional": true, - "dependencies": { - "binary-extensions": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/watchpack-chokidar2/node_modules/is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", - "optional": true - }, - "node_modules/watchpack-chokidar2/node_modules/is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/watchpack-chokidar2/node_modules/is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "optional": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/watchpack-chokidar2/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "optional": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/watchpack-chokidar2/node_modules/readdirp": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", - "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", - "optional": true, - "dependencies": { - "graceful-fs": "^4.1.11", - "micromatch": "^3.1.10", - "readable-stream": "^2.0.2" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/watchpack-chokidar2/node_modules/to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", - "optional": true, - "dependencies": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/web3": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/web3/-/web3-1.2.2.tgz", - "integrity": "sha512-/ChbmB6qZpfGx6eNpczt5YSUBHEA5V2+iUCbn85EVb3Zv6FVxrOo5Tv7Lw0gE2tW7EEjASbCyp3mZeiZaCCngg==", - "dev": true, - "hasInstallScript": true, - "dependencies": { - "@types/node": "^12.6.1", - "web3-bzz": "1.2.2", - "web3-core": "1.2.2", - "web3-eth": "1.2.2", - "web3-eth-personal": "1.2.2", - "web3-net": "1.2.2", - "web3-shh": "1.2.2", - "web3-utils": "1.2.2" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-bzz": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/web3-bzz/-/web3-bzz-1.2.2.tgz", - "integrity": "sha512-b1O2ObsqUN1lJxmFSjvnEC4TsaCbmh7Owj3IAIWTKqL9qhVgx7Qsu5O9cD13pBiSPNZJ68uJPaKq380QB4NWeA==", - "dev": true, - "dependencies": { - "@types/node": "^10.12.18", - "got": "9.6.0", - "swarm-js": "0.1.39", - "underscore": "1.9.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-bzz/node_modules/@types/node": { - "version": "10.17.28", - "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.28.tgz", - "integrity": "sha512-dzjES1Egb4c1a89C7lKwQh8pwjYmlOAG9dW1pBgxEk57tMrLnssOfEthz8kdkNaBd7lIqQx7APm5+mZ619IiCQ==", - "dev": true - }, - "node_modules/web3-bzz/node_modules/underscore": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.9.1.tgz", - "integrity": "sha512-5/4etnCkd9c8gwgowi5/om/mYO5ajCaOgdzj/oW+0eQV9WxKBDZw5+ycmKmeaTXjInS/W0BzpGLo2xR2aBwZdg==", - "dev": true - }, - "node_modules/web3-core": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/web3-core/-/web3-core-1.2.2.tgz", - "integrity": "sha512-miHAX3qUgxV+KYfaOY93Hlc3kLW2j5fH8FJy6kSxAv+d4d5aH0wwrU2IIoJylQdT+FeenQ38sgsCnFu9iZ1hCQ==", - "dev": true, - "dependencies": { - "@types/bn.js": "^4.11.4", - "@types/node": "^12.6.1", - "web3-core-helpers": "1.2.2", - "web3-core-method": "1.2.2", - "web3-core-requestmanager": "1.2.2", - "web3-utils": "1.2.2" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-core-helpers": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.2.2.tgz", - "integrity": "sha512-HJrRsIGgZa1jGUIhvGz4S5Yh6wtOIo/TMIsSLe+Xay+KVnbseJpPprDI5W3s7H2ODhMQTbogmmUFquZweW2ImQ==", - "dev": true, - "dependencies": { - "underscore": "1.9.1", - "web3-eth-iban": "1.2.2", - "web3-utils": "1.2.2" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-core-helpers/node_modules/underscore": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.9.1.tgz", - "integrity": "sha512-5/4etnCkd9c8gwgowi5/om/mYO5ajCaOgdzj/oW+0eQV9WxKBDZw5+ycmKmeaTXjInS/W0BzpGLo2xR2aBwZdg==", - "dev": true - }, - "node_modules/web3-core-method": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/web3-core-method/-/web3-core-method-1.2.2.tgz", - "integrity": "sha512-szR4fDSBxNHaF1DFqE+j6sFR/afv9Aa36OW93saHZnrh+iXSrYeUUDfugeNcRlugEKeUCkd4CZylfgbK2SKYJA==", - "dev": true, - "dependencies": { - "underscore": "1.9.1", - "web3-core-helpers": "1.2.2", - "web3-core-promievent": "1.2.2", - "web3-core-subscriptions": "1.2.2", - "web3-utils": "1.2.2" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-core-method/node_modules/underscore": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.9.1.tgz", - "integrity": "sha512-5/4etnCkd9c8gwgowi5/om/mYO5ajCaOgdzj/oW+0eQV9WxKBDZw5+ycmKmeaTXjInS/W0BzpGLo2xR2aBwZdg==", - "dev": true - }, - "node_modules/web3-core-promievent": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/web3-core-promievent/-/web3-core-promievent-1.2.2.tgz", - "integrity": "sha512-tKvYeT8bkUfKABcQswK6/X79blKTKYGk949urZKcLvLDEaWrM3uuzDwdQT3BNKzQ3vIvTggFPX9BwYh0F1WwqQ==", - "dev": true, - "dependencies": { - "any-promise": "1.3.0", - "eventemitter3": "3.1.2" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-core-requestmanager": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/web3-core-requestmanager/-/web3-core-requestmanager-1.2.2.tgz", - "integrity": "sha512-a+gSbiBRHtHvkp78U2bsntMGYGF2eCb6219aMufuZWeAZGXJ63Wc2321PCbA8hF9cQrZI4EoZ4kVLRI4OF15Hw==", - "dev": true, - "dependencies": { - "underscore": "1.9.1", - "web3-core-helpers": "1.2.2", - "web3-providers-http": "1.2.2", - "web3-providers-ipc": "1.2.2", - "web3-providers-ws": "1.2.2" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-core-requestmanager/node_modules/underscore": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.9.1.tgz", - "integrity": "sha512-5/4etnCkd9c8gwgowi5/om/mYO5ajCaOgdzj/oW+0eQV9WxKBDZw5+ycmKmeaTXjInS/W0BzpGLo2xR2aBwZdg==", - "dev": true - }, - "node_modules/web3-core-subscriptions": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/web3-core-subscriptions/-/web3-core-subscriptions-1.2.2.tgz", - "integrity": "sha512-QbTgigNuT4eicAWWr7ahVpJyM8GbICsR1Ys9mJqzBEwpqS+RXTRVSkwZ2IsxO+iqv6liMNwGregbJLq4urMFcQ==", - "dev": true, - "dependencies": { - "eventemitter3": "3.1.2", - "underscore": "1.9.1", - "web3-core-helpers": "1.2.2" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-core-subscriptions/node_modules/underscore": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.9.1.tgz", - "integrity": "sha512-5/4etnCkd9c8gwgowi5/om/mYO5ajCaOgdzj/oW+0eQV9WxKBDZw5+ycmKmeaTXjInS/W0BzpGLo2xR2aBwZdg==", - "dev": true - }, - "node_modules/web3-core/node_modules/@types/node": { - "version": "12.12.53", - "resolved": "https://registry.npmjs.org/@types/node/-/node-12.12.53.tgz", - "integrity": "sha512-51MYTDTyCziHb70wtGNFRwB4l+5JNvdqzFSkbDvpbftEgVUBEE+T5f7pROhWMp/fxp07oNIEQZd5bbfAH22ohQ==", - "dev": true - }, - "node_modules/web3-eth": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/web3-eth/-/web3-eth-1.2.2.tgz", - "integrity": "sha512-UXpC74mBQvZzd4b+baD4Ocp7g+BlwxhBHumy9seyE/LMIcMlePXwCKzxve9yReNpjaU16Mmyya6ZYlyiKKV8UA==", - "dev": true, - "dependencies": { - "underscore": "1.9.1", - "web3-core": "1.2.2", - "web3-core-helpers": "1.2.2", - "web3-core-method": "1.2.2", - "web3-core-subscriptions": "1.2.2", - "web3-eth-abi": "1.2.2", - "web3-eth-accounts": "1.2.2", - "web3-eth-contract": "1.2.2", - "web3-eth-ens": "1.2.2", - "web3-eth-iban": "1.2.2", - "web3-eth-personal": "1.2.2", - "web3-net": "1.2.2", - "web3-utils": "1.2.2" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-eth-abi": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/web3-eth-abi/-/web3-eth-abi-1.2.2.tgz", - "integrity": "sha512-Yn/ZMgoOLxhTVxIYtPJ0eS6pnAnkTAaJgUJh1JhZS4ekzgswMfEYXOwpMaD5eiqPJLpuxmZFnXnBZlnQ1JMXsw==", - "dev": true, - "dependencies": { - "ethers": "4.0.0-beta.3", - "underscore": "1.9.1", - "web3-utils": "1.2.2" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-eth-abi/node_modules/@types/node": { - "version": "10.17.28", - "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.28.tgz", - "integrity": "sha512-dzjES1Egb4c1a89C7lKwQh8pwjYmlOAG9dW1pBgxEk57tMrLnssOfEthz8kdkNaBd7lIqQx7APm5+mZ619IiCQ==", - "dev": true - }, - "node_modules/web3-eth-abi/node_modules/elliptic": { - "version": "6.3.3", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.3.3.tgz", - "integrity": "sha1-VILZZG1UvLif19mU/J4ulWiHbj8=", - "dev": true, - "dependencies": { - "bn.js": "^4.4.0", - "brorand": "^1.0.1", - "hash.js": "^1.0.0", - "inherits": "^2.0.1" - } - }, - "node_modules/web3-eth-abi/node_modules/ethers": { - "version": "4.0.0-beta.3", - "resolved": "https://registry.npmjs.org/ethers/-/ethers-4.0.0-beta.3.tgz", - "integrity": "sha512-YYPogooSknTwvHg3+Mv71gM/3Wcrx+ZpCzarBj3mqs9njjRkrOo2/eufzhHloOCo3JSoNI4TQJJ6yU5ABm3Uog==", - "dev": true, - "dependencies": { - "@types/node": "^10.3.2", - "aes-js": "3.0.0", - "bn.js": "^4.4.0", - "elliptic": "6.3.3", - "hash.js": "1.1.3", - "js-sha3": "0.5.7", - "scrypt-js": "2.0.3", - "setimmediate": "1.0.4", - "uuid": "2.0.1", - "xmlhttprequest": "1.8.0" - } - }, - "node_modules/web3-eth-abi/node_modules/scrypt-js": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-2.0.3.tgz", - "integrity": "sha1-uwBAvgMEPamgEqLOqfyfhSz8h9Q=", - "dev": true - }, - "node_modules/web3-eth-abi/node_modules/underscore": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.9.1.tgz", - "integrity": "sha512-5/4etnCkd9c8gwgowi5/om/mYO5ajCaOgdzj/oW+0eQV9WxKBDZw5+ycmKmeaTXjInS/W0BzpGLo2xR2aBwZdg==", - "dev": true - }, - "node_modules/web3-eth-abi/node_modules/uuid": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-2.0.1.tgz", - "integrity": "sha1-wqMN7bPlNdcsz4LjQ5QaULqFM6w=", - "dev": true - }, - "node_modules/web3-eth-accounts": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/web3-eth-accounts/-/web3-eth-accounts-1.2.2.tgz", - "integrity": "sha512-KzHOEyXOEZ13ZOkWN3skZKqSo5f4Z1ogPFNn9uZbKCz+kSp+gCAEKxyfbOsB/JMAp5h7o7pb6eYsPCUBJmFFiA==", - "dev": true, - "dependencies": { - "any-promise": "1.3.0", - "crypto-browserify": "3.12.0", - "eth-lib": "0.2.7", - "ethereumjs-common": "^1.3.2", - "ethereumjs-tx": "^2.1.1", - "scrypt-shim": "github:web3-js/scrypt-shim", - "underscore": "1.9.1", - "uuid": "3.3.2", - "web3-core": "1.2.2", - "web3-core-helpers": "1.2.2", - "web3-core-method": "1.2.2", - "web3-utils": "1.2.2" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-eth-accounts/node_modules/eth-lib": { - "version": "0.2.7", - "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.7.tgz", - "integrity": "sha1-L5Pxex4jrsN1nNSj/iDBKGo/wco=", - "dev": true, - "dependencies": { - "bn.js": "^4.11.6", - "elliptic": "^6.4.0", - "xhr-request-promise": "^0.1.2" - } - }, - "node_modules/web3-eth-accounts/node_modules/underscore": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.9.1.tgz", - "integrity": "sha512-5/4etnCkd9c8gwgowi5/om/mYO5ajCaOgdzj/oW+0eQV9WxKBDZw5+ycmKmeaTXjInS/W0BzpGLo2xR2aBwZdg==", - "dev": true - }, - "node_modules/web3-eth-accounts/node_modules/uuid": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", - "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==", - "dev": true, - "bin": { - "uuid": "bin/uuid" - } - }, - "node_modules/web3-eth-contract": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/web3-eth-contract/-/web3-eth-contract-1.2.2.tgz", - "integrity": "sha512-EKT2yVFws3FEdotDQoNsXTYL798+ogJqR2//CaGwx3p0/RvQIgfzEwp8nbgA6dMxCsn9KOQi7OtklzpnJMkjtA==", - "dev": true, - "dependencies": { - "@types/bn.js": "^4.11.4", - "underscore": "1.9.1", - "web3-core": "1.2.2", - "web3-core-helpers": "1.2.2", - "web3-core-method": "1.2.2", - "web3-core-promievent": "1.2.2", - "web3-core-subscriptions": "1.2.2", - "web3-eth-abi": "1.2.2", - "web3-utils": "1.2.2" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-eth-contract/node_modules/underscore": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.9.1.tgz", - "integrity": "sha512-5/4etnCkd9c8gwgowi5/om/mYO5ajCaOgdzj/oW+0eQV9WxKBDZw5+ycmKmeaTXjInS/W0BzpGLo2xR2aBwZdg==", - "dev": true - }, - "node_modules/web3-eth-ens": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/web3-eth-ens/-/web3-eth-ens-1.2.2.tgz", - "integrity": "sha512-CFjkr2HnuyMoMFBoNUWojyguD4Ef+NkyovcnUc/iAb9GP4LHohKrODG4pl76R5u61TkJGobC2ij6TyibtsyVYg==", - "dev": true, - "dependencies": { - "eth-ens-namehash": "2.0.8", - "underscore": "1.9.1", - "web3-core": "1.2.2", - "web3-core-helpers": "1.2.2", - "web3-core-promievent": "1.2.2", - "web3-eth-abi": "1.2.2", - "web3-eth-contract": "1.2.2", - "web3-utils": "1.2.2" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-eth-ens/node_modules/underscore": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.9.1.tgz", - "integrity": "sha512-5/4etnCkd9c8gwgowi5/om/mYO5ajCaOgdzj/oW+0eQV9WxKBDZw5+ycmKmeaTXjInS/W0BzpGLo2xR2aBwZdg==", - "dev": true - }, - "node_modules/web3-eth-iban": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/web3-eth-iban/-/web3-eth-iban-1.2.2.tgz", - "integrity": "sha512-gxKXBoUhaTFHr0vJB/5sd4i8ejF/7gIsbM/VvemHT3tF5smnmY6hcwSMmn7sl5Gs+83XVb/BngnnGkf+I/rsrQ==", - "dev": true, - "dependencies": { - "bn.js": "4.11.8", - "web3-utils": "1.2.2" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-eth-iban/node_modules/bn.js": { - "version": "4.11.8", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz", - "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==", - "dev": true - }, - "node_modules/web3-eth-personal": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/web3-eth-personal/-/web3-eth-personal-1.2.2.tgz", - "integrity": "sha512-4w+GLvTlFqW3+q4xDUXvCEMU7kRZ+xm/iJC8gm1Li1nXxwwFbs+Y+KBK6ZYtoN1qqAnHR+plYpIoVo27ixI5Rg==", - "dev": true, - "dependencies": { - "@types/node": "^12.6.1", - "web3-core": "1.2.2", - "web3-core-helpers": "1.2.2", - "web3-core-method": "1.2.2", - "web3-net": "1.2.2", - "web3-utils": "1.2.2" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-eth-personal/node_modules/@types/node": { - "version": "12.12.53", - "resolved": "https://registry.npmjs.org/@types/node/-/node-12.12.53.tgz", - "integrity": "sha512-51MYTDTyCziHb70wtGNFRwB4l+5JNvdqzFSkbDvpbftEgVUBEE+T5f7pROhWMp/fxp07oNIEQZd5bbfAH22ohQ==", - "dev": true - }, - "node_modules/web3-eth/node_modules/underscore": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.9.1.tgz", - "integrity": "sha512-5/4etnCkd9c8gwgowi5/om/mYO5ajCaOgdzj/oW+0eQV9WxKBDZw5+ycmKmeaTXjInS/W0BzpGLo2xR2aBwZdg==", - "dev": true - }, - "node_modules/web3-net": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/web3-net/-/web3-net-1.2.2.tgz", - "integrity": "sha512-K07j2DXq0x4UOJgae65rWZKraOznhk8v5EGSTdFqASTx7vWE/m+NqBijBYGEsQY1lSMlVaAY9UEQlcXK5HzXTw==", - "dev": true, - "dependencies": { - "web3-core": "1.2.2", - "web3-core-method": "1.2.2", - "web3-utils": "1.2.2" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-providers-http": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/web3-providers-http/-/web3-providers-http-1.2.2.tgz", - "integrity": "sha512-BNZ7Hguy3eBszsarH5gqr9SIZNvqk9eKwqwmGH1LQS1FL3NdoOn7tgPPdddrXec4fL94CwgNk4rCU+OjjZRNDg==", - "dev": true, - "dependencies": { - "web3-core-helpers": "1.2.2", - "xhr2-cookies": "1.1.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-providers-ipc": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/web3-providers-ipc/-/web3-providers-ipc-1.2.2.tgz", - "integrity": "sha512-t97w3zi5Kn/LEWGA6D9qxoO0LBOG+lK2FjlEdCwDQatffB/+vYrzZ/CLYVQSoyFZAlsDoBasVoYSWZK1n39aHA==", - "dev": true, - "dependencies": { - "oboe": "2.1.4", - "underscore": "1.9.1", - "web3-core-helpers": "1.2.2" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-providers-ipc/node_modules/underscore": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.9.1.tgz", - "integrity": "sha512-5/4etnCkd9c8gwgowi5/om/mYO5ajCaOgdzj/oW+0eQV9WxKBDZw5+ycmKmeaTXjInS/W0BzpGLo2xR2aBwZdg==", - "dev": true - }, - "node_modules/web3-providers-ws": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/web3-providers-ws/-/web3-providers-ws-1.2.2.tgz", - "integrity": "sha512-Wb1mrWTGMTXOpJkL0yGvL/WYLt8fUIXx8k/l52QB2IiKzvyd42dTWn4+j8IKXGSYYzOm7NMqv6nhA5VDk12VfA==", - "dev": true, - "dependencies": { - "underscore": "1.9.1", - "web3-core-helpers": "1.2.2", - "websocket": "github:web3-js/WebSocket-Node#polyfill/globalThis" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-providers-ws/node_modules/underscore": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.9.1.tgz", - "integrity": "sha512-5/4etnCkd9c8gwgowi5/om/mYO5ajCaOgdzj/oW+0eQV9WxKBDZw5+ycmKmeaTXjInS/W0BzpGLo2xR2aBwZdg==", - "dev": true - }, - "node_modules/web3-shh": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/web3-shh/-/web3-shh-1.2.2.tgz", - "integrity": "sha512-og258NPhlBn8yYrDWjoWBBb6zo1OlBgoWGT+LL5/LPqRbjPe09hlOYHgscAAr9zZGtohTOty7RrxYw6Z6oDWCg==", - "dev": true, - "dependencies": { - "web3-core": "1.2.2", - "web3-core-method": "1.2.2", - "web3-core-subscriptions": "1.2.2", - "web3-net": "1.2.2" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-utils": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.2.2.tgz", - "integrity": "sha512-joF+s3243TY5cL7Z7y4h1JsJpUCf/kmFmj+eJar7Y2yNIGVcW961VyrAms75tjUysSuHaUQ3eQXjBEUJueT52A==", - "dev": true, - "dependencies": { - "bn.js": "4.11.8", - "eth-lib": "0.2.7", - "ethereum-bloom-filters": "^1.0.6", - "ethjs-unit": "0.1.6", - "number-to-bn": "1.7.0", - "randombytes": "^2.1.0", - "underscore": "1.9.1", - "utf8": "3.0.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-utils/node_modules/bn.js": { - "version": "4.11.8", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz", - "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==", - "dev": true - }, - "node_modules/web3-utils/node_modules/eth-lib": { - "version": "0.2.7", - "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.7.tgz", - "integrity": "sha1-L5Pxex4jrsN1nNSj/iDBKGo/wco=", - "dev": true, - "dependencies": { - "bn.js": "^4.11.6", - "elliptic": "^6.4.0", - "xhr-request-promise": "^0.1.2" - } - }, - "node_modules/web3-utils/node_modules/underscore": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.9.1.tgz", - "integrity": "sha512-5/4etnCkd9c8gwgowi5/om/mYO5ajCaOgdzj/oW+0eQV9WxKBDZw5+ycmKmeaTXjInS/W0BzpGLo2xR2aBwZdg==", - "dev": true - }, - "node_modules/web3/node_modules/@types/node": { - "version": "12.12.53", - "resolved": "https://registry.npmjs.org/@types/node/-/node-12.12.53.tgz", - "integrity": "sha512-51MYTDTyCziHb70wtGNFRwB4l+5JNvdqzFSkbDvpbftEgVUBEE+T5f7pROhWMp/fxp07oNIEQZd5bbfAH22ohQ==", - "dev": true - }, - "node_modules/webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=" - }, - "node_modules/websocket": { - "resolved": "git+ssh://git@github.com/web3-js/WebSocket-Node.git#ef5ea2f41daf4a2113b80c9223df884b4d56c400", - "dev": true, - "hasInstallScript": true, - "dependencies": { - "debug": "^2.2.0", - "es5-ext": "^0.10.50", - "nan": "^2.14.0", - "typedarray-to-buffer": "^3.1.5", - "yaeti": "^0.0.6" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/websocket-driver": { - "version": "0.7.4", - "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz", - "integrity": "sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==", - "dev": true, - "dependencies": { - "http-parser-js": ">=0.5.1", - "safe-buffer": ">=5.1.0", - "websocket-extensions": ">=0.1.1" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/websocket-extensions": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz", - "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/websocket/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/whatwg-fetch": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.2.0.tgz", - "integrity": "sha512-SdGPoQMMnzVYThUbSrEvqTlkvC1Ux27NehaJ/GUHBfNrh5Mjg+1/uRyFMwVnxO2MrikMWvWAqUGgQOfVU4hT7w==", - "dev": true - }, - "node_modules/whatwg-mimetype": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-3.0.0.tgz", - "integrity": "sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==", - "dev": true, - "optional": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha1-lmRU6HZUYuN2RNNib2dCzotwll0=", - "dependencies": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } - }, - "node_modules/when": { - "version": "3.7.8", - "resolved": "https://registry.npmjs.org/when/-/when-3.7.8.tgz", - "integrity": "sha1-xxMLan6gRpPoQs3J56Hyqjmjn4I=" - }, - "node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/which-boxed-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", - "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", - "dev": true, - "dependencies": { - "is-bigint": "^1.0.1", - "is-boolean-object": "^1.1.0", - "is-number-object": "^1.0.4", - "is-string": "^1.0.5", - "is-symbol": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/which-module": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", - "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=" - }, - "node_modules/which-typed-array": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.4.tgz", - "integrity": "sha512-49E0SpUe90cjpoc7BOJwyPHRqSAd12c10Qm2amdEZrJPCY2NDxaW01zHITrem+rnETY3dwrbH3UUrUwagfCYDA==", - "dev": true, - "dependencies": { - "available-typed-arrays": "^1.0.2", - "call-bind": "^1.0.0", - "es-abstract": "^1.18.0-next.1", - "foreach": "^2.0.5", - "function-bind": "^1.1.1", - "has-symbols": "^1.0.1", - "is-typed-array": "^1.1.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/wide-align": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", - "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", - "dependencies": { - "string-width": "^1.0.2 || 2" - } - }, - "node_modules/wif": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/wif/-/wif-2.0.6.tgz", - "integrity": "sha1-CNP1IFbGZnkplyb63g1DKudLRwQ=", - "dependencies": { - "bs58check": "<3.0.0" - } - }, - "node_modules/word-wrap": { - "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, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/wordwrapjs": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/wordwrapjs/-/wordwrapjs-4.0.1.tgz", - "integrity": "sha512-kKlNACbvHrkpIw6oPeYDSmdCTu2hdMHoyXLTcUKala++lx5Y+wjJ/e474Jqv5abnVmwxw08DiTuHmw69lJGksA==", - "dependencies": { - "reduce-flatten": "^2.0.0", - "typical": "^5.2.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/wordwrapjs/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/worker-farm": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/worker-farm/-/worker-farm-1.7.0.tgz", - "integrity": "sha512-rvw3QTZc8lAxyVrqcSGVm5yP/IJ2UcB3U0graE3LCFoZ0Yn2x4EoVSqJKdB/T5M+FLcRPjz4TDacRf3OCfNUzw==", - "dependencies": { - "errno": "~0.1.7" - } - }, - "node_modules/workerpool": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.2.1.tgz", - "integrity": "sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw==", - "dev": true - }, - "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": ">=6" - } - }, - "node_modules/wrap-ansi/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": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" - }, - "node_modules/write": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/write/-/write-1.0.3.tgz", - "integrity": "sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig==", - "dev": true, - "dependencies": { - "mkdirp": "^0.5.1" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/write-file-atomic": { - "version": "2.4.3", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.4.3.tgz", - "integrity": "sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.1.11", - "imurmurhash": "^0.1.4", - "signal-exit": "^3.0.2" - } - }, - "node_modules/write-stream": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/write-stream/-/write-stream-0.4.3.tgz", - "integrity": "sha512-IJrvkhbAnj89W/GAVdVgbnPiVw5Ntg/B4tc/MUCIEwj/g6JIww1DWJyB/yBMT3yw2/TkT6IUZ0+IYef3flEw8A==", - "dev": true, - "optional": true, - "dependencies": { - "readable-stream": "~0.0.2" - } - }, - "node_modules/write-stream/node_modules/readable-stream": { - "version": "0.0.4", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-0.0.4.tgz", - "integrity": "sha512-azrivNydKRYt7zwLV5wWUK7YzKTWs3q87xSmY6DlHapPrCvaT6ZrukvM5erV+yCSSPmZT8zkSdttOHQpWWm9zw==", - "dev": true, - "optional": true - }, - "node_modules/write/node_modules/mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "dev": true, - "dependencies": { - "minimist": "^1.2.5" - }, - "bin": { - "mkdirp": "bin/cmd.js" - } - }, - "node_modules/ws": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/ws/-/ws-3.3.3.tgz", - "integrity": "sha512-nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA==", - "dependencies": { - "async-limiter": "~1.0.0", - "safe-buffer": "~5.1.0", - "ultron": "~1.1.0" - } - }, - "node_modules/ws/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, - "node_modules/xdg-basedir": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-3.0.0.tgz", - "integrity": "sha1-SWsswQnsqNus/i3HK2A8F8WHCtQ=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/xhr": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/xhr/-/xhr-2.5.0.tgz", - "integrity": "sha512-4nlO/14t3BNUZRXIXfXe+3N6w3s1KoxcJUUURctd64BLRe67E4gRwp4PjywtDY72fXpZ1y6Ch0VZQRY/gMPzzQ==", - "dependencies": { - "global": "~4.3.0", - "is-function": "^1.0.1", - "parse-headers": "^2.0.0", - "xtend": "^4.0.0" - } - }, - "node_modules/xhr-request": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/xhr-request/-/xhr-request-1.1.0.tgz", - "integrity": "sha512-Y7qzEaR3FDtL3fP30k9wO/e+FBnBByZeybKOhASsGP30NIkRAAkKD/sCnLvgEfAIEC1rcmK7YG8f4oEnIrrWzA==", - "dependencies": { - "buffer-to-arraybuffer": "^0.0.5", - "object-assign": "^4.1.1", - "query-string": "^5.0.1", - "simple-get": "^2.7.0", - "timed-out": "^4.0.1", - "url-set-query": "^1.0.0", - "xhr": "^2.0.4" - } - }, - "node_modules/xhr-request-promise": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/xhr-request-promise/-/xhr-request-promise-0.1.3.tgz", - "integrity": "sha512-YUBytBsuwgitWtdRzXDDkWAXzhdGB8bYm0sSzMPZT7Z2MBjMSTHFsyCT1yCRATY+XC69DUrQraRAEgcoCRaIPg==", - "dependencies": { - "xhr-request": "^1.1.0" - } - }, - "node_modules/xhr2-cookies": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/xhr2-cookies/-/xhr2-cookies-1.1.0.tgz", - "integrity": "sha1-fXdEnQmZGX8VXLc7I99yUF7YnUg=", - "dependencies": { - "cookiejar": "^2.1.1" - } - }, - "node_modules/xmlhttprequest": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/xmlhttprequest/-/xmlhttprequest-1.8.0.tgz", - "integrity": "sha1-Z/4HXFwk/vOfnWX197f+dRcZaPw=", - "dev": true, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/xss": { - "version": "1.0.14", - "resolved": "https://registry.npmjs.org/xss/-/xss-1.0.14.tgz", - "integrity": "sha512-og7TEJhXvn1a7kzZGQ7ETjdQVS2UfZyTlsEdDOqvQF7GoxNfY+0YLCzBy1kPdsDDx4QuNAonQPddpsn6Xl/7sw==", - "dev": true, - "optional": true, - "dependencies": { - "commander": "^2.20.3", - "cssfilter": "0.0.10" - }, - "bin": { - "xss": "bin/xss" - }, - "engines": { - "node": ">= 0.10.0" - } - }, - "node_modules/xstream": { - "version": "11.14.0", - "resolved": "https://registry.npmjs.org/xstream/-/xstream-11.14.0.tgz", - "integrity": "sha512-1bLb+kKKtKPbgTK6i/BaoAn03g47PpFstlbe1BA+y3pNS/LfvcaghS5BFf9+EE1J+KwSQsEpfJvFN5GqFtiNmw==", - "dependencies": { - "globalthis": "^1.0.1", - "symbol-observable": "^2.0.3" - } - }, - "node_modules/xstream/node_modules/symbol-observable": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-2.0.3.tgz", - "integrity": "sha512-sQV7phh2WCYAn81oAkakC5qjq2Ml0g8ozqz03wOGnx9dDlG1de6yrF+0RAzSJD8fPUow3PTSMf2SAbOGxb93BA==", - "engines": { - "node": ">=0.10" - } - }, - "node_modules/xtend": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", - "engines": { - "node": ">=0.4" - } - }, - "node_modules/y18n": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", - "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==" - }, - "node_modules/yaeti": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/yaeti/-/yaeti-0.0.6.tgz", - "integrity": "sha1-8m9ITXJoTPQr7ft2lwqhYI+/lXc=", - "engines": { - "node": ">=0.10.32" - } - }, - "node_modules/yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" - }, - "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/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": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - } - }, - "node_modules/yargs-parser/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/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" - } - }, - "node_modules/yargs-unparser/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/yargs-unparser/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/yargs/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": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/yauzl": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", - "integrity": "sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=", - "dev": true, - "dependencies": { - "buffer-crc32": "~0.2.3", - "fd-slicer": "~1.1.0" - } - }, - "node_modules/yn": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", - "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "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==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/zen-observable": { - "version": "0.8.15", - "resolved": "https://registry.npmjs.org/zen-observable/-/zen-observable-0.8.15.tgz", - "integrity": "sha512-PQ2PC7R9rslx84ndNBZB/Dkv8V8fZEpk83RLgXtYd0fwUgEjseMn1Dgajh2x6S8QbZAFa9p2qVCEuYZNgve0dQ==" - } - }, - "dependencies": { - "@apollo/client": { - "version": "3.7.10", - "resolved": "https://registry.npmjs.org/@apollo/client/-/client-3.7.10.tgz", - "integrity": "sha512-/k1MfrqPKYiPNdHcOzdxg9cEx96vhAGxAcSorzfBvV29XtFQcYW2cPNQOTjK/fpSMtqVo8UNmu5vwQAWD1gfCg==", - "requires": { - "@graphql-typed-document-node/core": "^3.1.1", - "@wry/context": "^0.7.0", - "@wry/equality": "^0.5.0", - "@wry/trie": "^0.3.0", - "graphql-tag": "^2.12.6", - "hoist-non-react-statics": "^3.3.2", - "optimism": "^0.16.1", - "prop-types": "^15.7.2", - "response-iterator": "^0.2.6", - "symbol-observable": "^4.0.0", - "ts-invariant": "^0.10.3", - "tslib": "^2.3.0", - "zen-observable-ts": "^1.2.5" - }, - "dependencies": { - "@wry/equality": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/@wry/equality/-/equality-0.5.3.tgz", - "integrity": "sha512-avR+UXdSrsF2v8vIqIgmeTY0UR91UT+IyablCyKe/uk22uOJ8fusKZnH9JH9e1/EtLeNJBtagNmL3eJdnOV53g==", - "requires": { - "tslib": "^2.3.0" - } - }, - "symbol-observable": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-4.0.0.tgz", - "integrity": "sha512-b19dMThMV4HVFynSAM1++gBHAbk2Tc/osgLIBZMKsyqh34jb2e8Os7T6ZW/Bt3pJFdBTd2JwAnAAEQV7rSNvcQ==" - }, - "ts-invariant": { - "version": "0.10.3", - "resolved": "https://registry.npmjs.org/ts-invariant/-/ts-invariant-0.10.3.tgz", - "integrity": "sha512-uivwYcQaxAucv1CzRp2n/QdYPo4ILf9VXgH19zEIjFx2EJufV16P0JtJVpYHy89DItG6Kwj2oIUjrcK5au+4tQ==", - "requires": { - "tslib": "^2.1.0" - } - }, - "tslib": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz", - "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==" - }, - "zen-observable-ts": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/zen-observable-ts/-/zen-observable-ts-1.2.5.tgz", - "integrity": "sha512-QZWQekv6iB72Naeake9hS1KxHlotfRpe+WGNbNx5/ta+R3DNjVO2bswf63gXlWDcs+EMd7XY8HfVQyP1X6T4Zg==", - "requires": { - "zen-observable": "0.8.15" - } - } - } - }, - "@apollo/protobufjs": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/@apollo/protobufjs/-/protobufjs-1.2.7.tgz", - "integrity": "sha512-Lahx5zntHPZia35myYDBRuF58tlwPskwHc5CWBZC/4bMKB6siTBWwtMrkqXcsNwQiFSzSx5hKdRPUmemrEp3Gg==", - "dev": true, - "optional": true, - "requires": { - "@protobufjs/aspromise": "^1.1.2", - "@protobufjs/base64": "^1.1.2", - "@protobufjs/codegen": "^2.0.4", - "@protobufjs/eventemitter": "^1.1.0", - "@protobufjs/fetch": "^1.1.0", - "@protobufjs/float": "^1.0.2", - "@protobufjs/inquire": "^1.1.0", - "@protobufjs/path": "^1.1.2", - "@protobufjs/pool": "^1.1.0", - "@protobufjs/utf8": "^1.1.0", - "@types/long": "^4.0.0", - "long": "^4.0.0" - } - }, - "@apollo/usage-reporting-protobuf": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/@apollo/usage-reporting-protobuf/-/usage-reporting-protobuf-4.1.0.tgz", - "integrity": "sha512-hXouMuw5pQVkzi8dgMybmr6Y11+eRmMQVoB5TF0HyTwAg9SOq/v3OCuiYqcVUKdBcskU9Msp+XvjAk0GKpWCwQ==", - "dev": true, - "optional": true, - "requires": { - "@apollo/protobufjs": "1.2.7" - } - }, - "@apollo/utils.dropunuseddefinitions": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@apollo/utils.dropunuseddefinitions/-/utils.dropunuseddefinitions-1.1.0.tgz", - "integrity": "sha512-jU1XjMr6ec9pPoL+BFWzEPW7VHHulVdGKMkPAMiCigpVIT11VmCbnij0bWob8uS3ODJ65tZLYKAh/55vLw2rbg==", - "dev": true, - "optional": true, - "requires": {} - }, - "@apollo/utils.keyvaluecache": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@apollo/utils.keyvaluecache/-/utils.keyvaluecache-1.0.2.tgz", - "integrity": "sha512-p7PVdLPMnPzmXSQVEsy27cYEjVON+SH/Wb7COyW3rQN8+wJgT1nv9jZouYtztWW8ZgTkii5T6tC9qfoDREd4mg==", - "dev": true, - "optional": true, - "requires": { - "@apollo/utils.logger": "^1.0.0", - "lru-cache": "7.10.1 - 7.13.1" - }, - "dependencies": { - "lru-cache": { - "version": "7.13.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.13.1.tgz", - "integrity": "sha512-CHqbAq7NFlW3RSnoWXLJBxCWaZVBrfa9UEHId2M3AW8iEBurbqduNexEUCGc3SHc6iCYXNJCDi903LajSVAEPQ==", - "dev": true, - "optional": true - } - } - }, - "@apollo/utils.logger": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@apollo/utils.logger/-/utils.logger-1.0.1.tgz", - "integrity": "sha512-XdlzoY7fYNK4OIcvMD2G94RoFZbzTQaNP0jozmqqMudmaGo2I/2Jx71xlDJ801mWA/mbYRihyaw6KJii7k5RVA==", - "dev": true, - "optional": true - }, - "@apollo/utils.printwithreducedwhitespace": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@apollo/utils.printwithreducedwhitespace/-/utils.printwithreducedwhitespace-1.1.0.tgz", - "integrity": "sha512-GfFSkAv3n1toDZ4V6u2d7L4xMwLA+lv+6hqXicMN9KELSJ9yy9RzuEXaX73c/Ry+GzRsBy/fdSUGayGqdHfT2Q==", - "dev": true, - "optional": true, - "requires": {} - }, - "@apollo/utils.removealiases": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@apollo/utils.removealiases/-/utils.removealiases-1.0.0.tgz", - "integrity": "sha512-6cM8sEOJW2LaGjL/0vHV0GtRaSekrPQR4DiywaApQlL9EdROASZU5PsQibe2MWeZCOhNrPRuHh4wDMwPsWTn8A==", - "dev": true, - "optional": true, - "requires": {} - }, - "@apollo/utils.sortast": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@apollo/utils.sortast/-/utils.sortast-1.1.0.tgz", - "integrity": "sha512-VPlTsmUnOwzPK5yGZENN069y6uUHgeiSlpEhRnLFYwYNoJHsuJq2vXVwIaSmts015WTPa2fpz1inkLYByeuRQA==", - "dev": true, - "optional": true, - "requires": { - "lodash.sortby": "^4.7.0" - } - }, - "@apollo/utils.stripsensitiveliterals": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@apollo/utils.stripsensitiveliterals/-/utils.stripsensitiveliterals-1.2.0.tgz", - "integrity": "sha512-E41rDUzkz/cdikM5147d8nfCFVKovXxKBcjvLEQ7bjZm/cg9zEcXvS6vFY8ugTubI3fn6zoqo0CyU8zT+BGP9w==", - "dev": true, - "optional": true, - "requires": {} - }, - "@apollo/utils.usagereporting": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@apollo/utils.usagereporting/-/utils.usagereporting-1.0.1.tgz", - "integrity": "sha512-6dk+0hZlnDbahDBB2mP/PZ5ybrtCJdLMbeNJD+TJpKyZmSY6bA3SjI8Cr2EM9QA+AdziywuWg+SgbWUF3/zQqQ==", - "dev": true, - "optional": true, - "requires": { - "@apollo/usage-reporting-protobuf": "^4.0.0", - "@apollo/utils.dropunuseddefinitions": "^1.1.0", - "@apollo/utils.printwithreducedwhitespace": "^1.1.0", - "@apollo/utils.removealiases": "1.0.0", - "@apollo/utils.sortast": "^1.1.0", - "@apollo/utils.stripsensitiveliterals": "^1.2.0" - } - }, - "@apollographql/apollo-tools": { - "version": "0.5.4", - "resolved": "https://registry.npmjs.org/@apollographql/apollo-tools/-/apollo-tools-0.5.4.tgz", - "integrity": "sha512-shM3q7rUbNyXVVRkQJQseXv6bnYM3BUma/eZhwXR4xsuM+bqWnJKvW7SAfRjP7LuSCocrexa5AXhjjawNHrIlw==", - "dev": true, - "optional": true, - "requires": {} - }, - "@apollographql/graphql-playground-html": { - "version": "1.6.29", - "resolved": "https://registry.npmjs.org/@apollographql/graphql-playground-html/-/graphql-playground-html-1.6.29.tgz", - "integrity": "sha512-xCcXpoz52rI4ksJSdOCxeOCn2DLocxwHf9dVT/Q90Pte1LX+LY+91SFtJF3KXVHH8kEin+g1KKCQPKBjZJfWNA==", - "dev": true, - "optional": true, - "requires": { - "xss": "^1.0.8" - } - }, - "@babel/code-frame": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.7.tgz", - "integrity": "sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==", - "requires": { - "@babel/highlight": "^7.16.7" - } - }, - "@babel/compat-data": { - "version": "7.14.0", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.14.0.tgz", - "integrity": "sha512-vu9V3uMM/1o5Hl5OekMUowo3FqXLJSw+s+66nt0fSWVWTtmosdzn45JHOB3cPtZoe6CTBDzvSw0RdOY85Q37+Q==" - }, - "@babel/core": { - "version": "7.14.2", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.14.2.tgz", - "integrity": "sha512-OgC1mON+l4U4B4wiohJlQNUU3H73mpTyYY3j/c8U9dr9UagGGSm+WFpzjy/YLdoyjiG++c1kIDgxCo/mLwQJeQ==", - "peer": true, - "requires": { - "@babel/code-frame": "^7.12.13", - "@babel/generator": "^7.14.2", - "@babel/helper-compilation-targets": "^7.13.16", - "@babel/helper-module-transforms": "^7.14.2", - "@babel/helpers": "^7.14.0", - "@babel/parser": "^7.14.2", - "@babel/template": "^7.12.13", - "@babel/traverse": "^7.14.2", - "@babel/types": "^7.14.2", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.1.2", - "semver": "^6.3.0", - "source-map": "^0.5.0" - }, - "dependencies": { - "@babel/traverse": { - "version": "7.14.2", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.14.2.tgz", - "integrity": "sha512-TsdRgvBFHMyHOOzcP9S6QU0QQtjxlRpEYOy3mcCO5RgmC305ki42aSAmfZEMSSYBla2oZ9BMqYlncBaKmD/7iA==", - "peer": true, - "requires": { - "@babel/code-frame": "^7.12.13", - "@babel/generator": "^7.14.2", - "@babel/helper-function-name": "^7.14.2", - "@babel/helper-split-export-declaration": "^7.12.13", - "@babel/parser": "^7.14.2", - "@babel/types": "^7.14.2", - "debug": "^4.1.0", - "globals": "^11.1.0" - } - }, - "@babel/types": { - "version": "7.14.2", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.14.2.tgz", - "integrity": "sha512-SdjAG/3DikRHpUOjxZgnkbR11xUlyDMUFJdvnIgZEE16mqmY0BINMmc4//JMJglEmn6i7sq6p+mGrFWyZ98EEw==", - "peer": true, - "requires": { - "@babel/helper-validator-identifier": "^7.14.0", - "to-fast-properties": "^2.0.0" - } - }, - "debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", - "peer": true, - "requires": { - "ms": "2.1.2" - } - }, - "globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "peer": true - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "peer": true - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "peer": true - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "peer": true - } - } - }, - "@babel/generator": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.16.8.tgz", - "integrity": "sha512-1ojZwE9+lOXzcWdWmO6TbUzDfqLD39CmEhN8+2cX9XkDo5yW1OpgfejfliysR2AWLpMamTiOiAp/mtroaymhpw==", - "requires": { - "@babel/types": "^7.16.8", - "jsesc": "^2.5.1", - "source-map": "^0.5.0" - }, - "dependencies": { - "@babel/types": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.16.8.tgz", - "integrity": "sha512-smN2DQc5s4M7fntyjGtyIPbRJv6wW4rU/94fmYJ7PKQuZkC0qGMHXJbg6sNGt12JmVr4k5YaptI/XtiLJBnmIg==", - "requires": { - "@babel/helper-validator-identifier": "^7.16.7", - "to-fast-properties": "^2.0.0" - } - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" - } - } - }, - "@babel/helper-compilation-targets": { - "version": "7.13.16", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.13.16.tgz", - "integrity": "sha512-3gmkYIrpqsLlieFwjkGgLaSHmhnvlAYzZLlYVjlW+QwI+1zE17kGxuJGmIqDQdYp56XdmGeD+Bswx0UTyG18xA==", - "requires": { - "@babel/compat-data": "^7.13.15", - "@babel/helper-validator-option": "^7.12.17", - "browserslist": "^4.14.5", - "semver": "^6.3.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" - } - } - }, - "@babel/helper-define-polyfill-provider": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.0.tgz", - "integrity": "sha512-7hfT8lUljl/tM3h+izTX/pO3W3frz2ok6Pk+gzys8iJqDfZrZy2pXjRTZAvG2YmfHun1X4q8/UZRLatMfqc5Tg==", - "requires": { - "@babel/helper-compilation-targets": "^7.13.0", - "@babel/helper-module-imports": "^7.12.13", - "@babel/helper-plugin-utils": "^7.13.0", - "@babel/traverse": "^7.13.0", - "debug": "^4.1.1", - "lodash.debounce": "^4.0.8", - "resolve": "^1.14.2", - "semver": "^6.1.2" - }, - "dependencies": { - "@babel/traverse": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.16.8.tgz", - "integrity": "sha512-xe+H7JlvKsDQwXRsBhSnq1/+9c+LlQcCK3Tn/l5sbx02HYns/cn7ibp9+RV1sIUqu7hKg91NWsgHurO9dowITQ==", - "requires": { - "@babel/code-frame": "^7.16.7", - "@babel/generator": "^7.16.8", - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-function-name": "^7.16.7", - "@babel/helper-hoist-variables": "^7.16.7", - "@babel/helper-split-export-declaration": "^7.16.7", - "@babel/parser": "^7.16.8", - "@babel/types": "^7.16.8", - "debug": "^4.1.0", - "globals": "^11.1.0" - } - }, - "@babel/types": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.16.8.tgz", - "integrity": "sha512-smN2DQc5s4M7fntyjGtyIPbRJv6wW4rU/94fmYJ7PKQuZkC0qGMHXJbg6sNGt12JmVr4k5YaptI/XtiLJBnmIg==", - "requires": { - "@babel/helper-validator-identifier": "^7.16.7", - "to-fast-properties": "^2.0.0" - } - }, - "debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", - "requires": { - "ms": "2.1.2" - } - }, - "globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==" - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" - } - } - }, - "@babel/helper-environment-visitor": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.16.7.tgz", - "integrity": "sha512-SLLb0AAn6PkUeAfKJCCOl9e1R53pQlGAfc4y4XuMRZfqeMYLE0dM1LMhqbGAlGQY0lfw5/ohoYWAe9V1yibRag==", - "requires": { - "@babel/types": "^7.16.7" - }, - "dependencies": { - "@babel/types": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.16.8.tgz", - "integrity": "sha512-smN2DQc5s4M7fntyjGtyIPbRJv6wW4rU/94fmYJ7PKQuZkC0qGMHXJbg6sNGt12JmVr4k5YaptI/XtiLJBnmIg==", - "requires": { - "@babel/helper-validator-identifier": "^7.16.7", - "to-fast-properties": "^2.0.0" - } - } - } - }, - "@babel/helper-function-name": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.16.7.tgz", - "integrity": "sha512-QfDfEnIUyyBSR3HtrtGECuZ6DAyCkYFp7GHl75vFtTnn6pjKeK0T1DB5lLkFvBea8MdaiUABx3osbgLyInoejA==", - "requires": { - "@babel/helper-get-function-arity": "^7.16.7", - "@babel/template": "^7.16.7", - "@babel/types": "^7.16.7" - }, - "dependencies": { - "@babel/types": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.16.8.tgz", - "integrity": "sha512-smN2DQc5s4M7fntyjGtyIPbRJv6wW4rU/94fmYJ7PKQuZkC0qGMHXJbg6sNGt12JmVr4k5YaptI/XtiLJBnmIg==", - "requires": { - "@babel/helper-validator-identifier": "^7.16.7", - "to-fast-properties": "^2.0.0" - } - } - } - }, - "@babel/helper-get-function-arity": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.16.7.tgz", - "integrity": "sha512-flc+RLSOBXzNzVhcLu6ujeHUrD6tANAOU5ojrRx/as+tbzf8+stUCj7+IfRRoAbEZqj/ahXEMsjhOhgeZsrnTw==", - "requires": { - "@babel/types": "^7.16.7" - }, - "dependencies": { - "@babel/types": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.16.8.tgz", - "integrity": "sha512-smN2DQc5s4M7fntyjGtyIPbRJv6wW4rU/94fmYJ7PKQuZkC0qGMHXJbg6sNGt12JmVr4k5YaptI/XtiLJBnmIg==", - "requires": { - "@babel/helper-validator-identifier": "^7.16.7", - "to-fast-properties": "^2.0.0" - } - } - } - }, - "@babel/helper-hoist-variables": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.7.tgz", - "integrity": "sha512-m04d/0Op34H5v7pbZw6pSKP7weA6lsMvfiIAMeIvkY/R4xQtBSMFEigu9QTZ2qB/9l22vsxtM8a+Q8CzD255fg==", - "requires": { - "@babel/types": "^7.16.7" - }, - "dependencies": { - "@babel/types": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.16.8.tgz", - "integrity": "sha512-smN2DQc5s4M7fntyjGtyIPbRJv6wW4rU/94fmYJ7PKQuZkC0qGMHXJbg6sNGt12JmVr4k5YaptI/XtiLJBnmIg==", - "requires": { - "@babel/helper-validator-identifier": "^7.16.7", - "to-fast-properties": "^2.0.0" - } - } - } - }, - "@babel/helper-member-expression-to-functions": { - "version": "7.13.12", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.13.12.tgz", - "integrity": "sha512-48ql1CLL59aKbU94Y88Xgb2VFy7a95ykGRbJJaaVv+LX5U8wFpLfiGXJJGUozsmA1oEh/o5Bp60Voq7ACyA/Sw==", - "peer": true, - "requires": { - "@babel/types": "^7.13.12" - }, - "dependencies": { - "@babel/types": { - "version": "7.14.2", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.14.2.tgz", - "integrity": "sha512-SdjAG/3DikRHpUOjxZgnkbR11xUlyDMUFJdvnIgZEE16mqmY0BINMmc4//JMJglEmn6i7sq6p+mGrFWyZ98EEw==", - "peer": true, - "requires": { - "@babel/helper-validator-identifier": "^7.14.0", - "to-fast-properties": "^2.0.0" - } - } - } - }, - "@babel/helper-module-imports": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.16.7.tgz", - "integrity": "sha512-LVtS6TqjJHFc+nYeITRo6VLXve70xmq7wPhWTqDJusJEgGmkAACWwMiTNrvfoQo6hEhFwAIixNkvB0jPXDL8Wg==", - "requires": { - "@babel/types": "^7.16.7" - }, - "dependencies": { - "@babel/types": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.16.8.tgz", - "integrity": "sha512-smN2DQc5s4M7fntyjGtyIPbRJv6wW4rU/94fmYJ7PKQuZkC0qGMHXJbg6sNGt12JmVr4k5YaptI/XtiLJBnmIg==", - "requires": { - "@babel/helper-validator-identifier": "^7.16.7", - "to-fast-properties": "^2.0.0" - } - } - } - }, - "@babel/helper-module-transforms": { - "version": "7.14.2", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.14.2.tgz", - "integrity": "sha512-OznJUda/soKXv0XhpvzGWDnml4Qnwp16GN+D/kZIdLsWoHj05kyu8Rm5kXmMef+rVJZ0+4pSGLkeixdqNUATDA==", - "peer": true, - "requires": { - "@babel/helper-module-imports": "^7.13.12", - "@babel/helper-replace-supers": "^7.13.12", - "@babel/helper-simple-access": "^7.13.12", - "@babel/helper-split-export-declaration": "^7.12.13", - "@babel/helper-validator-identifier": "^7.14.0", - "@babel/template": "^7.12.13", - "@babel/traverse": "^7.14.2", - "@babel/types": "^7.14.2" - }, - "dependencies": { - "@babel/traverse": { - "version": "7.14.2", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.14.2.tgz", - "integrity": "sha512-TsdRgvBFHMyHOOzcP9S6QU0QQtjxlRpEYOy3mcCO5RgmC305ki42aSAmfZEMSSYBla2oZ9BMqYlncBaKmD/7iA==", - "peer": true, - "requires": { - "@babel/code-frame": "^7.12.13", - "@babel/generator": "^7.14.2", - "@babel/helper-function-name": "^7.14.2", - "@babel/helper-split-export-declaration": "^7.12.13", - "@babel/parser": "^7.14.2", - "@babel/types": "^7.14.2", - "debug": "^4.1.0", - "globals": "^11.1.0" - } - }, - "@babel/types": { - "version": "7.14.2", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.14.2.tgz", - "integrity": "sha512-SdjAG/3DikRHpUOjxZgnkbR11xUlyDMUFJdvnIgZEE16mqmY0BINMmc4//JMJglEmn6i7sq6p+mGrFWyZ98EEw==", - "peer": true, - "requires": { - "@babel/helper-validator-identifier": "^7.14.0", - "to-fast-properties": "^2.0.0" - } - }, - "debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", - "peer": true, - "requires": { - "ms": "2.1.2" - } - }, - "globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "peer": true - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "peer": true - } - } - }, - "@babel/helper-optimise-call-expression": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.12.13.tgz", - "integrity": "sha512-BdWQhoVJkp6nVjB7nkFWcn43dkprYauqtk++Py2eaf/GRDFm5BxRqEIZCiHlZUGAVmtwKcsVL1dC68WmzeFmiA==", - "peer": true, - "requires": { - "@babel/types": "^7.12.13" - } - }, - "@babel/helper-plugin-utils": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz", - "integrity": "sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA==" - }, - "@babel/helper-replace-supers": { - "version": "7.13.12", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.13.12.tgz", - "integrity": "sha512-Gz1eiX+4yDO8mT+heB94aLVNCL+rbuT2xy4YfyNqu8F+OI6vMvJK891qGBTqL9Uc8wxEvRW92Id6G7sDen3fFw==", - "peer": true, - "requires": { - "@babel/helper-member-expression-to-functions": "^7.13.12", - "@babel/helper-optimise-call-expression": "^7.12.13", - "@babel/traverse": "^7.13.0", - "@babel/types": "^7.13.12" - }, - "dependencies": { - "@babel/traverse": { - "version": "7.14.2", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.14.2.tgz", - "integrity": "sha512-TsdRgvBFHMyHOOzcP9S6QU0QQtjxlRpEYOy3mcCO5RgmC305ki42aSAmfZEMSSYBla2oZ9BMqYlncBaKmD/7iA==", - "peer": true, - "requires": { - "@babel/code-frame": "^7.12.13", - "@babel/generator": "^7.14.2", - "@babel/helper-function-name": "^7.14.2", - "@babel/helper-split-export-declaration": "^7.12.13", - "@babel/parser": "^7.14.2", - "@babel/types": "^7.14.2", - "debug": "^4.1.0", - "globals": "^11.1.0" - } - }, - "@babel/types": { - "version": "7.14.2", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.14.2.tgz", - "integrity": "sha512-SdjAG/3DikRHpUOjxZgnkbR11xUlyDMUFJdvnIgZEE16mqmY0BINMmc4//JMJglEmn6i7sq6p+mGrFWyZ98EEw==", - "peer": true, - "requires": { - "@babel/helper-validator-identifier": "^7.14.0", - "to-fast-properties": "^2.0.0" - } - }, - "debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", - "peer": true, - "requires": { - "ms": "2.1.2" - } - }, - "globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "peer": true - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "peer": true - } - } - }, - "@babel/helper-simple-access": { - "version": "7.13.12", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.13.12.tgz", - "integrity": "sha512-7FEjbrx5SL9cWvXioDbnlYTppcZGuCY6ow3/D5vMggb2Ywgu4dMrpTJX0JdQAIcRRUElOIxF3yEooa9gUb9ZbA==", - "peer": true, - "requires": { - "@babel/types": "^7.13.12" - }, - "dependencies": { - "@babel/types": { - "version": "7.14.2", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.14.2.tgz", - "integrity": "sha512-SdjAG/3DikRHpUOjxZgnkbR11xUlyDMUFJdvnIgZEE16mqmY0BINMmc4//JMJglEmn6i7sq6p+mGrFWyZ98EEw==", - "peer": true, - "requires": { - "@babel/helper-validator-identifier": "^7.14.0", - "to-fast-properties": "^2.0.0" - } - } - } - }, - "@babel/helper-split-export-declaration": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.7.tgz", - "integrity": "sha512-xbWoy/PFoxSWazIToT9Sif+jJTlrMcndIsaOKvTA6u7QEo7ilkRZpjew18/W3c7nm8fXdUDXh02VXTbZ0pGDNw==", - "requires": { - "@babel/types": "^7.16.7" - }, - "dependencies": { - "@babel/types": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.16.8.tgz", - "integrity": "sha512-smN2DQc5s4M7fntyjGtyIPbRJv6wW4rU/94fmYJ7PKQuZkC0qGMHXJbg6sNGt12JmVr4k5YaptI/XtiLJBnmIg==", - "requires": { - "@babel/helper-validator-identifier": "^7.16.7", - "to-fast-properties": "^2.0.0" - } - } - } - }, - "@babel/helper-validator-identifier": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz", - "integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==" - }, - "@babel/helper-validator-option": { - "version": "7.12.17", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.12.17.tgz", - "integrity": "sha512-TopkMDmLzq8ngChwRlyjR6raKD6gMSae4JdYDB8bByKreQgG0RBTuKe9LRxW3wFtUnjxOPRKBDwEH6Mg5KeDfw==" - }, - "@babel/helpers": { - "version": "7.14.0", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.14.0.tgz", - "integrity": "sha512-+ufuXprtQ1D1iZTO/K9+EBRn+qPWMJjZSw/S0KlFrxCw4tkrzv9grgpDHkY9MeQTjTY8i2sp7Jep8DfU6tN9Mg==", - "peer": true, - "requires": { - "@babel/template": "^7.12.13", - "@babel/traverse": "^7.14.0", - "@babel/types": "^7.14.0" - }, - "dependencies": { - "@babel/traverse": { - "version": "7.14.2", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.14.2.tgz", - "integrity": "sha512-TsdRgvBFHMyHOOzcP9S6QU0QQtjxlRpEYOy3mcCO5RgmC305ki42aSAmfZEMSSYBla2oZ9BMqYlncBaKmD/7iA==", - "peer": true, - "requires": { - "@babel/code-frame": "^7.12.13", - "@babel/generator": "^7.14.2", - "@babel/helper-function-name": "^7.14.2", - "@babel/helper-split-export-declaration": "^7.12.13", - "@babel/parser": "^7.14.2", - "@babel/types": "^7.14.2", - "debug": "^4.1.0", - "globals": "^11.1.0" - } - }, - "@babel/types": { - "version": "7.14.2", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.14.2.tgz", - "integrity": "sha512-SdjAG/3DikRHpUOjxZgnkbR11xUlyDMUFJdvnIgZEE16mqmY0BINMmc4//JMJglEmn6i7sq6p+mGrFWyZ98EEw==", - "peer": true, - "requires": { - "@babel/helper-validator-identifier": "^7.14.0", - "to-fast-properties": "^2.0.0" - } - }, - "debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", - "peer": true, - "requires": { - "ms": "2.1.2" - } - }, - "globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "peer": true - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "peer": true - } - } - }, - "@babel/highlight": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.16.7.tgz", - "integrity": "sha512-aKpPMfLvGO3Q97V0qhw/V2SWNWlwfJknuwAunU7wZLSfrM4xTBvg7E5opUVi1kJTBKihE38CPg4nBiqX83PWYw==", - "requires": { - "@babel/helper-validator-identifier": "^7.16.7", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - } - }, - "@babel/parser": { - "version": "7.17.10", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.17.10.tgz", - "integrity": "sha512-n2Q6i+fnJqzOaq2VkdXxy2TCPCWQZHiCo0XqmrCvDWcZQKRyZzYi4Z0yxlBuN0w+r2ZHmre+Q087DSrw3pbJDQ==" - }, - "@babel/plugin-transform-runtime": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.16.8.tgz", - "integrity": "sha512-6Kg2XHPFnIarNweZxmzbgYnnWsXxkx9WQUVk2sksBRL80lBC1RAQV3wQagWxdCHiYHqPN+oenwNIuttlYgIbQQ==", - "requires": { - "@babel/helper-module-imports": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "babel-plugin-polyfill-corejs2": "^0.3.0", - "babel-plugin-polyfill-corejs3": "^0.5.0", - "babel-plugin-polyfill-regenerator": "^0.3.0", - "semver": "^6.3.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" - } - } - }, - "@babel/runtime": { - "version": "7.20.13", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.20.13.tgz", - "integrity": "sha512-gt3PKXs0DBoL9xCvOIIZ2NEqAGZqHjAnmVbfQtB620V0uReIQutpel14KcneZuer7UioY8ALKZ7iocavvzTNFA==", - "requires": { - "regenerator-runtime": "^0.13.11" - } - }, - "@babel/template": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.16.7.tgz", - "integrity": "sha512-I8j/x8kHUrbYRTUxXrrMbfCa7jxkE7tZre39x3kjr9hvI82cK1FfqLygotcWN5kdPGWcLdWMHpSBavse5tWw3w==", - "requires": { - "@babel/code-frame": "^7.16.7", - "@babel/parser": "^7.16.7", - "@babel/types": "^7.16.7" - }, - "dependencies": { - "@babel/types": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.16.8.tgz", - "integrity": "sha512-smN2DQc5s4M7fntyjGtyIPbRJv6wW4rU/94fmYJ7PKQuZkC0qGMHXJbg6sNGt12JmVr4k5YaptI/XtiLJBnmIg==", - "requires": { - "@babel/helper-validator-identifier": "^7.16.7", - "to-fast-properties": "^2.0.0" - } - } - } - }, - "@babel/types": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.13.tgz", - "integrity": "sha512-oKrdZTld2im1z8bDwTOQvUbxKwE+854zc16qWZQlcTqMN00pWxHQ4ZeOq0yDMnisOpRykH2/5Qqcrk/OlbAjiQ==", - "peer": true, - "requires": { - "@babel/helper-validator-identifier": "^7.12.11", - "lodash": "^4.17.19", - "to-fast-properties": "^2.0.0" - } - }, - "@certusone/wormhole-sdk": { - "version": "0.9.11", - "resolved": "https://registry.npmjs.org/@certusone/wormhole-sdk/-/wormhole-sdk-0.9.11.tgz", - "integrity": "sha512-HpqlgNle09E6v8EhEBSjBe9MexO7av4cznM4kRR4CYCKTLfwqT75LQRYuSnCJgxrpwNiVRDVJaPWRi7ZEgIipw==", - "requires": { - "@certusone/wormhole-sdk-proto-web": "0.0.6", - "@certusone/wormhole-sdk-wasm": "^0.0.1", - "@coral-xyz/borsh": "0.2.6", - "@injectivelabs/networks": "^1.0.73", - "@injectivelabs/sdk-ts": "^1.0.368", - "@injectivelabs/utils": "^1.0.63", - "@project-serum/anchor": "^0.25.0", - "@solana/spl-token": "^0.3.5", - "@solana/web3.js": "^1.66.2", - "@terra-money/terra.js": "^3.1.3", - "@xpla/xpla.js": "^0.2.1", - "algosdk": "^1.15.0", - "aptos": "1.5.0", - "axios": "^0.24.0", - "bech32": "^2.0.0", - "binary-parser": "^2.2.1", - "bs58": "^4.0.1", - "elliptic": "^6.5.4", - "js-base64": "^3.6.1", - "near-api-js": "^1.0.0" - }, - "dependencies": { - "axios": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.24.0.tgz", - "integrity": "sha512-Q6cWsys88HoPgAaFAVUb0WpPk0O8iTeisR9IMqy9G8AbO4NlpVknrnQS03zzF9PGAWgO3cgletO3VjV/P7VztA==", - "requires": { - "follow-redirects": "^1.14.4" - } - }, - "follow-redirects": { - "version": "1.15.2", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", - "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==" - } - } - }, - "@certusone/wormhole-sdk-proto-web": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/@certusone/wormhole-sdk-proto-web/-/wormhole-sdk-proto-web-0.0.6.tgz", - "integrity": "sha512-LTyjsrWryefx5WmkoBP6FQ2EjLxhMExAGxLkloHUhufVQZdrbGh0htBBUviP+HaDSJBCMPMtulNFwkBJV6muqQ==", - "requires": { - "@improbable-eng/grpc-web": "^0.15.0", - "protobufjs": "^7.0.0", - "rxjs": "^7.5.6" - }, - "dependencies": { - "long": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/long/-/long-5.2.1.tgz", - "integrity": "sha512-GKSNGeNAtw8IryjjkhZxuKB3JzlcLTwjtiQCHKvqQet81I93kXslhDQruGI/QsddO83mcDToBVy7GqGS/zYf/A==" - }, - "protobufjs": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.2.3.tgz", - "integrity": "sha512-TtpvOqwB5Gdz/PQmOjgsrGH1nHjAQVCN7JG4A6r1sXRWESL5rNMAiRcBQlCAdKxZcAbstExQePYG8xof/JVRgg==", - "requires": { - "@protobufjs/aspromise": "^1.1.2", - "@protobufjs/base64": "^1.1.2", - "@protobufjs/codegen": "^2.0.4", - "@protobufjs/eventemitter": "^1.1.0", - "@protobufjs/fetch": "^1.1.0", - "@protobufjs/float": "^1.0.2", - "@protobufjs/inquire": "^1.1.0", - "@protobufjs/path": "^1.1.2", - "@protobufjs/pool": "^1.1.0", - "@protobufjs/utf8": "^1.1.0", - "@types/node": ">=13.7.0", - "long": "^5.0.0" - } - }, - "rxjs": { - "version": "7.8.0", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.0.tgz", - "integrity": "sha512-F2+gxDshqmIub1KdvZkaEfGDwLNpPvk9Fs6LD/MyQxNgMds/WH9OdDDXOmxUZpME+iSK3rQCctkL0DYyytUqMg==", - "requires": { - "tslib": "^2.1.0" - } - }, - "tslib": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz", - "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==" - } - } - }, - "@certusone/wormhole-sdk-wasm": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/@certusone/wormhole-sdk-wasm/-/wormhole-sdk-wasm-0.0.1.tgz", - "integrity": "sha512-LdIwLhOyr4pPs2jqYubqC7d4UkqYBX0EG/ppspQlW3qlVE0LZRMrH6oVzzLMyHtV0Rw7O9sIKzORW/T3mrJv2w==", - "requires": { - "@types/long": "^4.0.2", - "@types/node": "^18.0.3" - } - }, - "@chainsafe/truffle-plugin-abigen": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/@chainsafe/truffle-plugin-abigen/-/truffle-plugin-abigen-0.0.1.tgz", - "integrity": "sha512-/8wPXE2HCEdngSQCXJdjMtzpPVjjG9RGR+GwOZf4ve0o2LpOc2gPzxYvd67g6IOkI6pJwfAHoFb3L+qtc9G5pQ==", - "dev": true, - "requires": { - "cli-logger": "^0.5.40", - "eslint": "^6.8.0" - } - }, - "@classic-terra/terra.proto": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@classic-terra/terra.proto/-/terra.proto-1.1.0.tgz", - "integrity": "sha512-bYhQG5LUaGF0KPRY9hYT/HEcd1QExZPQd6zLV/rQkCe/eDxfwFRLzZHpaaAdfWoAAZjsRWqJbUCqCg7gXBbJpw==", - "requires": { - "@improbable-eng/grpc-web": "^0.14.1", - "google-protobuf": "^3.17.3", - "long": "^4.0.0", - "protobufjs": "~6.11.2" - }, - "dependencies": { - "@improbable-eng/grpc-web": { - "version": "0.14.1", - "resolved": "https://registry.npmjs.org/@improbable-eng/grpc-web/-/grpc-web-0.14.1.tgz", - "integrity": "sha512-XaIYuunepPxoiGVLLHmlnVminUGzBTnXr8Wv7khzmLWbNw4TCwJKX09GSMJlKhu/TRk6gms0ySFxewaETSBqgw==", - "requires": { - "browser-headers": "^0.4.1" - } - } - } - }, - "@confio/ics23": { - "version": "0.6.8", - "resolved": "https://registry.npmjs.org/@confio/ics23/-/ics23-0.6.8.tgz", - "integrity": "sha512-wB6uo+3A50m0sW/EWcU64xpV/8wShZ6bMTa7pF8eYsTrSkQA7oLUIJcs/wb8g4y2Oyq701BaGiO6n/ak5WXO1w==", - "requires": { - "@noble/hashes": "^1.0.0", - "protobufjs": "^6.8.8" - } - }, - "@coral-xyz/borsh": { - "version": "0.2.6", - "resolved": "https://registry.npmjs.org/@coral-xyz/borsh/-/borsh-0.2.6.tgz", - "integrity": "sha512-y6nmHw1bFcJib7sMHsQPpC8r47xhqDZVvhUdna7NUPzpSbOZG6f46N21+aXsQ2w/tG8Ggls488J/ZmwbgVmyjg==", - "requires": { - "bn.js": "^5.1.2", - "buffer-layout": "^1.2.0" - }, - "dependencies": { - "bn.js": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", - "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==" - } - } - }, - "@cosmjs/amino": { - "version": "0.29.5", - "resolved": "https://registry.npmjs.org/@cosmjs/amino/-/amino-0.29.5.tgz", - "integrity": "sha512-Qo8jpC0BiziTSUqpkNatBcwtKNhCovUnFul9SlT/74JUCdLYaeG5hxr3q1cssQt++l4LvlcpF+OUXL48XjNjLw==", - "requires": { - "@cosmjs/crypto": "^0.29.5", - "@cosmjs/encoding": "^0.29.5", - "@cosmjs/math": "^0.29.5", - "@cosmjs/utils": "^0.29.5" - } - }, - "@cosmjs/crypto": { - "version": "0.29.5", - "resolved": "https://registry.npmjs.org/@cosmjs/crypto/-/crypto-0.29.5.tgz", - "integrity": "sha512-2bKkaLGictaNL0UipQCL6C1afaisv6k8Wr/GCLx9FqiyFkh9ZgRHDyetD64ZsjnWV/N/D44s/esI+k6oPREaiQ==", - "requires": { - "@cosmjs/encoding": "^0.29.5", - "@cosmjs/math": "^0.29.5", - "@cosmjs/utils": "^0.29.5", - "@noble/hashes": "^1", - "bn.js": "^5.2.0", - "elliptic": "^6.5.4", - "libsodium-wrappers": "^0.7.6" - }, - "dependencies": { - "bn.js": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", - "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==" - } - } - }, - "@cosmjs/encoding": { - "version": "0.29.5", - "resolved": "https://registry.npmjs.org/@cosmjs/encoding/-/encoding-0.29.5.tgz", - "integrity": "sha512-G4rGl/Jg4dMCw5u6PEZHZcoHnUBlukZODHbm/wcL4Uu91fkn5jVo5cXXZcvs4VCkArVGrEj/52eUgTZCmOBGWQ==", - "requires": { - "base64-js": "^1.3.0", - "bech32": "^1.1.4", - "readonly-date": "^1.0.0" - }, - "dependencies": { - "bech32": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/bech32/-/bech32-1.1.4.tgz", - "integrity": "sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ==" - } - } - }, - "@cosmjs/json-rpc": { - "version": "0.29.5", - "resolved": "https://registry.npmjs.org/@cosmjs/json-rpc/-/json-rpc-0.29.5.tgz", - "integrity": "sha512-C78+X06l+r9xwdM1yFWIpGl03LhB9NdM1xvZpQHwgCOl0Ir/WV8pw48y3Ez2awAoUBRfTeejPe4KvrE6NoIi/w==", - "requires": { - "@cosmjs/stream": "^0.29.5", - "xstream": "^11.14.0" - } - }, - "@cosmjs/math": { - "version": "0.29.5", - "resolved": "https://registry.npmjs.org/@cosmjs/math/-/math-0.29.5.tgz", - "integrity": "sha512-2GjKcv+A9f86MAWYLUkjhw1/WpRl2R1BTb3m9qPG7lzMA7ioYff9jY5SPCfafKdxM4TIQGxXQlYGewQL16O68Q==", - "requires": { - "bn.js": "^5.2.0" - }, - "dependencies": { - "bn.js": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", - "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==" - } - } - }, - "@cosmjs/proto-signing": { - "version": "0.29.5", - "resolved": "https://registry.npmjs.org/@cosmjs/proto-signing/-/proto-signing-0.29.5.tgz", - "integrity": "sha512-QRrS7CiKaoETdgIqvi/7JC2qCwCR7lnWaUsTzh/XfRy3McLkEd+cXbKAW3cygykv7IN0VAEIhZd2lyIfT8KwNA==", - "requires": { - "@cosmjs/amino": "^0.29.5", - "@cosmjs/crypto": "^0.29.5", - "@cosmjs/encoding": "^0.29.5", - "@cosmjs/math": "^0.29.5", - "@cosmjs/utils": "^0.29.5", - "cosmjs-types": "^0.5.2", - "long": "^4.0.0" - }, - "dependencies": { - "cosmjs-types": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/cosmjs-types/-/cosmjs-types-0.5.2.tgz", - "integrity": "sha512-zxCtIJj8v3Di7s39uN4LNcN3HIE1z0B9Z0SPE8ZNQR0oSzsuSe1ACgxoFkvhkS7WBasCAFcglS11G2hyfd5tPg==", - "requires": { - "long": "^4.0.0", - "protobufjs": "~6.11.2" - } - } - } - }, - "@cosmjs/socket": { - "version": "0.29.5", - "resolved": "https://registry.npmjs.org/@cosmjs/socket/-/socket-0.29.5.tgz", - "integrity": "sha512-5VYDupIWbIXq3ftPV1LkS5Ya/T7Ol/AzWVhNxZ79hPe/mBfv1bGau/LqIYOm2zxGlgm9hBHOTmWGqNYDwr9LNQ==", - "requires": { - "@cosmjs/stream": "^0.29.5", - "isomorphic-ws": "^4.0.1", - "ws": "^7", - "xstream": "^11.14.0" - }, - "dependencies": { - "ws": { - "version": "7.5.9", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz", - "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==", - "requires": {} - } - } - }, - "@cosmjs/stargate": { - "version": "0.29.5", - "resolved": "https://registry.npmjs.org/@cosmjs/stargate/-/stargate-0.29.5.tgz", - "integrity": "sha512-hjEv8UUlJruLrYGJcUZXM/CziaINOKwfVm2BoSdUnNTMxGvY/jC1ABHKeZUYt9oXHxEJ1n9+pDqzbKc8pT0nBw==", - "requires": { - "@confio/ics23": "^0.6.8", - "@cosmjs/amino": "^0.29.5", - "@cosmjs/encoding": "^0.29.5", - "@cosmjs/math": "^0.29.5", - "@cosmjs/proto-signing": "^0.29.5", - "@cosmjs/stream": "^0.29.5", - "@cosmjs/tendermint-rpc": "^0.29.5", - "@cosmjs/utils": "^0.29.5", - "cosmjs-types": "^0.5.2", - "long": "^4.0.0", - "protobufjs": "~6.11.3", - "xstream": "^11.14.0" - }, - "dependencies": { - "cosmjs-types": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/cosmjs-types/-/cosmjs-types-0.5.2.tgz", - "integrity": "sha512-zxCtIJj8v3Di7s39uN4LNcN3HIE1z0B9Z0SPE8ZNQR0oSzsuSe1ACgxoFkvhkS7WBasCAFcglS11G2hyfd5tPg==", - "requires": { - "long": "^4.0.0", - "protobufjs": "~6.11.2" - } - }, - "protobufjs": { - "version": "6.11.3", - "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-6.11.3.tgz", - "integrity": "sha512-xL96WDdCZYdU7Slin569tFX712BxsxslWwAfAhCYjQKGTq7dAU91Lomy6nLLhh/dyGhk/YH4TwTSRxTzhuHyZg==", - "requires": { - "@protobufjs/aspromise": "^1.1.2", - "@protobufjs/base64": "^1.1.2", - "@protobufjs/codegen": "^2.0.4", - "@protobufjs/eventemitter": "^1.1.0", - "@protobufjs/fetch": "^1.1.0", - "@protobufjs/float": "^1.0.2", - "@protobufjs/inquire": "^1.1.0", - "@protobufjs/path": "^1.1.2", - "@protobufjs/pool": "^1.1.0", - "@protobufjs/utf8": "^1.1.0", - "@types/long": "^4.0.1", - "@types/node": ">=13.7.0", - "long": "^4.0.0" - } - } - } - }, - "@cosmjs/stream": { - "version": "0.29.5", - "resolved": "https://registry.npmjs.org/@cosmjs/stream/-/stream-0.29.5.tgz", - "integrity": "sha512-TToTDWyH1p05GBtF0Y8jFw2C+4783ueDCmDyxOMM6EU82IqpmIbfwcdMOCAm0JhnyMh+ocdebbFvnX/sGKzRAA==", - "requires": { - "xstream": "^11.14.0" - } - }, - "@cosmjs/tendermint-rpc": { - "version": "0.29.5", - "resolved": "https://registry.npmjs.org/@cosmjs/tendermint-rpc/-/tendermint-rpc-0.29.5.tgz", - "integrity": "sha512-ar80twieuAxsy0x2za/aO3kBr2DFPAXDmk2ikDbmkda+qqfXgl35l9CVAAjKRqd9d+cRvbQyb5M4wy6XQpEV6w==", - "requires": { - "@cosmjs/crypto": "^0.29.5", - "@cosmjs/encoding": "^0.29.5", - "@cosmjs/json-rpc": "^0.29.5", - "@cosmjs/math": "^0.29.5", - "@cosmjs/socket": "^0.29.5", - "@cosmjs/stream": "^0.29.5", - "@cosmjs/utils": "^0.29.5", - "axios": "^0.21.2", - "readonly-date": "^1.0.0", - "xstream": "^11.14.0" - }, - "dependencies": { - "axios": { - "version": "0.21.4", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.4.tgz", - "integrity": "sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==", - "requires": { - "follow-redirects": "^1.14.0" - } - }, - "follow-redirects": { - "version": "1.15.2", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", - "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==" - } - } - }, - "@cosmjs/utils": { - "version": "0.29.5", - "resolved": "https://registry.npmjs.org/@cosmjs/utils/-/utils-0.29.5.tgz", - "integrity": "sha512-m7h+RXDUxOzEOGt4P+3OVPX7PuakZT3GBmaM/Y2u+abN3xZkziykD/NvedYFvvCCdQo714XcGl33bwifS9FZPQ==" - }, - "@cspotcode/source-map-support": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", - "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", - "dev": true, - "requires": { - "@jridgewell/trace-mapping": "0.3.9" - } - }, - "@ethereumjs/common": { - "version": "2.6.5", - "resolved": "https://registry.npmjs.org/@ethereumjs/common/-/common-2.6.5.tgz", - "integrity": "sha512-lRyVQOeCDaIVtgfbowla32pzeDv2Obr8oR8Put5RdUBNRGr1VGPGQNGP6elWIpgK3YdpzqTOh4GyUGOureVeeA==", - "requires": { - "crc-32": "^1.2.0", - "ethereumjs-util": "^7.1.5" - }, - "dependencies": { - "@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==", - "requires": { - "@types/node": "*" - } - }, - "bn.js": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", - "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==" - }, - "ethereumjs-util": { - "version": "7.1.5", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.5.tgz", - "integrity": "sha512-SDl5kKrQAudFBUe5OJM9Ac6WmMyYmXX/6sTmLZ3ffG2eY6ZIGBes3pEDxNN6V72WyOw4CPD5RomKdsa8DAAwLg==", - "requires": { - "@types/bn.js": "^5.1.0", - "bn.js": "^5.1.2", - "create-hash": "^1.1.2", - "ethereum-cryptography": "^0.1.3", - "rlp": "^2.2.4" - } - } - } - }, - "@ethereumjs/tx": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/@ethereumjs/tx/-/tx-3.5.2.tgz", - "integrity": "sha512-gQDNJWKrSDGu2w7w0PzVXVBNMzb7wwdDOmOqczmhNjqFxFuIbhVJDwiGEnxFNC2/b8ifcZzY7MLcluizohRzNw==", - "requires": { - "@ethereumjs/common": "^2.6.4", - "ethereumjs-util": "^7.1.5" - }, - "dependencies": { - "@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==", - "requires": { - "@types/node": "*" - } - }, - "bn.js": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", - "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==" - }, - "ethereumjs-util": { - "version": "7.1.5", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.5.tgz", - "integrity": "sha512-SDl5kKrQAudFBUe5OJM9Ac6WmMyYmXX/6sTmLZ3ffG2eY6ZIGBes3pEDxNN6V72WyOw4CPD5RomKdsa8DAAwLg==", - "requires": { - "@types/bn.js": "^5.1.0", - "bn.js": "^5.1.2", - "create-hash": "^1.1.2", - "ethereum-cryptography": "^0.1.3", - "rlp": "^2.2.4" - } - } - } - }, - "@ethersproject/abi": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/abi/-/abi-5.7.0.tgz", - "integrity": "sha512-351ktp42TiRcYB3H1OP8yajPeAQstMW/yCFokj/AthP9bLHzQFPlOrxOcwYEDkUAICmOHljvN4K39OMTMUa9RA==", - "requires": { - "@ethersproject/address": "^5.7.0", - "@ethersproject/bignumber": "^5.7.0", - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/constants": "^5.7.0", - "@ethersproject/hash": "^5.7.0", - "@ethersproject/keccak256": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/properties": "^5.7.0", - "@ethersproject/strings": "^5.7.0" - } - }, - "@ethersproject/abstract-provider": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/abstract-provider/-/abstract-provider-5.7.0.tgz", - "integrity": "sha512-R41c9UkchKCpAqStMYUpdunjo3pkEvZC3FAwZn5S5MGbXoMQOHIdHItezTETxAO5bevtMApSyEhn9+CHcDsWBw==", - "requires": { - "@ethersproject/bignumber": "^5.7.0", - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/networks": "^5.7.0", - "@ethersproject/properties": "^5.7.0", - "@ethersproject/transactions": "^5.7.0", - "@ethersproject/web": "^5.7.0" - } - }, - "@ethersproject/abstract-signer": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/abstract-signer/-/abstract-signer-5.7.0.tgz", - "integrity": "sha512-a16V8bq1/Cz+TGCkE2OPMTOUDLS3grCpdjoJCYNnVBbdYEMSgKrU0+B90s8b6H+ByYTBZN7a3g76jdIJi7UfKQ==", - "requires": { - "@ethersproject/abstract-provider": "^5.7.0", - "@ethersproject/bignumber": "^5.7.0", - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/properties": "^5.7.0" - } - }, - "@ethersproject/address": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/address/-/address-5.7.0.tgz", - "integrity": "sha512-9wYhYt7aghVGo758POM5nqcOMaE168Q6aRLJZwUmiqSrAungkG74gSSeKEIR7ukixesdRZGPgVqme6vmxs1fkA==", - "requires": { - "@ethersproject/bignumber": "^5.7.0", - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/keccak256": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/rlp": "^5.7.0" - } - }, - "@ethersproject/base64": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/base64/-/base64-5.7.0.tgz", - "integrity": "sha512-Dr8tcHt2mEbsZr/mwTPIQAf3Ai0Bks/7gTw9dSqk1mQvhW3XvRlmDJr/4n+wg1JmCl16NZue17CDh8xb/vZ0sQ==", - "requires": { - "@ethersproject/bytes": "^5.7.0" - } - }, - "@ethersproject/basex": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/@ethersproject/basex/-/basex-5.4.0.tgz", - "integrity": "sha512-J07+QCVJ7np2bcpxydFVf/CuYo9mZ7T73Pe7KQY4c1lRlrixMeblauMxHXD0MPwFmUHZIILDNViVkykFBZylbg==", - "peer": true, - "requires": { - "@ethersproject/bytes": "^5.4.0", - "@ethersproject/properties": "^5.4.0" - } - }, - "@ethersproject/bignumber": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/bignumber/-/bignumber-5.7.0.tgz", - "integrity": "sha512-n1CAdIHRWjSucQO3MC1zPSVgV/6dy/fjL9pMrPP9peL+QxEg9wOsVqwD4+818B6LUEtaXzVHQiuivzRoxPxUGw==", - "requires": { - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "bn.js": "^5.2.1" - }, - "dependencies": { - "bn.js": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", - "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==" - } - } - }, - "@ethersproject/bytes": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/bytes/-/bytes-5.7.0.tgz", - "integrity": "sha512-nsbxwgFXWh9NyYWo+U8atvmMsSdKJprTcICAkvbBffT75qDocbuggBU0SJiVK2MuTrp0q+xvLkTnGMPK1+uA9A==", - "requires": { - "@ethersproject/logger": "^5.7.0" - } - }, - "@ethersproject/constants": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/constants/-/constants-5.7.0.tgz", - "integrity": "sha512-DHI+y5dBNvkpYUMiRQyxRBYBefZkJfo70VUkUAsRjcPs47muV9evftfZ0PJVCXYbAiCgght0DtcF9srFQmIgWA==", - "requires": { - "@ethersproject/bignumber": "^5.7.0" - } - }, - "@ethersproject/hash": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/hash/-/hash-5.7.0.tgz", - "integrity": "sha512-qX5WrQfnah1EFnO5zJv1v46a8HW0+E5xuBBDTwMFZLuVTx0tbU2kkx15NqdjxecrLGatQN9FGQKpb1FKdHCt+g==", - "requires": { - "@ethersproject/abstract-signer": "^5.7.0", - "@ethersproject/address": "^5.7.0", - "@ethersproject/base64": "^5.7.0", - "@ethersproject/bignumber": "^5.7.0", - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/keccak256": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/properties": "^5.7.0", - "@ethersproject/strings": "^5.7.0" - } - }, - "@ethersproject/keccak256": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/keccak256/-/keccak256-5.7.0.tgz", - "integrity": "sha512-2UcPboeL/iW+pSg6vZ6ydF8tCnv3Iu/8tUmLLzWWGzxWKFFqOBQFLo6uLUv6BDrLgCDfN28RJ/wtByx+jZ4KBg==", - "requires": { - "@ethersproject/bytes": "^5.7.0", - "js-sha3": "0.8.0" - }, - "dependencies": { - "js-sha3": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.8.0.tgz", - "integrity": "sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q==" - } - } - }, - "@ethersproject/logger": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/logger/-/logger-5.7.0.tgz", - "integrity": "sha512-0odtFdXu/XHtjQXJYA3u9G0G8btm0ND5Cu8M7i5vhEcE8/HmF4Lbdqanwyv4uQTr2tx6b7fQRmgLrsnpQlmnig==" - }, - "@ethersproject/networks": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/@ethersproject/networks/-/networks-5.7.1.tgz", - "integrity": "sha512-n/MufjFYv3yFcUyfhnXotyDlNdFb7onmkSy8aQERi2PjNcnWQ66xXxa3XlS8nCcA8aJKJjIIMNJTC7tu80GwpQ==", - "requires": { - "@ethersproject/logger": "^5.7.0" - } - }, - "@ethersproject/properties": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/properties/-/properties-5.7.0.tgz", - "integrity": "sha512-J87jy8suntrAkIZtecpxEPxY//szqr1mlBaYlQ0r4RCaiD2hjheqF9s1LVE8vVuJCXisjIP+JgtK/Do54ej4Sw==", - "requires": { - "@ethersproject/logger": "^5.7.0" - } - }, - "@ethersproject/providers": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/@ethersproject/providers/-/providers-5.4.1.tgz", - "integrity": "sha512-p06eiFKz8nu/5Ju0kIX024gzEQIgE5pvvGrBCngpyVjpuLtUIWT3097Agw4mTn9/dEA0FMcfByzFqacBMSgCVg==", - "peer": true, - "requires": { - "@ethersproject/abstract-provider": "^5.4.0", - "@ethersproject/abstract-signer": "^5.4.0", - "@ethersproject/address": "^5.4.0", - "@ethersproject/basex": "^5.4.0", - "@ethersproject/bignumber": "^5.4.0", - "@ethersproject/bytes": "^5.4.0", - "@ethersproject/constants": "^5.4.0", - "@ethersproject/hash": "^5.4.0", - "@ethersproject/logger": "^5.4.0", - "@ethersproject/networks": "^5.4.0", - "@ethersproject/properties": "^5.4.0", - "@ethersproject/random": "^5.4.0", - "@ethersproject/rlp": "^5.4.0", - "@ethersproject/sha2": "^5.4.0", - "@ethersproject/strings": "^5.4.0", - "@ethersproject/transactions": "^5.4.0", - "@ethersproject/web": "^5.4.0", - "bech32": "1.1.4", - "ws": "7.4.6" - }, - "dependencies": { - "bech32": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/bech32/-/bech32-1.1.4.tgz", - "integrity": "sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ==", - "peer": true - }, - "ws": { - "version": "7.4.6", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz", - "integrity": "sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==", - "peer": true, - "requires": {} - } - } - }, - "@ethersproject/random": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/@ethersproject/random/-/random-5.4.0.tgz", - "integrity": "sha512-pnpWNQlf0VAZDEOVp1rsYQosmv2o0ITS/PecNw+mS2/btF8eYdspkN0vIXrCMtkX09EAh9bdk8GoXmFXM1eAKw==", - "peer": true, - "requires": { - "@ethersproject/bytes": "^5.4.0", - "@ethersproject/logger": "^5.4.0" - } - }, - "@ethersproject/rlp": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/rlp/-/rlp-5.7.0.tgz", - "integrity": "sha512-rBxzX2vK8mVF7b0Tol44t5Tb8gomOHkj5guL+HhzQ1yBh/ydjGnpw6at+X6Iw0Kp3OzzzkcKp8N9r0W4kYSs9w==", - "requires": { - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/logger": "^5.7.0" - } - }, - "@ethersproject/sha2": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/@ethersproject/sha2/-/sha2-5.4.0.tgz", - "integrity": "sha512-siheo36r1WD7Cy+bDdE1BJ8y0bDtqXCOxRMzPa4bV1TGt/eTUUt03BHoJNB6reWJD8A30E/pdJ8WFkq+/uz4Gg==", - "peer": true, - "requires": { - "@ethersproject/bytes": "^5.4.0", - "@ethersproject/logger": "^5.4.0", - "hash.js": "1.1.7" - }, - "dependencies": { - "hash.js": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", - "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", - "peer": true, - "requires": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.1" - } - } - } - }, - "@ethersproject/signing-key": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/signing-key/-/signing-key-5.7.0.tgz", - "integrity": "sha512-MZdy2nL3wO0u7gkB4nA/pEf8lu1TlFswPNmy8AiYkfKTdO6eXBJyUdmHO/ehm/htHw9K/qF8ujnTyUAD+Ry54Q==", - "requires": { - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/properties": "^5.7.0", - "bn.js": "^5.2.1", - "elliptic": "6.5.4", - "hash.js": "1.1.7" - }, - "dependencies": { - "bn.js": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", - "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==" - }, - "hash.js": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", - "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", - "requires": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.1" - } - } - } - }, - "@ethersproject/strings": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/strings/-/strings-5.7.0.tgz", - "integrity": "sha512-/9nu+lj0YswRNSH0NXYqrh8775XNyEdUQAuf3f+SmOrnVewcJ5SBNAjF7lpgehKi4abvNNXyf+HX86czCdJ8Mg==", - "requires": { - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/constants": "^5.7.0", - "@ethersproject/logger": "^5.7.0" - } - }, - "@ethersproject/transactions": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/transactions/-/transactions-5.7.0.tgz", - "integrity": "sha512-kmcNicCp1lp8qanMTC3RIikGgoJ80ztTyvtsFvCYpSCfkjhD0jZ2LOrnbcuxuToLIUYYf+4XwD1rP+B/erDIhQ==", - "requires": { - "@ethersproject/address": "^5.7.0", - "@ethersproject/bignumber": "^5.7.0", - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/constants": "^5.7.0", - "@ethersproject/keccak256": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/properties": "^5.7.0", - "@ethersproject/rlp": "^5.7.0", - "@ethersproject/signing-key": "^5.7.0" - } - }, - "@ethersproject/web": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/@ethersproject/web/-/web-5.7.1.tgz", - "integrity": "sha512-Gueu8lSvyjBWL4cYsWsjh6MtMwM0+H4HvqFPZfB6dV8ctbP9zFAO73VG1cMWae0FLPCtz0peKPpZY8/ugJJX2w==", - "requires": { - "@ethersproject/base64": "^5.7.0", - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/properties": "^5.7.0", - "@ethersproject/strings": "^5.7.0" - } - }, - "@firebase/analytics": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/@firebase/analytics/-/analytics-0.4.1.tgz", - "integrity": "sha512-y5ZuhqX/PwLi0t7AKxNAi3NnlEwXe0rpknulUWUg3/1dALqtd2RrAOATQoV5FNnKK6YUH5UmK0Jb9KcSjsFeNw==", - "dev": true, - "requires": { - "@firebase/analytics-types": "0.3.1", - "@firebase/component": "0.1.17", - "@firebase/installations": "0.4.15", - "@firebase/logger": "0.2.6", - "@firebase/util": "0.3.0", - "tslib": "^1.11.1" - } - }, - "@firebase/analytics-types": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/@firebase/analytics-types/-/analytics-types-0.3.1.tgz", - "integrity": "sha512-63vVJ5NIBh/JF8l9LuPrQYSzFimk7zYHySQB4Dk9rVdJ8kV/vGQoVTvRu1UW05sEc2Ug5PqtEChtTHU+9hvPcA==", - "dev": true - }, - "@firebase/app": { - "version": "0.6.9", - "resolved": "https://registry.npmjs.org/@firebase/app/-/app-0.6.9.tgz", - "integrity": "sha512-X2riRgK49IK8LCQ3j7BKLu3zqHDTJSaT6YgcLewtHuOVwtpHfGODiS1cL5VMvKm3ogxP84GA70tN3sdoL/vTog==", - "dev": true, - "requires": { - "@firebase/app-types": "0.6.1", - "@firebase/component": "0.1.17", - "@firebase/logger": "0.2.6", - "@firebase/util": "0.3.0", - "dom-storage": "2.1.0", - "tslib": "^1.11.1", - "xmlhttprequest": "1.8.0" - } - }, - "@firebase/app-types": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/@firebase/app-types/-/app-types-0.6.1.tgz", - "integrity": "sha512-L/ZnJRAq7F++utfuoTKX4CLBG5YR7tFO3PLzG1/oXXKEezJ0kRL3CMRoueBEmTCzVb/6SIs2Qlaw++uDgi5Xyg==", - "dev": true - }, - "@firebase/auth": { - "version": "0.14.9", - "resolved": "https://registry.npmjs.org/@firebase/auth/-/auth-0.14.9.tgz", - "integrity": "sha512-PxYa2r5qUEdheXTvqROFrMstK8W4uPiP7NVfp+2Bec+AjY5PxZapCx/YFDLkU0D7YBI82H74PtZrzdJZw7TJ4w==", - "dev": true, - "requires": { - "@firebase/auth-types": "0.10.1" - } - }, - "@firebase/auth-interop-types": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/@firebase/auth-interop-types/-/auth-interop-types-0.1.5.tgz", - "integrity": "sha512-88h74TMQ6wXChPA6h9Q3E1Jg6TkTHep2+k63OWg3s0ozyGVMeY+TTOti7PFPzq5RhszQPQOoCi59es4MaRvgCw==", - "dev": true - }, - "@firebase/auth-types": { - "version": "0.10.1", - "resolved": "https://registry.npmjs.org/@firebase/auth-types/-/auth-types-0.10.1.tgz", - "integrity": "sha512-/+gBHb1O9x/YlG7inXfxff/6X3BPZt4zgBv4kql6HEmdzNQCodIRlEYnI+/da+lN+dha7PjaFH7C7ewMmfV7rw==", - "dev": true - }, - "@firebase/component": { - "version": "0.1.17", - "resolved": "https://registry.npmjs.org/@firebase/component/-/component-0.1.17.tgz", - "integrity": "sha512-/tN5iLcFp9rdpTfCJPfQ/o2ziGHlDxOzNx6XD2FoHlu4pG/PPGu+59iRfQXIowBGhxcTGD/l7oJhZEY/PVg0KQ==", - "dev": true, - "requires": { - "@firebase/util": "0.3.0", - "tslib": "^1.11.1" - } - }, - "@firebase/database": { - "version": "0.6.9", - "resolved": "https://registry.npmjs.org/@firebase/database/-/database-0.6.9.tgz", - "integrity": "sha512-+X2dNFDpcLEcDRdXp2Hgkf0RnNz3AOIC+Y7UFMQYadm9buB+snXomlnlkMzOj6o+Cp3V7GnpBrKKeeFqzF6wGQ==", - "dev": true, - "requires": { - "@firebase/auth-interop-types": "0.1.5", - "@firebase/component": "0.1.17", - "@firebase/database-types": "0.5.1", - "@firebase/logger": "0.2.6", - "@firebase/util": "0.3.0", - "faye-websocket": "0.11.3", - "tslib": "^1.11.1" - } - }, - "@firebase/database-types": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/@firebase/database-types/-/database-types-0.5.1.tgz", - "integrity": "sha512-onQxom1ZBYBJ648w/VNRzUewovEDAH7lvnrrpCd69ukkyrMk6rGEO/PQ9BcNEbhlNtukpsqRS0oNOFlHs0FaSA==", - "dev": true, - "requires": { - "@firebase/app-types": "0.6.1" - } - }, - "@firebase/firestore": { - "version": "1.16.2", - "resolved": "https://registry.npmjs.org/@firebase/firestore/-/firestore-1.16.2.tgz", - "integrity": "sha512-iIkAL860oD/QA1uYI9JBbWqBYFWd+DnuSj//BIbOGn3DNAruDFy07g8re1vn+0MMas9bMk6CZATJNCFPeH8AsQ==", - "dev": true, - "requires": { - "@firebase/component": "0.1.17", - "@firebase/firestore-types": "1.12.0", - "@firebase/logger": "0.2.6", - "@firebase/util": "0.3.0", - "@firebase/webchannel-wrapper": "0.2.41", - "@grpc/grpc-js": "^1.0.0", - "@grpc/proto-loader": "^0.5.0", - "tslib": "^1.11.1" - } - }, - "@firebase/firestore-types": { - "version": "1.12.0", - "resolved": "https://registry.npmjs.org/@firebase/firestore-types/-/firestore-types-1.12.0.tgz", - "integrity": "sha512-OqNxVb63wPZdUc7YnpacAW1WNIMSKERSewCRi+unCQ0YI0KNfrDSypyGCyel+S3GdOtKMk9KnvDknaGbnaFX4g==", - "dev": true - }, - "@firebase/functions": { - "version": "0.4.49", - "resolved": "https://registry.npmjs.org/@firebase/functions/-/functions-0.4.49.tgz", - "integrity": "sha512-ma3+z1wMKervmEJCLWxwIjbSV+n3/BTfFPSZdTjt18Wgiso5q4BzEObFkorxaXZiyT3KpZ0qOO97lgcoth2hIA==", - "dev": true, - "requires": { - "@firebase/component": "0.1.17", - "@firebase/functions-types": "0.3.17", - "@firebase/messaging-types": "0.4.5", - "isomorphic-fetch": "2.2.1", - "tslib": "^1.11.1" - } - }, - "@firebase/functions-types": { - "version": "0.3.17", - "resolved": "https://registry.npmjs.org/@firebase/functions-types/-/functions-types-0.3.17.tgz", - "integrity": "sha512-DGR4i3VI55KnYk4IxrIw7+VG7Q3gA65azHnZxo98Il8IvYLr2UTBlSh72dTLlDf25NW51HqvJgYJDKvSaAeyHQ==", - "dev": true - }, - "@firebase/installations": { - "version": "0.4.15", - "resolved": "https://registry.npmjs.org/@firebase/installations/-/installations-0.4.15.tgz", - "integrity": "sha512-6uGgDocDGu5gI7FeDBDcLaH4npz0cm2f0kctOFK+5N1CyK8Tv2YGv5/uGqlrTtSwDW+8tgKNo/5XXJJOPr9Jsw==", - "dev": true, - "requires": { - "@firebase/component": "0.1.17", - "@firebase/installations-types": "0.3.4", - "@firebase/util": "0.3.0", - "idb": "3.0.2", - "tslib": "^1.11.1" - } - }, - "@firebase/installations-types": { - "version": "0.3.4", - "resolved": "https://registry.npmjs.org/@firebase/installations-types/-/installations-types-0.3.4.tgz", - "integrity": "sha512-RfePJFovmdIXb6rYwtngyxuEcWnOrzdZd9m7xAW0gRxDIjBT20n3BOhjpmgRWXo/DAxRmS7bRjWAyTHY9cqN7Q==", - "dev": true - }, - "@firebase/logger": { - "version": "0.2.6", - "resolved": "https://registry.npmjs.org/@firebase/logger/-/logger-0.2.6.tgz", - "integrity": "sha512-KIxcUvW/cRGWlzK9Vd2KB864HlUnCfdTH0taHE0sXW5Xl7+W68suaeau1oKNEqmc3l45azkd4NzXTCWZRZdXrw==", - "dev": true - }, - "@firebase/messaging": { - "version": "0.6.21", - "resolved": "https://registry.npmjs.org/@firebase/messaging/-/messaging-0.6.21.tgz", - "integrity": "sha512-cunbFNCtUy25Zp4/jn5lenYUPqgHpjKNUwRjKc7vIzYb4IT2Vu/7kaEptO3K0KQBC6O0QV3ZtqQxKrI9aLiSHg==", - "dev": true, - "requires": { - "@firebase/component": "0.1.17", - "@firebase/installations": "0.4.15", - "@firebase/messaging-types": "0.4.5", - "@firebase/util": "0.3.0", - "idb": "3.0.2", - "tslib": "^1.11.1" - } - }, - "@firebase/messaging-types": { - "version": "0.4.5", - "resolved": "https://registry.npmjs.org/@firebase/messaging-types/-/messaging-types-0.4.5.tgz", - "integrity": "sha512-sux4fgqr/0KyIxqzHlatI04Ajs5rc3WM+WmtCpxrKP1E5Bke8xu/0M+2oy4lK/sQ7nov9z15n3iltAHCgTRU3Q==", - "dev": true - }, - "@firebase/performance": { - "version": "0.3.10", - "resolved": "https://registry.npmjs.org/@firebase/performance/-/performance-0.3.10.tgz", - "integrity": "sha512-j/hsx2xfOO1hZulmz7KxemoTIVXxrv94rt79x8qO1HzysT7ziViNvQ9cQGjDZWwVSO29TpLH31GOWLVnwmnxWQ==", - "dev": true, - "requires": { - "@firebase/component": "0.1.17", - "@firebase/installations": "0.4.15", - "@firebase/logger": "0.2.6", - "@firebase/performance-types": "0.0.13", - "@firebase/util": "0.3.0", - "tslib": "^1.11.1" - } - }, - "@firebase/performance-types": { - "version": "0.0.13", - "resolved": "https://registry.npmjs.org/@firebase/performance-types/-/performance-types-0.0.13.tgz", - "integrity": "sha512-6fZfIGjQpwo9S5OzMpPyqgYAUZcFzZxHFqOyNtorDIgNXq33nlldTL/vtaUZA8iT9TT5cJlCrF/jthKU7X21EA==", - "dev": true - }, - "@firebase/polyfill": { - "version": "0.3.36", - "resolved": "https://registry.npmjs.org/@firebase/polyfill/-/polyfill-0.3.36.tgz", - "integrity": "sha512-zMM9oSJgY6cT2jx3Ce9LYqb0eIpDE52meIzd/oe/y70F+v9u1LDqk5kUF5mf16zovGBWMNFmgzlsh6Wj0OsFtg==", - "dev": true, - "requires": { - "core-js": "3.6.5", - "promise-polyfill": "8.1.3", - "whatwg-fetch": "2.0.4" - }, - "dependencies": { - "whatwg-fetch": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-2.0.4.tgz", - "integrity": "sha512-dcQ1GWpOD/eEQ97k66aiEVpNnapVj90/+R+SXTPYGHpYBBypfKJEQjLrvMZ7YXbKm21gXd4NcuxUTjiv1YtLng==", - "dev": true - } - } - }, - "@firebase/remote-config": { - "version": "0.1.26", - "resolved": "https://registry.npmjs.org/@firebase/remote-config/-/remote-config-0.1.26.tgz", - "integrity": "sha512-B6+nARVNcswysd6C16nK5tdGECgEpr1wdH6LyqylEQ8hUxYWN18qe49b9uPu+ktaHq0gFLg03gayZvQs7fxJOg==", - "dev": true, - "requires": { - "@firebase/component": "0.1.17", - "@firebase/installations": "0.4.15", - "@firebase/logger": "0.2.6", - "@firebase/remote-config-types": "0.1.9", - "@firebase/util": "0.3.0", - "tslib": "^1.11.1" - } - }, - "@firebase/remote-config-types": { - "version": "0.1.9", - "resolved": "https://registry.npmjs.org/@firebase/remote-config-types/-/remote-config-types-0.1.9.tgz", - "integrity": "sha512-G96qnF3RYGbZsTRut7NBX0sxyczxt1uyCgXQuH/eAfUCngxjEGcZQnBdy6mvSdqdJh5mC31rWPO4v9/s7HwtzA==", - "dev": true - }, - "@firebase/storage": { - "version": "0.3.41", - "resolved": "https://registry.npmjs.org/@firebase/storage/-/storage-0.3.41.tgz", - "integrity": "sha512-2imzI78HcB7FjUqXMRHsGLlZnTYkaCHBjJflSbypwLrEty0hreR6vx3ThOO5y0MFH93WwifqUFJAa+Twkx6CIA==", - "dev": true, - "requires": { - "@firebase/component": "0.1.17", - "@firebase/storage-types": "0.3.13", - "@firebase/util": "0.3.0", - "tslib": "^1.11.1" - } - }, - "@firebase/storage-types": { - "version": "0.3.13", - "resolved": "https://registry.npmjs.org/@firebase/storage-types/-/storage-types-0.3.13.tgz", - "integrity": "sha512-pL7b8d5kMNCCL0w9hF7pr16POyKkb3imOW7w0qYrhBnbyJTdVxMWZhb0HxCFyQWC0w3EiIFFmxoz8NTFZDEFog==", - "dev": true - }, - "@firebase/util": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/@firebase/util/-/util-0.3.0.tgz", - "integrity": "sha512-GTwC+FSLeCPc44/TXCDReNQ5FPRIS5cb8Gr1XcD1TgiNBOvmyx61Om2YLwHp2GnN++6m6xmwmXARm06HOukATA==", - "dev": true, - "requires": { - "tslib": "^1.11.1" - } - }, - "@firebase/webchannel-wrapper": { - "version": "0.2.41", - "resolved": "https://registry.npmjs.org/@firebase/webchannel-wrapper/-/webchannel-wrapper-0.2.41.tgz", - "integrity": "sha512-XcdMT5PSZHiuf7LJIhzKIe+RyYa25S3LHRRvLnZc6iFjwXkrSDJ8J/HWO6VT8d2ZTbawp3VcLEjRF/VN8glCrA==", - "dev": true - }, - "@graphql-tools/batch-execute": { - "version": "8.5.1", - "resolved": "https://registry.npmjs.org/@graphql-tools/batch-execute/-/batch-execute-8.5.1.tgz", - "integrity": "sha512-hRVDduX0UDEneVyEWtc2nu5H2PxpfSfM/riUlgZvo/a/nG475uyehxR5cFGvTEPEQUKY3vGIlqvtRigzqTfCew==", - "dev": true, - "optional": true, - "requires": { - "@graphql-tools/utils": "8.9.0", - "dataloader": "2.1.0", - "tslib": "^2.4.0", - "value-or-promise": "1.0.11" - }, - "dependencies": { - "tslib": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz", - "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==", - "dev": true, - "optional": true - } - } - }, - "@graphql-tools/delegate": { - "version": "8.8.1", - "resolved": "https://registry.npmjs.org/@graphql-tools/delegate/-/delegate-8.8.1.tgz", - "integrity": "sha512-NDcg3GEQmdEHlnF7QS8b4lM1PSF+DKeFcIlLEfZFBvVq84791UtJcDj8734sIHLukmyuAxXMfA1qLd2l4lZqzA==", - "dev": true, - "optional": true, - "requires": { - "@graphql-tools/batch-execute": "8.5.1", - "@graphql-tools/schema": "8.5.1", - "@graphql-tools/utils": "8.9.0", - "dataloader": "2.1.0", - "tslib": "~2.4.0", - "value-or-promise": "1.0.11" - }, - "dependencies": { - "tslib": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz", - "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==", - "dev": true, - "optional": true - } - } - }, - "@graphql-tools/merge": { - "version": "8.3.1", - "resolved": "https://registry.npmjs.org/@graphql-tools/merge/-/merge-8.3.1.tgz", - "integrity": "sha512-BMm99mqdNZbEYeTPK3it9r9S6rsZsQKtlqJsSBknAclXq2pGEfOxjcIZi+kBSkHZKPKCRrYDd5vY0+rUmIHVLg==", - "dev": true, - "optional": true, - "requires": { - "@graphql-tools/utils": "8.9.0", - "tslib": "^2.4.0" - }, - "dependencies": { - "tslib": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz", - "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==", - "dev": true, - "optional": true - } - } - }, - "@graphql-tools/mock": { - "version": "8.7.20", - "resolved": "https://registry.npmjs.org/@graphql-tools/mock/-/mock-8.7.20.tgz", - "integrity": "sha512-ljcHSJWjC/ZyzpXd5cfNhPI7YljRVvabKHPzKjEs5ElxWu2cdlLGvyNYepApXDsM/OJG/2xuhGM+9GWu5gEAPQ==", - "dev": true, - "optional": true, - "requires": { - "@graphql-tools/schema": "^9.0.18", - "@graphql-tools/utils": "^9.2.1", - "fast-json-stable-stringify": "^2.1.0", - "tslib": "^2.4.0" - }, - "dependencies": { - "@graphql-tools/merge": { - "version": "8.4.1", - "resolved": "https://registry.npmjs.org/@graphql-tools/merge/-/merge-8.4.1.tgz", - "integrity": "sha512-hssnPpZ818mxgl5+GfyOOSnnflAxiaTn1A1AojZcIbh4J52sS1Q0gSuBR5VrnUDjuxiqoCotpXdAQl+K+U6KLQ==", - "dev": true, - "optional": true, - "requires": { - "@graphql-tools/utils": "^9.2.1", - "tslib": "^2.4.0" - } - }, - "@graphql-tools/schema": { - "version": "9.0.19", - "resolved": "https://registry.npmjs.org/@graphql-tools/schema/-/schema-9.0.19.tgz", - "integrity": "sha512-oBRPoNBtCkk0zbUsyP4GaIzCt8C0aCI4ycIRUL67KK5pOHljKLBBtGT+Jr6hkzA74C8Gco8bpZPe7aWFjiaK2w==", - "dev": true, - "optional": true, - "requires": { - "@graphql-tools/merge": "^8.4.1", - "@graphql-tools/utils": "^9.2.1", - "tslib": "^2.4.0", - "value-or-promise": "^1.0.12" - } - }, - "@graphql-tools/utils": { - "version": "9.2.1", - "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-9.2.1.tgz", - "integrity": "sha512-WUw506Ql6xzmOORlriNrD6Ugx+HjVgYxt9KCXD9mHAak+eaXSwuGGPyE60hy9xaDEoXKBsG7SkG69ybitaVl6A==", - "dev": true, - "optional": true, - "requires": { - "@graphql-typed-document-node/core": "^3.1.1", - "tslib": "^2.4.0" - } - }, - "tslib": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz", - "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==", - "dev": true, - "optional": true - }, - "value-or-promise": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/value-or-promise/-/value-or-promise-1.0.12.tgz", - "integrity": "sha512-Z6Uz+TYwEqE7ZN50gwn+1LCVo9ZVrpxRPOhOLnncYkY1ZzOYtrX8Fwf/rFktZ8R5mJms6EZf5TqNOMeZmnPq9Q==", - "dev": true, - "optional": true - } - } - }, - "@graphql-tools/schema": { - "version": "8.5.1", - "resolved": "https://registry.npmjs.org/@graphql-tools/schema/-/schema-8.5.1.tgz", - "integrity": "sha512-0Esilsh0P/qYcB5DKQpiKeQs/jevzIadNTaT0jeWklPMwNbT7yMX4EqZany7mbeRRlSRwMzNzL5olyFdffHBZg==", - "dev": true, - "optional": true, - "requires": { - "@graphql-tools/merge": "8.3.1", - "@graphql-tools/utils": "8.9.0", - "tslib": "^2.4.0", - "value-or-promise": "1.0.11" - }, - "dependencies": { - "tslib": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz", - "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==", - "dev": true, - "optional": true - } - } - }, - "@graphql-tools/utils": { - "version": "8.9.0", - "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-8.9.0.tgz", - "integrity": "sha512-pjJIWH0XOVnYGXCqej8g/u/tsfV4LvLlj0eATKQu5zwnxd/TiTHq7Cg313qUPTFFHZ3PP5wJ15chYVtLDwaymg==", - "dev": true, - "optional": true, - "requires": { - "tslib": "^2.4.0" - }, - "dependencies": { - "tslib": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz", - "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==", - "dev": true, - "optional": true - } - } - }, - "@graphql-typed-document-node/core": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/@graphql-typed-document-node/core/-/core-3.2.0.tgz", - "integrity": "sha512-mB9oAsNCm9aM3/SOv4YtBMqZbYj10R7dkq8byBqxGY/ncFwhf2oQzMV+LCRlWoDSEBJ3COiR1yeDvMtsoOsuFQ==", - "requires": {} - }, - "@grpc/grpc-js": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.1.3.tgz", - "integrity": "sha512-HtOsk2YUofBcm1GkPqGzb6pwHhv+74eC2CUO229USIDKRtg30ycbZmqC+HdNtY3nHqoc9IgcRlntFgopyQoYCA==", - "dev": true, - "requires": { - "semver": "^6.2.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } - } - }, - "@grpc/proto-loader": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/@grpc/proto-loader/-/proto-loader-0.5.5.tgz", - "integrity": "sha512-WwN9jVNdHRQoOBo9FDH7qU+mgfjPc8GygPYms3M+y3fbQLfnCe/Kv/E01t7JRgnrsOHH8euvSbed3mIalXhwqQ==", - "dev": true, - "requires": { - "lodash.camelcase": "^4.3.0", - "protobufjs": "^6.8.6" - } - }, - "@improbable-eng/grpc-web": { - "version": "0.15.0", - "resolved": "https://registry.npmjs.org/@improbable-eng/grpc-web/-/grpc-web-0.15.0.tgz", - "integrity": "sha512-ERft9/0/8CmYalqOVnJnpdDry28q+j+nAlFFARdjyxXDJ+Mhgv9+F600QC8BR9ygOfrXRlAk6CvST2j+JCpQPg==", - "requires": { - "browser-headers": "^0.4.1" - } - }, - "@injectivelabs/core-proto-ts": { - "version": "0.0.11", - "resolved": "https://registry.npmjs.org/@injectivelabs/core-proto-ts/-/core-proto-ts-0.0.11.tgz", - "integrity": "sha512-gYMzkoZ0olXLbEhSQVarUCMR6VAHytvENDv2Psjl9EjO5Pg93vTGLViS4E4vA5fezRfdF/x0Uic31w+ogp66jA==", - "requires": { - "@injectivelabs/grpc-web": "^0.0.1", - "google-protobuf": "^3.14.0", - "protobufjs": "^7.0.0", - "rxjs": "^7.4.0" - }, - "dependencies": { - "long": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/long/-/long-5.2.1.tgz", - "integrity": "sha512-GKSNGeNAtw8IryjjkhZxuKB3JzlcLTwjtiQCHKvqQet81I93kXslhDQruGI/QsddO83mcDToBVy7GqGS/zYf/A==" - }, - "protobufjs": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.2.3.tgz", - "integrity": "sha512-TtpvOqwB5Gdz/PQmOjgsrGH1nHjAQVCN7JG4A6r1sXRWESL5rNMAiRcBQlCAdKxZcAbstExQePYG8xof/JVRgg==", - "requires": { - "@protobufjs/aspromise": "^1.1.2", - "@protobufjs/base64": "^1.1.2", - "@protobufjs/codegen": "^2.0.4", - "@protobufjs/eventemitter": "^1.1.0", - "@protobufjs/fetch": "^1.1.0", - "@protobufjs/float": "^1.0.2", - "@protobufjs/inquire": "^1.1.0", - "@protobufjs/path": "^1.1.2", - "@protobufjs/pool": "^1.1.0", - "@protobufjs/utf8": "^1.1.0", - "@types/node": ">=13.7.0", - "long": "^5.0.0" - } - }, - "rxjs": { - "version": "7.8.0", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.0.tgz", - "integrity": "sha512-F2+gxDshqmIub1KdvZkaEfGDwLNpPvk9Fs6LD/MyQxNgMds/WH9OdDDXOmxUZpME+iSK3rQCctkL0DYyytUqMg==", - "requires": { - "tslib": "^2.1.0" - } - }, - "tslib": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz", - "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==" - } - } - }, - "@injectivelabs/exceptions": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/@injectivelabs/exceptions/-/exceptions-1.10.0.tgz", - "integrity": "sha512-YD9MEUEwJDalj+bV+/4P8TEqyR7asnQfjacCtuCYEF59qWsSYjYWxfZdZDssmSK8FA4HgJaQ2sghhK/LUfBneA==", - "requires": { - "@injectivelabs/grpc-web": "^0.0.1", - "@injectivelabs/ts-types": "^1.10.0", - "http-status-codes": "^2.2.0", - "link-module-alias": "^1.2.0", - "shx": "^0.3.2" - } - }, - "@injectivelabs/grpc-web": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/@injectivelabs/grpc-web/-/grpc-web-0.0.1.tgz", - "integrity": "sha512-Pu5YgaZp+OvR5UWfqbrPdHer3+gDf+b5fQoY+t2VZx1IAVHX8bzbN9EreYTvTYtFeDpYRWM8P7app2u4EX5wTw==", - "requires": { - "browser-headers": "^0.4.1" - } - }, - "@injectivelabs/grpc-web-node-http-transport": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/@injectivelabs/grpc-web-node-http-transport/-/grpc-web-node-http-transport-0.0.2.tgz", - "integrity": "sha512-rpyhXLiGY/UMs6v6YmgWHJHiO9l0AgDyVNv+jcutNVt4tQrmNvnpvz2wCAGOFtq5LuX/E9ChtTVpk3gWGqXcGA==", - "requires": {} - }, - "@injectivelabs/grpc-web-react-native-transport": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/@injectivelabs/grpc-web-react-native-transport/-/grpc-web-react-native-transport-0.0.2.tgz", - "integrity": "sha512-mk+aukQXnYNgPsPnu3KBi+FD0ZHQpazIlaBZ2jNZG7QAVmxTWtv3R66Zoq99Wx2dnE946NsZBYAoa0K5oSjnow==", - "requires": {} - }, - "@injectivelabs/indexer-proto-ts": { - "version": "0.0.9", - "resolved": "https://registry.npmjs.org/@injectivelabs/indexer-proto-ts/-/indexer-proto-ts-0.0.9.tgz", - "integrity": "sha512-ZFTUKlHAY2WYnB9RPPf11nq7SNm7wcKFTmFTavTiHV8UvNEni7dCR3Un6U5Mo1qD0xHEsfoCDMdqGcIguliPMA==", - "requires": { - "@injectivelabs/grpc-web": "^0.0.1", - "google-protobuf": "^3.14.0", - "protobufjs": "^7.0.0", - "rxjs": "^7.4.0" - }, - "dependencies": { - "long": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/long/-/long-5.2.1.tgz", - "integrity": "sha512-GKSNGeNAtw8IryjjkhZxuKB3JzlcLTwjtiQCHKvqQet81I93kXslhDQruGI/QsddO83mcDToBVy7GqGS/zYf/A==" - }, - "protobufjs": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.2.3.tgz", - "integrity": "sha512-TtpvOqwB5Gdz/PQmOjgsrGH1nHjAQVCN7JG4A6r1sXRWESL5rNMAiRcBQlCAdKxZcAbstExQePYG8xof/JVRgg==", - "requires": { - "@protobufjs/aspromise": "^1.1.2", - "@protobufjs/base64": "^1.1.2", - "@protobufjs/codegen": "^2.0.4", - "@protobufjs/eventemitter": "^1.1.0", - "@protobufjs/fetch": "^1.1.0", - "@protobufjs/float": "^1.0.2", - "@protobufjs/inquire": "^1.1.0", - "@protobufjs/path": "^1.1.2", - "@protobufjs/pool": "^1.1.0", - "@protobufjs/utf8": "^1.1.0", - "@types/node": ">=13.7.0", - "long": "^5.0.0" - } - }, - "rxjs": { - "version": "7.8.0", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.0.tgz", - "integrity": "sha512-F2+gxDshqmIub1KdvZkaEfGDwLNpPvk9Fs6LD/MyQxNgMds/WH9OdDDXOmxUZpME+iSK3rQCctkL0DYyytUqMg==", - "requires": { - "tslib": "^2.1.0" - } - }, - "tslib": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz", - "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==" - } - } - }, - "@injectivelabs/networks": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/@injectivelabs/networks/-/networks-1.10.0.tgz", - "integrity": "sha512-S0f1iWBcnc+HgvtIJLNlMC0iBsiT5AH0rXfwJpvkRehqwyB/J2WPKN7uOdsplK72nH4fauA3emokzGS8JknyEA==", - "requires": { - "@injectivelabs/exceptions": "^1.10.0", - "@injectivelabs/ts-types": "^1.10.0", - "@injectivelabs/utils": "^1.10.0", - "link-module-alias": "^1.2.0", - "shx": "^0.3.2" - } - }, - "@injectivelabs/ninja-proto-ts": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@injectivelabs/ninja-proto-ts/-/ninja-proto-ts-1.0.1.tgz", - "integrity": "sha512-ZHyVp/yPQcl7QdHxRU49G5xFVDXJwBtMvu7BW//nUVDrTWxBy2zS1AUYpL37nvKpTG9AtB1EqMYKLPXD2sdLsg==", - "requires": { - "@injectivelabs/grpc-web": "^0.0.1", - "google-protobuf": "^3.14.0", - "protobufjs": "^7.0.0", - "rxjs": "^7.4.0" - }, - "dependencies": { - "long": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/long/-/long-5.2.1.tgz", - "integrity": "sha512-GKSNGeNAtw8IryjjkhZxuKB3JzlcLTwjtiQCHKvqQet81I93kXslhDQruGI/QsddO83mcDToBVy7GqGS/zYf/A==" - }, - "protobufjs": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.2.3.tgz", - "integrity": "sha512-TtpvOqwB5Gdz/PQmOjgsrGH1nHjAQVCN7JG4A6r1sXRWESL5rNMAiRcBQlCAdKxZcAbstExQePYG8xof/JVRgg==", - "requires": { - "@protobufjs/aspromise": "^1.1.2", - "@protobufjs/base64": "^1.1.2", - "@protobufjs/codegen": "^2.0.4", - "@protobufjs/eventemitter": "^1.1.0", - "@protobufjs/fetch": "^1.1.0", - "@protobufjs/float": "^1.0.2", - "@protobufjs/inquire": "^1.1.0", - "@protobufjs/path": "^1.1.2", - "@protobufjs/pool": "^1.1.0", - "@protobufjs/utf8": "^1.1.0", - "@types/node": ">=13.7.0", - "long": "^5.0.0" - } - }, - "rxjs": { - "version": "7.8.0", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.0.tgz", - "integrity": "sha512-F2+gxDshqmIub1KdvZkaEfGDwLNpPvk9Fs6LD/MyQxNgMds/WH9OdDDXOmxUZpME+iSK3rQCctkL0DYyytUqMg==", - "requires": { - "tslib": "^2.1.0" - } - }, - "tslib": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz", - "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==" - } - } - }, - "@injectivelabs/sdk-ts": { - "version": "1.10.15", - "resolved": "https://registry.npmjs.org/@injectivelabs/sdk-ts/-/sdk-ts-1.10.15.tgz", - "integrity": "sha512-W8ysWwqmKBH8U8xe8n2B6vuSW9qu2sBf26VkdMGQE0del26EHfGSy5U5vTLGkdXP+ZgBabvcAzGhuIBr6V8vxQ==", - "requires": { - "@apollo/client": "^3.5.8", - "@cosmjs/amino": "^0.29.5", - "@cosmjs/proto-signing": "^0.29.5", - "@cosmjs/stargate": "^0.29.5", - "@ethersproject/bytes": "^5.7.0", - "@injectivelabs/core-proto-ts": "^0.0.11", - "@injectivelabs/exceptions": "^1.10.0", - "@injectivelabs/grpc-web": "^0.0.1", - "@injectivelabs/grpc-web-node-http-transport": "^0.0.2", - "@injectivelabs/grpc-web-react-native-transport": "^0.0.2", - "@injectivelabs/indexer-proto-ts": "^0.0.9", - "@injectivelabs/networks": "^1.10.0", - "@injectivelabs/ninja-proto-ts": "1.0.1", - "@injectivelabs/test-utils": "^1.10.0", - "@injectivelabs/token-metadata": "^1.10.4", - "@injectivelabs/ts-types": "^1.10.0", - "@injectivelabs/utils": "^1.10.0", - "@metamask/eth-sig-util": "^4.0.0", - "axios": "^0.27.2", - "bech32": "^2.0.0", - "bip39": "^3.0.4", - "cosmjs-types": "^0.7.1", - "eth-crypto": "^2.6.0", - "ethereumjs-util": "^7.1.4", - "ethers": "^5.6.4", - "google-protobuf": "^3.21.0", - "graphql": "^16.3.0", - "http-status-codes": "^2.2.0", - "js-sha3": "^0.8.0", - "jscrypto": "^1.0.3", - "keccak256": "^1.0.6", - "link-module-alias": "^1.2.0", - "rxjs": "^7.8.0", - "secp256k1": "^4.0.3", - "shx": "^0.3.2", - "snakecase-keys": "^5.4.1" - }, - "dependencies": { - "@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==", - "requires": { - "@types/node": "*" - } - }, - "axios": { - "version": "0.27.2", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.27.2.tgz", - "integrity": "sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==", - "requires": { - "follow-redirects": "^1.14.9", - "form-data": "^4.0.0" - } - }, - "bn.js": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", - "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==" - }, - "ethereumjs-util": { - "version": "7.1.5", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.5.tgz", - "integrity": "sha512-SDl5kKrQAudFBUe5OJM9Ac6WmMyYmXX/6sTmLZ3ffG2eY6ZIGBes3pEDxNN6V72WyOw4CPD5RomKdsa8DAAwLg==", - "requires": { - "@types/bn.js": "^5.1.0", - "bn.js": "^5.1.2", - "create-hash": "^1.1.2", - "ethereum-cryptography": "^0.1.3", - "rlp": "^2.2.4" - } - }, - "follow-redirects": { - "version": "1.15.2", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", - "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==" - }, - "form-data": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", - "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - } - }, - "graphql": { - "version": "16.6.0", - "resolved": "https://registry.npmjs.org/graphql/-/graphql-16.6.0.tgz", - "integrity": "sha512-KPIBPDlW7NxrbT/eh4qPXz5FiFdL5UbaA0XUNz2Rp3Z3hqBSkbj0GVjwFDztsWVauZUWsbKHgMg++sk8UX0bkw==" - }, - "js-sha3": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.8.0.tgz", - "integrity": "sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q==" - }, - "rxjs": { - "version": "7.8.0", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.0.tgz", - "integrity": "sha512-F2+gxDshqmIub1KdvZkaEfGDwLNpPvk9Fs6LD/MyQxNgMds/WH9OdDDXOmxUZpME+iSK3rQCctkL0DYyytUqMg==", - "requires": { - "tslib": "^2.1.0" - } - }, - "secp256k1": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-4.0.3.tgz", - "integrity": "sha512-NLZVf+ROMxwtEj3Xa562qgv2BK5e2WNmXPiOdVIPLgs6lyTzMvBq0aWTYMI5XCP9jZMVKOcqZLw/Wc4vDkuxhA==", - "requires": { - "elliptic": "^6.5.4", - "node-addon-api": "^2.0.0", - "node-gyp-build": "^4.2.0" - } - }, - "tslib": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz", - "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==" - } - } - }, - "@injectivelabs/test-utils": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/@injectivelabs/test-utils/-/test-utils-1.10.0.tgz", - "integrity": "sha512-OS1AUq3Wu4nxhchpOa/zjAp2rgq5aKniLnNt07RzQQAM+4mPw3PcF7zWuClkUFAgVCxlpvFnV1f6LyzXW46mGQ==", - "requires": { - "axios": "^0.21.1", - "bignumber.js": "^9.0.1", - "link-module-alias": "^1.2.0", - "shx": "^0.3.2", - "snakecase-keys": "^5.1.2", - "store2": "^2.12.0" - }, - "dependencies": { - "axios": { - "version": "0.21.4", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.4.tgz", - "integrity": "sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==", - "requires": { - "follow-redirects": "^1.14.0" - } - }, - "bignumber.js": { - "version": "9.1.1", - "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.1.1.tgz", - "integrity": "sha512-pHm4LsMJ6lzgNGVfZHjMoO8sdoRhOzOH4MLmY65Jg70bpxCKu5iOHNJyfF6OyvYw7t8Fpf35RuzUyqnQsj8Vig==" - }, - "follow-redirects": { - "version": "1.15.2", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", - "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==" - } - } - }, - "@injectivelabs/token-metadata": { - "version": "1.10.4", - "resolved": "https://registry.npmjs.org/@injectivelabs/token-metadata/-/token-metadata-1.10.4.tgz", - "integrity": "sha512-2uCRkL5pYaLSziva9w4cpH0AJ+JMgg2irA22dEkM5JPK9kLB4rv0gey1Us7EzcX6WnY4RRO3aN2e0uTG08WVzA==", - "requires": { - "@injectivelabs/exceptions": "^1.10.0", - "@injectivelabs/networks": "^1.10.0", - "@injectivelabs/ts-types": "^1.10.0", - "@injectivelabs/utils": "^1.10.0", - "@types/lodash.values": "^4.3.6", - "copyfiles": "^2.4.1", - "jsonschema": "^1.4.0", - "link-module-alias": "^1.2.0", - "lodash": "^4.17.21", - "lodash.values": "^4.3.0", - "shx": "^0.3.2" - } - }, - "@injectivelabs/ts-types": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/@injectivelabs/ts-types/-/ts-types-1.10.0.tgz", - "integrity": "sha512-2PczKP93fmkg4HIbg1ZWO115GF1oUQaCkc34SRDYDZ9oGjAnr3rV31tju4DW9uxT8eVb2olxqUy71LVHGD7AUA==", - "requires": { - "link-module-alias": "^1.2.0", - "shx": "^0.3.2" - } - }, - "@injectivelabs/utils": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/@injectivelabs/utils/-/utils-1.10.0.tgz", - "integrity": "sha512-r7/z1+0Xd6XSYnLf+IO2ydQ0VRFBw2ETxWdvvkpsror3uYLvaAcuCjkRhNsOYM5R4VPCER+0TBm6sm5A1ahiQw==", - "requires": { - "@injectivelabs/exceptions": "^1.10.0", - "@injectivelabs/ts-types": "^1.10.0", - "axios": "^0.21.1", - "bignumber.js": "^9.0.1", - "http-status-codes": "^2.2.0", - "link-module-alias": "^1.2.0", - "shx": "^0.3.2", - "snakecase-keys": "^5.1.2", - "store2": "^2.12.0" - }, - "dependencies": { - "axios": { - "version": "0.21.4", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.4.tgz", - "integrity": "sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==", - "requires": { - "follow-redirects": "^1.14.0" - } - }, - "bignumber.js": { - "version": "9.1.1", - "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.1.1.tgz", - "integrity": "sha512-pHm4LsMJ6lzgNGVfZHjMoO8sdoRhOzOH4MLmY65Jg70bpxCKu5iOHNJyfF6OyvYw7t8Fpf35RuzUyqnQsj8Vig==" - }, - "follow-redirects": { - "version": "1.15.2", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", - "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==" - } - } - }, - "@josephg/resolvable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@josephg/resolvable/-/resolvable-1.0.1.tgz", - "integrity": "sha512-CtzORUwWTTOTqfVtHaKRJ0I1kNQd1bpn3sUh8I3nJDVY+5/M/Oe1DnEWzPQvqq/xPIIkzzzIP7mfCoAjFRvDhg==", - "dev": true, - "optional": true - }, - "@jridgewell/resolve-uri": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz", - "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==", - "dev": true - }, - "@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 - }, - "@jridgewell/trace-mapping": { - "version": "0.3.9", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", - "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", - "dev": true, - "requires": { - "@jridgewell/resolve-uri": "^3.0.3", - "@jridgewell/sourcemap-codec": "^1.4.10" - } - }, - "@metamask/eth-sig-util": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@metamask/eth-sig-util/-/eth-sig-util-4.0.1.tgz", - "integrity": "sha512-tghyZKLHZjcdlDqCA3gNZmLeR0XvOE9U1qoQO9ohyAZT6Pya+H9vkBPcsyXytmYLNgVoin7CKCmweo/R43V+tQ==", - "requires": { - "ethereumjs-abi": "^0.6.8", - "ethereumjs-util": "^6.2.1", - "ethjs-util": "^0.1.6", - "tweetnacl": "^1.0.3", - "tweetnacl-util": "^0.15.1" - }, - "dependencies": { - "tweetnacl": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.3.tgz", - "integrity": "sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==" - } - } - }, - "@morgan-stanley/ts-mocking-bird": { - "version": "0.6.4", - "resolved": "https://registry.npmjs.org/@morgan-stanley/ts-mocking-bird/-/ts-mocking-bird-0.6.4.tgz", - "integrity": "sha512-57VJIflP8eR2xXa9cD1LUawh+Gh+BVQfVu0n6GALyg/AqV/Nz25kDRvws3i9kIe1PTrbsZZOYpsYp6bXPd6nVA==", - "requires": { - "lodash": "^4.17.16", - "uuid": "^7.0.3" - }, - "dependencies": { - "uuid": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-7.0.3.tgz", - "integrity": "sha512-DPSke0pXhTZgoF/d+WSt2QaKMCFSfx7QegxEWT+JOuHF5aWrKEn0G+ztjuJg/gG8/ItK+rbPCD/yNv8yyih6Cg==" - } - } - }, - "@multiformats/base-x": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@multiformats/base-x/-/base-x-4.0.1.tgz", - "integrity": "sha512-eMk0b9ReBbV23xXU693TAIrLyeO5iTgBZGSJfpqriG8UkYvr/hC9u9pyMlAakDNHWmbhMZCDs6KQO0jzKD8OTw==" - }, - "@noble/ed25519": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/@noble/ed25519/-/ed25519-1.7.3.tgz", - "integrity": "sha512-iR8GBkDt0Q3GyaVcIu7mSsVIqnFbkbRzGLWlvhwunacoLwt4J3swfKhfaM6rN6WY+TBGoYT1GtT1mIh2/jGbRQ==" - }, - "@noble/hashes": { - "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": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/@noble/secp256k1/-/secp256k1-1.7.1.tgz", - "integrity": "sha512-hOUk6AyBFmqVrv7k5WAw/LpszxVbj9gGN4JRkIX52fdFAj1UA61KXmZDvqVEm+pOyec3+fIeZB02LYa/pWOArw==" - }, - "@openzeppelin/cli": { - "version": "2.8.2", - "resolved": "https://registry.npmjs.org/@openzeppelin/cli/-/cli-2.8.2.tgz", - "integrity": "sha512-K0m1UAywnweAwzbwwmqI+JSezDRnqDRWkKQMI2VV6T03LOXcG/L9oqO9KRORI8md+KbxBW9v5rmNV63wGQIRlA==", - "dev": true, - "requires": { - "@openzeppelin/fuzzy-solidity-import-parser": "^0.1.2", - "@openzeppelin/upgrades": "2.8.0", - "@types/fs-extra": "^7.0.0", - "@types/npm": "^2.0.29", - "@types/semver": "^5.5.0", - "ajv": "^6.10.0", - "axios": "^0.18.0", - "bignumber.js": "^8.0.2", - "chalk": "^2.4.1", - "cheerio": "^1.0.0-rc.2", - "commander": "^2.15.1", - "env-paths": "^2.2.0", - "ethereumjs-util": "^6.1.0", - "find-up": "^3.0.0", - "firebase": "^7.8.0", - "fs-extra": "^7.0.1", - "glob": "^7.1.6", - "inquirer": "^6.4.1", - "is-url": "^1.2.4", - "lockfile": "^1.0.4", - "npm-programmatic": "0.0.12", - "rlp": "^2.2.3", - "semver": "^5.5.0", - "simple-git": "^1.110.0", - "solc-wrapper": "^0.6.3", - "spinnies": "^0.3.0", - "toposort": "^2.0.2", - "truffle-config": "1.1.16", - "ts-generator": "^0.0.8", - "typechain": "^1.0.3", - "typechain-target-truffle": "^1.0.1", - "typechain-target-web3-v1": "^1.0.1", - "underscore": "^1.9.1", - "uuid": "^3.3.3", - "web3": "1.2.2", - "web3-eth": "1.2.2", - "web3-eth-contract": "1.2.2", - "web3-utils": "1.2.2" - }, - "dependencies": { - "array-back": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-2.0.0.tgz", - "integrity": "sha512-eJv4pLLufP3g5kcZry0j6WXpIbzYw9GUB4mVJZno9wfwiBxbizTnHCw3VJb07cBihbFX48Y7oSrW9y+gt4glyw==", - "dev": true, - "requires": { - "typical": "^2.6.1" - } - }, - "command-line-args": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/command-line-args/-/command-line-args-4.0.7.tgz", - "integrity": "sha512-aUdPvQRAyBvQd2n7jXcsMDz68ckBJELXNzBybCHOibUWEg0mWTnaYCSRU8h9R+aNRSvDihJtssSRCiDRpLaezA==", - "dev": true, - "requires": { - "array-back": "^2.0.0", - "find-replace": "^1.0.3", - "typical": "^2.6.1" - } - }, - "find-replace": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/find-replace/-/find-replace-1.0.3.tgz", - "integrity": "sha512-KrUnjzDCD9426YnCP56zGYy/eieTnhtK6Vn++j+JJzmlsWWwEkDnsyVF575spT6HJ6Ow9tlbT3TQTDsa+O4UWA==", - "dev": true, - "requires": { - "array-back": "^1.0.4", - "test-value": "^2.1.0" - }, - "dependencies": { - "array-back": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-1.0.4.tgz", - "integrity": "sha512-1WxbZvrmyhkNoeYcizokbmh5oiOCIfyvGtcqbK3Ls1v1fKcquzxnQSceOx6tzq7jmai2kFLWIpGND2cLhH6TPw==", - "dev": true, - "requires": { - "typical": "^2.6.0" - } - } - } - }, - "js-sha3": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.8.0.tgz", - "integrity": "sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q==", - "dev": true - }, - "typechain": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/typechain/-/typechain-1.0.5.tgz", - "integrity": "sha512-gbQmJXPKuYQ0p3tK+dMhpdQql/UPtSnkPQXw2QM/aqwCengI86z2vEM2e5rVQpmk/blFx1PYNdApSDxE12rR1Q==", - "dev": true, - "requires": { - "command-line-args": "^4.0.7", - "debug": "^3.0.1", - "fs-extra": "^7.0.0", - "js-sha3": "^0.8.0", - "lodash": "^4.17.15", - "ts-generator": "^0.0.8" - } - }, - "typical": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/typical/-/typical-2.6.1.tgz", - "integrity": "sha512-ofhi8kjIje6npGozTip9Fr8iecmYfEbS06i0JnIg+rh51KakryWF4+jX8lLKZVhy6N+ID45WYSFCxPOdTWCzNg==", - "dev": true - } - } - }, - "@openzeppelin/contracts": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/@openzeppelin/contracts/-/contracts-4.3.1.tgz", - "integrity": "sha512-QjgbPPlmDK2clK1hzjw2ROfY8KA5q+PfhDUUxZFEBCZP9fi6d5FuNoh/Uq0oCTMEKPmue69vhX2jcl0N/tFKGw==", - "dev": true - }, - "@openzeppelin/fuzzy-solidity-import-parser": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/@openzeppelin/fuzzy-solidity-import-parser/-/fuzzy-solidity-import-parser-0.1.2.tgz", - "integrity": "sha512-leqEwfs8GlrPDrVcVc8Hv6LJ62ZzR0RgjwQNCkpT6H5jW9RB8YdR0a3inHoricSvw+sKI1b1hOqsCtPPZNnhng==", - "dev": true - }, - "@openzeppelin/upgrades": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/@openzeppelin/upgrades/-/upgrades-2.8.0.tgz", - "integrity": "sha512-LzjTQPeljPsgHDPdZyH9cMCbIHZILgd2cpNcYEkdsC2IylBYRHShlbEDXJV9snnqg9JWfzPiKIqyj3XVliwtqQ==", - "dev": true, - "requires": { - "@types/cbor": "^2.0.0", - "axios": "^0.18.0", - "bignumber.js": "^7.2.0", - "cbor": "^4.1.5", - "chalk": "^2.4.1", - "ethers": "^4.0.20", - "glob": "^7.1.3", - "lodash": "^4.17.15", - "semver": "^5.5.1", - "spinnies": "^0.4.2", - "truffle-flattener": "^1.4.0", - "web3": "1.2.2", - "web3-eth": "1.2.2", - "web3-eth-contract": "1.2.2", - "web3-utils": "1.2.2" - }, - "dependencies": { - "bignumber.js": { - "version": "7.2.1", - "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-7.2.1.tgz", - "integrity": "sha512-S4XzBk5sMB+Rcb/LNcpzXr57VRTxgAvaAEDAl1AwRx27j00hT84O6OkteE7u8UB3NuaaygCRrEpqox4uDOrbdQ==", - "dev": true - }, - "ethers": { - "version": "4.0.49", - "resolved": "https://registry.npmjs.org/ethers/-/ethers-4.0.49.tgz", - "integrity": "sha512-kPltTvWiyu+OktYy1IStSO16i2e7cS9D9OxZ81q2UUaiNPVrm/RTcbxamCXF9VUSKzJIdJV68EAIhTEVBalRWg==", - "dev": true, - "requires": { - "aes-js": "3.0.0", - "bn.js": "^4.11.9", - "elliptic": "6.5.4", - "hash.js": "1.1.3", - "js-sha3": "0.5.7", - "scrypt-js": "2.0.4", - "setimmediate": "1.0.4", - "uuid": "2.0.1", - "xmlhttprequest": "1.8.0" - } - }, - "spinnies": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/spinnies/-/spinnies-0.4.3.tgz", - "integrity": "sha512-TTA2vWXrXJpfThWAl2t2hchBnCMI1JM5Wmb2uyI7Zkefdw/xO98LDy6/SBYwQPiYXL3swx3Eb44ZxgoS8X5wpA==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "cli-cursor": "^3.0.0", - "strip-ansi": "^5.2.0" - } - }, - "uuid": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-2.0.1.tgz", - "integrity": "sha512-nWg9+Oa3qD2CQzHIP4qKUqwNfzKn8P0LtFhotaCTFchsV7ZfDhAybeip/HZVeMIpZi9JgY1E3nUlwaCmZT1sEg==", - "dev": true - } - } - }, - "@project-serum/anchor": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@project-serum/anchor/-/anchor-0.25.0.tgz", - "integrity": "sha512-E6A5Y/ijqpfMJ5psJvbw0kVTzLZFUcOFgs6eSM2M2iWE1lVRF18T6hWZVNl6zqZsoz98jgnNHtVGJMs+ds9A7A==", - "requires": { - "@project-serum/borsh": "^0.2.5", - "@solana/web3.js": "^1.36.0", - "base64-js": "^1.5.1", - "bn.js": "^5.1.2", - "bs58": "^4.0.1", - "buffer-layout": "^1.2.2", - "camelcase": "^5.3.1", - "cross-fetch": "^3.1.5", - "crypto-hash": "^1.3.0", - "eventemitter3": "^4.0.7", - "js-sha256": "^0.9.0", - "pako": "^2.0.3", - "snake-case": "^3.0.4", - "superstruct": "^0.15.4", - "toml": "^3.0.0" - }, - "dependencies": { - "bn.js": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", - "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==" - }, - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" - }, - "cross-fetch": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.5.tgz", - "integrity": "sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw==", - "requires": { - "node-fetch": "2.6.7" - } - }, - "dot-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz", - "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==", - "requires": { - "no-case": "^3.0.4", - "tslib": "^2.0.3" - } - }, - "eventemitter3": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", - "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==" - }, - "lower-case": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", - "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", - "requires": { - "tslib": "^2.0.3" - } - }, - "no-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", - "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", - "requires": { - "lower-case": "^2.0.2", - "tslib": "^2.0.3" - } - }, - "node-fetch": { - "version": "2.6.7", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", - "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", - "requires": { - "whatwg-url": "^5.0.0" - } - }, - "pako": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/pako/-/pako-2.1.0.tgz", - "integrity": "sha512-w+eufiZ1WuJYgPXbV/PO3NCMEc3xqylkKHzp8bxp1uW4qaSNQUkwmLLEc3kKsfz8lpV1F8Ht3U1Cm+9Srog2ug==" - }, - "snake-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/snake-case/-/snake-case-3.0.4.tgz", - "integrity": "sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==", - "requires": { - "dot-case": "^3.0.4", - "tslib": "^2.0.3" - } - }, - "tslib": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz", - "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==" - } - } - }, - "@project-serum/borsh": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/@project-serum/borsh/-/borsh-0.2.5.tgz", - "integrity": "sha512-UmeUkUoKdQ7rhx6Leve1SssMR/Ghv8qrEiyywyxSWg7ooV7StdpPBhciiy5eB3T0qU1BXvdRNC8TdrkxK7WC5Q==", - "requires": { - "bn.js": "^5.1.2", - "buffer-layout": "^1.2.0" - }, - "dependencies": { - "bn.js": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", - "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==" - } - } - }, - "@protobufjs/aspromise": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", - "integrity": "sha1-m4sMxmPWaafY9vXQiToU00jzD78=" - }, - "@protobufjs/base64": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz", - "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==" - }, - "@protobufjs/codegen": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz", - "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==" - }, - "@protobufjs/eventemitter": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz", - "integrity": "sha1-NVy8mLr61ZePntCV85diHx0Ga3A=" - }, - "@protobufjs/fetch": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz", - "integrity": "sha1-upn7WYYUr2VwDBYZ/wbUVLDYTEU=", - "requires": { - "@protobufjs/aspromise": "^1.1.1", - "@protobufjs/inquire": "^1.1.0" - } - }, - "@protobufjs/float": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz", - "integrity": "sha1-Xp4avctz/Ap8uLKR33jIy9l7h9E=" - }, - "@protobufjs/inquire": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz", - "integrity": "sha1-/yAOPnzyQp4tyvwRQIKOjMY48Ik=" - }, - "@protobufjs/path": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz", - "integrity": "sha1-bMKyDFya1q0NzP0hynZz2Nf79o0=" - }, - "@protobufjs/pool": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz", - "integrity": "sha1-Cf0V8tbTq/qbZbw2ZQbWrXhG/1Q=" - }, - "@protobufjs/utf8": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", - "integrity": "sha1-p3c2C1s5oaLlEG+OhY8v0tBgxXA=" - }, - "@redux-saga/core": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/@redux-saga/core/-/core-1.2.3.tgz", - "integrity": "sha512-U1JO6ncFBAklFTwoQ3mjAeQZ6QGutsJzwNBjgVLSWDpZTRhobUzuVDS1qH3SKGJD8fvqoaYOjp6XJ3gCmeZWgA==", - "dev": true, - "requires": { - "@babel/runtime": "^7.6.3", - "@redux-saga/deferred": "^1.2.1", - "@redux-saga/delay-p": "^1.2.1", - "@redux-saga/is": "^1.1.3", - "@redux-saga/symbols": "^1.1.3", - "@redux-saga/types": "^1.2.1", - "redux": "^4.0.4", - "typescript-tuple": "^2.2.1" - }, - "dependencies": { - "redux": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/redux/-/redux-4.2.1.tgz", - "integrity": "sha512-LAUYz4lc+Do8/g7aeRa8JkyDErK6ekstQaqWQrNRW//MY1TvCEpMtpTWvlQ+FPbWCx+Xixu/6SHt5N0HR+SB4w==", - "dev": true, - "requires": { - "@babel/runtime": "^7.9.2" - } - } - } - }, - "@redux-saga/deferred": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@redux-saga/deferred/-/deferred-1.2.1.tgz", - "integrity": "sha512-cmin3IuuzMdfQjA0lG4B+jX+9HdTgHZZ+6u3jRAOwGUxy77GSlTi4Qp2d6PM1PUoTmQUR5aijlA39scWWPF31g==", - "dev": true - }, - "@redux-saga/delay-p": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@redux-saga/delay-p/-/delay-p-1.2.1.tgz", - "integrity": "sha512-MdiDxZdvb1m+Y0s4/hgdcAXntpUytr9g0hpcOO1XFVyyzkrDu3SKPgBFOtHn7lhu7n24ZKIAT1qtKyQjHqRd+w==", - "dev": true, - "requires": { - "@redux-saga/symbols": "^1.1.3" - } - }, - "@redux-saga/is": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@redux-saga/is/-/is-1.1.3.tgz", - "integrity": "sha512-naXrkETG1jLRfVfhOx/ZdLj0EyAzHYbgJWkXbB3qFliPcHKiWbv/ULQryOAEKyjrhiclmr6AMdgsXFyx7/yE6Q==", - "dev": true, - "requires": { - "@redux-saga/symbols": "^1.1.3", - "@redux-saga/types": "^1.2.1" - } - }, - "@redux-saga/symbols": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@redux-saga/symbols/-/symbols-1.1.3.tgz", - "integrity": "sha512-hCx6ZvU4QAEUojETnX8EVg4ubNLBFl1Lps4j2tX7o45x/2qg37m3c6v+kSp8xjDJY+2tJw4QB3j8o8dsl1FDXg==", - "dev": true - }, - "@redux-saga/types": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@redux-saga/types/-/types-1.2.1.tgz", - "integrity": "sha512-1dgmkh+3so0+LlBWRhGA33ua4MYr7tUOj+a9Si28vUi0IUFNbff1T3sgpeDJI/LaC75bBYnQ0A3wXjn0OrRNBA==", - "dev": true - }, - "@resolver-engine/core": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/@resolver-engine/core/-/core-0.2.1.tgz", - "integrity": "sha512-nsLQHmPJ77QuifqsIvqjaF5B9aHnDzJjp73Q1z6apY3e9nqYrx4Dtowhpsf7Jwftg/XzVDEMQC+OzUBNTS+S1A==", - "dev": true, - "requires": { - "debug": "^3.1.0", - "request": "^2.85.0" - } - }, - "@resolver-engine/fs": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/@resolver-engine/fs/-/fs-0.2.1.tgz", - "integrity": "sha512-7kJInM1Qo2LJcKyDhuYzh9ZWd+mal/fynfL9BNjWOiTcOpX+jNfqb/UmGUqros5pceBITlWGqS4lU709yHFUbg==", - "dev": true, - "requires": { - "@resolver-engine/core": "^0.2.1", - "debug": "^3.1.0" - } - }, - "@resolver-engine/imports": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/@resolver-engine/imports/-/imports-0.2.2.tgz", - "integrity": "sha512-u5/HUkvo8q34AA+hnxxqqXGfby5swnH0Myw91o3Sm2TETJlNKXibFGSKBavAH+wvWdBi4Z5gS2Odu0PowgVOUg==", - "dev": true, - "requires": { - "@resolver-engine/core": "^0.2.1", - "debug": "^3.1.0", - "hosted-git-info": "^2.6.0" - } - }, - "@resolver-engine/imports-fs": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/@resolver-engine/imports-fs/-/imports-fs-0.2.2.tgz", - "integrity": "sha512-gFCgMvCwyppjwq0UzIjde/WI+yDs3oatJhozG9xdjJdewwtd7LiF0T5i9lrHAUtqrQbqoFE4E+ZMRVHWpWHpKQ==", - "dev": true, - "requires": { - "@resolver-engine/fs": "^0.2.1", - "@resolver-engine/imports": "^0.2.2", - "debug": "^3.1.0" - } - }, - "@scure/base": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@scure/base/-/base-1.1.1.tgz", - "integrity": "sha512-ZxOhsSyxYwLJj3pLZCefNitxsj093tb2vq90mp2txoYeBqbcjDjqFhyM8eUjq/uFm6zJ+mUuqxlS2FkuSY1MTA==" - }, - "@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==", - "requires": { - "@noble/hashes": "~1.1.1", - "@scure/base": "~1.1.0" - }, - "dependencies": { - "@noble/hashes": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.1.5.tgz", - "integrity": "sha512-LTMZiiLc+V4v1Yi16TD6aX2gmtKszNye0pQgbaLqkvhIqP7nVsSaJsWloGQjJfJ8offaoP5GtX3yY5swbcJxxQ==" - } - } - }, - "@sindresorhus/is": { - "version": "0.14.0", - "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", - "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==", - "dev": true - }, - "@solana/buffer-layout": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@solana/buffer-layout/-/buffer-layout-4.0.1.tgz", - "integrity": "sha512-E1ImOIAD1tBZFRdjeM4/pzTiTApC0AOBGwyAMS4fwIodCWArzJ3DWdoh8cKxeFM2fElkxBh2Aqts1BPC373rHA==", - "requires": { - "buffer": "~6.0.3" - }, - "dependencies": { - "buffer": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", - "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", - "requires": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" - } - } - } - }, - "@solana/buffer-layout-utils": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/@solana/buffer-layout-utils/-/buffer-layout-utils-0.2.0.tgz", - "integrity": "sha512-szG4sxgJGktbuZYDg2FfNmkMi0DYQoVjN2h7ta1W1hPrwzarcFLBq9UpX1UjNXsNpT9dn+chgprtWGioUAr4/g==", - "requires": { - "@solana/buffer-layout": "^4.0.0", - "@solana/web3.js": "^1.32.0", - "bigint-buffer": "^1.1.5", - "bignumber.js": "^9.0.1" - }, - "dependencies": { - "bignumber.js": { - "version": "9.1.1", - "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.1.1.tgz", - "integrity": "sha512-pHm4LsMJ6lzgNGVfZHjMoO8sdoRhOzOH4MLmY65Jg70bpxCKu5iOHNJyfF6OyvYw7t8Fpf35RuzUyqnQsj8Vig==" - } - } - }, - "@solana/spl-token": { - "version": "0.3.7", - "resolved": "https://registry.npmjs.org/@solana/spl-token/-/spl-token-0.3.7.tgz", - "integrity": "sha512-bKGxWTtIw6VDdCBngjtsGlKGLSmiu/8ghSt/IOYJV24BsymRbgq7r12GToeetpxmPaZYLddKwAz7+EwprLfkfg==", - "requires": { - "@solana/buffer-layout": "^4.0.0", - "@solana/buffer-layout-utils": "^0.2.0", - "buffer": "^6.0.3" - }, - "dependencies": { - "buffer": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", - "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", - "requires": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" - } - } - } - }, - "@solana/web3.js": { - "version": "1.74.0", - "resolved": "https://registry.npmjs.org/@solana/web3.js/-/web3.js-1.74.0.tgz", - "integrity": "sha512-RKZyPqizPCxmpMGfpu4fuplNZEWCrhRBjjVstv5QnAJvgln1jgOfgui+rjl1ExnqDnWKg9uaZ5jtGROH/cwabg==", - "requires": { - "@babel/runtime": "^7.12.5", - "@noble/ed25519": "^1.7.0", - "@noble/hashes": "^1.1.2", - "@noble/secp256k1": "^1.6.3", - "@solana/buffer-layout": "^4.0.0", - "agentkeepalive": "^4.2.1", - "bigint-buffer": "^1.1.5", - "bn.js": "^5.0.0", - "borsh": "^0.7.0", - "bs58": "^4.0.1", - "buffer": "6.0.1", - "fast-stable-stringify": "^1.0.0", - "jayson": "^3.4.4", - "node-fetch": "^2.6.7", - "rpc-websockets": "^7.5.1", - "superstruct": "^0.14.2" - }, - "dependencies": { - "bn.js": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", - "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==" - }, - "buffer": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.1.tgz", - "integrity": "sha512-rVAXBwEcEoYtxnHSO5iWyhzV/O1WMtkUYWlfdLS7FjU4PnSJJHEfHXi/uHPI5EwltmOA794gN3bm3/pzuctWjQ==", - "requires": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" - } - }, - "eventemitter3": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", - "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==" - }, - "node-fetch": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.9.tgz", - "integrity": "sha512-DJm/CJkZkRjKKj4Zi4BsKVZh3ValV5IR5s7LVZnW+6YMh0W1BfNA8XSs6DLMGYlId5F3KnA70uu2qepcR08Qqg==", - "requires": { - "whatwg-url": "^5.0.0" - } - }, - "rpc-websockets": { - "version": "7.5.1", - "resolved": "https://registry.npmjs.org/rpc-websockets/-/rpc-websockets-7.5.1.tgz", - "integrity": "sha512-kGFkeTsmd37pHPMaHIgN1LVKXMi0JD782v4Ds9ZKtLlwdTKjn+CxM9A9/gLT2LaOuEcEFGL98h1QWQtlOIdW0w==", - "requires": { - "@babel/runtime": "^7.17.2", - "bufferutil": "^4.0.1", - "eventemitter3": "^4.0.7", - "utf-8-validate": "^5.0.2", - "uuid": "^8.3.2", - "ws": "^8.5.0" - } - }, - "superstruct": { - "version": "0.14.2", - "resolved": "https://registry.npmjs.org/superstruct/-/superstruct-0.14.2.tgz", - "integrity": "sha512-nPewA6m9mR3d6k7WkZ8N8zpTWfenFH3q9pA2PkuiZxINr9DKB2+40wEQf0ixn8VaGuJ78AB6iWOtStI+/4FKZQ==" - }, - "uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==" - }, - "ws": { - "version": "8.13.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.13.0.tgz", - "integrity": "sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA==", - "requires": {} - } - } - }, - "@solidity-parser/parser": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/@solidity-parser/parser/-/parser-0.14.5.tgz", - "integrity": "sha512-6dKnHZn7fg/iQATVEzqyUOyEidbn05q7YA2mQ9hC0MMXhhV3/JrsxmFSYZAcr7j1yUP700LLhTruvJ3MiQmjJg==", - "dev": true, - "requires": { - "antlr4ts": "^0.5.0-alpha.4" - } - }, - "@szmarczak/http-timer": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz", - "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==", - "dev": true, - "requires": { - "defer-to-connect": "^1.0.1" - } - }, - "@terra-money/legacy.proto": { - "version": "npm:@terra-money/terra.proto@0.1.7", - "resolved": "https://registry.npmjs.org/@terra-money/terra.proto/-/terra.proto-0.1.7.tgz", - "integrity": "sha512-NXD7f6pQCulvo6+mv6MAPzhOkUzRjgYVuHZE/apih+lVnPG5hDBU0rRYnOGGofwvKT5/jQoOENnFn/gioWWnyQ==", - "requires": { - "google-protobuf": "^3.17.3", - "long": "^4.0.0", - "protobufjs": "~6.11.2" - } - }, - "@terra-money/terra.js": { - "version": "3.1.8", - "resolved": "https://registry.npmjs.org/@terra-money/terra.js/-/terra.js-3.1.8.tgz", - "integrity": "sha512-Cd/fh4MswT00fDGVckoZ0cm77EpIy4+CjSDO0RqZ3Qfp4CJBp7sWTLRNsyzUWjdYOT5iTx+1wOMCYbbyKo6LAw==", - "requires": { - "@classic-terra/terra.proto": "^1.1.0", - "@terra-money/terra.proto": "^2.1.0", - "axios": "^0.27.2", - "bech32": "^2.0.0", - "bip32": "^2.0.6", - "bip39": "^3.0.3", - "bufferutil": "^4.0.3", - "decimal.js": "^10.2.1", - "jscrypto": "^1.0.1", - "readable-stream": "^3.6.0", - "secp256k1": "^4.0.2", - "tmp": "^0.2.1", - "utf-8-validate": "^5.0.5", - "ws": "^7.5.9" - }, - "dependencies": { - "axios": { - "version": "0.27.2", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.27.2.tgz", - "integrity": "sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==", - "requires": { - "follow-redirects": "^1.14.9", - "form-data": "^4.0.0" - } - }, - "follow-redirects": { - "version": "1.15.2", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", - "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==" - }, - "form-data": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", - "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - } - }, - "readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - }, - "rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "requires": { - "glob": "^7.1.3" - } - }, - "tmp": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz", - "integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==", - "requires": { - "rimraf": "^3.0.0" - } - }, - "ws": { - "version": "7.5.9", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz", - "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==", - "requires": {} - } - } - }, - "@terra-money/terra.proto": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@terra-money/terra.proto/-/terra.proto-2.1.0.tgz", - "integrity": "sha512-rhaMslv3Rkr+QsTQEZs64FKA4QlfO0DfQHaR6yct/EovenMkibDEQ63dEL6yJA6LCaEQGYhyVB9JO9pTUA8ybw==", - "requires": { - "@improbable-eng/grpc-web": "^0.14.1", - "google-protobuf": "^3.17.3", - "long": "^4.0.0", - "protobufjs": "~6.11.2" - }, - "dependencies": { - "@improbable-eng/grpc-web": { - "version": "0.14.1", - "resolved": "https://registry.npmjs.org/@improbable-eng/grpc-web/-/grpc-web-0.14.1.tgz", - "integrity": "sha512-XaIYuunepPxoiGVLLHmlnVminUGzBTnXr8Wv7khzmLWbNw4TCwJKX09GSMJlKhu/TRk6gms0ySFxewaETSBqgw==", - "requires": { - "browser-headers": "^0.4.1" - } - } - } - }, - "@truffle/abi-utils": { - "version": "0.3.9", - "resolved": "https://registry.npmjs.org/@truffle/abi-utils/-/abi-utils-0.3.9.tgz", - "integrity": "sha512-G5dqgwRHx5zwlXjz3QT8OJVfB2cOqWwD6DwKso0KttUt/zejhCjnkKq72rSgyeLMkz7wBB9ERLOsupLBILM8MA==", - "dev": true, - "requires": { - "change-case": "3.0.2", - "fast-check": "3.1.1", - "web3-utils": "1.8.2" - }, - "dependencies": { - "@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==", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "bn.js": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", - "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==", - "dev": true - }, - "ethereumjs-util": { - "version": "7.1.5", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.5.tgz", - "integrity": "sha512-SDl5kKrQAudFBUe5OJM9Ac6WmMyYmXX/6sTmLZ3ffG2eY6ZIGBes3pEDxNN6V72WyOw4CPD5RomKdsa8DAAwLg==", - "dev": true, - "requires": { - "@types/bn.js": "^5.1.0", - "bn.js": "^5.1.2", - "create-hash": "^1.1.2", - "ethereum-cryptography": "^0.1.3", - "rlp": "^2.2.4" - } - }, - "web3-utils": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.8.2.tgz", - "integrity": "sha512-v7j6xhfLQfY7xQDrUP0BKbaNrmZ2/+egbqP9q3KYmOiPpnvAfol+32slgL0WX/5n8VPvKCK5EZ1HGrAVICSToA==", - "dev": true, - "requires": { - "bn.js": "^5.2.1", - "ethereum-bloom-filters": "^1.0.6", - "ethereumjs-util": "^7.1.0", - "ethjs-unit": "0.1.6", - "number-to-bn": "1.7.0", - "randombytes": "^2.1.0", - "utf8": "3.0.0" - } - } - } - }, - "@truffle/code-utils": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@truffle/code-utils/-/code-utils-3.0.2.tgz", - "integrity": "sha512-Q4FyYIX9G4GyMa8RJDk19kvgiyGZ1CGEx2RmVcXoCDZqEyiHLzqjvCRp+/fuBz2fv7szO6d+60LO1gLCGS1drQ==", - "dev": true, - "requires": { - "cbor": "^5.2.0" - }, - "dependencies": { - "bignumber.js": { - "version": "9.1.1", - "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.1.1.tgz", - "integrity": "sha512-pHm4LsMJ6lzgNGVfZHjMoO8sdoRhOzOH4MLmY65Jg70bpxCKu5iOHNJyfF6OyvYw7t8Fpf35RuzUyqnQsj8Vig==", - "dev": true - }, - "cbor": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/cbor/-/cbor-5.2.0.tgz", - "integrity": "sha512-5IMhi9e1QU76ppa5/ajP1BmMWZ2FHkhAhjeVKQ/EFCgYSEaeVaoGtL7cxJskf9oCCk+XjzaIdc3IuU/dbA/o2A==", - "dev": true, - "requires": { - "bignumber.js": "^9.0.1", - "nofilter": "^1.0.4" - } - } - } - }, - "@truffle/compile-common": { - "version": "0.9.4", - "resolved": "https://registry.npmjs.org/@truffle/compile-common/-/compile-common-0.9.4.tgz", - "integrity": "sha512-mnqJB/hLiPHNf+WKwt/2MH6lv34xSG/SFCib7+ckAklutUqVLeFo8EwQxinuHNkU7LY0C+YgZXhK1WTCO5YRJQ==", - "dev": true, - "requires": { - "@truffle/error": "^0.2.0", - "colors": "1.4.0" - }, - "dependencies": { - "@truffle/error": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/@truffle/error/-/error-0.2.0.tgz", - "integrity": "sha512-Fe0/z4WWb7IP2gBnv3l6zqP87Y0kSMs7oiSLakKJq17q3GUunrHSdioKuNspdggxkXIBhEQLhi8C+LJdwmHKWQ==", - "dev": true - } - } - }, - "@truffle/config": { - "version": "1.3.55", - "resolved": "https://registry.npmjs.org/@truffle/config/-/config-1.3.55.tgz", - "integrity": "sha512-18nLgtnkDCwMiTB3fyJxXzRzuO28wtJyY3YIgJBMg4ujKYpAxeI6hOPafhrp9qGqR7tC0Pj1o+ip3wFxEZJtuQ==", - "dev": true, - "optional": true, - "requires": { - "@truffle/error": "^0.2.0", - "@truffle/events": "^0.1.22", - "@truffle/provider": "^0.3.8", - "conf": "^10.1.2", - "debug": "^4.3.1", - "find-up": "^2.1.0", - "lodash": "^4.17.21", - "original-require": "^1.0.1" - }, - "dependencies": { - "@truffle/error": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/@truffle/error/-/error-0.2.0.tgz", - "integrity": "sha512-Fe0/z4WWb7IP2gBnv3l6zqP87Y0kSMs7oiSLakKJq17q3GUunrHSdioKuNspdggxkXIBhEQLhi8C+LJdwmHKWQ==", - "dev": true, - "optional": true - }, - "debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "optional": true, - "requires": { - "ms": "2.1.2" - } - }, - "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ==", - "dev": true, - "optional": true, - "requires": { - "locate-path": "^2.0.0" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true, - "optional": true - } - } - }, - "@truffle/dashboard-message-bus-client": { - "version": "0.1.10", - "resolved": "https://registry.npmjs.org/@truffle/dashboard-message-bus-client/-/dashboard-message-bus-client-0.1.10.tgz", - "integrity": "sha512-r9GpdR96T8xzk2Z3Qq5lowixT6hQwDZ9F3D3oNjOv2AOwBrC7dGkt1Ra1FQRsABn4K7LUVvnjjn6rALlsatAdw==", - "dev": true, - "optional": true, - "requires": { - "@truffle/dashboard-message-bus-common": "^0.1.5", - "@truffle/promise-tracker": "^0.1.5", - "axios": "1.2.4", - "debug": "^4.3.1", - "delay": "^5.0.0", - "isomorphic-ws": "^4.0.1", - "node-abort-controller": "^3.0.1", - "tiny-typed-emitter": "^2.1.0", - "ws": "^7.2.0" - }, - "dependencies": { - "axios": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.2.4.tgz", - "integrity": "sha512-lIQuCfBJvZB/Bv7+RWUqEJqNShGOVpk9v7P0ZWx5Ip0qY6u7JBAU6dzQPMLasU9vHL2uD8av/1FDJXj7n6c39w==", - "dev": true, - "optional": true, - "requires": { - "follow-redirects": "^1.15.0", - "form-data": "^4.0.0", - "proxy-from-env": "^1.1.0" - } - }, - "debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "optional": true, - "requires": { - "ms": "2.1.2" - } - }, - "follow-redirects": { - "version": "1.15.2", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", - "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==", - "dev": true, - "optional": true - }, - "form-data": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", - "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", - "dev": true, - "optional": true, - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true, - "optional": true - }, - "ws": { - "version": "7.5.9", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz", - "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==", - "dev": true, - "optional": true, - "requires": {} - } - } - }, - "@truffle/dashboard-message-bus-common": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/@truffle/dashboard-message-bus-common/-/dashboard-message-bus-common-0.1.5.tgz", - "integrity": "sha512-F4RfXi7ymNA3HFOlaujRJxAb3I8ciErCRQq+MZVaqjSPF9LSw23IizZsGpLaY43K2bGoBSxyNQRZWxsUEBujPQ==", - "dev": true, - "optional": true - }, - "@truffle/db": { - "version": "2.0.23", - "resolved": "https://registry.npmjs.org/@truffle/db/-/db-2.0.23.tgz", - "integrity": "sha512-MoeqjxL5++plcBjZpm7eSFYovMzz6AF/FmMUvai94zdmgukbBmSHFegGLh2VruDvouFIpHw6IW5H6LEEkdddNg==", - "dev": true, - "optional": true, - "requires": { - "@graphql-tools/delegate": "^8.4.3", - "@graphql-tools/schema": "^8.3.1", - "@truffle/abi-utils": "^0.3.9", - "@truffle/code-utils": "^3.0.2", - "@truffle/config": "^1.3.55", - "abstract-leveldown": "^7.2.0", - "apollo-server": "^3.11.0", - "debug": "^4.3.1", - "fs-extra": "^9.1.0", - "graphql": "^15.3.0", - "graphql-tag": "^2.12.6", - "json-stable-stringify": "^1.0.1", - "pascal-case": "^2.0.1", - "pluralize": "^8.0.0", - "pouchdb": "7.3.0", - "pouchdb-adapter-memory": "^7.1.1", - "pouchdb-debug": "^7.1.1", - "pouchdb-find": "^7.0.0", - "web3-utils": "1.8.2" - }, - "dependencies": { - "@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==", - "dev": true, - "optional": true, - "requires": { - "@types/node": "*" - } - }, - "abstract-leveldown": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-7.2.0.tgz", - "integrity": "sha512-DnhQwcFEaYsvYDnACLZhMmCWd3rkOeEvglpa4q5i/5Jlm3UIsWaxVzuXvDLFCSCWRO3yy2/+V/G7FusFgejnfQ==", - "dev": true, - "optional": true, - "requires": { - "buffer": "^6.0.3", - "catering": "^2.0.0", - "is-buffer": "^2.0.5", - "level-concat-iterator": "^3.0.0", - "level-supports": "^2.0.1", - "queue-microtask": "^1.2.3" - } - }, - "bn.js": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", - "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==", - "dev": true, - "optional": true - }, - "buffer": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", - "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", - "dev": true, - "optional": true, - "requires": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" - } - }, - "debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "optional": true, - "requires": { - "ms": "2.1.2" - } - }, - "ethereumjs-util": { - "version": "7.1.5", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.5.tgz", - "integrity": "sha512-SDl5kKrQAudFBUe5OJM9Ac6WmMyYmXX/6sTmLZ3ffG2eY6ZIGBes3pEDxNN6V72WyOw4CPD5RomKdsa8DAAwLg==", - "dev": true, - "optional": true, - "requires": { - "@types/bn.js": "^5.1.0", - "bn.js": "^5.1.2", - "create-hash": "^1.1.2", - "ethereum-cryptography": "^0.1.3", - "rlp": "^2.2.4" - } - }, - "fs-extra": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", - "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", - "dev": true, - "optional": true, - "requires": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - } - }, - "jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", - "dev": true, - "optional": true, - "requires": { - "graceful-fs": "^4.1.6", - "universalify": "^2.0.0" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true, - "optional": true - }, - "universalify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", - "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", - "dev": true, - "optional": true - }, - "web3-utils": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.8.2.tgz", - "integrity": "sha512-v7j6xhfLQfY7xQDrUP0BKbaNrmZ2/+egbqP9q3KYmOiPpnvAfol+32slgL0WX/5n8VPvKCK5EZ1HGrAVICSToA==", - "dev": true, - "optional": true, - "requires": { - "bn.js": "^5.2.1", - "ethereum-bloom-filters": "^1.0.6", - "ethereumjs-util": "^7.1.0", - "ethjs-unit": "0.1.6", - "number-to-bn": "1.7.0", - "randombytes": "^2.1.0", - "utf8": "3.0.0" - } - } - } - }, - "@truffle/db-loader": { - "version": "0.2.23", - "resolved": "https://registry.npmjs.org/@truffle/db-loader/-/db-loader-0.2.23.tgz", - "integrity": "sha512-YFsiyb0+gcGJJgk6/xihTnoom5lf8JS0nCeHGnKM1eIUtOcGTLgFs+jeXOpNa3DIgHHjZ3/p1CVWuZnXslf9UA==", - "dev": true, - "requires": { - "@truffle/db": "^2.0.23" - } - }, - "@truffle/debugger": { - "version": "11.0.34", - "resolved": "https://registry.npmjs.org/@truffle/debugger/-/debugger-11.0.34.tgz", - "integrity": "sha512-24mJiH7o16OMxFHyH241yu0QnWOwbc7MOl8gFrOgWxoXwhkcNv0fy3++i/k7pi9EZdOGK84ppe4KuMTvW0x9Sg==", - "dev": true, - "requires": { - "@truffle/abi-utils": "^0.3.9", - "@truffle/codec": "^0.14.17", - "@truffle/source-map-utils": "^1.3.110", - "bn.js": "^5.1.3", - "debug": "^4.3.1", - "json-pointer": "^0.6.1", - "json-stable-stringify": "^1.0.1", - "lodash": "^4.17.21", - "redux": "^3.7.2", - "redux-saga": "1.0.0", - "reselect-tree": "^1.3.7", - "semver": "7.3.7", - "web3": "1.8.2", - "web3-eth-abi": "1.8.2" - }, - "dependencies": { - "@ethereumjs/common": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@ethereumjs/common/-/common-2.5.0.tgz", - "integrity": "sha512-DEHjW6e38o+JmB/NO3GZBpW4lpaiBpkFgXF6jLcJ6gETBYpEyaA5nTimsWBUJR3Vmtm/didUEbNjajskugZORg==", - "dev": true, - "requires": { - "crc-32": "^1.2.0", - "ethereumjs-util": "^7.1.1" - } - }, - "@ethereumjs/tx": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/@ethereumjs/tx/-/tx-3.3.2.tgz", - "integrity": "sha512-6AaJhwg4ucmwTvw/1qLaZUX5miWrwZ4nLOUsKyb/HtzS3BMw/CasKhdi1ims9mBKeK9sOJCH4qGKOBGyJCeeog==", - "dev": true, - "requires": { - "@ethereumjs/common": "^2.5.0", - "ethereumjs-util": "^7.1.2" - } - }, - "@sindresorhus/is": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.6.0.tgz", - "integrity": "sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==", - "dev": true - }, - "@szmarczak/http-timer": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-5.0.1.tgz", - "integrity": "sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw==", - "dev": true, - "requires": { - "defer-to-connect": "^2.0.1" - } - }, - "@truffle/codec": { - "version": "0.14.17", - "resolved": "https://registry.npmjs.org/@truffle/codec/-/codec-0.14.17.tgz", - "integrity": "sha512-kD4dD86huLeaBEq5R8D1zleJEu6NsXbyYLdXl1V1TKdiO8odw5CBC6Y/+wdu5d3t1dyEYrTbhn1dqknZa52pmw==", - "dev": true, - "requires": { - "@truffle/abi-utils": "^0.3.9", - "@truffle/compile-common": "^0.9.4", - "big.js": "^6.0.3", - "bn.js": "^5.1.3", - "cbor": "^5.2.0", - "debug": "^4.3.1", - "lodash": "^4.17.21", - "semver": "7.3.7", - "utf8": "^3.0.0", - "web3-utils": "1.8.2" - } - }, - "@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==", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "@types/node": { - "version": "12.20.55", - "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.55.tgz", - "integrity": "sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==", - "dev": true - }, - "big.js": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/big.js/-/big.js-6.2.1.tgz", - "integrity": "sha512-bCtHMwL9LeDIozFn+oNhhFoq+yQ3BNdnsLSASUxLciOb1vgvpHsIO1dsENiGMgbb4SkP5TrzWzRiLddn8ahVOQ==", - "dev": true - }, - "bignumber.js": { - "version": "9.1.1", - "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.1.1.tgz", - "integrity": "sha512-pHm4LsMJ6lzgNGVfZHjMoO8sdoRhOzOH4MLmY65Jg70bpxCKu5iOHNJyfF6OyvYw7t8Fpf35RuzUyqnQsj8Vig==", - "dev": true - }, - "bn.js": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", - "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==", - "dev": true - }, - "cacheable-request": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-7.0.2.tgz", - "integrity": "sha512-pouW8/FmiPQbuGpkXQ9BAPv/Mo5xDGANgSNXzTzJ8DrKGuXOssM4wIQRjfanNRh3Yu5cfYPvcorqbhg2KIJtew==", - "dev": true, - "requires": { - "clone-response": "^1.0.2", - "get-stream": "^5.1.0", - "http-cache-semantics": "^4.0.0", - "keyv": "^4.0.0", - "lowercase-keys": "^2.0.0", - "normalize-url": "^6.0.1", - "responselike": "^2.0.0" - }, - "dependencies": { - "get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "dev": true, - "requires": { - "pump": "^3.0.0" - } - }, - "lowercase-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", - "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", - "dev": true - } - } - }, - "cbor": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/cbor/-/cbor-5.2.0.tgz", - "integrity": "sha512-5IMhi9e1QU76ppa5/ajP1BmMWZ2FHkhAhjeVKQ/EFCgYSEaeVaoGtL7cxJskf9oCCk+XjzaIdc3IuU/dbA/o2A==", - "dev": true, - "requires": { - "bignumber.js": "^9.0.1", - "nofilter": "^1.0.4" - } - }, - "cross-fetch": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.5.tgz", - "integrity": "sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw==", - "dev": true, - "requires": { - "node-fetch": "2.6.7" - } - }, - "debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "requires": { - "ms": "2.1.2" - } - }, - "decompress-response": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", - "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", - "dev": true, - "requires": { - "mimic-response": "^3.1.0" - } - }, - "defer-to-connect": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz", - "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==", - "dev": true - }, - "ethereumjs-util": { - "version": "7.1.5", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.5.tgz", - "integrity": "sha512-SDl5kKrQAudFBUe5OJM9Ac6WmMyYmXX/6sTmLZ3ffG2eY6ZIGBes3pEDxNN6V72WyOw4CPD5RomKdsa8DAAwLg==", - "dev": true, - "requires": { - "@types/bn.js": "^5.1.0", - "bn.js": "^5.1.2", - "create-hash": "^1.1.2", - "ethereum-cryptography": "^0.1.3", - "rlp": "^2.2.4" - } - }, - "eventemitter3": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.4.tgz", - "integrity": "sha512-rlaVLnVxtxvoyLsQQFBx53YmXHDxRIzzTLbdfxqi4yocpSjAxXwkU0cScM5JgSKMqEhrZpnvQ2D9gjylR0AimQ==", - "dev": true - }, - "fs-extra": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-4.0.3.tgz", - "integrity": "sha512-q6rbdDd1o2mAnQreO7YADIxf/Whx4AHBiRf6d+/cVT8h44ss+lHgxf1FemcqDnQt9X3ct4McHr+JMGlYSsK7Cg==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - }, - "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 - }, - "got": { - "version": "12.1.0", - "resolved": "https://registry.npmjs.org/got/-/got-12.1.0.tgz", - "integrity": "sha512-hBv2ty9QN2RdbJJMK3hesmSkFTjVIHyIDDbssCKnSmq62edGgImJWD10Eb1k77TiV1bxloxqcFAVK8+9pkhOig==", - "dev": true, - "requires": { - "@sindresorhus/is": "^4.6.0", - "@szmarczak/http-timer": "^5.0.1", - "@types/cacheable-request": "^6.0.2", - "@types/responselike": "^1.0.0", - "cacheable-lookup": "^6.0.4", - "cacheable-request": "^7.0.2", - "decompress-response": "^6.0.0", - "form-data-encoder": "1.7.1", - "get-stream": "^6.0.1", - "http2-wrapper": "^2.1.10", - "lowercase-keys": "^3.0.0", - "p-cancelable": "^3.0.0", - "responselike": "^2.0.0" - } - }, - "json-buffer": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", - "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", - "dev": true - }, - "keyv": { - "version": "4.5.2", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.2.tgz", - "integrity": "sha512-5MHbFaKn8cNSmVW7BYnijeAVlE4cYA/SVkifVgrh7yotnfhKmjuXpDKjrABLnT0SfHWV21P8ow07OGfRrNDg8g==", - "dev": true, - "requires": { - "json-buffer": "3.0.1" - } - }, - "lowercase-keys": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-3.0.0.tgz", - "integrity": "sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ==", - "dev": true - }, - "mimic-response": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", - "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==", - "dev": true - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "node-fetch": { - "version": "2.6.7", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", - "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", - "dev": true, - "requires": { - "whatwg-url": "^5.0.0" - } - }, - "normalize-url": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", - "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==", - "dev": true - }, - "oboe": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/oboe/-/oboe-2.1.5.tgz", - "integrity": "sha512-zRFWiF+FoicxEs3jNI/WYUrVEgA7DeET/InK0XQuudGHRg8iIob3cNPrJTKaz4004uaA9Pbe+Dwa8iluhjLZWA==", - "dev": true, - "requires": { - "http-https": "^1.0.0" - } - }, - "p-cancelable": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-3.0.0.tgz", - "integrity": "sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw==", - "dev": true - }, - "responselike": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/responselike/-/responselike-2.0.1.tgz", - "integrity": "sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw==", - "dev": true, - "requires": { - "lowercase-keys": "^2.0.0" - }, - "dependencies": { - "lowercase-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", - "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", - "dev": true - } - } - }, - "scrypt-js": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-3.0.1.tgz", - "integrity": "sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA==", - "dev": true - }, - "semver": { - "version": "7.3.7", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", - "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - }, - "setimmediate": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", - "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==", - "dev": true - }, - "swarm-js": { - "version": "0.1.42", - "resolved": "https://registry.npmjs.org/swarm-js/-/swarm-js-0.1.42.tgz", - "integrity": "sha512-BV7c/dVlA3R6ya1lMlSSNPLYrntt0LUq4YMgy3iwpCIc6rZnS5W2wUoctarZ5pXlpKtxDDf9hNziEkcfrxdhqQ==", - "dev": true, - "requires": { - "bluebird": "^3.5.0", - "buffer": "^5.0.5", - "eth-lib": "^0.1.26", - "fs-extra": "^4.0.2", - "got": "^11.8.5", - "mime-types": "^2.1.16", - "mkdirp-promise": "^5.0.1", - "mock-fs": "^4.1.0", - "setimmediate": "^1.0.5", - "tar": "^4.0.2", - "xhr-request": "^1.0.1" - }, - "dependencies": { - "@szmarczak/http-timer": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-4.0.6.tgz", - "integrity": "sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==", - "dev": true, - "requires": { - "defer-to-connect": "^2.0.0" - } - }, - "cacheable-lookup": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz", - "integrity": "sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==", - "dev": true - }, - "got": { - "version": "11.8.6", - "resolved": "https://registry.npmjs.org/got/-/got-11.8.6.tgz", - "integrity": "sha512-6tfZ91bOr7bOXnK7PRDCGBLa1H4U080YHNaAQ2KsMGlLEzRbk44nsZF2E1IeRc3vtJHPVbKCYgdFbaGO2ljd8g==", - "dev": true, - "requires": { - "@sindresorhus/is": "^4.0.0", - "@szmarczak/http-timer": "^4.0.5", - "@types/cacheable-request": "^6.0.1", - "@types/responselike": "^1.0.0", - "cacheable-lookup": "^5.0.3", - "cacheable-request": "^7.0.2", - "decompress-response": "^6.0.0", - "http2-wrapper": "^1.0.0-beta.5.2", - "lowercase-keys": "^2.0.0", - "p-cancelable": "^2.0.0", - "responselike": "^2.0.0" - } - }, - "http2-wrapper": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-1.0.3.tgz", - "integrity": "sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg==", - "dev": true, - "requires": { - "quick-lru": "^5.1.1", - "resolve-alpn": "^1.0.0" - } - }, - "lowercase-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", - "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", - "dev": true - }, - "p-cancelable": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.1.1.tgz", - "integrity": "sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==", - "dev": true - } - } - }, - "uuid": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.0.tgz", - "integrity": "sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg==", - "dev": true - }, - "web3": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/web3/-/web3-1.8.2.tgz", - "integrity": "sha512-92h0GdEHW9wqDICQQKyG4foZBYi0OQkyg4CRml2F7XBl/NG+fu9o6J19kzfFXzSBoA4DnJXbyRgj/RHZv5LRiw==", - "dev": true, - "requires": { - "web3-bzz": "1.8.2", - "web3-core": "1.8.2", - "web3-eth": "1.8.2", - "web3-eth-personal": "1.8.2", - "web3-net": "1.8.2", - "web3-shh": "1.8.2", - "web3-utils": "1.8.2" - } - }, - "web3-bzz": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/web3-bzz/-/web3-bzz-1.8.2.tgz", - "integrity": "sha512-1EEnxjPnFnvNWw3XeeKuTR8PBxYd0+XWzvaLK7OJC/Go9O8llLGxrxICbKV+8cgIE0sDRBxiYx02X+6OhoAQ9w==", - "dev": true, - "requires": { - "@types/node": "^12.12.6", - "got": "12.1.0", - "swarm-js": "^0.1.40" - } - }, - "web3-core": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/web3-core/-/web3-core-1.8.2.tgz", - "integrity": "sha512-DJTVEAYcNqxkqruJE+Rxp3CIv0y5AZMwPHQmOkz/cz+MM75SIzMTc0AUdXzGyTS8xMF8h3YWMQGgGEy8SBf1PQ==", - "dev": true, - "requires": { - "@types/bn.js": "^5.1.0", - "@types/node": "^12.12.6", - "bignumber.js": "^9.0.0", - "web3-core-helpers": "1.8.2", - "web3-core-method": "1.8.2", - "web3-core-requestmanager": "1.8.2", - "web3-utils": "1.8.2" - } - }, - "web3-core-helpers": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.8.2.tgz", - "integrity": "sha512-6B1eLlq9JFrfealZBomd1fmlq1o4A09vrCVQSa51ANoib/jllT3atZrRDr0zt1rfI7TSZTZBXdN/aTdeN99DWw==", - "dev": true, - "requires": { - "web3-eth-iban": "1.8.2", - "web3-utils": "1.8.2" - } - }, - "web3-core-method": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/web3-core-method/-/web3-core-method-1.8.2.tgz", - "integrity": "sha512-1qnr5mw5wVyULzLOrk4B+ryO3gfGjGd/fx8NR+J2xCGLf1e6OSjxT9vbfuQ3fErk/NjSTWWreieYWLMhaogcRA==", - "dev": true, - "requires": { - "@ethersproject/transactions": "^5.6.2", - "web3-core-helpers": "1.8.2", - "web3-core-promievent": "1.8.2", - "web3-core-subscriptions": "1.8.2", - "web3-utils": "1.8.2" - } - }, - "web3-core-promievent": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/web3-core-promievent/-/web3-core-promievent-1.8.2.tgz", - "integrity": "sha512-nvkJWDVgoOSsolJldN33tKW6bKKRJX3MCPDYMwP5SUFOA/mCzDEoI88N0JFofDTXkh1k7gOqp1pvwi9heuaxGg==", - "dev": true, - "requires": { - "eventemitter3": "4.0.4" - } - }, - "web3-core-requestmanager": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/web3-core-requestmanager/-/web3-core-requestmanager-1.8.2.tgz", - "integrity": "sha512-p1d090RYs5Mu7DK1yyc3GCBVZB/03rBtFhYFoS2EruGzOWs/5Q0grgtpwS/DScdRAm8wB8mYEBhY/RKJWF6B2g==", - "dev": true, - "requires": { - "util": "^0.12.5", - "web3-core-helpers": "1.8.2", - "web3-providers-http": "1.8.2", - "web3-providers-ipc": "1.8.2", - "web3-providers-ws": "1.8.2" - } - }, - "web3-core-subscriptions": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/web3-core-subscriptions/-/web3-core-subscriptions-1.8.2.tgz", - "integrity": "sha512-vXQogHDmAIQcKpXvGiMddBUeP9lnKgYF64+yQJhPNE5PnWr1sAibXuIPV7mIPihpFr/n/DORRj6Wh1pUv9zaTw==", - "dev": true, - "requires": { - "eventemitter3": "4.0.4", - "web3-core-helpers": "1.8.2" - } - }, - "web3-eth": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/web3-eth/-/web3-eth-1.8.2.tgz", - "integrity": "sha512-JoTiWWc4F4TInpbvDUGb0WgDYJsFhuIjJlinc5ByjWD88Gvh+GKLsRjjFdbqe5YtwIGT4NymwoC5LQd1K6u/QQ==", - "dev": true, - "requires": { - "web3-core": "1.8.2", - "web3-core-helpers": "1.8.2", - "web3-core-method": "1.8.2", - "web3-core-subscriptions": "1.8.2", - "web3-eth-abi": "1.8.2", - "web3-eth-accounts": "1.8.2", - "web3-eth-contract": "1.8.2", - "web3-eth-ens": "1.8.2", - "web3-eth-iban": "1.8.2", - "web3-eth-personal": "1.8.2", - "web3-net": "1.8.2", - "web3-utils": "1.8.2" - } - }, - "web3-eth-abi": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/web3-eth-abi/-/web3-eth-abi-1.8.2.tgz", - "integrity": "sha512-Om9g3kaRNjqiNPAgKwGT16y+ZwtBzRe4ZJFGjLiSs6v5I7TPNF+rRMWuKnR6jq0azQZDj6rblvKFMA49/k48Og==", - "dev": true, - "requires": { - "@ethersproject/abi": "^5.6.3", - "web3-utils": "1.8.2" - } - }, - "web3-eth-accounts": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/web3-eth-accounts/-/web3-eth-accounts-1.8.2.tgz", - "integrity": "sha512-c367Ij63VCz9YdyjiHHWLFtN85l6QghgwMQH2B1eM/p9Y5lTlTX7t/Eg/8+f1yoIStXbk2w/PYM2lk+IkbqdLA==", - "dev": true, - "requires": { - "@ethereumjs/common": "2.5.0", - "@ethereumjs/tx": "3.3.2", - "eth-lib": "0.2.8", - "ethereumjs-util": "^7.1.5", - "scrypt-js": "^3.0.1", - "uuid": "^9.0.0", - "web3-core": "1.8.2", - "web3-core-helpers": "1.8.2", - "web3-core-method": "1.8.2", - "web3-utils": "1.8.2" - }, - "dependencies": { - "bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - }, - "eth-lib": { - "version": "0.2.8", - "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.8.tgz", - "integrity": "sha512-ArJ7x1WcWOlSpzdoTBX8vkwlkSQ85CjjifSZtV4co64vWxSV8geWfPI9x4SVYu3DSxnX4yWFVTtGL+j9DUFLNw==", - "dev": true, - "requires": { - "bn.js": "^4.11.6", - "elliptic": "^6.4.0", - "xhr-request-promise": "^0.1.2" - } - } - } - }, - "web3-eth-contract": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/web3-eth-contract/-/web3-eth-contract-1.8.2.tgz", - "integrity": "sha512-ID5A25tHTSBNwOPjiXSVzxruz006ULRIDbzWTYIFTp7NJ7vXu/kynKK2ag/ObuTqBpMbobP8nXcA9b5EDkIdQA==", - "dev": true, - "requires": { - "@types/bn.js": "^5.1.0", - "web3-core": "1.8.2", - "web3-core-helpers": "1.8.2", - "web3-core-method": "1.8.2", - "web3-core-promievent": "1.8.2", - "web3-core-subscriptions": "1.8.2", - "web3-eth-abi": "1.8.2", - "web3-utils": "1.8.2" - } - }, - "web3-eth-ens": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/web3-eth-ens/-/web3-eth-ens-1.8.2.tgz", - "integrity": "sha512-PWph7C/CnqdWuu1+SH4U4zdrK4t2HNt0I4XzPYFdv9ugE8EuojselioPQXsVGvjql+Nt3jDLvQvggPqlMbvwRw==", - "dev": true, - "requires": { - "content-hash": "^2.5.2", - "eth-ens-namehash": "2.0.8", - "web3-core": "1.8.2", - "web3-core-helpers": "1.8.2", - "web3-core-promievent": "1.8.2", - "web3-eth-abi": "1.8.2", - "web3-eth-contract": "1.8.2", - "web3-utils": "1.8.2" - } - }, - "web3-eth-iban": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/web3-eth-iban/-/web3-eth-iban-1.8.2.tgz", - "integrity": "sha512-h3vNblDWkWMuYx93Q27TAJz6lhzpP93EiC3+45D6xoz983p6si773vntoQ+H+5aZhwglBtoiBzdh7PSSOnP/xQ==", - "dev": true, - "requires": { - "bn.js": "^5.2.1", - "web3-utils": "1.8.2" - } - }, - "web3-eth-personal": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/web3-eth-personal/-/web3-eth-personal-1.8.2.tgz", - "integrity": "sha512-Vg4HfwCr7doiUF/RC+Jz0wT4+cYaXcOWMAW2AHIjHX6Z7Xwa8nrURIeQgeEE62qcEHAzajyAdB1u6bJyTfuCXw==", - "dev": true, - "requires": { - "@types/node": "^12.12.6", - "web3-core": "1.8.2", - "web3-core-helpers": "1.8.2", - "web3-core-method": "1.8.2", - "web3-net": "1.8.2", - "web3-utils": "1.8.2" - } - }, - "web3-net": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/web3-net/-/web3-net-1.8.2.tgz", - "integrity": "sha512-1itkDMGmbgb83Dg9nporFes9/fxsU7smJ3oRXlFkg4ZHn8YJyP1MSQFPJWWwSc+GrcCFt4O5IrUTvEkHqE3xag==", - "dev": true, - "requires": { - "web3-core": "1.8.2", - "web3-core-method": "1.8.2", - "web3-utils": "1.8.2" - } - }, - "web3-providers-http": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/web3-providers-http/-/web3-providers-http-1.8.2.tgz", - "integrity": "sha512-2xY94IIEQd16+b+vIBF4IC1p7GVaz9q4EUFscvMUjtEq4ru4Atdzjs9GP+jmcoo49p70II0UV3bqQcz0TQfVyQ==", - "dev": true, - "requires": { - "abortcontroller-polyfill": "^1.7.3", - "cross-fetch": "^3.1.4", - "es6-promise": "^4.2.8", - "web3-core-helpers": "1.8.2" - } - }, - "web3-providers-ipc": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/web3-providers-ipc/-/web3-providers-ipc-1.8.2.tgz", - "integrity": "sha512-p6fqKVGFg+WiXGHWnB1hu43PbvPkDHTz4RgoEzbXugv5rtv5zfYLqm8Ba6lrJOS5ks9kGKR21a0y3NzE3u7V4w==", - "dev": true, - "requires": { - "oboe": "2.1.5", - "web3-core-helpers": "1.8.2" - } - }, - "web3-providers-ws": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/web3-providers-ws/-/web3-providers-ws-1.8.2.tgz", - "integrity": "sha512-3s/4K+wHgbiN+Zrp9YjMq2eqAF6QGABw7wFftPdx+m5hWImV27/MoIx57c6HffNRqZXmCHnfWWFCNHHsi7wXnA==", - "dev": true, - "requires": { - "eventemitter3": "4.0.4", - "web3-core-helpers": "1.8.2", - "websocket": "^1.0.32" - } - }, - "web3-shh": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/web3-shh/-/web3-shh-1.8.2.tgz", - "integrity": "sha512-uZ+3MAoNcaJsXXNCDnizKJ5viBNeHOFYsCbFhV755Uu52FswzTOw6DtE7yK9nYXMtIhiSgi7nwl1RYzP8pystw==", - "dev": true, - "requires": { - "web3-core": "1.8.2", - "web3-core-method": "1.8.2", - "web3-core-subscriptions": "1.8.2", - "web3-net": "1.8.2" - } - }, - "web3-utils": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.8.2.tgz", - "integrity": "sha512-v7j6xhfLQfY7xQDrUP0BKbaNrmZ2/+egbqP9q3KYmOiPpnvAfol+32slgL0WX/5n8VPvKCK5EZ1HGrAVICSToA==", - "dev": true, - "requires": { - "bn.js": "^5.2.1", - "ethereum-bloom-filters": "^1.0.6", - "ethereumjs-util": "^7.1.0", - "ethjs-unit": "0.1.6", - "number-to-bn": "1.7.0", - "randombytes": "^2.1.0", - "utf8": "3.0.0" - } - }, - "websocket": { - "version": "1.0.34", - "resolved": "https://registry.npmjs.org/websocket/-/websocket-1.0.34.tgz", - "integrity": "sha512-PRDso2sGwF6kM75QykIesBijKSVceR6jL2G8NGYyq2XrItNC2P5/qL5XeR056GhA+Ly7JMFvJb9I312mJfmqnQ==", - "dev": true, - "requires": { - "bufferutil": "^4.0.1", - "debug": "^2.2.0", - "es5-ext": "^0.10.50", - "typedarray-to-buffer": "^3.1.5", - "utf-8-validate": "^5.0.2", - "yaeti": "^0.0.6" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true - } - } - } - } - }, - "@truffle/error": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/@truffle/error/-/error-0.0.6.tgz", - "integrity": "sha512-QUM9ZWiwlXGixFGpV18g5I6vua6/r+ZV9W/5DQA5go9A3eZUNPHPaTKMIQPJLYn6+ZV5jg5H28zCHq56LHF3yA==", - "dev": true - }, - "@truffle/events": { - "version": "0.1.22", - "resolved": "https://registry.npmjs.org/@truffle/events/-/events-0.1.22.tgz", - "integrity": "sha512-WBEfaQ5zagS3J1M66J8wQ8N1As/EnBjLQsRlCCFs3/KbmeWhsoalVZ5Effhe0Vxd+e+k7lvwbloQBdS6roc+wg==", - "dev": true, - "optional": true, - "requires": { - "@truffle/dashboard-message-bus-client": "^0.1.10", - "@truffle/spinners": "^0.2.3", - "debug": "^4.3.1", - "emittery": "^0.4.1", - "web3-utils": "1.8.2" - }, - "dependencies": { - "@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==", - "dev": true, - "optional": true, - "requires": { - "@types/node": "*" - } - }, - "bn.js": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", - "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==", - "dev": true, - "optional": true - }, - "debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "optional": true, - "requires": { - "ms": "2.1.2" - } - }, - "ethereumjs-util": { - "version": "7.1.5", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.5.tgz", - "integrity": "sha512-SDl5kKrQAudFBUe5OJM9Ac6WmMyYmXX/6sTmLZ3ffG2eY6ZIGBes3pEDxNN6V72WyOw4CPD5RomKdsa8DAAwLg==", - "dev": true, - "optional": true, - "requires": { - "@types/bn.js": "^5.1.0", - "bn.js": "^5.1.2", - "create-hash": "^1.1.2", - "ethereum-cryptography": "^0.1.3", - "rlp": "^2.2.4" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true, - "optional": true - }, - "web3-utils": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.8.2.tgz", - "integrity": "sha512-v7j6xhfLQfY7xQDrUP0BKbaNrmZ2/+egbqP9q3KYmOiPpnvAfol+32slgL0WX/5n8VPvKCK5EZ1HGrAVICSToA==", - "dev": true, - "optional": true, - "requires": { - "bn.js": "^5.2.1", - "ethereum-bloom-filters": "^1.0.6", - "ethereumjs-util": "^7.1.0", - "ethjs-unit": "0.1.6", - "number-to-bn": "1.7.0", - "randombytes": "^2.1.0", - "utf8": "3.0.0" - } - } - } - }, - "@truffle/hdwallet-provider": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/@truffle/hdwallet-provider/-/hdwallet-provider-1.7.0.tgz", - "integrity": "sha512-nT7BPJJ2jPCLJc5uZdVtRnRMny5he5d3kO9Hi80ZSqe5xlnK905grBptM/+CwOfbeqHKQirI1btwm6r3wIBM8A==", - "dev": true, - "requires": { - "@ethereumjs/common": "^2.4.0", - "@ethereumjs/tx": "^3.3.0", - "@trufflesuite/web3-provider-engine": "15.0.14", - "eth-sig-util": "^3.0.1", - "ethereum-cryptography": "^0.1.3", - "ethereum-protocol": "^1.0.1", - "ethereumjs-util": "^6.1.0", - "ethereumjs-wallet": "^1.0.1" - }, - "dependencies": { - "@types/bn.js": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-5.1.0.tgz", - "integrity": "sha512-QSSVYj7pYFN49kW77o2s9xTCwZ8F2xLbjLLSEVh8D2F4JUhZtPAGOFLTD+ffqksBx/u4cE/KImFjyhqCjn/LIA==", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "aes-js": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/aes-js/-/aes-js-3.1.2.tgz", - "integrity": "sha512-e5pEa2kBnBOgR4Y/p20pskXI74UEz7de8ZGVo58asOtvSVG5YAbJeELPZxOmt+Bnz3rX753YKhfIn4X4l1PPRQ==", - "dev": true - }, - "bn.js": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.0.tgz", - "integrity": "sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw==", - "dev": true - }, - "ethereumjs-wallet": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/ethereumjs-wallet/-/ethereumjs-wallet-1.0.2.tgz", - "integrity": "sha512-CCWV4RESJgRdHIvFciVQFnCHfqyhXWchTPlkfp28Qc53ufs+doi5I/cV2+xeK9+qEo25XCWfP9MiL+WEPAZfdA==", - "dev": true, - "requires": { - "aes-js": "^3.1.2", - "bs58check": "^2.1.2", - "ethereum-cryptography": "^0.1.3", - "ethereumjs-util": "^7.1.2", - "randombytes": "^2.1.0", - "scrypt-js": "^3.0.1", - "utf8": "^3.0.0", - "uuid": "^8.3.2" - }, - "dependencies": { - "ethereumjs-util": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.3.tgz", - "integrity": "sha512-y+82tEbyASO0K0X1/SRhbJJoAlfcvq8JbrG4a5cjrOks7HS/36efU/0j2flxCPOUM++HFahk33kr/ZxyC4vNuw==", - "dev": true, - "requires": { - "@types/bn.js": "^5.1.0", - "bn.js": "^5.1.2", - "create-hash": "^1.1.2", - "ethereum-cryptography": "^0.1.3", - "rlp": "^2.2.4" - } - } - } - }, - "scrypt-js": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-3.0.1.tgz", - "integrity": "sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA==", - "dev": true - }, - "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 - } - } - }, - "@truffle/promise-tracker": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/@truffle/promise-tracker/-/promise-tracker-0.1.5.tgz", - "integrity": "sha512-wZx8eeu/6rcwwkmRF0Y832/NSQR9A9u6pyhTozv+j77jklnd/KZvu2JlACaAjP30eL5SOtSrSOzAMcSh/trJjg==", - "dev": true, - "optional": true - }, - "@truffle/provider": { - "version": "0.3.8", - "resolved": "https://registry.npmjs.org/@truffle/provider/-/provider-0.3.8.tgz", - "integrity": "sha512-qukkmGOZPsbV7WeKlj/bfYWOu/dbHWlF67QHDhV2KHBVardN06VDf40aB8WeeVkONHijb623hkUI/DE4DpHO+Q==", - "dev": true, - "optional": true, - "requires": { - "@truffle/error": "^0.2.0", - "@truffle/interface-adapter": "^0.5.32", - "debug": "^4.3.1", - "web3": "1.8.2" - }, - "dependencies": { - "@ethereumjs/common": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@ethereumjs/common/-/common-2.5.0.tgz", - "integrity": "sha512-DEHjW6e38o+JmB/NO3GZBpW4lpaiBpkFgXF6jLcJ6gETBYpEyaA5nTimsWBUJR3Vmtm/didUEbNjajskugZORg==", - "dev": true, - "optional": true, - "requires": { - "crc-32": "^1.2.0", - "ethereumjs-util": "^7.1.1" - } - }, - "@ethereumjs/tx": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/@ethereumjs/tx/-/tx-3.3.2.tgz", - "integrity": "sha512-6AaJhwg4ucmwTvw/1qLaZUX5miWrwZ4nLOUsKyb/HtzS3BMw/CasKhdi1ims9mBKeK9sOJCH4qGKOBGyJCeeog==", - "dev": true, - "optional": true, - "requires": { - "@ethereumjs/common": "^2.5.0", - "ethereumjs-util": "^7.1.2" - } - }, - "@sindresorhus/is": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.6.0.tgz", - "integrity": "sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==", - "dev": true, - "optional": true - }, - "@szmarczak/http-timer": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-5.0.1.tgz", - "integrity": "sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw==", - "dev": true, - "optional": true, - "requires": { - "defer-to-connect": "^2.0.1" - } - }, - "@truffle/error": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/@truffle/error/-/error-0.2.0.tgz", - "integrity": "sha512-Fe0/z4WWb7IP2gBnv3l6zqP87Y0kSMs7oiSLakKJq17q3GUunrHSdioKuNspdggxkXIBhEQLhi8C+LJdwmHKWQ==", - "dev": true, - "optional": true - }, - "@truffle/interface-adapter": { - "version": "0.5.32", - "resolved": "https://registry.npmjs.org/@truffle/interface-adapter/-/interface-adapter-0.5.32.tgz", - "integrity": "sha512-7Hgmdb4nJUcWtq4vvgWY7Mr2RLOTOp5FZaWyMiFmjkcEEhDlezm2QstALWAXgT0W6q7tDmDBpw3vTIFenRhHBA==", - "dev": true, - "optional": true, - "requires": { - "bn.js": "^5.1.3", - "ethers": "^4.0.32", - "web3": "1.8.2" - } - }, - "@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==", - "dev": true, - "optional": true, - "requires": { - "@types/node": "*" - } - }, - "@types/node": { - "version": "12.20.55", - "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.55.tgz", - "integrity": "sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==", - "dev": true, - "optional": true - }, - "bignumber.js": { - "version": "9.1.1", - "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.1.1.tgz", - "integrity": "sha512-pHm4LsMJ6lzgNGVfZHjMoO8sdoRhOzOH4MLmY65Jg70bpxCKu5iOHNJyfF6OyvYw7t8Fpf35RuzUyqnQsj8Vig==", - "dev": true, - "optional": true - }, - "bn.js": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", - "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==", - "dev": true, - "optional": true - }, - "cacheable-request": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-7.0.2.tgz", - "integrity": "sha512-pouW8/FmiPQbuGpkXQ9BAPv/Mo5xDGANgSNXzTzJ8DrKGuXOssM4wIQRjfanNRh3Yu5cfYPvcorqbhg2KIJtew==", - "dev": true, - "optional": true, - "requires": { - "clone-response": "^1.0.2", - "get-stream": "^5.1.0", - "http-cache-semantics": "^4.0.0", - "keyv": "^4.0.0", - "lowercase-keys": "^2.0.0", - "normalize-url": "^6.0.1", - "responselike": "^2.0.0" - }, - "dependencies": { - "get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "dev": true, - "optional": true, - "requires": { - "pump": "^3.0.0" - } - }, - "lowercase-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", - "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", - "dev": true, - "optional": true - } - } - }, - "cross-fetch": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.5.tgz", - "integrity": "sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw==", - "dev": true, - "optional": true, - "requires": { - "node-fetch": "2.6.7" - } - }, - "debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "optional": true, - "requires": { - "ms": "2.1.2" - } - }, - "decompress-response": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", - "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", - "dev": true, - "optional": true, - "requires": { - "mimic-response": "^3.1.0" - } - }, - "defer-to-connect": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz", - "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==", - "dev": true, - "optional": true - }, - "ethereumjs-util": { - "version": "7.1.5", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.5.tgz", - "integrity": "sha512-SDl5kKrQAudFBUe5OJM9Ac6WmMyYmXX/6sTmLZ3ffG2eY6ZIGBes3pEDxNN6V72WyOw4CPD5RomKdsa8DAAwLg==", - "dev": true, - "optional": true, - "requires": { - "@types/bn.js": "^5.1.0", - "bn.js": "^5.1.2", - "create-hash": "^1.1.2", - "ethereum-cryptography": "^0.1.3", - "rlp": "^2.2.4" - } - }, - "ethers": { - "version": "4.0.49", - "resolved": "https://registry.npmjs.org/ethers/-/ethers-4.0.49.tgz", - "integrity": "sha512-kPltTvWiyu+OktYy1IStSO16i2e7cS9D9OxZ81q2UUaiNPVrm/RTcbxamCXF9VUSKzJIdJV68EAIhTEVBalRWg==", - "dev": true, - "optional": true, - "requires": { - "aes-js": "3.0.0", - "bn.js": "^4.11.9", - "elliptic": "6.5.4", - "hash.js": "1.1.3", - "js-sha3": "0.5.7", - "scrypt-js": "2.0.4", - "setimmediate": "1.0.4", - "uuid": "2.0.1", - "xmlhttprequest": "1.8.0" - }, - "dependencies": { - "bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true, - "optional": true - } - } - }, - "eventemitter3": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.4.tgz", - "integrity": "sha512-rlaVLnVxtxvoyLsQQFBx53YmXHDxRIzzTLbdfxqi4yocpSjAxXwkU0cScM5JgSKMqEhrZpnvQ2D9gjylR0AimQ==", - "dev": true, - "optional": true - }, - "fs-extra": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-4.0.3.tgz", - "integrity": "sha512-q6rbdDd1o2mAnQreO7YADIxf/Whx4AHBiRf6d+/cVT8h44ss+lHgxf1FemcqDnQt9X3ct4McHr+JMGlYSsK7Cg==", - "dev": true, - "optional": true, - "requires": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - }, - "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, - "optional": true - }, - "got": { - "version": "12.1.0", - "resolved": "https://registry.npmjs.org/got/-/got-12.1.0.tgz", - "integrity": "sha512-hBv2ty9QN2RdbJJMK3hesmSkFTjVIHyIDDbssCKnSmq62edGgImJWD10Eb1k77TiV1bxloxqcFAVK8+9pkhOig==", - "dev": true, - "optional": true, - "requires": { - "@sindresorhus/is": "^4.6.0", - "@szmarczak/http-timer": "^5.0.1", - "@types/cacheable-request": "^6.0.2", - "@types/responselike": "^1.0.0", - "cacheable-lookup": "^6.0.4", - "cacheable-request": "^7.0.2", - "decompress-response": "^6.0.0", - "form-data-encoder": "1.7.1", - "get-stream": "^6.0.1", - "http2-wrapper": "^2.1.10", - "lowercase-keys": "^3.0.0", - "p-cancelable": "^3.0.0", - "responselike": "^2.0.0" - } - }, - "json-buffer": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", - "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", - "dev": true, - "optional": true - }, - "keyv": { - "version": "4.5.2", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.2.tgz", - "integrity": "sha512-5MHbFaKn8cNSmVW7BYnijeAVlE4cYA/SVkifVgrh7yotnfhKmjuXpDKjrABLnT0SfHWV21P8ow07OGfRrNDg8g==", - "dev": true, - "optional": true, - "requires": { - "json-buffer": "3.0.1" - } - }, - "lowercase-keys": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-3.0.0.tgz", - "integrity": "sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ==", - "dev": true, - "optional": true - }, - "mimic-response": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", - "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==", - "dev": true, - "optional": true - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true, - "optional": true - }, - "node-fetch": { - "version": "2.6.7", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", - "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", - "dev": true, - "optional": true, - "requires": { - "whatwg-url": "^5.0.0" - } - }, - "normalize-url": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", - "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==", - "dev": true, - "optional": true - }, - "oboe": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/oboe/-/oboe-2.1.5.tgz", - "integrity": "sha512-zRFWiF+FoicxEs3jNI/WYUrVEgA7DeET/InK0XQuudGHRg8iIob3cNPrJTKaz4004uaA9Pbe+Dwa8iluhjLZWA==", - "dev": true, - "optional": true, - "requires": { - "http-https": "^1.0.0" - } - }, - "p-cancelable": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-3.0.0.tgz", - "integrity": "sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw==", - "dev": true, - "optional": true - }, - "responselike": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/responselike/-/responselike-2.0.1.tgz", - "integrity": "sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw==", - "dev": true, - "optional": true, - "requires": { - "lowercase-keys": "^2.0.0" - }, - "dependencies": { - "lowercase-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", - "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", - "dev": true, - "optional": true - } - } - }, - "swarm-js": { - "version": "0.1.42", - "resolved": "https://registry.npmjs.org/swarm-js/-/swarm-js-0.1.42.tgz", - "integrity": "sha512-BV7c/dVlA3R6ya1lMlSSNPLYrntt0LUq4YMgy3iwpCIc6rZnS5W2wUoctarZ5pXlpKtxDDf9hNziEkcfrxdhqQ==", - "dev": true, - "optional": true, - "requires": { - "bluebird": "^3.5.0", - "buffer": "^5.0.5", - "eth-lib": "^0.1.26", - "fs-extra": "^4.0.2", - "got": "^11.8.5", - "mime-types": "^2.1.16", - "mkdirp-promise": "^5.0.1", - "mock-fs": "^4.1.0", - "setimmediate": "^1.0.5", - "tar": "^4.0.2", - "xhr-request": "^1.0.1" - }, - "dependencies": { - "@szmarczak/http-timer": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-4.0.6.tgz", - "integrity": "sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==", - "dev": true, - "optional": true, - "requires": { - "defer-to-connect": "^2.0.0" - } - }, - "cacheable-lookup": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz", - "integrity": "sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==", - "dev": true, - "optional": true - }, - "got": { - "version": "11.8.6", - "resolved": "https://registry.npmjs.org/got/-/got-11.8.6.tgz", - "integrity": "sha512-6tfZ91bOr7bOXnK7PRDCGBLa1H4U080YHNaAQ2KsMGlLEzRbk44nsZF2E1IeRc3vtJHPVbKCYgdFbaGO2ljd8g==", - "dev": true, - "optional": true, - "requires": { - "@sindresorhus/is": "^4.0.0", - "@szmarczak/http-timer": "^4.0.5", - "@types/cacheable-request": "^6.0.1", - "@types/responselike": "^1.0.0", - "cacheable-lookup": "^5.0.3", - "cacheable-request": "^7.0.2", - "decompress-response": "^6.0.0", - "http2-wrapper": "^1.0.0-beta.5.2", - "lowercase-keys": "^2.0.0", - "p-cancelable": "^2.0.0", - "responselike": "^2.0.0" - } - }, - "http2-wrapper": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-1.0.3.tgz", - "integrity": "sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg==", - "dev": true, - "optional": true, - "requires": { - "quick-lru": "^5.1.1", - "resolve-alpn": "^1.0.0" - } - }, - "lowercase-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", - "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", - "dev": true, - "optional": true - }, - "p-cancelable": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.1.1.tgz", - "integrity": "sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==", - "dev": true, - "optional": true - }, - "setimmediate": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", - "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==", - "dev": true, - "optional": true - } - } - }, - "uuid": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-2.0.1.tgz", - "integrity": "sha512-nWg9+Oa3qD2CQzHIP4qKUqwNfzKn8P0LtFhotaCTFchsV7ZfDhAybeip/HZVeMIpZi9JgY1E3nUlwaCmZT1sEg==", - "dev": true, - "optional": true - }, - "web3": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/web3/-/web3-1.8.2.tgz", - "integrity": "sha512-92h0GdEHW9wqDICQQKyG4foZBYi0OQkyg4CRml2F7XBl/NG+fu9o6J19kzfFXzSBoA4DnJXbyRgj/RHZv5LRiw==", - "dev": true, - "optional": true, - "requires": { - "web3-bzz": "1.8.2", - "web3-core": "1.8.2", - "web3-eth": "1.8.2", - "web3-eth-personal": "1.8.2", - "web3-net": "1.8.2", - "web3-shh": "1.8.2", - "web3-utils": "1.8.2" - } - }, - "web3-bzz": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/web3-bzz/-/web3-bzz-1.8.2.tgz", - "integrity": "sha512-1EEnxjPnFnvNWw3XeeKuTR8PBxYd0+XWzvaLK7OJC/Go9O8llLGxrxICbKV+8cgIE0sDRBxiYx02X+6OhoAQ9w==", - "dev": true, - "optional": true, - "requires": { - "@types/node": "^12.12.6", - "got": "12.1.0", - "swarm-js": "^0.1.40" - } - }, - "web3-core": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/web3-core/-/web3-core-1.8.2.tgz", - "integrity": "sha512-DJTVEAYcNqxkqruJE+Rxp3CIv0y5AZMwPHQmOkz/cz+MM75SIzMTc0AUdXzGyTS8xMF8h3YWMQGgGEy8SBf1PQ==", - "dev": true, - "optional": true, - "requires": { - "@types/bn.js": "^5.1.0", - "@types/node": "^12.12.6", - "bignumber.js": "^9.0.0", - "web3-core-helpers": "1.8.2", - "web3-core-method": "1.8.2", - "web3-core-requestmanager": "1.8.2", - "web3-utils": "1.8.2" - } - }, - "web3-core-helpers": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.8.2.tgz", - "integrity": "sha512-6B1eLlq9JFrfealZBomd1fmlq1o4A09vrCVQSa51ANoib/jllT3atZrRDr0zt1rfI7TSZTZBXdN/aTdeN99DWw==", - "dev": true, - "optional": true, - "requires": { - "web3-eth-iban": "1.8.2", - "web3-utils": "1.8.2" - } - }, - "web3-core-method": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/web3-core-method/-/web3-core-method-1.8.2.tgz", - "integrity": "sha512-1qnr5mw5wVyULzLOrk4B+ryO3gfGjGd/fx8NR+J2xCGLf1e6OSjxT9vbfuQ3fErk/NjSTWWreieYWLMhaogcRA==", - "dev": true, - "optional": true, - "requires": { - "@ethersproject/transactions": "^5.6.2", - "web3-core-helpers": "1.8.2", - "web3-core-promievent": "1.8.2", - "web3-core-subscriptions": "1.8.2", - "web3-utils": "1.8.2" - } - }, - "web3-core-promievent": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/web3-core-promievent/-/web3-core-promievent-1.8.2.tgz", - "integrity": "sha512-nvkJWDVgoOSsolJldN33tKW6bKKRJX3MCPDYMwP5SUFOA/mCzDEoI88N0JFofDTXkh1k7gOqp1pvwi9heuaxGg==", - "dev": true, - "optional": true, - "requires": { - "eventemitter3": "4.0.4" - } - }, - "web3-core-requestmanager": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/web3-core-requestmanager/-/web3-core-requestmanager-1.8.2.tgz", - "integrity": "sha512-p1d090RYs5Mu7DK1yyc3GCBVZB/03rBtFhYFoS2EruGzOWs/5Q0grgtpwS/DScdRAm8wB8mYEBhY/RKJWF6B2g==", - "dev": true, - "optional": true, - "requires": { - "util": "^0.12.5", - "web3-core-helpers": "1.8.2", - "web3-providers-http": "1.8.2", - "web3-providers-ipc": "1.8.2", - "web3-providers-ws": "1.8.2" - } - }, - "web3-core-subscriptions": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/web3-core-subscriptions/-/web3-core-subscriptions-1.8.2.tgz", - "integrity": "sha512-vXQogHDmAIQcKpXvGiMddBUeP9lnKgYF64+yQJhPNE5PnWr1sAibXuIPV7mIPihpFr/n/DORRj6Wh1pUv9zaTw==", - "dev": true, - "optional": true, - "requires": { - "eventemitter3": "4.0.4", - "web3-core-helpers": "1.8.2" - } - }, - "web3-eth": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/web3-eth/-/web3-eth-1.8.2.tgz", - "integrity": "sha512-JoTiWWc4F4TInpbvDUGb0WgDYJsFhuIjJlinc5ByjWD88Gvh+GKLsRjjFdbqe5YtwIGT4NymwoC5LQd1K6u/QQ==", - "dev": true, - "optional": true, - "requires": { - "web3-core": "1.8.2", - "web3-core-helpers": "1.8.2", - "web3-core-method": "1.8.2", - "web3-core-subscriptions": "1.8.2", - "web3-eth-abi": "1.8.2", - "web3-eth-accounts": "1.8.2", - "web3-eth-contract": "1.8.2", - "web3-eth-ens": "1.8.2", - "web3-eth-iban": "1.8.2", - "web3-eth-personal": "1.8.2", - "web3-net": "1.8.2", - "web3-utils": "1.8.2" - } - }, - "web3-eth-abi": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/web3-eth-abi/-/web3-eth-abi-1.8.2.tgz", - "integrity": "sha512-Om9g3kaRNjqiNPAgKwGT16y+ZwtBzRe4ZJFGjLiSs6v5I7TPNF+rRMWuKnR6jq0azQZDj6rblvKFMA49/k48Og==", - "dev": true, - "optional": true, - "requires": { - "@ethersproject/abi": "^5.6.3", - "web3-utils": "1.8.2" - } - }, - "web3-eth-accounts": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/web3-eth-accounts/-/web3-eth-accounts-1.8.2.tgz", - "integrity": "sha512-c367Ij63VCz9YdyjiHHWLFtN85l6QghgwMQH2B1eM/p9Y5lTlTX7t/Eg/8+f1yoIStXbk2w/PYM2lk+IkbqdLA==", - "dev": true, - "optional": true, - "requires": { - "@ethereumjs/common": "2.5.0", - "@ethereumjs/tx": "3.3.2", - "eth-lib": "0.2.8", - "ethereumjs-util": "^7.1.5", - "scrypt-js": "^3.0.1", - "uuid": "^9.0.0", - "web3-core": "1.8.2", - "web3-core-helpers": "1.8.2", - "web3-core-method": "1.8.2", - "web3-utils": "1.8.2" - }, - "dependencies": { - "bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true, - "optional": true - }, - "eth-lib": { - "version": "0.2.8", - "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.8.tgz", - "integrity": "sha512-ArJ7x1WcWOlSpzdoTBX8vkwlkSQ85CjjifSZtV4co64vWxSV8geWfPI9x4SVYu3DSxnX4yWFVTtGL+j9DUFLNw==", - "dev": true, - "optional": true, - "requires": { - "bn.js": "^4.11.6", - "elliptic": "^6.4.0", - "xhr-request-promise": "^0.1.2" - } - }, - "scrypt-js": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-3.0.1.tgz", - "integrity": "sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA==", - "dev": true, - "optional": true - }, - "uuid": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.0.tgz", - "integrity": "sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg==", - "dev": true, - "optional": true - } - } - }, - "web3-eth-contract": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/web3-eth-contract/-/web3-eth-contract-1.8.2.tgz", - "integrity": "sha512-ID5A25tHTSBNwOPjiXSVzxruz006ULRIDbzWTYIFTp7NJ7vXu/kynKK2ag/ObuTqBpMbobP8nXcA9b5EDkIdQA==", - "dev": true, - "optional": true, - "requires": { - "@types/bn.js": "^5.1.0", - "web3-core": "1.8.2", - "web3-core-helpers": "1.8.2", - "web3-core-method": "1.8.2", - "web3-core-promievent": "1.8.2", - "web3-core-subscriptions": "1.8.2", - "web3-eth-abi": "1.8.2", - "web3-utils": "1.8.2" - } - }, - "web3-eth-ens": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/web3-eth-ens/-/web3-eth-ens-1.8.2.tgz", - "integrity": "sha512-PWph7C/CnqdWuu1+SH4U4zdrK4t2HNt0I4XzPYFdv9ugE8EuojselioPQXsVGvjql+Nt3jDLvQvggPqlMbvwRw==", - "dev": true, - "optional": true, - "requires": { - "content-hash": "^2.5.2", - "eth-ens-namehash": "2.0.8", - "web3-core": "1.8.2", - "web3-core-helpers": "1.8.2", - "web3-core-promievent": "1.8.2", - "web3-eth-abi": "1.8.2", - "web3-eth-contract": "1.8.2", - "web3-utils": "1.8.2" - } - }, - "web3-eth-iban": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/web3-eth-iban/-/web3-eth-iban-1.8.2.tgz", - "integrity": "sha512-h3vNblDWkWMuYx93Q27TAJz6lhzpP93EiC3+45D6xoz983p6si773vntoQ+H+5aZhwglBtoiBzdh7PSSOnP/xQ==", - "dev": true, - "optional": true, - "requires": { - "bn.js": "^5.2.1", - "web3-utils": "1.8.2" - } - }, - "web3-eth-personal": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/web3-eth-personal/-/web3-eth-personal-1.8.2.tgz", - "integrity": "sha512-Vg4HfwCr7doiUF/RC+Jz0wT4+cYaXcOWMAW2AHIjHX6Z7Xwa8nrURIeQgeEE62qcEHAzajyAdB1u6bJyTfuCXw==", - "dev": true, - "optional": true, - "requires": { - "@types/node": "^12.12.6", - "web3-core": "1.8.2", - "web3-core-helpers": "1.8.2", - "web3-core-method": "1.8.2", - "web3-net": "1.8.2", - "web3-utils": "1.8.2" - } - }, - "web3-net": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/web3-net/-/web3-net-1.8.2.tgz", - "integrity": "sha512-1itkDMGmbgb83Dg9nporFes9/fxsU7smJ3oRXlFkg4ZHn8YJyP1MSQFPJWWwSc+GrcCFt4O5IrUTvEkHqE3xag==", - "dev": true, - "optional": true, - "requires": { - "web3-core": "1.8.2", - "web3-core-method": "1.8.2", - "web3-utils": "1.8.2" - } - }, - "web3-providers-http": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/web3-providers-http/-/web3-providers-http-1.8.2.tgz", - "integrity": "sha512-2xY94IIEQd16+b+vIBF4IC1p7GVaz9q4EUFscvMUjtEq4ru4Atdzjs9GP+jmcoo49p70II0UV3bqQcz0TQfVyQ==", - "dev": true, - "optional": true, - "requires": { - "abortcontroller-polyfill": "^1.7.3", - "cross-fetch": "^3.1.4", - "es6-promise": "^4.2.8", - "web3-core-helpers": "1.8.2" - } - }, - "web3-providers-ipc": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/web3-providers-ipc/-/web3-providers-ipc-1.8.2.tgz", - "integrity": "sha512-p6fqKVGFg+WiXGHWnB1hu43PbvPkDHTz4RgoEzbXugv5rtv5zfYLqm8Ba6lrJOS5ks9kGKR21a0y3NzE3u7V4w==", - "dev": true, - "optional": true, - "requires": { - "oboe": "2.1.5", - "web3-core-helpers": "1.8.2" - } - }, - "web3-providers-ws": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/web3-providers-ws/-/web3-providers-ws-1.8.2.tgz", - "integrity": "sha512-3s/4K+wHgbiN+Zrp9YjMq2eqAF6QGABw7wFftPdx+m5hWImV27/MoIx57c6HffNRqZXmCHnfWWFCNHHsi7wXnA==", - "dev": true, - "optional": true, - "requires": { - "eventemitter3": "4.0.4", - "web3-core-helpers": "1.8.2", - "websocket": "^1.0.32" - } - }, - "web3-shh": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/web3-shh/-/web3-shh-1.8.2.tgz", - "integrity": "sha512-uZ+3MAoNcaJsXXNCDnizKJ5viBNeHOFYsCbFhV755Uu52FswzTOw6DtE7yK9nYXMtIhiSgi7nwl1RYzP8pystw==", - "dev": true, - "optional": true, - "requires": { - "web3-core": "1.8.2", - "web3-core-method": "1.8.2", - "web3-core-subscriptions": "1.8.2", - "web3-net": "1.8.2" - } - }, - "web3-utils": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.8.2.tgz", - "integrity": "sha512-v7j6xhfLQfY7xQDrUP0BKbaNrmZ2/+egbqP9q3KYmOiPpnvAfol+32slgL0WX/5n8VPvKCK5EZ1HGrAVICSToA==", - "dev": true, - "optional": true, - "requires": { - "bn.js": "^5.2.1", - "ethereum-bloom-filters": "^1.0.6", - "ethereumjs-util": "^7.1.0", - "ethjs-unit": "0.1.6", - "number-to-bn": "1.7.0", - "randombytes": "^2.1.0", - "utf8": "3.0.0" - } - }, - "websocket": { - "version": "1.0.34", - "resolved": "https://registry.npmjs.org/websocket/-/websocket-1.0.34.tgz", - "integrity": "sha512-PRDso2sGwF6kM75QykIesBijKSVceR6jL2G8NGYyq2XrItNC2P5/qL5XeR056GhA+Ly7JMFvJb9I312mJfmqnQ==", - "dev": true, - "optional": true, - "requires": { - "bufferutil": "^4.0.1", - "debug": "^2.2.0", - "es5-ext": "^0.10.50", - "typedarray-to-buffer": "^3.1.5", - "utf-8-validate": "^5.0.2", - "yaeti": "^0.0.6" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "optional": true, - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true, - "optional": true - } - } - } - } - }, - "@truffle/source-map-utils": { - "version": "1.3.110", - "resolved": "https://registry.npmjs.org/@truffle/source-map-utils/-/source-map-utils-1.3.110.tgz", - "integrity": "sha512-lkKWwLxGfQITRXjH9fWdy95jSIIzyfX+ggUi5rgkjz5rUUEXFaJ/YX3mxQLQJMi18kKn/yv0ZiGju84aMR3qoA==", - "dev": true, - "requires": { - "@truffle/code-utils": "^3.0.2", - "@truffle/codec": "^0.14.17", - "debug": "^4.3.1", - "json-pointer": "^0.6.1", - "node-interval-tree": "^1.3.3", - "web3-utils": "1.8.2" - }, - "dependencies": { - "@truffle/codec": { - "version": "0.14.17", - "resolved": "https://registry.npmjs.org/@truffle/codec/-/codec-0.14.17.tgz", - "integrity": "sha512-kD4dD86huLeaBEq5R8D1zleJEu6NsXbyYLdXl1V1TKdiO8odw5CBC6Y/+wdu5d3t1dyEYrTbhn1dqknZa52pmw==", - "dev": true, - "requires": { - "@truffle/abi-utils": "^0.3.9", - "@truffle/compile-common": "^0.9.4", - "big.js": "^6.0.3", - "bn.js": "^5.1.3", - "cbor": "^5.2.0", - "debug": "^4.3.1", - "lodash": "^4.17.21", - "semver": "7.3.7", - "utf8": "^3.0.0", - "web3-utils": "1.8.2" - } - }, - "@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==", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "big.js": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/big.js/-/big.js-6.2.1.tgz", - "integrity": "sha512-bCtHMwL9LeDIozFn+oNhhFoq+yQ3BNdnsLSASUxLciOb1vgvpHsIO1dsENiGMgbb4SkP5TrzWzRiLddn8ahVOQ==", - "dev": true - }, - "bignumber.js": { - "version": "9.1.1", - "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.1.1.tgz", - "integrity": "sha512-pHm4LsMJ6lzgNGVfZHjMoO8sdoRhOzOH4MLmY65Jg70bpxCKu5iOHNJyfF6OyvYw7t8Fpf35RuzUyqnQsj8Vig==", - "dev": true - }, - "bn.js": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", - "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==", - "dev": true - }, - "cbor": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/cbor/-/cbor-5.2.0.tgz", - "integrity": "sha512-5IMhi9e1QU76ppa5/ajP1BmMWZ2FHkhAhjeVKQ/EFCgYSEaeVaoGtL7cxJskf9oCCk+XjzaIdc3IuU/dbA/o2A==", - "dev": true, - "requires": { - "bignumber.js": "^9.0.1", - "nofilter": "^1.0.4" - } - }, - "debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "requires": { - "ms": "2.1.2" - } - }, - "ethereumjs-util": { - "version": "7.1.5", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.5.tgz", - "integrity": "sha512-SDl5kKrQAudFBUe5OJM9Ac6WmMyYmXX/6sTmLZ3ffG2eY6ZIGBes3pEDxNN6V72WyOw4CPD5RomKdsa8DAAwLg==", - "dev": true, - "requires": { - "@types/bn.js": "^5.1.0", - "bn.js": "^5.1.2", - "create-hash": "^1.1.2", - "ethereum-cryptography": "^0.1.3", - "rlp": "^2.2.4" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "semver": { - "version": "7.3.7", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", - "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - }, - "web3-utils": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.8.2.tgz", - "integrity": "sha512-v7j6xhfLQfY7xQDrUP0BKbaNrmZ2/+egbqP9q3KYmOiPpnvAfol+32slgL0WX/5n8VPvKCK5EZ1HGrAVICSToA==", - "dev": true, - "requires": { - "bn.js": "^5.2.1", - "ethereum-bloom-filters": "^1.0.6", - "ethereumjs-util": "^7.1.0", - "ethjs-unit": "0.1.6", - "number-to-bn": "1.7.0", - "randombytes": "^2.1.0", - "utf8": "3.0.0" - } - } - } - }, - "@truffle/spinners": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/@truffle/spinners/-/spinners-0.2.3.tgz", - "integrity": "sha512-YnaQ+oBRQ1I1+/P18i8oSW4orUYi6vwpZQxauEZ5X0L8atjKq+RWdiNaza6J6L+KOLunXM4+pWxnNzuUmxlJZw==", - "dev": true, - "optional": true, - "requires": { - "@trufflesuite/spinnies": "^0.1.1" - } - }, - "@trufflesuite/eth-json-rpc-filters": { - "version": "4.1.2-1", - "resolved": "https://registry.npmjs.org/@trufflesuite/eth-json-rpc-filters/-/eth-json-rpc-filters-4.1.2-1.tgz", - "integrity": "sha512-/MChvC5dw2ck9NU1cZmdovCz2VKbOeIyR4tcxDvA5sT+NaL0rA2/R5U0yI7zsbo1zD+pgqav77rQHTzpUdDNJQ==", - "requires": { - "@trufflesuite/eth-json-rpc-middleware": "^4.4.2-0", - "await-semaphore": "^0.1.3", - "eth-query": "^2.1.2", - "json-rpc-engine": "^5.1.3", - "lodash.flatmap": "^4.5.0", - "safe-event-emitter": "^1.0.1" - } - }, - "@trufflesuite/eth-json-rpc-infura": { - "version": "4.0.3-0", - "resolved": "https://registry.npmjs.org/@trufflesuite/eth-json-rpc-infura/-/eth-json-rpc-infura-4.0.3-0.tgz", - "integrity": "sha512-xaUanOmo0YLqRsL0SfXpFienhdw5bpQ1WEXxMTRi57az4lwpZBv4tFUDvcerdwJrxX9wQqNmgUgd1BrR01dumw==", - "requires": { - "@trufflesuite/eth-json-rpc-middleware": "^4.4.2-1", - "cross-fetch": "^2.1.1", - "eth-json-rpc-errors": "^1.0.1", - "json-rpc-engine": "^5.1.3" - }, - "dependencies": { - "eth-json-rpc-errors": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/eth-json-rpc-errors/-/eth-json-rpc-errors-1.1.1.tgz", - "integrity": "sha512-WT5shJ5KfNqHi9jOZD+ID8I1kuYWNrigtZat7GOQkvwo99f8SzAVaEcWhJUv656WiZOAg3P1RiJQANtUmDmbIg==", - "requires": { - "fast-safe-stringify": "^2.0.6" - } - } - } - }, - "@trufflesuite/eth-json-rpc-middleware": { - "version": "4.4.2-1", - "resolved": "https://registry.npmjs.org/@trufflesuite/eth-json-rpc-middleware/-/eth-json-rpc-middleware-4.4.2-1.tgz", - "integrity": "sha512-iEy9H8ja7/8aYES5HfrepGBKU9n/Y4OabBJEklVd/zIBlhCCBAWBqkIZgXt11nBXO/rYAeKwYuE3puH3ByYnLA==", - "requires": { - "@trufflesuite/eth-sig-util": "^1.4.2", - "btoa": "^1.2.1", - "clone": "^2.1.1", - "eth-json-rpc-errors": "^1.0.1", - "eth-query": "^2.1.2", - "ethereumjs-block": "^1.6.0", - "ethereumjs-tx": "^1.3.7", - "ethereumjs-util": "^5.1.2", - "ethereumjs-vm": "^2.6.0", - "fetch-ponyfill": "^4.0.0", - "json-rpc-engine": "^5.1.3", - "json-stable-stringify": "^1.0.1", - "pify": "^3.0.0", - "safe-event-emitter": "^1.0.1" - }, - "dependencies": { - "eth-json-rpc-errors": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/eth-json-rpc-errors/-/eth-json-rpc-errors-1.1.1.tgz", - "integrity": "sha512-WT5shJ5KfNqHi9jOZD+ID8I1kuYWNrigtZat7GOQkvwo99f8SzAVaEcWhJUv656WiZOAg3P1RiJQANtUmDmbIg==", - "requires": { - "fast-safe-stringify": "^2.0.6" - } - }, - "ethereum-common": { - "version": "0.0.18", - "resolved": "https://registry.npmjs.org/ethereum-common/-/ethereum-common-0.0.18.tgz", - "integrity": "sha1-L9w1dvIykDNYl26znaeDIT/5Uj8=" - }, - "ethereumjs-tx": { - "version": "1.3.7", - "resolved": "https://registry.npmjs.org/ethereumjs-tx/-/ethereumjs-tx-1.3.7.tgz", - "integrity": "sha512-wvLMxzt1RPhAQ9Yi3/HKZTn0FZYpnsmQdbKYfUUpi4j1SEIcbkd9tndVjcPrufY3V7j2IebOpC00Zp2P/Ay2kA==", - "requires": { - "ethereum-common": "^0.0.18", - "ethereumjs-util": "^5.0.0" - } - }, - "ethereumjs-util": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", - "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", - "requires": { - "bn.js": "^4.11.0", - "create-hash": "^1.1.2", - "elliptic": "^6.5.2", - "ethereum-cryptography": "^0.1.3", - "ethjs-util": "^0.1.3", - "rlp": "^2.0.0", - "safe-buffer": "^5.1.1" - } - }, - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" - } - } - }, - "@trufflesuite/eth-sig-util": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/@trufflesuite/eth-sig-util/-/eth-sig-util-1.4.2.tgz", - "integrity": "sha512-+GyfN6b0LNW77hbQlH3ufZ/1eCON7mMrGym6tdYf7xiNw9Vv3jBO72bmmos1EId2NgBvPMhmYYm6DSLQFTmzrA==", - "requires": { - "ethereumjs-abi": "^0.6.8", - "ethereumjs-util": "^5.1.1" - }, - "dependencies": { - "ethereumjs-util": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", - "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", - "requires": { - "bn.js": "^4.11.0", - "create-hash": "^1.1.2", - "elliptic": "^6.5.2", - "ethereum-cryptography": "^0.1.3", - "ethjs-util": "^0.1.3", - "rlp": "^2.0.0", - "safe-buffer": "^5.1.1" - } - } - } - }, - "@trufflesuite/spinnies": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@trufflesuite/spinnies/-/spinnies-0.1.1.tgz", - "integrity": "sha512-jltEtmFJj6xmQqr85gP8OqBHCEiId+zw+uAsb3DyLLRD17O6sySW6Afa2Z/jpzSafj+32ssDfLJ+c0of1NLqcA==", - "dev": true, - "optional": true, - "requires": { - "chalk": "^4.1.2", - "cli-cursor": "^3.1.0", - "strip-ansi": "^6.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "optional": true - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "optional": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "optional": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "optional": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true, - "optional": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "optional": true - }, - "strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "optional": true, - "requires": { - "ansi-regex": "^5.0.1" - } - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "optional": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "@trufflesuite/web3-provider-engine": { - "version": "15.0.14", - "resolved": "https://registry.npmjs.org/@trufflesuite/web3-provider-engine/-/web3-provider-engine-15.0.14.tgz", - "integrity": "sha512-6/LoWvNMxYf0oaYzJldK2a9AdnkAdIeJhHW4nuUBAeO29eK9xezEaEYQ0ph1QRTaICxGxvn+1Azp4u8bQ8NEZw==", - "dev": true, - "requires": { - "@ethereumjs/tx": "^3.3.0", - "@trufflesuite/eth-json-rpc-filters": "^4.1.2-1", - "@trufflesuite/eth-json-rpc-infura": "^4.0.3-0", - "@trufflesuite/eth-json-rpc-middleware": "^4.4.2-1", - "@trufflesuite/eth-sig-util": "^1.4.2", - "async": "^2.5.0", - "backoff": "^2.5.0", - "clone": "^2.0.0", - "cross-fetch": "^2.1.0", - "eth-block-tracker": "^4.4.2", - "eth-json-rpc-errors": "^2.0.2", - "ethereumjs-block": "^1.2.2", - "ethereumjs-util": "^5.1.5", - "ethereumjs-vm": "^2.3.4", - "json-stable-stringify": "^1.0.1", - "promise-to-callback": "^1.0.0", - "readable-stream": "^2.2.9", - "request": "^2.85.0", - "semaphore": "^1.0.3", - "ws": "^5.1.1", - "xhr": "^2.2.0", - "xtend": "^4.0.1" - }, - "dependencies": { - "ethereumjs-util": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", - "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", - "dev": true, - "requires": { - "bn.js": "^4.11.0", - "create-hash": "^1.1.2", - "elliptic": "^6.5.2", - "ethereum-cryptography": "^0.1.3", - "ethjs-util": "^0.1.3", - "rlp": "^2.0.0", - "safe-buffer": "^5.1.1" - } - }, - "ws": { - "version": "5.2.3", - "resolved": "https://registry.npmjs.org/ws/-/ws-5.2.3.tgz", - "integrity": "sha512-jZArVERrMsKUatIdnLzqvcfydI85dvd/Fp1u/VOpfdDWQ4c9qWXe+VIeAbQ5FrDwciAkr+lzofXLz3Kuf26AOA==", - "dev": true, - "requires": { - "async-limiter": "~1.0.0" - } - } - } - }, - "@tsconfig/node10": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.9.tgz", - "integrity": "sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==", - "dev": true - }, - "@tsconfig/node12": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz", - "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==", - "dev": true - }, - "@tsconfig/node14": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz", - "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==", - "dev": true - }, - "@tsconfig/node16": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.4.tgz", - "integrity": "sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==", - "dev": true - }, - "@typechain/ethers-v5": { - "version": "10.2.0", - "resolved": "https://registry.npmjs.org/@typechain/ethers-v5/-/ethers-v5-10.2.0.tgz", - "integrity": "sha512-ikaq0N/w9fABM+G01OFmU3U3dNnyRwEahkdvi9mqy1a3XwKiPZaF/lu54OcNaEWnpvEYyhhS0N7buCtLQqC92w==", - "requires": { - "lodash": "^4.17.15", - "ts-essentials": "^7.0.1" - }, - "dependencies": { - "ts-essentials": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/ts-essentials/-/ts-essentials-7.0.3.tgz", - "integrity": "sha512-8+gr5+lqO3G84KdiTSMRLtuyJ+nTBVRKuCrK4lidMPdVeEp0uqC875uE5NMcaA7YYMN7XsNiFQuMvasF8HT/xQ==", - "requires": {} - } - } - }, - "@types/accepts": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/@types/accepts/-/accepts-1.3.5.tgz", - "integrity": "sha512-jOdnI/3qTpHABjM5cx1Hc0sKsPoYCp+DP/GJRGtDlPd7fiV9oXGGIcjW/ZOxLIvjGz8MA+uMZI9metHlgqbgwQ==", - "dev": true, - "optional": true, - "requires": { - "@types/node": "*" - } - }, - "@types/bn.js": { - "version": "4.11.6", - "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-4.11.6.tgz", - "integrity": "sha512-pqr857jrp2kPuO9uRjZ3PwnJTjoQy+fcdxvBTvHm6dkmEL9q+hDD/2j/0ELOBPtPnS8LjCX0gI9nbl8lVkadpg==", - "requires": { - "@types/node": "*" - } - }, - "@types/body-parser": { - "version": "1.19.2", - "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.2.tgz", - "integrity": "sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==", - "dev": true, - "optional": true, - "requires": { - "@types/connect": "*", - "@types/node": "*" - } - }, - "@types/cacheable-request": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/@types/cacheable-request/-/cacheable-request-6.0.3.tgz", - "integrity": "sha512-IQ3EbTzGxIigb1I3qPZc1rWJnH0BmSKv5QYTalEwweFvyBDLSAe24zP0le/hyi7ecGfZVlIVAg4BZqb8WBwKqw==", - "dev": true, - "requires": { - "@types/http-cache-semantics": "*", - "@types/keyv": "^3.1.4", - "@types/node": "*", - "@types/responselike": "^1.0.0" - } - }, - "@types/cbor": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@types/cbor/-/cbor-2.0.0.tgz", - "integrity": "sha1-xievwu4i8j8jN/7LNGKKT5fGr7s=", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "@types/color-name": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz", - "integrity": "sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==", - "dev": true - }, - "@types/connect": { - "version": "3.4.35", - "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz", - "integrity": "sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==", - "requires": { - "@types/node": "*" - } - }, - "@types/cors": { - "version": "2.8.12", - "resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.12.tgz", - "integrity": "sha512-vt+kDhq/M2ayberEtJcIN/hxXy1Pk+59g2FV/ZQceeaTyCtCucjL2Q7FXlFjtWn4n15KCr1NE2lNNFhp0lEThw==", - "dev": true, - "optional": true - }, - "@types/express": { - "version": "4.17.14", - "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.14.tgz", - "integrity": "sha512-TEbt+vaPFQ+xpxFLFssxUDXj5cWCxZJjIcB7Yg0k0GMHGtgtQgpvx/MUQUeAkNbA9AAGrwkAsoeItdTgS7FMyg==", - "dev": true, - "optional": true, - "requires": { - "@types/body-parser": "*", - "@types/express-serve-static-core": "^4.17.18", - "@types/qs": "*", - "@types/serve-static": "*" - } - }, - "@types/express-serve-static-core": { - "version": "4.17.34", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.34.tgz", - "integrity": "sha512-fvr49XlCGoUj2Pp730AItckfjat4WNb0lb3kfrLWffd+RLeoGAMsq7UOy04PAPtoL01uKwcp6u8nhzpgpDYr3w==", - "dev": true, - "optional": true, - "requires": { - "@types/node": "*", - "@types/qs": "*", - "@types/range-parser": "*", - "@types/send": "*" - } - }, - "@types/fs-extra": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-7.0.0.tgz", - "integrity": "sha512-ndoMMbGyuToTy4qB6Lex/inR98nPiNHacsgMPvy+zqMLgSxbt8VtWpDArpGp69h1fEDQHn1KB+9DWD++wgbwYA==", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "@types/http-cache-semantics": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.1.tgz", - "integrity": "sha512-SZs7ekbP8CN0txVG2xVRH6EgKmEm31BOxA07vkFaETzZz1xh+cbt8BcI0slpymvwhx5dlFnQG2rTlPVQn+iRPQ==", - "dev": true - }, - "@types/keyv": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/@types/keyv/-/keyv-3.1.4.tgz", - "integrity": "sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "@types/lodash": { - "version": "4.14.192", - "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.192.tgz", - "integrity": "sha512-km+Vyn3BYm5ytMO13k9KTp27O75rbQ0NFw+U//g+PX7VZyjCioXaRFisqSIJRECljcTv73G3i6BpglNGHgUQ5A==" - }, - "@types/lodash.values": { - "version": "4.3.7", - "resolved": "https://registry.npmjs.org/@types/lodash.values/-/lodash.values-4.3.7.tgz", - "integrity": "sha512-Moex9/sWxtKEa+BKiH5zvmhfcieDlcz4wRxMhO/oJ2qOKUdujoU6dQjUTxWA8jwEREpHXmiY4HCwNRpycW8JQA==", - "requires": { - "@types/lodash": "*" - } - }, - "@types/long": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/@types/long/-/long-4.0.2.tgz", - "integrity": "sha512-MqTGEo5bj5t157U6fA/BiDynNkn0YknVdh48CMPkTSpFTVmvao5UQmm7uEF6xBEo7qIMAlY/JSleYaE6VOdpaA==" - }, - "@types/mime": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.2.tgz", - "integrity": "sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw==", - "dev": true, - "optional": true - }, - "@types/mkdirp": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/@types/mkdirp/-/mkdirp-0.5.2.tgz", - "integrity": "sha512-U5icWpv7YnZYGsN4/cmh3WD2onMY0aJIiTE6+51TwJCttdHvtCYmkBNOobHlXwrJRL0nkH9jH4kD+1FAdMN4Tg==", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "@types/node": { - "version": "18.15.11", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.15.11.tgz", - "integrity": "sha512-E5Kwq2n4SbMzQOn6wnmBjuK9ouqlURrcZDVfbo9ftDDTFt3nk7ZKK4GMOzoYgnpQJKcxwQw+lGaBvvlMo0qN/Q==" - }, - "@types/npm": { - "version": "2.0.31", - "resolved": "https://registry.npmjs.org/@types/npm/-/npm-2.0.31.tgz", - "integrity": "sha512-v4JpUx83wVGItleYsnYeZrM8NTLSnYDfTE/iGm4owy6zZPNFNmnsvvrxiYtG3cVHt/XutzTjUBQ9Bh8bnvEkCw==", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "@types/pbkdf2": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@types/pbkdf2/-/pbkdf2-3.1.0.tgz", - "integrity": "sha512-Cf63Rv7jCQ0LaL8tNXmEyqTHuIJxRdlS5vMh1mj5voN4+QFhVZnlZruezqpWYDiJ8UTzhP0VmeLXCmBk66YrMQ==", - "requires": { - "@types/node": "*" - } - }, - "@types/prettier": { - "version": "1.19.1", - "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-1.19.1.tgz", - "integrity": "sha512-5qOlnZscTn4xxM5MeGXAMOsIOIKIbh9e85zJWfBRVPlRMEVawzoPhINYbRGkBZCI8LxvBe7tJCdWiarA99OZfQ==", - "dev": true - }, - "@types/qs": { - "version": "6.9.7", - "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.7.tgz", - "integrity": "sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==", - "dev": true, - "optional": true - }, - "@types/range-parser": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.4.tgz", - "integrity": "sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==", - "dev": true, - "optional": true - }, - "@types/resolve": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-0.0.8.tgz", - "integrity": "sha512-auApPaJf3NPfe18hSoJkp8EbZzer2ISk7o8mCC3M9he/a04+gbMF97NkpD2S8riMGvm4BMRI59/SZQSaLTKpsQ==", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "@types/responselike": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@types/responselike/-/responselike-1.0.0.tgz", - "integrity": "sha512-85Y2BjiufFzaMIlvJDvTTB8Fxl2xfLo4HgmHzVBz08w4wDePCTjYw66PdrolO0kzli3yam/YCgRufyo1DdQVTA==", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "@types/secp256k1": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@types/secp256k1/-/secp256k1-4.0.1.tgz", - "integrity": "sha512-+ZjSA8ELlOp8SlKi0YLB2tz9d5iPNEmOBd+8Rz21wTMdaXQIa9b6TEnD6l5qKOCypE7FSyPyck12qZJxSDNoog==", - "requires": { - "@types/node": "*" - } - }, - "@types/semver": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/@types/semver/-/semver-5.5.0.tgz", - "integrity": "sha512-41qEJgBH/TWgo5NFSvBCJ1qkoi3Q6ONSF2avrHq1LVEZfYpdHmj0y9SuTK+u9ZhG1sYQKBL1AWXKyLWP4RaUoQ==", - "dev": true - }, - "@types/send": { - "version": "0.17.1", - "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.1.tgz", - "integrity": "sha512-Cwo8LE/0rnvX7kIIa3QHCkcuF21c05Ayb0ZfxPiv0W8VRiZiNW/WuRupHKpqqGVGf7SUA44QSOUKaEd9lIrd/Q==", - "dev": true, - "optional": true, - "requires": { - "@types/mime": "^1", - "@types/node": "*" - } - }, - "@types/serve-static": { - "version": "1.15.1", - "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.1.tgz", - "integrity": "sha512-NUo5XNiAdULrJENtJXZZ3fHtfMolzZwczzBbnAeBbqBwG+LaG6YaJtuwzwGSQZ2wsCrxjEhNNjAkKigy3n8teQ==", - "dev": true, - "optional": true, - "requires": { - "@types/mime": "*", - "@types/node": "*" - } - }, - "@types/ws": { - "version": "7.4.7", - "resolved": "https://registry.npmjs.org/@types/ws/-/ws-7.4.7.tgz", - "integrity": "sha512-JQbbmxZTZehdc2iszGKs5oC3NFnjeay7mtAWrdt7qNtAVK0g19muApzAy4bm9byz79xa2ZnO/BOBC2R8RC5Lww==", - "requires": { - "@types/node": "*" - } - }, - "@ungap/promise-all-settled": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@ungap/promise-all-settled/-/promise-all-settled-1.1.2.tgz", - "integrity": "sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q==" - }, - "@web3-js/scrypt-shim": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/@web3-js/scrypt-shim/-/scrypt-shim-0.1.0.tgz", - "integrity": "sha512-ZtZeWCc/s0nMcdx/+rZwY1EcuRdemOK9ag21ty9UsHkFxsNb/AaoucUz0iPuyGe0Ku+PFuRmWZG7Z7462p9xPw==", - "requires": { - "scryptsy": "^2.1.0", - "semver": "^6.3.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" - } - } - }, - "@webassemblyjs/helper-code-frame": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.9.0.tgz", - "integrity": "sha512-ERCYdJBkD9Vu4vtjUYe8LZruWuNIToYq/ME22igL+2vj2dQ2OOujIZr3MEFvfEaqKoVqpsFKAGsRdBSBjrIvZA==", - "requires": { - "@webassemblyjs/wast-printer": "1.9.0" - }, - "dependencies": { - "@webassemblyjs/ast": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.9.0.tgz", - "integrity": "sha512-C6wW5L+b7ogSDVqymbkkvuW9kruN//YisMED04xzeBBqjHa2FYnmvOlS6Xj68xWQRgWvI9cIglsjFowH/RJyEA==", - "requires": { - "@webassemblyjs/helper-module-context": "1.9.0", - "@webassemblyjs/helper-wasm-bytecode": "1.9.0", - "@webassemblyjs/wast-parser": "1.9.0" - } - }, - "@webassemblyjs/helper-wasm-bytecode": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.9.0.tgz", - "integrity": "sha512-R7FStIzyNcd7xKxCZH5lE0Bqy+hGTwS3LJjuv1ZVxd9O7eHCedSdrId/hMOd20I+v8wDXEn+bjfKDLzTepoaUw==" - }, - "@webassemblyjs/wast-printer": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.9.0.tgz", - "integrity": "sha512-2J0nE95rHXHyQ24cWjMKJ1tqB/ds8z/cyeOZxJhcb+rW+SQASVjuznUSmdz5GpVJTzU8JkhYut0D3siFDD6wsA==", - "requires": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/wast-parser": "1.9.0", - "@xtuc/long": "4.2.2" - } - } - } - }, - "@webassemblyjs/helper-fsm": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-fsm/-/helper-fsm-1.9.0.tgz", - "integrity": "sha512-OPRowhGbshCb5PxJ8LocpdX9Kl0uB4XsAjl6jH/dWKlk/mzsANvhwbiULsaiqT5GZGT9qinTICdj6PLuM5gslw==" - }, - "@webassemblyjs/helper-module-context": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-module-context/-/helper-module-context-1.9.0.tgz", - "integrity": "sha512-MJCW8iGC08tMk2enck1aPW+BE5Cw8/7ph/VGZxwyvGbJwjktKkDK7vy7gAmMDx88D7mhDTCNKAW5tED+gZ0W8g==", - "requires": { - "@webassemblyjs/ast": "1.9.0" - }, - "dependencies": { - "@webassemblyjs/ast": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.9.0.tgz", - "integrity": "sha512-C6wW5L+b7ogSDVqymbkkvuW9kruN//YisMED04xzeBBqjHa2FYnmvOlS6Xj68xWQRgWvI9cIglsjFowH/RJyEA==", - "requires": { - "@webassemblyjs/helper-module-context": "1.9.0", - "@webassemblyjs/helper-wasm-bytecode": "1.9.0", - "@webassemblyjs/wast-parser": "1.9.0" - } - }, - "@webassemblyjs/helper-wasm-bytecode": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.9.0.tgz", - "integrity": "sha512-R7FStIzyNcd7xKxCZH5lE0Bqy+hGTwS3LJjuv1ZVxd9O7eHCedSdrId/hMOd20I+v8wDXEn+bjfKDLzTepoaUw==" - } - } - }, - "@webassemblyjs/wast-parser": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-parser/-/wast-parser-1.9.0.tgz", - "integrity": "sha512-qsqSAP3QQ3LyZjNC/0jBJ/ToSxfYJ8kYyuiGvtn/8MK89VrNEfwj7BPQzJVHi0jGTRK2dGdJ5PRqhtjzoww+bw==", - "requires": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/floating-point-hex-parser": "1.9.0", - "@webassemblyjs/helper-api-error": "1.9.0", - "@webassemblyjs/helper-code-frame": "1.9.0", - "@webassemblyjs/helper-fsm": "1.9.0", - "@xtuc/long": "4.2.2" - }, - "dependencies": { - "@webassemblyjs/ast": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.9.0.tgz", - "integrity": "sha512-C6wW5L+b7ogSDVqymbkkvuW9kruN//YisMED04xzeBBqjHa2FYnmvOlS6Xj68xWQRgWvI9cIglsjFowH/RJyEA==", - "requires": { - "@webassemblyjs/helper-module-context": "1.9.0", - "@webassemblyjs/helper-wasm-bytecode": "1.9.0", - "@webassemblyjs/wast-parser": "1.9.0" - } - }, - "@webassemblyjs/floating-point-hex-parser": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.9.0.tgz", - "integrity": "sha512-TG5qcFsS8QB4g4MhrxK5TqfdNe7Ey/7YL/xN+36rRjl/BlGE/NcBvJcqsRgCP6Z92mRE+7N50pRIi8SmKUbcQA==" - }, - "@webassemblyjs/helper-api-error": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.9.0.tgz", - "integrity": "sha512-NcMLjoFMXpsASZFxJ5h2HZRcEhDkvnNFOAKneP5RbKRzaWJN36NC4jqQHKwStIhGXu5mUWlUUk7ygdtrO8lbmw==" - }, - "@webassemblyjs/helper-wasm-bytecode": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.9.0.tgz", - "integrity": "sha512-R7FStIzyNcd7xKxCZH5lE0Bqy+hGTwS3LJjuv1ZVxd9O7eHCedSdrId/hMOd20I+v8wDXEn+bjfKDLzTepoaUw==" - } - } - }, - "@wry/context": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/@wry/context/-/context-0.7.0.tgz", - "integrity": "sha512-LcDAiYWRtwAoSOArfk7cuYvFXytxfVrdX7yxoUmK7pPITLk5jYh2F8knCwS7LjgYL8u1eidPlKKV6Ikqq0ODqQ==", - "requires": { - "tslib": "^2.3.0" - }, - "dependencies": { - "tslib": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz", - "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==" - } - } - }, - "@wry/trie": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@wry/trie/-/trie-0.3.2.tgz", - "integrity": "sha512-yRTyhWSls2OY/pYLfwff867r8ekooZ4UI+/gxot5Wj8EFwSf2rG+n+Mo/6LoLQm1TKA4GRj2+LCpbfS937dClQ==", - "requires": { - "tslib": "^2.3.0" - }, - "dependencies": { - "tslib": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz", - "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==" - } - } - }, - "@xpla/xpla.js": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/@xpla/xpla.js/-/xpla.js-0.2.3.tgz", - "integrity": "sha512-Tfk7hCGWXtwr08reY3Pi6dmzIqFbzri9jcyzJdfNmdo4cN0PMwpRJuZZcPmtxiIUnNef3AN1E/6nJUD5MKniuA==", - "requires": { - "@ethersproject/bytes": "^5.6.1", - "@ethersproject/keccak256": "^5.6.1", - "@ethersproject/signing-key": "^5.6.2", - "@terra-money/legacy.proto": "npm:@terra-money/terra.proto@^0.1.7", - "@terra-money/terra.proto": "^2.1.0", - "axios": "^0.26.1", - "bech32": "^2.0.0", - "bip32": "^2.0.6", - "bip39": "^3.0.3", - "bufferutil": "^4.0.3", - "crypto-addr-codec": "^0.1.7", - "decimal.js": "^10.2.1", - "elliptic": "^6.5.4", - "ethereumjs-util": "^7.1.5", - "jscrypto": "^1.0.1", - "readable-stream": "^3.6.0", - "secp256k1": "^4.0.2", - "tmp": "^0.2.1", - "utf-8-validate": "^5.0.5", - "ws": "^7.5.8" - }, - "dependencies": { - "@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==", - "requires": { - "@types/node": "*" - } - }, - "axios": { - "version": "0.26.1", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.26.1.tgz", - "integrity": "sha512-fPwcX4EvnSHuInCMItEhAGnaSEXRBjtzh9fOtsE6E1G6p7vl7edEeZe11QHf18+6+9gR5PbKV/sGKNaD8YaMeA==", - "requires": { - "follow-redirects": "^1.14.8" - } - }, - "bn.js": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", - "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==" - }, - "ethereumjs-util": { - "version": "7.1.5", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.5.tgz", - "integrity": "sha512-SDl5kKrQAudFBUe5OJM9Ac6WmMyYmXX/6sTmLZ3ffG2eY6ZIGBes3pEDxNN6V72WyOw4CPD5RomKdsa8DAAwLg==", - "requires": { - "@types/bn.js": "^5.1.0", - "bn.js": "^5.1.2", - "create-hash": "^1.1.2", - "ethereum-cryptography": "^0.1.3", - "rlp": "^2.2.4" - } - }, - "follow-redirects": { - "version": "1.15.2", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", - "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==" - }, - "readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - }, - "rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "requires": { - "glob": "^7.1.3" - } - }, - "tmp": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz", - "integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==", - "requires": { - "rimraf": "^3.0.0" - } - }, - "ws": { - "version": "7.5.9", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz", - "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==", - "requires": {} - } - } - }, - "@xtuc/ieee754": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", - "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==" - }, - "@xtuc/long": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", - "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==" - }, - "abort-controller": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", - "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", - "requires": { - "event-target-shim": "^5.0.0" - } - }, - "abortcontroller-polyfill": { - "version": "1.7.5", - "resolved": "https://registry.npmjs.org/abortcontroller-polyfill/-/abortcontroller-polyfill-1.7.5.tgz", - "integrity": "sha512-JMJ5soJWP18htbbxJjG7bG6yuI6pRhgJ0scHHTfkUjf6wjP912xZWvM+A4sJK3gqd9E8fcPbDnOefbA9Th/FIQ==", - "dev": true - }, - "abstract-leveldown": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-2.6.3.tgz", - "integrity": "sha512-2++wDf/DYqkPR3o5tbfdhF96EfMApo1GpPfzOsR/ZYXdkSmELlvOOEAl9iKkRsktMPHdGjO4rtkBpf2I7TiTeA==", - "requires": { - "xtend": "~4.0.0" - } - }, - "accepts": { - "version": "1.3.7", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", - "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", - "dev": true, - "requires": { - "mime-types": "~2.1.24", - "negotiator": "0.6.2" - } - }, - "acorn": { - "version": "7.4.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.0.tgz", - "integrity": "sha512-+G7P8jJmCHr+S+cLfQxygbWhXy+8YTVGzAkpEbcLo2mLoL7tij/VG41QSHACSf5QgYRhMZYHuNc6drJaO0Da+w==", - "dev": true - }, - "acorn-jsx": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.2.0.tgz", - "integrity": "sha512-HiUX/+K2YpkpJ+SzBffkM/AQ2YE03S0U1kjTLVpoJdhZMOWy8qvXVN9JdLqv2QsaQ6MPYQIuNmwD8zOiYUofLQ==", - "dev": true - }, - "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 - }, - "aes-js": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/aes-js/-/aes-js-3.0.0.tgz", - "integrity": "sha1-4h3xCtbCBTKVvLuNq0Cwnb6ofk0=" - }, - "agentkeepalive": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.3.0.tgz", - "integrity": "sha512-7Epl1Blf4Sy37j4v9f9FjICCh4+KAQOyXgHEwlyBiAQLbhKdq/i2QQU3amQalS/wPhdPzDXPL5DMR5bkn+YeWg==", - "requires": { - "debug": "^4.1.0", - "depd": "^2.0.0", - "humanize-ms": "^1.2.1" - }, - "dependencies": { - "debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "requires": { - "ms": "2.1.2" - } - }, - "depd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", - "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==" - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - } - } - }, - "ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "ajv-errors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/ajv-errors/-/ajv-errors-1.0.1.tgz", - "integrity": "sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ==", - "requires": {} - }, - "ajv-formats": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", - "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", - "dev": true, - "optional": true, - "requires": { - "ajv": "^8.0.0" - }, - "dependencies": { - "ajv": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", - "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", - "dev": true, - "optional": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - } - }, - "json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true, - "optional": true - } - } - }, - "ajv-keywords": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", - "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "requires": {} - }, - "algo-msgpack-with-bigint": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/algo-msgpack-with-bigint/-/algo-msgpack-with-bigint-2.1.1.tgz", - "integrity": "sha512-F1tGh056XczEaEAqu7s+hlZUDWwOBT70Eq0lfMpBP2YguSQVyxRbprLq5rELXKQOyOaixTWYhMeMQMzP0U5FoQ==" - }, - "algosdk": { - "version": "1.24.1", - "resolved": "https://registry.npmjs.org/algosdk/-/algosdk-1.24.1.tgz", - "integrity": "sha512-9moZxdqeJ6GdE4N6fA/GlUP4LrbLZMYcYkt141J4Ss68OfEgH9qW0wBuZ3ZOKEx/xjc5bg7mLP2Gjg7nwrkmww==", - "requires": { - "algo-msgpack-with-bigint": "^2.1.1", - "buffer": "^6.0.2", - "cross-fetch": "^3.1.5", - "hi-base32": "^0.5.1", - "js-sha256": "^0.9.0", - "js-sha3": "^0.8.0", - "js-sha512": "^0.8.0", - "json-bigint": "^1.0.0", - "tweetnacl": "^1.0.3", - "vlq": "^2.0.4" - }, - "dependencies": { - "buffer": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", - "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", - "requires": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" - } - }, - "cross-fetch": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.5.tgz", - "integrity": "sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw==", - "requires": { - "node-fetch": "2.6.7" - } - }, - "js-sha3": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.8.0.tgz", - "integrity": "sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q==" - }, - "node-fetch": { - "version": "2.6.7", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", - "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", - "requires": { - "whatwg-url": "^5.0.0" - } - }, - "tweetnacl": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.3.tgz", - "integrity": "sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==" - } - } - }, - "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==" - }, - "ansi-escapes": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz", - "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==", - "dev": true - }, - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==" - }, - "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==", - "requires": { - "color-convert": "^1.9.0" - } - }, - "antlr4ts": { - "version": "0.5.0-alpha.4", - "resolved": "https://registry.npmjs.org/antlr4ts/-/antlr4ts-0.5.0-alpha.4.tgz", - "integrity": "sha512-WPQDt1B74OfPv/IMS2ekXAKkTZIHl88uMetg6q3OTqgFxZ/dxDXI0EWLyZid/1Pe6hTftyg5N7gel5wNAGxXyQ==", - "dev": true - }, - "any-promise": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", - "integrity": "sha1-q8av7tzqUugJzcA3au0845Y10X8=" - }, - "anymatch": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", - "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", - "requires": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - } - }, - "apollo-datasource": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/apollo-datasource/-/apollo-datasource-3.3.2.tgz", - "integrity": "sha512-L5TiS8E2Hn/Yz7SSnWIVbZw0ZfEIXZCa5VUiVxD9P53JvSrf4aStvsFDlGWPvpIdCR+aly2CfoB79B9/JjKFqg==", - "dev": true, - "optional": true, - "requires": { - "@apollo/utils.keyvaluecache": "^1.0.1", - "apollo-server-env": "^4.2.1" - } - }, - "apollo-reporting-protobuf": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/apollo-reporting-protobuf/-/apollo-reporting-protobuf-3.4.0.tgz", - "integrity": "sha512-h0u3EbC/9RpihWOmcSsvTW2O6RXVaD/mPEjfrPkxRPTEPWqncsgOoRJw+wih4OqfH3PvTJvoEIf4LwKrUaqWog==", - "dev": true, - "optional": true, - "requires": { - "@apollo/protobufjs": "1.2.6" - }, - "dependencies": { - "@apollo/protobufjs": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/@apollo/protobufjs/-/protobufjs-1.2.6.tgz", - "integrity": "sha512-Wqo1oSHNUj/jxmsVp4iR3I480p6qdqHikn38lKrFhfzcDJ7lwd7Ck7cHRl4JE81tWNArl77xhnG/OkZhxKBYOw==", - "dev": true, - "optional": true, - "requires": { - "@protobufjs/aspromise": "^1.1.2", - "@protobufjs/base64": "^1.1.2", - "@protobufjs/codegen": "^2.0.4", - "@protobufjs/eventemitter": "^1.1.0", - "@protobufjs/fetch": "^1.1.0", - "@protobufjs/float": "^1.0.2", - "@protobufjs/inquire": "^1.1.0", - "@protobufjs/path": "^1.1.2", - "@protobufjs/pool": "^1.1.0", - "@protobufjs/utf8": "^1.1.0", - "@types/long": "^4.0.0", - "@types/node": "^10.1.0", - "long": "^4.0.0" - } - }, - "@types/node": { - "version": "10.17.60", - "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.60.tgz", - "integrity": "sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw==", - "dev": true, - "optional": true - } - } - }, - "apollo-server": { - "version": "3.12.0", - "resolved": "https://registry.npmjs.org/apollo-server/-/apollo-server-3.12.0.tgz", - "integrity": "sha512-wZHLgBoIdGxr/YpPTG5RwNnS+B2y70T/nCegCnU6Yl+H3PXB92OIguLMhdJIZVjukIOhiQT12dNIehqLQ+1hMQ==", - "dev": true, - "optional": true, - "requires": { - "@types/express": "4.17.14", - "apollo-server-core": "^3.12.0", - "apollo-server-express": "^3.12.0", - "express": "^4.17.1" - } - }, - "apollo-server-core": { - "version": "3.12.0", - "resolved": "https://registry.npmjs.org/apollo-server-core/-/apollo-server-core-3.12.0.tgz", - "integrity": "sha512-hq7iH6Cgldgmnjs9FVSZeKWRpi0/ZR+iJ1arzeD2VXGxxgk1mAm/cz1Tx0TYgegZI+FvvrRl0UhKEx7sLnIxIg==", - "dev": true, - "optional": true, - "requires": { - "@apollo/utils.keyvaluecache": "^1.0.1", - "@apollo/utils.logger": "^1.0.0", - "@apollo/utils.usagereporting": "^1.0.0", - "@apollographql/apollo-tools": "^0.5.3", - "@apollographql/graphql-playground-html": "1.6.29", - "@graphql-tools/mock": "^8.1.2", - "@graphql-tools/schema": "^8.0.0", - "@josephg/resolvable": "^1.0.0", - "apollo-datasource": "^3.3.2", - "apollo-reporting-protobuf": "^3.4.0", - "apollo-server-env": "^4.2.1", - "apollo-server-errors": "^3.3.1", - "apollo-server-plugin-base": "^3.7.2", - "apollo-server-types": "^3.8.0", - "async-retry": "^1.2.1", - "fast-json-stable-stringify": "^2.1.0", - "graphql-tag": "^2.11.0", - "loglevel": "^1.6.8", - "lru-cache": "^6.0.0", - "node-abort-controller": "^3.0.1", - "sha.js": "^2.4.11", - "uuid": "^9.0.0", - "whatwg-mimetype": "^3.0.0" - }, - "dependencies": { - "uuid": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.0.tgz", - "integrity": "sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg==", - "dev": true, - "optional": true - } - } - }, - "apollo-server-env": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/apollo-server-env/-/apollo-server-env-4.2.1.tgz", - "integrity": "sha512-vm/7c7ld+zFMxibzqZ7SSa5tBENc4B0uye9LTfjJwGoQFY5xsUPH5FpO5j0bMUDZ8YYNbrF9SNtzc5Cngcr90g==", - "dev": true, - "optional": true, - "requires": { - "node-fetch": "^2.6.7" - }, - "dependencies": { - "node-fetch": { - "version": "2.6.11", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.11.tgz", - "integrity": "sha512-4I6pdBY1EthSqDmJkiNk3JIT8cswwR9nfeW/cPdUagJYEQG7R95WRH74wpz7ma8Gh/9dI9FP+OU+0E4FvtA55w==", - "dev": true, - "optional": true, - "requires": { - "whatwg-url": "^5.0.0" - } - } - } - }, - "apollo-server-errors": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/apollo-server-errors/-/apollo-server-errors-3.3.1.tgz", - "integrity": "sha512-xnZJ5QWs6FixHICXHxUfm+ZWqqxrNuPlQ+kj5m6RtEgIpekOPssH/SD9gf2B4HuWV0QozorrygwZnux8POvyPA==", - "dev": true, - "optional": true, - "requires": {} - }, - "apollo-server-express": { - "version": "3.12.0", - "resolved": "https://registry.npmjs.org/apollo-server-express/-/apollo-server-express-3.12.0.tgz", - "integrity": "sha512-m8FaGPUfDOEGSm7QRWRmUUGjG/vqvpQoorkId9/FXkC57fz/A59kEdrzkMt9538Xgsa5AV+X4MEWLJhTvlW3LQ==", - "dev": true, - "optional": true, - "requires": { - "@types/accepts": "^1.3.5", - "@types/body-parser": "1.19.2", - "@types/cors": "2.8.12", - "@types/express": "4.17.14", - "@types/express-serve-static-core": "4.17.31", - "accepts": "^1.3.5", - "apollo-server-core": "^3.12.0", - "apollo-server-types": "^3.8.0", - "body-parser": "^1.19.0", - "cors": "^2.8.5", - "parseurl": "^1.3.3" - }, - "dependencies": { - "@types/express-serve-static-core": { - "version": "4.17.31", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.31.tgz", - "integrity": "sha512-DxMhY+NAsTwMMFHBTtJFNp5qiHKJ7TeqOo23zVEM9alT1Ml27Q3xcTH0xwxn7Q0BbMcVEJOs/7aQtUWupUQN3Q==", - "dev": true, - "optional": true, - "requires": { - "@types/node": "*", - "@types/qs": "*", - "@types/range-parser": "*" - } - } - } - }, - "apollo-server-plugin-base": { - "version": "3.7.2", - "resolved": "https://registry.npmjs.org/apollo-server-plugin-base/-/apollo-server-plugin-base-3.7.2.tgz", - "integrity": "sha512-wE8dwGDvBOGehSsPTRZ8P/33Jan6/PmL0y0aN/1Z5a5GcbFhDaaJCjK5cav6npbbGL2DPKK0r6MPXi3k3N45aw==", - "dev": true, - "optional": true, - "requires": { - "apollo-server-types": "^3.8.0" - } - }, - "apollo-server-types": { - "version": "3.8.0", - "resolved": "https://registry.npmjs.org/apollo-server-types/-/apollo-server-types-3.8.0.tgz", - "integrity": "sha512-ZI/8rTE4ww8BHktsVpb91Sdq7Cb71rdSkXELSwdSR0eXu600/sY+1UXhTWdiJvk+Eq5ljqoHLwLbY2+Clq2b9A==", - "dev": true, - "optional": true, - "requires": { - "@apollo/utils.keyvaluecache": "^1.0.1", - "@apollo/utils.logger": "^1.0.0", - "apollo-reporting-protobuf": "^3.4.0", - "apollo-server-env": "^4.2.1" - } - }, - "app-module-path": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/app-module-path/-/app-module-path-2.2.0.tgz", - "integrity": "sha1-ZBqlXft9am8KgUHEucCqULbCTdU=", - "dev": true - }, - "aproba": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", - "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==" - }, - "aptos": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/aptos/-/aptos-1.5.0.tgz", - "integrity": "sha512-N7OuRtU7IYHkDkNx+4QS3g/QQGCp+36KzYn3oXPmT7Kttfuv+UKliQVdjy3cLmwd/DCQSh9ObTovwdxnHjUn0g==", - "requires": { - "@noble/hashes": "1.1.3", - "@scure/bip39": "1.1.0", - "axios": "0.27.2", - "form-data": "4.0.0", - "tweetnacl": "1.0.3" - }, - "dependencies": { - "@noble/hashes": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.1.3.tgz", - "integrity": "sha512-CE0FCR57H2acVI5UOzIGSSIYxZ6v/HOhDR0Ro9VLyhnzLwx0o8W1mmgaqlEUx4049qJDlIBRztv5k+MM8vbO3A==" - }, - "axios": { - "version": "0.27.2", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.27.2.tgz", - "integrity": "sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==", - "requires": { - "follow-redirects": "^1.14.9", - "form-data": "^4.0.0" - } - }, - "follow-redirects": { - "version": "1.15.2", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", - "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==" - }, - "form-data": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", - "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - } - }, - "tweetnacl": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.3.tgz", - "integrity": "sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==" - } - } - }, - "arg": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", - "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", - "dev": true - }, - "argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dev": true, - "requires": { - "sprintf-js": "~1.0.2" - } - }, - "argsarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/argsarray/-/argsarray-0.0.1.tgz", - "integrity": "sha512-u96dg2GcAKtpTrBdDoFIM7PjcBA+6rSP0OR94MOReNRyUECL6MtQt5XXmRr4qrftYaef9+l5hcpO5te7sML1Cg==", - "dev": true, - "optional": true - }, - "arr-diff": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=" - }, - "arr-flatten": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", - "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==" - }, - "arr-union": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", - "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=" - }, - "array-back": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-3.1.0.tgz", - "integrity": "sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q==" - }, - "array-filter": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/array-filter/-/array-filter-1.0.0.tgz", - "integrity": "sha1-uveeYubvTCpMC4MSMtr/7CUfnYM=", - "dev": true - }, - "array-flatten": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", - "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=", - "dev": true - }, - "array-unique": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=" - }, - "asn1": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", - "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", - "requires": { - "safer-buffer": "~2.1.0" - } - }, - "asn1.js": { - "version": "4.10.1", - "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.10.1.tgz", - "integrity": "sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==", - "requires": { - "bn.js": "^4.0.0", - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0" - } - }, - "assert": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/assert/-/assert-1.5.0.tgz", - "integrity": "sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA==", - "requires": { - "object-assign": "^4.1.1", - "util": "0.10.3" - }, - "dependencies": { - "inherits": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", - "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=" - }, - "util": { - "version": "0.10.3", - "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", - "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", - "requires": { - "inherits": "2.0.1" - } - } - } - }, - "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" - }, - "assertion-error": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", - "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==" - }, - "assign-symbols": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", - "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=" - }, - "astral-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz", - "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==", - "dev": true - }, - "async": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", - "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", - "requires": { - "lodash": "^4.17.14" - } - }, - "async-each": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz", - "integrity": "sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==", - "optional": true - }, - "async-eventemitter": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/async-eventemitter/-/async-eventemitter-0.2.4.tgz", - "integrity": "sha512-pd20BwL7Yt1zwDFy+8MX8F1+WCT8aQeKj0kQnTrH9WaeRETlRamVhD0JtRPmrV4GfOJ2F9CvdQkZeZhnh2TuHw==", - "requires": { - "async": "^2.4.0" - } - }, - "async-iterator-to-pull-stream": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/async-iterator-to-pull-stream/-/async-iterator-to-pull-stream-1.3.0.tgz", - "integrity": "sha512-NjyhAEz/sx32olqgKIk/2xbWEM6o8qef1yetIgb0U/R3oBgndP1kE/0CslowH3jvnA94BO4I6OXpOkTKH7Z1AA==", - "requires": { - "get-iterator": "^1.0.2", - "pull-stream-to-async-iterator": "^1.0.1" - } - }, - "async-limiter": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz", - "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==" - }, - "async-retry": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/async-retry/-/async-retry-1.3.3.tgz", - "integrity": "sha512-wfr/jstw9xNi/0teMHrRW7dsz3Lt5ARhYNZ2ewpadnhaIp5mbALhOAP+EAdsC7t4Z6wqsDVv9+W6gm1Dk9mEyw==", - "dev": true, - "optional": true, - "requires": { - "retry": "0.13.1" - } - }, - "asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" - }, - "at-least-node": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", - "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", - "dev": true, - "optional": true - }, - "atob": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", - "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==" - }, - "atomically": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/atomically/-/atomically-1.7.0.tgz", - "integrity": "sha512-Xcz9l0z7y9yQ9rdDaxlmaI4uJHf/T8g9hOEzJcsEqX2SjCj4J20uK7+ldkDHMbpJDK76wF7xEIgxc/vSlsfw5w==", - "dev": true, - "optional": true - }, - "available-typed-arrays": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.2.tgz", - "integrity": "sha512-XWX3OX8Onv97LMk/ftVyBibpGwY5a8SmuxZPzeOxqmuEqUCOM9ZE+uIaD1VNJ5QnvU2UQusvmKbuM1FR8QWGfQ==", - "dev": true, - "requires": { - "array-filter": "^1.0.0" - } - }, - "await-semaphore": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/await-semaphore/-/await-semaphore-0.1.3.tgz", - "integrity": "sha512-d1W2aNSYcz/sxYO4pMGX9vq65qOTu0P800epMud+6cYYX0QcT7zyqcxec3VWzpgvdXo57UWmVbZpLMjX2m1I7Q==" - }, - "aws-sign2": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", - "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=" - }, - "aws4": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.10.0.tgz", - "integrity": "sha512-3YDiu347mtVtjpyV3u5kVqQLP242c06zwDOgpeRnybmXlYYsLbtTrUBUm8i8srONt+FWobl5aibnU1030PeeuA==" - }, - "axios": { - "version": "0.18.1", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.18.1.tgz", - "integrity": "sha512-0BfJq4NSfQXd+SkFdrvFbG7addhYSBA2mQwISr46pD6E5iqkWg02RAs8vyTT/j0RTnoYmeXauBuSv1qKwR179g==", - "dev": true, - "requires": { - "follow-redirects": "1.5.10", - "is-buffer": "^2.0.2" - } - }, - "babel-plugin-polyfill-corejs2": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.0.tgz", - "integrity": "sha512-wMDoBJ6uG4u4PNFh72Ty6t3EgfA91puCuAwKIazbQlci+ENb/UU9A3xG5lutjUIiXCIn1CY5L15r9LimiJyrSA==", - "requires": { - "@babel/compat-data": "^7.13.11", - "@babel/helper-define-polyfill-provider": "^0.3.0", - "semver": "^6.1.1" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" - } - } - }, - "babel-plugin-polyfill-corejs3": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.5.0.tgz", - "integrity": "sha512-Hcrgnmkf+4JTj73GbK3bBhlVPiLL47owUAnoJIf69Hakl3q+KfodbDXiZWGMM7iqCZTxCG3Z2VRfPNYES4rXqQ==", - "requires": { - "@babel/helper-define-polyfill-provider": "^0.3.0", - "core-js-compat": "^3.20.0" - } - }, - "babel-plugin-polyfill-regenerator": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.3.0.tgz", - "integrity": "sha512-dhAPTDLGoMW5/84wkgwiLRwMnio2i1fUe53EuvtKMv0pn2p3S8OCoV1xAzfJPl0KOX7IB89s2ib85vbYiea3jg==", - "requires": { - "@babel/helper-define-polyfill-provider": "^0.3.0" - } - }, - "backo2": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/backo2/-/backo2-1.0.2.tgz", - "integrity": "sha1-MasayLEpNjRj41s+u2n038+6eUc=", - "optional": true, - "peer": true - }, - "backoff": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/backoff/-/backoff-2.5.0.tgz", - "integrity": "sha1-9hbtqdPktmuMp/ynn2lXIsX44m8=", - "requires": { - "precond": "0.2" - } - }, - "balanced-match": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" - }, - "base": { - "version": "0.11.2", - "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", - "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", - "requires": { - "cache-base": "^1.0.1", - "class-utils": "^0.3.5", - "component-emitter": "^1.2.1", - "define-property": "^1.0.0", - "isobject": "^3.0.1", - "mixin-deep": "^1.2.0", - "pascalcase": "^0.1.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "requires": { - "is-descriptor": "^1.0.0" - } - } - } - }, - "base-x": { - "version": "3.0.8", - "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.8.tgz", - "integrity": "sha512-Rl/1AWP4J/zRrk54hhlxH4drNxPJXYUaKffODVI53/dAsV4t9fBxyxYKAVPU1XBHxYwOWP9h9H0hM2MVw4YfJA==", - "requires": { - "safe-buffer": "^5.0.1" - } - }, - "base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==" - }, - "bcrypt-pbkdf": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", - "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", - "requires": { - "tweetnacl": "^0.14.3" - } - }, - "bech32": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/bech32/-/bech32-2.0.0.tgz", - "integrity": "sha512-LcknSilhIGatDAsY1ak2I8VtGaHNhgMSYVxFrGLXv+xLHytaKZKcaUJJUE7qmBr7h33o5YQwP55pMI0xmkpJwg==" - }, - "big-integer": { - "version": "1.6.36", - "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.36.tgz", - "integrity": "sha512-t70bfa7HYEA1D9idDbmuv7YbsbVkQ+Hp+8KFSul4aE5e/i1bjCNIRYJZlA8Q8p0r9T8cF/RVvwUgRA//FydEyg==" - }, - "big.js": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", - "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==" - }, - "bigint-buffer": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/bigint-buffer/-/bigint-buffer-1.1.5.tgz", - "integrity": "sha512-trfYco6AoZ+rKhKnxA0hgX0HAbVP/s808/EuDSe2JDzUnCp/xAsli35Orvk67UrTEcwuxZqYZDmfA2RXJgxVvA==", - "requires": { - "bindings": "^1.3.0" - } - }, - "bignumber.js": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-8.1.1.tgz", - "integrity": "sha512-QD46ppGintwPGuL1KqmwhR0O+N2cZUg8JG/VzwI2e28sM9TqHjQB10lI4QAaMHVbLzwVLLAwEglpKPViWX+5NQ==", - "dev": true - }, - "binary-extensions": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.1.0.tgz", - "integrity": "sha512-1Yj8h9Q+QDF5FzhMs/c9+6UntbD5MkRfRwac8DoEm9ZfUBZ7tZ55YcGVAzEe4bXsdQHEk+s9S5wsOKVdZrw0tQ==" - }, - "binary-parser": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/binary-parser/-/binary-parser-2.2.1.tgz", - "integrity": "sha512-5ATpz/uPDgq5GgEDxTB4ouXCde7q2lqAQlSdBRQVl/AJnxmQmhIfyxJx+0MGu//D5rHQifkfGbWWlaysG0o9NA==" - }, - "bindings": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", - "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", - "requires": { - "file-uri-to-path": "1.0.0" - } - }, - "bip32": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/bip32/-/bip32-2.0.6.tgz", - "integrity": "sha512-HpV5OMLLGTjSVblmrtYRfFFKuQB+GArM0+XP8HGWfJ5vxYBqo+DesvJwOdC2WJ3bCkZShGf0QIfoIpeomVzVdA==", - "requires": { - "@types/node": "10.12.18", - "bs58check": "^2.1.1", - "create-hash": "^1.2.0", - "create-hmac": "^1.1.7", - "tiny-secp256k1": "^1.1.3", - "typeforce": "^1.11.5", - "wif": "^2.0.6" - }, - "dependencies": { - "@types/node": { - "version": "10.12.18", - "resolved": "https://registry.npmjs.org/@types/node/-/node-10.12.18.tgz", - "integrity": "sha512-fh+pAqt4xRzPfqA6eh3Z2y6fyZavRIumvjhaCL753+TVkGKGhpPeyrJG2JftD0T9q4GF00KjefsQ+PQNDdWQaQ==" - } - } - }, - "bip39": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/bip39/-/bip39-3.0.4.tgz", - "integrity": "sha512-YZKQlb752TrUWqHWj7XAwCSjYEgGAk+/Aas3V7NyjQeZYsztO8JnQUaCWhcnL4T+jL8nvB8typ2jRPzTlgugNw==", - "requires": { - "@types/node": "11.11.6", - "create-hash": "^1.1.0", - "pbkdf2": "^3.0.9", - "randombytes": "^2.0.1" - }, - "dependencies": { - "@types/node": { - "version": "11.11.6", - "resolved": "https://registry.npmjs.org/@types/node/-/node-11.11.6.tgz", - "integrity": "sha512-Exw4yUWMBXM3X+8oqzJNRqZSwUAaS4+7NdvHqQuFi/d+synz++xmX3QIf+BFqneW8N31R8Ky+sikfZUXq07ggQ==" - } - } - }, - "bip66": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/bip66/-/bip66-1.1.5.tgz", - "integrity": "sha1-AfqHSHhcpwlV1QESF9GzE5lpyiI=", - "requires": { - "safe-buffer": "^5.0.1" - } - }, - "bl": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/bl/-/bl-1.2.2.tgz", - "integrity": "sha512-e8tQYnZodmebYDWGH7KMRvtzKXaJHx3BbilrgZCfvyLUYdKpK1t5PSPmpkny/SgiTSCnjfLW7v5rlONXVFkQEA==", - "dev": true, - "requires": { - "readable-stream": "^2.3.5", - "safe-buffer": "^5.1.1" - } - }, - "blakejs": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/blakejs/-/blakejs-1.1.0.tgz", - "integrity": "sha1-ad+S75U6qIylGjLfarHFShVfx6U=" - }, - "bluebird": { - "version": "3.7.2", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", - "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==" - }, - "bn.js": { - "version": "4.11.9", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", - "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==" - }, - "body-parser": { - "version": "1.19.0", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz", - "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==", - "dev": true, - "requires": { - "bytes": "3.1.0", - "content-type": "~1.0.4", - "debug": "2.6.9", - "depd": "~1.1.2", - "http-errors": "1.7.2", - "iconv-lite": "0.4.24", - "on-finished": "~2.3.0", - "qs": "6.7.0", - "raw-body": "2.4.0", - "type-is": "~1.6.17" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "qs": { - "version": "6.7.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", - "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==", - "dev": true - } - } - }, - "boolbase": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", - "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=", - "dev": true - }, - "borsh": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/borsh/-/borsh-0.7.0.tgz", - "integrity": "sha512-CLCsZGIBCFnPtkNnieW/a8wmreDmfUtjU2m9yHrzPXIlNbqVs0AQrSatSG6vdNYUqdc83tkQi2eHfF98ubzQLA==", - "requires": { - "bn.js": "^5.2.0", - "bs58": "^4.0.0", - "text-encoding-utf-8": "^1.0.2" - }, - "dependencies": { - "bn.js": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", - "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==" - } - } - }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "requires": { - "fill-range": "^7.0.1" - } - }, - "brorand": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", - "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=" - }, - "browser-headers": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/browser-headers/-/browser-headers-0.4.1.tgz", - "integrity": "sha512-CA9hsySZVo9371qEHjHZtYxV2cFtVj5Wj/ZHi8ooEsrtm4vOnl9Y9HmyYWk9q+05d7K3rdoAE0j3MVEFVvtQtg==" - }, - "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==" - }, - "browserify-aes": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", - "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", - "requires": { - "buffer-xor": "^1.0.3", - "cipher-base": "^1.0.0", - "create-hash": "^1.1.0", - "evp_bytestokey": "^1.0.3", - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "browserify-cipher": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", - "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", - "requires": { - "browserify-aes": "^1.0.4", - "browserify-des": "^1.0.0", - "evp_bytestokey": "^1.0.0" - } - }, - "browserify-des": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", - "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", - "requires": { - "cipher-base": "^1.0.1", - "des.js": "^1.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "browserify-rsa": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz", - "integrity": "sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ=", - "requires": { - "bn.js": "^4.1.0", - "randombytes": "^2.0.1" - } - }, - "browserify-sign": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.0.tgz", - "integrity": "sha512-hEZC1KEeYuoHRqhGhTy6gWrpJA3ZDjFWv0DE61643ZnOXAKJb3u7yWcrU0mMc9SwAqK1n7myPGndkp0dFG7NFA==", - "requires": { - "bn.js": "^5.1.1", - "browserify-rsa": "^4.0.1", - "create-hash": "^1.2.0", - "create-hmac": "^1.1.7", - "elliptic": "^6.5.2", - "inherits": "^2.0.4", - "parse-asn1": "^5.1.5", - "readable-stream": "^3.6.0", - "safe-buffer": "^5.2.0" - }, - "dependencies": { - "bn.js": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.1.2.tgz", - "integrity": "sha512-40rZaf3bUNKTVYu9sIeeEGOg7g14Yvnj9kH7b50EiwX0Q7A6umbvfI5tvHaOERH0XigqKkfLkFQxzb4e6CIXnA==" - }, - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - } - } - }, - "browserify-zlib": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", - "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", - "requires": { - "pako": "~1.0.5" - } - }, - "browserslist": { - "version": "4.19.1", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.19.1.tgz", - "integrity": "sha512-u2tbbG5PdKRTUoctO3NBD8FQ5HdPh1ZXPHzp1rwaa5jTc+RV9/+RlWiAIKmjRPQF+xbGM9Kklj5bZQFa2s/38A==", - "requires": { - "caniuse-lite": "^1.0.30001286", - "electron-to-chromium": "^1.4.17", - "escalade": "^3.1.1", - "node-releases": "^2.0.1", - "picocolors": "^1.0.0" - } - }, - "bs58": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz", - "integrity": "sha1-vhYedsNU9veIrkBx9j806MTwpCo=", - "requires": { - "base-x": "^3.0.2" - } - }, - "bs58check": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/bs58check/-/bs58check-2.1.2.tgz", - "integrity": "sha512-0TS1jicxdU09dwJMNZtVAfzPi6Q6QeN0pM1Fkzrjn+XYHvzMKPU3pHVpva+769iNVSfIYWf7LJ6WR+BuuMf8cA==", - "requires": { - "bs58": "^4.0.0", - "create-hash": "^1.1.0", - "safe-buffer": "^5.1.2" - } - }, - "btoa": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/btoa/-/btoa-1.2.1.tgz", - "integrity": "sha512-SB4/MIGlsiVkMcHmT+pSmIPoNDoHg+7cMzmt3Uxt628MTz2487DKSqK/fuhFBrkuqrYv5UCEnACpF4dTFNKc/g==" - }, - "buffer": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", - "requires": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" - } - }, - "buffer-alloc": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/buffer-alloc/-/buffer-alloc-1.2.0.tgz", - "integrity": "sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow==", - "dev": true, - "requires": { - "buffer-alloc-unsafe": "^1.1.0", - "buffer-fill": "^1.0.0" - } - }, - "buffer-alloc-unsafe": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz", - "integrity": "sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg==", - "dev": true - }, - "buffer-crc32": { - "version": "0.2.13", - "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", - "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=", - "dev": true - }, - "buffer-fill": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/buffer-fill/-/buffer-fill-1.0.0.tgz", - "integrity": "sha1-+PeLdniYiO858gXNY39o5wISKyw=", - "dev": true - }, - "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==" - }, - "buffer-layout": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/buffer-layout/-/buffer-layout-1.2.2.tgz", - "integrity": "sha512-kWSuLN694+KTk8SrYvCqwP2WcgQjoRCiF5b4QDvkkz8EmgD+aWAIceGFKMIAdmF/pH+vpgNV3d3kAKorcdAmWA==" - }, - "buffer-to-arraybuffer": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/buffer-to-arraybuffer/-/buffer-to-arraybuffer-0.0.5.tgz", - "integrity": "sha1-YGSkD6dutDxyOrqe+PbhIW0QURo=" - }, - "buffer-xor": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", - "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=" - }, - "bufferutil": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/bufferutil/-/bufferutil-4.0.7.tgz", - "integrity": "sha512-kukuqc39WOHtdxtw4UScxF/WVnMFVSQVKhtx3AjZJzhd0RGZZldcrfSEbVsWWe6KNH253574cq5F+wpv0G9pJw==", - "requires": { - "node-gyp-build": "^4.3.0" - } - }, - "builtin-status-codes": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", - "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=" - }, - "bytes": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", - "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==", - "dev": true - }, - "cacache": { - "version": "12.0.4", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-12.0.4.tgz", - "integrity": "sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ==", - "requires": { - "bluebird": "^3.5.5", - "chownr": "^1.1.1", - "figgy-pudding": "^3.5.1", - "glob": "^7.1.4", - "graceful-fs": "^4.1.15", - "infer-owner": "^1.0.3", - "lru-cache": "^5.1.1", - "mississippi": "^3.0.0", - "mkdirp": "^0.5.1", - "move-concurrently": "^1.0.1", - "promise-inflight": "^1.0.1", - "rimraf": "^2.6.3", - "ssri": "^6.0.1", - "unique-filename": "^1.1.1", - "y18n": "^4.0.0" - }, - "dependencies": { - "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==", - "requires": { - "yallist": "^3.0.2" - } - }, - "mkdirp": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", - "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", - "requires": { - "minimist": "^1.2.6" - } - } - } - }, - "cache-base": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", - "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", - "requires": { - "collection-visit": "^1.0.0", - "component-emitter": "^1.2.1", - "get-value": "^2.0.6", - "has-value": "^1.0.0", - "isobject": "^3.0.1", - "set-value": "^2.0.0", - "to-object-path": "^0.3.0", - "union-value": "^1.0.0", - "unset-value": "^1.0.0" - } - }, - "cacheable-lookup": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-6.1.0.tgz", - "integrity": "sha512-KJ/Dmo1lDDhmW2XDPMo+9oiy/CeqosPguPCrgcVzKyZrL6pM1gU2GmPY/xo6OQPTUaA/c0kwHuywB4E6nmT9ww==", - "dev": true - }, - "cacheable-request": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz", - "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==", - "dev": true, - "requires": { - "clone-response": "^1.0.2", - "get-stream": "^5.1.0", - "http-cache-semantics": "^4.0.0", - "keyv": "^3.0.0", - "lowercase-keys": "^2.0.0", - "normalize-url": "^4.1.0", - "responselike": "^1.0.2" - }, - "dependencies": { - "get-stream": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.1.0.tgz", - "integrity": "sha512-EXr1FOzrzTfGeL0gQdeFEvOMm2mzMOglyiOXSTpPC+iAjAKftbr3jpCMWynogwYnM+eSj9sHGc6wjIcDvYiygw==", - "dev": true, - "requires": { - "pump": "^3.0.0" - } - }, - "lowercase-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", - "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", - "dev": true - } - } - }, - "call-bind": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", - "dev": true, - "requires": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" - } - }, - "callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "dev": true - }, - "camel-case": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-3.0.0.tgz", - "integrity": "sha512-+MbKztAYHXPr1jNTSKQF52VpcFjwY5RkR7fxksV8Doo4KAYc5Fl4UJRgthBbTmEx8C54DqahhbLJkDwjI3PI/w==", - "dev": true, - "requires": { - "no-case": "^2.2.0", - "upper-case": "^1.1.1" - } - }, - "caniuse-lite": { - "version": "1.0.30001299", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001299.tgz", - "integrity": "sha512-iujN4+x7QzqA2NCSrS5VUy+4gLmRd4xv6vbBBsmfVqTx8bLAD8097euLqQgKxSVLvxjSDcvF1T/i9ocgnUFexw==" - }, - "capability": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/capability/-/capability-0.2.5.tgz", - "integrity": "sha512-rsJZYVCgXd08sPqwmaIqjAd5SUTfonV0z/gDJ8D6cN8wQphky1kkAYEqQ+hmDxTw7UihvBfjUVUSY+DBEe44jg==" - }, - "caseless": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=" - }, - "catering": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/catering/-/catering-2.1.1.tgz", - "integrity": "sha512-K7Qy8O9p76sL3/3m7/zLKbRkyOlSZAgzEaLhyj2mXS8PsCud2Eo4hAb8aLtZqHh0QGqLcb9dlJSu6lHRVENm1w==", - "dev": true, - "optional": true - }, - "cbor": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/cbor/-/cbor-4.3.0.tgz", - "integrity": "sha512-CvzaxQlaJVa88sdtTWvLJ++MbdtPHtZOBBNjm7h3YKUHILMs9nQyD4AC6hvFZy7GBVB3I6bRibJcxeHydyT2IQ==", - "dev": true, - "requires": { - "bignumber.js": "^9.0.0", - "commander": "^3.0.0", - "json-text-sequence": "^0.1", - "nofilter": "^1.0.3" - }, - "dependencies": { - "bignumber.js": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.0.0.tgz", - "integrity": "sha512-t/OYhhJ2SD+YGBQcjY8GzzDHEk9f3nerxjtfa6tlMXfe7frs/WozhvCNoGvpM0P3bNf3Gq5ZRMlGr5f3r4/N8A==", - "dev": true - }, - "commander": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/commander/-/commander-3.0.2.tgz", - "integrity": "sha512-Gar0ASD4BDyKC4hl4DwHqDrmvjoxWKZigVnAbn5H1owvm4CxCPdb0HQDehwNYMJpla5+M2tPmPARzhtYuwpHow==", - "dev": true - } - } - }, - "chai": { - "version": "4.3.7", - "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.7.tgz", - "integrity": "sha512-HLnAzZ2iupm25PlN0xFreAlBA5zaBSv3og0DdeGA4Ar6h6rJ3A0rolRUKJhSF2V10GZKDgWF/VmAEsNWjCRB+A==", - "dev": true, - "requires": { - "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" - }, - "dependencies": { - "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, - "requires": { - "type-detect": "^4.0.0" - } - } - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "change-case": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/change-case/-/change-case-3.0.2.tgz", - "integrity": "sha512-Mww+SLF6MZ0U6kdg11algyKd5BARbyM4TbFBepwowYSR5ClfQGCGtxNXgykpN0uF/bstWeaGDT4JWaDh8zWAHA==", - "dev": true, - "requires": { - "camel-case": "^3.0.0", - "constant-case": "^2.0.0", - "dot-case": "^2.1.0", - "header-case": "^1.0.0", - "is-lower-case": "^1.1.0", - "is-upper-case": "^1.1.0", - "lower-case": "^1.1.1", - "lower-case-first": "^1.0.0", - "no-case": "^2.3.2", - "param-case": "^2.1.0", - "pascal-case": "^2.0.0", - "path-case": "^2.1.0", - "sentence-case": "^2.1.0", - "snake-case": "^2.1.0", - "swap-case": "^1.1.0", - "title-case": "^2.1.0", - "upper-case": "^1.1.1", - "upper-case-first": "^1.1.0" - } - }, - "chardet": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", - "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", - "dev": true - }, - "check-error": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz", - "integrity": "sha1-V00xLt2Iu13YkS6Sht1sCu1KrII=" - }, - "checkpoint-store": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/checkpoint-store/-/checkpoint-store-1.1.0.tgz", - "integrity": "sha1-BOTLUWuRQziTWB5tRgGnjpVS6gY=", - "requires": { - "functional-red-black-tree": "^1.0.1" - } - }, - "cheerio": { - "version": "1.0.0-rc.3", - "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.3.tgz", - "integrity": "sha512-0td5ijfUPuubwLUu0OBoe98gZj8C/AA+RW3v67GPlGOrvxWjZmBXiBCRU+I8VEiNyJzjth40POfHiz2RB3gImA==", - "dev": true, - "requires": { - "css-select": "~1.2.0", - "dom-serializer": "~0.1.1", - "entities": "~1.1.1", - "htmlparser2": "^3.9.1", - "lodash": "^4.15.0", - "parse5": "^3.0.1" - } - }, - "chokidar": { - "version": "3.5.1", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.1.tgz", - "integrity": "sha512-9+s+Od+W0VJJzawDma/gvBNQqkTiqYTWLuZoyAsivsI4AaWTCzHG06/TMjsf1cYe9Cb97UCEhjz7HvnPk2p/tw==", - "requires": { - "anymatch": "~3.1.1", - "braces": "~3.0.2", - "fsevents": "~2.3.1", - "glob-parent": "~5.1.0", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.5.0" - } - }, - "chownr": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", - "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==" - }, - "chrome-trace-event": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", - "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==" - }, - "cids": { - "version": "0.7.5", - "resolved": "https://registry.npmjs.org/cids/-/cids-0.7.5.tgz", - "integrity": "sha512-zT7mPeghoWAu+ppn8+BS1tQ5qGmbMfB4AregnQjA/qHY3GC1m1ptI9GkWNlgeu38r7CuRdXB47uY2XgAYt6QVA==", - "requires": { - "buffer": "^5.5.0", - "class-is": "^1.1.0", - "multibase": "~0.6.0", - "multicodec": "^1.0.0", - "multihashes": "~0.4.15" - }, - "dependencies": { - "multicodec": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/multicodec/-/multicodec-1.0.4.tgz", - "integrity": "sha512-NDd7FeS3QamVtbgfvu5h7fd1IlbaC4EQ0/pgU4zqE2vdHCmBGsUa0TiM8/TdSeG6BMPC92OOCf8F1ocE/Wkrrg==", - "requires": { - "buffer": "^5.6.0", - "varint": "^5.0.0" - } - } - } - }, - "cipher-base": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", - "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", - "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "circular": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/circular/-/circular-1.0.5.tgz", - "integrity": "sha1-fad6+Yu96c5LWzWM1Va13e0tMUk=", - "dev": true - }, - "class-is": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/class-is/-/class-is-1.1.0.tgz", - "integrity": "sha512-rhjH9AG1fvabIDoGRVH587413LPjTZgmDF9fOFCbFJQV4yuocX1mHxxvXI4g3cGwbVY9wAYIoKlg1N79frJKQw==" - }, - "class-utils": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", - "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", - "requires": { - "arr-union": "^3.1.0", - "define-property": "^0.2.5", - "isobject": "^3.0.0", - "static-extend": "^0.1.1" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - } - }, - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" - } - } - }, - "cli-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", - "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", - "dev": true, - "requires": { - "restore-cursor": "^3.1.0" - } - }, - "cli-logger": { - "version": "0.5.40", - "resolved": "https://registry.npmjs.org/cli-logger/-/cli-logger-0.5.40.tgz", - "integrity": "sha1-CX8OEbByx8aYomxH9YiinCC0iws=", - "dev": true, - "requires": { - "circular": "^1.0.5", - "cli-util": "~1.1.27" - } - }, - "cli-regexp": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/cli-regexp/-/cli-regexp-0.1.2.tgz", - "integrity": "sha1-a82TsJ+y7RAl0woRVdWZeVSlNRI=", - "dev": true - }, - "cli-util": { - "version": "1.1.27", - "resolved": "https://registry.npmjs.org/cli-util/-/cli-util-1.1.27.tgz", - "integrity": "sha1-QtaeNqBAoyH8nPhRwVE8rcUJMFQ=", - "dev": true, - "requires": { - "cli-regexp": "~0.1.0" - } - }, - "cli-width": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.1.tgz", - "integrity": "sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw==", - "dev": true - }, - "cliui": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", - "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", - "requires": { - "string-width": "^3.1.0", - "strip-ansi": "^5.2.0", - "wrap-ansi": "^5.1.0" - }, - "dependencies": { - "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==", - "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - } - } - } - }, - "clone": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", - "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=" - }, - "clone-buffer": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/clone-buffer/-/clone-buffer-1.0.0.tgz", - "integrity": "sha512-KLLTJWrvwIP+OPfMn0x2PheDEP20RPUcGXj/ERegTgdmPEZylALQldygiqrPPu8P45uNuPs7ckmReLY6v/iA5g==", - "dev": true, - "optional": true - }, - "clone-response": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", - "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=", - "dev": true, - "requires": { - "mimic-response": "^1.0.0" - } - }, - "co": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=" - }, - "collection-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", - "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", - "requires": { - "map-visit": "^1.0.0", - "object-visit": "^1.0.0" - } - }, - "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==", - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" - }, - "colors": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", - "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", - "dev": true - }, - "combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "requires": { - "delayed-stream": "~1.0.0" - } - }, - "command-exists": { - "version": "1.2.9", - "resolved": "https://registry.npmjs.org/command-exists/-/command-exists-1.2.9.tgz", - "integrity": "sha512-LTQ/SGc+s0Xc0Fu5WaKnR0YiygZkm9eKFvyS+fRsU7/ZWFF8ykFM6Pc9aCVf1+xasOOZpO3BAVgVrKvsqKHV7w==", - "dev": true - }, - "command-line-args": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/command-line-args/-/command-line-args-5.2.1.tgz", - "integrity": "sha512-H4UfQhZyakIjC74I9d34fGYDwk3XpSr17QhEd0Q3I9Xq1CETHo4Hcuo87WyWHpAF1aSLjLRf5lD9ZGX2qStUvg==", - "requires": { - "array-back": "^3.1.0", - "find-replace": "^3.0.0", - "lodash.camelcase": "^4.3.0", - "typical": "^4.0.0" - } - }, - "command-line-usage": { - "version": "6.1.3", - "resolved": "https://registry.npmjs.org/command-line-usage/-/command-line-usage-6.1.3.tgz", - "integrity": "sha512-sH5ZSPr+7UStsloltmDh7Ce5fb8XPlHyoPzTpyyMuYCtervL65+ubVZ6Q61cFtFl62UyJlc8/JwERRbAFPUqgw==", - "requires": { - "array-back": "^4.0.2", - "chalk": "^2.4.2", - "table-layout": "^1.0.2", - "typical": "^5.2.0" - }, - "dependencies": { - "array-back": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-4.0.2.tgz", - "integrity": "sha512-NbdMezxqf94cnNfWLL7V/im0Ub+Anbb0IoZhvzie8+4HJ4nMQuzHuy49FkGYCJK2yAloZ3meiB6AVMClbrI1vg==" - }, - "typical": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/typical/-/typical-5.2.0.tgz", - "integrity": "sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg==" - } - } - }, - "commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" - }, - "commondir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=" - }, - "component-emitter": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", - "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==" - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" - }, - "concat-stream": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.5.1.tgz", - "integrity": "sha1-87gKz54fSOOHXAaItBtsMWAu6hw=", - "requires": { - "inherits": "~2.0.1", - "readable-stream": "~2.0.0", - "typedarray": "~0.0.5" - }, - "dependencies": { - "process-nextick-args": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", - "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=" - }, - "readable-stream": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.6.tgz", - "integrity": "sha1-j5A0HmilPMySh4jaz80Rs265t44=", - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "~1.0.0", - "process-nextick-args": "~1.0.6", - "string_decoder": "~0.10.x", - "util-deprecate": "~1.0.1" - } - }, - "string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" - } - } - }, - "conf": { - "version": "10.2.0", - "resolved": "https://registry.npmjs.org/conf/-/conf-10.2.0.tgz", - "integrity": "sha512-8fLl9F04EJqjSqH+QjITQfJF8BrOVaYr1jewVgSRAEWePfxT0sku4w2hrGQ60BC/TNLGQ2pgxNlTbWQmMPFvXg==", - "dev": true, - "optional": true, - "requires": { - "ajv": "^8.6.3", - "ajv-formats": "^2.1.1", - "atomically": "^1.7.0", - "debounce-fn": "^4.0.0", - "dot-prop": "^6.0.1", - "env-paths": "^2.2.1", - "json-schema-typed": "^7.0.3", - "onetime": "^5.1.2", - "pkg-up": "^3.1.0", - "semver": "^7.3.5" - }, - "dependencies": { - "ajv": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", - "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", - "dev": true, - "optional": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - } - }, - "dot-prop": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-6.0.1.tgz", - "integrity": "sha512-tE7ztYzXHIeyvc7N+hR3oi7FIbf/NIjVP9hmAt3yMXzrQ072/fpjGLx2GxNxGxUl5V73MEqYzioOMoVhGMJ5cA==", - "dev": true, - "optional": true, - "requires": { - "is-obj": "^2.0.0" - } - }, - "is-obj": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", - "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", - "dev": true, - "optional": true - }, - "json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true, - "optional": true - }, - "semver": { - "version": "7.5.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.0.tgz", - "integrity": "sha512-+XC0AD/R7Q2mPSRuy2Id0+CGTZ98+8f+KvwirxOKIEyid+XSx6HbC63p+O4IndTHuX5Z+JxQ0TghCkO5Cg/2HA==", - "dev": true, - "optional": true, - "requires": { - "lru-cache": "^6.0.0" - } - } - } - }, - "configstore": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/configstore/-/configstore-4.0.0.tgz", - "integrity": "sha512-CmquAXFBocrzaSM8mtGPMM/HiWmyIpr4CcJl/rgY2uCObZ/S7cKU0silxslqJejl+t/T9HS8E0PUNQD81JGUEQ==", - "dev": true, - "requires": { - "dot-prop": "^4.1.0", - "graceful-fs": "^4.1.2", - "make-dir": "^1.0.0", - "unique-string": "^1.0.0", - "write-file-atomic": "^2.0.0", - "xdg-basedir": "^3.0.0" - } - }, - "console-browserify": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz", - "integrity": "sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==" - }, - "constant-case": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/constant-case/-/constant-case-2.0.0.tgz", - "integrity": "sha512-eS0N9WwmjTqrOmR3o83F5vW8Z+9R1HnVz3xmzT2PMFug9ly+Au/fxRWlEBSb6LcZwspSsEn9Xs1uw9YgzAg1EQ==", - "dev": true, - "requires": { - "snake-case": "^2.1.0", - "upper-case": "^1.1.1" - } - }, - "constants-browserify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", - "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=" - }, - "content-disposition": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz", - "integrity": "sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==", - "dev": true, - "requires": { - "safe-buffer": "5.1.2" - }, - "dependencies": { - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - } - } - }, - "content-hash": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/content-hash/-/content-hash-2.5.2.tgz", - "integrity": "sha512-FvIQKy0S1JaWV10sMsA7TRx8bpU+pqPkhbsfvOJAdjRXvYxEckAwQWGwtRjiaJfh+E0DvcWUGqcdjwMGFjsSdw==", - "dev": true, - "requires": { - "cids": "^0.7.1", - "multicodec": "^0.5.5", - "multihashes": "^0.4.15" - } - }, - "content-type": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", - "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==", - "dev": true - }, - "convert-source-map": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz", - "integrity": "sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==", - "peer": true, - "requires": { - "safe-buffer": "~5.1.1" - }, - "dependencies": { - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "peer": true - } - } - }, - "cookie": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz", - "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==", - "dev": true - }, - "cookie-signature": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=", - "dev": true - }, - "cookiejar": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/cookiejar/-/cookiejar-2.1.2.tgz", - "integrity": "sha512-Mw+adcfzPxcPeI+0WlvRrr/3lGVO0bD75SxX6811cxSh1Wbxx7xZBGK1eVtDf6si8rg2lhnUjsVLMFMfbRIuwA==" - }, - "copy-concurrently": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz", - "integrity": "sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==", - "requires": { - "aproba": "^1.1.1", - "fs-write-stream-atomic": "^1.0.8", - "iferr": "^0.1.5", - "mkdirp": "^0.5.1", - "rimraf": "^2.5.4", - "run-queue": "^1.0.0" - }, - "dependencies": { - "mkdirp": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", - "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", - "requires": { - "minimist": "^1.2.6" - } - } - } - }, - "copy-descriptor": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", - "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=" - }, - "copyfiles": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/copyfiles/-/copyfiles-2.4.1.tgz", - "integrity": "sha512-fereAvAvxDrQDOXybk3Qu3dPbOoKoysFMWtkY3mv5BsL8//OSZVL5DCLYqgRfY5cWirgRzlC+WSrxp6Bo3eNZg==", - "requires": { - "glob": "^7.0.5", - "minimatch": "^3.0.3", - "mkdirp": "^1.0.4", - "noms": "0.0.0", - "through2": "^2.0.1", - "untildify": "^4.0.0", - "yargs": "^16.1.0" - }, - "dependencies": { - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "requires": { - "color-convert": "^2.0.1" - } - }, - "cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "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==" - }, - "is-fullwidth-code-point": { - "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==" - }, - "string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - } - }, - "strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "requires": { - "ansi-regex": "^5.0.1" - } - }, - "through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", - "requires": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" - } - }, - "wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - } - }, - "y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==" - }, - "yargs": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", - "requires": { - "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" - } - }, - "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==" - } - } - }, - "core-js": { - "version": "3.6.5", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.6.5.tgz", - "integrity": "sha512-vZVEEwZoIsI+vPEuoF9Iqf5H7/M3eeQqWlQnYa8FSKKePuYTf5MWnxb5SDAzCa60b3JBRS5g9b+Dq7b1y/RCrA==", - "dev": true - }, - "core-js-compat": { - "version": "3.20.2", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.20.2.tgz", - "integrity": "sha512-qZEzVQ+5Qh6cROaTPFLNS4lkvQ6mBzE3R6A6EEpssj7Zr2egMHgsy4XapdifqJDGC9CBiNv7s+ejI96rLNQFdg==", - "requires": { - "browserslist": "^4.19.1", - "semver": "7.0.0" - }, - "dependencies": { - "semver": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", - "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==" - } - } - }, - "core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" - }, - "cors": { - "version": "2.8.5", - "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", - "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", - "dev": true, - "requires": { - "object-assign": "^4", - "vary": "^1" - } - }, - "cosmjs-types": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/cosmjs-types/-/cosmjs-types-0.7.1.tgz", - "integrity": "sha512-qP89SGwi6YpvMTrM9CPzTfZ0JPNlXzgimqMLsa/ZjzW+L6MC8TCr6XmoWtFOT6GSfefvJLwFWq7YCtL456Bdzg==", - "requires": { - "long": "^4.0.0", - "protobufjs": "~6.11.2" - } - }, - "crc-32": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/crc-32/-/crc-32-1.2.0.tgz", - "integrity": "sha512-1uBwHxF+Y/4yF5G48fwnKq6QsIXheor3ZLPT80yGBV1oEUwpPojlEhQbWKVw1VwcTQyMGHK1/XMmTjmlsmTTGA==", - "requires": { - "exit-on-epipe": "~1.0.1", - "printj": "~1.1.0" - } - }, - "create-ecdh": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.3.tgz", - "integrity": "sha512-GbEHQPMOswGpKXM9kCWVrremUcBmjteUaQ01T9rkKCPDXfUHX0IoP9LpHYo2NPFampa4e+/pFDc3jQdxrxQLaw==", - "requires": { - "bn.js": "^4.1.0", - "elliptic": "^6.0.0" - } - }, - "create-hash": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", - "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", - "requires": { - "cipher-base": "^1.0.1", - "inherits": "^2.0.1", - "md5.js": "^1.3.4", - "ripemd160": "^2.0.1", - "sha.js": "^2.4.0" - } - }, - "create-hmac": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", - "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", - "requires": { - "cipher-base": "^1.0.3", - "create-hash": "^1.1.0", - "inherits": "^2.0.1", - "ripemd160": "^2.0.0", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" - } - }, - "create-require": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", - "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", - "dev": true - }, - "cross-fetch": { - "version": "2.2.5", - "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-2.2.5.tgz", - "integrity": "sha512-xqYAhQb4NhCJSRym03dwxpP1bYXpK3y7UN83Bo2WFi3x1Zmzn0SL/6xGoPr+gpt4WmNrgCCX3HPysvOwFOW36w==", - "requires": { - "node-fetch": "2.6.1", - "whatwg-fetch": "2.0.4" - }, - "dependencies": { - "node-fetch": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz", - "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==" - }, - "whatwg-fetch": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-2.0.4.tgz", - "integrity": "sha512-dcQ1GWpOD/eEQ97k66aiEVpNnapVj90/+R+SXTPYGHpYBBypfKJEQjLrvMZ7YXbKm21gXd4NcuxUTjiv1YtLng==" - } - } - }, - "cross-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", - "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", - "requires": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - }, - "dependencies": { - "which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "requires": { - "isexe": "^2.0.0" - } - } - } - }, - "crypto-addr-codec": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/crypto-addr-codec/-/crypto-addr-codec-0.1.7.tgz", - "integrity": "sha512-X4hzfBzNhy4mAc3UpiXEC/L0jo5E8wAa9unsnA8nNXYzXjCcGk83hfC5avJWCSGT8V91xMnAS9AKMHmjw5+XCg==", - "requires": { - "base-x": "^3.0.8", - "big-integer": "1.6.36", - "blakejs": "^1.1.0", - "bs58": "^4.0.1", - "ripemd160-min": "0.0.6", - "safe-buffer": "^5.2.0", - "sha3": "^2.1.1" - } - }, - "crypto-browserify": { - "version": "3.12.0", - "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", - "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", - "requires": { - "browserify-cipher": "^1.0.0", - "browserify-sign": "^4.0.0", - "create-ecdh": "^4.0.0", - "create-hash": "^1.1.0", - "create-hmac": "^1.1.0", - "diffie-hellman": "^5.0.0", - "inherits": "^2.0.1", - "pbkdf2": "^3.0.3", - "public-encrypt": "^4.0.0", - "randombytes": "^2.0.0", - "randomfill": "^1.0.3" - } - }, - "crypto-hash": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/crypto-hash/-/crypto-hash-1.3.0.tgz", - "integrity": "sha512-lyAZ0EMyjDkVvz8WOeVnuCPvKVBXcMv1l5SVqO1yC7PzTwrD/pPje/BIRbWhMoPe436U+Y2nD7f5bFx0kt+Sbg==" - }, - "crypto-random-string": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-1.0.0.tgz", - "integrity": "sha1-ojD2T1aDEOFJgAmUB5DsmVRbyn4=", - "dev": true - }, - "css-select": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-1.2.0.tgz", - "integrity": "sha1-KzoRBTnFNV8c2NMUYj6HCxIeyFg=", - "dev": true, - "requires": { - "boolbase": "~1.0.0", - "css-what": "2.1", - "domutils": "1.5.1", - "nth-check": "~1.0.1" - } - }, - "css-what": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/css-what/-/css-what-2.1.3.tgz", - "integrity": "sha512-a+EPoD+uZiNfh+5fxw2nO9QwFa6nJe2Or35fGY6Ipw1R3R4AGz1d1TEZrCegvw2YTmZ0jXirGYlzxxpYSHwpEg==", - "dev": true - }, - "cssfilter": { - "version": "0.0.10", - "resolved": "https://registry.npmjs.org/cssfilter/-/cssfilter-0.0.10.tgz", - "integrity": "sha512-FAaLDaplstoRsDR8XGYH51znUN0UY7nMc6Z9/fvE8EXGwvJE9hu7W2vHwx1+bd6gCYnln9nLbzxFTrcO9YQDZw==", - "dev": true, - "optional": true - }, - "cyclist": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-1.0.1.tgz", - "integrity": "sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk=" - }, - "d": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz", - "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==", - "requires": { - "es5-ext": "^0.10.50", - "type": "^1.0.1" - } - }, - "dashdash": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", - "requires": { - "assert-plus": "^1.0.0" - } - }, - "dataloader": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/dataloader/-/dataloader-2.1.0.tgz", - "integrity": "sha512-qTcEYLen3r7ojZNgVUaRggOI+KM7jrKxXeSHhogh/TWxYMeONEMqY+hmkobiYQozsGIyg9OYVzO4ZIfoB4I0pQ==", - "dev": true, - "optional": true - }, - "debounce-fn": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/debounce-fn/-/debounce-fn-4.0.0.tgz", - "integrity": "sha512-8pYCQiL9Xdcg0UPSD3d+0KMlOjp+KGU5EPwYddgzQ7DATsg4fuUDjQtsYLmWjnk2obnNHgV3vE2Y4jejSOJVBQ==", - "dev": true, - "optional": true, - "requires": { - "mimic-fn": "^3.0.0" - }, - "dependencies": { - "mimic-fn": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-3.1.0.tgz", - "integrity": "sha512-Ysbi9uYW9hFyfrThdDEQuykN4Ey6BuwPD2kpI5ES/nFTDn/98yxYNLZJcgUAKPT/mcrLLKaGzJR9YVxJrIdASQ==", - "dev": true, - "optional": true - } - } - }, - "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=" - }, - "decimal.js": { - "version": "10.4.3", - "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.4.3.tgz", - "integrity": "sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==" - }, - "decode-uri-component": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", - "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=" - }, - "decompress": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/decompress/-/decompress-4.2.1.tgz", - "integrity": "sha512-e48kc2IjU+2Zw8cTb6VZcJQ3lgVbS4uuB1TfCHbiZIP/haNXm+SVyhu+87jts5/3ROpd82GSVCoNs/z8l4ZOaQ==", - "dev": true, - "requires": { - "decompress-tar": "^4.0.0", - "decompress-tarbz2": "^4.0.0", - "decompress-targz": "^4.0.0", - "decompress-unzip": "^4.0.1", - "graceful-fs": "^4.1.10", - "make-dir": "^1.0.0", - "pify": "^2.3.0", - "strip-dirs": "^2.0.0" - } - }, - "decompress-response": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", - "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", - "requires": { - "mimic-response": "^1.0.0" - } - }, - "decompress-tar": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/decompress-tar/-/decompress-tar-4.1.1.tgz", - "integrity": "sha512-JdJMaCrGpB5fESVyxwpCx4Jdj2AagLmv3y58Qy4GE6HMVjWz1FeVQk1Ct4Kye7PftcdOo/7U7UKzYBJgqnGeUQ==", - "dev": true, - "requires": { - "file-type": "^5.2.0", - "is-stream": "^1.1.0", - "tar-stream": "^1.5.2" - } - }, - "decompress-tarbz2": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/decompress-tarbz2/-/decompress-tarbz2-4.1.1.tgz", - "integrity": "sha512-s88xLzf1r81ICXLAVQVzaN6ZmX4A6U4z2nMbOwobxkLoIIfjVMBg7TeguTUXkKeXni795B6y5rnvDw7rxhAq9A==", - "dev": true, - "requires": { - "decompress-tar": "^4.1.0", - "file-type": "^6.1.0", - "is-stream": "^1.1.0", - "seek-bzip": "^1.0.5", - "unbzip2-stream": "^1.0.9" - }, - "dependencies": { - "file-type": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/file-type/-/file-type-6.2.0.tgz", - "integrity": "sha512-YPcTBDV+2Tm0VqjybVd32MHdlEGAtuxS3VAYsumFokDSMG+ROT5wawGlnHDoz7bfMcMDt9hxuXvXwoKUx2fkOg==", - "dev": true - } - } - }, - "decompress-targz": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/decompress-targz/-/decompress-targz-4.1.1.tgz", - "integrity": "sha512-4z81Znfr6chWnRDNfFNqLwPvm4db3WuZkqV+UgXQzSngG3CEKdBkw5jrv3axjjL96glyiiKjsxJG3X6WBZwX3w==", - "dev": true, - "requires": { - "decompress-tar": "^4.1.1", - "file-type": "^5.2.0", - "is-stream": "^1.1.0" - } - }, - "decompress-unzip": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/decompress-unzip/-/decompress-unzip-4.0.1.tgz", - "integrity": "sha1-3qrM39FK6vhVePczroIQ+bSEj2k=", - "dev": true, - "requires": { - "file-type": "^3.8.0", - "get-stream": "^2.2.0", - "pify": "^2.3.0", - "yauzl": "^2.4.2" - }, - "dependencies": { - "file-type": { - "version": "3.9.0", - "resolved": "https://registry.npmjs.org/file-type/-/file-type-3.9.0.tgz", - "integrity": "sha1-JXoHg4TR24CHvESdEH1SpSZyuek=", - "dev": true - }, - "get-stream": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-2.3.1.tgz", - "integrity": "sha1-Xzj5PzRgCWZu4BUKBUFn+Rvdld4=", - "dev": true, - "requires": { - "object-assign": "^4.0.1", - "pinkie-promise": "^2.0.0" - } - } - } - }, - "deep-eql": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-3.0.1.tgz", - "integrity": "sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==", - "requires": { - "type-detect": "^4.0.0" - } - }, - "deep-extend": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", - "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==" - }, - "deep-is": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", - "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", - "dev": true - }, - "defer-to-connect": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz", - "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==", - "dev": true - }, - "deferred-leveldown": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/deferred-leveldown/-/deferred-leveldown-1.2.2.tgz", - "integrity": "sha512-uukrWD2bguRtXilKt6cAWKyoXrTSMo5m7crUdLfWQmu8kIm88w3QZoUL+6nhpfKVmhHANER6Re3sKoNoZ3IKMA==", - "requires": { - "abstract-leveldown": "~2.6.0" - } - }, - "define-properties": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", - "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", - "requires": { - "object-keys": "^1.0.12" - } - }, - "define-property": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", - "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", - "requires": { - "is-descriptor": "^1.0.2", - "isobject": "^3.0.1" - } - }, - "delay": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/delay/-/delay-5.0.0.tgz", - "integrity": "sha512-ReEBKkIfe4ya47wlPYf/gu5ib6yUG0/Aez0JQZQz94kiWtRQvZIQbTiehsnwHvLSWJnQdhVeqYue7Id1dKr0qw==" - }, - "delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" - }, - "delimit-stream": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/delimit-stream/-/delimit-stream-0.1.0.tgz", - "integrity": "sha1-m4MZR3wOX4rrPONXrjBfwl6hzSs=", - "dev": true - }, - "depd": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=" - }, - "des.js": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz", - "integrity": "sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==", - "requires": { - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0" - } - }, - "destroy": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", - "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=", - "dev": true - }, - "detect-file": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/detect-file/-/detect-file-1.0.0.tgz", - "integrity": "sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc=" - }, - "diff": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", - "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", - "dev": true - }, - "diffie-hellman": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", - "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", - "requires": { - "bn.js": "^4.1.0", - "miller-rabin": "^4.0.0", - "randombytes": "^2.0.0" - } - }, - "doctrine": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", - "dev": true, - "requires": { - "esutils": "^2.0.2" - } - }, - "dom-serializer": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.1.tgz", - "integrity": "sha512-l0IU0pPzLWSHBcieZbpOKgkIn3ts3vAh7ZuFyXNwJxJXk/c4Gwj9xaTJwIDVQCXawWD0qb3IzMGH5rglQaO0XA==", - "dev": true, - "requires": { - "domelementtype": "^1.3.0", - "entities": "^1.1.1" - } - }, - "dom-storage": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/dom-storage/-/dom-storage-2.1.0.tgz", - "integrity": "sha512-g6RpyWXzl0RR6OTElHKBl7nwnK87GUyZMYC7JWsB/IA73vpqK2K6LT39x4VepLxlSsWBFrPVLnsSR5Jyty0+2Q==", - "dev": true - }, - "dom-walk": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/dom-walk/-/dom-walk-0.1.2.tgz", - "integrity": "sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w==" - }, - "domain-browser": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz", - "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==" - }, - "domelementtype": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz", - "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==", - "dev": true - }, - "domhandler": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.4.2.tgz", - "integrity": "sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==", - "dev": true, - "requires": { - "domelementtype": "1" - } - }, - "domutils": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz", - "integrity": "sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=", - "dev": true, - "requires": { - "dom-serializer": "0", - "domelementtype": "1" - } - }, - "dot-case": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-2.1.1.tgz", - "integrity": "sha512-HnM6ZlFqcajLsyudHq7LeeLDr2rFAVYtDv/hV5qchQEidSck8j9OPUsXY9KwJv/lHMtYlX4DjRQqwFYa+0r8Ug==", - "dev": true, - "requires": { - "no-case": "^2.2.0" - } - }, - "dot-notes": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/dot-notes/-/dot-notes-3.1.1.tgz", - "integrity": "sha1-eufhqUgTRSnzdosvsT9Mj6kqV88=" - }, - "dot-prop": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-4.2.0.tgz", - "integrity": "sha512-tUMXrxlExSW6U2EXiiKGSBVdYgtV8qlHL+C10TsW4PURY/ic+eaysnSkwB4kA/mBlCyy/IKDJ+Lc3wbWeaXtuQ==", - "dev": true, - "requires": { - "is-obj": "^1.0.0" - } - }, - "dotenv": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-10.0.0.tgz", - "integrity": "sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q==" - }, - "double-ended-queue": { - "version": "2.1.0-0", - "resolved": "https://registry.npmjs.org/double-ended-queue/-/double-ended-queue-2.1.0-0.tgz", - "integrity": "sha512-+BNfZ+deCo8hMNpDqDnvT+c0XpJ5cUa6mqYq89bho2Ifze4URTqRkcwR399hWoTrTkbZ/XJYDgP6rc7pRgffEQ==", - "dev": true, - "optional": true - }, - "drbg.js": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/drbg.js/-/drbg.js-1.0.1.tgz", - "integrity": "sha1-Pja2xCs3BDgjzbwzLVjzHiRFSAs=", - "requires": { - "browserify-aes": "^1.0.6", - "create-hash": "^1.1.2", - "create-hmac": "^1.1.4" - } - }, - "duplexer3": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", - "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=", - "dev": true - }, - "duplexify": { - "version": "3.7.1", - "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz", - "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==", - "requires": { - "end-of-stream": "^1.0.0", - "inherits": "^2.0.1", - "readable-stream": "^2.0.0", - "stream-shift": "^1.0.0" - } - }, - "ecc-jsbn": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", - "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", - "requires": { - "jsbn": "~0.1.0", - "safer-buffer": "^2.1.0" - } - }, - "eccrypto": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/eccrypto/-/eccrypto-1.1.6.tgz", - "integrity": "sha512-d78ivVEzu7Tn0ZphUUaL43+jVPKTMPFGtmgtz1D0LrFn7cY3K8CdrvibuLz2AAkHBLKZtR8DMbB2ukRYFk987A==", - "requires": { - "acorn": "7.1.1", - "elliptic": "6.5.4", - "es6-promise": "4.2.8", - "nan": "2.14.0", - "secp256k1": "3.7.1" - }, - "dependencies": { - "acorn": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.1.1.tgz", - "integrity": "sha512-add7dgA5ppRPxCFJoAGfMDi7PIBXq1RtGo7BhbLaxwrXPOmw8gq48Y9ozT01hUKy9byMjlR20EJhu5zlkErEkg==" - }, - "nan": { - "version": "2.14.0", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.0.tgz", - "integrity": "sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg==" - }, - "secp256k1": { - "version": "3.7.1", - "resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-3.7.1.tgz", - "integrity": "sha512-1cf8sbnRreXrQFdH6qsg2H71Xw91fCCS9Yp021GnUNJzWJS/py96fS4lHbnTnouLp08Xj6jBoBB6V78Tdbdu5g==", - "optional": true, - "requires": { - "bindings": "^1.5.0", - "bip66": "^1.1.5", - "bn.js": "^4.11.8", - "create-hash": "^1.2.0", - "drbg.js": "^1.0.1", - "elliptic": "^6.4.1", - "nan": "^2.14.0", - "safe-buffer": "^5.1.2" - } - } - } - }, - "ee-first": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=", - "dev": true - }, - "electron-to-chromium": { - "version": "1.4.45", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.45.tgz", - "integrity": "sha512-czF9eYVuOmlY/vxyMQz2rGlNSjZpxNQYBe1gmQv7al171qOIhgyO9k7D5AKlgeTCSPKk+LHhj5ZyIdmEub9oNg==" - }, - "elliptic": { - "version": "6.5.4", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", - "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", - "requires": { - "bn.js": "^4.11.9", - "brorand": "^1.1.0", - "hash.js": "^1.0.0", - "hmac-drbg": "^1.0.1", - "inherits": "^2.0.4", - "minimalistic-assert": "^1.0.1", - "minimalistic-crypto-utils": "^1.0.1" - } - }, - "emittery": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.4.1.tgz", - "integrity": "sha512-r4eRSeStEGf6M5SKdrQhhLK5bOwOBxQhIE3YSTnZE3GpKiLfnnhE+tPtrJE79+eDJgm39BM6LSoI8SCx4HbwlQ==", - "dev": true, - "optional": true - }, - "emoji-regex": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==" - }, - "emojis-list": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", - "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==" - }, - "encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", - "dev": true - }, - "encoding": { - "version": "0.1.13", - "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", - "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", - "requires": { - "iconv-lite": "^0.6.2" - }, - "dependencies": { - "iconv-lite": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.2.tgz", - "integrity": "sha512-2y91h5OpQlolefMPmUlivelittSWy0rP+oYVpn6A7GwVHNE8AWzoYOBNmlwks3LobaJxgHCYZAnyNo2GgpNRNQ==", - "requires": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - } - } - } - }, - "encoding-down": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/encoding-down/-/encoding-down-6.3.0.tgz", - "integrity": "sha512-QKrV0iKR6MZVJV08QY0wp1e7vF6QbhnbQhb07bwpEyuz4uZiZgPlEGdkCROuFkUwdxlFaiPIhjyarH1ee/3vhw==", - "dev": true, - "optional": true, - "requires": { - "abstract-leveldown": "^6.2.1", - "inherits": "^2.0.3", - "level-codec": "^9.0.0", - "level-errors": "^2.0.0" - }, - "dependencies": { - "abstract-leveldown": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-6.3.0.tgz", - "integrity": "sha512-TU5nlYgta8YrBMNpc9FwQzRbiXsj49gsALsXadbGHt9CROPzX5fB0rWDR5mtdpOOKa5XqRFpbj1QroPAoPzVjQ==", - "dev": true, - "optional": true, - "requires": { - "buffer": "^5.5.0", - "immediate": "^3.2.3", - "level-concat-iterator": "~2.0.0", - "level-supports": "~1.0.0", - "xtend": "~4.0.0" - } - }, - "level-codec": { - "version": "9.0.2", - "resolved": "https://registry.npmjs.org/level-codec/-/level-codec-9.0.2.tgz", - "integrity": "sha512-UyIwNb1lJBChJnGfjmO0OR+ezh2iVu1Kas3nvBS/BzGnx79dv6g7unpKIDNPMhfdTEGoc7mC8uAu51XEtX+FHQ==", - "dev": true, - "optional": true, - "requires": { - "buffer": "^5.6.0" - } - }, - "level-concat-iterator": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/level-concat-iterator/-/level-concat-iterator-2.0.1.tgz", - "integrity": "sha512-OTKKOqeav2QWcERMJR7IS9CUo1sHnke2C0gkSmcR7QuEtFNLLzHQAvnMw8ykvEcv0Qtkg0p7FOwP1v9e5Smdcw==", - "dev": true, - "optional": true - }, - "level-errors": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/level-errors/-/level-errors-2.0.1.tgz", - "integrity": "sha512-UVprBJXite4gPS+3VznfgDSU8PTRuVX0NXwoWW50KLxd2yw4Y1t2JUR5In1itQnudZqRMT9DlAM3Q//9NCjCFw==", - "dev": true, - "optional": true, - "requires": { - "errno": "~0.1.1" - } - }, - "level-supports": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/level-supports/-/level-supports-1.0.1.tgz", - "integrity": "sha512-rXM7GYnW8gsl1vedTJIbzOrRv85c/2uCMpiiCzO2fndd06U/kUXEEU9evYn4zFggBOg36IsBW8LzqIpETwwQzg==", - "dev": true, - "optional": true, - "requires": { - "xtend": "^4.0.2" - } - } - } - }, - "end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "requires": { - "once": "^1.4.0" - } - }, - "end-stream": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/end-stream/-/end-stream-0.1.0.tgz", - "integrity": "sha512-Brl10T8kYnc75IepKizW6Y9liyW8ikz1B7n/xoHrJxoVSSjoqPn30sb7XVFfQERK4QfUMYRGs9dhWwtt2eu6uA==", - "dev": true, - "optional": true, - "requires": { - "write-stream": "~0.4.3" - } - }, - "entities": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz", - "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==", - "dev": true - }, - "env-paths": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", - "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", - "dev": true - }, - "errno": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.7.tgz", - "integrity": "sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg==", - "requires": { - "prr": "~1.0.1" - } - }, - "error-polyfill": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/error-polyfill/-/error-polyfill-0.1.3.tgz", - "integrity": "sha512-XHJk60ufE+TG/ydwp4lilOog549iiQF2OAPhkk9DdiYWMrltz5yhDz/xnKuenNwP7gy3dsibssO5QpVhkrSzzg==", - "requires": { - "capability": "^0.2.5", - "o3": "^1.0.3", - "u3": "^0.1.1" - } - }, - "es-abstract": { - "version": "1.18.0", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.0.tgz", - "integrity": "sha512-LJzK7MrQa8TS0ja2w3YNLzUgJCGPdPOV1yVvezjNnS89D+VR08+Szt2mz3YB2Dck/+w5tfIq/RoUAFqJJGM2yw==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "get-intrinsic": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.2", - "is-callable": "^1.2.3", - "is-negative-zero": "^2.0.1", - "is-regex": "^1.1.2", - "is-string": "^1.0.5", - "object-inspect": "^1.9.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.2", - "string.prototype.trimend": "^1.0.4", - "string.prototype.trimstart": "^1.0.4", - "unbox-primitive": "^1.0.0" - }, - "dependencies": { - "object.assign": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", - "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", - "dev": true, - "requires": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "has-symbols": "^1.0.1", - "object-keys": "^1.1.1" - } - } - } - }, - "es-to-primitive": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", - "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", - "dev": true, - "requires": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - } - }, - "es5-ext": { - "version": "0.10.53", - "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.53.tgz", - "integrity": "sha512-Xs2Stw6NiNHWypzRTY1MtaG/uJlwCk8kH81920ma8mvN8Xq1gsfhZvpkImLQArw8AHnv8MT2I45J3c0R8slE+Q==", - "requires": { - "es6-iterator": "~2.0.3", - "es6-symbol": "~3.1.3", - "next-tick": "~1.0.0" - } - }, - "es6-iterator": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", - "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=", - "requires": { - "d": "1", - "es5-ext": "^0.10.35", - "es6-symbol": "^3.1.1" - } - }, - "es6-promise": { - "version": "4.2.8", - "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz", - "integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==" - }, - "es6-promisify": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz", - "integrity": "sha512-C+d6UdsYDk0lMebHNR4S2NybQMMngAOnOwYBQjTOiv0MkoJMP0Myw2mgpDLBcpfCmRLxyFqYhS/CfOENq4SJhQ==", - "requires": { - "es6-promise": "^4.0.3" - } - }, - "es6-symbol": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz", - "integrity": "sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==", - "requires": { - "d": "^1.0.1", - "ext": "^1.1.2" - } - }, - "escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==" - }, - "escape-html": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=", - "dev": true - }, - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" - }, - "eslint": { - "version": "6.8.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-6.8.0.tgz", - "integrity": "sha512-K+Iayyo2LtyYhDSYwz5D5QdWw0hCacNzyq1Y821Xna2xSJj7cijoLLYmLxTQgcgZ9mC61nryMy9S7GRbYpI5Ig==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.0.0", - "ajv": "^6.10.0", - "chalk": "^2.1.0", - "cross-spawn": "^6.0.5", - "debug": "^4.0.1", - "doctrine": "^3.0.0", - "eslint-scope": "^5.0.0", - "eslint-utils": "^1.4.3", - "eslint-visitor-keys": "^1.1.0", - "espree": "^6.1.2", - "esquery": "^1.0.1", - "esutils": "^2.0.2", - "file-entry-cache": "^5.0.1", - "functional-red-black-tree": "^1.0.1", - "glob-parent": "^5.0.0", - "globals": "^12.1.0", - "ignore": "^4.0.6", - "import-fresh": "^3.0.0", - "imurmurhash": "^0.1.4", - "inquirer": "^7.0.0", - "is-glob": "^4.0.0", - "js-yaml": "^3.13.1", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.3.0", - "lodash": "^4.17.14", - "minimatch": "^3.0.4", - "mkdirp": "^0.5.1", - "natural-compare": "^1.4.0", - "optionator": "^0.8.3", - "progress": "^2.0.0", - "regexpp": "^2.0.1", - "semver": "^6.1.2", - "strip-ansi": "^5.2.0", - "strip-json-comments": "^3.0.1", - "table": "^5.2.3", - "text-table": "^0.2.0", - "v8-compile-cache": "^2.0.3" - }, - "dependencies": { - "ansi-escapes": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.1.tgz", - "integrity": "sha512-JWF7ocqNrp8u9oqpgV+wH5ftbt+cfvv+PTjOvKLT3AdYly/LmORARfEVT1iyjwN+4MqE5UmVKoAdIBqeoCHgLA==", - "dev": true, - "requires": { - "type-fest": "^0.11.0" - } - }, - "ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", - "dev": true - }, - "ansi-styles": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", - "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", - "dev": true, - "requires": { - "@types/color-name": "^1.1.1", - "color-convert": "^2.0.1" - } - }, - "cli-width": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz", - "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==", - "dev": true - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - }, - "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==", - "dev": true - }, - "figures": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", - "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", - "dev": true, - "requires": { - "escape-string-regexp": "^1.0.5" - } - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "inquirer": { - "version": "7.3.3", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.3.3.tgz", - "integrity": "sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA==", - "dev": true, - "requires": { - "ansi-escapes": "^4.2.1", - "chalk": "^4.1.0", - "cli-cursor": "^3.1.0", - "cli-width": "^3.0.0", - "external-editor": "^3.0.3", - "figures": "^3.0.0", - "lodash": "^4.17.19", - "mute-stream": "0.0.8", - "run-async": "^2.4.0", - "rxjs": "^6.6.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0", - "through": "^2.3.6" - }, - "dependencies": { - "chalk": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.0" - } - } - } - }, - "is-fullwidth-code-point": { - "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==", - "dev": true - }, - "mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "dev": true, - "requires": { - "minimist": "^1.2.5" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "mute-stream": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", - "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", - "dev": true - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - }, - "string-width": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", - "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", - "dev": true, - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" - }, - "dependencies": { - "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.0" - } - } - } - }, - "supports-color": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", - "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - }, - "type-fest": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.11.0.tgz", - "integrity": "sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ==", - "dev": true - } - } - }, - "eslint-scope": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", - "dev": true, - "requires": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" - } - }, - "eslint-utils": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-1.4.3.tgz", - "integrity": "sha512-fbBN5W2xdY45KulGXmLHZ3c3FHfVYmKg0IrAKGOkT/464PQsx2UeIzfz1RmEci+KLm1bBaAzZAh8+/E+XAeZ8Q==", - "dev": true, - "requires": { - "eslint-visitor-keys": "^1.1.0" - } - }, - "eslint-visitor-keys": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", - "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", - "dev": true - }, - "espree": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-6.2.1.tgz", - "integrity": "sha512-ysCxRQY3WaXJz9tdbWOwuWr5Y/XrPTGX9Kiz3yoUXwW0VZ4w30HTkQLaGx/+ttFjF8i+ACbArnB4ce68a9m5hw==", - "dev": true, - "requires": { - "acorn": "^7.1.1", - "acorn-jsx": "^5.2.0", - "eslint-visitor-keys": "^1.1.0" - } - }, - "esprima": { - "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 - }, - "esquery": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.3.1.tgz", - "integrity": "sha512-olpvt9QG0vniUBZspVRN6lwB7hOZoTRtT+jzR+tS4ffYx2mzbw+z0XCOk44aaLYKApNX5nMm+E+P6o25ip/DHQ==", - "dev": true, - "requires": { - "estraverse": "^5.1.0" - }, - "dependencies": { - "estraverse": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", - "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", - "dev": true - } - } - }, - "esrecurse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", - "requires": { - "estraverse": "^5.2.0" - }, - "dependencies": { - "estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==" - } - } - }, - "estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==" - }, - "esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "dev": true - }, - "etag": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=", - "dev": true - }, - "eth-block-tracker": { - "version": "4.4.3", - "resolved": "https://registry.npmjs.org/eth-block-tracker/-/eth-block-tracker-4.4.3.tgz", - "integrity": "sha512-A8tG4Z4iNg4mw5tP1Vung9N9IjgMNqpiMoJ/FouSFwNCGHv2X0mmOYwtQOJzki6XN7r7Tyo01S29p7b224I4jw==", - "requires": { - "@babel/plugin-transform-runtime": "^7.5.5", - "@babel/runtime": "^7.5.5", - "eth-query": "^2.1.0", - "json-rpc-random-id": "^1.0.1", - "pify": "^3.0.0", - "safe-event-emitter": "^1.0.1" - }, - "dependencies": { - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" - } - } - }, - "eth-crypto": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/eth-crypto/-/eth-crypto-2.6.0.tgz", - "integrity": "sha512-GCX4ffFYRUGgnuWR5qxcZIRQJ1KEqPFiyXU9yVy7s6dtXIMlUXZQ2h+5ID6rFaOHWbpJbjfkC6YdhwtwRYCnug==", - "requires": { - "@babel/runtime": "7.20.13", - "@ethereumjs/tx": "3.5.2", - "@types/bn.js": "5.1.1", - "eccrypto": "1.1.6", - "ethereumjs-util": "7.1.5", - "ethers": "5.7.2", - "secp256k1": "5.0.0" - }, - "dependencies": { - "@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==", - "requires": { - "@types/node": "*" - } - }, - "bn.js": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", - "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==" - }, - "ethereumjs-util": { - "version": "7.1.5", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.5.tgz", - "integrity": "sha512-SDl5kKrQAudFBUe5OJM9Ac6WmMyYmXX/6sTmLZ3ffG2eY6ZIGBes3pEDxNN6V72WyOw4CPD5RomKdsa8DAAwLg==", - "requires": { - "@types/bn.js": "^5.1.0", - "bn.js": "^5.1.2", - "create-hash": "^1.1.2", - "ethereum-cryptography": "^0.1.3", - "rlp": "^2.2.4" - } - }, - "node-addon-api": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-5.1.0.tgz", - "integrity": "sha512-eh0GgfEkpnoWDq+VY8OyvYhFEzBk6jIYbRKdIlyTiAXIVJ8PyBaKb0rp7oDtoddbdoHWhq8wwr+XZ81F1rpNdA==" - }, - "secp256k1": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-5.0.0.tgz", - "integrity": "sha512-TKWX8xvoGHrxVdqbYeZM9w+izTF4b9z3NhSaDkdn81btvuh+ivbIMGT/zQvDtTFWhRlThpoz6LEYTr7n8A5GcA==", - "requires": { - "elliptic": "^6.5.4", - "node-addon-api": "^5.0.0", - "node-gyp-build": "^4.2.0" - } - } - } - }, - "eth-ens-namehash": { - "version": "2.0.8", - "resolved": "https://registry.npmjs.org/eth-ens-namehash/-/eth-ens-namehash-2.0.8.tgz", - "integrity": "sha1-IprEbsqG1S4MmR58sq74P/D2i88=", - "dev": true, - "requires": { - "idna-uts46-hx": "^2.3.1", - "js-sha3": "^0.5.7" - } - }, - "eth-json-rpc-errors": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/eth-json-rpc-errors/-/eth-json-rpc-errors-2.0.2.tgz", - "integrity": "sha512-uBCRM2w2ewusRHGxN8JhcuOb2RN3ueAOYH/0BhqdFmQkZx5lj5+fLKTz0mIVOzd4FG5/kUksCzCD7eTEim6gaA==", - "requires": { - "fast-safe-stringify": "^2.0.6" - } - }, - "eth-lib": { - "version": "0.1.29", - "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.1.29.tgz", - "integrity": "sha512-bfttrr3/7gG4E02HoWTDUcDDslN003OlOoBxk9virpAZQ1ja/jDgwkWB8QfJF7ojuEowrqy+lzp9VcJG7/k5bQ==", - "dev": true, - "requires": { - "bn.js": "^4.11.6", - "elliptic": "^6.4.0", - "nano-json-stream-parser": "^0.1.2", - "servify": "^0.1.12", - "ws": "^3.0.0", - "xhr-request-promise": "^0.1.2" - } - }, - "eth-query": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/eth-query/-/eth-query-2.1.2.tgz", - "integrity": "sha1-1nQdkAAQa1FRDHLbktY2VFam2l4=", - "requires": { - "json-rpc-random-id": "^1.0.0", - "xtend": "^4.0.1" - } - }, - "eth-rpc-errors": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/eth-rpc-errors/-/eth-rpc-errors-3.0.0.tgz", - "integrity": "sha512-iPPNHPrLwUlR9xCSYm7HHQjWBasor3+KZfRvwEWxMz3ca0yqnlBeJrnyphkGIXZ4J7AMAaOLmwy4AWhnxOiLxg==", - "requires": { - "fast-safe-stringify": "^2.0.6" - } - }, - "eth-sig-util": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/eth-sig-util/-/eth-sig-util-3.0.1.tgz", - "integrity": "sha512-0Us50HiGGvZgjtWTyAI/+qTzYPMLy5Q451D0Xy68bxq1QMWdoOddDwGvsqcFT27uohKgalM9z/yxplyt+mY2iQ==", - "dev": true, - "requires": { - "ethereumjs-abi": "^0.6.8", - "ethereumjs-util": "^5.1.1", - "tweetnacl": "^1.0.3", - "tweetnacl-util": "^0.15.0" - }, - "dependencies": { - "ethereumjs-util": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", - "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", - "dev": true, - "requires": { - "bn.js": "^4.11.0", - "create-hash": "^1.1.2", - "elliptic": "^6.5.2", - "ethereum-cryptography": "^0.1.3", - "ethjs-util": "^0.1.3", - "rlp": "^2.0.0", - "safe-buffer": "^5.1.1" - } - }, - "tweetnacl": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.3.tgz", - "integrity": "sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==", - "dev": true - } - } - }, - "ethereum-bloom-filters": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/ethereum-bloom-filters/-/ethereum-bloom-filters-1.0.7.tgz", - "integrity": "sha512-cDcJJSJ9GMAcURiAWO3DxIEhTL/uWqlQnvgKpuYQzYPrt/izuGU+1ntQmHt0IRq6ADoSYHFnB+aCEFIldjhkMQ==", - "dev": true, - "requires": { - "js-sha3": "^0.8.0" - }, - "dependencies": { - "js-sha3": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.8.0.tgz", - "integrity": "sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q==", - "dev": true - } - } - }, - "ethereum-common": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/ethereum-common/-/ethereum-common-0.2.0.tgz", - "integrity": "sha512-XOnAR/3rntJgbCdGhqdaLIxDLWKLmsZOGhHdBKadEr6gEnJLH52k93Ou+TUdFaPN3hJc3isBZBal3U/XZ15abA==" - }, - "ethereum-cryptography": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz", - "integrity": "sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ==", - "requires": { - "@types/pbkdf2": "^3.0.0", - "@types/secp256k1": "^4.0.1", - "blakejs": "^1.1.0", - "browserify-aes": "^1.2.0", - "bs58check": "^2.1.2", - "create-hash": "^1.2.0", - "create-hmac": "^1.1.7", - "hash.js": "^1.1.7", - "keccak": "^3.0.0", - "pbkdf2": "^3.0.17", - "randombytes": "^2.1.0", - "safe-buffer": "^5.1.2", - "scrypt-js": "^3.0.0", - "secp256k1": "^4.0.1", - "setimmediate": "^1.0.5" - }, - "dependencies": { - "hash.js": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", - "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", - "requires": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.1" - } - }, - "scrypt-js": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-3.0.1.tgz", - "integrity": "sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA==" - }, - "setimmediate": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", - "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=" - } - } - }, - "ethereum-protocol": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/ethereum-protocol/-/ethereum-protocol-1.0.1.tgz", - "integrity": "sha512-3KLX1mHuEsBW0dKG+c6EOJS1NBNqdCICvZW9sInmZTt5aY0oxmHVggYRE0lJu1tcnMD1K+AKHdLi6U43Awm1Vg==" - }, - "ethereumjs-abi": { - "version": "0.6.8", - "resolved": "https://registry.npmjs.org/ethereumjs-abi/-/ethereumjs-abi-0.6.8.tgz", - "integrity": "sha512-Tx0r/iXI6r+lRsdvkFDlut0N08jWMnKRZ6Gkq+Nmw75lZe4e6o3EkSnkaBP5NF6+m5PTGAr9JP43N3LyeoglsA==", - "requires": { - "bn.js": "^4.11.8", - "ethereumjs-util": "^6.0.0" - } - }, - "ethereumjs-account": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/ethereumjs-account/-/ethereumjs-account-2.0.5.tgz", - "integrity": "sha512-bgDojnXGjhMwo6eXQC0bY6UK2liSFUSMwwylOmQvZbSl/D7NXQ3+vrGO46ZeOgjGfxXmgIeVNDIiHw7fNZM4VA==", - "requires": { - "ethereumjs-util": "^5.0.0", - "rlp": "^2.0.0", - "safe-buffer": "^5.1.1" - }, - "dependencies": { - "ethereumjs-util": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", - "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", - "requires": { - "bn.js": "^4.11.0", - "create-hash": "^1.1.2", - "elliptic": "^6.5.2", - "ethereum-cryptography": "^0.1.3", - "ethjs-util": "^0.1.3", - "rlp": "^2.0.0", - "safe-buffer": "^5.1.1" - } - } - } - }, - "ethereumjs-block": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/ethereumjs-block/-/ethereumjs-block-1.7.1.tgz", - "integrity": "sha512-B+sSdtqm78fmKkBq78/QLKJbu/4Ts4P2KFISdgcuZUPDm9x+N7qgBPIIFUGbaakQh8bzuquiRVbdmvPKqbILRg==", - "requires": { - "async": "^2.0.1", - "ethereum-common": "0.2.0", - "ethereumjs-tx": "^1.2.2", - "ethereumjs-util": "^5.0.0", - "merkle-patricia-tree": "^2.1.2" - }, - "dependencies": { - "ethereumjs-tx": { - "version": "1.3.7", - "resolved": "https://registry.npmjs.org/ethereumjs-tx/-/ethereumjs-tx-1.3.7.tgz", - "integrity": "sha512-wvLMxzt1RPhAQ9Yi3/HKZTn0FZYpnsmQdbKYfUUpi4j1SEIcbkd9tndVjcPrufY3V7j2IebOpC00Zp2P/Ay2kA==", - "requires": { - "ethereum-common": "^0.0.18", - "ethereumjs-util": "^5.0.0" - }, - "dependencies": { - "ethereum-common": { - "version": "0.0.18", - "resolved": "https://registry.npmjs.org/ethereum-common/-/ethereum-common-0.0.18.tgz", - "integrity": "sha1-L9w1dvIykDNYl26znaeDIT/5Uj8=" - } - } - }, - "ethereumjs-util": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", - "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", - "requires": { - "bn.js": "^4.11.0", - "create-hash": "^1.1.2", - "elliptic": "^6.5.2", - "ethereum-cryptography": "^0.1.3", - "ethjs-util": "^0.1.3", - "rlp": "^2.0.0", - "safe-buffer": "^5.1.1" - } - } - } - }, - "ethereumjs-common": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/ethereumjs-common/-/ethereumjs-common-1.5.1.tgz", - "integrity": "sha512-aVUPRLgmXORGXXEVkFYgPhr9TGtpBY2tGhZ9Uh0A3lIUzUDr1x6kQx33SbjPUkLkX3eniPQnIL/2psjkjrOfcQ==" - }, - "ethereumjs-tx": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ethereumjs-tx/-/ethereumjs-tx-2.1.2.tgz", - "integrity": "sha512-zZEK1onCeiORb0wyCXUvg94Ve5It/K6GD1K+26KfFKodiBiS6d9lfCXlUKGBBdQ+bv7Day+JK0tj1K+BeNFRAw==", - "requires": { - "ethereumjs-common": "^1.5.0", - "ethereumjs-util": "^6.0.0" - } - }, - "ethereumjs-util": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-6.2.1.tgz", - "integrity": "sha512-W2Ktez4L01Vexijrm5EB6w7dg4n/TgpoYU4avuT5T3Vmnw/eCRtiBrJfQYS/DCSvDIOLn2k57GcHdeBcgVxAqw==", - "requires": { - "@types/bn.js": "^4.11.3", - "bn.js": "^4.11.0", - "create-hash": "^1.1.2", - "elliptic": "^6.5.2", - "ethereum-cryptography": "^0.1.3", - "ethjs-util": "0.1.6", - "rlp": "^2.2.3" - } - }, - "ethereumjs-vm": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/ethereumjs-vm/-/ethereumjs-vm-2.6.0.tgz", - "integrity": "sha512-r/XIUik/ynGbxS3y+mvGnbOKnuLo40V5Mj1J25+HEO63aWYREIqvWeRO/hnROlMBE5WoniQmPmhiaN0ctiHaXw==", - "requires": { - "async": "^2.1.2", - "async-eventemitter": "^0.2.2", - "ethereumjs-account": "^2.0.3", - "ethereumjs-block": "~2.2.0", - "ethereumjs-common": "^1.1.0", - "ethereumjs-util": "^6.0.0", - "fake-merkle-patricia-tree": "^1.0.1", - "functional-red-black-tree": "^1.0.1", - "merkle-patricia-tree": "^2.3.2", - "rustbn.js": "~0.2.0", - "safe-buffer": "^5.1.1" - }, - "dependencies": { - "ethereumjs-block": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/ethereumjs-block/-/ethereumjs-block-2.2.2.tgz", - "integrity": "sha512-2p49ifhek3h2zeg/+da6XpdFR3GlqY3BIEiqxGF8j9aSRIgkb7M1Ky+yULBKJOu8PAZxfhsYA+HxUk2aCQp3vg==", - "requires": { - "async": "^2.0.1", - "ethereumjs-common": "^1.5.0", - "ethereumjs-tx": "^2.1.1", - "ethereumjs-util": "^5.0.0", - "merkle-patricia-tree": "^2.1.2" - }, - "dependencies": { - "ethereumjs-util": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", - "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", - "requires": { - "bn.js": "^4.11.0", - "create-hash": "^1.1.2", - "elliptic": "^6.5.2", - "ethereum-cryptography": "^0.1.3", - "ethjs-util": "^0.1.3", - "rlp": "^2.0.0", - "safe-buffer": "^5.1.1" - } - } - } - } - } - }, - "ethers": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/ethers/-/ethers-5.7.2.tgz", - "integrity": "sha512-wswUsmWo1aOK8rR7DIKiWSw9DbLWe6x98Jrn8wcTflTVvaXhAMaB5zGAXy0GYQEQp9iO1iSHWVyARQm11zUtyg==", - "requires": { - "@ethersproject/abi": "5.7.0", - "@ethersproject/abstract-provider": "5.7.0", - "@ethersproject/abstract-signer": "5.7.0", - "@ethersproject/address": "5.7.0", - "@ethersproject/base64": "5.7.0", - "@ethersproject/basex": "5.7.0", - "@ethersproject/bignumber": "5.7.0", - "@ethersproject/bytes": "5.7.0", - "@ethersproject/constants": "5.7.0", - "@ethersproject/contracts": "5.7.0", - "@ethersproject/hash": "5.7.0", - "@ethersproject/hdnode": "5.7.0", - "@ethersproject/json-wallets": "5.7.0", - "@ethersproject/keccak256": "5.7.0", - "@ethersproject/logger": "5.7.0", - "@ethersproject/networks": "5.7.1", - "@ethersproject/pbkdf2": "5.7.0", - "@ethersproject/properties": "5.7.0", - "@ethersproject/providers": "5.7.2", - "@ethersproject/random": "5.7.0", - "@ethersproject/rlp": "5.7.0", - "@ethersproject/sha2": "5.7.0", - "@ethersproject/signing-key": "5.7.0", - "@ethersproject/solidity": "5.7.0", - "@ethersproject/strings": "5.7.0", - "@ethersproject/transactions": "5.7.0", - "@ethersproject/units": "5.7.0", - "@ethersproject/wallet": "5.7.0", - "@ethersproject/web": "5.7.1", - "@ethersproject/wordlists": "5.7.0" - }, - "dependencies": { - "@ethersproject/basex": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/basex/-/basex-5.7.0.tgz", - "integrity": "sha512-ywlh43GwZLv2Voc2gQVTKBoVQ1mti3d8HK5aMxsfu/nRDnMmNqaSJ3r3n85HBByT8OpoY96SXM1FogC533T4zw==", - "requires": { - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/properties": "^5.7.0" - } - }, - "@ethersproject/contracts": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/contracts/-/contracts-5.7.0.tgz", - "integrity": "sha512-5GJbzEU3X+d33CdfPhcyS+z8MzsTrBGk/sc+G+59+tPa9yFkl6HQ9D6L0QMgNTA9q8dT0XKxxkyp883XsQvbbg==", - "requires": { - "@ethersproject/abi": "^5.7.0", - "@ethersproject/abstract-provider": "^5.7.0", - "@ethersproject/abstract-signer": "^5.7.0", - "@ethersproject/address": "^5.7.0", - "@ethersproject/bignumber": "^5.7.0", - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/constants": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/properties": "^5.7.0", - "@ethersproject/transactions": "^5.7.0" - } - }, - "@ethersproject/hdnode": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/hdnode/-/hdnode-5.7.0.tgz", - "integrity": "sha512-OmyYo9EENBPPf4ERhR7oj6uAtUAhYGqOnIS+jE5pTXvdKBS99ikzq1E7Iv0ZQZ5V36Lqx1qZLeak0Ra16qpeOg==", - "requires": { - "@ethersproject/abstract-signer": "^5.7.0", - "@ethersproject/basex": "^5.7.0", - "@ethersproject/bignumber": "^5.7.0", - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/pbkdf2": "^5.7.0", - "@ethersproject/properties": "^5.7.0", - "@ethersproject/sha2": "^5.7.0", - "@ethersproject/signing-key": "^5.7.0", - "@ethersproject/strings": "^5.7.0", - "@ethersproject/transactions": "^5.7.0", - "@ethersproject/wordlists": "^5.7.0" - } - }, - "@ethersproject/json-wallets": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/json-wallets/-/json-wallets-5.7.0.tgz", - "integrity": "sha512-8oee5Xgu6+RKgJTkvEMl2wDgSPSAQ9MB/3JYjFV9jlKvcYHUXZC+cQp0njgmxdHkYWn8s6/IqIZYm0YWCjO/0g==", - "requires": { - "@ethersproject/abstract-signer": "^5.7.0", - "@ethersproject/address": "^5.7.0", - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/hdnode": "^5.7.0", - "@ethersproject/keccak256": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/pbkdf2": "^5.7.0", - "@ethersproject/properties": "^5.7.0", - "@ethersproject/random": "^5.7.0", - "@ethersproject/strings": "^5.7.0", - "@ethersproject/transactions": "^5.7.0", - "aes-js": "3.0.0", - "scrypt-js": "3.0.1" - } - }, - "@ethersproject/pbkdf2": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/pbkdf2/-/pbkdf2-5.7.0.tgz", - "integrity": "sha512-oR/dBRZR6GTyaofd86DehG72hY6NpAjhabkhxgr3X2FpJtJuodEl2auADWBZfhDHgVCbu3/H/Ocq2uC6dpNjjw==", - "requires": { - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/sha2": "^5.7.0" - } - }, - "@ethersproject/providers": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/@ethersproject/providers/-/providers-5.7.2.tgz", - "integrity": "sha512-g34EWZ1WWAVgr4aptGlVBF8mhl3VWjv+8hoAnzStu8Ah22VHBsuGzP17eb6xDVRzw895G4W7vvx60lFFur/1Rg==", - "requires": { - "@ethersproject/abstract-provider": "^5.7.0", - "@ethersproject/abstract-signer": "^5.7.0", - "@ethersproject/address": "^5.7.0", - "@ethersproject/base64": "^5.7.0", - "@ethersproject/basex": "^5.7.0", - "@ethersproject/bignumber": "^5.7.0", - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/constants": "^5.7.0", - "@ethersproject/hash": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/networks": "^5.7.0", - "@ethersproject/properties": "^5.7.0", - "@ethersproject/random": "^5.7.0", - "@ethersproject/rlp": "^5.7.0", - "@ethersproject/sha2": "^5.7.0", - "@ethersproject/strings": "^5.7.0", - "@ethersproject/transactions": "^5.7.0", - "@ethersproject/web": "^5.7.0", - "bech32": "1.1.4", - "ws": "7.4.6" - } - }, - "@ethersproject/random": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/random/-/random-5.7.0.tgz", - "integrity": "sha512-19WjScqRA8IIeWclFme75VMXSBvi4e6InrUNuaR4s5pTF2qNhcGdCUwdxUVGtDDqC00sDLCO93jPQoDUH4HVmQ==", - "requires": { - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/logger": "^5.7.0" - } - }, - "@ethersproject/sha2": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/sha2/-/sha2-5.7.0.tgz", - "integrity": "sha512-gKlH42riwb3KYp0reLsFTokByAKoJdgFCwI+CCiX/k+Jm2mbNs6oOaCjYQSlI1+XBVejwH2KrmCbMAT/GnRDQw==", - "requires": { - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "hash.js": "1.1.7" - } - }, - "@ethersproject/solidity": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/solidity/-/solidity-5.7.0.tgz", - "integrity": "sha512-HmabMd2Dt/raavyaGukF4XxizWKhKQ24DoLtdNbBmNKUOPqwjsKQSdV9GQtj9CBEea9DlzETlVER1gYeXXBGaA==", - "requires": { - "@ethersproject/bignumber": "^5.7.0", - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/keccak256": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/sha2": "^5.7.0", - "@ethersproject/strings": "^5.7.0" - } - }, - "@ethersproject/units": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/units/-/units-5.7.0.tgz", - "integrity": "sha512-pD3xLMy3SJu9kG5xDGI7+xhTEmGXlEqXU4OfNapmfnxLVY4EMSSRp7j1k7eezutBPH7RBN/7QPnwR7hzNlEFeg==", - "requires": { - "@ethersproject/bignumber": "^5.7.0", - "@ethersproject/constants": "^5.7.0", - "@ethersproject/logger": "^5.7.0" - } - }, - "@ethersproject/wallet": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/wallet/-/wallet-5.7.0.tgz", - "integrity": "sha512-MhmXlJXEJFBFVKrDLB4ZdDzxcBxQ3rLyCkhNqVu3CDYvR97E+8r01UgrI+TI99Le+aYm/in/0vp86guJuM7FCA==", - "requires": { - "@ethersproject/abstract-provider": "^5.7.0", - "@ethersproject/abstract-signer": "^5.7.0", - "@ethersproject/address": "^5.7.0", - "@ethersproject/bignumber": "^5.7.0", - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/hash": "^5.7.0", - "@ethersproject/hdnode": "^5.7.0", - "@ethersproject/json-wallets": "^5.7.0", - "@ethersproject/keccak256": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/properties": "^5.7.0", - "@ethersproject/random": "^5.7.0", - "@ethersproject/signing-key": "^5.7.0", - "@ethersproject/transactions": "^5.7.0", - "@ethersproject/wordlists": "^5.7.0" - } - }, - "@ethersproject/wordlists": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/wordlists/-/wordlists-5.7.0.tgz", - "integrity": "sha512-S2TFNJNfHWVHNE6cNDjbVlZ6MgE17MIxMbMg2zv3wn+3XSJGosL1m9ZVv3GXCf/2ymSsQ+hRI5IzoMJTG6aoVA==", - "requires": { - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/hash": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/properties": "^5.7.0", - "@ethersproject/strings": "^5.7.0" - } - }, - "bech32": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/bech32/-/bech32-1.1.4.tgz", - "integrity": "sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ==" - }, - "hash.js": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", - "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", - "requires": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.1" - } - }, - "scrypt-js": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-3.0.1.tgz", - "integrity": "sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA==" - }, - "ws": { - "version": "7.4.6", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz", - "integrity": "sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==", - "requires": {} - } - } - }, - "ethjs-unit": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/ethjs-unit/-/ethjs-unit-0.1.6.tgz", - "integrity": "sha1-xmWSHkduh7ziqdWIpv4EBbLEFpk=", - "requires": { - "bn.js": "4.11.6", - "number-to-bn": "1.7.0" - }, - "dependencies": { - "bn.js": { - "version": "4.11.6", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz", - "integrity": "sha1-UzRK2xRhehP26N0s4okF0cC6MhU=" - } - } - }, - "ethjs-util": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/ethjs-util/-/ethjs-util-0.1.6.tgz", - "integrity": "sha512-CUnVOQq7gSpDHZVVrQW8ExxUETWrnrvXYvYz55wOU8Uj4VCgw56XC2B/fVqQN+f7gmrnRHSLVnFAwsCuNwji8w==", - "requires": { - "is-hex-prefixed": "1.0.0", - "strip-hex-prefix": "1.0.0" - } - }, - "event-target-shim": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", - "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==" - }, - "eventemitter3": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-3.1.2.tgz", - "integrity": "sha512-tvtQIeLVHjDkJYnzf2dgVMxfuSGJeM/7UCG17TT4EumTfNtF+0nebF/4zWOIkCreAbtNqhGEboB6BWrwqNaw4Q==", - "devOptional": true - }, - "events": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", - "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==" - }, - "evp_bytestokey": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", - "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", - "requires": { - "md5.js": "^1.3.4", - "safe-buffer": "^5.1.1" - } - }, - "exit-on-epipe": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/exit-on-epipe/-/exit-on-epipe-1.0.1.tgz", - "integrity": "sha512-h2z5mrROTxce56S+pnvAV890uu7ls7f1kEvVGJbw1OlFH3/mlJ5bkXu0KRyW94v37zzHPiUd55iLn3DA7TjWpw==" - }, - "expand-brackets": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", - "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", - "requires": { - "debug": "^2.3.3", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "posix-character-classes": "^0.1.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } - }, - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "^0.1.0" - } - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - } - }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=" - }, - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" - } - } - }, - "expand-tilde": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz", - "integrity": "sha1-l+gBqgUt8CRU3kawK/YhZCzchQI=", - "requires": { - "homedir-polyfill": "^1.0.1" - } - }, - "explain-error": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/explain-error/-/explain-error-1.0.4.tgz", - "integrity": "sha1-p5PTrAytTGq1cemWj7urbLJTKSk=" - }, - "express": { - "version": "4.17.1", - "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz", - "integrity": "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==", - "dev": true, - "requires": { - "accepts": "~1.3.7", - "array-flatten": "1.1.1", - "body-parser": "1.19.0", - "content-disposition": "0.5.3", - "content-type": "~1.0.4", - "cookie": "0.4.0", - "cookie-signature": "1.0.6", - "debug": "2.6.9", - "depd": "~1.1.2", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "finalhandler": "~1.1.2", - "fresh": "0.5.2", - "merge-descriptors": "1.0.1", - "methods": "~1.1.2", - "on-finished": "~2.3.0", - "parseurl": "~1.3.3", - "path-to-regexp": "0.1.7", - "proxy-addr": "~2.0.5", - "qs": "6.7.0", - "range-parser": "~1.2.1", - "safe-buffer": "5.1.2", - "send": "0.17.1", - "serve-static": "1.14.1", - "setprototypeof": "1.1.1", - "statuses": "~1.5.0", - "type-is": "~1.6.18", - "utils-merge": "1.0.1", - "vary": "~1.1.2" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "qs": { - "version": "6.7.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", - "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==", - "dev": true - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - } - } - }, - "ext": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/ext/-/ext-1.4.0.tgz", - "integrity": "sha512-Key5NIsUxdqKg3vIsdw9dSuXpPCQ297y6wBjL30edxwPgt2E44WcWBZey/ZvUc6sERLTxKdyCu4gZFmUbk1Q7A==", - "requires": { - "type": "^2.0.0" - }, - "dependencies": { - "type": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/type/-/type-2.0.0.tgz", - "integrity": "sha512-KBt58xCHry4Cejnc2ISQAF7QY+ORngsWfxezO68+12hKV6lQY8P/psIkcbjeHWn7MqcgciWJyCCevFMJdIXpow==" - } - } - }, - "extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" - }, - "extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", - "requires": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - } - }, - "external-editor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", - "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", - "dev": true, - "requires": { - "chardet": "^0.7.0", - "iconv-lite": "^0.4.24", - "tmp": "^0.0.33" - } - }, - "extglob": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", - "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", - "requires": { - "array-unique": "^0.3.2", - "define-property": "^1.0.0", - "expand-brackets": "^2.1.4", - "extend-shallow": "^2.0.1", - "fragment-cache": "^0.2.1", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "^0.1.0" - } - }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=" - } - } - }, - "extsprintf": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=" - }, - "eyes": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/eyes/-/eyes-0.1.8.tgz", - "integrity": "sha512-GipyPsXO1anza0AOZdy69Im7hGFCNB7Y/NGjDlZGJ3GJJLtwNSb2vrzYrTYJRrRloVx7pl+bhUaTB8yiccPvFQ==" - }, - "fake-merkle-patricia-tree": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/fake-merkle-patricia-tree/-/fake-merkle-patricia-tree-1.0.1.tgz", - "integrity": "sha1-S4w6z7Ugr635hgsfFM2M40As3dM=", - "requires": { - "checkpoint-store": "^1.1.0" - } - }, - "fast-check": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/fast-check/-/fast-check-3.1.1.tgz", - "integrity": "sha512-3vtXinVyuUKCKFKYcwXhGE6NtGWkqF8Yh3rvMZNzmwz8EPrgoc/v4pDdLHyLnCyCI5MZpZZkDEwFyXyEONOxpA==", - "dev": true, - "requires": { - "pure-rand": "^5.0.1" - } - }, - "fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" - }, - "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==" - }, - "fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", - "dev": true - }, - "fast-safe-stringify": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz", - "integrity": "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==" - }, - "fast-stable-stringify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fast-stable-stringify/-/fast-stable-stringify-1.0.0.tgz", - "integrity": "sha512-wpYMUmFu5f00Sm0cj2pfivpmawLZ0NKdviQ4w9zJeR8JVtOpOxHmLaJuj0vxvGqMJQWyP/COUkF75/57OKyRag==" - }, - "faye-websocket": { - "version": "0.11.3", - "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.3.tgz", - "integrity": "sha512-D2y4bovYpzziGgbHYtGCMjlJM36vAl/y+xUyn1C+FVx8szd1E+86KwVw6XvYSzOP8iMpm1X0I4xJD+QtUb36OA==", - "dev": true, - "requires": { - "websocket-driver": ">=0.5.1" - } - }, - "fd-slicer": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", - "integrity": "sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4=", - "dev": true, - "requires": { - "pend": "~1.2.0" - } - }, - "fetch-cookie": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/fetch-cookie/-/fetch-cookie-0.11.0.tgz", - "integrity": "sha512-BQm7iZLFhMWFy5CZ/162sAGjBfdNWb7a8LEqqnzsHFhxT/X/SVj/z2t2nu3aJvjlbQkrAlTUApplPRjWyH4mhA==", - "dev": true, - "optional": true, - "requires": { - "tough-cookie": "^2.3.3 || ^3.0.1 || ^4.0.0" - } - }, - "fetch-ponyfill": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/fetch-ponyfill/-/fetch-ponyfill-4.1.0.tgz", - "integrity": "sha1-rjzl9zLGReq4fkroeTQUcJsjmJM=", - "requires": { - "node-fetch": "~1.7.1" - } - }, - "figgy-pudding": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.2.tgz", - "integrity": "sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw==" - }, - "figures": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", - "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", - "dev": true, - "requires": { - "escape-string-regexp": "^1.0.5" - } - }, - "file-entry-cache": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-5.0.1.tgz", - "integrity": "sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g==", - "dev": true, - "requires": { - "flat-cache": "^2.0.1" - } - }, - "file-type": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/file-type/-/file-type-5.2.0.tgz", - "integrity": "sha1-LdvqfHP/42No365J3DOMBYwritY=", - "dev": true - }, - "file-uri-to-path": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", - "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==" - }, - "fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "requires": { - "to-regex-range": "^5.0.1" - } - }, - "finalhandler": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", - "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", - "dev": true, - "requires": { - "debug": "2.6.9", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "on-finished": "~2.3.0", - "parseurl": "~1.3.3", - "statuses": "~1.5.0", - "unpipe": "~1.0.0" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - } - } - }, - "find-cache-dir": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz", - "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==", - "requires": { - "commondir": "^1.0.1", - "make-dir": "^2.0.0", - "pkg-dir": "^3.0.0" - }, - "dependencies": { - "make-dir": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", - "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", - "requires": { - "pify": "^4.0.1", - "semver": "^5.6.0" - } - }, - "pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==" - } - } - }, - "find-replace": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-replace/-/find-replace-3.0.0.tgz", - "integrity": "sha512-6Tb2myMioCAgv5kfvP5/PkZZ/ntTpVK39fHY7WkWBgvbeE+VHd/tZuZ4mrC+bxh4cfOZeYKVPaJIZtZXV7GNCQ==", - "requires": { - "array-back": "^3.0.1" - } - }, - "find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "requires": { - "locate-path": "^3.0.0" - }, - "dependencies": { - "locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", - "requires": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - } - }, - "p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "requires": { - "p-try": "^2.0.0" - } - }, - "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==", - "requires": { - "p-limit": "^2.0.0" - } - }, - "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==" - } - } - }, - "findup-sync": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-3.0.0.tgz", - "integrity": "sha512-YbffarhcicEhOrm4CtrwdKBdCuz576RLdhJDsIfvNtxUuhdRet1qZcsMjqbePtAseKdAnDyM/IyXbu7PRPRLYg==", - "requires": { - "detect-file": "^1.0.0", - "is-glob": "^4.0.0", - "micromatch": "^3.0.4", - "resolve-dir": "^1.0.1" - } - }, - "firebase": { - "version": "7.17.1", - "resolved": "https://registry.npmjs.org/firebase/-/firebase-7.17.1.tgz", - "integrity": "sha512-g2Wkk2fz8VoeSrxv2PIQizm2j74EtbpxQ+wd2AvH2iEF5LRaJOsk3zVBtIlyJIQ3vGTmlutIxtyyoDAQcPO9TA==", - "dev": true, - "requires": { - "@firebase/analytics": "0.4.1", - "@firebase/app": "0.6.9", - "@firebase/app-types": "0.6.1", - "@firebase/auth": "0.14.9", - "@firebase/database": "0.6.9", - "@firebase/firestore": "1.16.2", - "@firebase/functions": "0.4.49", - "@firebase/installations": "0.4.15", - "@firebase/messaging": "0.6.21", - "@firebase/performance": "0.3.10", - "@firebase/polyfill": "0.3.36", - "@firebase/remote-config": "0.1.26", - "@firebase/storage": "0.3.41", - "@firebase/util": "0.3.0" - } - }, - "flat": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", - "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==" - }, - "flat-cache": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-2.0.1.tgz", - "integrity": "sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA==", - "dev": true, - "requires": { - "flatted": "^2.0.0", - "rimraf": "2.6.3", - "write": "1.0.3" - }, - "dependencies": { - "rimraf": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", - "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - } - } - }, - "flatted": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.2.tgz", - "integrity": "sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==", - "dev": true - }, - "flush-write-stream": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz", - "integrity": "sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==", - "requires": { - "inherits": "^2.0.3", - "readable-stream": "^2.3.6" - } - }, - "follow-redirects": { - "version": "1.5.10", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.5.10.tgz", - "integrity": "sha512-0V5l4Cizzvqt5D44aTXbFZz+FtyXV1vrDN6qrelxtfYQKW0KO0W2T/hkE8xvGa/540LkZlkaUjO4ailYTFtHVQ==", - "dev": true, - "requires": { - "debug": "=3.1.0" - } - }, - "for-in": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", - "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=" - }, - "foreach": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz", - "integrity": "sha1-C+4AUBiusmDQo6865ljdATbsG5k=", - "dev": true - }, - "forever-agent": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=" - }, - "form-data": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", - "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", - "mime-types": "^2.1.12" - } - }, - "form-data-encoder": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/form-data-encoder/-/form-data-encoder-1.7.1.tgz", - "integrity": "sha512-EFRDrsMm/kyqbTQocNvRXMLjc7Es2Vk+IQFx/YW7hkUH1eBl4J1fqiP34l74Yt0pFLCNpc06fkbVk00008mzjg==", - "dev": true - }, - "forwarded": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz", - "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=", - "dev": true - }, - "fragment-cache": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", - "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", - "requires": { - "map-cache": "^0.2.2" - } - }, - "fresh": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", - "dev": true - }, - "from2": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", - "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", - "requires": { - "inherits": "^2.0.1", - "readable-stream": "^2.0.0" - } - }, - "fs-constants": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", - "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==", - "dev": true - }, - "fs-extra": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", - "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", - "requires": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - }, - "fs-minipass": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.7.tgz", - "integrity": "sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==", - "dev": true, - "requires": { - "minipass": "^2.6.0" - } - }, - "fs-write-stream-atomic": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz", - "integrity": "sha1-tH31NJPvkR33VzHnCp3tAYnbQMk=", - "requires": { - "graceful-fs": "^4.1.2", - "iferr": "^0.1.5", - "imurmurhash": "^0.1.4", - "readable-stream": "1 || 2" - } - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" - }, - "function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "dev": true - }, - "functional-red-black-tree": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", - "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=" - }, - "ganache": { - "version": "7.8.0", - "resolved": "https://registry.npmjs.org/ganache/-/ganache-7.8.0.tgz", - "integrity": "sha512-IrUYvsaE/m2/NaVIZ7D/gCnsmyU/buechnH6MhUipzG1qJcZIwIp/DoP/LZUcHyhy0Bv0NKZD2pGOjpRhn7l7A==", - "dev": true, - "requires": { - "@trufflesuite/bigint-buffer": "1.1.10", - "@trufflesuite/uws-js-unofficial": "20.10.0-unofficial.2", - "@types/bn.js": "^5.1.0", - "@types/lru-cache": "5.1.1", - "@types/seedrandom": "3.0.1", - "abstract-level": "1.0.3", - "abstract-leveldown": "7.2.0", - "async-eventemitter": "0.2.4", - "bufferutil": "4.0.5", - "emittery": "0.10.0", - "keccak": "3.0.2", - "leveldown": "6.1.0", - "secp256k1": "4.0.3", - "utf-8-validate": "5.0.7" - }, - "dependencies": { - "@trufflesuite/bigint-buffer": { - "version": "1.1.10", - "resolved": "https://registry.npmjs.org/@trufflesuite/bigint-buffer/-/bigint-buffer-1.1.10.tgz", - "integrity": "sha512-pYIQC5EcMmID74t26GCC67946mgTJFiLXOT/BYozgrd4UEY2JHEGLhWi9cMiQCt5BSqFEvKkCHNnoj82SRjiEw==", - "bundled": true, - "dev": true, - "requires": { - "node-gyp-build": "4.4.0" - }, - "dependencies": { - "node-gyp-build": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.4.0.tgz", - "integrity": "sha512-amJnQCcgtRVw9SvoebO3BKGESClrfXGCUTX9hSn1OuGQTQBOZmVd0Z0OlecpuRksKvbsUqALE8jls/ErClAPuQ==", - "bundled": true, - "dev": true - } - } - }, - "@trufflesuite/uws-js-unofficial": { - "version": "20.10.0-unofficial.2", - "resolved": "https://registry.npmjs.org/@trufflesuite/uws-js-unofficial/-/uws-js-unofficial-20.10.0-unofficial.2.tgz", - "integrity": "sha512-oQQlnS3oNeGsgS4K3KCSSavJgSb0W9D5ktZs4FacX9VbM7b+NlhjH96d6/G4fMrz+bc5MXRyco419on0X0dvRA==", - "dev": true, - "requires": { - "bufferutil": "4.0.5", - "utf-8-validate": "5.0.7", - "ws": "8.2.3" - } - }, - "@types/bn.js": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-5.1.0.tgz", - "integrity": "sha512-QSSVYj7pYFN49kW77o2s9xTCwZ8F2xLbjLLSEVh8D2F4JUhZtPAGOFLTD+ffqksBx/u4cE/KImFjyhqCjn/LIA==", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "@types/lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/@types/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-ssE3Vlrys7sdIzs5LOxCzTVMsU7i9oa/IaW92wF32JFb3CVczqOkru2xspuKczHEbG3nvmPY7IFqVmGGHdNbYw==", - "dev": true - }, - "@types/node": { - "version": "17.0.0", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.0.tgz", - "integrity": "sha512-eMhwJXc931Ihh4tkU+Y7GiLzT/y/DBNpNtr4yU9O2w3SYBsr9NaOPhQlLKRmoWtI54uNwuo0IOUFQjVOTZYRvw==", - "dev": true - }, - "@types/seedrandom": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@types/seedrandom/-/seedrandom-3.0.1.tgz", - "integrity": "sha512-giB9gzDeiCeloIXDgzFBCgjj1k4WxcDrZtGl6h1IqmUPlxF+Nx8Ve+96QCyDZ/HseB/uvDsKbpib9hU5cU53pw==", - "dev": true - }, - "abstract-level": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/abstract-level/-/abstract-level-1.0.3.tgz", - "integrity": "sha512-t6jv+xHy+VYwc4xqZMn2Pa9DjcdzvzZmQGRjTFc8spIbRGHgBrEKbPq+rYXc7CCo0lxgYvSgKVg9qZAhpVQSjA==", - "dev": true, - "requires": { - "buffer": "^6.0.3", - "catering": "^2.1.0", - "is-buffer": "^2.0.5", - "level-supports": "^4.0.0", - "level-transcoder": "^1.0.1", - "module-error": "^1.0.1", - "queue-microtask": "^1.2.3" - }, - "dependencies": { - "level-supports": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/level-supports/-/level-supports-4.0.1.tgz", - "integrity": "sha512-PbXpve8rKeNcZ9C1mUicC9auIYFyGpkV9/i6g76tLgANwWhtG2v7I4xNBUlkn3lE2/dZF3Pi0ygYGtLc4RXXdA==", - "dev": true - } - } - }, - "abstract-leveldown": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-7.2.0.tgz", - "integrity": "sha512-DnhQwcFEaYsvYDnACLZhMmCWd3rkOeEvglpa4q5i/5Jlm3UIsWaxVzuXvDLFCSCWRO3yy2/+V/G7FusFgejnfQ==", - "bundled": true, - "dev": true, - "requires": { - "buffer": "^6.0.3", - "catering": "^2.0.0", - "is-buffer": "^2.0.5", - "level-concat-iterator": "^3.0.0", - "level-supports": "^2.0.1", - "queue-microtask": "^1.2.3" - } - }, - "async": { - "version": "2.6.4", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.4.tgz", - "integrity": "sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==", - "dev": true, - "requires": { - "lodash": "^4.17.14" - } - }, - "async-eventemitter": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/async-eventemitter/-/async-eventemitter-0.2.4.tgz", - "integrity": "sha512-pd20BwL7Yt1zwDFy+8MX8F1+WCT8aQeKj0kQnTrH9WaeRETlRamVhD0JtRPmrV4GfOJ2F9CvdQkZeZhnh2TuHw==", - "dev": true, - "requires": { - "async": "^2.4.0" - } - }, - "base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", - "bundled": true, - "dev": true - }, - "brorand": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", - "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=", - "bundled": true, - "dev": true - }, - "buffer": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", - "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", - "bundled": true, - "dev": true, - "requires": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" - } - }, - "bufferutil": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/bufferutil/-/bufferutil-4.0.5.tgz", - "integrity": "sha512-HTm14iMQKK2FjFLRTM5lAVcyaUzOnqbPtesFIvREgXpJHdQm8bWS+GkQgIkfaBYRHuCnea7w8UVNfwiAQhlr9A==", - "dev": true, - "optional": true, - "requires": { - "node-gyp-build": "^4.3.0" - } - }, - "catering": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/catering/-/catering-2.1.0.tgz", - "integrity": "sha512-M5imwzQn6y+ODBfgi+cfgZv2hIUI6oYU/0f35Mdb1ujGeqeoI5tOnl9Q13DTH7LW+7er+NYq8stNOKZD/Z3U/A==", - "bundled": true, - "dev": true, - "requires": { - "queue-tick": "^1.0.0" - } - }, - "elliptic": { - "version": "6.5.4", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", - "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", - "bundled": true, - "dev": true, - "requires": { - "bn.js": "^4.11.9", - "brorand": "^1.1.0", - "hash.js": "^1.0.0", - "hmac-drbg": "^1.0.1", - "inherits": "^2.0.4", - "minimalistic-assert": "^1.0.1", - "minimalistic-crypto-utils": "^1.0.1" - }, - "dependencies": { - "bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "bundled": true, - "dev": true - } - } - }, - "emittery": { - "version": "0.10.0", - "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.10.0.tgz", - "integrity": "sha512-AGvFfs+d0JKCJQ4o01ASQLGPmSCxgfU9RFXvzPvZdjKK8oscynksuJhWrSTSw7j7Ep/sZct5b5ZhYCi8S/t0HQ==", - "dev": true - }, - "hash.js": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", - "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", - "bundled": true, - "dev": true, - "requires": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.1" - } - }, - "hmac-drbg": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", - "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", - "bundled": true, - "dev": true, - "requires": { - "hash.js": "^1.0.3", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.1" - } - }, - "ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", - "bundled": true, - "dev": true - }, - "inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "bundled": true, - "dev": true - }, - "is-buffer": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz", - "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==", - "bundled": true, - "dev": true - }, - "keccak": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/keccak/-/keccak-3.0.2.tgz", - "integrity": "sha512-PyKKjkH53wDMLGrvmRGSNWgmSxZOUqbnXwKL9tmgbFYA1iAYqW21kfR7mZXV0MlESiefxQQE9X9fTa3X+2MPDQ==", - "bundled": true, - "dev": true, - "requires": { - "node-addon-api": "^2.0.0", - "node-gyp-build": "^4.2.0", - "readable-stream": "^3.6.0" - } - }, - "level-concat-iterator": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/level-concat-iterator/-/level-concat-iterator-3.1.0.tgz", - "integrity": "sha512-BWRCMHBxbIqPxJ8vHOvKUsaO0v1sLYZtjN3K2iZJsRBYtp+ONsY6Jfi6hy9K3+zolgQRryhIn2NRZjZnWJ9NmQ==", - "bundled": true, - "dev": true, - "requires": { - "catering": "^2.1.0" - } - }, - "level-supports": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/level-supports/-/level-supports-2.1.0.tgz", - "integrity": "sha512-E486g1NCjW5cF78KGPrMDRBYzPuueMZ6VBXHT6gC7A8UYWGiM14fGgp+s/L1oFfDWSPV/+SFkYCmZ0SiESkRKA==", - "bundled": true, - "dev": true - }, - "level-transcoder": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/level-transcoder/-/level-transcoder-1.0.1.tgz", - "integrity": "sha512-t7bFwFtsQeD8cl8NIoQ2iwxA0CL/9IFw7/9gAjOonH0PWTTiRfY7Hq+Ejbsxh86tXobDQ6IOiddjNYIfOBs06w==", - "dev": true, - "requires": { - "buffer": "^6.0.3", - "module-error": "^1.0.1" - } - }, - "leveldown": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/leveldown/-/leveldown-6.1.0.tgz", - "integrity": "sha512-8C7oJDT44JXxh04aSSsfcMI8YiaGRhOFI9/pMEL7nWJLVsWajDPTRxsSHTM2WcTVY5nXM+SuRHzPPi0GbnDX+w==", - "bundled": true, - "dev": true, - "requires": { - "abstract-leveldown": "^7.2.0", - "napi-macros": "~2.0.0", - "node-gyp-build": "^4.3.0" - } - }, - "lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "dev": true - }, - "minimalistic-assert": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", - "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", - "bundled": true, - "dev": true - }, - "minimalistic-crypto-utils": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", - "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=", - "bundled": true, - "dev": true - }, - "module-error": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/module-error/-/module-error-1.0.2.tgz", - "integrity": "sha512-0yuvsqSCv8LbaOKhnsQ/T5JhyFlCYLPXK3U2sgV10zoKQwzs/MyfuQUOZQ1V/6OCOJsK/TRgNVrPuPDqtdMFtA==", - "dev": true - }, - "napi-macros": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/napi-macros/-/napi-macros-2.0.0.tgz", - "integrity": "sha512-A0xLykHtARfueITVDernsAWdtIMbOJgKgcluwENp3AlsKN/PloyO10HtmoqnFAQAcxPkgZN7wdfPfEd0zNGxbg==", - "bundled": true, - "dev": true - }, - "node-addon-api": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-2.0.2.tgz", - "integrity": "sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA==", - "bundled": true, - "dev": true - }, - "node-gyp-build": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.3.0.tgz", - "integrity": "sha512-iWjXZvmboq0ja1pUGULQBexmxq8CV4xBhX7VDOTbL7ZR4FOowwY/VOtRxBN/yKxmdGoIp4j5ysNT4u3S2pDQ3Q==", - "bundled": true, - "dev": true - }, - "queue-microtask": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", - "bundled": true, - "dev": true - }, - "queue-tick": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/queue-tick/-/queue-tick-1.0.0.tgz", - "integrity": "sha512-ULWhjjE8BmiICGn3G8+1L9wFpERNxkf8ysxkAer4+TFdRefDaXOCV5m92aMB9FtBVmn/8sETXLXY6BfW7hyaWQ==", - "bundled": true, - "dev": true - }, - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "bundled": true, - "dev": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - }, - "safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "bundled": true, - "dev": true - }, - "secp256k1": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-4.0.3.tgz", - "integrity": "sha512-NLZVf+ROMxwtEj3Xa562qgv2BK5e2WNmXPiOdVIPLgs6lyTzMvBq0aWTYMI5XCP9jZMVKOcqZLw/Wc4vDkuxhA==", - "bundled": true, - "dev": true, - "requires": { - "elliptic": "^6.5.4", - "node-addon-api": "^2.0.0", - "node-gyp-build": "^4.2.0" - } - }, - "string_decoder": { - "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==", - "bundled": true, - "dev": true, - "requires": { - "safe-buffer": "~5.2.0" - } - }, - "utf-8-validate": { - "version": "5.0.7", - "resolved": "https://registry.npmjs.org/utf-8-validate/-/utf-8-validate-5.0.7.tgz", - "integrity": "sha512-vLt1O5Pp+flcArHGIyKEQq883nBt8nN8tVBcoL0qUXj2XT1n7p70yGIq2VK98I5FdZ1YHc0wk/koOnHjnXWk1Q==", - "dev": true, - "optional": true, - "requires": { - "node-gyp-build": "^4.3.0" - } - }, - "util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", - "bundled": true, - "dev": true - }, - "ws": { - "version": "8.2.3", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.2.3.tgz", - "integrity": "sha512-wBuoj1BDpC6ZQ1B7DWQBYVLphPWkm8i9Y0/3YdHjHKHiohOJ1ws+3OccDWtH+PoC9DZD5WOTrJvNbWvjS6JWaA==", - "dev": true - } - } - }, - "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==", - "peer": true - }, - "get-caller-file": { - "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": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz", - "integrity": "sha1-6td0q+5y4gQJQzoGY2YCPdaIekE=" - }, - "get-intrinsic": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", - "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", - "dev": true, - "requires": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1" - } - }, - "get-iterator": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/get-iterator/-/get-iterator-1.0.2.tgz", - "integrity": "sha512-v+dm9bNVfOYsY1OrhaCrmyOcYoSeVvbt+hHZ0Au+T+p1y+0Uyj9aMaGIeUTT6xdpRbWzDeYKvfOslPhggQMcsg==" - }, - "get-stream": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", - "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", - "dev": true, - "requires": { - "pump": "^3.0.0" - } - }, - "get-value": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", - "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=" - }, - "getpass": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", - "requires": { - "assert-plus": "^1.0.0" - } - }, - "glob": { - "version": "7.1.6", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", - "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", - "requires": { - "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" - } - }, - "glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "requires": { - "is-glob": "^4.0.1" - } - }, - "global": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/global/-/global-4.3.2.tgz", - "integrity": "sha1-52mJJopsdMOJCLEwWxD8DjlOnQ8=", - "requires": { - "min-document": "^2.19.0", - "process": "~0.5.1" - } - }, - "global-modules": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz", - "integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==", - "requires": { - "global-prefix": "^3.0.0" - } - }, - "global-prefix": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz", - "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==", - "requires": { - "ini": "^1.3.5", - "kind-of": "^6.0.2", - "which": "^1.3.1" - }, - "dependencies": { - "which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "requires": { - "isexe": "^2.0.0" - } - } - } - }, - "globals": { - "version": "12.4.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-12.4.0.tgz", - "integrity": "sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg==", - "dev": true, - "requires": { - "type-fest": "^0.8.1" - } - }, - "globalthis": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.2.tgz", - "integrity": "sha512-ZQnSFO1la8P7auIOQECnm0sSuoMeaSq0EEdXMBFF2QJO4uNcwbyhSgG3MruWNbFTqCLmxVwGOl7LZ9kASvHdeQ==", - "requires": { - "define-properties": "^1.1.3" - } - }, - "google-protobuf": { - "version": "3.21.2", - "resolved": "https://registry.npmjs.org/google-protobuf/-/google-protobuf-3.21.2.tgz", - "integrity": "sha512-3MSOYFO5U9mPGikIYCzK0SaThypfGgS6bHqrUGXG3DPHCrb+txNqeEcns1W0lkGfk0rCyNXm7xB9rMxnCiZOoA==" - }, - "got": { - "version": "9.6.0", - "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz", - "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==", - "dev": true, - "requires": { - "@sindresorhus/is": "^0.14.0", - "@szmarczak/http-timer": "^1.1.2", - "cacheable-request": "^6.0.0", - "decompress-response": "^3.3.0", - "duplexer3": "^0.1.4", - "get-stream": "^4.1.0", - "lowercase-keys": "^1.0.1", - "mimic-response": "^1.0.1", - "p-cancelable": "^1.0.0", - "to-readable-stream": "^1.0.0", - "url-parse-lax": "^3.0.0" - } - }, - "graceful-fs": { - "version": "4.2.10", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", - "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==" - }, - "graceful-readlink": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz", - "integrity": "sha1-TK+tdrxi8C+gObL5Tpo906ORpyU=", - "dev": true - }, - "graphql": { - "version": "15.8.0", - "resolved": "https://registry.npmjs.org/graphql/-/graphql-15.8.0.tgz", - "integrity": "sha512-5gghUc24tP9HRznNpV2+FIoq3xKkj5dTQqf4v0CpdPbFVwFkWoxOM+o+2OC9ZSvjEMTjfmG9QT+gcvggTwW1zw==" - }, - "graphql-tag": { - "version": "2.12.6", - "resolved": "https://registry.npmjs.org/graphql-tag/-/graphql-tag-2.12.6.tgz", - "integrity": "sha512-FdSNcu2QQcWnM2VNvSCCDCVS5PpPqpzgFT8+GXzqJuoDd0CBncxCY278u4mhRO7tMgo2JjgJA5aZ+nWSQ/Z+xg==", - "requires": { - "tslib": "^2.1.0" - }, - "dependencies": { - "tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" - } - } - }, - "growl": { - "version": "1.10.5", - "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz", - "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==" - }, - "har-schema": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", - "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=" - }, - "har-validator": { - "version": "5.1.5", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", - "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", - "dev": true, - "requires": { - "ajv": "^6.12.3", - "har-schema": "^2.0.0" - } - }, - "has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dev": true, - "requires": { - "function-bind": "^1.1.1" - } - }, - "has-bigints": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz", - "integrity": "sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==", - "dev": true - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" - }, - "has-symbol-support-x": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/has-symbol-support-x/-/has-symbol-support-x-1.4.2.tgz", - "integrity": "sha512-3ToOva++HaW+eCpgqZrCfN51IPB+7bJNVT6CUATzueB5Heb8o6Nam0V3HG5dlDvZU1Gn5QLcbahiKw/XVk5JJw==", - "dev": true - }, - "has-symbols": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", - "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==", - "dev": true - }, - "has-to-string-tag-x": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/has-to-string-tag-x/-/has-to-string-tag-x-1.4.1.tgz", - "integrity": "sha512-vdbKfmw+3LoOYVr+mtxHaX5a96+0f3DljYd8JOqvOLsf5mw2Otda2qCDT9qRqLAhrjyQ0h7ual5nOiASpsGNFw==", - "dev": true, - "requires": { - "has-symbol-support-x": "^1.4.1" - } - }, - "has-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", - "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", - "requires": { - "get-value": "^2.0.6", - "has-values": "^1.0.0", - "isobject": "^3.0.0" - } - }, - "has-values": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", - "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", - "requires": { - "is-number": "^3.0.0", - "kind-of": "^4.0.0" - }, - "dependencies": { - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" - }, - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "kind-of": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", - "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "hash-base": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", - "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", - "requires": { - "inherits": "^2.0.4", - "readable-stream": "^3.6.0", - "safe-buffer": "^5.2.0" - }, - "dependencies": { - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - } - } - }, - "hash.js": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.3.tgz", - "integrity": "sha512-/UETyP0W22QILqS+6HowevwhEFJ3MBJnwTf75Qob9Wz9t0DPuisL8kW8YZMK62dHAKE1c1p+gY1TtOLY+USEHA==", - "requires": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.0" - } - }, - "he": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", - "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==" - }, - "header-case": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/header-case/-/header-case-1.0.1.tgz", - "integrity": "sha512-i0q9mkOeSuhXw6bGgiQCCBgY/jlZuV/7dZXyZ9c6LcBrqwvT8eT719E9uxE5LiZftdl+z81Ugbg/VvXV4OJOeQ==", - "dev": true, - "requires": { - "no-case": "^2.2.0", - "upper-case": "^1.1.3" - } - }, - "hi-base32": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/hi-base32/-/hi-base32-0.5.1.tgz", - "integrity": "sha512-EmBBpvdYh/4XxsnUybsPag6VikPYnN30td+vQk+GI3qpahVEG9+gTkG0aXVxTjBqQ5T6ijbWIu77O+C5WFWsnA==" - }, - "hmac-drbg": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", - "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", - "requires": { - "hash.js": "^1.0.3", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.1" - } - }, - "hoist-non-react-statics": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", - "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", - "requires": { - "react-is": "^16.7.0" - } - }, - "homedir-polyfill": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz", - "integrity": "sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==", - "requires": { - "parse-passwd": "^1.0.0" - } - }, - "hosted-git-info": { - "version": "2.8.8", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz", - "integrity": "sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==", - "dev": true - }, - "htmlparser2": { - "version": "3.10.1", - "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.10.1.tgz", - "integrity": "sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ==", - "dev": true, - "requires": { - "domelementtype": "^1.3.1", - "domhandler": "^2.3.0", - "domutils": "^1.5.1", - "entities": "^1.1.1", - "inherits": "^2.0.1", - "readable-stream": "^3.1.1" - }, - "dependencies": { - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - } - } - }, - "http-cache-semantics": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", - "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==", - "dev": true - }, - "http-errors": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz", - "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==", - "requires": { - "depd": "~1.1.2", - "inherits": "2.0.3", - "setprototypeof": "1.1.1", - "statuses": ">= 1.5.0 < 2", - "toidentifier": "1.0.0" - }, - "dependencies": { - "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" - } - } - }, - "http-https": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/http-https/-/http-https-1.0.0.tgz", - "integrity": "sha1-L5CN1fHbQGjAWM1ubUzjkskTOJs=" - }, - "http-parser-js": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.2.tgz", - "integrity": "sha512-opCO9ASqg5Wy2FNo7A0sxy71yGbbkJJXLdgMK04Tcypw9jr2MgWbyubb0+WdmDmGnFflO7fRbqbaihh/ENDlRQ==", - "dev": true - }, - "http-signature": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", - "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", - "requires": { - "assert-plus": "^1.0.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" - } - }, - "http-status-codes": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/http-status-codes/-/http-status-codes-2.2.0.tgz", - "integrity": "sha512-feERVo9iWxvnejp3SEfm/+oNG517npqL2/PIA8ORjyOZjGC7TwCRQsZylciLS64i6pJ0wRYz3rkXLRwbtFa8Ng==" - }, - "http2-wrapper": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-2.2.0.tgz", - "integrity": "sha512-kZB0wxMo0sh1PehyjJUWRFEd99KC5TLjZ2cULC4f9iqJBAmKQQXEICjxl5iPJRwP40dpeHFqqhm7tYCvODpqpQ==", - "dev": true, - "requires": { - "quick-lru": "^5.1.1", - "resolve-alpn": "^1.2.0" - } - }, - "https-browserify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", - "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=" - }, - "humanize-ms": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz", - "integrity": "sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==", - "requires": { - "ms": "^2.0.0" - } - }, - "iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "dev": true, - "requires": { - "safer-buffer": ">= 2.1.2 < 3" - } - }, - "idb": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/idb/-/idb-3.0.2.tgz", - "integrity": "sha512-+FLa/0sTXqyux0o6C+i2lOR0VoS60LU/jzUo5xjfY6+7sEEgy4Gz1O7yFBXvjd7N0NyIGWIRg8DcQSLEG+VSPw==", - "dev": true - }, - "idna-uts46-hx": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/idna-uts46-hx/-/idna-uts46-hx-2.3.1.tgz", - "integrity": "sha512-PWoF9Keq6laYdIRwwCdhTPl60xRqAloYNMQLiyUnG42VjT53oW07BXIRM+NK7eQjzXjAk2gUvX9caRxlnF9TAA==", - "dev": true, - "requires": { - "punycode": "2.1.0" - }, - "dependencies": { - "punycode": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.0.tgz", - "integrity": "sha1-X4Y+3Im5bbCQdLrXlHvwkFbKTn0=", - "dev": true - } - } - }, - "ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==" - }, - "iferr": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz", - "integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=" - }, - "ignore": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", - "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", - "dev": true - }, - "immediate": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.3.0.tgz", - "integrity": "sha512-HR7EVodfFUdQCTIeySw+WDRFJlPcLOJbXfwwZ7Oom6tjsvZ3bOkCDJHehQC3nxJrv7+f9XecwazynjU8e4Vw3Q==" - }, - "import-fresh": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.2.1.tgz", - "integrity": "sha512-6e1q1cnWP2RXD9/keSkxHScg508CdXqXWgWBaETNhyuBFz+kUZlKboh+ISK+bU++DmbHimVBrOz/zzPe0sZ3sQ==", - "dev": true, - "requires": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - } - }, - "import-local": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/import-local/-/import-local-2.0.0.tgz", - "integrity": "sha512-b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ==", - "requires": { - "pkg-dir": "^3.0.0", - "resolve-cwd": "^2.0.0" - } - }, - "imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=" - }, - "infer-owner": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", - "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==" - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" - }, - "ini": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" - }, - "inquirer": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-6.5.2.tgz", - "integrity": "sha512-cntlB5ghuB0iuO65Ovoi8ogLHiWGs/5yNrtUcKjFhSSiVeAIVpD7koaSU9RM8mpXw5YDi9RdYXGQMaOURB7ycQ==", - "dev": true, - "requires": { - "ansi-escapes": "^3.2.0", - "chalk": "^2.4.2", - "cli-cursor": "^2.1.0", - "cli-width": "^2.0.0", - "external-editor": "^3.0.3", - "figures": "^2.0.0", - "lodash": "^4.17.12", - "mute-stream": "0.0.7", - "run-async": "^2.2.0", - "rxjs": "^6.4.0", - "string-width": "^2.1.0", - "strip-ansi": "^5.1.0", - "through": "^2.3.6" - }, - "dependencies": { - "cli-cursor": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", - "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", - "dev": true, - "requires": { - "restore-cursor": "^2.0.0" - } - }, - "mimic-fn": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", - "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", - "dev": true - }, - "onetime": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", - "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", - "dev": true, - "requires": { - "mimic-fn": "^1.0.0" - } - }, - "restore-cursor": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", - "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", - "dev": true, - "requires": { - "onetime": "^2.0.0", - "signal-exit": "^3.0.2" - } - } - } - }, - "interpret": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", - "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==" - }, - "ipaddr.js": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", - "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", - "dev": true - }, - "ipfs-http-client-lite": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/ipfs-http-client-lite/-/ipfs-http-client-lite-0.3.0.tgz", - "integrity": "sha512-fmxEctpzqaPd0gooBuvjMwxSoqz15rwjjm2ZF3Ns4Ckz/zz5JEmiDKuwlMOfwkARd5Wsiy2FqQpQEvBTJ8R7Og==", - "requires": { - "abort-controller": "^3.0.0", - "async-iterator-to-pull-stream": "^1.3.0", - "buffer": "^5.2.1", - "cids": "^0.7.1", - "explain-error": "^1.0.4", - "form-data": "^2.4.0", - "iterable-ndjson": "^1.1.0", - "node-fetch": "^2.6.0", - "pull-stream-to-async-iterator": "^1.0.2", - "querystring": "^0.2.0" - }, - "dependencies": { - "form-data": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.5.1.tgz", - "integrity": "sha512-m21N3WOmEEURgk6B9GLOE4RuWOFf28Lhh9qGYeNlGq4VDXUlJy2th2slBNU8Gp8EzloYZOibZJ7t5ecIrFSjVA==", - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", - "mime-types": "^2.1.12" - } - }, - "node-fetch": { - "version": "2.6.7", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", - "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", - "requires": { - "whatwg-url": "^5.0.0" - } - } - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-arguments": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.0.4.tgz", - "integrity": "sha512-xPh0Rmt8NE65sNzvyUmWgI1tz3mKq74lGA0mL8LYZcoIzKOzDh6HmrYm3d18k60nHerC8A9Km8kYu87zfSFnLA==", - "dev": true - }, - "is-bigint": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.2.tgz", - "integrity": "sha512-0JV5+SOCQkIdzjBK9buARcV804Ddu7A0Qet6sHi3FimE9ne6m4BGQZfRn+NZiXbBk4F4XmHfDZIipLj9pX8dSA==", - "dev": true - }, - "is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "requires": { - "binary-extensions": "^2.0.0" - } - }, - "is-boolean-object": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.1.tgz", - "integrity": "sha512-bXdQWkECBUIAcCkeH1unwJLIpZYaa5VvuygSyS/c2lf719mTKZDU5UdDRlpd01UjADgmW8RfqaP+mRaVPdr/Ng==", - "dev": true, - "requires": { - "call-bind": "^1.0.2" - } - }, - "is-buffer": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz", - "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==", - "dev": true - }, - "is-callable": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.3.tgz", - "integrity": "sha512-J1DcMe8UYTBSrKezuIUTUwjXsho29693unXM2YhJUTR2txK/eG47bvNa/wipPFmZFgr/N6f1GA66dv0mEyTIyQ==", - "dev": true - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-date-object": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz", - "integrity": "sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==", - "dev": true - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - }, - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "requires": { - "is-plain-object": "^2.0.4" - } - }, - "is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=" - }, - "is-fn": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fn/-/is-fn-1.0.0.tgz", - "integrity": "sha1-lUPV3nvPWwiiLsiiC65uKG1RDYw=" - }, - "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": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" - }, - "is-function": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-function/-/is-function-1.0.2.tgz", - "integrity": "sha512-lw7DUp0aWXYg+CBCN+JKkcE0Q2RayZnSvnZBlwgxHBQhqt5pZNVy4Ri7H9GmmXkdu7LUthszM+Tor1u/2iBcpQ==" - }, - "is-generator-function": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.9.tgz", - "integrity": "sha512-ZJ34p1uvIfptHCN7sFTjGibB9/oBg17sHqzDLfuwhvmN/qLVvIQXRQ8licZQ35WJ8KuEQt/etnnzQFI9C9Ue/A==", - "dev": true - }, - "is-glob": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", - "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", - "requires": { - "is-extglob": "^2.1.1" - } - }, - "is-hex-prefixed": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-hex-prefixed/-/is-hex-prefixed-1.0.0.tgz", - "integrity": "sha1-fY035q135dEnFIkTxXPggtd39VQ=" - }, - "is-lower-case": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/is-lower-case/-/is-lower-case-1.1.3.tgz", - "integrity": "sha512-+5A1e/WJpLLXZEDlgz4G//WYSHyQBD32qa4Jd3Lw06qQlv3fJHnp3YIHjTQSGzHMgzmVKz2ZP3rBxTHkPw/lxA==", - "dev": true, - "requires": { - "lower-case": "^1.1.0" - } - }, - "is-natural-number": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/is-natural-number/-/is-natural-number-4.0.1.tgz", - "integrity": "sha1-q5124dtM7VHjXeDHLr7PCfc0zeg=", - "dev": true - }, - "is-negative-zero": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.1.tgz", - "integrity": "sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w==", - "dev": true - }, - "is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" - }, - "is-number-object": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.5.tgz", - "integrity": "sha512-RU0lI/n95pMoUKu9v1BZP5MBcZuNSVJkMkAG2dJqC4z2GlkGUNeH68SuHuBKBD/XFe+LHZ+f9BKkLET60Niedw==", - "dev": true - }, - "is-obj": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", - "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=", - "dev": true - }, - "is-object": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-object/-/is-object-1.0.1.tgz", - "integrity": "sha1-iVJojF7C/9awPsyF52ngKQMINHA=", - "dev": true - }, - "is-plain-obj": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", - "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=", - "dev": true - }, - "is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "requires": { - "isobject": "^3.0.1" - } - }, - "is-regex": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.3.tgz", - "integrity": "sha512-qSVXFz28HM7y+IWX6vLCsexdlvzT1PJNFSBuaQLQ5o0IEw8UDYW6/2+eCMVyIsbM8CNLX2a/QWmSpyxYEHY7CQ==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "has-symbols": "^1.0.2" - } - }, - "is-retry-allowed": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.2.0.tgz", - "integrity": "sha512-RUbUeKwvm3XG2VYamhJL1xFktgjvPzL0Hq8C+6yrWIswDy3BIXGqCxhxkc30N9jqK311gVU137K8Ei55/zVJRg==", - "dev": true - }, - "is-stream": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" - }, - "is-string": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.5.tgz", - "integrity": "sha512-buY6VNRjhQMiF1qWDouloZlQbRhDPCebwxSjxMjxgemYT46YMd2NR0/H+fBhEfWX4A/w9TBJ+ol+okqJKFE6vQ==", - "dev": true - }, - "is-symbol": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz", - "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==", - "dev": true, - "requires": { - "has-symbols": "^1.0.1" - } - }, - "is-typed-array": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.5.tgz", - "integrity": "sha512-S+GRDgJlR3PyEbsX/Fobd9cqpZBuvUS+8asRqYDMLCb2qMzt1oz5m5oxQCxOgUDxiWsOVNi4yaF+/uvdlHlYug==", - "dev": true, - "requires": { - "available-typed-arrays": "^1.0.2", - "call-bind": "^1.0.2", - "es-abstract": "^1.18.0-next.2", - "foreach": "^2.0.5", - "has-symbols": "^1.0.1" - } - }, - "is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" - }, - "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==", - "dev": true - }, - "is-upper-case": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/is-upper-case/-/is-upper-case-1.1.2.tgz", - "integrity": "sha512-GQYSJMgfeAmVwh9ixyk888l7OIhNAGKtY6QA+IrWlu9MDTCaXmeozOZ2S9Knj7bQwBO/H6J2kb+pbyTUiMNbsw==", - "dev": true, - "requires": { - "upper-case": "^1.1.0" - } - }, - "is-url": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/is-url/-/is-url-1.2.4.tgz", - "integrity": "sha512-ITvGim8FhRiYe4IQ5uHSkj7pVaPDrCTkNd3yq3cV7iZAcJdHTUMPMEHcqSOy9xZ9qFenQCvi+2wjH9a1nXqHww==", - "dev": true - }, - "is-windows": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", - "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==" - }, - "is-wsl": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", - "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=" - }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" - }, - "isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" - }, - "isomorphic-fetch": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz", - "integrity": "sha1-YRrhrPFPXoH3KVB0coGf6XM1WKk=", - "dev": true, - "requires": { - "node-fetch": "^1.0.1", - "whatwg-fetch": ">=0.10.0" - } - }, - "isomorphic-ws": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/isomorphic-ws/-/isomorphic-ws-4.0.1.tgz", - "integrity": "sha512-BhBvN2MBpWTaSHdWRb/bwdZJ1WaehQ2L1KngkCkfLUGF0mAWAT1sQUQacEmQ0jXkFw/czDXPNQSL5u2/Krsz1w==", - "requires": {} - }, - "isstream": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" - }, - "isurl": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isurl/-/isurl-1.0.0.tgz", - "integrity": "sha512-1P/yWsxPlDtn7QeRD+ULKQPaIaN6yF368GZ2vDfv0AL0NwpStafjWCDDdn0k8wgFMWpVAqG7oJhxHnlud42i9w==", - "dev": true, - "requires": { - "has-to-string-tag-x": "^1.2.0", - "is-object": "^1.0.1" - } - }, - "it-each": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/it-each/-/it-each-0.4.0.tgz", - "integrity": "sha512-fbOxSUiOByQnkgoFUEKPfzAuoUZ0mQRAXdWWsfI53gMJZ2oyhPcJBOCFx8yuMM36yP6OUUL3LgilYEqBiSACmQ==", - "requires": { - "dot-notes": "3.1.1" - } - }, - "iterable-ndjson": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/iterable-ndjson/-/iterable-ndjson-1.1.0.tgz", - "integrity": "sha512-OOp1Lb0o3k5MkXHx1YaIY5Z0ELosZfTnBaas9f8opJVcZGBIONA2zY/6CYE+LKkqrSDooIneZbrBGgOZnHPkrg==", - "requires": { - "string_decoder": "^1.2.0" - }, - "dependencies": { - "string_decoder": { - "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==", - "requires": { - "safe-buffer": "~5.2.0" - } - } - } - }, - "iterall": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/iterall/-/iterall-1.3.0.tgz", - "integrity": "sha512-QZ9qOMdF+QLHxy1QIpUHUU1D5pS2CG2P69LF6L6CPjPYA/XMOmKV3PZpawHoAjHNyB0swdVTRxdYT4tbBbxqwg==", - "optional": true, - "peer": true - }, - "jayson": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/jayson/-/jayson-3.7.0.tgz", - "integrity": "sha512-tfy39KJMrrXJ+mFcMpxwBvFDetS8LAID93+rycFglIQM4kl3uNR3W4lBLE/FFhsoUCEox5Dt2adVpDm/XtebbQ==", - "requires": { - "@types/connect": "^3.4.33", - "@types/node": "^12.12.54", - "@types/ws": "^7.4.4", - "commander": "^2.20.3", - "delay": "^5.0.0", - "es6-promisify": "^5.0.0", - "eyes": "^0.1.8", - "isomorphic-ws": "^4.0.1", - "json-stringify-safe": "^5.0.1", - "JSONStream": "^1.3.5", - "lodash": "^4.17.20", - "uuid": "^8.3.2", - "ws": "^7.4.5" - }, - "dependencies": { - "@types/node": { - "version": "12.20.55", - "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.55.tgz", - "integrity": "sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==" - }, - "uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==" - }, - "ws": { - "version": "7.5.9", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz", - "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==", - "requires": {} - } - } - }, - "js-base64": { - "version": "3.7.5", - "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-3.7.5.tgz", - "integrity": "sha512-3MEt5DTINKqfScXKfJFrRbxkrnk2AxPWGBL/ycjz4dK8iqiSJ06UxD8jh8xuh6p10TX4t2+7FsBYVxxQbMg+qA==" - }, - "js-sha256": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/js-sha256/-/js-sha256-0.9.0.tgz", - "integrity": "sha512-sga3MHh9sgQN2+pJ9VYZ+1LPwXOxuBJBA5nrR5/ofPfuiJBE2hnjsaN8se8JznOmGLN2p49Pe5U/ttafcs/apA==" - }, - "js-sha3": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.5.7.tgz", - "integrity": "sha1-DU/9gALVMzqrr0oj7tL2N0yfKOc=" - }, - "js-sha512": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/js-sha512/-/js-sha512-0.8.0.tgz", - "integrity": "sha512-PWsmefG6Jkodqt+ePTvBZCSMFgN7Clckjd0O7su3I0+BW2QWUTJNzjktHsztGLhncP2h8mcF9V9Y2Ha59pAViQ==" - }, - "js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" - }, - "js-yaml": { - "version": "3.13.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz", - "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==", - "dev": true, - "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - } - }, - "jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=" - }, - "jscrypto": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/jscrypto/-/jscrypto-1.0.3.tgz", - "integrity": "sha512-lryZl0flhodv4SZHOqyb1bx5sKcJxj0VBo0Kzb4QMAg3L021IC9uGpl0RCZa+9KJwlRGSK2C80ITcwbe19OKLQ==" - }, - "jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==" - }, - "json-bigint": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-bigint/-/json-bigint-1.0.0.tgz", - "integrity": "sha512-SiPv/8VpZuWbvLSMtTDU8hEfrZWg/mH/nV/b4o0CYbSxu1UIQPLdwKOCIyLQX+VIPO5vrLX3i8qtqFyhdPSUSQ==", - "requires": { - "bignumber.js": "^9.0.0" - }, - "dependencies": { - "bignumber.js": { - "version": "9.1.1", - "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.1.1.tgz", - "integrity": "sha512-pHm4LsMJ6lzgNGVfZHjMoO8sdoRhOzOH4MLmY65Jg70bpxCKu5iOHNJyfF6OyvYw7t8Fpf35RuzUyqnQsj8Vig==" - } - } - }, - "json-buffer": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", - "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=", - "dev": true - }, - "json-parse-better-errors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", - "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==" - }, - "json-pointer": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/json-pointer/-/json-pointer-0.6.2.tgz", - "integrity": "sha512-vLWcKbOaXlO+jvRy4qNd+TI1QUPZzfJj1tpJ3vAXDych5XJf93ftpUKe5pKCrzyIIwgBJcOcCVRUfqQP25afBw==", - "dev": true, - "requires": { - "foreach": "^2.0.4" - } - }, - "json-rpc-engine": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/json-rpc-engine/-/json-rpc-engine-5.4.0.tgz", - "integrity": "sha512-rAffKbPoNDjuRnXkecTjnsE3xLLrb00rEkdgalINhaYVYIxDwWtvYBr9UFbhTvPB1B2qUOLoFd/cV6f4Q7mh7g==", - "requires": { - "eth-rpc-errors": "^3.0.0", - "safe-event-emitter": "^1.0.1" - } - }, - "json-rpc-random-id": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-rpc-random-id/-/json-rpc-random-id-1.0.1.tgz", - "integrity": "sha1-uknZat7RRE27jaPSA3SKy7zeyMg=" - }, - "json-schema": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", - "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=" - }, - "json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" - }, - "json-schema-typed": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/json-schema-typed/-/json-schema-typed-7.0.3.tgz", - "integrity": "sha512-7DE8mpG+/fVw+dTpjbxnx47TaMnDfOI1jwft9g1VybltZCduyRQPJPvc+zzKY9WPHxhPWczyFuYa6I8Mw4iU5A==", - "dev": true, - "optional": true - }, - "json-stable-stringify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz", - "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=", - "requires": { - "jsonify": "~0.0.0" - } - }, - "json-stable-stringify-without-jsonify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", - "dev": true - }, - "json-stringify-safe": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" - }, - "json-text-sequence": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/json-text-sequence/-/json-text-sequence-0.1.1.tgz", - "integrity": "sha1-py8hfcSvxGKf/1/rME3BvVGi89I=", - "dev": true, - "requires": { - "delimit-stream": "0.1.0" - } - }, - "json5": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz", - "integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==", - "peer": true, - "requires": { - "minimist": "^1.2.5" - } - }, - "jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", - "requires": { - "graceful-fs": "^4.1.6" - } - }, - "jsonify": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", - "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=" - }, - "jsonparse": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", - "integrity": "sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==" - }, - "jsonschema": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/jsonschema/-/jsonschema-1.4.1.tgz", - "integrity": "sha512-S6cATIPVv1z0IlxdN+zUk5EPjkGCdnhN4wVSBlvoUO1tOLJootbo9CquNJmbIh4yikWHiUedhRYrNPn1arpEmQ==" - }, - "JSONStream": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz", - "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==", - "requires": { - "jsonparse": "^1.2.0", - "through": ">=2.2.7 <3" - } - }, - "jsprim": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", - "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", - "requires": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.2.3", - "verror": "1.10.0" - } - }, - "keccak": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/keccak/-/keccak-3.0.3.tgz", - "integrity": "sha512-JZrLIAJWuZxKbCilMpNz5Vj7Vtb4scDG3dMXLOsbzBmQGyjwE61BbW7bJkfKKCShXiQZt3T6sBgALRtmd+nZaQ==", - "requires": { - "node-addon-api": "^2.0.0", - "node-gyp-build": "^4.2.0", - "readable-stream": "^3.6.0" - }, - "dependencies": { - "readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - } - } - }, - "keccak256": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/keccak256/-/keccak256-1.0.6.tgz", - "integrity": "sha512-8GLiM01PkdJVGUhR1e6M/AvWnSqYS0HaERI+K/QtStGDGlSTx2B1zTqZk4Zlqu5TxHJNTxWAdP9Y+WI50OApUw==", - "requires": { - "bn.js": "^5.2.0", - "buffer": "^6.0.3", - "keccak": "^3.0.2" - }, - "dependencies": { - "bn.js": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", - "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==" - }, - "buffer": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", - "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", - "requires": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" - } - } - } - }, - "keyv": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz", - "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==", - "dev": true, - "requires": { - "json-buffer": "3.0.0" - } - }, - "kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==" - }, - "klaw": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/klaw/-/klaw-1.3.1.tgz", - "integrity": "sha1-QIhDO0azsbolnXh4XY6W9zugJDk=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.9" - } - }, - "level": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/level/-/level-6.0.1.tgz", - "integrity": "sha512-psRSqJZCsC/irNhfHzrVZbmPYXDcEYhA5TVNwr+V92jF44rbf86hqGp8fiT702FyiArScYIlPSBTDUASCVNSpw==", - "dev": true, - "optional": true, - "requires": { - "level-js": "^5.0.0", - "level-packager": "^5.1.0", - "leveldown": "^5.4.0" - } - }, - "level-codec": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/level-codec/-/level-codec-7.0.1.tgz", - "integrity": "sha512-Ua/R9B9r3RasXdRmOtd+t9TCOEIIlts+TN/7XTT2unhDaL6sJn83S3rUyljbr6lVtw49N3/yA0HHjpV6Kzb2aQ==" - }, - "level-concat-iterator": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/level-concat-iterator/-/level-concat-iterator-3.1.0.tgz", - "integrity": "sha512-BWRCMHBxbIqPxJ8vHOvKUsaO0v1sLYZtjN3K2iZJsRBYtp+ONsY6Jfi6hy9K3+zolgQRryhIn2NRZjZnWJ9NmQ==", - "dev": true, - "optional": true, - "requires": { - "catering": "^2.1.0" - } - }, - "level-errors": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/level-errors/-/level-errors-1.0.5.tgz", - "integrity": "sha512-/cLUpQduF6bNrWuAC4pwtUKA5t669pCsCi2XbmojG2tFeOr9j6ShtdDCtFFQO1DRt+EVZhx9gPzP9G2bUaG4ig==", - "requires": { - "errno": "~0.1.1" - } - }, - "level-iterator-stream": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/level-iterator-stream/-/level-iterator-stream-1.3.1.tgz", - "integrity": "sha1-5Dt4sagUPm+pek9IXrjqUwNS8u0=", - "requires": { - "inherits": "^2.0.1", - "level-errors": "^1.0.3", - "readable-stream": "^1.0.33", - "xtend": "^4.0.0" - }, - "dependencies": { - "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" - }, - "readable-stream": { - "version": "1.1.14", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", - "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" - } - }, - "string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" - } - } - }, - "level-js": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/level-js/-/level-js-5.0.2.tgz", - "integrity": "sha512-SnBIDo2pdO5VXh02ZmtAyPP6/+6YTJg2ibLtl9C34pWvmtMEmRTWpra+qO/hifkUtBTOtfx6S9vLDjBsBK4gRg==", - "dev": true, - "optional": true, - "requires": { - "abstract-leveldown": "~6.2.3", - "buffer": "^5.5.0", - "inherits": "^2.0.3", - "ltgt": "^2.1.2" - }, - "dependencies": { - "abstract-leveldown": { - "version": "6.2.3", - "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-6.2.3.tgz", - "integrity": "sha512-BsLm5vFMRUrrLeCcRc+G0t2qOaTzpoJQLOubq2XM72eNpjF5UdU5o/5NvlNhx95XHcAvcl8OMXr4mlg/fRgUXQ==", - "dev": true, - "optional": true, - "requires": { - "buffer": "^5.5.0", - "immediate": "^3.2.3", - "level-concat-iterator": "~2.0.0", - "level-supports": "~1.0.0", - "xtend": "~4.0.0" - } - }, - "level-concat-iterator": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/level-concat-iterator/-/level-concat-iterator-2.0.1.tgz", - "integrity": "sha512-OTKKOqeav2QWcERMJR7IS9CUo1sHnke2C0gkSmcR7QuEtFNLLzHQAvnMw8ykvEcv0Qtkg0p7FOwP1v9e5Smdcw==", - "dev": true, - "optional": true - }, - "level-supports": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/level-supports/-/level-supports-1.0.1.tgz", - "integrity": "sha512-rXM7GYnW8gsl1vedTJIbzOrRv85c/2uCMpiiCzO2fndd06U/kUXEEU9evYn4zFggBOg36IsBW8LzqIpETwwQzg==", - "dev": true, - "optional": true, - "requires": { - "xtend": "^4.0.2" - } - } - } - }, - "level-packager": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/level-packager/-/level-packager-5.1.1.tgz", - "integrity": "sha512-HMwMaQPlTC1IlcwT3+swhqf/NUO+ZhXVz6TY1zZIIZlIR0YSn8GtAAWmIvKjNY16ZkEg/JcpAuQskxsXqC0yOQ==", - "dev": true, - "optional": true, - "requires": { - "encoding-down": "^6.3.0", - "levelup": "^4.3.2" - }, - "dependencies": { - "abstract-leveldown": { - "version": "6.2.3", - "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-6.2.3.tgz", - "integrity": "sha512-BsLm5vFMRUrrLeCcRc+G0t2qOaTzpoJQLOubq2XM72eNpjF5UdU5o/5NvlNhx95XHcAvcl8OMXr4mlg/fRgUXQ==", - "dev": true, - "optional": true, - "requires": { - "buffer": "^5.5.0", - "immediate": "^3.2.3", - "level-concat-iterator": "~2.0.0", - "level-supports": "~1.0.0", - "xtend": "~4.0.0" - } - }, - "deferred-leveldown": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/deferred-leveldown/-/deferred-leveldown-5.3.0.tgz", - "integrity": "sha512-a59VOT+oDy7vtAbLRCZwWgxu2BaCfd5Hk7wxJd48ei7I+nsg8Orlb9CLG0PMZienk9BSUKgeAqkO2+Lw+1+Ukw==", - "dev": true, - "optional": true, - "requires": { - "abstract-leveldown": "~6.2.1", - "inherits": "^2.0.3" - } - }, - "level-concat-iterator": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/level-concat-iterator/-/level-concat-iterator-2.0.1.tgz", - "integrity": "sha512-OTKKOqeav2QWcERMJR7IS9CUo1sHnke2C0gkSmcR7QuEtFNLLzHQAvnMw8ykvEcv0Qtkg0p7FOwP1v9e5Smdcw==", - "dev": true, - "optional": true - }, - "level-errors": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/level-errors/-/level-errors-2.0.1.tgz", - "integrity": "sha512-UVprBJXite4gPS+3VznfgDSU8PTRuVX0NXwoWW50KLxd2yw4Y1t2JUR5In1itQnudZqRMT9DlAM3Q//9NCjCFw==", - "dev": true, - "optional": true, - "requires": { - "errno": "~0.1.1" - } - }, - "level-iterator-stream": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/level-iterator-stream/-/level-iterator-stream-4.0.2.tgz", - "integrity": "sha512-ZSthfEqzGSOMWoUGhTXdX9jv26d32XJuHz/5YnuHZzH6wldfWMOVwI9TBtKcya4BKTyTt3XVA0A3cF3q5CY30Q==", - "dev": true, - "optional": true, - "requires": { - "inherits": "^2.0.4", - "readable-stream": "^3.4.0", - "xtend": "^4.0.2" - } - }, - "level-supports": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/level-supports/-/level-supports-1.0.1.tgz", - "integrity": "sha512-rXM7GYnW8gsl1vedTJIbzOrRv85c/2uCMpiiCzO2fndd06U/kUXEEU9evYn4zFggBOg36IsBW8LzqIpETwwQzg==", - "dev": true, - "optional": true, - "requires": { - "xtend": "^4.0.2" - } - }, - "levelup": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/levelup/-/levelup-4.4.0.tgz", - "integrity": "sha512-94++VFO3qN95cM/d6eBXvd894oJE0w3cInq9USsyQzzoJxmiYzPAocNcuGCPGGjoXqDVJcr3C1jzt1TSjyaiLQ==", - "dev": true, - "optional": true, - "requires": { - "deferred-leveldown": "~5.3.0", - "level-errors": "~2.0.0", - "level-iterator-stream": "~4.0.0", - "level-supports": "~1.0.0", - "xtend": "~4.0.0" - } - }, - "readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "dev": true, - "optional": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - } - } - }, - "level-supports": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/level-supports/-/level-supports-2.1.0.tgz", - "integrity": "sha512-E486g1NCjW5cF78KGPrMDRBYzPuueMZ6VBXHT6gC7A8UYWGiM14fGgp+s/L1oFfDWSPV/+SFkYCmZ0SiESkRKA==", - "dev": true, - "optional": true - }, - "level-write-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/level-write-stream/-/level-write-stream-1.0.0.tgz", - "integrity": "sha512-bBNKOEOMl8msO+uIM9YX/gUO6ckokZ/4pCwTm/lwvs46x6Xs8Zy0sn3Vh37eDqse4mhy4fOMIb/JsSM2nyQFtw==", - "dev": true, - "optional": true, - "requires": { - "end-stream": "~0.1.0" - } - }, - "level-ws": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/level-ws/-/level-ws-0.0.0.tgz", - "integrity": "sha1-Ny5RIXeSSgBCSwtDrvK7QkltIos=", - "requires": { - "readable-stream": "~1.0.15", - "xtend": "~2.1.1" - }, - "dependencies": { - "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" - }, - "object-keys": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-0.4.0.tgz", - "integrity": "sha1-KKaq50KN0sOpLz2V8hM13SBOAzY=" - }, - "readable-stream": { - "version": "1.0.34", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", - "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" - } - }, - "string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" - }, - "xtend": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-2.1.2.tgz", - "integrity": "sha1-bv7MKk2tjmlixJAbM3znuoe10os=", - "requires": { - "object-keys": "~0.4.0" - } - } - } - }, - "leveldown": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/leveldown/-/leveldown-5.6.0.tgz", - "integrity": "sha512-iB8O/7Db9lPaITU1aA2txU/cBEXAt4vWwKQRrrWuS6XDgbP4QZGj9BL2aNbwb002atoQ/lIotJkfyzz+ygQnUQ==", - "dev": true, - "optional": true, - "requires": { - "abstract-leveldown": "~6.2.1", - "napi-macros": "~2.0.0", - "node-gyp-build": "~4.1.0" - }, - "dependencies": { - "abstract-leveldown": { - "version": "6.2.3", - "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-6.2.3.tgz", - "integrity": "sha512-BsLm5vFMRUrrLeCcRc+G0t2qOaTzpoJQLOubq2XM72eNpjF5UdU5o/5NvlNhx95XHcAvcl8OMXr4mlg/fRgUXQ==", - "dev": true, - "optional": true, - "requires": { - "buffer": "^5.5.0", - "immediate": "^3.2.3", - "level-concat-iterator": "~2.0.0", - "level-supports": "~1.0.0", - "xtend": "~4.0.0" - } - }, - "level-concat-iterator": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/level-concat-iterator/-/level-concat-iterator-2.0.1.tgz", - "integrity": "sha512-OTKKOqeav2QWcERMJR7IS9CUo1sHnke2C0gkSmcR7QuEtFNLLzHQAvnMw8ykvEcv0Qtkg0p7FOwP1v9e5Smdcw==", - "dev": true, - "optional": true - }, - "level-supports": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/level-supports/-/level-supports-1.0.1.tgz", - "integrity": "sha512-rXM7GYnW8gsl1vedTJIbzOrRv85c/2uCMpiiCzO2fndd06U/kUXEEU9evYn4zFggBOg36IsBW8LzqIpETwwQzg==", - "dev": true, - "optional": true, - "requires": { - "xtend": "^4.0.2" - } - }, - "node-gyp-build": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.1.1.tgz", - "integrity": "sha512-dSq1xmcPDKPZ2EED2S6zw/b9NKsqzXRE6dVr8TVQnI3FJOTteUMuqF3Qqs6LZg+mLGYJWqQzMbIjMtJqTv87nQ==", - "dev": true, - "optional": true - } - } - }, - "levelup": { - "version": "1.3.9", - "resolved": "https://registry.npmjs.org/levelup/-/levelup-1.3.9.tgz", - "integrity": "sha512-VVGHfKIlmw8w1XqpGOAGwq6sZm2WwWLmlDcULkKWQXEA5EopA8OBNJ2Ck2v6bdk8HeEZSbCSEgzXadyQFm76sQ==", - "requires": { - "deferred-leveldown": "~1.2.1", - "level-codec": "~7.0.0", - "level-errors": "~1.0.3", - "level-iterator-stream": "~1.3.0", - "prr": "~1.0.1", - "semver": "~5.4.1", - "xtend": "~4.0.0" - }, - "dependencies": { - "semver": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.4.1.tgz", - "integrity": "sha512-WfG/X9+oATh81XtllIo/I8gOiY9EXRdv1cQdyykeXK17YcUW3EXUAi2To4pcH6nZtJPr7ZOpM5OMyWJZm+8Rsg==" - } - } - }, - "levn": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", - "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", - "dev": true, - "requires": { - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2" - } - }, - "libsodium": { - "version": "0.7.11", - "resolved": "https://registry.npmjs.org/libsodium/-/libsodium-0.7.11.tgz", - "integrity": "sha512-WPfJ7sS53I2s4iM58QxY3Inb83/6mjlYgcmZs7DJsvDlnmVUwNinBCi5vBT43P6bHRy01O4zsMU2CoVR6xJ40A==" - }, - "libsodium-wrappers": { - "version": "0.7.11", - "resolved": "https://registry.npmjs.org/libsodium-wrappers/-/libsodium-wrappers-0.7.11.tgz", - "integrity": "sha512-SrcLtXj7BM19vUKtQuyQKiQCRJPgbpauzl3s0rSwD+60wtHqSUuqcoawlMDheCJga85nKOQwxNYQxf/CKAvs6Q==", - "requires": { - "libsodium": "^0.7.11" - } - }, - "link-module-alias": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/link-module-alias/-/link-module-alias-1.2.0.tgz", - "integrity": "sha512-ahPjXepbSVKbahTB6LxR//VHm8HPfI+QQygCH+E82spBY4HR5VPJTvlhKBc9F7muVxnS6C1rRfoPOXAbWO/fyw==", - "requires": { - "chalk": "^2.4.1" - } - }, - "loader-utils": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", - "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", - "requires": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^1.0.1" - }, - "dependencies": { - "json5": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", - "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", - "requires": { - "minimist": "^1.2.0" - } - } - } - }, - "locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", - "dev": true, - "requires": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - } - }, - "lockfile": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/lockfile/-/lockfile-1.0.4.tgz", - "integrity": "sha512-cvbTwETRfsFh4nHsL1eGWapU1XFi5Ot9E85sWAwia7Y7EgB7vfqcZhTKZ+l7hCGxSPoushMv5GKhT5PdLv03WA==", - "dev": true, - "requires": { - "signal-exit": "^3.0.2" - } - }, - "lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" - }, - "lodash-es": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz", - "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==", - "dev": true - }, - "lodash.camelcase": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", - "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY=" - }, - "lodash.debounce": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", - "integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168=" - }, - "lodash.flatmap": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.flatmap/-/lodash.flatmap-4.5.0.tgz", - "integrity": "sha1-74y/QI9uSCaGYzRTBcaswLd4cC4=" - }, - "lodash.sortby": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", - "integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=", - "dev": true, - "optional": true - }, - "lodash.values": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/lodash.values/-/lodash.values-4.3.0.tgz", - "integrity": "sha512-r0RwvdCv8id9TUblb/O7rYPwVy6lerCbcawrfdo9iC/1t1wsNMJknO79WNBgwkH0hIeJ08jmvvESbFpNb4jH0Q==" - }, - "log-symbols": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.0.0.tgz", - "integrity": "sha512-FN8JBzLx6CzeMrB0tg6pqlGU1wCrXW+ZXGH481kfsBqer0hToTIiHdjH4Mq8xJUbvATujKCvaREGWpGUionraA==", - "requires": { - "chalk": "^4.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "loglevel": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.8.1.tgz", - "integrity": "sha512-tCRIJM51SHjAayKwC+QAg8hT8vg6z7GSgLJKGvzuPb1Wc+hLzqtuVLxp6/HzSPOozuK+8ErAhy7U/sVzw8Dgfg==", - "dev": true, - "optional": true - }, - "long": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz", - "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==" - }, - "loose-envify": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", - "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", - "requires": { - "js-tokens": "^3.0.0 || ^4.0.0" - } - }, - "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, - "requires": { - "get-func-name": "^2.0.0" - } - }, - "lower-case": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz", - "integrity": "sha512-2Fgx1Ycm599x+WGpIYwJOvsjmXFzTSc34IwDWALRA/8AopUKAVPwfJ+h5+f85BCp0PWmmJcWzEpxOpoXycMpdA==", - "dev": true - }, - "lower-case-first": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/lower-case-first/-/lower-case-first-1.0.2.tgz", - "integrity": "sha512-UuxaYakO7XeONbKrZf5FEgkantPf5DUqDayzP5VXZrtRPdH86s4kN47I8B3TW10S4QKiE3ziHNf3kRN//okHjA==", - "dev": true, - "requires": { - "lower-case": "^1.1.2" - } - }, - "lowercase-keys": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", - "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", - "dev": true - }, - "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==", - "dev": true, - "requires": { - "yallist": "^4.0.0" - }, - "dependencies": { - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - } - } - }, - "ltgt": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ltgt/-/ltgt-2.2.1.tgz", - "integrity": "sha1-81ypHEk/e3PaDgdJUwTxezH4fuU=" - }, - "make-dir": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", - "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", - "dev": true, - "requires": { - "pify": "^3.0.0" - }, - "dependencies": { - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", - "dev": true - } - } - }, - "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 - }, - "map-cache": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", - "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=" - }, - "map-obj": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.3.0.tgz", - "integrity": "sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==" - }, - "map-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", - "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", - "requires": { - "object-visit": "^1.0.0" - } - }, - "md5.js": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", - "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", - "requires": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "media-typer": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", - "dev": true - }, - "memdown": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/memdown/-/memdown-1.4.1.tgz", - "integrity": "sha1-tOThkhdGZP+65BNhqlAPMRnv4hU=", - "requires": { - "abstract-leveldown": "~2.7.1", - "functional-red-black-tree": "^1.0.1", - "immediate": "^3.2.3", - "inherits": "~2.0.1", - "ltgt": "~2.2.0", - "safe-buffer": "~5.1.1" - }, - "dependencies": { - "abstract-leveldown": { - "version": "2.7.2", - "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-2.7.2.tgz", - "integrity": "sha512-+OVvxH2rHVEhWLdbudP6p0+dNMXu8JA1CbhP19T8paTYAcX7oJ4OVjT+ZUVpv7mITxXHqDMej+GdqXBmXkw09w==", - "requires": { - "xtend": "~4.0.0" - } - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - } - } - }, - "memory-fs": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz", - "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=", - "requires": { - "errno": "^0.1.3", - "readable-stream": "^2.0.1" - } - }, - "memorystream": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/memorystream/-/memorystream-0.3.1.tgz", - "integrity": "sha1-htcJCzDORV1j+64S3aUaR93K+bI=", - "dev": true - }, - "merge-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=", - "dev": true - }, - "merkle-patricia-tree": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/merkle-patricia-tree/-/merkle-patricia-tree-2.3.2.tgz", - "integrity": "sha512-81PW5m8oz/pz3GvsAwbauj7Y00rqm81Tzad77tHBwU7pIAtN+TJnMSOJhxBKflSVYhptMMb9RskhqHqrSm1V+g==", - "requires": { - "async": "^1.4.2", - "ethereumjs-util": "^5.0.0", - "level-ws": "0.0.0", - "levelup": "^1.2.1", - "memdown": "^1.0.0", - "readable-stream": "^2.0.0", - "rlp": "^2.0.0", - "semaphore": ">=1.0.1" - }, - "dependencies": { - "async": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", - "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=" - }, - "ethereumjs-util": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", - "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", - "requires": { - "bn.js": "^4.11.0", - "create-hash": "^1.1.2", - "elliptic": "^6.5.2", - "ethereum-cryptography": "^0.1.3", - "ethjs-util": "^0.1.3", - "rlp": "^2.0.0", - "safe-buffer": "^5.1.1" - } - } - } - }, - "methods": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=", - "dev": true - }, - "micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - }, - "dependencies": { - "braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "requires": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "requires": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" - }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=" - }, - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", - "requires": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - } - } - } - }, - "miller-rabin": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", - "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", - "requires": { - "bn.js": "^4.0.0", - "brorand": "^1.0.1" - } - }, - "mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", - "dev": true - }, - "mime-db": { - "version": "1.44.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.44.0.tgz", - "integrity": "sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg==" - }, - "mime-types": { - "version": "2.1.27", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.27.tgz", - "integrity": "sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w==", - "requires": { - "mime-db": "1.44.0" - } - }, - "mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "dev": true - }, - "mimic-response": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", - "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==" - }, - "min-document": { - "version": "2.19.0", - "resolved": "https://registry.npmjs.org/min-document/-/min-document-2.19.0.tgz", - "integrity": "sha1-e9KC4/WELtKVu3SM3Z8f+iyCRoU=", - "requires": { - "dom-walk": "^0.1.0" - } - }, - "minimalistic-assert": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", - "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==" - }, - "minimalistic-crypto-utils": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", - "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=" - }, - "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "minimist": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", - "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==" - }, - "minipass": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz", - "integrity": "sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==", - "dev": true, - "requires": { - "safe-buffer": "^5.1.2", - "yallist": "^3.0.0" - } - }, - "minizlib": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.3.3.tgz", - "integrity": "sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==", - "dev": true, - "requires": { - "minipass": "^2.9.0" - } - }, - "mississippi": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-3.0.0.tgz", - "integrity": "sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA==", - "requires": { - "concat-stream": "^1.5.0", - "duplexify": "^3.4.2", - "end-of-stream": "^1.1.0", - "flush-write-stream": "^1.0.0", - "from2": "^2.1.0", - "parallel-transform": "^1.1.0", - "pump": "^3.0.0", - "pumpify": "^1.3.3", - "stream-each": "^1.1.0", - "through2": "^2.0.0" - }, - "dependencies": { - "through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", - "requires": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" - } - } - } - }, - "mixin-deep": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", - "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", - "requires": { - "for-in": "^1.0.2", - "is-extendable": "^1.0.1" - } - }, - "mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==" - }, - "mkdirp-promise": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/mkdirp-promise/-/mkdirp-promise-5.0.1.tgz", - "integrity": "sha1-6bj2jlUsaKnBcTuEiD96HdA5uKE=", - "dev": true, - "requires": { - "mkdirp": "*" - } - }, - "mocha": { - "version": "8.4.0", - "resolved": "https://registry.npmjs.org/mocha/-/mocha-8.4.0.tgz", - "integrity": "sha512-hJaO0mwDXmZS4ghXsvPVriOhsxQ7ofcpQdm8dE+jISUOKopitvnXFQmpRR7jd2K6VBG6E26gU3IAbXXGIbu4sQ==", - "dev": true, - "requires": { - "@ungap/promise-all-settled": "1.1.2", - "ansi-colors": "4.1.1", - "browser-stdout": "1.3.1", - "chokidar": "3.5.1", - "debug": "4.3.1", - "diff": "5.0.0", - "escape-string-regexp": "4.0.0", - "find-up": "5.0.0", - "glob": "7.1.6", - "growl": "1.10.5", - "he": "1.2.0", - "js-yaml": "4.0.0", - "log-symbols": "4.0.0", - "minimatch": "3.0.4", - "ms": "2.1.3", - "nanoid": "3.1.20", - "serialize-javascript": "5.0.1", - "strip-json-comments": "3.1.1", - "supports-color": "8.1.1", - "which": "2.0.2", - "wide-align": "1.1.3", - "workerpool": "6.1.0", - "yargs": "16.2.0", - "yargs-parser": "20.2.4", - "yargs-unparser": "2.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true - }, - "cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", - "dev": true, - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", - "dev": true, - "requires": { - "ms": "2.1.2" - }, - "dependencies": { - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - } - } - }, - "diff": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz", - "integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==", - "dev": true - }, - "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==", - "dev": true - }, - "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==", - "dev": true - }, - "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==", - "dev": true, - "requires": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - } - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "is-fullwidth-code-point": { - "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==", - "dev": true - }, - "js-yaml": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.0.0.tgz", - "integrity": "sha512-pqon0s+4ScYUvX30wxQi3PogGFAlUyH0awepWvwkj4jD4v+ova3RiYw8bmA6x2rDrEaj8i/oWKoRxpVNW+Re8Q==", - "dev": true, - "requires": { - "argparse": "^2.0.1" - } - }, - "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==", - "dev": true, - "requires": { - "p-locate": "^5.0.0" - } - }, - "ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "dev": true - }, - "p-limit": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.0.2.tgz", - "integrity": "sha512-iwqZSOoWIW+Ew4kAGUlN16J4M7OB3ysMLSZtnhmqx7njIHFPlxWBX8xo3lVTyFVq6mI/lL9qt2IsN1sHwaxJkg==", - "dev": true, - "requires": { - "p-try": "^2.0.0" - } - }, - "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==", - "dev": true, - "requires": { - "p-limit": "^3.0.2" - } - }, - "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 - }, - "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==", - "dev": true - }, - "serialize-javascript": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-5.0.1.tgz", - "integrity": "sha512-SaaNal9imEO737H2c05Og0/8LUXG7EnsZyMa8MzkmuHoELfT6txuj0cMqRj6zfPKnmQ1yasR4PCJc8x+M4JSPA==", - "dev": true, - "requires": { - "randombytes": "^2.1.0" - } - }, - "string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - } - }, - "strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.1" - } - }, - "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, - "requires": { - "has-flag": "^4.0.0" - } - }, - "workerpool": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.1.0.tgz", - "integrity": "sha512-toV7q9rWNYha963Pl/qyeZ6wG+3nnsyvolaNUS8+R5Wtw6qJPTxIlOP1ZSvcGhEJw+l3HMMmtiNo9Gl61G4GVg==", - "dev": true - }, - "wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - } - }, - "y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "dev": true - }, - "yargs": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", - "dev": true, - "requires": { - "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" - } - }, - "yargs-parser": { - "version": "20.2.4", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz", - "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==", - "dev": true - } - } - }, - "mock-fs": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/mock-fs/-/mock-fs-4.12.0.tgz", - "integrity": "sha512-/P/HtrlvBxY4o/PzXY9cCNBrdylDNxg7gnrv2sMNxj+UJ2m8jSpl0/A6fuJeNAWr99ZvGWH8XCbE0vmnM5KupQ==", - "dev": true - }, - "move-concurrently": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz", - "integrity": "sha1-viwAX9oy4LKa8fBdfEszIUxwH5I=", - "requires": { - "aproba": "^1.1.1", - "copy-concurrently": "^1.0.0", - "fs-write-stream-atomic": "^1.0.8", - "mkdirp": "^0.5.1", - "rimraf": "^2.5.4", - "run-queue": "^1.0.3" - }, - "dependencies": { - "mkdirp": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", - "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", - "requires": { - "minimist": "^1.2.6" - } - } - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "multibase": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/multibase/-/multibase-0.6.1.tgz", - "integrity": "sha512-pFfAwyTjbbQgNc3G7D48JkJxWtoJoBMaR4xQUOuB8RnCgRqaYmWNFeJTTvrJ2w51bjLq2zTby6Rqj9TQ9elSUw==", - "requires": { - "base-x": "^3.0.8", - "buffer": "^5.5.0" - } - }, - "multicodec": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/multicodec/-/multicodec-0.5.7.tgz", - "integrity": "sha512-PscoRxm3f+88fAtELwUnZxGDkduE2HD9Q6GHUOywQLjOGT/HAdhjLDYNZ1e7VR0s0TP0EwZ16LNUTFpoBGivOA==", - "dev": true, - "requires": { - "varint": "^5.0.0" - } - }, - "multiformats": { - "version": "9.6.4", - "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-9.6.4.tgz", - "integrity": "sha512-fCCB6XMrr6CqJiHNjfFNGT0v//dxOBMrOMqUIzpPc/mmITweLEyhvMpY9bF+jZ9z3vaMAau5E8B68DW77QMXkg==" - }, - "multihashes": { - "version": "0.4.21", - "resolved": "https://registry.npmjs.org/multihashes/-/multihashes-0.4.21.tgz", - "integrity": "sha512-uVSvmeCWf36pU2nB4/1kzYZjsXD9vofZKpgudqkceYY5g2aZZXJ5r9lxuzoRLl1OAp28XljXsEJ/X/85ZsKmKw==", - "requires": { - "buffer": "^5.5.0", - "multibase": "^0.7.0", - "varint": "^5.0.0" - }, - "dependencies": { - "multibase": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/multibase/-/multibase-0.7.0.tgz", - "integrity": "sha512-TW8q03O0f6PNFTQDvh3xxH03c8CjGaaYrjkl9UQPG6rz53TQzzxJVCIWVjzcbN/Q5Y53Zd0IBQBMVktVgNx4Fg==", - "requires": { - "base-x": "^3.0.8", - "buffer": "^5.5.0" - } - } - } - }, - "mustache": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/mustache/-/mustache-4.2.0.tgz", - "integrity": "sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ==" - }, - "mute-stream": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", - "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=", - "dev": true - }, - "nan": { - "version": "2.14.2", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.2.tgz", - "integrity": "sha512-M2ufzIiINKCuDfBSAUr1vWQ+vuVcA9kqx8JJUsbQi6yf1uGRyb7HfpdfUr5qLXf3B/t8dPvcjhKMmlfnP47EzQ==" - }, - "nano-json-stream-parser": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/nano-json-stream-parser/-/nano-json-stream-parser-0.1.2.tgz", - "integrity": "sha1-DMj20OK2IrR5xA1JnEbWS3Vcb18=", - "dev": true - }, - "nanoid": { - "version": "3.1.20", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.20.tgz", - "integrity": "sha512-a1cQNyczgKbLX9jwbS/+d7W8fX/RfgYR7lVWwWOGIPNgK2m0MWvrGF6/m4kk6U3QcFMnZf3RIhL0v2Jgh/0Uxw==" - }, - "nanomatch": { - "version": "1.2.13", - "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", - "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "fragment-cache": "^0.2.1", - "is-windows": "^1.0.2", - "kind-of": "^6.0.2", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - } - }, - "napi-macros": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/napi-macros/-/napi-macros-2.0.0.tgz", - "integrity": "sha512-A0xLykHtARfueITVDernsAWdtIMbOJgKgcluwENp3AlsKN/PloyO10HtmoqnFAQAcxPkgZN7wdfPfEd0zNGxbg==", - "dev": true, - "optional": true - }, - "natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", - "dev": true - }, - "near-api-js": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/near-api-js/-/near-api-js-1.1.0.tgz", - "integrity": "sha512-qYKv1mYsaDZc2uYndhS+ttDhR9+60qFc+ZjD6lWsAxr3ZskMjRwPffDGQZYhC7BRDQMe1HEbk6d5mf+TVm0Lqg==", - "requires": { - "bn.js": "5.2.1", - "borsh": "^0.7.0", - "bs58": "^4.0.0", - "depd": "^2.0.0", - "error-polyfill": "^0.1.3", - "http-errors": "^1.7.2", - "js-sha256": "^0.9.0", - "mustache": "^4.0.0", - "node-fetch": "^2.6.1", - "text-encoding-utf-8": "^1.0.2", - "tweetnacl": "^1.0.1" - }, - "dependencies": { - "bn.js": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", - "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==" - }, - "depd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", - "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==" - }, - "node-fetch": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.9.tgz", - "integrity": "sha512-DJm/CJkZkRjKKj4Zi4BsKVZh3ValV5IR5s7LVZnW+6YMh0W1BfNA8XSs6DLMGYlId5F3KnA70uu2qepcR08Qqg==", - "requires": { - "whatwg-url": "^5.0.0" - } - }, - "tweetnacl": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.3.tgz", - "integrity": "sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==" - } - } - }, - "negotiator": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", - "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==", - "dev": true - }, - "neo-async": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", - "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==" - }, - "next-tick": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz", - "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw=" - }, - "nice-try": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", - "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==" - }, - "no-case": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/no-case/-/no-case-2.3.2.tgz", - "integrity": "sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ==", - "dev": true, - "requires": { - "lower-case": "^1.1.1" - } - }, - "node-abort-controller": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/node-abort-controller/-/node-abort-controller-3.1.1.tgz", - "integrity": "sha512-AGK2yQKIjRuqnc6VkX2Xj5d+QW8xZ87pa1UK6yA6ouUyuxfHuMP6umE5QK7UmTeOAymo+Zx1Fxiuw9rVx8taHQ==", - "dev": true, - "optional": true - }, - "node-addon-api": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-2.0.2.tgz", - "integrity": "sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA==" - }, - "node-fetch": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-1.7.3.tgz", - "integrity": "sha512-NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ==", - "requires": { - "encoding": "^0.1.11", - "is-stream": "^1.0.1" - } - }, - "node-gyp-build": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.6.0.tgz", - "integrity": "sha512-NTZVKn9IylLwUzaKjkas1e4u2DLNcV4rdYagA4PWdPwW87Bi7z+BznyKSRwS/761tV/lzCGXplWsiaMjLqP2zQ==" - }, - "node-interval-tree": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/node-interval-tree/-/node-interval-tree-1.3.3.tgz", - "integrity": "sha512-K9vk96HdTK5fEipJwxSvIIqwTqr4e3HRJeJrNxBSeVMNSC/JWARRaX7etOLOuTmrRMeOI/K5TCJu3aWIwZiNTw==", - "dev": true, - "requires": { - "shallowequal": "^1.0.2" - } - }, - "node-libs-browser": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.1.tgz", - "integrity": "sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q==", - "requires": { - "assert": "^1.1.1", - "browserify-zlib": "^0.2.0", - "buffer": "^4.3.0", - "console-browserify": "^1.1.0", - "constants-browserify": "^1.0.0", - "crypto-browserify": "^3.11.0", - "domain-browser": "^1.1.1", - "events": "^3.0.0", - "https-browserify": "^1.0.0", - "os-browserify": "^0.3.0", - "path-browserify": "0.0.1", - "process": "^0.11.10", - "punycode": "^1.2.4", - "querystring-es3": "^0.2.0", - "readable-stream": "^2.3.3", - "stream-browserify": "^2.0.1", - "stream-http": "^2.7.2", - "string_decoder": "^1.0.0", - "timers-browserify": "^2.0.4", - "tty-browserify": "0.0.0", - "url": "^0.11.0", - "util": "^0.11.0", - "vm-browserify": "^1.0.1" - }, - "dependencies": { - "buffer": { - "version": "4.9.2", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz", - "integrity": "sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==", - "requires": { - "base64-js": "^1.0.2", - "ieee754": "^1.1.4", - "isarray": "^1.0.0" - } - }, - "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" - }, - "process": { - "version": "0.11.10", - "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", - "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=" - }, - "punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=" - }, - "stream-browserify": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz", - "integrity": "sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==", - "requires": { - "inherits": "~2.0.1", - "readable-stream": "^2.0.2" - } - }, - "stream-http": { - "version": "2.8.3", - "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz", - "integrity": "sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==", - "requires": { - "builtin-status-codes": "^3.0.0", - "inherits": "^2.0.1", - "readable-stream": "^2.3.6", - "to-arraybuffer": "^1.0.0", - "xtend": "^4.0.0" - } - }, - "util": { - "version": "0.11.1", - "resolved": "https://registry.npmjs.org/util/-/util-0.11.1.tgz", - "integrity": "sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ==", - "requires": { - "inherits": "2.0.3" - } - } - } - }, - "node-releases": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.1.tgz", - "integrity": "sha512-CqyzN6z7Q6aMeF/ktcMVTzhAHCEpf8SOarwpzpf8pNBY2k5/oM34UHldUwp8VKI7uxct2HxSRdJjBaZeESzcxA==" - }, - "nofilter": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/nofilter/-/nofilter-1.0.4.tgz", - "integrity": "sha512-N8lidFp+fCz+TD51+haYdbDGrcBWwuHX40F5+z0qkUjMJ5Tp+rdSuAkMJ9N9eoolDlEVTf6u5icM+cNKkKW2mA==", - "dev": true - }, - "noms": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/noms/-/noms-0.0.0.tgz", - "integrity": "sha512-lNDU9VJaOPxUmXcLb+HQFeUgQQPtMI24Gt6hgfuMHRJgMRHMF/qZ4HJD3GDru4sSw9IQl2jPjAYnQrdIeLbwow==", - "requires": { - "inherits": "^2.0.1", - "readable-stream": "~1.0.31" - }, - "dependencies": { - "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==" - }, - "readable-stream": { - "version": "1.0.34", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", - "integrity": "sha512-ok1qVCJuRkNmvebYikljxJA/UEsKwLl2nI1OmaqAu4/UE+h0wKCHok4XkL/gvi39OacXvw59RJUOFUkDib2rHg==", - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" - } - }, - "string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==" - } - } - }, - "normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==" - }, - "normalize-url": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.0.tgz", - "integrity": "sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ==", - "dev": true - }, - "npm-programmatic": { - "version": "0.0.12", - "resolved": "https://registry.npmjs.org/npm-programmatic/-/npm-programmatic-0.0.12.tgz", - "integrity": "sha512-fvZdiJS038ZH31z59cEiIywOcgX1u23aLc0wAKF4btyhbYQxE93wTQjzs/URERK+GhS/QghDILQmEvgxu77/zQ==", - "dev": true, - "requires": { - "bluebird": "^3.4.1" - } - }, - "nth-check": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz", - "integrity": "sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==", - "dev": true, - "requires": { - "boolbase": "~1.0.0" - } - }, - "number-to-bn": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/number-to-bn/-/number-to-bn-1.7.0.tgz", - "integrity": "sha1-uzYjWS9+X54AMLGXe9QaDFP+HqA=", - "requires": { - "bn.js": "4.11.6", - "strip-hex-prefix": "1.0.0" - }, - "dependencies": { - "bn.js": { - "version": "4.11.6", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz", - "integrity": "sha1-UzRK2xRhehP26N0s4okF0cC6MhU=" - } - } - }, - "o3": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/o3/-/o3-1.0.3.tgz", - "integrity": "sha512-f+4n+vC6s4ysy7YO7O2gslWZBUu8Qj2i2OUJOvjRxQva7jVjYjB29jrr9NCjmxZQR0gzrOcv1RnqoYOeMs5VRQ==", - "requires": { - "capability": "^0.2.5" - } - }, - "oauth-sign": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", - "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", - "dev": true - }, - "object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" - }, - "object-copy": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", - "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", - "requires": { - "copy-descriptor": "^0.1.0", - "define-property": "^0.2.5", - "kind-of": "^3.0.3" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "requires": { - "kind-of": "^3.0.2" - } - }, - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "requires": { - "kind-of": "^3.0.2" - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - }, - "dependencies": { - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" - } - } - }, - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "object-inspect": { - "version": "1.10.3", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.10.3.tgz", - "integrity": "sha512-e5mCJlSH7poANfC8z8S9s9S2IN5/4Zb3aZ33f5s8YqoazCFzNLloLU8r5VCG+G7WoqLvAAZoVMcy3tp/3X0Plw==", - "dev": true - }, - "object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==" - }, - "object-visit": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", - "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", - "requires": { - "isobject": "^3.0.0" - } - }, - "object.pick": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", - "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", - "requires": { - "isobject": "^3.0.1" - } - }, - "oboe": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/oboe/-/oboe-2.1.4.tgz", - "integrity": "sha1-IMiM2wwVNxuwQRklfU/dNLCqSfY=", - "dev": true, - "requires": { - "http-https": "^1.0.0" - } - }, - "on-finished": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", - "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", - "dev": true, - "requires": { - "ee-first": "1.1.1" - } - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "requires": { - "wrappy": "1" - } - }, - "onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "dev": true, - "requires": { - "mimic-fn": "^2.1.0" - } - }, - "optimism": { - "version": "0.16.2", - "resolved": "https://registry.npmjs.org/optimism/-/optimism-0.16.2.tgz", - "integrity": "sha512-zWNbgWj+3vLEjZNIh/okkY2EUfX+vB9TJopzIZwT1xxaMqC5hRLLraePod4c5n4He08xuXNH+zhKFFCu390wiQ==", - "requires": { - "@wry/context": "^0.7.0", - "@wry/trie": "^0.3.0" - } - }, - "optionator": { - "version": "0.8.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", - "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", - "dev": true, - "requires": { - "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" - } - }, - "original-require": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/original-require/-/original-require-1.0.1.tgz", - "integrity": "sha1-DxMEcVhM0zURxew4yNWSE/msXiA=", - "dev": true - }, - "os-browserify": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", - "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=" - }, - "os-tmpdir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", - "dev": true - }, - "p-cancelable": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz", - "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==", - "dev": true - }, - "p-finally": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", - "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", - "dev": true - }, - "p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", - "dev": true, - "requires": { - "p-try": "^1.0.0" - } - }, - "p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", - "dev": true, - "requires": { - "p-limit": "^1.1.0" - } - }, - "p-timeout": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-1.2.1.tgz", - "integrity": "sha1-XrOzU7f86Z8QGhA4iAuwVOu+o4Y=", - "dev": true, - "requires": { - "p-finally": "^1.0.0" - } - }, - "p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", - "dev": true - }, - "pako": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", - "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==" - }, - "parallel-transform": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.2.0.tgz", - "integrity": "sha512-P2vSmIu38uIlvdcU7fDkyrxj33gTUy/ABO5ZUbGowxNCopBq/OoD42bP4UmMrJoPyk4Uqf0mu3mtWBhHCZD8yg==", - "requires": { - "cyclist": "^1.0.1", - "inherits": "^2.0.3", - "readable-stream": "^2.1.5" - } - }, - "param-case": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/param-case/-/param-case-2.1.1.tgz", - "integrity": "sha512-eQE845L6ot89sk2N8liD8HAuH4ca6Vvr7VWAWwt7+kvvG5aBcPmmphQ68JsEG2qa9n1TykS2DLeMt363AAH8/w==", - "dev": true, - "requires": { - "no-case": "^2.2.0" - } - }, - "parent-module": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", - "dev": true, - "requires": { - "callsites": "^3.0.0" - } - }, - "parse-asn1": { - "version": "5.1.5", - "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.5.tgz", - "integrity": "sha512-jkMYn1dcJqF6d5CpU689bq7w/b5ALS9ROVSpQDPrZsqqesUJii9qutvoT5ltGedNXMO2e16YUWIghG9KxaViTQ==", - "requires": { - "asn1.js": "^4.0.0", - "browserify-aes": "^1.0.0", - "create-hash": "^1.1.0", - "evp_bytestokey": "^1.0.0", - "pbkdf2": "^3.0.3", - "safe-buffer": "^5.1.1" - } - }, - "parse-headers": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/parse-headers/-/parse-headers-2.0.3.tgz", - "integrity": "sha512-QhhZ+DCCit2Coi2vmAKbq5RGTRcQUOE2+REgv8vdyu7MnYx2eZztegqtTx99TZ86GTIwqiy3+4nQTWZ2tgmdCA==" - }, - "parse-passwd": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz", - "integrity": "sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=" - }, - "parse5": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-3.0.3.tgz", - "integrity": "sha512-rgO9Zg5LLLkfJF9E6CCmXlSE4UVceloys8JrFqCcHloC3usd/kJCyPDwH2SOlzix2j3xaP9sUX3e8+kvkuleAA==", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "parseurl": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", - "dev": true - }, - "pascal-case": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-2.0.1.tgz", - "integrity": "sha512-qjS4s8rBOJa2Xm0jmxXiyh1+OFf6ekCWOvUaRgAQSktzlTbMotS0nmG9gyYAybCWBcuP4fsBeRCKNwGBnMe2OQ==", - "dev": true, - "requires": { - "camel-case": "^3.0.0", - "upper-case-first": "^1.1.0" - } - }, - "pascalcase": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", - "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=" - }, - "path-browserify": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.1.tgz", - "integrity": "sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==" - }, - "path-case": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/path-case/-/path-case-2.1.1.tgz", - "integrity": "sha512-Ou0N05MioItesaLr9q8TtHVWmJ6fxWdqKB2RohFmNWVyJ+2zeKIeDNWAN6B/Pe7wpzWChhZX6nONYmOnMeJQ/Q==", - "dev": true, - "requires": { - "no-case": "^2.2.0" - } - }, - "path-dirname": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", - "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=", - "optional": true - }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" - }, - "path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" - }, - "path-key": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=" - }, - "path-parse": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", - "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==" - }, - "path-to-regexp": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", - "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=", - "dev": true - }, - "pathval": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz", - "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==" - }, - "pbkdf2": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.1.tgz", - "integrity": "sha512-4Ejy1OPxi9f2tt1rRV7Go7zmfDQ+ZectEQz3VGUQhgq62HtIRPDyG/JtnwIxs6x3uNMwo2V7q1fMvKjb+Tnpqg==", - "requires": { - "create-hash": "^1.1.2", - "create-hmac": "^1.1.4", - "ripemd160": "^2.0.1", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" - } - }, - "pend": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", - "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=", - "dev": true - }, - "performance-now": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" - }, - "picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" - }, - "picomatch": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.3.tgz", - "integrity": "sha512-KpELjfwcCDUb9PeigTs2mBJzXUPzAuP2oPcA989He8Rte0+YUAjw1JVedDhuTKPkHjSYzMN3npC9luThGYEKdg==" - }, - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true - }, - "pinkie": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", - "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", - "dev": true - }, - "pinkie-promise": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", - "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", - "dev": true, - "requires": { - "pinkie": "^2.0.0" - } - }, - "pkg-dir": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", - "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", - "requires": { - "find-up": "^3.0.0" - } - }, - "pkg-up": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-3.1.0.tgz", - "integrity": "sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==", - "dev": true, - "optional": true, - "requires": { - "find-up": "^3.0.0" - } - }, - "pluralize": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-8.0.0.tgz", - "integrity": "sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==", - "dev": true, - "optional": true - }, - "posix-character-classes": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", - "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=" - }, - "pouchdb": { - "version": "7.3.0", - "resolved": "https://registry.npmjs.org/pouchdb/-/pouchdb-7.3.0.tgz", - "integrity": "sha512-OwsIQGXsfx3TrU1pLruj6PGSwFH+h5k4hGNxFkZ76Um7/ZI8F5TzUHFrpldVVIhfXYi2vP31q0q7ot1FSLFYOw==", - "dev": true, - "optional": true, - "requires": { - "abort-controller": "3.0.0", - "argsarray": "0.0.1", - "buffer-from": "1.1.2", - "clone-buffer": "1.0.0", - "double-ended-queue": "2.1.0-0", - "fetch-cookie": "0.11.0", - "immediate": "3.3.0", - "inherits": "2.0.4", - "level": "6.0.1", - "level-codec": "9.0.2", - "level-write-stream": "1.0.0", - "leveldown": "5.6.0", - "levelup": "4.4.0", - "ltgt": "2.2.1", - "node-fetch": "2.6.7", - "readable-stream": "1.1.14", - "spark-md5": "3.0.2", - "through2": "3.0.2", - "uuid": "8.3.2", - "vuvuzela": "1.0.3" - }, - "dependencies": { - "abstract-leveldown": { - "version": "6.2.3", - "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-6.2.3.tgz", - "integrity": "sha512-BsLm5vFMRUrrLeCcRc+G0t2qOaTzpoJQLOubq2XM72eNpjF5UdU5o/5NvlNhx95XHcAvcl8OMXr4mlg/fRgUXQ==", - "dev": true, - "optional": true, - "requires": { - "buffer": "^5.5.0", - "immediate": "^3.2.3", - "level-concat-iterator": "~2.0.0", - "level-supports": "~1.0.0", - "xtend": "~4.0.0" - } - }, - "deferred-leveldown": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/deferred-leveldown/-/deferred-leveldown-5.3.0.tgz", - "integrity": "sha512-a59VOT+oDy7vtAbLRCZwWgxu2BaCfd5Hk7wxJd48ei7I+nsg8Orlb9CLG0PMZienk9BSUKgeAqkO2+Lw+1+Ukw==", - "dev": true, - "optional": true, - "requires": { - "abstract-leveldown": "~6.2.1", - "inherits": "^2.0.3" - } - }, - "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==", - "dev": true, - "optional": true - }, - "level-codec": { - "version": "9.0.2", - "resolved": "https://registry.npmjs.org/level-codec/-/level-codec-9.0.2.tgz", - "integrity": "sha512-UyIwNb1lJBChJnGfjmO0OR+ezh2iVu1Kas3nvBS/BzGnx79dv6g7unpKIDNPMhfdTEGoc7mC8uAu51XEtX+FHQ==", - "dev": true, - "optional": true, - "requires": { - "buffer": "^5.6.0" - } - }, - "level-concat-iterator": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/level-concat-iterator/-/level-concat-iterator-2.0.1.tgz", - "integrity": "sha512-OTKKOqeav2QWcERMJR7IS9CUo1sHnke2C0gkSmcR7QuEtFNLLzHQAvnMw8ykvEcv0Qtkg0p7FOwP1v9e5Smdcw==", - "dev": true, - "optional": true - }, - "level-errors": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/level-errors/-/level-errors-2.0.1.tgz", - "integrity": "sha512-UVprBJXite4gPS+3VznfgDSU8PTRuVX0NXwoWW50KLxd2yw4Y1t2JUR5In1itQnudZqRMT9DlAM3Q//9NCjCFw==", - "dev": true, - "optional": true, - "requires": { - "errno": "~0.1.1" - } - }, - "level-iterator-stream": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/level-iterator-stream/-/level-iterator-stream-4.0.2.tgz", - "integrity": "sha512-ZSthfEqzGSOMWoUGhTXdX9jv26d32XJuHz/5YnuHZzH6wldfWMOVwI9TBtKcya4BKTyTt3XVA0A3cF3q5CY30Q==", - "dev": true, - "optional": true, - "requires": { - "inherits": "^2.0.4", - "readable-stream": "^3.4.0", - "xtend": "^4.0.2" - }, - "dependencies": { - "readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "dev": true, - "optional": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - } - } - }, - "level-supports": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/level-supports/-/level-supports-1.0.1.tgz", - "integrity": "sha512-rXM7GYnW8gsl1vedTJIbzOrRv85c/2uCMpiiCzO2fndd06U/kUXEEU9evYn4zFggBOg36IsBW8LzqIpETwwQzg==", - "dev": true, - "optional": true, - "requires": { - "xtend": "^4.0.2" - } - }, - "levelup": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/levelup/-/levelup-4.4.0.tgz", - "integrity": "sha512-94++VFO3qN95cM/d6eBXvd894oJE0w3cInq9USsyQzzoJxmiYzPAocNcuGCPGGjoXqDVJcr3C1jzt1TSjyaiLQ==", - "dev": true, - "optional": true, - "requires": { - "deferred-leveldown": "~5.3.0", - "level-errors": "~2.0.0", - "level-iterator-stream": "~4.0.0", - "level-supports": "~1.0.0", - "xtend": "~4.0.0" - } - }, - "node-fetch": { - "version": "2.6.7", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", - "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", - "dev": true, - "optional": true, - "requires": { - "whatwg-url": "^5.0.0" - } - }, - "readable-stream": { - "version": "1.1.14", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", - "integrity": "sha512-+MeVjFf4L44XUkhM1eYbD8fyEsxcV81pqMSR5gblfcLCHfZvbrqy4/qYHE+/R5HoBUT11WV5O08Cr1n3YXkWVQ==", - "dev": true, - "optional": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" - }, - "dependencies": { - "string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==", - "dev": true, - "optional": true - } - } - }, - "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, - "optional": true - } - } - }, - "pouchdb-abstract-mapreduce": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/pouchdb-abstract-mapreduce/-/pouchdb-abstract-mapreduce-7.3.1.tgz", - "integrity": "sha512-0zKXVFBvrfc1KnN0ggrB762JDmZnUpePHywo9Bq3Jy+L1FnoG7fXM5luFfvv5/T0gEw+ZTIwoocZECMnESBI9w==", - "dev": true, - "optional": true, - "requires": { - "pouchdb-binary-utils": "7.3.1", - "pouchdb-collate": "7.3.1", - "pouchdb-collections": "7.3.1", - "pouchdb-errors": "7.3.1", - "pouchdb-fetch": "7.3.1", - "pouchdb-mapreduce-utils": "7.3.1", - "pouchdb-md5": "7.3.1", - "pouchdb-utils": "7.3.1" - } - }, - "pouchdb-adapter-leveldb-core": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/pouchdb-adapter-leveldb-core/-/pouchdb-adapter-leveldb-core-7.3.1.tgz", - "integrity": "sha512-mxShHlqLMPz2gChrgtA9okV1ogFmQrRAoM/O4EN0CrQWPLXqYtpL1f7sI2asIvFe7SmpnvbLx7kkZyFmLTfwjA==", - "dev": true, - "optional": true, - "requires": { - "argsarray": "0.0.1", - "buffer-from": "1.1.2", - "double-ended-queue": "2.1.0-0", - "levelup": "4.4.0", - "pouchdb-adapter-utils": "7.3.1", - "pouchdb-binary-utils": "7.3.1", - "pouchdb-collections": "7.3.1", - "pouchdb-errors": "7.3.1", - "pouchdb-json": "7.3.1", - "pouchdb-md5": "7.3.1", - "pouchdb-merge": "7.3.1", - "pouchdb-utils": "7.3.1", - "sublevel-pouchdb": "7.3.1", - "through2": "3.0.2" - }, - "dependencies": { - "abstract-leveldown": { - "version": "6.2.3", - "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-6.2.3.tgz", - "integrity": "sha512-BsLm5vFMRUrrLeCcRc+G0t2qOaTzpoJQLOubq2XM72eNpjF5UdU5o/5NvlNhx95XHcAvcl8OMXr4mlg/fRgUXQ==", - "dev": true, - "optional": true, - "requires": { - "buffer": "^5.5.0", - "immediate": "^3.2.3", - "level-concat-iterator": "~2.0.0", - "level-supports": "~1.0.0", - "xtend": "~4.0.0" - } - }, - "deferred-leveldown": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/deferred-leveldown/-/deferred-leveldown-5.3.0.tgz", - "integrity": "sha512-a59VOT+oDy7vtAbLRCZwWgxu2BaCfd5Hk7wxJd48ei7I+nsg8Orlb9CLG0PMZienk9BSUKgeAqkO2+Lw+1+Ukw==", - "dev": true, - "optional": true, - "requires": { - "abstract-leveldown": "~6.2.1", - "inherits": "^2.0.3" - } - }, - "level-concat-iterator": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/level-concat-iterator/-/level-concat-iterator-2.0.1.tgz", - "integrity": "sha512-OTKKOqeav2QWcERMJR7IS9CUo1sHnke2C0gkSmcR7QuEtFNLLzHQAvnMw8ykvEcv0Qtkg0p7FOwP1v9e5Smdcw==", - "dev": true, - "optional": true - }, - "level-errors": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/level-errors/-/level-errors-2.0.1.tgz", - "integrity": "sha512-UVprBJXite4gPS+3VznfgDSU8PTRuVX0NXwoWW50KLxd2yw4Y1t2JUR5In1itQnudZqRMT9DlAM3Q//9NCjCFw==", - "dev": true, - "optional": true, - "requires": { - "errno": "~0.1.1" - } - }, - "level-iterator-stream": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/level-iterator-stream/-/level-iterator-stream-4.0.2.tgz", - "integrity": "sha512-ZSthfEqzGSOMWoUGhTXdX9jv26d32XJuHz/5YnuHZzH6wldfWMOVwI9TBtKcya4BKTyTt3XVA0A3cF3q5CY30Q==", - "dev": true, - "optional": true, - "requires": { - "inherits": "^2.0.4", - "readable-stream": "^3.4.0", - "xtend": "^4.0.2" - } - }, - "level-supports": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/level-supports/-/level-supports-1.0.1.tgz", - "integrity": "sha512-rXM7GYnW8gsl1vedTJIbzOrRv85c/2uCMpiiCzO2fndd06U/kUXEEU9evYn4zFggBOg36IsBW8LzqIpETwwQzg==", - "dev": true, - "optional": true, - "requires": { - "xtend": "^4.0.2" - } - }, - "levelup": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/levelup/-/levelup-4.4.0.tgz", - "integrity": "sha512-94++VFO3qN95cM/d6eBXvd894oJE0w3cInq9USsyQzzoJxmiYzPAocNcuGCPGGjoXqDVJcr3C1jzt1TSjyaiLQ==", - "dev": true, - "optional": true, - "requires": { - "deferred-leveldown": "~5.3.0", - "level-errors": "~2.0.0", - "level-iterator-stream": "~4.0.0", - "level-supports": "~1.0.0", - "xtend": "~4.0.0" - } - }, - "readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "dev": true, - "optional": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - } - } - }, - "pouchdb-adapter-memory": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/pouchdb-adapter-memory/-/pouchdb-adapter-memory-7.3.1.tgz", - "integrity": "sha512-iHdWGJAHONqQv0we3Oi1MYen69ZS8McLW9wUyaAYcWTJnAIIAr2ZM0/TeTDVSHfMUwYqEYk7X8jRtJZEMwLnwg==", - "dev": true, - "optional": true, - "requires": { - "memdown": "1.4.1", - "pouchdb-adapter-leveldb-core": "7.3.1", - "pouchdb-utils": "7.3.1" - } - }, - "pouchdb-adapter-utils": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/pouchdb-adapter-utils/-/pouchdb-adapter-utils-7.3.1.tgz", - "integrity": "sha512-uKLG6dClwTs/sLIJ4WkLAi9wlnDBpOnfyhpeAgOjlOGN/XLz5nKHrA4UJRnURDyc+uv79S9r/Unc4hVpmbSPUw==", - "dev": true, - "optional": true, - "requires": { - "pouchdb-binary-utils": "7.3.1", - "pouchdb-collections": "7.3.1", - "pouchdb-errors": "7.3.1", - "pouchdb-md5": "7.3.1", - "pouchdb-merge": "7.3.1", - "pouchdb-utils": "7.3.1" - } - }, - "pouchdb-binary-utils": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/pouchdb-binary-utils/-/pouchdb-binary-utils-7.3.1.tgz", - "integrity": "sha512-crZJNfAEOnUoRk977Qtmk4cxEv6sNKllQ6vDDKgQrQLFjMUXma35EHzNyIJr1s76J77Q4sqKQAmxz9Y40yHGtw==", - "dev": true, - "optional": true, - "requires": { - "buffer-from": "1.1.2" - } - }, - "pouchdb-collate": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/pouchdb-collate/-/pouchdb-collate-7.3.1.tgz", - "integrity": "sha512-o4gyGqDMLMSNzf6EDTr3eHaH/JRMoqRhdc+eV+oA8u00nTBtr9wD+jypVe2LbgKLJ4NWqx2qVkXiTiQdUFtsLQ==", - "dev": true, - "optional": true - }, - "pouchdb-collections": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/pouchdb-collections/-/pouchdb-collections-7.3.1.tgz", - "integrity": "sha512-yUyDqR+OJmtwgExOSJegpBJXDLAEC84TWnbAYycyh+DZoA51Yw0+XVQF5Vh8Ii90/Ut2xo88fmrmp0t6kqom8w==", - "dev": true, - "optional": true - }, - "pouchdb-debug": { - "version": "7.2.1", - "resolved": "https://registry.npmjs.org/pouchdb-debug/-/pouchdb-debug-7.2.1.tgz", - "integrity": "sha512-eP3ht/AKavLF2RjTzBM6S9gaI2/apcW6xvaKRQhEdOfiANqerFuksFqHCal3aikVQuDO+cB/cw+a4RyJn/glBw==", - "dev": true, - "optional": true, - "requires": { - "debug": "3.1.0" - } - }, - "pouchdb-errors": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/pouchdb-errors/-/pouchdb-errors-7.3.1.tgz", - "integrity": "sha512-Zktz4gnXEUcZcty8FmyvtYUYsHskoST05m6H5/E2gg/0mCfEXq/XeyyLkZHaZmqD0ZPS9yNmASB1VaFWEKEaDw==", - "dev": true, - "optional": true, - "requires": { - "inherits": "2.0.4" - } - }, - "pouchdb-fetch": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/pouchdb-fetch/-/pouchdb-fetch-7.3.1.tgz", - "integrity": "sha512-205xAtvdHRPQ4fp1h9+RmT9oQabo9gafuPmWsS9aEl3ER54WbY8Vaj1JHZGbU4KtMTYvW7H5088zLS7Nrusuag==", - "dev": true, - "optional": true, - "requires": { - "abort-controller": "3.0.0", - "fetch-cookie": "0.11.0", - "node-fetch": "2.6.7" - }, - "dependencies": { - "node-fetch": { - "version": "2.6.7", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", - "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", - "dev": true, - "optional": true, - "requires": { - "whatwg-url": "^5.0.0" - } - } - } - }, - "pouchdb-find": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/pouchdb-find/-/pouchdb-find-7.3.1.tgz", - "integrity": "sha512-AeqUfAVY1c7IFaY36BRT0vIz9r4VTKq/YOWTmiqndOZUQ/pDGxyO2fNFal6NN3PyYww0JijlD377cPvhnrhJVA==", - "dev": true, - "optional": true, - "requires": { - "pouchdb-abstract-mapreduce": "7.3.1", - "pouchdb-collate": "7.3.1", - "pouchdb-errors": "7.3.1", - "pouchdb-fetch": "7.3.1", - "pouchdb-md5": "7.3.1", - "pouchdb-selector-core": "7.3.1", - "pouchdb-utils": "7.3.1" - } - }, - "pouchdb-json": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/pouchdb-json/-/pouchdb-json-7.3.1.tgz", - "integrity": "sha512-AyOKsmc85/GtHjMZyEacqzja8qLVfycS1hh1oskR+Bm5PIITX52Fb8zyi0hEetV6VC0yuGbn0RqiLjJxQePeqQ==", - "dev": true, - "optional": true, - "requires": { - "vuvuzela": "1.0.3" - } - }, - "pouchdb-mapreduce-utils": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/pouchdb-mapreduce-utils/-/pouchdb-mapreduce-utils-7.3.1.tgz", - "integrity": "sha512-oUMcq82+4pTGQ6dtrhgORHOVHZSr6w/5tFIUGlv7RABIDvJarL4snMawADjlpiEwPdiQ/ESG8Fqt8cxqvqsIgg==", - "dev": true, - "optional": true, - "requires": { - "argsarray": "0.0.1", - "inherits": "2.0.4", - "pouchdb-collections": "7.3.1", - "pouchdb-utils": "7.3.1" - } - }, - "pouchdb-md5": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/pouchdb-md5/-/pouchdb-md5-7.3.1.tgz", - "integrity": "sha512-aDV8ui/mprnL3xmt0gT/81DFtTtJiKyn+OxIAbwKPMfz/rDFdPYvF0BmDC9QxMMzGfkV+JJUjU6at0PPs2mRLg==", - "dev": true, - "optional": true, - "requires": { - "pouchdb-binary-utils": "7.3.1", - "spark-md5": "3.0.2" - } - }, - "pouchdb-merge": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/pouchdb-merge/-/pouchdb-merge-7.3.1.tgz", - "integrity": "sha512-FeK3r35mKimokf2PQ2tUI523QWyZ4lYZ0Yd75FfSch/SPY6wIokz5XBZZ6PHdu5aOJsEKzoLUxr8CpSg9DhcAw==", - "dev": true, - "optional": true - }, - "pouchdb-selector-core": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/pouchdb-selector-core/-/pouchdb-selector-core-7.3.1.tgz", - "integrity": "sha512-HBX+nNGXcaL9z0uNpwSMRq2GNZd3EZXW+fe9rJHS0hvJohjZL7aRJLoaXfEdHPRTNW+CpjM3Rny60eGekQdI/w==", - "dev": true, - "optional": true, - "requires": { - "pouchdb-collate": "7.3.1", - "pouchdb-utils": "7.3.1" - } - }, - "pouchdb-utils": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/pouchdb-utils/-/pouchdb-utils-7.3.1.tgz", - "integrity": "sha512-R3hHBo1zTdTu/NFs3iqkcaQAPwhIH0gMIdfVKd5lbDYlmP26rCG5pdS+v7NuoSSFLJ4xxnaGV+Gjf4duYsJ8wQ==", - "dev": true, - "optional": true, - "requires": { - "argsarray": "0.0.1", - "clone-buffer": "1.0.0", - "immediate": "3.3.0", - "inherits": "2.0.4", - "pouchdb-collections": "7.3.1", - "pouchdb-errors": "7.3.1", - "pouchdb-md5": "7.3.1", - "uuid": "8.3.2" - }, - "dependencies": { - "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, - "optional": true - } - } - }, - "precond": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/precond/-/precond-0.2.3.tgz", - "integrity": "sha1-qpWRvKokkj8eD0hJ0kD0fvwQdaw=" - }, - "prelude-ls": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", - "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", - "dev": true - }, - "prepend-http": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", - "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=", - "dev": true - }, - "prettier": { - "version": "1.19.1", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-1.19.1.tgz", - "integrity": "sha512-s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew==", - "dev": true - }, - "printj": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/printj/-/printj-1.1.2.tgz", - "integrity": "sha512-zA2SmoLaxZyArQTOPj5LXecR+RagfPSU5Kw1qP+jkWeNlrq+eJZyY2oS68SU1Z/7/myXM4lo9716laOFAVStCQ==" - }, - "process": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/process/-/process-0.5.2.tgz", - "integrity": "sha1-FjjYqONML0QKkduVq5rrZ3/Bhc8=" - }, - "process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" - }, - "progress": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", - "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", - "dev": true - }, - "promise-inflight": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", - "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=" - }, - "promise-polyfill": { - "version": "8.1.3", - "resolved": "https://registry.npmjs.org/promise-polyfill/-/promise-polyfill-8.1.3.tgz", - "integrity": "sha512-MG5r82wBzh7pSKDRa9y+vllNHz3e3d4CNj1PQE4BQYxLme0gKYYBm9YENq+UkEikyZ0XbiGWxYlVw3Rl9O/U8g==", - "dev": true - }, - "promise-to-callback": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/promise-to-callback/-/promise-to-callback-1.0.0.tgz", - "integrity": "sha1-XSp0kBC/tn2WNZj805YHRqaP7vc=", - "requires": { - "is-fn": "^1.0.0", - "set-immediate-shim": "^1.0.1" - } - }, - "prop-types": { - "version": "15.8.1", - "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", - "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", - "requires": { - "loose-envify": "^1.4.0", - "object-assign": "^4.1.1", - "react-is": "^16.13.1" - } - }, - "protobufjs": { - "version": "6.11.2", - "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-6.11.2.tgz", - "integrity": "sha512-4BQJoPooKJl2G9j3XftkIXjoC9C0Av2NOrWmbLWT1vH32GcSUHjM0Arra6UfTsVyfMAuFzaLucXn1sadxJydAw==", - "requires": { - "@protobufjs/aspromise": "^1.1.2", - "@protobufjs/base64": "^1.1.2", - "@protobufjs/codegen": "^2.0.4", - "@protobufjs/eventemitter": "^1.1.0", - "@protobufjs/fetch": "^1.1.0", - "@protobufjs/float": "^1.0.2", - "@protobufjs/inquire": "^1.1.0", - "@protobufjs/path": "^1.1.2", - "@protobufjs/pool": "^1.1.0", - "@protobufjs/utf8": "^1.1.0", - "@types/long": "^4.0.1", - "@types/node": ">=13.7.0", - "long": "^4.0.0" - } - }, - "proxy-addr": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.6.tgz", - "integrity": "sha512-dh/frvCBVmSsDYzw6n926jv974gddhkFPfiN8hPOi30Wax25QZyZEGveluCgliBnqmuM+UJmBErbAUFIoDbjOw==", - "dev": true, - "requires": { - "forwarded": "~0.1.2", - "ipaddr.js": "1.9.1" - } - }, - "proxy-from-env": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", - "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", - "dev": true, - "optional": true - }, - "prr": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", - "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=" - }, - "psl": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", - "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==", - "dev": true - }, - "public-encrypt": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", - "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", - "requires": { - "bn.js": "^4.1.0", - "browserify-rsa": "^4.0.0", - "create-hash": "^1.1.0", - "parse-asn1": "^5.0.0", - "randombytes": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "pull-stream": { - "version": "3.6.14", - "resolved": "https://registry.npmjs.org/pull-stream/-/pull-stream-3.6.14.tgz", - "integrity": "sha512-KIqdvpqHHaTUA2mCYcLG1ibEbu/LCKoJZsBWyv9lSYtPkJPBq8m3Hxa103xHi6D2thj5YXa0TqK3L3GUkwgnew==" - }, - "pull-stream-to-async-iterator": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/pull-stream-to-async-iterator/-/pull-stream-to-async-iterator-1.0.2.tgz", - "integrity": "sha512-c3KRs2EneuxP7b6pG9fvQTIjatf33RbIErhbQ75s5r2MI6E8R74NZC1nJgXc8kcmqiQxmr+TWY+WwK2mWaUnlA==", - "requires": { - "pull-stream": "^3.6.9" - } - }, - "pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "pumpify": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz", - "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==", - "requires": { - "duplexify": "^3.6.0", - "inherits": "^2.0.3", - "pump": "^2.0.0" - }, - "dependencies": { - "pump": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", - "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - } - } - }, - "punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" - }, - "pure-rand": { - "version": "5.0.5", - "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-5.0.5.tgz", - "integrity": "sha512-BwQpbqxSCBJVpamI6ydzcKqyFmnd5msMWUGvzXLm1aXvusbbgkbOto/EUPM00hjveJEaJtdbhUjKSzWRhQVkaw==", - "dev": true - }, - "qs": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", - "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==" - }, - "query-string": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/query-string/-/query-string-5.1.1.tgz", - "integrity": "sha512-gjWOsm2SoGlgLEdAGt7a6slVOk9mGiXmPFMqrEhLQ68rhQuBnpfs3+EmlvqKyxnCo9/PPlF+9MtY02S1aFg+Jw==", - "requires": { - "decode-uri-component": "^0.2.0", - "object-assign": "^4.1.0", - "strict-uri-encode": "^1.0.0" - } - }, - "querystring": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.1.tgz", - "integrity": "sha512-wkvS7mL/JMugcup3/rMitHmd9ecIGd2lhFhK9N3UUQ450h66d1r3Y9nvXzQAW1Lq+wyx61k/1pfKS5KuKiyEbg==" - }, - "querystring-es3": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", - "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=" - }, - "queue-microtask": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", - "dev": true, - "optional": true - }, - "quick-lru": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", - "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==", - "dev": true - }, - "randombytes": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", - "requires": { - "safe-buffer": "^5.1.0" - } - }, - "randomfill": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", - "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", - "requires": { - "randombytes": "^2.0.5", - "safe-buffer": "^5.1.0" - } - }, - "randomhex": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/randomhex/-/randomhex-0.1.5.tgz", - "integrity": "sha1-us7vmCMpCRQA8qKRLGzQLxCU9YU=", - "dev": true - }, - "range-parser": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", - "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", - "dev": true - }, - "raw-body": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz", - "integrity": "sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==", - "dev": true, - "requires": { - "bytes": "3.1.0", - "http-errors": "1.7.2", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - } - }, - "react-is": { - "version": "16.13.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", - "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" - }, - "readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - }, - "dependencies": { - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - } - } - }, - "readdirp": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.5.0.tgz", - "integrity": "sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ==", - "requires": { - "picomatch": "^2.2.1" - } - }, - "readonly-date": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/readonly-date/-/readonly-date-1.0.0.tgz", - "integrity": "sha512-tMKIV7hlk0h4mO3JTmmVuIlJVXjKk3Sep9Bf5OH0O+758ruuVkUy2J9SttDLm91IEX/WHlXPSpxMGjPj4beMIQ==" - }, - "rechoir": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", - "integrity": "sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==", - "requires": { - "resolve": "^1.1.6" - } - }, - "reduce-flatten": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/reduce-flatten/-/reduce-flatten-2.0.0.tgz", - "integrity": "sha512-EJ4UNY/U1t2P/2k6oqotuX2Cc3T6nxJwsM0N0asT7dhrtH1ltUxDn4NalSYmPE2rCkVpcf/X6R0wDwcFpzhd4w==" - }, - "redux": { - "version": "3.7.2", - "resolved": "https://registry.npmjs.org/redux/-/redux-3.7.2.tgz", - "integrity": "sha512-pNqnf9q1hI5HHZRBkj3bAngGZW/JMCmexDlOxw4XagXY2o1327nHH54LoTjiPJ0gizoqPDRqWyX/00g0hD6w+A==", - "dev": true, - "requires": { - "lodash": "^4.2.1", - "lodash-es": "^4.2.1", - "loose-envify": "^1.1.0", - "symbol-observable": "^1.0.3" - } - }, - "redux-saga": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/redux-saga/-/redux-saga-1.0.0.tgz", - "integrity": "sha512-GvJWs/SzMvEQgeaw6sRMXnS2FghlvEGsHiEtTLpJqc/FHF3I5EE/B+Hq5lyHZ8LSoT2r/X/46uWvkdCnK9WgHA==", - "dev": true, - "requires": { - "@redux-saga/core": "^1.0.0" - } - }, - "regenerator-runtime": { - "version": "0.13.11", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", - "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==" - }, - "regex-not": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", - "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", - "requires": { - "extend-shallow": "^3.0.2", - "safe-regex": "^1.1.0" - } - }, - "regexpp": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-2.0.1.tgz", - "integrity": "sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw==", - "dev": true - }, - "remove-trailing-separator": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", - "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", - "optional": true - }, - "repeat-element": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.4.tgz", - "integrity": "sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==" - }, - "repeat-string": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", - "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=" - }, - "request": { - "version": "2.88.2", - "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", - "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", - "dev": true, - "requires": { - "aws-sign2": "~0.7.0", - "aws4": "^1.8.0", - "caseless": "~0.12.0", - "combined-stream": "~1.0.6", - "extend": "~3.0.2", - "forever-agent": "~0.6.1", - "form-data": "~2.3.2", - "har-validator": "~5.1.3", - "http-signature": "~1.2.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.19", - "oauth-sign": "~0.9.0", - "performance-now": "^2.1.0", - "qs": "~6.5.2", - "safe-buffer": "^5.1.2", - "tough-cookie": "~2.5.0", - "tunnel-agent": "^0.6.0", - "uuid": "^3.3.2" - } - }, - "require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" - }, - "require-from-string": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", - "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", - "dev": true - }, - "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==" - }, - "reselect": { - "version": "4.1.8", - "resolved": "https://registry.npmjs.org/reselect/-/reselect-4.1.8.tgz", - "integrity": "sha512-ab9EmR80F/zQTMNeneUr4cv+jSwPJgIlvEmVwLerwrWVbpLlBuls9XHzIeTFy4cegU2NHBp3va0LKOzU5qFEYQ==", - "dev": true - }, - "reselect-tree": { - "version": "1.3.7", - "resolved": "https://registry.npmjs.org/reselect-tree/-/reselect-tree-1.3.7.tgz", - "integrity": "sha512-kZN+C1cVJ6fFN2smSb0l4UvYZlRzttgnu183svH4NrU22cBY++ikgr2QT75Uuk4MYpv5gXSVijw4c5U6cx6GKg==", - "dev": true, - "requires": { - "debug": "^3.1.0", - "json-pointer": "^0.6.1", - "reselect": "^4.0.0" - } - }, - "resolve": { - "version": "1.17.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz", - "integrity": "sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==", - "requires": { - "path-parse": "^1.0.6" - } - }, - "resolve-alpn": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz", - "integrity": "sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==", - "dev": true - }, - "resolve-cwd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-2.0.0.tgz", - "integrity": "sha1-AKn3OHVW4nA46uIyyqNypqWbZlo=", - "requires": { - "resolve-from": "^3.0.0" - }, - "dependencies": { - "resolve-from": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", - "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=" - } - } - }, - "resolve-dir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz", - "integrity": "sha1-eaQGRMNivoLybv/nOcm7U4IEb0M=", + "@injectivelabs/indexer-proto-ts": { + "version": "0.0.9", + "resolved": "https://registry.npmjs.org/@injectivelabs/indexer-proto-ts/-/indexer-proto-ts-0.0.9.tgz", + "integrity": "sha512-ZFTUKlHAY2WYnB9RPPf11nq7SNm7wcKFTmFTavTiHV8UvNEni7dCR3Un6U5Mo1qD0xHEsfoCDMdqGcIguliPMA==", "requires": { - "expand-tilde": "^2.0.0", - "global-modules": "^1.0.0" + "@injectivelabs/grpc-web": "^0.0.1", + "google-protobuf": "^3.14.0", + "protobufjs": "^7.0.0", + "rxjs": "^7.4.0" }, "dependencies": { - "global-modules": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz", - "integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==", - "requires": { - "global-prefix": "^1.0.1", - "is-windows": "^1.0.1", - "resolve-dir": "^1.0.0" - } + "long": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/long/-/long-5.2.1.tgz", + "integrity": "sha512-GKSNGeNAtw8IryjjkhZxuKB3JzlcLTwjtiQCHKvqQet81I93kXslhDQruGI/QsddO83mcDToBVy7GqGS/zYf/A==" }, - "global-prefix": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz", - "integrity": "sha1-2/dDxsFJklk8ZVVoy2btMsASLr4=", + "protobufjs": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.2.3.tgz", + "integrity": "sha512-TtpvOqwB5Gdz/PQmOjgsrGH1nHjAQVCN7JG4A6r1sXRWESL5rNMAiRcBQlCAdKxZcAbstExQePYG8xof/JVRgg==", "requires": { - "expand-tilde": "^2.0.2", - "homedir-polyfill": "^1.0.1", - "ini": "^1.3.4", - "is-windows": "^1.0.1", - "which": "^1.2.14" + "@protobufjs/aspromise": "^1.1.2", + "@protobufjs/base64": "^1.1.2", + "@protobufjs/codegen": "^2.0.4", + "@protobufjs/eventemitter": "^1.1.0", + "@protobufjs/fetch": "^1.1.0", + "@protobufjs/float": "^1.0.2", + "@protobufjs/inquire": "^1.1.0", + "@protobufjs/path": "^1.1.2", + "@protobufjs/pool": "^1.1.0", + "@protobufjs/utf8": "^1.1.0", + "@types/node": ">=13.7.0", + "long": "^5.0.0" } }, - "which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "rxjs": { + "version": "7.8.0", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.0.tgz", + "integrity": "sha512-F2+gxDshqmIub1KdvZkaEfGDwLNpPvk9Fs6LD/MyQxNgMds/WH9OdDDXOmxUZpME+iSK3rQCctkL0DYyytUqMg==", "requires": { - "isexe": "^2.0.0" + "tslib": "^2.1.0" } + }, + "tslib": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz", + "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==" } } }, - "resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "dev": true - }, - "resolve-url": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", - "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=" - }, - "response-iterator": { - "version": "0.2.6", - "resolved": "https://registry.npmjs.org/response-iterator/-/response-iterator-0.2.6.tgz", - "integrity": "sha512-pVzEEzrsg23Sh053rmDUvLSkGXluZio0qu8VT6ukrYuvtjVfCbDZH9d6PGXb8HZfzdNZt8feXv/jvUzlhRgLnw==" - }, - "responselike": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", - "integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=", - "dev": true, - "requires": { - "lowercase-keys": "^1.0.0" - } - }, - "restore-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", - "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", - "dev": true, - "requires": { - "onetime": "^5.1.0", - "signal-exit": "^3.0.2" - } - }, - "ret": { - "version": "0.1.15", - "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", - "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==" - }, - "retry": { - "version": "0.13.1", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz", - "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==", - "dev": true, - "optional": true - }, - "rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "requires": { - "glob": "^7.1.3" - } - }, - "ripemd160": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", - "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", - "requires": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1" - } - }, - "ripemd160-min": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/ripemd160-min/-/ripemd160-min-0.0.6.tgz", - "integrity": "sha512-+GcJgQivhs6S9qvLogusiTcS9kQUfgR75whKuy5jIhuiOfQuJ8fjqxV6EGD5duH1Y/FawFUMtMhyeq3Fbnib8A==" - }, - "rlp": { - "version": "2.2.6", - "resolved": "https://registry.npmjs.org/rlp/-/rlp-2.2.6.tgz", - "integrity": "sha512-HAfAmL6SDYNWPUOJNrM500x4Thn4PZsEy5pijPh40U9WfNk0z15hUYzO9xVIMAdIHdFtD8CBDHd75Td1g36Mjg==", - "requires": { - "bn.js": "^4.11.1" - } - }, - "run-async": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", - "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==", - "dev": true - }, - "run-queue": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz", - "integrity": "sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec=", - "requires": { - "aproba": "^1.1.1" - } - }, - "rustbn.js": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/rustbn.js/-/rustbn.js-0.2.0.tgz", - "integrity": "sha512-4VlvkRUuCJvr2J6Y0ImW7NvTCriMi7ErOAqWk1y69vAdoNIzCF3yPmgeNzx+RQTLEDFq5sHfscn1MwHxP9hNfA==" - }, - "rxjs": { - "version": "6.6.0", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.0.tgz", - "integrity": "sha512-3HMA8z/Oz61DUHe+SdOiQyzIf4tOx5oQHmMir7IZEu6TMqCLHT4LRcmNaUS0NwOz8VLvmmBduMsoaUvMaIiqzg==", - "dev": true, + "@injectivelabs/networks": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/@injectivelabs/networks/-/networks-1.10.0.tgz", + "integrity": "sha512-S0f1iWBcnc+HgvtIJLNlMC0iBsiT5AH0rXfwJpvkRehqwyB/J2WPKN7uOdsplK72nH4fauA3emokzGS8JknyEA==", "requires": { - "tslib": "^1.9.0" + "@injectivelabs/exceptions": "^1.10.0", + "@injectivelabs/ts-types": "^1.10.0", + "@injectivelabs/utils": "^1.10.0", + "link-module-alias": "^1.2.0", + "shx": "^0.3.2" } }, - "safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" - }, - "safe-event-emitter": { + "@injectivelabs/ninja-proto-ts": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/safe-event-emitter/-/safe-event-emitter-1.0.1.tgz", - "integrity": "sha512-e1wFe99A91XYYxoQbcq2ZJUWurxEyP8vfz7A7vuUe1s95q8r5ebraVaA1BukYJcpM6V16ugWoD9vngi8Ccu5fg==", - "requires": { - "events": "^3.0.0" - } - }, - "safe-regex": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", - "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", - "requires": { - "ret": "~0.1.10" - } - }, - "safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" - }, - "scrypt-js": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-2.0.4.tgz", - "integrity": "sha512-4KsaGcPnuhtCZQCxFxN3GVYIhKFPTdLd8PLC552XwbMndtD0cjRFAhDuuydXQ0h08ZfPgzqe6EKHozpuH74iDw==", - "dev": true - }, - "scrypt-shim": { - "version": "git+ssh://git@github.com/web3-js/scrypt-shim.git#aafdadda13e660e25e1c525d1f5b2443f5eb1ebb", - "dev": true, - "from": "scrypt-shim@github:web3-js/scrypt-shim", + "resolved": "https://registry.npmjs.org/@injectivelabs/ninja-proto-ts/-/ninja-proto-ts-1.0.1.tgz", + "integrity": "sha512-ZHyVp/yPQcl7QdHxRU49G5xFVDXJwBtMvu7BW//nUVDrTWxBy2zS1AUYpL37nvKpTG9AtB1EqMYKLPXD2sdLsg==", "requires": { - "scryptsy": "^2.1.0", - "semver": "^6.3.0" + "@injectivelabs/grpc-web": "^0.0.1", + "google-protobuf": "^3.14.0", + "protobufjs": "^7.0.0", + "rxjs": "^7.4.0" }, "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true + "long": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/long/-/long-5.2.1.tgz", + "integrity": "sha512-GKSNGeNAtw8IryjjkhZxuKB3JzlcLTwjtiQCHKvqQet81I93kXslhDQruGI/QsddO83mcDToBVy7GqGS/zYf/A==" + }, + "protobufjs": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.2.3.tgz", + "integrity": "sha512-TtpvOqwB5Gdz/PQmOjgsrGH1nHjAQVCN7JG4A6r1sXRWESL5rNMAiRcBQlCAdKxZcAbstExQePYG8xof/JVRgg==", + "requires": { + "@protobufjs/aspromise": "^1.1.2", + "@protobufjs/base64": "^1.1.2", + "@protobufjs/codegen": "^2.0.4", + "@protobufjs/eventemitter": "^1.1.0", + "@protobufjs/fetch": "^1.1.0", + "@protobufjs/float": "^1.0.2", + "@protobufjs/inquire": "^1.1.0", + "@protobufjs/path": "^1.1.2", + "@protobufjs/pool": "^1.1.0", + "@protobufjs/utf8": "^1.1.0", + "@types/node": ">=13.7.0", + "long": "^5.0.0" + } + }, + "rxjs": { + "version": "7.8.0", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.0.tgz", + "integrity": "sha512-F2+gxDshqmIub1KdvZkaEfGDwLNpPvk9Fs6LD/MyQxNgMds/WH9OdDDXOmxUZpME+iSK3rQCctkL0DYyytUqMg==", + "requires": { + "tslib": "^2.1.0" + } + }, + "tslib": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz", + "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==" } } }, - "scryptsy": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/scryptsy/-/scryptsy-2.1.0.tgz", - "integrity": "sha512-1CdSqHQowJBnMAFyPEBRfqag/YP9OF394FV+4YREIJX4ljD7OxvQRDayyoyyCk+senRjSkP6VnUNQmVQqB6g7w==" - }, - "secp256k1": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-4.0.2.tgz", - "integrity": "sha512-UDar4sKvWAksIlfX3xIaQReADn+WFnHvbVujpcbr+9Sf/69odMwy2MUsz5CKLQgX9nsIyrjuxL2imVyoNHa3fg==", - "requires": { - "elliptic": "^6.5.2", - "node-addon-api": "^2.0.0", - "node-gyp-build": "^4.2.0" - } - }, - "seek-bzip": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/seek-bzip/-/seek-bzip-1.0.5.tgz", - "integrity": "sha1-z+kXyz0nS8/6x5J1ivUxc+sfq9w=", - "dev": true, + "@injectivelabs/sdk-ts": { + "version": "1.10.15", + "resolved": "https://registry.npmjs.org/@injectivelabs/sdk-ts/-/sdk-ts-1.10.15.tgz", + "integrity": "sha512-W8ysWwqmKBH8U8xe8n2B6vuSW9qu2sBf26VkdMGQE0del26EHfGSy5U5vTLGkdXP+ZgBabvcAzGhuIBr6V8vxQ==", "requires": { - "commander": "~2.8.1" + "@apollo/client": "^3.5.8", + "@cosmjs/amino": "^0.29.5", + "@cosmjs/proto-signing": "^0.29.5", + "@cosmjs/stargate": "^0.29.5", + "@ethersproject/bytes": "^5.7.0", + "@injectivelabs/core-proto-ts": "^0.0.11", + "@injectivelabs/exceptions": "^1.10.0", + "@injectivelabs/grpc-web": "^0.0.1", + "@injectivelabs/grpc-web-node-http-transport": "^0.0.2", + "@injectivelabs/grpc-web-react-native-transport": "^0.0.2", + "@injectivelabs/indexer-proto-ts": "^0.0.9", + "@injectivelabs/networks": "^1.10.0", + "@injectivelabs/ninja-proto-ts": "1.0.1", + "@injectivelabs/test-utils": "^1.10.0", + "@injectivelabs/token-metadata": "^1.10.4", + "@injectivelabs/ts-types": "^1.10.0", + "@injectivelabs/utils": "^1.10.0", + "@metamask/eth-sig-util": "^4.0.0", + "axios": "^0.27.2", + "bech32": "^2.0.0", + "bip39": "^3.0.4", + "cosmjs-types": "^0.7.1", + "eth-crypto": "^2.6.0", + "ethereumjs-util": "^7.1.4", + "ethers": "^5.6.4", + "google-protobuf": "^3.21.0", + "graphql": "^16.3.0", + "http-status-codes": "^2.2.0", + "js-sha3": "^0.8.0", + "jscrypto": "^1.0.3", + "keccak256": "^1.0.6", + "link-module-alias": "^1.2.0", + "rxjs": "^7.8.0", + "secp256k1": "^4.0.3", + "shx": "^0.3.2", + "snakecase-keys": "^5.4.1" }, "dependencies": { - "commander": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.8.1.tgz", - "integrity": "sha1-Br42f+v9oMMwqh4qBy09yXYkJdQ=", - "dev": true, + "@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==", "requires": { - "graceful-readlink": ">= 1.0.0" + "@types/node": "*" } - } - } - }, - "semaphore": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/semaphore/-/semaphore-1.1.0.tgz", - "integrity": "sha512-O4OZEaNtkMd/K0i6js9SL+gqy0ZCBMgUvlSqHKi4IBdjhe7wB8pwztUk1BbZ1fmrvpwFrPbHzqd2w5pTcJH6LA==" - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" - }, - "send": { - "version": "0.17.1", - "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz", - "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==", - "dev": true, - "requires": { - "debug": "2.6.9", - "depd": "~1.1.2", - "destroy": "~1.0.4", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "fresh": "0.5.2", - "http-errors": "~1.7.2", - "mime": "1.6.0", - "ms": "2.1.1", - "on-finished": "~2.3.0", - "range-parser": "~1.2.1", - "statuses": "~1.5.0" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, + }, + "axios": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.27.2.tgz", + "integrity": "sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==", "requires": { - "ms": "2.0.0" - }, - "dependencies": { - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - } + "follow-redirects": "^1.14.9", + "form-data": "^4.0.0" } }, - "ms": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", - "dev": true + "bn.js": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", + "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==" + }, + "ethereumjs-util": { + "version": "7.1.5", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.5.tgz", + "integrity": "sha512-SDl5kKrQAudFBUe5OJM9Ac6WmMyYmXX/6sTmLZ3ffG2eY6ZIGBes3pEDxNN6V72WyOw4CPD5RomKdsa8DAAwLg==", + "requires": { + "@types/bn.js": "^5.1.0", + "bn.js": "^5.1.2", + "create-hash": "^1.1.2", + "ethereum-cryptography": "^0.1.3", + "rlp": "^2.2.4" + } + }, + "follow-redirects": { + "version": "1.15.2", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", + "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==" + }, + "form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + } + }, + "graphql": { + "version": "16.6.0", + "resolved": "https://registry.npmjs.org/graphql/-/graphql-16.6.0.tgz", + "integrity": "sha512-KPIBPDlW7NxrbT/eh4qPXz5FiFdL5UbaA0XUNz2Rp3Z3hqBSkbj0GVjwFDztsWVauZUWsbKHgMg++sk8UX0bkw==" + }, + "rxjs": { + "version": "7.8.0", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.0.tgz", + "integrity": "sha512-F2+gxDshqmIub1KdvZkaEfGDwLNpPvk9Fs6LD/MyQxNgMds/WH9OdDDXOmxUZpME+iSK3rQCctkL0DYyytUqMg==", + "requires": { + "tslib": "^2.1.0" + } + }, + "secp256k1": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-4.0.3.tgz", + "integrity": "sha512-NLZVf+ROMxwtEj3Xa562qgv2BK5e2WNmXPiOdVIPLgs6lyTzMvBq0aWTYMI5XCP9jZMVKOcqZLw/Wc4vDkuxhA==", + "requires": { + "elliptic": "^6.5.4", + "node-addon-api": "^2.0.0", + "node-gyp-build": "^4.2.0" + } + }, + "tslib": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz", + "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==" } } }, - "sentence-case": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/sentence-case/-/sentence-case-2.1.1.tgz", - "integrity": "sha512-ENl7cYHaK/Ktwk5OTD+aDbQ3uC8IByu/6Bkg+HDv8Mm+XnBnppVNalcfJTNsp1ibstKh030/JKQQWglDvtKwEQ==", - "dev": true, - "requires": { - "no-case": "^2.2.0", - "upper-case-first": "^1.1.2" - } - }, - "serialize-javascript": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz", - "integrity": "sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==", - "requires": { - "randombytes": "^2.1.0" - } - }, - "serve-static": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz", - "integrity": "sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==", - "dev": true, - "requires": { - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "parseurl": "~1.3.3", - "send": "0.17.1" - } - }, - "servify": { - "version": "0.1.12", - "resolved": "https://registry.npmjs.org/servify/-/servify-0.1.12.tgz", - "integrity": "sha512-/xE6GvsKKqyo1BAY+KxOWXcLpPsUUyji7Qg3bVD7hh1eRze5bR1uYiuDA/k3Gof1s9BTzQZEJK8sNcNGFIzeWw==", - "dev": true, - "requires": { - "body-parser": "^1.16.0", - "cors": "^2.8.1", - "express": "^4.14.0", - "request": "^2.79.0", - "xhr": "^2.3.3" - } - }, - "set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" - }, - "set-immediate-shim": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz", - "integrity": "sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E=" - }, - "set-value": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", - "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", + "@injectivelabs/test-utils": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/@injectivelabs/test-utils/-/test-utils-1.10.0.tgz", + "integrity": "sha512-OS1AUq3Wu4nxhchpOa/zjAp2rgq5aKniLnNt07RzQQAM+4mPw3PcF7zWuClkUFAgVCxlpvFnV1f6LyzXW46mGQ==", "requires": { - "extend-shallow": "^2.0.1", - "is-extendable": "^0.1.1", - "is-plain-object": "^2.0.3", - "split-string": "^3.0.1" + "axios": "^0.21.1", + "bignumber.js": "^9.0.1", + "link-module-alias": "^1.2.0", + "shx": "^0.3.2", + "snakecase-keys": "^5.1.2", + "store2": "^2.12.0" }, "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "axios": { + "version": "0.21.4", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.4.tgz", + "integrity": "sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==", "requires": { - "is-extendable": "^0.1.0" + "follow-redirects": "^1.14.0" } }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=" + "bignumber.js": { + "version": "9.1.1", + "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.1.1.tgz", + "integrity": "sha512-pHm4LsMJ6lzgNGVfZHjMoO8sdoRhOzOH4MLmY65Jg70bpxCKu5iOHNJyfF6OyvYw7t8Fpf35RuzUyqnQsj8Vig==" + }, + "follow-redirects": { + "version": "1.15.2", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", + "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==" } } }, - "setimmediate": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.4.tgz", - "integrity": "sha1-IOgd5iLUoCWIzgyNqJc8vPHTE48=" - }, - "setprototypeof": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", - "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==" + "@injectivelabs/token-metadata": { + "version": "1.10.4", + "resolved": "https://registry.npmjs.org/@injectivelabs/token-metadata/-/token-metadata-1.10.4.tgz", + "integrity": "sha512-2uCRkL5pYaLSziva9w4cpH0AJ+JMgg2irA22dEkM5JPK9kLB4rv0gey1Us7EzcX6WnY4RRO3aN2e0uTG08WVzA==", + "requires": { + "@injectivelabs/exceptions": "^1.10.0", + "@injectivelabs/networks": "^1.10.0", + "@injectivelabs/ts-types": "^1.10.0", + "@injectivelabs/utils": "^1.10.0", + "@types/lodash.values": "^4.3.6", + "copyfiles": "^2.4.1", + "jsonschema": "^1.4.0", + "link-module-alias": "^1.2.0", + "lodash": "^4.17.21", + "lodash.values": "^4.3.0", + "shx": "^0.3.2" + } }, - "sha.js": { - "version": "2.4.11", - "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", - "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", + "@injectivelabs/ts-types": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/@injectivelabs/ts-types/-/ts-types-1.10.0.tgz", + "integrity": "sha512-2PczKP93fmkg4HIbg1ZWO115GF1oUQaCkc34SRDYDZ9oGjAnr3rV31tju4DW9uxT8eVb2olxqUy71LVHGD7AUA==", "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" + "link-module-alias": "^1.2.0", + "shx": "^0.3.2" } }, - "sha3": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/sha3/-/sha3-2.1.4.tgz", - "integrity": "sha512-S8cNxbyb0UGUM2VhRD4Poe5N58gJnJsLJ5vC7FYWGUmGhcsj4++WaIOBFVDxlG0W3To6xBuiRh+i0Qp2oNCOtg==", + "@injectivelabs/utils": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/@injectivelabs/utils/-/utils-1.10.0.tgz", + "integrity": "sha512-r7/z1+0Xd6XSYnLf+IO2ydQ0VRFBw2ETxWdvvkpsror3uYLvaAcuCjkRhNsOYM5R4VPCER+0TBm6sm5A1ahiQw==", "requires": { - "buffer": "6.0.3" + "@injectivelabs/exceptions": "^1.10.0", + "@injectivelabs/ts-types": "^1.10.0", + "axios": "^0.21.1", + "bignumber.js": "^9.0.1", + "http-status-codes": "^2.2.0", + "link-module-alias": "^1.2.0", + "shx": "^0.3.2", + "snakecase-keys": "^5.1.2", + "store2": "^2.12.0" }, "dependencies": { - "buffer": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", - "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "axios": { + "version": "0.21.4", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.4.tgz", + "integrity": "sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==", "requires": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" + "follow-redirects": "^1.14.0" } + }, + "bignumber.js": { + "version": "9.1.1", + "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.1.1.tgz", + "integrity": "sha512-pHm4LsMJ6lzgNGVfZHjMoO8sdoRhOzOH4MLmY65Jg70bpxCKu5iOHNJyfF6OyvYw7t8Fpf35RuzUyqnQsj8Vig==" + }, + "follow-redirects": { + "version": "1.15.2", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", + "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==" } } }, - "shallowequal": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/shallowequal/-/shallowequal-1.1.0.tgz", - "integrity": "sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==", + "@jridgewell/resolve-uri": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz", + "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==", "dev": true }, - "shebang-command": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", - "requires": { - "shebang-regex": "^1.0.0" - } - }, - "shebang-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=" - }, - "shelljs": { - "version": "0.8.5", - "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.5.tgz", - "integrity": "sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==", - "requires": { - "glob": "^7.0.0", - "interpret": "^1.0.0", - "rechoir": "^0.6.2" - } - }, - "shx": { - "version": "0.3.4", - "resolved": "https://registry.npmjs.org/shx/-/shx-0.3.4.tgz", - "integrity": "sha512-N6A9MLVqjxZYcVn8hLmtneQWIJtp8IKzMP4eMnx+nqkvXoqinUPCbUFLp2UcWTEIUONhlk0ewxr/jaVGlc+J+g==", - "requires": { - "minimist": "^1.2.3", - "shelljs": "^0.8.5" - } - }, - "signal-exit": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", - "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==", + "@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 }, - "simple-concat": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz", - "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==" - }, - "simple-get": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-2.8.1.tgz", - "integrity": "sha512-lSSHRSw3mQNUGPAYRqo7xy9dhKmxFXIjLjp4KHpf99GEH2VH7C3AM+Qfx6du6jhfUi6Vm7XnbEVEf7Wb6N8jRw==", + "@jridgewell/trace-mapping": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", + "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", + "dev": true, "requires": { - "decompress-response": "^3.3.0", - "once": "^1.3.1", - "simple-concat": "^1.0.0" + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" } }, - "simple-git": { - "version": "1.132.0", - "resolved": "https://registry.npmjs.org/simple-git/-/simple-git-1.132.0.tgz", - "integrity": "sha512-xauHm1YqCTom1sC9eOjfq3/9RKiUA9iPnxBbrY2DdL8l4ADMu0jjM5l5lphQP5YWNqAL2aXC/OeuQ76vHtW5fg==", - "dev": true, + "@metamask/eth-sig-util": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@metamask/eth-sig-util/-/eth-sig-util-4.0.1.tgz", + "integrity": "sha512-tghyZKLHZjcdlDqCA3gNZmLeR0XvOE9U1qoQO9ohyAZT6Pya+H9vkBPcsyXytmYLNgVoin7CKCmweo/R43V+tQ==", "requires": { - "debug": "^4.0.1" + "ethereumjs-abi": "^0.6.8", + "ethereumjs-util": "^6.2.1", + "ethjs-util": "^0.1.6", + "tweetnacl": "^1.0.3", + "tweetnacl-util": "^0.15.1" }, "dependencies": { - "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true + "tweetnacl": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.3.tgz", + "integrity": "sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==" } } }, - "slice-ansi": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz", - "integrity": "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==", - "dev": true, + "@morgan-stanley/ts-mocking-bird": { + "version": "0.6.4", + "resolved": "https://registry.npmjs.org/@morgan-stanley/ts-mocking-bird/-/ts-mocking-bird-0.6.4.tgz", + "integrity": "sha512-57VJIflP8eR2xXa9cD1LUawh+Gh+BVQfVu0n6GALyg/AqV/Nz25kDRvws3i9kIe1PTrbsZZOYpsYp6bXPd6nVA==", "requires": { - "ansi-styles": "^3.2.0", - "astral-regex": "^1.0.0", - "is-fullwidth-code-point": "^2.0.0" + "lodash": "^4.17.16", + "uuid": "^7.0.3" + }, + "dependencies": { + "uuid": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-7.0.3.tgz", + "integrity": "sha512-DPSke0pXhTZgoF/d+WSt2QaKMCFSfx7QegxEWT+JOuHF5aWrKEn0G+ztjuJg/gG8/ItK+rbPCD/yNv8yyih6Cg==" + } } }, - "snake-case": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/snake-case/-/snake-case-2.1.0.tgz", - "integrity": "sha512-FMR5YoPFwOLuh4rRz92dywJjyKYZNLpMn1R5ujVpIYkbA9p01fq8RMg0FkO4M+Yobt4MjHeLTJVm5xFFBHSV2Q==", - "dev": true, - "requires": { - "no-case": "^2.2.0" - } + "@noble/ed25519": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/@noble/ed25519/-/ed25519-1.7.3.tgz", + "integrity": "sha512-iR8GBkDt0Q3GyaVcIu7mSsVIqnFbkbRzGLWlvhwunacoLwt4J3swfKhfaM6rN6WY+TBGoYT1GtT1mIh2/jGbRQ==" }, - "snakecase-keys": { - "version": "5.4.5", - "resolved": "https://registry.npmjs.org/snakecase-keys/-/snakecase-keys-5.4.5.tgz", - "integrity": "sha512-qSQVcgcWk8mQUN1miVGnRMAUye1dbj9+F9PVkR7wZUXNCidQwrl/kOKmoYf+WbH2ju6c9pXnlmbS2he7pb2/9A==", + "@noble/hashes": { + "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": { + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/@noble/secp256k1/-/secp256k1-1.7.1.tgz", + "integrity": "sha512-hOUk6AyBFmqVrv7k5WAw/LpszxVbj9gGN4JRkIX52fdFAj1UA61KXmZDvqVEm+pOyec3+fIeZB02LYa/pWOArw==" + }, + "@openzeppelin/contracts": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/@openzeppelin/contracts/-/contracts-4.3.1.tgz", + "integrity": "sha512-QjgbPPlmDK2clK1hzjw2ROfY8KA5q+PfhDUUxZFEBCZP9fi6d5FuNoh/Uq0oCTMEKPmue69vhX2jcl0N/tFKGw==", + "dev": true + }, + "@project-serum/anchor": { + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/@project-serum/anchor/-/anchor-0.25.0.tgz", + "integrity": "sha512-E6A5Y/ijqpfMJ5psJvbw0kVTzLZFUcOFgs6eSM2M2iWE1lVRF18T6hWZVNl6zqZsoz98jgnNHtVGJMs+ds9A7A==", "requires": { - "map-obj": "^4.1.0", + "@project-serum/borsh": "^0.2.5", + "@solana/web3.js": "^1.36.0", + "base64-js": "^1.5.1", + "bn.js": "^5.1.2", + "bs58": "^4.0.1", + "buffer-layout": "^1.2.2", + "camelcase": "^5.3.1", + "cross-fetch": "^3.1.5", + "crypto-hash": "^1.3.0", + "eventemitter3": "^4.0.7", + "js-sha256": "^0.9.0", + "pako": "^2.0.3", "snake-case": "^3.0.4", - "type-fest": "^2.5.2" + "superstruct": "^0.15.4", + "toml": "^3.0.0" }, "dependencies": { + "bn.js": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", + "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==" + }, + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" + }, + "cross-fetch": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.5.tgz", + "integrity": "sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw==", + "requires": { + "node-fetch": "2.6.7" + } + }, "dot-case": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz", @@ -44732,6 +7346,11 @@ "tslib": "^2.0.3" } }, + "eventemitter3": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==" + }, "lower-case": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", @@ -44749,6 +7368,19 @@ "tslib": "^2.0.3" } }, + "node-fetch": { + "version": "2.6.7", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", + "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", + "requires": { + "whatwg-url": "^5.0.0" + } + }, + "pako": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/pako/-/pako-2.1.0.tgz", + "integrity": "sha512-w+eufiZ1WuJYgPXbV/PO3NCMEc3xqylkKHzp8bxp1uW4qaSNQUkwmLLEc3kKsfz8lpV1F8Ht3U1Cm+9Srog2ug==" + }, "snake-case": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/snake-case/-/snake-case-3.0.4.tgz", @@ -44762,2190 +7394,1057 @@ "version": "2.5.0", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz", "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==" - }, - "type-fest": { - "version": "2.19.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz", - "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==" - } - } - }, - "snapdragon": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", - "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", - "requires": { - "base": "^0.11.1", - "debug": "^2.2.0", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "map-cache": "^0.2.2", - "source-map": "^0.5.6", - "source-map-resolve": "^0.5.0", - "use": "^3.1.0" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } - }, - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "^0.1.0" - } - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - } - }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=" - }, - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" - } - } - }, - "snapdragon-node": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", - "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", - "requires": { - "define-property": "^1.0.0", - "isobject": "^3.0.0", - "snapdragon-util": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "requires": { - "is-descriptor": "^1.0.0" - } } } }, - "snapdragon-util": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", - "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", + "@project-serum/borsh": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/@project-serum/borsh/-/borsh-0.2.5.tgz", + "integrity": "sha512-UmeUkUoKdQ7rhx6Leve1SssMR/Ghv8qrEiyywyxSWg7ooV7StdpPBhciiy5eB3T0qU1BXvdRNC8TdrkxK7WC5Q==", "requires": { - "kind-of": "^3.2.0" + "bn.js": "^5.1.2", + "buffer-layout": "^1.2.0" }, "dependencies": { - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" - }, - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "solc-wrapper": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/solc-wrapper/-/solc-wrapper-0.6.3.tgz", - "integrity": "sha512-FWBnuQfU537SVSsBxuE4XkOKcK88a/bpLMVde2gc3BZcj0VmPc38wYO0Hkqqxsek7ZLK2lmXuEDLmgXhXl8Kyw==", - "dev": true, - "requires": { - "command-exists": "^1.2.8", - "fs-extra": "^0.30.0", - "js-sha3": "0.8.0", - "memorystream": "^0.3.1", - "require-from-string": "^2.0.0", - "semver": "^5.5.0", - "tmp": "0.0.33" - }, - "dependencies": { - "fs-extra": { - "version": "0.30.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-0.30.0.tgz", - "integrity": "sha1-8jP/zAjU2n1DLapEl3aYnbHfk/A=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "jsonfile": "^2.1.0", - "klaw": "^1.0.0", - "path-is-absolute": "^1.0.0", - "rimraf": "^2.2.8" - } - }, - "js-sha3": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.8.0.tgz", - "integrity": "sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q==", - "dev": true - }, - "jsonfile": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz", - "integrity": "sha1-NzaitCi4e72gzIO1P6PWM6NcKug=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.6" - } + "bn.js": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", + "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==" } } }, - "source-list-map": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz", - "integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==" - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" - }, - "source-map-resolve": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", - "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", - "requires": { - "atob": "^2.1.2", - "decode-uri-component": "^0.2.0", - "resolve-url": "^0.2.1", - "source-map-url": "^0.4.0", - "urix": "^0.1.0" - } - }, - "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==", - "requires": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "source-map-url": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz", - "integrity": "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==" - }, - "spark-md5": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/spark-md5/-/spark-md5-3.0.2.tgz", - "integrity": "sha512-wcFzz9cDfbuqe0FZzfi2or1sgyIrsDwmPwfZC4hiNidPdPINjeUwNfv5kldczoEAcjl9Y1L3SM7Uz2PUEQzxQw==", - "dev": true, - "optional": true - }, - "spinnies": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/spinnies/-/spinnies-0.3.2.tgz", - "integrity": "sha512-WOvGI8X3h2XbAu/VBzIG99qJTeWCZ5RjyZtuLc4Q6qwAIv1/OPA2aL9j5wYEhwNsWLbBDHH5bLk/bOJTpexljw==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "cli-cursor": "^3.0.0" - } - }, - "split-string": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", - "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", - "requires": { - "extend-shallow": "^3.0.0" - } - }, - "sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", - "dev": true - }, - "sshpk": { - "version": "1.16.1", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", - "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", - "requires": { - "asn1": "~0.2.3", - "assert-plus": "^1.0.0", - "bcrypt-pbkdf": "^1.0.0", - "dashdash": "^1.12.0", - "ecc-jsbn": "~0.1.1", - "getpass": "^0.1.1", - "jsbn": "~0.1.0", - "safer-buffer": "^2.0.2", - "tweetnacl": "~0.14.0" - } - }, - "ssri": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.2.tgz", - "integrity": "sha512-cepbSq/neFK7xB6A50KHN0xHDotYzq58wWCa5LeWqnPrHG8GzfEjO/4O8kpmcGW+oaxkvhEJCWgbgNk4/ZV93Q==", - "requires": { - "figgy-pudding": "^3.5.1" - } + "@protobufjs/aspromise": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", + "integrity": "sha1-m4sMxmPWaafY9vXQiToU00jzD78=" }, - "static-extend": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", - "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", - "requires": { - "define-property": "^0.2.5", - "object-copy": "^0.1.0" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - } - }, - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" - } - } + "@protobufjs/base64": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz", + "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==" }, - "statuses": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=" + "@protobufjs/codegen": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz", + "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==" }, - "store2": { - "version": "2.14.2", - "resolved": "https://registry.npmjs.org/store2/-/store2-2.14.2.tgz", - "integrity": "sha512-siT1RiqlfQnGqgT/YzXVUNsom9S0H1OX+dpdGN1xkyYATo4I6sep5NmsRD/40s3IIOvlCq6akxkqG82urIZW1w==" + "@protobufjs/eventemitter": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz", + "integrity": "sha1-NVy8mLr61ZePntCV85diHx0Ga3A=" }, - "stream-each": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/stream-each/-/stream-each-1.2.3.tgz", - "integrity": "sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw==", + "@protobufjs/fetch": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz", + "integrity": "sha1-upn7WYYUr2VwDBYZ/wbUVLDYTEU=", "requires": { - "end-of-stream": "^1.1.0", - "stream-shift": "^1.0.0" + "@protobufjs/aspromise": "^1.1.1", + "@protobufjs/inquire": "^1.1.0" } }, - "stream-shift": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz", - "integrity": "sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==" + "@protobufjs/float": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz", + "integrity": "sha1-Xp4avctz/Ap8uLKR33jIy9l7h9E=" + }, + "@protobufjs/inquire": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz", + "integrity": "sha1-/yAOPnzyQp4tyvwRQIKOjMY48Ik=" + }, + "@protobufjs/path": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz", + "integrity": "sha1-bMKyDFya1q0NzP0hynZz2Nf79o0=" }, - "strict-uri-encode": { + "@protobufjs/pool": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz", - "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=" + "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz", + "integrity": "sha1-Cf0V8tbTq/qbZbw2ZQbWrXhG/1Q=" }, - "string_decoder": { + "@protobufjs/utf8": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", + "integrity": "sha1-p3c2C1s5oaLlEG+OhY8v0tBgxXA=" + }, + "@scure/base": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "resolved": "https://registry.npmjs.org/@scure/base/-/base-1.1.1.tgz", + "integrity": "sha512-ZxOhsSyxYwLJj3pLZCefNitxsj093tb2vq90mp2txoYeBqbcjDjqFhyM8eUjq/uFm6zJ+mUuqxlS2FkuSY1MTA==" + }, + "@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==", "requires": { - "safe-buffer": "~5.1.0" + "@noble/hashes": "~1.1.1", + "@scure/base": "~1.1.0" }, "dependencies": { - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + "@noble/hashes": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.1.5.tgz", + "integrity": "sha512-LTMZiiLc+V4v1Yi16TD6aX2gmtKszNye0pQgbaLqkvhIqP7nVsSaJsWloGQjJfJ8offaoP5GtX3yY5swbcJxxQ==" } } }, - "string-format": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/string-format/-/string-format-2.0.0.tgz", - "integrity": "sha512-bbEs3scLeYNXLecRRuk6uJxdXUSj6le/8rNPHChIJTn2V79aXVTR1EH2OH5zLKKoz0V02fOUKZZcw01pLUShZA==" - }, - "string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "@solana/buffer-layout": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@solana/buffer-layout/-/buffer-layout-4.0.1.tgz", + "integrity": "sha512-E1ImOIAD1tBZFRdjeM4/pzTiTApC0AOBGwyAMS4fwIodCWArzJ3DWdoh8cKxeFM2fElkxBh2Aqts1BPC373rHA==", "requires": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" + "buffer": "~6.0.3" }, "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" - }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", "requires": { - "ansi-regex": "^3.0.0" + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" } } } }, - "string.prototype.trimend": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz", - "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - } - }, - "string.prototype.trimstart": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz", - "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - } - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "requires": { - "ansi-regex": "^4.1.0" - } - }, - "strip-dirs": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/strip-dirs/-/strip-dirs-2.1.0.tgz", - "integrity": "sha512-JOCxOeKLm2CAS73y/U4ZeZPTkE+gNVCzKt7Eox84Iej1LT/2pTWYpZKJuxwQpvX1LiZb1xokNR7RLfuBAa7T3g==", - "dev": true, + "@solana/buffer-layout-utils": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@solana/buffer-layout-utils/-/buffer-layout-utils-0.2.0.tgz", + "integrity": "sha512-szG4sxgJGktbuZYDg2FfNmkMi0DYQoVjN2h7ta1W1hPrwzarcFLBq9UpX1UjNXsNpT9dn+chgprtWGioUAr4/g==", "requires": { - "is-natural-number": "^4.0.1" + "@solana/buffer-layout": "^4.0.0", + "@solana/web3.js": "^1.32.0", + "bigint-buffer": "^1.1.5", + "bignumber.js": "^9.0.1" + }, + "dependencies": { + "bignumber.js": { + "version": "9.1.1", + "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.1.1.tgz", + "integrity": "sha512-pHm4LsMJ6lzgNGVfZHjMoO8sdoRhOzOH4MLmY65Jg70bpxCKu5iOHNJyfF6OyvYw7t8Fpf35RuzUyqnQsj8Vig==" + } } }, - "strip-hex-prefix": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-hex-prefix/-/strip-hex-prefix-1.0.0.tgz", - "integrity": "sha1-DF8VX+8RUTczd96du1iNoFUA428=", + "@solana/spl-token": { + "version": "0.3.7", + "resolved": "https://registry.npmjs.org/@solana/spl-token/-/spl-token-0.3.7.tgz", + "integrity": "sha512-bKGxWTtIw6VDdCBngjtsGlKGLSmiu/8ghSt/IOYJV24BsymRbgq7r12GToeetpxmPaZYLddKwAz7+EwprLfkfg==", "requires": { - "is-hex-prefixed": "1.0.0" + "@solana/buffer-layout": "^4.0.0", + "@solana/buffer-layout-utils": "^0.2.0", + "buffer": "^6.0.3" + }, + "dependencies": { + "buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "requires": { + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" + } + } } }, - "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==" - }, - "sublevel-pouchdb": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/sublevel-pouchdb/-/sublevel-pouchdb-7.3.1.tgz", - "integrity": "sha512-n+4fK72F/ORdqPwoGgMGYeOrW2HaPpW9o9k80bT1B3Cim5BSvkKkr9WbWOWynni/GHkbCEdvLVFJL1ktosAdhQ==", - "dev": true, - "optional": true, + "@solana/web3.js": { + "version": "1.74.0", + "resolved": "https://registry.npmjs.org/@solana/web3.js/-/web3.js-1.74.0.tgz", + "integrity": "sha512-RKZyPqizPCxmpMGfpu4fuplNZEWCrhRBjjVstv5QnAJvgln1jgOfgui+rjl1ExnqDnWKg9uaZ5jtGROH/cwabg==", "requires": { - "inherits": "2.0.4", - "level-codec": "9.0.2", - "ltgt": "2.2.1", - "readable-stream": "1.1.14" + "@babel/runtime": "^7.12.5", + "@noble/ed25519": "^1.7.0", + "@noble/hashes": "^1.1.2", + "@noble/secp256k1": "^1.6.3", + "@solana/buffer-layout": "^4.0.0", + "agentkeepalive": "^4.2.1", + "bigint-buffer": "^1.1.5", + "bn.js": "^5.0.0", + "borsh": "^0.7.0", + "bs58": "^4.0.1", + "buffer": "6.0.1", + "fast-stable-stringify": "^1.0.0", + "jayson": "^3.4.4", + "node-fetch": "^2.6.7", + "rpc-websockets": "^7.5.1", + "superstruct": "^0.14.2" }, "dependencies": { - "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==", - "dev": true, - "optional": true + "bn.js": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", + "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==" }, - "level-codec": { - "version": "9.0.2", - "resolved": "https://registry.npmjs.org/level-codec/-/level-codec-9.0.2.tgz", - "integrity": "sha512-UyIwNb1lJBChJnGfjmO0OR+ezh2iVu1Kas3nvBS/BzGnx79dv6g7unpKIDNPMhfdTEGoc7mC8uAu51XEtX+FHQ==", - "dev": true, - "optional": true, + "buffer": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.1.tgz", + "integrity": "sha512-rVAXBwEcEoYtxnHSO5iWyhzV/O1WMtkUYWlfdLS7FjU4PnSJJHEfHXi/uHPI5EwltmOA794gN3bm3/pzuctWjQ==", "requires": { - "buffer": "^5.6.0" + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" } }, - "readable-stream": { - "version": "1.1.14", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", - "integrity": "sha512-+MeVjFf4L44XUkhM1eYbD8fyEsxcV81pqMSR5gblfcLCHfZvbrqy4/qYHE+/R5HoBUT11WV5O08Cr1n3YXkWVQ==", - "dev": true, - "optional": true, + "eventemitter3": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==" + }, + "node-fetch": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.9.tgz", + "integrity": "sha512-DJm/CJkZkRjKKj4Zi4BsKVZh3ValV5IR5s7LVZnW+6YMh0W1BfNA8XSs6DLMGYlId5F3KnA70uu2qepcR08Qqg==", "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" + "whatwg-url": "^5.0.0" } }, - "string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==", - "dev": true, - "optional": true - } - } - }, - "subscriptions-transport-ws": { - "version": "0.9.19", - "resolved": "https://registry.npmjs.org/subscriptions-transport-ws/-/subscriptions-transport-ws-0.9.19.tgz", - "integrity": "sha512-dxdemxFFB0ppCLg10FTtRqH/31FNRL1y1BQv8209MK5I4CwALb7iihQg+7p65lFcIl8MHatINWBLOqpgU4Kyyw==", - "optional": true, - "peer": true, - "requires": { - "backo2": "^1.0.2", - "eventemitter3": "^3.1.0", - "iterall": "^1.2.1", - "symbol-observable": "^1.0.4", - "ws": "^5.2.0 || ^6.0.0 || ^7.0.0" - }, - "dependencies": { + "rpc-websockets": { + "version": "7.5.1", + "resolved": "https://registry.npmjs.org/rpc-websockets/-/rpc-websockets-7.5.1.tgz", + "integrity": "sha512-kGFkeTsmd37pHPMaHIgN1LVKXMi0JD782v4Ds9ZKtLlwdTKjn+CxM9A9/gLT2LaOuEcEFGL98h1QWQtlOIdW0w==", + "requires": { + "@babel/runtime": "^7.17.2", + "bufferutil": "^4.0.1", + "eventemitter3": "^4.0.7", + "utf-8-validate": "^5.0.2", + "uuid": "^8.3.2", + "ws": "^8.5.0" + } + }, + "superstruct": { + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/superstruct/-/superstruct-0.14.2.tgz", + "integrity": "sha512-nPewA6m9mR3d6k7WkZ8N8zpTWfenFH3q9pA2PkuiZxINr9DKB2+40wEQf0ixn8VaGuJ78AB6iWOtStI+/4FKZQ==" + }, + "uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==" + }, "ws": { - "version": "7.5.7", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.7.tgz", - "integrity": "sha512-KMvVuFzpKBuiIXW3E4u3mySRO2/mCHSyZDJQM5NQ9Q9KHWHWh0NHgfbRMLLrceUK5qAL4ytALJbpRMjixFZh8A==", - "optional": true, - "peer": true, + "version": "8.13.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.13.0.tgz", + "integrity": "sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA==", "requires": {} } } }, - "superstruct": { - "version": "0.15.5", - "resolved": "https://registry.npmjs.org/superstruct/-/superstruct-0.15.5.tgz", - "integrity": "sha512-4AOeU+P5UuE/4nOUkmcQdW5y7i9ndt1cQd/3iUe+LTz3RxESf/W/5lg4B74HbDMMv8PHnPnGCQFH45kBcrQYoQ==" - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "requires": { - "has-flag": "^3.0.0" - } - }, - "swap-case": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/swap-case/-/swap-case-1.1.2.tgz", - "integrity": "sha512-BAmWG6/bx8syfc6qXPprof3Mn5vQgf5dwdUNJhsNqU9WdPt5P+ES/wQ5bxfijy8zwZgZZHslC3iAsxsuQMCzJQ==", - "dev": true, + "@terra-money/legacy.proto": { + "version": "npm:@terra-money/terra.proto@0.1.7", + "resolved": "https://registry.npmjs.org/@terra-money/terra.proto/-/terra.proto-0.1.7.tgz", + "integrity": "sha512-NXD7f6pQCulvo6+mv6MAPzhOkUzRjgYVuHZE/apih+lVnPG5hDBU0rRYnOGGofwvKT5/jQoOENnFn/gioWWnyQ==", "requires": { - "lower-case": "^1.1.1", - "upper-case": "^1.1.1" + "google-protobuf": "^3.17.3", + "long": "^4.0.0", + "protobufjs": "~6.11.2" } }, - "swarm-js": { - "version": "0.1.39", - "resolved": "https://registry.npmjs.org/swarm-js/-/swarm-js-0.1.39.tgz", - "integrity": "sha512-QLMqL2rzF6n5s50BptyD6Oi0R1aWlJC5Y17SRIVXRj6OR1DRIPM7nepvrxxkjA1zNzFz6mUOMjfeqeDaWB7OOg==", - "dev": true, + "@terra-money/terra.js": { + "version": "3.1.8", + "resolved": "https://registry.npmjs.org/@terra-money/terra.js/-/terra.js-3.1.8.tgz", + "integrity": "sha512-Cd/fh4MswT00fDGVckoZ0cm77EpIy4+CjSDO0RqZ3Qfp4CJBp7sWTLRNsyzUWjdYOT5iTx+1wOMCYbbyKo6LAw==", "requires": { - "bluebird": "^3.5.0", - "buffer": "^5.0.5", - "decompress": "^4.0.0", - "eth-lib": "^0.1.26", - "fs-extra": "^4.0.2", - "got": "^7.1.0", - "mime-types": "^2.1.16", - "mkdirp-promise": "^5.0.1", - "mock-fs": "^4.1.0", - "setimmediate": "^1.0.5", - "tar": "^4.0.2", - "xhr-request-promise": "^0.1.2" - }, - "dependencies": { - "fs-extra": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-4.0.3.tgz", - "integrity": "sha512-q6rbdDd1o2mAnQreO7YADIxf/Whx4AHBiRf6d+/cVT8h44ss+lHgxf1FemcqDnQt9X3ct4McHr+JMGlYSsK7Cg==", - "dev": true, + "@classic-terra/terra.proto": "^1.1.0", + "@terra-money/terra.proto": "^2.1.0", + "axios": "^0.27.2", + "bech32": "^2.0.0", + "bip32": "^2.0.6", + "bip39": "^3.0.3", + "bufferutil": "^4.0.3", + "decimal.js": "^10.2.1", + "jscrypto": "^1.0.1", + "readable-stream": "^3.6.0", + "secp256k1": "^4.0.2", + "tmp": "^0.2.1", + "utf-8-validate": "^5.0.5", + "ws": "^7.5.9" + }, + "dependencies": { + "axios": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.27.2.tgz", + "integrity": "sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==", "requires": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" + "follow-redirects": "^1.14.9", + "form-data": "^4.0.0" } }, - "get-stream": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", - "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=", - "dev": true + "follow-redirects": { + "version": "1.15.2", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", + "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==" }, - "got": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/got/-/got-7.1.0.tgz", - "integrity": "sha512-Y5WMo7xKKq1muPsxD+KmrR8DH5auG7fBdDVueZwETwV6VytKyU9OX/ddpq2/1hp1vIPvVb4T81dKQz3BivkNLw==", - "dev": true, + "form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", "requires": { - "decompress-response": "^3.2.0", - "duplexer3": "^0.1.4", - "get-stream": "^3.0.0", - "is-plain-obj": "^1.1.0", - "is-retry-allowed": "^1.0.0", - "is-stream": "^1.0.0", - "isurl": "^1.0.0-alpha5", - "lowercase-keys": "^1.0.0", - "p-cancelable": "^0.3.0", - "p-timeout": "^1.1.1", - "safe-buffer": "^5.0.1", - "timed-out": "^4.0.0", - "url-parse-lax": "^1.0.0", - "url-to-options": "^1.0.1" + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" } }, - "p-cancelable": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-0.3.0.tgz", - "integrity": "sha512-RVbZPLso8+jFeq1MfNvgXtCRED2raz/dKpacfTNxsx6pLEpEomM7gah6VeHSYV3+vo0OAi4MkArtQcWWXuQoyw==", - "dev": true - }, - "prepend-http": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", - "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=", - "dev": true - }, - "setimmediate": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", - "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=", - "dev": true - }, - "url-parse-lax": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz", - "integrity": "sha1-evjzA2Rem9eaJy56FKxovAYJ2nM=", - "dev": true, + "readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", "requires": { - "prepend-http": "^1.0.1" + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" } - } - } - }, - "symbol-observable": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.2.0.tgz", - "integrity": "sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ==", - "devOptional": true - }, - "table": { - "version": "5.4.6", - "resolved": "https://registry.npmjs.org/table/-/table-5.4.6.tgz", - "integrity": "sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug==", - "dev": true, - "requires": { - "ajv": "^6.10.2", - "lodash": "^4.17.14", - "slice-ansi": "^2.1.0", - "string-width": "^3.0.0" - }, - "dependencies": { - "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==", - "dev": true, + }, + "rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" + "glob": "^7.1.3" } - } - } - }, - "table-layout": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/table-layout/-/table-layout-1.0.2.tgz", - "integrity": "sha512-qd/R7n5rQTRFi+Zf2sk5XVVd9UQl6ZkduPFC3S7WEGJAmetDTjY3qPN50eSKzwuzEyQKy5TN2TiZdkIjos2L6A==", - "requires": { - "array-back": "^4.0.1", - "deep-extend": "~0.6.0", - "typical": "^5.2.0", - "wordwrapjs": "^4.0.0" - }, - "dependencies": { - "array-back": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-4.0.2.tgz", - "integrity": "sha512-NbdMezxqf94cnNfWLL7V/im0Ub+Anbb0IoZhvzie8+4HJ4nMQuzHuy49FkGYCJK2yAloZ3meiB6AVMClbrI1vg==" }, - "typical": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/typical/-/typical-5.2.0.tgz", - "integrity": "sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg==" - } - } - }, - "tar": { - "version": "4.4.13", - "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.13.tgz", - "integrity": "sha512-w2VwSrBoHa5BsSyH+KxEqeQBAllHhccyMFVHtGtdMpF4W7IRWfZjFiQceJPChOeTsSDVUpER2T8FA93pr0L+QA==", - "dev": true, - "requires": { - "chownr": "^1.1.1", - "fs-minipass": "^1.2.5", - "minipass": "^2.8.6", - "minizlib": "^1.2.1", - "mkdirp": "^0.5.0", - "safe-buffer": "^5.1.2", - "yallist": "^3.0.3" - }, - "dependencies": { - "mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "dev": true, + "tmp": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz", + "integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==", "requires": { - "minimist": "^1.2.5" + "rimraf": "^3.0.0" } + }, + "ws": { + "version": "7.5.9", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz", + "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==", + "requires": {} } } }, - "tar-stream": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-1.6.2.tgz", - "integrity": "sha512-rzS0heiNf8Xn7/mpdSVVSMAWAoy9bfb1WOTYC78Z0UQKeKa/CWS8FOq0lKGNa8DWKAn9gxjCvMLYc5PGXYlK2A==", - "dev": true, - "requires": { - "bl": "^1.0.0", - "buffer-alloc": "^1.2.0", - "end-of-stream": "^1.0.0", - "fs-constants": "^1.0.0", - "readable-stream": "^2.3.0", - "to-buffer": "^1.1.1", - "xtend": "^4.0.0" - } - }, - "test-value": { + "@terra-money/terra.proto": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/test-value/-/test-value-2.1.0.tgz", - "integrity": "sha512-+1epbAxtKeXttkGFMTX9H42oqzOTufR1ceCF+GYA5aOmvaPq9wd4PUS8329fn2RRLGNeUkgRLnVpycjx8DsO2w==", - "dev": true, + "resolved": "https://registry.npmjs.org/@terra-money/terra.proto/-/terra.proto-2.1.0.tgz", + "integrity": "sha512-rhaMslv3Rkr+QsTQEZs64FKA4QlfO0DfQHaR6yct/EovenMkibDEQ63dEL6yJA6LCaEQGYhyVB9JO9pTUA8ybw==", "requires": { - "array-back": "^1.0.3", - "typical": "^2.6.0" + "@improbable-eng/grpc-web": "^0.14.1", + "google-protobuf": "^3.17.3", + "long": "^4.0.0", + "protobufjs": "~6.11.2" }, "dependencies": { - "array-back": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-1.0.4.tgz", - "integrity": "sha512-1WxbZvrmyhkNoeYcizokbmh5oiOCIfyvGtcqbK3Ls1v1fKcquzxnQSceOx6tzq7jmai2kFLWIpGND2cLhH6TPw==", - "dev": true, + "@improbable-eng/grpc-web": { + "version": "0.14.1", + "resolved": "https://registry.npmjs.org/@improbable-eng/grpc-web/-/grpc-web-0.14.1.tgz", + "integrity": "sha512-XaIYuunepPxoiGVLLHmlnVminUGzBTnXr8Wv7khzmLWbNw4TCwJKX09GSMJlKhu/TRk6gms0ySFxewaETSBqgw==", "requires": { - "typical": "^2.6.0" + "browser-headers": "^0.4.1" } - }, - "typical": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/typical/-/typical-2.6.1.tgz", - "integrity": "sha512-ofhi8kjIje6npGozTip9Fr8iecmYfEbS06i0JnIg+rh51KakryWF4+jX8lLKZVhy6N+ID45WYSFCxPOdTWCzNg==", - "dev": true } } }, - "text-encoding-utf-8": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/text-encoding-utf-8/-/text-encoding-utf-8-1.0.2.tgz", - "integrity": "sha512-8bw4MY9WjdsD2aMtO0OzOCY3pXGYNx2d2FfHRVUKkiCPDWjKuOlhLVASS+pD7VkLTVjW268LYJHwsnPFlBpbAg==" + "@tsconfig/node10": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.9.tgz", + "integrity": "sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==", + "dev": true }, - "text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", + "@tsconfig/node12": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz", + "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==", "dev": true }, - "through": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=" + "@tsconfig/node14": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz", + "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==", + "dev": true }, - "through2": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/through2/-/through2-3.0.2.tgz", - "integrity": "sha512-enaDQ4MUyP2W6ZyT6EsMzqBPZaM/avg8iuo+l2d3QCs0J+6RaqkHV/2/lOwDTueBHeJ/2LG9lrLW3d5rWPucuQ==", - "dev": true, - "optional": true, + "@tsconfig/node16": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.4.tgz", + "integrity": "sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==", + "dev": true + }, + "@typechain/ethers-v5": { + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/@typechain/ethers-v5/-/ethers-v5-10.2.0.tgz", + "integrity": "sha512-ikaq0N/w9fABM+G01OFmU3U3dNnyRwEahkdvi9mqy1a3XwKiPZaF/lu54OcNaEWnpvEYyhhS0N7buCtLQqC92w==", "requires": { - "inherits": "^2.0.4", - "readable-stream": "2 || 3" + "lodash": "^4.17.15", + "ts-essentials": "^7.0.1" + }, + "dependencies": { + "ts-essentials": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/ts-essentials/-/ts-essentials-7.0.3.tgz", + "integrity": "sha512-8+gr5+lqO3G84KdiTSMRLtuyJ+nTBVRKuCrK4lidMPdVeEp0uqC875uE5NMcaA7YYMN7XsNiFQuMvasF8HT/xQ==", + "requires": {} + } } }, - "timed-out": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz", - "integrity": "sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8=" - }, - "timers-browserify": { - "version": "2.0.12", - "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.12.tgz", - "integrity": "sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ==", + "@types/bn.js": { + "version": "4.11.6", + "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-4.11.6.tgz", + "integrity": "sha512-pqr857jrp2kPuO9uRjZ3PwnJTjoQy+fcdxvBTvHm6dkmEL9q+hDD/2j/0ELOBPtPnS8LjCX0gI9nbl8lVkadpg==", "requires": { - "setimmediate": "^1.0.4" + "@types/node": "*" } }, - "tiny-secp256k1": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/tiny-secp256k1/-/tiny-secp256k1-1.1.6.tgz", - "integrity": "sha512-FmqJZGduTyvsr2cF3375fqGHUovSwDi/QytexX1Se4BPuPZpTE5Ftp5fg+EFSuEf3lhZqgCRjEG3ydUQ/aNiwA==", + "@types/connect": { + "version": "3.4.35", + "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz", + "integrity": "sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==", "requires": { - "bindings": "^1.3.0", - "bn.js": "^4.11.8", - "create-hmac": "^1.1.7", - "elliptic": "^6.4.0", - "nan": "^2.13.2" + "@types/node": "*" } }, - "tiny-typed-emitter": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/tiny-typed-emitter/-/tiny-typed-emitter-2.1.0.tgz", - "integrity": "sha512-qVtvMxeXbVej0cQWKqVSSAHmKZEHAvxdF8HEUBFWts8h+xEo5m/lEiPakuyZ3BnCBjOD8i24kzNOiOLLgsSxhA==", - "dev": true, - "optional": true + "@types/lodash": { + "version": "4.14.192", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.192.tgz", + "integrity": "sha512-km+Vyn3BYm5ytMO13k9KTp27O75rbQ0NFw+U//g+PX7VZyjCioXaRFisqSIJRECljcTv73G3i6BpglNGHgUQ5A==" }, - "title-case": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/title-case/-/title-case-2.1.1.tgz", - "integrity": "sha512-EkJoZ2O3zdCz3zJsYCsxyq2OC5hrxR9mfdd5I+w8h/tmFfeOxJ+vvkxsKxdmN0WtS9zLdHEgfgVOiMVgv+Po4Q==", - "dev": true, + "@types/lodash.values": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/@types/lodash.values/-/lodash.values-4.3.7.tgz", + "integrity": "sha512-Moex9/sWxtKEa+BKiH5zvmhfcieDlcz4wRxMhO/oJ2qOKUdujoU6dQjUTxWA8jwEREpHXmiY4HCwNRpycW8JQA==", "requires": { - "no-case": "^2.2.0", - "upper-case": "^1.0.3" + "@types/lodash": "*" } }, - "tmp": { - "version": "0.0.33", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", - "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", - "dev": true, + "@types/long": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@types/long/-/long-4.0.2.tgz", + "integrity": "sha512-MqTGEo5bj5t157U6fA/BiDynNkn0YknVdh48CMPkTSpFTVmvao5UQmm7uEF6xBEo7qIMAlY/JSleYaE6VOdpaA==" + }, + "@types/node": { + "version": "18.15.11", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.15.11.tgz", + "integrity": "sha512-E5Kwq2n4SbMzQOn6wnmBjuK9ouqlURrcZDVfbo9ftDDTFt3nk7ZKK4GMOzoYgnpQJKcxwQw+lGaBvvlMo0qN/Q==" + }, + "@types/pbkdf2": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@types/pbkdf2/-/pbkdf2-3.1.0.tgz", + "integrity": "sha512-Cf63Rv7jCQ0LaL8tNXmEyqTHuIJxRdlS5vMh1mj5voN4+QFhVZnlZruezqpWYDiJ8UTzhP0VmeLXCmBk66YrMQ==", "requires": { - "os-tmpdir": "~1.0.2" + "@types/node": "*" } }, - "to-arraybuffer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", - "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=" - }, - "to-buffer": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/to-buffer/-/to-buffer-1.1.1.tgz", - "integrity": "sha512-lx9B5iv7msuFYE3dytT+KE5tap+rNYw+K4jVkb9R/asAb+pbBSM17jtunHplhBe6RRJdZx3Pn2Jph24O32mOVg==", - "dev": true - }, - "to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=" - }, - "to-object-path": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", - "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", + "@types/secp256k1": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@types/secp256k1/-/secp256k1-4.0.1.tgz", + "integrity": "sha512-+ZjSA8ELlOp8SlKi0YLB2tz9d5iPNEmOBd+8Rz21wTMdaXQIa9b6TEnD6l5qKOCypE7FSyPyck12qZJxSDNoog==", "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" - }, - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } + "@types/node": "*" } }, - "to-readable-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz", - "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==", - "dev": true - }, - "to-regex": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", - "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", + "@types/ws": { + "version": "7.4.7", + "resolved": "https://registry.npmjs.org/@types/ws/-/ws-7.4.7.tgz", + "integrity": "sha512-JQbbmxZTZehdc2iszGKs5oC3NFnjeay7mtAWrdt7qNtAVK0g19muApzAy4bm9byz79xa2ZnO/BOBC2R8RC5Lww==", "requires": { - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "regex-not": "^1.0.2", - "safe-regex": "^1.1.0" + "@types/node": "*" } }, - "to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "@wry/context": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/@wry/context/-/context-0.7.0.tgz", + "integrity": "sha512-LcDAiYWRtwAoSOArfk7cuYvFXytxfVrdX7yxoUmK7pPITLk5jYh2F8knCwS7LjgYL8u1eidPlKKV6Ikqq0ODqQ==", "requires": { - "is-number": "^7.0.0" + "tslib": "^2.3.0" + }, + "dependencies": { + "tslib": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz", + "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==" + } } }, - "toidentifier": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", - "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==" - }, - "toml": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/toml/-/toml-3.0.0.tgz", - "integrity": "sha512-y/mWCZinnvxjTKYhJ+pYxwD0mRLVvOtdS2Awbgxln6iEnt4rk0yBxeSBHkGJcPucRiG0e55mwWp+g/05rsrd6w==" - }, - "toposort": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/toposort/-/toposort-2.0.2.tgz", - "integrity": "sha1-riF2gXXRVZ1IvvNUILL0li8JwzA=", - "dev": true - }, - "tough-cookie": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", - "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", - "dev": true, + "@wry/trie": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@wry/trie/-/trie-0.3.2.tgz", + "integrity": "sha512-yRTyhWSls2OY/pYLfwff867r8ekooZ4UI+/gxot5Wj8EFwSf2rG+n+Mo/6LoLQm1TKA4GRj2+LCpbfS937dClQ==", "requires": { - "psl": "^1.1.28", - "punycode": "^2.1.1" + "tslib": "^2.3.0" + }, + "dependencies": { + "tslib": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz", + "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==" + } } }, - "tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=" - }, - "truffle": { - "version": "5.8.4", - "resolved": "https://registry.npmjs.org/truffle/-/truffle-5.8.4.tgz", - "integrity": "sha512-wl5q6geB1Elq+A8knQ5zW9v9ARDiiawDkZOJZF7D0CN8zXmgGzdO4+EFZ4Ig3O4U70c0J2F2s27Oxj2XB4/SiA==", - "dev": true, + "@xpla/xpla.js": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@xpla/xpla.js/-/xpla.js-0.2.3.tgz", + "integrity": "sha512-Tfk7hCGWXtwr08reY3Pi6dmzIqFbzri9jcyzJdfNmdo4cN0PMwpRJuZZcPmtxiIUnNef3AN1E/6nJUD5MKniuA==", "requires": { - "@truffle/db": "^2.0.23", - "@truffle/db-loader": "^0.2.23", - "@truffle/debugger": "^11.0.34", - "app-module-path": "^2.2.0", - "ganache": "7.8.0", - "mocha": "10.1.0", - "original-require": "^1.0.1" + "@ethersproject/bytes": "^5.6.1", + "@ethersproject/keccak256": "^5.6.1", + "@ethersproject/signing-key": "^5.6.2", + "@terra-money/legacy.proto": "npm:@terra-money/terra.proto@^0.1.7", + "@terra-money/terra.proto": "^2.1.0", + "axios": "^0.26.1", + "bech32": "^2.0.0", + "bip32": "^2.0.6", + "bip39": "^3.0.3", + "bufferutil": "^4.0.3", + "crypto-addr-codec": "^0.1.7", + "decimal.js": "^10.2.1", + "elliptic": "^6.5.4", + "ethereumjs-util": "^7.1.5", + "jscrypto": "^1.0.1", + "readable-stream": "^3.6.0", + "secp256k1": "^4.0.2", + "tmp": "^0.2.1", + "utf-8-validate": "^5.0.5", + "ws": "^7.5.8" }, "dependencies": { - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, + "@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==", "requires": { - "color-convert": "^2.0.1" + "@types/node": "*" } }, - "argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true - }, - "brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, + "axios": { + "version": "0.26.1", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.26.1.tgz", + "integrity": "sha512-fPwcX4EvnSHuInCMItEhAGnaSEXRBjtzh9fOtsE6E1G6p7vl7edEeZe11QHf18+6+9gR5PbKV/sGKNaD8YaMeA==", "requires": { - "balanced-match": "^1.0.0" + "follow-redirects": "^1.14.8" } }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, + "bn.js": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", + "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==" + }, + "ethereumjs-util": { + "version": "7.1.5", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.5.tgz", + "integrity": "sha512-SDl5kKrQAudFBUe5OJM9Ac6WmMyYmXX/6sTmLZ3ffG2eY6ZIGBes3pEDxNN6V72WyOw4CPD5RomKdsa8DAAwLg==", "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "dependencies": { - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } + "@types/bn.js": "^5.1.0", + "bn.js": "^5.1.2", + "create-hash": "^1.1.2", + "ethereum-cryptography": "^0.1.3", + "rlp": "^2.2.4" } }, - "chokidar": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", - "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", - "dev": true, + "follow-redirects": { + "version": "1.15.2", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", + "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==" + }, + "readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", "requires": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "fsevents": "~2.3.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" + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" } }, - "cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", - "dev": true, + "rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" + "glob": "^7.1.3" } }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, + "tmp": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz", + "integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==", "requires": { - "color-name": "~1.1.4" + "rimraf": "^3.0.0" } }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, + "ws": { + "version": "7.5.9", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz", + "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==", + "requires": {} + } + } + }, + "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 + }, + "aes-js": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/aes-js/-/aes-js-3.0.0.tgz", + "integrity": "sha1-4h3xCtbCBTKVvLuNq0Cwnb6ofk0=" + }, + "agentkeepalive": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.3.0.tgz", + "integrity": "sha512-7Epl1Blf4Sy37j4v9f9FjICCh4+KAQOyXgHEwlyBiAQLbhKdq/i2QQU3amQalS/wPhdPzDXPL5DMR5bkn+YeWg==", + "requires": { + "debug": "^4.1.0", + "depd": "^2.0.0", + "humanize-ms": "^1.2.1" + }, + "dependencies": { "debug": { "version": "4.3.4", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "requires": { - "ms": "2.1.2" - }, - "dependencies": { - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - } - } - }, - "diff": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz", - "integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==", - "dev": true - }, - "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==", - "dev": true - }, - "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==", - "dev": true - }, - "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==", - "dev": true, - "requires": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - } - }, - "glob": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", - "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", - "dev": true, - "requires": { - "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" - } - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "is-fullwidth-code-point": { - "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==", - "dev": true - }, - "js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dev": true, - "requires": { - "argparse": "^2.0.1" - } - }, - "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==", - "dev": true, - "requires": { - "p-locate": "^5.0.0" - } - }, - "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==", - "dev": true, "requires": { - "chalk": "^4.1.0", - "is-unicode-supported": "^0.1.0" + "ms": "2.1.2" } }, - "mocha": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/mocha/-/mocha-10.1.0.tgz", - "integrity": "sha512-vUF7IYxEoN7XhQpFLxQAEMtE4W91acW4B6En9l97MwE9stL1A9gusXfoHZCLVHDUJ/7V5+lbCM6yMqzo5vNymg==", - "dev": true, - "requires": { - "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" - }, - "dependencies": { - "minimatch": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.0.1.tgz", - "integrity": "sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g==", - "dev": true, - "requires": { - "brace-expansion": "^2.0.1" - } - } - } + "depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==" }, "ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "dev": true - }, - "nanoid": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.3.tgz", - "integrity": "sha512-p1sjXuopFs0xg+fPASzQ28agW1oHD7xDsd9Xkf3T15H3c/cifrFHVwrh74PdoklAPi+i7MdRsE47vm2r6JoB+w==", - "dev": true - }, - "p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "dev": true, - "requires": { - "yocto-queue": "^0.1.0" - } - }, - "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==", - "dev": true, - "requires": { - "p-limit": "^3.0.2" - } - }, - "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==", - "dev": true - }, - "readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "dev": true, - "requires": { - "picomatch": "^2.2.1" - } - }, - "serialize-javascript": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", - "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==", - "dev": true, + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + } + } + }, + "algo-msgpack-with-bigint": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/algo-msgpack-with-bigint/-/algo-msgpack-with-bigint-2.1.1.tgz", + "integrity": "sha512-F1tGh056XczEaEAqu7s+hlZUDWwOBT70Eq0lfMpBP2YguSQVyxRbprLq5rELXKQOyOaixTWYhMeMQMzP0U5FoQ==" + }, + "algosdk": { + "version": "1.24.1", + "resolved": "https://registry.npmjs.org/algosdk/-/algosdk-1.24.1.tgz", + "integrity": "sha512-9moZxdqeJ6GdE4N6fA/GlUP4LrbLZMYcYkt141J4Ss68OfEgH9qW0wBuZ3ZOKEx/xjc5bg7mLP2Gjg7nwrkmww==", + "requires": { + "algo-msgpack-with-bigint": "^2.1.1", + "buffer": "^6.0.2", + "cross-fetch": "^3.1.5", + "hi-base32": "^0.5.1", + "js-sha256": "^0.9.0", + "js-sha3": "^0.8.0", + "js-sha512": "^0.8.0", + "json-bigint": "^1.0.0", + "tweetnacl": "^1.0.3", + "vlq": "^2.0.4" + }, + "dependencies": { + "buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", "requires": { - "randombytes": "^2.1.0" + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" } }, - "string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, + "cross-fetch": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.5.tgz", + "integrity": "sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw==", "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" + "node-fetch": "2.6.7" } }, - "strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, + "node-fetch": { + "version": "2.6.7", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", + "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", "requires": { - "ansi-regex": "^5.0.1" + "whatwg-url": "^5.0.0" } }, - "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, - "requires": { - "has-flag": "^4.0.0" - } + "tweetnacl": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.3.tgz", + "integrity": "sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==" + } + } + }, + "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==", + "requires": { + "color-convert": "^1.9.0" + } + }, + "aptos": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/aptos/-/aptos-1.5.0.tgz", + "integrity": "sha512-N7OuRtU7IYHkDkNx+4QS3g/QQGCp+36KzYn3oXPmT7Kttfuv+UKliQVdjy3cLmwd/DCQSh9ObTovwdxnHjUn0g==", + "requires": { + "@noble/hashes": "1.1.3", + "@scure/bip39": "1.1.0", + "axios": "0.27.2", + "form-data": "4.0.0", + "tweetnacl": "1.0.3" + }, + "dependencies": { + "@noble/hashes": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.1.3.tgz", + "integrity": "sha512-CE0FCR57H2acVI5UOzIGSSIYxZ6v/HOhDR0Ro9VLyhnzLwx0o8W1mmgaqlEUx4049qJDlIBRztv5k+MM8vbO3A==" }, - "wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, + "axios": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.27.2.tgz", + "integrity": "sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==", "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" + "follow-redirects": "^1.14.9", + "form-data": "^4.0.0" } }, - "y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "dev": true + "follow-redirects": { + "version": "1.15.2", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", + "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==" }, - "yargs": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", - "dev": true, + "form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", "requires": { - "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" + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" } }, - "yargs-parser": { - "version": "20.2.4", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz", - "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==", - "dev": true + "tweetnacl": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.3.tgz", + "integrity": "sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==" + } + } + }, + "arg": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", + "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", + "dev": true + }, + "array-back": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-3.1.0.tgz", + "integrity": "sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q==" + }, + "async-limiter": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz", + "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==", + "peer": true + }, + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" + }, + "backo2": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/backo2/-/backo2-1.0.2.tgz", + "integrity": "sha1-MasayLEpNjRj41s+u2n038+6eUc=", + "optional": true, + "peer": true + }, + "balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" + }, + "base-x": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.8.tgz", + "integrity": "sha512-Rl/1AWP4J/zRrk54hhlxH4drNxPJXYUaKffODVI53/dAsV4t9fBxyxYKAVPU1XBHxYwOWP9h9H0hM2MVw4YfJA==", + "requires": { + "safe-buffer": "^5.0.1" + } + }, + "base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==" + }, + "bech32": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/bech32/-/bech32-2.0.0.tgz", + "integrity": "sha512-LcknSilhIGatDAsY1ak2I8VtGaHNhgMSYVxFrGLXv+xLHytaKZKcaUJJUE7qmBr7h33o5YQwP55pMI0xmkpJwg==" + }, + "big-integer": { + "version": "1.6.36", + "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.36.tgz", + "integrity": "sha512-t70bfa7HYEA1D9idDbmuv7YbsbVkQ+Hp+8KFSul4aE5e/i1bjCNIRYJZlA8Q8p0r9T8cF/RVvwUgRA//FydEyg==" + }, + "bigint-buffer": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/bigint-buffer/-/bigint-buffer-1.1.5.tgz", + "integrity": "sha512-trfYco6AoZ+rKhKnxA0hgX0HAbVP/s808/EuDSe2JDzUnCp/xAsli35Orvk67UrTEcwuxZqYZDmfA2RXJgxVvA==", + "requires": { + "bindings": "^1.3.0" + } + }, + "binary-parser": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/binary-parser/-/binary-parser-2.2.1.tgz", + "integrity": "sha512-5ATpz/uPDgq5GgEDxTB4ouXCde7q2lqAQlSdBRQVl/AJnxmQmhIfyxJx+0MGu//D5rHQifkfGbWWlaysG0o9NA==" + }, + "bindings": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", + "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", + "requires": { + "file-uri-to-path": "1.0.0" + } + }, + "bip32": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/bip32/-/bip32-2.0.6.tgz", + "integrity": "sha512-HpV5OMLLGTjSVblmrtYRfFFKuQB+GArM0+XP8HGWfJ5vxYBqo+DesvJwOdC2WJ3bCkZShGf0QIfoIpeomVzVdA==", + "requires": { + "@types/node": "10.12.18", + "bs58check": "^2.1.1", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "tiny-secp256k1": "^1.1.3", + "typeforce": "^1.11.5", + "wif": "^2.0.6" + }, + "dependencies": { + "@types/node": { + "version": "10.12.18", + "resolved": "https://registry.npmjs.org/@types/node/-/node-10.12.18.tgz", + "integrity": "sha512-fh+pAqt4xRzPfqA6eh3Z2y6fyZavRIumvjhaCL753+TVkGKGhpPeyrJG2JftD0T9q4GF00KjefsQ+PQNDdWQaQ==" } } }, - "truffle-config": { - "version": "1.1.16", - "resolved": "https://registry.npmjs.org/truffle-config/-/truffle-config-1.1.16.tgz", - "integrity": "sha512-of9wKDjXAKIA4kpdQbxnSxRl4EOPi6ipkoOn01J3yC1UJ942jeyLm7hUrTRdxcL8Nz3G47xO+xTMX5T7UYbdTA==", - "dev": true, + "bip39": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/bip39/-/bip39-3.0.4.tgz", + "integrity": "sha512-YZKQlb752TrUWqHWj7XAwCSjYEgGAk+/Aas3V7NyjQeZYsztO8JnQUaCWhcnL4T+jL8nvB8typ2jRPzTlgugNw==", "requires": { - "configstore": "^4.0.0", - "find-up": "^2.1.0", - "lodash": "^4.17.13", - "original-require": "1.0.1", - "truffle-error": "^0.0.5", - "truffle-provider": "^0.1.12" + "@types/node": "11.11.6", + "create-hash": "^1.1.0", + "pbkdf2": "^3.0.9", + "randombytes": "^2.0.1" }, "dependencies": { - "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "dev": true, - "requires": { - "locate-path": "^2.0.0" - } + "@types/node": { + "version": "11.11.6", + "resolved": "https://registry.npmjs.org/@types/node/-/node-11.11.6.tgz", + "integrity": "sha512-Exw4yUWMBXM3X+8oqzJNRqZSwUAaS4+7NdvHqQuFi/d+synz++xmX3QIf+BFqneW8N31R8Ky+sikfZUXq07ggQ==" } } }, - "truffle-error": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/truffle-error/-/truffle-error-0.0.5.tgz", - "integrity": "sha512-JpzPLMPSCE0vaZ3vH5NO5u42GpMj/Y1SRBkQ6b69PSw3xMSH1umApN32cEcg1nnh8q5FNYc5FnKu0m4tiBffyQ==", - "dev": true + "bip66": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/bip66/-/bip66-1.1.5.tgz", + "integrity": "sha1-AfqHSHhcpwlV1QESF9GzE5lpyiI=", + "optional": true, + "requires": { + "safe-buffer": "^5.0.1" + } }, - "truffle-flattener": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/truffle-flattener/-/truffle-flattener-1.6.0.tgz", - "integrity": "sha512-scS5Bsi4CZyvlrmD4iQcLHTiG2RQFUXVheTgWeH6PuafmI+Lk5U87Es98loM3w3ImqC9/fPHq+3QIXbcPuoJ1Q==", - "dev": true, + "blakejs": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/blakejs/-/blakejs-1.1.0.tgz", + "integrity": "sha1-ad+S75U6qIylGjLfarHFShVfx6U=" + }, + "bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==" + }, + "borsh": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/borsh/-/borsh-0.7.0.tgz", + "integrity": "sha512-CLCsZGIBCFnPtkNnieW/a8wmreDmfUtjU2m9yHrzPXIlNbqVs0AQrSatSG6vdNYUqdc83tkQi2eHfF98ubzQLA==", "requires": { - "@resolver-engine/imports-fs": "^0.2.2", - "@solidity-parser/parser": "^0.14.1", - "find-up": "^2.1.0", - "mkdirp": "^1.0.4", - "tsort": "0.0.1" + "bn.js": "^5.2.0", + "bs58": "^4.0.0", + "text-encoding-utf-8": "^1.0.2" }, "dependencies": { - "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "dev": true, - "requires": { - "locate-path": "^2.0.0" - } + "bn.js": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", + "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==" } } }, - "truffle-hdwallet-provider-klaytn": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/truffle-hdwallet-provider-klaytn/-/truffle-hdwallet-provider-klaytn-1.4.2.tgz", - "integrity": "sha512-ECsaulUnVIYwSXzgh71FX7qKcCGSNj77GdoqQWNls5jJR0T3ufdG8lmH85TEnz9JOHEeEnLeLvUJ/Tcn2U4OMw==", + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "requires": { - "@trufflesuite/web3-provider-engine": "15.0.13-1", - "any-promise": "1.3.0", - "bindings": "1.5.0", - "caver-js": "1.6.3", - "ethereum-cryptography": "0.1.3", - "ethereum-protocol": "1.0.1", - "ethereumjs-util": "6.2.0", - "ethereumjs-wallet": "1.0.1" - }, - "dependencies": { - "@babel/runtime": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.3.1.tgz", - "integrity": "sha512-7jGW8ppV0ant637pIqAcFfQDDH1orEPGJb8aXfUozuCU3QqX7rX4DA8iwrbPrR1hcH0FTTHz47yQnk+bl5xHQA==", - "requires": { - "regenerator-runtime": "^0.12.0" - } - }, - "@ethersproject/abi": { - "version": "5.0.7", - "resolved": "https://registry.npmjs.org/@ethersproject/abi/-/abi-5.0.7.tgz", - "integrity": "sha512-Cqktk+hSIckwP/W8O47Eef60VwmoSC/L3lY0+dIBhQPCNn9E4V7rwmm2aFrNRRDJfFlGuZ1khkQUOc3oBX+niw==", - "requires": { - "@ethersproject/address": "^5.0.4", - "@ethersproject/bignumber": "^5.0.7", - "@ethersproject/bytes": "^5.0.4", - "@ethersproject/constants": "^5.0.4", - "@ethersproject/hash": "^5.0.4", - "@ethersproject/keccak256": "^5.0.3", - "@ethersproject/logger": "^5.0.5", - "@ethersproject/properties": "^5.0.3", - "@ethersproject/strings": "^5.0.4" - } - }, - "@ethersproject/abstract-provider": { - "version": "5.0.10", - "resolved": "https://registry.npmjs.org/@ethersproject/abstract-provider/-/abstract-provider-5.0.10.tgz", - "integrity": "sha512-OSReY5iz94iIaPlRvLiJP8YVIvQLx4aUvMMnHWSaA/vTU8QHZmgNlt4OBdYV1+aFY8Xl+VRYiWBHq72ZDKXXCQ==", - "requires": { - "@ethersproject/bignumber": "^5.0.13", - "@ethersproject/bytes": "^5.0.9", - "@ethersproject/logger": "^5.0.8", - "@ethersproject/networks": "^5.0.7", - "@ethersproject/properties": "^5.0.7", - "@ethersproject/transactions": "^5.0.9", - "@ethersproject/web": "^5.0.12" - } - }, - "@ethersproject/abstract-signer": { - "version": "5.0.14", - "resolved": "https://registry.npmjs.org/@ethersproject/abstract-signer/-/abstract-signer-5.0.14.tgz", - "integrity": "sha512-JztBwVO7o5OHLh2vyjordlS4/1EjRyaECtc8vPdXTF1i4dXN+J0coeRoPN6ZFbBvi/YbaB6br2fvqhst1VQD/g==", - "requires": { - "@ethersproject/abstract-provider": "^5.0.8", - "@ethersproject/bignumber": "^5.0.13", - "@ethersproject/bytes": "^5.0.9", - "@ethersproject/logger": "^5.0.8", - "@ethersproject/properties": "^5.0.7" - } - }, - "@ethersproject/address": { - "version": "5.0.11", - "resolved": "https://registry.npmjs.org/@ethersproject/address/-/address-5.0.11.tgz", - "integrity": "sha512-Et4GBdD8/tsBGjCEOKee9upN29qjL5kbRcmJifb4Penmiuh9GARXL2/xpXvEp5EW+EIW/rfCHFJrkYBgoQFQBw==", - "requires": { - "@ethersproject/bignumber": "^5.0.13", - "@ethersproject/bytes": "^5.0.9", - "@ethersproject/keccak256": "^5.0.7", - "@ethersproject/logger": "^5.0.8", - "@ethersproject/rlp": "^5.0.7" - } - }, - "@ethersproject/base64": { - "version": "5.0.9", - "resolved": "https://registry.npmjs.org/@ethersproject/base64/-/base64-5.0.9.tgz", - "integrity": "sha512-37RBz5LEZ9SlTNGiWCYFttnIN9J7qVs9Xo2EbqGqDH5LfW9EIji66S+YDMpXVo1zWDax1FkEldAoatxHK2gfgA==", - "requires": { - "@ethersproject/bytes": "^5.0.9" - } - }, - "@ethersproject/basex": { - "version": "5.0.9", - "resolved": "https://registry.npmjs.org/@ethersproject/basex/-/basex-5.0.9.tgz", - "integrity": "sha512-FANswl1IN3PS0eltQxH2aM2+utPrkLUVG4XVFi6SafRG9EpAqXCgycxC8PU90mPGhigYTpg9cnTB5mCZ6ejQjw==", - "requires": { - "@ethersproject/bytes": "^5.0.9", - "@ethersproject/properties": "^5.0.7" - } - }, - "@ethersproject/bignumber": { - "version": "5.0.15", - "resolved": "https://registry.npmjs.org/@ethersproject/bignumber/-/bignumber-5.0.15.tgz", - "integrity": "sha512-MTADqnyacvdRwtKh7o9ujwNDSM1SDJjYDMYAzjIgjoi9rh6TY4suMbhCa3i2vh3SUXiXSICyTI8ui+NPdrZ9Lw==", - "requires": { - "@ethersproject/bytes": "^5.0.9", - "@ethersproject/logger": "^5.0.8", - "bn.js": "^4.4.0" - } - }, - "@ethersproject/bytes": { - "version": "5.0.11", - "resolved": "https://registry.npmjs.org/@ethersproject/bytes/-/bytes-5.0.11.tgz", - "integrity": "sha512-D51plLYY5qF05AsoVQwIZVLqlBkaTPVHVP/1WmmBIWyHB0cRW0C9kh0kx5Exo51rB63Hk8PfHxc7SmpoaQFEyg==", - "requires": { - "@ethersproject/logger": "^5.0.8" - } - }, - "@ethersproject/constants": { - "version": "5.0.10", - "resolved": "https://registry.npmjs.org/@ethersproject/constants/-/constants-5.0.10.tgz", - "integrity": "sha512-OSo8jxkHLDXieCy8bgOFR7lMfgPxEzKvSDdP+WAWHCDM8+orwch0B6wzkTmiQFgryAtIctrBt5glAdJikZ3hGw==", - "requires": { - "@ethersproject/bignumber": "^5.0.13" - } - }, - "@ethersproject/contracts": { - "version": "5.0.12", - "resolved": "https://registry.npmjs.org/@ethersproject/contracts/-/contracts-5.0.12.tgz", - "integrity": "sha512-srijy31idjz8bE+gL1I6IRj2H4I9dUwfQ+QroLrIgNdGArqY8y2iFUKa3QTy+JBX26fJsdYiCQi1kKkaNpnMpQ==", - "requires": { - "@ethersproject/abi": "^5.0.10", - "@ethersproject/abstract-provider": "^5.0.8", - "@ethersproject/abstract-signer": "^5.0.10", - "@ethersproject/address": "^5.0.9", - "@ethersproject/bignumber": "^5.0.13", - "@ethersproject/bytes": "^5.0.9", - "@ethersproject/constants": "^5.0.8", - "@ethersproject/logger": "^5.0.8", - "@ethersproject/properties": "^5.0.7" - }, - "dependencies": { - "@ethersproject/abi": { - "version": "5.6.1", - "resolved": "https://registry.npmjs.org/@ethersproject/abi/-/abi-5.6.1.tgz", - "integrity": "sha512-0cqssYh6FXjlwKWBmLm3+zH2BNARoS5u/hxbz+LpQmcDB3w0W553h2btWui1/uZp2GBM/SI3KniTuMcYyHpA5w==", - "requires": { - "@ethersproject/address": "^5.6.0", - "@ethersproject/bignumber": "^5.6.0", - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/constants": "^5.6.0", - "@ethersproject/hash": "^5.6.0", - "@ethersproject/keccak256": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/properties": "^5.6.0", - "@ethersproject/strings": "^5.6.0" - } - }, - "@ethersproject/abstract-provider": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/@ethersproject/abstract-provider/-/abstract-provider-5.6.0.tgz", - "integrity": "sha512-oPMFlKLN+g+y7a79cLK3WiLcjWFnZQtXWgnLAbHZcN3s7L4v90UHpTOrLk+m3yr0gt+/h9STTM6zrr7PM8uoRw==", - "requires": { - "@ethersproject/bignumber": "^5.6.0", - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/networks": "^5.6.0", - "@ethersproject/properties": "^5.6.0", - "@ethersproject/transactions": "^5.6.0", - "@ethersproject/web": "^5.6.0" - } - }, - "@ethersproject/abstract-signer": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/@ethersproject/abstract-signer/-/abstract-signer-5.6.0.tgz", - "integrity": "sha512-WOqnG0NJKtI8n0wWZPReHtaLkDByPL67tn4nBaDAhmVq8sjHTPbCdz4DRhVu/cfTOvfy9w3iq5QZ7BX7zw56BQ==", - "requires": { - "@ethersproject/abstract-provider": "^5.6.0", - "@ethersproject/bignumber": "^5.6.0", - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/properties": "^5.6.0" - } - }, - "@ethersproject/address": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/@ethersproject/address/-/address-5.6.0.tgz", - "integrity": "sha512-6nvhYXjbXsHPS+30sHZ+U4VMagFC/9zAk6Gd/h3S21YW4+yfb0WfRtaAIZ4kfM4rrVwqiy284LP0GtL5HXGLxQ==", - "requires": { - "@ethersproject/bignumber": "^5.6.0", - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/keccak256": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/rlp": "^5.6.0" - } - }, - "@ethersproject/base64": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/@ethersproject/base64/-/base64-5.6.0.tgz", - "integrity": "sha512-2Neq8wxJ9xHxCF9TUgmKeSh9BXJ6OAxWfeGWvbauPh8FuHEjamgHilllx8KkSd5ErxyHIX7Xv3Fkcud2kY9ezw==", - "requires": { - "@ethersproject/bytes": "^5.6.0" - } - }, - "@ethersproject/bignumber": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/@ethersproject/bignumber/-/bignumber-5.6.0.tgz", - "integrity": "sha512-VziMaXIUHQlHJmkv1dlcd6GY2PmT0khtAqaMctCIDogxkrarMzA9L94KN1NeXqqOfFD6r0sJT3vCTOFSmZ07DA==", - "requires": { - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "bn.js": "^4.11.9" - } - }, - "@ethersproject/bytes": { - "version": "5.6.1", - "resolved": "https://registry.npmjs.org/@ethersproject/bytes/-/bytes-5.6.1.tgz", - "integrity": "sha512-NwQt7cKn5+ZE4uDn+X5RAXLp46E1chXoaMmrxAyA0rblpxz8t58lVkrHXoRIn0lz1joQElQ8410GqhTqMOwc6g==", - "requires": { - "@ethersproject/logger": "^5.6.0" - } - }, - "@ethersproject/constants": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/@ethersproject/constants/-/constants-5.6.0.tgz", - "integrity": "sha512-SrdaJx2bK0WQl23nSpV/b1aq293Lh0sUaZT/yYKPDKn4tlAbkH96SPJwIhwSwTsoQQZxuh1jnqsKwyymoiBdWA==", - "requires": { - "@ethersproject/bignumber": "^5.6.0" - } - }, - "@ethersproject/hash": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/@ethersproject/hash/-/hash-5.6.0.tgz", - "integrity": "sha512-fFd+k9gtczqlr0/BruWLAu7UAOas1uRRJvOR84uDf4lNZ+bTkGl366qvniUZHKtlqxBRU65MkOobkmvmpHU+jA==", - "requires": { - "@ethersproject/abstract-signer": "^5.6.0", - "@ethersproject/address": "^5.6.0", - "@ethersproject/bignumber": "^5.6.0", - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/keccak256": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/properties": "^5.6.0", - "@ethersproject/strings": "^5.6.0" - } - }, - "@ethersproject/keccak256": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/@ethersproject/keccak256/-/keccak256-5.6.0.tgz", - "integrity": "sha512-tk56BJ96mdj/ksi7HWZVWGjCq0WVl/QvfhFQNeL8fxhBlGoP+L80uDCiQcpJPd+2XxkivS3lwRm3E0CXTfol0w==", - "requires": { - "@ethersproject/bytes": "^5.6.0", - "js-sha3": "0.8.0" - } - }, - "@ethersproject/logger": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/@ethersproject/logger/-/logger-5.6.0.tgz", - "integrity": "sha512-BiBWllUROH9w+P21RzoxJKzqoqpkyM1pRnEKG69bulE9TSQD8SAIvTQqIMZmmCO8pUNkgLP1wndX1gKghSpBmg==" - }, - "@ethersproject/networks": { - "version": "5.6.2", - "resolved": "https://registry.npmjs.org/@ethersproject/networks/-/networks-5.6.2.tgz", - "integrity": "sha512-9uEzaJY7j5wpYGTojGp8U89mSsgQLc40PCMJLMCnFXTs7nhBveZ0t7dbqWUNrepWTszDbFkYD6WlL8DKx5huHA==", - "requires": { - "@ethersproject/logger": "^5.6.0" - } - }, - "@ethersproject/properties": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/@ethersproject/properties/-/properties-5.6.0.tgz", - "integrity": "sha512-szoOkHskajKePTJSZ46uHUWWkbv7TzP2ypdEK6jGMqJaEt2sb0jCgfBo0gH0m2HBpRixMuJ6TBRaQCF7a9DoCg==", - "requires": { - "@ethersproject/logger": "^5.6.0" - } - }, - "@ethersproject/rlp": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/@ethersproject/rlp/-/rlp-5.6.0.tgz", - "integrity": "sha512-dz9WR1xpcTL+9DtOT/aDO+YyxSSdO8YIS0jyZwHHSlAmnxA6cKU3TrTd4Xc/bHayctxTgGLYNuVVoiXE4tTq1g==", - "requires": { - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/logger": "^5.6.0" - } - }, - "@ethersproject/signing-key": { - "version": "5.6.1", - "resolved": "https://registry.npmjs.org/@ethersproject/signing-key/-/signing-key-5.6.1.tgz", - "integrity": "sha512-XvqQ20DH0D+bS3qlrrgh+axRMth5kD1xuvqUQUTeezxUTXBOeR6hWz2/C6FBEu39FRytyybIWrYf7YLSAKr1LQ==", - "requires": { - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/properties": "^5.6.0", - "bn.js": "^4.11.9", - "elliptic": "6.5.4", - "hash.js": "1.1.7" - } - }, - "@ethersproject/strings": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/@ethersproject/strings/-/strings-5.6.0.tgz", - "integrity": "sha512-uv10vTtLTZqrJuqBZR862ZQjTIa724wGPWQqZrofaPI/kUsf53TBG0I0D+hQ1qyNtllbNzaW+PDPHHUI6/65Mg==", - "requires": { - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/constants": "^5.6.0", - "@ethersproject/logger": "^5.6.0" - } - }, - "@ethersproject/transactions": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/@ethersproject/transactions/-/transactions-5.6.0.tgz", - "integrity": "sha512-4HX+VOhNjXHZyGzER6E/LVI2i6lf9ejYeWD6l4g50AdmimyuStKc39kvKf1bXWQMg7QNVh+uC7dYwtaZ02IXeg==", - "requires": { - "@ethersproject/address": "^5.6.0", - "@ethersproject/bignumber": "^5.6.0", - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/constants": "^5.6.0", - "@ethersproject/keccak256": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/properties": "^5.6.0", - "@ethersproject/rlp": "^5.6.0", - "@ethersproject/signing-key": "^5.6.0" - } - }, - "@ethersproject/web": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/@ethersproject/web/-/web-5.6.0.tgz", - "integrity": "sha512-G/XHj0hV1FxI2teHRfCGvfBUHFmU+YOSbCxlAMqJklxSa7QMiHFQfAxvwY2PFqgvdkxEKwRNr/eCjfAPEm2Ctg==", - "requires": { - "@ethersproject/base64": "^5.6.0", - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/properties": "^5.6.0", - "@ethersproject/strings": "^5.6.0" - } - }, - "hash.js": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", - "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", - "requires": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.1" - } - }, - "js-sha3": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.8.0.tgz", - "integrity": "sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q==" - } - } - }, - "@ethersproject/hash": { - "version": "5.0.12", - "resolved": "https://registry.npmjs.org/@ethersproject/hash/-/hash-5.0.12.tgz", - "integrity": "sha512-kn4QN+fhNFbUgX3XZTZUaQixi0oyfIEY+hfW+KtkHu+rq7dV76oAIvaLEEynu1/4npOL38E4X4YI42gGZk+C0Q==", - "requires": { - "@ethersproject/abstract-signer": "^5.0.10", - "@ethersproject/address": "^5.0.9", - "@ethersproject/bignumber": "^5.0.13", - "@ethersproject/bytes": "^5.0.9", - "@ethersproject/keccak256": "^5.0.7", - "@ethersproject/logger": "^5.0.8", - "@ethersproject/properties": "^5.0.7", - "@ethersproject/strings": "^5.0.8" - } - }, - "@ethersproject/hdnode": { - "version": "5.0.10", - "resolved": "https://registry.npmjs.org/@ethersproject/hdnode/-/hdnode-5.0.10.tgz", - "integrity": "sha512-ZLwMtIcXK7xz2lSITDCl40W04CtRq4K9NwBxhCzdzPdaz6XnoJMwGz2YMVLg+8ksseq+RYtTwIIXtlK6vyvQyg==", - "requires": { - "@ethersproject/abstract-signer": "^5.0.10", - "@ethersproject/basex": "^5.0.7", - "@ethersproject/bignumber": "^5.0.13", - "@ethersproject/bytes": "^5.0.9", - "@ethersproject/logger": "^5.0.8", - "@ethersproject/pbkdf2": "^5.0.7", - "@ethersproject/properties": "^5.0.7", - "@ethersproject/sha2": "^5.0.7", - "@ethersproject/signing-key": "^5.0.8", - "@ethersproject/strings": "^5.0.8", - "@ethersproject/transactions": "^5.0.9", - "@ethersproject/wordlists": "^5.0.8" - } - }, - "@ethersproject/json-wallets": { - "version": "5.0.12", - "resolved": "https://registry.npmjs.org/@ethersproject/json-wallets/-/json-wallets-5.0.12.tgz", - "integrity": "sha512-nac553zGZnOewpjlqbfy7WBl8m3y7qudzRsI2dCxrediYtPIVIs9f6Pbnou8vDmmp8X4/U4W788d+Ma88o+Gbg==", - "requires": { - "@ethersproject/abstract-signer": "^5.0.10", - "@ethersproject/address": "^5.0.9", - "@ethersproject/bytes": "^5.0.9", - "@ethersproject/hdnode": "^5.0.8", - "@ethersproject/keccak256": "^5.0.7", - "@ethersproject/logger": "^5.0.8", - "@ethersproject/pbkdf2": "^5.0.7", - "@ethersproject/properties": "^5.0.7", - "@ethersproject/random": "^5.0.7", - "@ethersproject/strings": "^5.0.8", - "@ethersproject/transactions": "^5.0.9", - "aes-js": "3.0.0", - "scrypt-js": "3.0.1" - }, - "dependencies": { - "aes-js": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/aes-js/-/aes-js-3.0.0.tgz", - "integrity": "sha1-4h3xCtbCBTKVvLuNq0Cwnb6ofk0=" - } - } - }, - "@ethersproject/keccak256": { - "version": "5.0.9", - "resolved": "https://registry.npmjs.org/@ethersproject/keccak256/-/keccak256-5.0.9.tgz", - "integrity": "sha512-zhdUTj6RGtCJSgU+bDrWF6cGbvW453LoIC1DSNWrTlXzC7WuH4a+EiPrgc7/kNoRxerKuA/cxYlI8GwNtVtDlw==", - "requires": { - "@ethersproject/bytes": "^5.0.9", - "js-sha3": "0.5.7" - } - }, - "@ethersproject/logger": { - "version": "5.0.10", - "resolved": "https://registry.npmjs.org/@ethersproject/logger/-/logger-5.0.10.tgz", - "integrity": "sha512-0y2T2NqykDrbPM3Zw9RSbPkDOxwChAL8detXaom76CfYoGxsOnRP/zTX8OUAV+x9LdwzgbWvWmeXrc0M7SuDZw==" - }, - "@ethersproject/networks": { - "version": "5.0.9", - "resolved": "https://registry.npmjs.org/@ethersproject/networks/-/networks-5.0.9.tgz", - "integrity": "sha512-L8+VCQwArBLGkxZb/5Ns/OH/OxP38AcaveXIxhUTq+VWpXYjrObG3E7RDQIKkUx1S1IcQl/UWTz5w4DK0UitJg==", - "requires": { - "@ethersproject/logger": "^5.0.8" - } - }, - "@ethersproject/pbkdf2": { - "version": "5.0.9", - "resolved": "https://registry.npmjs.org/@ethersproject/pbkdf2/-/pbkdf2-5.0.9.tgz", - "integrity": "sha512-ItE/wQ/WVw/ajEHPUVgfu0aEvksPgOQc+278bke8sGKnGO3ppjmqp0MHh17tHc1EBTzJbSms5aLIqc56qZ/oiA==", - "requires": { - "@ethersproject/bytes": "^5.0.9", - "@ethersproject/sha2": "^5.0.7" - } - }, - "@ethersproject/properties": { - "version": "5.0.9", - "resolved": "https://registry.npmjs.org/@ethersproject/properties/-/properties-5.0.9.tgz", - "integrity": "sha512-ZCjzbHYTw+rF1Pn8FDCEmx3gQttwIHcm/6Xee8g/M3Ga3SfW4tccNMbs5zqnBH0E4RoOPaeNgyg1O68TaF0tlg==", - "requires": { - "@ethersproject/logger": "^5.0.8" - } - }, - "@ethersproject/providers": { - "version": "5.0.24", - "resolved": "https://registry.npmjs.org/@ethersproject/providers/-/providers-5.0.24.tgz", - "integrity": "sha512-M4Iw1r4gGJkt7ZUa++iREuviKL/DIpmIMsaUlVlXtV+ZrUXeN8xQ3zOTrbz7R4h9W9oljBZM7i4D3Kn1krJ30A==", - "requires": { - "@ethersproject/abstract-provider": "^5.0.8", - "@ethersproject/abstract-signer": "^5.0.10", - "@ethersproject/address": "^5.0.9", - "@ethersproject/basex": "^5.0.7", - "@ethersproject/bignumber": "^5.0.13", - "@ethersproject/bytes": "^5.0.9", - "@ethersproject/constants": "^5.0.8", - "@ethersproject/hash": "^5.0.10", - "@ethersproject/logger": "^5.0.8", - "@ethersproject/networks": "^5.0.7", - "@ethersproject/properties": "^5.0.7", - "@ethersproject/random": "^5.0.7", - "@ethersproject/rlp": "^5.0.7", - "@ethersproject/sha2": "^5.0.7", - "@ethersproject/strings": "^5.0.8", - "@ethersproject/transactions": "^5.0.9", - "@ethersproject/web": "^5.0.12", - "bech32": "1.1.4", - "ws": "7.2.3" - }, - "dependencies": { - "ws": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.2.3.tgz", - "integrity": "sha512-HTDl9G9hbkNDk98naoR/cHDws7+EyYMOdL1BmjsZXRUjf7d+MficC4B7HLUPlSiho0vg+CWKrGIt/VJBd1xunQ==", - "requires": {} - } - } - }, - "@ethersproject/random": { - "version": "5.0.9", - "resolved": "https://registry.npmjs.org/@ethersproject/random/-/random-5.0.9.tgz", - "integrity": "sha512-DANG8THsKqFbJOantrxumtG6gyETNE54VfbsWa+SQAT8WKpDo9W/X5Zhh73KuhClaey1UI32uVmISZeq/Zxn1A==", - "requires": { - "@ethersproject/bytes": "^5.0.9", - "@ethersproject/logger": "^5.0.8" - } - }, - "@ethersproject/rlp": { - "version": "5.0.9", - "resolved": "https://registry.npmjs.org/@ethersproject/rlp/-/rlp-5.0.9.tgz", - "integrity": "sha512-ns1U7ZMVeruUW6JXc4om+1w3w4ynHN/0fpwmeNTsAjwGKoF8SAUgue6ylKpHKWSti2idx7jDxbn8hNNFHk67CA==", - "requires": { - "@ethersproject/bytes": "^5.0.9", - "@ethersproject/logger": "^5.0.8" - } - }, - "@ethersproject/sha2": { - "version": "5.0.9", - "resolved": "https://registry.npmjs.org/@ethersproject/sha2/-/sha2-5.0.9.tgz", - "integrity": "sha512-5FH4s47gM7N1fFAYQ1+m7aX0SbLg0Xr+6tvqndmNqc382/qBIbzXiGlUookrsjlPb6gLNurnTssCXjNM72J6lQ==", - "requires": { - "@ethersproject/bytes": "^5.0.9", - "@ethersproject/logger": "^5.0.8", - "hash.js": "1.1.3" - } - }, - "@ethersproject/signing-key": { - "version": "5.0.11", - "resolved": "https://registry.npmjs.org/@ethersproject/signing-key/-/signing-key-5.0.11.tgz", - "integrity": "sha512-Jfcru/BGwdkXhLxT+8WCZtFy7LL0TPFZw05FAb5asxB/MyVsEfNdNxGDtjVE9zXfmRSPe/EusXYY4K7wcygOyQ==", - "requires": { - "@ethersproject/bytes": "^5.0.9", - "@ethersproject/logger": "^5.0.8", - "@ethersproject/properties": "^5.0.7", - "elliptic": "6.5.4" - } - }, - "@ethersproject/solidity": { - "version": "5.0.10", - "resolved": "https://registry.npmjs.org/@ethersproject/solidity/-/solidity-5.0.10.tgz", - "integrity": "sha512-8OG3HLqynWXDA6mVIHuHfF/ojTTwBahON7hc9GAKCqglzXCkVA3OpyxOJXPzjHClRIAUUiU7r9oy9Z/nsjtT/g==", - "requires": { - "@ethersproject/bignumber": "^5.0.13", - "@ethersproject/bytes": "^5.0.9", - "@ethersproject/keccak256": "^5.0.7", - "@ethersproject/sha2": "^5.0.7", - "@ethersproject/strings": "^5.0.8" - } - }, - "@ethersproject/strings": { - "version": "5.0.10", - "resolved": "https://registry.npmjs.org/@ethersproject/strings/-/strings-5.0.10.tgz", - "integrity": "sha512-KAeoS1tZ9/5ECXiIZA6S6hywbD0so2VmuW+Wfyo5EDXeyZ6Na1nxTPhTnW7voQmjbeYJffCrOc0qLFJeylyg7w==", - "requires": { - "@ethersproject/bytes": "^5.0.9", - "@ethersproject/constants": "^5.0.8", - "@ethersproject/logger": "^5.0.8" - } - }, - "@ethersproject/transactions": { - "version": "5.0.11", - "resolved": "https://registry.npmjs.org/@ethersproject/transactions/-/transactions-5.0.11.tgz", - "integrity": "sha512-ftsRvR9+gQp7L63F6+XmstvsZ4w8GtWvQB08e/zB+oB86Fnhq8+i/tkgpJplSHC8I/qgiCisva+M3u2GVhDFPA==", - "requires": { - "@ethersproject/address": "^5.0.9", - "@ethersproject/bignumber": "^5.0.13", - "@ethersproject/bytes": "^5.0.9", - "@ethersproject/constants": "^5.0.8", - "@ethersproject/keccak256": "^5.0.7", - "@ethersproject/logger": "^5.0.8", - "@ethersproject/properties": "^5.0.7", - "@ethersproject/rlp": "^5.0.7", - "@ethersproject/signing-key": "^5.0.8" - } - }, - "@ethersproject/units": { - "version": "5.0.11", - "resolved": "https://registry.npmjs.org/@ethersproject/units/-/units-5.0.11.tgz", - "integrity": "sha512-nOSPmcCWyB/dwoBRhhTtPGCsTbiXqmc7Q0Adwvafc432AC7hy3Fj3IFZtnSXsbtJ/GdHCIUIoA8gtvxSsFuBJg==", - "requires": { - "@ethersproject/bignumber": "^5.0.13", - "@ethersproject/constants": "^5.0.8", - "@ethersproject/logger": "^5.0.8" - } - }, - "@ethersproject/wallet": { - "version": "5.0.12", - "resolved": "https://registry.npmjs.org/@ethersproject/wallet/-/wallet-5.0.12.tgz", - "integrity": "sha512-rboJebGf47/KPZrKZQdYg9BAYuXbc/OwcUyML1K1f2jnJeo1ObWV11U1PAWTjTbhhSy6/Fg+34GO2yMb5Dt1Rw==", - "requires": { - "@ethersproject/abstract-provider": "^5.0.8", - "@ethersproject/abstract-signer": "^5.0.10", - "@ethersproject/address": "^5.0.9", - "@ethersproject/bignumber": "^5.0.13", - "@ethersproject/bytes": "^5.0.9", - "@ethersproject/hash": "^5.0.10", - "@ethersproject/hdnode": "^5.0.8", - "@ethersproject/json-wallets": "^5.0.10", - "@ethersproject/keccak256": "^5.0.7", - "@ethersproject/logger": "^5.0.8", - "@ethersproject/properties": "^5.0.7", - "@ethersproject/random": "^5.0.7", - "@ethersproject/signing-key": "^5.0.8", - "@ethersproject/transactions": "^5.0.9", - "@ethersproject/wordlists": "^5.0.8" - } - }, - "@ethersproject/web": { - "version": "5.0.14", - "resolved": "https://registry.npmjs.org/@ethersproject/web/-/web-5.0.14.tgz", - "integrity": "sha512-QpTgplslwZ0Sp9oKNLoRuS6TKxnkwfaEk3gr7zd7XLF8XBsYejsrQO/03fNfnMx/TAT/RR6WEw/mbOwpRSeVRA==", - "requires": { - "@ethersproject/base64": "^5.0.7", - "@ethersproject/bytes": "^5.0.9", - "@ethersproject/logger": "^5.0.8", - "@ethersproject/properties": "^5.0.7", - "@ethersproject/strings": "^5.0.8" - } - }, - "@ethersproject/wordlists": { - "version": "5.0.10", - "resolved": "https://registry.npmjs.org/@ethersproject/wordlists/-/wordlists-5.0.10.tgz", - "integrity": "sha512-jWsEm1iJzpg9SCXnNfFz+tcp4Ofzv0TJb6mj+soCNcar9GcT0yGz62ZsHC3pLQWaF4LkCzGwRJHJTXKjHQfG1A==", - "requires": { - "@ethersproject/bytes": "^5.0.9", - "@ethersproject/hash": "^5.0.10", - "@ethersproject/logger": "^5.0.8", - "@ethersproject/properties": "^5.0.7", - "@ethersproject/strings": "^5.0.8" - } - }, - "@trufflesuite/web3-provider-engine": { - "version": "15.0.13-1", - "resolved": "https://registry.npmjs.org/@trufflesuite/web3-provider-engine/-/web3-provider-engine-15.0.13-1.tgz", - "integrity": "sha512-6u3x/iIN5fyj8pib5QTUDmIOUiwAGhaqdSTXdqCu6v9zo2BEwdCqgEJd1uXDh3DBmPRDfiZ/ge8oUPy7LerpHg==", - "requires": { - "@trufflesuite/eth-json-rpc-filters": "^4.1.2-1", - "@trufflesuite/eth-json-rpc-infura": "^4.0.3-0", - "@trufflesuite/eth-json-rpc-middleware": "^4.4.2-1", - "@trufflesuite/eth-sig-util": "^1.4.2", - "async": "^2.5.0", - "backoff": "^2.5.0", - "clone": "^2.0.0", - "cross-fetch": "^2.1.0", - "eth-block-tracker": "^4.4.2", - "eth-json-rpc-errors": "^2.0.2", - "ethereumjs-block": "^1.2.2", - "ethereumjs-tx": "^1.2.0", - "ethereumjs-util": "^5.1.5", - "ethereumjs-vm": "^2.3.4", - "json-stable-stringify": "^1.0.1", - "promise-to-callback": "^1.0.0", - "readable-stream": "^2.2.9", - "request": "^2.85.0", - "semaphore": "^1.0.3", - "ws": "^5.1.1", - "xhr": "^2.2.0", - "xtend": "^4.0.1" - }, - "dependencies": { - "ethereumjs-util": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", - "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", - "requires": { - "bn.js": "^4.11.0", - "create-hash": "^1.1.2", - "elliptic": "^6.5.2", - "ethereum-cryptography": "^0.1.3", - "ethjs-util": "^0.1.3", - "rlp": "^2.0.0", - "safe-buffer": "^5.1.1" - } - } - } - }, - "@webassemblyjs/ast": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.9.0.tgz", - "integrity": "sha512-C6wW5L+b7ogSDVqymbkkvuW9kruN//YisMED04xzeBBqjHa2FYnmvOlS6Xj68xWQRgWvI9cIglsjFowH/RJyEA==", - "requires": { - "@webassemblyjs/helper-module-context": "1.9.0", - "@webassemblyjs/helper-wasm-bytecode": "1.9.0", - "@webassemblyjs/wast-parser": "1.9.0" - } - }, - "@webassemblyjs/helper-api-error": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.9.0.tgz", - "integrity": "sha512-NcMLjoFMXpsASZFxJ5h2HZRcEhDkvnNFOAKneP5RbKRzaWJN36NC4jqQHKwStIhGXu5mUWlUUk7ygdtrO8lbmw==" - }, - "@webassemblyjs/helper-buffer": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.9.0.tgz", - "integrity": "sha512-qZol43oqhq6yBPx7YM3m9Bv7WMV9Eevj6kMi6InKOuZxhw+q9hOkvq5e/PpKSiLfyetpaBnogSbNCfBwyB00CA==" - }, - "@webassemblyjs/helper-wasm-bytecode": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.9.0.tgz", - "integrity": "sha512-R7FStIzyNcd7xKxCZH5lE0Bqy+hGTwS3LJjuv1ZVxd9O7eHCedSdrId/hMOd20I+v8wDXEn+bjfKDLzTepoaUw==" - }, - "@webassemblyjs/helper-wasm-section": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.9.0.tgz", - "integrity": "sha512-XnMB8l3ek4tvrKUUku+IVaXNHz2YsJyOOmz+MMkZvh8h1uSJpSen6vYnw3IoQ7WwEuAhL8Efjms1ZWjqh2agvw==", - "requires": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-buffer": "1.9.0", - "@webassemblyjs/helper-wasm-bytecode": "1.9.0", - "@webassemblyjs/wasm-gen": "1.9.0" - } - }, - "@webassemblyjs/ieee754": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.9.0.tgz", - "integrity": "sha512-dcX8JuYU/gvymzIHc9DgxTzUUTLexWwt8uCTWP3otys596io0L5aW02Gb1RjYpx2+0Jus1h4ZFqjla7umFniTg==", - "requires": { - "@xtuc/ieee754": "^1.2.0" - } - }, - "@webassemblyjs/leb128": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.9.0.tgz", - "integrity": "sha512-ENVzM5VwV1ojs9jam6vPys97B/S65YQtv/aanqnU7D8aSoHFX8GyhGg0CMfyKNIHBuAVjy3tlzd5QMMINa7wpw==", - "requires": { - "@xtuc/long": "4.2.2" - } - }, - "@webassemblyjs/utf8": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.9.0.tgz", - "integrity": "sha512-GZbQlWtopBTP0u7cHrEx+73yZKrQoBMpwkGEIqlacljhXCkVM1kMQge/Mf+csMJAjEdSwhOyLAS0AoR3AG5P8w==" - }, - "@webassemblyjs/wasm-edit": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.9.0.tgz", - "integrity": "sha512-FgHzBm80uwz5M8WKnMTn6j/sVbqilPdQXTWraSjBwFXSYGirpkSWE2R9Qvz9tNiTKQvoKILpCuTjBKzOIm0nxw==", - "requires": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-buffer": "1.9.0", - "@webassemblyjs/helper-wasm-bytecode": "1.9.0", - "@webassemblyjs/helper-wasm-section": "1.9.0", - "@webassemblyjs/wasm-gen": "1.9.0", - "@webassemblyjs/wasm-opt": "1.9.0", - "@webassemblyjs/wasm-parser": "1.9.0", - "@webassemblyjs/wast-printer": "1.9.0" - } - }, - "@webassemblyjs/wasm-gen": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.9.0.tgz", - "integrity": "sha512-cPE3o44YzOOHvlsb4+E9qSqjc9Qf9Na1OO/BHFy4OI91XDE14MjFN4lTMezzaIWdPqHnsTodGGNP+iRSYfGkjA==", - "requires": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-wasm-bytecode": "1.9.0", - "@webassemblyjs/ieee754": "1.9.0", - "@webassemblyjs/leb128": "1.9.0", - "@webassemblyjs/utf8": "1.9.0" - } - }, - "@webassemblyjs/wasm-opt": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.9.0.tgz", - "integrity": "sha512-Qkjgm6Anhm+OMbIL0iokO7meajkzQD71ioelnfPEj6r4eOFuqm4YC3VBPqXjFyyNwowzbMD+hizmprP/Fwkl2A==", - "requires": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-buffer": "1.9.0", - "@webassemblyjs/wasm-gen": "1.9.0", - "@webassemblyjs/wasm-parser": "1.9.0" - } - }, - "@webassemblyjs/wasm-parser": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.9.0.tgz", - "integrity": "sha512-9+wkMowR2AmdSWQzsPEjFU7njh8HTO5MqO8vjwEHuM+AMHioNqSBONRdr0NQQ3dVQrzp0s8lTcYqzUdb7YgELA==", - "requires": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-api-error": "1.9.0", - "@webassemblyjs/helper-wasm-bytecode": "1.9.0", - "@webassemblyjs/ieee754": "1.9.0", - "@webassemblyjs/leb128": "1.9.0", - "@webassemblyjs/utf8": "1.9.0" - } - }, - "@webassemblyjs/wast-printer": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.9.0.tgz", - "integrity": "sha512-2J0nE95rHXHyQ24cWjMKJ1tqB/ds8z/cyeOZxJhcb+rW+SQASVjuznUSmdz5GpVJTzU8JkhYut0D3siFDD6wsA==", - "requires": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/wast-parser": "1.9.0", - "@xtuc/long": "4.2.2" - } - }, - "acorn": { - "version": "6.4.2", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.2.tgz", - "integrity": "sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ==" - }, - "aes-js": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/aes-js/-/aes-js-3.1.2.tgz", - "integrity": "sha512-e5pEa2kBnBOgR4Y/p20pskXI74UEz7de8ZGVo58asOtvSVG5YAbJeELPZxOmt+Bnz3rX753YKhfIn4X4l1PPRQ==" + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "brorand": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", + "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=" + }, + "browser-headers": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/browser-headers/-/browser-headers-0.4.1.tgz", + "integrity": "sha512-CA9hsySZVo9371qEHjHZtYxV2cFtVj5Wj/ZHi8ooEsrtm4vOnl9Y9HmyYWk9q+05d7K3rdoAE0j3MVEFVvtQtg==" + }, + "browserify-aes": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", + "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", + "requires": { + "buffer-xor": "^1.0.3", + "cipher-base": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.3", + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "bs58": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz", + "integrity": "sha1-vhYedsNU9veIrkBx9j806MTwpCo=", + "requires": { + "base-x": "^3.0.2" + } + }, + "bs58check": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/bs58check/-/bs58check-2.1.2.tgz", + "integrity": "sha512-0TS1jicxdU09dwJMNZtVAfzPi6Q6QeN0pM1Fkzrjn+XYHvzMKPU3pHVpva+769iNVSfIYWf7LJ6WR+BuuMf8cA==", + "requires": { + "bs58": "^4.0.0", + "create-hash": "^1.1.0", + "safe-buffer": "^5.1.2" + } + }, + "buffer-layout": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/buffer-layout/-/buffer-layout-1.2.2.tgz", + "integrity": "sha512-kWSuLN694+KTk8SrYvCqwP2WcgQjoRCiF5b4QDvkkz8EmgD+aWAIceGFKMIAdmF/pH+vpgNV3d3kAKorcdAmWA==" + }, + "buffer-xor": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", + "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=" + }, + "bufferutil": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/bufferutil/-/bufferutil-4.0.7.tgz", + "integrity": "sha512-kukuqc39WOHtdxtw4UScxF/WVnMFVSQVKhtx3AjZJzhd0RGZZldcrfSEbVsWWe6KNH253574cq5F+wpv0G9pJw==", + "requires": { + "node-gyp-build": "^4.3.0" + } + }, + "capability": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/capability/-/capability-0.2.5.tgz", + "integrity": "sha512-rsJZYVCgXd08sPqwmaIqjAd5SUTfonV0z/gDJ8D6cN8wQphky1kkAYEqQ+hmDxTw7UihvBfjUVUSY+DBEe44jg==" + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "cipher-base": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", + "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", + "requires": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "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==", + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" + }, + "combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "requires": { + "delayed-stream": "~1.0.0" + } + }, + "command-line-args": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/command-line-args/-/command-line-args-5.2.1.tgz", + "integrity": "sha512-H4UfQhZyakIjC74I9d34fGYDwk3XpSr17QhEd0Q3I9Xq1CETHo4Hcuo87WyWHpAF1aSLjLRf5lD9ZGX2qStUvg==", + "requires": { + "array-back": "^3.1.0", + "find-replace": "^3.0.0", + "lodash.camelcase": "^4.3.0", + "typical": "^4.0.0" + } + }, + "command-line-usage": { + "version": "6.1.3", + "resolved": "https://registry.npmjs.org/command-line-usage/-/command-line-usage-6.1.3.tgz", + "integrity": "sha512-sH5ZSPr+7UStsloltmDh7Ce5fb8XPlHyoPzTpyyMuYCtervL65+ubVZ6Q61cFtFl62UyJlc8/JwERRbAFPUqgw==", + "requires": { + "array-back": "^4.0.2", + "chalk": "^2.4.2", + "table-layout": "^1.0.2", + "typical": "^5.2.0" + }, + "dependencies": { + "array-back": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-4.0.2.tgz", + "integrity": "sha512-NbdMezxqf94cnNfWLL7V/im0Ub+Anbb0IoZhvzie8+4HJ4nMQuzHuy49FkGYCJK2yAloZ3meiB6AVMClbrI1vg==" }, + "typical": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/typical/-/typical-5.2.0.tgz", + "integrity": "sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg==" + } + } + }, + "commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" + }, + "copyfiles": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/copyfiles/-/copyfiles-2.4.1.tgz", + "integrity": "sha512-fereAvAvxDrQDOXybk3Qu3dPbOoKoysFMWtkY3mv5BsL8//OSZVL5DCLYqgRfY5cWirgRzlC+WSrxp6Bo3eNZg==", + "requires": { + "glob": "^7.0.5", + "minimatch": "^3.0.3", + "mkdirp": "^1.0.4", + "noms": "0.0.0", + "through2": "^2.0.1", + "untildify": "^4.0.0", + "yargs": "^16.1.0" + }, + "dependencies": { "ansi-regex": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", @@ -46959,90 +8458,6 @@ "color-convert": "^2.0.1" } }, - "argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" - }, - "bech32": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/bech32/-/bech32-1.1.4.tgz", - "integrity": "sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ==" - }, - "bignumber.js": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-8.0.2.tgz", - "integrity": "sha512-EiuvFrnbv0jFixEQ9f58jo7X0qI2lNGIr/MxntmVzQc5JUweDSh8y8hbTCAomFtqwUPIOWcLXP0VEOSZTG7FFw==" - }, - "caver-js": { - "version": "1.6.3", - "resolved": "https://registry.npmjs.org/caver-js/-/caver-js-1.6.3.tgz", - "integrity": "sha512-xSPnawdVFregH6eTO+1TF1rDAueiyFkgphKOAgSaPSw8DGz9jcRliTU2OH0jCghyTt0k9yntAR0NzlIKTc/76A==", - "requires": { - "@babel/runtime": "7.3.1", - "@ethersproject/abi": "5.0.7", - "@web3-js/scrypt-shim": "0.1.0", - "any-promise": "1.3.0", - "bignumber.js": "8.0.2", - "bn.js": "4.11.6", - "chai": "4.1.2", - "crypto-browserify": "3.12.0", - "dotenv": "8.2.0", - "elliptic": "6.5.4", - "eth-lib": "0.2.8", - "ethers": "5.0.32", - "ethjs-unit": "0.1.6", - "eventemitter3": "4.0.0", - "ipfs-http-client-lite": "0.3.0", - "it-each": "0.4.0", - "lodash": "4.17.21", - "mocha": "8.3.2", - "multihashes": "4.0.2", - "node-fetch": "2.6.1", - "number-to-bn": "1.7.0", - "oboe": "2.1.3", - "request": "2.87.0", - "requestretry": "2.0.2", - "scrypt-js": "3.0.1", - "semver": "6.2.0", - "utf8": "2.1.1", - "uuid": "3.0.0", - "webpack": "4.44.2", - "webpack-cli": "3.3.12", - "websocket": "1.0.31", - "xhr2-cookies": "1.1.0" - }, - "dependencies": { - "bn.js": { - "version": "4.11.6", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz", - "integrity": "sha1-UzRK2xRhehP26N0s4okF0cC6MhU=" - }, - "utf8": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/utf8/-/utf8-2.1.1.tgz", - "integrity": "sha1-LgHbAvfY0JRPdxBPFgnrDDBM92g=" - }, - "uuid": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.0.0.tgz", - "integrity": "sha1-Zyj8BFnEUNeWqZwxg3VpvfZy1yg=" - } - } - }, - "chai": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chai/-/chai-4.1.2.tgz", - "integrity": "sha1-D2RYS6ZC8PKs4oBiefTwbKI61zw=", - "requires": { - "assertion-error": "^1.0.1", - "check-error": "^1.0.1", - "deep-eql": "^3.0.0", - "get-func-name": "^2.0.0", - "pathval": "^1.0.0", - "type-detect": "^4.0.0" - } - }, "cliui": { "version": "7.0.4", "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", @@ -47054,545 +8469,27 @@ } }, "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } - }, - "diff": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz", - "integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==" - }, - "dotenv": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-8.2.0.tgz", - "integrity": "sha512-8sJ78ElpbDJBHNeBzUbUVLsqKdccaa/BXF1uPTw3GrvQTBgrQrtObr2mUrE38vzYd8cEv+m/JBfDLioYcfXoaw==" - }, - "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==" - }, - "enhanced-resolve": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.5.0.tgz", - "integrity": "sha512-Nv9m36S/vxpsI+Hc4/ZGRs0n9mXqSWGGq49zxb/cJfPAQMbUtttJAlNPS4AQzaBdw/pKskw5bMbekT/Y7W/Wlg==", - "requires": { - "graceful-fs": "^4.1.2", - "memory-fs": "^0.5.0", - "tapable": "^1.0.0" - }, - "dependencies": { - "memory-fs": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.5.0.tgz", - "integrity": "sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA==", - "requires": { - "errno": "^0.1.3", - "readable-stream": "^2.0.1" - } - } - } - }, - "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==" - }, - "eslint-scope": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.3.tgz", - "integrity": "sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg==", - "requires": { - "esrecurse": "^4.1.0", - "estraverse": "^4.1.1" - } - }, - "eth-lib": { - "version": "0.2.8", - "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.8.tgz", - "integrity": "sha512-ArJ7x1WcWOlSpzdoTBX8vkwlkSQ85CjjifSZtV4co64vWxSV8geWfPI9x4SVYu3DSxnX4yWFVTtGL+j9DUFLNw==", - "requires": { - "bn.js": "^4.11.6", - "elliptic": "^6.4.0", - "xhr-request-promise": "^0.1.2" - } - }, - "ethereum-common": { - "version": "0.0.18", - "resolved": "https://registry.npmjs.org/ethereum-common/-/ethereum-common-0.0.18.tgz", - "integrity": "sha1-L9w1dvIykDNYl26znaeDIT/5Uj8=" - }, - "ethereumjs-tx": { - "version": "1.3.7", - "resolved": "https://registry.npmjs.org/ethereumjs-tx/-/ethereumjs-tx-1.3.7.tgz", - "integrity": "sha512-wvLMxzt1RPhAQ9Yi3/HKZTn0FZYpnsmQdbKYfUUpi4j1SEIcbkd9tndVjcPrufY3V7j2IebOpC00Zp2P/Ay2kA==", - "requires": { - "ethereum-common": "^0.0.18", - "ethereumjs-util": "^5.0.0" - }, - "dependencies": { - "ethereumjs-util": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", - "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", - "requires": { - "bn.js": "^4.11.0", - "create-hash": "^1.1.2", - "elliptic": "^6.5.2", - "ethereum-cryptography": "^0.1.3", - "ethjs-util": "^0.1.3", - "rlp": "^2.0.0", - "safe-buffer": "^5.1.1" - } - } - } - }, - "ethereumjs-util": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-6.2.0.tgz", - "integrity": "sha512-vb0XN9J2QGdZGIEKG2vXM+kUdEivUfU6Wmi5y0cg+LRhDYKnXIZ/Lz7XjFbHRR9VIKq2lVGLzGBkA++y2nOdOQ==", - "requires": { - "@types/bn.js": "^4.11.3", - "bn.js": "^4.11.0", - "create-hash": "^1.1.2", - "ethjs-util": "0.1.6", - "keccak": "^2.0.0", - "rlp": "^2.2.3", - "secp256k1": "^3.0.1" - } - }, - "ethereumjs-wallet": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/ethereumjs-wallet/-/ethereumjs-wallet-1.0.1.tgz", - "integrity": "sha512-3Z5g1hG1das0JWU6cQ9HWWTY2nt9nXCcwj7eXVNAHKbo00XAZO8+NHlwdgXDWrL0SXVQMvTWN8Q/82DRH/JhPw==", - "requires": { - "aes-js": "^3.1.1", - "bs58check": "^2.1.2", - "ethereum-cryptography": "^0.1.3", - "ethereumjs-util": "^7.0.2", - "randombytes": "^2.0.6", - "scrypt-js": "^3.0.1", - "utf8": "^3.0.0", - "uuid": "^3.3.2" - }, - "dependencies": { - "@types/bn.js": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-5.1.0.tgz", - "integrity": "sha512-QSSVYj7pYFN49kW77o2s9xTCwZ8F2xLbjLLSEVh8D2F4JUhZtPAGOFLTD+ffqksBx/u4cE/KImFjyhqCjn/LIA==", - "requires": { - "@types/node": "*" - } - }, - "bn.js": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.0.tgz", - "integrity": "sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw==" - }, - "ethereumjs-util": { - "version": "7.1.4", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.4.tgz", - "integrity": "sha512-p6KmuPCX4mZIqsQzXfmSx9Y0l2hqf+VkAiwSisW3UKUFdk8ZkAt+AYaor83z2nSi6CU2zSsXMlD80hAbNEGM0A==", - "requires": { - "@types/bn.js": "^5.1.0", - "bn.js": "^5.1.2", - "create-hash": "^1.1.2", - "ethereum-cryptography": "^0.1.3", - "rlp": "^2.2.4" - } - } - } - }, - "ethers": { - "version": "5.0.32", - "resolved": "https://registry.npmjs.org/ethers/-/ethers-5.0.32.tgz", - "integrity": "sha512-rORfGWR0HsA4pjKMMcWZorw12DHsXqfIAuPVHJsXt+vI24jvXcVqx+rLsSvgOoLdaCMdxiN5qlIq2+4axKG31g==", - "requires": { - "@ethersproject/abi": "5.0.13", - "@ethersproject/abstract-provider": "5.0.10", - "@ethersproject/abstract-signer": "5.0.14", - "@ethersproject/address": "5.0.11", - "@ethersproject/base64": "5.0.9", - "@ethersproject/basex": "5.0.9", - "@ethersproject/bignumber": "5.0.15", - "@ethersproject/bytes": "5.0.11", - "@ethersproject/constants": "5.0.10", - "@ethersproject/contracts": "5.0.12", - "@ethersproject/hash": "5.0.12", - "@ethersproject/hdnode": "5.0.10", - "@ethersproject/json-wallets": "5.0.12", - "@ethersproject/keccak256": "5.0.9", - "@ethersproject/logger": "5.0.10", - "@ethersproject/networks": "5.0.9", - "@ethersproject/pbkdf2": "5.0.9", - "@ethersproject/properties": "5.0.9", - "@ethersproject/providers": "5.0.24", - "@ethersproject/random": "5.0.9", - "@ethersproject/rlp": "5.0.9", - "@ethersproject/sha2": "5.0.9", - "@ethersproject/signing-key": "5.0.11", - "@ethersproject/solidity": "5.0.10", - "@ethersproject/strings": "5.0.10", - "@ethersproject/transactions": "5.0.11", - "@ethersproject/units": "5.0.11", - "@ethersproject/wallet": "5.0.12", - "@ethersproject/web": "5.0.14", - "@ethersproject/wordlists": "5.0.10" - }, - "dependencies": { - "@ethersproject/abi": { - "version": "5.0.13", - "resolved": "https://registry.npmjs.org/@ethersproject/abi/-/abi-5.0.13.tgz", - "integrity": "sha512-2coOH3D7ra1lwamKEH0HVc+Jbcsw5yfeCgmY8ekhCDualEiyyovD2qDcMBBcY3+kjoLHVTmo7ost6MNClxdOrg==", - "requires": { - "@ethersproject/address": "^5.0.9", - "@ethersproject/bignumber": "^5.0.13", - "@ethersproject/bytes": "^5.0.9", - "@ethersproject/constants": "^5.0.8", - "@ethersproject/hash": "^5.0.10", - "@ethersproject/keccak256": "^5.0.7", - "@ethersproject/logger": "^5.0.8", - "@ethersproject/properties": "^5.0.7", - "@ethersproject/strings": "^5.0.8" - } - } - } - }, - "eventemitter3": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.0.tgz", - "integrity": "sha512-qerSRB0p+UDEssxTtm6EDKcE7W4OaoisfIMl4CngyEhjpYglocpNg6UEqCvemdGhosAsg4sO2dXJOdyBifPGCg==" - }, - "fast-deep-equal": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz", - "integrity": "sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ=" - }, - "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==", - "requires": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - } - }, - "har-validator": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.0.3.tgz", - "integrity": "sha1-ukAsJmGU8VlW7xXg/PJCmT9qff0=", - "requires": { - "ajv": "^5.1.0", - "har-schema": "^2.0.0" - }, - "dependencies": { - "ajv": { - "version": "5.5.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", - "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", - "requires": { - "co": "^4.6.0", - "fast-deep-equal": "^1.0.0", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.3.0" - } - } - } - }, - "is-fullwidth-code-point": { - "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==" - }, - "js-yaml": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.0.0.tgz", - "integrity": "sha512-pqon0s+4ScYUvX30wxQi3PogGFAlUyH0awepWvwkj4jD4v+ova3RiYw8bmA6x2rDrEaj8i/oWKoRxpVNW+Re8Q==", - "requires": { - "argparse": "^2.0.1" - } - }, - "json-schema-traverse": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz", - "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=" - }, - "keccak": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/keccak/-/keccak-2.1.0.tgz", - "integrity": "sha512-m1wbJRTo+gWbctZWay9i26v5fFnYkOn7D5PCxJ3fZUGUEb49dE1Pm4BREUYCt/aoO6di7jeoGmhvqN9Nzylm3Q==", - "requires": { - "bindings": "^1.5.0", - "inherits": "^2.0.4", - "nan": "^2.14.0", - "safe-buffer": "^5.2.0" - } - }, - "loader-runner": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.4.0.tgz", - "integrity": "sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw==" - }, - "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==", - "requires": { - "p-locate": "^5.0.0" - } - }, - "mkdirp": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", - "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", - "requires": { - "minimist": "^1.2.6" - } - }, - "mocha": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/mocha/-/mocha-8.3.2.tgz", - "integrity": "sha512-UdmISwr/5w+uXLPKspgoV7/RXZwKRTiTjJ2/AC5ZiEztIoOYdfKb19+9jNmEInzx5pBsCyJQzarAxqIGBNYJhg==", - "requires": { - "@ungap/promise-all-settled": "1.1.2", - "ansi-colors": "4.1.1", - "browser-stdout": "1.3.1", - "chokidar": "3.5.1", - "debug": "4.3.1", - "diff": "5.0.0", - "escape-string-regexp": "4.0.0", - "find-up": "5.0.0", - "glob": "7.1.6", - "growl": "1.10.5", - "he": "1.2.0", - "js-yaml": "4.0.0", - "log-symbols": "4.0.0", - "minimatch": "3.0.4", - "ms": "2.1.3", - "nanoid": "3.1.20", - "serialize-javascript": "5.0.1", - "strip-json-comments": "3.1.1", - "supports-color": "8.1.1", - "which": "2.0.2", - "wide-align": "1.1.3", - "workerpool": "6.1.0", - "yargs": "16.2.0", - "yargs-parser": "20.2.4", - "yargs-unparser": "2.0.0" - }, - "dependencies": { - "debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", - "requires": { - "ms": "2.1.2" - }, - "dependencies": { - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - } - } - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - }, - "ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" - }, - "serialize-javascript": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-5.0.1.tgz", - "integrity": "sha512-SaaNal9imEO737H2c05Og0/8LUXG7EnsZyMa8MzkmuHoELfT6txuj0cMqRj6zfPKnmQ1yasR4PCJc8x+M4JSPA==", - "requires": { - "randombytes": "^2.1.0" - } - }, - "supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "requires": { - "has-flag": "^4.0.0" - } - }, - "yargs": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", - "requires": { - "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" - } - } - } - }, - "multibase": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/multibase/-/multibase-4.0.6.tgz", - "integrity": "sha512-x23pDe5+svdLz/k5JPGCVdfn7Q5mZVMBETiC+ORfO+sor9Sgs0smJzAjfTbM5tckeCqnaUuMYoz+k3RXMmJClQ==", - "requires": { - "@multiformats/base-x": "^4.0.1" - } - }, - "multihashes": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/multihashes/-/multihashes-4.0.2.tgz", - "integrity": "sha512-xpx++1iZr4ZQHjN1mcrXS6904R36LWLxX/CBifczjtmrtCXEX623DMWOF1eiNSg+pFpiZDFVBgou/4v6ayCHSQ==", - "requires": { - "multibase": "^4.0.1", - "uint8arrays": "^2.1.3", - "varint": "^5.0.2" - } - }, - "node-fetch": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz", - "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==" - }, - "oauth-sign": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz", - "integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM=" - }, - "oboe": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/oboe/-/oboe-2.1.3.tgz", - "integrity": "sha1-K0hl29Rr6BIlcT9Om/5Lz09oCk8=", - "requires": { - "http-https": "^1.0.0" - } - }, - "p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "requires": { - "yocto-queue": "^0.1.0" - } - }, - "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==", - "requires": { - "p-limit": "^3.0.2" - } - }, - "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==" - }, - "punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=" - }, - "regenerator-runtime": { - "version": "0.12.1", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.12.1.tgz", - "integrity": "sha512-odxIc1/vDlo4iZcfXqRYFj0vpXFNoGdKMAUieAlFYO6m/nl5e9KR/beGf41z4a1FI+aQgtjhuaSlDxQ0hmkrHg==" - }, - "request": { - "version": "2.87.0", - "resolved": "https://registry.npmjs.org/request/-/request-2.87.0.tgz", - "integrity": "sha512-fcogkm7Az5bsS6Sl0sibkbhcKsnyon/jV1kF3ajGmF0c8HrttdKTPRT9hieOaQHA5HEq6r8OyWOo/o781C1tNw==", - "requires": { - "aws-sign2": "~0.7.0", - "aws4": "^1.6.0", - "caseless": "~0.12.0", - "combined-stream": "~1.0.5", - "extend": "~3.0.1", - "forever-agent": "~0.6.1", - "form-data": "~2.3.1", - "har-validator": "~5.0.3", - "http-signature": "~1.2.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.17", - "oauth-sign": "~0.8.2", - "performance-now": "^2.1.0", - "qs": "~6.5.1", - "safe-buffer": "^5.1.1", - "tough-cookie": "~2.3.3", - "tunnel-agent": "^0.6.0", - "uuid": "^3.1.0" - } - }, - "requestretry": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/requestretry/-/requestretry-2.0.2.tgz", - "integrity": "sha512-wBIylIEvvGHnFAYRXIKCARGzWxChn+mo7X3KjXPgtofB+c0ejcZFdZ5k6RFhBV+IOf80fkemcVuVdUKqovnj8A==", - "requires": { - "extend": "^3.0.2", - "lodash": "^4.17.10", - "when": "^3.7.7" - } - }, - "schema-utils": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", - "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", - "requires": { - "ajv": "^6.1.0", - "ajv-errors": "^1.0.0", - "ajv-keywords": "^3.1.0" - } - }, - "scrypt-js": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-3.0.1.tgz", - "integrity": "sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA==" - }, - "secp256k1": { - "version": "3.8.0", - "resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-3.8.0.tgz", - "integrity": "sha512-k5ke5avRZbtl9Tqx/SA7CbY3NF6Ro+Sj9cZxezFzuBlLDmyqPiL8hJJ+EmzD8Ig4LUDByHJ3/iPOVoRixs/hmw==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "requires": { - "bindings": "^1.5.0", - "bip66": "^1.1.5", - "bn.js": "^4.11.8", - "create-hash": "^1.2.0", - "drbg.js": "^1.0.1", - "elliptic": "^6.5.2", - "nan": "^2.14.0", - "safe-buffer": "^5.1.2" + "color-name": "~1.1.4" } }, - "semver": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.2.0.tgz", - "integrity": "sha512-jdFC1VdUGT/2Scgbimf7FSx9iJLXoqfglSF+gJeuNWVpiE37OIbc1jywR/GJyFdz3mnkz2/id0L0J/cr0izR5A==" + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "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==" + }, + "is-fullwidth-code-point": { + "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==" }, "string-width": { "version": "4.2.3", @@ -47612,2895 +8509,1979 @@ "ansi-regex": "^5.0.1" } }, - "supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", "requires": { - "has-flag": "^3.0.0" + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" } }, - "tapable": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz", - "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==" - }, - "terser": { - "version": "4.8.0", - "resolved": "https://registry.npmjs.org/terser/-/terser-4.8.0.tgz", - "integrity": "sha512-EAPipTNeWsb/3wLPeup1tVPaXfIaU68xMnVdPafIL1TV05OhASArYyIfFvnvJCNrR2NIOvDVNNTFRa+Re2MWyw==", + "wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", "requires": { - "commander": "^2.20.0", - "source-map": "~0.6.1", - "source-map-support": "~0.5.12" + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" } }, - "terser-webpack-plugin": { - "version": "1.4.5", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.4.5.tgz", - "integrity": "sha512-04Rfe496lN8EYruwi6oPQkG0vo8C+HT49X687FZnpPF0qMAIHONI6HEXYPKDOE8e5HjXTyKfqRd/agHtH0kOtw==", - "requires": { - "cacache": "^12.0.2", - "find-cache-dir": "^2.1.0", - "is-wsl": "^1.1.0", - "schema-utils": "^1.0.0", - "serialize-javascript": "^4.0.0", - "source-map": "^0.6.1", - "terser": "^4.1.2", - "webpack-sources": "^1.4.0", - "worker-farm": "^1.7.0" - } + "y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==" }, - "tough-cookie": { - "version": "2.3.4", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.4.tgz", - "integrity": "sha512-TZ6TTfI5NtZnuyy/Kecv+CnoROnyXn2DN97LontgQpCwsX2XyLYCC0ENhYkehSOwAp8rTQKc/NUIF7BkQ5rKLA==", + "yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", "requires": { - "punycode": "^1.4.1" + "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" } }, - "uint8arrays": { - "version": "2.1.10", - "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-2.1.10.tgz", - "integrity": "sha512-Q9/hhJa2836nQfEJSZTmr+pg9+cDJS9XEAp7N2Vg5MzL3bK/mkMVfjscRGYruP9jNda6MAdf4QD/y78gSzkp6A==", - "requires": { - "multiformats": "^9.4.2" - } + "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==" + } + } + }, + "core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" + }, + "cosmjs-types": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/cosmjs-types/-/cosmjs-types-0.7.1.tgz", + "integrity": "sha512-qP89SGwi6YpvMTrM9CPzTfZ0JPNlXzgimqMLsa/ZjzW+L6MC8TCr6XmoWtFOT6GSfefvJLwFWq7YCtL456Bdzg==", + "requires": { + "long": "^4.0.0", + "protobufjs": "~6.11.2" + } + }, + "crc-32": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/crc-32/-/crc-32-1.2.0.tgz", + "integrity": "sha512-1uBwHxF+Y/4yF5G48fwnKq6QsIXheor3ZLPT80yGBV1oEUwpPojlEhQbWKVw1VwcTQyMGHK1/XMmTjmlsmTTGA==", + "requires": { + "exit-on-epipe": "~1.0.1", + "printj": "~1.1.0" + } + }, + "create-hash": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", + "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", + "requires": { + "cipher-base": "^1.0.1", + "inherits": "^2.0.1", + "md5.js": "^1.3.4", + "ripemd160": "^2.0.1", + "sha.js": "^2.4.0" + } + }, + "create-hmac": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", + "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", + "requires": { + "cipher-base": "^1.0.3", + "create-hash": "^1.1.0", + "inherits": "^2.0.1", + "ripemd160": "^2.0.0", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + } + }, + "create-require": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", + "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", + "dev": true + }, + "crypto-addr-codec": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/crypto-addr-codec/-/crypto-addr-codec-0.1.7.tgz", + "integrity": "sha512-X4hzfBzNhy4mAc3UpiXEC/L0jo5E8wAa9unsnA8nNXYzXjCcGk83hfC5avJWCSGT8V91xMnAS9AKMHmjw5+XCg==", + "requires": { + "base-x": "^3.0.8", + "big-integer": "1.6.36", + "blakejs": "^1.1.0", + "bs58": "^4.0.1", + "ripemd160-min": "0.0.6", + "safe-buffer": "^5.2.0", + "sha3": "^2.1.1" + } + }, + "crypto-hash": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/crypto-hash/-/crypto-hash-1.3.0.tgz", + "integrity": "sha512-lyAZ0EMyjDkVvz8WOeVnuCPvKVBXcMv1l5SVqO1yC7PzTwrD/pPje/BIRbWhMoPe436U+Y2nD7f5bFx0kt+Sbg==" + }, + "decimal.js": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.4.3.tgz", + "integrity": "sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==" + }, + "deep-extend": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==" + }, + "define-properties": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", + "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", + "requires": { + "object-keys": "^1.0.12" + } + }, + "delay": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/delay/-/delay-5.0.0.tgz", + "integrity": "sha512-ReEBKkIfe4ya47wlPYf/gu5ib6yUG0/Aez0JQZQz94kiWtRQvZIQbTiehsnwHvLSWJnQdhVeqYue7Id1dKr0qw==" + }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" + }, + "depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=" + }, + "diff": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", + "dev": true + }, + "dotenv": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-10.0.0.tgz", + "integrity": "sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q==" + }, + "drbg.js": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/drbg.js/-/drbg.js-1.0.1.tgz", + "integrity": "sha1-Pja2xCs3BDgjzbwzLVjzHiRFSAs=", + "optional": true, + "requires": { + "browserify-aes": "^1.0.6", + "create-hash": "^1.1.2", + "create-hmac": "^1.1.4" + } + }, + "eccrypto": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/eccrypto/-/eccrypto-1.1.6.tgz", + "integrity": "sha512-d78ivVEzu7Tn0ZphUUaL43+jVPKTMPFGtmgtz1D0LrFn7cY3K8CdrvibuLz2AAkHBLKZtR8DMbB2ukRYFk987A==", + "requires": { + "acorn": "7.1.1", + "elliptic": "6.5.4", + "es6-promise": "4.2.8", + "nan": "2.14.0", + "secp256k1": "3.7.1" + }, + "dependencies": { + "acorn": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.1.1.tgz", + "integrity": "sha512-add7dgA5ppRPxCFJoAGfMDi7PIBXq1RtGo7BhbLaxwrXPOmw8gq48Y9ozT01hUKy9byMjlR20EJhu5zlkErEkg==" + }, + "nan": { + "version": "2.14.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.0.tgz", + "integrity": "sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg==" }, - "watchpack": { - "version": "1.7.5", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.7.5.tgz", - "integrity": "sha512-9P3MWk6SrKjHsGkLT2KHXdQ/9SNkyoJbabxnKOoJepsvJjJG8uYTR3yTPxPQvNDI3w4Nz1xnE0TLHK4RIVe/MQ==", + "secp256k1": { + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-3.7.1.tgz", + "integrity": "sha512-1cf8sbnRreXrQFdH6qsg2H71Xw91fCCS9Yp021GnUNJzWJS/py96fS4lHbnTnouLp08Xj6jBoBB6V78Tdbdu5g==", + "optional": true, "requires": { - "chokidar": "^3.4.1", - "graceful-fs": "^4.1.2", - "neo-async": "^2.5.0", - "watchpack-chokidar2": "^2.0.1" + "bindings": "^1.5.0", + "bip66": "^1.1.5", + "bn.js": "^4.11.8", + "create-hash": "^1.2.0", + "drbg.js": "^1.0.1", + "elliptic": "^6.4.1", + "nan": "^2.14.0", + "safe-buffer": "^5.1.2" } - }, - "webpack": { - "version": "4.44.2", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.44.2.tgz", - "integrity": "sha512-6KJVGlCxYdISyurpQ0IPTklv+DULv05rs2hseIXer6D7KrUicRDLFb4IUM1S6LUAKypPM/nSiVSuv8jHu1m3/Q==", + } + } + }, + "elliptic": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", + "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", + "requires": { + "bn.js": "^4.11.9", + "brorand": "^1.1.0", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.1", + "inherits": "^2.0.4", + "minimalistic-assert": "^1.0.1", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "encoding": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", + "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", + "optional": true, + "peer": true, + "requires": { + "iconv-lite": "^0.6.2" + }, + "dependencies": { + "iconv-lite": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.2.tgz", + "integrity": "sha512-2y91h5OpQlolefMPmUlivelittSWy0rP+oYVpn6A7GwVHNE8AWzoYOBNmlwks3LobaJxgHCYZAnyNo2GgpNRNQ==", + "optional": true, + "peer": true, "requires": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-module-context": "1.9.0", - "@webassemblyjs/wasm-edit": "1.9.0", - "@webassemblyjs/wasm-parser": "1.9.0", - "acorn": "^6.4.1", - "ajv": "^6.10.2", - "ajv-keywords": "^3.4.1", - "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^4.3.0", - "eslint-scope": "^4.0.3", - "json-parse-better-errors": "^1.0.2", - "loader-runner": "^2.4.0", - "loader-utils": "^1.2.3", - "memory-fs": "^0.4.1", - "micromatch": "^3.1.10", - "mkdirp": "^0.5.3", - "neo-async": "^2.6.1", - "node-libs-browser": "^2.2.1", - "schema-utils": "^1.0.0", - "tapable": "^1.1.3", - "terser-webpack-plugin": "^1.4.3", - "watchpack": "^1.7.4", - "webpack-sources": "^1.4.1" + "safer-buffer": ">= 2.1.2 < 3.0.0" } - }, - "webpack-cli": { - "version": "3.3.12", - "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-3.3.12.tgz", - "integrity": "sha512-NVWBaz9k839ZH/sinurM+HcDvJOTXwSjYp1ku+5XKeOC03z8v5QitnK/x+lAxGXFyhdayoIf/GOpv85z3/xPag==", + } + } + }, + "error-polyfill": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/error-polyfill/-/error-polyfill-0.1.3.tgz", + "integrity": "sha512-XHJk60ufE+TG/ydwp4lilOog549iiQF2OAPhkk9DdiYWMrltz5yhDz/xnKuenNwP7gy3dsibssO5QpVhkrSzzg==", + "requires": { + "capability": "^0.2.5", + "o3": "^1.0.3", + "u3": "^0.1.1" + } + }, + "es6-promise": { + "version": "4.2.8", + "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz", + "integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==" + }, + "es6-promisify": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz", + "integrity": "sha512-C+d6UdsYDk0lMebHNR4S2NybQMMngAOnOwYBQjTOiv0MkoJMP0Myw2mgpDLBcpfCmRLxyFqYhS/CfOENq4SJhQ==", + "requires": { + "es6-promise": "^4.0.3" + } + }, + "escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==" + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" + }, + "eth-crypto": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/eth-crypto/-/eth-crypto-2.6.0.tgz", + "integrity": "sha512-GCX4ffFYRUGgnuWR5qxcZIRQJ1KEqPFiyXU9yVy7s6dtXIMlUXZQ2h+5ID6rFaOHWbpJbjfkC6YdhwtwRYCnug==", + "requires": { + "@babel/runtime": "7.20.13", + "@ethereumjs/tx": "3.5.2", + "@types/bn.js": "5.1.1", + "eccrypto": "1.1.6", + "ethereumjs-util": "7.1.5", + "ethers": "5.7.2", + "secp256k1": "5.0.0" + }, + "dependencies": { + "@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==", "requires": { - "chalk": "^2.4.2", - "cross-spawn": "^6.0.5", - "enhanced-resolve": "^4.1.1", - "findup-sync": "^3.0.0", - "global-modules": "^2.0.0", - "import-local": "^2.0.0", - "interpret": "^1.4.0", - "loader-utils": "^1.4.0", - "supports-color": "^6.1.0", - "v8-compile-cache": "^2.1.1", - "yargs": "^13.3.2" + "@types/node": "*" } }, - "webpack-sources": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz", - "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==", - "requires": { - "source-list-map": "^2.0.0", - "source-map": "~0.6.1" - } + "bn.js": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", + "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==" }, - "websocket": { - "version": "1.0.31", - "resolved": "https://registry.npmjs.org/websocket/-/websocket-1.0.31.tgz", - "integrity": "sha512-VAouplvGKPiKFDTeCCO65vYHsyay8DqoBSlzIO3fayrfOgU94lQN5a1uWVnFrMLceTJw/+fQXR5PGbUVRaHshQ==", + "ethereumjs-util": { + "version": "7.1.5", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.5.tgz", + "integrity": "sha512-SDl5kKrQAudFBUe5OJM9Ac6WmMyYmXX/6sTmLZ3ffG2eY6ZIGBes3pEDxNN6V72WyOw4CPD5RomKdsa8DAAwLg==", "requires": { - "debug": "^2.2.0", - "es5-ext": "^0.10.50", - "nan": "^2.14.0", - "typedarray-to-buffer": "^3.1.5", - "yaeti": "^0.0.6" + "@types/bn.js": "^5.1.0", + "bn.js": "^5.1.2", + "create-hash": "^1.1.2", + "ethereum-cryptography": "^0.1.3", + "rlp": "^2.2.4" } }, - "workerpool": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.1.0.tgz", - "integrity": "sha512-toV7q9rWNYha963Pl/qyeZ6wG+3nnsyvolaNUS8+R5Wtw6qJPTxIlOP1ZSvcGhEJw+l3HMMmtiNo9Gl61G4GVg==" - }, - "wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - } + "node-addon-api": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-5.1.0.tgz", + "integrity": "sha512-eh0GgfEkpnoWDq+VY8OyvYhFEzBk6jIYbRKdIlyTiAXIVJ8PyBaKb0rp7oDtoddbdoHWhq8wwr+XZ81F1rpNdA==" }, - "ws": { - "version": "5.2.3", - "resolved": "https://registry.npmjs.org/ws/-/ws-5.2.3.tgz", - "integrity": "sha512-jZArVERrMsKUatIdnLzqvcfydI85dvd/Fp1u/VOpfdDWQ4c9qWXe+VIeAbQ5FrDwciAkr+lzofXLz3Kuf26AOA==", + "secp256k1": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-5.0.0.tgz", + "integrity": "sha512-TKWX8xvoGHrxVdqbYeZM9w+izTF4b9z3NhSaDkdn81btvuh+ivbIMGT/zQvDtTFWhRlThpoz6LEYTr7n8A5GcA==", "requires": { - "async-limiter": "~1.0.0" + "elliptic": "^6.5.4", + "node-addon-api": "^5.0.0", + "node-gyp-build": "^4.2.0" } - }, - "y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==" - }, - "yargs-parser": { - "version": "20.2.4", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz", - "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==" } } }, - "truffle-interface-adapter": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/truffle-interface-adapter/-/truffle-interface-adapter-0.2.5.tgz", - "integrity": "sha512-EL39OpP8FcZ99ne1Rno3jImfb92Nectd4iVsZzoEUCBfbwHe7sr0k+i45guoruSoP8nMUE81Mov2s8I5pi6d9Q==", - "dev": true, + "ethereum-cryptography": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz", + "integrity": "sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ==", "requires": { - "bn.js": "^4.11.8", - "ethers": "^4.0.32", - "lodash": "^4.17.13", - "web3": "1.2.1" + "@types/pbkdf2": "^3.0.0", + "@types/secp256k1": "^4.0.1", + "blakejs": "^1.1.0", + "browserify-aes": "^1.2.0", + "bs58check": "^2.1.2", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "hash.js": "^1.1.7", + "keccak": "^3.0.0", + "pbkdf2": "^3.0.17", + "randombytes": "^2.1.0", + "safe-buffer": "^5.1.2", + "scrypt-js": "^3.0.0", + "secp256k1": "^4.0.1", + "setimmediate": "^1.0.5" }, "dependencies": { - "@types/node": { - "version": "10.17.28", - "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.28.tgz", - "integrity": "sha512-dzjES1Egb4c1a89C7lKwQh8pwjYmlOAG9dW1pBgxEk57tMrLnssOfEthz8kdkNaBd7lIqQx7APm5+mZ619IiCQ==", - "dev": true - }, - "eth-lib": { - "version": "0.2.7", - "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.7.tgz", - "integrity": "sha1-L5Pxex4jrsN1nNSj/iDBKGo/wco=", - "dev": true, - "requires": { - "bn.js": "^4.11.6", - "elliptic": "^6.4.0", - "xhr-request-promise": "^0.1.2" - } - }, - "ethers": { - "version": "4.0.49", - "resolved": "https://registry.npmjs.org/ethers/-/ethers-4.0.49.tgz", - "integrity": "sha512-kPltTvWiyu+OktYy1IStSO16i2e7cS9D9OxZ81q2UUaiNPVrm/RTcbxamCXF9VUSKzJIdJV68EAIhTEVBalRWg==", - "dev": true, + "hash.js": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", + "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", "requires": { - "aes-js": "3.0.0", - "bn.js": "^4.11.9", - "elliptic": "6.5.4", - "hash.js": "1.1.3", - "js-sha3": "0.5.7", - "scrypt-js": "2.0.4", - "setimmediate": "1.0.4", - "uuid": "2.0.1", - "xmlhttprequest": "1.8.0" - }, - "dependencies": { - "scrypt-js": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-2.0.4.tgz", - "integrity": "sha512-4KsaGcPnuhtCZQCxFxN3GVYIhKFPTdLd8PLC552XwbMndtD0cjRFAhDuuydXQ0h08ZfPgzqe6EKHozpuH74iDw==", - "dev": true - } + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.1" } }, "scrypt-js": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-2.0.3.tgz", - "integrity": "sha1-uwBAvgMEPamgEqLOqfyfhSz8h9Q=", - "dev": true - }, - "semver": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.2.0.tgz", - "integrity": "sha512-jdFC1VdUGT/2Scgbimf7FSx9iJLXoqfglSF+gJeuNWVpiE37OIbc1jywR/GJyFdz3mnkz2/id0L0J/cr0izR5A==", - "dev": true - }, - "underscore": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.9.1.tgz", - "integrity": "sha512-5/4etnCkd9c8gwgowi5/om/mYO5ajCaOgdzj/oW+0eQV9WxKBDZw5+ycmKmeaTXjInS/W0BzpGLo2xR2aBwZdg==", - "dev": true - }, - "uuid": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-2.0.1.tgz", - "integrity": "sha1-wqMN7bPlNdcsz4LjQ5QaULqFM6w=", - "dev": true - }, - "web3": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3/-/web3-1.2.1.tgz", - "integrity": "sha512-nNMzeCK0agb5i/oTWNdQ1aGtwYfXzHottFP2Dz0oGIzavPMGSKyVlr8ibVb1yK5sJBjrWVnTdGaOC2zKDFuFRw==", - "dev": true, - "requires": { - "web3-bzz": "1.2.1", - "web3-core": "1.2.1", - "web3-eth": "1.2.1", - "web3-eth-personal": "1.2.1", - "web3-net": "1.2.1", - "web3-shh": "1.2.1", - "web3-utils": "1.2.1" - } - }, - "web3-bzz": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-bzz/-/web3-bzz-1.2.1.tgz", - "integrity": "sha512-LdOO44TuYbGIPfL4ilkuS89GQovxUpmLz6C1UC7VYVVRILeZS740FVB3j9V4P4FHUk1RenaDfKhcntqgVCHtjw==", - "dev": true, - "requires": { - "got": "9.6.0", - "swarm-js": "0.1.39", - "underscore": "1.9.1" - } - }, - "web3-core": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-core/-/web3-core-1.2.1.tgz", - "integrity": "sha512-5ODwIqgl8oIg/0+Ai4jsLxkKFWJYE0uLuE1yUKHNVCL4zL6n3rFjRMpKPokd6id6nJCNgeA64KdWQ4XfpnjdMg==", - "dev": true, - "requires": { - "web3-core-helpers": "1.2.1", - "web3-core-method": "1.2.1", - "web3-core-requestmanager": "1.2.1", - "web3-utils": "1.2.1" - } - }, - "web3-core-helpers": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.2.1.tgz", - "integrity": "sha512-Gx3sTEajD5r96bJgfuW377PZVFmXIH4TdqDhgGwd2lZQCcMi+DA4TgxJNJGxn0R3aUVzyyE76j4LBrh412mXrw==", - "dev": true, - "requires": { - "underscore": "1.9.1", - "web3-eth-iban": "1.2.1", - "web3-utils": "1.2.1" - } - }, - "web3-core-method": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-core-method/-/web3-core-method-1.2.1.tgz", - "integrity": "sha512-Ghg2WS23qi6Xj8Od3VCzaImLHseEA7/usvnOItluiIc5cKs00WYWsNy2YRStzU9a2+z8lwQywPYp0nTzR/QXdQ==", - "dev": true, - "requires": { - "underscore": "1.9.1", - "web3-core-helpers": "1.2.1", - "web3-core-promievent": "1.2.1", - "web3-core-subscriptions": "1.2.1", - "web3-utils": "1.2.1" - } + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-3.0.1.tgz", + "integrity": "sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA==" }, - "web3-core-promievent": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-core-promievent/-/web3-core-promievent-1.2.1.tgz", - "integrity": "sha512-IVUqgpIKoeOYblwpex4Hye6npM0aMR+kU49VP06secPeN0rHMyhGF0ZGveWBrGvf8WDPI7jhqPBFIC6Jf3Q3zw==", - "dev": true, + "setimmediate": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", + "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=" + } + } + }, + "ethereumjs-abi": { + "version": "0.6.8", + "resolved": "https://registry.npmjs.org/ethereumjs-abi/-/ethereumjs-abi-0.6.8.tgz", + "integrity": "sha512-Tx0r/iXI6r+lRsdvkFDlut0N08jWMnKRZ6Gkq+Nmw75lZe4e6o3EkSnkaBP5NF6+m5PTGAr9JP43N3LyeoglsA==", + "requires": { + "bn.js": "^4.11.8", + "ethereumjs-util": "^6.0.0" + } + }, + "ethereumjs-util": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-6.2.1.tgz", + "integrity": "sha512-W2Ktez4L01Vexijrm5EB6w7dg4n/TgpoYU4avuT5T3Vmnw/eCRtiBrJfQYS/DCSvDIOLn2k57GcHdeBcgVxAqw==", + "requires": { + "@types/bn.js": "^4.11.3", + "bn.js": "^4.11.0", + "create-hash": "^1.1.2", + "elliptic": "^6.5.2", + "ethereum-cryptography": "^0.1.3", + "ethjs-util": "0.1.6", + "rlp": "^2.2.3" + } + }, + "ethers": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/ethers/-/ethers-5.7.2.tgz", + "integrity": "sha512-wswUsmWo1aOK8rR7DIKiWSw9DbLWe6x98Jrn8wcTflTVvaXhAMaB5zGAXy0GYQEQp9iO1iSHWVyARQm11zUtyg==", + "requires": { + "@ethersproject/abi": "5.7.0", + "@ethersproject/abstract-provider": "5.7.0", + "@ethersproject/abstract-signer": "5.7.0", + "@ethersproject/address": "5.7.0", + "@ethersproject/base64": "5.7.0", + "@ethersproject/basex": "5.7.0", + "@ethersproject/bignumber": "5.7.0", + "@ethersproject/bytes": "5.7.0", + "@ethersproject/constants": "5.7.0", + "@ethersproject/contracts": "5.7.0", + "@ethersproject/hash": "5.7.0", + "@ethersproject/hdnode": "5.7.0", + "@ethersproject/json-wallets": "5.7.0", + "@ethersproject/keccak256": "5.7.0", + "@ethersproject/logger": "5.7.0", + "@ethersproject/networks": "5.7.1", + "@ethersproject/pbkdf2": "5.7.0", + "@ethersproject/properties": "5.7.0", + "@ethersproject/providers": "5.7.2", + "@ethersproject/random": "5.7.0", + "@ethersproject/rlp": "5.7.0", + "@ethersproject/sha2": "5.7.0", + "@ethersproject/signing-key": "5.7.0", + "@ethersproject/solidity": "5.7.0", + "@ethersproject/strings": "5.7.0", + "@ethersproject/transactions": "5.7.0", + "@ethersproject/units": "5.7.0", + "@ethersproject/wallet": "5.7.0", + "@ethersproject/web": "5.7.1", + "@ethersproject/wordlists": "5.7.0" + }, + "dependencies": { + "@ethersproject/basex": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/basex/-/basex-5.7.0.tgz", + "integrity": "sha512-ywlh43GwZLv2Voc2gQVTKBoVQ1mti3d8HK5aMxsfu/nRDnMmNqaSJ3r3n85HBByT8OpoY96SXM1FogC533T4zw==", "requires": { - "any-promise": "1.3.0", - "eventemitter3": "3.1.2" + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/properties": "^5.7.0" } }, - "web3-core-requestmanager": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-core-requestmanager/-/web3-core-requestmanager-1.2.1.tgz", - "integrity": "sha512-xfknTC69RfYmLKC+83Jz73IC3/sS2ZLhGtX33D4Q5nQ8yc39ElyAolxr9sJQS8kihOcM6u4J+8gyGMqsLcpIBg==", - "dev": true, + "@ethersproject/contracts": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/contracts/-/contracts-5.7.0.tgz", + "integrity": "sha512-5GJbzEU3X+d33CdfPhcyS+z8MzsTrBGk/sc+G+59+tPa9yFkl6HQ9D6L0QMgNTA9q8dT0XKxxkyp883XsQvbbg==", "requires": { - "underscore": "1.9.1", - "web3-core-helpers": "1.2.1", - "web3-providers-http": "1.2.1", - "web3-providers-ipc": "1.2.1", - "web3-providers-ws": "1.2.1" + "@ethersproject/abi": "^5.7.0", + "@ethersproject/abstract-provider": "^5.7.0", + "@ethersproject/abstract-signer": "^5.7.0", + "@ethersproject/address": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/transactions": "^5.7.0" } }, - "web3-core-subscriptions": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-core-subscriptions/-/web3-core-subscriptions-1.2.1.tgz", - "integrity": "sha512-nmOwe3NsB8V8UFsY1r+sW6KjdOS68h8nuh7NzlWxBQT/19QSUGiERRTaZXWu5BYvo1EoZRMxCKyCQpSSXLc08g==", - "dev": true, + "@ethersproject/hdnode": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/hdnode/-/hdnode-5.7.0.tgz", + "integrity": "sha512-OmyYo9EENBPPf4ERhR7oj6uAtUAhYGqOnIS+jE5pTXvdKBS99ikzq1E7Iv0ZQZ5V36Lqx1qZLeak0Ra16qpeOg==", "requires": { - "eventemitter3": "3.1.2", - "underscore": "1.9.1", - "web3-core-helpers": "1.2.1" + "@ethersproject/abstract-signer": "^5.7.0", + "@ethersproject/basex": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/pbkdf2": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/sha2": "^5.7.0", + "@ethersproject/signing-key": "^5.7.0", + "@ethersproject/strings": "^5.7.0", + "@ethersproject/transactions": "^5.7.0", + "@ethersproject/wordlists": "^5.7.0" } }, - "web3-eth": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-eth/-/web3-eth-1.2.1.tgz", - "integrity": "sha512-/2xly4Yry5FW1i+uygPjhfvgUP/MS/Dk+PDqmzp5M88tS86A+j8BzKc23GrlA8sgGs0645cpZK/999LpEF5UdA==", - "dev": true, + "@ethersproject/json-wallets": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/json-wallets/-/json-wallets-5.7.0.tgz", + "integrity": "sha512-8oee5Xgu6+RKgJTkvEMl2wDgSPSAQ9MB/3JYjFV9jlKvcYHUXZC+cQp0njgmxdHkYWn8s6/IqIZYm0YWCjO/0g==", "requires": { - "underscore": "1.9.1", - "web3-core": "1.2.1", - "web3-core-helpers": "1.2.1", - "web3-core-method": "1.2.1", - "web3-core-subscriptions": "1.2.1", - "web3-eth-abi": "1.2.1", - "web3-eth-accounts": "1.2.1", - "web3-eth-contract": "1.2.1", - "web3-eth-ens": "1.2.1", - "web3-eth-iban": "1.2.1", - "web3-eth-personal": "1.2.1", - "web3-net": "1.2.1", - "web3-utils": "1.2.1" + "@ethersproject/abstract-signer": "^5.7.0", + "@ethersproject/address": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/hdnode": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/pbkdf2": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/random": "^5.7.0", + "@ethersproject/strings": "^5.7.0", + "@ethersproject/transactions": "^5.7.0", + "aes-js": "3.0.0", + "scrypt-js": "3.0.1" } }, - "web3-eth-abi": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-eth-abi/-/web3-eth-abi-1.2.1.tgz", - "integrity": "sha512-jI/KhU2a/DQPZXHjo2GW0myEljzfiKOn+h1qxK1+Y9OQfTcBMxrQJyH5AP89O6l6NZ1QvNdq99ThAxBFoy5L+g==", - "dev": true, + "@ethersproject/pbkdf2": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/pbkdf2/-/pbkdf2-5.7.0.tgz", + "integrity": "sha512-oR/dBRZR6GTyaofd86DehG72hY6NpAjhabkhxgr3X2FpJtJuodEl2auADWBZfhDHgVCbu3/H/Ocq2uC6dpNjjw==", "requires": { - "ethers": "4.0.0-beta.3", - "underscore": "1.9.1", - "web3-utils": "1.2.1" - }, - "dependencies": { - "elliptic": { - "version": "6.3.3", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.3.3.tgz", - "integrity": "sha1-VILZZG1UvLif19mU/J4ulWiHbj8=", - "dev": true, - "requires": { - "bn.js": "^4.4.0", - "brorand": "^1.0.1", - "hash.js": "^1.0.0", - "inherits": "^2.0.1" - } - }, - "ethers": { - "version": "4.0.0-beta.3", - "resolved": "https://registry.npmjs.org/ethers/-/ethers-4.0.0-beta.3.tgz", - "integrity": "sha512-YYPogooSknTwvHg3+Mv71gM/3Wcrx+ZpCzarBj3mqs9njjRkrOo2/eufzhHloOCo3JSoNI4TQJJ6yU5ABm3Uog==", - "dev": true, - "requires": { - "@types/node": "^10.3.2", - "aes-js": "3.0.0", - "bn.js": "^4.4.0", - "elliptic": "6.3.3", - "hash.js": "1.1.3", - "js-sha3": "0.5.7", - "scrypt-js": "2.0.3", - "setimmediate": "1.0.4", - "uuid": "2.0.1", - "xmlhttprequest": "1.8.0" - } - } + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/sha2": "^5.7.0" } }, - "web3-eth-accounts": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-eth-accounts/-/web3-eth-accounts-1.2.1.tgz", - "integrity": "sha512-26I4qq42STQ8IeKUyur3MdQ1NzrzCqPsmzqpux0j6X/XBD7EjZ+Cs0lhGNkSKH5dI3V8CJasnQ5T1mNKeWB7nQ==", - "dev": true, + "@ethersproject/providers": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/@ethersproject/providers/-/providers-5.7.2.tgz", + "integrity": "sha512-g34EWZ1WWAVgr4aptGlVBF8mhl3VWjv+8hoAnzStu8Ah22VHBsuGzP17eb6xDVRzw895G4W7vvx60lFFur/1Rg==", "requires": { - "any-promise": "1.3.0", - "crypto-browserify": "3.12.0", - "eth-lib": "0.2.7", - "scryptsy": "2.1.0", - "semver": "6.2.0", - "underscore": "1.9.1", - "uuid": "3.3.2", - "web3-core": "1.2.1", - "web3-core-helpers": "1.2.1", - "web3-core-method": "1.2.1", - "web3-utils": "1.2.1" - }, - "dependencies": { - "uuid": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", - "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==", - "dev": true - } + "@ethersproject/abstract-provider": "^5.7.0", + "@ethersproject/abstract-signer": "^5.7.0", + "@ethersproject/address": "^5.7.0", + "@ethersproject/base64": "^5.7.0", + "@ethersproject/basex": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/hash": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/networks": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/random": "^5.7.0", + "@ethersproject/rlp": "^5.7.0", + "@ethersproject/sha2": "^5.7.0", + "@ethersproject/strings": "^5.7.0", + "@ethersproject/transactions": "^5.7.0", + "@ethersproject/web": "^5.7.0", + "bech32": "1.1.4", + "ws": "7.4.6" } }, - "web3-eth-contract": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-eth-contract/-/web3-eth-contract-1.2.1.tgz", - "integrity": "sha512-kYFESbQ3boC9bl2rYVghj7O8UKMiuKaiMkxvRH5cEDHil8V7MGEGZNH0slSdoyeftZVlaWSMqkRP/chfnKND0g==", - "dev": true, + "@ethersproject/random": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/random/-/random-5.7.0.tgz", + "integrity": "sha512-19WjScqRA8IIeWclFme75VMXSBvi4e6InrUNuaR4s5pTF2qNhcGdCUwdxUVGtDDqC00sDLCO93jPQoDUH4HVmQ==", "requires": { - "underscore": "1.9.1", - "web3-core": "1.2.1", - "web3-core-helpers": "1.2.1", - "web3-core-method": "1.2.1", - "web3-core-promievent": "1.2.1", - "web3-core-subscriptions": "1.2.1", - "web3-eth-abi": "1.2.1", - "web3-utils": "1.2.1" + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0" } }, - "web3-eth-ens": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-eth-ens/-/web3-eth-ens-1.2.1.tgz", - "integrity": "sha512-lhP1kFhqZr2nnbu3CGIFFrAnNxk2veXpOXBY48Tub37RtobDyHijHgrj+xTh+mFiPokyrapVjpFsbGa+Xzye4Q==", - "dev": true, + "@ethersproject/sha2": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/sha2/-/sha2-5.7.0.tgz", + "integrity": "sha512-gKlH42riwb3KYp0reLsFTokByAKoJdgFCwI+CCiX/k+Jm2mbNs6oOaCjYQSlI1+XBVejwH2KrmCbMAT/GnRDQw==", "requires": { - "eth-ens-namehash": "2.0.8", - "underscore": "1.9.1", - "web3-core": "1.2.1", - "web3-core-helpers": "1.2.1", - "web3-core-promievent": "1.2.1", - "web3-eth-abi": "1.2.1", - "web3-eth-contract": "1.2.1", - "web3-utils": "1.2.1" + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "hash.js": "1.1.7" } }, - "web3-eth-iban": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-eth-iban/-/web3-eth-iban-1.2.1.tgz", - "integrity": "sha512-9gkr4QPl1jCU+wkgmZ8EwODVO3ovVj6d6JKMos52ggdT2YCmlfvFVF6wlGLwi0VvNa/p+0BjJzaqxnnG/JewjQ==", - "dev": true, + "@ethersproject/solidity": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/solidity/-/solidity-5.7.0.tgz", + "integrity": "sha512-HmabMd2Dt/raavyaGukF4XxizWKhKQ24DoLtdNbBmNKUOPqwjsKQSdV9GQtj9CBEea9DlzETlVER1gYeXXBGaA==", "requires": { - "bn.js": "4.11.8", - "web3-utils": "1.2.1" - }, - "dependencies": { - "bn.js": { - "version": "4.11.8", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz", - "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==", - "dev": true - } + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/sha2": "^5.7.0", + "@ethersproject/strings": "^5.7.0" } }, - "web3-eth-personal": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-eth-personal/-/web3-eth-personal-1.2.1.tgz", - "integrity": "sha512-RNDVSiaSoY4aIp8+Hc7z+X72H7lMb3fmAChuSBADoEc7DsJrY/d0R5qQDK9g9t2BO8oxgLrLNyBP/9ub2Hc6Bg==", - "dev": true, + "@ethersproject/units": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/units/-/units-5.7.0.tgz", + "integrity": "sha512-pD3xLMy3SJu9kG5xDGI7+xhTEmGXlEqXU4OfNapmfnxLVY4EMSSRp7j1k7eezutBPH7RBN/7QPnwR7hzNlEFeg==", "requires": { - "web3-core": "1.2.1", - "web3-core-helpers": "1.2.1", - "web3-core-method": "1.2.1", - "web3-net": "1.2.1", - "web3-utils": "1.2.1" + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/logger": "^5.7.0" } }, - "web3-net": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-net/-/web3-net-1.2.1.tgz", - "integrity": "sha512-Yt1Bs7WgnLESPe0rri/ZoPWzSy55ovioaP35w1KZydrNtQ5Yq4WcrAdhBzcOW7vAkIwrsLQsvA+hrOCy7mNauw==", - "dev": true, + "@ethersproject/wallet": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/wallet/-/wallet-5.7.0.tgz", + "integrity": "sha512-MhmXlJXEJFBFVKrDLB4ZdDzxcBxQ3rLyCkhNqVu3CDYvR97E+8r01UgrI+TI99Le+aYm/in/0vp86guJuM7FCA==", "requires": { - "web3-core": "1.2.1", - "web3-core-method": "1.2.1", - "web3-utils": "1.2.1" + "@ethersproject/abstract-provider": "^5.7.0", + "@ethersproject/abstract-signer": "^5.7.0", + "@ethersproject/address": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/hash": "^5.7.0", + "@ethersproject/hdnode": "^5.7.0", + "@ethersproject/json-wallets": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/random": "^5.7.0", + "@ethersproject/signing-key": "^5.7.0", + "@ethersproject/transactions": "^5.7.0", + "@ethersproject/wordlists": "^5.7.0" } }, - "web3-providers-http": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-providers-http/-/web3-providers-http-1.2.1.tgz", - "integrity": "sha512-BDtVUVolT9b3CAzeGVA/np1hhn7RPUZ6YYGB/sYky+GjeO311Yoq8SRDUSezU92x8yImSC2B+SMReGhd1zL+bQ==", - "dev": true, + "@ethersproject/wordlists": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/wordlists/-/wordlists-5.7.0.tgz", + "integrity": "sha512-S2TFNJNfHWVHNE6cNDjbVlZ6MgE17MIxMbMg2zv3wn+3XSJGosL1m9ZVv3GXCf/2ymSsQ+hRI5IzoMJTG6aoVA==", "requires": { - "web3-core-helpers": "1.2.1", - "xhr2-cookies": "1.1.0" + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/hash": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/strings": "^5.7.0" } }, - "web3-providers-ipc": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-providers-ipc/-/web3-providers-ipc-1.2.1.tgz", - "integrity": "sha512-oPEuOCwxVx8L4CPD0TUdnlOUZwGBSRKScCz/Ws2YHdr9Ium+whm+0NLmOZjkjQp5wovQbyBzNa6zJz1noFRvFA==", - "dev": true, - "requires": { - "oboe": "2.1.4", - "underscore": "1.9.1", - "web3-core-helpers": "1.2.1" - } + "bech32": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/bech32/-/bech32-1.1.4.tgz", + "integrity": "sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ==" }, - "web3-providers-ws": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-providers-ws/-/web3-providers-ws-1.2.1.tgz", - "integrity": "sha512-oqsQXzu+ejJACVHy864WwIyw+oB21nw/pI65/sD95Zi98+/HQzFfNcIFneF1NC4bVF3VNX4YHTNq2I2o97LAiA==", - "dev": true, + "hash.js": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", + "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", "requires": { - "underscore": "1.9.1", - "web3-core-helpers": "1.2.1", - "websocket": "github:web3-js/WebSocket-Node#polyfill/globalThis" + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.1" } }, - "web3-shh": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-shh/-/web3-shh-1.2.1.tgz", - "integrity": "sha512-/3Cl04nza5kuFn25bV3FJWa0s3Vafr5BlT933h26xovQ6HIIz61LmvNQlvX1AhFL+SNJOTcQmK1SM59vcyC8bA==", - "dev": true, - "requires": { - "web3-core": "1.2.1", - "web3-core-method": "1.2.1", - "web3-core-subscriptions": "1.2.1", - "web3-net": "1.2.1" - } + "scrypt-js": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-3.0.1.tgz", + "integrity": "sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA==" }, - "web3-utils": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.2.1.tgz", - "integrity": "sha512-Mrcn3l58L+yCKz3zBryM6JZpNruWuT0OCbag8w+reeNROSGVlXzUQkU+gtAwc9JCZ7tKUyg67+2YUGqUjVcyBA==", - "dev": true, - "requires": { - "bn.js": "4.11.8", - "eth-lib": "0.2.7", - "ethjs-unit": "0.1.6", - "number-to-bn": "1.7.0", - "randomhex": "0.1.5", - "underscore": "1.9.1", - "utf8": "3.0.0" - }, - "dependencies": { - "bn.js": { - "version": "4.11.8", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz", - "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==", - "dev": true - } - } + "ws": { + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz", + "integrity": "sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==", + "requires": {} } } }, - "truffle-plugin-verify": { - "version": "0.5.11", - "resolved": "https://registry.npmjs.org/truffle-plugin-verify/-/truffle-plugin-verify-0.5.11.tgz", - "integrity": "sha512-IL8DDsA3YCUQcrRXtarTEXoZJeb2Rlj8jwNjdiWWyDZ7r/EQZndJooorWo19qDpZf9s8ydpvTE/Bb/uyna6Zag==", - "dev": true, + "ethjs-util": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/ethjs-util/-/ethjs-util-0.1.6.tgz", + "integrity": "sha512-CUnVOQq7gSpDHZVVrQW8ExxUETWrnrvXYvYz55wOU8Uj4VCgw56XC2B/fVqQN+f7gmrnRHSLVnFAwsCuNwji8w==", + "requires": { + "is-hex-prefixed": "1.0.0", + "strip-hex-prefix": "1.0.0" + } + }, + "eventemitter3": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-3.1.2.tgz", + "integrity": "sha512-tvtQIeLVHjDkJYnzf2dgVMxfuSGJeM/7UCG17TT4EumTfNtF+0nebF/4zWOIkCreAbtNqhGEboB6BWrwqNaw4Q==", + "optional": true, + "peer": true + }, + "evp_bytestokey": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", + "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", + "requires": { + "md5.js": "^1.3.4", + "safe-buffer": "^5.1.1" + } + }, + "exit-on-epipe": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/exit-on-epipe/-/exit-on-epipe-1.0.1.tgz", + "integrity": "sha512-h2z5mrROTxce56S+pnvAV890uu7ls7f1kEvVGJbw1OlFH3/mlJ5bkXu0KRyW94v37zzHPiUd55iLn3DA7TjWpw==" + }, + "eyes": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/eyes/-/eyes-0.1.8.tgz", + "integrity": "sha512-GipyPsXO1anza0AOZdy69Im7hGFCNB7Y/NGjDlZGJ3GJJLtwNSb2vrzYrTYJRrRloVx7pl+bhUaTB8yiccPvFQ==" + }, + "fast-stable-stringify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fast-stable-stringify/-/fast-stable-stringify-1.0.0.tgz", + "integrity": "sha512-wpYMUmFu5f00Sm0cj2pfivpmawLZ0NKdviQ4w9zJeR8JVtOpOxHmLaJuj0vxvGqMJQWyP/COUkF75/57OKyRag==" + }, + "file-uri-to-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", + "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==" + }, + "find-replace": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-replace/-/find-replace-3.0.0.tgz", + "integrity": "sha512-6Tb2myMioCAgv5kfvP5/PkZZ/ntTpVK39fHY7WkWBgvbeE+VHd/tZuZ4mrC+bxh4cfOZeYKVPaJIZtZXV7GNCQ==", + "requires": { + "array-back": "^3.0.1" + } + }, + "fs-extra": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", + "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", + "requires": { + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" + }, + "get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==" + }, + "glob": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "requires": { + "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" + } + }, + "globalthis": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.2.tgz", + "integrity": "sha512-ZQnSFO1la8P7auIOQECnm0sSuoMeaSq0EEdXMBFF2QJO4uNcwbyhSgG3MruWNbFTqCLmxVwGOl7LZ9kASvHdeQ==", + "requires": { + "define-properties": "^1.1.3" + } + }, + "google-protobuf": { + "version": "3.21.2", + "resolved": "https://registry.npmjs.org/google-protobuf/-/google-protobuf-3.21.2.tgz", + "integrity": "sha512-3MSOYFO5U9mPGikIYCzK0SaThypfGgS6bHqrUGXG3DPHCrb+txNqeEcns1W0lkGfk0rCyNXm7xB9rMxnCiZOoA==" + }, + "graceful-fs": { + "version": "4.2.10", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", + "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==" + }, + "graphql": { + "version": "15.8.0", + "resolved": "https://registry.npmjs.org/graphql/-/graphql-15.8.0.tgz", + "integrity": "sha512-5gghUc24tP9HRznNpV2+FIoq3xKkj5dTQqf4v0CpdPbFVwFkWoxOM+o+2OC9ZSvjEMTjfmG9QT+gcvggTwW1zw==", + "peer": true + }, + "graphql-tag": { + "version": "2.12.6", + "resolved": "https://registry.npmjs.org/graphql-tag/-/graphql-tag-2.12.6.tgz", + "integrity": "sha512-FdSNcu2QQcWnM2VNvSCCDCVS5PpPqpzgFT8+GXzqJuoDd0CBncxCY278u4mhRO7tMgo2JjgJA5aZ+nWSQ/Z+xg==", "requires": { - "axios": "^0.21.1", - "cli-logger": "^0.5.40", - "delay": "^5.0.0", - "querystring": "^0.2.1" + "tslib": "^2.1.0" }, "dependencies": { - "axios": { - "version": "0.21.1", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.1.tgz", - "integrity": "sha512-dKQiRHxGD9PPRIUNIWvZhPTPpl1rf/OxTYKsqKUDjBwYylTvV7SjSHJb9ratfyzM6wCdLCOYLzs73qpg5c4iGA==", - "dev": true, - "requires": { - "follow-redirects": "^1.10.0" - } - }, - "follow-redirects": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.1.tgz", - "integrity": "sha512-HWqDgT7ZEkqRzBvc2s64vSZ/hfOceEol3ac/7tKwzuvEyWx3/4UegXh5oBOIotkGsObyk3xznnSRVADBgWSQVg==", - "dev": true + "tslib": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", + "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" } } }, - "truffle-provider": { - "version": "0.1.16", - "resolved": "https://registry.npmjs.org/truffle-provider/-/truffle-provider-0.1.16.tgz", - "integrity": "sha512-3d5WqSKIzZcpgW44mdfF97s+Tgh2a/3Ly6vHJirBV9OZDUtiAzP6WVnlRNvmlDJXFCDqt6Yb9qQWoXFHbYoR6w==", - "dev": true, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" + }, + "hash-base": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", + "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", "requires": { - "@truffle/error": "^0.0.6", - "truffle-interface-adapter": "^0.2.5", - "web3": "1.2.1" + "inherits": "^2.0.4", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" }, "dependencies": { - "@types/node": { - "version": "10.17.28", - "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.28.tgz", - "integrity": "sha512-dzjES1Egb4c1a89C7lKwQh8pwjYmlOAG9dW1pBgxEk57tMrLnssOfEthz8kdkNaBd7lIqQx7APm5+mZ619IiCQ==", - "dev": true - }, - "bn.js": { - "version": "4.11.8", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz", - "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==", - "dev": true - }, - "eth-lib": { - "version": "0.2.7", - "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.7.tgz", - "integrity": "sha1-L5Pxex4jrsN1nNSj/iDBKGo/wco=", - "dev": true, - "requires": { - "bn.js": "^4.11.6", - "elliptic": "^6.4.0", - "xhr-request-promise": "^0.1.2" - } - }, - "ethers": { - "version": "4.0.0-beta.3", - "resolved": "https://registry.npmjs.org/ethers/-/ethers-4.0.0-beta.3.tgz", - "integrity": "sha512-YYPogooSknTwvHg3+Mv71gM/3Wcrx+ZpCzarBj3mqs9njjRkrOo2/eufzhHloOCo3JSoNI4TQJJ6yU5ABm3Uog==", - "dev": true, - "requires": { - "@types/node": "^10.3.2", - "aes-js": "3.0.0", - "bn.js": "^4.4.0", - "elliptic": "6.3.3", - "hash.js": "1.1.3", - "js-sha3": "0.5.7", - "scrypt-js": "2.0.3", - "setimmediate": "1.0.4", - "uuid": "2.0.1", - "xmlhttprequest": "1.8.0" - }, - "dependencies": { - "elliptic": { - "version": "6.3.3", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.3.3.tgz", - "integrity": "sha1-VILZZG1UvLif19mU/J4ulWiHbj8=", - "dev": true, - "requires": { - "bn.js": "^4.4.0", - "brorand": "^1.0.1", - "hash.js": "^1.0.0", - "inherits": "^2.0.1" - } - } - } - }, - "scrypt-js": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-2.0.3.tgz", - "integrity": "sha1-uwBAvgMEPamgEqLOqfyfhSz8h9Q=", - "dev": true - }, - "semver": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.2.0.tgz", - "integrity": "sha512-jdFC1VdUGT/2Scgbimf7FSx9iJLXoqfglSF+gJeuNWVpiE37OIbc1jywR/GJyFdz3mnkz2/id0L0J/cr0izR5A==", - "dev": true - }, - "underscore": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.9.1.tgz", - "integrity": "sha512-5/4etnCkd9c8gwgowi5/om/mYO5ajCaOgdzj/oW+0eQV9WxKBDZw5+ycmKmeaTXjInS/W0BzpGLo2xR2aBwZdg==", - "dev": true - }, - "uuid": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-2.0.1.tgz", - "integrity": "sha1-wqMN7bPlNdcsz4LjQ5QaULqFM6w=", - "dev": true - }, - "web3": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3/-/web3-1.2.1.tgz", - "integrity": "sha512-nNMzeCK0agb5i/oTWNdQ1aGtwYfXzHottFP2Dz0oGIzavPMGSKyVlr8ibVb1yK5sJBjrWVnTdGaOC2zKDFuFRw==", - "dev": true, - "requires": { - "web3-bzz": "1.2.1", - "web3-core": "1.2.1", - "web3-eth": "1.2.1", - "web3-eth-personal": "1.2.1", - "web3-net": "1.2.1", - "web3-shh": "1.2.1", - "web3-utils": "1.2.1" - } - }, - "web3-bzz": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-bzz/-/web3-bzz-1.2.1.tgz", - "integrity": "sha512-LdOO44TuYbGIPfL4ilkuS89GQovxUpmLz6C1UC7VYVVRILeZS740FVB3j9V4P4FHUk1RenaDfKhcntqgVCHtjw==", - "dev": true, - "requires": { - "got": "9.6.0", - "swarm-js": "0.1.39", - "underscore": "1.9.1" - } - }, - "web3-core": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-core/-/web3-core-1.2.1.tgz", - "integrity": "sha512-5ODwIqgl8oIg/0+Ai4jsLxkKFWJYE0uLuE1yUKHNVCL4zL6n3rFjRMpKPokd6id6nJCNgeA64KdWQ4XfpnjdMg==", - "dev": true, - "requires": { - "web3-core-helpers": "1.2.1", - "web3-core-method": "1.2.1", - "web3-core-requestmanager": "1.2.1", - "web3-utils": "1.2.1" - } - }, - "web3-core-helpers": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.2.1.tgz", - "integrity": "sha512-Gx3sTEajD5r96bJgfuW377PZVFmXIH4TdqDhgGwd2lZQCcMi+DA4TgxJNJGxn0R3aUVzyyE76j4LBrh412mXrw==", - "dev": true, - "requires": { - "underscore": "1.9.1", - "web3-eth-iban": "1.2.1", - "web3-utils": "1.2.1" - } - }, - "web3-core-method": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-core-method/-/web3-core-method-1.2.1.tgz", - "integrity": "sha512-Ghg2WS23qi6Xj8Od3VCzaImLHseEA7/usvnOItluiIc5cKs00WYWsNy2YRStzU9a2+z8lwQywPYp0nTzR/QXdQ==", - "dev": true, - "requires": { - "underscore": "1.9.1", - "web3-core-helpers": "1.2.1", - "web3-core-promievent": "1.2.1", - "web3-core-subscriptions": "1.2.1", - "web3-utils": "1.2.1" - } - }, - "web3-core-promievent": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-core-promievent/-/web3-core-promievent-1.2.1.tgz", - "integrity": "sha512-IVUqgpIKoeOYblwpex4Hye6npM0aMR+kU49VP06secPeN0rHMyhGF0ZGveWBrGvf8WDPI7jhqPBFIC6Jf3Q3zw==", - "dev": true, - "requires": { - "any-promise": "1.3.0", - "eventemitter3": "3.1.2" - } - }, - "web3-core-requestmanager": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-core-requestmanager/-/web3-core-requestmanager-1.2.1.tgz", - "integrity": "sha512-xfknTC69RfYmLKC+83Jz73IC3/sS2ZLhGtX33D4Q5nQ8yc39ElyAolxr9sJQS8kihOcM6u4J+8gyGMqsLcpIBg==", - "dev": true, - "requires": { - "underscore": "1.9.1", - "web3-core-helpers": "1.2.1", - "web3-providers-http": "1.2.1", - "web3-providers-ipc": "1.2.1", - "web3-providers-ws": "1.2.1" - } - }, - "web3-core-subscriptions": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-core-subscriptions/-/web3-core-subscriptions-1.2.1.tgz", - "integrity": "sha512-nmOwe3NsB8V8UFsY1r+sW6KjdOS68h8nuh7NzlWxBQT/19QSUGiERRTaZXWu5BYvo1EoZRMxCKyCQpSSXLc08g==", - "dev": true, - "requires": { - "eventemitter3": "3.1.2", - "underscore": "1.9.1", - "web3-core-helpers": "1.2.1" - } - }, - "web3-eth": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-eth/-/web3-eth-1.2.1.tgz", - "integrity": "sha512-/2xly4Yry5FW1i+uygPjhfvgUP/MS/Dk+PDqmzp5M88tS86A+j8BzKc23GrlA8sgGs0645cpZK/999LpEF5UdA==", - "dev": true, - "requires": { - "underscore": "1.9.1", - "web3-core": "1.2.1", - "web3-core-helpers": "1.2.1", - "web3-core-method": "1.2.1", - "web3-core-subscriptions": "1.2.1", - "web3-eth-abi": "1.2.1", - "web3-eth-accounts": "1.2.1", - "web3-eth-contract": "1.2.1", - "web3-eth-ens": "1.2.1", - "web3-eth-iban": "1.2.1", - "web3-eth-personal": "1.2.1", - "web3-net": "1.2.1", - "web3-utils": "1.2.1" - } - }, - "web3-eth-abi": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-eth-abi/-/web3-eth-abi-1.2.1.tgz", - "integrity": "sha512-jI/KhU2a/DQPZXHjo2GW0myEljzfiKOn+h1qxK1+Y9OQfTcBMxrQJyH5AP89O6l6NZ1QvNdq99ThAxBFoy5L+g==", - "dev": true, - "requires": { - "ethers": "4.0.0-beta.3", - "underscore": "1.9.1", - "web3-utils": "1.2.1" - } - }, - "web3-eth-accounts": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-eth-accounts/-/web3-eth-accounts-1.2.1.tgz", - "integrity": "sha512-26I4qq42STQ8IeKUyur3MdQ1NzrzCqPsmzqpux0j6X/XBD7EjZ+Cs0lhGNkSKH5dI3V8CJasnQ5T1mNKeWB7nQ==", - "dev": true, - "requires": { - "any-promise": "1.3.0", - "crypto-browserify": "3.12.0", - "eth-lib": "0.2.7", - "scryptsy": "2.1.0", - "semver": "6.2.0", - "underscore": "1.9.1", - "uuid": "3.3.2", - "web3-core": "1.2.1", - "web3-core-helpers": "1.2.1", - "web3-core-method": "1.2.1", - "web3-utils": "1.2.1" - }, - "dependencies": { - "uuid": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", - "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==", - "dev": true - } - } - }, - "web3-eth-contract": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-eth-contract/-/web3-eth-contract-1.2.1.tgz", - "integrity": "sha512-kYFESbQ3boC9bl2rYVghj7O8UKMiuKaiMkxvRH5cEDHil8V7MGEGZNH0slSdoyeftZVlaWSMqkRP/chfnKND0g==", - "dev": true, - "requires": { - "underscore": "1.9.1", - "web3-core": "1.2.1", - "web3-core-helpers": "1.2.1", - "web3-core-method": "1.2.1", - "web3-core-promievent": "1.2.1", - "web3-core-subscriptions": "1.2.1", - "web3-eth-abi": "1.2.1", - "web3-utils": "1.2.1" - } - }, - "web3-eth-ens": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-eth-ens/-/web3-eth-ens-1.2.1.tgz", - "integrity": "sha512-lhP1kFhqZr2nnbu3CGIFFrAnNxk2veXpOXBY48Tub37RtobDyHijHgrj+xTh+mFiPokyrapVjpFsbGa+Xzye4Q==", - "dev": true, - "requires": { - "eth-ens-namehash": "2.0.8", - "underscore": "1.9.1", - "web3-core": "1.2.1", - "web3-core-helpers": "1.2.1", - "web3-core-promievent": "1.2.1", - "web3-eth-abi": "1.2.1", - "web3-eth-contract": "1.2.1", - "web3-utils": "1.2.1" - } - }, - "web3-eth-iban": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-eth-iban/-/web3-eth-iban-1.2.1.tgz", - "integrity": "sha512-9gkr4QPl1jCU+wkgmZ8EwODVO3ovVj6d6JKMos52ggdT2YCmlfvFVF6wlGLwi0VvNa/p+0BjJzaqxnnG/JewjQ==", - "dev": true, - "requires": { - "bn.js": "4.11.8", - "web3-utils": "1.2.1" - } - }, - "web3-eth-personal": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-eth-personal/-/web3-eth-personal-1.2.1.tgz", - "integrity": "sha512-RNDVSiaSoY4aIp8+Hc7z+X72H7lMb3fmAChuSBADoEc7DsJrY/d0R5qQDK9g9t2BO8oxgLrLNyBP/9ub2Hc6Bg==", - "dev": true, - "requires": { - "web3-core": "1.2.1", - "web3-core-helpers": "1.2.1", - "web3-core-method": "1.2.1", - "web3-net": "1.2.1", - "web3-utils": "1.2.1" - } - }, - "web3-net": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-net/-/web3-net-1.2.1.tgz", - "integrity": "sha512-Yt1Bs7WgnLESPe0rri/ZoPWzSy55ovioaP35w1KZydrNtQ5Yq4WcrAdhBzcOW7vAkIwrsLQsvA+hrOCy7mNauw==", - "dev": true, - "requires": { - "web3-core": "1.2.1", - "web3-core-method": "1.2.1", - "web3-utils": "1.2.1" - } - }, - "web3-providers-http": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-providers-http/-/web3-providers-http-1.2.1.tgz", - "integrity": "sha512-BDtVUVolT9b3CAzeGVA/np1hhn7RPUZ6YYGB/sYky+GjeO311Yoq8SRDUSezU92x8yImSC2B+SMReGhd1zL+bQ==", - "dev": true, - "requires": { - "web3-core-helpers": "1.2.1", - "xhr2-cookies": "1.1.0" - } - }, - "web3-providers-ipc": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-providers-ipc/-/web3-providers-ipc-1.2.1.tgz", - "integrity": "sha512-oPEuOCwxVx8L4CPD0TUdnlOUZwGBSRKScCz/Ws2YHdr9Ium+whm+0NLmOZjkjQp5wovQbyBzNa6zJz1noFRvFA==", - "dev": true, - "requires": { - "oboe": "2.1.4", - "underscore": "1.9.1", - "web3-core-helpers": "1.2.1" - } - }, - "web3-providers-ws": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-providers-ws/-/web3-providers-ws-1.2.1.tgz", - "integrity": "sha512-oqsQXzu+ejJACVHy864WwIyw+oB21nw/pI65/sD95Zi98+/HQzFfNcIFneF1NC4bVF3VNX4YHTNq2I2o97LAiA==", - "dev": true, - "requires": { - "underscore": "1.9.1", - "web3-core-helpers": "1.2.1", - "websocket": "github:web3-js/WebSocket-Node#polyfill/globalThis" - } - }, - "web3-shh": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-shh/-/web3-shh-1.2.1.tgz", - "integrity": "sha512-/3Cl04nza5kuFn25bV3FJWa0s3Vafr5BlT933h26xovQ6HIIz61LmvNQlvX1AhFL+SNJOTcQmK1SM59vcyC8bA==", - "dev": true, - "requires": { - "web3-core": "1.2.1", - "web3-core-method": "1.2.1", - "web3-core-subscriptions": "1.2.1", - "web3-net": "1.2.1" - } - }, - "web3-utils": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.2.1.tgz", - "integrity": "sha512-Mrcn3l58L+yCKz3zBryM6JZpNruWuT0OCbag8w+reeNROSGVlXzUQkU+gtAwc9JCZ7tKUyg67+2YUGqUjVcyBA==", - "dev": true, + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", "requires": { - "bn.js": "4.11.8", - "eth-lib": "0.2.7", - "ethjs-unit": "0.1.6", - "number-to-bn": "1.7.0", - "randomhex": "0.1.5", - "underscore": "1.9.1", - "utf8": "3.0.0" + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" } } } }, - "ts-command-line-args": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/ts-command-line-args/-/ts-command-line-args-2.4.2.tgz", - "integrity": "sha512-mJLQQBOdyD4XI/ZWQY44PIdYde47JhV2xl380O7twPkTQ+Y5vFDHsk8LOeXKuz7dVY5aDCfAzRarNfSqtKOkQQ==", + "hash.js": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.3.tgz", + "integrity": "sha512-/UETyP0W22QILqS+6HowevwhEFJ3MBJnwTf75Qob9Wz9t0DPuisL8kW8YZMK62dHAKE1c1p+gY1TtOLY+USEHA==", "requires": { - "@morgan-stanley/ts-mocking-bird": "^0.6.2", - "chalk": "^4.1.0", - "command-line-args": "^5.1.1", - "command-line-usage": "^6.1.0", - "string-format": "^2.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "requires": { - "has-flag": "^4.0.0" - } - } + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.0" } }, - "ts-essentials": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/ts-essentials/-/ts-essentials-1.0.4.tgz", - "integrity": "sha512-q3N1xS4vZpRouhYHDPwO0bDW3EZ6SK9CrrDHxi/D6BPReSjpVgWIOpLS2o0gSBZm+7q/wyKp6RVM1AeeW7uyfQ==", - "dev": true + "hi-base32": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/hi-base32/-/hi-base32-0.5.1.tgz", + "integrity": "sha512-EmBBpvdYh/4XxsnUybsPag6VikPYnN30td+vQk+GI3qpahVEG9+gTkG0aXVxTjBqQ5T6ijbWIu77O+C5WFWsnA==" }, - "ts-generator": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/ts-generator/-/ts-generator-0.0.8.tgz", - "integrity": "sha512-Gi+aZCELpVL7Mqb+GuMgM+n8JZ/arZZib1iD/R9Ok8JDjOCOCrqS9b1lr72ku7J45WeDCFZxyJoRsiQvhokCnw==", - "dev": true, + "hmac-drbg": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", + "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", "requires": { - "@types/mkdirp": "^0.5.2", - "@types/prettier": "^1.13.2", - "@types/resolve": "^0.0.8", - "chalk": "^2.4.1", - "glob": "^7.1.2", - "mkdirp": "^0.5.1", - "prettier": "^1.14.2", - "resolve": "^1.8.1", - "ts-essentials": "^1.0.0" - }, - "dependencies": { - "mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "dev": true, - "requires": { - "minimist": "^1.2.5" - } - } + "hash.js": "^1.0.3", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.1" } }, - "ts-node": { - "version": "10.9.1", - "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.1.tgz", - "integrity": "sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==", - "dev": true, + "hoist-non-react-statics": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", + "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", "requires": { - "@cspotcode/source-map-support": "^0.8.0", - "@tsconfig/node10": "^1.0.7", - "@tsconfig/node12": "^1.0.7", - "@tsconfig/node14": "^1.0.0", - "@tsconfig/node16": "^1.0.2", - "acorn": "^8.4.1", - "acorn-walk": "^8.1.1", - "arg": "^4.1.0", - "create-require": "^1.1.0", - "diff": "^4.0.1", - "make-error": "^1.1.1", - "v8-compile-cache-lib": "^3.0.1", - "yn": "3.1.1" + "react-is": "^16.7.0" + } + }, + "http-errors": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz", + "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==", + "requires": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.1", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.0" }, "dependencies": { - "acorn": { - "version": "8.8.2", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz", - "integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==", - "dev": true + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" } } }, - "tslib": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.13.0.tgz", - "integrity": "sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q==", - "dev": true - }, - "tsort": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/tsort/-/tsort-0.0.1.tgz", - "integrity": "sha1-4igPXoF/i/QnVlf9D5rr1E9aJ4Y=", - "dev": true - }, - "tty-browserify": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", - "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=" + "http-status-codes": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/http-status-codes/-/http-status-codes-2.2.0.tgz", + "integrity": "sha512-feERVo9iWxvnejp3SEfm/+oNG517npqL2/PIA8ORjyOZjGC7TwCRQsZylciLS64i6pJ0wRYz3rkXLRwbtFa8Ng==" }, - "tunnel-agent": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", + "humanize-ms": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz", + "integrity": "sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==", "requires": { - "safe-buffer": "^5.0.1" + "ms": "^2.0.0" } }, - "tweetnacl": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=" - }, - "tweetnacl-util": { - "version": "0.15.1", - "resolved": "https://registry.npmjs.org/tweetnacl-util/-/tweetnacl-util-0.15.1.tgz", - "integrity": "sha512-RKJBIj8lySrShN4w6i/BonWp2Z/uxwC3h4y7xsRrpP59ZboCd0GpEVsOnMDYLMmKBpYhb5TgHzZXy7wTfYFBRw==" - }, - "type": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/type/-/type-1.2.0.tgz", - "integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==" + "ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==" }, - "type-check": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", - "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", - "dev": true, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", "requires": { - "prelude-ls": "~1.1.2" + "once": "^1.3.0", + "wrappy": "1" } }, - "type-detect": { - "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==" + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" }, - "type-fest": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", - "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", - "dev": true + "interpret": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", + "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==" }, - "type-is": { - "version": "1.6.18", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", - "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", - "dev": true, - "requires": { - "media-typer": "0.3.0", - "mime-types": "~2.1.24" - } + "is-hex-prefixed": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-hex-prefixed/-/is-hex-prefixed-1.0.0.tgz", + "integrity": "sha1-fY035q135dEnFIkTxXPggtd39VQ=" }, - "typechain": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/typechain/-/typechain-8.1.1.tgz", - "integrity": "sha512-uF/sUvnXTOVF2FHKhQYnxHk4su4JjZR8vr4mA2mBaRwHTbwh0jIlqARz9XJr1tA0l7afJGvEa1dTSi4zt039LQ==", - "requires": { - "@types/prettier": "^2.1.1", - "debug": "^4.3.1", - "fs-extra": "^7.0.0", - "glob": "7.1.7", - "js-sha3": "^0.8.0", - "lodash": "^4.17.15", - "mkdirp": "^1.0.4", - "prettier": "^2.3.1", - "ts-command-line-args": "^2.2.0", - "ts-essentials": "^7.0.1" - }, - "dependencies": { - "@types/prettier": { - "version": "2.7.2", - "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.7.2.tgz", - "integrity": "sha512-KufADq8uQqo1pYKVIYzfKbJfBAc0sOeXqGbFaSpv8MRmC/zXgowNZmFcbngndGk922QDmOASEXUZCaY48gs4cg==" - }, - "debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "requires": { - "ms": "2.1.2" - } - }, - "glob": { - "version": "7.1.7", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz", - "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==", - "requires": { - "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" - } - }, - "js-sha3": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.8.0.tgz", - "integrity": "sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q==" - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "prettier": { - "version": "2.8.7", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.7.tgz", - "integrity": "sha512-yPngTo3aXUUmyuTjeTUT75txrf+aMh9FiD7q9ZE/i6r0bPb22g4FsE6Y338PQX1bmfy08i9QQCB7/rcUAVntfw==" - }, - "ts-essentials": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/ts-essentials/-/ts-essentials-7.0.3.tgz", - "integrity": "sha512-8+gr5+lqO3G84KdiTSMRLtuyJ+nTBVRKuCrK4lidMPdVeEp0uqC875uE5NMcaA7YYMN7XsNiFQuMvasF8HT/xQ==", - "requires": {} - } - } + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" }, - "typechain-target-truffle": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/typechain-target-truffle/-/typechain-target-truffle-1.0.2.tgz", - "integrity": "sha512-XF3Iq2IzR+Pqvx6fcKIKGXNEk3lEcY24vYv9VqoVPfPB6vUM09PRLJCeLm1/ag6Pr2PICKUA0f4Es+YTR3ESKA==", - "dev": true, - "requires": { - "lodash": "^4.17.15" - } + "isomorphic-ws": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/isomorphic-ws/-/isomorphic-ws-4.0.1.tgz", + "integrity": "sha512-BhBvN2MBpWTaSHdWRb/bwdZJ1WaehQ2L1KngkCkfLUGF0mAWAT1sQUQacEmQ0jXkFw/czDXPNQSL5u2/Krsz1w==", + "requires": {} }, - "typechain-target-web3-v1": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/typechain-target-web3-v1/-/typechain-target-web3-v1-1.0.4.tgz", - "integrity": "sha512-jQ6eCfY7QorBq6kQDjSy5LMuImZGkp6IXR6FXZp7/ulITIxAfb6Dxh+yvh0NN/zboLnMPvvSJi6tHWCqlwfSDA==", - "dev": true, + "iterall": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/iterall/-/iterall-1.3.0.tgz", + "integrity": "sha512-QZ9qOMdF+QLHxy1QIpUHUU1D5pS2CG2P69LF6L6CPjPYA/XMOmKV3PZpawHoAjHNyB0swdVTRxdYT4tbBbxqwg==", + "optional": true, + "peer": true + }, + "jayson": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/jayson/-/jayson-3.7.0.tgz", + "integrity": "sha512-tfy39KJMrrXJ+mFcMpxwBvFDetS8LAID93+rycFglIQM4kl3uNR3W4lBLE/FFhsoUCEox5Dt2adVpDm/XtebbQ==", "requires": { - "lodash": "^4.17.15", - "web3": "^1.2.4" + "@types/connect": "^3.4.33", + "@types/node": "^12.12.54", + "@types/ws": "^7.4.4", + "commander": "^2.20.3", + "delay": "^5.0.0", + "es6-promisify": "^5.0.0", + "eyes": "^0.1.8", + "isomorphic-ws": "^4.0.1", + "json-stringify-safe": "^5.0.1", + "JSONStream": "^1.3.5", + "lodash": "^4.17.20", + "uuid": "^8.3.2", + "ws": "^7.4.5" }, "dependencies": { - "@ethersproject/abi": { - "version": "5.0.0-beta.153", - "resolved": "https://registry.npmjs.org/@ethersproject/abi/-/abi-5.0.0-beta.153.tgz", - "integrity": "sha512-aXweZ1Z7vMNzJdLpR1CZUAIgnwjrZeUSvN9syCwlBaEBUFJmFY+HHnfuTI5vIhVs/mRkfJVrbEyl51JZQqyjAg==", - "dev": true, - "requires": { - "@ethersproject/address": ">=5.0.0-beta.128", - "@ethersproject/bignumber": ">=5.0.0-beta.130", - "@ethersproject/bytes": ">=5.0.0-beta.129", - "@ethersproject/constants": ">=5.0.0-beta.128", - "@ethersproject/hash": ">=5.0.0-beta.128", - "@ethersproject/keccak256": ">=5.0.0-beta.127", - "@ethersproject/logger": ">=5.0.0-beta.129", - "@ethersproject/properties": ">=5.0.0-beta.131", - "@ethersproject/strings": ">=5.0.0-beta.130" - } - }, "@types/node": { - "version": "12.12.53", - "resolved": "https://registry.npmjs.org/@types/node/-/node-12.12.53.tgz", - "integrity": "sha512-51MYTDTyCziHb70wtGNFRwB4l+5JNvdqzFSkbDvpbftEgVUBEE+T5f7pROhWMp/fxp07oNIEQZd5bbfAH22ohQ==", - "dev": true - }, - "bignumber.js": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.0.0.tgz", - "integrity": "sha512-t/OYhhJ2SD+YGBQcjY8GzzDHEk9f3nerxjtfa6tlMXfe7frs/WozhvCNoGvpM0P3bNf3Gq5ZRMlGr5f3r4/N8A==", - "dev": true - }, - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "eventemitter3": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.4.tgz", - "integrity": "sha512-rlaVLnVxtxvoyLsQQFBx53YmXHDxRIzzTLbdfxqi4yocpSjAxXwkU0cScM5JgSKMqEhrZpnvQ2D9gjylR0AimQ==", - "dev": true - }, - "fs-extra": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-4.0.3.tgz", - "integrity": "sha512-q6rbdDd1o2mAnQreO7YADIxf/Whx4AHBiRf6d+/cVT8h44ss+lHgxf1FemcqDnQt9X3ct4McHr+JMGlYSsK7Cg==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - }, - "get-stream": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", - "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=", - "dev": true - }, - "p-cancelable": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-0.3.0.tgz", - "integrity": "sha512-RVbZPLso8+jFeq1MfNvgXtCRED2raz/dKpacfTNxsx6pLEpEomM7gah6VeHSYV3+vo0OAi4MkArtQcWWXuQoyw==", - "dev": true - }, - "prepend-http": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", - "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=", - "dev": true - }, - "scrypt-js": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-3.0.1.tgz", - "integrity": "sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA==", - "dev": true - }, - "setimmediate": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", - "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=", - "dev": true - }, - "swarm-js": { - "version": "0.1.40", - "resolved": "https://registry.npmjs.org/swarm-js/-/swarm-js-0.1.40.tgz", - "integrity": "sha512-yqiOCEoA4/IShXkY3WKwP5PvZhmoOOD8clsKA7EEcRILMkTEYHCQ21HDCAcVpmIxZq4LyZvWeRJ6quIyHk1caA==", - "dev": true, - "requires": { - "bluebird": "^3.5.0", - "buffer": "^5.0.5", - "eth-lib": "^0.1.26", - "fs-extra": "^4.0.2", - "got": "^7.1.0", - "mime-types": "^2.1.16", - "mkdirp-promise": "^5.0.1", - "mock-fs": "^4.1.0", - "setimmediate": "^1.0.5", - "tar": "^4.0.2", - "xhr-request": "^1.0.1" - }, - "dependencies": { - "got": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/got/-/got-7.1.0.tgz", - "integrity": "sha512-Y5WMo7xKKq1muPsxD+KmrR8DH5auG7fBdDVueZwETwV6VytKyU9OX/ddpq2/1hp1vIPvVb4T81dKQz3BivkNLw==", - "dev": true, - "requires": { - "decompress-response": "^3.2.0", - "duplexer3": "^0.1.4", - "get-stream": "^3.0.0", - "is-plain-obj": "^1.1.0", - "is-retry-allowed": "^1.0.0", - "is-stream": "^1.0.0", - "isurl": "^1.0.0-alpha5", - "lowercase-keys": "^1.0.0", - "p-cancelable": "^0.3.0", - "p-timeout": "^1.1.1", - "safe-buffer": "^5.0.1", - "timed-out": "^4.0.0", - "url-parse-lax": "^1.0.0", - "url-to-options": "^1.0.1" - } - } - } - }, - "underscore": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.9.1.tgz", - "integrity": "sha512-5/4etnCkd9c8gwgowi5/om/mYO5ajCaOgdzj/oW+0eQV9WxKBDZw5+ycmKmeaTXjInS/W0BzpGLo2xR2aBwZdg==", - "dev": true - }, - "url-parse-lax": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz", - "integrity": "sha1-evjzA2Rem9eaJy56FKxovAYJ2nM=", - "dev": true, - "requires": { - "prepend-http": "^1.0.1" - } + "version": "12.20.55", + "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.55.tgz", + "integrity": "sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==" }, "uuid": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", - "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==", - "dev": true - }, - "web3": { - "version": "1.2.11", - "resolved": "https://registry.npmjs.org/web3/-/web3-1.2.11.tgz", - "integrity": "sha512-mjQ8HeU41G6hgOYm1pmeH0mRAeNKJGnJEUzDMoerkpw7QUQT4exVREgF1MYPvL/z6vAshOXei25LE/t/Bxl8yQ==", - "dev": true, - "requires": { - "web3-bzz": "1.2.11", - "web3-core": "1.2.11", - "web3-eth": "1.2.11", - "web3-eth-personal": "1.2.11", - "web3-net": "1.2.11", - "web3-shh": "1.2.11", - "web3-utils": "1.2.11" - } - }, - "web3-bzz": { - "version": "1.2.11", - "resolved": "https://registry.npmjs.org/web3-bzz/-/web3-bzz-1.2.11.tgz", - "integrity": "sha512-XGpWUEElGypBjeFyUhTkiPXFbDVD6Nr/S5jznE3t8cWUA0FxRf1n3n/NuIZeb0H9RkN2Ctd/jNma/k8XGa3YKg==", - "dev": true, - "requires": { - "@types/node": "^12.12.6", - "got": "9.6.0", - "swarm-js": "^0.1.40", - "underscore": "1.9.1" - } - }, - "web3-core": { - "version": "1.2.11", - "resolved": "https://registry.npmjs.org/web3-core/-/web3-core-1.2.11.tgz", - "integrity": "sha512-CN7MEYOY5ryo5iVleIWRE3a3cZqVaLlIbIzDPsvQRUfzYnvzZQRZBm9Mq+ttDi2STOOzc1MKylspz/o3yq/LjQ==", - "dev": true, - "requires": { - "@types/bn.js": "^4.11.5", - "@types/node": "^12.12.6", - "bignumber.js": "^9.0.0", - "web3-core-helpers": "1.2.11", - "web3-core-method": "1.2.11", - "web3-core-requestmanager": "1.2.11", - "web3-utils": "1.2.11" - } - }, - "web3-core-helpers": { - "version": "1.2.11", - "resolved": "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.2.11.tgz", - "integrity": "sha512-PEPoAoZd5ME7UfbnCZBdzIerpe74GEvlwT4AjOmHeCVZoIFk7EqvOZDejJHt+feJA6kMVTdd0xzRNN295UhC1A==", - "dev": true, - "requires": { - "underscore": "1.9.1", - "web3-eth-iban": "1.2.11", - "web3-utils": "1.2.11" - } - }, - "web3-core-method": { - "version": "1.2.11", - "resolved": "https://registry.npmjs.org/web3-core-method/-/web3-core-method-1.2.11.tgz", - "integrity": "sha512-ff0q76Cde94HAxLDZ6DbdmKniYCQVtvuaYh+rtOUMB6kssa5FX0q3vPmixi7NPooFnbKmmZCM6NvXg4IreTPIw==", - "dev": true, - "requires": { - "@ethersproject/transactions": "^5.0.0-beta.135", - "underscore": "1.9.1", - "web3-core-helpers": "1.2.11", - "web3-core-promievent": "1.2.11", - "web3-core-subscriptions": "1.2.11", - "web3-utils": "1.2.11" - } - }, - "web3-core-promievent": { - "version": "1.2.11", - "resolved": "https://registry.npmjs.org/web3-core-promievent/-/web3-core-promievent-1.2.11.tgz", - "integrity": "sha512-il4McoDa/Ox9Agh4kyfQ8Ak/9ABYpnF8poBLL33R/EnxLsJOGQG2nZhkJa3I067hocrPSjEdlPt/0bHXsln4qA==", - "dev": true, - "requires": { - "eventemitter3": "4.0.4" - } - }, - "web3-core-requestmanager": { - "version": "1.2.11", - "resolved": "https://registry.npmjs.org/web3-core-requestmanager/-/web3-core-requestmanager-1.2.11.tgz", - "integrity": "sha512-oFhBtLfOiIbmfl6T6gYjjj9igOvtyxJ+fjS+byRxiwFJyJ5BQOz4/9/17gWR1Cq74paTlI7vDGxYfuvfE/mKvA==", - "dev": true, - "requires": { - "underscore": "1.9.1", - "web3-core-helpers": "1.2.11", - "web3-providers-http": "1.2.11", - "web3-providers-ipc": "1.2.11", - "web3-providers-ws": "1.2.11" - } - }, - "web3-core-subscriptions": { - "version": "1.2.11", - "resolved": "https://registry.npmjs.org/web3-core-subscriptions/-/web3-core-subscriptions-1.2.11.tgz", - "integrity": "sha512-qEF/OVqkCvQ7MPs1JylIZCZkin0aKK9lDxpAtQ1F8niEDGFqn7DT8E/vzbIa0GsOjL2fZjDhWJsaW+BSoAW1gg==", - "dev": true, - "requires": { - "eventemitter3": "4.0.4", - "underscore": "1.9.1", - "web3-core-helpers": "1.2.11" - } - }, - "web3-eth": { - "version": "1.2.11", - "resolved": "https://registry.npmjs.org/web3-eth/-/web3-eth-1.2.11.tgz", - "integrity": "sha512-REvxW1wJ58AgHPcXPJOL49d1K/dPmuw4LjPLBPStOVkQjzDTVmJEIsiLwn2YeuNDd4pfakBwT8L3bz1G1/wVsQ==", - "dev": true, - "requires": { - "underscore": "1.9.1", - "web3-core": "1.2.11", - "web3-core-helpers": "1.2.11", - "web3-core-method": "1.2.11", - "web3-core-subscriptions": "1.2.11", - "web3-eth-abi": "1.2.11", - "web3-eth-accounts": "1.2.11", - "web3-eth-contract": "1.2.11", - "web3-eth-ens": "1.2.11", - "web3-eth-iban": "1.2.11", - "web3-eth-personal": "1.2.11", - "web3-net": "1.2.11", - "web3-utils": "1.2.11" - } - }, - "web3-eth-abi": { - "version": "1.2.11", - "resolved": "https://registry.npmjs.org/web3-eth-abi/-/web3-eth-abi-1.2.11.tgz", - "integrity": "sha512-PkRYc0+MjuLSgg03QVWqWlQivJqRwKItKtEpRUaxUAeLE7i/uU39gmzm2keHGcQXo3POXAbOnMqkDvOep89Crg==", - "dev": true, - "requires": { - "@ethersproject/abi": "5.0.0-beta.153", - "underscore": "1.9.1", - "web3-utils": "1.2.11" - } - }, - "web3-eth-accounts": { - "version": "1.2.11", - "resolved": "https://registry.npmjs.org/web3-eth-accounts/-/web3-eth-accounts-1.2.11.tgz", - "integrity": "sha512-6FwPqEpCfKIh3nSSGeo3uBm2iFSnFJDfwL3oS9pyegRBXNsGRVpgiW63yhNzL0796StsvjHWwQnQHsZNxWAkGw==", - "dev": true, - "requires": { - "crypto-browserify": "3.12.0", - "eth-lib": "0.2.8", - "ethereumjs-common": "^1.3.2", - "ethereumjs-tx": "^2.1.1", - "scrypt-js": "^3.0.1", - "underscore": "1.9.1", - "uuid": "3.3.2", - "web3-core": "1.2.11", - "web3-core-helpers": "1.2.11", - "web3-core-method": "1.2.11", - "web3-utils": "1.2.11" - }, - "dependencies": { - "eth-lib": { - "version": "0.2.8", - "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.8.tgz", - "integrity": "sha512-ArJ7x1WcWOlSpzdoTBX8vkwlkSQ85CjjifSZtV4co64vWxSV8geWfPI9x4SVYu3DSxnX4yWFVTtGL+j9DUFLNw==", - "dev": true, - "requires": { - "bn.js": "^4.11.6", - "elliptic": "^6.4.0", - "xhr-request-promise": "^0.1.2" - } - } - } - }, - "web3-eth-contract": { - "version": "1.2.11", - "resolved": "https://registry.npmjs.org/web3-eth-contract/-/web3-eth-contract-1.2.11.tgz", - "integrity": "sha512-MzYuI/Rq2o6gn7vCGcnQgco63isPNK5lMAan2E51AJLknjSLnOxwNY3gM8BcKoy4Z+v5Dv00a03Xuk78JowFow==", - "dev": true, - "requires": { - "@types/bn.js": "^4.11.5", - "underscore": "1.9.1", - "web3-core": "1.2.11", - "web3-core-helpers": "1.2.11", - "web3-core-method": "1.2.11", - "web3-core-promievent": "1.2.11", - "web3-core-subscriptions": "1.2.11", - "web3-eth-abi": "1.2.11", - "web3-utils": "1.2.11" - } - }, - "web3-eth-ens": { - "version": "1.2.11", - "resolved": "https://registry.npmjs.org/web3-eth-ens/-/web3-eth-ens-1.2.11.tgz", - "integrity": "sha512-dbW7dXP6HqT1EAPvnniZVnmw6TmQEKF6/1KgAxbo8iBBYrVTMDGFQUUnZ+C4VETGrwwaqtX4L9d/FrQhZ6SUiA==", - "dev": true, - "requires": { - "content-hash": "^2.5.2", - "eth-ens-namehash": "2.0.8", - "underscore": "1.9.1", - "web3-core": "1.2.11", - "web3-core-helpers": "1.2.11", - "web3-core-promievent": "1.2.11", - "web3-eth-abi": "1.2.11", - "web3-eth-contract": "1.2.11", - "web3-utils": "1.2.11" - } - }, - "web3-eth-iban": { - "version": "1.2.11", - "resolved": "https://registry.npmjs.org/web3-eth-iban/-/web3-eth-iban-1.2.11.tgz", - "integrity": "sha512-ozuVlZ5jwFC2hJY4+fH9pIcuH1xP0HEFhtWsR69u9uDIANHLPQQtWYmdj7xQ3p2YT4bQLq/axKhZi7EZVetmxQ==", - "dev": true, - "requires": { - "bn.js": "^4.11.9", - "web3-utils": "1.2.11" - } - }, - "web3-eth-personal": { - "version": "1.2.11", - "resolved": "https://registry.npmjs.org/web3-eth-personal/-/web3-eth-personal-1.2.11.tgz", - "integrity": "sha512-42IzUtKq9iHZ8K9VN0vAI50iSU9tOA1V7XU2BhF/tb7We2iKBVdkley2fg26TxlOcKNEHm7o6HRtiiFsVK4Ifw==", - "dev": true, - "requires": { - "@types/node": "^12.12.6", - "web3-core": "1.2.11", - "web3-core-helpers": "1.2.11", - "web3-core-method": "1.2.11", - "web3-net": "1.2.11", - "web3-utils": "1.2.11" - } - }, - "web3-net": { - "version": "1.2.11", - "resolved": "https://registry.npmjs.org/web3-net/-/web3-net-1.2.11.tgz", - "integrity": "sha512-sjrSDj0pTfZouR5BSTItCuZ5K/oZPVdVciPQ6981PPPIwJJkCMeVjD7I4zO3qDPCnBjBSbWvVnLdwqUBPtHxyg==", - "dev": true, - "requires": { - "web3-core": "1.2.11", - "web3-core-method": "1.2.11", - "web3-utils": "1.2.11" - } - }, - "web3-providers-http": { - "version": "1.2.11", - "resolved": "https://registry.npmjs.org/web3-providers-http/-/web3-providers-http-1.2.11.tgz", - "integrity": "sha512-psh4hYGb1+ijWywfwpB2cvvOIMISlR44F/rJtYkRmQ5jMvG4FOCPlQJPiHQZo+2cc3HbktvvSJzIhkWQJdmvrA==", - "dev": true, - "requires": { - "web3-core-helpers": "1.2.11", - "xhr2-cookies": "1.1.0" - } - }, - "web3-providers-ipc": { - "version": "1.2.11", - "resolved": "https://registry.npmjs.org/web3-providers-ipc/-/web3-providers-ipc-1.2.11.tgz", - "integrity": "sha512-yhc7Y/k8hBV/KlELxynWjJDzmgDEDjIjBzXK+e0rHBsYEhdCNdIH5Psa456c+l0qTEU2YzycF8VAjYpWfPnBpQ==", - "dev": true, - "requires": { - "oboe": "2.1.4", - "underscore": "1.9.1", - "web3-core-helpers": "1.2.11" - } - }, - "web3-providers-ws": { - "version": "1.2.11", - "resolved": "https://registry.npmjs.org/web3-providers-ws/-/web3-providers-ws-1.2.11.tgz", - "integrity": "sha512-ZxnjIY1Er8Ty+cE4migzr43zA/+72AF1myzsLaU5eVgdsfV7Jqx7Dix1hbevNZDKFlSoEyq/3j/jYalh3So1Zg==", - "dev": true, - "requires": { - "eventemitter3": "4.0.4", - "underscore": "1.9.1", - "web3-core-helpers": "1.2.11", - "websocket": "^1.0.31" - } - }, - "web3-shh": { - "version": "1.2.11", - "resolved": "https://registry.npmjs.org/web3-shh/-/web3-shh-1.2.11.tgz", - "integrity": "sha512-B3OrO3oG1L+bv3E1sTwCx66injW1A8hhwpknDUbV+sw3fehFazA06z9SGXUefuFI1kVs4q2vRi0n4oCcI4dZDg==", - "dev": true, - "requires": { - "web3-core": "1.2.11", - "web3-core-method": "1.2.11", - "web3-core-subscriptions": "1.2.11", - "web3-net": "1.2.11" - } - }, - "web3-utils": { - "version": "1.2.11", - "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.2.11.tgz", - "integrity": "sha512-3Tq09izhD+ThqHEaWYX4VOT7dNPdZiO+c/1QMA0s5X2lDFKK/xHJb7cyTRRVzN2LvlHbR7baS1tmQhSua51TcQ==", - "dev": true, - "requires": { - "bn.js": "^4.11.9", - "eth-lib": "0.2.8", - "ethereum-bloom-filters": "^1.0.6", - "ethjs-unit": "0.1.6", - "number-to-bn": "1.7.0", - "randombytes": "^2.1.0", - "underscore": "1.9.1", - "utf8": "3.0.0" - }, - "dependencies": { - "eth-lib": { - "version": "0.2.8", - "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.8.tgz", - "integrity": "sha512-ArJ7x1WcWOlSpzdoTBX8vkwlkSQ85CjjifSZtV4co64vWxSV8geWfPI9x4SVYu3DSxnX4yWFVTtGL+j9DUFLNw==", - "dev": true, - "requires": { - "bn.js": "^4.11.6", - "elliptic": "^6.4.0", - "xhr-request-promise": "^0.1.2" - } - } - } + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==" }, - "websocket": { - "version": "1.0.31", - "resolved": "https://registry.npmjs.org/websocket/-/websocket-1.0.31.tgz", - "integrity": "sha512-VAouplvGKPiKFDTeCCO65vYHsyay8DqoBSlzIO3fayrfOgU94lQN5a1uWVnFrMLceTJw/+fQXR5PGbUVRaHshQ==", - "dev": true, - "requires": { - "debug": "^2.2.0", - "es5-ext": "^0.10.50", - "nan": "^2.14.0", - "typedarray-to-buffer": "^3.1.5", - "yaeti": "^0.0.6" - } + "ws": { + "version": "7.5.9", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz", + "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==", + "requires": {} } } }, - "typedarray": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=" + "js-base64": { + "version": "3.7.5", + "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-3.7.5.tgz", + "integrity": "sha512-3MEt5DTINKqfScXKfJFrRbxkrnk2AxPWGBL/ycjz4dK8iqiSJ06UxD8jh8xuh6p10TX4t2+7FsBYVxxQbMg+qA==" }, - "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==", - "requires": { - "is-typedarray": "^1.0.0" - } + "js-sha256": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/js-sha256/-/js-sha256-0.9.0.tgz", + "integrity": "sha512-sga3MHh9sgQN2+pJ9VYZ+1LPwXOxuBJBA5nrR5/ofPfuiJBE2hnjsaN8se8JznOmGLN2p49Pe5U/ttafcs/apA==" }, - "typeforce": { - "version": "1.18.0", - "resolved": "https://registry.npmjs.org/typeforce/-/typeforce-1.18.0.tgz", - "integrity": "sha512-7uc1O8h1M1g0rArakJdf0uLRSSgFcYexrVoKo+bzJd32gd4gDy2L/Z+8/FjPnU9ydY3pEnVPtr9FyscYY60K1g==" + "js-sha3": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.8.0.tgz", + "integrity": "sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q==" }, - "typescript": { - "version": "4.9.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz", - "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==" + "js-sha512": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/js-sha512/-/js-sha512-0.8.0.tgz", + "integrity": "sha512-PWsmefG6Jkodqt+ePTvBZCSMFgN7Clckjd0O7su3I0+BW2QWUTJNzjktHsztGLhncP2h8mcF9V9Y2Ha59pAViQ==" }, - "typescript-compare": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/typescript-compare/-/typescript-compare-0.0.2.tgz", - "integrity": "sha512-8ja4j7pMHkfLJQO2/8tut7ub+J3Lw2S3061eJLFQcvs3tsmJKp8KG5NtpLn7KcY2w08edF74BSVN7qJS0U6oHA==", - "dev": true, - "requires": { - "typescript-logic": "^0.0.0" - } + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" }, - "typescript-logic": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/typescript-logic/-/typescript-logic-0.0.0.tgz", - "integrity": "sha512-zXFars5LUkI3zP492ls0VskH3TtdeHCqu0i7/duGt60i5IGPIpAHE/DWo5FqJ6EjQ15YKXrt+AETjv60Dat34Q==", - "dev": true + "jscrypto": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/jscrypto/-/jscrypto-1.0.3.tgz", + "integrity": "sha512-lryZl0flhodv4SZHOqyb1bx5sKcJxj0VBo0Kzb4QMAg3L021IC9uGpl0RCZa+9KJwlRGSK2C80ITcwbe19OKLQ==" }, - "typescript-tuple": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/typescript-tuple/-/typescript-tuple-2.2.1.tgz", - "integrity": "sha512-Zcr0lbt8z5ZdEzERHAMAniTiIKerFCMgd7yjq1fPnDJ43et/k9twIFQMUYff9k5oXcsQ0WpvFcgzK2ZKASoW6Q==", - "dev": true, + "json-bigint": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-bigint/-/json-bigint-1.0.0.tgz", + "integrity": "sha512-SiPv/8VpZuWbvLSMtTDU8hEfrZWg/mH/nV/b4o0CYbSxu1UIQPLdwKOCIyLQX+VIPO5vrLX3i8qtqFyhdPSUSQ==", "requires": { - "typescript-compare": "^0.0.2" + "bignumber.js": "^9.0.0" + }, + "dependencies": { + "bignumber.js": { + "version": "9.1.1", + "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.1.1.tgz", + "integrity": "sha512-pHm4LsMJ6lzgNGVfZHjMoO8sdoRhOzOH4MLmY65Jg70bpxCKu5iOHNJyfF6OyvYw7t8Fpf35RuzUyqnQsj8Vig==" + } } }, - "typical": { + "json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" + }, + "jsonfile": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/typical/-/typical-4.0.0.tgz", - "integrity": "sha512-VAH4IvQ7BDFYglMd7BPRDfLgxZZX4O4TFcRDA6EN5X7erNJJq+McIEp8np9aVtxrCJ6qx4GTYVfOWNjcqwZgRw==" + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "requires": { + "graceful-fs": "^4.1.6" + } }, - "u3": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/u3/-/u3-0.1.1.tgz", - "integrity": "sha512-+J5D5ir763y+Am/QY6hXNRlwljIeRMZMGs0cT6qqZVVzzT3X3nFPXVyPOFRMOR4kupB0T8JnCdpWdp6Q/iXn3w==" + "jsonparse": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", + "integrity": "sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==" }, - "ultron": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ultron/-/ultron-1.1.1.tgz", - "integrity": "sha512-UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og==" + "jsonschema": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jsonschema/-/jsonschema-1.4.1.tgz", + "integrity": "sha512-S6cATIPVv1z0IlxdN+zUk5EPjkGCdnhN4wVSBlvoUO1tOLJootbo9CquNJmbIh4yikWHiUedhRYrNPn1arpEmQ==" }, - "unbox-primitive": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz", - "integrity": "sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==", - "dev": true, + "JSONStream": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz", + "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==", "requires": { - "function-bind": "^1.1.1", - "has-bigints": "^1.0.1", - "has-symbols": "^1.0.2", - "which-boxed-primitive": "^1.0.2" + "jsonparse": "^1.2.0", + "through": ">=2.2.7 <3" } }, - "unbzip2-stream": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz", - "integrity": "sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg==", - "dev": true, + "keccak": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/keccak/-/keccak-3.0.3.tgz", + "integrity": "sha512-JZrLIAJWuZxKbCilMpNz5Vj7Vtb4scDG3dMXLOsbzBmQGyjwE61BbW7bJkfKKCShXiQZt3T6sBgALRtmd+nZaQ==", "requires": { - "buffer": "^5.2.1", - "through": "^2.3.8" + "node-addon-api": "^2.0.0", + "node-gyp-build": "^4.2.0", + "readable-stream": "^3.6.0" + }, + "dependencies": { + "readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + } } }, - "underscore": { - "version": "1.13.3", - "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.13.3.tgz", - "integrity": "sha512-QvjkYpiD+dJJraRA8+dGAU4i7aBbb2s0S3jA45TFOvg2VgqvdCDd/3N6CqA8gluk1W91GLoXg5enMUx560QzuA==", - "dev": true - }, - "union-value": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", - "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", + "keccak256": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/keccak256/-/keccak256-1.0.6.tgz", + "integrity": "sha512-8GLiM01PkdJVGUhR1e6M/AvWnSqYS0HaERI+K/QtStGDGlSTx2B1zTqZk4Zlqu5TxHJNTxWAdP9Y+WI50OApUw==", "requires": { - "arr-union": "^3.1.0", - "get-value": "^2.0.6", - "is-extendable": "^0.1.1", - "set-value": "^2.0.1" + "bn.js": "^5.2.0", + "buffer": "^6.0.3", + "keccak": "^3.0.2" }, "dependencies": { - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=" + "bn.js": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", + "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==" + }, + "buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "requires": { + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" + } } } }, - "unique-filename": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", - "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", + "libsodium": { + "version": "0.7.11", + "resolved": "https://registry.npmjs.org/libsodium/-/libsodium-0.7.11.tgz", + "integrity": "sha512-WPfJ7sS53I2s4iM58QxY3Inb83/6mjlYgcmZs7DJsvDlnmVUwNinBCi5vBT43P6bHRy01O4zsMU2CoVR6xJ40A==" + }, + "libsodium-wrappers": { + "version": "0.7.11", + "resolved": "https://registry.npmjs.org/libsodium-wrappers/-/libsodium-wrappers-0.7.11.tgz", + "integrity": "sha512-SrcLtXj7BM19vUKtQuyQKiQCRJPgbpauzl3s0rSwD+60wtHqSUuqcoawlMDheCJga85nKOQwxNYQxf/CKAvs6Q==", "requires": { - "unique-slug": "^2.0.0" + "libsodium": "^0.7.11" } }, - "unique-slug": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz", - "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==", + "link-module-alias": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/link-module-alias/-/link-module-alias-1.2.0.tgz", + "integrity": "sha512-ahPjXepbSVKbahTB6LxR//VHm8HPfI+QQygCH+E82spBY4HR5VPJTvlhKBc9F7muVxnS6C1rRfoPOXAbWO/fyw==", "requires": { - "imurmurhash": "^0.1.4" + "chalk": "^2.4.1" } }, - "unique-string": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-1.0.0.tgz", - "integrity": "sha1-nhBXzKhRq7kzmPizOuGHuZyuwRo=", - "dev": true, + "lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + }, + "lodash.camelcase": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", + "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY=" + }, + "lodash.values": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.values/-/lodash.values-4.3.0.tgz", + "integrity": "sha512-r0RwvdCv8id9TUblb/O7rYPwVy6lerCbcawrfdo9iC/1t1wsNMJknO79WNBgwkH0hIeJ08jmvvESbFpNb4jH0Q==" + }, + "long": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz", + "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==" + }, + "loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "requires": { + "js-tokens": "^3.0.0 || ^4.0.0" + } + }, + "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 + }, + "map-obj": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.3.0.tgz", + "integrity": "sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==" + }, + "md5.js": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", + "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", + "requires": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "mime-db": { + "version": "1.44.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.44.0.tgz", + "integrity": "sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg==" + }, + "mime-types": { + "version": "2.1.27", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.27.tgz", + "integrity": "sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w==", "requires": { - "crypto-random-string": "^1.0.0" + "mime-db": "1.44.0" + } + }, + "minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==" + }, + "minimalistic-crypto-utils": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", + "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=" + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "requires": { + "brace-expansion": "^1.1.7" } }, - "universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==" + "minimist": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", + "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==" + }, + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==" + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + }, + "mustache": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/mustache/-/mustache-4.2.0.tgz", + "integrity": "sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ==" }, - "unpipe": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", - "dev": true + "nan": { + "version": "2.14.2", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.2.tgz", + "integrity": "sha512-M2ufzIiINKCuDfBSAUr1vWQ+vuVcA9kqx8JJUsbQi6yf1uGRyb7HfpdfUr5qLXf3B/t8dPvcjhKMmlfnP47EzQ==" }, - "unset-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", - "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", + "near-api-js": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/near-api-js/-/near-api-js-1.1.0.tgz", + "integrity": "sha512-qYKv1mYsaDZc2uYndhS+ttDhR9+60qFc+ZjD6lWsAxr3ZskMjRwPffDGQZYhC7BRDQMe1HEbk6d5mf+TVm0Lqg==", "requires": { - "has-value": "^0.3.1", - "isobject": "^3.0.0" + "bn.js": "5.2.1", + "borsh": "^0.7.0", + "bs58": "^4.0.0", + "depd": "^2.0.0", + "error-polyfill": "^0.1.3", + "http-errors": "^1.7.2", + "js-sha256": "^0.9.0", + "mustache": "^4.0.0", + "node-fetch": "^2.6.1", + "text-encoding-utf-8": "^1.0.2", + "tweetnacl": "^1.0.1" }, "dependencies": { - "has-value": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", - "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", + "bn.js": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", + "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==" + }, + "depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==" + }, + "node-fetch": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.9.tgz", + "integrity": "sha512-DJm/CJkZkRjKKj4Zi4BsKVZh3ValV5IR5s7LVZnW+6YMh0W1BfNA8XSs6DLMGYlId5F3KnA70uu2qepcR08Qqg==", "requires": { - "get-value": "^2.0.3", - "has-values": "^0.1.4", - "isobject": "^2.0.0" - }, - "dependencies": { - "isobject": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", - "requires": { - "isarray": "1.0.0" - } - } + "whatwg-url": "^5.0.0" } }, - "has-values": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", - "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=" + "tweetnacl": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.3.tgz", + "integrity": "sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==" } } }, - "untildify": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/untildify/-/untildify-4.0.0.tgz", - "integrity": "sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==" - }, - "upath": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", - "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==", - "optional": true - }, - "upper-case": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/upper-case/-/upper-case-1.1.3.tgz", - "integrity": "sha512-WRbjgmYzgXkCV7zNVpy5YgrHgbBv126rMALQQMrmzOVC4GM2waQ9x7xtm8VU+1yF2kWyPzI9zbZ48n4vSxwfSA==", - "dev": true - }, - "upper-case-first": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/upper-case-first/-/upper-case-first-1.1.2.tgz", - "integrity": "sha512-wINKYvI3Db8dtjikdAqoBbZoP6Q+PZUyfMR7pmwHzjC2quzSkUq5DmPrTtPEqHaz8AGtmsB4TqwapMTM1QAQOQ==", - "dev": true, - "requires": { - "upper-case": "^1.1.1" - } - }, - "uri-js": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", - "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", - "requires": { - "punycode": "^2.1.0" - } + "node-addon-api": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-2.0.2.tgz", + "integrity": "sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA==" }, - "urix": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", - "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=" + "node-gyp-build": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.6.0.tgz", + "integrity": "sha512-NTZVKn9IylLwUzaKjkas1e4u2DLNcV4rdYagA4PWdPwW87Bi7z+BznyKSRwS/761tV/lzCGXplWsiaMjLqP2zQ==" }, - "url": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", - "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", + "noms": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/noms/-/noms-0.0.0.tgz", + "integrity": "sha512-lNDU9VJaOPxUmXcLb+HQFeUgQQPtMI24Gt6hgfuMHRJgMRHMF/qZ4HJD3GDru4sSw9IQl2jPjAYnQrdIeLbwow==", "requires": { - "punycode": "1.3.2", - "querystring": "0.2.0" + "inherits": "^2.0.1", + "readable-stream": "~1.0.31" }, "dependencies": { - "punycode": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", - "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=" + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==" + }, + "readable-stream": { + "version": "1.0.34", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", + "integrity": "sha512-ok1qVCJuRkNmvebYikljxJA/UEsKwLl2nI1OmaqAu4/UE+h0wKCHok4XkL/gvi39OacXvw59RJUOFUkDib2rHg==", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } }, - "querystring": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", - "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=" + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==" } } }, - "url-parse-lax": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", - "integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=", - "dev": true, + "o3": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/o3/-/o3-1.0.3.tgz", + "integrity": "sha512-f+4n+vC6s4ysy7YO7O2gslWZBUu8Qj2i2OUJOvjRxQva7jVjYjB29jrr9NCjmxZQR0gzrOcv1RnqoYOeMs5VRQ==", "requires": { - "prepend-http": "^2.0.0" + "capability": "^0.2.5" } }, - "url-set-query": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/url-set-query/-/url-set-query-1.0.0.tgz", - "integrity": "sha1-AW6M/Xwg7gXK/neV6JK9BwL6ozk=" - }, - "url-to-options": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/url-to-options/-/url-to-options-1.0.1.tgz", - "integrity": "sha1-FQWgOiiaSMvXpDTvuu7FBV9WM6k=", - "dev": true + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" }, - "use": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", - "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==" + "object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==" }, - "utf-8-validate": { - "version": "5.0.10", - "resolved": "https://registry.npmjs.org/utf-8-validate/-/utf-8-validate-5.0.10.tgz", - "integrity": "sha512-Z6czzLq4u8fPOyx7TU6X3dvUZVvoJmxSQ+IcrlmagKhilxlhZgxPK6C5Jqbkw1IDUmFTM+cz9QDnnLTwDz/2gQ==", + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", "requires": { - "node-gyp-build": "^4.3.0" + "wrappy": "1" } }, - "utf8": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/utf8/-/utf8-3.0.0.tgz", - "integrity": "sha512-E8VjFIQ/TyQgp+TZfS6l8yp/xWppSAHzidGiRrqe4bK4XP9pTRyKFgGJpO3SN7zdX4DeomTrwaseCHovfpFcqQ==" - }, - "util": { - "version": "0.12.5", - "resolved": "https://registry.npmjs.org/util/-/util-0.12.5.tgz", - "integrity": "sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==", - "dev": true, + "optimism": { + "version": "0.16.2", + "resolved": "https://registry.npmjs.org/optimism/-/optimism-0.16.2.tgz", + "integrity": "sha512-zWNbgWj+3vLEjZNIh/okkY2EUfX+vB9TJopzIZwT1xxaMqC5hRLLraePod4c5n4He08xuXNH+zhKFFCu390wiQ==", "requires": { - "inherits": "^2.0.3", - "is-arguments": "^1.0.4", - "is-generator-function": "^1.0.7", - "is-typed-array": "^1.1.3", - "which-typed-array": "^1.1.2" + "@wry/context": "^0.7.0", + "@wry/trie": "^0.3.0" } }, - "util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" - }, - "utils-merge": { + "path-is-absolute": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=", - "dev": true - }, - "uuid": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==" - }, - "v8-compile-cache": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.1.1.tgz", - "integrity": "sha512-8OQ9CL+VWyt3JStj7HX7/ciTL2V3Rl1Wf5OL+SNTm0yK1KvtReVulksyeRnCANHHuUxHlQig+JJDlUhBt1NQDQ==" - }, - "v8-compile-cache-lib": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", - "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==", - "dev": true - }, - "value-or-promise": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/value-or-promise/-/value-or-promise-1.0.11.tgz", - "integrity": "sha512-41BrgH+dIbCFXClcSapVs5M6GkENd3gQOJpEfPDNa71LsUGMXDL0jMWpI/Rh7WhX+Aalfz2TTS3Zt5pUsbnhLg==", - "dev": true, - "optional": true - }, - "varint": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/varint/-/varint-5.0.2.tgz", - "integrity": "sha512-lKxKYG6H03yCZUpAGOPOsMcGxd1RHCu1iKvEHYDPmTyq2HueGhD73ssNBqqQWfvYs04G9iUFRvmAVLW20Jw6ow==" + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" }, - "vary": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", - "dev": true + "path-parse": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", + "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==" }, - "verror": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", - "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", + "pbkdf2": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.1.tgz", + "integrity": "sha512-4Ejy1OPxi9f2tt1rRV7Go7zmfDQ+ZectEQz3VGUQhgq62HtIRPDyG/JtnwIxs6x3uNMwo2V7q1fMvKjb+Tnpqg==", "requires": { - "assert-plus": "^1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" + "create-hash": "^1.1.2", + "create-hmac": "^1.1.4", + "ripemd160": "^2.0.1", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" } }, - "vlq": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/vlq/-/vlq-2.0.4.tgz", - "integrity": "sha512-aodjPa2wPQFkra1G8CzJBTHXhgk3EVSwxSWXNPr1fgdFLUb8kvLV1iEb6rFgasIsjP82HWI6dsb5Io26DDnasA==" - }, - "vm-browserify": { + "printj": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz", - "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==" - }, - "vuvuzela": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/vuvuzela/-/vuvuzela-1.0.3.tgz", - "integrity": "sha512-Tm7jR1xTzBbPW+6y1tknKiEhz04Wf/1iZkcTJjSFcpNko43+dFW6+OOeQe9taJIug3NdfUAjFKgUSyQrIKaDvQ==", - "dev": true, - "optional": true + "resolved": "https://registry.npmjs.org/printj/-/printj-1.1.2.tgz", + "integrity": "sha512-zA2SmoLaxZyArQTOPj5LXecR+RagfPSU5Kw1qP+jkWeNlrq+eJZyY2oS68SU1Z/7/myXM4lo9716laOFAVStCQ==" }, - "watchpack-chokidar2": { + "process-nextick-args": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/watchpack-chokidar2/-/watchpack-chokidar2-2.0.1.tgz", - "integrity": "sha512-nCFfBIPKr5Sh61s4LPpy1Wtfi0HE8isJ3d2Yb5/Ppw2P2B/3eVSEBjKfN0fmHJSK14+31KwMKmcrzs2GM4P0Ww==", - "optional": true, - "requires": { - "chokidar": "^2.1.8" - }, - "dependencies": { - "anymatch": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", - "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", - "optional": true, - "requires": { - "micromatch": "^3.1.4", - "normalize-path": "^2.1.1" - }, - "dependencies": { - "normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", - "optional": true, - "requires": { - "remove-trailing-separator": "^1.0.1" - } - } - } - }, - "binary-extensions": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", - "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", - "optional": true - }, - "braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "optional": true, - "requires": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - } - }, - "chokidar": { - "version": "2.1.8", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", - "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", - "optional": true, - "requires": { - "anymatch": "^2.0.0", - "async-each": "^1.0.1", - "braces": "^2.3.2", - "fsevents": "^1.2.7", - "glob-parent": "^3.1.0", - "inherits": "^2.0.3", - "is-binary-path": "^1.0.0", - "is-glob": "^4.0.0", - "normalize-path": "^3.0.0", - "path-is-absolute": "^1.0.0", - "readdirp": "^2.2.1", - "upath": "^1.1.1" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "optional": true, - "requires": { - "is-extendable": "^0.1.0" - } - }, - "fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "optional": true, - "requires": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - } - }, - "glob-parent": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", - "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", - "optional": true, - "requires": { - "is-glob": "^3.1.0", - "path-dirname": "^1.0.0" - }, - "dependencies": { - "is-glob": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", - "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", - "optional": true, - "requires": { - "is-extglob": "^2.1.0" - } - } - } - }, - "is-binary-path": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", - "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", - "optional": true, - "requires": { - "binary-extensions": "^1.0.0" - } - }, - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", - "optional": true - }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "optional": true - }, - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "optional": true, - "requires": { - "kind-of": "^3.0.2" - } - }, - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "optional": true, - "requires": { - "is-buffer": "^1.1.5" - } - }, - "readdirp": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", - "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", - "optional": true, - "requires": { - "graceful-fs": "^4.1.11", - "micromatch": "^3.1.10", - "readable-stream": "^2.0.2" - } - }, - "to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", - "optional": true, - "requires": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - } - } + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" + }, + "prop-types": { + "version": "15.8.1", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", + "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", + "requires": { + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.13.1" } }, - "web3": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/web3/-/web3-1.2.2.tgz", - "integrity": "sha512-/ChbmB6qZpfGx6eNpczt5YSUBHEA5V2+iUCbn85EVb3Zv6FVxrOo5Tv7Lw0gE2tW7EEjASbCyp3mZeiZaCCngg==", - "dev": true, + "protobufjs": { + "version": "6.11.2", + "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-6.11.2.tgz", + "integrity": "sha512-4BQJoPooKJl2G9j3XftkIXjoC9C0Av2NOrWmbLWT1vH32GcSUHjM0Arra6UfTsVyfMAuFzaLucXn1sadxJydAw==", "requires": { - "@types/node": "^12.6.1", - "web3-bzz": "1.2.2", - "web3-core": "1.2.2", - "web3-eth": "1.2.2", - "web3-eth-personal": "1.2.2", - "web3-net": "1.2.2", - "web3-shh": "1.2.2", - "web3-utils": "1.2.2" - }, - "dependencies": { - "@types/node": { - "version": "12.12.53", - "resolved": "https://registry.npmjs.org/@types/node/-/node-12.12.53.tgz", - "integrity": "sha512-51MYTDTyCziHb70wtGNFRwB4l+5JNvdqzFSkbDvpbftEgVUBEE+T5f7pROhWMp/fxp07oNIEQZd5bbfAH22ohQ==", - "dev": true - } + "@protobufjs/aspromise": "^1.1.2", + "@protobufjs/base64": "^1.1.2", + "@protobufjs/codegen": "^2.0.4", + "@protobufjs/eventemitter": "^1.1.0", + "@protobufjs/fetch": "^1.1.0", + "@protobufjs/float": "^1.0.2", + "@protobufjs/inquire": "^1.1.0", + "@protobufjs/path": "^1.1.2", + "@protobufjs/pool": "^1.1.0", + "@protobufjs/utf8": "^1.1.0", + "@types/long": "^4.0.1", + "@types/node": ">=13.7.0", + "long": "^4.0.0" } }, - "web3-bzz": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/web3-bzz/-/web3-bzz-1.2.2.tgz", - "integrity": "sha512-b1O2ObsqUN1lJxmFSjvnEC4TsaCbmh7Owj3IAIWTKqL9qhVgx7Qsu5O9cD13pBiSPNZJ68uJPaKq380QB4NWeA==", - "dev": true, + "randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", "requires": { - "@types/node": "^10.12.18", - "got": "9.6.0", - "swarm-js": "0.1.39", - "underscore": "1.9.1" - }, - "dependencies": { - "@types/node": { - "version": "10.17.28", - "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.28.tgz", - "integrity": "sha512-dzjES1Egb4c1a89C7lKwQh8pwjYmlOAG9dW1pBgxEk57tMrLnssOfEthz8kdkNaBd7lIqQx7APm5+mZ619IiCQ==", - "dev": true - }, - "underscore": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.9.1.tgz", - "integrity": "sha512-5/4etnCkd9c8gwgowi5/om/mYO5ajCaOgdzj/oW+0eQV9WxKBDZw5+ycmKmeaTXjInS/W0BzpGLo2xR2aBwZdg==", - "dev": true - } + "safe-buffer": "^5.1.0" } }, - "web3-core": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/web3-core/-/web3-core-1.2.2.tgz", - "integrity": "sha512-miHAX3qUgxV+KYfaOY93Hlc3kLW2j5fH8FJy6kSxAv+d4d5aH0wwrU2IIoJylQdT+FeenQ38sgsCnFu9iZ1hCQ==", - "dev": true, + "react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" + }, + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", "requires": { - "@types/bn.js": "^4.11.4", - "@types/node": "^12.6.1", - "web3-core-helpers": "1.2.2", - "web3-core-method": "1.2.2", - "web3-core-requestmanager": "1.2.2", - "web3-utils": "1.2.2" + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" }, "dependencies": { - "@types/node": { - "version": "12.12.53", - "resolved": "https://registry.npmjs.org/@types/node/-/node-12.12.53.tgz", - "integrity": "sha512-51MYTDTyCziHb70wtGNFRwB4l+5JNvdqzFSkbDvpbftEgVUBEE+T5f7pROhWMp/fxp07oNIEQZd5bbfAH22ohQ==", - "dev": true + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" } } }, - "web3-core-helpers": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.2.2.tgz", - "integrity": "sha512-HJrRsIGgZa1jGUIhvGz4S5Yh6wtOIo/TMIsSLe+Xay+KVnbseJpPprDI5W3s7H2ODhMQTbogmmUFquZweW2ImQ==", - "dev": true, + "readonly-date": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/readonly-date/-/readonly-date-1.0.0.tgz", + "integrity": "sha512-tMKIV7hlk0h4mO3JTmmVuIlJVXjKk3Sep9Bf5OH0O+758ruuVkUy2J9SttDLm91IEX/WHlXPSpxMGjPj4beMIQ==" + }, + "rechoir": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", + "integrity": "sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==", "requires": { - "underscore": "1.9.1", - "web3-eth-iban": "1.2.2", - "web3-utils": "1.2.2" - }, - "dependencies": { - "underscore": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.9.1.tgz", - "integrity": "sha512-5/4etnCkd9c8gwgowi5/om/mYO5ajCaOgdzj/oW+0eQV9WxKBDZw5+ycmKmeaTXjInS/W0BzpGLo2xR2aBwZdg==", - "dev": true - } + "resolve": "^1.1.6" } }, - "web3-core-method": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/web3-core-method/-/web3-core-method-1.2.2.tgz", - "integrity": "sha512-szR4fDSBxNHaF1DFqE+j6sFR/afv9Aa36OW93saHZnrh+iXSrYeUUDfugeNcRlugEKeUCkd4CZylfgbK2SKYJA==", - "dev": true, + "reduce-flatten": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/reduce-flatten/-/reduce-flatten-2.0.0.tgz", + "integrity": "sha512-EJ4UNY/U1t2P/2k6oqotuX2Cc3T6nxJwsM0N0asT7dhrtH1ltUxDn4NalSYmPE2rCkVpcf/X6R0wDwcFpzhd4w==" + }, + "regenerator-runtime": { + "version": "0.13.11", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", + "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==" + }, + "require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" + }, + "resolve": { + "version": "1.17.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz", + "integrity": "sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==", "requires": { - "underscore": "1.9.1", - "web3-core-helpers": "1.2.2", - "web3-core-promievent": "1.2.2", - "web3-core-subscriptions": "1.2.2", - "web3-utils": "1.2.2" - }, - "dependencies": { - "underscore": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.9.1.tgz", - "integrity": "sha512-5/4etnCkd9c8gwgowi5/om/mYO5ajCaOgdzj/oW+0eQV9WxKBDZw5+ycmKmeaTXjInS/W0BzpGLo2xR2aBwZdg==", - "dev": true - } + "path-parse": "^1.0.6" } }, - "web3-core-promievent": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/web3-core-promievent/-/web3-core-promievent-1.2.2.tgz", - "integrity": "sha512-tKvYeT8bkUfKABcQswK6/X79blKTKYGk949urZKcLvLDEaWrM3uuzDwdQT3BNKzQ3vIvTggFPX9BwYh0F1WwqQ==", - "dev": true, + "response-iterator": { + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/response-iterator/-/response-iterator-0.2.6.tgz", + "integrity": "sha512-pVzEEzrsg23Sh053rmDUvLSkGXluZio0qu8VT6ukrYuvtjVfCbDZH9d6PGXb8HZfzdNZt8feXv/jvUzlhRgLnw==" + }, + "ripemd160": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", + "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", "requires": { - "any-promise": "1.3.0", - "eventemitter3": "3.1.2" + "hash-base": "^3.0.0", + "inherits": "^2.0.1" } }, - "web3-core-requestmanager": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/web3-core-requestmanager/-/web3-core-requestmanager-1.2.2.tgz", - "integrity": "sha512-a+gSbiBRHtHvkp78U2bsntMGYGF2eCb6219aMufuZWeAZGXJ63Wc2321PCbA8hF9cQrZI4EoZ4kVLRI4OF15Hw==", - "dev": true, + "ripemd160-min": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/ripemd160-min/-/ripemd160-min-0.0.6.tgz", + "integrity": "sha512-+GcJgQivhs6S9qvLogusiTcS9kQUfgR75whKuy5jIhuiOfQuJ8fjqxV6EGD5duH1Y/FawFUMtMhyeq3Fbnib8A==" + }, + "rlp": { + "version": "2.2.6", + "resolved": "https://registry.npmjs.org/rlp/-/rlp-2.2.6.tgz", + "integrity": "sha512-HAfAmL6SDYNWPUOJNrM500x4Thn4PZsEy5pijPh40U9WfNk0z15hUYzO9xVIMAdIHdFtD8CBDHd75Td1g36Mjg==", "requires": { - "underscore": "1.9.1", - "web3-core-helpers": "1.2.2", - "web3-providers-http": "1.2.2", - "web3-providers-ipc": "1.2.2", - "web3-providers-ws": "1.2.2" - }, - "dependencies": { - "underscore": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.9.1.tgz", - "integrity": "sha512-5/4etnCkd9c8gwgowi5/om/mYO5ajCaOgdzj/oW+0eQV9WxKBDZw5+ycmKmeaTXjInS/W0BzpGLo2xR2aBwZdg==", - "dev": true - } + "bn.js": "^4.11.1" } }, - "web3-core-subscriptions": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/web3-core-subscriptions/-/web3-core-subscriptions-1.2.2.tgz", - "integrity": "sha512-QbTgigNuT4eicAWWr7ahVpJyM8GbICsR1Ys9mJqzBEwpqS+RXTRVSkwZ2IsxO+iqv6liMNwGregbJLq4urMFcQ==", - "dev": true, + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "optional": true, + "peer": true + }, + "secp256k1": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-4.0.2.tgz", + "integrity": "sha512-UDar4sKvWAksIlfX3xIaQReADn+WFnHvbVujpcbr+9Sf/69odMwy2MUsz5CKLQgX9nsIyrjuxL2imVyoNHa3fg==", + "requires": { + "elliptic": "^6.5.2", + "node-addon-api": "^2.0.0", + "node-gyp-build": "^4.2.0" + } + }, + "setprototypeof": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", + "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==" + }, + "sha.js": { + "version": "2.4.11", + "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", + "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", + "requires": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "sha3": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/sha3/-/sha3-2.1.4.tgz", + "integrity": "sha512-S8cNxbyb0UGUM2VhRD4Poe5N58gJnJsLJ5vC7FYWGUmGhcsj4++WaIOBFVDxlG0W3To6xBuiRh+i0Qp2oNCOtg==", "requires": { - "eventemitter3": "3.1.2", - "underscore": "1.9.1", - "web3-core-helpers": "1.2.2" + "buffer": "6.0.3" }, "dependencies": { - "underscore": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.9.1.tgz", - "integrity": "sha512-5/4etnCkd9c8gwgowi5/om/mYO5ajCaOgdzj/oW+0eQV9WxKBDZw5+ycmKmeaTXjInS/W0BzpGLo2xR2aBwZdg==", - "dev": true + "buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "requires": { + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" + } } } }, - "web3-eth": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/web3-eth/-/web3-eth-1.2.2.tgz", - "integrity": "sha512-UXpC74mBQvZzd4b+baD4Ocp7g+BlwxhBHumy9seyE/LMIcMlePXwCKzxve9yReNpjaU16Mmyya6ZYlyiKKV8UA==", - "dev": true, + "shelljs": { + "version": "0.8.5", + "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.5.tgz", + "integrity": "sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==", "requires": { - "underscore": "1.9.1", - "web3-core": "1.2.2", - "web3-core-helpers": "1.2.2", - "web3-core-method": "1.2.2", - "web3-core-subscriptions": "1.2.2", - "web3-eth-abi": "1.2.2", - "web3-eth-accounts": "1.2.2", - "web3-eth-contract": "1.2.2", - "web3-eth-ens": "1.2.2", - "web3-eth-iban": "1.2.2", - "web3-eth-personal": "1.2.2", - "web3-net": "1.2.2", - "web3-utils": "1.2.2" - }, - "dependencies": { - "underscore": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.9.1.tgz", - "integrity": "sha512-5/4etnCkd9c8gwgowi5/om/mYO5ajCaOgdzj/oW+0eQV9WxKBDZw5+ycmKmeaTXjInS/W0BzpGLo2xR2aBwZdg==", - "dev": true - } + "glob": "^7.0.0", + "interpret": "^1.0.0", + "rechoir": "^0.6.2" } }, - "web3-eth-abi": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/web3-eth-abi/-/web3-eth-abi-1.2.2.tgz", - "integrity": "sha512-Yn/ZMgoOLxhTVxIYtPJ0eS6pnAnkTAaJgUJh1JhZS4ekzgswMfEYXOwpMaD5eiqPJLpuxmZFnXnBZlnQ1JMXsw==", - "dev": true, + "shx": { + "version": "0.3.4", + "resolved": "https://registry.npmjs.org/shx/-/shx-0.3.4.tgz", + "integrity": "sha512-N6A9MLVqjxZYcVn8hLmtneQWIJtp8IKzMP4eMnx+nqkvXoqinUPCbUFLp2UcWTEIUONhlk0ewxr/jaVGlc+J+g==", + "requires": { + "minimist": "^1.2.3", + "shelljs": "^0.8.5" + } + }, + "snakecase-keys": { + "version": "5.4.5", + "resolved": "https://registry.npmjs.org/snakecase-keys/-/snakecase-keys-5.4.5.tgz", + "integrity": "sha512-qSQVcgcWk8mQUN1miVGnRMAUye1dbj9+F9PVkR7wZUXNCidQwrl/kOKmoYf+WbH2ju6c9pXnlmbS2he7pb2/9A==", "requires": { - "ethers": "4.0.0-beta.3", - "underscore": "1.9.1", - "web3-utils": "1.2.2" + "map-obj": "^4.1.0", + "snake-case": "^3.0.4", + "type-fest": "^2.5.2" }, "dependencies": { - "@types/node": { - "version": "10.17.28", - "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.28.tgz", - "integrity": "sha512-dzjES1Egb4c1a89C7lKwQh8pwjYmlOAG9dW1pBgxEk57tMrLnssOfEthz8kdkNaBd7lIqQx7APm5+mZ619IiCQ==", - "dev": true - }, - "elliptic": { - "version": "6.3.3", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.3.3.tgz", - "integrity": "sha1-VILZZG1UvLif19mU/J4ulWiHbj8=", - "dev": true, + "dot-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz", + "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==", "requires": { - "bn.js": "^4.4.0", - "brorand": "^1.0.1", - "hash.js": "^1.0.0", - "inherits": "^2.0.1" + "no-case": "^3.0.4", + "tslib": "^2.0.3" } }, - "ethers": { - "version": "4.0.0-beta.3", - "resolved": "https://registry.npmjs.org/ethers/-/ethers-4.0.0-beta.3.tgz", - "integrity": "sha512-YYPogooSknTwvHg3+Mv71gM/3Wcrx+ZpCzarBj3mqs9njjRkrOo2/eufzhHloOCo3JSoNI4TQJJ6yU5ABm3Uog==", - "dev": true, + "lower-case": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", + "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", "requires": { - "@types/node": "^10.3.2", - "aes-js": "3.0.0", - "bn.js": "^4.4.0", - "elliptic": "6.3.3", - "hash.js": "1.1.3", - "js-sha3": "0.5.7", - "scrypt-js": "2.0.3", - "setimmediate": "1.0.4", - "uuid": "2.0.1", - "xmlhttprequest": "1.8.0" + "tslib": "^2.0.3" } }, - "scrypt-js": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-2.0.3.tgz", - "integrity": "sha1-uwBAvgMEPamgEqLOqfyfhSz8h9Q=", - "dev": true - }, - "underscore": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.9.1.tgz", - "integrity": "sha512-5/4etnCkd9c8gwgowi5/om/mYO5ajCaOgdzj/oW+0eQV9WxKBDZw5+ycmKmeaTXjInS/W0BzpGLo2xR2aBwZdg==", - "dev": true - }, - "uuid": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-2.0.1.tgz", - "integrity": "sha1-wqMN7bPlNdcsz4LjQ5QaULqFM6w=", - "dev": true - } - } - }, - "web3-eth-accounts": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/web3-eth-accounts/-/web3-eth-accounts-1.2.2.tgz", - "integrity": "sha512-KzHOEyXOEZ13ZOkWN3skZKqSo5f4Z1ogPFNn9uZbKCz+kSp+gCAEKxyfbOsB/JMAp5h7o7pb6eYsPCUBJmFFiA==", - "dev": true, - "requires": { - "any-promise": "1.3.0", - "crypto-browserify": "3.12.0", - "eth-lib": "0.2.7", - "ethereumjs-common": "^1.3.2", - "ethereumjs-tx": "^2.1.1", - "scrypt-shim": "github:web3-js/scrypt-shim", - "underscore": "1.9.1", - "uuid": "3.3.2", - "web3-core": "1.2.2", - "web3-core-helpers": "1.2.2", - "web3-core-method": "1.2.2", - "web3-utils": "1.2.2" - }, - "dependencies": { - "eth-lib": { - "version": "0.2.7", - "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.7.tgz", - "integrity": "sha1-L5Pxex4jrsN1nNSj/iDBKGo/wco=", - "dev": true, + "no-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", + "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", + "requires": { + "lower-case": "^2.0.2", + "tslib": "^2.0.3" + } + }, + "snake-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/snake-case/-/snake-case-3.0.4.tgz", + "integrity": "sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==", "requires": { - "bn.js": "^4.11.6", - "elliptic": "^6.4.0", - "xhr-request-promise": "^0.1.2" + "dot-case": "^3.0.4", + "tslib": "^2.0.3" } }, - "underscore": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.9.1.tgz", - "integrity": "sha512-5/4etnCkd9c8gwgowi5/om/mYO5ajCaOgdzj/oW+0eQV9WxKBDZw5+ycmKmeaTXjInS/W0BzpGLo2xR2aBwZdg==", - "dev": true + "tslib": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz", + "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==" }, - "uuid": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", - "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==", - "dev": true + "type-fest": { + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz", + "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==" } } }, - "web3-eth-contract": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/web3-eth-contract/-/web3-eth-contract-1.2.2.tgz", - "integrity": "sha512-EKT2yVFws3FEdotDQoNsXTYL798+ogJqR2//CaGwx3p0/RvQIgfzEwp8nbgA6dMxCsn9KOQi7OtklzpnJMkjtA==", - "dev": true, + "statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=" + }, + "store2": { + "version": "2.14.2", + "resolved": "https://registry.npmjs.org/store2/-/store2-2.14.2.tgz", + "integrity": "sha512-siT1RiqlfQnGqgT/YzXVUNsom9S0H1OX+dpdGN1xkyYATo4I6sep5NmsRD/40s3IIOvlCq6akxkqG82urIZW1w==" + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "requires": { - "@types/bn.js": "^4.11.4", - "underscore": "1.9.1", - "web3-core": "1.2.2", - "web3-core-helpers": "1.2.2", - "web3-core-method": "1.2.2", - "web3-core-promievent": "1.2.2", - "web3-core-subscriptions": "1.2.2", - "web3-eth-abi": "1.2.2", - "web3-utils": "1.2.2" - }, - "dependencies": { - "underscore": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.9.1.tgz", - "integrity": "sha512-5/4etnCkd9c8gwgowi5/om/mYO5ajCaOgdzj/oW+0eQV9WxKBDZw5+ycmKmeaTXjInS/W0BzpGLo2xR2aBwZdg==", - "dev": true + "safe-buffer": "~5.1.0" + }, + "dependencies": { + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" } } }, - "web3-eth-ens": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/web3-eth-ens/-/web3-eth-ens-1.2.2.tgz", - "integrity": "sha512-CFjkr2HnuyMoMFBoNUWojyguD4Ef+NkyovcnUc/iAb9GP4LHohKrODG4pl76R5u61TkJGobC2ij6TyibtsyVYg==", - "dev": true, + "string-format": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/string-format/-/string-format-2.0.0.tgz", + "integrity": "sha512-bbEs3scLeYNXLecRRuk6uJxdXUSj6le/8rNPHChIJTn2V79aXVTR1EH2OH5zLKKoz0V02fOUKZZcw01pLUShZA==" + }, + "strip-hex-prefix": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-hex-prefix/-/strip-hex-prefix-1.0.0.tgz", + "integrity": "sha1-DF8VX+8RUTczd96du1iNoFUA428=", "requires": { - "eth-ens-namehash": "2.0.8", - "underscore": "1.9.1", - "web3-core": "1.2.2", - "web3-core-helpers": "1.2.2", - "web3-core-promievent": "1.2.2", - "web3-eth-abi": "1.2.2", - "web3-eth-contract": "1.2.2", - "web3-utils": "1.2.2" - }, - "dependencies": { - "underscore": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.9.1.tgz", - "integrity": "sha512-5/4etnCkd9c8gwgowi5/om/mYO5ajCaOgdzj/oW+0eQV9WxKBDZw5+ycmKmeaTXjInS/W0BzpGLo2xR2aBwZdg==", - "dev": true - } + "is-hex-prefixed": "1.0.0" } }, - "web3-eth-iban": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/web3-eth-iban/-/web3-eth-iban-1.2.2.tgz", - "integrity": "sha512-gxKXBoUhaTFHr0vJB/5sd4i8ejF/7gIsbM/VvemHT3tF5smnmY6hcwSMmn7sl5Gs+83XVb/BngnnGkf+I/rsrQ==", - "dev": true, + "subscriptions-transport-ws": { + "version": "0.9.19", + "resolved": "https://registry.npmjs.org/subscriptions-transport-ws/-/subscriptions-transport-ws-0.9.19.tgz", + "integrity": "sha512-dxdemxFFB0ppCLg10FTtRqH/31FNRL1y1BQv8209MK5I4CwALb7iihQg+7p65lFcIl8MHatINWBLOqpgU4Kyyw==", + "optional": true, + "peer": true, "requires": { - "bn.js": "4.11.8", - "web3-utils": "1.2.2" + "backo2": "^1.0.2", + "eventemitter3": "^3.1.0", + "iterall": "^1.2.1", + "symbol-observable": "^1.0.4", + "ws": "^5.2.0 || ^6.0.0 || ^7.0.0" }, "dependencies": { - "bn.js": { - "version": "4.11.8", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz", - "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==", - "dev": true + "ws": { + "version": "7.5.7", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.7.tgz", + "integrity": "sha512-KMvVuFzpKBuiIXW3E4u3mySRO2/mCHSyZDJQM5NQ9Q9KHWHWh0NHgfbRMLLrceUK5qAL4ytALJbpRMjixFZh8A==", + "optional": true, + "peer": true, + "requires": {} } } }, - "web3-eth-personal": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/web3-eth-personal/-/web3-eth-personal-1.2.2.tgz", - "integrity": "sha512-4w+GLvTlFqW3+q4xDUXvCEMU7kRZ+xm/iJC8gm1Li1nXxwwFbs+Y+KBK6ZYtoN1qqAnHR+plYpIoVo27ixI5Rg==", - "dev": true, + "superstruct": { + "version": "0.15.5", + "resolved": "https://registry.npmjs.org/superstruct/-/superstruct-0.15.5.tgz", + "integrity": "sha512-4AOeU+P5UuE/4nOUkmcQdW5y7i9ndt1cQd/3iUe+LTz3RxESf/W/5lg4B74HbDMMv8PHnPnGCQFH45kBcrQYoQ==" + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "requires": { + "has-flag": "^3.0.0" + } + }, + "symbol-observable": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.2.0.tgz", + "integrity": "sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ==", + "optional": true, + "peer": true + }, + "table-layout": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/table-layout/-/table-layout-1.0.2.tgz", + "integrity": "sha512-qd/R7n5rQTRFi+Zf2sk5XVVd9UQl6ZkduPFC3S7WEGJAmetDTjY3qPN50eSKzwuzEyQKy5TN2TiZdkIjos2L6A==", "requires": { - "@types/node": "^12.6.1", - "web3-core": "1.2.2", - "web3-core-helpers": "1.2.2", - "web3-core-method": "1.2.2", - "web3-net": "1.2.2", - "web3-utils": "1.2.2" + "array-back": "^4.0.1", + "deep-extend": "~0.6.0", + "typical": "^5.2.0", + "wordwrapjs": "^4.0.0" }, "dependencies": { - "@types/node": { - "version": "12.12.53", - "resolved": "https://registry.npmjs.org/@types/node/-/node-12.12.53.tgz", - "integrity": "sha512-51MYTDTyCziHb70wtGNFRwB4l+5JNvdqzFSkbDvpbftEgVUBEE+T5f7pROhWMp/fxp07oNIEQZd5bbfAH22ohQ==", - "dev": true + "array-back": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-4.0.2.tgz", + "integrity": "sha512-NbdMezxqf94cnNfWLL7V/im0Ub+Anbb0IoZhvzie8+4HJ4nMQuzHuy49FkGYCJK2yAloZ3meiB6AVMClbrI1vg==" + }, + "typical": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/typical/-/typical-5.2.0.tgz", + "integrity": "sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg==" } } }, - "web3-net": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/web3-net/-/web3-net-1.2.2.tgz", - "integrity": "sha512-K07j2DXq0x4UOJgae65rWZKraOznhk8v5EGSTdFqASTx7vWE/m+NqBijBYGEsQY1lSMlVaAY9UEQlcXK5HzXTw==", - "dev": true, - "requires": { - "web3-core": "1.2.2", - "web3-core-method": "1.2.2", - "web3-utils": "1.2.2" - } + "text-encoding-utf-8": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/text-encoding-utf-8/-/text-encoding-utf-8-1.0.2.tgz", + "integrity": "sha512-8bw4MY9WjdsD2aMtO0OzOCY3pXGYNx2d2FfHRVUKkiCPDWjKuOlhLVASS+pD7VkLTVjW268LYJHwsnPFlBpbAg==" }, - "web3-providers-http": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/web3-providers-http/-/web3-providers-http-1.2.2.tgz", - "integrity": "sha512-BNZ7Hguy3eBszsarH5gqr9SIZNvqk9eKwqwmGH1LQS1FL3NdoOn7tgPPdddrXec4fL94CwgNk4rCU+OjjZRNDg==", - "dev": true, + "through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=" + }, + "tiny-secp256k1": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/tiny-secp256k1/-/tiny-secp256k1-1.1.6.tgz", + "integrity": "sha512-FmqJZGduTyvsr2cF3375fqGHUovSwDi/QytexX1Se4BPuPZpTE5Ftp5fg+EFSuEf3lhZqgCRjEG3ydUQ/aNiwA==", "requires": { - "web3-core-helpers": "1.2.2", - "xhr2-cookies": "1.1.0" + "bindings": "^1.3.0", + "bn.js": "^4.11.8", + "create-hmac": "^1.1.7", + "elliptic": "^6.4.0", + "nan": "^2.13.2" } }, - "web3-providers-ipc": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/web3-providers-ipc/-/web3-providers-ipc-1.2.2.tgz", - "integrity": "sha512-t97w3zi5Kn/LEWGA6D9qxoO0LBOG+lK2FjlEdCwDQatffB/+vYrzZ/CLYVQSoyFZAlsDoBasVoYSWZK1n39aHA==", - "dev": true, + "toidentifier": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", + "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==" + }, + "toml": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/toml/-/toml-3.0.0.tgz", + "integrity": "sha512-y/mWCZinnvxjTKYhJ+pYxwD0mRLVvOtdS2Awbgxln6iEnt4rk0yBxeSBHkGJcPucRiG0e55mwWp+g/05rsrd6w==" + }, + "tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=" + }, + "ts-command-line-args": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/ts-command-line-args/-/ts-command-line-args-2.4.2.tgz", + "integrity": "sha512-mJLQQBOdyD4XI/ZWQY44PIdYde47JhV2xl380O7twPkTQ+Y5vFDHsk8LOeXKuz7dVY5aDCfAzRarNfSqtKOkQQ==", "requires": { - "oboe": "2.1.4", - "underscore": "1.9.1", - "web3-core-helpers": "1.2.2" + "@morgan-stanley/ts-mocking-bird": "^0.6.2", + "chalk": "^4.1.0", + "command-line-args": "^5.1.1", + "command-line-usage": "^6.1.0", + "string-format": "^2.0.0" }, "dependencies": { - "underscore": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.9.1.tgz", - "integrity": "sha512-5/4etnCkd9c8gwgowi5/om/mYO5ajCaOgdzj/oW+0eQV9WxKBDZw5+ycmKmeaTXjInS/W0BzpGLo2xR2aBwZdg==", - "dev": true + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "requires": { + "has-flag": "^4.0.0" + } } } }, - "web3-providers-ws": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/web3-providers-ws/-/web3-providers-ws-1.2.2.tgz", - "integrity": "sha512-Wb1mrWTGMTXOpJkL0yGvL/WYLt8fUIXx8k/l52QB2IiKzvyd42dTWn4+j8IKXGSYYzOm7NMqv6nhA5VDk12VfA==", + "ts-node": { + "version": "10.9.1", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.1.tgz", + "integrity": "sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==", "dev": true, "requires": { - "underscore": "1.9.1", - "web3-core-helpers": "1.2.2", - "websocket": "github:web3-js/WebSocket-Node#polyfill/globalThis" + "@cspotcode/source-map-support": "^0.8.0", + "@tsconfig/node10": "^1.0.7", + "@tsconfig/node12": "^1.0.7", + "@tsconfig/node14": "^1.0.0", + "@tsconfig/node16": "^1.0.2", + "acorn": "^8.4.1", + "acorn-walk": "^8.1.1", + "arg": "^4.1.0", + "create-require": "^1.1.0", + "diff": "^4.0.1", + "make-error": "^1.1.1", + "v8-compile-cache-lib": "^3.0.1", + "yn": "3.1.1" }, "dependencies": { - "underscore": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.9.1.tgz", - "integrity": "sha512-5/4etnCkd9c8gwgowi5/om/mYO5ajCaOgdzj/oW+0eQV9WxKBDZw5+ycmKmeaTXjInS/W0BzpGLo2xR2aBwZdg==", + "acorn": { + "version": "8.8.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz", + "integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==", "dev": true } } }, - "web3-shh": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/web3-shh/-/web3-shh-1.2.2.tgz", - "integrity": "sha512-og258NPhlBn8yYrDWjoWBBb6zo1OlBgoWGT+LL5/LPqRbjPe09hlOYHgscAAr9zZGtohTOty7RrxYw6Z6oDWCg==", - "dev": true, - "requires": { - "web3-core": "1.2.2", - "web3-core-method": "1.2.2", - "web3-core-subscriptions": "1.2.2", - "web3-net": "1.2.2" - } + "tweetnacl-util": { + "version": "0.15.1", + "resolved": "https://registry.npmjs.org/tweetnacl-util/-/tweetnacl-util-0.15.1.tgz", + "integrity": "sha512-RKJBIj8lySrShN4w6i/BonWp2Z/uxwC3h4y7xsRrpP59ZboCd0GpEVsOnMDYLMmKBpYhb5TgHzZXy7wTfYFBRw==" }, - "web3-utils": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.2.2.tgz", - "integrity": "sha512-joF+s3243TY5cL7Z7y4h1JsJpUCf/kmFmj+eJar7Y2yNIGVcW961VyrAms75tjUysSuHaUQ3eQXjBEUJueT52A==", - "dev": true, + "typechain": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/typechain/-/typechain-8.1.1.tgz", + "integrity": "sha512-uF/sUvnXTOVF2FHKhQYnxHk4su4JjZR8vr4mA2mBaRwHTbwh0jIlqARz9XJr1tA0l7afJGvEa1dTSi4zt039LQ==", "requires": { - "bn.js": "4.11.8", - "eth-lib": "0.2.7", - "ethereum-bloom-filters": "^1.0.6", - "ethjs-unit": "0.1.6", - "number-to-bn": "1.7.0", - "randombytes": "^2.1.0", - "underscore": "1.9.1", - "utf8": "3.0.0" + "@types/prettier": "^2.1.1", + "debug": "^4.3.1", + "fs-extra": "^7.0.0", + "glob": "7.1.7", + "js-sha3": "^0.8.0", + "lodash": "^4.17.15", + "mkdirp": "^1.0.4", + "prettier": "^2.3.1", + "ts-command-line-args": "^2.2.0", + "ts-essentials": "^7.0.1" }, "dependencies": { - "bn.js": { - "version": "4.11.8", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz", - "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==", - "dev": true + "@types/prettier": { + "version": "2.7.2", + "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.7.2.tgz", + "integrity": "sha512-KufADq8uQqo1pYKVIYzfKbJfBAc0sOeXqGbFaSpv8MRmC/zXgowNZmFcbngndGk922QDmOASEXUZCaY48gs4cg==" }, - "eth-lib": { - "version": "0.2.7", - "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.7.tgz", - "integrity": "sha1-L5Pxex4jrsN1nNSj/iDBKGo/wco=", - "dev": true, + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", "requires": { - "bn.js": "^4.11.6", - "elliptic": "^6.4.0", - "xhr-request-promise": "^0.1.2" + "ms": "2.1.2" } }, - "underscore": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.9.1.tgz", - "integrity": "sha512-5/4etnCkd9c8gwgowi5/om/mYO5ajCaOgdzj/oW+0eQV9WxKBDZw5+ycmKmeaTXjInS/W0BzpGLo2xR2aBwZdg==", - "dev": true - } - } - }, - "webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=" - }, - "websocket": { - "version": "git+ssh://git@github.com/web3-js/WebSocket-Node.git#ef5ea2f41daf4a2113b80c9223df884b4d56c400", - "dev": true, - "from": "websocket@github:web3-js/WebSocket-Node#polyfill/globalThis", - "requires": { - "debug": "^2.2.0", - "es5-ext": "^0.10.50", - "nan": "^2.14.0", - "typedarray-to-buffer": "^3.1.5", - "yaeti": "^0.0.6" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, + "glob": { + "version": "7.1.7", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz", + "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==", "requires": { - "ms": "2.0.0" + "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" } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "prettier": { + "version": "2.8.7", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.7.tgz", + "integrity": "sha512-yPngTo3aXUUmyuTjeTUT75txrf+aMh9FiD7q9ZE/i6r0bPb22g4FsE6Y338PQX1bmfy08i9QQCB7/rcUAVntfw==" + }, + "ts-essentials": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/ts-essentials/-/ts-essentials-7.0.3.tgz", + "integrity": "sha512-8+gr5+lqO3G84KdiTSMRLtuyJ+nTBVRKuCrK4lidMPdVeEp0uqC875uE5NMcaA7YYMN7XsNiFQuMvasF8HT/xQ==", + "requires": {} } } }, - "websocket-driver": { - "version": "0.7.4", - "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz", - "integrity": "sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==", - "dev": true, - "requires": { - "http-parser-js": ">=0.5.1", - "safe-buffer": ">=5.1.0", - "websocket-extensions": ">=0.1.1" - } + "typeforce": { + "version": "1.18.0", + "resolved": "https://registry.npmjs.org/typeforce/-/typeforce-1.18.0.tgz", + "integrity": "sha512-7uc1O8h1M1g0rArakJdf0uLRSSgFcYexrVoKo+bzJd32gd4gDy2L/Z+8/FjPnU9ydY3pEnVPtr9FyscYY60K1g==" }, - "websocket-extensions": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz", - "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==", - "dev": true + "typescript": { + "version": "4.9.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz", + "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==" }, - "whatwg-fetch": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.2.0.tgz", - "integrity": "sha512-SdGPoQMMnzVYThUbSrEvqTlkvC1Ux27NehaJ/GUHBfNrh5Mjg+1/uRyFMwVnxO2MrikMWvWAqUGgQOfVU4hT7w==", - "dev": true + "typical": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/typical/-/typical-4.0.0.tgz", + "integrity": "sha512-VAH4IvQ7BDFYglMd7BPRDfLgxZZX4O4TFcRDA6EN5X7erNJJq+McIEp8np9aVtxrCJ6qx4GTYVfOWNjcqwZgRw==" }, - "whatwg-mimetype": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-3.0.0.tgz", - "integrity": "sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==", - "dev": true, - "optional": true + "u3": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/u3/-/u3-0.1.1.tgz", + "integrity": "sha512-+J5D5ir763y+Am/QY6hXNRlwljIeRMZMGs0cT6qqZVVzzT3X3nFPXVyPOFRMOR4kupB0T8JnCdpWdp6Q/iXn3w==" }, - "whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha1-lmRU6HZUYuN2RNNib2dCzotwll0=", - "requires": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } + "ultron": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ultron/-/ultron-1.1.1.tgz", + "integrity": "sha512-UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og==", + "peer": true + }, + "universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==" }, - "when": { - "version": "3.7.8", - "resolved": "https://registry.npmjs.org/when/-/when-3.7.8.tgz", - "integrity": "sha1-xxMLan6gRpPoQs3J56Hyqjmjn4I=" + "untildify": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/untildify/-/untildify-4.0.0.tgz", + "integrity": "sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==" }, - "which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "utf-8-validate": { + "version": "5.0.10", + "resolved": "https://registry.npmjs.org/utf-8-validate/-/utf-8-validate-5.0.10.tgz", + "integrity": "sha512-Z6czzLq4u8fPOyx7TU6X3dvUZVvoJmxSQ+IcrlmagKhilxlhZgxPK6C5Jqbkw1IDUmFTM+cz9QDnnLTwDz/2gQ==", "requires": { - "isexe": "^2.0.0" + "node-gyp-build": "^4.3.0" } }, - "which-boxed-primitive": { + "util-deprecate": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", - "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", - "dev": true, - "requires": { - "is-bigint": "^1.0.1", - "is-boolean-object": "^1.1.0", - "is-number-object": "^1.0.4", - "is-string": "^1.0.5", - "is-symbol": "^1.0.3" - } + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" }, - "which-module": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", - "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=" + "v8-compile-cache-lib": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", + "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==", + "dev": true }, - "which-typed-array": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.4.tgz", - "integrity": "sha512-49E0SpUe90cjpoc7BOJwyPHRqSAd12c10Qm2amdEZrJPCY2NDxaW01zHITrem+rnETY3dwrbH3UUrUwagfCYDA==", - "dev": true, - "requires": { - "available-typed-arrays": "^1.0.2", - "call-bind": "^1.0.0", - "es-abstract": "^1.18.0-next.1", - "foreach": "^2.0.5", - "function-bind": "^1.1.1", - "has-symbols": "^1.0.1", - "is-typed-array": "^1.1.3" - } + "vlq": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/vlq/-/vlq-2.0.4.tgz", + "integrity": "sha512-aodjPa2wPQFkra1G8CzJBTHXhgk3EVSwxSWXNPr1fgdFLUb8kvLV1iEb6rFgasIsjP82HWI6dsb5Io26DDnasA==" }, - "wide-align": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", - "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", + "webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=" + }, + "whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha1-lmRU6HZUYuN2RNNib2dCzotwll0=", "requires": { - "string-width": "^1.0.2 || 2" + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" } }, "wif": { @@ -50511,12 +10492,6 @@ "bs58check": "<3.0.0" } }, - "word-wrap": { - "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 - }, "wordwrapjs": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/wordwrapjs/-/wordwrapjs-4.0.1.tgz", @@ -50533,101 +10508,16 @@ } } }, - "worker-farm": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/worker-farm/-/worker-farm-1.7.0.tgz", - "integrity": "sha512-rvw3QTZc8lAxyVrqcSGVm5yP/IJ2UcB3U0graE3LCFoZ0Yn2x4EoVSqJKdB/T5M+FLcRPjz4TDacRf3OCfNUzw==", - "requires": { - "errno": "~0.1.7" - } - }, - "workerpool": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.2.1.tgz", - "integrity": "sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw==", - "dev": true - }, - "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==", - "requires": { - "ansi-styles": "^3.2.0", - "string-width": "^3.0.0", - "strip-ansi": "^5.0.0" - }, - "dependencies": { - "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==", - "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - } - } - } - }, "wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" }, - "write": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/write/-/write-1.0.3.tgz", - "integrity": "sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig==", - "dev": true, - "requires": { - "mkdirp": "^0.5.1" - }, - "dependencies": { - "mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "dev": true, - "requires": { - "minimist": "^1.2.5" - } - } - } - }, - "write-file-atomic": { - "version": "2.4.3", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.4.3.tgz", - "integrity": "sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.11", - "imurmurhash": "^0.1.4", - "signal-exit": "^3.0.2" - } - }, - "write-stream": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/write-stream/-/write-stream-0.4.3.tgz", - "integrity": "sha512-IJrvkhbAnj89W/GAVdVgbnPiVw5Ntg/B4tc/MUCIEwj/g6JIww1DWJyB/yBMT3yw2/TkT6IUZ0+IYef3flEw8A==", - "dev": true, - "optional": true, - "requires": { - "readable-stream": "~0.0.2" - }, - "dependencies": { - "readable-stream": { - "version": "0.0.4", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-0.0.4.tgz", - "integrity": "sha512-azrivNydKRYt7zwLV5wWUK7YzKTWs3q87xSmY6DlHapPrCvaT6ZrukvM5erV+yCSSPmZT8zkSdttOHQpWWm9zw==", - "dev": true, - "optional": true - } - } - }, "ws": { "version": "3.3.3", "resolved": "https://registry.npmjs.org/ws/-/ws-3.3.3.tgz", "integrity": "sha512-nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA==", + "peer": true, "requires": { "async-limiter": "~1.0.0", "safe-buffer": "~5.1.0", @@ -50637,74 +10527,11 @@ "safe-buffer": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "peer": true } } }, - "xdg-basedir": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-3.0.0.tgz", - "integrity": "sha1-SWsswQnsqNus/i3HK2A8F8WHCtQ=", - "dev": true - }, - "xhr": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/xhr/-/xhr-2.5.0.tgz", - "integrity": "sha512-4nlO/14t3BNUZRXIXfXe+3N6w3s1KoxcJUUURctd64BLRe67E4gRwp4PjywtDY72fXpZ1y6Ch0VZQRY/gMPzzQ==", - "requires": { - "global": "~4.3.0", - "is-function": "^1.0.1", - "parse-headers": "^2.0.0", - "xtend": "^4.0.0" - } - }, - "xhr-request": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/xhr-request/-/xhr-request-1.1.0.tgz", - "integrity": "sha512-Y7qzEaR3FDtL3fP30k9wO/e+FBnBByZeybKOhASsGP30NIkRAAkKD/sCnLvgEfAIEC1rcmK7YG8f4oEnIrrWzA==", - "requires": { - "buffer-to-arraybuffer": "^0.0.5", - "object-assign": "^4.1.1", - "query-string": "^5.0.1", - "simple-get": "^2.7.0", - "timed-out": "^4.0.1", - "url-set-query": "^1.0.0", - "xhr": "^2.0.4" - } - }, - "xhr-request-promise": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/xhr-request-promise/-/xhr-request-promise-0.1.3.tgz", - "integrity": "sha512-YUBytBsuwgitWtdRzXDDkWAXzhdGB8bYm0sSzMPZT7Z2MBjMSTHFsyCT1yCRATY+XC69DUrQraRAEgcoCRaIPg==", - "requires": { - "xhr-request": "^1.1.0" - } - }, - "xhr2-cookies": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/xhr2-cookies/-/xhr2-cookies-1.1.0.tgz", - "integrity": "sha1-fXdEnQmZGX8VXLc7I99yUF7YnUg=", - "requires": { - "cookiejar": "^2.1.1" - } - }, - "xmlhttprequest": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/xmlhttprequest/-/xmlhttprequest-1.8.0.tgz", - "integrity": "sha1-Z/4HXFwk/vOfnWX197f+dRcZaPw=", - "dev": true - }, - "xss": { - "version": "1.0.14", - "resolved": "https://registry.npmjs.org/xss/-/xss-1.0.14.tgz", - "integrity": "sha512-og7TEJhXvn1a7kzZGQ7ETjdQVS2UfZyTlsEdDOqvQF7GoxNfY+0YLCzBy1kPdsDDx4QuNAonQPddpsn6Xl/7sw==", - "dev": true, - "optional": true, - "requires": { - "commander": "^2.20.3", - "cssfilter": "0.0.10" - } - }, "xstream": { "version": "11.14.0", "resolved": "https://registry.npmjs.org/xstream/-/xstream-11.14.0.tgz", @@ -50726,115 +10553,12 @@ "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==" }, - "y18n": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", - "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==" - }, - "yaeti": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/yaeti/-/yaeti-0.0.6.tgz", - "integrity": "sha1-8m9ITXJoTPQr7ft2lwqhYI+/lXc=" - }, - "yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" - }, - "yargs": { - "version": "13.3.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz", - "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==", - "requires": { - "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" - }, - "dependencies": { - "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==", - "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - } - } - } - }, - "yargs-parser": { - "version": "13.1.2", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", - "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", - "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - }, - "dependencies": { - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" - } - } - }, - "yargs-unparser": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-2.0.0.tgz", - "integrity": "sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==", - "requires": { - "camelcase": "^6.0.0", - "decamelize": "^4.0.0", - "flat": "^5.0.2", - "is-plain-obj": "^2.1.0" - }, - "dependencies": { - "camelcase": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", - "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==" - }, - "decamelize": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz", - "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==" - }, - "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==" - } - } - }, - "yauzl": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", - "integrity": "sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=", - "dev": true, - "requires": { - "buffer-crc32": "~0.2.3", - "fd-slicer": "~1.1.0" - } - }, "yn": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", "dev": true }, - "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==" - }, "zen-observable": { "version": "0.8.15", "resolved": "https://registry.npmjs.org/zen-observable/-/zen-observable-0.8.15.tgz", diff --git a/relayer/ethereum/package.json b/relayer/ethereum/package.json index 8fe898f180..aaef5e8ba0 100644 --- a/relayer/ethereum/package.json +++ b/relayer/ethereum/package.json @@ -1,18 +1,8 @@ { "name": "@wormhole-foundation/contracts-ethereum-relayer", "version": "0.0.1", - "description": "", - "main": "networks.js", "devDependencies": { - "@chainsafe/truffle-plugin-abigen": "0.0.1", - "@openzeppelin/cli": "^2.8.2", "@openzeppelin/contracts": "^4.3.1", - "@truffle/hdwallet-provider": "^1.7.0", - "chai": "^4.3.7", - "mocha": "^8.4.0", - "truffle": "5.8.4", - "truffle-flattener": "^1.6.0", - "truffle-plugin-verify": "^0.5.11", "ts-node": "^10.9.1", "typescript": "^4.9.5" }, @@ -24,15 +14,13 @@ "deploy-relayers-evm2": "ENV=kubernetes CONTAINER=evm2 bash ./ts-scripts/relayer/shell/deployInContainer.sh", "typecheck": "tsc --noEmit --skipLibCheck" }, - "author": "", - "license": "ISC", + "license": "Apache-2.0", "dependencies": { "@certusone/wormhole-sdk": "^0.9.11", "@typechain/ethers-v5": "^10.2.0", "dotenv": "^10.0.0", "elliptic": "^6.5.2", - "jsonfile": "^4.0.0", - "truffle-hdwallet-provider-klaytn": "^1.4.2", + "js-sha3": "^0.8.0", "typechain": "^8.1.1" } } diff --git a/relayer/ethereum/ts-scripts/relayer/config/kubernetes/contracts.json b/relayer/ethereum/ts-scripts/relayer/config/kubernetes/contracts.json index 9212992cab..34aa74ab5b 100644 --- a/relayer/ethereum/ts-scripts/relayer/config/kubernetes/contracts.json +++ b/relayer/ethereum/ts-scripts/relayer/config/kubernetes/contracts.json @@ -24,11 +24,11 @@ "wormholeRelayersDev": [ { "chainId": 2, - "address": "0x53855d4b64E9A3CF59A84bc768adA716B5536BC5" + "address": "0xcC680D088586c09c3E0E099a676FA4b6e42467b4" }, { "chainId": 4, - "address": "0x53855d4b64E9A3CF59A84bc768adA716B5536BC5" + "address": "0xcC680D088586c09c3E0E099a676FA4b6e42467b4" } ], "mockIntegrations": [ diff --git a/relayer/ethereum/ts-scripts/relayer/config/tilt/contracts.json b/relayer/ethereum/ts-scripts/relayer/config/tilt/contracts.json index 9212992cab..34aa74ab5b 100644 --- a/relayer/ethereum/ts-scripts/relayer/config/tilt/contracts.json +++ b/relayer/ethereum/ts-scripts/relayer/config/tilt/contracts.json @@ -24,11 +24,11 @@ "wormholeRelayersDev": [ { "chainId": 2, - "address": "0x53855d4b64E9A3CF59A84bc768adA716B5536BC5" + "address": "0xcC680D088586c09c3E0E099a676FA4b6e42467b4" }, { "chainId": 4, - "address": "0x53855d4b64E9A3CF59A84bc768adA716B5536BC5" + "address": "0xcC680D088586c09c3E0E099a676FA4b6e42467b4" } ], "mockIntegrations": [ diff --git a/scripts/check-docker-pin.sh b/scripts/check-docker-pin.sh index b2f45f5577..9c2eb96b13 100755 --- a/scripts/check-docker-pin.sh +++ b/scripts/check-docker-pin.sh @@ -13,7 +13,7 @@ # - We ignore cosmwasm_artifacts AS artifacts because it's a local reference only, is built in tilt # - We ignore base AS (ignite-go-build|ignite-vue-build) because the base image is already pinned in wormchain/Dockerfile.proto # -git ls-files -z | grep -z "Dockerfile*" | xargs -r -0 grep -s "FROM" | egrep -v 'sha256|scratch|solana|aptos|sui|base|cosmwasm_artifacts|cli-gen|const-gen AS (application|base|builder|ci_tests|tests|artifacts|ignite-go-build|ignite-vue-build|cli-export|const-export)' +git ls-files -z | grep -z "Dockerfile*" | xargs -r -0 grep -s "FROM" | egrep -v 'sha256|scratch|solana|aptos|sui|base|cosmwasm_artifacts|cli-gen|const-gen|dev AS (application|base|builder|ci_tests|tests|artifacts|ignite-go-build|ignite-vue-build|cli-export|const-export|build)' if [ $? -eq 0 ]; then echo "[!] Unpinned docker files" >&2 exit 1 diff --git a/sdk/devnet_consts.go b/sdk/devnet_consts.go index 35a70f68f8..9328c64a3b 100644 --- a/sdk/devnet_consts.go +++ b/sdk/devnet_consts.go @@ -38,6 +38,6 @@ var KnownDevnetAutomaticRelayerEmitters = []struct { {ChainId: vaa.ChainIDBSC, Addr: "000000000000000000000000b98F46E96cb1F519C333FdFB5CCe0B13E0300ED4"}, // NTT end to end testing uses special emitters in local dev and CI. - {ChainId: vaa.ChainIDEthereum, Addr: "00000000000000000000000053855d4b64e9a3cf59a84bc768ada716b5536bc5"}, - {ChainId: vaa.ChainIDBSC, Addr: "00000000000000000000000053855d4b64e9a3cf59a84bc768ada716b5536bc5"}, + {ChainId: vaa.ChainIDEthereum, Addr: "000000000000000000000000cc680d088586c09c3e0e099a676fa4b6e42467b4"}, + {ChainId: vaa.ChainIDBSC, Addr: "000000000000000000000000cc680d088586c09c3e0e099a676fa4b6e42467b4"}, } diff --git a/sdk/js-query/CHANGELOG.md b/sdk/js-query/CHANGELOG.md index 88cbe8a737..25255e2588 100644 --- a/sdk/js-query/CHANGELOG.md +++ b/sdk/js-query/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.0.13 + +Add signaturesToSolanaArray + ## 0.0.12 Fix SolanaPda mock for bad rentEpoch parsing diff --git a/sdk/js-query/package-lock.json b/sdk/js-query/package-lock.json index 37a214a3ed..d7796c8cd0 100644 --- a/sdk/js-query/package-lock.json +++ b/sdk/js-query/package-lock.json @@ -1,12 +1,12 @@ { "name": "@wormhole-foundation/wormhole-query-sdk", - "version": "0.0.12", + "version": "0.0.13", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@wormhole-foundation/wormhole-query-sdk", - "version": "0.0.12", + "version": "0.0.13", "license": "Apache-2.0", "dependencies": { "@ethersproject/keccak256": "^5.7.0", diff --git a/sdk/js-query/package.json b/sdk/js-query/package.json index a354a9784a..93e07cc602 100644 --- a/sdk/js-query/package.json +++ b/sdk/js-query/package.json @@ -1,6 +1,6 @@ { "name": "@wormhole-foundation/wormhole-query-sdk", - "version": "0.0.12", + "version": "0.0.13", "description": "Wormhole cross-chain query SDK", "homepage": "https://wormhole.com", "main": "./lib/cjs/index.js", diff --git a/sdk/js-query/src/query/ethCall.test.ts b/sdk/js-query/src/query/ethCall.test.ts index 066b5fa678..310f5723c8 100644 --- a/sdk/js-query/src/query/ethCall.test.ts +++ b/sdk/js-query/src/query/ethCall.test.ts @@ -1,5 +1,5 @@ import { beforeAll, describe, expect, jest, test } from "@jest/globals"; -import axios, { AxiosResponse } from "axios"; +import axios, { AxiosError, AxiosResponse } from "axios"; import Web3, { ETH_DATA_FORMAT } from "web3"; import { ChainQueryType, @@ -18,6 +18,20 @@ import { jest.setTimeout(125000); +// Save Jest from circular axios errors +axios.interceptors.response.use( + (r) => r, + (err: AxiosError) => { + const error = new Error( + `${err.message}${err?.response?.data ? `: ${err.response.data}` : ""}` + ) as any; + error.response = err.response + ? { data: err.response.data, status: err.response.status } + : undefined; + throw error; + } +); + const CI = process.env.CI; const ENV = "DEVNET"; const ETH_NODE_URL = CI ? "http://eth-devnet:8545" : "http://localhost:8545"; @@ -893,4 +907,118 @@ describe("eth call", () => { ); } }); + test("allow anything", async () => { + const nameCallData = createTestEthCallData(WETH_ADDRESS, "name", "string"); + const decimalsCallData = createTestEthCallData( + WETH_ADDRESS, + "decimals", + "uint8" + ); + const blockNumber = await web3.eth.getBlockNumber(ETH_DATA_FORMAT); + const ethCall = new EthCallQueryRequest(blockNumber, [ + nameCallData, + decimalsCallData, + ]); + const chainId = 2; + const ethQuery = new PerChainQueryRequest(chainId, ethCall); + const nonce = 1; + const request = new QueryRequest(nonce, [ethQuery]); + const serialized = request.serialize(); + const digest = QueryRequest.digest(ENV, serialized); + const signature = sign(PRIVATE_KEY, digest); + const response = await axios.put( + QUERY_URL, + { + signature, + bytes: Buffer.from(serialized).toString("hex"), + }, + { headers: { "X-API-Key": "my_secret_key_3" } } + ); + expect(response.status).toBe(200); + + const queryResponse = QueryResponse.from(response.data.bytes); + expect(queryResponse.version).toEqual(1); + expect(queryResponse.requestChainId).toEqual(0); + expect(queryResponse.request.version).toEqual(1); + expect(queryResponse.request.requests.length).toEqual(1); + expect(queryResponse.request.requests[0].chainId).toEqual(2); + expect(queryResponse.request.requests[0].query.type()).toEqual( + ChainQueryType.EthCall + ); + + const ecr = queryResponse.responses[0].response as EthCallQueryResponse; + expect(ecr.blockNumber.toString()).toEqual(BigInt(blockNumber).toString()); + expect(ecr.blockHash).toEqual( + (await web3.eth.getBlock(BigInt(blockNumber))).hash + ); + expect(ecr.results.length).toEqual(2); + expect(ecr.results[0]).toEqual( + // Name + "0x0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000d5772617070656420457468657200000000000000000000000000000000000000" + ); + expect(ecr.results[1]).toEqual( + // Decimals + "0x0000000000000000000000000000000000000000000000000000000000000012" + ); + }); + test("rate limit exceeded", async () => { + const nameCallData = createTestEthCallData(WETH_ADDRESS, "name", "string"); + const decimalsCallData = createTestEthCallData( + WETH_ADDRESS, + "decimals", + "uint8" + ); + const blockNumber = await web3.eth.getBlockNumber(ETH_DATA_FORMAT); + const ethCall = new EthCallQueryRequest(blockNumber, [ + nameCallData, + decimalsCallData, + ]); + const chainId = 2; + for (let bigCount = 0; bigCount < 3; bigCount++) { + // We are allowed a burst of two, so these should work. + for (let count = 0; count < 2; count++) { + const ethQuery = new PerChainQueryRequest(chainId, ethCall); + const nonce = count + 1; + const request = new QueryRequest(nonce, [ethQuery]); + const serialized = request.serialize(); + const digest = QueryRequest.digest(ENV, serialized); + const signature = sign(PRIVATE_KEY, digest); + const response = await axios.put( + QUERY_URL, + { + signature, + bytes: Buffer.from(serialized).toString("hex"), + }, + { headers: { "X-API-Key": "rate_limited_key" } } + ); + expect(response.status).toBe(200); + } + // But the next one should fail with a 429. + const ethQuery = new PerChainQueryRequest(chainId, ethCall); + const nonce = 100; + const request = new QueryRequest(nonce, [ethQuery]); + const serialized = request.serialize(); + const digest = QueryRequest.digest(ENV, serialized); + const signature = sign(PRIVATE_KEY, digest); + let err = false; + await axios + .put( + QUERY_URL, + { + signature, + bytes: Buffer.from(serialized).toString("hex"), + }, + { headers: { "X-API-Key": "rate_limited_key" } } + ) + .catch(function (error) { + err = true; + expect(error.response.status).toBe(429); + expect(error.response.data).toBe("rate limit exceeded\n"); + }); + expect(err).toBe(true); + + // But after a sleep, we should be able to go again. + await sleep(2000); + } + }); }); diff --git a/sdk/js-query/src/query/solana.test.ts b/sdk/js-query/src/query/solana.test.ts index 51c474b57c..7ca2e19a3d 100644 --- a/sdk/js-query/src/query/solana.test.ts +++ b/sdk/js-query/src/query/solana.test.ts @@ -1,31 +1,36 @@ -import { - afterAll, - beforeAll, - describe, - expect, - jest, - test, -} from "@jest/globals"; -import Web3, { ETH_DATA_FORMAT } from "web3"; -import axios from "axios"; -import { AxiosResponse } from "axios"; +import { describe, expect, jest, test } from "@jest/globals"; +import axios, { AxiosError, AxiosResponse } from "axios"; import base58 from "bs58"; import { ChainQueryType, + PerChainQueryRequest, + QueryRequest, + QueryResponse, + sign, SolanaAccountQueryRequest, SolanaAccountQueryResponse, SolanaAccountResult, SolanaPdaEntry, SolanaPdaQueryRequest, SolanaPdaQueryResponse, - PerChainQueryRequest, - QueryRequest, - sign, - QueryResponse, } from ".."; jest.setTimeout(125000); +// Save Jest from circular axios errors +axios.interceptors.response.use( + (r) => r, + (err: AxiosError) => { + const error = new Error( + `${err.message}${err?.response?.data ? `: ${err.response.data}` : ""}` + ) as any; + error.response = err.response + ? { data: err.response.data, status: err.response.status } + : undefined; + throw error; + } +); + const CI = process.env.CI; const ENV = "DEVNET"; const SERVER_URL = CI ? "http://query-server:" : "http://localhost:"; @@ -161,7 +166,8 @@ describe("solana", () => { const solAccountResp2 = SolanaAccountQueryResponse.from(serialized); expect(solAccountResp2).toEqual(solAccountResp); }); - test("successful sol_account query", async () => { + // Skipping this test because queries without min context slot may not reach quorum in CI. + test.skip("successful sol_account query without min context slot", async () => { const solAccountReq = new SolanaAccountQueryRequest("finalized", ACCOUNTS); const nonce = 42; const query = new PerChainQueryRequest(1, solAccountReq); @@ -191,12 +197,14 @@ describe("solana", () => { const sar = queryResponse.responses[0] .response as SolanaAccountQueryResponse; - expect(Number(sar.slotNumber)).not.toEqual(0); - expect(Number(sar.blockTime)).not.toEqual(0); + expect(sar.slotNumber.toString()).not.toEqual(BigInt(0).toString()); + expect(sar.blockTime.toString()).not.toEqual(BigInt(0).toString()); expect(sar.results.length).toEqual(2); - expect(Number(sar.results[0].lamports)).toEqual(1461600); - expect(Number(sar.results[0].rentEpoch)).toEqual(0); + expect(sar.results[0].lamports.toString()).toEqual( + BigInt(1461600).toString() + ); + expect(sar.results[0].rentEpoch.toString()).toEqual(BigInt(0).toString()); expect(sar.results[0].executable).toEqual(false); expect(base58.encode(Buffer.from(sar.results[0].owner))).toEqual( "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA" @@ -205,8 +213,10 @@ describe("solana", () => { "01000000574108aed69daf7e625a361864b1f74d13702f2ca56de9660e566d1d8691848d0000e8890423c78a0901000000000000000000000000000000000000000000000000000000000000000000000000" ); - expect(Number(sar.results[1].lamports)).toEqual(1461600); - expect(Number(sar.results[1].rentEpoch)).toEqual(0); + expect(sar.results[0].lamports.toString()).toEqual( + BigInt(1461600).toString() + ); + expect(sar.results[0].rentEpoch.toString()).toEqual(BigInt(0).toString()); expect(sar.results[1].executable).toEqual(false); expect(base58.encode(Buffer.from(sar.results[1].owner))).toEqual( "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA" @@ -251,12 +261,14 @@ describe("solana", () => { const sar = queryResponse.responses[0] .response as SolanaAccountQueryResponse; - expect(sar.slotNumber).toEqual(minContextSlot); - expect(Number(sar.blockTime)).not.toEqual(0); + expect(sar.slotNumber.toString()).toEqual(minContextSlot.toString()); + expect(sar.blockTime.toString()).not.toEqual(BigInt(0).toString()); expect(sar.results.length).toEqual(2); - expect(Number(sar.results[0].lamports)).toEqual(1461600); - expect(Number(sar.results[0].rentEpoch)).toEqual(0); + expect(sar.results[0].lamports.toString()).toEqual( + BigInt(1461600).toString() + ); + expect(sar.results[0].rentEpoch.toString()).toEqual(BigInt(0).toString()); expect(sar.results[0].executable).toEqual(false); expect(base58.encode(Buffer.from(sar.results[0].owner))).toEqual( "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA" @@ -265,8 +277,10 @@ describe("solana", () => { "01000000574108aed69daf7e625a361864b1f74d13702f2ca56de9660e566d1d8691848d0000e8890423c78a0901000000000000000000000000000000000000000000000000000000000000000000000000" ); - expect(Number(sar.results[1].lamports)).toEqual(1461600); - expect(Number(sar.results[1].rentEpoch)).toEqual(0); + expect(sar.results[0].lamports.toString()).toEqual( + BigInt(1461600).toString() + ); + expect(sar.results[0].rentEpoch.toString()).toEqual(BigInt(0).toString()); expect(sar.results[1].executable).toEqual(false); expect(base58.encode(Buffer.from(sar.results[1].owner))).toEqual( "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA" @@ -283,9 +297,11 @@ describe("solana", () => { BigInt(12), BigInt(20) ); - expect(Number(solPdaReq.minContextSlot)).toEqual(123456); - expect(Number(solPdaReq.dataSliceOffset)).toEqual(12); - expect(Number(solPdaReq.dataSliceLength)).toEqual(20); + expect(solPdaReq.minContextSlot.toString()).toEqual( + BigInt(123456).toString() + ); + expect(solPdaReq.dataSliceOffset.toString()).toEqual(BigInt(12).toString()); + expect(solPdaReq.dataSliceLength.toString()).toEqual(BigInt(20).toString()); const serialized = solPdaReq.serialize(); expect(Buffer.from(serialized).toString("hex")).toEqual( "0000000966696e616c697a6564000000000001e240000000000000000c00000000000000140102c806312cbe5b79ef8aa6c17e3f423d8fdfe1d46909fb1f6cdf65ee8e2e6faa020000000b477561726469616e5365740000000400000000" @@ -311,16 +327,20 @@ describe("solana", () => { const sar = queryResponse.responses[0].response as SolanaPdaQueryResponse; - expect(Number(sar.slotNumber)).toEqual(2303); - expect(Number(sar.blockTime)).toEqual(0x0006115e3f6d7540); + expect(sar.slotNumber.toString()).toEqual(BigInt(2303).toString()); + expect(sar.blockTime.toString()).toEqual( + BigInt(0x0006115e3f6d7540).toString() + ); expect(sar.results.length).toEqual(1); expect(Buffer.from(sar.results[0].account).toString("hex")).toEqual( "4fa9188b339cfd573a0778c5deaeeee94d4bcfb12b345bf8e417e5119dae773e" ); expect(sar.results[0].bump).toEqual(253); - expect(Number(sar.results[0].lamports)).not.toEqual(0); - expect(Number(sar.results[0].rentEpoch)).toEqual(0); + expect(sar.results[0].lamports.toString()).not.toEqual( + BigInt(0).toString() + ); + expect(sar.results[0].rentEpoch.toString()).toEqual(BigInt(0).toString()); expect(sar.results[0].executable).toEqual(false); expect(Buffer.from(sar.results[0].owner).toString("hex")).toEqual( "02c806312cbe5b79ef8aa6c17e3f423d8fdfe1d46909fb1f6cdf65ee8e2e6faa" @@ -330,10 +350,12 @@ describe("solana", () => { ); }); test("successful sol_pda query", async () => { + const currSlot = await getSolanaSlot("finalized"); + const minContextSlot = BigInt(currSlot) + BigInt(10); const solPdaReq = new SolanaPdaQueryRequest( "finalized", PDAS, - BigInt(0), + minContextSlot, BigInt(12), BigInt(16) // After this, things can change. ); @@ -365,17 +387,18 @@ describe("solana", () => { const sar = queryResponse.responses[0].response as SolanaPdaQueryResponse; - expect(Number(sar.slotNumber)).not.toEqual(0); - expect(Number(sar.blockTime)).not.toEqual(0); + expect(sar.slotNumber.toString()).not.toEqual(BigInt(0).toString()); + expect(sar.blockTime.toString()).not.toEqual(BigInt(0).toString()); expect(sar.results.length).toEqual(1); expect(Buffer.from(sar.results[0].account).toString("hex")).toEqual( "4fa9188b339cfd573a0778c5deaeeee94d4bcfb12b345bf8e417e5119dae773e" ); expect(sar.results[0].bump).toEqual(253); - expect(Number(sar.results[0].lamports)).not.toEqual(0); - - expect(Number(sar.results[0].rentEpoch)).toEqual(0); + expect(sar.results[0].lamports.toString()).not.toEqual( + BigInt(0).toString() + ); + expect(sar.results[0].rentEpoch.toString()).toEqual(BigInt(0).toString()); expect(sar.results[0].executable).toEqual(false); expect(Buffer.from(sar.results[0].owner).toString("hex")).toEqual( "02c806312cbe5b79ef8aa6c17e3f423d8fdfe1d46909fb1f6cdf65ee8e2e6faa" @@ -421,16 +444,18 @@ describe("solana", () => { ); const sar = queryResponse.responses[0].response as SolanaPdaQueryResponse; - expect(sar.slotNumber).toEqual(minContextSlot); - expect(Number(sar.blockTime)).not.toEqual(0); + expect(sar.slotNumber.toString()).toEqual(minContextSlot.toString()); + expect(sar.blockTime.toString()).not.toEqual(BigInt(0).toString()); expect(sar.results.length).toEqual(1); expect(Buffer.from(sar.results[0].account).toString("hex")).toEqual( "4fa9188b339cfd573a0778c5deaeeee94d4bcfb12b345bf8e417e5119dae773e" ); expect(sar.results[0].bump).toEqual(253); - expect(Number(sar.results[0].lamports)).not.toEqual(0); - expect(Number(sar.results[0].rentEpoch)).toEqual(0); + expect(sar.results[0].lamports.toString()).not.toEqual( + BigInt(0).toString() + ); + expect(sar.results[0].rentEpoch.toString()).toEqual(BigInt(0).toString()); expect(sar.results[0].executable).toEqual(false); expect(Buffer.from(sar.results[0].owner).toString("hex")).toEqual( "02c806312cbe5b79ef8aa6c17e3f423d8fdfe1d46909fb1f6cdf65ee8e2e6faa" @@ -440,11 +465,18 @@ describe("solana", () => { ); }); test("concurrent queries", async () => { - const solAccountReq = new SolanaAccountQueryRequest("finalized", ACCOUNTS); + const currSlot = await getSolanaSlot("finalized"); + const minContextSlot = BigInt(currSlot) + BigInt(10); + const solAccountReq = new SolanaAccountQueryRequest( + "finalized", + ACCOUNTS, + minContextSlot + ); const query = new PerChainQueryRequest(1, solAccountReq); let nonce = 42; let promises: Promise>[] = []; - for (let count = 0; count < 20; count++) { + // The count should be no more than the number of workers defined for Solana in `node/pkg/query/query.go`. + for (let count = 0; count < 10; count++) { nonce += 1; const request = new QueryRequest(nonce, [query]); const serialized = request.serialize(); @@ -480,12 +512,14 @@ describe("solana", () => { const sar = queryResponse.responses[0] .response as SolanaAccountQueryResponse; - expect(Number(sar.slotNumber)).not.toEqual(0); - expect(Number(sar.blockTime)).not.toEqual(0); + expect(sar.slotNumber.toString()).not.toEqual(BigInt(0).toString()); + expect(sar.blockTime.toString()).not.toEqual(BigInt(0).toString()); expect(sar.results.length).toEqual(2); - expect(Number(sar.results[0].lamports)).toEqual(1461600); - expect(Number(sar.results[0].rentEpoch)).toEqual(0); + expect(sar.results[0].lamports.toString()).toEqual( + BigInt(1461600).toString() + ); + expect(sar.results[0].rentEpoch.toString()).toEqual(BigInt(0).toString()); expect(sar.results[0].executable).toEqual(false); expect(base58.encode(Buffer.from(sar.results[0].owner))).toEqual( "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA" @@ -494,8 +528,10 @@ describe("solana", () => { "01000000574108aed69daf7e625a361864b1f74d13702f2ca56de9660e566d1d8691848d0000e8890423c78a0901000000000000000000000000000000000000000000000000000000000000000000000000" ); - expect(Number(sar.results[1].lamports)).toEqual(1461600); - expect(Number(sar.results[1].rentEpoch)).toEqual(0); + expect(sar.results[0].lamports.toString()).toEqual( + BigInt(1461600).toString() + ); + expect(sar.results[0].rentEpoch.toString()).toEqual(BigInt(0).toString()); expect(sar.results[1].executable).toEqual(false); expect(base58.encode(Buffer.from(sar.results[1].owner))).toEqual( "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA" @@ -505,4 +541,126 @@ describe("solana", () => { ); } }); + test("sol_account query with allow anything", async () => { + const currSlot = await getSolanaSlot("finalized"); + const minContextSlot = BigInt(currSlot) + BigInt(10); + const solAccountReq = new SolanaAccountQueryRequest( + "finalized", + ACCOUNTS, + minContextSlot + ); + const nonce = 42; + const query = new PerChainQueryRequest(1, solAccountReq); + const request = new QueryRequest(nonce, [query]); + const serialized = request.serialize(); + const digest = QueryRequest.digest(ENV, serialized); + const signature = sign(PRIVATE_KEY, digest); + const response = await axios.put( + QUERY_URL, + { + signature, + bytes: Buffer.from(serialized).toString("hex"), + }, + { headers: { "X-API-Key": "my_secret_key_3" } } + ); + expect(response.status).toBe(200); + + const queryResponse = QueryResponse.from(response.data.bytes); + expect(queryResponse.version).toEqual(1); + expect(queryResponse.requestChainId).toEqual(0); + expect(queryResponse.request.version).toEqual(1); + expect(queryResponse.request.requests.length).toEqual(1); + expect(queryResponse.request.requests[0].chainId).toEqual(1); + expect(queryResponse.request.requests[0].query.type()).toEqual( + ChainQueryType.SolanaAccount + ); + + const sar = queryResponse.responses[0] + .response as SolanaAccountQueryResponse; + expect(sar.slotNumber.toString()).not.toEqual(BigInt(0).toString()); + expect(sar.blockTime.toString()).not.toEqual(BigInt(0).toString()); + expect(sar.results.length).toEqual(2); + + expect(sar.results[0].lamports.toString()).toEqual( + BigInt(1461600).toString() + ); + expect(sar.results[0].rentEpoch.toString()).toEqual(BigInt(0).toString()); + expect(sar.results[0].executable).toEqual(false); + expect(base58.encode(Buffer.from(sar.results[0].owner))).toEqual( + "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA" + ); + expect(Buffer.from(sar.results[0].data).toString("hex")).toEqual( + "01000000574108aed69daf7e625a361864b1f74d13702f2ca56de9660e566d1d8691848d0000e8890423c78a0901000000000000000000000000000000000000000000000000000000000000000000000000" + ); + + expect(sar.results[0].lamports.toString()).toEqual( + BigInt(1461600).toString() + ); + expect(sar.results[0].rentEpoch.toString()).toEqual(BigInt(0).toString()); + expect(sar.results[1].executable).toEqual(false); + expect(base58.encode(Buffer.from(sar.results[1].owner))).toEqual( + "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA" + ); + expect(Buffer.from(sar.results[1].data).toString("hex")).toEqual( + "01000000574108aed69daf7e625a361864b1f74d13702f2ca56de9660e566d1d8691848d01000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000" + ); + }); + test("sol_pda query with allow anything", async () => { + const currSlot = await getSolanaSlot("finalized"); + const minContextSlot = BigInt(currSlot) + BigInt(10); + const solPdaReq = new SolanaPdaQueryRequest( + "finalized", + PDAS, + minContextSlot, + BigInt(12), + BigInt(16) // After this, things can change. + ); + const nonce = 43; + const query = new PerChainQueryRequest(1, solPdaReq); + const request = new QueryRequest(nonce, [query]); + const serialized = request.serialize(); + const digest = QueryRequest.digest(ENV, serialized); + const signature = sign(PRIVATE_KEY, digest); + const response = await axios.put( + QUERY_URL, + { + signature, + bytes: Buffer.from(serialized).toString("hex"), + }, + { headers: { "X-API-Key": "my_secret_key_3" } } + ); + expect(response.status).toBe(200); + + const queryResponse = QueryResponse.from(response.data.bytes); + expect(queryResponse.version).toEqual(1); + expect(queryResponse.requestChainId).toEqual(0); + expect(queryResponse.request.version).toEqual(1); + expect(queryResponse.request.requests.length).toEqual(1); + expect(queryResponse.request.requests[0].chainId).toEqual(1); + expect(queryResponse.request.requests[0].query.type()).toEqual( + ChainQueryType.SolanaPda + ); + + const sar = queryResponse.responses[0].response as SolanaPdaQueryResponse; + + expect(sar.slotNumber.toString()).not.toEqual(BigInt(0).toString()); + expect(sar.blockTime.toString()).not.toEqual(BigInt(0).toString()); + expect(sar.results.length).toEqual(1); + + expect(Buffer.from(sar.results[0].account).toString("hex")).toEqual( + "4fa9188b339cfd573a0778c5deaeeee94d4bcfb12b345bf8e417e5119dae773e" + ); + expect(sar.results[0].bump).toEqual(253); + expect(sar.results[0].lamports.toString()).not.toEqual( + BigInt(0).toString() + ); + expect(sar.results[0].rentEpoch.toString()).toEqual(BigInt(0).toString()); + expect(sar.results[0].executable).toEqual(false); + expect(Buffer.from(sar.results[0].owner).toString("hex")).toEqual( + "02c806312cbe5b79ef8aa6c17e3f423d8fdfe1d46909fb1f6cdf65ee8e2e6faa" + ); + expect(Buffer.from(sar.results[0].data).toString("hex")).toEqual( + "57cd18b7f8a4d91a2da9ab4af05d0fbe" + ); + }); }); diff --git a/sdk/js-query/src/query/utils.ts b/sdk/js-query/src/query/utils.ts index 61d72f3703..36df0cfa81 100644 --- a/sdk/js-query/src/query/utils.ts +++ b/sdk/js-query/src/query/utils.ts @@ -33,6 +33,16 @@ export function signaturesToEvmStruct(signatures: string[]) { })); } +// GuardianSetSig expects the guardian index before the signature, the inverse of what the Query Proxy returns. +// https://docs.rs/wormhole-raw-vaas/0.3.0-alpha.1/src/wormhole_raw_vaas/protocol.rs.html#220 +// https://github.com/wormhole-foundation/wormhole/blob/31b01629087c610c12fa8e84069786139dc0b6bd/node/cmd/ccq/http.go#L191 +export function signaturesToSolanaArray(signatures: string[]) { + return signatures.map((s) => [ + ...Buffer.from(s.substring(130, 132), "hex"), + ...Buffer.from(s.substring(0, 130), "hex"), + ]); +} + /** * @param key Private key used to sign `data` * @param data Data for signing diff --git a/sdk/js/CHANGELOG.md b/sdk/js/CHANGELOG.md index bea24c9dc0..f4343c438c 100644 --- a/sdk/js/CHANGELOG.md +++ b/sdk/js/CHANGELOG.md @@ -1,5 +1,10 @@ # Changelog +## 0.10.18 + +Add Snaxchain testnet support +Add Mantle and X Layer + ## 0.10.17 Add Mantle mainnet support diff --git a/sdk/js/package-lock.json b/sdk/js/package-lock.json index af34398a32..b4e2ed1282 100644 --- a/sdk/js/package-lock.json +++ b/sdk/js/package-lock.json @@ -1,12 +1,12 @@ { "name": "@certusone/wormhole-sdk", - "version": "0.10.11", + "version": "0.10.18", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@certusone/wormhole-sdk", - "version": "0.10.11", + "version": "0.10.18", "license": "Apache-2.0", "dependencies": { "@certusone/wormhole-sdk-proto-web": "0.0.7", @@ -26,6 +26,7 @@ "bs58": "^4.0.1", "elliptic": "^6.5.4", "js-base64": "^3.6.1", + "js-sha3": "0.8.0", "near-api-js": "^1.0.0" }, "devDependencies": { @@ -44,7 +45,6 @@ "ethers": "^5.6.8", "jest": "^27.3.1", "prettier": "^2.3.2", - "truffle": "^5.7.2", "ts-jest": "^27.0.7", "tslint": "^6.1.3", "tslint-config-prettier": "^1.18.0", @@ -131,183 +131,6 @@ "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", "optional": true }, - "node_modules/@apollo/protobufjs": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/@apollo/protobufjs/-/protobufjs-1.2.7.tgz", - "integrity": "sha512-Lahx5zntHPZia35myYDBRuF58tlwPskwHc5CWBZC/4bMKB6siTBWwtMrkqXcsNwQiFSzSx5hKdRPUmemrEp3Gg==", - "dev": true, - "hasInstallScript": true, - "optional": true, - "dependencies": { - "@protobufjs/aspromise": "^1.1.2", - "@protobufjs/base64": "^1.1.2", - "@protobufjs/codegen": "^2.0.4", - "@protobufjs/eventemitter": "^1.1.0", - "@protobufjs/fetch": "^1.1.0", - "@protobufjs/float": "^1.0.2", - "@protobufjs/inquire": "^1.1.0", - "@protobufjs/path": "^1.1.2", - "@protobufjs/pool": "^1.1.0", - "@protobufjs/utf8": "^1.1.0", - "@types/long": "^4.0.0", - "long": "^4.0.0" - }, - "bin": { - "apollo-pbjs": "bin/pbjs", - "apollo-pbts": "bin/pbts" - } - }, - "node_modules/@apollo/usage-reporting-protobuf": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/@apollo/usage-reporting-protobuf/-/usage-reporting-protobuf-4.0.2.tgz", - "integrity": "sha512-GfE8aDqi/lAFut95pjH9IRvH0zGsQ5G/2lYL0ZLZfML7ArX+A4UVHFANQcPCcUYGE6bI6OPhLekg4Vsjf6B1cw==", - "dev": true, - "optional": true, - "dependencies": { - "@apollo/protobufjs": "1.2.7" - } - }, - "node_modules/@apollo/utils.dropunuseddefinitions": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@apollo/utils.dropunuseddefinitions/-/utils.dropunuseddefinitions-1.1.0.tgz", - "integrity": "sha512-jU1XjMr6ec9pPoL+BFWzEPW7VHHulVdGKMkPAMiCigpVIT11VmCbnij0bWob8uS3ODJ65tZLYKAh/55vLw2rbg==", - "dev": true, - "optional": true, - "engines": { - "node": ">=12.13.0" - }, - "peerDependencies": { - "graphql": "14.x || 15.x || 16.x" - } - }, - "node_modules/@apollo/utils.keyvaluecache": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@apollo/utils.keyvaluecache/-/utils.keyvaluecache-1.0.2.tgz", - "integrity": "sha512-p7PVdLPMnPzmXSQVEsy27cYEjVON+SH/Wb7COyW3rQN8+wJgT1nv9jZouYtztWW8ZgTkii5T6tC9qfoDREd4mg==", - "dev": true, - "optional": true, - "dependencies": { - "@apollo/utils.logger": "^1.0.0", - "lru-cache": "7.10.1 - 7.13.1" - } - }, - "node_modules/@apollo/utils.keyvaluecache/node_modules/lru-cache": { - "version": "7.13.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.13.1.tgz", - "integrity": "sha512-CHqbAq7NFlW3RSnoWXLJBxCWaZVBrfa9UEHId2M3AW8iEBurbqduNexEUCGc3SHc6iCYXNJCDi903LajSVAEPQ==", - "dev": true, - "optional": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/@apollo/utils.logger": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@apollo/utils.logger/-/utils.logger-1.0.1.tgz", - "integrity": "sha512-XdlzoY7fYNK4OIcvMD2G94RoFZbzTQaNP0jozmqqMudmaGo2I/2Jx71xlDJ801mWA/mbYRihyaw6KJii7k5RVA==", - "dev": true, - "optional": true - }, - "node_modules/@apollo/utils.printwithreducedwhitespace": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@apollo/utils.printwithreducedwhitespace/-/utils.printwithreducedwhitespace-1.1.0.tgz", - "integrity": "sha512-GfFSkAv3n1toDZ4V6u2d7L4xMwLA+lv+6hqXicMN9KELSJ9yy9RzuEXaX73c/Ry+GzRsBy/fdSUGayGqdHfT2Q==", - "dev": true, - "optional": true, - "engines": { - "node": ">=12.13.0" - }, - "peerDependencies": { - "graphql": "14.x || 15.x || 16.x" - } - }, - "node_modules/@apollo/utils.removealiases": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@apollo/utils.removealiases/-/utils.removealiases-1.0.0.tgz", - "integrity": "sha512-6cM8sEOJW2LaGjL/0vHV0GtRaSekrPQR4DiywaApQlL9EdROASZU5PsQibe2MWeZCOhNrPRuHh4wDMwPsWTn8A==", - "dev": true, - "optional": true, - "engines": { - "node": ">=12.13.0" - }, - "peerDependencies": { - "graphql": "14.x || 15.x || 16.x" - } - }, - "node_modules/@apollo/utils.sortast": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@apollo/utils.sortast/-/utils.sortast-1.1.0.tgz", - "integrity": "sha512-VPlTsmUnOwzPK5yGZENN069y6uUHgeiSlpEhRnLFYwYNoJHsuJq2vXVwIaSmts015WTPa2fpz1inkLYByeuRQA==", - "dev": true, - "optional": true, - "dependencies": { - "lodash.sortby": "^4.7.0" - }, - "engines": { - "node": ">=12.13.0" - }, - "peerDependencies": { - "graphql": "14.x || 15.x || 16.x" - } - }, - "node_modules/@apollo/utils.stripsensitiveliterals": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@apollo/utils.stripsensitiveliterals/-/utils.stripsensitiveliterals-1.2.0.tgz", - "integrity": "sha512-E41rDUzkz/cdikM5147d8nfCFVKovXxKBcjvLEQ7bjZm/cg9zEcXvS6vFY8ugTubI3fn6zoqo0CyU8zT+BGP9w==", - "dev": true, - "optional": true, - "engines": { - "node": ">=12.13.0" - }, - "peerDependencies": { - "graphql": "14.x || 15.x || 16.x" - } - }, - "node_modules/@apollo/utils.usagereporting": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@apollo/utils.usagereporting/-/utils.usagereporting-1.0.1.tgz", - "integrity": "sha512-6dk+0hZlnDbahDBB2mP/PZ5ybrtCJdLMbeNJD+TJpKyZmSY6bA3SjI8Cr2EM9QA+AdziywuWg+SgbWUF3/zQqQ==", - "dev": true, - "optional": true, - "dependencies": { - "@apollo/usage-reporting-protobuf": "^4.0.0", - "@apollo/utils.dropunuseddefinitions": "^1.1.0", - "@apollo/utils.printwithreducedwhitespace": "^1.1.0", - "@apollo/utils.removealiases": "1.0.0", - "@apollo/utils.sortast": "^1.1.0", - "@apollo/utils.stripsensitiveliterals": "^1.2.0" - }, - "engines": { - "node": ">=12.13.0" - }, - "peerDependencies": { - "graphql": "14.x || 15.x || 16.x" - } - }, - "node_modules/@apollographql/apollo-tools": { - "version": "0.5.4", - "resolved": "https://registry.npmjs.org/@apollographql/apollo-tools/-/apollo-tools-0.5.4.tgz", - "integrity": "sha512-shM3q7rUbNyXVVRkQJQseXv6bnYM3BUma/eZhwXR4xsuM+bqWnJKvW7SAfRjP7LuSCocrexa5AXhjjawNHrIlw==", - "dev": true, - "optional": true, - "engines": { - "node": ">=8", - "npm": ">=6" - }, - "peerDependencies": { - "graphql": "^14.2.1 || ^15.0.0 || ^16.0.0" - } - }, - "node_modules/@apollographql/graphql-playground-html": { - "version": "1.6.29", - "resolved": "https://registry.npmjs.org/@apollographql/graphql-playground-html/-/graphql-playground-html-1.6.29.tgz", - "integrity": "sha512-xCcXpoz52rI4ksJSdOCxeOCn2DLocxwHf9dVT/Q90Pte1LX+LY+91SFtJF3KXVHH8kEin+g1KKCQPKBjZJfWNA==", - "dev": true, - "optional": true, - "dependencies": { - "xss": "^1.0.8" - } - }, "node_modules/@babel/code-frame": { "version": "7.16.0", "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.0.tgz", @@ -1874,194 +1697,6 @@ "@ethersproject/strings": "^5.7.0" } }, - "node_modules/@graphql-tools/batch-execute": { - "version": "8.5.1", - "resolved": "https://registry.npmjs.org/@graphql-tools/batch-execute/-/batch-execute-8.5.1.tgz", - "integrity": "sha512-hRVDduX0UDEneVyEWtc2nu5H2PxpfSfM/riUlgZvo/a/nG475uyehxR5cFGvTEPEQUKY3vGIlqvtRigzqTfCew==", - "dev": true, - "optional": true, - "dependencies": { - "@graphql-tools/utils": "8.9.0", - "dataloader": "2.1.0", - "tslib": "^2.4.0", - "value-or-promise": "1.0.11" - }, - "peerDependencies": { - "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" - } - }, - "node_modules/@graphql-tools/batch-execute/node_modules/tslib": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz", - "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==", - "dev": true, - "optional": true - }, - "node_modules/@graphql-tools/delegate": { - "version": "8.8.1", - "resolved": "https://registry.npmjs.org/@graphql-tools/delegate/-/delegate-8.8.1.tgz", - "integrity": "sha512-NDcg3GEQmdEHlnF7QS8b4lM1PSF+DKeFcIlLEfZFBvVq84791UtJcDj8734sIHLukmyuAxXMfA1qLd2l4lZqzA==", - "dev": true, - "optional": true, - "dependencies": { - "@graphql-tools/batch-execute": "8.5.1", - "@graphql-tools/schema": "8.5.1", - "@graphql-tools/utils": "8.9.0", - "dataloader": "2.1.0", - "tslib": "~2.4.0", - "value-or-promise": "1.0.11" - }, - "peerDependencies": { - "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" - } - }, - "node_modules/@graphql-tools/delegate/node_modules/tslib": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz", - "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==", - "dev": true, - "optional": true - }, - "node_modules/@graphql-tools/merge": { - "version": "8.3.1", - "resolved": "https://registry.npmjs.org/@graphql-tools/merge/-/merge-8.3.1.tgz", - "integrity": "sha512-BMm99mqdNZbEYeTPK3it9r9S6rsZsQKtlqJsSBknAclXq2pGEfOxjcIZi+kBSkHZKPKCRrYDd5vY0+rUmIHVLg==", - "dev": true, - "optional": true, - "dependencies": { - "@graphql-tools/utils": "8.9.0", - "tslib": "^2.4.0" - }, - "peerDependencies": { - "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" - } - }, - "node_modules/@graphql-tools/merge/node_modules/tslib": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz", - "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==", - "dev": true, - "optional": true - }, - "node_modules/@graphql-tools/mock": { - "version": "8.7.15", - "resolved": "https://registry.npmjs.org/@graphql-tools/mock/-/mock-8.7.15.tgz", - "integrity": "sha512-0zImG5tuObhowqtijlB6TMAIVtCIBsnGGwNW8gnCOa+xZAqfGdUMsSma17tHC2XuI7xhv7A0O8pika9e3APLUg==", - "dev": true, - "optional": true, - "dependencies": { - "@graphql-tools/schema": "9.0.13", - "@graphql-tools/utils": "9.1.4", - "fast-json-stable-stringify": "^2.1.0", - "tslib": "^2.4.0" - }, - "peerDependencies": { - "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" - } - }, - "node_modules/@graphql-tools/mock/node_modules/@graphql-tools/merge": { - "version": "8.3.15", - "resolved": "https://registry.npmjs.org/@graphql-tools/merge/-/merge-8.3.15.tgz", - "integrity": "sha512-hYYOlsqkUlL6oOo7zzuk6hIv7xQzy+x21sgK84d5FWaiWYkLYh9As8myuDd9SD5xovWWQ9m/iRhIOVDEMSyEKA==", - "dev": true, - "optional": true, - "dependencies": { - "@graphql-tools/utils": "9.1.4", - "tslib": "^2.4.0" - }, - "peerDependencies": { - "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" - } - }, - "node_modules/@graphql-tools/mock/node_modules/@graphql-tools/schema": { - "version": "9.0.13", - "resolved": "https://registry.npmjs.org/@graphql-tools/schema/-/schema-9.0.13.tgz", - "integrity": "sha512-guRA3fwAtv+M1Kh930P4ydH9aKJTWscIkhVFcWpj/cnjYYxj88jkEJ15ZNiJX/2breNY+sbVgmlgLKb6aXi/Jg==", - "dev": true, - "optional": true, - "dependencies": { - "@graphql-tools/merge": "8.3.15", - "@graphql-tools/utils": "9.1.4", - "tslib": "^2.4.0", - "value-or-promise": "1.0.12" - }, - "peerDependencies": { - "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" - } - }, - "node_modules/@graphql-tools/mock/node_modules/@graphql-tools/utils": { - "version": "9.1.4", - "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-9.1.4.tgz", - "integrity": "sha512-hgIeLt95h9nQgQuzbbdhuZmh+8WV7RZ/6GbTj6t3IU4Zd2zs9yYJ2jgW/krO587GMOY8zCwrjNOMzD40u3l7Vg==", - "dev": true, - "optional": true, - "dependencies": { - "tslib": "^2.4.0" - }, - "peerDependencies": { - "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" - } - }, - "node_modules/@graphql-tools/mock/node_modules/tslib": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz", - "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==", - "dev": true, - "optional": true - }, - "node_modules/@graphql-tools/mock/node_modules/value-or-promise": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/value-or-promise/-/value-or-promise-1.0.12.tgz", - "integrity": "sha512-Z6Uz+TYwEqE7ZN50gwn+1LCVo9ZVrpxRPOhOLnncYkY1ZzOYtrX8Fwf/rFktZ8R5mJms6EZf5TqNOMeZmnPq9Q==", - "dev": true, - "optional": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/@graphql-tools/schema": { - "version": "8.5.1", - "resolved": "https://registry.npmjs.org/@graphql-tools/schema/-/schema-8.5.1.tgz", - "integrity": "sha512-0Esilsh0P/qYcB5DKQpiKeQs/jevzIadNTaT0jeWklPMwNbT7yMX4EqZany7mbeRRlSRwMzNzL5olyFdffHBZg==", - "dev": true, - "optional": true, - "dependencies": { - "@graphql-tools/merge": "8.3.1", - "@graphql-tools/utils": "8.9.0", - "tslib": "^2.4.0", - "value-or-promise": "1.0.11" - }, - "peerDependencies": { - "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" - } - }, - "node_modules/@graphql-tools/schema/node_modules/tslib": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz", - "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==", - "dev": true, - "optional": true - }, - "node_modules/@graphql-tools/utils": { - "version": "8.9.0", - "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-8.9.0.tgz", - "integrity": "sha512-pjJIWH0XOVnYGXCqej8g/u/tsfV4LvLlj0eATKQu5zwnxd/TiTHq7Cg313qUPTFFHZ3PP5wJ15chYVtLDwaymg==", - "dev": true, - "optional": true, - "dependencies": { - "tslib": "^2.4.0" - }, - "peerDependencies": { - "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" - } - }, - "node_modules/@graphql-tools/utils/node_modules/tslib": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz", - "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==", - "dev": true, - "optional": true - }, "node_modules/@graphql-typed-document-node/core": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/@graphql-typed-document-node/core/-/core-3.1.1.tgz", @@ -3068,13 +2703,6 @@ "node": ">=8" } }, - "node_modules/@josephg/resolvable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@josephg/resolvable/-/resolvable-1.0.1.tgz", - "integrity": "sha512-CtzORUwWTTOTqfVtHaKRJ0I1kNQd1bpn3sUh8I3nJDVY+5/M/Oe1DnEWzPQvqq/xPIIkzzzIP7mfCoAjFRvDhg==", - "dev": true, - "optional": true - }, "node_modules/@metamask/eth-sig-util": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/@metamask/eth-sig-util/-/eth-sig-util-4.0.1.tgz", @@ -3383,72 +3011,6 @@ "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", "integrity": "sha1-p3c2C1s5oaLlEG+OhY8v0tBgxXA=" }, - "node_modules/@redux-saga/core": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@redux-saga/core/-/core-1.2.2.tgz", - "integrity": "sha512-0qr5oleOAmI5WoZLRA6FEa30M4qKZcvx+ZQOQw+RqFeH8t20bvhE329XSPsNfTVP8C6qyDsXOSjuoV+g3+8zkg==", - "dev": true, - "dependencies": { - "@babel/runtime": "^7.6.3", - "@redux-saga/deferred": "^1.2.1", - "@redux-saga/delay-p": "^1.2.1", - "@redux-saga/is": "^1.1.3", - "@redux-saga/symbols": "^1.1.3", - "@redux-saga/types": "^1.2.1", - "redux": "^4.0.4", - "typescript-tuple": "^2.2.1" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/redux-saga" - } - }, - "node_modules/@redux-saga/core/node_modules/redux": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/redux/-/redux-4.2.0.tgz", - "integrity": "sha512-oSBmcKKIuIR4ME29/AeNUnl5L+hvBq7OaJWzaptTQJAntaPvxIJqfnjbaEiCzzaIz+XmVILfqAM3Ob0aXLPfjA==", - "dev": true, - "dependencies": { - "@babel/runtime": "^7.9.2" - } - }, - "node_modules/@redux-saga/deferred": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@redux-saga/deferred/-/deferred-1.2.1.tgz", - "integrity": "sha512-cmin3IuuzMdfQjA0lG4B+jX+9HdTgHZZ+6u3jRAOwGUxy77GSlTi4Qp2d6PM1PUoTmQUR5aijlA39scWWPF31g==", - "dev": true - }, - "node_modules/@redux-saga/delay-p": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@redux-saga/delay-p/-/delay-p-1.2.1.tgz", - "integrity": "sha512-MdiDxZdvb1m+Y0s4/hgdcAXntpUytr9g0hpcOO1XFVyyzkrDu3SKPgBFOtHn7lhu7n24ZKIAT1qtKyQjHqRd+w==", - "dev": true, - "dependencies": { - "@redux-saga/symbols": "^1.1.3" - } - }, - "node_modules/@redux-saga/is": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@redux-saga/is/-/is-1.1.3.tgz", - "integrity": "sha512-naXrkETG1jLRfVfhOx/ZdLj0EyAzHYbgJWkXbB3qFliPcHKiWbv/ULQryOAEKyjrhiclmr6AMdgsXFyx7/yE6Q==", - "dev": true, - "dependencies": { - "@redux-saga/symbols": "^1.1.3", - "@redux-saga/types": "^1.2.1" - } - }, - "node_modules/@redux-saga/symbols": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@redux-saga/symbols/-/symbols-1.1.3.tgz", - "integrity": "sha512-hCx6ZvU4QAEUojETnX8EVg4ubNLBFl1Lps4j2tX7o45x/2qg37m3c6v+kSp8xjDJY+2tJw4QB3j8o8dsl1FDXg==", - "dev": true - }, - "node_modules/@redux-saga/types": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@redux-saga/types/-/types-1.2.1.tgz", - "integrity": "sha512-1dgmkh+3so0+LlBWRhGA33ua4MYr7tUOj+a9Si28vUi0IUFNbff1T3sgpeDJI/LaC75bBYnQ0A3wXjn0OrRNBA==", - "dev": true - }, "node_modules/@scure/base": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/@scure/base/-/base-1.1.1.tgz", @@ -3747,649 +3309,486 @@ "node": ">= 6" } }, - "node_modules/@truffle/abi-utils": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/@truffle/abi-utils/-/abi-utils-0.3.6.tgz", - "integrity": "sha512-61aTH2QmwVA1INaPMufRHTsS6jsEhS+GCkuCDdvBDmwctSnCKGDOr185BGt65QrpMRxYmIoH6WFBSNMYxW9GRw==", + "node_modules/@typechain/ethers-v5": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/@typechain/ethers-v5/-/ethers-v5-7.0.1.tgz", + "integrity": "sha512-mXEJ7LG0pOYO+MRPkHtbf30Ey9X2KAsU0wkeoVvjQIn7iAY6tB3k3s+82bbmJAUMyENbQ04RDOZit36CgSG6Gg==", "dev": true, - "dependencies": { - "change-case": "3.0.2", - "fast-check": "3.1.1", - "web3-utils": "1.8.1" + "license": "MIT", + "peerDependencies": { + "@ethersproject/abi": "^5.0.0", + "@ethersproject/bytes": "^5.0.0", + "@ethersproject/providers": "^5.0.0", + "ethers": "^5.1.3", + "typechain": "^5.0.0", + "typescript": ">=4.0.0" } }, - "node_modules/@truffle/code-utils": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@truffle/code-utils/-/code-utils-3.0.1.tgz", - "integrity": "sha512-6cv318jVAvEvg7u7jFq1G6P6K1CMXKNG2btg2qgpmsTQURp4KrqeVrrZegYgx9l4hocpNZ8UAYc9Qw5ATrDg4g==", - "dev": true, - "dependencies": { - "cbor": "^5.2.0" - } - }, - "node_modules/@truffle/codec": { - "version": "0.14.12", - "resolved": "https://registry.npmjs.org/@truffle/codec/-/codec-0.14.12.tgz", - "integrity": "sha512-0RIUoZQiGqNNp0zogeoCLoFoKSY65ih129rjrDqyv7Yy+IIpKgdOk8zZqg2sWIt7ukQFjZmAOwPznhYNGg/eKA==", + "node_modules/@types/babel__core": { + "version": "7.1.16", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.16.tgz", + "integrity": "sha512-EAEHtisTMM+KaKwfWdC3oyllIqswlznXCIVCt7/oRNrh+DhgT4UEBNC/jlADNjvw7UnfbcdkGQcPVZ1xYiLcrQ==", "dev": true, "dependencies": { - "@truffle/abi-utils": "^0.3.6", - "@truffle/compile-common": "^0.9.2", - "big.js": "^6.0.3", - "bn.js": "^5.1.3", - "cbor": "^5.2.0", - "debug": "^4.3.1", - "lodash": "^4.17.21", - "semver": "7.3.7", - "utf8": "^3.0.0", - "web3-utils": "1.8.1" + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" } }, - "node_modules/@truffle/codec/node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "node_modules/@types/babel__generator": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.3.tgz", + "integrity": "sha512-/GWCmzJWqV7diQW54smJZzWbSFf4QYtF71WCKhcx6Ru/tFyQIY2eiiITcCAeuPbNSvT9YCGkVMqqvSk2Z0mXiA==", "dev": true, "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } + "@babel/types": "^7.0.0" } }, - "node_modules/@truffle/codec/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "node_modules/@truffle/codec/node_modules/semver": { - "version": "7.3.7", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", - "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "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": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" } }, - "node_modules/@truffle/compile-common": { - "version": "0.9.2", - "resolved": "https://registry.npmjs.org/@truffle/compile-common/-/compile-common-0.9.2.tgz", - "integrity": "sha512-n7MF/4/dntccj44RGe3PRMD8Vk46PU8dJtzd1VLAfgokK2Y2N+SjAzDskBnmAydZVWAM315nZIUQsgnY8xoATw==", + "node_modules/@types/babel__traverse": { + "version": "7.14.2", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.14.2.tgz", + "integrity": "sha512-K2waXdXBi2302XUdcHcR1jCeU0LL4TD9HRs/gk0N2Xvrht+G/BfJa4QObBQZfhMdxiCpV3COl5Nfq4uKTeTnJA==", "dev": true, "dependencies": { - "@truffle/error": "^0.2.0", - "colors": "1.4.0" + "@babel/types": "^7.3.0" } }, - "node_modules/@truffle/config": { - "version": "1.3.48", - "resolved": "https://registry.npmjs.org/@truffle/config/-/config-1.3.48.tgz", - "integrity": "sha512-Q+Tw9+HLcFJEReTL0x408Qb08hh1qwGnnwGm+Xd5xmg1HWAFOEE0k4Sm553goqqKhwzDgtYb0YddJ61zTardJw==", - "dev": true, - "optional": true, + "node_modules/@types/bn.js": { + "version": "4.11.6", + "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-4.11.6.tgz", + "integrity": "sha512-pqr857jrp2kPuO9uRjZ3PwnJTjoQy+fcdxvBTvHm6dkmEL9q+hDD/2j/0ELOBPtPnS8LjCX0gI9nbl8lVkadpg==", + "devOptional": true, "dependencies": { - "@truffle/error": "^0.2.0", - "@truffle/events": "^0.1.20", - "@truffle/provider": "^0.3.2", - "conf": "^10.1.2", - "debug": "^4.3.1", - "find-up": "^2.1.0", - "lodash": "^4.17.21", - "original-require": "^1.0.1" + "@types/node": "*" } }, - "node_modules/@truffle/config/node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "node_modules/@types/bs58": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@types/bs58/-/bs58-4.0.1.tgz", + "integrity": "sha512-yfAgiWgVLjFCmRv8zAcOIHywYATEwiTVccTLnRp6UxTNavT55M9d/uhK3T03St/+8/z/wW+CRjGKUNmEqoHHCA==", "dev": true, - "optional": true, "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } + "base-x": "^3.0.6" } }, - "node_modules/@truffle/config/node_modules/find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ==", + "node_modules/@types/cacheable-request": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/@types/cacheable-request/-/cacheable-request-6.0.3.tgz", + "integrity": "sha512-IQ3EbTzGxIigb1I3qPZc1rWJnH0BmSKv5QYTalEwweFvyBDLSAe24zP0le/hyi7ecGfZVlIVAg4BZqb8WBwKqw==", "dev": true, - "optional": true, "dependencies": { - "locate-path": "^2.0.0" - }, - "engines": { - "node": ">=4" + "@types/http-cache-semantics": "*", + "@types/keyv": "^3.1.4", + "@types/node": "*", + "@types/responselike": "^1.0.0" } }, - "node_modules/@truffle/config/node_modules/locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA==", - "dev": true, - "optional": true, + "node_modules/@types/connect": { + "version": "3.4.35", + "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz", + "integrity": "sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==", "dependencies": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - }, - "engines": { - "node": ">=4" + "@types/node": "*" } }, - "node_modules/@truffle/config/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true, - "optional": true - }, - "node_modules/@truffle/config/node_modules/p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "node_modules/@types/elliptic": { + "version": "6.4.14", + "resolved": "https://registry.npmjs.org/@types/elliptic/-/elliptic-6.4.14.tgz", + "integrity": "sha512-z4OBcDAU0GVwDTuwJzQCiL6188QvZMkvoERgcVjq0/mPM8jCfdwZ3x5zQEVoL9WCAru3aG5wl3Z5Ww5wBWn7ZQ==", "dev": true, - "optional": true, "dependencies": { - "p-try": "^1.0.0" - }, - "engines": { - "node": ">=4" + "@types/bn.js": "*" } }, - "node_modules/@truffle/config/node_modules/p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg==", - "dev": true, - "optional": true, + "node_modules/@types/express-serve-static-core": { + "version": "4.17.31", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.31.tgz", + "integrity": "sha512-DxMhY+NAsTwMMFHBTtJFNp5qiHKJ7TeqOo23zVEM9alT1Ml27Q3xcTH0xwxn7Q0BbMcVEJOs/7aQtUWupUQN3Q==", "dependencies": { - "p-limit": "^1.1.0" - }, - "engines": { - "node": ">=4" + "@types/node": "*", + "@types/qs": "*", + "@types/range-parser": "*" } }, - "node_modules/@truffle/config/node_modules/p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww==", + "node_modules/@types/graceful-fs": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.5.tgz", + "integrity": "sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw==", "dev": true, - "optional": true, - "engines": { - "node": ">=4" + "dependencies": { + "@types/node": "*" } }, - "node_modules/@truffle/config/node_modules/path-exists": { + "node_modules/@types/http-cache-semantics": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.1.tgz", + "integrity": "sha512-SZs7ekbP8CN0txVG2xVRH6EgKmEm31BOxA07vkFaETzZz1xh+cbt8BcI0slpymvwhx5dlFnQG2rTlPVQn+iRPQ==", + "dev": true + }, + "node_modules/@types/istanbul-lib-coverage": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.3.tgz", + "integrity": "sha512-sz7iLqvVUg1gIedBOvlkxPlc8/uVzyS5OwGz1cKjXzkl3FpL3al0crU8YGU1WoHkxn0Wxbw5tyi6hvzJKNzFsw==", + "dev": true + }, + "node_modules/@types/istanbul-lib-report": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", + "integrity": "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==", "dev": true, - "optional": true, - "engines": { - "node": ">=4" + "dependencies": { + "@types/istanbul-lib-coverage": "*" } }, - "node_modules/@truffle/dashboard-message-bus-client": { - "version": "0.1.9", - "resolved": "https://registry.npmjs.org/@truffle/dashboard-message-bus-client/-/dashboard-message-bus-client-0.1.9.tgz", - "integrity": "sha512-5tzPkMMkjSrD5POt3odHKTMBCAe2pPNsWi19BtFd4vASLwvqWVd0B2oIjQLqMLe/fSDPnpCmMwb5OK0FR/IzAA==", + "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, - "optional": true, "dependencies": { - "@truffle/dashboard-message-bus-common": "^0.1.5", - "@truffle/promise-tracker": "^0.1.5", - "axios": "0.27.2", - "debug": "^4.3.1", - "delay": "^5.0.0", - "isomorphic-ws": "^4.0.1", - "node-abort-controller": "^3.0.1", - "tiny-typed-emitter": "^2.1.0", - "ws": "^7.2.0" + "@types/istanbul-lib-report": "*" } }, - "node_modules/@truffle/dashboard-message-bus-client/node_modules/axios": { - "version": "0.27.2", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.27.2.tgz", - "integrity": "sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==", + "node_modules/@types/jest": { + "version": "27.0.2", + "resolved": "https://registry.npmjs.org/@types/jest/-/jest-27.0.2.tgz", + "integrity": "sha512-4dRxkS/AFX0c5XW6IPMNOydLn2tEhNhJV7DnYK+0bjoJZ+QTmfucBlihX7aoEsh/ocYtkLC73UbnBXBXIxsULA==", "dev": true, - "optional": true, "dependencies": { - "follow-redirects": "^1.14.9", - "form-data": "^4.0.0" + "jest-diff": "^27.0.0", + "pretty-format": "^27.0.0" } }, - "node_modules/@truffle/dashboard-message-bus-client/node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "node_modules/@types/keyv": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/@types/keyv/-/keyv-3.1.4.tgz", + "integrity": "sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==", "dev": true, - "optional": true, "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } + "@types/node": "*" } }, - "node_modules/@truffle/dashboard-message-bus-client/node_modules/form-data": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", - "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", - "dev": true, + "node_modules/@types/lodash": { + "version": "4.14.172", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.172.tgz", + "integrity": "sha512-/BHF5HAx3em7/KkzVKm3LrsD6HZAXuXO1AJZQ3cRRBZj4oHZDviWPYu0aEplAqDFNHZPW6d3G7KN+ONcCCC7pw==" + }, + "node_modules/@types/lodash.values": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/@types/lodash.values/-/lodash.values-4.3.7.tgz", + "integrity": "sha512-Moex9/sWxtKEa+BKiH5zvmhfcieDlcz4wRxMhO/oJ2qOKUdujoU6dQjUTxWA8jwEREpHXmiY4HCwNRpycW8JQA==", "optional": true, "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 6" + "@types/lodash": "*" } }, - "node_modules/@truffle/dashboard-message-bus-client/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true, - "optional": true + "node_modules/@types/long": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@types/long/-/long-4.0.2.tgz", + "integrity": "sha512-MqTGEo5bj5t157U6fA/BiDynNkn0YknVdh48CMPkTSpFTVmvao5UQmm7uEF6xBEo7qIMAlY/JSleYaE6VOdpaA==" }, - "node_modules/@truffle/dashboard-message-bus-common": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/@truffle/dashboard-message-bus-common/-/dashboard-message-bus-common-0.1.5.tgz", - "integrity": "sha512-F4RfXi7ymNA3HFOlaujRJxAb3I8ciErCRQq+MZVaqjSPF9LSw23IizZsGpLaY43K2bGoBSxyNQRZWxsUEBujPQ==", - "dev": true, - "optional": true + "node_modules/@types/node": { + "version": "16.6.1", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.6.1.tgz", + "integrity": "sha512-Sr7BhXEAer9xyGuCN3Ek9eg9xPviCF2gfu9kTfuU2HkTVAMYSDeX40fvpmo72n5nansg3nsBjuQBrsS28r+NUw==" }, - "node_modules/@truffle/db": { - "version": "2.0.11", - "resolved": "https://registry.npmjs.org/@truffle/db/-/db-2.0.11.tgz", - "integrity": "sha512-OozYKh4aw8AxGzQ8O1sXakvmhZtSFbUn45AvbqPHIBiOZ/pmb4KoNdcE5xeAUwS0k+gWuDoTo50NycpqJxkhYA==", + "node_modules/@types/node-fetch": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.6.2.tgz", + "integrity": "sha512-DHqhlq5jeESLy19TYhLakJ07kNumXWjcDdxXsLUMJZ6ue8VZJj4kLPQVE/2mdHh3xZziNF1xppu5lwmS53HR+A==", "dev": true, - "optional": true, "dependencies": { - "@graphql-tools/delegate": "^8.4.3", - "@graphql-tools/schema": "^8.3.1", - "@truffle/abi-utils": "^0.3.6", - "@truffle/code-utils": "^3.0.1", - "@truffle/config": "^1.3.48", - "abstract-leveldown": "^7.2.0", - "apollo-server": "^3.11.0", - "debug": "^4.3.1", - "fs-extra": "^9.1.0", - "graphql": "^15.3.0", - "graphql-tag": "^2.12.6", - "json-stable-stringify": "^1.0.1", - "pascal-case": "^2.0.1", - "pluralize": "^8.0.0", - "pouchdb": "7.3.0", - "pouchdb-adapter-memory": "^7.1.1", - "pouchdb-debug": "^7.1.1", - "pouchdb-find": "^7.0.0", - "web3-utils": "1.8.1" - } - }, - "node_modules/@truffle/db-loader": { - "version": "0.2.11", - "resolved": "https://registry.npmjs.org/@truffle/db-loader/-/db-loader-0.2.11.tgz", - "integrity": "sha512-C0uSqeFXAdw1yH/k+yMqz8fbmRLxY+etd8JKorcW1O2ieYmoFpF1mCdwdryl0X37pdlPV8yZrRAo48YFrgy1Pw==", - "dev": true, - "optionalDependencies": { - "@truffle/db": "^2.0.11" + "@types/node": "*", + "form-data": "^3.0.0" } }, - "node_modules/@truffle/db/node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "optional": true, + "node_modules/@types/pbkdf2": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@types/pbkdf2/-/pbkdf2-3.1.0.tgz", + "integrity": "sha512-Cf63Rv7jCQ0LaL8tNXmEyqTHuIJxRdlS5vMh1mj5voN4+QFhVZnlZruezqpWYDiJ8UTzhP0VmeLXCmBk66YrMQ==", "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } + "@types/node": "*" } }, - "node_modules/@truffle/db/node_modules/fs-extra": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", - "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", - "dev": true, - "optional": true, - "dependencies": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=10" - } + "node_modules/@types/prettier": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.3.2.tgz", + "integrity": "sha512-eI5Yrz3Qv4KPUa/nSIAi0h+qX0XyewOliug5F2QAtuRg6Kjg6jfmxe1GIwoIRhZspD1A0RP8ANrPwvEXXtRFog==", + "dev": true }, - "node_modules/@truffle/db/node_modules/graphql": { - "version": "15.8.0", - "resolved": "https://registry.npmjs.org/graphql/-/graphql-15.8.0.tgz", - "integrity": "sha512-5gghUc24tP9HRznNpV2+FIoq3xKkj5dTQqf4v0CpdPbFVwFkWoxOM+o+2OC9ZSvjEMTjfmG9QT+gcvggTwW1zw==", - "dev": true, - "optional": true, - "engines": { - "node": ">= 10.x" - } + "node_modules/@types/prop-types": { + "version": "15.7.4", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.4.tgz", + "integrity": "sha512-rZ5drC/jWjrArrS8BR6SIr4cWpW09RNTYt9AMZo3Jwwif+iacXAqgVjm0B0Bv/S1jhDXKHqRVNCbACkJ89RAnQ==", + "dev": true }, - "node_modules/@truffle/db/node_modules/jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", - "dev": true, - "optional": true, - "dependencies": { - "universalify": "^2.0.0" - }, - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } + "node_modules/@types/qs": { + "version": "6.9.7", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.7.tgz", + "integrity": "sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==" }, - "node_modules/@truffle/db/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true, - "optional": true + "node_modules/@types/range-parser": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.4.tgz", + "integrity": "sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==" }, - "node_modules/@truffle/db/node_modules/universalify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", - "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "node_modules/@types/react": { + "version": "17.0.19", + "resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.19.tgz", + "integrity": "sha512-sX1HisdB1/ZESixMTGnMxH9TDe8Sk709734fEQZzCV/4lSu9kJCPbo2PbTRoZM+53Pp0P10hYVyReUueGwUi4A==", "dev": true, - "optional": true, - "engines": { - "node": ">= 10.0.0" + "dependencies": { + "@types/prop-types": "*", + "@types/scheduler": "*", + "csstype": "^3.0.2" } }, - "node_modules/@truffle/debugger": { - "version": "11.0.22", - "resolved": "https://registry.npmjs.org/@truffle/debugger/-/debugger-11.0.22.tgz", - "integrity": "sha512-U2eCusUqYQsA13Tex5kVLGqn4nWWJewZBmnHbyOL6R1WX/aqXcs7gQhPgAuSw5kMtgmZ1DhtNZhlQ5RvkE8zhA==", + "node_modules/@types/responselike": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@types/responselike/-/responselike-1.0.0.tgz", + "integrity": "sha512-85Y2BjiufFzaMIlvJDvTTB8Fxl2xfLo4HgmHzVBz08w4wDePCTjYw66PdrolO0kzli3yam/YCgRufyo1DdQVTA==", "dev": true, "dependencies": { - "@truffle/abi-utils": "^0.3.6", - "@truffle/codec": "^0.14.12", - "@truffle/source-map-utils": "^1.3.104", - "bn.js": "^5.1.3", - "debug": "^4.3.1", - "json-pointer": "^0.6.1", - "json-stable-stringify": "^1.0.1", - "lodash": "^4.17.21", - "redux": "^3.7.2", - "redux-saga": "1.0.0", - "reselect-tree": "^1.3.7", - "semver": "7.3.7", - "web3": "1.8.1", - "web3-eth-abi": "1.8.1" + "@types/node": "*" } }, - "node_modules/@truffle/debugger/node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, + "node_modules/@types/scheduler": { + "version": "0.16.2", + "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.2.tgz", + "integrity": "sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==", + "dev": true + }, + "node_modules/@types/secp256k1": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/@types/secp256k1/-/secp256k1-4.0.3.tgz", + "integrity": "sha512-Da66lEIFeIz9ltsdMZcpQvmrmmoqrfju8pm1BH8WbYjZSwUgCwXLb9C+9XYogwBITnbsSaMdVPb2ekf7TV+03w==", "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } + "@types/node": "*" } }, - "node_modules/@truffle/debugger/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "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/@truffle/debugger/node_modules/semver": { - "version": "7.3.7", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", - "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "node_modules/@types/ws": { + "version": "7.4.7", + "resolved": "https://registry.npmjs.org/@types/ws/-/ws-7.4.7.tgz", + "integrity": "sha512-JQbbmxZTZehdc2iszGKs5oC3NFnjeay7mtAWrdt7qNtAVK0g19muApzAy4bm9byz79xa2ZnO/BOBC2R8RC5Lww==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/yargs": { + "version": "16.0.4", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.4.tgz", + "integrity": "sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==", "dev": true, "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" + "@types/yargs-parser": "*" } }, - "node_modules/@truffle/error": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/@truffle/error/-/error-0.2.0.tgz", - "integrity": "sha512-Fe0/z4WWb7IP2gBnv3l6zqP87Y0kSMs7oiSLakKJq17q3GUunrHSdioKuNspdggxkXIBhEQLhi8C+LJdwmHKWQ==", + "node_modules/@types/yargs-parser": { + "version": "20.2.1", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-20.2.1.tgz", + "integrity": "sha512-7tFImggNeNBVMsn0vLrpn1H1uPrUBdnARPTpZoitY37ZrdJREzf7I16tMrlK3hen349gr1NYh8CmZQa7CTG6Aw==", "dev": true }, - "node_modules/@truffle/events": { - "version": "0.1.20", - "resolved": "https://registry.npmjs.org/@truffle/events/-/events-0.1.20.tgz", - "integrity": "sha512-vqKCgyvYDBm/RmjglTMfGR3ZnVHkFEuhAxgQOsA2uqMOW0FonaMY6/paOddy/kSLfVBwFd8hwG53PyBAAwDhkA==", - "dev": true, + "node_modules/@wry/context": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/@wry/context/-/context-0.6.1.tgz", + "integrity": "sha512-LOmVnY1iTU2D8tv4Xf6MVMZZ+juIJ87Kt/plMijjN20NMAXGmH4u8bS1t0uT74cZ5gwpocYueV58YwyI8y+GKw==", "optional": true, "dependencies": { - "@truffle/dashboard-message-bus-client": "^0.1.9", - "@truffle/spinners": "^0.2.3", - "debug": "^4.3.1", - "emittery": "^0.4.1", - "web3-utils": "1.8.1" + "tslib": "^2.3.0" + }, + "engines": { + "node": ">=8" } }, - "node_modules/@truffle/events/node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, + "node_modules/@wry/context/node_modules/tslib": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", + "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", + "optional": true + }, + "node_modules/@wry/equality": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/@wry/equality/-/equality-0.5.2.tgz", + "integrity": "sha512-oVMxbUXL48EV/C0/M7gLVsoK6qRHPS85x8zECofEZOVvxGmIPLA9o5Z27cc2PoAyZz1S2VoM2A7FLAnpfGlneA==", "optional": true, "dependencies": { - "ms": "2.1.2" + "tslib": "^2.3.0" }, "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } + "node": ">=8" } }, - "node_modules/@truffle/events/node_modules/emittery": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.4.1.tgz", - "integrity": "sha512-r4eRSeStEGf6M5SKdrQhhLK5bOwOBxQhIE3YSTnZE3GpKiLfnnhE+tPtrJE79+eDJgm39BM6LSoI8SCx4HbwlQ==", - "dev": true, + "node_modules/@wry/equality/node_modules/tslib": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", + "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", + "optional": true + }, + "node_modules/@wry/trie": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@wry/trie/-/trie-0.3.1.tgz", + "integrity": "sha512-WwB53ikYudh9pIorgxrkHKrQZcCqNM/Q/bDzZBffEaGUKGuHrRb3zZUT9Sh2qw9yogC7SsdRmQ1ER0pqvd3bfw==", "optional": true, + "dependencies": { + "tslib": "^2.3.0" + }, "engines": { - "node": ">=6" + "node": ">=8" } }, - "node_modules/@truffle/events/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true, + "node_modules/@wry/trie/node_modules/tslib": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", + "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", "optional": true }, - "node_modules/@truffle/interface-adapter": { - "version": "0.5.26", - "resolved": "https://registry.npmjs.org/@truffle/interface-adapter/-/interface-adapter-0.5.26.tgz", - "integrity": "sha512-fBhoqtT+CT4XKXcOijvw0RIMgyUi3FJg+n5i5PyGBsoRzqbLZd9cZq+oMNjOZPdf3GH68hsOFOaQO5tZH7oZow==", - "dev": true, - "optional": true, + "node_modules/@xpla/xpla.js": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/@xpla/xpla.js/-/xpla.js-0.2.1.tgz", + "integrity": "sha512-+2v9/rxnRaaZBShT232bB3sow0JMe5ghIzLUPy7XJQasf6fu3mmVgMUIl9QCrILkuTZwh3yNsFOvkZTPH28Fmw==", "dependencies": { - "bn.js": "^5.1.3", - "ethers": "^4.0.32", - "web3": "1.8.1" + "@ethersproject/bytes": "^5.6.1", + "@ethersproject/keccak256": "^5.6.1", + "@ethersproject/signing-key": "^5.6.2", + "@terra-money/legacy.proto": "npm:@terra-money/terra.proto@^0.1.7", + "@terra-money/terra.proto": "^2.1.0", + "axios": "^0.26.1", + "bech32": "^2.0.0", + "bip32": "^2.0.6", + "bip39": "^3.0.3", + "bufferutil": "^4.0.3", + "crypto-addr-codec": "^0.1.7", + "decimal.js": "^10.2.1", + "elliptic": "^6.5.4", + "ethereumjs-util": "^7.1.5", + "jscrypto": "^1.0.1", + "readable-stream": "^3.6.0", + "secp256k1": "^4.0.2", + "tmp": "^0.2.1", + "utf-8-validate": "^5.0.5", + "ws": "^7.5.8" + }, + "engines": { + "node": ">=14" } }, - "node_modules/@truffle/interface-adapter/node_modules/ethers": { - "version": "4.0.49", - "resolved": "https://registry.npmjs.org/ethers/-/ethers-4.0.49.tgz", - "integrity": "sha512-kPltTvWiyu+OktYy1IStSO16i2e7cS9D9OxZ81q2UUaiNPVrm/RTcbxamCXF9VUSKzJIdJV68EAIhTEVBalRWg==", - "dev": true, - "optional": true, + "node_modules/@xpla/xpla.js/node_modules/axios": { + "version": "0.26.1", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.26.1.tgz", + "integrity": "sha512-fPwcX4EvnSHuInCMItEhAGnaSEXRBjtzh9fOtsE6E1G6p7vl7edEeZe11QHf18+6+9gR5PbKV/sGKNaD8YaMeA==", "dependencies": { - "aes-js": "3.0.0", - "bn.js": "^4.11.9", - "elliptic": "6.5.4", - "hash.js": "1.1.3", - "js-sha3": "0.5.7", - "scrypt-js": "2.0.4", - "setimmediate": "1.0.4", - "uuid": "2.0.1", - "xmlhttprequest": "1.8.0" + "follow-redirects": "^1.14.8" } }, - "node_modules/@truffle/interface-adapter/node_modules/ethers/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true, - "optional": true + "node_modules/abab": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.5.tgz", + "integrity": "sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q==", + "dev": true }, - "node_modules/@truffle/interface-adapter/node_modules/hash.js": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.3.tgz", - "integrity": "sha512-/UETyP0W22QILqS+6HowevwhEFJ3MBJnwTf75Qob9Wz9t0DPuisL8kW8YZMK62dHAKE1c1p+gY1TtOLY+USEHA==", + "node_modules/abortcontroller-polyfill": { + "version": "1.7.5", + "resolved": "https://registry.npmjs.org/abortcontroller-polyfill/-/abortcontroller-polyfill-1.7.5.tgz", + "integrity": "sha512-JMJ5soJWP18htbbxJjG7bG6yuI6pRhgJ0scHHTfkUjf6wjP912xZWvM+A4sJK3gqd9E8fcPbDnOefbA9Th/FIQ==", + "dev": true + }, + "node_modules/accepts": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", + "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", "dev": true, - "optional": true, "dependencies": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.0" + "mime-types": "~2.1.24", + "negotiator": "0.6.2" + }, + "engines": { + "node": ">= 0.6" } }, - "node_modules/@truffle/interface-adapter/node_modules/js-sha3": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.5.7.tgz", - "integrity": "sha512-GII20kjaPX0zJ8wzkTbNDYMY7msuZcTWk8S5UOh6806Jq/wz1J8/bnr8uGU0DAUmYDjj2Mr4X1cW8v/GLYnR+g==", + "node_modules/acorn": { + "version": "8.5.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.5.0.tgz", + "integrity": "sha512-yXbYeFy+jUuYd3/CDcg2NkIYE991XYX/bje7LmjJigUciaeO1JR4XxXgCIV1/Zc/dRuFEyw1L0pbA+qynJkW5Q==", "dev": true, - "optional": true + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } }, - "node_modules/@truffle/interface-adapter/node_modules/scrypt-js": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-2.0.4.tgz", - "integrity": "sha512-4KsaGcPnuhtCZQCxFxN3GVYIhKFPTdLd8PLC552XwbMndtD0cjRFAhDuuydXQ0h08ZfPgzqe6EKHozpuH74iDw==", + "node_modules/acorn-globals": { + "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 - }, - "node_modules/@truffle/interface-adapter/node_modules/setimmediate": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.4.tgz", - "integrity": "sha512-/TjEmXQVEzdod/FFskf3o7oOAsGhHf2j1dZqRFbDzq4F3mvvxflIIi4Hd3bLQE9y/CpwqfSQam5JakI/mi3Pog==", - "dev": true, - "optional": true - }, - "node_modules/@truffle/interface-adapter/node_modules/uuid": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-2.0.1.tgz", - "integrity": "sha512-nWg9+Oa3qD2CQzHIP4qKUqwNfzKn8P0LtFhotaCTFchsV7ZfDhAybeip/HZVeMIpZi9JgY1E3nUlwaCmZT1sEg==", - "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", - "dev": true, - "optional": true - }, - "node_modules/@truffle/promise-tracker": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/@truffle/promise-tracker/-/promise-tracker-0.1.5.tgz", - "integrity": "sha512-wZx8eeu/6rcwwkmRF0Y832/NSQR9A9u6pyhTozv+j77jklnd/KZvu2JlACaAjP30eL5SOtSrSOzAMcSh/trJjg==", - "dev": true, - "optional": true - }, - "node_modules/@truffle/provider": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@truffle/provider/-/provider-0.3.2.tgz", - "integrity": "sha512-WJ0ebmFYIILg+P0Xa7MnBrjrnbxtyOIOpcGZ8UF0jA+WXp8gFRVs7YYteCJezTwrEZ6JzOCnC5G3vshJzf7GsA==", - "dev": true, - "optional": true, "dependencies": { - "@truffle/error": "^0.2.0", - "@truffle/interface-adapter": "^0.5.26", - "debug": "^4.3.1", - "web3": "1.8.1" + "acorn": "^7.1.1", + "acorn-walk": "^7.1.1" } }, - "node_modules/@truffle/provider/node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "node_modules/acorn-globals/node_modules/acorn": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", "dev": true, - "optional": true, - "dependencies": { - "ms": "2.1.2" + "bin": { + "acorn": "bin/acorn" }, "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } + "node": ">=0.4.0" } }, - "node_modules/@truffle/provider/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "node_modules/acorn-walk": { + "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 + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/aes-js": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/aes-js/-/aes-js-3.0.0.tgz", + "integrity": "sha512-H7wUZRn8WpTq9jocdxQ2c8x2sKo9ZVmzfRE13GiNJXfp7NcKYEdvl3vspKjXox6RIG2VtaRe4JFvxG4rqp2Zuw==", + "devOptional": true }, - "node_modules/@truffle/source-map-utils": { - "version": "1.3.104", - "resolved": "https://registry.npmjs.org/@truffle/source-map-utils/-/source-map-utils-1.3.104.tgz", - "integrity": "sha512-AVD1+jnw/zj7Vqw8i8RIZ4pMEW69bAqTKjJbY6kFsxG9S1oi7ZEUFSBvuja/JNm8xkmmAwIc0NOkQr2K2G/rSA==", + "node_modules/agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", "dev": true, "dependencies": { - "@truffle/code-utils": "^3.0.1", - "@truffle/codec": "^0.14.12", - "debug": "^4.3.1", - "json-pointer": "^0.6.1", - "node-interval-tree": "^1.3.3", - "web3-utils": "1.8.1" + "debug": "4" + }, + "engines": { + "node": ">= 6.0.0" } }, - "node_modules/@truffle/source-map-utils/node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "node_modules/agent-base/node_modules/debug": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", + "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", "dev": true, "dependencies": { "ms": "2.1.2" @@ -4403,791 +3802,801 @@ } } }, - "node_modules/@truffle/source-map-utils/node_modules/ms": { + "node_modules/agent-base/node_modules/ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true }, - "node_modules/@truffle/spinners": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/@truffle/spinners/-/spinners-0.2.3.tgz", - "integrity": "sha512-YnaQ+oBRQ1I1+/P18i8oSW4orUYi6vwpZQxauEZ5X0L8atjKq+RWdiNaza6J6L+KOLunXM4+pWxnNzuUmxlJZw==", - "dev": true, - "optional": true, + "node_modules/algo-msgpack-with-bigint": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/algo-msgpack-with-bigint/-/algo-msgpack-with-bigint-2.1.1.tgz", + "integrity": "sha512-F1tGh056XczEaEAqu7s+hlZUDWwOBT70Eq0lfMpBP2YguSQVyxRbprLq5rELXKQOyOaixTWYhMeMQMzP0U5FoQ==", + "engines": { + "node": ">= 10" + } + }, + "node_modules/algosdk": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/algosdk/-/algosdk-2.4.0.tgz", + "integrity": "sha512-sENe6IyUqvhQprfS/7gJAkPC5sX2LI5uc+gXaKNgzKp72UEyXYSoN3h4MZkOlCrOcTSWTJW7605tYgg8nFkflw==", "dependencies": { - "@trufflesuite/spinnies": "^0.1.1" + "algo-msgpack-with-bigint": "^2.1.1", + "buffer": "^6.0.3", + "cross-fetch": "^3.1.5", + "hi-base32": "^0.5.1", + "js-sha256": "^0.9.0", + "js-sha3": "^0.8.0", + "js-sha512": "^0.8.0", + "json-bigint": "^1.0.0", + "tweetnacl": "^1.0.3", + "vlq": "^2.0.4" + }, + "engines": { + "node": ">=16.0.0" } }, - "node_modules/@trufflesuite/spinnies": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@trufflesuite/spinnies/-/spinnies-0.1.1.tgz", - "integrity": "sha512-jltEtmFJj6xmQqr85gP8OqBHCEiId+zw+uAsb3DyLLRD17O6sySW6Afa2Z/jpzSafj+32ssDfLJ+c0of1NLqcA==", - "dev": true, - "optional": true, + "node_modules/algosdk/node_modules/buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], "dependencies": { - "chalk": "^4.1.2", - "cli-cursor": "^3.1.0", - "strip-ansi": "^6.0.0" + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" } }, - "node_modules/@trufflesuite/spinnies/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "node_modules/ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", "dev": true, - "optional": true, "dependencies": { - "color-convert": "^2.0.1" + "type-fest": "^0.21.3" }, "engines": { "node": ">=8" }, "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@trufflesuite/spinnies/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "optional": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "devOptional": true, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "node": ">=8" } }, - "node_modules/@trufflesuite/spinnies/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "optional": true, + "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==", + "devOptional": true, "dependencies": { - "color-name": "~1.1.4" + "color-convert": "^1.9.0" }, "engines": { - "node": ">=7.0.0" + "node": ">=4" } }, - "node_modules/@trufflesuite/spinnies/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true, - "optional": true - }, - "node_modules/@trufflesuite/spinnies/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "node_modules/anymatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", + "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", "dev": true, - "optional": true, + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, "engines": { - "node": ">=8" + "node": ">= 8" } }, - "node_modules/@trufflesuite/spinnies/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "optional": true, + "node_modules/aptos": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/aptos/-/aptos-1.5.0.tgz", + "integrity": "sha512-N7OuRtU7IYHkDkNx+4QS3g/QQGCp+36KzYn3oXPmT7Kttfuv+UKliQVdjy3cLmwd/DCQSh9ObTovwdxnHjUn0g==", "dependencies": { - "has-flag": "^4.0.0" + "@noble/hashes": "1.1.3", + "@scure/bip39": "1.1.0", + "axios": "0.27.2", + "form-data": "4.0.0", + "tweetnacl": "1.0.3" }, "engines": { - "node": ">=8" + "node": ">=11.0.0" } }, - "node_modules/@typechain/ethers-v5": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/@typechain/ethers-v5/-/ethers-v5-7.0.1.tgz", - "integrity": "sha512-mXEJ7LG0pOYO+MRPkHtbf30Ey9X2KAsU0wkeoVvjQIn7iAY6tB3k3s+82bbmJAUMyENbQ04RDOZit36CgSG6Gg==", - "dev": true, - "license": "MIT", - "peerDependencies": { - "@ethersproject/abi": "^5.0.0", - "@ethersproject/bytes": "^5.0.0", - "@ethersproject/providers": "^5.0.0", - "ethers": "^5.1.3", - "typechain": "^5.0.0", - "typescript": ">=4.0.0" + "node_modules/aptos/node_modules/axios": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.27.2.tgz", + "integrity": "sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==", + "dependencies": { + "follow-redirects": "^1.14.9", + "form-data": "^4.0.0" } }, - "node_modules/@types/accepts": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/@types/accepts/-/accepts-1.3.5.tgz", - "integrity": "sha512-jOdnI/3qTpHABjM5cx1Hc0sKsPoYCp+DP/GJRGtDlPd7fiV9oXGGIcjW/ZOxLIvjGz8MA+uMZI9metHlgqbgwQ==", - "dev": true, - "optional": true, + "node_modules/aptos/node_modules/form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", "dependencies": { - "@types/node": "*" + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" } }, - "node_modules/@types/babel__core": { - "version": "7.1.16", - "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.16.tgz", - "integrity": "sha512-EAEHtisTMM+KaKwfWdC3oyllIqswlznXCIVCt7/oRNrh+DhgT4UEBNC/jlADNjvw7UnfbcdkGQcPVZ1xYiLcrQ==", + "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": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0", - "@types/babel__generator": "*", - "@types/babel__template": "*", - "@types/babel__traverse": "*" + "sprintf-js": "~1.0.2" } }, - "node_modules/@types/babel__generator": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.3.tgz", - "integrity": "sha512-/GWCmzJWqV7diQW54smJZzWbSFf4QYtF71WCKhcx6Ru/tFyQIY2eiiITcCAeuPbNSvT9YCGkVMqqvSk2Z0mXiA==", + "node_modules/array-back": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-2.0.0.tgz", + "integrity": "sha512-eJv4pLLufP3g5kcZry0j6WXpIbzYw9GUB4mVJZno9wfwiBxbizTnHCw3VJb07cBihbFX48Y7oSrW9y+gt4glyw==", "dev": true, "dependencies": { - "@babel/types": "^7.0.0" + "typical": "^2.6.1" + }, + "engines": { + "node": ">=4" } }, - "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==", + "node_modules/array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=", + "dev": true + }, + "node_modules/asn1": { + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz", + "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==", "dev": true, "dependencies": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0" + "safer-buffer": "~2.1.0" } }, - "node_modules/@types/babel__traverse": { - "version": "7.14.2", - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.14.2.tgz", - "integrity": "sha512-K2waXdXBi2302XUdcHcR1jCeU0LL4TD9HRs/gk0N2Xvrht+G/BfJa4QObBQZfhMdxiCpV3COl5Nfq4uKTeTnJA==", + "node_modules/asn1.js": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz", + "integrity": "sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==", "dev": true, "dependencies": { - "@babel/types": "^7.3.0" + "bn.js": "^4.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0", + "safer-buffer": "^2.1.0" } }, - "node_modules/@types/bn.js": { - "version": "4.11.6", - "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-4.11.6.tgz", - "integrity": "sha512-pqr857jrp2kPuO9uRjZ3PwnJTjoQy+fcdxvBTvHm6dkmEL9q+hDD/2j/0ELOBPtPnS8LjCX0gI9nbl8lVkadpg==", - "devOptional": true, - "dependencies": { - "@types/node": "*" - } + "node_modules/asn1.js/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true }, - "node_modules/@types/body-parser": { - "version": "1.19.2", - "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.2.tgz", - "integrity": "sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==", + "node_modules/assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==", "dev": true, - "optional": true, - "dependencies": { - "@types/connect": "*", - "@types/node": "*" + "engines": { + "node": ">=0.8" } }, - "node_modules/@types/bs58": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@types/bs58/-/bs58-4.0.1.tgz", - "integrity": "sha512-yfAgiWgVLjFCmRv8zAcOIHywYATEwiTVccTLnRp6UxTNavT55M9d/uhK3T03St/+8/z/wW+CRjGKUNmEqoHHCA==", + "node_modules/async-limiter": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz", + "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==", + "dev": true + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" + }, + "node_modules/available-typed-arrays": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", + "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", "dev": true, - "dependencies": { - "base-x": "^3.0.6" + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/@types/cacheable-request": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/@types/cacheable-request/-/cacheable-request-6.0.3.tgz", - "integrity": "sha512-IQ3EbTzGxIigb1I3qPZc1rWJnH0BmSKv5QYTalEwweFvyBDLSAe24zP0le/hyi7ecGfZVlIVAg4BZqb8WBwKqw==", + "node_modules/aws-sign2": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", + "integrity": "sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==", "dev": true, - "dependencies": { - "@types/http-cache-semantics": "*", - "@types/keyv": "^3.1.4", - "@types/node": "*", - "@types/responselike": "^1.0.0" + "engines": { + "node": "*" } }, - "node_modules/@types/connect": { - "version": "3.4.35", - "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz", - "integrity": "sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==", + "node_modules/aws4": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.12.0.tgz", + "integrity": "sha512-NmWvPnx0F1SfrQbYwOi7OeaNGokp9XhzNioJ/CSBs8Qa4vxug81mhJEAVZwxXuBmYB5KDRfMq/F3RR0BIU7sWg==", + "dev": true + }, + "node_modules/axios": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.24.0.tgz", + "integrity": "sha512-Q6cWsys88HoPgAaFAVUb0WpPk0O8iTeisR9IMqy9G8AbO4NlpVknrnQS03zzF9PGAWgO3cgletO3VjV/P7VztA==", "dependencies": { - "@types/node": "*" + "follow-redirects": "^1.14.4" } }, - "node_modules/@types/cors": { - "version": "2.8.12", - "resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.12.tgz", - "integrity": "sha512-vt+kDhq/M2ayberEtJcIN/hxXy1Pk+59g2FV/ZQceeaTyCtCucjL2Q7FXlFjtWn4n15KCr1NE2lNNFhp0lEThw==", - "dev": true, - "optional": true - }, - "node_modules/@types/elliptic": { - "version": "6.4.14", - "resolved": "https://registry.npmjs.org/@types/elliptic/-/elliptic-6.4.14.tgz", - "integrity": "sha512-z4OBcDAU0GVwDTuwJzQCiL6188QvZMkvoERgcVjq0/mPM8jCfdwZ3x5zQEVoL9WCAru3aG5wl3Z5Ww5wBWn7ZQ==", + "node_modules/babel-jest": { + "version": "27.3.1", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-27.3.1.tgz", + "integrity": "sha512-SjIF8hh/ir0peae2D6S6ZKRhUy7q/DnpH7k/V6fT4Bgs/LXXUztOpX4G2tCgq8mLo5HA9mN6NmlFMeYtKmIsTQ==", "dev": true, "dependencies": { - "@types/bn.js": "*" + "@jest/transform": "^27.3.1", + "@jest/types": "^27.2.5", + "@types/babel__core": "^7.1.14", + "babel-plugin-istanbul": "^6.0.0", + "babel-preset-jest": "^27.2.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.4", + "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/@types/express": { - "version": "4.17.14", - "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.14.tgz", - "integrity": "sha512-TEbt+vaPFQ+xpxFLFssxUDXj5cWCxZJjIcB7Yg0k0GMHGtgtQgpvx/MUQUeAkNbA9AAGrwkAsoeItdTgS7FMyg==", + "node_modules/babel-jest/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, - "optional": true, "dependencies": { - "@types/body-parser": "*", - "@types/express-serve-static-core": "^4.17.18", - "@types/qs": "*", - "@types/serve-static": "*" + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/@types/express-serve-static-core": { - "version": "4.17.31", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.31.tgz", - "integrity": "sha512-DxMhY+NAsTwMMFHBTtJFNp5qiHKJ7TeqOo23zVEM9alT1Ml27Q3xcTH0xwxn7Q0BbMcVEJOs/7aQtUWupUQN3Q==", + "node_modules/babel-jest/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, "dependencies": { - "@types/node": "*", - "@types/qs": "*", - "@types/range-parser": "*" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/@types/graceful-fs": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.5.tgz", - "integrity": "sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw==", + "node_modules/babel-jest/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "dependencies": { - "@types/node": "*" + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" } }, - "node_modules/@types/http-cache-semantics": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.1.tgz", - "integrity": "sha512-SZs7ekbP8CN0txVG2xVRH6EgKmEm31BOxA07vkFaETzZz1xh+cbt8BcI0slpymvwhx5dlFnQG2rTlPVQn+iRPQ==", - "dev": true - }, - "node_modules/@types/istanbul-lib-coverage": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.3.tgz", - "integrity": "sha512-sz7iLqvVUg1gIedBOvlkxPlc8/uVzyS5OwGz1cKjXzkl3FpL3al0crU8YGU1WoHkxn0Wxbw5tyi6hvzJKNzFsw==", + "node_modules/babel-jest/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "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==", + "node_modules/babel-jest/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, - "dependencies": { - "@types/istanbul-lib-coverage": "*" + "engines": { + "node": ">=8" } }, - "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==", + "node_modules/babel-jest/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "dependencies": { - "@types/istanbul-lib-report": "*" + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" } }, - "node_modules/@types/jest": { - "version": "27.0.2", - "resolved": "https://registry.npmjs.org/@types/jest/-/jest-27.0.2.tgz", - "integrity": "sha512-4dRxkS/AFX0c5XW6IPMNOydLn2tEhNhJV7DnYK+0bjoJZ+QTmfucBlihX7aoEsh/ocYtkLC73UbnBXBXIxsULA==", + "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": { - "jest-diff": "^27.0.0", - "pretty-format": "^27.0.0" + "@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/@types/keyv": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/@types/keyv/-/keyv-3.1.4.tgz", - "integrity": "sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==", + "node_modules/babel-plugin-istanbul/node_modules/istanbul-lib-instrument": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.1.0.tgz", + "integrity": "sha512-czwUz525rkOFDJxfKK6mYfIs9zBKILyrZQxjz3ABhjQXhbhFsSbo1HW/BFcsDnfJYJWA6thRR5/TUY2qs5W99Q==", "dev": true, "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/lodash": { - "version": "4.14.172", - "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.172.tgz", - "integrity": "sha512-/BHF5HAx3em7/KkzVKm3LrsD6HZAXuXO1AJZQ3cRRBZj4oHZDviWPYu0aEplAqDFNHZPW6d3G7KN+ONcCCC7pw==" - }, - "node_modules/@types/lodash.values": { - "version": "4.3.7", - "resolved": "https://registry.npmjs.org/@types/lodash.values/-/lodash.values-4.3.7.tgz", - "integrity": "sha512-Moex9/sWxtKEa+BKiH5zvmhfcieDlcz4wRxMhO/oJ2qOKUdujoU6dQjUTxWA8jwEREpHXmiY4HCwNRpycW8JQA==", - "optional": true, - "dependencies": { - "@types/lodash": "*" + "@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/@types/long": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/@types/long/-/long-4.0.2.tgz", - "integrity": "sha512-MqTGEo5bj5t157U6fA/BiDynNkn0YknVdh48CMPkTSpFTVmvao5UQmm7uEF6xBEo7qIMAlY/JSleYaE6VOdpaA==" - }, - "node_modules/@types/mime": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@types/mime/-/mime-3.0.1.tgz", - "integrity": "sha512-Y4XFY5VJAuw0FgAqPNd6NNoV44jbq9Bz2L7Rh/J6jLTiHBSBJa9fxqQIvkIld4GsoDOcCbvzOUAbLPsSKKg+uA==", - "dev": true, - "optional": true - }, - "node_modules/@types/node": { - "version": "16.6.1", - "resolved": "https://registry.npmjs.org/@types/node/-/node-16.6.1.tgz", - "integrity": "sha512-Sr7BhXEAer9xyGuCN3Ek9eg9xPviCF2gfu9kTfuU2HkTVAMYSDeX40fvpmo72n5nansg3nsBjuQBrsS28r+NUw==" - }, - "node_modules/@types/node-fetch": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.6.2.tgz", - "integrity": "sha512-DHqhlq5jeESLy19TYhLakJ07kNumXWjcDdxXsLUMJZ6ue8VZJj4kLPQVE/2mdHh3xZziNF1xppu5lwmS53HR+A==", + "node_modules/babel-plugin-istanbul/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, - "dependencies": { - "@types/node": "*", - "form-data": "^3.0.0" + "bin": { + "semver": "bin/semver.js" } }, - "node_modules/@types/pbkdf2": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@types/pbkdf2/-/pbkdf2-3.1.0.tgz", - "integrity": "sha512-Cf63Rv7jCQ0LaL8tNXmEyqTHuIJxRdlS5vMh1mj5voN4+QFhVZnlZruezqpWYDiJ8UTzhP0VmeLXCmBk66YrMQ==", + "node_modules/babel-plugin-jest-hoist": { + "version": "27.2.0", + "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-27.2.0.tgz", + "integrity": "sha512-TOux9khNKdi64mW+0OIhcmbAn75tTlzKhxmiNXevQaPbrBYK7YKjP1jl6NHTJ6XR5UgUrJbCnWlKVnJn29dfjw==", + "dev": true, "dependencies": { - "@types/node": "*" + "@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/@types/prettier": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.3.2.tgz", - "integrity": "sha512-eI5Yrz3Qv4KPUa/nSIAi0h+qX0XyewOliug5F2QAtuRg6Kjg6jfmxe1GIwoIRhZspD1A0RP8ANrPwvEXXtRFog==", - "dev": true - }, - "node_modules/@types/prop-types": { - "version": "15.7.4", - "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.4.tgz", - "integrity": "sha512-rZ5drC/jWjrArrS8BR6SIr4cWpW09RNTYt9AMZo3Jwwif+iacXAqgVjm0B0Bv/S1jhDXKHqRVNCbACkJ89RAnQ==", - "dev": true - }, - "node_modules/@types/qs": { - "version": "6.9.7", - "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.7.tgz", - "integrity": "sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==" - }, - "node_modules/@types/range-parser": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.4.tgz", - "integrity": "sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==" - }, - "node_modules/@types/react": { - "version": "17.0.19", - "resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.19.tgz", - "integrity": "sha512-sX1HisdB1/ZESixMTGnMxH9TDe8Sk709734fEQZzCV/4lSu9kJCPbo2PbTRoZM+53Pp0P10hYVyReUueGwUi4A==", + "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": { - "@types/prop-types": "*", - "@types/scheduler": "*", - "csstype": "^3.0.2" + "@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/@types/responselike": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@types/responselike/-/responselike-1.0.0.tgz", - "integrity": "sha512-85Y2BjiufFzaMIlvJDvTTB8Fxl2xfLo4HgmHzVBz08w4wDePCTjYw66PdrolO0kzli3yam/YCgRufyo1DdQVTA==", + "node_modules/babel-preset-jest": { + "version": "27.2.0", + "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-27.2.0.tgz", + "integrity": "sha512-z7MgQ3peBwN5L5aCqBKnF6iqdlvZvFUQynEhu0J+X9nHLU72jO3iY331lcYrg+AssJ8q7xsv5/3AICzVmJ/wvg==", "dev": true, "dependencies": { - "@types/node": "*" + "babel-plugin-jest-hoist": "^27.2.0", + "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" } }, - "node_modules/@types/scheduler": { - "version": "0.16.2", - "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.2.tgz", - "integrity": "sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==", - "dev": true + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" }, - "node_modules/@types/secp256k1": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/@types/secp256k1/-/secp256k1-4.0.3.tgz", - "integrity": "sha512-Da66lEIFeIz9ltsdMZcpQvmrmmoqrfju8pm1BH8WbYjZSwUgCwXLb9C+9XYogwBITnbsSaMdVPb2ekf7TV+03w==", + "node_modules/base-x": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.8.tgz", + "integrity": "sha512-Rl/1AWP4J/zRrk54hhlxH4drNxPJXYUaKffODVI53/dAsV4t9fBxyxYKAVPU1XBHxYwOWP9h9H0hM2MVw4YfJA==", "dependencies": { - "@types/node": "*" + "safe-buffer": "^5.0.1" } }, - "node_modules/@types/serve-static": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.0.tgz", - "integrity": "sha512-z5xyF6uh8CbjAu9760KDKsH2FcDxZ2tFCsA4HIMWE6IkiYMXfVoa+4f9KX+FN0ZLsaMw1WNG2ETLA6N+/YA+cg==", + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "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/bcrypt-pbkdf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==", "dev": true, - "optional": true, "dependencies": { - "@types/mime": "*", - "@types/node": "*" + "tweetnacl": "^0.14.3" } }, - "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==", + "node_modules/bcrypt-pbkdf/node_modules/tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==", "dev": true }, - "node_modules/@types/ws": { - "version": "7.4.7", - "resolved": "https://registry.npmjs.org/@types/ws/-/ws-7.4.7.tgz", - "integrity": "sha512-JQbbmxZTZehdc2iszGKs5oC3NFnjeay7mtAWrdt7qNtAVK0g19muApzAy4bm9byz79xa2ZnO/BOBC2R8RC5Lww==", - "dependencies": { - "@types/node": "*" - } + "node_modules/bech32": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/bech32/-/bech32-2.0.0.tgz", + "integrity": "sha512-LcknSilhIGatDAsY1ak2I8VtGaHNhgMSYVxFrGLXv+xLHytaKZKcaUJJUE7qmBr7h33o5YQwP55pMI0xmkpJwg==" }, - "node_modules/@types/yargs": { - "version": "16.0.4", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.4.tgz", - "integrity": "sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==", - "dev": true, - "dependencies": { - "@types/yargs-parser": "*" + "node_modules/big-integer": { + "version": "1.6.36", + "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.36.tgz", + "integrity": "sha512-t70bfa7HYEA1D9idDbmuv7YbsbVkQ+Hp+8KFSul4aE5e/i1bjCNIRYJZlA8Q8p0r9T8cF/RVvwUgRA//FydEyg==", + "engines": { + "node": ">=0.6" } }, - "node_modules/@types/yargs-parser": { - "version": "20.2.1", - "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-20.2.1.tgz", - "integrity": "sha512-7tFImggNeNBVMsn0vLrpn1H1uPrUBdnARPTpZoitY37ZrdJREzf7I16tMrlK3hen349gr1NYh8CmZQa7CTG6Aw==", - "dev": true - }, - "node_modules/@wry/context": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/@wry/context/-/context-0.6.1.tgz", - "integrity": "sha512-LOmVnY1iTU2D8tv4Xf6MVMZZ+juIJ87Kt/plMijjN20NMAXGmH4u8bS1t0uT74cZ5gwpocYueV58YwyI8y+GKw==", - "optional": true, + "node_modules/bigint-buffer": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/bigint-buffer/-/bigint-buffer-1.1.5.tgz", + "integrity": "sha512-trfYco6AoZ+rKhKnxA0hgX0HAbVP/s808/EuDSe2JDzUnCp/xAsli35Orvk67UrTEcwuxZqYZDmfA2RXJgxVvA==", + "hasInstallScript": true, "dependencies": { - "tslib": "^2.3.0" + "bindings": "^1.3.0" }, "engines": { - "node": ">=8" + "node": ">= 10.0.0" } }, - "node_modules/@wry/context/node_modules/tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", - "optional": true - }, - "node_modules/@wry/equality": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/@wry/equality/-/equality-0.5.2.tgz", - "integrity": "sha512-oVMxbUXL48EV/C0/M7gLVsoK6qRHPS85x8zECofEZOVvxGmIPLA9o5Z27cc2PoAyZz1S2VoM2A7FLAnpfGlneA==", - "optional": true, - "dependencies": { - "tslib": "^2.3.0" - }, + "node_modules/bignumber.js": { + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.0.2.tgz", + "integrity": "sha512-GAcQvbpsM0pUb0zw1EI0KhQEZ+lRwR5fYaAp3vPOYuP7aDvGy6cVN6XHLauvF8SOga2y0dcLcjt3iQDTSEliyw==", "engines": { - "node": ">=8" + "node": "*" } }, - "node_modules/@wry/equality/node_modules/tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", - "optional": true + "node_modules/binary-parser": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/binary-parser/-/binary-parser-2.2.1.tgz", + "integrity": "sha512-5ATpz/uPDgq5GgEDxTB4ouXCde7q2lqAQlSdBRQVl/AJnxmQmhIfyxJx+0MGu//D5rHQifkfGbWWlaysG0o9NA==", + "engines": { + "node": ">=12" + } }, - "node_modules/@wry/trie": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/@wry/trie/-/trie-0.3.1.tgz", - "integrity": "sha512-WwB53ikYudh9pIorgxrkHKrQZcCqNM/Q/bDzZBffEaGUKGuHrRb3zZUT9Sh2qw9yogC7SsdRmQ1ER0pqvd3bfw==", - "optional": true, + "node_modules/bindings": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", + "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", "dependencies": { - "tslib": "^2.3.0" - }, - "engines": { - "node": ">=8" + "file-uri-to-path": "1.0.0" } }, - "node_modules/@wry/trie/node_modules/tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", - "optional": true - }, - "node_modules/@xpla/xpla.js": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/@xpla/xpla.js/-/xpla.js-0.2.1.tgz", - "integrity": "sha512-+2v9/rxnRaaZBShT232bB3sow0JMe5ghIzLUPy7XJQasf6fu3mmVgMUIl9QCrILkuTZwh3yNsFOvkZTPH28Fmw==", + "node_modules/bip32": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/bip32/-/bip32-2.0.6.tgz", + "integrity": "sha512-HpV5OMLLGTjSVblmrtYRfFFKuQB+GArM0+XP8HGWfJ5vxYBqo+DesvJwOdC2WJ3bCkZShGf0QIfoIpeomVzVdA==", "dependencies": { - "@ethersproject/bytes": "^5.6.1", - "@ethersproject/keccak256": "^5.6.1", - "@ethersproject/signing-key": "^5.6.2", - "@terra-money/legacy.proto": "npm:@terra-money/terra.proto@^0.1.7", - "@terra-money/terra.proto": "^2.1.0", - "axios": "^0.26.1", - "bech32": "^2.0.0", - "bip32": "^2.0.6", - "bip39": "^3.0.3", - "bufferutil": "^4.0.3", - "crypto-addr-codec": "^0.1.7", - "decimal.js": "^10.2.1", - "elliptic": "^6.5.4", - "ethereumjs-util": "^7.1.5", - "jscrypto": "^1.0.1", - "readable-stream": "^3.6.0", - "secp256k1": "^4.0.2", - "tmp": "^0.2.1", - "utf-8-validate": "^5.0.5", - "ws": "^7.5.8" + "@types/node": "10.12.18", + "bs58check": "^2.1.1", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "tiny-secp256k1": "^1.1.3", + "typeforce": "^1.11.5", + "wif": "^2.0.6" }, "engines": { - "node": ">=14" + "node": ">=6.0.0" } }, - "node_modules/@xpla/xpla.js/node_modules/axios": { - "version": "0.26.1", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.26.1.tgz", - "integrity": "sha512-fPwcX4EvnSHuInCMItEhAGnaSEXRBjtzh9fOtsE6E1G6p7vl7edEeZe11QHf18+6+9gR5PbKV/sGKNaD8YaMeA==", + "node_modules/bip32/node_modules/@types/node": { + "version": "10.12.18", + "resolved": "https://registry.npmjs.org/@types/node/-/node-10.12.18.tgz", + "integrity": "sha512-fh+pAqt4xRzPfqA6eh3Z2y6fyZavRIumvjhaCL753+TVkGKGhpPeyrJG2JftD0T9q4GF00KjefsQ+PQNDdWQaQ==" + }, + "node_modules/bip39": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/bip39/-/bip39-3.0.4.tgz", + "integrity": "sha512-YZKQlb752TrUWqHWj7XAwCSjYEgGAk+/Aas3V7NyjQeZYsztO8JnQUaCWhcnL4T+jL8nvB8typ2jRPzTlgugNw==", "dependencies": { - "follow-redirects": "^1.14.8" + "@types/node": "11.11.6", + "create-hash": "^1.1.0", + "pbkdf2": "^3.0.9", + "randombytes": "^2.0.1" } }, - "node_modules/abab": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.5.tgz", - "integrity": "sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q==", - "dev": true + "node_modules/bip39/node_modules/@types/node": { + "version": "11.11.6", + "resolved": "https://registry.npmjs.org/@types/node/-/node-11.11.6.tgz", + "integrity": "sha512-Exw4yUWMBXM3X+8oqzJNRqZSwUAaS4+7NdvHqQuFi/d+synz++xmX3QIf+BFqneW8N31R8Ky+sikfZUXq07ggQ==" }, - "node_modules/abort-controller": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", - "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", - "dev": true, + "node_modules/bip66": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/bip66/-/bip66-1.1.5.tgz", + "integrity": "sha512-nemMHz95EmS38a26XbbdxIYj5csHd3RMP3H5bwQknX0WYHF01qhpufP42mLOwVICuH2JmhIhXiWs89MfUGL7Xw==", "optional": true, "dependencies": { - "event-target-shim": "^5.0.0" - }, - "engines": { - "node": ">=6.5" + "safe-buffer": "^5.0.1" } }, - "node_modules/abortcontroller-polyfill": { - "version": "1.7.5", - "resolved": "https://registry.npmjs.org/abortcontroller-polyfill/-/abortcontroller-polyfill-1.7.5.tgz", - "integrity": "sha512-JMJ5soJWP18htbbxJjG7bG6yuI6pRhgJ0scHHTfkUjf6wjP912xZWvM+A4sJK3gqd9E8fcPbDnOefbA9Th/FIQ==", + "node_modules/blakejs": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/blakejs/-/blakejs-1.1.1.tgz", + "integrity": "sha512-bLG6PHOCZJKNshTjGRBvET0vTciwQE6zFKOKKXPDJfwFBd4Ac0yBfPZqcGvGJap50l7ktvlpFqc2jGVaUgbJgg==" + }, + "node_modules/bluebird": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", + "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", "dev": true }, - "node_modules/abstract-leveldown": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-7.2.0.tgz", - "integrity": "sha512-DnhQwcFEaYsvYDnACLZhMmCWd3rkOeEvglpa4q5i/5Jlm3UIsWaxVzuXvDLFCSCWRO3yy2/+V/G7FusFgejnfQ==", + "node_modules/bn.js": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", + "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==" + }, + "node_modules/body-parser": { + "version": "1.19.1", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.1.tgz", + "integrity": "sha512-8ljfQi5eBk8EJfECMrgqNGWPEY5jWP+1IzkzkGdFFEwFQZZyaZ21UqdaHktgiMlH0xLHqIFtE/u2OYE5dOtViA==", "dev": true, - "optional": true, "dependencies": { - "buffer": "^6.0.3", - "catering": "^2.0.0", - "is-buffer": "^2.0.5", - "level-concat-iterator": "^3.0.0", - "level-supports": "^2.0.1", - "queue-microtask": "^1.2.3" + "bytes": "3.1.1", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "~1.1.2", + "http-errors": "1.8.1", + "iconv-lite": "0.4.24", + "on-finished": "~2.3.0", + "qs": "6.9.6", + "raw-body": "2.4.2", + "type-is": "~1.6.18" }, "engines": { - "node": ">=10" + "node": ">= 0.8" } }, - "node_modules/abstract-leveldown/node_modules/buffer": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", - "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "optional": true, + "node_modules/borsh": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/borsh/-/borsh-0.7.0.tgz", + "integrity": "sha512-CLCsZGIBCFnPtkNnieW/a8wmreDmfUtjU2m9yHrzPXIlNbqVs0AQrSatSG6vdNYUqdc83tkQi2eHfF98ubzQLA==", "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" + "bn.js": "^5.2.0", + "bs58": "^4.0.0", + "text-encoding-utf-8": "^1.0.2" } }, - "node_modules/accepts": { - "version": "1.3.7", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", - "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", - "dev": true, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dependencies": { - "mime-types": "~2.1.24", - "negotiator": "0.6.2" - }, - "engines": { - "node": ">= 0.6" + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" } }, - "node_modules/acorn": { - "version": "8.5.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.5.0.tgz", - "integrity": "sha512-yXbYeFy+jUuYd3/CDcg2NkIYE991XYX/bje7LmjJigUciaeO1JR4XxXgCIV1/Zc/dRuFEyw1L0pbA+qynJkW5Q==", + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", "dev": true, - "bin": { - "acorn": "bin/acorn" + "dependencies": { + "fill-range": "^7.0.1" }, "engines": { - "node": ">=0.4.0" + "node": ">=8" } }, - "node_modules/acorn-globals": { - "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, + "node_modules/brorand": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", + "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=" + }, + "node_modules/browser-headers": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/browser-headers/-/browser-headers-0.4.1.tgz", + "integrity": "sha512-CA9hsySZVo9371qEHjHZtYxV2cFtVj5Wj/ZHi8ooEsrtm4vOnl9Y9HmyYWk9q+05d7K3rdoAE0j3MVEFVvtQtg==" + }, + "node_modules/browser-process-hrtime": { + "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/browserify-aes": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", + "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", "dependencies": { - "acorn": "^7.1.1", - "acorn-walk": "^7.1.1" + "buffer-xor": "^1.0.3", + "cipher-base": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.3", + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" } }, - "node_modules/acorn-globals/node_modules/acorn": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", - "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", + "node_modules/browserify-cipher": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", + "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", "dev": true, - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" + "dependencies": { + "browserify-aes": "^1.0.4", + "browserify-des": "^1.0.0", + "evp_bytestokey": "^1.0.0" } }, - "node_modules/acorn-walk": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz", - "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==", + "node_modules/browserify-des": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", + "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", "dev": true, - "engines": { - "node": ">=0.4.0" + "dependencies": { + "cipher-base": "^1.0.1", + "des.js": "^1.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" } }, - "node_modules/aes-js": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/aes-js/-/aes-js-3.0.0.tgz", - "integrity": "sha512-H7wUZRn8WpTq9jocdxQ2c8x2sKo9ZVmzfRE13GiNJXfp7NcKYEdvl3vspKjXox6RIG2VtaRe4JFvxG4rqp2Zuw==", - "devOptional": true + "node_modules/browserify-rsa": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.1.0.tgz", + "integrity": "sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog==", + "dev": true, + "dependencies": { + "bn.js": "^5.0.0", + "randombytes": "^2.0.1" + } }, - "node_modules/agent-base": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "node_modules/browserify-sign": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.1.tgz", + "integrity": "sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg==", "dev": true, "dependencies": { - "debug": "4" - }, - "engines": { - "node": ">= 6.0.0" + "bn.js": "^5.1.1", + "browserify-rsa": "^4.0.1", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "elliptic": "^6.5.3", + "inherits": "^2.0.4", + "parse-asn1": "^5.1.5", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" } }, - "node_modules/agent-base/node_modules/debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", + "node_modules/browserslist": { + "version": "4.17.6", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.17.6.tgz", + "integrity": "sha512-uPgz3vyRTlEiCv4ee9KlsKgo2V6qPk7Jsn0KAn2OBqbqKo3iNcPEC1Ti6J4dwnz+aIRfEEEuOzC9IBk8tXUomw==", "dev": true, "dependencies": { - "ms": "2.1.2" + "caniuse-lite": "^1.0.30001274", + "electron-to-chromium": "^1.3.886", + "escalade": "^3.1.1", + "node-releases": "^2.0.1", + "picocolors": "^1.0.0" + }, + "bin": { + "browserslist": "cli.js" }, "engines": { - "node": ">=6.0" + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" } }, - "node_modules/agent-base/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "node_modules/ajv": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", - "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "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, - "optional": true, "dependencies": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" + "fast-json-stable-stringify": "2.x" }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" + "engines": { + "node": ">= 6" } }, - "node_modules/ajv-formats": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", - "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", - "dev": true, - "optional": true, + "node_modules/bs58": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz", + "integrity": "sha1-vhYedsNU9veIrkBx9j806MTwpCo=", "dependencies": { - "ajv": "^8.0.0" - }, - "peerDependencies": { - "ajv": "^8.0.0" - }, - "peerDependenciesMeta": { - "ajv": { - "optional": true - } + "base-x": "^3.0.2" } }, - "node_modules/algo-msgpack-with-bigint": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/algo-msgpack-with-bigint/-/algo-msgpack-with-bigint-2.1.1.tgz", - "integrity": "sha512-F1tGh056XczEaEAqu7s+hlZUDWwOBT70Eq0lfMpBP2YguSQVyxRbprLq5rELXKQOyOaixTWYhMeMQMzP0U5FoQ==", - "engines": { - "node": ">= 10" + "node_modules/bs58check": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/bs58check/-/bs58check-2.1.2.tgz", + "integrity": "sha512-0TS1jicxdU09dwJMNZtVAfzPi6Q6QeN0pM1Fkzrjn+XYHvzMKPU3pHVpva+769iNVSfIYWf7LJ6WR+BuuMf8cA==", + "dependencies": { + "bs58": "^4.0.0", + "create-hash": "^1.1.0", + "safe-buffer": "^5.1.2" } }, - "node_modules/algosdk": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/algosdk/-/algosdk-2.4.0.tgz", - "integrity": "sha512-sENe6IyUqvhQprfS/7gJAkPC5sX2LI5uc+gXaKNgzKp72UEyXYSoN3h4MZkOlCrOcTSWTJW7605tYgg8nFkflw==", + "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, "dependencies": { - "algo-msgpack-with-bigint": "^2.1.1", - "buffer": "^6.0.3", - "cross-fetch": "^3.1.5", - "hi-base32": "^0.5.1", - "js-sha256": "^0.9.0", - "js-sha3": "^0.8.0", - "js-sha512": "^0.8.0", - "json-bigint": "^1.0.0", - "tweetnacl": "^1.0.3", - "vlq": "^2.0.4" - }, - "engines": { - "node": ">=16.0.0" + "node-int64": "^0.4.0" } }, - "node_modules/algosdk/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/buffer": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.1.tgz", + "integrity": "sha512-rVAXBwEcEoYtxnHSO5iWyhzV/O1WMtkUYWlfdLS7FjU4PnSJJHEfHXi/uHPI5EwltmOA794gN3bm3/pzuctWjQ==", "funding": [ { "type": "github", @@ -5207,2552 +4616,2456 @@ "ieee754": "^1.2.1" } }, - "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==", - "dev": true, + "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/buffer-layout": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/buffer-layout/-/buffer-layout-1.2.2.tgz", + "integrity": "sha512-kWSuLN694+KTk8SrYvCqwP2WcgQjoRCiF5b4QDvkkz8EmgD+aWAIceGFKMIAdmF/pH+vpgNV3d3kAKorcdAmWA==", "engines": { - "node": ">=6" + "node": ">=4.5" } }, - "node_modules/ansi-escapes": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", - "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", - "dev": true, + "node_modules/buffer-to-arraybuffer": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/buffer-to-arraybuffer/-/buffer-to-arraybuffer-0.0.5.tgz", + "integrity": "sha512-3dthu5CYiVB1DEJp61FtApNnNndTckcqe4pFcLdvHtrpG+kcyekCJKg4MRiDcFW7A6AODnXB9U4dwQiCW5kzJQ==", + "dev": true + }, + "node_modules/buffer-xor": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", + "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=" + }, + "node_modules/bufferutil": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/bufferutil/-/bufferutil-4.0.3.tgz", + "integrity": "sha512-yEYTwGndELGvfXsImMBLop58eaGW+YdONi1fNjTINSY98tmMmFijBG6WXgdkfuLNt4imzQNtIE+eBp1PVpMCSw==", + "hasInstallScript": true, "dependencies": { - "type-fest": "^0.21.3" - }, + "node-gyp-build": "^4.2.0" + } + }, + "node_modules/builtin-modules": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", + "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=", + "dev": true, "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=0.10.0" } }, - "node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "devOptional": true, + "node_modules/bytes": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.1.tgz", + "integrity": "sha512-dWe4nWO/ruEOY7HkUJ5gFt1DCFV9zPRoJr8pV0/ASQermOZjtq8jMjOprC0Kd10GLN+l7xaUPvxzJFWtxGu8Fg==", + "dev": true, "engines": { - "node": ">=8" + "node": ">= 0.8" } }, - "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==", - "devOptional": true, - "dependencies": { - "color-convert": "^1.9.0" - }, + "node_modules/cacheable-lookup": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-6.1.0.tgz", + "integrity": "sha512-KJ/Dmo1lDDhmW2XDPMo+9oiy/CeqosPguPCrgcVzKyZrL6pM1gU2GmPY/xo6OQPTUaA/c0kwHuywB4E6nmT9ww==", + "dev": true, "engines": { - "node": ">=4" + "node": ">=10.6.0" } }, - "node_modules/anymatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", - "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", + "node_modules/cacheable-request": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-7.0.2.tgz", + "integrity": "sha512-pouW8/FmiPQbuGpkXQ9BAPv/Mo5xDGANgSNXzTzJ8DrKGuXOssM4wIQRjfanNRh3Yu5cfYPvcorqbhg2KIJtew==", "dev": true, "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" + "clone-response": "^1.0.2", + "get-stream": "^5.1.0", + "http-cache-semantics": "^4.0.0", + "keyv": "^4.0.0", + "lowercase-keys": "^2.0.0", + "normalize-url": "^6.0.1", + "responselike": "^2.0.0" }, "engines": { - "node": ">= 8" + "node": ">=8" } }, - "node_modules/apollo-datasource": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/apollo-datasource/-/apollo-datasource-3.3.2.tgz", - "integrity": "sha512-L5TiS8E2Hn/Yz7SSnWIVbZw0ZfEIXZCa5VUiVxD9P53JvSrf4aStvsFDlGWPvpIdCR+aly2CfoB79B9/JjKFqg==", - "deprecated": "The `apollo-datasource` package is part of Apollo Server v2 and v3, which are now deprecated (end-of-life October 22nd 2023). See https://www.apollographql.com/docs/apollo-server/previous-versions/ for more details.", + "node_modules/cacheable-request/node_modules/get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", "dev": true, - "optional": true, "dependencies": { - "@apollo/utils.keyvaluecache": "^1.0.1", - "apollo-server-env": "^4.2.1" + "pump": "^3.0.0" }, "engines": { - "node": ">=12.0" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/apollo-reporting-protobuf": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/apollo-reporting-protobuf/-/apollo-reporting-protobuf-3.3.3.tgz", - "integrity": "sha512-L3+DdClhLMaRZWVmMbBcwl4Ic77CnEBPXLW53F7hkYhkaZD88ivbCVB1w/x5gunO6ZHrdzhjq0FHmTsBvPo7aQ==", - "deprecated": "The `apollo-reporting-protobuf` package is part of Apollo Server v2 and v3, which are now deprecated (end-of-life October 22nd 2023). This package's functionality is now found in the `@apollo/usage-reporting-protobuf` package. See https://www.apollographql.com/docs/apollo-server/previous-versions/ for more details.", + "node_modules/cacheable-request/node_modules/lowercase-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", "dev": true, - "optional": true, - "dependencies": { - "@apollo/protobufjs": "1.2.6" + "engines": { + "node": ">=8" } }, - "node_modules/apollo-reporting-protobuf/node_modules/@apollo/protobufjs": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/@apollo/protobufjs/-/protobufjs-1.2.6.tgz", - "integrity": "sha512-Wqo1oSHNUj/jxmsVp4iR3I480p6qdqHikn38lKrFhfzcDJ7lwd7Ck7cHRl4JE81tWNArl77xhnG/OkZhxKBYOw==", + "node_modules/call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", "dev": true, - "hasInstallScript": true, - "optional": true, "dependencies": { - "@protobufjs/aspromise": "^1.1.2", - "@protobufjs/base64": "^1.1.2", - "@protobufjs/codegen": "^2.0.4", - "@protobufjs/eventemitter": "^1.1.0", - "@protobufjs/fetch": "^1.1.0", - "@protobufjs/float": "^1.0.2", - "@protobufjs/inquire": "^1.1.0", - "@protobufjs/path": "^1.1.2", - "@protobufjs/pool": "^1.1.0", - "@protobufjs/utf8": "^1.1.0", - "@types/long": "^4.0.0", - "@types/node": "^10.1.0", - "long": "^4.0.0" + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" }, - "bin": { - "apollo-pbjs": "bin/pbjs", - "apollo-pbts": "bin/pbts" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/apollo-reporting-protobuf/node_modules/@types/node": { - "version": "10.17.60", - "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.60.tgz", - "integrity": "sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw==", - "dev": true, - "optional": true - }, - "node_modules/apollo-server": { - "version": "3.11.1", - "resolved": "https://registry.npmjs.org/apollo-server/-/apollo-server-3.11.1.tgz", - "integrity": "sha512-3RZ/veWGbi0zXy2YVaPkYIAavpbHyEVui91DNYvz6UFS0fZmhJwG7f1VmGheeRiqiV8nFa8GuBejI1niTeAYzA==", - "deprecated": "The `apollo-server` package is part of Apollo Server v2 and v3, which are now deprecated (end-of-life October 22nd 2023). This package's functionality is now found in the `@apollo/server` package. See https://www.apollographql.com/docs/apollo-server/previous-versions/ for more details.", + "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, - "optional": true, - "dependencies": { - "@types/express": "4.17.14", - "apollo-server-core": "^3.11.1", - "apollo-server-express": "^3.11.1", - "express": "^4.17.1" - }, - "peerDependencies": { - "graphql": "^15.3.0 || ^16.0.0" + "engines": { + "node": ">=6" } }, - "node_modules/apollo-server-core": { - "version": "3.11.1", - "resolved": "https://registry.npmjs.org/apollo-server-core/-/apollo-server-core-3.11.1.tgz", - "integrity": "sha512-t/eCKrRFK1lYZlc5pHD99iG7Np7CEm3SmbDiONA7fckR3EaB/pdsEdIkIwQ5QBBpT5JLp/nwvrZRVwhaWmaRvw==", - "deprecated": "The `apollo-server-core` package is part of Apollo Server v2 and v3, which are now deprecated (end-of-life October 22nd 2023). This package's functionality is now found in the `@apollo/server` package. See https://www.apollographql.com/docs/apollo-server/previous-versions/ for more details.", - "dev": true, - "optional": true, - "dependencies": { - "@apollo/utils.keyvaluecache": "^1.0.1", - "@apollo/utils.logger": "^1.0.0", - "@apollo/utils.usagereporting": "^1.0.0", - "@apollographql/apollo-tools": "^0.5.3", - "@apollographql/graphql-playground-html": "1.6.29", - "@graphql-tools/mock": "^8.1.2", - "@graphql-tools/schema": "^8.0.0", - "@josephg/resolvable": "^1.0.0", - "apollo-datasource": "^3.3.2", - "apollo-reporting-protobuf": "^3.3.3", - "apollo-server-env": "^4.2.1", - "apollo-server-errors": "^3.3.1", - "apollo-server-plugin-base": "^3.7.1", - "apollo-server-types": "^3.7.1", - "async-retry": "^1.2.1", - "fast-json-stable-stringify": "^2.1.0", - "graphql-tag": "^2.11.0", - "loglevel": "^1.6.8", - "lru-cache": "^6.0.0", - "node-abort-controller": "^3.0.1", - "sha.js": "^2.4.11", - "uuid": "^9.0.0", - "whatwg-mimetype": "^3.0.0" - }, + "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": ">=12.0" - }, - "peerDependencies": { - "graphql": "^15.3.0 || ^16.0.0" + "node": ">=6" } }, - "node_modules/apollo-server-core/node_modules/uuid": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.0.tgz", - "integrity": "sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg==", + "node_modules/caniuse-lite": { + "version": "1.0.30001277", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001277.tgz", + "integrity": "sha512-J2WtYj2Pl6LBEG214XmbGw1gzZEsYuinQFPqYtpZDB3/vm49qNlrcbJrTMkHKmdRDdmXYwkG0tgOBJsuI+J12Q==", "dev": true, - "optional": true, - "bin": { - "uuid": "dist/bin/uuid" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" } }, - "node_modules/apollo-server-core/node_modules/whatwg-mimetype": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-3.0.0.tgz", - "integrity": "sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==", - "dev": true, - "optional": true, - "engines": { - "node": ">=12" - } + "node_modules/capability": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/capability/-/capability-0.2.5.tgz", + "integrity": "sha512-rsJZYVCgXd08sPqwmaIqjAd5SUTfonV0z/gDJ8D6cN8wQphky1kkAYEqQ+hmDxTw7UihvBfjUVUSY+DBEe44jg==" }, - "node_modules/apollo-server-env": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/apollo-server-env/-/apollo-server-env-4.2.1.tgz", - "integrity": "sha512-vm/7c7ld+zFMxibzqZ7SSa5tBENc4B0uye9LTfjJwGoQFY5xsUPH5FpO5j0bMUDZ8YYNbrF9SNtzc5Cngcr90g==", - "deprecated": "The `apollo-server-env` package is part of Apollo Server v2 and v3, which are now deprecated (end-of-life October 22nd 2023). This package's functionality is now found in the `@apollo/utils.fetcher` package. See https://www.apollographql.com/docs/apollo-server/previous-versions/ for more details.", - "dev": true, - "optional": true, + "node_modules/caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==", + "dev": true + }, + "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==", + "devOptional": true, "dependencies": { - "node-fetch": "^2.6.7" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" }, "engines": { - "node": ">=12.0" + "node": ">=4" } }, - "node_modules/apollo-server-errors": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/apollo-server-errors/-/apollo-server-errors-3.3.1.tgz", - "integrity": "sha512-xnZJ5QWs6FixHICXHxUfm+ZWqqxrNuPlQ+kj5m6RtEgIpekOPssH/SD9gf2B4HuWV0QozorrygwZnux8POvyPA==", - "deprecated": "The `apollo-server-errors` package is part of Apollo Server v2 and v3, which are now deprecated (end-of-life October 22nd 2023). This package's functionality is now found in the `@apollo/server` package. See https://www.apollographql.com/docs/apollo-server/previous-versions/ for more details.", + "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, - "optional": true, "engines": { - "node": ">=12.0" - }, - "peerDependencies": { - "graphql": "^15.3.0 || ^16.0.0" + "node": ">=10" } }, - "node_modules/apollo-server-express": { - "version": "3.11.1", - "resolved": "https://registry.npmjs.org/apollo-server-express/-/apollo-server-express-3.11.1.tgz", - "integrity": "sha512-x9ngcpXbBlt4naCXTwNtBFb/mOd9OU0wtFXvJkObHF26NsRazu3DxDfEuekA6V1NFOocD+A9jmVMQeQWug5MgA==", - "deprecated": "The `apollo-server-express` package is part of Apollo Server v2 and v3, which are now deprecated (end-of-life October 22nd 2023). This package's functionality is now found in the `@apollo/server` package. See https://www.apollographql.com/docs/apollo-server/previous-versions/ for more details.", + "node_modules/chownr": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", + "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", + "dev": true + }, + "node_modules/ci-info": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.2.0.tgz", + "integrity": "sha512-dVqRX7fLUm8J6FgHJ418XuIgDLZDkYcDFTeL6TA2gt5WlIZUQrrH6EZrNClwT/H0FateUsZkGIOPRrLbP+PR9A==", + "dev": true + }, + "node_modules/cids": { + "version": "0.7.5", + "resolved": "https://registry.npmjs.org/cids/-/cids-0.7.5.tgz", + "integrity": "sha512-zT7mPeghoWAu+ppn8+BS1tQ5qGmbMfB4AregnQjA/qHY3GC1m1ptI9GkWNlgeu38r7CuRdXB47uY2XgAYt6QVA==", + "deprecated": "This module has been superseded by the multiformats module", "dev": true, - "optional": true, "dependencies": { - "@types/accepts": "^1.3.5", - "@types/body-parser": "1.19.2", - "@types/cors": "2.8.12", - "@types/express": "4.17.14", - "@types/express-serve-static-core": "4.17.31", - "accepts": "^1.3.5", - "apollo-server-core": "^3.11.1", - "apollo-server-types": "^3.7.1", - "body-parser": "^1.19.0", - "cors": "^2.8.5", - "parseurl": "^1.3.3" + "buffer": "^5.5.0", + "class-is": "^1.1.0", + "multibase": "~0.6.0", + "multicodec": "^1.0.0", + "multihashes": "~0.4.15" }, "engines": { - "node": ">=12.0" - }, - "peerDependencies": { - "express": "^4.17.1", - "graphql": "^15.3.0 || ^16.0.0" + "node": ">=4.0.0", + "npm": ">=3.0.0" } }, - "node_modules/apollo-server-plugin-base": { - "version": "3.7.1", - "resolved": "https://registry.npmjs.org/apollo-server-plugin-base/-/apollo-server-plugin-base-3.7.1.tgz", - "integrity": "sha512-g3vJStmQtQvjGI289UkLMfThmOEOddpVgHLHT2bNj0sCD/bbisj4xKbBHETqaURokteqSWyyd4RDTUe0wAUDNQ==", - "deprecated": "The `apollo-server-plugin-base` package is part of Apollo Server v2 and v3, which are now deprecated (end-of-life October 22nd 2023). This package's functionality is now found in the `@apollo/server` package. See https://www.apollographql.com/docs/apollo-server/previous-versions/ for more details.", + "node_modules/cids/node_modules/buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", "dev": true, - "optional": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], "dependencies": { - "apollo-server-types": "^3.7.1" - }, - "engines": { - "node": ">=12.0" - }, - "peerDependencies": { - "graphql": "^15.3.0 || ^16.0.0" + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" } }, - "node_modules/apollo-server-types": { - "version": "3.7.1", - "resolved": "https://registry.npmjs.org/apollo-server-types/-/apollo-server-types-3.7.1.tgz", - "integrity": "sha512-aE9RDVplmkaOj/OduNmGa+0a1B5RIWI0o3zC1zLvBTVWMKTpo0ifVf11TyMkLCY+T7cnZqVqwyShziOyC3FyUw==", - "deprecated": "The `apollo-server-types` package is part of Apollo Server v2 and v3, which are now deprecated (end-of-life October 22nd 2023). This package's functionality is now found in the `@apollo/server` package. See https://www.apollographql.com/docs/apollo-server/previous-versions/ for more details.", + "node_modules/cids/node_modules/multicodec": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/multicodec/-/multicodec-1.0.4.tgz", + "integrity": "sha512-NDd7FeS3QamVtbgfvu5h7fd1IlbaC4EQ0/pgU4zqE2vdHCmBGsUa0TiM8/TdSeG6BMPC92OOCf8F1ocE/Wkrrg==", + "deprecated": "This module has been superseded by the multiformats module", "dev": true, - "optional": true, "dependencies": { - "@apollo/utils.keyvaluecache": "^1.0.1", - "@apollo/utils.logger": "^1.0.0", - "apollo-reporting-protobuf": "^3.3.3", - "apollo-server-env": "^4.2.1" - }, - "engines": { - "node": ">=12.0" - }, - "peerDependencies": { - "graphql": "^15.3.0 || ^16.0.0" + "buffer": "^5.6.0", + "varint": "^5.0.0" } }, - "node_modules/app-module-path": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/app-module-path/-/app-module-path-2.2.0.tgz", - "integrity": "sha512-gkco+qxENJV+8vFcDiiFhuoSvRXb2a/QPqpSoWhVz829VNJfOTnELbBmPmNKFxf3xdNnw4DWCkzkDaavcX/1YQ==", - "dev": true - }, - "node_modules/aptos": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/aptos/-/aptos-1.5.0.tgz", - "integrity": "sha512-N7OuRtU7IYHkDkNx+4QS3g/QQGCp+36KzYn3oXPmT7Kttfuv+UKliQVdjy3cLmwd/DCQSh9ObTovwdxnHjUn0g==", + "node_modules/cipher-base": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", + "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", "dependencies": { - "@noble/hashes": "1.1.3", - "@scure/bip39": "1.1.0", - "axios": "0.27.2", - "form-data": "4.0.0", - "tweetnacl": "1.0.3" - }, - "engines": { - "node": ">=11.0.0" + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" } }, - "node_modules/aptos/node_modules/axios": { - "version": "0.27.2", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.27.2.tgz", - "integrity": "sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==", - "dependencies": { - "follow-redirects": "^1.14.9", - "form-data": "^4.0.0" - } + "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/aptos/node_modules/form-data": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", - "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "node_modules/class-is": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/class-is/-/class-is-1.1.0.tgz", + "integrity": "sha512-rhjH9AG1fvabIDoGRVH587413LPjTZgmDF9fOFCbFJQV4yuocX1mHxxvXI4g3cGwbVY9wAYIoKlg1N79frJKQw==", + "dev": true + }, + "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==", + "devOptional": true, "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 6" + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" } }, - "node_modules/argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "node_modules/clone-response": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.3.tgz", + "integrity": "sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==", "dev": true, "dependencies": { - "sprintf-js": "~1.0.2" + "mimic-response": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/argsarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/argsarray/-/argsarray-0.0.1.tgz", - "integrity": "sha512-u96dg2GcAKtpTrBdDoFIM7PjcBA+6rSP0OR94MOReNRyUECL6MtQt5XXmRr4qrftYaef9+l5hcpO5te7sML1Cg==", - "dev": true, - "optional": true - }, - "node_modules/array-back": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-2.0.0.tgz", - "integrity": "sha512-eJv4pLLufP3g5kcZry0j6WXpIbzYw9GUB4mVJZno9wfwiBxbizTnHCw3VJb07cBihbFX48Y7oSrW9y+gt4glyw==", + "node_modules/co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", "dev": true, - "dependencies": { - "typical": "^2.6.1" - }, "engines": { - "node": ">=4" + "iojs": ">= 1.0.0", + "node": ">= 0.12.0" } }, - "node_modules/array-flatten": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", - "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=", + "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/asn1": { - "version": "0.2.6", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz", - "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==", - "dev": true, + "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==", + "devOptional": true, "dependencies": { - "safer-buffer": "~2.1.0" + "color-name": "1.1.3" } }, - "node_modules/asn1.js": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz", - "integrity": "sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==", - "dev": true, + "node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "devOptional": true + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", "dependencies": { - "bn.js": "^4.0.0", - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0", - "safer-buffer": "^2.1.0" + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" } }, - "node_modules/asn1.js/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - }, - "node_modules/assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==", + "node_modules/command-line-args": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/command-line-args/-/command-line-args-4.0.7.tgz", + "integrity": "sha512-aUdPvQRAyBvQd2n7jXcsMDz68ckBJELXNzBybCHOibUWEg0mWTnaYCSRU8h9R+aNRSvDihJtssSRCiDRpLaezA==", "dev": true, - "engines": { - "node": ">=0.8" + "dependencies": { + "array-back": "^2.0.0", + "find-replace": "^1.0.3", + "typical": "^2.6.1" + }, + "bin": { + "command-line-args": "bin/cli.js" } }, - "node_modules/async-limiter": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz", - "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==", - "dev": true + "node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" }, - "node_modules/async-retry": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/async-retry/-/async-retry-1.3.3.tgz", - "integrity": "sha512-wfr/jstw9xNi/0teMHrRW7dsz3Lt5ARhYNZ2ewpadnhaIp5mbALhOAP+EAdsC7t4Z6wqsDVv9+W6gm1Dk9mEyw==", + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" + }, + "node_modules/content-disposition": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", + "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", "dev": true, - "optional": true, "dependencies": { - "retry": "0.13.1" + "safe-buffer": "5.2.1" + }, + "engines": { + "node": ">= 0.6" } }, - "node_modules/asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" - }, - "node_modules/at-least-node": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", - "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", + "node_modules/content-hash": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/content-hash/-/content-hash-2.5.2.tgz", + "integrity": "sha512-FvIQKy0S1JaWV10sMsA7TRx8bpU+pqPkhbsfvOJAdjRXvYxEckAwQWGwtRjiaJfh+E0DvcWUGqcdjwMGFjsSdw==", "dev": true, - "optional": true, - "engines": { - "node": ">= 4.0.0" + "dependencies": { + "cids": "^0.7.1", + "multicodec": "^0.5.5", + "multihashes": "^0.4.15" } }, - "node_modules/atomically": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/atomically/-/atomically-1.7.0.tgz", - "integrity": "sha512-Xcz9l0z7y9yQ9rdDaxlmaI4uJHf/T8g9hOEzJcsEqX2SjCj4J20uK7+ldkDHMbpJDK76wF7xEIgxc/vSlsfw5w==", + "node_modules/content-type": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", + "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==", "dev": true, - "optional": true, "engines": { - "node": ">=10.12.0" + "node": ">= 0.6" } }, - "node_modules/available-typed-arrays": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", - "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", + "node_modules/convert-source-map": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz", + "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==", "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "dependencies": { + "safe-buffer": "~5.1.1" } }, - "node_modules/aws-sign2": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", - "integrity": "sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==", + "node_modules/convert-source-map/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "node_modules/cookie": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.1.tgz", + "integrity": "sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA==", "dev": true, "engines": { - "node": "*" + "node": ">= 0.6" } }, - "node_modules/aws4": { - "version": "1.12.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.12.0.tgz", - "integrity": "sha512-NmWvPnx0F1SfrQbYwOi7OeaNGokp9XhzNioJ/CSBs8Qa4vxug81mhJEAVZwxXuBmYB5KDRfMq/F3RR0BIU7sWg==", + "node_modules/cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=", "dev": true }, - "node_modules/axios": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.24.0.tgz", - "integrity": "sha512-Q6cWsys88HoPgAaFAVUb0WpPk0O8iTeisR9IMqy9G8AbO4NlpVknrnQS03zzF9PGAWgO3cgletO3VjV/P7VztA==", + "node_modules/copy-dir": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/copy-dir/-/copy-dir-1.3.0.tgz", + "integrity": "sha512-Q4+qBFnN4bwGwvtXXzbp4P/4iNk0MaiGAzvQ8OiMtlLjkIKjmNN689uVzShSM0908q7GoFHXIPx4zi75ocoaHw==", + "dev": true + }, + "node_modules/copyfiles": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/copyfiles/-/copyfiles-2.4.1.tgz", + "integrity": "sha512-fereAvAvxDrQDOXybk3Qu3dPbOoKoysFMWtkY3mv5BsL8//OSZVL5DCLYqgRfY5cWirgRzlC+WSrxp6Bo3eNZg==", + "optional": true, "dependencies": { - "follow-redirects": "^1.14.4" + "glob": "^7.0.5", + "minimatch": "^3.0.3", + "mkdirp": "^1.0.4", + "noms": "0.0.0", + "through2": "^2.0.1", + "untildify": "^4.0.0", + "yargs": "^16.1.0" + }, + "bin": { + "copyfiles": "copyfiles", + "copyup": "copyfiles" } }, - "node_modules/babel-jest": { - "version": "27.3.1", - "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-27.3.1.tgz", - "integrity": "sha512-SjIF8hh/ir0peae2D6S6ZKRhUy7q/DnpH7k/V6fT4Bgs/LXXUztOpX4G2tCgq8mLo5HA9mN6NmlFMeYtKmIsTQ==", - "dev": true, - "dependencies": { - "@jest/transform": "^27.3.1", - "@jest/types": "^27.2.5", - "@types/babel__core": "^7.1.14", - "babel-plugin-istanbul": "^6.0.0", - "babel-preset-jest": "^27.2.0", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", - "slash": "^3.0.0" + "node_modules/copyfiles/node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "optional": true, + "bin": { + "mkdirp": "bin/cmd.js" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - }, - "peerDependencies": { - "@babel/core": "^7.8.0" + "node": ">=10" } }, - "node_modules/babel-jest/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "node_modules/core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", + "devOptional": true + }, + "node_modules/cors": { + "version": "2.8.5", + "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", + "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", "dev": true, "dependencies": { - "color-convert": "^2.0.1" + "object-assign": "^4", + "vary": "^1" }, "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "node": ">= 0.10" } }, - "node_modules/babel-jest/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, + "node_modules/cosmjs-types": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/cosmjs-types/-/cosmjs-types-0.7.2.tgz", + "integrity": "sha512-vf2uLyktjr/XVAgEq0DjMxeAWh1yYREe7AMHDKd7EiHVqxBPCaBS+qEEQUkXbR9ndnckqr1sUG8BQhazh4X5lA==", + "optional": true, "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "long": "^4.0.0", + "protobufjs": "~6.11.2" } }, - "node_modules/babel-jest/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, + "node_modules/crc-32": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/crc-32/-/crc-32-1.2.0.tgz", + "integrity": "sha512-1uBwHxF+Y/4yF5G48fwnKq6QsIXheor3ZLPT80yGBV1oEUwpPojlEhQbWKVw1VwcTQyMGHK1/XMmTjmlsmTTGA==", + "devOptional": true, "dependencies": { - "color-name": "~1.1.4" + "exit-on-epipe": "~1.0.1", + "printj": "~1.1.0" + }, + "bin": { + "crc32": "bin/crc32.njs" }, "engines": { - "node": ">=7.0.0" + "node": ">=0.8" } }, - "node_modules/babel-jest/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "node_modules/create-ecdh": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz", + "integrity": "sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==", + "dev": true, + "dependencies": { + "bn.js": "^4.1.0", + "elliptic": "^6.5.3" + } + }, + "node_modules/create-ecdh/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", "dev": true }, - "node_modules/babel-jest/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" + "node_modules/create-hash": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", + "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", + "dependencies": { + "cipher-base": "^1.0.1", + "inherits": "^2.0.1", + "md5.js": "^1.3.4", + "ripemd160": "^2.0.1", + "sha.js": "^2.4.0" } }, - "node_modules/babel-jest/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "node_modules/create-hmac": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", + "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", + "dependencies": { + "cipher-base": "^1.0.3", + "create-hash": "^1.1.0", + "inherits": "^2.0.1", + "ripemd160": "^2.0.0", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + } + }, + "node_modules/cross-fetch": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.5.tgz", + "integrity": "sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw==", + "dependencies": { + "node-fetch": "2.6.7" + } + }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", "dev": true, "dependencies": { - "has-flag": "^4.0.0" + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" }, "engines": { - "node": ">=8" + "node": ">= 8" } }, - "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==", + "node_modules/crypto-addr-codec": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/crypto-addr-codec/-/crypto-addr-codec-0.1.7.tgz", + "integrity": "sha512-X4hzfBzNhy4mAc3UpiXEC/L0jo5E8wAa9unsnA8nNXYzXjCcGk83hfC5avJWCSGT8V91xMnAS9AKMHmjw5+XCg==", + "dependencies": { + "base-x": "^3.0.8", + "big-integer": "1.6.36", + "blakejs": "^1.1.0", + "bs58": "^4.0.1", + "ripemd160-min": "0.0.6", + "safe-buffer": "^5.2.0", + "sha3": "^2.1.1" + } + }, + "node_modules/crypto-browserify": { + "version": "3.12.0", + "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", + "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", "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" + "browserify-cipher": "^1.0.0", + "browserify-sign": "^4.0.0", + "create-ecdh": "^4.0.0", + "create-hash": "^1.1.0", + "create-hmac": "^1.1.0", + "diffie-hellman": "^5.0.0", + "inherits": "^2.0.1", + "pbkdf2": "^3.0.3", + "public-encrypt": "^4.0.0", + "randombytes": "^2.0.0", + "randomfill": "^1.0.3" }, + "engines": { + "node": "*" + } + }, + "node_modules/crypto-hash": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/crypto-hash/-/crypto-hash-1.3.0.tgz", + "integrity": "sha512-lyAZ0EMyjDkVvz8WOeVnuCPvKVBXcMv1l5SVqO1yC7PzTwrD/pPje/BIRbWhMoPe436U+Y2nD7f5bFx0kt+Sbg==", "engines": { "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/babel-plugin-istanbul/node_modules/istanbul-lib-instrument": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.1.0.tgz", - "integrity": "sha512-czwUz525rkOFDJxfKK6mYfIs9zBKILyrZQxjz3ABhjQXhbhFsSbo1HW/BFcsDnfJYJWA6thRR5/TUY2qs5W99Q==", + "node_modules/cssom": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.4.4.tgz", + "integrity": "sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw==", + "dev": 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, "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" + "cssom": "~0.3.6" }, "engines": { "node": ">=8" } }, - "node_modules/babel-plugin-istanbul/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "node_modules/cssstyle/node_modules/cssom": { + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", + "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==", + "dev": true + }, + "node_modules/csstype": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.0.8.tgz", + "integrity": "sha512-jXKhWqXPmlUeoQnF/EhTtTl4C9SnrxSH/jZUih3jmO6lBKr99rP3/+FmrMj4EFpOXzMtXHAZkd3x0E6h6Fgflw==", + "dev": true + }, + "node_modules/d": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz", + "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==", "dev": true, - "bin": { - "semver": "bin/semver.js" + "dependencies": { + "es5-ext": "^0.10.50", + "type": "^1.0.1" } }, - "node_modules/babel-plugin-jest-hoist": { - "version": "27.2.0", - "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-27.2.0.tgz", - "integrity": "sha512-TOux9khNKdi64mW+0OIhcmbAn75tTlzKhxmiNXevQaPbrBYK7YKjP1jl6NHTJ6XR5UgUrJbCnWlKVnJn29dfjw==", + "node_modules/dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==", "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" + "assert-plus": "^1.0.0" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": ">=0.10" } }, - "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==", + "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, "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" + "abab": "^2.0.3", + "whatwg-mimetype": "^2.3.0", + "whatwg-url": "^8.0.0" }, - "peerDependencies": { - "@babel/core": "^7.0.0" + "engines": { + "node": ">=10" } }, - "node_modules/babel-preset-jest": { - "version": "27.2.0", - "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-27.2.0.tgz", - "integrity": "sha512-z7MgQ3peBwN5L5aCqBKnF6iqdlvZvFUQynEhu0J+X9nHLU72jO3iY331lcYrg+AssJ8q7xsv5/3AICzVmJ/wvg==", + "node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, "dependencies": { - "babel-plugin-jest-hoist": "^27.2.0", - "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" + "ms": "2.0.0" } }, - "node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + "node_modules/decimal.js": { + "version": "10.3.1", + "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.3.1.tgz", + "integrity": "sha512-V0pfhfr8suzyPGOx3nmq4aHqabehUZn6Ch9kyFpV79TGDTWFmHqUqXdabR7QHqxzrYolF4+tVmJhUG4OURg5dQ==" }, - "node_modules/base-x": { - "version": "3.0.8", - "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.8.tgz", - "integrity": "sha512-Rl/1AWP4J/zRrk54hhlxH4drNxPJXYUaKffODVI53/dAsV4t9fBxyxYKAVPU1XBHxYwOWP9h9H0hM2MVw4YfJA==", - "dependencies": { - "safe-buffer": "^5.0.1" + "node_modules/decode-uri-component": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.2.tgz", + "integrity": "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==", + "dev": true, + "engines": { + "node": ">=0.10" } }, - "node_modules/base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", - "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/bcrypt-pbkdf": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", - "integrity": "sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==", + "node_modules/decompress-response": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", + "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", "dev": true, "dependencies": { - "tweetnacl": "^0.14.3" + "mimic-response": "^3.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/bcrypt-pbkdf/node_modules/tweetnacl": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==", + "node_modules/decompress-response/node_modules/mimic-response": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", + "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/dedent": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", + "integrity": "sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw=", "dev": true }, - "node_modules/bech32": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/bech32/-/bech32-2.0.0.tgz", - "integrity": "sha512-LcknSilhIGatDAsY1ak2I8VtGaHNhgMSYVxFrGLXv+xLHytaKZKcaUJJUE7qmBr7h33o5YQwP55pMI0xmkpJwg==" + "node_modules/deep-is": { + "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/big-integer": { - "version": "1.6.36", - "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.36.tgz", - "integrity": "sha512-t70bfa7HYEA1D9idDbmuv7YbsbVkQ+Hp+8KFSul4aE5e/i1bjCNIRYJZlA8Q8p0r9T8cF/RVvwUgRA//FydEyg==", + "node_modules/deepmerge": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", + "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==", + "dev": true, "engines": { - "node": ">=0.6" + "node": ">=0.10.0" } }, - "node_modules/big.js": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/big.js/-/big.js-6.2.1.tgz", - "integrity": "sha512-bCtHMwL9LeDIozFn+oNhhFoq+yQ3BNdnsLSASUxLciOb1vgvpHsIO1dsENiGMgbb4SkP5TrzWzRiLddn8ahVOQ==", + "node_modules/defer-to-connect": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz", + "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==", "dev": true, "engines": { - "node": "*" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/bigjs" + "node": ">=10" } }, - "node_modules/bigint-buffer": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/bigint-buffer/-/bigint-buffer-1.1.5.tgz", - "integrity": "sha512-trfYco6AoZ+rKhKnxA0hgX0HAbVP/s808/EuDSe2JDzUnCp/xAsli35Orvk67UrTEcwuxZqYZDmfA2RXJgxVvA==", - "hasInstallScript": true, + "node_modules/define-properties": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.0.tgz", + "integrity": "sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA==", + "optional": true, "dependencies": { - "bindings": "^1.3.0" + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" }, "engines": { - "node": ">= 10.0.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/bignumber.js": { - "version": "9.0.2", - "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.0.2.tgz", - "integrity": "sha512-GAcQvbpsM0pUb0zw1EI0KhQEZ+lRwR5fYaAp3vPOYuP7aDvGy6cVN6XHLauvF8SOga2y0dcLcjt3iQDTSEliyw==", + "node_modules/delay": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/delay/-/delay-5.0.0.tgz", + "integrity": "sha512-ReEBKkIfe4ya47wlPYf/gu5ib6yUG0/Aez0JQZQz94kiWtRQvZIQbTiehsnwHvLSWJnQdhVeqYue7Id1dKr0qw==", "engines": { - "node": "*" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/binary-extensions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", - "dev": true, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", "engines": { - "node": ">=8" + "node": ">=0.4.0" } }, - "node_modules/binary-parser": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/binary-parser/-/binary-parser-2.2.1.tgz", - "integrity": "sha512-5ATpz/uPDgq5GgEDxTB4ouXCde7q2lqAQlSdBRQVl/AJnxmQmhIfyxJx+0MGu//D5rHQifkfGbWWlaysG0o9NA==", + "node_modules/depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", "engines": { - "node": ">=12" + "node": ">= 0.6" } }, - "node_modules/bindings": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", - "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", + "node_modules/des.js": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz", + "integrity": "sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==", + "dev": true, "dependencies": { - "file-uri-to-path": "1.0.0" + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" } }, - "node_modules/bip32": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/bip32/-/bip32-2.0.6.tgz", - "integrity": "sha512-HpV5OMLLGTjSVblmrtYRfFFKuQB+GArM0+XP8HGWfJ5vxYBqo+DesvJwOdC2WJ3bCkZShGf0QIfoIpeomVzVdA==", - "dependencies": { - "@types/node": "10.12.18", - "bs58check": "^2.1.1", - "create-hash": "^1.2.0", - "create-hmac": "^1.1.7", - "tiny-secp256k1": "^1.1.3", - "typeforce": "^1.11.5", - "wif": "^2.0.6" - }, + "node_modules/destroy": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", + "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=", + "dev": true + }, + "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, "engines": { - "node": ">=6.0.0" + "node": ">=8" } }, - "node_modules/bip32/node_modules/@types/node": { - "version": "10.12.18", - "resolved": "https://registry.npmjs.org/@types/node/-/node-10.12.18.tgz", - "integrity": "sha512-fh+pAqt4xRzPfqA6eh3Z2y6fyZavRIumvjhaCL753+TVkGKGhpPeyrJG2JftD0T9q4GF00KjefsQ+PQNDdWQaQ==" - }, - "node_modules/bip39": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/bip39/-/bip39-3.0.4.tgz", - "integrity": "sha512-YZKQlb752TrUWqHWj7XAwCSjYEgGAk+/Aas3V7NyjQeZYsztO8JnQUaCWhcnL4T+jL8nvB8typ2jRPzTlgugNw==", - "dependencies": { - "@types/node": "11.11.6", - "create-hash": "^1.1.0", - "pbkdf2": "^3.0.9", - "randombytes": "^2.0.1" + "node_modules/diff": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", + "dev": true, + "engines": { + "node": ">=0.3.1" } }, - "node_modules/bip39/node_modules/@types/node": { - "version": "11.11.6", - "resolved": "https://registry.npmjs.org/@types/node/-/node-11.11.6.tgz", - "integrity": "sha512-Exw4yUWMBXM3X+8oqzJNRqZSwUAaS4+7NdvHqQuFi/d+synz++xmX3QIf+BFqneW8N31R8Ky+sikfZUXq07ggQ==" + "node_modules/diff-sequences": { + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-27.0.6.tgz", + "integrity": "sha512-ag6wfpBFyNXZ0p8pcuIDS//D8H062ZQJ3fzYxjpmeKjnz8W4pekL3AI8VohmyZmsWW2PWaHgjsmqR6L13101VQ==", + "dev": true, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } }, - "node_modules/bip66": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/bip66/-/bip66-1.1.5.tgz", - "integrity": "sha512-nemMHz95EmS38a26XbbdxIYj5csHd3RMP3H5bwQknX0WYHF01qhpufP42mLOwVICuH2JmhIhXiWs89MfUGL7Xw==", - "optional": true, + "node_modules/diffie-hellman": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", + "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", + "dev": true, "dependencies": { - "safe-buffer": "^5.0.1" + "bn.js": "^4.1.0", + "miller-rabin": "^4.0.0", + "randombytes": "^2.0.0" } }, - "node_modules/blakejs": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/blakejs/-/blakejs-1.1.1.tgz", - "integrity": "sha512-bLG6PHOCZJKNshTjGRBvET0vTciwQE6zFKOKKXPDJfwFBd4Ac0yBfPZqcGvGJap50l7ktvlpFqc2jGVaUgbJgg==" - }, - "node_modules/bluebird": { - "version": "3.7.2", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", - "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", + "node_modules/diffie-hellman/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", "dev": true }, - "node_modules/bn.js": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", - "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==" + "node_modules/dom-walk": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/dom-walk/-/dom-walk-0.1.2.tgz", + "integrity": "sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w==", + "dev": true }, - "node_modules/body-parser": { - "version": "1.19.1", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.1.tgz", - "integrity": "sha512-8ljfQi5eBk8EJfECMrgqNGWPEY5jWP+1IzkzkGdFFEwFQZZyaZ21UqdaHktgiMlH0xLHqIFtE/u2OYE5dOtViA==", + "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, "dependencies": { - "bytes": "3.1.1", - "content-type": "~1.0.4", - "debug": "2.6.9", - "depd": "~1.1.2", - "http-errors": "1.8.1", - "iconv-lite": "0.4.24", - "on-finished": "~2.3.0", - "qs": "6.9.6", - "raw-body": "2.4.2", - "type-is": "~1.6.18" + "webidl-conversions": "^5.0.0" }, "engines": { - "node": ">= 0.8" + "node": ">=8" } }, - "node_modules/borsh": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/borsh/-/borsh-0.7.0.tgz", - "integrity": "sha512-CLCsZGIBCFnPtkNnieW/a8wmreDmfUtjU2m9yHrzPXIlNbqVs0AQrSatSG6vdNYUqdc83tkQi2eHfF98ubzQLA==", + "node_modules/domexception/node_modules/webidl-conversions": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-5.0.0.tgz", + "integrity": "sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/dot-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz", + "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==", "dependencies": { - "bn.js": "^5.2.0", - "bs58": "^4.0.0", - "text-encoding-utf-8": "^1.0.2" + "no-case": "^3.0.4", + "tslib": "^2.0.3" } }, - "node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "node_modules/dot-case/node_modules/tslib": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", + "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" + }, + "node_modules/dotenv": { + "version": "16.0.3", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.0.3.tgz", + "integrity": "sha512-7GO6HghkA5fYG9TYnNxi14/7K9f5occMlp3zXAuSxn7CKCxt9xbNWG7yF8hTCSUchlfWSe3uLmlPfigevRItzQ==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/drbg.js": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/drbg.js/-/drbg.js-1.0.1.tgz", + "integrity": "sha512-F4wZ06PvqxYLFEZKkFxTDcns9oFNk34hvmJSEwdzsxVQ8YI5YaxtACgQatkYgv2VI2CFkUd2Y+xosPQnHv809g==", + "optional": true, "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" + "browserify-aes": "^1.0.6", + "create-hash": "^1.1.2", + "create-hmac": "^1.1.4" + }, + "engines": { + "node": ">=0.10" } }, - "node_modules/braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "node_modules/ecc-jsbn": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", + "integrity": "sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==", "dev": true, "dependencies": { - "fill-range": "^7.0.1" + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" + } + }, + "node_modules/eccrypto": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/eccrypto/-/eccrypto-1.1.6.tgz", + "integrity": "sha512-d78ivVEzu7Tn0ZphUUaL43+jVPKTMPFGtmgtz1D0LrFn7cY3K8CdrvibuLz2AAkHBLKZtR8DMbB2ukRYFk987A==", + "hasInstallScript": true, + "optional": true, + "dependencies": { + "acorn": "7.1.1", + "elliptic": "6.5.4", + "es6-promise": "4.2.8", + "nan": "2.14.0" + }, + "optionalDependencies": { + "secp256k1": "3.7.1" + } + }, + "node_modules/eccrypto/node_modules/acorn": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.1.1.tgz", + "integrity": "sha512-add7dgA5ppRPxCFJoAGfMDi7PIBXq1RtGo7BhbLaxwrXPOmw8gq48Y9ozT01hUKy9byMjlR20EJhu5zlkErEkg==", + "optional": true, + "bin": { + "acorn": "bin/acorn" }, "engines": { - "node": ">=8" + "node": ">=0.4.0" } }, - "node_modules/brorand": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", - "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=" + "node_modules/eccrypto/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "optional": true }, - "node_modules/browser-headers": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/browser-headers/-/browser-headers-0.4.1.tgz", - "integrity": "sha512-CA9hsySZVo9371qEHjHZtYxV2cFtVj5Wj/ZHi8ooEsrtm4vOnl9Y9HmyYWk9q+05d7K3rdoAE0j3MVEFVvtQtg==" + "node_modules/eccrypto/node_modules/nan": { + "version": "2.14.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.0.tgz", + "integrity": "sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg==", + "optional": true }, - "node_modules/browser-process-hrtime": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz", - "integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==", + "node_modules/eccrypto/node_modules/secp256k1": { + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-3.7.1.tgz", + "integrity": "sha512-1cf8sbnRreXrQFdH6qsg2H71Xw91fCCS9Yp021GnUNJzWJS/py96fS4lHbnTnouLp08Xj6jBoBB6V78Tdbdu5g==", + "hasInstallScript": true, + "optional": true, + "dependencies": { + "bindings": "^1.5.0", + "bip66": "^1.1.5", + "bn.js": "^4.11.8", + "create-hash": "^1.2.0", + "drbg.js": "^1.0.1", + "elliptic": "^6.4.1", + "nan": "^2.14.0", + "safe-buffer": "^5.1.2" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=", "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/electron-to-chromium": { + "version": "1.3.889", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.889.tgz", + "integrity": "sha512-suEUoPTD1mExjL9TdmH7cvEiWJVM2oEiAi+Y1p0QKxI2HcRlT44qDTP2c1aZmVwRemIPYOpxmV7CxQCOWcm4XQ==", "dev": true }, - "node_modules/browserify-aes": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", - "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", + "node_modules/elliptic": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", + "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", "dependencies": { - "buffer-xor": "^1.0.3", - "cipher-base": "^1.0.0", - "create-hash": "^1.1.0", - "evp_bytestokey": "^1.0.3", - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" + "bn.js": "^4.11.9", + "brorand": "^1.1.0", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.1", + "inherits": "^2.0.4", + "minimalistic-assert": "^1.0.1", + "minimalistic-crypto-utils": "^1.0.1" } }, - "node_modules/browserify-cipher": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", - "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", + "node_modules/elliptic/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + }, + "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, - "dependencies": { - "browserify-aes": "^1.0.4", - "browserify-des": "^1.0.0", - "evp_bytestokey": "^1.0.0" + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/emittery?sponsor=1" } }, - "node_modules/browserify-des": { + "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==", + "devOptional": true + }, + "node_modules/encodeurl": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", - "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", "dev": true, - "dependencies": { - "cipher-base": "^1.0.1", - "des.js": "^1.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" + "engines": { + "node": ">= 0.8" } }, - "node_modules/browserify-rsa": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.1.0.tgz", - "integrity": "sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog==", + "node_modules/end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", "dev": true, "dependencies": { - "bn.js": "^5.0.0", - "randombytes": "^2.0.1" + "once": "^1.4.0" } }, - "node_modules/browserify-sign": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.1.tgz", - "integrity": "sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg==", - "dev": true, + "node_modules/error-polyfill": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/error-polyfill/-/error-polyfill-0.1.3.tgz", + "integrity": "sha512-XHJk60ufE+TG/ydwp4lilOog549iiQF2OAPhkk9DdiYWMrltz5yhDz/xnKuenNwP7gy3dsibssO5QpVhkrSzzg==", "dependencies": { - "bn.js": "^5.1.1", - "browserify-rsa": "^4.0.1", - "create-hash": "^1.2.0", - "create-hmac": "^1.1.7", - "elliptic": "^6.5.3", - "inherits": "^2.0.4", - "parse-asn1": "^5.1.5", - "readable-stream": "^3.6.0", - "safe-buffer": "^5.2.0" + "capability": "^0.2.5", + "o3": "^1.0.3", + "u3": "^0.1.1" } }, - "node_modules/browserslist": { - "version": "4.17.6", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.17.6.tgz", - "integrity": "sha512-uPgz3vyRTlEiCv4ee9KlsKgo2V6qPk7Jsn0KAn2OBqbqKo3iNcPEC1Ti6J4dwnz+aIRfEEEuOzC9IBk8tXUomw==", + "node_modules/es5-ext": { + "version": "0.10.62", + "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.62.tgz", + "integrity": "sha512-BHLqn0klhEpnOKSrzn/Xsz2UIW8j+cGmo9JLzr8BiUapV8hPL9+FliFqjwr9ngW7jWdnxv6eO+/LqyhJVqgrjA==", "dev": true, + "hasInstallScript": true, "dependencies": { - "caniuse-lite": "^1.0.30001274", - "electron-to-chromium": "^1.3.886", - "escalade": "^3.1.1", - "node-releases": "^2.0.1", - "picocolors": "^1.0.0" - }, - "bin": { - "browserslist": "cli.js" + "es6-iterator": "^2.0.3", + "es6-symbol": "^3.1.3", + "next-tick": "^1.1.0" }, "engines": { - "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" + "node": ">=0.10" } }, - "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==", + "node_modules/es6-iterator": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", + "integrity": "sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g==", "dev": true, "dependencies": { - "fast-json-stable-stringify": "2.x" - }, - "engines": { - "node": ">= 6" + "d": "1", + "es5-ext": "^0.10.35", + "es6-symbol": "^3.1.1" } }, - "node_modules/bs58": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz", - "integrity": "sha1-vhYedsNU9veIrkBx9j806MTwpCo=", - "dependencies": { - "base-x": "^3.0.2" - } + "node_modules/es6-promise": { + "version": "4.2.8", + "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz", + "integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==" }, - "node_modules/bs58check": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/bs58check/-/bs58check-2.1.2.tgz", - "integrity": "sha512-0TS1jicxdU09dwJMNZtVAfzPi6Q6QeN0pM1Fkzrjn+XYHvzMKPU3pHVpva+769iNVSfIYWf7LJ6WR+BuuMf8cA==", + "node_modules/es6-promisify": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz", + "integrity": "sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=", "dependencies": { - "bs58": "^4.0.0", - "create-hash": "^1.1.0", - "safe-buffer": "^5.1.2" + "es6-promise": "^4.0.3" } }, - "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==", + "node_modules/es6-symbol": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz", + "integrity": "sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==", "dev": true, "dependencies": { - "node-int64": "^0.4.0" - } - }, - "node_modules/buffer": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.1.tgz", - "integrity": "sha512-rVAXBwEcEoYtxnHSO5iWyhzV/O1WMtkUYWlfdLS7FjU4PnSJJHEfHXi/uHPI5EwltmOA794gN3bm3/pzuctWjQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" + "d": "^1.0.1", + "ext": "^1.1.2" } }, - "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/buffer-layout": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/buffer-layout/-/buffer-layout-1.2.2.tgz", - "integrity": "sha512-kWSuLN694+KTk8SrYvCqwP2WcgQjoRCiF5b4QDvkkz8EmgD+aWAIceGFKMIAdmF/pH+vpgNV3d3kAKorcdAmWA==", + "node_modules/escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "devOptional": true, "engines": { - "node": ">=4.5" + "node": ">=6" } }, - "node_modules/buffer-to-arraybuffer": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/buffer-to-arraybuffer/-/buffer-to-arraybuffer-0.0.5.tgz", - "integrity": "sha512-3dthu5CYiVB1DEJp61FtApNnNndTckcqe4pFcLdvHtrpG+kcyekCJKg4MRiDcFW7A6AODnXB9U4dwQiCW5kzJQ==", - "dev": true - }, - "node_modules/buffer-xor": { + "node_modules/escape-html": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", - "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=" + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=", + "dev": true }, - "node_modules/bufferutil": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/bufferutil/-/bufferutil-4.0.3.tgz", - "integrity": "sha512-yEYTwGndELGvfXsImMBLop58eaGW+YdONi1fNjTINSY98tmMmFijBG6WXgdkfuLNt4imzQNtIE+eBp1PVpMCSw==", - "hasInstallScript": true, - "dependencies": { - "node-gyp-build": "^4.2.0" + "node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "devOptional": true, + "engines": { + "node": ">=0.8.0" } }, - "node_modules/builtin-modules": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", - "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=", + "node_modules/escodegen": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.0.0.tgz", + "integrity": "sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw==", "dev": true, + "dependencies": { + "esprima": "^4.0.1", + "estraverse": "^5.2.0", + "esutils": "^2.0.2", + "optionator": "^0.8.1" + }, + "bin": { + "escodegen": "bin/escodegen.js", + "esgenerate": "bin/esgenerate.js" + }, "engines": { - "node": ">=0.10.0" + "node": ">=6.0" + }, + "optionalDependencies": { + "source-map": "~0.6.1" } }, - "node_modules/bytes": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.1.tgz", - "integrity": "sha512-dWe4nWO/ruEOY7HkUJ5gFt1DCFV9zPRoJr8pV0/ASQermOZjtq8jMjOprC0Kd10GLN+l7xaUPvxzJFWtxGu8Fg==", + "node_modules/escodegen/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, + "optional": true, "engines": { - "node": ">= 0.8" + "node": ">=0.10.0" } }, - "node_modules/cacheable-lookup": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-6.1.0.tgz", - "integrity": "sha512-KJ/Dmo1lDDhmW2XDPMo+9oiy/CeqosPguPCrgcVzKyZrL6pM1gU2GmPY/xo6OQPTUaA/c0kwHuywB4E6nmT9ww==", + "node_modules/esprima": { + "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, + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, "engines": { - "node": ">=10.6.0" + "node": ">=4" } }, - "node_modules/cacheable-request": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-7.0.2.tgz", - "integrity": "sha512-pouW8/FmiPQbuGpkXQ9BAPv/Mo5xDGANgSNXzTzJ8DrKGuXOssM4wIQRjfanNRh3Yu5cfYPvcorqbhg2KIJtew==", + "node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", "dev": true, - "dependencies": { - "clone-response": "^1.0.2", - "get-stream": "^5.1.0", - "http-cache-semantics": "^4.0.0", - "keyv": "^4.0.0", - "lowercase-keys": "^2.0.0", - "normalize-url": "^6.0.1", - "responselike": "^2.0.0" - }, "engines": { - "node": ">=8" + "node": ">=4.0" } }, - "node_modules/cacheable-request/node_modules/get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "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, - "dependencies": { - "pump": "^3.0.0" - }, "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=0.10.0" } }, - "node_modules/cacheable-request/node_modules/lowercase-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", - "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", + "node_modules/etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=", "dev": true, "engines": { - "node": ">=8" + "node": ">= 0.6" } }, - "node_modules/call-bind": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", - "dev": true, + "node_modules/eth-crypto": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/eth-crypto/-/eth-crypto-2.6.0.tgz", + "integrity": "sha512-GCX4ffFYRUGgnuWR5qxcZIRQJ1KEqPFiyXU9yVy7s6dtXIMlUXZQ2h+5ID6rFaOHWbpJbjfkC6YdhwtwRYCnug==", + "optional": true, "dependencies": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" + "@babel/runtime": "7.20.13", + "@ethereumjs/tx": "3.5.2", + "@types/bn.js": "5.1.1", + "eccrypto": "1.1.6", + "ethereumjs-util": "7.1.5", + "ethers": "5.7.2", + "secp256k1": "5.0.0" }, "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "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, - "engines": { - "node": ">=6" + "url": "https://github.com/sponsors/pubkey" } }, - "node_modules/camel-case": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-3.0.0.tgz", - "integrity": "sha512-+MbKztAYHXPr1jNTSKQF52VpcFjwY5RkR7fxksV8Doo4KAYc5Fl4UJRgthBbTmEx8C54DqahhbLJkDwjI3PI/w==", - "dev": true, + "node_modules/eth-crypto/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==", + "optional": true, "dependencies": { - "no-case": "^2.2.0", - "upper-case": "^1.1.1" + "@types/node": "*" } }, - "node_modules/camel-case/node_modules/lower-case": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz", - "integrity": "sha512-2Fgx1Ycm599x+WGpIYwJOvsjmXFzTSc34IwDWALRA/8AopUKAVPwfJ+h5+f85BCp0PWmmJcWzEpxOpoXycMpdA==", - "dev": true + "node_modules/eth-crypto/node_modules/node-addon-api": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-5.1.0.tgz", + "integrity": "sha512-eh0GgfEkpnoWDq+VY8OyvYhFEzBk6jIYbRKdIlyTiAXIVJ8PyBaKb0rp7oDtoddbdoHWhq8wwr+XZ81F1rpNdA==", + "optional": true }, - "node_modules/camel-case/node_modules/no-case": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/no-case/-/no-case-2.3.2.tgz", - "integrity": "sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ==", - "dev": true, + "node_modules/eth-crypto/node_modules/secp256k1": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-5.0.0.tgz", + "integrity": "sha512-TKWX8xvoGHrxVdqbYeZM9w+izTF4b9z3NhSaDkdn81btvuh+ivbIMGT/zQvDtTFWhRlThpoz6LEYTr7n8A5GcA==", + "hasInstallScript": true, + "optional": true, "dependencies": { - "lower-case": "^1.1.1" + "elliptic": "^6.5.4", + "node-addon-api": "^5.0.0", + "node-gyp-build": "^4.2.0" + }, + "engines": { + "node": ">=14.0.0" } }, - "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/eth-ens-namehash": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/eth-ens-namehash/-/eth-ens-namehash-2.0.8.tgz", + "integrity": "sha512-VWEI1+KJfz4Km//dadyvBBoBeSQ0MHTXPvr8UIXiLW6IanxvAV+DmlZAijZwAyggqGUfwQBeHf7tc9wzc1piSw==", + "dev": true, + "dependencies": { + "idna-uts46-hx": "^2.3.1", + "js-sha3": "^0.5.7" } }, - "node_modules/caniuse-lite": { - "version": "1.0.30001277", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001277.tgz", - "integrity": "sha512-J2WtYj2Pl6LBEG214XmbGw1gzZEsYuinQFPqYtpZDB3/vm49qNlrcbJrTMkHKmdRDdmXYwkG0tgOBJsuI+J12Q==", + "node_modules/eth-ens-namehash/node_modules/js-sha3": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.5.7.tgz", + "integrity": "sha512-GII20kjaPX0zJ8wzkTbNDYMY7msuZcTWk8S5UOh6806Jq/wz1J8/bnr8uGU0DAUmYDjj2Mr4X1cW8v/GLYnR+g==", + "dev": true + }, + "node_modules/eth-lib": { + "version": "0.1.29", + "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.1.29.tgz", + "integrity": "sha512-bfttrr3/7gG4E02HoWTDUcDDslN003OlOoBxk9virpAZQ1ja/jDgwkWB8QfJF7ojuEowrqy+lzp9VcJG7/k5bQ==", "dev": true, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" + "dependencies": { + "bn.js": "^4.11.6", + "elliptic": "^6.4.0", + "nano-json-stream-parser": "^0.1.2", + "servify": "^0.1.12", + "ws": "^3.0.0", + "xhr-request-promise": "^0.1.2" } }, - "node_modules/capability": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/capability/-/capability-0.2.5.tgz", - "integrity": "sha512-rsJZYVCgXd08sPqwmaIqjAd5SUTfonV0z/gDJ8D6cN8wQphky1kkAYEqQ+hmDxTw7UihvBfjUVUSY+DBEe44jg==" + "node_modules/eth-lib/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true }, - "node_modules/caseless": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==", + "node_modules/eth-lib/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", "dev": true }, - "node_modules/catering": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/catering/-/catering-2.1.1.tgz", - "integrity": "sha512-K7Qy8O9p76sL3/3m7/zLKbRkyOlSZAgzEaLhyj2mXS8PsCud2Eo4hAb8aLtZqHh0QGqLcb9dlJSu6lHRVENm1w==", + "node_modules/eth-lib/node_modules/ws": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/ws/-/ws-3.3.3.tgz", + "integrity": "sha512-nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA==", "dev": true, - "optional": true, - "engines": { - "node": ">=6" + "dependencies": { + "async-limiter": "~1.0.0", + "safe-buffer": "~5.1.0", + "ultron": "~1.1.0" } }, - "node_modules/cbor": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/cbor/-/cbor-5.2.0.tgz", - "integrity": "sha512-5IMhi9e1QU76ppa5/ajP1BmMWZ2FHkhAhjeVKQ/EFCgYSEaeVaoGtL7cxJskf9oCCk+XjzaIdc3IuU/dbA/o2A==", + "node_modules/ethereum-bloom-filters": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/ethereum-bloom-filters/-/ethereum-bloom-filters-1.0.10.tgz", + "integrity": "sha512-rxJ5OFN3RwjQxDcFP2Z5+Q9ho4eIdEmSc2ht0fCu8Se9nbXjZ7/031uXoUYJ87KHCOdVeiUuwSnoS7hmYAGVHA==", "dev": true, "dependencies": { - "bignumber.js": "^9.0.1", - "nofilter": "^1.0.4" - }, - "engines": { - "node": ">=6.0.0" + "js-sha3": "^0.8.0" } }, - "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==", - "devOptional": true, + "node_modules/ethereum-cryptography": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz", + "integrity": "sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ==", "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" + "@types/pbkdf2": "^3.0.0", + "@types/secp256k1": "^4.0.1", + "blakejs": "^1.1.0", + "browserify-aes": "^1.2.0", + "bs58check": "^2.1.2", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "hash.js": "^1.1.7", + "keccak": "^3.0.0", + "pbkdf2": "^3.0.17", + "randombytes": "^2.1.0", + "safe-buffer": "^5.1.2", + "scrypt-js": "^3.0.0", + "secp256k1": "^4.0.1", + "setimmediate": "^1.0.5" } }, - "node_modules/change-case": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/change-case/-/change-case-3.0.2.tgz", - "integrity": "sha512-Mww+SLF6MZ0U6kdg11algyKd5BARbyM4TbFBepwowYSR5ClfQGCGtxNXgykpN0uF/bstWeaGDT4JWaDh8zWAHA==", - "dev": true, - "dependencies": { - "camel-case": "^3.0.0", - "constant-case": "^2.0.0", - "dot-case": "^2.1.0", - "header-case": "^1.0.0", - "is-lower-case": "^1.1.0", - "is-upper-case": "^1.1.0", - "lower-case": "^1.1.1", - "lower-case-first": "^1.0.0", - "no-case": "^2.3.2", - "param-case": "^2.1.0", - "pascal-case": "^2.0.0", - "path-case": "^2.1.0", - "sentence-case": "^2.1.0", - "snake-case": "^2.1.0", - "swap-case": "^1.1.0", - "title-case": "^2.1.0", - "upper-case": "^1.1.1", - "upper-case-first": "^1.1.0" - } - }, - "node_modules/change-case/node_modules/dot-case": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-2.1.1.tgz", - "integrity": "sha512-HnM6ZlFqcajLsyudHq7LeeLDr2rFAVYtDv/hV5qchQEidSck8j9OPUsXY9KwJv/lHMtYlX4DjRQqwFYa+0r8Ug==", - "dev": true, + "node_modules/ethereumjs-abi": { + "version": "0.6.8", + "resolved": "https://registry.npmjs.org/ethereumjs-abi/-/ethereumjs-abi-0.6.8.tgz", + "integrity": "sha512-Tx0r/iXI6r+lRsdvkFDlut0N08jWMnKRZ6Gkq+Nmw75lZe4e6o3EkSnkaBP5NF6+m5PTGAr9JP43N3LyeoglsA==", + "optional": true, "dependencies": { - "no-case": "^2.2.0" + "bn.js": "^4.11.8", + "ethereumjs-util": "^6.0.0" } }, - "node_modules/change-case/node_modules/lower-case": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz", - "integrity": "sha512-2Fgx1Ycm599x+WGpIYwJOvsjmXFzTSc34IwDWALRA/8AopUKAVPwfJ+h5+f85BCp0PWmmJcWzEpxOpoXycMpdA==", - "dev": true + "node_modules/ethereumjs-abi/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "optional": true }, - "node_modules/change-case/node_modules/no-case": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/no-case/-/no-case-2.3.2.tgz", - "integrity": "sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ==", - "dev": true, + "node_modules/ethereumjs-abi/node_modules/ethereumjs-util": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-6.2.1.tgz", + "integrity": "sha512-W2Ktez4L01Vexijrm5EB6w7dg4n/TgpoYU4avuT5T3Vmnw/eCRtiBrJfQYS/DCSvDIOLn2k57GcHdeBcgVxAqw==", + "optional": true, "dependencies": { - "lower-case": "^1.1.1" + "@types/bn.js": "^4.11.3", + "bn.js": "^4.11.0", + "create-hash": "^1.1.2", + "elliptic": "^6.5.2", + "ethereum-cryptography": "^0.1.3", + "ethjs-util": "0.1.6", + "rlp": "^2.2.3" } }, - "node_modules/change-case/node_modules/snake-case": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/snake-case/-/snake-case-2.1.0.tgz", - "integrity": "sha512-FMR5YoPFwOLuh4rRz92dywJjyKYZNLpMn1R5ujVpIYkbA9p01fq8RMg0FkO4M+Yobt4MjHeLTJVm5xFFBHSV2Q==", - "dev": true, + "node_modules/ethereumjs-util": { + "version": "7.1.5", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.5.tgz", + "integrity": "sha512-SDl5kKrQAudFBUe5OJM9Ac6WmMyYmXX/6sTmLZ3ffG2eY6ZIGBes3pEDxNN6V72WyOw4CPD5RomKdsa8DAAwLg==", "dependencies": { - "no-case": "^2.2.0" + "@types/bn.js": "^5.1.0", + "bn.js": "^5.1.2", + "create-hash": "^1.1.2", + "ethereum-cryptography": "^0.1.3", + "rlp": "^2.2.4" + }, + "engines": { + "node": ">=10.0.0" } }, - "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, - "engines": { - "node": ">=10" + "node_modules/ethereumjs-util/node_modules/@types/bn.js": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-5.1.0.tgz", + "integrity": "sha512-QSSVYj7pYFN49kW77o2s9xTCwZ8F2xLbjLLSEVh8D2F4JUhZtPAGOFLTD+ffqksBx/u4cE/KImFjyhqCjn/LIA==", + "dependencies": { + "@types/node": "*" } }, - "node_modules/chokidar": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", - "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", - "dev": true, + "node_modules/ethers": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/ethers/-/ethers-5.7.2.tgz", + "integrity": "sha512-wswUsmWo1aOK8rR7DIKiWSw9DbLWe6x98Jrn8wcTflTVvaXhAMaB5zGAXy0GYQEQp9iO1iSHWVyARQm11zUtyg==", + "devOptional": true, "funding": [ { "type": "individual", - "url": "https://paulmillr.com/funding/" + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" } ], "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" + "@ethersproject/abi": "5.7.0", + "@ethersproject/abstract-provider": "5.7.0", + "@ethersproject/abstract-signer": "5.7.0", + "@ethersproject/address": "5.7.0", + "@ethersproject/base64": "5.7.0", + "@ethersproject/basex": "5.7.0", + "@ethersproject/bignumber": "5.7.0", + "@ethersproject/bytes": "5.7.0", + "@ethersproject/constants": "5.7.0", + "@ethersproject/contracts": "5.7.0", + "@ethersproject/hash": "5.7.0", + "@ethersproject/hdnode": "5.7.0", + "@ethersproject/json-wallets": "5.7.0", + "@ethersproject/keccak256": "5.7.0", + "@ethersproject/logger": "5.7.0", + "@ethersproject/networks": "5.7.1", + "@ethersproject/pbkdf2": "5.7.0", + "@ethersproject/properties": "5.7.0", + "@ethersproject/providers": "5.7.2", + "@ethersproject/random": "5.7.0", + "@ethersproject/rlp": "5.7.0", + "@ethersproject/sha2": "5.7.0", + "@ethersproject/signing-key": "5.7.0", + "@ethersproject/solidity": "5.7.0", + "@ethersproject/strings": "5.7.0", + "@ethersproject/transactions": "5.7.0", + "@ethersproject/units": "5.7.0", + "@ethersproject/wallet": "5.7.0", + "@ethersproject/web": "5.7.1", + "@ethersproject/wordlists": "5.7.0" } }, - "node_modules/chownr": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", - "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", - "dev": true - }, - "node_modules/ci-info": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.2.0.tgz", - "integrity": "sha512-dVqRX7fLUm8J6FgHJ418XuIgDLZDkYcDFTeL6TA2gt5WlIZUQrrH6EZrNClwT/H0FateUsZkGIOPRrLbP+PR9A==", - "dev": true - }, - "node_modules/cids": { - "version": "0.7.5", - "resolved": "https://registry.npmjs.org/cids/-/cids-0.7.5.tgz", - "integrity": "sha512-zT7mPeghoWAu+ppn8+BS1tQ5qGmbMfB4AregnQjA/qHY3GC1m1ptI9GkWNlgeu38r7CuRdXB47uY2XgAYt6QVA==", - "deprecated": "This module has been superseded by the multiformats module", + "node_modules/ethjs-unit": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/ethjs-unit/-/ethjs-unit-0.1.6.tgz", + "integrity": "sha1-xmWSHkduh7ziqdWIpv4EBbLEFpk=", "dev": true, "dependencies": { - "buffer": "^5.5.0", - "class-is": "^1.1.0", - "multibase": "~0.6.0", - "multicodec": "^1.0.0", - "multihashes": "~0.4.15" + "bn.js": "4.11.6", + "number-to-bn": "1.7.0" }, "engines": { - "node": ">=4.0.0", - "npm": ">=3.0.0" - } - }, - "node_modules/cids/node_modules/buffer": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" - } - }, - "node_modules/cids/node_modules/multicodec": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/multicodec/-/multicodec-1.0.4.tgz", - "integrity": "sha512-NDd7FeS3QamVtbgfvu5h7fd1IlbaC4EQ0/pgU4zqE2vdHCmBGsUa0TiM8/TdSeG6BMPC92OOCf8F1ocE/Wkrrg==", - "deprecated": "This module has been superseded by the multiformats module", - "dev": true, - "dependencies": { - "buffer": "^5.6.0", - "varint": "^5.0.0" - } - }, - "node_modules/cipher-base": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", - "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", - "dependencies": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" + "node": ">=6.5.0", + "npm": ">=3" } }, - "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/class-is": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/class-is/-/class-is-1.1.0.tgz", - "integrity": "sha512-rhjH9AG1fvabIDoGRVH587413LPjTZgmDF9fOFCbFJQV4yuocX1mHxxvXI4g3cGwbVY9wAYIoKlg1N79frJKQw==", + "node_modules/ethjs-unit/node_modules/bn.js": { + "version": "4.11.6", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz", + "integrity": "sha1-UzRK2xRhehP26N0s4okF0cC6MhU=", "dev": true }, - "node_modules/cli-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", - "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", - "dev": true, + "node_modules/ethjs-util": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/ethjs-util/-/ethjs-util-0.1.6.tgz", + "integrity": "sha512-CUnVOQq7gSpDHZVVrQW8ExxUETWrnrvXYvYz55wOU8Uj4VCgw56XC2B/fVqQN+f7gmrnRHSLVnFAwsCuNwji8w==", "optional": true, "dependencies": { - "restore-cursor": "^3.1.0" + "is-hex-prefixed": "1.0.0", + "strip-hex-prefix": "1.0.0" }, "engines": { - "node": ">=8" + "node": ">=6.5.0", + "npm": ">=3" } }, - "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==", - "devOptional": true, - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" - } + "node_modules/eventemitter3": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==" }, - "node_modules/clone-buffer": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/clone-buffer/-/clone-buffer-1.0.0.tgz", - "integrity": "sha512-KLLTJWrvwIP+OPfMn0x2PheDEP20RPUcGXj/ERegTgdmPEZylALQldygiqrPPu8P45uNuPs7ckmReLY6v/iA5g==", - "dev": true, - "optional": true, - "engines": { - "node": ">= 0.10" + "node_modules/evp_bytestokey": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", + "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", + "dependencies": { + "md5.js": "^1.3.4", + "safe-buffer": "^5.1.1" } }, - "node_modules/clone-response": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.3.tgz", - "integrity": "sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==", + "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": { - "mimic-response": "^1.0.0" + "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/sponsors/sindresorhus" + "url": "https://github.com/sindresorhus/execa?sponsor=1" } }, - "node_modules/co": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", + "node_modules/exit": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", + "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=", "dev": true, "engines": { - "iojs": ">= 1.0.0", - "node": ">= 0.12.0" + "node": ">= 0.8.0" } }, - "node_modules/collect-v8-coverage": { + "node_modules/exit-on-epipe": { "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": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "resolved": "https://registry.npmjs.org/exit-on-epipe/-/exit-on-epipe-1.0.1.tgz", + "integrity": "sha512-h2z5mrROTxce56S+pnvAV890uu7ls7f1kEvVGJbw1OlFH3/mlJ5bkXu0KRyW94v37zzHPiUd55iLn3DA7TjWpw==", "devOptional": true, - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "devOptional": true - }, - "node_modules/colors": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", - "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", - "dev": true, - "engines": { - "node": ">=0.1.90" - } - }, - "node_modules/combined-stream": { - "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" - }, "engines": { - "node": ">= 0.8" + "node": ">=0.8" } }, - "node_modules/command-line-args": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/command-line-args/-/command-line-args-4.0.7.tgz", - "integrity": "sha512-aUdPvQRAyBvQd2n7jXcsMDz68ckBJELXNzBybCHOibUWEg0mWTnaYCSRU8h9R+aNRSvDihJtssSRCiDRpLaezA==", + "node_modules/expect": { + "version": "27.3.1", + "resolved": "https://registry.npmjs.org/expect/-/expect-27.3.1.tgz", + "integrity": "sha512-MrNXV2sL9iDRebWPGOGFdPQRl2eDQNu/uhxIMShjjx74T6kC6jFIkmQ6OqXDtevjGUkyB2IT56RzDBqXf/QPCg==", "dev": true, "dependencies": { - "array-back": "^2.0.0", - "find-replace": "^1.0.3", - "typical": "^2.6.1" + "@jest/types": "^27.2.5", + "ansi-styles": "^5.0.0", + "jest-get-type": "^27.3.1", + "jest-matcher-utils": "^27.3.1", + "jest-message-util": "^27.3.1", + "jest-regex-util": "^27.0.6" }, - "bin": { - "command-line-args": "bin/cli.js" + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, - "node_modules/commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" - }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" - }, - "node_modules/conf": { - "version": "10.2.0", - "resolved": "https://registry.npmjs.org/conf/-/conf-10.2.0.tgz", - "integrity": "sha512-8fLl9F04EJqjSqH+QjITQfJF8BrOVaYr1jewVgSRAEWePfxT0sku4w2hrGQ60BC/TNLGQ2pgxNlTbWQmMPFvXg==", + "node_modules/expect/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, - "optional": true, - "dependencies": { - "ajv": "^8.6.3", - "ajv-formats": "^2.1.1", - "atomically": "^1.7.0", - "debounce-fn": "^4.0.0", - "dot-prop": "^6.0.1", - "env-paths": "^2.2.1", - "json-schema-typed": "^7.0.3", - "onetime": "^5.1.2", - "pkg-up": "^3.1.0", - "semver": "^7.3.5" - }, "engines": { - "node": ">=12" + "node": ">=10" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/conf/node_modules/semver": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "node_modules/express": { + "version": "4.17.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.17.2.tgz", + "integrity": "sha512-oxlxJxcQlYwqPWKVJJtvQiwHgosH/LrLSPA+H4UxpyvSS6jC5aH+5MoHFM+KABgTOt0APue4w66Ha8jCUo9QGg==", "dev": true, - "optional": true, "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" + "accepts": "~1.3.7", + "array-flatten": "1.1.1", + "body-parser": "1.19.1", + "content-disposition": "0.5.4", + "content-type": "~1.0.4", + "cookie": "0.4.1", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "~1.1.2", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "~1.1.2", + "fresh": "0.5.2", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "~2.3.0", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.7", + "qs": "6.9.6", + "range-parser": "~1.2.1", + "safe-buffer": "5.2.1", + "send": "0.17.2", + "serve-static": "1.14.2", + "setprototypeof": "1.2.0", + "statuses": "~1.5.0", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" }, "engines": { - "node": ">=10" + "node": ">= 0.10.0" } }, - "node_modules/constant-case": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/constant-case/-/constant-case-2.0.0.tgz", - "integrity": "sha512-eS0N9WwmjTqrOmR3o83F5vW8Z+9R1HnVz3xmzT2PMFug9ly+Au/fxRWlEBSb6LcZwspSsEn9Xs1uw9YgzAg1EQ==", + "node_modules/ext": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/ext/-/ext-1.7.0.tgz", + "integrity": "sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw==", "dev": true, "dependencies": { - "snake-case": "^2.1.0", - "upper-case": "^1.1.1" + "type": "^2.7.2" } }, - "node_modules/constant-case/node_modules/lower-case": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz", - "integrity": "sha512-2Fgx1Ycm599x+WGpIYwJOvsjmXFzTSc34IwDWALRA/8AopUKAVPwfJ+h5+f85BCp0PWmmJcWzEpxOpoXycMpdA==", + "node_modules/ext/node_modules/type": { + "version": "2.7.2", + "resolved": "https://registry.npmjs.org/type/-/type-2.7.2.tgz", + "integrity": "sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw==", "dev": true }, - "node_modules/constant-case/node_modules/no-case": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/no-case/-/no-case-2.3.2.tgz", - "integrity": "sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ==", + "node_modules/extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "dev": true + }, + "node_modules/extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==", "dev": true, - "dependencies": { - "lower-case": "^1.1.1" + "engines": [ + "node >=0.6.0" + ] + }, + "node_modules/eyes": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/eyes/-/eyes-0.1.8.tgz", + "integrity": "sha1-Ys8SAjTGg3hdkCNIqADvPgzCC8A=", + "engines": { + "node": "> 0.1.90" } }, - "node_modules/constant-case/node_modules/snake-case": { + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "node_modules/fast-json-stable-stringify": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/snake-case/-/snake-case-2.1.0.tgz", - "integrity": "sha512-FMR5YoPFwOLuh4rRz92dywJjyKYZNLpMn1R5ujVpIYkbA9p01fq8RMg0FkO4M+Yobt4MjHeLTJVm5xFFBHSV2Q==", + "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": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", + "dev": true + }, + "node_modules/fast-stable-stringify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fast-stable-stringify/-/fast-stable-stringify-1.0.0.tgz", + "integrity": "sha512-wpYMUmFu5f00Sm0cj2pfivpmawLZ0NKdviQ4w9zJeR8JVtOpOxHmLaJuj0vxvGqMJQWyP/COUkF75/57OKyRag==" + }, + "node_modules/fb-watchman": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.1.tgz", + "integrity": "sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg==", "dev": true, "dependencies": { - "no-case": "^2.2.0" + "bser": "2.1.1" } }, - "node_modules/content-disposition": { - "version": "0.5.4", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", - "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", + "node_modules/file-uri-to-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", + "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==" + }, + "node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", "dev": true, "dependencies": { - "safe-buffer": "5.2.1" + "to-regex-range": "^5.0.1" }, "engines": { - "node": ">= 0.6" + "node": ">=8" } }, - "node_modules/content-hash": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/content-hash/-/content-hash-2.5.2.tgz", - "integrity": "sha512-FvIQKy0S1JaWV10sMsA7TRx8bpU+pqPkhbsfvOJAdjRXvYxEckAwQWGwtRjiaJfh+E0DvcWUGqcdjwMGFjsSdw==", + "node_modules/finalhandler": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", + "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", "dev": true, "dependencies": { - "cids": "^0.7.1", - "multicodec": "^0.5.5", - "multihashes": "^0.4.15" - } - }, - "node_modules/content-type": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", - "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==", - "dev": true, + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "~2.3.0", + "parseurl": "~1.3.3", + "statuses": "~1.5.0", + "unpipe": "~1.0.0" + }, "engines": { - "node": ">= 0.6" + "node": ">= 0.8" } }, - "node_modules/convert-source-map": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz", - "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==", + "node_modules/find-replace": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/find-replace/-/find-replace-1.0.3.tgz", + "integrity": "sha512-KrUnjzDCD9426YnCP56zGYy/eieTnhtK6Vn++j+JJzmlsWWwEkDnsyVF575spT6HJ6Ow9tlbT3TQTDsa+O4UWA==", "dev": true, "dependencies": { - "safe-buffer": "~5.1.1" + "array-back": "^1.0.4", + "test-value": "^2.1.0" + }, + "engines": { + "node": ">=4.0.0" } }, - "node_modules/convert-source-map/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, - "node_modules/cookie": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.1.tgz", - "integrity": "sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA==", + "node_modules/find-replace/node_modules/array-back": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-1.0.4.tgz", + "integrity": "sha512-1WxbZvrmyhkNoeYcizokbmh5oiOCIfyvGtcqbK3Ls1v1fKcquzxnQSceOx6tzq7jmai2kFLWIpGND2cLhH6TPw==", "dev": true, + "dependencies": { + "typical": "^2.6.0" + }, "engines": { - "node": ">= 0.6" + "node": ">=0.12.0" } }, - "node_modules/cookie-signature": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=", - "dev": true - }, - "node_modules/copy-dir": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/copy-dir/-/copy-dir-1.3.0.tgz", - "integrity": "sha512-Q4+qBFnN4bwGwvtXXzbp4P/4iNk0MaiGAzvQ8OiMtlLjkIKjmNN689uVzShSM0908q7GoFHXIPx4zi75ocoaHw==", - "dev": true - }, - "node_modules/copyfiles": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/copyfiles/-/copyfiles-2.4.1.tgz", - "integrity": "sha512-fereAvAvxDrQDOXybk3Qu3dPbOoKoysFMWtkY3mv5BsL8//OSZVL5DCLYqgRfY5cWirgRzlC+WSrxp6Bo3eNZg==", - "optional": true, + "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": { - "glob": "^7.0.5", - "minimatch": "^3.0.3", - "mkdirp": "^1.0.4", - "noms": "0.0.0", - "through2": "^2.0.1", - "untildify": "^4.0.0", - "yargs": "^16.1.0" + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" }, - "bin": { - "copyfiles": "copyfiles", - "copyup": "copyfiles" + "engines": { + "node": ">=8" } }, - "node_modules/copyfiles/node_modules/mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "optional": true, - "bin": { - "mkdirp": "bin/cmd.js" - }, + "node_modules/follow-redirects": { + "version": "1.15.1", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.1.tgz", + "integrity": "sha512-yLAMQs+k0b2m7cVxpS1VKJVvoz7SS9Td1zss3XRwXj+ZDH00RJgnuLx7E44wx02kQLrdM3aOOy+FpzS7+8OizA==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], "engines": { - "node": ">=10" + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } } }, - "node_modules/core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", - "devOptional": true - }, - "node_modules/cors": { - "version": "2.8.5", - "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", - "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", + "node_modules/for-each": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", + "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", "dev": true, "dependencies": { - "object-assign": "^4", - "vary": "^1" - }, - "engines": { - "node": ">= 0.10" + "is-callable": "^1.1.3" } }, - "node_modules/cosmjs-types": { - "version": "0.7.2", - "resolved": "https://registry.npmjs.org/cosmjs-types/-/cosmjs-types-0.7.2.tgz", - "integrity": "sha512-vf2uLyktjr/XVAgEq0DjMxeAWh1yYREe7AMHDKd7EiHVqxBPCaBS+qEEQUkXbR9ndnckqr1sUG8BQhazh4X5lA==", - "optional": true, - "dependencies": { - "long": "^4.0.0", - "protobufjs": "~6.11.2" + "node_modules/forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==", + "dev": true, + "engines": { + "node": "*" } }, - "node_modules/crc-32": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/crc-32/-/crc-32-1.2.0.tgz", - "integrity": "sha512-1uBwHxF+Y/4yF5G48fwnKq6QsIXheor3ZLPT80yGBV1oEUwpPojlEhQbWKVw1VwcTQyMGHK1/XMmTjmlsmTTGA==", - "devOptional": true, + "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, "dependencies": { - "exit-on-epipe": "~1.0.1", - "printj": "~1.1.0" - }, - "bin": { - "crc32": "bin/crc32.njs" + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" }, "engines": { - "node": ">=0.8" + "node": ">= 6" } }, - "node_modules/create-ecdh": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz", - "integrity": "sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==", - "dev": true, - "dependencies": { - "bn.js": "^4.1.0", - "elliptic": "^6.5.3" - } - }, - "node_modules/create-ecdh/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "node_modules/form-data-encoder": { + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/form-data-encoder/-/form-data-encoder-1.7.1.tgz", + "integrity": "sha512-EFRDrsMm/kyqbTQocNvRXMLjc7Es2Vk+IQFx/YW7hkUH1eBl4J1fqiP34l74Yt0pFLCNpc06fkbVk00008mzjg==", "dev": true }, - "node_modules/create-hash": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", - "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", - "dependencies": { - "cipher-base": "^1.0.1", - "inherits": "^2.0.1", - "md5.js": "^1.3.4", - "ripemd160": "^2.0.1", - "sha.js": "^2.4.0" - } - }, - "node_modules/create-hmac": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", - "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", - "dependencies": { - "cipher-base": "^1.0.3", - "create-hash": "^1.1.0", - "inherits": "^2.0.1", - "ripemd160": "^2.0.0", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" + "node_modules/forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "dev": true, + "engines": { + "node": ">= 0.6" } }, - "node_modules/cross-fetch": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.5.tgz", - "integrity": "sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw==", - "dependencies": { - "node-fetch": "2.6.7" + "node_modules/fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", + "dev": true, + "engines": { + "node": ">= 0.6" } }, - "node_modules/cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "node_modules/fs-extra": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", + "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", "dev": true, "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" }, "engines": { - "node": ">= 8" - } - }, - "node_modules/crypto-addr-codec": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/crypto-addr-codec/-/crypto-addr-codec-0.1.7.tgz", - "integrity": "sha512-X4hzfBzNhy4mAc3UpiXEC/L0jo5E8wAa9unsnA8nNXYzXjCcGk83hfC5avJWCSGT8V91xMnAS9AKMHmjw5+XCg==", - "dependencies": { - "base-x": "^3.0.8", - "big-integer": "1.6.36", - "blakejs": "^1.1.0", - "bs58": "^4.0.1", - "ripemd160-min": "0.0.6", - "safe-buffer": "^5.2.0", - "sha3": "^2.1.1" + "node": ">=6 <7 || >=8" } }, - "node_modules/crypto-browserify": { - "version": "3.12.0", - "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", - "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", + "node_modules/fs-minipass": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.7.tgz", + "integrity": "sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==", "dev": true, "dependencies": { - "browserify-cipher": "^1.0.0", - "browserify-sign": "^4.0.0", - "create-ecdh": "^4.0.0", - "create-hash": "^1.1.0", - "create-hmac": "^1.1.0", - "diffie-hellman": "^5.0.0", - "inherits": "^2.0.1", - "pbkdf2": "^3.0.3", - "public-encrypt": "^4.0.0", - "randombytes": "^2.0.0", - "randomfill": "^1.0.3" - }, - "engines": { - "node": "*" + "minipass": "^2.6.0" } }, - "node_modules/crypto-hash": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/crypto-hash/-/crypto-hash-1.3.0.tgz", - "integrity": "sha512-lyAZ0EMyjDkVvz8WOeVnuCPvKVBXcMv1l5SVqO1yC7PzTwrD/pPje/BIRbWhMoPe436U+Y2nD7f5bFx0kt+Sbg==", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" }, - "node_modules/cssfilter": { - "version": "0.0.10", - "resolved": "https://registry.npmjs.org/cssfilter/-/cssfilter-0.0.10.tgz", - "integrity": "sha512-FAaLDaplstoRsDR8XGYH51znUN0UY7nMc6Z9/fvE8EXGwvJE9hu7W2vHwx1+bd6gCYnln9nLbzxFTrcO9YQDZw==", + "node_modules/fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", "dev": true, - "optional": true + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } }, - "node_modules/cssom": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.4.4.tgz", - "integrity": "sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw==", - "dev": true + "node_modules/function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "devOptional": true }, - "node_modules/cssstyle": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz", - "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==", + "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, - "dependencies": { - "cssom": "~0.3.6" - }, "engines": { - "node": ">=8" + "node": ">=6.9.0" } }, - "node_modules/cssstyle/node_modules/cssom": { - "version": "0.3.8", - "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", - "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==", - "dev": true - }, - "node_modules/csstype": { - "version": "3.0.8", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.0.8.tgz", - "integrity": "sha512-jXKhWqXPmlUeoQnF/EhTtTl4C9SnrxSH/jZUih3jmO6lBKr99rP3/+FmrMj4EFpOXzMtXHAZkd3x0E6h6Fgflw==", - "dev": true + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "devOptional": true, + "engines": { + "node": "6.* || 8.* || >= 10.*" + } }, - "node_modules/d": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz", - "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==", - "dev": true, + "node_modules/get-intrinsic": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.3.tgz", + "integrity": "sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==", + "devOptional": true, "dependencies": { - "es5-ext": "^0.10.50", - "type": "^1.0.1" + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/dashdash": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "integrity": "sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==", + "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, - "dependencies": { - "assert-plus": "^1.0.0" - }, "engines": { - "node": ">=0.10" + "node": ">=8.0.0" } }, - "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==", + "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, - "dependencies": { - "abab": "^2.0.3", - "whatwg-mimetype": "^2.3.0", - "whatwg-url": "^8.0.0" - }, "engines": { "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/dataloader": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/dataloader/-/dataloader-2.1.0.tgz", - "integrity": "sha512-qTcEYLen3r7ojZNgVUaRggOI+KM7jrKxXeSHhogh/TWxYMeONEMqY+hmkobiYQozsGIyg9OYVzO4ZIfoB4I0pQ==", + "node_modules/getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==", "dev": true, - "optional": true + "dependencies": { + "assert-plus": "^1.0.0" + } }, - "node_modules/debounce-fn": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/debounce-fn/-/debounce-fn-4.0.0.tgz", - "integrity": "sha512-8pYCQiL9Xdcg0UPSD3d+0KMlOjp+KGU5EPwYddgzQ7DATsg4fuUDjQtsYLmWjnk2obnNHgV3vE2Y4jejSOJVBQ==", - "dev": true, - "optional": true, + "node_modules/glob": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", "dependencies": { - "mimic-fn": "^3.0.0" + "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": ">=10" + "node": "*" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/debounce-fn/node_modules/mimic-fn": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-3.1.0.tgz", - "integrity": "sha512-Ysbi9uYW9hFyfrThdDEQuykN4Ey6BuwPD2kpI5ES/nFTDn/98yxYNLZJcgUAKPT/mcrLLKaGzJR9YVxJrIdASQ==", + "node_modules/global": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/global/-/global-4.4.0.tgz", + "integrity": "sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w==", "dev": true, - "optional": true, - "engines": { - "node": ">=8" + "dependencies": { + "min-document": "^2.19.0", + "process": "^0.11.10" } }, - "node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "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, - "dependencies": { - "ms": "2.0.0" + "engines": { + "node": ">=4" } }, - "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==", - "dev": true, + "node_modules/globalthis": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz", + "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==", + "optional": true, + "dependencies": { + "define-properties": "^1.1.3" + }, "engines": { - "node": ">=10" + "node": ">= 0.4" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/decimal.js": { - "version": "10.3.1", - "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.3.1.tgz", - "integrity": "sha512-V0pfhfr8suzyPGOx3nmq4aHqabehUZn6Ch9kyFpV79TGDTWFmHqUqXdabR7QHqxzrYolF4+tVmJhUG4OURg5dQ==" + "node_modules/google-protobuf": { + "version": "3.21.2", + "resolved": "https://registry.npmjs.org/google-protobuf/-/google-protobuf-3.21.2.tgz", + "integrity": "sha512-3MSOYFO5U9mPGikIYCzK0SaThypfGgS6bHqrUGXG3DPHCrb+txNqeEcns1W0lkGfk0rCyNXm7xB9rMxnCiZOoA==" }, - "node_modules/decode-uri-component": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.2.tgz", - "integrity": "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==", + "node_modules/gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", "dev": true, - "engines": { - "node": ">=0.10" + "dependencies": { + "get-intrinsic": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/decompress-response": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", - "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", + "node_modules/got": { + "version": "12.1.0", + "resolved": "https://registry.npmjs.org/got/-/got-12.1.0.tgz", + "integrity": "sha512-hBv2ty9QN2RdbJJMK3hesmSkFTjVIHyIDDbssCKnSmq62edGgImJWD10Eb1k77TiV1bxloxqcFAVK8+9pkhOig==", "dev": true, "dependencies": { - "mimic-response": "^3.1.0" + "@sindresorhus/is": "^4.6.0", + "@szmarczak/http-timer": "^5.0.1", + "@types/cacheable-request": "^6.0.2", + "@types/responselike": "^1.0.0", + "cacheable-lookup": "^6.0.4", + "cacheable-request": "^7.0.2", + "decompress-response": "^6.0.0", + "form-data-encoder": "1.7.1", + "get-stream": "^6.0.1", + "http2-wrapper": "^2.1.10", + "lowercase-keys": "^3.0.0", + "p-cancelable": "^3.0.0", + "responselike": "^2.0.0" }, "engines": { - "node": ">=10" + "node": ">=14.16" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sindresorhus/got?sponsor=1" } }, - "node_modules/decompress-response/node_modules/mimic-response": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", - "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==", - "dev": true, + "node_modules/graceful-fs": { + "version": "4.2.8", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.8.tgz", + "integrity": "sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg==", + "dev": true + }, + "node_modules/graphql": { + "version": "16.5.0", + "resolved": "https://registry.npmjs.org/graphql/-/graphql-16.5.0.tgz", + "integrity": "sha512-qbHgh8Ix+j/qY+a/ZcJnFQ+j8ezakqPiHwPiZhV/3PgGlgf96QMBB5/f2rkiC9sgLoy/xvT6TSiaf2nTHJh5iA==", + "optional": true, + "engines": { + "node": "^12.22.0 || ^14.16.0 || ^16.0.0 || >=17.0.0" + } + }, + "node_modules/graphql-tag": { + "version": "2.12.6", + "resolved": "https://registry.npmjs.org/graphql-tag/-/graphql-tag-2.12.6.tgz", + "integrity": "sha512-FdSNcu2QQcWnM2VNvSCCDCVS5PpPqpzgFT8+GXzqJuoDd0CBncxCY278u4mhRO7tMgo2JjgJA5aZ+nWSQ/Z+xg==", + "optional": true, + "dependencies": { + "tslib": "^2.1.0" + }, "engines": { "node": ">=10" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "peerDependencies": { + "graphql": "^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0" } }, - "node_modules/dedent": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", - "integrity": "sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw=", - "dev": true - }, - "node_modules/deep-is": { - "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/graphql-tag/node_modules/tslib": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", + "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", + "optional": true }, - "node_modules/deepmerge": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", - "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==", + "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==", "dev": true, + "dependencies": { + "minimist": "^1.2.5", + "neo-async": "^2.6.0", + "source-map": "^0.6.1", + "wordwrap": "^1.0.0" + }, + "bin": { + "handlebars": "bin/handlebars" + }, "engines": { - "node": ">=0.10.0" + "node": ">=0.4.7" + }, + "optionalDependencies": { + "uglify-js": "^3.1.4" } }, - "node_modules/defer-to-connect": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz", - "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==", + "node_modules/handlebars/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, "engines": { - "node": ">=10" + "node": ">=0.10.0" } }, - "node_modules/deferred-leveldown": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/deferred-leveldown/-/deferred-leveldown-5.3.0.tgz", - "integrity": "sha512-a59VOT+oDy7vtAbLRCZwWgxu2BaCfd5Hk7wxJd48ei7I+nsg8Orlb9CLG0PMZienk9BSUKgeAqkO2+Lw+1+Ukw==", + "node_modules/har-schema": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", + "integrity": "sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q==", "dev": true, - "optional": true, - "dependencies": { - "abstract-leveldown": "~6.2.1", - "inherits": "^2.0.3" - }, "engines": { - "node": ">=6" + "node": ">=4" } }, - "node_modules/deferred-leveldown/node_modules/abstract-leveldown": { - "version": "6.2.3", - "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-6.2.3.tgz", - "integrity": "sha512-BsLm5vFMRUrrLeCcRc+G0t2qOaTzpoJQLOubq2XM72eNpjF5UdU5o/5NvlNhx95XHcAvcl8OMXr4mlg/fRgUXQ==", + "node_modules/har-validator": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", + "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", + "deprecated": "this library is no longer supported", "dev": true, - "optional": true, "dependencies": { - "buffer": "^5.5.0", - "immediate": "^3.2.3", - "level-concat-iterator": "~2.0.0", - "level-supports": "~1.0.0", - "xtend": "~4.0.0" + "ajv": "^6.12.3", + "har-schema": "^2.0.0" }, "engines": { "node": ">=6" } }, - "node_modules/deferred-leveldown/node_modules/buffer": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "node_modules/har-validator/node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "optional": true, "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" } }, - "node_modules/deferred-leveldown/node_modules/level-concat-iterator": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/level-concat-iterator/-/level-concat-iterator-2.0.1.tgz", - "integrity": "sha512-OTKKOqeav2QWcERMJR7IS9CUo1sHnke2C0gkSmcR7QuEtFNLLzHQAvnMw8ykvEcv0Qtkg0p7FOwP1v9e5Smdcw==", - "dev": true, - "optional": true, - "engines": { - "node": ">=6" - } + "node_modules/har-validator/node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true }, - "node_modules/deferred-leveldown/node_modules/level-supports": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/level-supports/-/level-supports-1.0.1.tgz", - "integrity": "sha512-rXM7GYnW8gsl1vedTJIbzOrRv85c/2uCMpiiCzO2fndd06U/kUXEEU9evYn4zFggBOg36IsBW8LzqIpETwwQzg==", - "dev": true, - "optional": true, + "node_modules/has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "devOptional": true, "dependencies": { - "xtend": "^4.0.2" + "function-bind": "^1.1.1" }, "engines": { - "node": ">=6" + "node": ">= 0.4.0" } }, - "node_modules/define-properties": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.0.tgz", - "integrity": "sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA==", + "node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "devOptional": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", + "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", "optional": true, "dependencies": { - "has-property-descriptors": "^1.0.0", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" + "get-intrinsic": "^1.1.1" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/delay": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/delay/-/delay-5.0.0.tgz", - "integrity": "sha512-ReEBKkIfe4ya47wlPYf/gu5ib6yUG0/Aez0JQZQz94kiWtRQvZIQbTiehsnwHvLSWJnQdhVeqYue7Id1dKr0qw==", + "node_modules/has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "devOptional": true, "engines": { - "node": ">=10" + "node": ">= 0.4" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/delayed-stream": { + "node_modules/has-tostringtag": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", + "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "dev": true, + "dependencies": { + "has-symbols": "^1.0.2" + }, "engines": { - "node": ">=0.4.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/depd": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", + "node_modules/hash-base": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", + "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", + "dependencies": { + "inherits": "^2.0.4", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" + }, "engines": { - "node": ">= 0.6" + "node": ">=4" } }, - "node_modules/des.js": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz", - "integrity": "sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==", - "dev": true, + "node_modules/hash.js": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", + "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", "dependencies": { - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0" + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.1" } }, - "node_modules/destroy": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", - "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=", - "dev": true + "node_modules/hi-base32": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/hi-base32/-/hi-base32-0.5.1.tgz", + "integrity": "sha512-EmBBpvdYh/4XxsnUybsPag6VikPYnN30td+vQk+GI3qpahVEG9+gTkG0aXVxTjBqQ5T6ijbWIu77O+C5WFWsnA==" }, - "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, - "engines": { - "node": ">=8" + "node_modules/hmac-drbg": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", + "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", + "dependencies": { + "hash.js": "^1.0.3", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.1" } }, - "node_modules/diff": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", - "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", - "dev": true, - "engines": { - "node": ">=0.3.1" + "node_modules/hoist-non-react-statics": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", + "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", + "optional": true, + "dependencies": { + "react-is": "^16.7.0" } }, - "node_modules/diff-sequences": { - "version": "27.0.6", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-27.0.6.tgz", - "integrity": "sha512-ag6wfpBFyNXZ0p8pcuIDS//D8H062ZQJ3fzYxjpmeKjnz8W4pekL3AI8VohmyZmsWW2PWaHgjsmqR6L13101VQ==", - "dev": true, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } + "node_modules/hoist-non-react-statics/node_modules/react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", + "optional": true }, - "node_modules/diffie-hellman": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", - "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", + "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, "dependencies": { - "bn.js": "^4.1.0", - "miller-rabin": "^4.0.0", - "randombytes": "^2.0.0" + "whatwg-encoding": "^1.0.5" + }, + "engines": { + "node": ">=10" } }, - "node_modules/diffie-hellman/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "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/dom-walk": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/dom-walk/-/dom-walk-0.1.2.tgz", - "integrity": "sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w==", + "node_modules/http-cache-semantics": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", + "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==", "dev": true }, - "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, + "node_modules/http-errors": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.1.tgz", + "integrity": "sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==", "dependencies": { - "webidl-conversions": "^5.0.0" + "depd": "~1.1.2", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.1" }, "engines": { - "node": ">=8" + "node": ">= 0.6" } }, - "node_modules/domexception/node_modules/webidl-conversions": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-5.0.0.tgz", - "integrity": "sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==", - "dev": true, - "engines": { - "node": ">=8" - } + "node_modules/http-https": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/http-https/-/http-https-1.0.0.tgz", + "integrity": "sha512-o0PWwVCSp3O0wS6FvNr6xfBCHgt0m1tvPLFOCc2iFDKTRAXhB7m8klDf7ErowFH8POa6dVdGatKU5I1YYwzUyg==", + "dev": true }, - "node_modules/dot-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz", - "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==", + "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, "dependencies": { - "no-case": "^3.0.4", - "tslib": "^2.0.3" + "@tootallnate/once": "1", + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" } }, - "node_modules/dot-case/node_modules/tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" - }, - "node_modules/dot-prop": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-6.0.1.tgz", - "integrity": "sha512-tE7ztYzXHIeyvc7N+hR3oi7FIbf/NIjVP9hmAt3yMXzrQ072/fpjGLx2GxNxGxUl5V73MEqYzioOMoVhGMJ5cA==", + "node_modules/http-proxy-agent/node_modules/debug": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", + "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", "dev": true, - "optional": true, "dependencies": { - "is-obj": "^2.0.0" + "ms": "2.1.2" }, "engines": { - "node": ">=10" + "node": ">=6.0" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } } }, - "node_modules/dotenv": { - "version": "16.0.3", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.0.3.tgz", - "integrity": "sha512-7GO6HghkA5fYG9TYnNxi14/7K9f5occMlp3zXAuSxn7CKCxt9xbNWG7yF8hTCSUchlfWSe3uLmlPfigevRItzQ==", + "node_modules/http-proxy-agent/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/http-signature": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", + "integrity": "sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ==", "dev": true, + "dependencies": { + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" + }, "engines": { - "node": ">=12" + "node": ">=0.8", + "npm": ">=1.3.7" } }, - "node_modules/double-ended-queue": { - "version": "2.1.0-0", - "resolved": "https://registry.npmjs.org/double-ended-queue/-/double-ended-queue-2.1.0-0.tgz", - "integrity": "sha512-+BNfZ+deCo8hMNpDqDnvT+c0XpJ5cUa6mqYq89bho2Ifze4URTqRkcwR399hWoTrTkbZ/XJYDgP6rc7pRgffEQ==", - "dev": true, + "node_modules/http-status-codes": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/http-status-codes/-/http-status-codes-2.2.0.tgz", + "integrity": "sha512-feERVo9iWxvnejp3SEfm/+oNG517npqL2/PIA8ORjyOZjGC7TwCRQsZylciLS64i6pJ0wRYz3rkXLRwbtFa8Ng==", "optional": true }, - "node_modules/drbg.js": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/drbg.js/-/drbg.js-1.0.1.tgz", - "integrity": "sha512-F4wZ06PvqxYLFEZKkFxTDcns9oFNk34hvmJSEwdzsxVQ8YI5YaxtACgQatkYgv2VI2CFkUd2Y+xosPQnHv809g==", - "optional": true, + "node_modules/http2-wrapper": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-2.2.0.tgz", + "integrity": "sha512-kZB0wxMo0sh1PehyjJUWRFEd99KC5TLjZ2cULC4f9iqJBAmKQQXEICjxl5iPJRwP40dpeHFqqhm7tYCvODpqpQ==", + "dev": true, "dependencies": { - "browserify-aes": "^1.0.6", - "create-hash": "^1.1.2", - "create-hmac": "^1.1.4" + "quick-lru": "^5.1.1", + "resolve-alpn": "^1.2.0" }, "engines": { - "node": ">=0.10" + "node": ">=10.19.0" } }, - "node_modules/ecc-jsbn": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", - "integrity": "sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==", + "node_modules/https-proxy-agent": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz", + "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==", "dev": true, "dependencies": { - "jsbn": "~0.1.0", - "safer-buffer": "^2.1.0" - } - }, - "node_modules/eccrypto": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/eccrypto/-/eccrypto-1.1.6.tgz", - "integrity": "sha512-d78ivVEzu7Tn0ZphUUaL43+jVPKTMPFGtmgtz1D0LrFn7cY3K8CdrvibuLz2AAkHBLKZtR8DMbB2ukRYFk987A==", - "hasInstallScript": true, - "optional": true, - "dependencies": { - "acorn": "7.1.1", - "elliptic": "6.5.4", - "es6-promise": "4.2.8", - "nan": "2.14.0" - }, - "optionalDependencies": { - "secp256k1": "3.7.1" - } - }, - "node_modules/eccrypto/node_modules/acorn": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.1.1.tgz", - "integrity": "sha512-add7dgA5ppRPxCFJoAGfMDi7PIBXq1RtGo7BhbLaxwrXPOmw8gq48Y9ozT01hUKy9byMjlR20EJhu5zlkErEkg==", - "optional": true, - "bin": { - "acorn": "bin/acorn" + "agent-base": "6", + "debug": "4" }, "engines": { - "node": ">=0.4.0" + "node": ">= 6" } }, - "node_modules/eccrypto/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "optional": true - }, - "node_modules/eccrypto/node_modules/nan": { - "version": "2.14.0", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.0.tgz", - "integrity": "sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg==", - "optional": true - }, - "node_modules/eccrypto/node_modules/secp256k1": { - "version": "3.7.1", - "resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-3.7.1.tgz", - "integrity": "sha512-1cf8sbnRreXrQFdH6qsg2H71Xw91fCCS9Yp021GnUNJzWJS/py96fS4lHbnTnouLp08Xj6jBoBB6V78Tdbdu5g==", - "hasInstallScript": true, - "optional": true, + "node_modules/https-proxy-agent/node_modules/debug": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", + "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", + "dev": true, "dependencies": { - "bindings": "^1.5.0", - "bip66": "^1.1.5", - "bn.js": "^4.11.8", - "create-hash": "^1.2.0", - "drbg.js": "^1.0.1", - "elliptic": "^6.4.1", - "nan": "^2.14.0", - "safe-buffer": "^5.1.2" + "ms": "2.1.2" }, "engines": { - "node": ">=4.0.0" + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } } }, - "node_modules/ee-first": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=", - "dev": true - }, - "node_modules/electron-to-chromium": { - "version": "1.3.889", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.889.tgz", - "integrity": "sha512-suEUoPTD1mExjL9TdmH7cvEiWJVM2oEiAi+Y1p0QKxI2HcRlT44qDTP2c1aZmVwRemIPYOpxmV7CxQCOWcm4XQ==", + "node_modules/https-proxy-agent/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true }, - "node_modules/elliptic": { - "version": "6.5.4", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", - "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", - "dependencies": { - "bn.js": "^4.11.9", - "brorand": "^1.1.0", - "hash.js": "^1.0.0", - "hmac-drbg": "^1.0.1", - "inherits": "^2.0.4", - "minimalistic-assert": "^1.0.1", - "minimalistic-crypto-utils": "^1.0.1" - } - }, - "node_modules/elliptic/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" - }, - "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==", + "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" - }, - "funding": { - "url": "https://github.com/sindresorhus/emittery?sponsor=1" + "node": ">=10.17.0" } }, - "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==", - "devOptional": true - }, - "node_modules/encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", + "node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", "dev": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, "engines": { - "node": ">= 0.8" + "node": ">=0.10.0" } }, - "node_modules/encoding-down": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/encoding-down/-/encoding-down-6.3.0.tgz", - "integrity": "sha512-QKrV0iKR6MZVJV08QY0wp1e7vF6QbhnbQhb07bwpEyuz4uZiZgPlEGdkCROuFkUwdxlFaiPIhjyarH1ee/3vhw==", + "node_modules/idna-uts46-hx": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/idna-uts46-hx/-/idna-uts46-hx-2.3.1.tgz", + "integrity": "sha512-PWoF9Keq6laYdIRwwCdhTPl60xRqAloYNMQLiyUnG42VjT53oW07BXIRM+NK7eQjzXjAk2gUvX9caRxlnF9TAA==", "dev": true, - "optional": true, "dependencies": { - "abstract-leveldown": "^6.2.1", - "inherits": "^2.0.3", - "level-codec": "^9.0.0", - "level-errors": "^2.0.0" + "punycode": "2.1.0" }, "engines": { - "node": ">=6" + "node": ">=4.0.0" } }, - "node_modules/encoding-down/node_modules/abstract-leveldown": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-6.3.0.tgz", - "integrity": "sha512-TU5nlYgta8YrBMNpc9FwQzRbiXsj49gsALsXadbGHt9CROPzX5fB0rWDR5mtdpOOKa5XqRFpbj1QroPAoPzVjQ==", + "node_modules/idna-uts46-hx/node_modules/punycode": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.0.tgz", + "integrity": "sha512-Yxz2kRwT90aPiWEMHVYnEf4+rhwF1tBmmZ4KepCP+Wkium9JxtWnUm1nqGwpiAHr/tnTSeHqr3wb++jgSkXjhA==", "dev": true, - "optional": true, - "dependencies": { - "buffer": "^5.5.0", - "immediate": "^3.2.3", - "level-concat-iterator": "~2.0.0", - "level-supports": "~1.0.0", - "xtend": "~4.0.0" - }, "engines": { "node": ">=6" } }, - "node_modules/encoding-down/node_modules/buffer": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", - "dev": true, + "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", @@ -7766,4606 +7079,4142 @@ "type": "consulting", "url": "https://feross.org/support" } - ], - "optional": true, - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" - } + ] }, - "node_modules/encoding-down/node_modules/level-concat-iterator": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/level-concat-iterator/-/level-concat-iterator-2.0.1.tgz", - "integrity": "sha512-OTKKOqeav2QWcERMJR7IS9CUo1sHnke2C0gkSmcR7QuEtFNLLzHQAvnMw8ykvEcv0Qtkg0p7FOwP1v9e5Smdcw==", + "node_modules/import-local": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.0.3.tgz", + "integrity": "sha512-bE9iaUY3CXH8Cwfan/abDKAxe1KGT9kyGsBPqf6DMK/z0a2OzAsrukeYNgIH6cH5Xr452jb1TUL8rSfCLjZ9uA==", "dev": true, - "optional": true, + "dependencies": { + "pkg-dir": "^4.2.0", + "resolve-cwd": "^3.0.0" + }, + "bin": { + "import-local-fixture": "fixtures/cli.js" + }, "engines": { - "node": ">=6" + "node": ">=8" } }, - "node_modules/encoding-down/node_modules/level-supports": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/level-supports/-/level-supports-1.0.1.tgz", - "integrity": "sha512-rXM7GYnW8gsl1vedTJIbzOrRv85c/2uCMpiiCzO2fndd06U/kUXEEU9evYn4zFggBOg36IsBW8LzqIpETwwQzg==", + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", "dev": true, - "optional": true, - "dependencies": { - "xtend": "^4.0.2" - }, "engines": { - "node": ">=6" + "node": ">=0.8.19" } }, - "node_modules/end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "dev": true, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", "dependencies": { - "once": "^1.4.0" + "once": "^1.3.0", + "wrappy": "1" } }, - "node_modules/end-stream": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/end-stream/-/end-stream-0.1.0.tgz", - "integrity": "sha512-Brl10T8kYnc75IepKizW6Y9liyW8ikz1B7n/xoHrJxoVSSjoqPn30sb7XVFfQERK4QfUMYRGs9dhWwtt2eu6uA==", - "dev": true, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "node_modules/interpret": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", + "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==", "optional": true, - "dependencies": { - "write-stream": "~0.4.3" + "engines": { + "node": ">= 0.10" } }, - "node_modules/env-paths": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", - "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", + "node_modules/ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", "dev": true, - "optional": true, "engines": { - "node": ">=6" + "node": ">= 0.10" } }, - "node_modules/errno": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz", - "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==", + "node_modules/is-arguments": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", + "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", "dev": true, - "optional": true, "dependencies": { - "prr": "~1.0.1" + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" }, - "bin": { - "errno": "cli.js" - } - }, - "node_modules/error-polyfill": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/error-polyfill/-/error-polyfill-0.1.3.tgz", - "integrity": "sha512-XHJk60ufE+TG/ydwp4lilOog549iiQF2OAPhkk9DdiYWMrltz5yhDz/xnKuenNwP7gy3dsibssO5QpVhkrSzzg==", - "dependencies": { - "capability": "^0.2.5", - "o3": "^1.0.3", - "u3": "^0.1.1" + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/es5-ext": { - "version": "0.10.62", - "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.62.tgz", - "integrity": "sha512-BHLqn0klhEpnOKSrzn/Xsz2UIW8j+cGmo9JLzr8BiUapV8hPL9+FliFqjwr9ngW7jWdnxv6eO+/LqyhJVqgrjA==", - "dev": true, - "hasInstallScript": true, - "dependencies": { - "es6-iterator": "^2.0.3", - "es6-symbol": "^3.1.3", - "next-tick": "^1.1.0" - }, + "node_modules/is-callable": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "dev": true, "engines": { - "node": ">=0.10" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/es6-iterator": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", - "integrity": "sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g==", - "dev": true, + "node_modules/is-core-module": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.5.0.tgz", + "integrity": "sha512-TXCMSDsEHMEEZ6eCA8rwRDbLu55MRGmrctljsBX/2v1d9/GzqHOxW5c5oPSgrUt2vBFXebu9rGqckXGPWOlYpg==", + "devOptional": true, "dependencies": { - "d": "1", - "es5-ext": "^0.10.35", - "es6-symbol": "^3.1.1" + "has": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/es6-promise": { - "version": "4.2.8", - "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz", - "integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==" + "node_modules/is-fullwidth-code-point": { + "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==", + "devOptional": true, + "engines": { + "node": ">=8" + } }, - "node_modules/es6-promisify": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz", - "integrity": "sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=", - "dependencies": { - "es6-promise": "^4.0.3" + "node_modules/is-function": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-function/-/is-function-1.0.2.tgz", + "integrity": "sha512-lw7DUp0aWXYg+CBCN+JKkcE0Q2RayZnSvnZBlwgxHBQhqt5pZNVy4Ri7H9GmmXkdu7LUthszM+Tor1u/2iBcpQ==", + "dev": true + }, + "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/es6-symbol": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz", - "integrity": "sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==", + "node_modules/is-generator-function": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz", + "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==", "dev": true, "dependencies": { - "d": "^1.0.1", - "ext": "^1.1.2" + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "node_modules/is-hex-prefixed": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-hex-prefixed/-/is-hex-prefixed-1.0.0.tgz", + "integrity": "sha1-fY035q135dEnFIkTxXPggtd39VQ=", "devOptional": true, "engines": { - "node": ">=6" + "node": ">=6.5.0", + "npm": ">=3" } }, - "node_modules/escape-html": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=", + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "engines": { + "node": ">=0.12.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/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "devOptional": 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": ">=0.8.0" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/escodegen": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.0.0.tgz", - "integrity": "sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw==", + "node_modules/is-typed-array": { + "version": "1.1.10", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.10.tgz", + "integrity": "sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A==", "dev": true, "dependencies": { - "esprima": "^4.0.1", - "estraverse": "^5.2.0", - "esutils": "^2.0.2", - "optionator": "^0.8.1" - }, - "bin": { - "escodegen": "bin/escodegen.js", - "esgenerate": "bin/esgenerate.js" + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.0" }, "engines": { - "node": ">=6.0" + "node": ">= 0.4" }, - "optionalDependencies": { - "source-map": "~0.6.1" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/escodegen/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "node_modules/is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", + "dev": true + }, + "node_modules/isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==", + "optional": true + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "dev": true + }, + "node_modules/isomorphic-ws": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/isomorphic-ws/-/isomorphic-ws-4.0.1.tgz", + "integrity": "sha512-BhBvN2MBpWTaSHdWRb/bwdZJ1WaehQ2L1KngkCkfLUGF0mAWAT1sQUQacEmQ0jXkFw/czDXPNQSL5u2/Krsz1w==", + "peerDependencies": { + "ws": "*" + } + }, + "node_modules/isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==", + "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, - "optional": true, "engines": { - "node": ">=0.10.0" + "node": ">=8" } }, - "node_modules/esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "node_modules/istanbul-lib-instrument": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz", + "integrity": "sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==", "dev": true, - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" + "dependencies": { + "@babel/core": "^7.7.5", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.0.0", + "semver": "^6.3.0" }, "engines": { - "node": ">=4" + "node": ">=8" } }, - "node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "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, - "engines": { - "node": ">=4.0" + "bin": { + "semver": "bin/semver.js" } }, - "node_modules/esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "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": ">=0.10.0" + "node": ">=8" } }, - "node_modules/etag": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=", + "node_modules/istanbul-lib-report/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, "engines": { - "node": ">= 0.6" + "node": ">=8" } }, - "node_modules/eth-crypto": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/eth-crypto/-/eth-crypto-2.6.0.tgz", - "integrity": "sha512-GCX4ffFYRUGgnuWR5qxcZIRQJ1KEqPFiyXU9yVy7s6dtXIMlUXZQ2h+5ID6rFaOHWbpJbjfkC6YdhwtwRYCnug==", - "optional": true, - "dependencies": { - "@babel/runtime": "7.20.13", - "@ethereumjs/tx": "3.5.2", - "@types/bn.js": "5.1.1", - "eccrypto": "1.1.6", - "ethereumjs-util": "7.1.5", - "ethers": "5.7.2", - "secp256k1": "5.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/pubkey" - } - }, - "node_modules/eth-crypto/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==", - "optional": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/eth-crypto/node_modules/node-addon-api": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-5.1.0.tgz", - "integrity": "sha512-eh0GgfEkpnoWDq+VY8OyvYhFEzBk6jIYbRKdIlyTiAXIVJ8PyBaKb0rp7oDtoddbdoHWhq8wwr+XZ81F1rpNdA==", - "optional": true - }, - "node_modules/eth-crypto/node_modules/secp256k1": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-5.0.0.tgz", - "integrity": "sha512-TKWX8xvoGHrxVdqbYeZM9w+izTF4b9z3NhSaDkdn81btvuh+ivbIMGT/zQvDtTFWhRlThpoz6LEYTr7n8A5GcA==", - "hasInstallScript": true, - "optional": true, + "node_modules/istanbul-lib-report/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, "dependencies": { - "elliptic": "^6.5.4", - "node-addon-api": "^5.0.0", - "node-gyp-build": "^4.2.0" + "has-flag": "^4.0.0" }, "engines": { - "node": ">=14.0.0" + "node": ">=8" } }, - "node_modules/eth-ens-namehash": { - "version": "2.0.8", - "resolved": "https://registry.npmjs.org/eth-ens-namehash/-/eth-ens-namehash-2.0.8.tgz", - "integrity": "sha512-VWEI1+KJfz4Km//dadyvBBoBeSQ0MHTXPvr8UIXiLW6IanxvAV+DmlZAijZwAyggqGUfwQBeHf7tc9wzc1piSw==", + "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": { - "idna-uts46-hx": "^2.3.1", - "js-sha3": "^0.5.7" + "debug": "^4.1.1", + "istanbul-lib-coverage": "^3.0.0", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=10" } }, - "node_modules/eth-ens-namehash/node_modules/js-sha3": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.5.7.tgz", - "integrity": "sha512-GII20kjaPX0zJ8wzkTbNDYMY7msuZcTWk8S5UOh6806Jq/wz1J8/bnr8uGU0DAUmYDjj2Mr4X1cW8v/GLYnR+g==", - "dev": true - }, - "node_modules/eth-lib": { - "version": "0.1.29", - "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.1.29.tgz", - "integrity": "sha512-bfttrr3/7gG4E02HoWTDUcDDslN003OlOoBxk9virpAZQ1ja/jDgwkWB8QfJF7ojuEowrqy+lzp9VcJG7/k5bQ==", + "node_modules/istanbul-lib-source-maps/node_modules/debug": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", + "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", "dev": true, "dependencies": { - "bn.js": "^4.11.6", - "elliptic": "^6.4.0", - "nano-json-stream-parser": "^0.1.2", - "servify": "^0.1.12", - "ws": "^3.0.0", - "xhr-request-promise": "^0.1.2" + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } } }, - "node_modules/eth-lib/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - }, - "node_modules/eth-lib/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "node_modules/istanbul-lib-source-maps/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true }, - "node_modules/eth-lib/node_modules/ws": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/ws/-/ws-3.3.3.tgz", - "integrity": "sha512-nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA==", + "node_modules/istanbul-lib-source-maps/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, - "dependencies": { - "async-limiter": "~1.0.0", - "safe-buffer": "~5.1.0", - "ultron": "~1.1.0" + "engines": { + "node": ">=0.10.0" } }, - "node_modules/ethereum-bloom-filters": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/ethereum-bloom-filters/-/ethereum-bloom-filters-1.0.10.tgz", - "integrity": "sha512-rxJ5OFN3RwjQxDcFP2Z5+Q9ho4eIdEmSc2ht0fCu8Se9nbXjZ7/031uXoUYJ87KHCOdVeiUuwSnoS7hmYAGVHA==", + "node_modules/istanbul-reports": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.0.5.tgz", + "integrity": "sha512-5+19PlhnGabNWB7kOFnuxT8H3T/iIyQzIbQMxXsURmmvKg86P2sbkrGOT77VnHw0Qr0gc2XzRaRfMZYYbSQCJQ==", "dev": true, "dependencies": { - "js-sha3": "^0.8.0" - } - }, - "node_modules/ethereum-cryptography": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz", - "integrity": "sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ==", - "dependencies": { - "@types/pbkdf2": "^3.0.0", - "@types/secp256k1": "^4.0.1", - "blakejs": "^1.1.0", - "browserify-aes": "^1.2.0", - "bs58check": "^2.1.2", - "create-hash": "^1.2.0", - "create-hmac": "^1.1.7", - "hash.js": "^1.1.7", - "keccak": "^3.0.0", - "pbkdf2": "^3.0.17", - "randombytes": "^2.1.0", - "safe-buffer": "^5.1.2", - "scrypt-js": "^3.0.0", - "secp256k1": "^4.0.1", - "setimmediate": "^1.0.5" + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + }, + "engines": { + "node": ">=8" } }, - "node_modules/ethereumjs-abi": { - "version": "0.6.8", - "resolved": "https://registry.npmjs.org/ethereumjs-abi/-/ethereumjs-abi-0.6.8.tgz", - "integrity": "sha512-Tx0r/iXI6r+lRsdvkFDlut0N08jWMnKRZ6Gkq+Nmw75lZe4e6o3EkSnkaBP5NF6+m5PTGAr9JP43N3LyeoglsA==", - "optional": true, + "node_modules/jayson": { + "version": "3.6.4", + "resolved": "https://registry.npmjs.org/jayson/-/jayson-3.6.4.tgz", + "integrity": "sha512-GH63DsRFFlodS8krFgAhxwYvQFmSwjsFxKnPrHQtp+BJj/tpeSj3hyBGGqmTkuq043U1Gn6u8VdsVRFZX1EEiQ==", "dependencies": { - "bn.js": "^4.11.8", - "ethereumjs-util": "^6.0.0" + "@types/connect": "^3.4.33", + "@types/express-serve-static-core": "^4.17.9", + "@types/lodash": "^4.14.159", + "@types/node": "^12.12.54", + "@types/ws": "^7.4.4", + "commander": "^2.20.3", + "delay": "^5.0.0", + "es6-promisify": "^5.0.0", + "eyes": "^0.1.8", + "isomorphic-ws": "^4.0.1", + "json-stringify-safe": "^5.0.1", + "JSONStream": "^1.3.5", + "lodash": "^4.17.20", + "uuid": "^3.4.0", + "ws": "^7.4.5" + }, + "bin": { + "jayson": "bin/jayson.js" + }, + "engines": { + "node": ">=8" } }, - "node_modules/ethereumjs-abi/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "optional": true + "node_modules/jayson/node_modules/@types/node": { + "version": "12.20.19", + "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.19.tgz", + "integrity": "sha512-niAuZrwrjKck4+XhoCw6AAVQBENHftpXw9F4ryk66fTgYaKQ53R4FI7c9vUGGw5vQis1HKBHDR1gcYI/Bq1xvw==" }, - "node_modules/ethereumjs-abi/node_modules/ethereumjs-util": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-6.2.1.tgz", - "integrity": "sha512-W2Ktez4L01Vexijrm5EB6w7dg4n/TgpoYU4avuT5T3Vmnw/eCRtiBrJfQYS/DCSvDIOLn2k57GcHdeBcgVxAqw==", - "optional": true, + "node_modules/jest": { + "version": "27.3.1", + "resolved": "https://registry.npmjs.org/jest/-/jest-27.3.1.tgz", + "integrity": "sha512-U2AX0AgQGd5EzMsiZpYt8HyZ+nSVIh5ujQ9CPp9EQZJMjXIiSZpJNweZl0swatKRoqHWgGKM3zaSwm4Zaz87ng==", + "dev": true, "dependencies": { - "@types/bn.js": "^4.11.3", - "bn.js": "^4.11.0", - "create-hash": "^1.1.2", - "elliptic": "^6.5.2", - "ethereum-cryptography": "^0.1.3", - "ethjs-util": "0.1.6", - "rlp": "^2.2.3" + "@jest/core": "^27.3.1", + "import-local": "^3.0.2", + "jest-cli": "^27.3.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/ethereumjs-util": { - "version": "7.1.5", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.5.tgz", - "integrity": "sha512-SDl5kKrQAudFBUe5OJM9Ac6WmMyYmXX/6sTmLZ3ffG2eY6ZIGBes3pEDxNN6V72WyOw4CPD5RomKdsa8DAAwLg==", + "node_modules/jest-changed-files": { + "version": "27.3.0", + "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-27.3.0.tgz", + "integrity": "sha512-9DJs9garMHv4RhylUMZgbdCJ3+jHSkpL9aaVKp13xtXAD80qLTLrqcDZL1PHA9dYA0bCI86Nv2BhkLpLhrBcPg==", + "dev": true, "dependencies": { - "@types/bn.js": "^5.1.0", - "bn.js": "^5.1.2", - "create-hash": "^1.1.2", - "ethereum-cryptography": "^0.1.3", - "rlp": "^2.2.4" + "@jest/types": "^27.2.5", + "execa": "^5.0.0", + "throat": "^6.0.1" }, "engines": { - "node": ">=10.0.0" + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, - "node_modules/ethereumjs-util/node_modules/@types/bn.js": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-5.1.0.tgz", - "integrity": "sha512-QSSVYj7pYFN49kW77o2s9xTCwZ8F2xLbjLLSEVh8D2F4JUhZtPAGOFLTD+ffqksBx/u4cE/KImFjyhqCjn/LIA==", + "node_modules/jest-circus": { + "version": "27.3.1", + "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-27.3.1.tgz", + "integrity": "sha512-v1dsM9II6gvXokgqq6Yh2jHCpfg7ZqV4jWY66u7npz24JnhP3NHxI0sKT7+ZMQ7IrOWHYAaeEllOySbDbWsiXw==", + "dev": true, "dependencies": { - "@types/node": "*" - } - }, - "node_modules/ethers": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/ethers/-/ethers-5.7.2.tgz", - "integrity": "sha512-wswUsmWo1aOK8rR7DIKiWSw9DbLWe6x98Jrn8wcTflTVvaXhAMaB5zGAXy0GYQEQp9iO1iSHWVyARQm11zUtyg==", - "devOptional": true, - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/abi": "5.7.0", - "@ethersproject/abstract-provider": "5.7.0", - "@ethersproject/abstract-signer": "5.7.0", - "@ethersproject/address": "5.7.0", - "@ethersproject/base64": "5.7.0", - "@ethersproject/basex": "5.7.0", - "@ethersproject/bignumber": "5.7.0", - "@ethersproject/bytes": "5.7.0", - "@ethersproject/constants": "5.7.0", - "@ethersproject/contracts": "5.7.0", - "@ethersproject/hash": "5.7.0", - "@ethersproject/hdnode": "5.7.0", - "@ethersproject/json-wallets": "5.7.0", - "@ethersproject/keccak256": "5.7.0", - "@ethersproject/logger": "5.7.0", - "@ethersproject/networks": "5.7.1", - "@ethersproject/pbkdf2": "5.7.0", - "@ethersproject/properties": "5.7.0", - "@ethersproject/providers": "5.7.2", - "@ethersproject/random": "5.7.0", - "@ethersproject/rlp": "5.7.0", - "@ethersproject/sha2": "5.7.0", - "@ethersproject/signing-key": "5.7.0", - "@ethersproject/solidity": "5.7.0", - "@ethersproject/strings": "5.7.0", - "@ethersproject/transactions": "5.7.0", - "@ethersproject/units": "5.7.0", - "@ethersproject/wallet": "5.7.0", - "@ethersproject/web": "5.7.1", - "@ethersproject/wordlists": "5.7.0" + "@jest/environment": "^27.3.1", + "@jest/test-result": "^27.3.1", + "@jest/types": "^27.2.5", + "@types/node": "*", + "chalk": "^4.0.0", + "co": "^4.6.0", + "dedent": "^0.7.0", + "expect": "^27.3.1", + "is-generator-fn": "^2.0.0", + "jest-each": "^27.3.1", + "jest-matcher-utils": "^27.3.1", + "jest-message-util": "^27.3.1", + "jest-runtime": "^27.3.1", + "jest-snapshot": "^27.3.1", + "jest-util": "^27.3.1", + "pretty-format": "^27.3.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/ethjs-unit": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/ethjs-unit/-/ethjs-unit-0.1.6.tgz", - "integrity": "sha1-xmWSHkduh7ziqdWIpv4EBbLEFpk=", + "node_modules/jest-circus/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "dependencies": { - "bn.js": "4.11.6", - "number-to-bn": "1.7.0" + "color-convert": "^2.0.1" }, "engines": { - "node": ">=6.5.0", - "npm": ">=3" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/ethjs-unit/node_modules/bn.js": { - "version": "4.11.6", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz", - "integrity": "sha1-UzRK2xRhehP26N0s4okF0cC6MhU=", - "dev": true - }, - "node_modules/ethjs-util": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/ethjs-util/-/ethjs-util-0.1.6.tgz", - "integrity": "sha512-CUnVOQq7gSpDHZVVrQW8ExxUETWrnrvXYvYz55wOU8Uj4VCgw56XC2B/fVqQN+f7gmrnRHSLVnFAwsCuNwji8w==", - "optional": true, + "node_modules/jest-circus/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, "dependencies": { - "is-hex-prefixed": "1.0.0", - "strip-hex-prefix": "1.0.0" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, "engines": { - "node": ">=6.5.0", - "npm": ">=3" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/event-target-shim": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", - "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==", + "node_modules/jest-circus/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, - "optional": true, + "dependencies": { + "color-name": "~1.1.4" + }, "engines": { - "node": ">=6" + "node": ">=7.0.0" } }, - "node_modules/eventemitter3": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", - "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==" + "node_modules/jest-circus/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true }, - "node_modules/evp_bytestokey": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", - "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", - "dependencies": { - "md5.js": "^1.3.4", - "safe-buffer": "^5.1.1" + "node_modules/jest-circus/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" } }, - "node_modules/execa": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", - "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "node_modules/jest-circus/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "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" + "has-flag": "^4.0.0" }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" + "node": ">=8" } }, - "node_modules/exit": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", - "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=", + "node_modules/jest-cli": { + "version": "27.3.1", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-27.3.1.tgz", + "integrity": "sha512-WHnCqpfK+6EvT62me6WVs8NhtbjAS4/6vZJnk7/2+oOr50cwAzG4Wxt6RXX0hu6m1169ZGMlhYYUNeKBXCph/Q==", "dev": true, + "dependencies": { + "@jest/core": "^27.3.1", + "@jest/test-result": "^27.3.1", + "@jest/types": "^27.2.5", + "chalk": "^4.0.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.4", + "import-local": "^3.0.2", + "jest-config": "^27.3.1", + "jest-util": "^27.3.1", + "jest-validate": "^27.3.1", + "prompts": "^2.0.1", + "yargs": "^16.2.0" + }, + "bin": { + "jest": "bin/jest.js" + }, "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/exit-on-epipe": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/exit-on-epipe/-/exit-on-epipe-1.0.1.tgz", - "integrity": "sha512-h2z5mrROTxce56S+pnvAV890uu7ls7f1kEvVGJbw1OlFH3/mlJ5bkXu0KRyW94v37zzHPiUd55iLn3DA7TjWpw==", - "devOptional": true, - "engines": { - "node": ">=0.8" + "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/expect": { - "version": "27.3.1", - "resolved": "https://registry.npmjs.org/expect/-/expect-27.3.1.tgz", - "integrity": "sha512-MrNXV2sL9iDRebWPGOGFdPQRl2eDQNu/uhxIMShjjx74T6kC6jFIkmQ6OqXDtevjGUkyB2IT56RzDBqXf/QPCg==", + "node_modules/jest-cli/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "dependencies": { - "@jest/types": "^27.2.5", - "ansi-styles": "^5.0.0", - "jest-get-type": "^27.3.1", - "jest-matcher-utils": "^27.3.1", - "jest-message-util": "^27.3.1", - "jest-regex-util": "^27.0.6" + "color-convert": "^2.0.1" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/expect/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==", + "node_modules/jest-cli/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, "engines": { "node": ">=10" }, "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/express": { - "version": "4.17.2", - "resolved": "https://registry.npmjs.org/express/-/express-4.17.2.tgz", - "integrity": "sha512-oxlxJxcQlYwqPWKVJJtvQiwHgosH/LrLSPA+H4UxpyvSS6jC5aH+5MoHFM+KABgTOt0APue4w66Ha8jCUo9QGg==", + "node_modules/jest-cli/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "dependencies": { - "accepts": "~1.3.7", - "array-flatten": "1.1.1", - "body-parser": "1.19.1", - "content-disposition": "0.5.4", - "content-type": "~1.0.4", - "cookie": "0.4.1", - "cookie-signature": "1.0.6", - "debug": "2.6.9", - "depd": "~1.1.2", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "finalhandler": "~1.1.2", - "fresh": "0.5.2", - "merge-descriptors": "1.0.1", - "methods": "~1.1.2", - "on-finished": "~2.3.0", - "parseurl": "~1.3.3", - "path-to-regexp": "0.1.7", - "proxy-addr": "~2.0.7", - "qs": "6.9.6", - "range-parser": "~1.2.1", - "safe-buffer": "5.2.1", - "send": "0.17.2", - "serve-static": "1.14.2", - "setprototypeof": "1.2.0", - "statuses": "~1.5.0", - "type-is": "~1.6.18", - "utils-merge": "1.0.1", - "vary": "~1.1.2" + "color-name": "~1.1.4" }, "engines": { - "node": ">= 0.10.0" - } - }, - "node_modules/ext": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/ext/-/ext-1.7.0.tgz", - "integrity": "sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw==", - "dev": true, - "dependencies": { - "type": "^2.7.2" + "node": ">=7.0.0" } }, - "node_modules/ext/node_modules/type": { - "version": "2.7.2", - "resolved": "https://registry.npmjs.org/type/-/type-2.7.2.tgz", - "integrity": "sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw==", - "dev": true - }, - "node_modules/extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "node_modules/jest-cli/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, - "node_modules/extsprintf": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==", + "node_modules/jest-cli/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, - "engines": [ - "node >=0.6.0" - ] - }, - "node_modules/eyes": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/eyes/-/eyes-0.1.8.tgz", - "integrity": "sha1-Ys8SAjTGg3hdkCNIqADvPgzCC8A=", "engines": { - "node": "> 0.1.90" + "node": ">=8" } }, - "node_modules/fast-check": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/fast-check/-/fast-check-3.1.1.tgz", - "integrity": "sha512-3vtXinVyuUKCKFKYcwXhGE6NtGWkqF8Yh3rvMZNzmwz8EPrgoc/v4pDdLHyLnCyCI5MZpZZkDEwFyXyEONOxpA==", + "node_modules/jest-cli/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "dependencies": { - "pure-rand": "^5.0.1" + "has-flag": "^4.0.0" }, "engines": { - "node": ">=8.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/fast-check" + "node": ">=8" } }, - "node_modules/fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true - }, - "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": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", - "dev": true - }, - "node_modules/fast-stable-stringify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fast-stable-stringify/-/fast-stable-stringify-1.0.0.tgz", - "integrity": "sha512-wpYMUmFu5f00Sm0cj2pfivpmawLZ0NKdviQ4w9zJeR8JVtOpOxHmLaJuj0vxvGqMJQWyP/COUkF75/57OKyRag==" - }, - "node_modules/fb-watchman": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.1.tgz", - "integrity": "sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg==", + "node_modules/jest-config": { + "version": "27.3.1", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-27.3.1.tgz", + "integrity": "sha512-KY8xOIbIACZ/vdYCKSopL44I0xboxC751IX+DXL2+Wx6DKNycyEfV3rryC3BPm5Uq/BBqDoMrKuqLEUNJmMKKg==", "dev": true, "dependencies": { - "bser": "2.1.1" + "@babel/core": "^7.1.0", + "@jest/test-sequencer": "^27.3.1", + "@jest/types": "^27.2.5", + "babel-jest": "^27.3.1", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "deepmerge": "^4.2.2", + "glob": "^7.1.1", + "graceful-fs": "^4.2.4", + "jest-circus": "^27.3.1", + "jest-environment-jsdom": "^27.3.1", + "jest-environment-node": "^27.3.1", + "jest-get-type": "^27.3.1", + "jest-jasmine2": "^27.3.1", + "jest-regex-util": "^27.0.6", + "jest-resolve": "^27.3.1", + "jest-runner": "^27.3.1", + "jest-util": "^27.3.1", + "jest-validate": "^27.3.1", + "micromatch": "^4.0.4", + "pretty-format": "^27.3.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/fetch-cookie": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/fetch-cookie/-/fetch-cookie-0.11.0.tgz", - "integrity": "sha512-BQm7iZLFhMWFy5CZ/162sAGjBfdNWb7a8LEqqnzsHFhxT/X/SVj/z2t2nu3aJvjlbQkrAlTUApplPRjWyH4mhA==", + "node_modules/jest-config/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, - "optional": true, "dependencies": { - "tough-cookie": "^2.3.3 || ^3.0.1 || ^4.0.0" + "color-convert": "^2.0.1" }, "engines": { "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/file-uri-to-path": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", - "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==" - }, - "node_modules/fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "node_modules/jest-config/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "dependencies": { - "to-regex-range": "^5.0.1" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, "engines": { - "node": ">=8" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/finalhandler": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", - "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", + "node_modules/jest-config/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "dependencies": { - "debug": "2.6.9", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "on-finished": "~2.3.0", - "parseurl": "~1.3.3", - "statuses": "~1.5.0", - "unpipe": "~1.0.0" + "color-name": "~1.1.4" }, "engines": { - "node": ">= 0.8" + "node": ">=7.0.0" } }, - "node_modules/find-replace": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/find-replace/-/find-replace-1.0.3.tgz", - "integrity": "sha512-KrUnjzDCD9426YnCP56zGYy/eieTnhtK6Vn++j+JJzmlsWWwEkDnsyVF575spT6HJ6Ow9tlbT3TQTDsa+O4UWA==", + "node_modules/jest-config/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/jest-config/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-config/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "dependencies": { - "array-back": "^1.0.4", - "test-value": "^2.1.0" + "has-flag": "^4.0.0" }, "engines": { - "node": ">=4.0.0" + "node": ">=8" } }, - "node_modules/find-replace/node_modules/array-back": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-1.0.4.tgz", - "integrity": "sha512-1WxbZvrmyhkNoeYcizokbmh5oiOCIfyvGtcqbK3Ls1v1fKcquzxnQSceOx6tzq7jmai2kFLWIpGND2cLhH6TPw==", + "node_modules/jest-diff": { + "version": "27.3.1", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-27.3.1.tgz", + "integrity": "sha512-PCeuAH4AWUo2O5+ksW4pL9v5xJAcIKPUPfIhZBcG1RKv/0+dvaWTQK1Nrau8d67dp65fOqbeMdoil+6PedyEPQ==", "dev": true, "dependencies": { - "typical": "^2.6.0" + "chalk": "^4.0.0", + "diff-sequences": "^27.0.6", + "jest-get-type": "^27.3.1", + "pretty-format": "^27.3.1" }, "engines": { - "node": ">=0.12.0" + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.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==", + "node_modules/jest-diff/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" + "color-convert": "^2.0.1" }, "engines": { "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/flat": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", - "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", - "dev": true, - "bin": { - "flat": "cli.js" - } - }, - "node_modules/follow-redirects": { - "version": "1.15.1", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.1.tgz", - "integrity": "sha512-yLAMQs+k0b2m7cVxpS1VKJVvoz7SS9Td1zss3XRwXj+ZDH00RJgnuLx7E44wx02kQLrdM3aOOy+FpzS7+8OizA==", - "funding": [ - { - "type": "individual", - "url": "https://github.com/sponsors/RubenVerborgh" - } - ], + "node_modules/jest-diff/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, "engines": { - "node": ">=4.0" + "node": ">=10" }, - "peerDependenciesMeta": { - "debug": { - "optional": true - } + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/for-each": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", - "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", + "node_modules/jest-diff/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "dependencies": { - "is-callable": "^1.1.3" + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" } }, - "node_modules/foreach": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz", - "integrity": "sha1-C+4AUBiusmDQo6865ljdATbsG5k=", + "node_modules/jest-diff/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, - "node_modules/forever-agent": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==", + "node_modules/jest-diff/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, "engines": { - "node": "*" + "node": ">=8" } }, - "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==", + "node_modules/jest-diff/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" + "has-flag": "^4.0.0" }, "engines": { - "node": ">= 6" + "node": ">=8" } }, - "node_modules/form-data-encoder": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/form-data-encoder/-/form-data-encoder-1.7.1.tgz", - "integrity": "sha512-EFRDrsMm/kyqbTQocNvRXMLjc7Es2Vk+IQFx/YW7hkUH1eBl4J1fqiP34l74Yt0pFLCNpc06fkbVk00008mzjg==", - "dev": true - }, - "node_modules/forwarded": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", - "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "node_modules/jest-docblock": { + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-27.0.6.tgz", + "integrity": "sha512-Fid6dPcjwepTFraz0YxIMCi7dejjJ/KL9FBjPYhBp4Sv1Y9PdhImlKZqYU555BlN4TQKaTc+F2Av1z+anVyGkA==", "dev": true, + "dependencies": { + "detect-newline": "^3.0.0" + }, "engines": { - "node": ">= 0.6" + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, - "node_modules/fresh": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", + "node_modules/jest-each": { + "version": "27.3.1", + "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-27.3.1.tgz", + "integrity": "sha512-E4SwfzKJWYcvOYCjOxhZcxwL+AY0uFMvdCOwvzgutJiaiodFjkxQQDxHm8FQBeTqDnSmKsQWn7ldMRzTn2zJaQ==", "dev": true, + "dependencies": { + "@jest/types": "^27.2.5", + "chalk": "^4.0.0", + "jest-get-type": "^27.3.1", + "jest-util": "^27.3.1", + "pretty-format": "^27.3.1" + }, "engines": { - "node": ">= 0.6" + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, - "node_modules/fs-extra": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", - "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", + "node_modules/jest-each/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "dependencies": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" + "color-convert": "^2.0.1" }, "engines": { - "node": ">=6 <7 || >=8" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/fs-minipass": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.7.tgz", - "integrity": "sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==", + "node_modules/jest-each/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "dependencies": { - "minipass": "^2.6.0" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" - }, - "node_modules/fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "node_modules/jest-each/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], + "dependencies": { + "color-name": "~1.1.4" + }, "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + "node": ">=7.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==", - "devOptional": true + "node_modules/jest-each/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true }, - "node_modules/functional-red-black-tree": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", - "integrity": "sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==", + "node_modules/jest-each/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, - "optional": true + "engines": { + "node": ">=8" + } }, - "node_modules/ganache": { - "version": "7.6.0", - "resolved": "https://registry.npmjs.org/ganache/-/ganache-7.6.0.tgz", - "integrity": "sha512-TVpSHgIKPVCqvehGXOsXTYi5X0VvPeS+KHl0Ph8WQvtvoqxutZ8Ov4PclaAX9htIGmwns8DYJBg+yvola6wdrA==", - "bundleDependencies": [ - "@trufflesuite/bigint-buffer", - "emittery", - "keccak", - "leveldown", - "secp256k1", - "@types/bn.js", - "@types/lru-cache", - "@types/seedrandom" - ], + "node_modules/jest-each/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, - "hasShrinkwrap": true, "dependencies": { - "@trufflesuite/bigint-buffer": "1.1.10", - "@types/bn.js": "^5.1.0", - "@types/lru-cache": "5.1.1", - "@types/seedrandom": "3.0.1", - "emittery": "0.10.0", - "keccak": "3.0.2", - "leveldown": "6.1.0", - "secp256k1": "4.0.3" - }, - "bin": { - "ganache": "dist/node/cli.js", - "ganache-cli": "dist/node/cli.js" + "has-flag": "^4.0.0" }, - "optionalDependencies": { - "bufferutil": "4.0.5", - "utf-8-validate": "5.0.7" + "engines": { + "node": ">=8" } }, - "node_modules/ganache/node_modules/@trufflesuite/bigint-buffer": { - "version": "1.1.10", - "resolved": "https://registry.npmjs.org/@trufflesuite/bigint-buffer/-/bigint-buffer-1.1.10.tgz", - "integrity": "sha512-pYIQC5EcMmID74t26GCC67946mgTJFiLXOT/BYozgrd4UEY2JHEGLhWi9cMiQCt5BSqFEvKkCHNnoj82SRjiEw==", + "node_modules/jest-environment-jsdom": { + "version": "27.3.1", + "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-27.3.1.tgz", + "integrity": "sha512-3MOy8qMzIkQlfb3W1TfrD7uZHj+xx8Olix5vMENkj5djPmRqndMaXtpnaZkxmxM+Qc3lo+yVzJjzuXbCcZjAlg==", "dev": true, - "hasInstallScript": true, - "inBundle": true, - "license": "Apache-2.0", "dependencies": { - "node-gyp-build": "4.4.0" + "@jest/environment": "^27.3.1", + "@jest/fake-timers": "^27.3.1", + "@jest/types": "^27.2.5", + "@types/node": "*", + "jest-mock": "^27.3.0", + "jest-util": "^27.3.1", + "jsdom": "^16.6.0" }, "engines": { - "node": ">= 14.0.0" - } - }, - "node_modules/ganache/node_modules/@trufflesuite/bigint-buffer/node_modules/node-gyp-build": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.4.0.tgz", - "integrity": "sha512-amJnQCcgtRVw9SvoebO3BKGESClrfXGCUTX9hSn1OuGQTQBOZmVd0Z0OlecpuRksKvbsUqALE8jls/ErClAPuQ==", - "dev": true, - "inBundle": true, - "license": "MIT", - "bin": { - "node-gyp-build": "bin.js", - "node-gyp-build-optional": "optional.js", - "node-gyp-build-test": "build-test.js" + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, - "node_modules/ganache/node_modules/@types/bn.js": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-5.1.0.tgz", - "integrity": "sha512-QSSVYj7pYFN49kW77o2s9xTCwZ8F2xLbjLLSEVh8D2F4JUhZtPAGOFLTD+ffqksBx/u4cE/KImFjyhqCjn/LIA==", + "node_modules/jest-environment-node": { + "version": "27.3.1", + "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-27.3.1.tgz", + "integrity": "sha512-T89F/FgkE8waqrTSA7/ydMkcc52uYPgZZ6q8OaZgyiZkJb5QNNCF6oPZjH9IfPFfcc9uBWh1574N0kY0pSvTXw==", "dev": true, - "inBundle": true, - "license": "MIT", "dependencies": { - "@types/node": "*" + "@jest/environment": "^27.3.1", + "@jest/fake-timers": "^27.3.1", + "@jest/types": "^27.2.5", + "@types/node": "*", + "jest-mock": "^27.3.0", + "jest-util": "^27.3.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, - "node_modules/ganache/node_modules/@types/lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/@types/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-ssE3Vlrys7sdIzs5LOxCzTVMsU7i9oa/IaW92wF32JFb3CVczqOkru2xspuKczHEbG3nvmPY7IFqVmGGHdNbYw==", - "dev": true, - "inBundle": true, - "license": "MIT" - }, - "node_modules/ganache/node_modules/@types/node": { - "version": "17.0.0", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.0.tgz", - "integrity": "sha512-eMhwJXc931Ihh4tkU+Y7GiLzT/y/DBNpNtr4yU9O2w3SYBsr9NaOPhQlLKRmoWtI54uNwuo0IOUFQjVOTZYRvw==", + "node_modules/jest-get-type": { + "version": "27.3.1", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.3.1.tgz", + "integrity": "sha512-+Ilqi8hgHSAdhlQ3s12CAVNd8H96ZkQBfYoXmArzZnOfAtVAJEiPDBirjByEblvG/4LPJmkL+nBqPO3A1YJAEg==", "dev": true, - "inBundle": true, - "license": "MIT" + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } }, - "node_modules/ganache/node_modules/@types/seedrandom": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@types/seedrandom/-/seedrandom-3.0.1.tgz", - "integrity": "sha512-giB9gzDeiCeloIXDgzFBCgjj1k4WxcDrZtGl6h1IqmUPlxF+Nx8Ve+96QCyDZ/HseB/uvDsKbpib9hU5cU53pw==", + "node_modules/jest-haste-map": { + "version": "27.3.1", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-27.3.1.tgz", + "integrity": "sha512-lYfNZIzwPccDJZIyk9Iz5iQMM/MH56NIIcGj7AFU1YyA4ewWFBl8z+YPJuSCRML/ee2cCt2y3W4K3VXPT6Nhzg==", "dev": true, - "inBundle": true, - "license": "MIT" - }, - "node_modules/ganache/node_modules/base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "inBundle": true, - "license": "MIT" - }, - "node_modules/ganache/node_modules/brorand": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", - "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=", - "dev": true, - "inBundle": true, - "license": "MIT" - }, - "node_modules/ganache/node_modules/buffer": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", - "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "inBundle": true, - "license": "MIT", - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" - } - }, - "node_modules/ganache/node_modules/bufferutil": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/bufferutil/-/bufferutil-4.0.5.tgz", - "integrity": "sha512-HTm14iMQKK2FjFLRTM5lAVcyaUzOnqbPtesFIvREgXpJHdQm8bWS+GkQgIkfaBYRHuCnea7w8UVNfwiAQhlr9A==", - "dev": true, - "optional": true, "dependencies": { - "node-gyp-build": "^4.3.0" + "@jest/types": "^27.2.5", + "@types/graceful-fs": "^4.1.2", + "@types/node": "*", + "anymatch": "^3.0.3", + "fb-watchman": "^2.0.0", + "graceful-fs": "^4.2.4", + "jest-regex-util": "^27.0.6", + "jest-serializer": "^27.0.6", + "jest-util": "^27.3.1", + "jest-worker": "^27.3.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/ganache/node_modules/catering": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/catering/-/catering-2.1.0.tgz", - "integrity": "sha512-M5imwzQn6y+ODBfgi+cfgZv2hIUI6oYU/0f35Mdb1ujGeqeoI5tOnl9Q13DTH7LW+7er+NYq8stNOKZD/Z3U/A==", + "node_modules/jest-jasmine2": { + "version": "27.3.1", + "resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-27.3.1.tgz", + "integrity": "sha512-WK11ZUetDQaC09w4/j7o4FZDUIp+4iYWH/Lik34Pv7ukL+DuXFGdnmmi7dT58J2ZYKFB5r13GyE0z3NPeyJmsg==", "dev": true, - "inBundle": true, - "license": "MIT", "dependencies": { - "queue-tick": "^1.0.0" + "@babel/traverse": "^7.1.0", + "@jest/environment": "^27.3.1", + "@jest/source-map": "^27.0.6", + "@jest/test-result": "^27.3.1", + "@jest/types": "^27.2.5", + "@types/node": "*", + "chalk": "^4.0.0", + "co": "^4.6.0", + "expect": "^27.3.1", + "is-generator-fn": "^2.0.0", + "jest-each": "^27.3.1", + "jest-matcher-utils": "^27.3.1", + "jest-message-util": "^27.3.1", + "jest-runtime": "^27.3.1", + "jest-snapshot": "^27.3.1", + "jest-util": "^27.3.1", + "pretty-format": "^27.3.1", + "throat": "^6.0.1" }, "engines": { - "node": ">=6" + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, - "node_modules/ganache/node_modules/elliptic": { - "version": "6.5.4", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", - "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", + "node_modules/jest-jasmine2/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, - "inBundle": true, - "license": "MIT", "dependencies": { - "bn.js": "^4.11.9", - "brorand": "^1.1.0", - "hash.js": "^1.0.0", - "hmac-drbg": "^1.0.1", - "inherits": "^2.0.4", - "minimalistic-assert": "^1.0.1", - "minimalistic-crypto-utils": "^1.0.1" - } - }, - "node_modules/ganache/node_modules/elliptic/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true, - "inBundle": true, - "license": "MIT" - }, - "node_modules/ganache/node_modules/emittery": { - "version": "0.10.0", - "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.10.0.tgz", - "integrity": "sha512-AGvFfs+d0JKCJQ4o01ASQLGPmSCxgfU9RFXvzPvZdjKK8oscynksuJhWrSTSw7j7Ep/sZct5b5ZhYCi8S/t0HQ==", - "dev": true, - "inBundle": true, - "license": "MIT", + "color-convert": "^2.0.1" + }, "engines": { - "node": ">=12" + "node": ">=8" }, "funding": { - "url": "https://github.com/sindresorhus/emittery?sponsor=1" + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/ganache/node_modules/hash.js": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", - "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", + "node_modules/jest-jasmine2/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, - "inBundle": true, - "license": "MIT", "dependencies": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.1" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/ganache/node_modules/hmac-drbg": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", - "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", + "node_modules/jest-jasmine2/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, - "inBundle": true, - "license": "MIT", "dependencies": { - "hash.js": "^1.0.3", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.1" + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" } }, - "node_modules/ganache/node_modules/ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "inBundle": true, - "license": "BSD-3-Clause" - }, - "node_modules/ganache/node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true, - "inBundle": true, - "license": "ISC" + "node_modules/jest-jasmine2/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true }, - "node_modules/ganache/node_modules/is-buffer": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz", - "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==", + "node_modules/jest-jasmine2/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "inBundle": true, - "license": "MIT", "engines": { - "node": ">=4" + "node": ">=8" } }, - "node_modules/ganache/node_modules/keccak": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/keccak/-/keccak-3.0.2.tgz", - "integrity": "sha512-PyKKjkH53wDMLGrvmRGSNWgmSxZOUqbnXwKL9tmgbFYA1iAYqW21kfR7mZXV0MlESiefxQQE9X9fTa3X+2MPDQ==", + "node_modules/jest-jasmine2/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, - "hasInstallScript": true, - "inBundle": true, - "license": "MIT", "dependencies": { - "node-addon-api": "^2.0.0", - "node-gyp-build": "^4.2.0", - "readable-stream": "^3.6.0" + "has-flag": "^4.0.0" }, "engines": { - "node": ">=10.0.0" + "node": ">=8" } }, - "node_modules/ganache/node_modules/leveldown": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/leveldown/-/leveldown-6.1.0.tgz", - "integrity": "sha512-8C7oJDT44JXxh04aSSsfcMI8YiaGRhOFI9/pMEL7nWJLVsWajDPTRxsSHTM2WcTVY5nXM+SuRHzPPi0GbnDX+w==", + "node_modules/jest-leak-detector": { + "version": "27.3.1", + "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-27.3.1.tgz", + "integrity": "sha512-78QstU9tXbaHzwlRlKmTpjP9k4Pvre5l0r8Spo4SbFFVy/4Abg9I6ZjHwjg2QyKEAMg020XcjP+UgLZIY50yEg==", "dev": true, - "hasInstallScript": true, - "inBundle": true, - "license": "MIT", "dependencies": { - "abstract-leveldown": "^7.2.0", - "napi-macros": "~2.0.0", - "node-gyp-build": "^4.3.0" + "jest-get-type": "^27.3.1", + "pretty-format": "^27.3.1" }, "engines": { - "node": ">=10.12.0" + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, - "node_modules/ganache/node_modules/leveldown/node_modules/abstract-leveldown": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-7.2.0.tgz", - "integrity": "sha512-DnhQwcFEaYsvYDnACLZhMmCWd3rkOeEvglpa4q5i/5Jlm3UIsWaxVzuXvDLFCSCWRO3yy2/+V/G7FusFgejnfQ==", + "node_modules/jest-matcher-utils": { + "version": "27.3.1", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-27.3.1.tgz", + "integrity": "sha512-hX8N7zXS4k+8bC1Aj0OWpGb7D3gIXxYvPNK1inP5xvE4ztbz3rc4AkI6jGVaerepBnfWB17FL5lWFJT3s7qo8w==", "dev": true, - "inBundle": true, - "license": "MIT", "dependencies": { - "buffer": "^6.0.3", - "catering": "^2.0.0", - "is-buffer": "^2.0.5", - "level-concat-iterator": "^3.0.0", - "level-supports": "^2.0.1", - "queue-microtask": "^1.2.3" + "chalk": "^4.0.0", + "jest-diff": "^27.3.1", + "jest-get-type": "^27.3.1", + "pretty-format": "^27.3.1" }, "engines": { - "node": ">=10" + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, - "node_modules/ganache/node_modules/leveldown/node_modules/level-concat-iterator": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/level-concat-iterator/-/level-concat-iterator-3.1.0.tgz", - "integrity": "sha512-BWRCMHBxbIqPxJ8vHOvKUsaO0v1sLYZtjN3K2iZJsRBYtp+ONsY6Jfi6hy9K3+zolgQRryhIn2NRZjZnWJ9NmQ==", + "node_modules/jest-matcher-utils/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, - "inBundle": true, - "license": "MIT", "dependencies": { - "catering": "^2.1.0" + "color-convert": "^2.0.1" }, "engines": { - "node": ">=10" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/ganache/node_modules/leveldown/node_modules/level-supports": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/level-supports/-/level-supports-2.1.0.tgz", - "integrity": "sha512-E486g1NCjW5cF78KGPrMDRBYzPuueMZ6VBXHT6gC7A8UYWGiM14fGgp+s/L1oFfDWSPV/+SFkYCmZ0SiESkRKA==", + "node_modules/jest-matcher-utils/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, - "inBundle": true, - "license": "MIT", + "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/ganache/node_modules/minimalistic-assert": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", - "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", - "dev": true, - "inBundle": true, - "license": "ISC" - }, - "node_modules/ganache/node_modules/minimalistic-crypto-utils": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", - "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=", - "dev": true, - "inBundle": true, - "license": "MIT" - }, - "node_modules/ganache/node_modules/napi-macros": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/napi-macros/-/napi-macros-2.0.0.tgz", - "integrity": "sha512-A0xLykHtARfueITVDernsAWdtIMbOJgKgcluwENp3AlsKN/PloyO10HtmoqnFAQAcxPkgZN7wdfPfEd0zNGxbg==", - "dev": true, - "inBundle": true, - "license": "MIT" - }, - "node_modules/ganache/node_modules/node-addon-api": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-2.0.2.tgz", - "integrity": "sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA==", - "dev": true, - "inBundle": true, - "license": "MIT" - }, - "node_modules/ganache/node_modules/node-gyp-build": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.3.0.tgz", - "integrity": "sha512-iWjXZvmboq0ja1pUGULQBexmxq8CV4xBhX7VDOTbL7ZR4FOowwY/VOtRxBN/yKxmdGoIp4j5ysNT4u3S2pDQ3Q==", + "node_modules/jest-matcher-utils/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, - "inBundle": true, - "license": "MIT", - "bin": { - "node-gyp-build": "bin.js", - "node-gyp-build-optional": "optional.js", - "node-gyp-build-test": "build-test.js" + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" } }, - "node_modules/ganache/node_modules/queue-microtask": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "inBundle": true, - "license": "MIT" + "node_modules/jest-matcher-utils/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true }, - "node_modules/ganache/node_modules/queue-tick": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/queue-tick/-/queue-tick-1.0.0.tgz", - "integrity": "sha512-ULWhjjE8BmiICGn3G8+1L9wFpERNxkf8ysxkAer4+TFdRefDaXOCV5m92aMB9FtBVmn/8sETXLXY6BfW7hyaWQ==", + "node_modules/jest-matcher-utils/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, - "inBundle": true, - "license": "MIT" + "engines": { + "node": ">=8" + } }, - "node_modules/ganache/node_modules/readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "node_modules/jest-matcher-utils/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, - "inBundle": true, - "license": "MIT", "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" + "has-flag": "^4.0.0" }, "engines": { - "node": ">= 6" + "node": ">=8" } }, - "node_modules/ganache/node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "inBundle": true, - "license": "MIT" - }, - "node_modules/ganache/node_modules/secp256k1": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-4.0.3.tgz", - "integrity": "sha512-NLZVf+ROMxwtEj3Xa562qgv2BK5e2WNmXPiOdVIPLgs6lyTzMvBq0aWTYMI5XCP9jZMVKOcqZLw/Wc4vDkuxhA==", + "node_modules/jest-message-util": { + "version": "27.3.1", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.3.1.tgz", + "integrity": "sha512-bh3JEmxsTZ/9rTm0jQrPElbY2+y48Rw2t47uMfByNyUVR+OfPh4anuyKsGqsNkXk/TI4JbLRZx+7p7Hdt6q1yg==", "dev": true, - "hasInstallScript": true, - "inBundle": true, - "license": "MIT", "dependencies": { - "elliptic": "^6.5.4", - "node-addon-api": "^2.0.0", - "node-gyp-build": "^4.2.0" + "@babel/code-frame": "^7.12.13", + "@jest/types": "^27.2.5", + "@types/stack-utils": "^2.0.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.4", + "micromatch": "^4.0.4", + "pretty-format": "^27.3.1", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" }, "engines": { - "node": ">=10.0.0" + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, - "node_modules/ganache/node_modules/string_decoder": { - "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==", + "node_modules/jest-message-util/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, - "inBundle": true, - "license": "MIT", "dependencies": { - "safe-buffer": "~5.2.0" + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/ganache/node_modules/utf-8-validate": { - "version": "5.0.7", - "resolved": "https://registry.npmjs.org/utf-8-validate/-/utf-8-validate-5.0.7.tgz", - "integrity": "sha512-vLt1O5Pp+flcArHGIyKEQq883nBt8nN8tVBcoL0qUXj2XT1n7p70yGIq2VK98I5FdZ1YHc0wk/koOnHjnXWk1Q==", + "node_modules/jest-message-util/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, - "optional": true, "dependencies": { - "node-gyp-build": "^4.3.0" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/ganache/node_modules/util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", - "dev": true, - "inBundle": true, - "license": "MIT" - }, - "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==", + "node_modules/jest-message-util/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, "engines": { - "node": ">=6.9.0" + "node": ">=7.0.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", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "devOptional": true, + "node_modules/jest-message-util/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/jest-message-util/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, "engines": { - "node": "6.* || 8.* || >= 10.*" + "node": ">=8" } }, - "node_modules/get-intrinsic": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.3.tgz", - "integrity": "sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==", - "devOptional": true, + "node_modules/jest-message-util/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, "dependencies": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.3" + "has-flag": "^4.0.0" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "engines": { + "node": ">=8" } }, - "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==", + "node_modules/jest-mock": { + "version": "27.3.0", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-27.3.0.tgz", + "integrity": "sha512-ziZiLk0elZOQjD08bLkegBzv5hCABu/c8Ytx45nJKkysQwGaonvmTxwjLqEA4qGdasq9o2I8/HtdGMNnVsMTGw==", "dev": true, + "dependencies": { + "@jest/types": "^27.2.5", + "@types/node": "*" + }, "engines": { - "node": ">=8.0.0" + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.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==", + "node_modules/jest-pnp-resolver": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz", + "integrity": "sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w==", "dev": true, "engines": { - "node": ">=10" + "node": ">=6" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "peerDependencies": { + "jest-resolve": "*" + }, + "peerDependenciesMeta": { + "jest-resolve": { + "optional": true + } } }, - "node_modules/getpass": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "integrity": "sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==", + "node_modules/jest-regex-util": { + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-27.0.6.tgz", + "integrity": "sha512-SUhPzBsGa1IKm8hx2F4NfTGGp+r7BXJ4CulsZ1k2kI+mGLG+lxGrs76veN2LF/aUdGosJBzKgXmNCw+BzFqBDQ==", "dev": true, - "dependencies": { - "assert-plus": "^1.0.0" - } - }, - "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": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, - "node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "node_modules/jest-resolve": { + "version": "27.3.1", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-27.3.1.tgz", + "integrity": "sha512-Dfzt25CFSPo3Y3GCbxynRBZzxq9AdyNN+x/v2IqYx6KVT5Z6me2Z/PsSGFSv3cOSUZqJ9pHxilao/I/m9FouLw==", "dev": true, "dependencies": { - "is-glob": "^4.0.1" + "@jest/types": "^27.2.5", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.4", + "jest-haste-map": "^27.3.1", + "jest-pnp-resolver": "^1.2.2", + "jest-util": "^27.3.1", + "jest-validate": "^27.3.1", + "resolve": "^1.20.0", + "resolve.exports": "^1.1.0", + "slash": "^3.0.0" }, "engines": { - "node": ">= 6" + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, - "node_modules/global": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/global/-/global-4.4.0.tgz", - "integrity": "sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w==", + "node_modules/jest-resolve-dependencies": { + "version": "27.3.1", + "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-27.3.1.tgz", + "integrity": "sha512-X7iLzY8pCiYOnvYo2YrK3P9oSE8/3N2f4pUZMJ8IUcZnT81vlSonya1KTO9ZfKGuC+svE6FHK/XOb8SsoRUV1A==", "dev": true, "dependencies": { - "min-document": "^2.19.0", - "process": "^0.11.10" - } - }, - "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, + "@jest/types": "^27.2.5", + "jest-regex-util": "^27.0.6", + "jest-snapshot": "^27.3.1" + }, "engines": { - "node": ">=4" + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, - "node_modules/globalthis": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz", - "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==", - "optional": true, + "node_modules/jest-resolve/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, "dependencies": { - "define-properties": "^1.1.3" + "color-convert": "^2.0.1" }, "engines": { - "node": ">= 0.4" + "node": ">=8" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/google-protobuf": { - "version": "3.21.2", - "resolved": "https://registry.npmjs.org/google-protobuf/-/google-protobuf-3.21.2.tgz", - "integrity": "sha512-3MSOYFO5U9mPGikIYCzK0SaThypfGgS6bHqrUGXG3DPHCrb+txNqeEcns1W0lkGfk0rCyNXm7xB9rMxnCiZOoA==" - }, - "node_modules/gopd": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", - "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "node_modules/jest-resolve/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "dependencies": { - "get-intrinsic": "^1.1.3" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/got": { - "version": "12.1.0", - "resolved": "https://registry.npmjs.org/got/-/got-12.1.0.tgz", - "integrity": "sha512-hBv2ty9QN2RdbJJMK3hesmSkFTjVIHyIDDbssCKnSmq62edGgImJWD10Eb1k77TiV1bxloxqcFAVK8+9pkhOig==", + "node_modules/jest-resolve/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "dependencies": { - "@sindresorhus/is": "^4.6.0", - "@szmarczak/http-timer": "^5.0.1", - "@types/cacheable-request": "^6.0.2", - "@types/responselike": "^1.0.0", - "cacheable-lookup": "^6.0.4", - "cacheable-request": "^7.0.2", - "decompress-response": "^6.0.0", - "form-data-encoder": "1.7.1", - "get-stream": "^6.0.1", - "http2-wrapper": "^2.1.10", - "lowercase-keys": "^3.0.0", - "p-cancelable": "^3.0.0", - "responselike": "^2.0.0" + "color-name": "~1.1.4" }, "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sindresorhus/got?sponsor=1" + "node": ">=7.0.0" } }, - "node_modules/graceful-fs": { - "version": "4.2.8", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.8.tgz", - "integrity": "sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg==", + "node_modules/jest-resolve/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, - "node_modules/graphql": { - "version": "16.5.0", - "resolved": "https://registry.npmjs.org/graphql/-/graphql-16.5.0.tgz", - "integrity": "sha512-qbHgh8Ix+j/qY+a/ZcJnFQ+j8ezakqPiHwPiZhV/3PgGlgf96QMBB5/f2rkiC9sgLoy/xvT6TSiaf2nTHJh5iA==", - "optional": true, + "node_modules/jest-resolve/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, "engines": { - "node": "^12.22.0 || ^14.16.0 || ^16.0.0 || >=17.0.0" + "node": ">=8" } }, - "node_modules/graphql-tag": { - "version": "2.12.6", - "resolved": "https://registry.npmjs.org/graphql-tag/-/graphql-tag-2.12.6.tgz", - "integrity": "sha512-FdSNcu2QQcWnM2VNvSCCDCVS5PpPqpzgFT8+GXzqJuoDd0CBncxCY278u4mhRO7tMgo2JjgJA5aZ+nWSQ/Z+xg==", - "optional": true, + "node_modules/jest-resolve/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, "dependencies": { - "tslib": "^2.1.0" + "has-flag": "^4.0.0" }, "engines": { - "node": ">=10" - }, - "peerDependencies": { - "graphql": "^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0" + "node": ">=8" } }, - "node_modules/graphql-tag/node_modules/tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", - "optional": 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==", + "node_modules/jest-runner": { + "version": "27.3.1", + "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-27.3.1.tgz", + "integrity": "sha512-r4W6kBn6sPr3TBwQNmqE94mPlYVn7fLBseeJfo4E2uCTmAyDFm2O5DYAQAFP7Q3YfiA/bMwg8TVsciP7k0xOww==", "dev": true, "dependencies": { - "minimist": "^1.2.5", - "neo-async": "^2.6.0", - "source-map": "^0.6.1", - "wordwrap": "^1.0.0" - }, - "bin": { - "handlebars": "bin/handlebars" - }, - "engines": { - "node": ">=0.4.7" + "@jest/console": "^27.3.1", + "@jest/environment": "^27.3.1", + "@jest/test-result": "^27.3.1", + "@jest/transform": "^27.3.1", + "@jest/types": "^27.2.5", + "@types/node": "*", + "chalk": "^4.0.0", + "emittery": "^0.8.1", + "exit": "^0.1.2", + "graceful-fs": "^4.2.4", + "jest-docblock": "^27.0.6", + "jest-environment-jsdom": "^27.3.1", + "jest-environment-node": "^27.3.1", + "jest-haste-map": "^27.3.1", + "jest-leak-detector": "^27.3.1", + "jest-message-util": "^27.3.1", + "jest-resolve": "^27.3.1", + "jest-runtime": "^27.3.1", + "jest-util": "^27.3.1", + "jest-worker": "^27.3.1", + "source-map-support": "^0.5.6", + "throat": "^6.0.1" }, - "optionalDependencies": { - "uglify-js": "^3.1.4" - } - }, - "node_modules/handlebars/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, "engines": { - "node": ">=0.10.0" + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, - "node_modules/har-schema": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", - "integrity": "sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q==", + "node_modules/jest-runner/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, "engines": { - "node": ">=4" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/har-validator": { - "version": "5.1.5", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", - "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", - "deprecated": "this library is no longer supported", + "node_modules/jest-runner/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "dependencies": { - "ajv": "^6.12.3", - "har-schema": "^2.0.0" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, "engines": { - "node": ">=6" - } + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } }, - "node_modules/har-validator/node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "node_modules/jest-runner/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" + "color-name": "~1.1.4" }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" + "engines": { + "node": ">=7.0.0" } }, - "node_modules/har-validator/node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "node_modules/jest-runner/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, - "node_modules/has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "devOptional": true, - "dependencies": { - "function-bind": "^1.1.1" - }, + "node_modules/jest-runner/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, "engines": { - "node": ">= 0.4.0" + "node": ">=8" } }, - "node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "devOptional": true, + "node_modules/jest-runner/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, "engines": { - "node": ">=4" + "node": ">=8" } }, - "node_modules/has-property-descriptors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", - "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", - "optional": true, + "node_modules/jest-runtime": { + "version": "27.3.1", + "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-27.3.1.tgz", + "integrity": "sha512-qtO6VxPbS8umqhEDpjA4pqTkKQ1Hy4ZSi9mDVeE9Za7LKBo2LdW2jmT+Iod3XFaJqINikZQsn2wEi0j9wPRbLg==", + "dev": true, "dependencies": { - "get-intrinsic": "^1.1.1" + "@jest/console": "^27.3.1", + "@jest/environment": "^27.3.1", + "@jest/globals": "^27.3.1", + "@jest/source-map": "^27.0.6", + "@jest/test-result": "^27.3.1", + "@jest/transform": "^27.3.1", + "@jest/types": "^27.2.5", + "@types/yargs": "^16.0.0", + "chalk": "^4.0.0", + "cjs-module-lexer": "^1.0.0", + "collect-v8-coverage": "^1.0.0", + "execa": "^5.0.0", + "exit": "^0.1.2", + "glob": "^7.1.3", + "graceful-fs": "^4.2.4", + "jest-haste-map": "^27.3.1", + "jest-message-util": "^27.3.1", + "jest-mock": "^27.3.0", + "jest-regex-util": "^27.0.6", + "jest-resolve": "^27.3.1", + "jest-snapshot": "^27.3.1", + "jest-util": "^27.3.1", + "jest-validate": "^27.3.1", + "slash": "^3.0.0", + "strip-bom": "^4.0.0", + "yargs": "^16.2.0" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, - "node_modules/has-symbols": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", - "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", - "devOptional": true, + "node_modules/jest-runtime/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, "engines": { - "node": ">= 0.4" + "node": ">=8" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/has-tostringtag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", - "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "node_modules/jest-runtime/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "dependencies": { - "has-symbols": "^1.0.2" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, "engines": { - "node": ">= 0.4" + "node": ">=10" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/hash-base": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", - "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", + "node_modules/jest-runtime/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, "dependencies": { - "inherits": "^2.0.4", - "readable-stream": "^3.6.0", - "safe-buffer": "^5.2.0" + "color-name": "~1.1.4" }, "engines": { - "node": ">=4" + "node": ">=7.0.0" } }, - "node_modules/hash.js": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", - "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", - "dependencies": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.1" - } + "node_modules/jest-runtime/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true }, - "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==", + "node_modules/jest-runtime/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, - "bin": { - "he": "bin/he" + "engines": { + "node": ">=8" } }, - "node_modules/header-case": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/header-case/-/header-case-1.0.1.tgz", - "integrity": "sha512-i0q9mkOeSuhXw6bGgiQCCBgY/jlZuV/7dZXyZ9c6LcBrqwvT8eT719E9uxE5LiZftdl+z81Ugbg/VvXV4OJOeQ==", + "node_modules/jest-runtime/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "dependencies": { - "no-case": "^2.2.0", - "upper-case": "^1.1.3" + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" } }, - "node_modules/header-case/node_modules/lower-case": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz", - "integrity": "sha512-2Fgx1Ycm599x+WGpIYwJOvsjmXFzTSc34IwDWALRA/8AopUKAVPwfJ+h5+f85BCp0PWmmJcWzEpxOpoXycMpdA==", - "dev": true - }, - "node_modules/header-case/node_modules/no-case": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/no-case/-/no-case-2.3.2.tgz", - "integrity": "sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ==", + "node_modules/jest-serializer": { + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-27.0.6.tgz", + "integrity": "sha512-PtGdVK9EGC7dsaziskfqaAPib6wTViY3G8E5wz9tLVPhHyiDNTZn/xjZ4khAw+09QkoOVpn7vF5nPSN6dtBexA==", "dev": true, "dependencies": { - "lower-case": "^1.1.1" + "@types/node": "*", + "graceful-fs": "^4.2.4" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, - "node_modules/hi-base32": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/hi-base32/-/hi-base32-0.5.1.tgz", - "integrity": "sha512-EmBBpvdYh/4XxsnUybsPag6VikPYnN30td+vQk+GI3qpahVEG9+gTkG0aXVxTjBqQ5T6ijbWIu77O+C5WFWsnA==" - }, - "node_modules/hmac-drbg": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", - "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", + "node_modules/jest-snapshot": { + "version": "27.3.1", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-27.3.1.tgz", + "integrity": "sha512-APZyBvSgQgOT0XumwfFu7X3G5elj6TGhCBLbBdn3R1IzYustPGPE38F51dBWMQ8hRXa9je0vAdeVDtqHLvB6lg==", + "dev": true, "dependencies": { - "hash.js": "^1.0.3", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.1" + "@babel/core": "^7.7.2", + "@babel/generator": "^7.7.2", + "@babel/parser": "^7.7.2", + "@babel/plugin-syntax-typescript": "^7.7.2", + "@babel/traverse": "^7.7.2", + "@babel/types": "^7.0.0", + "@jest/transform": "^27.3.1", + "@jest/types": "^27.2.5", + "@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.3.1", + "graceful-fs": "^4.2.4", + "jest-diff": "^27.3.1", + "jest-get-type": "^27.3.1", + "jest-haste-map": "^27.3.1", + "jest-matcher-utils": "^27.3.1", + "jest-message-util": "^27.3.1", + "jest-resolve": "^27.3.1", + "jest-util": "^27.3.1", + "natural-compare": "^1.4.0", + "pretty-format": "^27.3.1", + "semver": "^7.3.2" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, - "node_modules/hoist-non-react-statics": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", - "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", - "optional": true, + "node_modules/jest-snapshot/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, "dependencies": { - "react-is": "^16.7.0" + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/hoist-non-react-statics/node_modules/react-is": { - "version": "16.13.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", - "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", - "optional": true - }, - "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==", + "node_modules/jest-snapshot/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "dependencies": { - "whatwg-encoding": "^1.0.5" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, "engines": { "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "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-cache-semantics": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", - "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==", - "dev": true - }, - "node_modules/http-errors": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.1.tgz", - "integrity": "sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==", + "node_modules/jest-snapshot/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, "dependencies": { - "depd": "~1.1.2", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": ">= 1.5.0 < 2", - "toidentifier": "1.0.1" + "color-name": "~1.1.4" }, "engines": { - "node": ">= 0.6" + "node": ">=7.0.0" } }, - "node_modules/http-https": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/http-https/-/http-https-1.0.0.tgz", - "integrity": "sha512-o0PWwVCSp3O0wS6FvNr6xfBCHgt0m1tvPLFOCc2iFDKTRAXhB7m8klDf7ErowFH8POa6dVdGatKU5I1YYwzUyg==", + "node_modules/jest-snapshot/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "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==", + "node_modules/jest-snapshot/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-snapshot/node_modules/semver": { + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", "dev": true, "dependencies": { - "@tootallnate/once": "1", - "agent-base": "6", - "debug": "4" + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" }, "engines": { - "node": ">= 6" + "node": ">=10" } }, - "node_modules/http-proxy-agent/node_modules/debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", + "node_modules/jest-snapshot/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "dependencies": { - "ms": "2.1.2" + "has-flag": "^4.0.0" }, "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } + "node": ">=8" } }, - "node_modules/http-proxy-agent/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "node_modules/http-signature": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", - "integrity": "sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ==", + "node_modules/jest-util": { + "version": "27.3.1", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.3.1.tgz", + "integrity": "sha512-8fg+ifEH3GDryLQf/eKZck1DEs2YuVPBCMOaHQxVVLmQwl/CDhWzrvChTX4efLZxGrw+AA0mSXv78cyytBt/uw==", "dev": true, "dependencies": { - "assert-plus": "^1.0.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" + "@jest/types": "^27.2.5", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.4", + "picomatch": "^2.2.3" }, "engines": { - "node": ">=0.8", - "npm": ">=1.3.7" + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, - "node_modules/http-status-codes": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/http-status-codes/-/http-status-codes-2.2.0.tgz", - "integrity": "sha512-feERVo9iWxvnejp3SEfm/+oNG517npqL2/PIA8ORjyOZjGC7TwCRQsZylciLS64i6pJ0wRYz3rkXLRwbtFa8Ng==", - "optional": true - }, - "node_modules/http2-wrapper": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-2.2.0.tgz", - "integrity": "sha512-kZB0wxMo0sh1PehyjJUWRFEd99KC5TLjZ2cULC4f9iqJBAmKQQXEICjxl5iPJRwP40dpeHFqqhm7tYCvODpqpQ==", + "node_modules/jest-util/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "dependencies": { - "quick-lru": "^5.1.1", - "resolve-alpn": "^1.2.0" + "color-convert": "^2.0.1" }, "engines": { - "node": ">=10.19.0" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/https-proxy-agent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz", - "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==", + "node_modules/jest-util/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "dependencies": { - "agent-base": "6", - "debug": "4" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, "engines": { - "node": ">= 6" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/https-proxy-agent/node_modules/debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", + "node_modules/jest-util/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "dependencies": { - "ms": "2.1.2" + "color-name": "~1.1.4" }, "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } + "node": ">=7.0.0" } }, - "node_modules/https-proxy-agent/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "node_modules/jest-util/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, - "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==", + "node_modules/jest-util/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, "engines": { - "node": ">=10.17.0" + "node": ">=8" } }, - "node_modules/iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "node_modules/jest-util/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" + "has-flag": "^4.0.0" }, "engines": { - "node": ">=0.10.0" + "node": ">=8" } }, - "node_modules/idna-uts46-hx": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/idna-uts46-hx/-/idna-uts46-hx-2.3.1.tgz", - "integrity": "sha512-PWoF9Keq6laYdIRwwCdhTPl60xRqAloYNMQLiyUnG42VjT53oW07BXIRM+NK7eQjzXjAk2gUvX9caRxlnF9TAA==", + "node_modules/jest-validate": { + "version": "27.3.1", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-27.3.1.tgz", + "integrity": "sha512-3H0XCHDFLA9uDII67Bwi1Vy7AqwA5HqEEjyy934lgVhtJ3eisw6ShOF1MDmRPspyikef5MyExvIm0/TuLzZ86Q==", "dev": true, "dependencies": { - "punycode": "2.1.0" + "@jest/types": "^27.2.5", + "camelcase": "^6.2.0", + "chalk": "^4.0.0", + "jest-get-type": "^27.3.1", + "leven": "^3.1.0", + "pretty-format": "^27.3.1" }, "engines": { - "node": ">=4.0.0" + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, - "node_modules/idna-uts46-hx/node_modules/punycode": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.0.tgz", - "integrity": "sha512-Yxz2kRwT90aPiWEMHVYnEf4+rhwF1tBmmZ4KepCP+Wkium9JxtWnUm1nqGwpiAHr/tnTSeHqr3wb++jgSkXjhA==", + "node_modules/jest-validate/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, "engines": { - "node": ">=6" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "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/immediate": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.3.0.tgz", - "integrity": "sha512-HR7EVodfFUdQCTIeySw+WDRFJlPcLOJbXfwwZ7Oom6tjsvZ3bOkCDJHehQC3nxJrv7+f9XecwazynjU8e4Vw3Q==", + "node_modules/jest-validate/node_modules/camelcase": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.0.tgz", + "integrity": "sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg==", "dev": true, - "optional": true + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, - "node_modules/import-local": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.0.3.tgz", - "integrity": "sha512-bE9iaUY3CXH8Cwfan/abDKAxe1KGT9kyGsBPqf6DMK/z0a2OzAsrukeYNgIH6cH5Xr452jb1TUL8rSfCLjZ9uA==", + "node_modules/jest-validate/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "dependencies": { - "pkg-dir": "^4.2.0", - "resolve-cwd": "^3.0.0" - }, - "bin": { - "import-local-fixture": "fixtures/cli.js" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, "engines": { - "node": ">=8" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "node_modules/jest-validate/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "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", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" - }, - "node_modules/interpret": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", - "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==", - "optional": true, + "color-name": "~1.1.4" + }, "engines": { - "node": ">= 0.10" + "node": ">=7.0.0" } }, - "node_modules/ipaddr.js": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", - "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", - "dev": true, - "engines": { - "node": ">= 0.10" - } + "node_modules/jest-validate/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true }, - "node_modules/is-arguments": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", - "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", + "node_modules/jest-validate/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=8" } }, - "node_modules/is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "node_modules/jest-validate/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "dependencies": { - "binary-extensions": "^2.0.0" + "has-flag": "^4.0.0" }, "engines": { "node": ">=8" } }, - "node_modules/is-buffer": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz", - "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==", + "node_modules/jest-watcher": { + "version": "27.3.1", + "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-27.3.1.tgz", + "integrity": "sha512-9/xbV6chABsGHWh9yPaAGYVVKurWoP3ZMCv6h+O1v9/+pkOroigs6WzZ0e9gLP/njokUwM7yQhr01LKJVMkaZA==", "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "optional": true, + "dependencies": { + "@jest/test-result": "^27.3.1", + "@jest/types": "^27.2.5", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "jest-util": "^27.3.1", + "string-length": "^4.0.1" + }, "engines": { - "node": ">=4" + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, - "node_modules/is-callable": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", - "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "node_modules/jest-watcher/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, "engines": { - "node": ">= 0.4" + "node": ">=8" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/is-core-module": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.5.0.tgz", - "integrity": "sha512-TXCMSDsEHMEEZ6eCA8rwRDbLu55MRGmrctljsBX/2v1d9/GzqHOxW5c5oPSgrUt2vBFXebu9rGqckXGPWOlYpg==", - "devOptional": true, + "node_modules/jest-watcher/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, "dependencies": { - "has": "^1.0.3" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "node_modules/jest-watcher/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-fullwidth-code-point": { - "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==", - "devOptional": true, - "engines": { - "node": ">=8" + "node": ">=7.0.0" } }, - "node_modules/is-function": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-function/-/is-function-1.0.2.tgz", - "integrity": "sha512-lw7DUp0aWXYg+CBCN+JKkcE0Q2RayZnSvnZBlwgxHBQhqt5pZNVy4Ri7H9GmmXkdu7LUthszM+Tor1u/2iBcpQ==", + "node_modules/jest-watcher/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, - "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==", + "node_modules/jest-watcher/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, "engines": { - "node": ">=6" + "node": ">=8" } }, - "node_modules/is-generator-function": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz", - "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==", + "node_modules/jest-watcher/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "dependencies": { - "has-tostringtag": "^1.0.0" + "has-flag": "^4.0.0" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=8" } }, - "node_modules/is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "node_modules/jest-worker": { + "version": "27.3.1", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.3.1.tgz", + "integrity": "sha512-ks3WCzsiZaOPJl/oMsDjaf0TRiSv7ctNgs0FqRr2nARsovz6AWWy4oLElwcquGSz692DzgZQrCLScPNs5YlC4g==", "dev": true, "dependencies": { - "is-extglob": "^2.1.1" + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" }, "engines": { - "node": ">=0.10.0" + "node": ">= 10.13.0" } }, - "node_modules/is-hex-prefixed": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-hex-prefixed/-/is-hex-prefixed-1.0.0.tgz", - "integrity": "sha1-fY035q135dEnFIkTxXPggtd39VQ=", - "devOptional": true, + "node_modules/jest-worker/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, "engines": { - "node": ">=6.5.0", - "npm": ">=3" + "node": ">=8" } }, - "node_modules/is-lower-case": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/is-lower-case/-/is-lower-case-1.1.3.tgz", - "integrity": "sha512-+5A1e/WJpLLXZEDlgz4G//WYSHyQBD32qa4Jd3Lw06qQlv3fJHnp3YIHjTQSGzHMgzmVKz2ZP3rBxTHkPw/lxA==", + "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": { - "lower-case": "^1.1.0" - } - }, - "node_modules/is-lower-case/node_modules/lower-case": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz", - "integrity": "sha512-2Fgx1Ycm599x+WGpIYwJOvsjmXFzTSc34IwDWALRA/8AopUKAVPwfJ+h5+f85BCp0PWmmJcWzEpxOpoXycMpdA==", - "dev": true - }, - "node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true, + "has-flag": "^4.0.0" + }, "engines": { - "node": ">=0.12.0" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" } }, - "node_modules/is-obj": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", - "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", - "dev": true, - "optional": true, - "engines": { - "node": ">=8" - } + "node_modules/js-base64": { + "version": "3.6.1", + "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-3.6.1.tgz", + "integrity": "sha512-Frdq2+tRRGLQUIQOgsIGSCd1VePCS2fsddTG5dTCqR0JHgltXWfsxnY0gIXPoMeRmdom6Oyq+UMOFg5suduOjQ==" }, - "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==", + "node_modules/js-sha256": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/js-sha256/-/js-sha256-0.9.0.tgz", + "integrity": "sha512-sga3MHh9sgQN2+pJ9VYZ+1LPwXOxuBJBA5nrR5/ofPfuiJBE2hnjsaN8se8JznOmGLN2p49Pe5U/ttafcs/apA==" + }, + "node_modules/js-sha3": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.8.0.tgz", + "integrity": "sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q==", + "license": "MIT" + }, + "node_modules/js-sha512": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/js-sha512/-/js-sha512-0.8.0.tgz", + "integrity": "sha512-PWsmefG6Jkodqt+ePTvBZCSMFgN7Clckjd0O7su3I0+BW2QWUTJNzjktHsztGLhncP2h8mcF9V9Y2Ha59pAViQ==" + }, + "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==", + "devOptional": 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, - "engines": { - "node": ">=8" + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" } }, - "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==", + "node_modules/jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==", "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/jscrypto": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/jscrypto/-/jscrypto-1.0.3.tgz", + "integrity": "sha512-lryZl0flhodv4SZHOqyb1bx5sKcJxj0VBo0Kzb4QMAg3L021IC9uGpl0RCZa+9KJwlRGSK2C80ITcwbe19OKLQ==", + "bin": { + "jscrypto": "bin/cli.js" } }, - "node_modules/is-typed-array": { - "version": "1.1.10", - "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.10.tgz", - "integrity": "sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A==", + "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, "dependencies": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-tostringtag": "^1.0.0" + "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" }, "engines": { - "node": ">= 0.4" + "node": ">=10" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "peerDependencies": { + "canvas": "^2.5.0" + }, + "peerDependenciesMeta": { + "canvas": { + "optional": true + } } }, - "node_modules/is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", - "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==", + "node_modules/jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", "dev": true, - "engines": { - "node": ">=10" + "bin": { + "jsesc": "bin/jsesc" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "engines": { + "node": ">=4" } }, - "node_modules/is-upper-case": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/is-upper-case/-/is-upper-case-1.1.2.tgz", - "integrity": "sha512-GQYSJMgfeAmVwh9ixyk888l7OIhNAGKtY6QA+IrWlu9MDTCaXmeozOZ2S9Knj7bQwBO/H6J2kb+pbyTUiMNbsw==", - "dev": true, + "node_modules/json-bigint": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-bigint/-/json-bigint-1.0.0.tgz", + "integrity": "sha512-SiPv/8VpZuWbvLSMtTDU8hEfrZWg/mH/nV/b4o0CYbSxu1UIQPLdwKOCIyLQX+VIPO5vrLX3i8qtqFyhdPSUSQ==", "dependencies": { - "upper-case": "^1.1.0" + "bignumber.js": "^9.0.0" } }, - "node_modules/isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==", - "optional": true - }, - "node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "node_modules/json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", "dev": true }, - "node_modules/isomorphic-ws": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/isomorphic-ws/-/isomorphic-ws-4.0.1.tgz", - "integrity": "sha512-BhBvN2MBpWTaSHdWRb/bwdZJ1WaehQ2L1KngkCkfLUGF0mAWAT1sQUQacEmQ0jXkFw/czDXPNQSL5u2/Krsz1w==", - "peerDependencies": { - "ws": "*" - } - }, - "node_modules/isstream": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==", + "node_modules/json-schema": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", + "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==", "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/json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" }, - "node_modules/istanbul-lib-instrument": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz", - "integrity": "sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==", + "node_modules/json5": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz", + "integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==", "dev": true, "dependencies": { - "@babel/core": "^7.7.5", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-coverage": "^3.0.0", - "semver": "^6.3.0" + "minimist": "^1.2.5" }, - "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" + "json5": "lib/cli.js" }, "engines": { - "node": ">=8" + "node": ">=6" } }, - "node_modules/istanbul-lib-report/node_modules/has-flag": { + "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 + }, + "node_modules/jsonfile": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", "dev": true, - "engines": { - "node": ">=8" + "optionalDependencies": { + "graceful-fs": "^4.1.6" } }, - "node_modules/istanbul-lib-report/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, + "node_modules/jsonparse": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", + "integrity": "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=", + "engines": [ + "node >= 0.2.0" + ] + }, + "node_modules/jsonschema": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jsonschema/-/jsonschema-1.4.1.tgz", + "integrity": "sha512-S6cATIPVv1z0IlxdN+zUk5EPjkGCdnhN4wVSBlvoUO1tOLJootbo9CquNJmbIh4yikWHiUedhRYrNPn1arpEmQ==", + "optional": true, + "engines": { + "node": "*" + } + }, + "node_modules/JSONStream": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz", + "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==", "dependencies": { - "has-flag": "^4.0.0" + "jsonparse": "^1.2.0", + "through": ">=2.2.7 <3" + }, + "bin": { + "JSONStream": "bin.js" }, "engines": { - "node": ">=8" + "node": "*" } }, - "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==", + "node_modules/jsprim": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.2.tgz", + "integrity": "sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==", "dev": true, "dependencies": { - "debug": "^4.1.1", - "istanbul-lib-coverage": "^3.0.0", - "source-map": "^0.6.1" + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.4.0", + "verror": "1.10.0" }, "engines": { - "node": ">=10" + "node": ">=0.6.0" } }, - "node_modules/istanbul-lib-source-maps/node_modules/debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "dev": true, + "node_modules/keccak": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/keccak/-/keccak-3.0.2.tgz", + "integrity": "sha512-PyKKjkH53wDMLGrvmRGSNWgmSxZOUqbnXwKL9tmgbFYA1iAYqW21kfR7mZXV0MlESiefxQQE9X9fTa3X+2MPDQ==", + "hasInstallScript": true, "dependencies": { - "ms": "2.1.2" + "node-addon-api": "^2.0.0", + "node-gyp-build": "^4.2.0", + "readable-stream": "^3.6.0" }, "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true + "node": ">=10.0.0" + } + }, + "node_modules/keccak256": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/keccak256/-/keccak256-1.0.6.tgz", + "integrity": "sha512-8GLiM01PkdJVGUhR1e6M/AvWnSqYS0HaERI+K/QtStGDGlSTx2B1zTqZk4Zlqu5TxHJNTxWAdP9Y+WI50OApUw==", + "optional": true, + "dependencies": { + "bn.js": "^5.2.0", + "buffer": "^6.0.3", + "keccak": "^3.0.2" + } + }, + "node_modules/keccak256/node_modules/buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" } + ], + "optional": true, + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" } }, - "node_modules/istanbul-lib-source-maps/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true + "node_modules/keyv": { + "version": "4.5.2", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.2.tgz", + "integrity": "sha512-5MHbFaKn8cNSmVW7BYnijeAVlE4cYA/SVkifVgrh7yotnfhKmjuXpDKjrABLnT0SfHWV21P8ow07OGfRrNDg8g==", + "dev": true, + "dependencies": { + "json-buffer": "3.0.1" + } }, - "node_modules/istanbul-lib-source-maps/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "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": ">=0.10.0" + "node": ">=6" } }, - "node_modules/istanbul-reports": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.0.5.tgz", - "integrity": "sha512-5+19PlhnGabNWB7kOFnuxT8H3T/iIyQzIbQMxXsURmmvKg86P2sbkrGOT77VnHw0Qr0gc2XzRaRfMZYYbSQCJQ==", + "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, - "dependencies": { - "html-escaper": "^2.0.0", - "istanbul-lib-report": "^3.0.0" - }, "engines": { - "node": ">=8" + "node": ">=6" } }, - "node_modules/jayson": { - "version": "3.6.4", - "resolved": "https://registry.npmjs.org/jayson/-/jayson-3.6.4.tgz", - "integrity": "sha512-GH63DsRFFlodS8krFgAhxwYvQFmSwjsFxKnPrHQtp+BJj/tpeSj3hyBGGqmTkuq043U1Gn6u8VdsVRFZX1EEiQ==", + "node_modules/levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", + "dev": true, "dependencies": { - "@types/connect": "^3.4.33", - "@types/express-serve-static-core": "^4.17.9", - "@types/lodash": "^4.14.159", - "@types/node": "^12.12.54", - "@types/ws": "^7.4.4", - "commander": "^2.20.3", - "delay": "^5.0.0", - "es6-promisify": "^5.0.0", - "eyes": "^0.1.8", - "isomorphic-ws": "^4.0.1", - "json-stringify-safe": "^5.0.1", - "JSONStream": "^1.3.5", - "lodash": "^4.17.20", - "uuid": "^3.4.0", - "ws": "^7.4.5" - }, - "bin": { - "jayson": "bin/jayson.js" + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" }, "engines": { - "node": ">=8" + "node": ">= 0.8.0" } }, - "node_modules/jayson/node_modules/@types/node": { - "version": "12.20.19", - "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.19.tgz", - "integrity": "sha512-niAuZrwrjKck4+XhoCw6AAVQBENHftpXw9F4ryk66fTgYaKQ53R4FI7c9vUGGw5vQis1HKBHDR1gcYI/Bq1xvw==" + "node_modules/libsodium": { + "version": "0.7.11", + "resolved": "https://registry.npmjs.org/libsodium/-/libsodium-0.7.11.tgz", + "integrity": "sha512-WPfJ7sS53I2s4iM58QxY3Inb83/6mjlYgcmZs7DJsvDlnmVUwNinBCi5vBT43P6bHRy01O4zsMU2CoVR6xJ40A==", + "optional": true }, - "node_modules/jest": { - "version": "27.3.1", - "resolved": "https://registry.npmjs.org/jest/-/jest-27.3.1.tgz", - "integrity": "sha512-U2AX0AgQGd5EzMsiZpYt8HyZ+nSVIh5ujQ9CPp9EQZJMjXIiSZpJNweZl0swatKRoqHWgGKM3zaSwm4Zaz87ng==", - "dev": true, + "node_modules/libsodium-wrappers": { + "version": "0.7.11", + "resolved": "https://registry.npmjs.org/libsodium-wrappers/-/libsodium-wrappers-0.7.11.tgz", + "integrity": "sha512-SrcLtXj7BM19vUKtQuyQKiQCRJPgbpauzl3s0rSwD+60wtHqSUuqcoawlMDheCJga85nKOQwxNYQxf/CKAvs6Q==", + "optional": true, "dependencies": { - "@jest/core": "^27.3.1", - "import-local": "^3.0.2", - "jest-cli": "^27.3.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 - } + "libsodium": "^0.7.11" } }, - "node_modules/jest-changed-files": { - "version": "27.3.0", - "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-27.3.0.tgz", - "integrity": "sha512-9DJs9garMHv4RhylUMZgbdCJ3+jHSkpL9aaVKp13xtXAD80qLTLrqcDZL1PHA9dYA0bCI86Nv2BhkLpLhrBcPg==", - "dev": true, + "node_modules/link-module-alias": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/link-module-alias/-/link-module-alias-1.2.0.tgz", + "integrity": "sha512-ahPjXepbSVKbahTB6LxR//VHm8HPfI+QQygCH+E82spBY4HR5VPJTvlhKBc9F7muVxnS6C1rRfoPOXAbWO/fyw==", + "optional": true, "dependencies": { - "@jest/types": "^27.2.5", - "execa": "^5.0.0", - "throat": "^6.0.1" + "chalk": "^2.4.1" + }, + "bin": { + "link-module-alias": "index.js" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": "> 8.0.0" } }, - "node_modules/jest-circus": { - "version": "27.3.1", - "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-27.3.1.tgz", - "integrity": "sha512-v1dsM9II6gvXokgqq6Yh2jHCpfg7ZqV4jWY66u7npz24JnhP3NHxI0sKT7+ZMQ7IrOWHYAaeEllOySbDbWsiXw==", + "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": { - "@jest/environment": "^27.3.1", - "@jest/test-result": "^27.3.1", - "@jest/types": "^27.2.5", - "@types/node": "*", - "chalk": "^4.0.0", - "co": "^4.6.0", - "dedent": "^0.7.0", - "expect": "^27.3.1", - "is-generator-fn": "^2.0.0", - "jest-each": "^27.3.1", - "jest-matcher-utils": "^27.3.1", - "jest-message-util": "^27.3.1", - "jest-runtime": "^27.3.1", - "jest-snapshot": "^27.3.1", - "jest-util": "^27.3.1", - "pretty-format": "^27.3.1", - "slash": "^3.0.0", - "stack-utils": "^2.0.3", - "throat": "^6.0.1" + "p-locate": "^4.1.0" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": ">=8" } }, - "node_modules/jest-circus/node_modules/ansi-styles": { + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + }, + "node_modules/lodash.memoize": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", + "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=", + "dev": true + }, + "node_modules/lodash.values": { "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, + "resolved": "https://registry.npmjs.org/lodash.values/-/lodash.values-4.3.0.tgz", + "integrity": "sha512-r0RwvdCv8id9TUblb/O7rYPwVy6lerCbcawrfdo9iC/1t1wsNMJknO79WNBgwkH0hIeJ08jmvvESbFpNb4jH0Q==", + "optional": true + }, + "node_modules/long": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz", + "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==" + }, + "node_modules/loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "optional": true, "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" + "js-tokens": "^3.0.0 || ^4.0.0" }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "bin": { + "loose-envify": "cli.js" } }, - "node_modules/jest-circus/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, + "node_modules/lower-case": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", + "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, + "tslib": "^2.0.3" + } + }, + "node_modules/lower-case/node_modules/tslib": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", + "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" + }, + "node_modules/lowercase-keys": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-3.0.0.tgz", + "integrity": "sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ==", + "dev": true, "engines": { - "node": ">=10" + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" }, "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/jest-circus/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "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==", "dev": true, "dependencies": { - "color-name": "~1.1.4" + "yallist": "^4.0.0" }, "engines": { - "node": ">=7.0.0" + "node": ">=10" } }, - "node_modules/jest-circus/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "node_modules/lunr": { + "version": "2.3.9", + "resolved": "https://registry.npmjs.org/lunr/-/lunr-2.3.9.tgz", + "integrity": "sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow==", "dev": true }, - "node_modules/jest-circus/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-circus/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "node_modules/make-dir": { + "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==", "dev": true, "dependencies": { - "has-flag": "^4.0.0" + "semver": "^6.0.0" }, "engines": { "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/jest-cli": { - "version": "27.3.1", - "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-27.3.1.tgz", - "integrity": "sha512-WHnCqpfK+6EvT62me6WVs8NhtbjAS4/6vZJnk7/2+oOr50cwAzG4Wxt6RXX0hu6m1169ZGMlhYYUNeKBXCph/Q==", + "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==", "dev": true, - "dependencies": { - "@jest/core": "^27.3.1", - "@jest/test-result": "^27.3.1", - "@jest/types": "^27.2.5", - "chalk": "^4.0.0", - "exit": "^0.1.2", - "graceful-fs": "^4.2.4", - "import-local": "^3.0.2", - "jest-config": "^27.3.1", - "jest-util": "^27.3.1", - "jest-validate": "^27.3.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 - } + "semver": "bin/semver.js" } }, - "node_modules/jest-cli/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "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/makeerror": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", + "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", "dev": true, "dependencies": { - "color-convert": "^2.0.1" - }, + "tmpl": "1.0.5" + } + }, + "node_modules/map-obj": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.3.0.tgz", + "integrity": "sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==", + "optional": true, "engines": { "node": ">=8" }, "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/jest-cli/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/marked": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/marked/-/marked-4.2.2.tgz", + "integrity": "sha512-JjBTFTAvuTgANXx82a5vzK9JLSMoV6V3LBVn4Uhdso6t7vXrGx7g1Cd2r6NYSsxrYbQGFCMqBDhFHyK5q2UvcQ==", "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" + "bin": { + "marked": "bin/marked.js" }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "node": ">= 12" } }, - "node_modules/jest-cli/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, + "node_modules/md5.js": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", + "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", "dependencies": { - "color-name": "~1.1.4" - }, + "hash-base": "^3.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "node_modules/media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", + "dev": true, "engines": { - "node": ">=7.0.0" + "node": ">= 0.6" } }, - "node_modules/jest-cli/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "node_modules/merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=", "dev": true }, - "node_modules/jest-cli/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "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/methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=", "dev": true, "engines": { - "node": ">=8" + "node": ">= 0.6" } }, - "node_modules/jest-cli/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "node_modules/micromatch": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", + "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", "dev": true, "dependencies": { - "has-flag": "^4.0.0" + "braces": "^3.0.1", + "picomatch": "^2.2.3" }, "engines": { - "node": ">=8" + "node": ">=8.6" } }, - "node_modules/jest-config": { - "version": "27.3.1", - "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-27.3.1.tgz", - "integrity": "sha512-KY8xOIbIACZ/vdYCKSopL44I0xboxC751IX+DXL2+Wx6DKNycyEfV3rryC3BPm5Uq/BBqDoMrKuqLEUNJmMKKg==", - "dev": true, - "dependencies": { - "@babel/core": "^7.1.0", - "@jest/test-sequencer": "^27.3.1", - "@jest/types": "^27.2.5", - "babel-jest": "^27.3.1", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "deepmerge": "^4.2.2", - "glob": "^7.1.1", - "graceful-fs": "^4.2.4", - "jest-circus": "^27.3.1", - "jest-environment-jsdom": "^27.3.1", - "jest-environment-node": "^27.3.1", - "jest-get-type": "^27.3.1", - "jest-jasmine2": "^27.3.1", - "jest-regex-util": "^27.0.6", - "jest-resolve": "^27.3.1", - "jest-runner": "^27.3.1", - "jest-util": "^27.3.1", - "jest-validate": "^27.3.1", - "micromatch": "^4.0.4", - "pretty-format": "^27.3.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - }, - "peerDependencies": { - "ts-node": ">=9.0.0" + "node_modules/miller-rabin": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", + "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", + "dev": true, + "dependencies": { + "bn.js": "^4.0.0", + "brorand": "^1.0.1" }, - "peerDependenciesMeta": { - "ts-node": { - "optional": true - } + "bin": { + "miller-rabin": "bin/miller-rabin" } }, - "node_modules/jest-config/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "node_modules/miller-rabin/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true + }, + "node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", "dev": true, - "dependencies": { - "color-convert": "^2.0.1" + "bin": { + "mime": "cli.js" }, "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "node": ">=4" } }, - "node_modules/jest-config/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, + "node_modules/mime-db": { + "version": "1.50.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.50.0.tgz", + "integrity": "sha512-9tMZCDlYHqeERXEHO9f/hKfNXhre5dK2eE/krIvUjZbS2KPcqGDfNShIWS1uW9XOTKQKqK6qbeOci18rbfW77A==", "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "node": ">= 0.6" } }, - "node_modules/jest-config/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, + "node_modules/mime-types": { + "version": "2.1.33", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.33.tgz", + "integrity": "sha512-plLElXp7pRDd0bNZHw+nMd52vRYjLwQjygaNg7ddJ2uJtTlmnTCjWuPKxVu6//AdaRuME84SvLW91sIkBqGT0g==", "dependencies": { - "color-name": "~1.1.4" + "mime-db": "1.50.0" }, "engines": { - "node": ">=7.0.0" + "node": ">= 0.6" } }, - "node_modules/jest-config/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/jest-config/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", "dev": true, "engines": { - "node": ">=8" + "node": ">=6" } }, - "node_modules/jest-config/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "node_modules/mimic-response": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", + "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, "engines": { - "node": ">=8" + "node": ">=4" } }, - "node_modules/jest-diff": { - "version": "27.3.1", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-27.3.1.tgz", - "integrity": "sha512-PCeuAH4AWUo2O5+ksW4pL9v5xJAcIKPUPfIhZBcG1RKv/0+dvaWTQK1Nrau8d67dp65fOqbeMdoil+6PedyEPQ==", + "node_modules/min-document": { + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/min-document/-/min-document-2.19.0.tgz", + "integrity": "sha512-9Wy1B3m3f66bPPmU5hdA4DR4PB2OfDU/+GS3yAB7IQozE3tqXaVv2zOjgla7MEGSRv95+ILmOuvhLkOK6wJtCQ==", "dev": true, "dependencies": { - "chalk": "^4.0.0", - "diff-sequences": "^27.0.6", - "jest-get-type": "^27.3.1", - "pretty-format": "^27.3.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "dom-walk": "^0.1.0" } }, - "node_modules/jest-diff/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } + "node_modules/minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==" }, - "node_modules/jest-diff/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, + "node_modules/minimalistic-crypto-utils": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", + "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=" + }, + "node_modules/minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" + "brace-expansion": "^1.1.7" }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "node": "*" } }, - "node_modules/jest-diff/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "node_modules/minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", + "devOptional": true + }, + "node_modules/minipass": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz", + "integrity": "sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==", "dev": true, "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" + "safe-buffer": "^5.1.2", + "yallist": "^3.0.0" } }, - "node_modules/jest-diff/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "node_modules/minipass/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/jest-diff/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "node_modules/minizlib": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.3.3.tgz", + "integrity": "sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==", "dev": true, - "engines": { - "node": ">=8" + "dependencies": { + "minipass": "^2.9.0" } }, - "node_modules/jest-diff/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "node_modules/mkdirp": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", "dev": true, "dependencies": { - "has-flag": "^4.0.0" + "minimist": "^1.2.5" }, - "engines": { - "node": ">=8" + "bin": { + "mkdirp": "bin/cmd.js" } }, - "node_modules/jest-docblock": { - "version": "27.0.6", - "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-27.0.6.tgz", - "integrity": "sha512-Fid6dPcjwepTFraz0YxIMCi7dejjJ/KL9FBjPYhBp4Sv1Y9PdhImlKZqYU555BlN4TQKaTc+F2Av1z+anVyGkA==", + "node_modules/mkdirp-promise": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/mkdirp-promise/-/mkdirp-promise-5.0.1.tgz", + "integrity": "sha512-Hepn5kb1lJPtVW84RFT40YG1OddBNTOVUZR2bzQUHc+Z03en8/3uX0+060JDhcEzyO08HmipsN9DcnFMxhIL9w==", + "deprecated": "This package is broken and no longer maintained. 'mkdirp' itself supports promises now, please switch to that.", "dev": true, "dependencies": { - "detect-newline": "^3.0.0" + "mkdirp": "*" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": ">=4" } }, - "node_modules/jest-each": { - "version": "27.3.1", - "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-27.3.1.tgz", - "integrity": "sha512-E4SwfzKJWYcvOYCjOxhZcxwL+AY0uFMvdCOwvzgutJiaiodFjkxQQDxHm8FQBeTqDnSmKsQWn7ldMRzTn2zJaQ==", - "dev": true, - "dependencies": { - "@jest/types": "^27.2.5", - "chalk": "^4.0.0", - "jest-get-type": "^27.3.1", - "jest-util": "^27.3.1", - "pretty-format": "^27.3.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } + "node_modules/mock-fs": { + "version": "4.14.0", + "resolved": "https://registry.npmjs.org/mock-fs/-/mock-fs-4.14.0.tgz", + "integrity": "sha512-qYvlv/exQ4+svI3UOvPUpLDF0OMX5euvUH0Ny4N5QyRyhNdgAgUrVH3iUINSzEPLvx0kbo/Bp28GJKIqvE7URw==", + "dev": true }, - "node_modules/jest-each/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "node_modules/multibase": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/multibase/-/multibase-0.6.1.tgz", + "integrity": "sha512-pFfAwyTjbbQgNc3G7D48JkJxWtoJoBMaR4xQUOuB8RnCgRqaYmWNFeJTTvrJ2w51bjLq2zTby6Rqj9TQ9elSUw==", + "deprecated": "This module has been superseded by the multiformats module", "dev": true, "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "base-x": "^3.0.8", + "buffer": "^5.5.0" } }, - "node_modules/jest-each/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/multibase/node_modules/buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" } }, - "node_modules/jest-each/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "node_modules/multicodec": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/multicodec/-/multicodec-0.5.7.tgz", + "integrity": "sha512-PscoRxm3f+88fAtELwUnZxGDkduE2HD9Q6GHUOywQLjOGT/HAdhjLDYNZ1e7VR0s0TP0EwZ16LNUTFpoBGivOA==", + "deprecated": "This module has been superseded by the multiformats module", "dev": true, "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" + "varint": "^5.0.0" } }, - "node_modules/jest-each/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/jest-each/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "node_modules/multihashes": { + "version": "0.4.21", + "resolved": "https://registry.npmjs.org/multihashes/-/multihashes-0.4.21.tgz", + "integrity": "sha512-uVSvmeCWf36pU2nB4/1kzYZjsXD9vofZKpgudqkceYY5g2aZZXJ5r9lxuzoRLl1OAp28XljXsEJ/X/85ZsKmKw==", "dev": true, - "engines": { - "node": ">=8" + "dependencies": { + "buffer": "^5.5.0", + "multibase": "^0.7.0", + "varint": "^5.0.0" } }, - "node_modules/jest-each/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "node_modules/multihashes/node_modules/buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" } }, - "node_modules/jest-environment-jsdom": { - "version": "27.3.1", - "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-27.3.1.tgz", - "integrity": "sha512-3MOy8qMzIkQlfb3W1TfrD7uZHj+xx8Olix5vMENkj5djPmRqndMaXtpnaZkxmxM+Qc3lo+yVzJjzuXbCcZjAlg==", + "node_modules/multihashes/node_modules/multibase": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/multibase/-/multibase-0.7.0.tgz", + "integrity": "sha512-TW8q03O0f6PNFTQDvh3xxH03c8CjGaaYrjkl9UQPG6rz53TQzzxJVCIWVjzcbN/Q5Y53Zd0IBQBMVktVgNx4Fg==", + "deprecated": "This module has been superseded by the multiformats module", "dev": true, "dependencies": { - "@jest/environment": "^27.3.1", - "@jest/fake-timers": "^27.3.1", - "@jest/types": "^27.2.5", - "@types/node": "*", - "jest-mock": "^27.3.0", - "jest-util": "^27.3.1", - "jsdom": "^16.6.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "base-x": "^3.0.8", + "buffer": "^5.5.0" } }, - "node_modules/jest-environment-node": { - "version": "27.3.1", - "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-27.3.1.tgz", - "integrity": "sha512-T89F/FgkE8waqrTSA7/ydMkcc52uYPgZZ6q8OaZgyiZkJb5QNNCF6oPZjH9IfPFfcc9uBWh1574N0kY0pSvTXw==", - "dev": true, + "node_modules/mustache": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/mustache/-/mustache-4.2.0.tgz", + "integrity": "sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ==", + "bin": { + "mustache": "bin/mustache" + } + }, + "node_modules/nan": { + "version": "2.15.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.15.0.tgz", + "integrity": "sha512-8ZtvEnA2c5aYCZYd1cvgdnU6cqwixRoYg70xPLWUws5ORTa/lnw+u4amixRS/Ac5U5mQVgp9pnlSUnbNWFaWZQ==" + }, + "node_modules/nano-json-stream-parser": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/nano-json-stream-parser/-/nano-json-stream-parser-0.1.2.tgz", + "integrity": "sha512-9MqxMH/BSJC7dnLsEMPyfN5Dvoo49IsPFYMcHw3Bcfc2kN0lpHRBSzlMSVx4HGyJ7s9B31CyBTVehWJoQ8Ctew==", + "dev": true + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", + "dev": true + }, + "node_modules/near-api-js": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/near-api-js/-/near-api-js-1.0.0.tgz", + "integrity": "sha512-OYItaQIYlKK27FG5PrqqtkTI8Vv9TEOCi7gXePYigS4o6WofXciAXNjr4sihDJ8Vzi6s7+eEkf3zTNP3042FBw==", "dependencies": { - "@jest/environment": "^27.3.1", - "@jest/fake-timers": "^27.3.1", - "@jest/types": "^27.2.5", - "@types/node": "*", - "jest-mock": "^27.3.0", - "jest-util": "^27.3.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "bn.js": "5.2.1", + "borsh": "^0.7.0", + "bs58": "^4.0.0", + "depd": "^2.0.0", + "error-polyfill": "^0.1.3", + "http-errors": "^1.7.2", + "js-sha256": "^0.9.0", + "mustache": "^4.0.0", + "node-fetch": "^2.6.1", + "text-encoding-utf-8": "^1.0.2", + "tweetnacl": "^1.0.1" } }, - "node_modules/jest-get-type": { - "version": "27.3.1", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.3.1.tgz", - "integrity": "sha512-+Ilqi8hgHSAdhlQ3s12CAVNd8H96ZkQBfYoXmArzZnOfAtVAJEiPDBirjByEblvG/4LPJmkL+nBqPO3A1YJAEg==", - "dev": true, + "node_modules/near-api-js/node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": ">= 0.8" } }, - "node_modules/jest-haste-map": { - "version": "27.3.1", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-27.3.1.tgz", - "integrity": "sha512-lYfNZIzwPccDJZIyk9Iz5iQMM/MH56NIIcGj7AFU1YyA4ewWFBl8z+YPJuSCRML/ee2cCt2y3W4K3VXPT6Nhzg==", + "node_modules/negotiator": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", + "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==", "dev": true, - "dependencies": { - "@jest/types": "^27.2.5", - "@types/graceful-fs": "^4.1.2", - "@types/node": "*", - "anymatch": "^3.0.3", - "fb-watchman": "^2.0.0", - "graceful-fs": "^4.2.4", - "jest-regex-util": "^27.0.6", - "jest-serializer": "^27.0.6", - "jest-util": "^27.3.1", - "jest-worker": "^27.3.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": ">= 0.6" } }, - "node_modules/jest-jasmine2": { - "version": "27.3.1", - "resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-27.3.1.tgz", - "integrity": "sha512-WK11ZUetDQaC09w4/j7o4FZDUIp+4iYWH/Lik34Pv7ukL+DuXFGdnmmi7dT58J2ZYKFB5r13GyE0z3NPeyJmsg==", - "dev": true, - "dependencies": { - "@babel/traverse": "^7.1.0", - "@jest/environment": "^27.3.1", - "@jest/source-map": "^27.0.6", - "@jest/test-result": "^27.3.1", - "@jest/types": "^27.2.5", - "@types/node": "*", - "chalk": "^4.0.0", - "co": "^4.6.0", - "expect": "^27.3.1", - "is-generator-fn": "^2.0.0", - "jest-each": "^27.3.1", - "jest-matcher-utils": "^27.3.1", - "jest-message-util": "^27.3.1", - "jest-runtime": "^27.3.1", - "jest-snapshot": "^27.3.1", - "jest-util": "^27.3.1", - "pretty-format": "^27.3.1", - "throat": "^6.0.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } + "node_modules/neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", + "dev": true }, - "node_modules/jest-jasmine2/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, + "node_modules/next-tick": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.1.0.tgz", + "integrity": "sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==", + "dev": true + }, + "node_modules/no-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", + "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "lower-case": "^2.0.2", + "tslib": "^2.0.3" } }, - "node_modules/jest-jasmine2/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, + "node_modules/no-case/node_modules/tslib": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", + "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" + }, + "node_modules/node-addon-api": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-2.0.2.tgz", + "integrity": "sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA==" + }, + "node_modules/node-fetch": { + "version": "2.6.7", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", + "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" + "whatwg-url": "^5.0.0" }, "engines": { - "node": ">=10" + "node": "4.x || >=6.0.0" }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } } }, - "node_modules/jest-jasmine2/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, + "node_modules/node-fetch/node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" + }, + "node_modules/node-fetch/node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" + }, + "node_modules/node-fetch/node_modules/whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" } }, - "node_modules/jest-jasmine2/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "node_modules/node-gyp-build": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.2.3.tgz", + "integrity": "sha512-MN6ZpzmfNCRM+3t57PTJHgHyw/h4OWnZ6mR8P5j/uZtqQr46RRuDE/P+g3n0YR/AiYXeWixZZzaip77gdICfRg==", + "bin": { + "node-gyp-build": "bin.js", + "node-gyp-build-optional": "optional.js", + "node-gyp-build-test": "build-test.js" + } + }, + "node_modules/node-int64": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", + "integrity": "sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs=", "dev": true }, - "node_modules/jest-jasmine2/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "node_modules/node-modules-regexp": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/node-modules-regexp/-/node-modules-regexp-1.0.0.tgz", + "integrity": "sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA=", "dev": true, "engines": { - "node": ">=8" + "node": ">=0.10.0" } }, - "node_modules/jest-jasmine2/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, + "node_modules/node-releases": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.1.tgz", + "integrity": "sha512-CqyzN6z7Q6aMeF/ktcMVTzhAHCEpf8SOarwpzpf8pNBY2k5/oM34UHldUwp8VKI7uxct2HxSRdJjBaZeESzcxA==", + "dev": true + }, + "node_modules/noms": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/noms/-/noms-0.0.0.tgz", + "integrity": "sha512-lNDU9VJaOPxUmXcLb+HQFeUgQQPtMI24Gt6hgfuMHRJgMRHMF/qZ4HJD3GDru4sSw9IQl2jPjAYnQrdIeLbwow==", + "optional": true, "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" + "inherits": "^2.0.1", + "readable-stream": "~1.0.31" } }, - "node_modules/jest-leak-detector": { - "version": "27.3.1", - "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-27.3.1.tgz", - "integrity": "sha512-78QstU9tXbaHzwlRlKmTpjP9k4Pvre5l0r8Spo4SbFFVy/4Abg9I6ZjHwjg2QyKEAMg020XcjP+UgLZIY50yEg==", - "dev": true, + "node_modules/noms/node_modules/readable-stream": { + "version": "1.0.34", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", + "integrity": "sha512-ok1qVCJuRkNmvebYikljxJA/UEsKwLl2nI1OmaqAu4/UE+h0wKCHok4XkL/gvi39OacXvw59RJUOFUkDib2rHg==", + "optional": true, "dependencies": { - "jest-get-type": "^27.3.1", - "pretty-format": "^27.3.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" } }, - "node_modules/jest-matcher-utils": { - "version": "27.3.1", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-27.3.1.tgz", - "integrity": "sha512-hX8N7zXS4k+8bC1Aj0OWpGb7D3gIXxYvPNK1inP5xvE4ztbz3rc4AkI6jGVaerepBnfWB17FL5lWFJT3s7qo8w==", + "node_modules/noms/node_modules/string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==", + "optional": true + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", "dev": true, - "dependencies": { - "chalk": "^4.0.0", - "jest-diff": "^27.3.1", - "jest-get-type": "^27.3.1", - "pretty-format": "^27.3.1" - }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": ">=0.10.0" } }, - "node_modules/jest-matcher-utils/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "node_modules/normalize-url": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", + "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==", "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, "engines": { - "node": ">=8" + "node": ">=10" }, "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/jest-matcher-utils/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/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": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" + "path-key": "^3.0.0" }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "node": ">=8" } }, - "node_modules/jest-matcher-utils/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "node_modules/number-to-bn": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/number-to-bn/-/number-to-bn-1.7.0.tgz", + "integrity": "sha1-uzYjWS9+X54AMLGXe9QaDFP+HqA=", "dev": true, "dependencies": { - "color-name": "~1.1.4" + "bn.js": "4.11.6", + "strip-hex-prefix": "1.0.0" }, "engines": { - "node": ">=7.0.0" + "node": ">=6.5.0", + "npm": ">=3" } }, - "node_modules/jest-matcher-utils/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "node_modules/number-to-bn/node_modules/bn.js": { + "version": "4.11.6", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz", + "integrity": "sha1-UzRK2xRhehP26N0s4okF0cC6MhU=", "dev": true }, - "node_modules/jest-matcher-utils/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-matcher-utils/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } + "node_modules/nwsapi": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.0.tgz", + "integrity": "sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ==", + "dev": true }, - "node_modules/jest-message-util": { - "version": "27.3.1", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.3.1.tgz", - "integrity": "sha512-bh3JEmxsTZ/9rTm0jQrPElbY2+y48Rw2t47uMfByNyUVR+OfPh4anuyKsGqsNkXk/TI4JbLRZx+7p7Hdt6q1yg==", - "dev": true, + "node_modules/o3": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/o3/-/o3-1.0.3.tgz", + "integrity": "sha512-f+4n+vC6s4ysy7YO7O2gslWZBUu8Qj2i2OUJOvjRxQva7jVjYjB29jrr9NCjmxZQR0gzrOcv1RnqoYOeMs5VRQ==", "dependencies": { - "@babel/code-frame": "^7.12.13", - "@jest/types": "^27.2.5", - "@types/stack-utils": "^2.0.0", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", - "micromatch": "^4.0.4", - "pretty-format": "^27.3.1", - "slash": "^3.0.0", - "stack-utils": "^2.0.3" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "capability": "^0.2.5" } }, - "node_modules/jest-message-util/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "node_modules/oauth-sign": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", + "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "node": "*" } }, - "node_modules/jest-message-util/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "devOptional": true, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "node": ">=0.10.0" } }, - "node_modules/jest-message-util/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "optional": true, "engines": { - "node": ">=7.0.0" + "node": ">= 0.4" } }, - "node_modules/jest-message-util/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/jest-message-util/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "node_modules/oboe": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/oboe/-/oboe-2.1.5.tgz", + "integrity": "sha512-zRFWiF+FoicxEs3jNI/WYUrVEgA7DeET/InK0XQuudGHRg8iIob3cNPrJTKaz4004uaA9Pbe+Dwa8iluhjLZWA==", "dev": true, - "engines": { - "node": ">=8" + "dependencies": { + "http-https": "^1.0.0" } }, - "node_modules/jest-message-util/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "node_modules/on-finished": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", + "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", "dev": true, "dependencies": { - "has-flag": "^4.0.0" + "ee-first": "1.1.1" }, "engines": { - "node": ">=8" + "node": ">= 0.8" } }, - "node_modules/jest-mock": { - "version": "27.3.0", - "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-27.3.0.tgz", - "integrity": "sha512-ziZiLk0elZOQjD08bLkegBzv5hCABu/c8Ytx45nJKkysQwGaonvmTxwjLqEA4qGdasq9o2I8/HtdGMNnVsMTGw==", - "dev": true, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", "dependencies": { - "@jest/types": "^27.2.5", - "@types/node": "*" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "wrappy": "1" } }, - "node_modules/jest-pnp-resolver": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz", - "integrity": "sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w==", + "node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", "dev": true, + "dependencies": { + "mimic-fn": "^2.1.0" + }, "engines": { "node": ">=6" }, - "peerDependencies": { - "jest-resolve": "*" - }, - "peerDependenciesMeta": { - "jest-resolve": { - "optional": true - } + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/jest-regex-util": { - "version": "27.0.6", - "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-27.0.6.tgz", - "integrity": "sha512-SUhPzBsGa1IKm8hx2F4NfTGGp+r7BXJ4CulsZ1k2kI+mGLG+lxGrs76veN2LF/aUdGosJBzKgXmNCw+BzFqBDQ==", - "dev": true, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node_modules/optimism": { + "version": "0.16.1", + "resolved": "https://registry.npmjs.org/optimism/-/optimism-0.16.1.tgz", + "integrity": "sha512-64i+Uw3otrndfq5kaoGNoY7pvOhSsjFEN4bdEFh80MWVk/dbgJfMv7VFDeCT8LxNAlEVhQmdVEbfE7X2nWNIIg==", + "optional": true, + "dependencies": { + "@wry/context": "^0.6.0", + "@wry/trie": "^0.3.0" } }, - "node_modules/jest-resolve": { - "version": "27.3.1", - "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-27.3.1.tgz", - "integrity": "sha512-Dfzt25CFSPo3Y3GCbxynRBZzxq9AdyNN+x/v2IqYx6KVT5Z6me2Z/PsSGFSv3cOSUZqJ9pHxilao/I/m9FouLw==", + "node_modules/optionator": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", + "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", "dev": true, "dependencies": { - "@jest/types": "^27.2.5", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", - "jest-haste-map": "^27.3.1", - "jest-pnp-resolver": "^1.2.2", - "jest-util": "^27.3.1", - "jest-validate": "^27.3.1", - "resolve": "^1.20.0", - "resolve.exports": "^1.1.0", - "slash": "^3.0.0" + "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" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": ">= 0.8.0" } }, - "node_modules/jest-resolve-dependencies": { - "version": "27.3.1", - "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-27.3.1.tgz", - "integrity": "sha512-X7iLzY8pCiYOnvYo2YrK3P9oSE8/3N2f4pUZMJ8IUcZnT81vlSonya1KTO9ZfKGuC+svE6FHK/XOb8SsoRUV1A==", + "node_modules/p-cancelable": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-3.0.0.tgz", + "integrity": "sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw==", "dev": true, - "dependencies": { - "@jest/types": "^27.2.5", - "jest-regex-util": "^27.0.6", - "jest-snapshot": "^27.3.1" - }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": ">=12.20" } }, - "node_modules/jest-resolve/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", "dev": true, "dependencies": { - "color-convert": "^2.0.1" + "p-try": "^2.0.0" }, "engines": { - "node": ">=8" + "node": ">=6" }, "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/jest-resolve/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/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": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" + "p-limit": "^2.2.0" }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "node": ">=8" } }, - "node_modules/jest-resolve/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "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, - "dependencies": { - "color-name": "~1.1.4" - }, "engines": { - "node": ">=7.0.0" + "node": ">=6" } }, - "node_modules/jest-resolve/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/jest-resolve/node_modules/has-flag": { + "node_modules/pako": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pako/-/pako-2.0.4.tgz", + "integrity": "sha512-v8tweI900AUkZN6heMU/4Uy4cXRc2AYNRggVmTR+dEncawDJgCdLMximOVA2p4qO57WMynangsfGRb5WD6L1Bg==" + }, + "node_modules/parse-asn1": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.6.tgz", + "integrity": "sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw==", + "dev": true, + "dependencies": { + "asn1.js": "^5.2.0", + "browserify-aes": "^1.0.0", + "evp_bytestokey": "^1.0.0", + "pbkdf2": "^3.0.3", + "safe-buffer": "^5.1.1" + } + }, + "node_modules/parse-headers": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/parse-headers/-/parse-headers-2.0.5.tgz", + "integrity": "sha512-ft3iAoLOB/MlwbNXgzy43SWGP6sQki2jQvAyBg/zDFAgr9bfNWZIUj42Kw2eJIl8kEi4PbgE6U1Zau/HwI75HA==", + "dev": true + }, + "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/parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/path-exists": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", "dev": true, "engines": { "node": ">=8" } }, - "node_modules/jest-resolve/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, "engines": { "node": ">=8" } }, - "node_modules/jest-runner": { - "version": "27.3.1", - "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-27.3.1.tgz", - "integrity": "sha512-r4W6kBn6sPr3TBwQNmqE94mPlYVn7fLBseeJfo4E2uCTmAyDFm2O5DYAQAFP7Q3YfiA/bMwg8TVsciP7k0xOww==", - "dev": true, + "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==", + "devOptional": true + }, + "node_modules/path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=", + "dev": true + }, + "node_modules/pbkdf2": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz", + "integrity": "sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==", "dependencies": { - "@jest/console": "^27.3.1", - "@jest/environment": "^27.3.1", - "@jest/test-result": "^27.3.1", - "@jest/transform": "^27.3.1", - "@jest/types": "^27.2.5", - "@types/node": "*", - "chalk": "^4.0.0", - "emittery": "^0.8.1", - "exit": "^0.1.2", - "graceful-fs": "^4.2.4", - "jest-docblock": "^27.0.6", - "jest-environment-jsdom": "^27.3.1", - "jest-environment-node": "^27.3.1", - "jest-haste-map": "^27.3.1", - "jest-leak-detector": "^27.3.1", - "jest-message-util": "^27.3.1", - "jest-resolve": "^27.3.1", - "jest-runtime": "^27.3.1", - "jest-util": "^27.3.1", - "jest-worker": "^27.3.1", - "source-map-support": "^0.5.6", - "throat": "^6.0.1" + "create-hash": "^1.1.2", + "create-hmac": "^1.1.4", + "ripemd160": "^2.0.1", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": ">=0.12" } }, - "node_modules/jest-runner/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "node_modules/performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==", + "dev": true + }, + "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 + }, + "node_modules/picomatch": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz", + "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==", "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, "engines": { - "node": ">=8" + "node": ">=8.6" }, "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "url": "https://github.com/sponsors/jonschlinkert" } }, - "node_modules/jest-runner/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/pirates": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.1.tgz", + "integrity": "sha512-WuNqLTbMI3tmfef2TKxlQmAiLHKtFhlsCZnPIpuv2Ow0RDVO8lfy1Opf4NUzlMXLjPl+Men7AuVdX6TA+s+uGA==", "dev": true, "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" + "node-modules-regexp": "^1.0.0" }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "node": ">= 6" } }, - "node_modules/jest-runner/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "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": { - "color-name": "~1.1.4" + "find-up": "^4.0.0" }, "engines": { - "node": ">=7.0.0" + "node": ">=8" } }, - "node_modules/jest-runner/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/jest-runner/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "node_modules/prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", "dev": true, "engines": { - "node": ">=8" + "node": ">= 0.8.0" } }, - "node_modules/jest-runner/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "node_modules/prettier": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.3.2.tgz", + "integrity": "sha512-lnJzDfJ66zkMy58OL5/NY5zp70S7Nz6KqcKkXYzn2tMVrNxvbqaBpg7H3qHaLxCJ5lNMsGuM8+ohS7cZrthdLQ==", "dev": true, - "dependencies": { - "has-flag": "^4.0.0" + "bin": { + "prettier": "bin-prettier.js" }, "engines": { - "node": ">=8" + "node": ">=10.13.0" } }, - "node_modules/jest-runtime": { + "node_modules/pretty-format": { "version": "27.3.1", - "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-27.3.1.tgz", - "integrity": "sha512-qtO6VxPbS8umqhEDpjA4pqTkKQ1Hy4ZSi9mDVeE9Za7LKBo2LdW2jmT+Iod3XFaJqINikZQsn2wEi0j9wPRbLg==", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.3.1.tgz", + "integrity": "sha512-DR/c+pvFc52nLimLROYjnXPtolawm+uWDxr4FjuLDLUn+ktWnSN851KoHwHzzqq6rfCOjkzN8FLgDrSub6UDuA==", "dev": true, "dependencies": { - "@jest/console": "^27.3.1", - "@jest/environment": "^27.3.1", - "@jest/globals": "^27.3.1", - "@jest/source-map": "^27.0.6", - "@jest/test-result": "^27.3.1", - "@jest/transform": "^27.3.1", "@jest/types": "^27.2.5", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0", - "cjs-module-lexer": "^1.0.0", - "collect-v8-coverage": "^1.0.0", - "execa": "^5.0.0", - "exit": "^0.1.2", - "glob": "^7.1.3", - "graceful-fs": "^4.2.4", - "jest-haste-map": "^27.3.1", - "jest-message-util": "^27.3.1", - "jest-mock": "^27.3.0", - "jest-regex-util": "^27.0.6", - "jest-resolve": "^27.3.1", - "jest-snapshot": "^27.3.1", - "jest-util": "^27.3.1", - "jest-validate": "^27.3.1", - "slash": "^3.0.0", - "strip-bom": "^4.0.0", - "yargs": "^16.2.0" + "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/jest-runtime/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "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, - "dependencies": { - "color-convert": "^2.0.1" - }, "engines": { - "node": ">=8" + "node": ">=10" }, "funding": { "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/jest-runtime/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" + "node_modules/printj": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/printj/-/printj-1.1.2.tgz", + "integrity": "sha512-zA2SmoLaxZyArQTOPj5LXecR+RagfPSU5Kw1qP+jkWeNlrq+eJZyY2oS68SU1Z/7/myXM4lo9716laOFAVStCQ==", + "devOptional": true, + "bin": { + "printj": "bin/printj.njs" }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "engines": { + "node": ">=0.8" } }, - "node_modules/jest-runtime/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "node_modules/process": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==", "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, "engines": { - "node": ">=7.0.0" + "node": ">= 0.6.0" } }, - "node_modules/jest-runtime/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "optional": true }, - "node_modules/jest-runtime/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "node_modules/progress": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", "dev": true, "engines": { - "node": ">=8" + "node": ">=0.4.0" } }, - "node_modules/jest-runtime/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "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": { - "has-flag": "^4.0.0" + "kleur": "^3.0.3", + "sisteransi": "^1.0.5" }, "engines": { - "node": ">=8" + "node": ">= 6" } }, - "node_modules/jest-serializer": { - "version": "27.0.6", - "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-27.0.6.tgz", - "integrity": "sha512-PtGdVK9EGC7dsaziskfqaAPib6wTViY3G8E5wz9tLVPhHyiDNTZn/xjZ4khAw+09QkoOVpn7vF5nPSN6dtBexA==", - "dev": true, + "node_modules/prop-types": { + "version": "15.8.1", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", + "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", + "optional": true, "dependencies": { - "@types/node": "*", - "graceful-fs": "^4.2.4" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.13.1" } }, - "node_modules/jest-snapshot": { - "version": "27.3.1", - "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-27.3.1.tgz", - "integrity": "sha512-APZyBvSgQgOT0XumwfFu7X3G5elj6TGhCBLbBdn3R1IzYustPGPE38F51dBWMQ8hRXa9je0vAdeVDtqHLvB6lg==", - "dev": true, + "node_modules/prop-types/node_modules/react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", + "optional": true + }, + "node_modules/protobufjs": { + "version": "6.11.3", + "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-6.11.3.tgz", + "integrity": "sha512-xL96WDdCZYdU7Slin569tFX712BxsxslWwAfAhCYjQKGTq7dAU91Lomy6nLLhh/dyGhk/YH4TwTSRxTzhuHyZg==", + "hasInstallScript": true, "dependencies": { - "@babel/core": "^7.7.2", - "@babel/generator": "^7.7.2", - "@babel/parser": "^7.7.2", - "@babel/plugin-syntax-typescript": "^7.7.2", - "@babel/traverse": "^7.7.2", - "@babel/types": "^7.0.0", - "@jest/transform": "^27.3.1", - "@jest/types": "^27.2.5", - "@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.3.1", - "graceful-fs": "^4.2.4", - "jest-diff": "^27.3.1", - "jest-get-type": "^27.3.1", - "jest-haste-map": "^27.3.1", - "jest-matcher-utils": "^27.3.1", - "jest-message-util": "^27.3.1", - "jest-resolve": "^27.3.1", - "jest-util": "^27.3.1", - "natural-compare": "^1.4.0", - "pretty-format": "^27.3.1", - "semver": "^7.3.2" + "@protobufjs/aspromise": "^1.1.2", + "@protobufjs/base64": "^1.1.2", + "@protobufjs/codegen": "^2.0.4", + "@protobufjs/eventemitter": "^1.1.0", + "@protobufjs/fetch": "^1.1.0", + "@protobufjs/float": "^1.0.2", + "@protobufjs/inquire": "^1.1.0", + "@protobufjs/path": "^1.1.2", + "@protobufjs/pool": "^1.1.0", + "@protobufjs/utf8": "^1.1.0", + "@types/long": "^4.0.1", + "@types/node": ">=13.7.0", + "long": "^4.0.0" }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "bin": { + "pbjs": "bin/pbjs", + "pbts": "bin/pbts" } }, - "node_modules/jest-snapshot/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "node_modules/proxy-addr": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", "dev": true, "dependencies": { - "color-convert": "^2.0.1" + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" }, "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "node": ">= 0.10" } }, - "node_modules/jest-snapshot/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/psl": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", + "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==", + "dev": true + }, + "node_modules/public-encrypt": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", + "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", "dev": true, "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "bn.js": "^4.1.0", + "browserify-rsa": "^4.0.0", + "create-hash": "^1.1.0", + "parse-asn1": "^5.0.0", + "randombytes": "^2.0.1", + "safe-buffer": "^5.1.2" } }, - "node_modules/jest-snapshot/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "node_modules/public-encrypt/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true + }, + "node_modules/pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", "dev": true, "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" + "end-of-stream": "^1.1.0", + "once": "^1.3.1" } }, - "node_modules/jest-snapshot/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/jest-snapshot/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "node_modules/punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", "dev": true, "engines": { - "node": ">=8" + "node": ">=6" } }, - "node_modules/jest-snapshot/node_modules/semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "node_modules/qs": { + "version": "6.9.6", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.9.6.tgz", + "integrity": "sha512-TIRk4aqYLNoJUbd+g2lEdz5kLWIuTMRagAXxl78Q0RiVjAOugHmeKNGdd3cwo/ktpf9aL9epCfFqWDEKysUlLQ==", "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, "engines": { - "node": ">=10" + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/jest-snapshot/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "node_modules/query-string": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/query-string/-/query-string-5.1.1.tgz", + "integrity": "sha512-gjWOsm2SoGlgLEdAGt7a6slVOk9mGiXmPFMqrEhLQ68rhQuBnpfs3+EmlvqKyxnCo9/PPlF+9MtY02S1aFg+Jw==", "dev": true, "dependencies": { - "has-flag": "^4.0.0" + "decode-uri-component": "^0.2.0", + "object-assign": "^4.1.0", + "strict-uri-encode": "^1.0.0" }, "engines": { - "node": ">=8" + "node": ">=0.10.0" } }, - "node_modules/jest-util": { - "version": "27.3.1", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.3.1.tgz", - "integrity": "sha512-8fg+ifEH3GDryLQf/eKZck1DEs2YuVPBCMOaHQxVVLmQwl/CDhWzrvChTX4efLZxGrw+AA0mSXv78cyytBt/uw==", + "node_modules/quick-lru": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", + "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==", "dev": true, - "dependencies": { - "@jest/types": "^27.2.5", - "@types/node": "*", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.4", - "picomatch": "^2.2.3" - }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/jest-util/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "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": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "safe-buffer": "^5.1.0" } }, - "node_modules/jest-util/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/randomfill": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", + "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", "dev": true, "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, + "randombytes": "^2.0.5", + "safe-buffer": "^5.1.0" + } + }, + "node_modules/range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "dev": true, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "node": ">= 0.6" } }, - "node_modules/jest-util/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "node_modules/raw-body": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.2.tgz", + "integrity": "sha512-RPMAFUJP19WIet/99ngh6Iv8fzAbqum4Li7AD6DtGaW2RpMB/11xDoalPiJMTbu6I3hkbMVkATvZrqb9EEqeeQ==", "dev": true, "dependencies": { - "color-name": "~1.1.4" + "bytes": "3.1.1", + "http-errors": "1.8.1", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" }, "engines": { - "node": ">=7.0.0" + "node": ">= 0.8" } }, - "node_modules/jest-util/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "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 }, - "node_modules/jest-util/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, + "node_modules/readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, "engines": { - "node": ">=8" + "node": ">= 6" } }, - "node_modules/jest-util/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, + "node_modules/readonly-date": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/readonly-date/-/readonly-date-1.0.0.tgz", + "integrity": "sha512-tMKIV7hlk0h4mO3JTmmVuIlJVXjKk3Sep9Bf5OH0O+758ruuVkUy2J9SttDLm91IEX/WHlXPSpxMGjPj4beMIQ==", + "optional": true + }, + "node_modules/rechoir": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", + "integrity": "sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==", + "optional": true, "dependencies": { - "has-flag": "^4.0.0" + "resolve": "^1.1.6" }, "engines": { - "node": ">=8" + "node": ">= 0.10" } }, - "node_modules/jest-validate": { - "version": "27.3.1", - "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-27.3.1.tgz", - "integrity": "sha512-3H0XCHDFLA9uDII67Bwi1Vy7AqwA5HqEEjyy934lgVhtJ3eisw6ShOF1MDmRPspyikef5MyExvIm0/TuLzZ86Q==", + "node_modules/regenerator-runtime": { + "version": "0.13.11", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", + "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==" + }, + "node_modules/request": { + "version": "2.88.2", + "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", + "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", + "deprecated": "request has been deprecated, see https://github.com/request/request/issues/3142", "dev": true, "dependencies": { - "@jest/types": "^27.2.5", - "camelcase": "^6.2.0", - "chalk": "^4.0.0", - "jest-get-type": "^27.3.1", - "leven": "^3.1.0", - "pretty-format": "^27.3.1" + "aws-sign2": "~0.7.0", + "aws4": "^1.8.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", + "forever-agent": "~0.6.1", + "form-data": "~2.3.2", + "har-validator": "~5.1.3", + "http-signature": "~1.2.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.19", + "oauth-sign": "~0.9.0", + "performance-now": "^2.1.0", + "qs": "~6.5.2", + "safe-buffer": "^5.1.2", + "tough-cookie": "~2.5.0", + "tunnel-agent": "^0.6.0", + "uuid": "^3.3.2" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": ">= 6" } }, - "node_modules/jest-validate/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "node_modules/request/node_modules/form-data": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", + "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", "dev": true, "dependencies": { - "color-convert": "^2.0.1" + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" }, "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "node": ">= 0.12" } }, - "node_modules/jest-validate/node_modules/camelcase": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.0.tgz", - "integrity": "sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg==", + "node_modules/request/node_modules/qs": { + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.3.tgz", + "integrity": "sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==", "dev": true, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=0.6" } }, - "node_modules/jest-validate/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/request/node_modules/tough-cookie": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", + "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", "dev": true, "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" + "psl": "^1.1.28", + "punycode": "^2.1.1" }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "node": ">=0.8" } }, - "node_modules/jest-validate/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", + "devOptional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/resolve": { + "version": "1.20.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz", + "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==", + "devOptional": true, "dependencies": { - "color-name": "~1.1.4" + "is-core-module": "^2.2.0", + "path-parse": "^1.0.6" }, - "engines": { - "node": ">=7.0.0" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/jest-validate/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "node_modules/resolve-alpn": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz", + "integrity": "sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==", "dev": true }, - "node_modules/jest-validate/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-validate/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "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": { - "has-flag": "^4.0.0" + "resolve-from": "^5.0.0" }, "engines": { "node": ">=8" } }, - "node_modules/jest-watcher": { - "version": "27.3.1", - "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-27.3.1.tgz", - "integrity": "sha512-9/xbV6chABsGHWh9yPaAGYVVKurWoP3ZMCv6h+O1v9/+pkOroigs6WzZ0e9gLP/njokUwM7yQhr01LKJVMkaZA==", - "dev": true, - "dependencies": { - "@jest/test-result": "^27.3.1", - "@jest/types": "^27.2.5", - "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "jest-util": "^27.3.1", - "string-length": "^4.0.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-watcher/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "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, - "dependencies": { - "color-convert": "^2.0.1" - }, "engines": { "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/jest-watcher/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/resolve.exports": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-1.1.0.tgz", + "integrity": "sha512-J1l+Zxxp4XK3LUDZ9m60LRJF/mAe4z6a4xyabPHk7pvK5t35dACV32iIjJDFeWZFfZlO29w6SZ67knR0tHzJtQ==", "dev": true, - "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/jest-watcher/node_modules/color-convert": { + "node_modules/responselike": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-2.0.1.tgz", + "integrity": "sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw==", "dev": true, "dependencies": { - "color-name": "~1.1.4" + "lowercase-keys": "^2.0.0" }, - "engines": { - "node": ">=7.0.0" + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/jest-watcher/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/jest-watcher/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "node_modules/responselike/node_modules/lowercase-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", "dev": true, "engines": { "node": ">=8" } }, - "node_modules/jest-watcher/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", "dependencies": { - "has-flag": "^4.0.0" + "glob": "^7.1.3" }, - "engines": { - "node": ">=8" + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/jest-worker": { - "version": "27.3.1", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.3.1.tgz", - "integrity": "sha512-ks3WCzsiZaOPJl/oMsDjaf0TRiSv7ctNgs0FqRr2nARsovz6AWWy4oLElwcquGSz692DzgZQrCLScPNs5YlC4g==", - "dev": true, + "node_modules/ripemd160": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", + "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", "dependencies": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" - }, - "engines": { - "node": ">= 10.13.0" + "hash-base": "^3.0.0", + "inherits": "^2.0.1" } }, - "node_modules/jest-worker/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, + "node_modules/ripemd160-min": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/ripemd160-min/-/ripemd160-min-0.0.6.tgz", + "integrity": "sha512-+GcJgQivhs6S9qvLogusiTcS9kQUfgR75whKuy5jIhuiOfQuJ8fjqxV6EGD5duH1Y/FawFUMtMhyeq3Fbnib8A==", "engines": { "node": ">=8" } }, - "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, + "node_modules/rlp": { + "version": "2.2.7", + "resolved": "https://registry.npmjs.org/rlp/-/rlp-2.2.7.tgz", + "integrity": "sha512-d5gdPmgQ0Z+AklL2NVXr/IoSjNZFfTVvQWzL/AM2AOcSzYP2xjlb0AC8YyCLc41MSNf6P6QVtjgPdmVtzb+4lQ==", "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=10" + "bn.js": "^5.2.0" }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" + "bin": { + "rlp": "bin/rlp" } }, - "node_modules/js-base64": { - "version": "3.6.1", - "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-3.6.1.tgz", - "integrity": "sha512-Frdq2+tRRGLQUIQOgsIGSCd1VePCS2fsddTG5dTCqR0JHgltXWfsxnY0gIXPoMeRmdom6Oyq+UMOFg5suduOjQ==" - }, - "node_modules/js-sha256": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/js-sha256/-/js-sha256-0.9.0.tgz", - "integrity": "sha512-sga3MHh9sgQN2+pJ9VYZ+1LPwXOxuBJBA5nrR5/ofPfuiJBE2hnjsaN8se8JznOmGLN2p49Pe5U/ttafcs/apA==" - }, - "node_modules/js-sha3": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.8.0.tgz", - "integrity": "sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q==" - }, - "node_modules/js-sha512": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/js-sha512/-/js-sha512-0.8.0.tgz", - "integrity": "sha512-PWsmefG6Jkodqt+ePTvBZCSMFgN7Clckjd0O7su3I0+BW2QWUTJNzjktHsztGLhncP2h8mcF9V9Y2Ha59pAViQ==" - }, - "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==", - "devOptional": 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, + "node_modules/rpc-websockets": { + "version": "7.5.1", + "resolved": "https://registry.npmjs.org/rpc-websockets/-/rpc-websockets-7.5.1.tgz", + "integrity": "sha512-kGFkeTsmd37pHPMaHIgN1LVKXMi0JD782v4Ds9ZKtLlwdTKjn+CxM9A9/gLT2LaOuEcEFGL98h1QWQtlOIdW0w==", "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" + "@babel/runtime": "^7.17.2", + "eventemitter3": "^4.0.7", + "uuid": "^8.3.2", + "ws": "^8.5.0" }, - "bin": { - "js-yaml": "bin/js-yaml.js" + "funding": { + "type": "paypal", + "url": "https://paypal.me/kozjak" + }, + "optionalDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" } }, - "node_modules/jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==", - "dev": true - }, - "node_modules/jscrypto": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/jscrypto/-/jscrypto-1.0.3.tgz", - "integrity": "sha512-lryZl0flhodv4SZHOqyb1bx5sKcJxj0VBo0Kzb4QMAg3L021IC9uGpl0RCZa+9KJwlRGSK2C80ITcwbe19OKLQ==", + "node_modules/rpc-websockets/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==", "bin": { - "jscrypto": "bin/cli.js" + "uuid": "dist/bin/uuid" } }, - "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, - "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" - }, + "node_modules/rpc-websockets/node_modules/ws": { + "version": "8.9.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.9.0.tgz", + "integrity": "sha512-Ja7nszREasGaYUYCI2k4lCKIRTt+y7XuqVoHR44YpI49TtryyqbqvDMn5eqfW7e6HzTukDRIsXqzVHScqRcafg==", "engines": { - "node": ">=10" + "node": ">=10.0.0" }, "peerDependencies": { - "canvas": "^2.5.0" + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" }, "peerDependenciesMeta": { - "canvas": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { "optional": true } } }, - "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-bigint": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-bigint/-/json-bigint-1.0.0.tgz", - "integrity": "sha512-SiPv/8VpZuWbvLSMtTDU8hEfrZWg/mH/nV/b4o0CYbSxu1UIQPLdwKOCIyLQX+VIPO5vrLX3i8qtqFyhdPSUSQ==", + "node_modules/rxjs": { + "version": "7.8.0", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.0.tgz", + "integrity": "sha512-F2+gxDshqmIub1KdvZkaEfGDwLNpPvk9Fs6LD/MyQxNgMds/WH9OdDDXOmxUZpME+iSK3rQCctkL0DYyytUqMg==", "dependencies": { - "bignumber.js": "^9.0.0" + "tslib": "^2.1.0" } }, - "node_modules/json-buffer": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", - "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", - "dev": true + "node_modules/rxjs/node_modules/tslib": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", + "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" }, - "node_modules/json-pointer": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/json-pointer/-/json-pointer-0.6.2.tgz", - "integrity": "sha512-vLWcKbOaXlO+jvRy4qNd+TI1QUPZzfJj1tpJ3vAXDych5XJf93ftpUKe5pKCrzyIIwgBJcOcCVRUfqQP25afBw==", - "dev": true, - "dependencies": { - "foreach": "^2.0.4" - } + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "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/json-schema": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", - "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==", + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", "dev": true }, - "node_modules/json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true, - "optional": true - }, - "node_modules/json-schema-typed": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/json-schema-typed/-/json-schema-typed-7.0.3.tgz", - "integrity": "sha512-7DE8mpG+/fVw+dTpjbxnx47TaMnDfOI1jwft9g1VybltZCduyRQPJPvc+zzKY9WPHxhPWczyFuYa6I8Mw4iU5A==", - "dev": true, - "optional": true - }, - "node_modules/json-stable-stringify": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.2.tgz", - "integrity": "sha512-eunSSaEnxV12z+Z73y/j5N37/In40GK4GmsSy+tEHJMxknvqnA7/djeYtAgW0GsWHUfg+847WJjKaEylk2y09g==", + "node_modules/saxes": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/saxes/-/saxes-5.0.1.tgz", + "integrity": "sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==", "dev": true, "dependencies": { - "jsonify": "^0.0.1" + "xmlchars": "^2.2.0" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "engines": { + "node": ">=10" } }, - "node_modules/json-stringify-safe": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" + "node_modules/scrypt-js": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-3.0.1.tgz", + "integrity": "sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA==" }, - "node_modules/json5": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz", - "integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==", - "dev": true, + "node_modules/secp256k1": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-4.0.3.tgz", + "integrity": "sha512-NLZVf+ROMxwtEj3Xa562qgv2BK5e2WNmXPiOdVIPLgs6lyTzMvBq0aWTYMI5XCP9jZMVKOcqZLw/Wc4vDkuxhA==", + "hasInstallScript": true, "dependencies": { - "minimist": "^1.2.5" - }, - "bin": { - "json5": "lib/cli.js" + "elliptic": "^6.5.4", + "node-addon-api": "^2.0.0", + "node-gyp-build": "^4.2.0" }, "engines": { - "node": ">=6" + "node": ">=10.0.0" } }, - "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 - }, - "node_modules/jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", "dev": true, - "optionalDependencies": { - "graceful-fs": "^4.1.6" + "bin": { + "semver": "bin/semver" } }, - "node_modules/jsonify": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.1.tgz", - "integrity": "sha512-2/Ki0GcmuqSrgFyelQq9M05y7PS0mEwuIzrf3f1fPqkVDVRvZrPZtVSMHxdgo8Aq0sxAOb/cr2aqqA3LeWHVPg==", + "node_modules/send": { + "version": "0.17.2", + "resolved": "https://registry.npmjs.org/send/-/send-0.17.2.tgz", + "integrity": "sha512-UJYB6wFSJE3G00nEivR5rgWp8c2xXvJ3OPWPhmuteU0IKj8nKbG3DrjiOmLwpnHGYWAVwA69zmTm++YG0Hmwww==", "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/jsonparse": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", - "integrity": "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=", - "engines": [ - "node >= 0.2.0" - ] - }, - "node_modules/jsonschema": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/jsonschema/-/jsonschema-1.4.1.tgz", - "integrity": "sha512-S6cATIPVv1z0IlxdN+zUk5EPjkGCdnhN4wVSBlvoUO1tOLJootbo9CquNJmbIh4yikWHiUedhRYrNPn1arpEmQ==", - "optional": true, + "dependencies": { + "debug": "2.6.9", + "depd": "~1.1.2", + "destroy": "~1.0.4", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "1.8.1", + "mime": "1.6.0", + "ms": "2.1.3", + "on-finished": "~2.3.0", + "range-parser": "~1.2.1", + "statuses": "~1.5.0" + }, "engines": { - "node": "*" + "node": ">= 0.8.0" } }, - "node_modules/JSONStream": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz", - "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==", + "node_modules/send/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==", + "dev": true + }, + "node_modules/serve-static": { + "version": "1.14.2", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.2.tgz", + "integrity": "sha512-+TMNA9AFxUEGuC0z2mevogSnn9MXKb4fa7ngeRMJaaGv8vTwnIEkKi+QGvPt33HSnf8pRS+WGM0EbMtCJLKMBQ==", + "dev": true, "dependencies": { - "jsonparse": "^1.2.0", - "through": ">=2.2.7 <3" - }, - "bin": { - "JSONStream": "bin.js" + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.17.2" }, "engines": { - "node": "*" + "node": ">= 0.8.0" } }, - "node_modules/jsprim": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.2.tgz", - "integrity": "sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==", + "node_modules/servify": { + "version": "0.1.12", + "resolved": "https://registry.npmjs.org/servify/-/servify-0.1.12.tgz", + "integrity": "sha512-/xE6GvsKKqyo1BAY+KxOWXcLpPsUUyji7Qg3bVD7hh1eRze5bR1uYiuDA/k3Gof1s9BTzQZEJK8sNcNGFIzeWw==", "dev": true, "dependencies": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.4.0", - "verror": "1.10.0" + "body-parser": "^1.16.0", + "cors": "^2.8.1", + "express": "^4.14.0", + "request": "^2.79.0", + "xhr": "^2.3.3" }, "engines": { - "node": ">=0.6.0" + "node": ">=6" } }, - "node_modules/keccak": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/keccak/-/keccak-3.0.2.tgz", - "integrity": "sha512-PyKKjkH53wDMLGrvmRGSNWgmSxZOUqbnXwKL9tmgbFYA1iAYqW21kfR7mZXV0MlESiefxQQE9X9fTa3X+2MPDQ==", - "hasInstallScript": true, + "node_modules/setimmediate": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", + "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=" + }, + "node_modules/setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" + }, + "node_modules/sha.js": { + "version": "2.4.11", + "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", + "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", "dependencies": { - "node-addon-api": "^2.0.0", - "node-gyp-build": "^4.2.0", - "readable-stream": "^3.6.0" + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" }, - "engines": { - "node": ">=10.0.0" + "bin": { + "sha.js": "bin.js" } }, - "node_modules/keccak256": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/keccak256/-/keccak256-1.0.6.tgz", - "integrity": "sha512-8GLiM01PkdJVGUhR1e6M/AvWnSqYS0HaERI+K/QtStGDGlSTx2B1zTqZk4Zlqu5TxHJNTxWAdP9Y+WI50OApUw==", - "optional": true, + "node_modules/sha3": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/sha3/-/sha3-2.1.4.tgz", + "integrity": "sha512-S8cNxbyb0UGUM2VhRD4Poe5N58gJnJsLJ5vC7FYWGUmGhcsj4++WaIOBFVDxlG0W3To6xBuiRh+i0Qp2oNCOtg==", "dependencies": { - "bn.js": "^5.2.0", - "buffer": "^6.0.3", - "keccak": "^3.0.2" + "buffer": "6.0.3" } }, - "node_modules/keccak256/node_modules/buffer": { + "node_modules/sha3/node_modules/buffer": { "version": "6.0.3", "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", @@ -12383,66 +11232,86 @@ "url": "https://feross.org/support" } ], - "optional": true, "dependencies": { "base64-js": "^1.3.1", "ieee754": "^1.2.1" } }, - "node_modules/keyv": { - "version": "4.5.2", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.2.tgz", - "integrity": "sha512-5MHbFaKn8cNSmVW7BYnijeAVlE4cYA/SVkifVgrh7yotnfhKmjuXpDKjrABLnT0SfHWV21P8ow07OGfRrNDg8g==", + "node_modules/shebang-command": { + "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": { - "json-buffer": "3.0.1" + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" } }, - "node_modules/kleur": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", - "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", + "node_modules/shebang-regex": { + "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": ">=6" + "node": ">=8" } }, - "node_modules/level": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/level/-/level-6.0.1.tgz", - "integrity": "sha512-psRSqJZCsC/irNhfHzrVZbmPYXDcEYhA5TVNwr+V92jF44rbf86hqGp8fiT702FyiArScYIlPSBTDUASCVNSpw==", - "dev": true, + "node_modules/shelljs": { + "version": "0.8.5", + "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.5.tgz", + "integrity": "sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==", "optional": true, "dependencies": { - "level-js": "^5.0.0", - "level-packager": "^5.1.0", - "leveldown": "^5.4.0" + "glob": "^7.0.0", + "interpret": "^1.0.0", + "rechoir": "^0.6.2" }, - "engines": { - "node": ">=8.6.0" + "bin": { + "shjs": "bin/shjs" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/level" + "engines": { + "node": ">=4" } }, - "node_modules/level-codec": { - "version": "9.0.2", - "resolved": "https://registry.npmjs.org/level-codec/-/level-codec-9.0.2.tgz", - "integrity": "sha512-UyIwNb1lJBChJnGfjmO0OR+ezh2iVu1Kas3nvBS/BzGnx79dv6g7unpKIDNPMhfdTEGoc7mC8uAu51XEtX+FHQ==", + "node_modules/shiki": { + "version": "0.9.15", + "resolved": "https://registry.npmjs.org/shiki/-/shiki-0.9.15.tgz", + "integrity": "sha512-/Y0z9IzhJ8nD9nbceORCqu6NgT9X6I8Fk8c3SICHI5NbZRLdZYFaB233gwct9sU0vvSypyaL/qaKvzyQGJBZSw==", "dev": true, + "dependencies": { + "jsonc-parser": "^3.0.0", + "vscode-oniguruma": "^1.6.1", + "vscode-textmate": "5.2.0" + } + }, + "node_modules/shx": { + "version": "0.3.4", + "resolved": "https://registry.npmjs.org/shx/-/shx-0.3.4.tgz", + "integrity": "sha512-N6A9MLVqjxZYcVn8hLmtneQWIJtp8IKzMP4eMnx+nqkvXoqinUPCbUFLp2UcWTEIUONhlk0ewxr/jaVGlc+J+g==", "optional": true, "dependencies": { - "buffer": "^5.6.0" + "minimist": "^1.2.3", + "shelljs": "^0.8.5" + }, + "bin": { + "shx": "lib/cli.js" }, "engines": { "node": ">=6" } }, - "node_modules/level-codec/node_modules/buffer": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "node_modules/signal-exit": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.5.tgz", + "integrity": "sha512-KWcOiKeQj6ZyXx7zq4YxSMgHRlod4czeBQZrPb8OKcohcqAXShm7E20kEMle9WBt26hFcAf0qLOcp5zmY7kOqQ==", + "dev": true + }, + "node_modules/simple-concat": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz", + "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==", "dev": true, "funding": [ { @@ -12457,449 +11326,304 @@ "type": "consulting", "url": "https://feross.org/support" } - ], - "optional": true, - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" - } + ] }, - "node_modules/level-concat-iterator": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/level-concat-iterator/-/level-concat-iterator-3.1.0.tgz", - "integrity": "sha512-BWRCMHBxbIqPxJ8vHOvKUsaO0v1sLYZtjN3K2iZJsRBYtp+ONsY6Jfi6hy9K3+zolgQRryhIn2NRZjZnWJ9NmQ==", + "node_modules/simple-get": { + "version": "2.8.2", + "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-2.8.2.tgz", + "integrity": "sha512-Ijd/rV5o+mSBBs4F/x9oDPtTx9Zb6X9brmnXvMW4J7IR15ngi9q5xxqWBKU744jTZiaXtxaPL7uHG6vtN8kUkw==", "dev": true, - "optional": true, "dependencies": { - "catering": "^2.1.0" - }, - "engines": { - "node": ">=10" + "decompress-response": "^3.3.0", + "once": "^1.3.1", + "simple-concat": "^1.0.0" } }, - "node_modules/level-errors": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/level-errors/-/level-errors-2.0.1.tgz", - "integrity": "sha512-UVprBJXite4gPS+3VznfgDSU8PTRuVX0NXwoWW50KLxd2yw4Y1t2JUR5In1itQnudZqRMT9DlAM3Q//9NCjCFw==", + "node_modules/simple-get/node_modules/decompress-response": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", + "integrity": "sha512-BzRPQuY1ip+qDonAOz42gRm/pg9F768C+npV/4JOsxRC2sq+Rlk+Q4ZCAsOhnIaMrgarILY+RMUIvMmmX1qAEA==", "dev": true, - "optional": true, "dependencies": { - "errno": "~0.1.1" + "mimic-response": "^1.0.0" }, "engines": { - "node": ">=6" + "node": ">=4" } }, - "node_modules/level-iterator-stream": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/level-iterator-stream/-/level-iterator-stream-4.0.2.tgz", - "integrity": "sha512-ZSthfEqzGSOMWoUGhTXdX9jv26d32XJuHz/5YnuHZzH6wldfWMOVwI9TBtKcya4BKTyTt3XVA0A3cF3q5CY30Q==", + "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, - "optional": true, - "dependencies": { - "inherits": "^2.0.4", - "readable-stream": "^3.4.0", - "xtend": "^4.0.2" - }, "engines": { - "node": ">=6" + "node": ">=8" } }, - "node_modules/level-js": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/level-js/-/level-js-5.0.2.tgz", - "integrity": "sha512-SnBIDo2pdO5VXh02ZmtAyPP6/+6YTJg2ibLtl9C34pWvmtMEmRTWpra+qO/hifkUtBTOtfx6S9vLDjBsBK4gRg==", - "dev": true, - "optional": true, + "node_modules/snake-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/snake-case/-/snake-case-3.0.4.tgz", + "integrity": "sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==", "dependencies": { - "abstract-leveldown": "~6.2.3", - "buffer": "^5.5.0", - "inherits": "^2.0.3", - "ltgt": "^2.1.2" + "dot-case": "^3.0.4", + "tslib": "^2.0.3" } }, - "node_modules/level-js/node_modules/abstract-leveldown": { - "version": "6.2.3", - "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-6.2.3.tgz", - "integrity": "sha512-BsLm5vFMRUrrLeCcRc+G0t2qOaTzpoJQLOubq2XM72eNpjF5UdU5o/5NvlNhx95XHcAvcl8OMXr4mlg/fRgUXQ==", - "dev": true, + "node_modules/snake-case/node_modules/tslib": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", + "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" + }, + "node_modules/snakecase-keys": { + "version": "5.4.5", + "resolved": "https://registry.npmjs.org/snakecase-keys/-/snakecase-keys-5.4.5.tgz", + "integrity": "sha512-qSQVcgcWk8mQUN1miVGnRMAUye1dbj9+F9PVkR7wZUXNCidQwrl/kOKmoYf+WbH2ju6c9pXnlmbS2he7pb2/9A==", "optional": true, "dependencies": { - "buffer": "^5.5.0", - "immediate": "^3.2.3", - "level-concat-iterator": "~2.0.0", - "level-supports": "~1.0.0", - "xtend": "~4.0.0" + "map-obj": "^4.1.0", + "snake-case": "^3.0.4", + "type-fest": "^2.5.2" }, "engines": { - "node": ">=6" - } - }, - "node_modules/level-js/node_modules/buffer": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "optional": true, - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" + "node": ">=12" } }, - "node_modules/level-js/node_modules/level-concat-iterator": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/level-concat-iterator/-/level-concat-iterator-2.0.1.tgz", - "integrity": "sha512-OTKKOqeav2QWcERMJR7IS9CUo1sHnke2C0gkSmcR7QuEtFNLLzHQAvnMw8ykvEcv0Qtkg0p7FOwP1v9e5Smdcw==", - "dev": true, + "node_modules/snakecase-keys/node_modules/type-fest": { + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz", + "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==", "optional": true, "engines": { - "node": ">=6" + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/level-js/node_modules/level-supports": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/level-supports/-/level-supports-1.0.1.tgz", - "integrity": "sha512-rXM7GYnW8gsl1vedTJIbzOrRv85c/2uCMpiiCzO2fndd06U/kUXEEU9evYn4zFggBOg36IsBW8LzqIpETwwQzg==", + "node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", "dev": true, - "optional": true, - "dependencies": { - "xtend": "^4.0.2" - }, "engines": { - "node": ">=6" + "node": ">=0.10.0" } }, - "node_modules/level-packager": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/level-packager/-/level-packager-5.1.1.tgz", - "integrity": "sha512-HMwMaQPlTC1IlcwT3+swhqf/NUO+ZhXVz6TY1zZIIZlIR0YSn8GtAAWmIvKjNY16ZkEg/JcpAuQskxsXqC0yOQ==", + "node_modules/source-map-support": { + "version": "0.5.20", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.20.tgz", + "integrity": "sha512-n1lZZ8Ve4ksRqizaBQgxXDgKwttHDhyfQjA6YZZn8+AroHbsIz+JjwxQDxbp+7y5OYCI8t1Yk7etjD9CRd2hIw==", "dev": true, - "optional": true, "dependencies": { - "encoding-down": "^6.3.0", - "levelup": "^4.3.2" - }, - "engines": { - "node": ">=6" + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" } }, - "node_modules/level-supports": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/level-supports/-/level-supports-2.1.0.tgz", - "integrity": "sha512-E486g1NCjW5cF78KGPrMDRBYzPuueMZ6VBXHT6gC7A8UYWGiM14fGgp+s/L1oFfDWSPV/+SFkYCmZ0SiESkRKA==", + "node_modules/source-map-support/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, - "optional": true, "engines": { - "node": ">=10" + "node": ">=0.10.0" } }, - "node_modules/level-write-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/level-write-stream/-/level-write-stream-1.0.0.tgz", - "integrity": "sha512-bBNKOEOMl8msO+uIM9YX/gUO6ckokZ/4pCwTm/lwvs46x6Xs8Zy0sn3Vh37eDqse4mhy4fOMIb/JsSM2nyQFtw==", - "dev": true, - "optional": true, - "dependencies": { - "end-stream": "~0.1.0" - } + "node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", + "dev": true }, - "node_modules/leveldown": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/leveldown/-/leveldown-5.6.0.tgz", - "integrity": "sha512-iB8O/7Db9lPaITU1aA2txU/cBEXAt4vWwKQRrrWuS6XDgbP4QZGj9BL2aNbwb002atoQ/lIotJkfyzz+ygQnUQ==", + "node_modules/sshpk": { + "version": "1.17.0", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.17.0.tgz", + "integrity": "sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ==", "dev": true, - "hasInstallScript": true, - "optional": true, "dependencies": { - "abstract-leveldown": "~6.2.1", - "napi-macros": "~2.0.0", - "node-gyp-build": "~4.1.0" + "asn1": "~0.2.3", + "assert-plus": "^1.0.0", + "bcrypt-pbkdf": "^1.0.0", + "dashdash": "^1.12.0", + "ecc-jsbn": "~0.1.1", + "getpass": "^0.1.1", + "jsbn": "~0.1.0", + "safer-buffer": "^2.0.2", + "tweetnacl": "~0.14.0" + }, + "bin": { + "sshpk-conv": "bin/sshpk-conv", + "sshpk-sign": "bin/sshpk-sign", + "sshpk-verify": "bin/sshpk-verify" }, "engines": { - "node": ">=8.6.0" + "node": ">=0.10.0" } }, - "node_modules/leveldown/node_modules/abstract-leveldown": { - "version": "6.2.3", - "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-6.2.3.tgz", - "integrity": "sha512-BsLm5vFMRUrrLeCcRc+G0t2qOaTzpoJQLOubq2XM72eNpjF5UdU5o/5NvlNhx95XHcAvcl8OMXr4mlg/fRgUXQ==", + "node_modules/sshpk/node_modules/tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==", + "dev": true + }, + "node_modules/stack-utils": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.5.tgz", + "integrity": "sha512-xrQcmYhOsn/1kX+Vraq+7j4oE2j/6BFscZ0etmYg81xuM8Gq0022Pxb8+IqgOFUIaxHs0KaSb7T1+OegiNrNFA==", "dev": true, - "optional": true, "dependencies": { - "buffer": "^5.5.0", - "immediate": "^3.2.3", - "level-concat-iterator": "~2.0.0", - "level-supports": "~1.0.0", - "xtend": "~4.0.0" + "escape-string-regexp": "^2.0.0" }, "engines": { - "node": ">=6" + "node": ">=10" } }, - "node_modules/leveldown/node_modules/buffer": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "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, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "optional": true, - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" - } - }, - "node_modules/leveldown/node_modules/level-concat-iterator": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/level-concat-iterator/-/level-concat-iterator-2.0.1.tgz", - "integrity": "sha512-OTKKOqeav2QWcERMJR7IS9CUo1sHnke2C0gkSmcR7QuEtFNLLzHQAvnMw8ykvEcv0Qtkg0p7FOwP1v9e5Smdcw==", - "dev": true, - "optional": true, "engines": { - "node": ">=6" + "node": ">=8" } }, - "node_modules/leveldown/node_modules/level-supports": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/level-supports/-/level-supports-1.0.1.tgz", - "integrity": "sha512-rXM7GYnW8gsl1vedTJIbzOrRv85c/2uCMpiiCzO2fndd06U/kUXEEU9evYn4zFggBOg36IsBW8LzqIpETwwQzg==", - "dev": true, - "optional": true, - "dependencies": { - "xtend": "^4.0.2" - }, + "node_modules/statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", "engines": { - "node": ">=6" + "node": ">= 0.6" } }, - "node_modules/leveldown/node_modules/node-gyp-build": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.1.1.tgz", - "integrity": "sha512-dSq1xmcPDKPZ2EED2S6zw/b9NKsqzXRE6dVr8TVQnI3FJOTteUMuqF3Qqs6LZg+mLGYJWqQzMbIjMtJqTv87nQ==", - "dev": true, - "optional": true, - "bin": { - "node-gyp-build": "bin.js", - "node-gyp-build-optional": "optional.js", - "node-gyp-build-test": "build-test.js" - } + "node_modules/store2": { + "version": "2.14.2", + "resolved": "https://registry.npmjs.org/store2/-/store2-2.14.2.tgz", + "integrity": "sha512-siT1RiqlfQnGqgT/YzXVUNsom9S0H1OX+dpdGN1xkyYATo4I6sep5NmsRD/40s3IIOvlCq6akxkqG82urIZW1w==", + "optional": true }, - "node_modules/levelup": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/levelup/-/levelup-4.4.0.tgz", - "integrity": "sha512-94++VFO3qN95cM/d6eBXvd894oJE0w3cInq9USsyQzzoJxmiYzPAocNcuGCPGGjoXqDVJcr3C1jzt1TSjyaiLQ==", + "node_modules/strict-uri-encode": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz", + "integrity": "sha512-R3f198pcvnB+5IpnBlRkphuE9n46WyVl8I39W/ZUTZLz4nqSP/oLYUrcnJrw462Ds8he4YKMov2efsTIw1BDGQ==", "dev": true, - "optional": true, - "dependencies": { - "deferred-leveldown": "~5.3.0", - "level-errors": "~2.0.0", - "level-iterator-stream": "~4.0.0", - "level-supports": "~1.0.0", - "xtend": "~4.0.0" - }, "engines": { - "node": ">=6" + "node": ">=0.10.0" } }, - "node_modules/levelup/node_modules/level-supports": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/level-supports/-/level-supports-1.0.1.tgz", - "integrity": "sha512-rXM7GYnW8gsl1vedTJIbzOrRv85c/2uCMpiiCzO2fndd06U/kUXEEU9evYn4zFggBOg36IsBW8LzqIpETwwQzg==", - "dev": true, - "optional": true, + "node_modules/string_decoder": { + "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": { - "xtend": "^4.0.2" - }, - "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" + "safe-buffer": "~5.2.0" } }, - "node_modules/levn": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", - "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", + "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": { - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2" + "char-regex": "^1.0.2", + "strip-ansi": "^6.0.0" }, "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/libsodium": { - "version": "0.7.11", - "resolved": "https://registry.npmjs.org/libsodium/-/libsodium-0.7.11.tgz", - "integrity": "sha512-WPfJ7sS53I2s4iM58QxY3Inb83/6mjlYgcmZs7DJsvDlnmVUwNinBCi5vBT43P6bHRy01O4zsMU2CoVR6xJ40A==", - "optional": true - }, - "node_modules/libsodium-wrappers": { - "version": "0.7.11", - "resolved": "https://registry.npmjs.org/libsodium-wrappers/-/libsodium-wrappers-0.7.11.tgz", - "integrity": "sha512-SrcLtXj7BM19vUKtQuyQKiQCRJPgbpauzl3s0rSwD+60wtHqSUuqcoawlMDheCJga85nKOQwxNYQxf/CKAvs6Q==", - "optional": true, - "dependencies": { - "libsodium": "^0.7.11" + "node": ">=10" } }, - "node_modules/link-module-alias": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/link-module-alias/-/link-module-alias-1.2.0.tgz", - "integrity": "sha512-ahPjXepbSVKbahTB6LxR//VHm8HPfI+QQygCH+E82spBY4HR5VPJTvlhKBc9F7muVxnS6C1rRfoPOXAbWO/fyw==", - "optional": true, + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "devOptional": true, "dependencies": { - "chalk": "^2.4.1" - }, - "bin": { - "link-module-alias": "index.js" + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" }, "engines": { - "node": "> 8.0.0" + "node": ">=8" } }, - "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, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "devOptional": true, "dependencies": { - "p-locate": "^4.1.0" + "ansi-regex": "^5.0.1" }, "engines": { "node": ">=8" } }, - "node_modules/lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" - }, - "node_modules/lodash-es": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz", - "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==", - "dev": true - }, - "node_modules/lodash.memoize": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", - "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=", - "dev": true - }, - "node_modules/lodash.sortby": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", - "integrity": "sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==", + "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, - "optional": true - }, - "node_modules/lodash.values": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/lodash.values/-/lodash.values-4.3.0.tgz", - "integrity": "sha512-r0RwvdCv8id9TUblb/O7rYPwVy6lerCbcawrfdo9iC/1t1wsNMJknO79WNBgwkH0hIeJ08jmvvESbFpNb4jH0Q==", - "optional": true + "engines": { + "node": ">=8" + } }, - "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==", + "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, - "dependencies": { - "chalk": "^4.1.0", - "is-unicode-supported": "^0.1.0" - }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=6" } }, - "node_modules/log-symbols/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, + "node_modules/strip-hex-prefix": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-hex-prefix/-/strip-hex-prefix-1.0.0.tgz", + "integrity": "sha1-DF8VX+8RUTczd96du1iNoFUA428=", + "devOptional": true, "dependencies": { - "color-convert": "^2.0.1" + "is-hex-prefixed": "1.0.0" }, "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "node": ">=6.5.0", + "npm": ">=3" } }, - "node_modules/log-symbols/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, + "node_modules/superstruct": { + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/superstruct/-/superstruct-0.14.2.tgz", + "integrity": "sha512-nPewA6m9mR3d6k7WkZ8N8zpTWfenFH3q9pA2PkuiZxINr9DKB2+40wEQf0ixn8VaGuJ78AB6iWOtStI+/4FKZQ==" + }, + "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==", + "devOptional": true, "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" + "has-flag": "^3.0.0" }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "node": ">=4" } }, - "node_modules/log-symbols/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "node_modules/supports-hyperlinks": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.2.0.tgz", + "integrity": "sha512-6sXEzV5+I5j8Bmq9/vUphGRM/RJNT9SCURJLjwfOg51heRtguGWDzcaBlgAzKhQa0EVNpPEKzQuBwZ8S8WaCeQ==", "dev": true, "dependencies": { - "color-name": "~1.1.4" + "has-flag": "^4.0.0", + "supports-color": "^7.0.0" }, "engines": { - "node": ">=7.0.0" + "node": ">=8" } }, - "node_modules/log-symbols/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/log-symbols/node_modules/has-flag": { + "node_modules/supports-hyperlinks/node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", @@ -12908,7 +11632,7 @@ "node": ">=8" } }, - "node_modules/log-symbols/node_modules/supports-color": { + "node_modules/supports-hyperlinks/node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", @@ -12920,146 +11644,185 @@ "node": ">=8" } }, - "node_modules/loglevel": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.8.1.tgz", - "integrity": "sha512-tCRIJM51SHjAayKwC+QAg8hT8vg6z7GSgLJKGvzuPb1Wc+hLzqtuVLxp6/HzSPOozuK+8ErAhy7U/sVzw8Dgfg==", + "node_modules/swarm-js": { + "version": "0.1.42", + "resolved": "https://registry.npmjs.org/swarm-js/-/swarm-js-0.1.42.tgz", + "integrity": "sha512-BV7c/dVlA3R6ya1lMlSSNPLYrntt0LUq4YMgy3iwpCIc6rZnS5W2wUoctarZ5pXlpKtxDDf9hNziEkcfrxdhqQ==", "dev": true, - "optional": true, - "engines": { - "node": ">= 0.6.0" - }, - "funding": { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/loglevel" + "dependencies": { + "bluebird": "^3.5.0", + "buffer": "^5.0.5", + "eth-lib": "^0.1.26", + "fs-extra": "^4.0.2", + "got": "^11.8.5", + "mime-types": "^2.1.16", + "mkdirp-promise": "^5.0.1", + "mock-fs": "^4.1.0", + "setimmediate": "^1.0.5", + "tar": "^4.0.2", + "xhr-request": "^1.0.1" } }, - "node_modules/long": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz", - "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==" - }, - "node_modules/loose-envify": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", - "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", - "devOptional": true, + "node_modules/swarm-js/node_modules/@szmarczak/http-timer": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-4.0.6.tgz", + "integrity": "sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==", + "dev": true, "dependencies": { - "js-tokens": "^3.0.0 || ^4.0.0" + "defer-to-connect": "^2.0.0" }, - "bin": { - "loose-envify": "cli.js" + "engines": { + "node": ">=10" } }, - "node_modules/lower-case": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", - "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", + "node_modules/swarm-js/node_modules/buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], "dependencies": { - "tslib": "^2.0.3" + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" } }, - "node_modules/lower-case-first": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/lower-case-first/-/lower-case-first-1.0.2.tgz", - "integrity": "sha512-UuxaYakO7XeONbKrZf5FEgkantPf5DUqDayzP5VXZrtRPdH86s4kN47I8B3TW10S4QKiE3ziHNf3kRN//okHjA==", + "node_modules/swarm-js/node_modules/cacheable-lookup": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz", + "integrity": "sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==", "dev": true, - "dependencies": { - "lower-case": "^1.1.2" + "engines": { + "node": ">=10.6.0" } }, - "node_modules/lower-case-first/node_modules/lower-case": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz", - "integrity": "sha512-2Fgx1Ycm599x+WGpIYwJOvsjmXFzTSc34IwDWALRA/8AopUKAVPwfJ+h5+f85BCp0PWmmJcWzEpxOpoXycMpdA==", - "dev": true - }, - "node_modules/lower-case/node_modules/tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" + "node_modules/swarm-js/node_modules/fs-extra": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-4.0.3.tgz", + "integrity": "sha512-q6rbdDd1o2mAnQreO7YADIxf/Whx4AHBiRf6d+/cVT8h44ss+lHgxf1FemcqDnQt9X3ct4McHr+JMGlYSsK7Cg==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + } }, - "node_modules/lowercase-keys": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-3.0.0.tgz", - "integrity": "sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ==", + "node_modules/swarm-js/node_modules/got": { + "version": "11.8.6", + "resolved": "https://registry.npmjs.org/got/-/got-11.8.6.tgz", + "integrity": "sha512-6tfZ91bOr7bOXnK7PRDCGBLa1H4U080YHNaAQ2KsMGlLEzRbk44nsZF2E1IeRc3vtJHPVbKCYgdFbaGO2ljd8g==", "dev": true, + "dependencies": { + "@sindresorhus/is": "^4.0.0", + "@szmarczak/http-timer": "^4.0.5", + "@types/cacheable-request": "^6.0.1", + "@types/responselike": "^1.0.0", + "cacheable-lookup": "^5.0.3", + "cacheable-request": "^7.0.2", + "decompress-response": "^6.0.0", + "http2-wrapper": "^1.0.0-beta.5.2", + "lowercase-keys": "^2.0.0", + "p-cancelable": "^2.0.0", + "responselike": "^2.0.0" + }, "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + "node": ">=10.19.0" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sindresorhus/got?sponsor=1" } }, - "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==", + "node_modules/swarm-js/node_modules/http2-wrapper": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-1.0.3.tgz", + "integrity": "sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg==", "dev": true, "dependencies": { - "yallist": "^4.0.0" + "quick-lru": "^5.1.1", + "resolve-alpn": "^1.0.0" }, "engines": { - "node": ">=10" + "node": ">=10.19.0" } }, - "node_modules/ltgt": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ltgt/-/ltgt-2.2.1.tgz", - "integrity": "sha512-AI2r85+4MquTw9ZYqabu4nMwy9Oftlfa/e/52t9IjtfG+mGBbTNdAoZ3RQKLHR6r0wQnwZnPIEh/Ya6XTWAKNA==", + "node_modules/swarm-js/node_modules/lowercase-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", "dev": true, - "optional": true - }, - "node_modules/lunr": { - "version": "2.3.9", - "resolved": "https://registry.npmjs.org/lunr/-/lunr-2.3.9.tgz", - "integrity": "sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow==", - "dev": true + "engines": { + "node": ">=8" + } }, - "node_modules/make-dir": { - "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==", + "node_modules/swarm-js/node_modules/p-cancelable": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.1.1.tgz", + "integrity": "sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==", "dev": true, - "dependencies": { - "semver": "^6.0.0" - }, "engines": { "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" } }, - "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==", - "dev": true, - "bin": { - "semver": "bin/semver.js" + "node_modules/symbol-observable": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-4.0.0.tgz", + "integrity": "sha512-b19dMThMV4HVFynSAM1++gBHAbk2Tc/osgLIBZMKsyqh34jb2e8Os7T6ZW/Bt3pJFdBTd2JwAnAAEQV7rSNvcQ==", + "optional": true, + "engines": { + "node": ">=0.10" } }, - "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==", + "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 }, - "node_modules/makeerror": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", - "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", + "node_modules/tar": { + "version": "4.4.19", + "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.19.tgz", + "integrity": "sha512-a20gEsvHnWe0ygBY8JbxoM4w3SJdhc7ZAuxkLqh+nvNQN2IOt0B5lLgM490X5Hl8FF0dl0tOf2ewFYAlIFgzVA==", "dev": true, "dependencies": { - "tmpl": "1.0.5" + "chownr": "^1.1.4", + "fs-minipass": "^1.2.7", + "minipass": "^2.9.0", + "minizlib": "^1.3.3", + "mkdirp": "^0.5.5", + "safe-buffer": "^5.2.1", + "yallist": "^3.1.1" + }, + "engines": { + "node": ">=4.5" } }, - "node_modules/map-obj": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.3.0.tgz", - "integrity": "sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==", - "optional": true, + "node_modules/tar/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/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" + }, "engines": { "node": ">=8" }, @@ -13067,348 +11830,402 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/marked": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/marked/-/marked-4.2.2.tgz", - "integrity": "sha512-JjBTFTAvuTgANXx82a5vzK9JLSMoV6V3LBVn4Uhdso6t7vXrGx7g1Cd2r6NYSsxrYbQGFCMqBDhFHyK5q2UvcQ==", + "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, - "bin": { - "marked": "bin/marked.js" + "dependencies": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" }, "engines": { - "node": ">= 12" - } - }, - "node_modules/md5.js": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", - "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", - "dependencies": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" + "node": ">=8" } }, - "node_modules/media-typer": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", + "node_modules/test-value": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/test-value/-/test-value-2.1.0.tgz", + "integrity": "sha512-+1epbAxtKeXttkGFMTX9H42oqzOTufR1ceCF+GYA5aOmvaPq9wd4PUS8329fn2RRLGNeUkgRLnVpycjx8DsO2w==", "dev": true, + "dependencies": { + "array-back": "^1.0.3", + "typical": "^2.6.0" + }, "engines": { - "node": ">= 0.6" + "node": ">=0.10.0" } }, - "node_modules/memdown": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/memdown/-/memdown-1.4.1.tgz", - "integrity": "sha512-iVrGHZB8i4OQfM155xx8akvG9FIj+ht14DX5CQkCTG4EHzZ3d3sgckIf/Lm9ivZalEsFuEVnWv2B2WZvbrro2w==", + "node_modules/test-value/node_modules/array-back": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-1.0.4.tgz", + "integrity": "sha512-1WxbZvrmyhkNoeYcizokbmh5oiOCIfyvGtcqbK3Ls1v1fKcquzxnQSceOx6tzq7jmai2kFLWIpGND2cLhH6TPw==", "dev": true, - "optional": true, "dependencies": { - "abstract-leveldown": "~2.7.1", - "functional-red-black-tree": "^1.0.1", - "immediate": "^3.2.3", - "inherits": "~2.0.1", - "ltgt": "~2.2.0", - "safe-buffer": "~5.1.1" + "typical": "^2.6.0" + }, + "engines": { + "node": ">=0.12.0" } }, - "node_modules/memdown/node_modules/abstract-leveldown": { - "version": "2.7.2", - "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-2.7.2.tgz", - "integrity": "sha512-+OVvxH2rHVEhWLdbudP6p0+dNMXu8JA1CbhP19T8paTYAcX7oJ4OVjT+ZUVpv7mITxXHqDMej+GdqXBmXkw09w==", - "dev": true, - "optional": true, - "dependencies": { - "xtend": "~4.0.0" - } + "node_modules/text-encoding-utf-8": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/text-encoding-utf-8/-/text-encoding-utf-8-1.0.2.tgz", + "integrity": "sha512-8bw4MY9WjdsD2aMtO0OzOCY3pXGYNx2d2FfHRVUKkiCPDWjKuOlhLVASS+pD7VkLTVjW268LYJHwsnPFlBpbAg==" }, - "node_modules/memdown/node_modules/safe-buffer": { + "node_modules/throat": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/throat/-/throat-6.0.1.tgz", + "integrity": "sha512-8hmiGIJMDlwjg7dlJ4yKGLK8EsYqKgPWbG3b4wjJddKNwc7N7Dpn08Df4szr/sZdMVeOstrdYSsqzX6BYbcB+w==", + "dev": true + }, + "node_modules/through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=" + }, + "node_modules/through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "optional": true, + "dependencies": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + }, + "node_modules/through2/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "optional": true + }, + "node_modules/through2/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "optional": true, + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/through2/node_modules/safe-buffer": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true, "optional": true }, - "node_modules/merge-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=", - "dev": true - }, - "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/through2/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "optional": true, + "dependencies": { + "safe-buffer": "~5.1.0" + } }, - "node_modules/methods": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=", + "node_modules/timed-out": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz", + "integrity": "sha512-G7r3AhovYtr5YKOWQkta8RKAPb+J9IsO4uVmzjl8AZwfhs8UcUwTiD6gcJYSgOtzyjvQKrKYn41syHbUWMkafA==", "dev": true, "engines": { - "node": ">= 0.6" + "node": ">=0.10.0" } }, - "node_modules/micromatch": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", - "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", - "dev": true, + "node_modules/tiny-secp256k1": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/tiny-secp256k1/-/tiny-secp256k1-1.1.6.tgz", + "integrity": "sha512-FmqJZGduTyvsr2cF3375fqGHUovSwDi/QytexX1Se4BPuPZpTE5Ftp5fg+EFSuEf3lhZqgCRjEG3ydUQ/aNiwA==", + "hasInstallScript": true, "dependencies": { - "braces": "^3.0.1", - "picomatch": "^2.2.3" + "bindings": "^1.3.0", + "bn.js": "^4.11.8", + "create-hmac": "^1.1.7", + "elliptic": "^6.4.0", + "nan": "^2.13.2" }, "engines": { - "node": ">=8.6" + "node": ">=6.0.0" } }, - "node_modules/miller-rabin": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", - "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", - "dev": true, + "node_modules/tiny-secp256k1/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + }, + "node_modules/tmp": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz", + "integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==", "dependencies": { - "bn.js": "^4.0.0", - "brorand": "^1.0.1" + "rimraf": "^3.0.0" }, - "bin": { - "miller-rabin": "bin/miller-rabin" + "engines": { + "node": ">=8.17.0" } }, - "node_modules/miller-rabin/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "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/mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "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": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", "dev": true, - "bin": { - "mime": "cli.js" - }, "engines": { "node": ">=4" } }, - "node_modules/mime-db": { - "version": "1.50.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.50.0.tgz", - "integrity": "sha512-9tMZCDlYHqeERXEHO9f/hKfNXhre5dK2eE/krIvUjZbS2KPcqGDfNShIWS1uW9XOTKQKqK6qbeOci18rbfW77A==", + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "dependencies": { + "is-number": "^7.0.0" + }, "engines": { - "node": ">= 0.6" + "node": ">=8.0" } }, - "node_modules/mime-types": { - "version": "2.1.33", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.33.tgz", - "integrity": "sha512-plLElXp7pRDd0bNZHw+nMd52vRYjLwQjygaNg7ddJ2uJtTlmnTCjWuPKxVu6//AdaRuME84SvLW91sIkBqGT0g==", - "dependencies": { - "mime-db": "1.50.0" - }, + "node_modules/toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", "engines": { - "node": ">= 0.6" + "node": ">=0.6" } }, - "node_modules/mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "node_modules/toml": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/toml/-/toml-3.0.0.tgz", + "integrity": "sha512-y/mWCZinnvxjTKYhJ+pYxwD0mRLVvOtdS2Awbgxln6iEnt4rk0yBxeSBHkGJcPucRiG0e55mwWp+g/05rsrd6w==" + }, + "node_modules/tough-cookie": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.0.0.tgz", + "integrity": "sha512-tHdtEpQCMrc1YLrMaqXXcj6AxhYi/xgit6mZu1+EDWUn+qhUf8wMQoFIy9NXuq23zAwtcB0t/MjACGR18pcRbg==", "dev": true, + "dependencies": { + "psl": "^1.1.33", + "punycode": "^2.1.1", + "universalify": "^0.1.2" + }, "engines": { "node": ">=6" } }, - "node_modules/mimic-response": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", - "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", + "node_modules/tr46": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-2.1.0.tgz", + "integrity": "sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==", "dev": true, + "dependencies": { + "punycode": "^2.1.1" + }, "engines": { - "node": ">=4" + "node": ">=8" } }, - "node_modules/min-document": { - "version": "2.19.0", - "resolved": "https://registry.npmjs.org/min-document/-/min-document-2.19.0.tgz", - "integrity": "sha512-9Wy1B3m3f66bPPmU5hdA4DR4PB2OfDU/+GS3yAB7IQozE3tqXaVv2zOjgla7MEGSRv95+ILmOuvhLkOK6wJtCQ==", + "node_modules/ts-essentials": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/ts-essentials/-/ts-essentials-7.0.3.tgz", + "integrity": "sha512-8+gr5+lqO3G84KdiTSMRLtuyJ+nTBVRKuCrK4lidMPdVeEp0uqC875uE5NMcaA7YYMN7XsNiFQuMvasF8HT/xQ==", "dev": true, - "dependencies": { - "dom-walk": "^0.1.0" + "peerDependencies": { + "typescript": ">=3.7.0" } }, - "node_modules/minimalistic-assert": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", - "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==" - }, - "node_modules/minimalistic-crypto-utils": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", - "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=" - }, - "node_modules/minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "node_modules/ts-invariant": { + "version": "0.10.3", + "resolved": "https://registry.npmjs.org/ts-invariant/-/ts-invariant-0.10.3.tgz", + "integrity": "sha512-uivwYcQaxAucv1CzRp2n/QdYPo4ILf9VXgH19zEIjFx2EJufV16P0JtJVpYHy89DItG6Kwj2oIUjrcK5au+4tQ==", + "optional": true, "dependencies": { - "brace-expansion": "^1.1.7" + "tslib": "^2.1.0" }, "engines": { - "node": "*" + "node": ">=8" } }, - "node_modules/minimist": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", - "devOptional": true + "node_modules/ts-invariant/node_modules/tslib": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", + "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", + "optional": true }, - "node_modules/minipass": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz", - "integrity": "sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==", + "node_modules/ts-jest": { + "version": "27.0.7", + "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-27.0.7.tgz", + "integrity": "sha512-O41shibMqzdafpuP+CkrOL7ykbmLh+FqQrXEmV9CydQ5JBk0Sj0uAEF5TNNe94fZWKm3yYvWa/IbyV4Yg1zK2Q==", "dev": true, "dependencies": { - "safe-buffer": "^5.1.2", - "yallist": "^3.0.0" - } - }, - "node_modules/minipass/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/minizlib": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.3.3.tgz", - "integrity": "sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==", - "dev": true, - "dependencies": { - "minipass": "^2.9.0" + "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 + } } }, - "node_modules/mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "node_modules/ts-jest/node_modules/semver": { + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", "dev": true, "dependencies": { - "minimist": "^1.2.5" + "lru-cache": "^6.0.0" }, "bin": { - "mkdirp": "bin/cmd.js" + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" } }, - "node_modules/mkdirp-promise": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/mkdirp-promise/-/mkdirp-promise-5.0.1.tgz", - "integrity": "sha512-Hepn5kb1lJPtVW84RFT40YG1OddBNTOVUZR2bzQUHc+Z03en8/3uX0+060JDhcEzyO08HmipsN9DcnFMxhIL9w==", - "deprecated": "This package is broken and no longer maintained. 'mkdirp' itself supports promises now, please switch to that.", + "node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, + "node_modules/tslint": { + "version": "6.1.3", + "resolved": "https://registry.npmjs.org/tslint/-/tslint-6.1.3.tgz", + "integrity": "sha512-IbR4nkT96EQOvKE2PW/djGz8iGNeJ4rF2mBfiYaR/nvUWYKJhLwimoJKgjIFEIDibBtOevj7BqCRL4oHeWWUCg==", + "deprecated": "TSLint has been deprecated in favor of ESLint. Please see https://github.com/palantir/tslint/issues/4534 for more information.", "dev": true, "dependencies": { - "mkdirp": "*" + "@babel/code-frame": "^7.0.0", + "builtin-modules": "^1.1.1", + "chalk": "^2.3.0", + "commander": "^2.12.1", + "diff": "^4.0.1", + "glob": "^7.1.1", + "js-yaml": "^3.13.1", + "minimatch": "^3.0.4", + "mkdirp": "^0.5.3", + "resolve": "^1.3.2", + "semver": "^5.3.0", + "tslib": "^1.13.0", + "tsutils": "^2.29.0" + }, + "bin": { + "tslint": "bin/tslint" }, "engines": { - "node": ">=4" + "node": ">=4.8.0" + }, + "peerDependencies": { + "typescript": ">=2.3.0-dev || >=2.4.0-dev || >=2.5.0-dev || >=2.6.0-dev || >=2.7.0-dev || >=2.8.0-dev || >=2.9.0-dev || >=3.0.0-dev || >= 3.1.0-dev || >= 3.2.0-dev || >= 4.0.0-dev" } }, - "node_modules/mocha": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/mocha/-/mocha-10.1.0.tgz", - "integrity": "sha512-vUF7IYxEoN7XhQpFLxQAEMtE4W91acW4B6En9l97MwE9stL1A9gusXfoHZCLVHDUJ/7V5+lbCM6yMqzo5vNymg==", - "dev": true, - "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" - }, + "node_modules/tslint-config-prettier": { + "version": "1.18.0", + "resolved": "https://registry.npmjs.org/tslint-config-prettier/-/tslint-config-prettier-1.18.0.tgz", + "integrity": "sha512-xPw9PgNPLG3iKRxmK7DWr+Ea/SzrvfHtjFt5LBl61gk2UBG/DB9kCXRjv+xyIU1rUtnayLeMUVJBcMX8Z17nDg==", + "dev": true, "bin": { - "_mocha": "bin/_mocha", - "mocha": "bin/mocha.js" + "tslint-config-prettier-check": "bin/check.js" }, "engines": { - "node": ">= 14.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/mochajs" + "node": ">=4.0.0" } }, - "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==", - "dev": true - }, - "node_modules/mocha/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==", + "node_modules/tsutils": { + "version": "2.29.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-2.29.0.tgz", + "integrity": "sha512-g5JVHCIJwzfISaXpXE1qvNalca5Jwob6FjI4AoPlqMusJ6ftFE7IkkFoMhVLRgK+4Kx3gkzb8UZK5t5yTTvEmA==", "dev": true, "dependencies": { - "balanced-match": "^1.0.0" + "tslib": "^1.8.1" + }, + "peerDependencies": { + "typescript": ">=2.1.0 || >=2.1.0-dev || >=2.2.0-dev || >=2.3.0-dev || >=2.4.0-dev || >=2.5.0-dev || >=2.6.0-dev || >=2.7.0-dev || >=2.8.0-dev || >=2.9.0-dev || >= 3.0.0-dev || >= 3.1.0-dev" } }, - "node_modules/mocha/node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "node_modules/tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==", "dev": true, "dependencies": { - "ms": "2.1.2" + "safe-buffer": "^5.0.1" }, "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } + "node": "*" } }, - "node_modules/mocha/node_modules/debug/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "node_modules/tweetnacl": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.3.tgz", + "integrity": "sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==" + }, + "node_modules/tweetnacl-util": { + "version": "0.15.1", + "resolved": "https://registry.npmjs.org/tweetnacl-util/-/tweetnacl-util-0.15.1.tgz", + "integrity": "sha512-RKJBIj8lySrShN4w6i/BonWp2Z/uxwC3h4y7xsRrpP59ZboCd0GpEVsOnMDYLMmKBpYhb5TgHzZXy7wTfYFBRw==", + "optional": true + }, + "node_modules/type": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/type/-/type-1.2.0.tgz", + "integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==", "dev": true }, - "node_modules/mocha/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==", + "node_modules/type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", "dev": true, + "dependencies": { + "prelude-ls": "~1.1.2" + }, "engines": { - "node": ">=0.3.1" + "node": ">= 0.8.0" } }, - "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==", + "node_modules/type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", "dev": true, "engines": { "node": ">=10" @@ -13417,8080 +12234,3572 @@ "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==", + "node_modules/type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", "dev": true, "dependencies": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=10" + "media-typer": "0.3.0", + "mime-types": "~2.1.24" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/mocha/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, "engines": { - "node": ">=8" + "node": ">= 0.6" } }, - "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==", + "node_modules/typechain": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/typechain/-/typechain-5.2.0.tgz", + "integrity": "sha512-0INirvQ+P+MwJOeMct+WLkUE4zov06QxC96D+i3uGFEHoiSkZN70MKDQsaj8zkL86wQwByJReI2e7fOUwECFuw==", "dev": true, "dependencies": { - "argparse": "^2.0.1" + "@types/prettier": "^2.1.1", + "command-line-args": "^4.0.7", + "debug": "^4.1.1", + "fs-extra": "^7.0.0", + "glob": "^7.1.6", + "js-sha3": "^0.8.0", + "lodash": "^4.17.15", + "mkdirp": "^1.0.4", + "prettier": "^2.1.2", + "ts-essentials": "^7.0.1" }, "bin": { - "js-yaml": "bin/js-yaml.js" + "typechain": "dist/cli/cli.js" + }, + "peerDependencies": { + "typescript": ">=4.1.0" } }, - "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==", + "node_modules/typechain/node_modules/debug": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", + "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", "dev": true, "dependencies": { - "p-locate": "^5.0.0" + "ms": "2.1.2" }, "engines": { - "node": ">=10" + "node": ">=6.0" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } } }, - "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==", + "node_modules/typechain/node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", "dev": true, - "dependencies": { - "brace-expansion": "^2.0.1" + "bin": { + "mkdirp": "bin/cmd.js" }, "engines": { "node": ">=10" } }, - "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/typechain/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true }, - "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==", + "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": { - "yocto-queue": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "is-typedarray": "^1.0.0" } }, - "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==", + "node_modules/typedoc": { + "version": "0.21.10", + "resolved": "https://registry.npmjs.org/typedoc/-/typedoc-0.21.10.tgz", + "integrity": "sha512-Y0wYIehkjkPfsp3pv86fp3WPHUcOf8pnQUDLwG1PqSccUSqdsv7Pz1Gd5WrTJvXQB2wO1mKlZ8qW8qMiopKyjA==", "dev": true, "dependencies": { - "p-limit": "^3.0.2" + "glob": "^7.1.7", + "handlebars": "^4.7.7", + "lunr": "^2.3.9", + "marked": "^4.0.10", + "minimatch": "^3.0.0", + "progress": "^2.0.3", + "shiki": "^0.9.8", + "typedoc-default-themes": "^0.12.10" }, - "engines": { - "node": ">=10" + "bin": { + "typedoc": "bin/typedoc" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "engines": { + "node": ">= 12.10.0" + }, + "peerDependencies": { + "typescript": "4.0.x || 4.1.x || 4.2.x || 4.3.x || 4.4.x" } }, - "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==", + "node_modules/typedoc-default-themes": { + "version": "0.12.10", + "resolved": "https://registry.npmjs.org/typedoc-default-themes/-/typedoc-default-themes-0.12.10.tgz", + "integrity": "sha512-fIS001cAYHkyQPidWXmHuhs8usjP5XVJjWB8oZGqkTowZaz3v7g3KDZeeqE82FBrmkAnIBOY3jgy7lnPnqATbA==", "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" + "node": ">= 8" } }, - "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==", + "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.3.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.3.5.tgz", + "integrity": "sha512-DqQgihaQ9cUrskJo9kIyW/+g0Vxsk8cDtZ52a3NGh0YNTfpUSArXSohyUGnvbPazEPLu398C0UxmKSOrPumUzA==", "dev": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, "engines": { - "node": ">=10" + "node": ">=4.2.0" } }, - "node_modules/mock-fs": { - "version": "4.14.0", - "resolved": "https://registry.npmjs.org/mock-fs/-/mock-fs-4.14.0.tgz", - "integrity": "sha512-qYvlv/exQ4+svI3UOvPUpLDF0OMX5euvUH0Ny4N5QyRyhNdgAgUrVH3iUINSzEPLvx0kbo/Bp28GJKIqvE7URw==", + "node_modules/typical": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/typical/-/typical-2.6.1.tgz", + "integrity": "sha512-ofhi8kjIje6npGozTip9Fr8iecmYfEbS06i0JnIg+rh51KakryWF4+jX8lLKZVhy6N+ID45WYSFCxPOdTWCzNg==", "dev": true }, - "node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "node_modules/u3": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/u3/-/u3-0.1.1.tgz", + "integrity": "sha512-+J5D5ir763y+Am/QY6hXNRlwljIeRMZMGs0cT6qqZVVzzT3X3nFPXVyPOFRMOR4kupB0T8JnCdpWdp6Q/iXn3w==" + }, + "node_modules/uglify-js": { + "version": "3.17.4", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.17.4.tgz", + "integrity": "sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g==", + "dev": true, + "optional": true, + "bin": { + "uglifyjs": "bin/uglifyjs" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/ultron": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ultron/-/ultron-1.1.1.tgz", + "integrity": "sha512-UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og==", "dev": true }, - "node_modules/multibase": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/multibase/-/multibase-0.6.1.tgz", - "integrity": "sha512-pFfAwyTjbbQgNc3G7D48JkJxWtoJoBMaR4xQUOuB8RnCgRqaYmWNFeJTTvrJ2w51bjLq2zTby6Rqj9TQ9elSUw==", - "deprecated": "This module has been superseded by the multiformats module", + "node_modules/universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", "dev": true, - "dependencies": { - "base-x": "^3.0.8", - "buffer": "^5.5.0" + "engines": { + "node": ">= 4.0.0" } }, - "node_modules/multibase/node_modules/buffer": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" + "engines": { + "node": ">= 0.8" } }, - "node_modules/multicodec": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/multicodec/-/multicodec-0.5.7.tgz", - "integrity": "sha512-PscoRxm3f+88fAtELwUnZxGDkduE2HD9Q6GHUOywQLjOGT/HAdhjLDYNZ1e7VR0s0TP0EwZ16LNUTFpoBGivOA==", - "deprecated": "This module has been superseded by the multiformats module", + "node_modules/untildify": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/untildify/-/untildify-4.0.0.tgz", + "integrity": "sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==", + "optional": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", "dev": true, "dependencies": { - "varint": "^5.0.0" + "punycode": "^2.1.0" } }, - "node_modules/multihashes": { - "version": "0.4.21", - "resolved": "https://registry.npmjs.org/multihashes/-/multihashes-0.4.21.tgz", - "integrity": "sha512-uVSvmeCWf36pU2nB4/1kzYZjsXD9vofZKpgudqkceYY5g2aZZXJ5r9lxuzoRLl1OAp28XljXsEJ/X/85ZsKmKw==", - "dev": true, + "node_modules/url-set-query": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/url-set-query/-/url-set-query-1.0.0.tgz", + "integrity": "sha512-3AChu4NiXquPfeckE5R5cGdiHCMWJx1dwCWOmWIL4KHAziJNOFIYJlpGFeKDvwLPHovZRCxK3cYlwzqI9Vp+Gg==", + "dev": true + }, + "node_modules/utf-8-validate": { + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/utf-8-validate/-/utf-8-validate-5.0.5.tgz", + "integrity": "sha512-+pnxRYsS/axEpkrrEpzYfNZGXp0IjC/9RIxwM5gntY4Koi8SHmUGSfxfWqxZdRxrtaoVstuOzUp/rbs3JSPELQ==", + "hasInstallScript": true, "dependencies": { - "buffer": "^5.5.0", - "multibase": "^0.7.0", - "varint": "^5.0.0" + "node-gyp-build": "^4.2.0" } }, - "node_modules/multihashes/node_modules/buffer": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "node_modules/utf8": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/utf8/-/utf8-3.0.0.tgz", + "integrity": "sha512-E8VjFIQ/TyQgp+TZfS6l8yp/xWppSAHzidGiRrqe4bK4XP9pTRyKFgGJpO3SN7zdX4DeomTrwaseCHovfpFcqQ==", + "dev": true + }, + "node_modules/util": { + "version": "0.12.5", + "resolved": "https://registry.npmjs.org/util/-/util-0.12.5.tgz", + "integrity": "sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==", "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" + "inherits": "^2.0.3", + "is-arguments": "^1.0.4", + "is-generator-function": "^1.0.7", + "is-typed-array": "^1.1.3", + "which-typed-array": "^1.1.2" } }, - "node_modules/multihashes/node_modules/multibase": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/multibase/-/multibase-0.7.0.tgz", - "integrity": "sha512-TW8q03O0f6PNFTQDvh3xxH03c8CjGaaYrjkl9UQPG6rz53TQzzxJVCIWVjzcbN/Q5Y53Zd0IBQBMVktVgNx4Fg==", - "deprecated": "This module has been superseded by the multiformats module", + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" + }, + "node_modules/utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=", "dev": true, - "dependencies": { - "base-x": "^3.0.8", - "buffer": "^5.5.0" + "engines": { + "node": ">= 0.4.0" } }, - "node_modules/mustache": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/mustache/-/mustache-4.2.0.tgz", - "integrity": "sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ==", + "node_modules/uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", + "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", "bin": { - "mustache": "bin/mustache" + "uuid": "bin/uuid" } }, - "node_modules/nan": { - "version": "2.15.0", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.15.0.tgz", - "integrity": "sha512-8ZtvEnA2c5aYCZYd1cvgdnU6cqwixRoYg70xPLWUws5ORTa/lnw+u4amixRS/Ac5U5mQVgp9pnlSUnbNWFaWZQ==" - }, - "node_modules/nano-json-stream-parser": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/nano-json-stream-parser/-/nano-json-stream-parser-0.1.2.tgz", - "integrity": "sha512-9MqxMH/BSJC7dnLsEMPyfN5Dvoo49IsPFYMcHw3Bcfc2kN0lpHRBSzlMSVx4HGyJ7s9B31CyBTVehWJoQ8Ctew==", - "dev": true - }, - "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==", + "node_modules/v8-to-istanbul": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-8.1.0.tgz", + "integrity": "sha512-/PRhfd8aTNp9Ggr62HPzXg2XasNFGy5PBt0Rp04du7/8GNNSgxFL6WBTkgMKSL9bFjH+8kKEG3f37FmxiTqUUA==", "dev": true, - "bin": { - "nanoid": "bin/nanoid.cjs" + "dependencies": { + "@types/istanbul-lib-coverage": "^2.0.1", + "convert-source-map": "^1.6.0", + "source-map": "^0.7.3" }, "engines": { - "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + "node": ">=10.12.0" } }, - "node_modules/napi-macros": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/napi-macros/-/napi-macros-2.0.0.tgz", - "integrity": "sha512-A0xLykHtARfueITVDernsAWdtIMbOJgKgcluwENp3AlsKN/PloyO10HtmoqnFAQAcxPkgZN7wdfPfEd0zNGxbg==", + "node_modules/v8-to-istanbul/node_modules/source-map": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", + "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", "dev": true, - "optional": true - }, - "node_modules/natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", - "dev": true + "engines": { + "node": ">= 8" + } }, - "node_modules/near-api-js": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/near-api-js/-/near-api-js-1.0.0.tgz", - "integrity": "sha512-OYItaQIYlKK27FG5PrqqtkTI8Vv9TEOCi7gXePYigS4o6WofXciAXNjr4sihDJ8Vzi6s7+eEkf3zTNP3042FBw==", - "dependencies": { - "bn.js": "5.2.1", - "borsh": "^0.7.0", - "bs58": "^4.0.0", - "depd": "^2.0.0", - "error-polyfill": "^0.1.3", - "http-errors": "^1.7.2", - "js-sha256": "^0.9.0", - "mustache": "^4.0.0", - "node-fetch": "^2.6.1", - "text-encoding-utf-8": "^1.0.2", - "tweetnacl": "^1.0.1" - } + "node_modules/varint": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/varint/-/varint-5.0.2.tgz", + "integrity": "sha512-lKxKYG6H03yCZUpAGOPOsMcGxd1RHCu1iKvEHYDPmTyq2HueGhD73ssNBqqQWfvYs04G9iUFRvmAVLW20Jw6ow==", + "dev": true }, - "node_modules/near-api-js/node_modules/depd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", - "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "node_modules/vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", + "dev": true, "engines": { "node": ">= 0.8" } }, - "node_modules/negotiator": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", - "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==", + "node_modules/verror": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", + "integrity": "sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==", "dev": true, - "engines": { - "node": ">= 0.6" + "engines": [ + "node >=0.6.0" + ], + "dependencies": { + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" } }, - "node_modules/neo-async": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", - "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", + "node_modules/vlq": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/vlq/-/vlq-2.0.4.tgz", + "integrity": "sha512-aodjPa2wPQFkra1G8CzJBTHXhgk3EVSwxSWXNPr1fgdFLUb8kvLV1iEb6rFgasIsjP82HWI6dsb5Io26DDnasA==" + }, + "node_modules/vscode-oniguruma": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/vscode-oniguruma/-/vscode-oniguruma-1.6.2.tgz", + "integrity": "sha512-KH8+KKov5eS/9WhofZR8M8dMHWN2gTxjMsG4jd04YhpbPR91fUj7rYQ2/XjeHCJWbg7X++ApRIU9NUwM2vTvLA==", "dev": true }, - "node_modules/next-tick": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.1.0.tgz", - "integrity": "sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==", + "node_modules/vscode-textmate": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/vscode-textmate/-/vscode-textmate-5.2.0.tgz", + "integrity": "sha512-Uw5ooOQxRASHgu6C7GVvUxisKXfSgW4oFlO+aa+PAkgmH89O3CXxEEzNRNtHSqtXFTl0nAC1uYj0GMSH27uwtQ==", "dev": true }, - "node_modules/no-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", - "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", + "node_modules/w3c-hr-time": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz", + "integrity": "sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==", + "dev": true, "dependencies": { - "lower-case": "^2.0.2", - "tslib": "^2.0.3" + "browser-process-hrtime": "^1.0.0" } }, - "node_modules/no-case/node_modules/tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" - }, - "node_modules/node-abort-controller": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/node-abort-controller/-/node-abort-controller-3.0.1.tgz", - "integrity": "sha512-/ujIVxthRs+7q6hsdjHMaj8hRG9NuWmwrz+JdRwZ14jdFoKSkm+vDsCbF9PLpnSqjaWQJuTmVtcWHNLr+vrOFw==", + "node_modules/w3c-xmlserializer": { + "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 - }, - "node_modules/node-addon-api": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-2.0.2.tgz", - "integrity": "sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA==" - }, - "node_modules/node-fetch": { - "version": "2.6.7", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", - "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", "dependencies": { - "whatwg-url": "^5.0.0" + "xml-name-validator": "^3.0.0" }, "engines": { - "node": "4.x || >=6.0.0" - }, - "peerDependencies": { - "encoding": "^0.1.0" - }, - "peerDependenciesMeta": { - "encoding": { - "optional": true - } + "node": ">=10" } }, - "node_modules/node-fetch/node_modules/tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" - }, - "node_modules/node-fetch/node_modules/webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" - }, - "node_modules/node-fetch/node_modules/whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "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": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } - }, - "node_modules/node-gyp-build": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.2.3.tgz", - "integrity": "sha512-MN6ZpzmfNCRM+3t57PTJHgHyw/h4OWnZ6mR8P5j/uZtqQr46RRuDE/P+g3n0YR/AiYXeWixZZzaip77gdICfRg==", - "bin": { - "node-gyp-build": "bin.js", - "node-gyp-build-optional": "optional.js", - "node-gyp-build-test": "build-test.js" + "makeerror": "1.0.12" } }, - "node_modules/node-int64": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", - "integrity": "sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs=", - "dev": true - }, - "node_modules/node-interval-tree": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/node-interval-tree/-/node-interval-tree-1.3.3.tgz", - "integrity": "sha512-K9vk96HdTK5fEipJwxSvIIqwTqr4e3HRJeJrNxBSeVMNSC/JWARRaX7etOLOuTmrRMeOI/K5TCJu3aWIwZiNTw==", + "node_modules/web3": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/web3/-/web3-1.8.1.tgz", + "integrity": "sha512-tAqFsQhGv340C9OgRJIuoScN7f7wa1tUvsnnDUMt9YE6J4gcm7TV2Uwv+KERnzvV+xgdeuULYpsioRRNKrUvoQ==", "dev": true, + "hasInstallScript": true, "dependencies": { - "shallowequal": "^1.0.2" + "web3-bzz": "1.8.1", + "web3-core": "1.8.1", + "web3-eth": "1.8.1", + "web3-eth-personal": "1.8.1", + "web3-net": "1.8.1", + "web3-shh": "1.8.1", + "web3-utils": "1.8.1" }, "engines": { - "node": ">= 7.6.0" + "node": ">=8.0.0" } }, - "node_modules/node-modules-regexp": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/node-modules-regexp/-/node-modules-regexp-1.0.0.tgz", - "integrity": "sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA=", + "node_modules/web3-bzz": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/web3-bzz/-/web3-bzz-1.8.1.tgz", + "integrity": "sha512-dJJHS84nvpoxv6ijTMkdUSlRr5beCXNtx4UZcrFLHBva8dT63QEtKdLyDt2AyMJJdVzTCk78uir/6XtVWrdS6w==", "dev": true, + "hasInstallScript": true, + "dependencies": { + "@types/node": "^12.12.6", + "got": "12.1.0", + "swarm-js": "^0.1.40" + }, "engines": { - "node": ">=0.10.0" + "node": ">=8.0.0" } }, - "node_modules/node-releases": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.1.tgz", - "integrity": "sha512-CqyzN6z7Q6aMeF/ktcMVTzhAHCEpf8SOarwpzpf8pNBY2k5/oM34UHldUwp8VKI7uxct2HxSRdJjBaZeESzcxA==", + "node_modules/web3-bzz/node_modules/@types/node": { + "version": "12.20.55", + "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.55.tgz", + "integrity": "sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==", "dev": true }, - "node_modules/nofilter": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/nofilter/-/nofilter-1.0.4.tgz", - "integrity": "sha512-N8lidFp+fCz+TD51+haYdbDGrcBWwuHX40F5+z0qkUjMJ5Tp+rdSuAkMJ9N9eoolDlEVTf6u5icM+cNKkKW2mA==", + "node_modules/web3-core": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/web3-core/-/web3-core-1.8.1.tgz", + "integrity": "sha512-LbRZlJH2N6nS3n3Eo9Y++25IvzMY7WvYnp4NM/Ajhh97dAdglYs6rToQ2DbL2RLvTYmTew4O/y9WmOk4nq9COw==", "dev": true, + "dependencies": { + "@types/bn.js": "^5.1.0", + "@types/node": "^12.12.6", + "bignumber.js": "^9.0.0", + "web3-core-helpers": "1.8.1", + "web3-core-method": "1.8.1", + "web3-core-requestmanager": "1.8.1", + "web3-utils": "1.8.1" + }, "engines": { - "node": ">=8" + "node": ">=8.0.0" } }, - "node_modules/noms": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/noms/-/noms-0.0.0.tgz", - "integrity": "sha512-lNDU9VJaOPxUmXcLb+HQFeUgQQPtMI24Gt6hgfuMHRJgMRHMF/qZ4HJD3GDru4sSw9IQl2jPjAYnQrdIeLbwow==", - "optional": true, + "node_modules/web3-core-helpers": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.8.1.tgz", + "integrity": "sha512-ClzNO6T1S1gifC+BThw0+GTfcsjLEY8T1qUp6Ly2+w4PntAdNtKahxWKApWJ0l9idqot/fFIDXwO3Euu7I0Xqw==", + "dev": true, "dependencies": { - "inherits": "^2.0.1", - "readable-stream": "~1.0.31" + "web3-eth-iban": "1.8.1", + "web3-utils": "1.8.1" + }, + "engines": { + "node": ">=8.0.0" } }, - "node_modules/noms/node_modules/readable-stream": { - "version": "1.0.34", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", - "integrity": "sha512-ok1qVCJuRkNmvebYikljxJA/UEsKwLl2nI1OmaqAu4/UE+h0wKCHok4XkL/gvi39OacXvw59RJUOFUkDib2rHg==", - "optional": true, + "node_modules/web3-core-method": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/web3-core-method/-/web3-core-method-1.8.1.tgz", + "integrity": "sha512-oYGRodktfs86NrnFwaWTbv2S38JnpPslFwSSARwFv4W9cjbGUW3LDeA5MKD/dRY+ssZ5OaekeMsUCLoGhX68yA==", + "dev": true, "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" + "@ethersproject/transactions": "^5.6.2", + "web3-core-helpers": "1.8.1", + "web3-core-promievent": "1.8.1", + "web3-core-subscriptions": "1.8.1", + "web3-utils": "1.8.1" + }, + "engines": { + "node": ">=8.0.0" } }, - "node_modules/noms/node_modules/string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==", - "optional": true - }, - "node_modules/normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/normalize-url": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", - "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==", + "node_modules/web3-core-promievent": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/web3-core-promievent/-/web3-core-promievent-1.8.1.tgz", + "integrity": "sha512-9mxqHlgB0MrZI4oUIRFkuoJMNj3E7btjrMv3sMer/Z9rYR1PfoSc1aAokw4rxKIcAh+ylVtd/acaB2HKB7aRPg==", "dev": true, - "engines": { - "node": ">=10" + "dependencies": { + "eventemitter3": "4.0.4" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "engines": { + "node": ">=8.0.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==", + "node_modules/web3-core-promievent/node_modules/eventemitter3": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.4.tgz", + "integrity": "sha512-rlaVLnVxtxvoyLsQQFBx53YmXHDxRIzzTLbdfxqi4yocpSjAxXwkU0cScM5JgSKMqEhrZpnvQ2D9gjylR0AimQ==", + "dev": true + }, + "node_modules/web3-core-requestmanager": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/web3-core-requestmanager/-/web3-core-requestmanager-1.8.1.tgz", + "integrity": "sha512-x+VC2YPPwZ1khvqA6TA69LvfFCOZXsoUVOxmTx/vIN22PrY9KzKhxcE7pBSiGhmab1jtmRYXUbcQSVpAXqL8cw==", "dev": true, "dependencies": { - "path-key": "^3.0.0" + "util": "^0.12.0", + "web3-core-helpers": "1.8.1", + "web3-providers-http": "1.8.1", + "web3-providers-ipc": "1.8.1", + "web3-providers-ws": "1.8.1" }, "engines": { - "node": ">=8" + "node": ">=8.0.0" } }, - "node_modules/number-to-bn": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/number-to-bn/-/number-to-bn-1.7.0.tgz", - "integrity": "sha1-uzYjWS9+X54AMLGXe9QaDFP+HqA=", + "node_modules/web3-core-subscriptions": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/web3-core-subscriptions/-/web3-core-subscriptions-1.8.1.tgz", + "integrity": "sha512-bmCMq5OeA3E2vZUh8Js1HcJbhwtsE+yeMqGC4oIZB3XsL5SLqyKLB/pU+qUYqQ9o4GdcrFTDPhPg1bgvf7p1Pw==", "dev": true, "dependencies": { - "bn.js": "4.11.6", - "strip-hex-prefix": "1.0.0" + "eventemitter3": "4.0.4", + "web3-core-helpers": "1.8.1" }, "engines": { - "node": ">=6.5.0", - "npm": ">=3" + "node": ">=8.0.0" } }, - "node_modules/number-to-bn/node_modules/bn.js": { - "version": "4.11.6", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz", - "integrity": "sha1-UzRK2xRhehP26N0s4okF0cC6MhU=", - "dev": true - }, - "node_modules/nwsapi": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.0.tgz", - "integrity": "sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ==", + "node_modules/web3-core-subscriptions/node_modules/eventemitter3": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.4.tgz", + "integrity": "sha512-rlaVLnVxtxvoyLsQQFBx53YmXHDxRIzzTLbdfxqi4yocpSjAxXwkU0cScM5JgSKMqEhrZpnvQ2D9gjylR0AimQ==", "dev": true }, - "node_modules/o3": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/o3/-/o3-1.0.3.tgz", - "integrity": "sha512-f+4n+vC6s4ysy7YO7O2gslWZBUu8Qj2i2OUJOvjRxQva7jVjYjB29jrr9NCjmxZQR0gzrOcv1RnqoYOeMs5VRQ==", - "dependencies": { - "capability": "^0.2.5" - } - }, - "node_modules/oauth-sign": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", - "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", + "node_modules/web3-core/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==", "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", - "devOptional": true, - "engines": { - "node": ">=0.10.0" + "dependencies": { + "@types/node": "*" } }, - "node_modules/object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "optional": true, - "engines": { - "node": ">= 0.4" - } + "node_modules/web3-core/node_modules/@types/node": { + "version": "12.20.55", + "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.55.tgz", + "integrity": "sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==", + "dev": true }, - "node_modules/oboe": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/oboe/-/oboe-2.1.5.tgz", - "integrity": "sha512-zRFWiF+FoicxEs3jNI/WYUrVEgA7DeET/InK0XQuudGHRg8iIob3cNPrJTKaz4004uaA9Pbe+Dwa8iluhjLZWA==", + "node_modules/web3-eth": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/web3-eth/-/web3-eth-1.8.1.tgz", + "integrity": "sha512-LgyzbhFqiFRd8M8sBXoFN4ztzOnkeckl3H/9lH5ek7AdoRMhBg7tYpYRP3E5qkhd/q+yiZmcUgy1AF6NHrC1wg==", "dev": true, "dependencies": { - "http-https": "^1.0.0" + "web3-core": "1.8.1", + "web3-core-helpers": "1.8.1", + "web3-core-method": "1.8.1", + "web3-core-subscriptions": "1.8.1", + "web3-eth-abi": "1.8.1", + "web3-eth-accounts": "1.8.1", + "web3-eth-contract": "1.8.1", + "web3-eth-ens": "1.8.1", + "web3-eth-iban": "1.8.1", + "web3-eth-personal": "1.8.1", + "web3-net": "1.8.1", + "web3-utils": "1.8.1" + }, + "engines": { + "node": ">=8.0.0" } }, - "node_modules/on-finished": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", - "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", + "node_modules/web3-eth-abi": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/web3-eth-abi/-/web3-eth-abi-1.8.1.tgz", + "integrity": "sha512-0mZvCRTIG0UhDhJwNQJgJxu4b4DyIpuMA0GTfqxqeuqzX4Q/ZvmoNurw0ExTfXaGPP82UUmmdkRi6FdZOx+C6w==", "dev": true, "dependencies": { - "ee-first": "1.1.1" + "@ethersproject/abi": "^5.6.3", + "web3-utils": "1.8.1" }, "engines": { - "node": ">= 0.8" - } - }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "dependencies": { - "wrappy": "1" + "node": ">=8.0.0" } }, - "node_modules/onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "node_modules/web3-eth-accounts": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/web3-eth-accounts/-/web3-eth-accounts-1.8.1.tgz", + "integrity": "sha512-mgzxSYgN54/NsOFBO1Fq1KkXp1S5KlBvI/DlgvajU72rupoFMq6Cu6Yp9GUaZ/w2ij9PzEJuFJk174XwtfMCmg==", "dev": true, "dependencies": { - "mimic-fn": "^2.1.0" + "@ethereumjs/common": "2.5.0", + "@ethereumjs/tx": "3.3.2", + "crypto-browserify": "3.12.0", + "eth-lib": "0.2.8", + "ethereumjs-util": "^7.0.10", + "scrypt-js": "^3.0.1", + "uuid": "^9.0.0", + "web3-core": "1.8.1", + "web3-core-helpers": "1.8.1", + "web3-core-method": "1.8.1", + "web3-utils": "1.8.1" }, "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=8.0.0" } }, - "node_modules/optimism": { - "version": "0.16.1", - "resolved": "https://registry.npmjs.org/optimism/-/optimism-0.16.1.tgz", - "integrity": "sha512-64i+Uw3otrndfq5kaoGNoY7pvOhSsjFEN4bdEFh80MWVk/dbgJfMv7VFDeCT8LxNAlEVhQmdVEbfE7X2nWNIIg==", - "optional": true, + "node_modules/web3-eth-accounts/node_modules/@ethereumjs/common": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@ethereumjs/common/-/common-2.5.0.tgz", + "integrity": "sha512-DEHjW6e38o+JmB/NO3GZBpW4lpaiBpkFgXF6jLcJ6gETBYpEyaA5nTimsWBUJR3Vmtm/didUEbNjajskugZORg==", + "dev": true, "dependencies": { - "@wry/context": "^0.6.0", - "@wry/trie": "^0.3.0" + "crc-32": "^1.2.0", + "ethereumjs-util": "^7.1.1" } }, - "node_modules/optionator": { - "version": "0.8.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", - "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", + "node_modules/web3-eth-accounts/node_modules/@ethereumjs/tx": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/@ethereumjs/tx/-/tx-3.3.2.tgz", + "integrity": "sha512-6AaJhwg4ucmwTvw/1qLaZUX5miWrwZ4nLOUsKyb/HtzS3BMw/CasKhdi1ims9mBKeK9sOJCH4qGKOBGyJCeeog==", "dev": true, "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" - }, - "engines": { - "node": ">= 0.8.0" + "@ethereumjs/common": "^2.5.0", + "ethereumjs-util": "^7.1.2" } }, - "node_modules/original-require": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/original-require/-/original-require-1.0.1.tgz", - "integrity": "sha512-5vdKMbE58WaE61uVD+PKyh8xdM398UnjPBLotW2sjG5MzHARwta/+NtMBCBA0t2WQblGYBvq5vsiZpWokwno+A==", + "node_modules/web3-eth-accounts/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", "dev": true }, - "node_modules/p-cancelable": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-3.0.0.tgz", - "integrity": "sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw==", + "node_modules/web3-eth-accounts/node_modules/eth-lib": { + "version": "0.2.8", + "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.8.tgz", + "integrity": "sha512-ArJ7x1WcWOlSpzdoTBX8vkwlkSQ85CjjifSZtV4co64vWxSV8geWfPI9x4SVYu3DSxnX4yWFVTtGL+j9DUFLNw==", "dev": true, - "engines": { - "node": ">=12.20" + "dependencies": { + "bn.js": "^4.11.6", + "elliptic": "^6.4.0", + "xhr-request-promise": "^0.1.2" } }, - "node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "node_modules/web3-eth-accounts/node_modules/uuid": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.0.tgz", + "integrity": "sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg==", "dev": true, - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "bin": { + "uuid": "dist/bin/uuid" } }, - "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==", + "node_modules/web3-eth-contract": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/web3-eth-contract/-/web3-eth-contract-1.8.1.tgz", + "integrity": "sha512-1wphnl+/xwCE2io44JKnN+ti3oa47BKRiVzvWd42icwRbcpFfRxH9QH+aQX3u8VZIISNH7dAkTWpGIIJgGFTmg==", "dev": true, "dependencies": { - "p-limit": "^2.2.0" + "@types/bn.js": "^5.1.0", + "web3-core": "1.8.1", + "web3-core-helpers": "1.8.1", + "web3-core-method": "1.8.1", + "web3-core-promievent": "1.8.1", + "web3-core-subscriptions": "1.8.1", + "web3-eth-abi": "1.8.1", + "web3-utils": "1.8.1" }, "engines": { - "node": ">=8" + "node": ">=8.0.0" } }, - "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==", + "node_modules/web3-eth-contract/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==", "dev": true, - "engines": { - "node": ">=6" + "dependencies": { + "@types/node": "*" } }, - "node_modules/pako": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/pako/-/pako-2.0.4.tgz", - "integrity": "sha512-v8tweI900AUkZN6heMU/4Uy4cXRc2AYNRggVmTR+dEncawDJgCdLMximOVA2p4qO57WMynangsfGRb5WD6L1Bg==" - }, - "node_modules/param-case": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/param-case/-/param-case-2.1.1.tgz", - "integrity": "sha512-eQE845L6ot89sk2N8liD8HAuH4ca6Vvr7VWAWwt7+kvvG5aBcPmmphQ68JsEG2qa9n1TykS2DLeMt363AAH8/w==", + "node_modules/web3-eth-ens": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/web3-eth-ens/-/web3-eth-ens-1.8.1.tgz", + "integrity": "sha512-FT8xTI9uN8RxeBQa/W8pLa2aoFh4+EE34w7W2271LICKzla1dtLyb6XSdn48vsUcPmhWsTVk9mO9RTU0l4LGQQ==", "dev": true, "dependencies": { - "no-case": "^2.2.0" + "content-hash": "^2.5.2", + "eth-ens-namehash": "2.0.8", + "web3-core": "1.8.1", + "web3-core-helpers": "1.8.1", + "web3-core-promievent": "1.8.1", + "web3-eth-abi": "1.8.1", + "web3-eth-contract": "1.8.1", + "web3-utils": "1.8.1" + }, + "engines": { + "node": ">=8.0.0" } }, - "node_modules/param-case/node_modules/lower-case": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz", - "integrity": "sha512-2Fgx1Ycm599x+WGpIYwJOvsjmXFzTSc34IwDWALRA/8AopUKAVPwfJ+h5+f85BCp0PWmmJcWzEpxOpoXycMpdA==", - "dev": true - }, - "node_modules/param-case/node_modules/no-case": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/no-case/-/no-case-2.3.2.tgz", - "integrity": "sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ==", + "node_modules/web3-eth-iban": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/web3-eth-iban/-/web3-eth-iban-1.8.1.tgz", + "integrity": "sha512-DomoQBfvIdtM08RyMGkMVBOH0vpOIxSSQ+jukWk/EkMLGMWJtXw/K2c2uHAeq3L/VPWNB7zXV2DUEGV/lNE2Dg==", "dev": true, "dependencies": { - "lower-case": "^1.1.1" + "bn.js": "^5.2.1", + "web3-utils": "1.8.1" + }, + "engines": { + "node": ">=8.0.0" } }, - "node_modules/parse-asn1": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.6.tgz", - "integrity": "sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw==", + "node_modules/web3-eth-personal": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/web3-eth-personal/-/web3-eth-personal-1.8.1.tgz", + "integrity": "sha512-myIYMvj7SDIoV9vE5BkVdon3pya1WinaXItugoii2VoTcQNPOtBxmYVH+XS5ErzCJlnxzphpQrkywyY64bbbCA==", "dev": true, "dependencies": { - "asn1.js": "^5.2.0", - "browserify-aes": "^1.0.0", - "evp_bytestokey": "^1.0.0", - "pbkdf2": "^3.0.3", - "safe-buffer": "^5.1.1" + "@types/node": "^12.12.6", + "web3-core": "1.8.1", + "web3-core-helpers": "1.8.1", + "web3-core-method": "1.8.1", + "web3-net": "1.8.1", + "web3-utils": "1.8.1" + }, + "engines": { + "node": ">=8.0.0" } }, - "node_modules/parse-headers": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/parse-headers/-/parse-headers-2.0.5.tgz", - "integrity": "sha512-ft3iAoLOB/MlwbNXgzy43SWGP6sQki2jQvAyBg/zDFAgr9bfNWZIUj42Kw2eJIl8kEi4PbgE6U1Zau/HwI75HA==", + "node_modules/web3-eth-personal/node_modules/@types/node": { + "version": "12.20.55", + "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.55.tgz", + "integrity": "sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==", "dev": true }, - "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/web3-net": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/web3-net/-/web3-net-1.8.1.tgz", + "integrity": "sha512-LyEJAwogdFo0UAXZqoSJGFjopdt+kLw0P00FSZn2yszbgcoI7EwC+nXiOsEe12xz4LqpYLOtbR7+gxgiTVjjHQ==", + "dev": true, + "dependencies": { + "web3-core": "1.8.1", + "web3-core-method": "1.8.1", + "web3-utils": "1.8.1" + }, + "engines": { + "node": ">=8.0.0" + } }, - "node_modules/parseurl": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "node_modules/web3-providers-http": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/web3-providers-http/-/web3-providers-http-1.8.1.tgz", + "integrity": "sha512-1Zyts4O9W/UNEPkp+jyL19Jc3D15S4yp8xuLTjVhcUEAlHo24NDWEKxtZGUuHk4HrKL2gp8OlsDbJ7MM+ESDgg==", "dev": true, + "dependencies": { + "abortcontroller-polyfill": "^1.7.3", + "cross-fetch": "^3.1.4", + "es6-promise": "^4.2.8", + "web3-core-helpers": "1.8.1" + }, "engines": { - "node": ">= 0.8" + "node": ">=8.0.0" } }, - "node_modules/pascal-case": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-2.0.1.tgz", - "integrity": "sha512-qjS4s8rBOJa2Xm0jmxXiyh1+OFf6ekCWOvUaRgAQSktzlTbMotS0nmG9gyYAybCWBcuP4fsBeRCKNwGBnMe2OQ==", + "node_modules/web3-providers-ipc": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/web3-providers-ipc/-/web3-providers-ipc-1.8.1.tgz", + "integrity": "sha512-nw/W5nclvi+P2z2dYkLWReKLnocStflWqFl+qjtv0xn3MrUTyXMzSF0+61i77+16xFsTgzo4wS/NWIOVkR0EFA==", "dev": true, "dependencies": { - "camel-case": "^3.0.0", - "upper-case-first": "^1.1.0" + "oboe": "2.1.5", + "web3-core-helpers": "1.8.1" + }, + "engines": { + "node": ">=8.0.0" } }, - "node_modules/path-case": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/path-case/-/path-case-2.1.1.tgz", - "integrity": "sha512-Ou0N05MioItesaLr9q8TtHVWmJ6fxWdqKB2RohFmNWVyJ+2zeKIeDNWAN6B/Pe7wpzWChhZX6nONYmOnMeJQ/Q==", + "node_modules/web3-providers-ws": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/web3-providers-ws/-/web3-providers-ws-1.8.1.tgz", + "integrity": "sha512-TNefIDAMpdx57+YdWpYZ/xdofS0P+FfKaDYXhn24ie/tH9G+AB+UBSOKnjN0KSadcRSCMBwGPRiEmNHPavZdsA==", "dev": true, "dependencies": { - "no-case": "^2.2.0" + "eventemitter3": "4.0.4", + "web3-core-helpers": "1.8.1", + "websocket": "^1.0.32" + }, + "engines": { + "node": ">=8.0.0" } }, - "node_modules/path-case/node_modules/lower-case": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz", - "integrity": "sha512-2Fgx1Ycm599x+WGpIYwJOvsjmXFzTSc34IwDWALRA/8AopUKAVPwfJ+h5+f85BCp0PWmmJcWzEpxOpoXycMpdA==", + "node_modules/web3-providers-ws/node_modules/eventemitter3": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.4.tgz", + "integrity": "sha512-rlaVLnVxtxvoyLsQQFBx53YmXHDxRIzzTLbdfxqi4yocpSjAxXwkU0cScM5JgSKMqEhrZpnvQ2D9gjylR0AimQ==", "dev": true }, - "node_modules/path-case/node_modules/no-case": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/no-case/-/no-case-2.3.2.tgz", - "integrity": "sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ==", + "node_modules/web3-shh": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/web3-shh/-/web3-shh-1.8.1.tgz", + "integrity": "sha512-sqHgarnfcY2Qt3PYS4R6YveHrDy7hmL09yeLLHHCI+RKirmjLVqV0rc5LJWUtlbYI+kDoa5gbgde489M9ZAC0g==", "dev": true, + "hasInstallScript": true, "dependencies": { - "lower-case": "^1.1.1" + "web3-core": "1.8.1", + "web3-core-method": "1.8.1", + "web3-core-subscriptions": "1.8.1", + "web3-net": "1.8.1" + }, + "engines": { + "node": ">=8.0.0" } }, - "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==", + "node_modules/web3-utils": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.8.1.tgz", + "integrity": "sha512-LgnM9p6V7rHHUGfpMZod+NST8cRfGzJ1BTXAyNo7A9cJX9LczBfSRxJp+U/GInYe9mby40t3v22AJdlELibnsQ==", "dev": true, + "dependencies": { + "bn.js": "^5.2.1", + "ethereum-bloom-filters": "^1.0.6", + "ethereumjs-util": "^7.1.0", + "ethjs-unit": "0.1.6", + "number-to-bn": "1.7.0", + "randombytes": "^2.1.0", + "utf8": "3.0.0" + }, "engines": { - "node": ">=8" + "node": ">=8.0.0" } }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "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, "engines": { - "node": ">=0.10.0" + "node": ">=10.4" } }, - "node_modules/path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "node_modules/websocket": { + "version": "1.0.34", + "resolved": "https://registry.npmjs.org/websocket/-/websocket-1.0.34.tgz", + "integrity": "sha512-PRDso2sGwF6kM75QykIesBijKSVceR6jL2G8NGYyq2XrItNC2P5/qL5XeR056GhA+Ly7JMFvJb9I312mJfmqnQ==", "dev": true, + "dependencies": { + "bufferutil": "^4.0.1", + "debug": "^2.2.0", + "es5-ext": "^0.10.50", + "typedarray-to-buffer": "^3.1.5", + "utf-8-validate": "^5.0.2", + "yaeti": "^0.0.6" + }, "engines": { - "node": ">=8" + "node": ">=4.0.0" } }, - "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==", - "devOptional": true + "node_modules/whatwg-encoding": { + "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, + "dependencies": { + "iconv-lite": "0.4.24" + } }, - "node_modules/path-to-regexp": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", - "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=", + "node_modules/whatwg-mimetype": { + "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 }, - "node_modules/pbkdf2": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz", - "integrity": "sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==", + "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, "dependencies": { - "create-hash": "^1.1.2", - "create-hmac": "^1.1.4", - "ripemd160": "^2.0.1", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" + "lodash": "^4.7.0", + "tr46": "^2.1.0", + "webidl-conversions": "^6.1.0" }, "engines": { - "node": ">=0.12" + "node": ">=10" } }, - "node_modules/performance-now": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==", - "dev": true - }, - "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 - }, - "node_modules/picomatch": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz", - "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==", + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", "dev": true, - "engines": { - "node": ">=8.6" + "dependencies": { + "isexe": "^2.0.0" }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" } }, - "node_modules/pirates": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.1.tgz", - "integrity": "sha512-WuNqLTbMI3tmfef2TKxlQmAiLHKtFhlsCZnPIpuv2Ow0RDVO8lfy1Opf4NUzlMXLjPl+Men7AuVdX6TA+s+uGA==", + "node_modules/which-typed-array": { + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.9.tgz", + "integrity": "sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA==", "dev": true, "dependencies": { - "node-modules-regexp": "^1.0.0" + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.0", + "is-typed-array": "^1.1.10" }, "engines": { - "node": ">= 6" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "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, + "node_modules/wif": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/wif/-/wif-2.0.6.tgz", + "integrity": "sha1-CNP1IFbGZnkplyb63g1DKudLRwQ=", "dependencies": { - "find-up": "^4.0.0" - }, - "engines": { - "node": ">=8" + "bs58check": "<3.0.0" } }, - "node_modules/pkg-up": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-3.1.0.tgz", - "integrity": "sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==", + "node_modules/word-wrap": { + "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, - "dependencies": { - "find-up": "^3.0.0" - }, "engines": { - "node": ">=8" + "node": ">=0.10.0" } }, - "node_modules/pkg-up/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==", - "dev": true, - "optional": true, + "node_modules/wordwrap": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", + "integrity": "sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==", + "dev": true + }, + "node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "devOptional": true, "dependencies": { - "locate-path": "^3.0.0" + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" }, "engines": { - "node": ">=6" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, - "node_modules/pkg-up/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==", - "dev": true, - "optional": true, + "node_modules/wrap-ansi/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "devOptional": true, "dependencies": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" + "color-convert": "^2.0.1" }, "engines": { - "node": ">=6" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/pkg-up/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==", - "dev": true, - "optional": true, + "node_modules/wrap-ansi/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "devOptional": true, "dependencies": { - "p-limit": "^2.0.0" + "color-name": "~1.1.4" }, "engines": { - "node": ">=6" + "node": ">=7.0.0" } }, - "node_modules/pkg-up/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==", - "dev": true, - "optional": true, - "engines": { - "node": ">=4" - } + "node_modules/wrap-ansi/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "devOptional": true }, - "node_modules/pluralize": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-8.0.0.tgz", - "integrity": "sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==", - "dev": true, - "optional": true, - "engines": { - "node": ">=4" - } + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" }, - "node_modules/pouchdb": { - "version": "7.3.0", - "resolved": "https://registry.npmjs.org/pouchdb/-/pouchdb-7.3.0.tgz", - "integrity": "sha512-OwsIQGXsfx3TrU1pLruj6PGSwFH+h5k4hGNxFkZ76Um7/ZI8F5TzUHFrpldVVIhfXYi2vP31q0q7ot1FSLFYOw==", - "dev": true, - "optional": true, - "dependencies": { - "abort-controller": "3.0.0", - "argsarray": "0.0.1", - "buffer-from": "1.1.2", - "clone-buffer": "1.0.0", - "double-ended-queue": "2.1.0-0", - "fetch-cookie": "0.11.0", - "immediate": "3.3.0", - "inherits": "2.0.4", - "level": "6.0.1", - "level-codec": "9.0.2", - "level-write-stream": "1.0.0", - "leveldown": "5.6.0", - "levelup": "4.4.0", - "ltgt": "2.2.1", - "node-fetch": "2.6.7", - "readable-stream": "1.1.14", - "spark-md5": "3.0.2", - "through2": "3.0.2", - "uuid": "8.3.2", - "vuvuzela": "1.0.3" - } - }, - "node_modules/pouchdb-abstract-mapreduce": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/pouchdb-abstract-mapreduce/-/pouchdb-abstract-mapreduce-7.3.1.tgz", - "integrity": "sha512-0zKXVFBvrfc1KnN0ggrB762JDmZnUpePHywo9Bq3Jy+L1FnoG7fXM5luFfvv5/T0gEw+ZTIwoocZECMnESBI9w==", + "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, - "optional": true, "dependencies": { - "pouchdb-binary-utils": "7.3.1", - "pouchdb-collate": "7.3.1", - "pouchdb-collections": "7.3.1", - "pouchdb-errors": "7.3.1", - "pouchdb-fetch": "7.3.1", - "pouchdb-mapreduce-utils": "7.3.1", - "pouchdb-md5": "7.3.1", - "pouchdb-utils": "7.3.1" + "imurmurhash": "^0.1.4", + "is-typedarray": "^1.0.0", + "signal-exit": "^3.0.2", + "typedarray-to-buffer": "^3.1.5" } }, - "node_modules/pouchdb-adapter-leveldb-core": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/pouchdb-adapter-leveldb-core/-/pouchdb-adapter-leveldb-core-7.3.1.tgz", - "integrity": "sha512-mxShHlqLMPz2gChrgtA9okV1ogFmQrRAoM/O4EN0CrQWPLXqYtpL1f7sI2asIvFe7SmpnvbLx7kkZyFmLTfwjA==", - "dev": true, - "optional": true, - "dependencies": { - "argsarray": "0.0.1", - "buffer-from": "1.1.2", - "double-ended-queue": "2.1.0-0", - "levelup": "4.4.0", - "pouchdb-adapter-utils": "7.3.1", - "pouchdb-binary-utils": "7.3.1", - "pouchdb-collections": "7.3.1", - "pouchdb-errors": "7.3.1", - "pouchdb-json": "7.3.1", - "pouchdb-md5": "7.3.1", - "pouchdb-merge": "7.3.1", - "pouchdb-utils": "7.3.1", - "sublevel-pouchdb": "7.3.1", - "through2": "3.0.2" - } - }, - "node_modules/pouchdb-adapter-leveldb-core/node_modules/through2": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/through2/-/through2-3.0.2.tgz", - "integrity": "sha512-enaDQ4MUyP2W6ZyT6EsMzqBPZaM/avg8iuo+l2d3QCs0J+6RaqkHV/2/lOwDTueBHeJ/2LG9lrLW3d5rWPucuQ==", - "dev": true, - "optional": true, - "dependencies": { - "inherits": "^2.0.4", - "readable-stream": "2 || 3" + "node_modules/ws": { + "version": "7.5.9", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz", + "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==", + "engines": { + "node": ">=8.3.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } } }, - "node_modules/pouchdb-adapter-memory": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/pouchdb-adapter-memory/-/pouchdb-adapter-memory-7.3.1.tgz", - "integrity": "sha512-iHdWGJAHONqQv0we3Oi1MYen69ZS8McLW9wUyaAYcWTJnAIIAr2ZM0/TeTDVSHfMUwYqEYk7X8jRtJZEMwLnwg==", + "node_modules/xhr": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/xhr/-/xhr-2.6.0.tgz", + "integrity": "sha512-/eCGLb5rxjx5e3mF1A7s+pLlR6CGyqWN91fv1JgER5mVWg1MZmlhBvy9kjcsOdRk8RrIujotWyJamfyrp+WIcA==", "dev": true, - "optional": true, "dependencies": { - "memdown": "1.4.1", - "pouchdb-adapter-leveldb-core": "7.3.1", - "pouchdb-utils": "7.3.1" + "global": "~4.4.0", + "is-function": "^1.0.1", + "parse-headers": "^2.0.0", + "xtend": "^4.0.0" } }, - "node_modules/pouchdb-adapter-utils": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/pouchdb-adapter-utils/-/pouchdb-adapter-utils-7.3.1.tgz", - "integrity": "sha512-uKLG6dClwTs/sLIJ4WkLAi9wlnDBpOnfyhpeAgOjlOGN/XLz5nKHrA4UJRnURDyc+uv79S9r/Unc4hVpmbSPUw==", + "node_modules/xhr-request": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/xhr-request/-/xhr-request-1.1.0.tgz", + "integrity": "sha512-Y7qzEaR3FDtL3fP30k9wO/e+FBnBByZeybKOhASsGP30NIkRAAkKD/sCnLvgEfAIEC1rcmK7YG8f4oEnIrrWzA==", "dev": true, - "optional": true, "dependencies": { - "pouchdb-binary-utils": "7.3.1", - "pouchdb-collections": "7.3.1", - "pouchdb-errors": "7.3.1", - "pouchdb-md5": "7.3.1", - "pouchdb-merge": "7.3.1", - "pouchdb-utils": "7.3.1" + "buffer-to-arraybuffer": "^0.0.5", + "object-assign": "^4.1.1", + "query-string": "^5.0.1", + "simple-get": "^2.7.0", + "timed-out": "^4.0.1", + "url-set-query": "^1.0.0", + "xhr": "^2.0.4" } }, - "node_modules/pouchdb-binary-utils": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/pouchdb-binary-utils/-/pouchdb-binary-utils-7.3.1.tgz", - "integrity": "sha512-crZJNfAEOnUoRk977Qtmk4cxEv6sNKllQ6vDDKgQrQLFjMUXma35EHzNyIJr1s76J77Q4sqKQAmxz9Y40yHGtw==", + "node_modules/xhr-request-promise": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/xhr-request-promise/-/xhr-request-promise-0.1.3.tgz", + "integrity": "sha512-YUBytBsuwgitWtdRzXDDkWAXzhdGB8bYm0sSzMPZT7Z2MBjMSTHFsyCT1yCRATY+XC69DUrQraRAEgcoCRaIPg==", "dev": true, - "optional": true, "dependencies": { - "buffer-from": "1.1.2" + "xhr-request": "^1.1.0" } }, - "node_modules/pouchdb-collate": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/pouchdb-collate/-/pouchdb-collate-7.3.1.tgz", - "integrity": "sha512-o4gyGqDMLMSNzf6EDTr3eHaH/JRMoqRhdc+eV+oA8u00nTBtr9wD+jypVe2LbgKLJ4NWqx2qVkXiTiQdUFtsLQ==", - "dev": true, - "optional": true - }, - "node_modules/pouchdb-collections": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/pouchdb-collections/-/pouchdb-collections-7.3.1.tgz", - "integrity": "sha512-yUyDqR+OJmtwgExOSJegpBJXDLAEC84TWnbAYycyh+DZoA51Yw0+XVQF5Vh8Ii90/Ut2xo88fmrmp0t6kqom8w==", - "dev": true, - "optional": true + "node_modules/xml-name-validator": { + "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 }, - "node_modules/pouchdb-debug": { - "version": "7.2.1", - "resolved": "https://registry.npmjs.org/pouchdb-debug/-/pouchdb-debug-7.2.1.tgz", - "integrity": "sha512-eP3ht/AKavLF2RjTzBM6S9gaI2/apcW6xvaKRQhEdOfiANqerFuksFqHCal3aikVQuDO+cB/cw+a4RyJn/glBw==", - "dev": true, - "optional": true, - "dependencies": { - "debug": "3.1.0" - } + "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 }, - "node_modules/pouchdb-debug/node_modules/debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "dev": true, + "node_modules/xstream": { + "version": "11.14.0", + "resolved": "https://registry.npmjs.org/xstream/-/xstream-11.14.0.tgz", + "integrity": "sha512-1bLb+kKKtKPbgTK6i/BaoAn03g47PpFstlbe1BA+y3pNS/LfvcaghS5BFf9+EE1J+KwSQsEpfJvFN5GqFtiNmw==", "optional": true, "dependencies": { - "ms": "2.0.0" + "globalthis": "^1.0.1", + "symbol-observable": "^2.0.3" } }, - "node_modules/pouchdb-errors": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/pouchdb-errors/-/pouchdb-errors-7.3.1.tgz", - "integrity": "sha512-Zktz4gnXEUcZcty8FmyvtYUYsHskoST05m6H5/E2gg/0mCfEXq/XeyyLkZHaZmqD0ZPS9yNmASB1VaFWEKEaDw==", - "dev": true, + "node_modules/xstream/node_modules/symbol-observable": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-2.0.3.tgz", + "integrity": "sha512-sQV7phh2WCYAn81oAkakC5qjq2Ml0g8ozqz03wOGnx9dDlG1de6yrF+0RAzSJD8fPUow3PTSMf2SAbOGxb93BA==", "optional": true, - "dependencies": { - "inherits": "2.0.4" + "engines": { + "node": ">=0.10" } }, - "node_modules/pouchdb-fetch": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/pouchdb-fetch/-/pouchdb-fetch-7.3.1.tgz", - "integrity": "sha512-205xAtvdHRPQ4fp1h9+RmT9oQabo9gafuPmWsS9aEl3ER54WbY8Vaj1JHZGbU4KtMTYvW7H5088zLS7Nrusuag==", - "dev": true, - "optional": true, - "dependencies": { - "abort-controller": "3.0.0", - "fetch-cookie": "0.11.0", - "node-fetch": "2.6.7" + "node_modules/xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "devOptional": true, + "engines": { + "node": ">=0.4" } }, - "node_modules/pouchdb-find": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/pouchdb-find/-/pouchdb-find-7.3.1.tgz", - "integrity": "sha512-AeqUfAVY1c7IFaY36BRT0vIz9r4VTKq/YOWTmiqndOZUQ/pDGxyO2fNFal6NN3PyYww0JijlD377cPvhnrhJVA==", - "dev": true, - "optional": true, - "dependencies": { - "pouchdb-abstract-mapreduce": "7.3.1", - "pouchdb-collate": "7.3.1", - "pouchdb-errors": "7.3.1", - "pouchdb-fetch": "7.3.1", - "pouchdb-md5": "7.3.1", - "pouchdb-selector-core": "7.3.1", - "pouchdb-utils": "7.3.1" + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "devOptional": true, + "engines": { + "node": ">=10" } }, - "node_modules/pouchdb-json": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/pouchdb-json/-/pouchdb-json-7.3.1.tgz", - "integrity": "sha512-AyOKsmc85/GtHjMZyEacqzja8qLVfycS1hh1oskR+Bm5PIITX52Fb8zyi0hEetV6VC0yuGbn0RqiLjJxQePeqQ==", + "node_modules/yaeti": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/yaeti/-/yaeti-0.0.6.tgz", + "integrity": "sha512-MvQa//+KcZCUkBTIC9blM+CU9J2GzuTytsOUwf2lidtvkx/6gnEp1QvJv34t9vdjhFmha/mUiNDbN0D0mJWdug==", "dev": true, - "optional": true, - "dependencies": { - "vuvuzela": "1.0.3" + "engines": { + "node": ">=0.10.32" } }, - "node_modules/pouchdb-mapreduce-utils": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/pouchdb-mapreduce-utils/-/pouchdb-mapreduce-utils-7.3.1.tgz", - "integrity": "sha512-oUMcq82+4pTGQ6dtrhgORHOVHZSr6w/5tFIUGlv7RABIDvJarL4snMawADjlpiEwPdiQ/ESG8Fqt8cxqvqsIgg==", - "dev": true, - "optional": true, + "node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "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==", + "devOptional": true, "dependencies": { - "argsarray": "0.0.1", - "inherits": "2.0.4", - "pouchdb-collections": "7.3.1", - "pouchdb-utils": "7.3.1" + "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/pouchdb-md5": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/pouchdb-md5/-/pouchdb-md5-7.3.1.tgz", - "integrity": "sha512-aDV8ui/mprnL3xmt0gT/81DFtTtJiKyn+OxIAbwKPMfz/rDFdPYvF0BmDC9QxMMzGfkV+JJUjU6at0PPs2mRLg==", - "dev": true, - "optional": true, - "dependencies": { - "pouchdb-binary-utils": "7.3.1", - "spark-md5": "3.0.2" + "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==", + "devOptional": true, + "engines": { + "node": ">=10" } }, - "node_modules/pouchdb-merge": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/pouchdb-merge/-/pouchdb-merge-7.3.1.tgz", - "integrity": "sha512-FeK3r35mKimokf2PQ2tUI523QWyZ4lYZ0Yd75FfSch/SPY6wIokz5XBZZ6PHdu5aOJsEKzoLUxr8CpSg9DhcAw==", - "dev": true, + "node_modules/zen-observable": { + "version": "0.8.15", + "resolved": "https://registry.npmjs.org/zen-observable/-/zen-observable-0.8.15.tgz", + "integrity": "sha512-PQ2PC7R9rslx84ndNBZB/Dkv8V8fZEpk83RLgXtYd0fwUgEjseMn1Dgajh2x6S8QbZAFa9p2qVCEuYZNgve0dQ==", "optional": true }, - "node_modules/pouchdb-selector-core": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/pouchdb-selector-core/-/pouchdb-selector-core-7.3.1.tgz", - "integrity": "sha512-HBX+nNGXcaL9z0uNpwSMRq2GNZd3EZXW+fe9rJHS0hvJohjZL7aRJLoaXfEdHPRTNW+CpjM3Rny60eGekQdI/w==", - "dev": true, + "node_modules/zen-observable-ts": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/zen-observable-ts/-/zen-observable-ts-1.2.5.tgz", + "integrity": "sha512-QZWQekv6iB72Naeake9hS1KxHlotfRpe+WGNbNx5/ta+R3DNjVO2bswf63gXlWDcs+EMd7XY8HfVQyP1X6T4Zg==", "optional": true, "dependencies": { - "pouchdb-collate": "7.3.1", - "pouchdb-utils": "7.3.1" + "zen-observable": "0.8.15" } - }, - "node_modules/pouchdb-utils": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/pouchdb-utils/-/pouchdb-utils-7.3.1.tgz", - "integrity": "sha512-R3hHBo1zTdTu/NFs3iqkcaQAPwhIH0gMIdfVKd5lbDYlmP26rCG5pdS+v7NuoSSFLJ4xxnaGV+Gjf4duYsJ8wQ==", - "dev": true, + } + }, + "dependencies": { + "@apollo/client": { + "version": "3.6.9", + "resolved": "https://registry.npmjs.org/@apollo/client/-/client-3.6.9.tgz", + "integrity": "sha512-Y1yu8qa2YeaCUBVuw08x8NHenFi0sw2I3KCu7Kw9mDSu86HmmtHJkCAifKVrN2iPgDTW/BbP3EpSV8/EQCcxZA==", "optional": true, + "requires": { + "@graphql-typed-document-node/core": "^3.1.1", + "@wry/context": "^0.6.0", + "@wry/equality": "^0.5.0", + "@wry/trie": "^0.3.0", + "graphql-tag": "^2.12.6", + "hoist-non-react-statics": "^3.3.2", + "optimism": "^0.16.1", + "prop-types": "^15.7.2", + "symbol-observable": "^4.0.0", + "ts-invariant": "^0.10.3", + "tslib": "^2.3.0", + "zen-observable-ts": "^1.2.5" + }, "dependencies": { - "argsarray": "0.0.1", - "clone-buffer": "1.0.0", - "immediate": "3.3.0", - "inherits": "2.0.4", - "pouchdb-collections": "7.3.1", - "pouchdb-errors": "7.3.1", - "pouchdb-md5": "7.3.1", - "uuid": "8.3.2" + "tslib": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", + "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", + "optional": true + } } }, - "node_modules/pouchdb-utils/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==", + "@babel/code-frame": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.0.tgz", + "integrity": "sha512-IF4EOMEV+bfYwOmNxGzSnjR2EmQod7f1UXOpZM3l4i4o4QNwzjtJAu/HxdjHq0aYBvdqMuQEY1eg0nqW9ZPORA==", "dev": true, - "optional": true, - "bin": { - "uuid": "dist/bin/uuid" + "requires": { + "@babel/highlight": "^7.16.0" } }, - "node_modules/pouchdb/node_modules/readable-stream": { - "version": "1.1.14", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", - "integrity": "sha512-+MeVjFf4L44XUkhM1eYbD8fyEsxcV81pqMSR5gblfcLCHfZvbrqy4/qYHE+/R5HoBUT11WV5O08Cr1n3YXkWVQ==", + "@babel/compat-data": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.16.0.tgz", + "integrity": "sha512-DGjt2QZse5SGd9nfOSqO4WLJ8NN/oHkijbXbPrxuoJO3oIPJL3TciZs9FX+cOHNiY9E9l0opL8g7BmLe3T+9ew==", + "dev": true + }, + "@babel/core": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.16.0.tgz", + "integrity": "sha512-mYZEvshBRHGsIAiyH5PzCFTCfbWfoYbO/jcSdXQSUQu1/pW0xDZAUP7KEc32heqWTAfAHhV9j1vH8Sav7l+JNQ==", "dev": true, - "optional": true, + "requires": { + "@babel/code-frame": "^7.16.0", + "@babel/generator": "^7.16.0", + "@babel/helper-compilation-targets": "^7.16.0", + "@babel/helper-module-transforms": "^7.16.0", + "@babel/helpers": "^7.16.0", + "@babel/parser": "^7.16.0", + "@babel/template": "^7.16.0", + "@babel/traverse": "^7.16.0", + "@babel/types": "^7.16.0", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.1.2", + "semver": "^6.3.0", + "source-map": "^0.5.0" + }, "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" + "debug": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", + "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } } }, - "node_modules/pouchdb/node_modules/string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==", - "dev": true, - "optional": true - }, - "node_modules/pouchdb/node_modules/through2": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/through2/-/through2-3.0.2.tgz", - "integrity": "sha512-enaDQ4MUyP2W6ZyT6EsMzqBPZaM/avg8iuo+l2d3QCs0J+6RaqkHV/2/lOwDTueBHeJ/2LG9lrLW3d5rWPucuQ==", + "@babel/generator": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.16.0.tgz", + "integrity": "sha512-RR8hUCfRQn9j9RPKEVXo9LiwoxLPYn6hNZlvUOR8tSnaxlD0p0+la00ZP9/SnRt6HchKr+X0fO2r8vrETiJGew==", "dev": true, - "optional": true, - "dependencies": { - "inherits": "^2.0.4", - "readable-stream": "2 || 3" + "requires": { + "@babel/types": "^7.16.0", + "jsesc": "^2.5.1", + "source-map": "^0.5.0" } }, - "node_modules/pouchdb/node_modules/through2/node_modules/readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "@babel/helper-compilation-targets": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.16.0.tgz", + "integrity": "sha512-S7iaOT1SYlqK0sQaCi21RX4+13hmdmnxIEAnQUB/eh7GeAnRjOUgTYpLkUOiRXzD+yog1JxP0qyAQZ7ZxVxLVg==", "dev": true, - "optional": true, - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" + "requires": { + "@babel/compat-data": "^7.16.0", + "@babel/helper-validator-option": "^7.14.5", + "browserslist": "^4.16.6", + "semver": "^6.3.0" }, - "engines": { - "node": ">= 6" + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } } }, - "node_modules/pouchdb/node_modules/through2/node_modules/string_decoder": { - "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==", + "@babel/helper-function-name": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.16.0.tgz", + "integrity": "sha512-BZh4mEk1xi2h4HFjWUXRQX5AEx4rvaZxHgax9gcjdLWdkjsY7MKt5p0otjsg5noXw+pB+clMCjw+aEVYADMjog==", "dev": true, - "optional": true, - "dependencies": { - "safe-buffer": "~5.2.0" + "requires": { + "@babel/helper-get-function-arity": "^7.16.0", + "@babel/template": "^7.16.0", + "@babel/types": "^7.16.0" } }, - "node_modules/pouchdb/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==", + "@babel/helper-get-function-arity": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.16.0.tgz", + "integrity": "sha512-ASCquNcywC1NkYh/z7Cgp3w31YW8aojjYIlNg4VeJiHkqyP4AzIvr4qx7pYDb4/s8YcsZWqqOSxgkvjUz1kpDQ==", "dev": true, - "optional": true, - "bin": { - "uuid": "dist/bin/uuid" + "requires": { + "@babel/types": "^7.16.0" } }, - "node_modules/prelude-ls": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", - "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", + "@babel/helper-hoist-variables": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.0.tgz", + "integrity": "sha512-1AZlpazjUR0EQZQv3sgRNfM9mEVWPK3M6vlalczA+EECcPz3XPh6VplbErL5UoMpChhSck5wAJHthlj1bYpcmg==", "dev": true, - "engines": { - "node": ">= 0.8.0" + "requires": { + "@babel/types": "^7.16.0" } }, - "node_modules/prettier": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.3.2.tgz", - "integrity": "sha512-lnJzDfJ66zkMy58OL5/NY5zp70S7Nz6KqcKkXYzn2tMVrNxvbqaBpg7H3qHaLxCJ5lNMsGuM8+ohS7cZrthdLQ==", + "@babel/helper-member-expression-to-functions": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.16.0.tgz", + "integrity": "sha512-bsjlBFPuWT6IWhl28EdrQ+gTvSvj5tqVP5Xeftp07SEuz5pLnsXZuDkDD3Rfcxy0IsHmbZ+7B2/9SHzxO0T+sQ==", "dev": true, - "bin": { - "prettier": "bin-prettier.js" - }, - "engines": { - "node": ">=10.13.0" + "requires": { + "@babel/types": "^7.16.0" } }, - "node_modules/pretty-format": { - "version": "27.3.1", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.3.1.tgz", - "integrity": "sha512-DR/c+pvFc52nLimLROYjnXPtolawm+uWDxr4FjuLDLUn+ktWnSN851KoHwHzzqq6rfCOjkzN8FLgDrSub6UDuA==", + "@babel/helper-module-imports": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.16.0.tgz", + "integrity": "sha512-kkH7sWzKPq0xt3H1n+ghb4xEMP8k0U7XV3kkB+ZGy69kDk2ySFW1qPi06sjKzFY3t1j6XbJSqr4mF9L7CYVyhg==", "dev": true, - "dependencies": { - "@jest/types": "^27.2.5", - "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" + "requires": { + "@babel/types": "^7.16.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==", + "@babel/helper-module-transforms": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.16.0.tgz", + "integrity": "sha512-My4cr9ATcaBbmaEa8M0dZNA74cfI6gitvUAskgDtAFmAqyFKDSHQo5YstxPbN+lzHl2D9l/YOEFqb2mtUh4gfA==", "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/printj": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/printj/-/printj-1.1.2.tgz", - "integrity": "sha512-zA2SmoLaxZyArQTOPj5LXecR+RagfPSU5Kw1qP+jkWeNlrq+eJZyY2oS68SU1Z/7/myXM4lo9716laOFAVStCQ==", - "devOptional": true, - "bin": { - "printj": "bin/printj.njs" - }, - "engines": { - "node": ">=0.8" + "requires": { + "@babel/helper-module-imports": "^7.16.0", + "@babel/helper-replace-supers": "^7.16.0", + "@babel/helper-simple-access": "^7.16.0", + "@babel/helper-split-export-declaration": "^7.16.0", + "@babel/helper-validator-identifier": "^7.15.7", + "@babel/template": "^7.16.0", + "@babel/traverse": "^7.16.0", + "@babel/types": "^7.16.0" } }, - "node_modules/process": { - "version": "0.11.10", - "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", - "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==", + "@babel/helper-optimise-call-expression": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.16.0.tgz", + "integrity": "sha512-SuI467Gi2V8fkofm2JPnZzB/SUuXoJA5zXe/xzyPP2M04686RzFKFHPK6HDVN6JvWBIEW8tt9hPR7fXdn2Lgpw==", "dev": true, - "engines": { - "node": ">= 0.6.0" + "requires": { + "@babel/types": "^7.16.0" } }, - "node_modules/process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", - "optional": true + "@babel/helper-plugin-utils": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.14.5.tgz", + "integrity": "sha512-/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ==", + "dev": true }, - "node_modules/progress": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", - "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", + "@babel/helper-replace-supers": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.16.0.tgz", + "integrity": "sha512-TQxuQfSCdoha7cpRNJvfaYxxxzmbxXw/+6cS7V02eeDYyhxderSoMVALvwupA54/pZcOTtVeJ0xccp1nGWladA==", "dev": true, - "engines": { - "node": ">=0.4.0" + "requires": { + "@babel/helper-member-expression-to-functions": "^7.16.0", + "@babel/helper-optimise-call-expression": "^7.16.0", + "@babel/traverse": "^7.16.0", + "@babel/types": "^7.16.0" } }, - "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==", + "@babel/helper-simple-access": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.16.0.tgz", + "integrity": "sha512-o1rjBT/gppAqKsYfUdfHq5Rk03lMQrkPHG1OWzHWpLgVXRH4HnMM9Et9CVdIqwkCQlobnGHEJMsgWP/jE1zUiw==", "dev": true, - "dependencies": { - "kleur": "^3.0.3", - "sisteransi": "^1.0.5" - }, - "engines": { - "node": ">= 6" + "requires": { + "@babel/types": "^7.16.0" } }, - "node_modules/prop-types": { - "version": "15.8.1", - "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", - "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", - "optional": true, - "dependencies": { - "loose-envify": "^1.4.0", - "object-assign": "^4.1.1", - "react-is": "^16.13.1" + "@babel/helper-split-export-declaration": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.0.tgz", + "integrity": "sha512-0YMMRpuDFNGTHNRiiqJX19GjNXA4H0E8jZ2ibccfSxaCogbm3am5WN/2nQNj0YnQwGWM1J06GOcQ2qnh3+0paw==", + "dev": true, + "requires": { + "@babel/types": "^7.16.0" } }, - "node_modules/prop-types/node_modules/react-is": { - "version": "16.13.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", - "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", - "optional": true + "@babel/helper-validator-identifier": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz", + "integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==", + "dev": true }, - "node_modules/protobufjs": { - "version": "6.11.3", - "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-6.11.3.tgz", - "integrity": "sha512-xL96WDdCZYdU7Slin569tFX712BxsxslWwAfAhCYjQKGTq7dAU91Lomy6nLLhh/dyGhk/YH4TwTSRxTzhuHyZg==", - "hasInstallScript": true, - "dependencies": { - "@protobufjs/aspromise": "^1.1.2", - "@protobufjs/base64": "^1.1.2", - "@protobufjs/codegen": "^2.0.4", - "@protobufjs/eventemitter": "^1.1.0", - "@protobufjs/fetch": "^1.1.0", - "@protobufjs/float": "^1.0.2", - "@protobufjs/inquire": "^1.1.0", - "@protobufjs/path": "^1.1.2", - "@protobufjs/pool": "^1.1.0", - "@protobufjs/utf8": "^1.1.0", - "@types/long": "^4.0.1", - "@types/node": ">=13.7.0", - "long": "^4.0.0" - }, - "bin": { - "pbjs": "bin/pbjs", - "pbts": "bin/pbts" - } + "@babel/helper-validator-option": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.14.5.tgz", + "integrity": "sha512-OX8D5eeX4XwcroVW45NMvoYaIuFI+GQpA2a8Gi+X/U/cDUIRsV37qQfF905F0htTRCREQIB4KqPeaveRJUl3Ow==", + "dev": true }, - "node_modules/proxy-addr": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", - "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "@babel/helpers": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.16.0.tgz", + "integrity": "sha512-dVRM0StFMdKlkt7cVcGgwD8UMaBfWJHl3A83Yfs8GQ3MO0LHIIIMvK7Fa0RGOGUQ10qikLaX6D7o5htcQWgTMQ==", "dev": true, - "dependencies": { - "forwarded": "0.2.0", - "ipaddr.js": "1.9.1" - }, - "engines": { - "node": ">= 0.10" + "requires": { + "@babel/template": "^7.16.0", + "@babel/traverse": "^7.16.0", + "@babel/types": "^7.16.0" } }, - "node_modules/prr": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", - "integrity": "sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==", + "@babel/highlight": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.16.0.tgz", + "integrity": "sha512-t8MH41kUQylBtu2+4IQA3atqevA2lRgqA2wyVB/YiWmsDSuylZZuXOUy9ric30hfzauEFfdsuk/eXTRrGrfd0g==", "dev": true, - "optional": true + "requires": { + "@babel/helper-validator-identifier": "^7.15.7", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + } }, - "node_modules/psl": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", - "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==", + "@babel/parser": { + "version": "7.16.2", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.16.2.tgz", + "integrity": "sha512-RUVpT0G2h6rOZwqLDTrKk7ksNv7YpAilTnYe1/Q+eDjxEceRMKVWbCsX7t8h6C1qCFi/1Y8WZjcEPBAFG27GPw==", "dev": true }, - "node_modules/public-encrypt": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", - "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", + "@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": { - "bn.js": "^4.1.0", - "browserify-rsa": "^4.0.0", - "create-hash": "^1.1.0", - "parse-asn1": "^5.0.0", - "randombytes": "^2.0.1", - "safe-buffer": "^5.1.2" + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" } }, - "node_modules/public-encrypt/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - }, - "node_modules/pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "@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": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" } }, - "node_modules/punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "@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, - "engines": { - "node": ">=6" + "requires": { + "@babel/helper-plugin-utils": "^7.12.13" } }, - "node_modules/pure-rand": { - "version": "5.0.5", - "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-5.0.5.tgz", - "integrity": "sha512-BwQpbqxSCBJVpamI6ydzcKqyFmnd5msMWUGvzXLm1aXvusbbgkbOto/EUPM00hjveJEaJtdbhUjKSzWRhQVkaw==", + "@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, - "funding": [ - { - "type": "individual", - "url": "https://github.com/sponsors/dubzzz" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/fast-check" - } - ] + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } }, - "node_modules/qs": { - "version": "6.9.6", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.9.6.tgz", - "integrity": "sha512-TIRk4aqYLNoJUbd+g2lEdz5kLWIuTMRagAXxl78Q0RiVjAOugHmeKNGdd3cwo/ktpf9aL9epCfFqWDEKysUlLQ==", + "@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, - "engines": { - "node": ">=0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" } }, - "node_modules/query-string": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/query-string/-/query-string-5.1.1.tgz", - "integrity": "sha512-gjWOsm2SoGlgLEdAGt7a6slVOk9mGiXmPFMqrEhLQ68rhQuBnpfs3+EmlvqKyxnCo9/PPlF+9MtY02S1aFg+Jw==", + "@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": { - "decode-uri-component": "^0.2.0", - "object-assign": "^4.1.0", - "strict-uri-encode": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" } }, - "node_modules/queue-microtask": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "optional": true - }, - "node_modules/quick-lru": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", - "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==", + "@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, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" } }, - "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" + "@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, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" } }, - "node_modules/randomfill": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", - "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", + "@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": { - "randombytes": "^2.0.5", - "safe-buffer": "^5.1.0" + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" } }, - "node_modules/range-parser": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", - "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "@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, - "engines": { - "node": ">= 0.6" + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" } }, - "node_modules/raw-body": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.2.tgz", - "integrity": "sha512-RPMAFUJP19WIet/99ngh6Iv8fzAbqum4Li7AD6DtGaW2RpMB/11xDoalPiJMTbu6I3hkbMVkATvZrqb9EEqeeQ==", + "@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": { - "bytes": "3.1.1", - "http-errors": "1.8.1", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - }, - "engines": { - "node": ">= 0.8" + "requires": { + "@babel/helper-plugin-utils": "^7.8.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 - }, - "node_modules/readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" + "@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, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" } }, - "node_modules/readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "@babel/plugin-syntax-typescript": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.16.0.tgz", + "integrity": "sha512-Xv6mEXqVdaqCBfJFyeab0fH2DnUoMsDmhamxsSi4j8nLd4Vtw213WMJr55xxqipC/YVWyPY3K0blJncPYji+dQ==", "dev": true, - "dependencies": { - "picomatch": "^2.2.1" - }, - "engines": { - "node": ">=8.10.0" + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" } }, - "node_modules/readonly-date": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/readonly-date/-/readonly-date-1.0.0.tgz", - "integrity": "sha512-tMKIV7hlk0h4mO3JTmmVuIlJVXjKk3Sep9Bf5OH0O+758ruuVkUy2J9SttDLm91IEX/WHlXPSpxMGjPj4beMIQ==", - "optional": true - }, - "node_modules/rechoir": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", - "integrity": "sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==", - "optional": true, - "dependencies": { - "resolve": "^1.1.6" - }, - "engines": { - "node": ">= 0.10" + "@babel/runtime": { + "version": "7.20.13", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.20.13.tgz", + "integrity": "sha512-gt3PKXs0DBoL9xCvOIIZ2NEqAGZqHjAnmVbfQtB620V0uReIQutpel14KcneZuer7UioY8ALKZ7iocavvzTNFA==", + "requires": { + "regenerator-runtime": "^0.13.11" } }, - "node_modules/redux": { - "version": "3.7.2", - "resolved": "https://registry.npmjs.org/redux/-/redux-3.7.2.tgz", - "integrity": "sha512-pNqnf9q1hI5HHZRBkj3bAngGZW/JMCmexDlOxw4XagXY2o1327nHH54LoTjiPJ0gizoqPDRqWyX/00g0hD6w+A==", + "@babel/template": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.16.0.tgz", + "integrity": "sha512-MnZdpFD/ZdYhXwiunMqqgyZyucaYsbL0IrjoGjaVhGilz+x8YB++kRfygSOIj1yOtWKPlx7NBp+9I1RQSgsd5A==", "dev": true, - "dependencies": { - "lodash": "^4.2.1", - "lodash-es": "^4.2.1", - "loose-envify": "^1.1.0", - "symbol-observable": "^1.0.3" + "requires": { + "@babel/code-frame": "^7.16.0", + "@babel/parser": "^7.16.0", + "@babel/types": "^7.16.0" } }, - "node_modules/redux-saga": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/redux-saga/-/redux-saga-1.0.0.tgz", - "integrity": "sha512-GvJWs/SzMvEQgeaw6sRMXnS2FghlvEGsHiEtTLpJqc/FHF3I5EE/B+Hq5lyHZ8LSoT2r/X/46uWvkdCnK9WgHA==", + "@babel/traverse": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.16.0.tgz", + "integrity": "sha512-qQ84jIs1aRQxaGaxSysII9TuDaguZ5yVrEuC0BN2vcPlalwfLovVmCjbFDPECPXcYM/wLvNFfp8uDOliLxIoUQ==", "dev": true, + "requires": { + "@babel/code-frame": "^7.16.0", + "@babel/generator": "^7.16.0", + "@babel/helper-function-name": "^7.16.0", + "@babel/helper-hoist-variables": "^7.16.0", + "@babel/helper-split-export-declaration": "^7.16.0", + "@babel/parser": "^7.16.0", + "@babel/types": "^7.16.0", + "debug": "^4.1.0", + "globals": "^11.1.0" + }, "dependencies": { - "@redux-saga/core": "^1.0.0" + "debug": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", + "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + } } }, - "node_modules/redux/node_modules/symbol-observable": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.2.0.tgz", - "integrity": "sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ==", + "@babel/types": { + "version": "7.17.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.17.0.tgz", + "integrity": "sha512-TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw==", "dev": true, - "engines": { - "node": ">=0.10.0" + "requires": { + "@babel/helper-validator-identifier": "^7.16.7", + "to-fast-properties": "^2.0.0" } }, - "node_modules/regenerator-runtime": { - "version": "0.13.11", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", - "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==" + "@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/request": { - "version": "2.88.2", - "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", - "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", - "deprecated": "request has been deprecated, see https://github.com/request/request/issues/3142", - "dev": true, + "@certusone/wormhole-sdk-proto-web": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/@certusone/wormhole-sdk-proto-web/-/wormhole-sdk-proto-web-0.0.7.tgz", + "integrity": "sha512-GCe1/bcqMS0Mt+hsWp4SE4NLL59pWmK0lhQXO0oqAKl0G9AuuTdudySMDF/sLc7z5H2w34bSuSrIEKvPuuSC+w==", + "requires": { + "@improbable-eng/grpc-web": "^0.15.0", + "protobufjs": "^7.0.0", + "rxjs": "^7.5.6" + }, "dependencies": { - "aws-sign2": "~0.7.0", - "aws4": "^1.8.0", - "caseless": "~0.12.0", - "combined-stream": "~1.0.6", - "extend": "~3.0.2", - "forever-agent": "~0.6.1", - "form-data": "~2.3.2", - "har-validator": "~5.1.3", - "http-signature": "~1.2.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.19", - "oauth-sign": "~0.9.0", - "performance-now": "^2.1.0", - "qs": "~6.5.2", - "safe-buffer": "^5.1.2", - "tough-cookie": "~2.5.0", - "tunnel-agent": "^0.6.0", - "uuid": "^3.3.2" - }, - "engines": { - "node": ">= 6" + "@improbable-eng/grpc-web": { + "version": "0.15.0", + "resolved": "https://registry.npmjs.org/@improbable-eng/grpc-web/-/grpc-web-0.15.0.tgz", + "integrity": "sha512-ERft9/0/8CmYalqOVnJnpdDry28q+j+nAlFFARdjyxXDJ+Mhgv9+F600QC8BR9ygOfrXRlAk6CvST2j+JCpQPg==", + "requires": { + "browser-headers": "^0.4.1" + } + }, + "long": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/long/-/long-5.2.0.tgz", + "integrity": "sha512-9RTUNjK60eJbx3uz+TEGF7fUr29ZDxR5QzXcyDpeSfeH28S9ycINflOgOlppit5U+4kNTe83KQnMEerw7GmE8w==" + }, + "protobufjs": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.1.1.tgz", + "integrity": "sha512-d0nMQqS/aT3lfV8bKi9Gbg73vPd2LcDdTDOu6RE/M+h9DY8g1EmDzk3ADPccthEWfTBjkR2oxNdx9Gs8YubT+g==", + "requires": { + "@protobufjs/aspromise": "^1.1.2", + "@protobufjs/base64": "^1.1.2", + "@protobufjs/codegen": "^2.0.4", + "@protobufjs/eventemitter": "^1.1.0", + "@protobufjs/fetch": "^1.1.0", + "@protobufjs/float": "^1.0.2", + "@protobufjs/inquire": "^1.1.0", + "@protobufjs/path": "^1.1.2", + "@protobufjs/pool": "^1.1.0", + "@protobufjs/utf8": "^1.1.0", + "@types/node": ">=13.7.0", + "long": "^5.0.0" + } + } } }, - "node_modules/request/node_modules/form-data": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", - "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", - "dev": true, - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", - "mime-types": "^2.1.12" + "@certusone/wormhole-sdk-wasm": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/@certusone/wormhole-sdk-wasm/-/wormhole-sdk-wasm-0.0.1.tgz", + "integrity": "sha512-LdIwLhOyr4pPs2jqYubqC7d4UkqYBX0EG/ppspQlW3qlVE0LZRMrH6oVzzLMyHtV0Rw7O9sIKzORW/T3mrJv2w==", + "requires": { + "@types/long": "^4.0.2", + "@types/node": "^18.0.3" }, - "engines": { - "node": ">= 0.12" + "dependencies": { + "@types/node": { + "version": "18.0.3", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.0.3.tgz", + "integrity": "sha512-HzNRZtp4eepNitP+BD6k2L6DROIDG4Q0fm4x+dwfsr6LGmROENnok75VGw40628xf+iR24WeMFcHuuBDUAzzsQ==" + } } }, - "node_modules/request/node_modules/qs": { - "version": "6.5.3", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.3.tgz", - "integrity": "sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==", - "dev": true, - "engines": { - "node": ">=0.6" + "@classic-terra/terra.proto": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@classic-terra/terra.proto/-/terra.proto-1.1.0.tgz", + "integrity": "sha512-bYhQG5LUaGF0KPRY9hYT/HEcd1QExZPQd6zLV/rQkCe/eDxfwFRLzZHpaaAdfWoAAZjsRWqJbUCqCg7gXBbJpw==", + "requires": { + "@improbable-eng/grpc-web": "^0.14.1", + "google-protobuf": "^3.17.3", + "long": "^4.0.0", + "protobufjs": "~6.11.2" } }, - "node_modules/request/node_modules/tough-cookie": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", - "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", - "dev": true, - "dependencies": { - "psl": "^1.1.28", - "punycode": "^2.1.1" - }, - "engines": { - "node": ">=0.8" + "@confio/ics23": { + "version": "0.6.8", + "resolved": "https://registry.npmjs.org/@confio/ics23/-/ics23-0.6.8.tgz", + "integrity": "sha512-wB6uo+3A50m0sW/EWcU64xpV/8wShZ6bMTa7pF8eYsTrSkQA7oLUIJcs/wb8g4y2Oyq701BaGiO6n/ak5WXO1w==", + "optional": true, + "requires": { + "@noble/hashes": "^1.0.0", + "protobufjs": "^6.8.8" } }, - "node_modules/require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", - "devOptional": true, - "engines": { - "node": ">=0.10.0" + "@coral-xyz/borsh": { + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/@coral-xyz/borsh/-/borsh-0.2.6.tgz", + "integrity": "sha512-y6nmHw1bFcJib7sMHsQPpC8r47xhqDZVvhUdna7NUPzpSbOZG6f46N21+aXsQ2w/tG8Ggls488J/ZmwbgVmyjg==", + "requires": { + "bn.js": "^5.1.2", + "buffer-layout": "^1.2.0" } }, - "node_modules/require-from-string": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", - "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", - "dev": true, + "@cosmjs/amino": { + "version": "0.30.1", + "resolved": "https://registry.npmjs.org/@cosmjs/amino/-/amino-0.30.1.tgz", + "integrity": "sha512-yNHnzmvAlkETDYIpeCTdVqgvrdt1qgkOXwuRVi8s27UKI5hfqyE9fJ/fuunXE6ZZPnKkjIecDznmuUOMrMvw4w==", "optional": true, - "engines": { - "node": ">=0.10.0" + "requires": { + "@cosmjs/crypto": "^0.30.1", + "@cosmjs/encoding": "^0.30.1", + "@cosmjs/math": "^0.30.1", + "@cosmjs/utils": "^0.30.1" } }, - "node_modules/reselect": { - "version": "4.1.7", - "resolved": "https://registry.npmjs.org/reselect/-/reselect-4.1.7.tgz", - "integrity": "sha512-Zu1xbUt3/OPwsXL46hvOOoQrap2azE7ZQbokq61BQfiXvhewsKDwhMeZjTX9sX0nvw1t/U5Audyn1I9P/m9z0A==", - "dev": true - }, - "node_modules/reselect-tree": { - "version": "1.3.7", - "resolved": "https://registry.npmjs.org/reselect-tree/-/reselect-tree-1.3.7.tgz", - "integrity": "sha512-kZN+C1cVJ6fFN2smSb0l4UvYZlRzttgnu183svH4NrU22cBY++ikgr2QT75Uuk4MYpv5gXSVijw4c5U6cx6GKg==", - "dev": true, - "dependencies": { - "debug": "^3.1.0", - "json-pointer": "^0.6.1", - "reselect": "^4.0.0" + "@cosmjs/crypto": { + "version": "0.30.1", + "resolved": "https://registry.npmjs.org/@cosmjs/crypto/-/crypto-0.30.1.tgz", + "integrity": "sha512-rAljUlake3MSXs9xAm87mu34GfBLN0h/1uPPV6jEwClWjNkAMotzjC0ab9MARy5FFAvYHL3lWb57bhkbt2GtzQ==", + "optional": true, + "requires": { + "@cosmjs/encoding": "^0.30.1", + "@cosmjs/math": "^0.30.1", + "@cosmjs/utils": "^0.30.1", + "@noble/hashes": "^1", + "bn.js": "^5.2.0", + "elliptic": "^6.5.4", + "libsodium-wrappers": "^0.7.6" } }, - "node_modules/reselect-tree/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, + "@cosmjs/encoding": { + "version": "0.30.1", + "resolved": "https://registry.npmjs.org/@cosmjs/encoding/-/encoding-0.30.1.tgz", + "integrity": "sha512-rXmrTbgqwihORwJ3xYhIgQFfMSrwLu1s43RIK9I8EBudPx3KmnmyAKzMOVsRDo9edLFNuZ9GIvysUCwQfq3WlQ==", + "optional": true, + "requires": { + "base64-js": "^1.3.0", + "bech32": "^1.1.4", + "readonly-date": "^1.0.0" + }, "dependencies": { - "ms": "^2.1.1" + "bech32": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/bech32/-/bech32-1.1.4.tgz", + "integrity": "sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ==", + "optional": true + } } }, - "node_modules/reselect-tree/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==", - "dev": true - }, - "node_modules/resolve": { - "version": "1.20.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz", - "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==", - "devOptional": true, - "dependencies": { - "is-core-module": "^2.2.0", - "path-parse": "^1.0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "@cosmjs/json-rpc": { + "version": "0.30.1", + "resolved": "https://registry.npmjs.org/@cosmjs/json-rpc/-/json-rpc-0.30.1.tgz", + "integrity": "sha512-pitfC/2YN9t+kXZCbNuyrZ6M8abnCC2n62m+JtU9vQUfaEtVsgy+1Fk4TRQ175+pIWSdBMFi2wT8FWVEE4RhxQ==", + "optional": true, + "requires": { + "@cosmjs/stream": "^0.30.1", + "xstream": "^11.14.0" } }, - "node_modules/resolve-alpn": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz", - "integrity": "sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==", - "dev": true - }, - "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" + "@cosmjs/math": { + "version": "0.30.1", + "resolved": "https://registry.npmjs.org/@cosmjs/math/-/math-0.30.1.tgz", + "integrity": "sha512-yaoeI23pin9ZiPHIisa6qqLngfnBR/25tSaWpkTm8Cy10MX70UF5oN4+/t1heLaM6SSmRrhk3psRkV4+7mH51Q==", + "optional": true, + "requires": { + "bn.js": "^5.2.0" } }, - "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" + "@cosmjs/proto-signing": { + "version": "0.30.1", + "resolved": "https://registry.npmjs.org/@cosmjs/proto-signing/-/proto-signing-0.30.1.tgz", + "integrity": "sha512-tXh8pPYXV4aiJVhTKHGyeZekjj+K9s2KKojMB93Gcob2DxUjfKapFYBMJSgfKPuWUPEmyr8Q9km2hplI38ILgQ==", + "optional": true, + "requires": { + "@cosmjs/amino": "^0.30.1", + "@cosmjs/crypto": "^0.30.1", + "@cosmjs/encoding": "^0.30.1", + "@cosmjs/math": "^0.30.1", + "@cosmjs/utils": "^0.30.1", + "cosmjs-types": "^0.7.1", + "long": "^4.0.0" } }, - "node_modules/resolve.exports": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-1.1.0.tgz", - "integrity": "sha512-J1l+Zxxp4XK3LUDZ9m60LRJF/mAe4z6a4xyabPHk7pvK5t35dACV32iIjJDFeWZFfZlO29w6SZ67knR0tHzJtQ==", - "dev": true, - "engines": { - "node": ">=10" + "@cosmjs/socket": { + "version": "0.30.1", + "resolved": "https://registry.npmjs.org/@cosmjs/socket/-/socket-0.30.1.tgz", + "integrity": "sha512-r6MpDL+9N+qOS/D5VaxnPaMJ3flwQ36G+vPvYJsXArj93BjgyFB7BwWwXCQDzZ+23cfChPUfhbINOenr8N2Kow==", + "optional": true, + "requires": { + "@cosmjs/stream": "^0.30.1", + "isomorphic-ws": "^4.0.1", + "ws": "^7", + "xstream": "^11.14.0" } }, - "node_modules/responselike": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/responselike/-/responselike-2.0.1.tgz", - "integrity": "sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw==", - "dev": true, - "dependencies": { - "lowercase-keys": "^2.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "@cosmjs/stargate": { + "version": "0.30.1", + "resolved": "https://registry.npmjs.org/@cosmjs/stargate/-/stargate-0.30.1.tgz", + "integrity": "sha512-RdbYKZCGOH8gWebO7r6WvNnQMxHrNXInY/gPHPzMjbQF6UatA6fNM2G2tdgS5j5u7FTqlCI10stNXrknaNdzog==", + "optional": true, + "requires": { + "@confio/ics23": "^0.6.8", + "@cosmjs/amino": "^0.30.1", + "@cosmjs/encoding": "^0.30.1", + "@cosmjs/math": "^0.30.1", + "@cosmjs/proto-signing": "^0.30.1", + "@cosmjs/stream": "^0.30.1", + "@cosmjs/tendermint-rpc": "^0.30.1", + "@cosmjs/utils": "^0.30.1", + "cosmjs-types": "^0.7.1", + "long": "^4.0.0", + "protobufjs": "~6.11.3", + "xstream": "^11.14.0" } }, - "node_modules/responselike/node_modules/lowercase-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", - "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", - "dev": true, - "engines": { - "node": ">=8" + "@cosmjs/stream": { + "version": "0.30.1", + "resolved": "https://registry.npmjs.org/@cosmjs/stream/-/stream-0.30.1.tgz", + "integrity": "sha512-Fg0pWz1zXQdoxQZpdHRMGvUH5RqS6tPv+j9Eh7Q953UjMlrwZVo0YFLC8OTf/HKVf10E4i0u6aM8D69Q6cNkgQ==", + "optional": true, + "requires": { + "xstream": "^11.14.0" } }, - "node_modules/restore-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", - "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", - "dev": true, + "@cosmjs/tendermint-rpc": { + "version": "0.30.1", + "resolved": "https://registry.npmjs.org/@cosmjs/tendermint-rpc/-/tendermint-rpc-0.30.1.tgz", + "integrity": "sha512-Z3nCwhXSbPZJ++v85zHObeUggrEHVfm1u18ZRwXxFE9ZMl5mXTybnwYhczuYOl7KRskgwlB+rID0WYACxj4wdQ==", "optional": true, - "dependencies": { - "onetime": "^5.1.0", - "signal-exit": "^3.0.2" + "requires": { + "@cosmjs/crypto": "^0.30.1", + "@cosmjs/encoding": "^0.30.1", + "@cosmjs/json-rpc": "^0.30.1", + "@cosmjs/math": "^0.30.1", + "@cosmjs/socket": "^0.30.1", + "@cosmjs/stream": "^0.30.1", + "@cosmjs/utils": "^0.30.1", + "axios": "^0.21.2", + "readonly-date": "^1.0.0", + "xstream": "^11.14.0" }, - "engines": { - "node": ">=8" + "dependencies": { + "axios": { + "version": "0.21.4", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.4.tgz", + "integrity": "sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==", + "optional": true, + "requires": { + "follow-redirects": "^1.14.0" + } + } } }, - "node_modules/retry": { - "version": "0.13.1", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz", - "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==", - "dev": true, + "@cosmjs/utils": { + "version": "0.30.1", + "resolved": "https://registry.npmjs.org/@cosmjs/utils/-/utils-0.30.1.tgz", + "integrity": "sha512-KvvX58MGMWh7xA+N+deCfunkA/ZNDvFLw4YbOmX3f/XBIkqrVY7qlotfy2aNb1kgp6h4B6Yc8YawJPDTfvWX7g==", + "optional": true + }, + "@ethereumjs/common": { + "version": "2.6.5", + "resolved": "https://registry.npmjs.org/@ethereumjs/common/-/common-2.6.5.tgz", + "integrity": "sha512-lRyVQOeCDaIVtgfbowla32pzeDv2Obr8oR8Put5RdUBNRGr1VGPGQNGP6elWIpgK3YdpzqTOh4GyUGOureVeeA==", "optional": true, - "engines": { - "node": ">= 4" + "requires": { + "crc-32": "^1.2.0", + "ethereumjs-util": "^7.1.5" } }, - "node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "@ethereumjs/tx": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/@ethereumjs/tx/-/tx-3.5.2.tgz", + "integrity": "sha512-gQDNJWKrSDGu2w7w0PzVXVBNMzb7wwdDOmOqczmhNjqFxFuIbhVJDwiGEnxFNC2/b8ifcZzY7MLcluizohRzNw==", + "optional": true, + "requires": { + "@ethereumjs/common": "^2.6.4", + "ethereumjs-util": "^7.1.5" } }, - "node_modules/ripemd160": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", - "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", - "dependencies": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1" + "@ethersproject/abi": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/abi/-/abi-5.7.0.tgz", + "integrity": "sha512-351ktp42TiRcYB3H1OP8yajPeAQstMW/yCFokj/AthP9bLHzQFPlOrxOcwYEDkUAICmOHljvN4K39OMTMUa9RA==", + "devOptional": true, + "requires": { + "@ethersproject/address": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/hash": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/strings": "^5.7.0" } }, - "node_modules/ripemd160-min": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/ripemd160-min/-/ripemd160-min-0.0.6.tgz", - "integrity": "sha512-+GcJgQivhs6S9qvLogusiTcS9kQUfgR75whKuy5jIhuiOfQuJ8fjqxV6EGD5duH1Y/FawFUMtMhyeq3Fbnib8A==", - "engines": { - "node": ">=8" + "@ethersproject/abstract-provider": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/abstract-provider/-/abstract-provider-5.7.0.tgz", + "integrity": "sha512-R41c9UkchKCpAqStMYUpdunjo3pkEvZC3FAwZn5S5MGbXoMQOHIdHItezTETxAO5bevtMApSyEhn9+CHcDsWBw==", + "devOptional": true, + "requires": { + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/networks": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/transactions": "^5.7.0", + "@ethersproject/web": "^5.7.0" } }, - "node_modules/rlp": { - "version": "2.2.7", - "resolved": "https://registry.npmjs.org/rlp/-/rlp-2.2.7.tgz", - "integrity": "sha512-d5gdPmgQ0Z+AklL2NVXr/IoSjNZFfTVvQWzL/AM2AOcSzYP2xjlb0AC8YyCLc41MSNf6P6QVtjgPdmVtzb+4lQ==", - "dependencies": { - "bn.js": "^5.2.0" - }, - "bin": { - "rlp": "bin/rlp" + "@ethersproject/abstract-signer": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/abstract-signer/-/abstract-signer-5.7.0.tgz", + "integrity": "sha512-a16V8bq1/Cz+TGCkE2OPMTOUDLS3grCpdjoJCYNnVBbdYEMSgKrU0+B90s8b6H+ByYTBZN7a3g76jdIJi7UfKQ==", + "devOptional": true, + "requires": { + "@ethersproject/abstract-provider": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0" } }, - "node_modules/rpc-websockets": { - "version": "7.5.1", - "resolved": "https://registry.npmjs.org/rpc-websockets/-/rpc-websockets-7.5.1.tgz", - "integrity": "sha512-kGFkeTsmd37pHPMaHIgN1LVKXMi0JD782v4Ds9ZKtLlwdTKjn+CxM9A9/gLT2LaOuEcEFGL98h1QWQtlOIdW0w==", - "dependencies": { - "@babel/runtime": "^7.17.2", - "eventemitter3": "^4.0.7", - "uuid": "^8.3.2", - "ws": "^8.5.0" - }, - "funding": { - "type": "paypal", - "url": "https://paypal.me/kozjak" - }, - "optionalDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": "^5.0.2" + "@ethersproject/address": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/address/-/address-5.7.0.tgz", + "integrity": "sha512-9wYhYt7aghVGo758POM5nqcOMaE168Q6aRLJZwUmiqSrAungkG74gSSeKEIR7ukixesdRZGPgVqme6vmxs1fkA==", + "devOptional": true, + "requires": { + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/rlp": "^5.7.0" } }, - "node_modules/rpc-websockets/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==", - "bin": { - "uuid": "dist/bin/uuid" + "@ethersproject/base64": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/base64/-/base64-5.7.0.tgz", + "integrity": "sha512-Dr8tcHt2mEbsZr/mwTPIQAf3Ai0Bks/7gTw9dSqk1mQvhW3XvRlmDJr/4n+wg1JmCl16NZue17CDh8xb/vZ0sQ==", + "devOptional": true, + "requires": { + "@ethersproject/bytes": "^5.7.0" } }, - "node_modules/rpc-websockets/node_modules/ws": { - "version": "8.9.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.9.0.tgz", - "integrity": "sha512-Ja7nszREasGaYUYCI2k4lCKIRTt+y7XuqVoHR44YpI49TtryyqbqvDMn5eqfW7e6HzTukDRIsXqzVHScqRcafg==", - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": "^5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } + "@ethersproject/basex": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/basex/-/basex-5.7.0.tgz", + "integrity": "sha512-ywlh43GwZLv2Voc2gQVTKBoVQ1mti3d8HK5aMxsfu/nRDnMmNqaSJ3r3n85HBByT8OpoY96SXM1FogC533T4zw==", + "devOptional": true, + "requires": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/properties": "^5.7.0" } }, - "node_modules/rxjs": { - "version": "7.8.0", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.0.tgz", - "integrity": "sha512-F2+gxDshqmIub1KdvZkaEfGDwLNpPvk9Fs6LD/MyQxNgMds/WH9OdDDXOmxUZpME+iSK3rQCctkL0DYyytUqMg==", - "dependencies": { - "tslib": "^2.1.0" + "@ethersproject/bignumber": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/bignumber/-/bignumber-5.7.0.tgz", + "integrity": "sha512-n1CAdIHRWjSucQO3MC1zPSVgV/6dy/fjL9pMrPP9peL+QxEg9wOsVqwD4+818B6LUEtaXzVHQiuivzRoxPxUGw==", + "devOptional": true, + "requires": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "bn.js": "^5.2.1" } }, - "node_modules/rxjs/node_modules/tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" - }, - "node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "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/safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "dev": true - }, - "node_modules/saxes": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/saxes/-/saxes-5.0.1.tgz", - "integrity": "sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==", - "dev": true, - "dependencies": { - "xmlchars": "^2.2.0" - }, - "engines": { - "node": ">=10" + "@ethersproject/bytes": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/bytes/-/bytes-5.7.0.tgz", + "integrity": "sha512-nsbxwgFXWh9NyYWo+U8atvmMsSdKJprTcICAkvbBffT75qDocbuggBU0SJiVK2MuTrp0q+xvLkTnGMPK1+uA9A==", + "requires": { + "@ethersproject/logger": "^5.7.0" } }, - "node_modules/scrypt-js": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-3.0.1.tgz", - "integrity": "sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA==" + "@ethersproject/constants": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/constants/-/constants-5.7.0.tgz", + "integrity": "sha512-DHI+y5dBNvkpYUMiRQyxRBYBefZkJfo70VUkUAsRjcPs47muV9evftfZ0PJVCXYbAiCgght0DtcF9srFQmIgWA==", + "devOptional": true, + "requires": { + "@ethersproject/bignumber": "^5.7.0" + } }, - "node_modules/secp256k1": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-4.0.3.tgz", - "integrity": "sha512-NLZVf+ROMxwtEj3Xa562qgv2BK5e2WNmXPiOdVIPLgs6lyTzMvBq0aWTYMI5XCP9jZMVKOcqZLw/Wc4vDkuxhA==", - "hasInstallScript": true, - "dependencies": { - "elliptic": "^6.5.4", - "node-addon-api": "^2.0.0", - "node-gyp-build": "^4.2.0" - }, - "engines": { - "node": ">=10.0.0" + "@ethersproject/contracts": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/contracts/-/contracts-5.7.0.tgz", + "integrity": "sha512-5GJbzEU3X+d33CdfPhcyS+z8MzsTrBGk/sc+G+59+tPa9yFkl6HQ9D6L0QMgNTA9q8dT0XKxxkyp883XsQvbbg==", + "devOptional": true, + "requires": { + "@ethersproject/abi": "^5.7.0", + "@ethersproject/abstract-provider": "^5.7.0", + "@ethersproject/abstract-signer": "^5.7.0", + "@ethersproject/address": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/transactions": "^5.7.0" } }, - "node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true, - "bin": { - "semver": "bin/semver" + "@ethersproject/hash": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/hash/-/hash-5.7.0.tgz", + "integrity": "sha512-qX5WrQfnah1EFnO5zJv1v46a8HW0+E5xuBBDTwMFZLuVTx0tbU2kkx15NqdjxecrLGatQN9FGQKpb1FKdHCt+g==", + "devOptional": true, + "requires": { + "@ethersproject/abstract-signer": "^5.7.0", + "@ethersproject/address": "^5.7.0", + "@ethersproject/base64": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/strings": "^5.7.0" } }, - "node_modules/send": { - "version": "0.17.2", - "resolved": "https://registry.npmjs.org/send/-/send-0.17.2.tgz", - "integrity": "sha512-UJYB6wFSJE3G00nEivR5rgWp8c2xXvJ3OPWPhmuteU0IKj8nKbG3DrjiOmLwpnHGYWAVwA69zmTm++YG0Hmwww==", - "dev": true, - "dependencies": { - "debug": "2.6.9", - "depd": "~1.1.2", - "destroy": "~1.0.4", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "fresh": "0.5.2", - "http-errors": "1.8.1", - "mime": "1.6.0", - "ms": "2.1.3", - "on-finished": "~2.3.0", - "range-parser": "~1.2.1", - "statuses": "~1.5.0" - }, - "engines": { - "node": ">= 0.8.0" + "@ethersproject/hdnode": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/hdnode/-/hdnode-5.7.0.tgz", + "integrity": "sha512-OmyYo9EENBPPf4ERhR7oj6uAtUAhYGqOnIS+jE5pTXvdKBS99ikzq1E7Iv0ZQZ5V36Lqx1qZLeak0Ra16qpeOg==", + "devOptional": true, + "requires": { + "@ethersproject/abstract-signer": "^5.7.0", + "@ethersproject/basex": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/pbkdf2": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/sha2": "^5.7.0", + "@ethersproject/signing-key": "^5.7.0", + "@ethersproject/strings": "^5.7.0", + "@ethersproject/transactions": "^5.7.0", + "@ethersproject/wordlists": "^5.7.0" } }, - "node_modules/send/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==", - "dev": true + "@ethersproject/json-wallets": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/json-wallets/-/json-wallets-5.7.0.tgz", + "integrity": "sha512-8oee5Xgu6+RKgJTkvEMl2wDgSPSAQ9MB/3JYjFV9jlKvcYHUXZC+cQp0njgmxdHkYWn8s6/IqIZYm0YWCjO/0g==", + "devOptional": true, + "requires": { + "@ethersproject/abstract-signer": "^5.7.0", + "@ethersproject/address": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/hdnode": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/pbkdf2": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/random": "^5.7.0", + "@ethersproject/strings": "^5.7.0", + "@ethersproject/transactions": "^5.7.0", + "aes-js": "3.0.0", + "scrypt-js": "3.0.1" + } }, - "node_modules/sentence-case": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/sentence-case/-/sentence-case-2.1.1.tgz", - "integrity": "sha512-ENl7cYHaK/Ktwk5OTD+aDbQ3uC8IByu/6Bkg+HDv8Mm+XnBnppVNalcfJTNsp1ibstKh030/JKQQWglDvtKwEQ==", - "dev": true, - "dependencies": { - "no-case": "^2.2.0", - "upper-case-first": "^1.1.2" + "@ethersproject/keccak256": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/keccak256/-/keccak256-5.7.0.tgz", + "integrity": "sha512-2UcPboeL/iW+pSg6vZ6ydF8tCnv3Iu/8tUmLLzWWGzxWKFFqOBQFLo6uLUv6BDrLgCDfN28RJ/wtByx+jZ4KBg==", + "requires": { + "@ethersproject/bytes": "^5.7.0", + "js-sha3": "0.8.0" } }, - "node_modules/sentence-case/node_modules/lower-case": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz", - "integrity": "sha512-2Fgx1Ycm599x+WGpIYwJOvsjmXFzTSc34IwDWALRA/8AopUKAVPwfJ+h5+f85BCp0PWmmJcWzEpxOpoXycMpdA==", - "dev": true + "@ethersproject/logger": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/logger/-/logger-5.7.0.tgz", + "integrity": "sha512-0odtFdXu/XHtjQXJYA3u9G0G8btm0ND5Cu8M7i5vhEcE8/HmF4Lbdqanwyv4uQTr2tx6b7fQRmgLrsnpQlmnig==" }, - "node_modules/sentence-case/node_modules/no-case": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/no-case/-/no-case-2.3.2.tgz", - "integrity": "sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ==", - "dev": true, - "dependencies": { - "lower-case": "^1.1.1" + "@ethersproject/networks": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/@ethersproject/networks/-/networks-5.7.1.tgz", + "integrity": "sha512-n/MufjFYv3yFcUyfhnXotyDlNdFb7onmkSy8aQERi2PjNcnWQ66xXxa3XlS8nCcA8aJKJjIIMNJTC7tu80GwpQ==", + "devOptional": true, + "requires": { + "@ethersproject/logger": "^5.7.0" } }, - "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==", - "dev": true, - "dependencies": { - "randombytes": "^2.1.0" + "@ethersproject/pbkdf2": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/pbkdf2/-/pbkdf2-5.7.0.tgz", + "integrity": "sha512-oR/dBRZR6GTyaofd86DehG72hY6NpAjhabkhxgr3X2FpJtJuodEl2auADWBZfhDHgVCbu3/H/Ocq2uC6dpNjjw==", + "devOptional": true, + "requires": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/sha2": "^5.7.0" } }, - "node_modules/serve-static": { - "version": "1.14.2", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.2.tgz", - "integrity": "sha512-+TMNA9AFxUEGuC0z2mevogSnn9MXKb4fa7ngeRMJaaGv8vTwnIEkKi+QGvPt33HSnf8pRS+WGM0EbMtCJLKMBQ==", - "dev": true, - "dependencies": { - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "parseurl": "~1.3.3", - "send": "0.17.2" - }, - "engines": { - "node": ">= 0.8.0" + "@ethersproject/properties": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/properties/-/properties-5.7.0.tgz", + "integrity": "sha512-J87jy8suntrAkIZtecpxEPxY//szqr1mlBaYlQ0r4RCaiD2hjheqF9s1LVE8vVuJCXisjIP+JgtK/Do54ej4Sw==", + "requires": { + "@ethersproject/logger": "^5.7.0" } }, - "node_modules/servify": { - "version": "0.1.12", - "resolved": "https://registry.npmjs.org/servify/-/servify-0.1.12.tgz", - "integrity": "sha512-/xE6GvsKKqyo1BAY+KxOWXcLpPsUUyji7Qg3bVD7hh1eRze5bR1uYiuDA/k3Gof1s9BTzQZEJK8sNcNGFIzeWw==", - "dev": true, + "@ethersproject/providers": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/@ethersproject/providers/-/providers-5.7.2.tgz", + "integrity": "sha512-g34EWZ1WWAVgr4aptGlVBF8mhl3VWjv+8hoAnzStu8Ah22VHBsuGzP17eb6xDVRzw895G4W7vvx60lFFur/1Rg==", + "devOptional": true, + "requires": { + "@ethersproject/abstract-provider": "^5.7.0", + "@ethersproject/abstract-signer": "^5.7.0", + "@ethersproject/address": "^5.7.0", + "@ethersproject/base64": "^5.7.0", + "@ethersproject/basex": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/hash": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/networks": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/random": "^5.7.0", + "@ethersproject/rlp": "^5.7.0", + "@ethersproject/sha2": "^5.7.0", + "@ethersproject/strings": "^5.7.0", + "@ethersproject/transactions": "^5.7.0", + "@ethersproject/web": "^5.7.0", + "bech32": "1.1.4", + "ws": "7.4.6" + }, "dependencies": { - "body-parser": "^1.16.0", - "cors": "^2.8.1", - "express": "^4.14.0", - "request": "^2.79.0", - "xhr": "^2.3.3" - }, - "engines": { - "node": ">=6" + "bech32": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/bech32/-/bech32-1.1.4.tgz", + "integrity": "sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ==", + "devOptional": true + }, + "ws": { + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz", + "integrity": "sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==", + "devOptional": true, + "requires": {} + } } }, - "node_modules/setimmediate": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", - "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=" - }, - "node_modules/setprototypeof": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", - "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" + "@ethersproject/random": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/random/-/random-5.7.0.tgz", + "integrity": "sha512-19WjScqRA8IIeWclFme75VMXSBvi4e6InrUNuaR4s5pTF2qNhcGdCUwdxUVGtDDqC00sDLCO93jPQoDUH4HVmQ==", + "devOptional": true, + "requires": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0" + } }, - "node_modules/sha.js": { - "version": "2.4.11", - "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", - "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", - "dependencies": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - }, - "bin": { - "sha.js": "bin.js" + "@ethersproject/rlp": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/rlp/-/rlp-5.7.0.tgz", + "integrity": "sha512-rBxzX2vK8mVF7b0Tol44t5Tb8gomOHkj5guL+HhzQ1yBh/ydjGnpw6at+X6Iw0Kp3OzzzkcKp8N9r0W4kYSs9w==", + "devOptional": true, + "requires": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0" } }, - "node_modules/sha3": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/sha3/-/sha3-2.1.4.tgz", - "integrity": "sha512-S8cNxbyb0UGUM2VhRD4Poe5N58gJnJsLJ5vC7FYWGUmGhcsj4++WaIOBFVDxlG0W3To6xBuiRh+i0Qp2oNCOtg==", - "dependencies": { - "buffer": "6.0.3" + "@ethersproject/sha2": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/sha2/-/sha2-5.7.0.tgz", + "integrity": "sha512-gKlH42riwb3KYp0reLsFTokByAKoJdgFCwI+CCiX/k+Jm2mbNs6oOaCjYQSlI1+XBVejwH2KrmCbMAT/GnRDQw==", + "devOptional": true, + "requires": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "hash.js": "1.1.7" } }, - "node_modules/sha3/node_modules/buffer": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", - "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" + "@ethersproject/signing-key": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/signing-key/-/signing-key-5.7.0.tgz", + "integrity": "sha512-MZdy2nL3wO0u7gkB4nA/pEf8lu1TlFswPNmy8AiYkfKTdO6eXBJyUdmHO/ehm/htHw9K/qF8ujnTyUAD+Ry54Q==", + "requires": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "bn.js": "^5.2.1", + "elliptic": "6.5.4", + "hash.js": "1.1.7" } }, - "node_modules/shallowequal": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/shallowequal/-/shallowequal-1.1.0.tgz", - "integrity": "sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==", - "dev": true + "@ethersproject/solidity": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/solidity/-/solidity-5.7.0.tgz", + "integrity": "sha512-HmabMd2Dt/raavyaGukF4XxizWKhKQ24DoLtdNbBmNKUOPqwjsKQSdV9GQtj9CBEea9DlzETlVER1gYeXXBGaA==", + "devOptional": true, + "requires": { + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/sha2": "^5.7.0", + "@ethersproject/strings": "^5.7.0" + } }, - "node_modules/shebang-command": { - "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" - }, - "engines": { - "node": ">=8" + "@ethersproject/strings": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/strings/-/strings-5.7.0.tgz", + "integrity": "sha512-/9nu+lj0YswRNSH0NXYqrh8775XNyEdUQAuf3f+SmOrnVewcJ5SBNAjF7lpgehKi4abvNNXyf+HX86czCdJ8Mg==", + "devOptional": true, + "requires": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/logger": "^5.7.0" } }, - "node_modules/shebang-regex": { - "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" + "@ethersproject/transactions": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/transactions/-/transactions-5.7.0.tgz", + "integrity": "sha512-kmcNicCp1lp8qanMTC3RIikGgoJ80ztTyvtsFvCYpSCfkjhD0jZ2LOrnbcuxuToLIUYYf+4XwD1rP+B/erDIhQ==", + "devOptional": true, + "requires": { + "@ethersproject/address": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/rlp": "^5.7.0", + "@ethersproject/signing-key": "^5.7.0" } }, - "node_modules/shelljs": { - "version": "0.8.5", - "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.5.tgz", - "integrity": "sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==", - "optional": true, - "dependencies": { - "glob": "^7.0.0", - "interpret": "^1.0.0", - "rechoir": "^0.6.2" - }, - "bin": { - "shjs": "bin/shjs" - }, - "engines": { - "node": ">=4" + "@ethersproject/units": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/units/-/units-5.7.0.tgz", + "integrity": "sha512-pD3xLMy3SJu9kG5xDGI7+xhTEmGXlEqXU4OfNapmfnxLVY4EMSSRp7j1k7eezutBPH7RBN/7QPnwR7hzNlEFeg==", + "devOptional": true, + "requires": { + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/logger": "^5.7.0" } }, - "node_modules/shiki": { - "version": "0.9.15", - "resolved": "https://registry.npmjs.org/shiki/-/shiki-0.9.15.tgz", - "integrity": "sha512-/Y0z9IzhJ8nD9nbceORCqu6NgT9X6I8Fk8c3SICHI5NbZRLdZYFaB233gwct9sU0vvSypyaL/qaKvzyQGJBZSw==", - "dev": true, - "dependencies": { - "jsonc-parser": "^3.0.0", - "vscode-oniguruma": "^1.6.1", - "vscode-textmate": "5.2.0" + "@ethersproject/wallet": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/wallet/-/wallet-5.7.0.tgz", + "integrity": "sha512-MhmXlJXEJFBFVKrDLB4ZdDzxcBxQ3rLyCkhNqVu3CDYvR97E+8r01UgrI+TI99Le+aYm/in/0vp86guJuM7FCA==", + "devOptional": true, + "requires": { + "@ethersproject/abstract-provider": "^5.7.0", + "@ethersproject/abstract-signer": "^5.7.0", + "@ethersproject/address": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/hash": "^5.7.0", + "@ethersproject/hdnode": "^5.7.0", + "@ethersproject/json-wallets": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/random": "^5.7.0", + "@ethersproject/signing-key": "^5.7.0", + "@ethersproject/transactions": "^5.7.0", + "@ethersproject/wordlists": "^5.7.0" } }, - "node_modules/shx": { - "version": "0.3.4", - "resolved": "https://registry.npmjs.org/shx/-/shx-0.3.4.tgz", - "integrity": "sha512-N6A9MLVqjxZYcVn8hLmtneQWIJtp8IKzMP4eMnx+nqkvXoqinUPCbUFLp2UcWTEIUONhlk0ewxr/jaVGlc+J+g==", - "optional": true, - "dependencies": { - "minimist": "^1.2.3", - "shelljs": "^0.8.5" - }, - "bin": { - "shx": "lib/cli.js" - }, - "engines": { - "node": ">=6" + "@ethersproject/web": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/@ethersproject/web/-/web-5.7.1.tgz", + "integrity": "sha512-Gueu8lSvyjBWL4cYsWsjh6MtMwM0+H4HvqFPZfB6dV8ctbP9zFAO73VG1cMWae0FLPCtz0peKPpZY8/ugJJX2w==", + "devOptional": true, + "requires": { + "@ethersproject/base64": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/strings": "^5.7.0" } }, - "node_modules/signal-exit": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.5.tgz", - "integrity": "sha512-KWcOiKeQj6ZyXx7zq4YxSMgHRlod4czeBQZrPb8OKcohcqAXShm7E20kEMle9WBt26hFcAf0qLOcp5zmY7kOqQ==", - "dev": true + "@ethersproject/wordlists": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/wordlists/-/wordlists-5.7.0.tgz", + "integrity": "sha512-S2TFNJNfHWVHNE6cNDjbVlZ6MgE17MIxMbMg2zv3wn+3XSJGosL1m9ZVv3GXCf/2ymSsQ+hRI5IzoMJTG6aoVA==", + "devOptional": true, + "requires": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/hash": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/strings": "^5.7.0" + } }, - "node_modules/simple-concat": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz", - "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==", - "dev": true, - "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/simple-get": { - "version": "2.8.2", - "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-2.8.2.tgz", - "integrity": "sha512-Ijd/rV5o+mSBBs4F/x9oDPtTx9Zb6X9brmnXvMW4J7IR15ngi9q5xxqWBKU744jTZiaXtxaPL7uHG6vtN8kUkw==", - "dev": true, - "dependencies": { - "decompress-response": "^3.3.0", - "once": "^1.3.1", - "simple-concat": "^1.0.0" - } - }, - "node_modules/simple-get/node_modules/decompress-response": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", - "integrity": "sha512-BzRPQuY1ip+qDonAOz42gRm/pg9F768C+npV/4JOsxRC2sq+Rlk+Q4ZCAsOhnIaMrgarILY+RMUIvMmmX1qAEA==", - "dev": true, - "dependencies": { - "mimic-response": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "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" - } - }, - "node_modules/snake-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/snake-case/-/snake-case-3.0.4.tgz", - "integrity": "sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==", - "dependencies": { - "dot-case": "^3.0.4", - "tslib": "^2.0.3" - } - }, - "node_modules/snake-case/node_modules/tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" - }, - "node_modules/snakecase-keys": { - "version": "5.4.5", - "resolved": "https://registry.npmjs.org/snakecase-keys/-/snakecase-keys-5.4.5.tgz", - "integrity": "sha512-qSQVcgcWk8mQUN1miVGnRMAUye1dbj9+F9PVkR7wZUXNCidQwrl/kOKmoYf+WbH2ju6c9pXnlmbS2he7pb2/9A==", - "optional": true, - "dependencies": { - "map-obj": "^4.1.0", - "snake-case": "^3.0.4", - "type-fest": "^2.5.2" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/snakecase-keys/node_modules/type-fest": { - "version": "2.19.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz", - "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==", - "optional": true, - "engines": { - "node": ">=12.20" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/source-map-support": { - "version": "0.5.20", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.20.tgz", - "integrity": "sha512-n1lZZ8Ve4ksRqizaBQgxXDgKwttHDhyfQjA6YZZn8+AroHbsIz+JjwxQDxbp+7y5OYCI8t1Yk7etjD9CRd2hIw==", - "dev": true, - "dependencies": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "node_modules/source-map-support/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/spark-md5": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/spark-md5/-/spark-md5-3.0.2.tgz", - "integrity": "sha512-wcFzz9cDfbuqe0FZzfi2or1sgyIrsDwmPwfZC4hiNidPdPINjeUwNfv5kldczoEAcjl9Y1L3SM7Uz2PUEQzxQw==", - "dev": true, - "optional": true - }, - "node_modules/sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", - "dev": true - }, - "node_modules/sshpk": { - "version": "1.17.0", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.17.0.tgz", - "integrity": "sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ==", - "dev": true, - "dependencies": { - "asn1": "~0.2.3", - "assert-plus": "^1.0.0", - "bcrypt-pbkdf": "^1.0.0", - "dashdash": "^1.12.0", - "ecc-jsbn": "~0.1.1", - "getpass": "^0.1.1", - "jsbn": "~0.1.0", - "safer-buffer": "^2.0.2", - "tweetnacl": "~0.14.0" - }, - "bin": { - "sshpk-conv": "bin/sshpk-conv", - "sshpk-sign": "bin/sshpk-sign", - "sshpk-verify": "bin/sshpk-verify" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/sshpk/node_modules/tweetnacl": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==", - "dev": true - }, - "node_modules/stack-utils": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.5.tgz", - "integrity": "sha512-xrQcmYhOsn/1kX+Vraq+7j4oE2j/6BFscZ0etmYg81xuM8Gq0022Pxb8+IqgOFUIaxHs0KaSb7T1+OegiNrNFA==", - "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" - } - }, - "node_modules/statuses": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/store2": { - "version": "2.14.2", - "resolved": "https://registry.npmjs.org/store2/-/store2-2.14.2.tgz", - "integrity": "sha512-siT1RiqlfQnGqgT/YzXVUNsom9S0H1OX+dpdGN1xkyYATo4I6sep5NmsRD/40s3IIOvlCq6akxkqG82urIZW1w==", - "optional": true - }, - "node_modules/strict-uri-encode": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz", - "integrity": "sha512-R3f198pcvnB+5IpnBlRkphuE9n46WyVl8I39W/ZUTZLz4nqSP/oLYUrcnJrw462Ds8he4YKMov2efsTIw1BDGQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/string_decoder": { - "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" - } - }, - "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", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "devOptional": true, - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "devOptional": true, - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "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-hex-prefix": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-hex-prefix/-/strip-hex-prefix-1.0.0.tgz", - "integrity": "sha1-DF8VX+8RUTczd96du1iNoFUA428=", - "devOptional": true, - "dependencies": { - "is-hex-prefixed": "1.0.0" - }, - "engines": { - "node": ">=6.5.0", - "npm": ">=3" - } - }, - "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==", - "dev": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/sublevel-pouchdb": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/sublevel-pouchdb/-/sublevel-pouchdb-7.3.1.tgz", - "integrity": "sha512-n+4fK72F/ORdqPwoGgMGYeOrW2HaPpW9o9k80bT1B3Cim5BSvkKkr9WbWOWynni/GHkbCEdvLVFJL1ktosAdhQ==", - "dev": true, - "optional": true, - "dependencies": { - "inherits": "2.0.4", - "level-codec": "9.0.2", - "ltgt": "2.2.1", - "readable-stream": "1.1.14" - } - }, - "node_modules/sublevel-pouchdb/node_modules/readable-stream": { - "version": "1.1.14", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", - "integrity": "sha512-+MeVjFf4L44XUkhM1eYbD8fyEsxcV81pqMSR5gblfcLCHfZvbrqy4/qYHE+/R5HoBUT11WV5O08Cr1n3YXkWVQ==", - "dev": true, - "optional": true, - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" - } - }, - "node_modules/sublevel-pouchdb/node_modules/string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==", - "dev": true, - "optional": true - }, - "node_modules/superstruct": { - "version": "0.14.2", - "resolved": "https://registry.npmjs.org/superstruct/-/superstruct-0.14.2.tgz", - "integrity": "sha512-nPewA6m9mR3d6k7WkZ8N8zpTWfenFH3q9pA2PkuiZxINr9DKB2+40wEQf0ixn8VaGuJ78AB6iWOtStI+/4FKZQ==" - }, - "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==", - "devOptional": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/supports-hyperlinks": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.2.0.tgz", - "integrity": "sha512-6sXEzV5+I5j8Bmq9/vUphGRM/RJNT9SCURJLjwfOg51heRtguGWDzcaBlgAzKhQa0EVNpPEKzQuBwZ8S8WaCeQ==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0", - "supports-color": "^7.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/supports-hyperlinks/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/supports-hyperlinks/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/swap-case": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/swap-case/-/swap-case-1.1.2.tgz", - "integrity": "sha512-BAmWG6/bx8syfc6qXPprof3Mn5vQgf5dwdUNJhsNqU9WdPt5P+ES/wQ5bxfijy8zwZgZZHslC3iAsxsuQMCzJQ==", - "dev": true, - "dependencies": { - "lower-case": "^1.1.1", - "upper-case": "^1.1.1" - } - }, - "node_modules/swap-case/node_modules/lower-case": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz", - "integrity": "sha512-2Fgx1Ycm599x+WGpIYwJOvsjmXFzTSc34IwDWALRA/8AopUKAVPwfJ+h5+f85BCp0PWmmJcWzEpxOpoXycMpdA==", - "dev": true - }, - "node_modules/swarm-js": { - "version": "0.1.42", - "resolved": "https://registry.npmjs.org/swarm-js/-/swarm-js-0.1.42.tgz", - "integrity": "sha512-BV7c/dVlA3R6ya1lMlSSNPLYrntt0LUq4YMgy3iwpCIc6rZnS5W2wUoctarZ5pXlpKtxDDf9hNziEkcfrxdhqQ==", - "dev": true, - "dependencies": { - "bluebird": "^3.5.0", - "buffer": "^5.0.5", - "eth-lib": "^0.1.26", - "fs-extra": "^4.0.2", - "got": "^11.8.5", - "mime-types": "^2.1.16", - "mkdirp-promise": "^5.0.1", - "mock-fs": "^4.1.0", - "setimmediate": "^1.0.5", - "tar": "^4.0.2", - "xhr-request": "^1.0.1" - } - }, - "node_modules/swarm-js/node_modules/@szmarczak/http-timer": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-4.0.6.tgz", - "integrity": "sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==", - "dev": true, - "dependencies": { - "defer-to-connect": "^2.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/swarm-js/node_modules/buffer": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" - } - }, - "node_modules/swarm-js/node_modules/cacheable-lookup": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz", - "integrity": "sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==", - "dev": true, - "engines": { - "node": ">=10.6.0" - } - }, - "node_modules/swarm-js/node_modules/fs-extra": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-4.0.3.tgz", - "integrity": "sha512-q6rbdDd1o2mAnQreO7YADIxf/Whx4AHBiRf6d+/cVT8h44ss+lHgxf1FemcqDnQt9X3ct4McHr+JMGlYSsK7Cg==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - }, - "node_modules/swarm-js/node_modules/got": { - "version": "11.8.6", - "resolved": "https://registry.npmjs.org/got/-/got-11.8.6.tgz", - "integrity": "sha512-6tfZ91bOr7bOXnK7PRDCGBLa1H4U080YHNaAQ2KsMGlLEzRbk44nsZF2E1IeRc3vtJHPVbKCYgdFbaGO2ljd8g==", - "dev": true, - "dependencies": { - "@sindresorhus/is": "^4.0.0", - "@szmarczak/http-timer": "^4.0.5", - "@types/cacheable-request": "^6.0.1", - "@types/responselike": "^1.0.0", - "cacheable-lookup": "^5.0.3", - "cacheable-request": "^7.0.2", - "decompress-response": "^6.0.0", - "http2-wrapper": "^1.0.0-beta.5.2", - "lowercase-keys": "^2.0.0", - "p-cancelable": "^2.0.0", - "responselike": "^2.0.0" - }, - "engines": { - "node": ">=10.19.0" - }, - "funding": { - "url": "https://github.com/sindresorhus/got?sponsor=1" - } - }, - "node_modules/swarm-js/node_modules/http2-wrapper": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-1.0.3.tgz", - "integrity": "sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg==", - "dev": true, - "dependencies": { - "quick-lru": "^5.1.1", - "resolve-alpn": "^1.0.0" - }, - "engines": { - "node": ">=10.19.0" - } - }, - "node_modules/swarm-js/node_modules/lowercase-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", - "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/swarm-js/node_modules/p-cancelable": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.1.1.tgz", - "integrity": "sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/symbol-observable": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-4.0.0.tgz", - "integrity": "sha512-b19dMThMV4HVFynSAM1++gBHAbk2Tc/osgLIBZMKsyqh34jb2e8Os7T6ZW/Bt3pJFdBTd2JwAnAAEQV7rSNvcQ==", - "optional": true, - "engines": { - "node": ">=0.10" - } - }, - "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 - }, - "node_modules/tar": { - "version": "4.4.19", - "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.19.tgz", - "integrity": "sha512-a20gEsvHnWe0ygBY8JbxoM4w3SJdhc7ZAuxkLqh+nvNQN2IOt0B5lLgM490X5Hl8FF0dl0tOf2ewFYAlIFgzVA==", - "dev": true, - "dependencies": { - "chownr": "^1.1.4", - "fs-minipass": "^1.2.7", - "minipass": "^2.9.0", - "minizlib": "^1.3.3", - "mkdirp": "^0.5.5", - "safe-buffer": "^5.2.1", - "yallist": "^3.1.1" - }, - "engines": { - "node": ">=4.5" - } - }, - "node_modules/tar/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/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" - }, - "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, - "dependencies": { - "@istanbuljs/schema": "^0.1.2", - "glob": "^7.1.4", - "minimatch": "^3.0.4" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/test-value": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/test-value/-/test-value-2.1.0.tgz", - "integrity": "sha512-+1epbAxtKeXttkGFMTX9H42oqzOTufR1ceCF+GYA5aOmvaPq9wd4PUS8329fn2RRLGNeUkgRLnVpycjx8DsO2w==", - "dev": true, - "dependencies": { - "array-back": "^1.0.3", - "typical": "^2.6.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/test-value/node_modules/array-back": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-1.0.4.tgz", - "integrity": "sha512-1WxbZvrmyhkNoeYcizokbmh5oiOCIfyvGtcqbK3Ls1v1fKcquzxnQSceOx6tzq7jmai2kFLWIpGND2cLhH6TPw==", - "dev": true, - "dependencies": { - "typical": "^2.6.0" - }, - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/text-encoding-utf-8": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/text-encoding-utf-8/-/text-encoding-utf-8-1.0.2.tgz", - "integrity": "sha512-8bw4MY9WjdsD2aMtO0OzOCY3pXGYNx2d2FfHRVUKkiCPDWjKuOlhLVASS+pD7VkLTVjW268LYJHwsnPFlBpbAg==" - }, - "node_modules/throat": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/throat/-/throat-6.0.1.tgz", - "integrity": "sha512-8hmiGIJMDlwjg7dlJ4yKGLK8EsYqKgPWbG3b4wjJddKNwc7N7Dpn08Df4szr/sZdMVeOstrdYSsqzX6BYbcB+w==", - "dev": true - }, - "node_modules/through": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=" - }, - "node_modules/through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", - "optional": true, - "dependencies": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" - } - }, - "node_modules/through2/node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", - "optional": true - }, - "node_modules/through2/node_modules/readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", - "optional": true, - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/through2/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "optional": true - }, - "node_modules/through2/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "optional": true, - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/timed-out": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz", - "integrity": "sha512-G7r3AhovYtr5YKOWQkta8RKAPb+J9IsO4uVmzjl8AZwfhs8UcUwTiD6gcJYSgOtzyjvQKrKYn41syHbUWMkafA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/tiny-secp256k1": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/tiny-secp256k1/-/tiny-secp256k1-1.1.6.tgz", - "integrity": "sha512-FmqJZGduTyvsr2cF3375fqGHUovSwDi/QytexX1Se4BPuPZpTE5Ftp5fg+EFSuEf3lhZqgCRjEG3ydUQ/aNiwA==", - "hasInstallScript": true, - "dependencies": { - "bindings": "^1.3.0", - "bn.js": "^4.11.8", - "create-hmac": "^1.1.7", - "elliptic": "^6.4.0", - "nan": "^2.13.2" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/tiny-secp256k1/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" - }, - "node_modules/tiny-typed-emitter": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/tiny-typed-emitter/-/tiny-typed-emitter-2.1.0.tgz", - "integrity": "sha512-qVtvMxeXbVej0cQWKqVSSAHmKZEHAvxdF8HEUBFWts8h+xEo5m/lEiPakuyZ3BnCBjOD8i24kzNOiOLLgsSxhA==", - "dev": true, - "optional": true - }, - "node_modules/title-case": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/title-case/-/title-case-2.1.1.tgz", - "integrity": "sha512-EkJoZ2O3zdCz3zJsYCsxyq2OC5hrxR9mfdd5I+w8h/tmFfeOxJ+vvkxsKxdmN0WtS9zLdHEgfgVOiMVgv+Po4Q==", - "dev": true, - "dependencies": { - "no-case": "^2.2.0", - "upper-case": "^1.0.3" - } - }, - "node_modules/title-case/node_modules/lower-case": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz", - "integrity": "sha512-2Fgx1Ycm599x+WGpIYwJOvsjmXFzTSc34IwDWALRA/8AopUKAVPwfJ+h5+f85BCp0PWmmJcWzEpxOpoXycMpdA==", - "dev": true - }, - "node_modules/title-case/node_modules/no-case": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/no-case/-/no-case-2.3.2.tgz", - "integrity": "sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ==", - "dev": true, - "dependencies": { - "lower-case": "^1.1.1" - } - }, - "node_modules/tmp": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz", - "integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==", - "dependencies": { - "rimraf": "^3.0.0" - }, - "engines": { - "node": ">=8.17.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": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", - "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", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/toidentifier": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", - "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", - "engines": { - "node": ">=0.6" - } - }, - "node_modules/toml": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/toml/-/toml-3.0.0.tgz", - "integrity": "sha512-y/mWCZinnvxjTKYhJ+pYxwD0mRLVvOtdS2Awbgxln6iEnt4rk0yBxeSBHkGJcPucRiG0e55mwWp+g/05rsrd6w==" - }, - "node_modules/tough-cookie": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.0.0.tgz", - "integrity": "sha512-tHdtEpQCMrc1YLrMaqXXcj6AxhYi/xgit6mZu1+EDWUn+qhUf8wMQoFIy9NXuq23zAwtcB0t/MjACGR18pcRbg==", - "dev": true, - "dependencies": { - "psl": "^1.1.33", - "punycode": "^2.1.1", - "universalify": "^0.1.2" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/tr46": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-2.1.0.tgz", - "integrity": "sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==", - "dev": true, - "dependencies": { - "punycode": "^2.1.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/truffle": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/truffle/-/truffle-5.7.2.tgz", - "integrity": "sha512-8MlSliw7b6zF1Z89L5CwlI74IyhdNXGQUvjECNGpZEtXZ1jKzFJV/XjpjpvSMZrABG+vLFKwQo6UdTTB5ea+tg==", - "dev": true, - "hasInstallScript": true, - "dependencies": { - "@truffle/db-loader": "^0.2.11", - "@truffle/debugger": "^11.0.22", - "app-module-path": "^2.2.0", - "ganache": "7.6.0", - "mocha": "10.1.0", - "original-require": "^1.0.1" - }, - "bin": { - "truffle": "build/cli.bundled.js" - }, - "optionalDependencies": { - "@truffle/db": "^2.0.11" - } - }, - "node_modules/ts-essentials": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/ts-essentials/-/ts-essentials-7.0.3.tgz", - "integrity": "sha512-8+gr5+lqO3G84KdiTSMRLtuyJ+nTBVRKuCrK4lidMPdVeEp0uqC875uE5NMcaA7YYMN7XsNiFQuMvasF8HT/xQ==", - "dev": true, - "peerDependencies": { - "typescript": ">=3.7.0" - } - }, - "node_modules/ts-invariant": { - "version": "0.10.3", - "resolved": "https://registry.npmjs.org/ts-invariant/-/ts-invariant-0.10.3.tgz", - "integrity": "sha512-uivwYcQaxAucv1CzRp2n/QdYPo4ILf9VXgH19zEIjFx2EJufV16P0JtJVpYHy89DItG6Kwj2oIUjrcK5au+4tQ==", - "optional": true, - "dependencies": { - "tslib": "^2.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/ts-invariant/node_modules/tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", - "optional": true - }, - "node_modules/ts-jest": { - "version": "27.0.7", - "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-27.0.7.tgz", - "integrity": "sha512-O41shibMqzdafpuP+CkrOL7ykbmLh+FqQrXEmV9CydQ5JBk0Sj0uAEF5TNNe94fZWKm3yYvWa/IbyV4Yg1zK2Q==", - "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 - } - } - }, - "node_modules/ts-jest/node_modules/semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - }, - "node_modules/tslint": { - "version": "6.1.3", - "resolved": "https://registry.npmjs.org/tslint/-/tslint-6.1.3.tgz", - "integrity": "sha512-IbR4nkT96EQOvKE2PW/djGz8iGNeJ4rF2mBfiYaR/nvUWYKJhLwimoJKgjIFEIDibBtOevj7BqCRL4oHeWWUCg==", - "deprecated": "TSLint has been deprecated in favor of ESLint. Please see https://github.com/palantir/tslint/issues/4534 for more information.", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.0.0", - "builtin-modules": "^1.1.1", - "chalk": "^2.3.0", - "commander": "^2.12.1", - "diff": "^4.0.1", - "glob": "^7.1.1", - "js-yaml": "^3.13.1", - "minimatch": "^3.0.4", - "mkdirp": "^0.5.3", - "resolve": "^1.3.2", - "semver": "^5.3.0", - "tslib": "^1.13.0", - "tsutils": "^2.29.0" - }, - "bin": { - "tslint": "bin/tslint" - }, - "engines": { - "node": ">=4.8.0" - }, - "peerDependencies": { - "typescript": ">=2.3.0-dev || >=2.4.0-dev || >=2.5.0-dev || >=2.6.0-dev || >=2.7.0-dev || >=2.8.0-dev || >=2.9.0-dev || >=3.0.0-dev || >= 3.1.0-dev || >= 3.2.0-dev || >= 4.0.0-dev" - } - }, - "node_modules/tslint-config-prettier": { - "version": "1.18.0", - "resolved": "https://registry.npmjs.org/tslint-config-prettier/-/tslint-config-prettier-1.18.0.tgz", - "integrity": "sha512-xPw9PgNPLG3iKRxmK7DWr+Ea/SzrvfHtjFt5LBl61gk2UBG/DB9kCXRjv+xyIU1rUtnayLeMUVJBcMX8Z17nDg==", - "dev": true, - "bin": { - "tslint-config-prettier-check": "bin/check.js" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/tsutils": { - "version": "2.29.0", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-2.29.0.tgz", - "integrity": "sha512-g5JVHCIJwzfISaXpXE1qvNalca5Jwob6FjI4AoPlqMusJ6ftFE7IkkFoMhVLRgK+4Kx3gkzb8UZK5t5yTTvEmA==", - "dev": true, - "dependencies": { - "tslib": "^1.8.1" - }, - "peerDependencies": { - "typescript": ">=2.1.0 || >=2.1.0-dev || >=2.2.0-dev || >=2.3.0-dev || >=2.4.0-dev || >=2.5.0-dev || >=2.6.0-dev || >=2.7.0-dev || >=2.8.0-dev || >=2.9.0-dev || >= 3.0.0-dev || >= 3.1.0-dev" - } - }, - "node_modules/tunnel-agent": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==", - "dev": true, - "dependencies": { - "safe-buffer": "^5.0.1" - }, - "engines": { - "node": "*" - } - }, - "node_modules/tweetnacl": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.3.tgz", - "integrity": "sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==" - }, - "node_modules/tweetnacl-util": { - "version": "0.15.1", - "resolved": "https://registry.npmjs.org/tweetnacl-util/-/tweetnacl-util-0.15.1.tgz", - "integrity": "sha512-RKJBIj8lySrShN4w6i/BonWp2Z/uxwC3h4y7xsRrpP59ZboCd0GpEVsOnMDYLMmKBpYhb5TgHzZXy7wTfYFBRw==", - "optional": true - }, - "node_modules/type": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/type/-/type-1.2.0.tgz", - "integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==", - "dev": true - }, - "node_modules/type-check": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", - "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", - "dev": true, - "dependencies": { - "prelude-ls": "~1.1.2" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/type-fest": { - "version": "0.21.3", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", - "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/type-is": { - "version": "1.6.18", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", - "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", - "dev": true, - "dependencies": { - "media-typer": "0.3.0", - "mime-types": "~2.1.24" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/typechain": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/typechain/-/typechain-5.2.0.tgz", - "integrity": "sha512-0INirvQ+P+MwJOeMct+WLkUE4zov06QxC96D+i3uGFEHoiSkZN70MKDQsaj8zkL86wQwByJReI2e7fOUwECFuw==", - "dev": true, - "dependencies": { - "@types/prettier": "^2.1.1", - "command-line-args": "^4.0.7", - "debug": "^4.1.1", - "fs-extra": "^7.0.0", - "glob": "^7.1.6", - "js-sha3": "^0.8.0", - "lodash": "^4.17.15", - "mkdirp": "^1.0.4", - "prettier": "^2.1.2", - "ts-essentials": "^7.0.1" - }, - "bin": { - "typechain": "dist/cli/cli.js" - }, - "peerDependencies": { - "typescript": ">=4.1.0" - } - }, - "node_modules/typechain/node_modules/debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "dev": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/typechain/node_modules/mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "dev": true, - "bin": { - "mkdirp": "bin/cmd.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/typechain/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "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/typedoc": { - "version": "0.21.10", - "resolved": "https://registry.npmjs.org/typedoc/-/typedoc-0.21.10.tgz", - "integrity": "sha512-Y0wYIehkjkPfsp3pv86fp3WPHUcOf8pnQUDLwG1PqSccUSqdsv7Pz1Gd5WrTJvXQB2wO1mKlZ8qW8qMiopKyjA==", - "dev": true, - "dependencies": { - "glob": "^7.1.7", - "handlebars": "^4.7.7", - "lunr": "^2.3.9", - "marked": "^4.0.10", - "minimatch": "^3.0.0", - "progress": "^2.0.3", - "shiki": "^0.9.8", - "typedoc-default-themes": "^0.12.10" - }, - "bin": { - "typedoc": "bin/typedoc" - }, - "engines": { - "node": ">= 12.10.0" - }, - "peerDependencies": { - "typescript": "4.0.x || 4.1.x || 4.2.x || 4.3.x || 4.4.x" - } - }, - "node_modules/typedoc-default-themes": { - "version": "0.12.10", - "resolved": "https://registry.npmjs.org/typedoc-default-themes/-/typedoc-default-themes-0.12.10.tgz", - "integrity": "sha512-fIS001cAYHkyQPidWXmHuhs8usjP5XVJjWB8oZGqkTowZaz3v7g3KDZeeqE82FBrmkAnIBOY3jgy7lnPnqATbA==", - "dev": true, - "engines": { - "node": ">= 8" - } - }, - "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.3.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.3.5.tgz", - "integrity": "sha512-DqQgihaQ9cUrskJo9kIyW/+g0Vxsk8cDtZ52a3NGh0YNTfpUSArXSohyUGnvbPazEPLu398C0UxmKSOrPumUzA==", - "dev": true, - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=4.2.0" - } - }, - "node_modules/typescript-compare": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/typescript-compare/-/typescript-compare-0.0.2.tgz", - "integrity": "sha512-8ja4j7pMHkfLJQO2/8tut7ub+J3Lw2S3061eJLFQcvs3tsmJKp8KG5NtpLn7KcY2w08edF74BSVN7qJS0U6oHA==", - "dev": true, - "dependencies": { - "typescript-logic": "^0.0.0" - } - }, - "node_modules/typescript-logic": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/typescript-logic/-/typescript-logic-0.0.0.tgz", - "integrity": "sha512-zXFars5LUkI3zP492ls0VskH3TtdeHCqu0i7/duGt60i5IGPIpAHE/DWo5FqJ6EjQ15YKXrt+AETjv60Dat34Q==", - "dev": true - }, - "node_modules/typescript-tuple": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/typescript-tuple/-/typescript-tuple-2.2.1.tgz", - "integrity": "sha512-Zcr0lbt8z5ZdEzERHAMAniTiIKerFCMgd7yjq1fPnDJ43et/k9twIFQMUYff9k5oXcsQ0WpvFcgzK2ZKASoW6Q==", - "dev": true, - "dependencies": { - "typescript-compare": "^0.0.2" - } - }, - "node_modules/typical": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/typical/-/typical-2.6.1.tgz", - "integrity": "sha512-ofhi8kjIje6npGozTip9Fr8iecmYfEbS06i0JnIg+rh51KakryWF4+jX8lLKZVhy6N+ID45WYSFCxPOdTWCzNg==", - "dev": true - }, - "node_modules/u3": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/u3/-/u3-0.1.1.tgz", - "integrity": "sha512-+J5D5ir763y+Am/QY6hXNRlwljIeRMZMGs0cT6qqZVVzzT3X3nFPXVyPOFRMOR4kupB0T8JnCdpWdp6Q/iXn3w==" - }, - "node_modules/uglify-js": { - "version": "3.17.4", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.17.4.tgz", - "integrity": "sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g==", - "dev": true, - "optional": true, - "bin": { - "uglifyjs": "bin/uglifyjs" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/ultron": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ultron/-/ultron-1.1.1.tgz", - "integrity": "sha512-UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og==", - "dev": true - }, - "node_modules/universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", - "dev": true, - "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/unpipe": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/untildify": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/untildify/-/untildify-4.0.0.tgz", - "integrity": "sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==", - "optional": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/upper-case": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/upper-case/-/upper-case-1.1.3.tgz", - "integrity": "sha512-WRbjgmYzgXkCV7zNVpy5YgrHgbBv126rMALQQMrmzOVC4GM2waQ9x7xtm8VU+1yF2kWyPzI9zbZ48n4vSxwfSA==", - "dev": true - }, - "node_modules/upper-case-first": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/upper-case-first/-/upper-case-first-1.1.2.tgz", - "integrity": "sha512-wINKYvI3Db8dtjikdAqoBbZoP6Q+PZUyfMR7pmwHzjC2quzSkUq5DmPrTtPEqHaz8AGtmsB4TqwapMTM1QAQOQ==", - "dev": true, - "dependencies": { - "upper-case": "^1.1.1" - } - }, - "node_modules/uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "dev": true, - "dependencies": { - "punycode": "^2.1.0" - } - }, - "node_modules/url-set-query": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/url-set-query/-/url-set-query-1.0.0.tgz", - "integrity": "sha512-3AChu4NiXquPfeckE5R5cGdiHCMWJx1dwCWOmWIL4KHAziJNOFIYJlpGFeKDvwLPHovZRCxK3cYlwzqI9Vp+Gg==", - "dev": true - }, - "node_modules/utf-8-validate": { - "version": "5.0.5", - "resolved": "https://registry.npmjs.org/utf-8-validate/-/utf-8-validate-5.0.5.tgz", - "integrity": "sha512-+pnxRYsS/axEpkrrEpzYfNZGXp0IjC/9RIxwM5gntY4Koi8SHmUGSfxfWqxZdRxrtaoVstuOzUp/rbs3JSPELQ==", - "hasInstallScript": true, - "dependencies": { - "node-gyp-build": "^4.2.0" - } - }, - "node_modules/utf8": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/utf8/-/utf8-3.0.0.tgz", - "integrity": "sha512-E8VjFIQ/TyQgp+TZfS6l8yp/xWppSAHzidGiRrqe4bK4XP9pTRyKFgGJpO3SN7zdX4DeomTrwaseCHovfpFcqQ==", - "dev": true - }, - "node_modules/util": { - "version": "0.12.5", - "resolved": "https://registry.npmjs.org/util/-/util-0.12.5.tgz", - "integrity": "sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==", - "dev": true, - "dependencies": { - "inherits": "^2.0.3", - "is-arguments": "^1.0.4", - "is-generator-function": "^1.0.7", - "is-typed-array": "^1.1.3", - "which-typed-array": "^1.1.2" - } - }, - "node_modules/util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" - }, - "node_modules/utils-merge": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=", - "dev": true, - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/uuid": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", - "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", - "bin": { - "uuid": "bin/uuid" - } - }, - "node_modules/v8-to-istanbul": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-8.1.0.tgz", - "integrity": "sha512-/PRhfd8aTNp9Ggr62HPzXg2XasNFGy5PBt0Rp04du7/8GNNSgxFL6WBTkgMKSL9bFjH+8kKEG3f37FmxiTqUUA==", - "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.3", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", - "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", - "dev": true, - "engines": { - "node": ">= 8" - } - }, - "node_modules/value-or-promise": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/value-or-promise/-/value-or-promise-1.0.11.tgz", - "integrity": "sha512-41BrgH+dIbCFXClcSapVs5M6GkENd3gQOJpEfPDNa71LsUGMXDL0jMWpI/Rh7WhX+Aalfz2TTS3Zt5pUsbnhLg==", - "dev": true, - "optional": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/varint": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/varint/-/varint-5.0.2.tgz", - "integrity": "sha512-lKxKYG6H03yCZUpAGOPOsMcGxd1RHCu1iKvEHYDPmTyq2HueGhD73ssNBqqQWfvYs04G9iUFRvmAVLW20Jw6ow==", - "dev": true - }, - "node_modules/vary": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/verror": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", - "integrity": "sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==", - "dev": true, - "engines": [ - "node >=0.6.0" - ], - "dependencies": { - "assert-plus": "^1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" - } - }, - "node_modules/vlq": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/vlq/-/vlq-2.0.4.tgz", - "integrity": "sha512-aodjPa2wPQFkra1G8CzJBTHXhgk3EVSwxSWXNPr1fgdFLUb8kvLV1iEb6rFgasIsjP82HWI6dsb5Io26DDnasA==" - }, - "node_modules/vscode-oniguruma": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/vscode-oniguruma/-/vscode-oniguruma-1.6.2.tgz", - "integrity": "sha512-KH8+KKov5eS/9WhofZR8M8dMHWN2gTxjMsG4jd04YhpbPR91fUj7rYQ2/XjeHCJWbg7X++ApRIU9NUwM2vTvLA==", - "dev": true - }, - "node_modules/vscode-textmate": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/vscode-textmate/-/vscode-textmate-5.2.0.tgz", - "integrity": "sha512-Uw5ooOQxRASHgu6C7GVvUxisKXfSgW4oFlO+aa+PAkgmH89O3CXxEEzNRNtHSqtXFTl0nAC1uYj0GMSH27uwtQ==", - "dev": true - }, - "node_modules/vuvuzela": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/vuvuzela/-/vuvuzela-1.0.3.tgz", - "integrity": "sha512-Tm7jR1xTzBbPW+6y1tknKiEhz04Wf/1iZkcTJjSFcpNko43+dFW6+OOeQe9taJIug3NdfUAjFKgUSyQrIKaDvQ==", - "dev": true, - "optional": true - }, - "node_modules/w3c-hr-time": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz", - "integrity": "sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==", - "dev": true, - "dependencies": { - "browser-process-hrtime": "^1.0.0" - } - }, - "node_modules/w3c-xmlserializer": { - "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, - "dependencies": { - "xml-name-validator": "^3.0.0" - }, - "engines": { - "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/web3": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/web3/-/web3-1.8.1.tgz", - "integrity": "sha512-tAqFsQhGv340C9OgRJIuoScN7f7wa1tUvsnnDUMt9YE6J4gcm7TV2Uwv+KERnzvV+xgdeuULYpsioRRNKrUvoQ==", - "dev": true, - "hasInstallScript": true, - "dependencies": { - "web3-bzz": "1.8.1", - "web3-core": "1.8.1", - "web3-eth": "1.8.1", - "web3-eth-personal": "1.8.1", - "web3-net": "1.8.1", - "web3-shh": "1.8.1", - "web3-utils": "1.8.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-bzz": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/web3-bzz/-/web3-bzz-1.8.1.tgz", - "integrity": "sha512-dJJHS84nvpoxv6ijTMkdUSlRr5beCXNtx4UZcrFLHBva8dT63QEtKdLyDt2AyMJJdVzTCk78uir/6XtVWrdS6w==", - "dev": true, - "hasInstallScript": true, - "dependencies": { - "@types/node": "^12.12.6", - "got": "12.1.0", - "swarm-js": "^0.1.40" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-bzz/node_modules/@types/node": { - "version": "12.20.55", - "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.55.tgz", - "integrity": "sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==", - "dev": true - }, - "node_modules/web3-core": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/web3-core/-/web3-core-1.8.1.tgz", - "integrity": "sha512-LbRZlJH2N6nS3n3Eo9Y++25IvzMY7WvYnp4NM/Ajhh97dAdglYs6rToQ2DbL2RLvTYmTew4O/y9WmOk4nq9COw==", - "dev": true, - "dependencies": { - "@types/bn.js": "^5.1.0", - "@types/node": "^12.12.6", - "bignumber.js": "^9.0.0", - "web3-core-helpers": "1.8.1", - "web3-core-method": "1.8.1", - "web3-core-requestmanager": "1.8.1", - "web3-utils": "1.8.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-core-helpers": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.8.1.tgz", - "integrity": "sha512-ClzNO6T1S1gifC+BThw0+GTfcsjLEY8T1qUp6Ly2+w4PntAdNtKahxWKApWJ0l9idqot/fFIDXwO3Euu7I0Xqw==", - "dev": true, - "dependencies": { - "web3-eth-iban": "1.8.1", - "web3-utils": "1.8.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-core-method": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/web3-core-method/-/web3-core-method-1.8.1.tgz", - "integrity": "sha512-oYGRodktfs86NrnFwaWTbv2S38JnpPslFwSSARwFv4W9cjbGUW3LDeA5MKD/dRY+ssZ5OaekeMsUCLoGhX68yA==", - "dev": true, - "dependencies": { - "@ethersproject/transactions": "^5.6.2", - "web3-core-helpers": "1.8.1", - "web3-core-promievent": "1.8.1", - "web3-core-subscriptions": "1.8.1", - "web3-utils": "1.8.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-core-promievent": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/web3-core-promievent/-/web3-core-promievent-1.8.1.tgz", - "integrity": "sha512-9mxqHlgB0MrZI4oUIRFkuoJMNj3E7btjrMv3sMer/Z9rYR1PfoSc1aAokw4rxKIcAh+ylVtd/acaB2HKB7aRPg==", - "dev": true, - "dependencies": { - "eventemitter3": "4.0.4" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-core-promievent/node_modules/eventemitter3": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.4.tgz", - "integrity": "sha512-rlaVLnVxtxvoyLsQQFBx53YmXHDxRIzzTLbdfxqi4yocpSjAxXwkU0cScM5JgSKMqEhrZpnvQ2D9gjylR0AimQ==", - "dev": true - }, - "node_modules/web3-core-requestmanager": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/web3-core-requestmanager/-/web3-core-requestmanager-1.8.1.tgz", - "integrity": "sha512-x+VC2YPPwZ1khvqA6TA69LvfFCOZXsoUVOxmTx/vIN22PrY9KzKhxcE7pBSiGhmab1jtmRYXUbcQSVpAXqL8cw==", - "dev": true, - "dependencies": { - "util": "^0.12.0", - "web3-core-helpers": "1.8.1", - "web3-providers-http": "1.8.1", - "web3-providers-ipc": "1.8.1", - "web3-providers-ws": "1.8.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-core-subscriptions": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/web3-core-subscriptions/-/web3-core-subscriptions-1.8.1.tgz", - "integrity": "sha512-bmCMq5OeA3E2vZUh8Js1HcJbhwtsE+yeMqGC4oIZB3XsL5SLqyKLB/pU+qUYqQ9o4GdcrFTDPhPg1bgvf7p1Pw==", - "dev": true, - "dependencies": { - "eventemitter3": "4.0.4", - "web3-core-helpers": "1.8.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-core-subscriptions/node_modules/eventemitter3": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.4.tgz", - "integrity": "sha512-rlaVLnVxtxvoyLsQQFBx53YmXHDxRIzzTLbdfxqi4yocpSjAxXwkU0cScM5JgSKMqEhrZpnvQ2D9gjylR0AimQ==", - "dev": true - }, - "node_modules/web3-core/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==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/web3-core/node_modules/@types/node": { - "version": "12.20.55", - "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.55.tgz", - "integrity": "sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==", - "dev": true - }, - "node_modules/web3-eth": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/web3-eth/-/web3-eth-1.8.1.tgz", - "integrity": "sha512-LgyzbhFqiFRd8M8sBXoFN4ztzOnkeckl3H/9lH5ek7AdoRMhBg7tYpYRP3E5qkhd/q+yiZmcUgy1AF6NHrC1wg==", - "dev": true, - "dependencies": { - "web3-core": "1.8.1", - "web3-core-helpers": "1.8.1", - "web3-core-method": "1.8.1", - "web3-core-subscriptions": "1.8.1", - "web3-eth-abi": "1.8.1", - "web3-eth-accounts": "1.8.1", - "web3-eth-contract": "1.8.1", - "web3-eth-ens": "1.8.1", - "web3-eth-iban": "1.8.1", - "web3-eth-personal": "1.8.1", - "web3-net": "1.8.1", - "web3-utils": "1.8.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-eth-abi": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/web3-eth-abi/-/web3-eth-abi-1.8.1.tgz", - "integrity": "sha512-0mZvCRTIG0UhDhJwNQJgJxu4b4DyIpuMA0GTfqxqeuqzX4Q/ZvmoNurw0ExTfXaGPP82UUmmdkRi6FdZOx+C6w==", - "dev": true, - "dependencies": { - "@ethersproject/abi": "^5.6.3", - "web3-utils": "1.8.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-eth-accounts": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/web3-eth-accounts/-/web3-eth-accounts-1.8.1.tgz", - "integrity": "sha512-mgzxSYgN54/NsOFBO1Fq1KkXp1S5KlBvI/DlgvajU72rupoFMq6Cu6Yp9GUaZ/w2ij9PzEJuFJk174XwtfMCmg==", - "dev": true, - "dependencies": { - "@ethereumjs/common": "2.5.0", - "@ethereumjs/tx": "3.3.2", - "crypto-browserify": "3.12.0", - "eth-lib": "0.2.8", - "ethereumjs-util": "^7.0.10", - "scrypt-js": "^3.0.1", - "uuid": "^9.0.0", - "web3-core": "1.8.1", - "web3-core-helpers": "1.8.1", - "web3-core-method": "1.8.1", - "web3-utils": "1.8.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-eth-accounts/node_modules/@ethereumjs/common": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@ethereumjs/common/-/common-2.5.0.tgz", - "integrity": "sha512-DEHjW6e38o+JmB/NO3GZBpW4lpaiBpkFgXF6jLcJ6gETBYpEyaA5nTimsWBUJR3Vmtm/didUEbNjajskugZORg==", - "dev": true, - "dependencies": { - "crc-32": "^1.2.0", - "ethereumjs-util": "^7.1.1" - } - }, - "node_modules/web3-eth-accounts/node_modules/@ethereumjs/tx": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/@ethereumjs/tx/-/tx-3.3.2.tgz", - "integrity": "sha512-6AaJhwg4ucmwTvw/1qLaZUX5miWrwZ4nLOUsKyb/HtzS3BMw/CasKhdi1ims9mBKeK9sOJCH4qGKOBGyJCeeog==", - "dev": true, - "dependencies": { - "@ethereumjs/common": "^2.5.0", - "ethereumjs-util": "^7.1.2" - } - }, - "node_modules/web3-eth-accounts/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - }, - "node_modules/web3-eth-accounts/node_modules/eth-lib": { - "version": "0.2.8", - "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.8.tgz", - "integrity": "sha512-ArJ7x1WcWOlSpzdoTBX8vkwlkSQ85CjjifSZtV4co64vWxSV8geWfPI9x4SVYu3DSxnX4yWFVTtGL+j9DUFLNw==", - "dev": true, - "dependencies": { - "bn.js": "^4.11.6", - "elliptic": "^6.4.0", - "xhr-request-promise": "^0.1.2" - } - }, - "node_modules/web3-eth-accounts/node_modules/uuid": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.0.tgz", - "integrity": "sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg==", - "dev": true, - "bin": { - "uuid": "dist/bin/uuid" - } - }, - "node_modules/web3-eth-contract": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/web3-eth-contract/-/web3-eth-contract-1.8.1.tgz", - "integrity": "sha512-1wphnl+/xwCE2io44JKnN+ti3oa47BKRiVzvWd42icwRbcpFfRxH9QH+aQX3u8VZIISNH7dAkTWpGIIJgGFTmg==", - "dev": true, - "dependencies": { - "@types/bn.js": "^5.1.0", - "web3-core": "1.8.1", - "web3-core-helpers": "1.8.1", - "web3-core-method": "1.8.1", - "web3-core-promievent": "1.8.1", - "web3-core-subscriptions": "1.8.1", - "web3-eth-abi": "1.8.1", - "web3-utils": "1.8.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-eth-contract/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==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/web3-eth-ens": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/web3-eth-ens/-/web3-eth-ens-1.8.1.tgz", - "integrity": "sha512-FT8xTI9uN8RxeBQa/W8pLa2aoFh4+EE34w7W2271LICKzla1dtLyb6XSdn48vsUcPmhWsTVk9mO9RTU0l4LGQQ==", - "dev": true, - "dependencies": { - "content-hash": "^2.5.2", - "eth-ens-namehash": "2.0.8", - "web3-core": "1.8.1", - "web3-core-helpers": "1.8.1", - "web3-core-promievent": "1.8.1", - "web3-eth-abi": "1.8.1", - "web3-eth-contract": "1.8.1", - "web3-utils": "1.8.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-eth-iban": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/web3-eth-iban/-/web3-eth-iban-1.8.1.tgz", - "integrity": "sha512-DomoQBfvIdtM08RyMGkMVBOH0vpOIxSSQ+jukWk/EkMLGMWJtXw/K2c2uHAeq3L/VPWNB7zXV2DUEGV/lNE2Dg==", - "dev": true, - "dependencies": { - "bn.js": "^5.2.1", - "web3-utils": "1.8.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-eth-personal": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/web3-eth-personal/-/web3-eth-personal-1.8.1.tgz", - "integrity": "sha512-myIYMvj7SDIoV9vE5BkVdon3pya1WinaXItugoii2VoTcQNPOtBxmYVH+XS5ErzCJlnxzphpQrkywyY64bbbCA==", - "dev": true, - "dependencies": { - "@types/node": "^12.12.6", - "web3-core": "1.8.1", - "web3-core-helpers": "1.8.1", - "web3-core-method": "1.8.1", - "web3-net": "1.8.1", - "web3-utils": "1.8.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-eth-personal/node_modules/@types/node": { - "version": "12.20.55", - "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.55.tgz", - "integrity": "sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==", - "dev": true - }, - "node_modules/web3-net": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/web3-net/-/web3-net-1.8.1.tgz", - "integrity": "sha512-LyEJAwogdFo0UAXZqoSJGFjopdt+kLw0P00FSZn2yszbgcoI7EwC+nXiOsEe12xz4LqpYLOtbR7+gxgiTVjjHQ==", - "dev": true, - "dependencies": { - "web3-core": "1.8.1", - "web3-core-method": "1.8.1", - "web3-utils": "1.8.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-providers-http": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/web3-providers-http/-/web3-providers-http-1.8.1.tgz", - "integrity": "sha512-1Zyts4O9W/UNEPkp+jyL19Jc3D15S4yp8xuLTjVhcUEAlHo24NDWEKxtZGUuHk4HrKL2gp8OlsDbJ7MM+ESDgg==", - "dev": true, - "dependencies": { - "abortcontroller-polyfill": "^1.7.3", - "cross-fetch": "^3.1.4", - "es6-promise": "^4.2.8", - "web3-core-helpers": "1.8.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-providers-ipc": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/web3-providers-ipc/-/web3-providers-ipc-1.8.1.tgz", - "integrity": "sha512-nw/W5nclvi+P2z2dYkLWReKLnocStflWqFl+qjtv0xn3MrUTyXMzSF0+61i77+16xFsTgzo4wS/NWIOVkR0EFA==", - "dev": true, - "dependencies": { - "oboe": "2.1.5", - "web3-core-helpers": "1.8.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-providers-ws": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/web3-providers-ws/-/web3-providers-ws-1.8.1.tgz", - "integrity": "sha512-TNefIDAMpdx57+YdWpYZ/xdofS0P+FfKaDYXhn24ie/tH9G+AB+UBSOKnjN0KSadcRSCMBwGPRiEmNHPavZdsA==", - "dev": true, - "dependencies": { - "eventemitter3": "4.0.4", - "web3-core-helpers": "1.8.1", - "websocket": "^1.0.32" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-providers-ws/node_modules/eventemitter3": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.4.tgz", - "integrity": "sha512-rlaVLnVxtxvoyLsQQFBx53YmXHDxRIzzTLbdfxqi4yocpSjAxXwkU0cScM5JgSKMqEhrZpnvQ2D9gjylR0AimQ==", - "dev": true - }, - "node_modules/web3-shh": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/web3-shh/-/web3-shh-1.8.1.tgz", - "integrity": "sha512-sqHgarnfcY2Qt3PYS4R6YveHrDy7hmL09yeLLHHCI+RKirmjLVqV0rc5LJWUtlbYI+kDoa5gbgde489M9ZAC0g==", - "dev": true, - "hasInstallScript": true, - "dependencies": { - "web3-core": "1.8.1", - "web3-core-method": "1.8.1", - "web3-core-subscriptions": "1.8.1", - "web3-net": "1.8.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-utils": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.8.1.tgz", - "integrity": "sha512-LgnM9p6V7rHHUGfpMZod+NST8cRfGzJ1BTXAyNo7A9cJX9LczBfSRxJp+U/GInYe9mby40t3v22AJdlELibnsQ==", - "dev": true, - "dependencies": { - "bn.js": "^5.2.1", - "ethereum-bloom-filters": "^1.0.6", - "ethereumjs-util": "^7.1.0", - "ethjs-unit": "0.1.6", - "number-to-bn": "1.7.0", - "randombytes": "^2.1.0", - "utf8": "3.0.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "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, - "engines": { - "node": ">=10.4" - } - }, - "node_modules/websocket": { - "version": "1.0.34", - "resolved": "https://registry.npmjs.org/websocket/-/websocket-1.0.34.tgz", - "integrity": "sha512-PRDso2sGwF6kM75QykIesBijKSVceR6jL2G8NGYyq2XrItNC2P5/qL5XeR056GhA+Ly7JMFvJb9I312mJfmqnQ==", - "dev": true, - "dependencies": { - "bufferutil": "^4.0.1", - "debug": "^2.2.0", - "es5-ext": "^0.10.50", - "typedarray-to-buffer": "^3.1.5", - "utf-8-validate": "^5.0.2", - "yaeti": "^0.0.6" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/whatwg-encoding": { - "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, - "dependencies": { - "iconv-lite": "0.4.24" - } - }, - "node_modules/whatwg-mimetype": { - "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 - }, - "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, - "dependencies": { - "lodash": "^4.7.0", - "tr46": "^2.1.0", - "webidl-conversions": "^6.1.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/which": { - "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" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/which-typed-array": { - "version": "1.1.9", - "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.9.tgz", - "integrity": "sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA==", - "dev": true, - "dependencies": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-tostringtag": "^1.0.0", - "is-typed-array": "^1.1.10" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/wif": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/wif/-/wif-2.0.6.tgz", - "integrity": "sha1-CNP1IFbGZnkplyb63g1DKudLRwQ=", - "dependencies": { - "bs58check": "<3.0.0" - } - }, - "node_modules/word-wrap": { - "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, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/wordwrap": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", - "integrity": "sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==", - "dev": true - }, - "node_modules/workerpool": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.2.1.tgz", - "integrity": "sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw==", - "dev": true - }, - "node_modules/wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "devOptional": true, - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/wrap-ansi/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "devOptional": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/wrap-ansi/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "devOptional": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/wrap-ansi/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "devOptional": true - }, - "node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" - }, - "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/write-stream": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/write-stream/-/write-stream-0.4.3.tgz", - "integrity": "sha512-IJrvkhbAnj89W/GAVdVgbnPiVw5Ntg/B4tc/MUCIEwj/g6JIww1DWJyB/yBMT3yw2/TkT6IUZ0+IYef3flEw8A==", - "dev": true, - "optional": true, - "dependencies": { - "readable-stream": "~0.0.2" - } - }, - "node_modules/write-stream/node_modules/readable-stream": { - "version": "0.0.4", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-0.0.4.tgz", - "integrity": "sha512-azrivNydKRYt7zwLV5wWUK7YzKTWs3q87xSmY6DlHapPrCvaT6ZrukvM5erV+yCSSPmZT8zkSdttOHQpWWm9zw==", - "dev": true, - "optional": true - }, - "node_modules/ws": { - "version": "7.5.9", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz", - "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==", - "engines": { - "node": ">=8.3.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": "^5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, - "node_modules/xhr": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/xhr/-/xhr-2.6.0.tgz", - "integrity": "sha512-/eCGLb5rxjx5e3mF1A7s+pLlR6CGyqWN91fv1JgER5mVWg1MZmlhBvy9kjcsOdRk8RrIujotWyJamfyrp+WIcA==", - "dev": true, - "dependencies": { - "global": "~4.4.0", - "is-function": "^1.0.1", - "parse-headers": "^2.0.0", - "xtend": "^4.0.0" - } - }, - "node_modules/xhr-request": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/xhr-request/-/xhr-request-1.1.0.tgz", - "integrity": "sha512-Y7qzEaR3FDtL3fP30k9wO/e+FBnBByZeybKOhASsGP30NIkRAAkKD/sCnLvgEfAIEC1rcmK7YG8f4oEnIrrWzA==", - "dev": true, - "dependencies": { - "buffer-to-arraybuffer": "^0.0.5", - "object-assign": "^4.1.1", - "query-string": "^5.0.1", - "simple-get": "^2.7.0", - "timed-out": "^4.0.1", - "url-set-query": "^1.0.0", - "xhr": "^2.0.4" - } - }, - "node_modules/xhr-request-promise": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/xhr-request-promise/-/xhr-request-promise-0.1.3.tgz", - "integrity": "sha512-YUBytBsuwgitWtdRzXDDkWAXzhdGB8bYm0sSzMPZT7Z2MBjMSTHFsyCT1yCRATY+XC69DUrQraRAEgcoCRaIPg==", - "dev": true, - "dependencies": { - "xhr-request": "^1.1.0" - } - }, - "node_modules/xml-name-validator": { - "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 - }, - "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 - }, - "node_modules/xmlhttprequest": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/xmlhttprequest/-/xmlhttprequest-1.8.0.tgz", - "integrity": "sha512-58Im/U0mlVBLM38NdZjHyhuMtCqa61469k2YP/AaPbvCoV9aQGUpbJBj1QRm2ytRiVQBD/fsw7L2bJGDVQswBA==", - "dev": true, - "optional": true, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/xss": { - "version": "1.0.14", - "resolved": "https://registry.npmjs.org/xss/-/xss-1.0.14.tgz", - "integrity": "sha512-og7TEJhXvn1a7kzZGQ7ETjdQVS2UfZyTlsEdDOqvQF7GoxNfY+0YLCzBy1kPdsDDx4QuNAonQPddpsn6Xl/7sw==", - "dev": true, - "optional": true, - "dependencies": { - "commander": "^2.20.3", - "cssfilter": "0.0.10" - }, - "bin": { - "xss": "bin/xss" - }, - "engines": { - "node": ">= 0.10.0" - } - }, - "node_modules/xstream": { - "version": "11.14.0", - "resolved": "https://registry.npmjs.org/xstream/-/xstream-11.14.0.tgz", - "integrity": "sha512-1bLb+kKKtKPbgTK6i/BaoAn03g47PpFstlbe1BA+y3pNS/LfvcaghS5BFf9+EE1J+KwSQsEpfJvFN5GqFtiNmw==", - "optional": true, - "dependencies": { - "globalthis": "^1.0.1", - "symbol-observable": "^2.0.3" - } - }, - "node_modules/xstream/node_modules/symbol-observable": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-2.0.3.tgz", - "integrity": "sha512-sQV7phh2WCYAn81oAkakC5qjq2Ml0g8ozqz03wOGnx9dDlG1de6yrF+0RAzSJD8fPUow3PTSMf2SAbOGxb93BA==", - "optional": true, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/xtend": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", - "devOptional": true, - "engines": { - "node": ">=0.4" - } - }, - "node_modules/y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "devOptional": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/yaeti": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/yaeti/-/yaeti-0.0.6.tgz", - "integrity": "sha512-MvQa//+KcZCUkBTIC9blM+CU9J2GzuTytsOUwf2lidtvkx/6gnEp1QvJv34t9vdjhFmha/mUiNDbN0D0mJWdug==", - "dev": true, - "engines": { - "node": ">=0.10.32" - } - }, - "node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "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==", - "devOptional": true, - "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==", - "devOptional": true, - "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==", - "dev": true, - "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==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "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==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/zen-observable": { - "version": "0.8.15", - "resolved": "https://registry.npmjs.org/zen-observable/-/zen-observable-0.8.15.tgz", - "integrity": "sha512-PQ2PC7R9rslx84ndNBZB/Dkv8V8fZEpk83RLgXtYd0fwUgEjseMn1Dgajh2x6S8QbZAFa9p2qVCEuYZNgve0dQ==", - "optional": true - }, - "node_modules/zen-observable-ts": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/zen-observable-ts/-/zen-observable-ts-1.2.5.tgz", - "integrity": "sha512-QZWQekv6iB72Naeake9hS1KxHlotfRpe+WGNbNx5/ta+R3DNjVO2bswf63gXlWDcs+EMd7XY8HfVQyP1X6T4Zg==", - "optional": true, - "dependencies": { - "zen-observable": "0.8.15" - } - } - }, - "dependencies": { - "@apollo/client": { - "version": "3.6.9", - "resolved": "https://registry.npmjs.org/@apollo/client/-/client-3.6.9.tgz", - "integrity": "sha512-Y1yu8qa2YeaCUBVuw08x8NHenFi0sw2I3KCu7Kw9mDSu86HmmtHJkCAifKVrN2iPgDTW/BbP3EpSV8/EQCcxZA==", - "optional": true, - "requires": { - "@graphql-typed-document-node/core": "^3.1.1", - "@wry/context": "^0.6.0", - "@wry/equality": "^0.5.0", - "@wry/trie": "^0.3.0", - "graphql-tag": "^2.12.6", - "hoist-non-react-statics": "^3.3.2", - "optimism": "^0.16.1", - "prop-types": "^15.7.2", - "symbol-observable": "^4.0.0", - "ts-invariant": "^0.10.3", - "tslib": "^2.3.0", - "zen-observable-ts": "^1.2.5" - }, - "dependencies": { - "tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", - "optional": true - } - } - }, - "@apollo/protobufjs": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/@apollo/protobufjs/-/protobufjs-1.2.7.tgz", - "integrity": "sha512-Lahx5zntHPZia35myYDBRuF58tlwPskwHc5CWBZC/4bMKB6siTBWwtMrkqXcsNwQiFSzSx5hKdRPUmemrEp3Gg==", - "dev": true, - "optional": true, - "requires": { - "@protobufjs/aspromise": "^1.1.2", - "@protobufjs/base64": "^1.1.2", - "@protobufjs/codegen": "^2.0.4", - "@protobufjs/eventemitter": "^1.1.0", - "@protobufjs/fetch": "^1.1.0", - "@protobufjs/float": "^1.0.2", - "@protobufjs/inquire": "^1.1.0", - "@protobufjs/path": "^1.1.2", - "@protobufjs/pool": "^1.1.0", - "@protobufjs/utf8": "^1.1.0", - "@types/long": "^4.0.0", - "long": "^4.0.0" - } - }, - "@apollo/usage-reporting-protobuf": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/@apollo/usage-reporting-protobuf/-/usage-reporting-protobuf-4.0.2.tgz", - "integrity": "sha512-GfE8aDqi/lAFut95pjH9IRvH0zGsQ5G/2lYL0ZLZfML7ArX+A4UVHFANQcPCcUYGE6bI6OPhLekg4Vsjf6B1cw==", - "dev": true, - "optional": true, - "requires": { - "@apollo/protobufjs": "1.2.7" - } - }, - "@apollo/utils.dropunuseddefinitions": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@apollo/utils.dropunuseddefinitions/-/utils.dropunuseddefinitions-1.1.0.tgz", - "integrity": "sha512-jU1XjMr6ec9pPoL+BFWzEPW7VHHulVdGKMkPAMiCigpVIT11VmCbnij0bWob8uS3ODJ65tZLYKAh/55vLw2rbg==", - "dev": true, - "optional": true, - "requires": {} - }, - "@apollo/utils.keyvaluecache": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@apollo/utils.keyvaluecache/-/utils.keyvaluecache-1.0.2.tgz", - "integrity": "sha512-p7PVdLPMnPzmXSQVEsy27cYEjVON+SH/Wb7COyW3rQN8+wJgT1nv9jZouYtztWW8ZgTkii5T6tC9qfoDREd4mg==", - "dev": true, - "optional": true, - "requires": { - "@apollo/utils.logger": "^1.0.0", - "lru-cache": "7.10.1 - 7.13.1" - }, - "dependencies": { - "lru-cache": { - "version": "7.13.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.13.1.tgz", - "integrity": "sha512-CHqbAq7NFlW3RSnoWXLJBxCWaZVBrfa9UEHId2M3AW8iEBurbqduNexEUCGc3SHc6iCYXNJCDi903LajSVAEPQ==", - "dev": true, - "optional": true - } - } - }, - "@apollo/utils.logger": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@apollo/utils.logger/-/utils.logger-1.0.1.tgz", - "integrity": "sha512-XdlzoY7fYNK4OIcvMD2G94RoFZbzTQaNP0jozmqqMudmaGo2I/2Jx71xlDJ801mWA/mbYRihyaw6KJii7k5RVA==", - "dev": true, - "optional": true - }, - "@apollo/utils.printwithreducedwhitespace": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@apollo/utils.printwithreducedwhitespace/-/utils.printwithreducedwhitespace-1.1.0.tgz", - "integrity": "sha512-GfFSkAv3n1toDZ4V6u2d7L4xMwLA+lv+6hqXicMN9KELSJ9yy9RzuEXaX73c/Ry+GzRsBy/fdSUGayGqdHfT2Q==", - "dev": true, - "optional": true, - "requires": {} - }, - "@apollo/utils.removealiases": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@apollo/utils.removealiases/-/utils.removealiases-1.0.0.tgz", - "integrity": "sha512-6cM8sEOJW2LaGjL/0vHV0GtRaSekrPQR4DiywaApQlL9EdROASZU5PsQibe2MWeZCOhNrPRuHh4wDMwPsWTn8A==", - "dev": true, - "optional": true, - "requires": {} - }, - "@apollo/utils.sortast": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@apollo/utils.sortast/-/utils.sortast-1.1.0.tgz", - "integrity": "sha512-VPlTsmUnOwzPK5yGZENN069y6uUHgeiSlpEhRnLFYwYNoJHsuJq2vXVwIaSmts015WTPa2fpz1inkLYByeuRQA==", - "dev": true, - "optional": true, - "requires": { - "lodash.sortby": "^4.7.0" - } - }, - "@apollo/utils.stripsensitiveliterals": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@apollo/utils.stripsensitiveliterals/-/utils.stripsensitiveliterals-1.2.0.tgz", - "integrity": "sha512-E41rDUzkz/cdikM5147d8nfCFVKovXxKBcjvLEQ7bjZm/cg9zEcXvS6vFY8ugTubI3fn6zoqo0CyU8zT+BGP9w==", - "dev": true, - "optional": true, - "requires": {} - }, - "@apollo/utils.usagereporting": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@apollo/utils.usagereporting/-/utils.usagereporting-1.0.1.tgz", - "integrity": "sha512-6dk+0hZlnDbahDBB2mP/PZ5ybrtCJdLMbeNJD+TJpKyZmSY6bA3SjI8Cr2EM9QA+AdziywuWg+SgbWUF3/zQqQ==", - "dev": true, - "optional": true, - "requires": { - "@apollo/usage-reporting-protobuf": "^4.0.0", - "@apollo/utils.dropunuseddefinitions": "^1.1.0", - "@apollo/utils.printwithreducedwhitespace": "^1.1.0", - "@apollo/utils.removealiases": "1.0.0", - "@apollo/utils.sortast": "^1.1.0", - "@apollo/utils.stripsensitiveliterals": "^1.2.0" - } - }, - "@apollographql/apollo-tools": { - "version": "0.5.4", - "resolved": "https://registry.npmjs.org/@apollographql/apollo-tools/-/apollo-tools-0.5.4.tgz", - "integrity": "sha512-shM3q7rUbNyXVVRkQJQseXv6bnYM3BUma/eZhwXR4xsuM+bqWnJKvW7SAfRjP7LuSCocrexa5AXhjjawNHrIlw==", - "dev": true, - "optional": true, - "requires": {} - }, - "@apollographql/graphql-playground-html": { - "version": "1.6.29", - "resolved": "https://registry.npmjs.org/@apollographql/graphql-playground-html/-/graphql-playground-html-1.6.29.tgz", - "integrity": "sha512-xCcXpoz52rI4ksJSdOCxeOCn2DLocxwHf9dVT/Q90Pte1LX+LY+91SFtJF3KXVHH8kEin+g1KKCQPKBjZJfWNA==", - "dev": true, - "optional": true, - "requires": { - "xss": "^1.0.8" - } - }, - "@babel/code-frame": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.0.tgz", - "integrity": "sha512-IF4EOMEV+bfYwOmNxGzSnjR2EmQod7f1UXOpZM3l4i4o4QNwzjtJAu/HxdjHq0aYBvdqMuQEY1eg0nqW9ZPORA==", - "dev": true, - "requires": { - "@babel/highlight": "^7.16.0" - } - }, - "@babel/compat-data": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.16.0.tgz", - "integrity": "sha512-DGjt2QZse5SGd9nfOSqO4WLJ8NN/oHkijbXbPrxuoJO3oIPJL3TciZs9FX+cOHNiY9E9l0opL8g7BmLe3T+9ew==", - "dev": true - }, - "@babel/core": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.16.0.tgz", - "integrity": "sha512-mYZEvshBRHGsIAiyH5PzCFTCfbWfoYbO/jcSdXQSUQu1/pW0xDZAUP7KEc32heqWTAfAHhV9j1vH8Sav7l+JNQ==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.16.0", - "@babel/generator": "^7.16.0", - "@babel/helper-compilation-targets": "^7.16.0", - "@babel/helper-module-transforms": "^7.16.0", - "@babel/helpers": "^7.16.0", - "@babel/parser": "^7.16.0", - "@babel/template": "^7.16.0", - "@babel/traverse": "^7.16.0", - "@babel/types": "^7.16.0", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.1.2", - "semver": "^6.3.0", - "source-map": "^0.5.0" - }, - "dependencies": { - "debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "dev": true, - "requires": { - "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } - } - }, - "@babel/generator": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.16.0.tgz", - "integrity": "sha512-RR8hUCfRQn9j9RPKEVXo9LiwoxLPYn6hNZlvUOR8tSnaxlD0p0+la00ZP9/SnRt6HchKr+X0fO2r8vrETiJGew==", - "dev": true, - "requires": { - "@babel/types": "^7.16.0", - "jsesc": "^2.5.1", - "source-map": "^0.5.0" - } - }, - "@babel/helper-compilation-targets": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.16.0.tgz", - "integrity": "sha512-S7iaOT1SYlqK0sQaCi21RX4+13hmdmnxIEAnQUB/eh7GeAnRjOUgTYpLkUOiRXzD+yog1JxP0qyAQZ7ZxVxLVg==", - "dev": true, - "requires": { - "@babel/compat-data": "^7.16.0", - "@babel/helper-validator-option": "^7.14.5", - "browserslist": "^4.16.6", - "semver": "^6.3.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } - } - }, - "@babel/helper-function-name": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.16.0.tgz", - "integrity": "sha512-BZh4mEk1xi2h4HFjWUXRQX5AEx4rvaZxHgax9gcjdLWdkjsY7MKt5p0otjsg5noXw+pB+clMCjw+aEVYADMjog==", - "dev": true, - "requires": { - "@babel/helper-get-function-arity": "^7.16.0", - "@babel/template": "^7.16.0", - "@babel/types": "^7.16.0" - } - }, - "@babel/helper-get-function-arity": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.16.0.tgz", - "integrity": "sha512-ASCquNcywC1NkYh/z7Cgp3w31YW8aojjYIlNg4VeJiHkqyP4AzIvr4qx7pYDb4/s8YcsZWqqOSxgkvjUz1kpDQ==", - "dev": true, - "requires": { - "@babel/types": "^7.16.0" - } - }, - "@babel/helper-hoist-variables": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.0.tgz", - "integrity": "sha512-1AZlpazjUR0EQZQv3sgRNfM9mEVWPK3M6vlalczA+EECcPz3XPh6VplbErL5UoMpChhSck5wAJHthlj1bYpcmg==", - "dev": true, - "requires": { - "@babel/types": "^7.16.0" - } - }, - "@babel/helper-member-expression-to-functions": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.16.0.tgz", - "integrity": "sha512-bsjlBFPuWT6IWhl28EdrQ+gTvSvj5tqVP5Xeftp07SEuz5pLnsXZuDkDD3Rfcxy0IsHmbZ+7B2/9SHzxO0T+sQ==", - "dev": true, - "requires": { - "@babel/types": "^7.16.0" - } - }, - "@babel/helper-module-imports": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.16.0.tgz", - "integrity": "sha512-kkH7sWzKPq0xt3H1n+ghb4xEMP8k0U7XV3kkB+ZGy69kDk2ySFW1qPi06sjKzFY3t1j6XbJSqr4mF9L7CYVyhg==", - "dev": true, - "requires": { - "@babel/types": "^7.16.0" - } - }, - "@babel/helper-module-transforms": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.16.0.tgz", - "integrity": "sha512-My4cr9ATcaBbmaEa8M0dZNA74cfI6gitvUAskgDtAFmAqyFKDSHQo5YstxPbN+lzHl2D9l/YOEFqb2mtUh4gfA==", - "dev": true, - "requires": { - "@babel/helper-module-imports": "^7.16.0", - "@babel/helper-replace-supers": "^7.16.0", - "@babel/helper-simple-access": "^7.16.0", - "@babel/helper-split-export-declaration": "^7.16.0", - "@babel/helper-validator-identifier": "^7.15.7", - "@babel/template": "^7.16.0", - "@babel/traverse": "^7.16.0", - "@babel/types": "^7.16.0" - } - }, - "@babel/helper-optimise-call-expression": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.16.0.tgz", - "integrity": "sha512-SuI467Gi2V8fkofm2JPnZzB/SUuXoJA5zXe/xzyPP2M04686RzFKFHPK6HDVN6JvWBIEW8tt9hPR7fXdn2Lgpw==", - "dev": true, - "requires": { - "@babel/types": "^7.16.0" - } - }, - "@babel/helper-plugin-utils": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.14.5.tgz", - "integrity": "sha512-/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ==", - "dev": true - }, - "@babel/helper-replace-supers": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.16.0.tgz", - "integrity": "sha512-TQxuQfSCdoha7cpRNJvfaYxxxzmbxXw/+6cS7V02eeDYyhxderSoMVALvwupA54/pZcOTtVeJ0xccp1nGWladA==", - "dev": true, - "requires": { - "@babel/helper-member-expression-to-functions": "^7.16.0", - "@babel/helper-optimise-call-expression": "^7.16.0", - "@babel/traverse": "^7.16.0", - "@babel/types": "^7.16.0" - } - }, - "@babel/helper-simple-access": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.16.0.tgz", - "integrity": "sha512-o1rjBT/gppAqKsYfUdfHq5Rk03lMQrkPHG1OWzHWpLgVXRH4HnMM9Et9CVdIqwkCQlobnGHEJMsgWP/jE1zUiw==", - "dev": true, - "requires": { - "@babel/types": "^7.16.0" - } - }, - "@babel/helper-split-export-declaration": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.0.tgz", - "integrity": "sha512-0YMMRpuDFNGTHNRiiqJX19GjNXA4H0E8jZ2ibccfSxaCogbm3am5WN/2nQNj0YnQwGWM1J06GOcQ2qnh3+0paw==", - "dev": true, - "requires": { - "@babel/types": "^7.16.0" - } - }, - "@babel/helper-validator-identifier": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz", - "integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==", - "dev": true - }, - "@babel/helper-validator-option": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.14.5.tgz", - "integrity": "sha512-OX8D5eeX4XwcroVW45NMvoYaIuFI+GQpA2a8Gi+X/U/cDUIRsV37qQfF905F0htTRCREQIB4KqPeaveRJUl3Ow==", - "dev": true - }, - "@babel/helpers": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.16.0.tgz", - "integrity": "sha512-dVRM0StFMdKlkt7cVcGgwD8UMaBfWJHl3A83Yfs8GQ3MO0LHIIIMvK7Fa0RGOGUQ10qikLaX6D7o5htcQWgTMQ==", - "dev": true, - "requires": { - "@babel/template": "^7.16.0", - "@babel/traverse": "^7.16.0", - "@babel/types": "^7.16.0" - } - }, - "@babel/highlight": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.16.0.tgz", - "integrity": "sha512-t8MH41kUQylBtu2+4IQA3atqevA2lRgqA2wyVB/YiWmsDSuylZZuXOUy9ric30hfzauEFfdsuk/eXTRrGrfd0g==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.15.7", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - } - }, - "@babel/parser": { - "version": "7.16.2", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.16.2.tgz", - "integrity": "sha512-RUVpT0G2h6rOZwqLDTrKk7ksNv7YpAilTnYe1/Q+eDjxEceRMKVWbCsX7t8h6C1qCFi/1Y8WZjcEPBAFG27GPw==", - "dev": true - }, - "@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, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@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, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@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, - "requires": { - "@babel/helper-plugin-utils": "^7.12.13" - } - }, - "@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, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@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, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@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, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@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, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@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, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@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, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@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, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@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, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@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, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-syntax-typescript": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.16.0.tgz", - "integrity": "sha512-Xv6mEXqVdaqCBfJFyeab0fH2DnUoMsDmhamxsSi4j8nLd4Vtw213WMJr55xxqipC/YVWyPY3K0blJncPYji+dQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/runtime": { - "version": "7.20.13", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.20.13.tgz", - "integrity": "sha512-gt3PKXs0DBoL9xCvOIIZ2NEqAGZqHjAnmVbfQtB620V0uReIQutpel14KcneZuer7UioY8ALKZ7iocavvzTNFA==", - "requires": { - "regenerator-runtime": "^0.13.11" - } - }, - "@babel/template": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.16.0.tgz", - "integrity": "sha512-MnZdpFD/ZdYhXwiunMqqgyZyucaYsbL0IrjoGjaVhGilz+x8YB++kRfygSOIj1yOtWKPlx7NBp+9I1RQSgsd5A==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.16.0", - "@babel/parser": "^7.16.0", - "@babel/types": "^7.16.0" - } - }, - "@babel/traverse": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.16.0.tgz", - "integrity": "sha512-qQ84jIs1aRQxaGaxSysII9TuDaguZ5yVrEuC0BN2vcPlalwfLovVmCjbFDPECPXcYM/wLvNFfp8uDOliLxIoUQ==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.16.0", - "@babel/generator": "^7.16.0", - "@babel/helper-function-name": "^7.16.0", - "@babel/helper-hoist-variables": "^7.16.0", - "@babel/helper-split-export-declaration": "^7.16.0", - "@babel/parser": "^7.16.0", - "@babel/types": "^7.16.0", - "debug": "^4.1.0", - "globals": "^11.1.0" - }, - "dependencies": { - "debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "dev": true, - "requires": { - "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - } - } - }, - "@babel/types": { - "version": "7.17.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.17.0.tgz", - "integrity": "sha512-TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.16.7", - "to-fast-properties": "^2.0.0" - } - }, - "@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 - }, - "@certusone/wormhole-sdk-proto-web": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/@certusone/wormhole-sdk-proto-web/-/wormhole-sdk-proto-web-0.0.7.tgz", - "integrity": "sha512-GCe1/bcqMS0Mt+hsWp4SE4NLL59pWmK0lhQXO0oqAKl0G9AuuTdudySMDF/sLc7z5H2w34bSuSrIEKvPuuSC+w==", - "requires": { - "@improbable-eng/grpc-web": "^0.15.0", - "protobufjs": "^7.0.0", - "rxjs": "^7.5.6" - }, - "dependencies": { - "@improbable-eng/grpc-web": { - "version": "0.15.0", - "resolved": "https://registry.npmjs.org/@improbable-eng/grpc-web/-/grpc-web-0.15.0.tgz", - "integrity": "sha512-ERft9/0/8CmYalqOVnJnpdDry28q+j+nAlFFARdjyxXDJ+Mhgv9+F600QC8BR9ygOfrXRlAk6CvST2j+JCpQPg==", - "requires": { - "browser-headers": "^0.4.1" - } - }, - "long": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/long/-/long-5.2.0.tgz", - "integrity": "sha512-9RTUNjK60eJbx3uz+TEGF7fUr29ZDxR5QzXcyDpeSfeH28S9ycINflOgOlppit5U+4kNTe83KQnMEerw7GmE8w==" - }, - "protobufjs": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.1.1.tgz", - "integrity": "sha512-d0nMQqS/aT3lfV8bKi9Gbg73vPd2LcDdTDOu6RE/M+h9DY8g1EmDzk3ADPccthEWfTBjkR2oxNdx9Gs8YubT+g==", - "requires": { - "@protobufjs/aspromise": "^1.1.2", - "@protobufjs/base64": "^1.1.2", - "@protobufjs/codegen": "^2.0.4", - "@protobufjs/eventemitter": "^1.1.0", - "@protobufjs/fetch": "^1.1.0", - "@protobufjs/float": "^1.0.2", - "@protobufjs/inquire": "^1.1.0", - "@protobufjs/path": "^1.1.2", - "@protobufjs/pool": "^1.1.0", - "@protobufjs/utf8": "^1.1.0", - "@types/node": ">=13.7.0", - "long": "^5.0.0" - } - } - } - }, - "@certusone/wormhole-sdk-wasm": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/@certusone/wormhole-sdk-wasm/-/wormhole-sdk-wasm-0.0.1.tgz", - "integrity": "sha512-LdIwLhOyr4pPs2jqYubqC7d4UkqYBX0EG/ppspQlW3qlVE0LZRMrH6oVzzLMyHtV0Rw7O9sIKzORW/T3mrJv2w==", - "requires": { - "@types/long": "^4.0.2", - "@types/node": "^18.0.3" - }, - "dependencies": { - "@types/node": { - "version": "18.0.3", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.0.3.tgz", - "integrity": "sha512-HzNRZtp4eepNitP+BD6k2L6DROIDG4Q0fm4x+dwfsr6LGmROENnok75VGw40628xf+iR24WeMFcHuuBDUAzzsQ==" - } - } - }, - "@classic-terra/terra.proto": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@classic-terra/terra.proto/-/terra.proto-1.1.0.tgz", - "integrity": "sha512-bYhQG5LUaGF0KPRY9hYT/HEcd1QExZPQd6zLV/rQkCe/eDxfwFRLzZHpaaAdfWoAAZjsRWqJbUCqCg7gXBbJpw==", - "requires": { - "@improbable-eng/grpc-web": "^0.14.1", - "google-protobuf": "^3.17.3", - "long": "^4.0.0", - "protobufjs": "~6.11.2" - } - }, - "@confio/ics23": { - "version": "0.6.8", - "resolved": "https://registry.npmjs.org/@confio/ics23/-/ics23-0.6.8.tgz", - "integrity": "sha512-wB6uo+3A50m0sW/EWcU64xpV/8wShZ6bMTa7pF8eYsTrSkQA7oLUIJcs/wb8g4y2Oyq701BaGiO6n/ak5WXO1w==", - "optional": true, - "requires": { - "@noble/hashes": "^1.0.0", - "protobufjs": "^6.8.8" - } - }, - "@coral-xyz/borsh": { - "version": "0.2.6", - "resolved": "https://registry.npmjs.org/@coral-xyz/borsh/-/borsh-0.2.6.tgz", - "integrity": "sha512-y6nmHw1bFcJib7sMHsQPpC8r47xhqDZVvhUdna7NUPzpSbOZG6f46N21+aXsQ2w/tG8Ggls488J/ZmwbgVmyjg==", - "requires": { - "bn.js": "^5.1.2", - "buffer-layout": "^1.2.0" - } - }, - "@cosmjs/amino": { - "version": "0.30.1", - "resolved": "https://registry.npmjs.org/@cosmjs/amino/-/amino-0.30.1.tgz", - "integrity": "sha512-yNHnzmvAlkETDYIpeCTdVqgvrdt1qgkOXwuRVi8s27UKI5hfqyE9fJ/fuunXE6ZZPnKkjIecDznmuUOMrMvw4w==", - "optional": true, - "requires": { - "@cosmjs/crypto": "^0.30.1", - "@cosmjs/encoding": "^0.30.1", - "@cosmjs/math": "^0.30.1", - "@cosmjs/utils": "^0.30.1" - } - }, - "@cosmjs/crypto": { - "version": "0.30.1", - "resolved": "https://registry.npmjs.org/@cosmjs/crypto/-/crypto-0.30.1.tgz", - "integrity": "sha512-rAljUlake3MSXs9xAm87mu34GfBLN0h/1uPPV6jEwClWjNkAMotzjC0ab9MARy5FFAvYHL3lWb57bhkbt2GtzQ==", - "optional": true, - "requires": { - "@cosmjs/encoding": "^0.30.1", - "@cosmjs/math": "^0.30.1", - "@cosmjs/utils": "^0.30.1", - "@noble/hashes": "^1", - "bn.js": "^5.2.0", - "elliptic": "^6.5.4", - "libsodium-wrappers": "^0.7.6" - } - }, - "@cosmjs/encoding": { - "version": "0.30.1", - "resolved": "https://registry.npmjs.org/@cosmjs/encoding/-/encoding-0.30.1.tgz", - "integrity": "sha512-rXmrTbgqwihORwJ3xYhIgQFfMSrwLu1s43RIK9I8EBudPx3KmnmyAKzMOVsRDo9edLFNuZ9GIvysUCwQfq3WlQ==", - "optional": true, - "requires": { - "base64-js": "^1.3.0", - "bech32": "^1.1.4", - "readonly-date": "^1.0.0" - }, - "dependencies": { - "bech32": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/bech32/-/bech32-1.1.4.tgz", - "integrity": "sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ==", - "optional": true - } - } - }, - "@cosmjs/json-rpc": { - "version": "0.30.1", - "resolved": "https://registry.npmjs.org/@cosmjs/json-rpc/-/json-rpc-0.30.1.tgz", - "integrity": "sha512-pitfC/2YN9t+kXZCbNuyrZ6M8abnCC2n62m+JtU9vQUfaEtVsgy+1Fk4TRQ175+pIWSdBMFi2wT8FWVEE4RhxQ==", - "optional": true, - "requires": { - "@cosmjs/stream": "^0.30.1", - "xstream": "^11.14.0" - } - }, - "@cosmjs/math": { - "version": "0.30.1", - "resolved": "https://registry.npmjs.org/@cosmjs/math/-/math-0.30.1.tgz", - "integrity": "sha512-yaoeI23pin9ZiPHIisa6qqLngfnBR/25tSaWpkTm8Cy10MX70UF5oN4+/t1heLaM6SSmRrhk3psRkV4+7mH51Q==", - "optional": true, - "requires": { - "bn.js": "^5.2.0" - } - }, - "@cosmjs/proto-signing": { - "version": "0.30.1", - "resolved": "https://registry.npmjs.org/@cosmjs/proto-signing/-/proto-signing-0.30.1.tgz", - "integrity": "sha512-tXh8pPYXV4aiJVhTKHGyeZekjj+K9s2KKojMB93Gcob2DxUjfKapFYBMJSgfKPuWUPEmyr8Q9km2hplI38ILgQ==", - "optional": true, - "requires": { - "@cosmjs/amino": "^0.30.1", - "@cosmjs/crypto": "^0.30.1", - "@cosmjs/encoding": "^0.30.1", - "@cosmjs/math": "^0.30.1", - "@cosmjs/utils": "^0.30.1", - "cosmjs-types": "^0.7.1", - "long": "^4.0.0" - } - }, - "@cosmjs/socket": { - "version": "0.30.1", - "resolved": "https://registry.npmjs.org/@cosmjs/socket/-/socket-0.30.1.tgz", - "integrity": "sha512-r6MpDL+9N+qOS/D5VaxnPaMJ3flwQ36G+vPvYJsXArj93BjgyFB7BwWwXCQDzZ+23cfChPUfhbINOenr8N2Kow==", - "optional": true, - "requires": { - "@cosmjs/stream": "^0.30.1", - "isomorphic-ws": "^4.0.1", - "ws": "^7", - "xstream": "^11.14.0" - } - }, - "@cosmjs/stargate": { - "version": "0.30.1", - "resolved": "https://registry.npmjs.org/@cosmjs/stargate/-/stargate-0.30.1.tgz", - "integrity": "sha512-RdbYKZCGOH8gWebO7r6WvNnQMxHrNXInY/gPHPzMjbQF6UatA6fNM2G2tdgS5j5u7FTqlCI10stNXrknaNdzog==", - "optional": true, - "requires": { - "@confio/ics23": "^0.6.8", - "@cosmjs/amino": "^0.30.1", - "@cosmjs/encoding": "^0.30.1", - "@cosmjs/math": "^0.30.1", - "@cosmjs/proto-signing": "^0.30.1", - "@cosmjs/stream": "^0.30.1", - "@cosmjs/tendermint-rpc": "^0.30.1", - "@cosmjs/utils": "^0.30.1", - "cosmjs-types": "^0.7.1", - "long": "^4.0.0", - "protobufjs": "~6.11.3", - "xstream": "^11.14.0" - } - }, - "@cosmjs/stream": { - "version": "0.30.1", - "resolved": "https://registry.npmjs.org/@cosmjs/stream/-/stream-0.30.1.tgz", - "integrity": "sha512-Fg0pWz1zXQdoxQZpdHRMGvUH5RqS6tPv+j9Eh7Q953UjMlrwZVo0YFLC8OTf/HKVf10E4i0u6aM8D69Q6cNkgQ==", - "optional": true, - "requires": { - "xstream": "^11.14.0" - } - }, - "@cosmjs/tendermint-rpc": { - "version": "0.30.1", - "resolved": "https://registry.npmjs.org/@cosmjs/tendermint-rpc/-/tendermint-rpc-0.30.1.tgz", - "integrity": "sha512-Z3nCwhXSbPZJ++v85zHObeUggrEHVfm1u18ZRwXxFE9ZMl5mXTybnwYhczuYOl7KRskgwlB+rID0WYACxj4wdQ==", - "optional": true, - "requires": { - "@cosmjs/crypto": "^0.30.1", - "@cosmjs/encoding": "^0.30.1", - "@cosmjs/json-rpc": "^0.30.1", - "@cosmjs/math": "^0.30.1", - "@cosmjs/socket": "^0.30.1", - "@cosmjs/stream": "^0.30.1", - "@cosmjs/utils": "^0.30.1", - "axios": "^0.21.2", - "readonly-date": "^1.0.0", - "xstream": "^11.14.0" - }, - "dependencies": { - "axios": { - "version": "0.21.4", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.4.tgz", - "integrity": "sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==", - "optional": true, - "requires": { - "follow-redirects": "^1.14.0" - } - } - } - }, - "@cosmjs/utils": { - "version": "0.30.1", - "resolved": "https://registry.npmjs.org/@cosmjs/utils/-/utils-0.30.1.tgz", - "integrity": "sha512-KvvX58MGMWh7xA+N+deCfunkA/ZNDvFLw4YbOmX3f/XBIkqrVY7qlotfy2aNb1kgp6h4B6Yc8YawJPDTfvWX7g==", - "optional": true - }, - "@ethereumjs/common": { - "version": "2.6.5", - "resolved": "https://registry.npmjs.org/@ethereumjs/common/-/common-2.6.5.tgz", - "integrity": "sha512-lRyVQOeCDaIVtgfbowla32pzeDv2Obr8oR8Put5RdUBNRGr1VGPGQNGP6elWIpgK3YdpzqTOh4GyUGOureVeeA==", - "optional": true, - "requires": { - "crc-32": "^1.2.0", - "ethereumjs-util": "^7.1.5" - } - }, - "@ethereumjs/tx": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/@ethereumjs/tx/-/tx-3.5.2.tgz", - "integrity": "sha512-gQDNJWKrSDGu2w7w0PzVXVBNMzb7wwdDOmOqczmhNjqFxFuIbhVJDwiGEnxFNC2/b8ifcZzY7MLcluizohRzNw==", - "optional": true, - "requires": { - "@ethereumjs/common": "^2.6.4", - "ethereumjs-util": "^7.1.5" - } - }, - "@ethersproject/abi": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/abi/-/abi-5.7.0.tgz", - "integrity": "sha512-351ktp42TiRcYB3H1OP8yajPeAQstMW/yCFokj/AthP9bLHzQFPlOrxOcwYEDkUAICmOHljvN4K39OMTMUa9RA==", - "devOptional": true, - "requires": { - "@ethersproject/address": "^5.7.0", - "@ethersproject/bignumber": "^5.7.0", - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/constants": "^5.7.0", - "@ethersproject/hash": "^5.7.0", - "@ethersproject/keccak256": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/properties": "^5.7.0", - "@ethersproject/strings": "^5.7.0" - } - }, - "@ethersproject/abstract-provider": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/abstract-provider/-/abstract-provider-5.7.0.tgz", - "integrity": "sha512-R41c9UkchKCpAqStMYUpdunjo3pkEvZC3FAwZn5S5MGbXoMQOHIdHItezTETxAO5bevtMApSyEhn9+CHcDsWBw==", - "devOptional": true, - "requires": { - "@ethersproject/bignumber": "^5.7.0", - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/networks": "^5.7.0", - "@ethersproject/properties": "^5.7.0", - "@ethersproject/transactions": "^5.7.0", - "@ethersproject/web": "^5.7.0" - } - }, - "@ethersproject/abstract-signer": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/abstract-signer/-/abstract-signer-5.7.0.tgz", - "integrity": "sha512-a16V8bq1/Cz+TGCkE2OPMTOUDLS3grCpdjoJCYNnVBbdYEMSgKrU0+B90s8b6H+ByYTBZN7a3g76jdIJi7UfKQ==", - "devOptional": true, - "requires": { - "@ethersproject/abstract-provider": "^5.7.0", - "@ethersproject/bignumber": "^5.7.0", - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/properties": "^5.7.0" - } - }, - "@ethersproject/address": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/address/-/address-5.7.0.tgz", - "integrity": "sha512-9wYhYt7aghVGo758POM5nqcOMaE168Q6aRLJZwUmiqSrAungkG74gSSeKEIR7ukixesdRZGPgVqme6vmxs1fkA==", - "devOptional": true, - "requires": { - "@ethersproject/bignumber": "^5.7.0", - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/keccak256": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/rlp": "^5.7.0" - } - }, - "@ethersproject/base64": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/base64/-/base64-5.7.0.tgz", - "integrity": "sha512-Dr8tcHt2mEbsZr/mwTPIQAf3Ai0Bks/7gTw9dSqk1mQvhW3XvRlmDJr/4n+wg1JmCl16NZue17CDh8xb/vZ0sQ==", - "devOptional": true, - "requires": { - "@ethersproject/bytes": "^5.7.0" - } - }, - "@ethersproject/basex": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/basex/-/basex-5.7.0.tgz", - "integrity": "sha512-ywlh43GwZLv2Voc2gQVTKBoVQ1mti3d8HK5aMxsfu/nRDnMmNqaSJ3r3n85HBByT8OpoY96SXM1FogC533T4zw==", - "devOptional": true, - "requires": { - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/properties": "^5.7.0" - } - }, - "@ethersproject/bignumber": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/bignumber/-/bignumber-5.7.0.tgz", - "integrity": "sha512-n1CAdIHRWjSucQO3MC1zPSVgV/6dy/fjL9pMrPP9peL+QxEg9wOsVqwD4+818B6LUEtaXzVHQiuivzRoxPxUGw==", - "devOptional": true, - "requires": { - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "bn.js": "^5.2.1" - } - }, - "@ethersproject/bytes": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/bytes/-/bytes-5.7.0.tgz", - "integrity": "sha512-nsbxwgFXWh9NyYWo+U8atvmMsSdKJprTcICAkvbBffT75qDocbuggBU0SJiVK2MuTrp0q+xvLkTnGMPK1+uA9A==", - "requires": { - "@ethersproject/logger": "^5.7.0" - } - }, - "@ethersproject/constants": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/constants/-/constants-5.7.0.tgz", - "integrity": "sha512-DHI+y5dBNvkpYUMiRQyxRBYBefZkJfo70VUkUAsRjcPs47muV9evftfZ0PJVCXYbAiCgght0DtcF9srFQmIgWA==", - "devOptional": true, - "requires": { - "@ethersproject/bignumber": "^5.7.0" - } - }, - "@ethersproject/contracts": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/contracts/-/contracts-5.7.0.tgz", - "integrity": "sha512-5GJbzEU3X+d33CdfPhcyS+z8MzsTrBGk/sc+G+59+tPa9yFkl6HQ9D6L0QMgNTA9q8dT0XKxxkyp883XsQvbbg==", - "devOptional": true, - "requires": { - "@ethersproject/abi": "^5.7.0", - "@ethersproject/abstract-provider": "^5.7.0", - "@ethersproject/abstract-signer": "^5.7.0", - "@ethersproject/address": "^5.7.0", - "@ethersproject/bignumber": "^5.7.0", - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/constants": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/properties": "^5.7.0", - "@ethersproject/transactions": "^5.7.0" - } - }, - "@ethersproject/hash": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/hash/-/hash-5.7.0.tgz", - "integrity": "sha512-qX5WrQfnah1EFnO5zJv1v46a8HW0+E5xuBBDTwMFZLuVTx0tbU2kkx15NqdjxecrLGatQN9FGQKpb1FKdHCt+g==", - "devOptional": true, - "requires": { - "@ethersproject/abstract-signer": "^5.7.0", - "@ethersproject/address": "^5.7.0", - "@ethersproject/base64": "^5.7.0", - "@ethersproject/bignumber": "^5.7.0", - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/keccak256": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/properties": "^5.7.0", - "@ethersproject/strings": "^5.7.0" - } - }, - "@ethersproject/hdnode": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/hdnode/-/hdnode-5.7.0.tgz", - "integrity": "sha512-OmyYo9EENBPPf4ERhR7oj6uAtUAhYGqOnIS+jE5pTXvdKBS99ikzq1E7Iv0ZQZ5V36Lqx1qZLeak0Ra16qpeOg==", - "devOptional": true, - "requires": { - "@ethersproject/abstract-signer": "^5.7.0", - "@ethersproject/basex": "^5.7.0", - "@ethersproject/bignumber": "^5.7.0", - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/pbkdf2": "^5.7.0", - "@ethersproject/properties": "^5.7.0", - "@ethersproject/sha2": "^5.7.0", - "@ethersproject/signing-key": "^5.7.0", - "@ethersproject/strings": "^5.7.0", - "@ethersproject/transactions": "^5.7.0", - "@ethersproject/wordlists": "^5.7.0" - } - }, - "@ethersproject/json-wallets": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/json-wallets/-/json-wallets-5.7.0.tgz", - "integrity": "sha512-8oee5Xgu6+RKgJTkvEMl2wDgSPSAQ9MB/3JYjFV9jlKvcYHUXZC+cQp0njgmxdHkYWn8s6/IqIZYm0YWCjO/0g==", - "devOptional": true, - "requires": { - "@ethersproject/abstract-signer": "^5.7.0", - "@ethersproject/address": "^5.7.0", - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/hdnode": "^5.7.0", - "@ethersproject/keccak256": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/pbkdf2": "^5.7.0", - "@ethersproject/properties": "^5.7.0", - "@ethersproject/random": "^5.7.0", - "@ethersproject/strings": "^5.7.0", - "@ethersproject/transactions": "^5.7.0", - "aes-js": "3.0.0", - "scrypt-js": "3.0.1" - } - }, - "@ethersproject/keccak256": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/keccak256/-/keccak256-5.7.0.tgz", - "integrity": "sha512-2UcPboeL/iW+pSg6vZ6ydF8tCnv3Iu/8tUmLLzWWGzxWKFFqOBQFLo6uLUv6BDrLgCDfN28RJ/wtByx+jZ4KBg==", - "requires": { - "@ethersproject/bytes": "^5.7.0", - "js-sha3": "0.8.0" - } - }, - "@ethersproject/logger": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/logger/-/logger-5.7.0.tgz", - "integrity": "sha512-0odtFdXu/XHtjQXJYA3u9G0G8btm0ND5Cu8M7i5vhEcE8/HmF4Lbdqanwyv4uQTr2tx6b7fQRmgLrsnpQlmnig==" - }, - "@ethersproject/networks": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/@ethersproject/networks/-/networks-5.7.1.tgz", - "integrity": "sha512-n/MufjFYv3yFcUyfhnXotyDlNdFb7onmkSy8aQERi2PjNcnWQ66xXxa3XlS8nCcA8aJKJjIIMNJTC7tu80GwpQ==", - "devOptional": true, - "requires": { - "@ethersproject/logger": "^5.7.0" - } - }, - "@ethersproject/pbkdf2": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/pbkdf2/-/pbkdf2-5.7.0.tgz", - "integrity": "sha512-oR/dBRZR6GTyaofd86DehG72hY6NpAjhabkhxgr3X2FpJtJuodEl2auADWBZfhDHgVCbu3/H/Ocq2uC6dpNjjw==", - "devOptional": true, - "requires": { - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/sha2": "^5.7.0" - } - }, - "@ethersproject/properties": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/properties/-/properties-5.7.0.tgz", - "integrity": "sha512-J87jy8suntrAkIZtecpxEPxY//szqr1mlBaYlQ0r4RCaiD2hjheqF9s1LVE8vVuJCXisjIP+JgtK/Do54ej4Sw==", - "requires": { - "@ethersproject/logger": "^5.7.0" - } - }, - "@ethersproject/providers": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/@ethersproject/providers/-/providers-5.7.2.tgz", - "integrity": "sha512-g34EWZ1WWAVgr4aptGlVBF8mhl3VWjv+8hoAnzStu8Ah22VHBsuGzP17eb6xDVRzw895G4W7vvx60lFFur/1Rg==", - "devOptional": true, - "requires": { - "@ethersproject/abstract-provider": "^5.7.0", - "@ethersproject/abstract-signer": "^5.7.0", - "@ethersproject/address": "^5.7.0", - "@ethersproject/base64": "^5.7.0", - "@ethersproject/basex": "^5.7.0", - "@ethersproject/bignumber": "^5.7.0", - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/constants": "^5.7.0", - "@ethersproject/hash": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/networks": "^5.7.0", - "@ethersproject/properties": "^5.7.0", - "@ethersproject/random": "^5.7.0", - "@ethersproject/rlp": "^5.7.0", - "@ethersproject/sha2": "^5.7.0", - "@ethersproject/strings": "^5.7.0", - "@ethersproject/transactions": "^5.7.0", - "@ethersproject/web": "^5.7.0", - "bech32": "1.1.4", - "ws": "7.4.6" - }, - "dependencies": { - "bech32": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/bech32/-/bech32-1.1.4.tgz", - "integrity": "sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ==", - "devOptional": true - }, - "ws": { - "version": "7.4.6", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz", - "integrity": "sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==", - "devOptional": true, - "requires": {} - } - } - }, - "@ethersproject/random": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/random/-/random-5.7.0.tgz", - "integrity": "sha512-19WjScqRA8IIeWclFme75VMXSBvi4e6InrUNuaR4s5pTF2qNhcGdCUwdxUVGtDDqC00sDLCO93jPQoDUH4HVmQ==", - "devOptional": true, - "requires": { - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/logger": "^5.7.0" - } - }, - "@ethersproject/rlp": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/rlp/-/rlp-5.7.0.tgz", - "integrity": "sha512-rBxzX2vK8mVF7b0Tol44t5Tb8gomOHkj5guL+HhzQ1yBh/ydjGnpw6at+X6Iw0Kp3OzzzkcKp8N9r0W4kYSs9w==", - "devOptional": true, - "requires": { - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/logger": "^5.7.0" - } - }, - "@ethersproject/sha2": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/sha2/-/sha2-5.7.0.tgz", - "integrity": "sha512-gKlH42riwb3KYp0reLsFTokByAKoJdgFCwI+CCiX/k+Jm2mbNs6oOaCjYQSlI1+XBVejwH2KrmCbMAT/GnRDQw==", - "devOptional": true, - "requires": { - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "hash.js": "1.1.7" - } - }, - "@ethersproject/signing-key": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/signing-key/-/signing-key-5.7.0.tgz", - "integrity": "sha512-MZdy2nL3wO0u7gkB4nA/pEf8lu1TlFswPNmy8AiYkfKTdO6eXBJyUdmHO/ehm/htHw9K/qF8ujnTyUAD+Ry54Q==", - "requires": { - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/properties": "^5.7.0", - "bn.js": "^5.2.1", - "elliptic": "6.5.4", - "hash.js": "1.1.7" - } - }, - "@ethersproject/solidity": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/solidity/-/solidity-5.7.0.tgz", - "integrity": "sha512-HmabMd2Dt/raavyaGukF4XxizWKhKQ24DoLtdNbBmNKUOPqwjsKQSdV9GQtj9CBEea9DlzETlVER1gYeXXBGaA==", - "devOptional": true, - "requires": { - "@ethersproject/bignumber": "^5.7.0", - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/keccak256": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/sha2": "^5.7.0", - "@ethersproject/strings": "^5.7.0" - } - }, - "@ethersproject/strings": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/strings/-/strings-5.7.0.tgz", - "integrity": "sha512-/9nu+lj0YswRNSH0NXYqrh8775XNyEdUQAuf3f+SmOrnVewcJ5SBNAjF7lpgehKi4abvNNXyf+HX86czCdJ8Mg==", - "devOptional": true, - "requires": { - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/constants": "^5.7.0", - "@ethersproject/logger": "^5.7.0" - } - }, - "@ethersproject/transactions": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/transactions/-/transactions-5.7.0.tgz", - "integrity": "sha512-kmcNicCp1lp8qanMTC3RIikGgoJ80ztTyvtsFvCYpSCfkjhD0jZ2LOrnbcuxuToLIUYYf+4XwD1rP+B/erDIhQ==", - "devOptional": true, - "requires": { - "@ethersproject/address": "^5.7.0", - "@ethersproject/bignumber": "^5.7.0", - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/constants": "^5.7.0", - "@ethersproject/keccak256": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/properties": "^5.7.0", - "@ethersproject/rlp": "^5.7.0", - "@ethersproject/signing-key": "^5.7.0" - } - }, - "@ethersproject/units": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/units/-/units-5.7.0.tgz", - "integrity": "sha512-pD3xLMy3SJu9kG5xDGI7+xhTEmGXlEqXU4OfNapmfnxLVY4EMSSRp7j1k7eezutBPH7RBN/7QPnwR7hzNlEFeg==", - "devOptional": true, - "requires": { - "@ethersproject/bignumber": "^5.7.0", - "@ethersproject/constants": "^5.7.0", - "@ethersproject/logger": "^5.7.0" - } - }, - "@ethersproject/wallet": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/wallet/-/wallet-5.7.0.tgz", - "integrity": "sha512-MhmXlJXEJFBFVKrDLB4ZdDzxcBxQ3rLyCkhNqVu3CDYvR97E+8r01UgrI+TI99Le+aYm/in/0vp86guJuM7FCA==", - "devOptional": true, - "requires": { - "@ethersproject/abstract-provider": "^5.7.0", - "@ethersproject/abstract-signer": "^5.7.0", - "@ethersproject/address": "^5.7.0", - "@ethersproject/bignumber": "^5.7.0", - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/hash": "^5.7.0", - "@ethersproject/hdnode": "^5.7.0", - "@ethersproject/json-wallets": "^5.7.0", - "@ethersproject/keccak256": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/properties": "^5.7.0", - "@ethersproject/random": "^5.7.0", - "@ethersproject/signing-key": "^5.7.0", - "@ethersproject/transactions": "^5.7.0", - "@ethersproject/wordlists": "^5.7.0" - } - }, - "@ethersproject/web": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/@ethersproject/web/-/web-5.7.1.tgz", - "integrity": "sha512-Gueu8lSvyjBWL4cYsWsjh6MtMwM0+H4HvqFPZfB6dV8ctbP9zFAO73VG1cMWae0FLPCtz0peKPpZY8/ugJJX2w==", - "devOptional": true, - "requires": { - "@ethersproject/base64": "^5.7.0", - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/properties": "^5.7.0", - "@ethersproject/strings": "^5.7.0" - } - }, - "@ethersproject/wordlists": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/wordlists/-/wordlists-5.7.0.tgz", - "integrity": "sha512-S2TFNJNfHWVHNE6cNDjbVlZ6MgE17MIxMbMg2zv3wn+3XSJGosL1m9ZVv3GXCf/2ymSsQ+hRI5IzoMJTG6aoVA==", - "devOptional": true, - "requires": { - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/hash": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/properties": "^5.7.0", - "@ethersproject/strings": "^5.7.0" - } - }, - "@graphql-tools/batch-execute": { - "version": "8.5.1", - "resolved": "https://registry.npmjs.org/@graphql-tools/batch-execute/-/batch-execute-8.5.1.tgz", - "integrity": "sha512-hRVDduX0UDEneVyEWtc2nu5H2PxpfSfM/riUlgZvo/a/nG475uyehxR5cFGvTEPEQUKY3vGIlqvtRigzqTfCew==", - "dev": true, - "optional": true, - "requires": { - "@graphql-tools/utils": "8.9.0", - "dataloader": "2.1.0", - "tslib": "^2.4.0", - "value-or-promise": "1.0.11" - }, - "dependencies": { - "tslib": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz", - "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==", - "dev": true, - "optional": true - } - } - }, - "@graphql-tools/delegate": { - "version": "8.8.1", - "resolved": "https://registry.npmjs.org/@graphql-tools/delegate/-/delegate-8.8.1.tgz", - "integrity": "sha512-NDcg3GEQmdEHlnF7QS8b4lM1PSF+DKeFcIlLEfZFBvVq84791UtJcDj8734sIHLukmyuAxXMfA1qLd2l4lZqzA==", - "dev": true, - "optional": true, - "requires": { - "@graphql-tools/batch-execute": "8.5.1", - "@graphql-tools/schema": "8.5.1", - "@graphql-tools/utils": "8.9.0", - "dataloader": "2.1.0", - "tslib": "~2.4.0", - "value-or-promise": "1.0.11" - }, - "dependencies": { - "tslib": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz", - "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==", - "dev": true, - "optional": true - } - } - }, - "@graphql-tools/merge": { - "version": "8.3.1", - "resolved": "https://registry.npmjs.org/@graphql-tools/merge/-/merge-8.3.1.tgz", - "integrity": "sha512-BMm99mqdNZbEYeTPK3it9r9S6rsZsQKtlqJsSBknAclXq2pGEfOxjcIZi+kBSkHZKPKCRrYDd5vY0+rUmIHVLg==", - "dev": true, - "optional": true, - "requires": { - "@graphql-tools/utils": "8.9.0", - "tslib": "^2.4.0" - }, - "dependencies": { - "tslib": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz", - "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==", - "dev": true, - "optional": true - } - } - }, - "@graphql-tools/mock": { - "version": "8.7.15", - "resolved": "https://registry.npmjs.org/@graphql-tools/mock/-/mock-8.7.15.tgz", - "integrity": "sha512-0zImG5tuObhowqtijlB6TMAIVtCIBsnGGwNW8gnCOa+xZAqfGdUMsSma17tHC2XuI7xhv7A0O8pika9e3APLUg==", - "dev": true, - "optional": true, - "requires": { - "@graphql-tools/schema": "9.0.13", - "@graphql-tools/utils": "9.1.4", - "fast-json-stable-stringify": "^2.1.0", - "tslib": "^2.4.0" - }, - "dependencies": { - "@graphql-tools/merge": { - "version": "8.3.15", - "resolved": "https://registry.npmjs.org/@graphql-tools/merge/-/merge-8.3.15.tgz", - "integrity": "sha512-hYYOlsqkUlL6oOo7zzuk6hIv7xQzy+x21sgK84d5FWaiWYkLYh9As8myuDd9SD5xovWWQ9m/iRhIOVDEMSyEKA==", - "dev": true, - "optional": true, - "requires": { - "@graphql-tools/utils": "9.1.4", - "tslib": "^2.4.0" - } - }, - "@graphql-tools/schema": { - "version": "9.0.13", - "resolved": "https://registry.npmjs.org/@graphql-tools/schema/-/schema-9.0.13.tgz", - "integrity": "sha512-guRA3fwAtv+M1Kh930P4ydH9aKJTWscIkhVFcWpj/cnjYYxj88jkEJ15ZNiJX/2breNY+sbVgmlgLKb6aXi/Jg==", - "dev": true, - "optional": true, - "requires": { - "@graphql-tools/merge": "8.3.15", - "@graphql-tools/utils": "9.1.4", - "tslib": "^2.4.0", - "value-or-promise": "1.0.12" - } - }, - "@graphql-tools/utils": { - "version": "9.1.4", - "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-9.1.4.tgz", - "integrity": "sha512-hgIeLt95h9nQgQuzbbdhuZmh+8WV7RZ/6GbTj6t3IU4Zd2zs9yYJ2jgW/krO587GMOY8zCwrjNOMzD40u3l7Vg==", - "dev": true, - "optional": true, - "requires": { - "tslib": "^2.4.0" - } - }, - "tslib": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz", - "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==", - "dev": true, - "optional": true - }, - "value-or-promise": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/value-or-promise/-/value-or-promise-1.0.12.tgz", - "integrity": "sha512-Z6Uz+TYwEqE7ZN50gwn+1LCVo9ZVrpxRPOhOLnncYkY1ZzOYtrX8Fwf/rFktZ8R5mJms6EZf5TqNOMeZmnPq9Q==", - "dev": true, - "optional": true - } - } - }, - "@graphql-tools/schema": { - "version": "8.5.1", - "resolved": "https://registry.npmjs.org/@graphql-tools/schema/-/schema-8.5.1.tgz", - "integrity": "sha512-0Esilsh0P/qYcB5DKQpiKeQs/jevzIadNTaT0jeWklPMwNbT7yMX4EqZany7mbeRRlSRwMzNzL5olyFdffHBZg==", - "dev": true, - "optional": true, - "requires": { - "@graphql-tools/merge": "8.3.1", - "@graphql-tools/utils": "8.9.0", - "tslib": "^2.4.0", - "value-or-promise": "1.0.11" - }, - "dependencies": { - "tslib": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz", - "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==", - "dev": true, - "optional": true - } - } - }, - "@graphql-tools/utils": { - "version": "8.9.0", - "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-8.9.0.tgz", - "integrity": "sha512-pjJIWH0XOVnYGXCqej8g/u/tsfV4LvLlj0eATKQu5zwnxd/TiTHq7Cg313qUPTFFHZ3PP5wJ15chYVtLDwaymg==", - "dev": true, - "optional": true, - "requires": { - "tslib": "^2.4.0" - }, - "dependencies": { - "tslib": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz", - "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==", - "dev": true, - "optional": true - } - } - }, - "@graphql-typed-document-node/core": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@graphql-typed-document-node/core/-/core-3.1.1.tgz", - "integrity": "sha512-NQ17ii0rK1b34VZonlmT2QMJFI70m0TRwbknO/ihlbatXyaktDhN/98vBiUU6kNBPljqGqyIrl2T4nY2RpFANg==", - "optional": true, - "requires": {} - }, - "@improbable-eng/grpc-web": { - "version": "0.14.1", - "resolved": "https://registry.npmjs.org/@improbable-eng/grpc-web/-/grpc-web-0.14.1.tgz", - "integrity": "sha512-XaIYuunepPxoiGVLLHmlnVminUGzBTnXr8Wv7khzmLWbNw4TCwJKX09GSMJlKhu/TRk6gms0ySFxewaETSBqgw==", - "requires": { - "browser-headers": "^0.4.1" - } - }, - "@improbable-eng/grpc-web-node-http-transport": { - "version": "0.15.0", - "resolved": "https://registry.npmjs.org/@improbable-eng/grpc-web-node-http-transport/-/grpc-web-node-http-transport-0.15.0.tgz", - "integrity": "sha512-HLgJfVolGGpjc9DWPhmMmXJx8YGzkek7jcCFO1YYkSOoO81MWRZentPOd/JiKiZuU08wtc4BG+WNuGzsQB5jZA==", - "dev": true, - "requires": {} - }, - "@injectivelabs/core-proto-ts": { - "version": "0.0.14", - "resolved": "https://registry.npmjs.org/@injectivelabs/core-proto-ts/-/core-proto-ts-0.0.14.tgz", - "integrity": "sha512-NZWlgBzgVrXow9IknFQHvcYKX4QkUD25taRigoNYQK8PDn4+VXd9xM5WFUDRhzm2smTCguyl/+MghpEp4oTPWw==", - "optional": true, - "requires": { - "@injectivelabs/grpc-web": "^0.0.1", - "google-protobuf": "^3.14.0", - "protobufjs": "^7.0.0", - "rxjs": "^7.4.0" - }, - "dependencies": { - "long": { - "version": "5.2.3", - "resolved": "https://registry.npmjs.org/long/-/long-5.2.3.tgz", - "integrity": "sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q==", - "optional": true - }, - "protobufjs": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.2.3.tgz", - "integrity": "sha512-TtpvOqwB5Gdz/PQmOjgsrGH1nHjAQVCN7JG4A6r1sXRWESL5rNMAiRcBQlCAdKxZcAbstExQePYG8xof/JVRgg==", - "optional": true, - "requires": { - "@protobufjs/aspromise": "^1.1.2", - "@protobufjs/base64": "^1.1.2", - "@protobufjs/codegen": "^2.0.4", - "@protobufjs/eventemitter": "^1.1.0", - "@protobufjs/fetch": "^1.1.0", - "@protobufjs/float": "^1.0.2", - "@protobufjs/inquire": "^1.1.0", - "@protobufjs/path": "^1.1.2", - "@protobufjs/pool": "^1.1.0", - "@protobufjs/utf8": "^1.1.0", - "@types/node": ">=13.7.0", - "long": "^5.0.0" - } - } - } - }, - "@injectivelabs/exceptions": { - "version": "1.10.12", - "resolved": "https://registry.npmjs.org/@injectivelabs/exceptions/-/exceptions-1.10.12.tgz", - "integrity": "sha512-9x8WDRi/K6JRMRAGJblbS0wQKckIX69CPU61ea22RprkO0sPazxpzp56txgHj0uHYkq2bg/exrX8N6UxdrNCMg==", - "optional": true, - "requires": { - "@injectivelabs/grpc-web": "^0.0.1", - "@injectivelabs/ts-types": "^1.10.12", - "http-status-codes": "^2.2.0", - "link-module-alias": "^1.2.0", - "shx": "^0.3.2" - } - }, - "@injectivelabs/grpc-web": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/@injectivelabs/grpc-web/-/grpc-web-0.0.1.tgz", - "integrity": "sha512-Pu5YgaZp+OvR5UWfqbrPdHer3+gDf+b5fQoY+t2VZx1IAVHX8bzbN9EreYTvTYtFeDpYRWM8P7app2u4EX5wTw==", - "optional": true, - "requires": { - "browser-headers": "^0.4.1" - } - }, - "@injectivelabs/grpc-web-node-http-transport": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/@injectivelabs/grpc-web-node-http-transport/-/grpc-web-node-http-transport-0.0.2.tgz", - "integrity": "sha512-rpyhXLiGY/UMs6v6YmgWHJHiO9l0AgDyVNv+jcutNVt4tQrmNvnpvz2wCAGOFtq5LuX/E9ChtTVpk3gWGqXcGA==", - "optional": true, - "requires": {} - }, - "@injectivelabs/grpc-web-react-native-transport": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/@injectivelabs/grpc-web-react-native-transport/-/grpc-web-react-native-transport-0.0.2.tgz", - "integrity": "sha512-mk+aukQXnYNgPsPnu3KBi+FD0ZHQpazIlaBZ2jNZG7QAVmxTWtv3R66Zoq99Wx2dnE946NsZBYAoa0K5oSjnow==", - "optional": true, - "requires": {} - }, - "@injectivelabs/indexer-proto-ts": { - "version": "1.10.8-rc.4", - "resolved": "https://registry.npmjs.org/@injectivelabs/indexer-proto-ts/-/indexer-proto-ts-1.10.8-rc.4.tgz", - "integrity": "sha512-IwbepTfsHHAv3Z36As6yH/+HIplOEpUu6SFHBCVgdSIaQ8GuvTib4HETiVnV4mjYqoyVgWs+zLSAfih46rdMJQ==", - "optional": true, - "requires": { - "@injectivelabs/grpc-web": "^0.0.1", - "google-protobuf": "^3.14.0", - "protobufjs": "^7.0.0", - "rxjs": "^7.4.0" - }, - "dependencies": { - "long": { - "version": "5.2.3", - "resolved": "https://registry.npmjs.org/long/-/long-5.2.3.tgz", - "integrity": "sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q==", - "optional": true - }, - "protobufjs": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.2.3.tgz", - "integrity": "sha512-TtpvOqwB5Gdz/PQmOjgsrGH1nHjAQVCN7JG4A6r1sXRWESL5rNMAiRcBQlCAdKxZcAbstExQePYG8xof/JVRgg==", - "optional": true, - "requires": { - "@protobufjs/aspromise": "^1.1.2", - "@protobufjs/base64": "^1.1.2", - "@protobufjs/codegen": "^2.0.4", - "@protobufjs/eventemitter": "^1.1.0", - "@protobufjs/fetch": "^1.1.0", - "@protobufjs/float": "^1.0.2", - "@protobufjs/inquire": "^1.1.0", - "@protobufjs/path": "^1.1.2", - "@protobufjs/pool": "^1.1.0", - "@protobufjs/utf8": "^1.1.0", - "@types/node": ">=13.7.0", - "long": "^5.0.0" - } - } - } - }, - "@injectivelabs/mito-proto-ts": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/@injectivelabs/mito-proto-ts/-/mito-proto-ts-1.0.9.tgz", - "integrity": "sha512-+TZMvJ4SHwcn6SFPdqaiQFZdNhjH7hyRFozY15nOTC2utdGij9jEsjz1NsyOejfYDA0s1z5Wm1SgrMYKaVpAmQ==", - "optional": true, - "requires": { - "@injectivelabs/grpc-web": "^0.0.1", - "google-protobuf": "^3.14.0", - "protobufjs": "^7.0.0", - "rxjs": "^7.4.0" - }, - "dependencies": { - "long": { - "version": "5.2.3", - "resolved": "https://registry.npmjs.org/long/-/long-5.2.3.tgz", - "integrity": "sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q==", - "optional": true - }, - "protobufjs": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.2.3.tgz", - "integrity": "sha512-TtpvOqwB5Gdz/PQmOjgsrGH1nHjAQVCN7JG4A6r1sXRWESL5rNMAiRcBQlCAdKxZcAbstExQePYG8xof/JVRgg==", - "optional": true, - "requires": { - "@protobufjs/aspromise": "^1.1.2", - "@protobufjs/base64": "^1.1.2", - "@protobufjs/codegen": "^2.0.4", - "@protobufjs/eventemitter": "^1.1.0", - "@protobufjs/fetch": "^1.1.0", - "@protobufjs/float": "^1.0.2", - "@protobufjs/inquire": "^1.1.0", - "@protobufjs/path": "^1.1.2", - "@protobufjs/pool": "^1.1.0", - "@protobufjs/utf8": "^1.1.0", - "@types/node": ">=13.7.0", - "long": "^5.0.0" - } - } - } - }, - "@injectivelabs/networks": { - "version": "1.10.12", - "resolved": "https://registry.npmjs.org/@injectivelabs/networks/-/networks-1.10.12.tgz", - "integrity": "sha512-tTHyLls1Nik5QTs/S03qqG2y/ITvNwI8CJOQbMmmsr1CL2CdjJBtzRYn9Dyx2p8XgzRFf9hmlybpe20tq9O3SA==", - "optional": true, - "requires": { - "@injectivelabs/exceptions": "^1.10.12", - "@injectivelabs/ts-types": "^1.10.12", - "@injectivelabs/utils": "^1.10.12", - "link-module-alias": "^1.2.0", - "shx": "^0.3.2" - } - }, - "@injectivelabs/sdk-ts": { - "version": "1.10.72", - "resolved": "https://registry.npmjs.org/@injectivelabs/sdk-ts/-/sdk-ts-1.10.72.tgz", - "integrity": "sha512-A5mHNNBgO4fI1c/7CZ0bGfVXliy8laP+VaYZ++aWh1YyudoZw4CTCEmLetZRy7AUU3XcfbHa8sAImRi7db+v6Q==", - "optional": true, - "requires": { - "@apollo/client": "^3.5.8", - "@cosmjs/amino": "^0.30.1", - "@cosmjs/proto-signing": "^0.30.1", - "@cosmjs/stargate": "^0.30.1", - "@ethersproject/bytes": "^5.7.0", - "@injectivelabs/core-proto-ts": "^0.0.14", - "@injectivelabs/exceptions": "^1.10.12", - "@injectivelabs/grpc-web": "^0.0.1", - "@injectivelabs/grpc-web-node-http-transport": "^0.0.2", - "@injectivelabs/grpc-web-react-native-transport": "^0.0.2", - "@injectivelabs/indexer-proto-ts": "1.10.8-rc.4", - "@injectivelabs/mito-proto-ts": "1.0.9", - "@injectivelabs/networks": "^1.10.12", - "@injectivelabs/test-utils": "^1.10.12", - "@injectivelabs/token-metadata": "^1.10.42", - "@injectivelabs/ts-types": "^1.10.12", - "@injectivelabs/utils": "^1.10.12", - "@metamask/eth-sig-util": "^4.0.0", - "axios": "^0.27.2", - "bech32": "^2.0.0", - "bip39": "^3.0.4", - "cosmjs-types": "^0.7.1", - "eth-crypto": "^2.6.0", - "ethereumjs-util": "^7.1.4", - "ethers": "^5.7.2", - "google-protobuf": "^3.21.0", - "graphql": "^16.3.0", - "http-status-codes": "^2.2.0", - "js-sha3": "^0.8.0", - "jscrypto": "^1.0.3", - "keccak256": "^1.0.6", - "link-module-alias": "^1.2.0", - "rxjs": "^7.8.0", - "secp256k1": "^4.0.3", - "shx": "^0.3.2", - "snakecase-keys": "^5.4.1" - }, - "dependencies": { - "axios": { - "version": "0.27.2", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.27.2.tgz", - "integrity": "sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==", - "optional": true, - "requires": { - "follow-redirects": "^1.14.9", - "form-data": "^4.0.0" - } - }, - "form-data": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", - "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", - "optional": true, - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - } - } - } - }, - "@injectivelabs/test-utils": { - "version": "1.10.12", - "resolved": "https://registry.npmjs.org/@injectivelabs/test-utils/-/test-utils-1.10.12.tgz", - "integrity": "sha512-IFqlEeFXXf6V1NEt65W2SfAN5/73lK4BmTrfeOQANfOFa3TUAJcPuU8rhx4jhi801cZLV3R9D/iQdgE1tbUK9A==", - "optional": true, - "requires": { - "axios": "^0.21.1", - "bignumber.js": "^9.0.1", - "link-module-alias": "^1.2.0", - "shx": "^0.3.2", - "snakecase-keys": "^5.1.2", - "store2": "^2.12.0" - }, - "dependencies": { - "axios": { - "version": "0.21.4", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.4.tgz", - "integrity": "sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==", - "optional": true, - "requires": { - "follow-redirects": "^1.14.0" - } - } - } - }, - "@injectivelabs/token-metadata": { - "version": "1.10.42", - "resolved": "https://registry.npmjs.org/@injectivelabs/token-metadata/-/token-metadata-1.10.42.tgz", - "integrity": "sha512-j5S+f05/Xtcqbg7pPHRI6hjJpdjIIuMHo16nLecU86mEHhXOzdJzhi/yzrtW7dstlgshyUJKRPZ7HaiOvZNrjA==", - "optional": true, - "requires": { - "@injectivelabs/exceptions": "^1.10.12", - "@injectivelabs/networks": "^1.10.12", - "@injectivelabs/ts-types": "^1.10.12", - "@injectivelabs/utils": "^1.10.12", - "@types/lodash.values": "^4.3.6", - "copyfiles": "^2.4.1", - "jsonschema": "^1.4.0", - "link-module-alias": "^1.2.0", - "lodash": "^4.17.21", - "lodash.values": "^4.3.0", - "shx": "^0.3.2" - } - }, - "@injectivelabs/ts-types": { - "version": "1.10.12", - "resolved": "https://registry.npmjs.org/@injectivelabs/ts-types/-/ts-types-1.10.12.tgz", - "integrity": "sha512-Z/qeZ9jwhqpreXFNiox6NrXLiMyhvMEd79RWMZ9lVOLjTeXRTUh/Vl7ry7KBE2OypsPPTMUP+k7Dhsn0ufFwgw==", - "optional": true, - "requires": { - "link-module-alias": "^1.2.0", - "shx": "^0.3.2" - } - }, - "@injectivelabs/utils": { - "version": "1.10.12", - "resolved": "https://registry.npmjs.org/@injectivelabs/utils/-/utils-1.10.12.tgz", - "integrity": "sha512-c8al79nxIJgV1cBAdW2TPDGldj/8gm5k0h5TIN/AJs8/AeIjpTwwVGfLY3QvPOpRsxuQ9CjBkTXrAcSL1wwkcw==", - "optional": true, - "requires": { - "@injectivelabs/exceptions": "^1.10.12", - "@injectivelabs/ts-types": "^1.10.12", - "axios": "^0.21.1", - "bignumber.js": "^9.0.1", - "http-status-codes": "^2.2.0", - "link-module-alias": "^1.2.0", - "shx": "^0.3.2", - "snakecase-keys": "^5.1.2", - "store2": "^2.12.0" - }, - "dependencies": { - "axios": { - "version": "0.21.4", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.4.tgz", - "integrity": "sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==", - "optional": true, - "requires": { - "follow-redirects": "^1.14.0" - } - } - } - }, - "@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, - "requires": { - "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": { - "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 - }, - "@jest/console": { - "version": "27.3.1", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-27.3.1.tgz", - "integrity": "sha512-RkFNWmv0iui+qsOr/29q9dyfKTTT5DCuP31kUwg7rmOKPT/ozLeGLKJKVIiOfbiKyleUZKIrHwhmiZWVe8IMdw==", - "dev": true, - "requires": { - "@jest/types": "^27.2.5", - "@types/node": "*", - "chalk": "^4.0.0", - "jest-message-util": "^27.3.1", - "jest-util": "^27.3.1", - "slash": "^3.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "@jest/core": { - "version": "27.3.1", - "resolved": "https://registry.npmjs.org/@jest/core/-/core-27.3.1.tgz", - "integrity": "sha512-DMNE90RR5QKx0EA+wqe3/TNEwiRpOkhshKNxtLxd4rt3IZpCt+RSL+FoJsGeblRZmqdK4upHA/mKKGPPRAifhg==", - "dev": true, - "requires": { - "@jest/console": "^27.3.1", - "@jest/reporters": "^27.3.1", - "@jest/test-result": "^27.3.1", - "@jest/transform": "^27.3.1", - "@jest/types": "^27.2.5", - "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "emittery": "^0.8.1", - "exit": "^0.1.2", - "graceful-fs": "^4.2.4", - "jest-changed-files": "^27.3.0", - "jest-config": "^27.3.1", - "jest-haste-map": "^27.3.1", - "jest-message-util": "^27.3.1", - "jest-regex-util": "^27.0.6", - "jest-resolve": "^27.3.1", - "jest-resolve-dependencies": "^27.3.1", - "jest-runner": "^27.3.1", - "jest-runtime": "^27.3.1", - "jest-snapshot": "^27.3.1", - "jest-util": "^27.3.1", - "jest-validate": "^27.3.1", - "jest-watcher": "^27.3.1", - "micromatch": "^4.0.4", - "rimraf": "^3.0.0", - "slash": "^3.0.0", - "strip-ansi": "^6.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "@jest/environment": { - "version": "27.3.1", - "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-27.3.1.tgz", - "integrity": "sha512-BCKCj4mOVLme6Tanoyc9k0ultp3pnmuyHw73UHRPeeZxirsU/7E3HC4le/VDb/SMzE1JcPnto+XBKFOcoiJzVw==", - "dev": true, - "requires": { - "@jest/fake-timers": "^27.3.1", - "@jest/types": "^27.2.5", - "@types/node": "*", - "jest-mock": "^27.3.0" - } - }, - "@jest/fake-timers": { - "version": "27.3.1", - "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-27.3.1.tgz", - "integrity": "sha512-M3ZFgwwlqJtWZ+QkBG5NmC23A9w+A6ZxNsO5nJxJsKYt4yguBd3i8TpjQz5NfCX91nEve1KqD9RA2Q+Q1uWqoA==", - "dev": true, - "requires": { - "@jest/types": "^27.2.5", - "@sinonjs/fake-timers": "^8.0.1", - "@types/node": "*", - "jest-message-util": "^27.3.1", - "jest-mock": "^27.3.0", - "jest-util": "^27.3.1" - } - }, - "@jest/globals": { - "version": "27.3.1", - "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-27.3.1.tgz", - "integrity": "sha512-Q651FWiWQAIFiN+zS51xqhdZ8g9b88nGCobC87argAxA7nMfNQq0Q0i9zTfQYgLa6qFXk2cGANEqfK051CZ8Pg==", - "dev": true, - "requires": { - "@jest/environment": "^27.3.1", - "@jest/types": "^27.2.5", - "expect": "^27.3.1" - } - }, - "@jest/reporters": { - "version": "27.3.1", - "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-27.3.1.tgz", - "integrity": "sha512-m2YxPmL9Qn1emFVgZGEiMwDntDxRRQ2D58tiDQlwYTg5GvbFOKseYCcHtn0WsI8CG4vzPglo3nqbOiT8ySBT/w==", - "dev": true, - "requires": { - "@bcoe/v8-coverage": "^0.2.3", - "@jest/console": "^27.3.1", - "@jest/test-result": "^27.3.1", - "@jest/transform": "^27.3.1", - "@jest/types": "^27.2.5", - "@types/node": "*", - "chalk": "^4.0.0", - "collect-v8-coverage": "^1.0.0", - "exit": "^0.1.2", - "glob": "^7.1.2", - "graceful-fs": "^4.2.4", - "istanbul-lib-coverage": "^3.0.0", - "istanbul-lib-instrument": "^4.0.3", - "istanbul-lib-report": "^3.0.0", - "istanbul-lib-source-maps": "^4.0.0", - "istanbul-reports": "^3.0.2", - "jest-haste-map": "^27.3.1", - "jest-resolve": "^27.3.1", - "jest-util": "^27.3.1", - "jest-worker": "^27.3.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" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "@jest/source-map": { - "version": "27.0.6", - "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-27.0.6.tgz", - "integrity": "sha512-Fek4mi5KQrqmlY07T23JRi0e7Z9bXTOOD86V/uS0EIW4PClvPDqZOyFlLpNJheS6QI0FNX1CgmPjtJ4EA/2M+g==", - "dev": true, - "requires": { - "callsites": "^3.0.0", - "graceful-fs": "^4.2.4", - "source-map": "^0.6.0" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } - } - }, - "@jest/test-result": { - "version": "27.3.1", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-27.3.1.tgz", - "integrity": "sha512-mLn6Thm+w2yl0opM8J/QnPTqrfS4FoXsXF2WIWJb2O/GBSyResL71BRuMYbYRsGt7ELwS5JGcEcGb52BNrumgg==", - "dev": true, - "requires": { - "@jest/console": "^27.3.1", - "@jest/types": "^27.2.5", - "@types/istanbul-lib-coverage": "^2.0.0", - "collect-v8-coverage": "^1.0.0" - } - }, - "@jest/test-sequencer": { - "version": "27.3.1", - "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-27.3.1.tgz", - "integrity": "sha512-siySLo07IMEdSjA4fqEnxfIX8lB/lWYsBPwNFtkOvsFQvmBrL3yj3k3uFNZv/JDyApTakRpxbKLJ3CT8UGVCrA==", - "dev": true, - "requires": { - "@jest/test-result": "^27.3.1", - "graceful-fs": "^4.2.4", - "jest-haste-map": "^27.3.1", - "jest-runtime": "^27.3.1" - } - }, - "@jest/transform": { - "version": "27.3.1", - "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-27.3.1.tgz", - "integrity": "sha512-3fSvQ02kuvjOI1C1ssqMVBKJpZf6nwoCiSu00zAKh5nrp3SptNtZy/8s5deayHnqxhjD9CWDJ+yqQwuQ0ZafXQ==", - "dev": true, - "requires": { - "@babel/core": "^7.1.0", - "@jest/types": "^27.2.5", - "babel-plugin-istanbul": "^6.0.0", - "chalk": "^4.0.0", - "convert-source-map": "^1.4.0", - "fast-json-stable-stringify": "^2.0.0", - "graceful-fs": "^4.2.4", - "jest-haste-map": "^27.3.1", - "jest-regex-util": "^27.0.6", - "jest-util": "^27.3.1", - "micromatch": "^4.0.4", - "pirates": "^4.0.1", - "slash": "^3.0.0", - "source-map": "^0.6.1", - "write-file-atomic": "^3.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } + "@graphql-typed-document-node/core": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@graphql-typed-document-node/core/-/core-3.1.1.tgz", + "integrity": "sha512-NQ17ii0rK1b34VZonlmT2QMJFI70m0TRwbknO/ihlbatXyaktDhN/98vBiUU6kNBPljqGqyIrl2T4nY2RpFANg==", + "optional": true, + "requires": {} }, - "@jest/types": { - "version": "27.2.5", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.2.5.tgz", - "integrity": "sha512-nmuM4VuDtCZcY+eTpw+0nvstwReMsjPoj7ZR80/BbixulhLaiX+fbv8oeLW8WZlJMcsGQsTmMKT/iTZu1Uy/lQ==", - "dev": true, + "@improbable-eng/grpc-web": { + "version": "0.14.1", + "resolved": "https://registry.npmjs.org/@improbable-eng/grpc-web/-/grpc-web-0.14.1.tgz", + "integrity": "sha512-XaIYuunepPxoiGVLLHmlnVminUGzBTnXr8Wv7khzmLWbNw4TCwJKX09GSMJlKhu/TRk6gms0ySFxewaETSBqgw==", "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } + "browser-headers": "^0.4.1" } }, - "@josephg/resolvable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@josephg/resolvable/-/resolvable-1.0.1.tgz", - "integrity": "sha512-CtzORUwWTTOTqfVtHaKRJ0I1kNQd1bpn3sUh8I3nJDVY+5/M/Oe1DnEWzPQvqq/xPIIkzzzIP7mfCoAjFRvDhg==", + "@improbable-eng/grpc-web-node-http-transport": { + "version": "0.15.0", + "resolved": "https://registry.npmjs.org/@improbable-eng/grpc-web-node-http-transport/-/grpc-web-node-http-transport-0.15.0.tgz", + "integrity": "sha512-HLgJfVolGGpjc9DWPhmMmXJx8YGzkek7jcCFO1YYkSOoO81MWRZentPOd/JiKiZuU08wtc4BG+WNuGzsQB5jZA==", "dev": true, - "optional": true + "requires": {} }, - "@metamask/eth-sig-util": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@metamask/eth-sig-util/-/eth-sig-util-4.0.1.tgz", - "integrity": "sha512-tghyZKLHZjcdlDqCA3gNZmLeR0XvOE9U1qoQO9ohyAZT6Pya+H9vkBPcsyXytmYLNgVoin7CKCmweo/R43V+tQ==", + "@injectivelabs/core-proto-ts": { + "version": "0.0.14", + "resolved": "https://registry.npmjs.org/@injectivelabs/core-proto-ts/-/core-proto-ts-0.0.14.tgz", + "integrity": "sha512-NZWlgBzgVrXow9IknFQHvcYKX4QkUD25taRigoNYQK8PDn4+VXd9xM5WFUDRhzm2smTCguyl/+MghpEp4oTPWw==", "optional": true, "requires": { - "ethereumjs-abi": "^0.6.8", - "ethereumjs-util": "^6.2.1", - "ethjs-util": "^0.1.6", - "tweetnacl": "^1.0.3", - "tweetnacl-util": "^0.15.1" + "@injectivelabs/grpc-web": "^0.0.1", + "google-protobuf": "^3.14.0", + "protobufjs": "^7.0.0", + "rxjs": "^7.4.0" }, "dependencies": { - "bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "long": { + "version": "5.2.3", + "resolved": "https://registry.npmjs.org/long/-/long-5.2.3.tgz", + "integrity": "sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q==", "optional": true }, - "ethereumjs-util": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-6.2.1.tgz", - "integrity": "sha512-W2Ktez4L01Vexijrm5EB6w7dg4n/TgpoYU4avuT5T3Vmnw/eCRtiBrJfQYS/DCSvDIOLn2k57GcHdeBcgVxAqw==", + "protobufjs": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.2.3.tgz", + "integrity": "sha512-TtpvOqwB5Gdz/PQmOjgsrGH1nHjAQVCN7JG4A6r1sXRWESL5rNMAiRcBQlCAdKxZcAbstExQePYG8xof/JVRgg==", "optional": true, "requires": { - "@types/bn.js": "^4.11.3", - "bn.js": "^4.11.0", - "create-hash": "^1.1.2", - "elliptic": "^6.5.2", - "ethereum-cryptography": "^0.1.3", - "ethjs-util": "0.1.6", - "rlp": "^2.2.3" - } - } - } - }, - "@mysten/bcs": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/@mysten/bcs/-/bcs-0.7.1.tgz", - "integrity": "sha512-wFPb8bkhwrbiStfZMV5rFM7J+umpke59/dNjDp+UYJKykNlW23LCk2ePyEUvGdb62HGJM1jyOJ8g4egE3OmdKA==", - "requires": { - "bs58": "^5.0.0" - }, - "dependencies": { - "base-x": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/base-x/-/base-x-4.0.0.tgz", - "integrity": "sha512-FuwxlW4H5kh37X/oW59pwTzzTKRzfrrQwhmyspRM7swOEZcHtDZSCt45U6oKgtuFE+WYPblePMVIPR4RZrh/hw==" - }, - "bs58": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/bs58/-/bs58-5.0.0.tgz", - "integrity": "sha512-r+ihvQJvahgYT50JD05dyJNKlmmSlMoOGwn1lCcEzanPglg7TxYjioQUYehQ9mAR/+hOSd2jRc/Z2y5UxBymvQ==", - "requires": { - "base-x": "^4.0.0" - } - } - } - }, - "@mysten/sui.js": { - "version": "0.32.2", - "resolved": "https://registry.npmjs.org/@mysten/sui.js/-/sui.js-0.32.2.tgz", - "integrity": "sha512-/Hm4xkGolJhqj8FvQr7QSHDTlxIvL52mtbOao9f75YjrBh7y1Uh9kbJSY7xiTF1NY9sv6p5hUVlYRJuM0Hvn9A==", - "requires": { - "@mysten/bcs": "0.7.1", - "@noble/curves": "^1.0.0", - "@noble/hashes": "^1.3.0", - "@scure/bip32": "^1.3.0", - "@scure/bip39": "^1.2.0", - "@suchipi/femver": "^1.0.0", - "jayson": "^4.0.0", - "rpc-websockets": "^7.5.1", - "superstruct": "^1.0.3", - "tweetnacl": "^1.0.3" - }, - "dependencies": { - "@noble/hashes": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.3.0.tgz", - "integrity": "sha512-ilHEACi9DwqJB0pw7kv+Apvh50jiiSyR/cQ3y4W7lOR5mhvn/50FLUfsnfJz0BDZtl/RR16kXvptiv6q1msYZg==" - }, - "@scure/bip39": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.2.0.tgz", - "integrity": "sha512-SX/uKq52cuxm4YFXWFaVByaSHJh2w3BnokVSeUJVCv6K7WulT9u2BuNRBhuFl8vAuYnzx9bEu9WgpcNYTrYieg==", - "requires": { - "@noble/hashes": "~1.3.0", - "@scure/base": "~1.1.0" - } - }, - "@types/node": { - "version": "12.20.55", - "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.55.tgz", - "integrity": "sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==" - }, - "jayson": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/jayson/-/jayson-4.1.0.tgz", - "integrity": "sha512-R6JlbyLN53Mjku329XoRT2zJAE6ZgOQ8f91ucYdMCD4nkGCF9kZSrcGXpHIU4jeKj58zUZke2p+cdQchU7Ly7A==", - "requires": { - "@types/connect": "^3.4.33", - "@types/node": "^12.12.54", - "@types/ws": "^7.4.4", - "commander": "^2.20.3", - "delay": "^5.0.0", - "es6-promisify": "^5.0.0", - "eyes": "^0.1.8", - "isomorphic-ws": "^4.0.1", - "json-stringify-safe": "^5.0.1", - "JSONStream": "^1.3.5", - "uuid": "^8.3.2", - "ws": "^7.4.5" - } - }, - "superstruct": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/superstruct/-/superstruct-1.0.3.tgz", - "integrity": "sha512-8iTn3oSS8nRGn+C2pgXSKPI3jmpm6FExNazNpjvqS6ZUJQCej3PUXEKM8NjHBOs54ExM+LPW/FBRhymrdcCiSg==" - }, - "uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==" + "@protobufjs/aspromise": "^1.1.2", + "@protobufjs/base64": "^1.1.2", + "@protobufjs/codegen": "^2.0.4", + "@protobufjs/eventemitter": "^1.1.0", + "@protobufjs/fetch": "^1.1.0", + "@protobufjs/float": "^1.0.2", + "@protobufjs/inquire": "^1.1.0", + "@protobufjs/path": "^1.1.2", + "@protobufjs/pool": "^1.1.0", + "@protobufjs/utf8": "^1.1.0", + "@types/node": ">=13.7.0", + "long": "^5.0.0" + } } } }, - "@noble/curves": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.0.0.tgz", - "integrity": "sha512-2upgEu0iLiDVDZkNLeFV2+ht0BAVgQnEmCk6JsOch9Rp8xfkMCbvbAZlA2pBHQc73dbl+vFOXfqkf4uemdn0bw==", + "@injectivelabs/exceptions": { + "version": "1.10.12", + "resolved": "https://registry.npmjs.org/@injectivelabs/exceptions/-/exceptions-1.10.12.tgz", + "integrity": "sha512-9x8WDRi/K6JRMRAGJblbS0wQKckIX69CPU61ea22RprkO0sPazxpzp56txgHj0uHYkq2bg/exrX8N6UxdrNCMg==", + "optional": true, "requires": { - "@noble/hashes": "1.3.0" - }, - "dependencies": { - "@noble/hashes": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.3.0.tgz", - "integrity": "sha512-ilHEACi9DwqJB0pw7kv+Apvh50jiiSyR/cQ3y4W7lOR5mhvn/50FLUfsnfJz0BDZtl/RR16kXvptiv6q1msYZg==" - } + "@injectivelabs/grpc-web": "^0.0.1", + "@injectivelabs/ts-types": "^1.10.12", + "http-status-codes": "^2.2.0", + "link-module-alias": "^1.2.0", + "shx": "^0.3.2" } }, - "@noble/ed25519": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/@noble/ed25519/-/ed25519-1.7.1.tgz", - "integrity": "sha512-Rk4SkJFaXZiznFyC/t77Q0NKS4FL7TLJJsVG2V2oiEq3kJVeTdxysEe/yRWSpnWMe808XRDJ+VFh5pt/FN5plw==" - }, - "@noble/hashes": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.1.3.tgz", - "integrity": "sha512-CE0FCR57H2acVI5UOzIGSSIYxZ6v/HOhDR0Ro9VLyhnzLwx0o8W1mmgaqlEUx4049qJDlIBRztv5k+MM8vbO3A==" + "@injectivelabs/grpc-web": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/@injectivelabs/grpc-web/-/grpc-web-0.0.1.tgz", + "integrity": "sha512-Pu5YgaZp+OvR5UWfqbrPdHer3+gDf+b5fQoY+t2VZx1IAVHX8bzbN9EreYTvTYtFeDpYRWM8P7app2u4EX5wTw==", + "optional": true, + "requires": { + "browser-headers": "^0.4.1" + } }, - "@noble/secp256k1": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/@noble/secp256k1/-/secp256k1-1.7.0.tgz", - "integrity": "sha512-kbacwGSsH/CTout0ZnZWxnW1B+jH/7r/WAAKLBtrRJ/+CUH7lgmQzl3GTrQua3SGKWNSDsS6lmjnDpIJ5Dxyaw==" + "@injectivelabs/grpc-web-node-http-transport": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/@injectivelabs/grpc-web-node-http-transport/-/grpc-web-node-http-transport-0.0.2.tgz", + "integrity": "sha512-rpyhXLiGY/UMs6v6YmgWHJHiO9l0AgDyVNv+jcutNVt4tQrmNvnpvz2wCAGOFtq5LuX/E9ChtTVpk3gWGqXcGA==", + "optional": true, + "requires": {} }, - "@openzeppelin/contracts": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/@openzeppelin/contracts/-/contracts-4.2.0.tgz", - "integrity": "sha512-LD4NnkKpHHSMo5z9MvFsG4g1xxZUDqV3A3Futu3nvyfs4wPwXxqOgMaxOoa2PeyGL2VNeSlbxT54enbQzGcgJQ==", - "dev": true + "@injectivelabs/grpc-web-react-native-transport": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/@injectivelabs/grpc-web-react-native-transport/-/grpc-web-react-native-transport-0.0.2.tgz", + "integrity": "sha512-mk+aukQXnYNgPsPnu3KBi+FD0ZHQpazIlaBZ2jNZG7QAVmxTWtv3R66Zoq99Wx2dnE946NsZBYAoa0K5oSjnow==", + "optional": true, + "requires": {} }, - "@project-serum/anchor": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@project-serum/anchor/-/anchor-0.25.0.tgz", - "integrity": "sha512-E6A5Y/ijqpfMJ5psJvbw0kVTzLZFUcOFgs6eSM2M2iWE1lVRF18T6hWZVNl6zqZsoz98jgnNHtVGJMs+ds9A7A==", + "@injectivelabs/indexer-proto-ts": { + "version": "1.10.8-rc.4", + "resolved": "https://registry.npmjs.org/@injectivelabs/indexer-proto-ts/-/indexer-proto-ts-1.10.8-rc.4.tgz", + "integrity": "sha512-IwbepTfsHHAv3Z36As6yH/+HIplOEpUu6SFHBCVgdSIaQ8GuvTib4HETiVnV4mjYqoyVgWs+zLSAfih46rdMJQ==", + "optional": true, "requires": { - "@project-serum/borsh": "^0.2.5", - "@solana/web3.js": "^1.36.0", - "base64-js": "^1.5.1", - "bn.js": "^5.1.2", - "bs58": "^4.0.1", - "buffer-layout": "^1.2.2", - "camelcase": "^5.3.1", - "cross-fetch": "^3.1.5", - "crypto-hash": "^1.3.0", - "eventemitter3": "^4.0.7", - "js-sha256": "^0.9.0", - "pako": "^2.0.3", - "snake-case": "^3.0.4", - "superstruct": "^0.15.4", - "toml": "^3.0.0" + "@injectivelabs/grpc-web": "^0.0.1", + "google-protobuf": "^3.14.0", + "protobufjs": "^7.0.0", + "rxjs": "^7.4.0" }, "dependencies": { - "superstruct": { - "version": "0.15.5", - "resolved": "https://registry.npmjs.org/superstruct/-/superstruct-0.15.5.tgz", - "integrity": "sha512-4AOeU+P5UuE/4nOUkmcQdW5y7i9ndt1cQd/3iUe+LTz3RxESf/W/5lg4B74HbDMMv8PHnPnGCQFH45kBcrQYoQ==" + "long": { + "version": "5.2.3", + "resolved": "https://registry.npmjs.org/long/-/long-5.2.3.tgz", + "integrity": "sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q==", + "optional": true + }, + "protobufjs": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.2.3.tgz", + "integrity": "sha512-TtpvOqwB5Gdz/PQmOjgsrGH1nHjAQVCN7JG4A6r1sXRWESL5rNMAiRcBQlCAdKxZcAbstExQePYG8xof/JVRgg==", + "optional": true, + "requires": { + "@protobufjs/aspromise": "^1.1.2", + "@protobufjs/base64": "^1.1.2", + "@protobufjs/codegen": "^2.0.4", + "@protobufjs/eventemitter": "^1.1.0", + "@protobufjs/fetch": "^1.1.0", + "@protobufjs/float": "^1.0.2", + "@protobufjs/inquire": "^1.1.0", + "@protobufjs/path": "^1.1.2", + "@protobufjs/pool": "^1.1.0", + "@protobufjs/utf8": "^1.1.0", + "@types/node": ">=13.7.0", + "long": "^5.0.0" + } } } }, - "@project-serum/borsh": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/@project-serum/borsh/-/borsh-0.2.5.tgz", - "integrity": "sha512-UmeUkUoKdQ7rhx6Leve1SssMR/Ghv8qrEiyywyxSWg7ooV7StdpPBhciiy5eB3T0qU1BXvdRNC8TdrkxK7WC5Q==", + "@injectivelabs/mito-proto-ts": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/@injectivelabs/mito-proto-ts/-/mito-proto-ts-1.0.9.tgz", + "integrity": "sha512-+TZMvJ4SHwcn6SFPdqaiQFZdNhjH7hyRFozY15nOTC2utdGij9jEsjz1NsyOejfYDA0s1z5Wm1SgrMYKaVpAmQ==", + "optional": true, "requires": { - "bn.js": "^5.1.2", - "buffer-layout": "^1.2.0" + "@injectivelabs/grpc-web": "^0.0.1", + "google-protobuf": "^3.14.0", + "protobufjs": "^7.0.0", + "rxjs": "^7.4.0" + }, + "dependencies": { + "long": { + "version": "5.2.3", + "resolved": "https://registry.npmjs.org/long/-/long-5.2.3.tgz", + "integrity": "sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q==", + "optional": true + }, + "protobufjs": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.2.3.tgz", + "integrity": "sha512-TtpvOqwB5Gdz/PQmOjgsrGH1nHjAQVCN7JG4A6r1sXRWESL5rNMAiRcBQlCAdKxZcAbstExQePYG8xof/JVRgg==", + "optional": true, + "requires": { + "@protobufjs/aspromise": "^1.1.2", + "@protobufjs/base64": "^1.1.2", + "@protobufjs/codegen": "^2.0.4", + "@protobufjs/eventemitter": "^1.1.0", + "@protobufjs/fetch": "^1.1.0", + "@protobufjs/float": "^1.0.2", + "@protobufjs/inquire": "^1.1.0", + "@protobufjs/path": "^1.1.2", + "@protobufjs/pool": "^1.1.0", + "@protobufjs/utf8": "^1.1.0", + "@types/node": ">=13.7.0", + "long": "^5.0.0" + } + } } }, - "@protobufjs/aspromise": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", - "integrity": "sha1-m4sMxmPWaafY9vXQiToU00jzD78=" - }, - "@protobufjs/base64": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz", - "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==" - }, - "@protobufjs/codegen": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz", - "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==" - }, - "@protobufjs/eventemitter": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz", - "integrity": "sha1-NVy8mLr61ZePntCV85diHx0Ga3A=" + "@injectivelabs/networks": { + "version": "1.10.12", + "resolved": "https://registry.npmjs.org/@injectivelabs/networks/-/networks-1.10.12.tgz", + "integrity": "sha512-tTHyLls1Nik5QTs/S03qqG2y/ITvNwI8CJOQbMmmsr1CL2CdjJBtzRYn9Dyx2p8XgzRFf9hmlybpe20tq9O3SA==", + "optional": true, + "requires": { + "@injectivelabs/exceptions": "^1.10.12", + "@injectivelabs/ts-types": "^1.10.12", + "@injectivelabs/utils": "^1.10.12", + "link-module-alias": "^1.2.0", + "shx": "^0.3.2" + } }, - "@protobufjs/fetch": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz", - "integrity": "sha1-upn7WYYUr2VwDBYZ/wbUVLDYTEU=", + "@injectivelabs/sdk-ts": { + "version": "1.10.72", + "resolved": "https://registry.npmjs.org/@injectivelabs/sdk-ts/-/sdk-ts-1.10.72.tgz", + "integrity": "sha512-A5mHNNBgO4fI1c/7CZ0bGfVXliy8laP+VaYZ++aWh1YyudoZw4CTCEmLetZRy7AUU3XcfbHa8sAImRi7db+v6Q==", + "optional": true, "requires": { - "@protobufjs/aspromise": "^1.1.1", - "@protobufjs/inquire": "^1.1.0" + "@apollo/client": "^3.5.8", + "@cosmjs/amino": "^0.30.1", + "@cosmjs/proto-signing": "^0.30.1", + "@cosmjs/stargate": "^0.30.1", + "@ethersproject/bytes": "^5.7.0", + "@injectivelabs/core-proto-ts": "^0.0.14", + "@injectivelabs/exceptions": "^1.10.12", + "@injectivelabs/grpc-web": "^0.0.1", + "@injectivelabs/grpc-web-node-http-transport": "^0.0.2", + "@injectivelabs/grpc-web-react-native-transport": "^0.0.2", + "@injectivelabs/indexer-proto-ts": "1.10.8-rc.4", + "@injectivelabs/mito-proto-ts": "1.0.9", + "@injectivelabs/networks": "^1.10.12", + "@injectivelabs/test-utils": "^1.10.12", + "@injectivelabs/token-metadata": "^1.10.42", + "@injectivelabs/ts-types": "^1.10.12", + "@injectivelabs/utils": "^1.10.12", + "@metamask/eth-sig-util": "^4.0.0", + "axios": "^0.27.2", + "bech32": "^2.0.0", + "bip39": "^3.0.4", + "cosmjs-types": "^0.7.1", + "eth-crypto": "^2.6.0", + "ethereumjs-util": "^7.1.4", + "ethers": "^5.7.2", + "google-protobuf": "^3.21.0", + "graphql": "^16.3.0", + "http-status-codes": "^2.2.0", + "js-sha3": "^0.8.0", + "jscrypto": "^1.0.3", + "keccak256": "^1.0.6", + "link-module-alias": "^1.2.0", + "rxjs": "^7.8.0", + "secp256k1": "^4.0.3", + "shx": "^0.3.2", + "snakecase-keys": "^5.4.1" + }, + "dependencies": { + "axios": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.27.2.tgz", + "integrity": "sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==", + "optional": true, + "requires": { + "follow-redirects": "^1.14.9", + "form-data": "^4.0.0" + } + }, + "form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "optional": true, + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + } + } } }, - "@protobufjs/float": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz", - "integrity": "sha1-Xp4avctz/Ap8uLKR33jIy9l7h9E=" - }, - "@protobufjs/inquire": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz", - "integrity": "sha1-/yAOPnzyQp4tyvwRQIKOjMY48Ik=" - }, - "@protobufjs/path": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz", - "integrity": "sha1-bMKyDFya1q0NzP0hynZz2Nf79o0=" - }, - "@protobufjs/pool": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz", - "integrity": "sha1-Cf0V8tbTq/qbZbw2ZQbWrXhG/1Q=" - }, - "@protobufjs/utf8": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", - "integrity": "sha1-p3c2C1s5oaLlEG+OhY8v0tBgxXA=" - }, - "@redux-saga/core": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@redux-saga/core/-/core-1.2.2.tgz", - "integrity": "sha512-0qr5oleOAmI5WoZLRA6FEa30M4qKZcvx+ZQOQw+RqFeH8t20bvhE329XSPsNfTVP8C6qyDsXOSjuoV+g3+8zkg==", - "dev": true, + "@injectivelabs/test-utils": { + "version": "1.10.12", + "resolved": "https://registry.npmjs.org/@injectivelabs/test-utils/-/test-utils-1.10.12.tgz", + "integrity": "sha512-IFqlEeFXXf6V1NEt65W2SfAN5/73lK4BmTrfeOQANfOFa3TUAJcPuU8rhx4jhi801cZLV3R9D/iQdgE1tbUK9A==", + "optional": true, "requires": { - "@babel/runtime": "^7.6.3", - "@redux-saga/deferred": "^1.2.1", - "@redux-saga/delay-p": "^1.2.1", - "@redux-saga/is": "^1.1.3", - "@redux-saga/symbols": "^1.1.3", - "@redux-saga/types": "^1.2.1", - "redux": "^4.0.4", - "typescript-tuple": "^2.2.1" + "axios": "^0.21.1", + "bignumber.js": "^9.0.1", + "link-module-alias": "^1.2.0", + "shx": "^0.3.2", + "snakecase-keys": "^5.1.2", + "store2": "^2.12.0" }, "dependencies": { - "redux": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/redux/-/redux-4.2.0.tgz", - "integrity": "sha512-oSBmcKKIuIR4ME29/AeNUnl5L+hvBq7OaJWzaptTQJAntaPvxIJqfnjbaEiCzzaIz+XmVILfqAM3Ob0aXLPfjA==", - "dev": true, + "axios": { + "version": "0.21.4", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.4.tgz", + "integrity": "sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==", + "optional": true, "requires": { - "@babel/runtime": "^7.9.2" + "follow-redirects": "^1.14.0" } } } }, - "@redux-saga/deferred": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@redux-saga/deferred/-/deferred-1.2.1.tgz", - "integrity": "sha512-cmin3IuuzMdfQjA0lG4B+jX+9HdTgHZZ+6u3jRAOwGUxy77GSlTi4Qp2d6PM1PUoTmQUR5aijlA39scWWPF31g==", - "dev": true - }, - "@redux-saga/delay-p": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@redux-saga/delay-p/-/delay-p-1.2.1.tgz", - "integrity": "sha512-MdiDxZdvb1m+Y0s4/hgdcAXntpUytr9g0hpcOO1XFVyyzkrDu3SKPgBFOtHn7lhu7n24ZKIAT1qtKyQjHqRd+w==", - "dev": true, + "@injectivelabs/token-metadata": { + "version": "1.10.42", + "resolved": "https://registry.npmjs.org/@injectivelabs/token-metadata/-/token-metadata-1.10.42.tgz", + "integrity": "sha512-j5S+f05/Xtcqbg7pPHRI6hjJpdjIIuMHo16nLecU86mEHhXOzdJzhi/yzrtW7dstlgshyUJKRPZ7HaiOvZNrjA==", + "optional": true, "requires": { - "@redux-saga/symbols": "^1.1.3" + "@injectivelabs/exceptions": "^1.10.12", + "@injectivelabs/networks": "^1.10.12", + "@injectivelabs/ts-types": "^1.10.12", + "@injectivelabs/utils": "^1.10.12", + "@types/lodash.values": "^4.3.6", + "copyfiles": "^2.4.1", + "jsonschema": "^1.4.0", + "link-module-alias": "^1.2.0", + "lodash": "^4.17.21", + "lodash.values": "^4.3.0", + "shx": "^0.3.2" } }, - "@redux-saga/is": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@redux-saga/is/-/is-1.1.3.tgz", - "integrity": "sha512-naXrkETG1jLRfVfhOx/ZdLj0EyAzHYbgJWkXbB3qFliPcHKiWbv/ULQryOAEKyjrhiclmr6AMdgsXFyx7/yE6Q==", - "dev": true, + "@injectivelabs/ts-types": { + "version": "1.10.12", + "resolved": "https://registry.npmjs.org/@injectivelabs/ts-types/-/ts-types-1.10.12.tgz", + "integrity": "sha512-Z/qeZ9jwhqpreXFNiox6NrXLiMyhvMEd79RWMZ9lVOLjTeXRTUh/Vl7ry7KBE2OypsPPTMUP+k7Dhsn0ufFwgw==", + "optional": true, "requires": { - "@redux-saga/symbols": "^1.1.3", - "@redux-saga/types": "^1.2.1" + "link-module-alias": "^1.2.0", + "shx": "^0.3.2" } }, - "@redux-saga/symbols": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@redux-saga/symbols/-/symbols-1.1.3.tgz", - "integrity": "sha512-hCx6ZvU4QAEUojETnX8EVg4ubNLBFl1Lps4j2tX7o45x/2qg37m3c6v+kSp8xjDJY+2tJw4QB3j8o8dsl1FDXg==", - "dev": true - }, - "@redux-saga/types": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@redux-saga/types/-/types-1.2.1.tgz", - "integrity": "sha512-1dgmkh+3so0+LlBWRhGA33ua4MYr7tUOj+a9Si28vUi0IUFNbff1T3sgpeDJI/LaC75bBYnQ0A3wXjn0OrRNBA==", - "dev": true - }, - "@scure/base": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@scure/base/-/base-1.1.1.tgz", - "integrity": "sha512-ZxOhsSyxYwLJj3pLZCefNitxsj093tb2vq90mp2txoYeBqbcjDjqFhyM8eUjq/uFm6zJ+mUuqxlS2FkuSY1MTA==" - }, - "@scure/bip32": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-1.3.0.tgz", - "integrity": "sha512-bcKpo1oj54hGholplGLpqPHRbIsnbixFtc06nwuNM5/dwSXOq/AAYoIBRsBmnZJSdfeNW5rnff7NTAz3ZCqR9Q==", + "@injectivelabs/utils": { + "version": "1.10.12", + "resolved": "https://registry.npmjs.org/@injectivelabs/utils/-/utils-1.10.12.tgz", + "integrity": "sha512-c8al79nxIJgV1cBAdW2TPDGldj/8gm5k0h5TIN/AJs8/AeIjpTwwVGfLY3QvPOpRsxuQ9CjBkTXrAcSL1wwkcw==", + "optional": true, "requires": { - "@noble/curves": "~1.0.0", - "@noble/hashes": "~1.3.0", - "@scure/base": "~1.1.0" + "@injectivelabs/exceptions": "^1.10.12", + "@injectivelabs/ts-types": "^1.10.12", + "axios": "^0.21.1", + "bignumber.js": "^9.0.1", + "http-status-codes": "^2.2.0", + "link-module-alias": "^1.2.0", + "shx": "^0.3.2", + "snakecase-keys": "^5.1.2", + "store2": "^2.12.0" }, "dependencies": { - "@noble/hashes": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.3.0.tgz", - "integrity": "sha512-ilHEACi9DwqJB0pw7kv+Apvh50jiiSyR/cQ3y4W7lOR5mhvn/50FLUfsnfJz0BDZtl/RR16kXvptiv6q1msYZg==" + "axios": { + "version": "0.21.4", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.4.tgz", + "integrity": "sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==", + "optional": true, + "requires": { + "follow-redirects": "^1.14.0" + } } } }, - "@scure/bip39": { + "@istanbuljs/load-nyc-config": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.1.0.tgz", - "integrity": "sha512-pwrPOS16VeTKg98dYXQyIjJEcWfz7/1YJIwxUEPFfQPtc86Ym/1sVgQ2RLoD43AazMk2l/unK4ITySSpW2+82w==", + "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", + "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", + "dev": true, "requires": { - "@noble/hashes": "~1.1.1", - "@scure/base": "~1.1.0" + "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" } }, - "@sindresorhus/is": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.6.0.tgz", - "integrity": "sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==", + "@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 }, - "@sinonjs/commons": { - "version": "1.8.3", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.3.tgz", - "integrity": "sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ==", + "@jest/console": { + "version": "27.3.1", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-27.3.1.tgz", + "integrity": "sha512-RkFNWmv0iui+qsOr/29q9dyfKTTT5DCuP31kUwg7rmOKPT/ozLeGLKJKVIiOfbiKyleUZKIrHwhmiZWVe8IMdw==", "dev": true, "requires": { - "type-detect": "4.0.8" + "@jest/types": "^27.2.5", + "@types/node": "*", + "chalk": "^4.0.0", + "jest-message-util": "^27.3.1", + "jest-util": "^27.3.1", + "slash": "^3.0.0" }, "dependencies": { - "type-detect": { - "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==", + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } } } }, - "@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==", + "@jest/core": { + "version": "27.3.1", + "resolved": "https://registry.npmjs.org/@jest/core/-/core-27.3.1.tgz", + "integrity": "sha512-DMNE90RR5QKx0EA+wqe3/TNEwiRpOkhshKNxtLxd4rt3IZpCt+RSL+FoJsGeblRZmqdK4upHA/mKKGPPRAifhg==", "dev": true, "requires": { - "@sinonjs/commons": "^1.7.0" - } - }, - "@solana/buffer-layout": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@solana/buffer-layout/-/buffer-layout-4.0.0.tgz", - "integrity": "sha512-lR0EMP2HC3+Mxwd4YcnZb0smnaDw7Bl2IQWZiTevRH5ZZBZn6VRWn3/92E3qdU4SSImJkA6IDHawOHAnx/qUvQ==", - "requires": { - "buffer": "~6.0.3" + "@jest/console": "^27.3.1", + "@jest/reporters": "^27.3.1", + "@jest/test-result": "^27.3.1", + "@jest/transform": "^27.3.1", + "@jest/types": "^27.2.5", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "emittery": "^0.8.1", + "exit": "^0.1.2", + "graceful-fs": "^4.2.4", + "jest-changed-files": "^27.3.0", + "jest-config": "^27.3.1", + "jest-haste-map": "^27.3.1", + "jest-message-util": "^27.3.1", + "jest-regex-util": "^27.0.6", + "jest-resolve": "^27.3.1", + "jest-resolve-dependencies": "^27.3.1", + "jest-runner": "^27.3.1", + "jest-runtime": "^27.3.1", + "jest-snapshot": "^27.3.1", + "jest-util": "^27.3.1", + "jest-validate": "^27.3.1", + "jest-watcher": "^27.3.1", + "micromatch": "^4.0.4", + "rimraf": "^3.0.0", + "slash": "^3.0.0", + "strip-ansi": "^6.0.0" }, "dependencies": { - "buffer": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", - "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, "requires": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" + "color-convert": "^2.0.1" } - } - } - }, - "@solana/buffer-layout-utils": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/@solana/buffer-layout-utils/-/buffer-layout-utils-0.2.0.tgz", - "integrity": "sha512-szG4sxgJGktbuZYDg2FfNmkMi0DYQoVjN2h7ta1W1hPrwzarcFLBq9UpX1UjNXsNpT9dn+chgprtWGioUAr4/g==", - "requires": { - "@solana/buffer-layout": "^4.0.0", - "@solana/web3.js": "^1.32.0", - "bigint-buffer": "^1.1.5", - "bignumber.js": "^9.0.1" - } - }, - "@solana/spl-token": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/@solana/spl-token/-/spl-token-0.3.5.tgz", - "integrity": "sha512-0bGC6n415lGjKu02gkLOIpP1wzndSP0SHwN9PefJ+wKAhmfU1rl3AV1Pa41uap2kzSCD6F9642ngNO8KXPvh/g==", - "requires": { - "@solana/buffer-layout": "^4.0.0", - "@solana/buffer-layout-utils": "^0.2.0", - "buffer": "^6.0.3" - }, - "dependencies": { - "buffer": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", - "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, "requires": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" } } } }, - "@solana/web3.js": { - "version": "1.66.2", - "resolved": "https://registry.npmjs.org/@solana/web3.js/-/web3.js-1.66.2.tgz", - "integrity": "sha512-RyaHMR2jGmaesnYP045VLeBGfR/gAW3cvZHzMFGg7bkO+WOYOYp1nEllf0/la4U4qsYGKCsO9eEevR5fhHiVHg==", + "@jest/environment": { + "version": "27.3.1", + "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-27.3.1.tgz", + "integrity": "sha512-BCKCj4mOVLme6Tanoyc9k0ultp3pnmuyHw73UHRPeeZxirsU/7E3HC4le/VDb/SMzE1JcPnto+XBKFOcoiJzVw==", + "dev": true, "requires": { - "@babel/runtime": "^7.12.5", - "@noble/ed25519": "^1.7.0", - "@noble/hashes": "^1.1.2", - "@noble/secp256k1": "^1.6.3", - "@solana/buffer-layout": "^4.0.0", - "bigint-buffer": "^1.1.5", - "bn.js": "^5.0.0", - "borsh": "^0.7.0", - "bs58": "^4.0.1", - "buffer": "6.0.1", - "fast-stable-stringify": "^1.0.0", - "jayson": "^3.4.4", - "node-fetch": "2", - "rpc-websockets": "^7.5.0", - "superstruct": "^0.14.2" + "@jest/fake-timers": "^27.3.1", + "@jest/types": "^27.2.5", + "@types/node": "*", + "jest-mock": "^27.3.0" } }, - "@suchipi/femver": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@suchipi/femver/-/femver-1.0.0.tgz", - "integrity": "sha512-bprE8+K5V+DPX7q2e2K57ImqNBdfGHDIWaGI5xHxZoxbKOuQZn4wzPiUxOAHnsUr3w3xHrWXwN7gnG/iIuEMIg==" - }, - "@szmarczak/http-timer": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-5.0.1.tgz", - "integrity": "sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw==", + "@jest/fake-timers": { + "version": "27.3.1", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-27.3.1.tgz", + "integrity": "sha512-M3ZFgwwlqJtWZ+QkBG5NmC23A9w+A6ZxNsO5nJxJsKYt4yguBd3i8TpjQz5NfCX91nEve1KqD9RA2Q+Q1uWqoA==", "dev": true, "requires": { - "defer-to-connect": "^2.0.1" + "@jest/types": "^27.2.5", + "@sinonjs/fake-timers": "^8.0.1", + "@types/node": "*", + "jest-message-util": "^27.3.1", + "jest-mock": "^27.3.0", + "jest-util": "^27.3.1" } }, - "@terra-money/legacy.proto": { - "version": "npm:@terra-money/terra.proto@0.1.7", - "resolved": "https://registry.npmjs.org/@terra-money/terra.proto/-/terra.proto-0.1.7.tgz", - "integrity": "sha512-NXD7f6pQCulvo6+mv6MAPzhOkUzRjgYVuHZE/apih+lVnPG5hDBU0rRYnOGGofwvKT5/jQoOENnFn/gioWWnyQ==", + "@jest/globals": { + "version": "27.3.1", + "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-27.3.1.tgz", + "integrity": "sha512-Q651FWiWQAIFiN+zS51xqhdZ8g9b88nGCobC87argAxA7nMfNQq0Q0i9zTfQYgLa6qFXk2cGANEqfK051CZ8Pg==", + "dev": true, "requires": { - "google-protobuf": "^3.17.3", - "long": "^4.0.0", - "protobufjs": "~6.11.2" + "@jest/environment": "^27.3.1", + "@jest/types": "^27.2.5", + "expect": "^27.3.1" } }, - "@terra-money/terra.js": { - "version": "3.1.9", - "resolved": "https://registry.npmjs.org/@terra-money/terra.js/-/terra.js-3.1.9.tgz", - "integrity": "sha512-JulSvOHLM56fL7s+cIjIbZeWPBluq883X1soWxA4TG5rKkDythT/DHeLXr3jP5Ld/26VENPSg6lNvK7cEYKpiw==", + "@jest/reporters": { + "version": "27.3.1", + "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-27.3.1.tgz", + "integrity": "sha512-m2YxPmL9Qn1emFVgZGEiMwDntDxRRQ2D58tiDQlwYTg5GvbFOKseYCcHtn0WsI8CG4vzPglo3nqbOiT8ySBT/w==", + "dev": true, "requires": { - "@classic-terra/terra.proto": "^1.1.0", - "@terra-money/terra.proto": "^2.1.0", - "axios": "^0.27.2", - "bech32": "^2.0.0", - "bip32": "^2.0.6", - "bip39": "^3.0.3", - "bufferutil": "^4.0.3", - "decimal.js": "^10.2.1", - "jscrypto": "^1.0.1", - "readable-stream": "^3.6.0", - "secp256k1": "^4.0.2", - "tmp": "^0.2.1", - "utf-8-validate": "^5.0.5", - "ws": "^7.5.9" + "@bcoe/v8-coverage": "^0.2.3", + "@jest/console": "^27.3.1", + "@jest/test-result": "^27.3.1", + "@jest/transform": "^27.3.1", + "@jest/types": "^27.2.5", + "@types/node": "*", + "chalk": "^4.0.0", + "collect-v8-coverage": "^1.0.0", + "exit": "^0.1.2", + "glob": "^7.1.2", + "graceful-fs": "^4.2.4", + "istanbul-lib-coverage": "^3.0.0", + "istanbul-lib-instrument": "^4.0.3", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^4.0.0", + "istanbul-reports": "^3.0.2", + "jest-haste-map": "^27.3.1", + "jest-resolve": "^27.3.1", + "jest-util": "^27.3.1", + "jest-worker": "^27.3.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" }, "dependencies": { - "axios": { - "version": "0.27.2", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.27.2.tgz", - "integrity": "sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==", + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, "requires": { - "follow-redirects": "^1.14.9", - "form-data": "^4.0.0" + "color-convert": "^2.0.1" } }, - "form-data": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", - "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" } } } }, - "@terra-money/terra.proto": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@terra-money/terra.proto/-/terra.proto-2.1.0.tgz", - "integrity": "sha512-rhaMslv3Rkr+QsTQEZs64FKA4QlfO0DfQHaR6yct/EovenMkibDEQ63dEL6yJA6LCaEQGYhyVB9JO9pTUA8ybw==", + "@jest/source-map": { + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-27.0.6.tgz", + "integrity": "sha512-Fek4mi5KQrqmlY07T23JRi0e7Z9bXTOOD86V/uS0EIW4PClvPDqZOyFlLpNJheS6QI0FNX1CgmPjtJ4EA/2M+g==", + "dev": true, "requires": { - "@improbable-eng/grpc-web": "^0.14.1", - "google-protobuf": "^3.17.3", - "long": "^4.0.0", - "protobufjs": "~6.11.2" + "callsites": "^3.0.0", + "graceful-fs": "^4.2.4", + "source-map": "^0.6.0" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } } }, - "@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 - }, - "@truffle/abi-utils": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/@truffle/abi-utils/-/abi-utils-0.3.6.tgz", - "integrity": "sha512-61aTH2QmwVA1INaPMufRHTsS6jsEhS+GCkuCDdvBDmwctSnCKGDOr185BGt65QrpMRxYmIoH6WFBSNMYxW9GRw==", + "@jest/test-result": { + "version": "27.3.1", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-27.3.1.tgz", + "integrity": "sha512-mLn6Thm+w2yl0opM8J/QnPTqrfS4FoXsXF2WIWJb2O/GBSyResL71BRuMYbYRsGt7ELwS5JGcEcGb52BNrumgg==", "dev": true, "requires": { - "change-case": "3.0.2", - "fast-check": "3.1.1", - "web3-utils": "1.8.1" + "@jest/console": "^27.3.1", + "@jest/types": "^27.2.5", + "@types/istanbul-lib-coverage": "^2.0.0", + "collect-v8-coverage": "^1.0.0" } }, - "@truffle/code-utils": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@truffle/code-utils/-/code-utils-3.0.1.tgz", - "integrity": "sha512-6cv318jVAvEvg7u7jFq1G6P6K1CMXKNG2btg2qgpmsTQURp4KrqeVrrZegYgx9l4hocpNZ8UAYc9Qw5ATrDg4g==", + "@jest/test-sequencer": { + "version": "27.3.1", + "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-27.3.1.tgz", + "integrity": "sha512-siySLo07IMEdSjA4fqEnxfIX8lB/lWYsBPwNFtkOvsFQvmBrL3yj3k3uFNZv/JDyApTakRpxbKLJ3CT8UGVCrA==", "dev": true, "requires": { - "cbor": "^5.2.0" + "@jest/test-result": "^27.3.1", + "graceful-fs": "^4.2.4", + "jest-haste-map": "^27.3.1", + "jest-runtime": "^27.3.1" } }, - "@truffle/codec": { - "version": "0.14.12", - "resolved": "https://registry.npmjs.org/@truffle/codec/-/codec-0.14.12.tgz", - "integrity": "sha512-0RIUoZQiGqNNp0zogeoCLoFoKSY65ih129rjrDqyv7Yy+IIpKgdOk8zZqg2sWIt7ukQFjZmAOwPznhYNGg/eKA==", + "@jest/transform": { + "version": "27.3.1", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-27.3.1.tgz", + "integrity": "sha512-3fSvQ02kuvjOI1C1ssqMVBKJpZf6nwoCiSu00zAKh5nrp3SptNtZy/8s5deayHnqxhjD9CWDJ+yqQwuQ0ZafXQ==", "dev": true, "requires": { - "@truffle/abi-utils": "^0.3.6", - "@truffle/compile-common": "^0.9.2", - "big.js": "^6.0.3", - "bn.js": "^5.1.3", - "cbor": "^5.2.0", - "debug": "^4.3.1", - "lodash": "^4.17.21", - "semver": "7.3.7", - "utf8": "^3.0.0", - "web3-utils": "1.8.1" + "@babel/core": "^7.1.0", + "@jest/types": "^27.2.5", + "babel-plugin-istanbul": "^6.0.0", + "chalk": "^4.0.0", + "convert-source-map": "^1.4.0", + "fast-json-stable-stringify": "^2.0.0", + "graceful-fs": "^4.2.4", + "jest-haste-map": "^27.3.1", + "jest-regex-util": "^27.0.6", + "jest-util": "^27.3.1", + "micromatch": "^4.0.4", + "pirates": "^4.0.1", + "slash": "^3.0.0", + "source-map": "^0.6.1", + "write-file-atomic": "^3.0.0" }, "dependencies": { - "debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "requires": { - "ms": "2.1.2" + "color-convert": "^2.0.1" } }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, - "semver": { - "version": "7.3.7", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", - "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "requires": { - "lru-cache": "^6.0.0" + "has-flag": "^4.0.0" } } } }, - "@truffle/compile-common": { - "version": "0.9.2", - "resolved": "https://registry.npmjs.org/@truffle/compile-common/-/compile-common-0.9.2.tgz", - "integrity": "sha512-n7MF/4/dntccj44RGe3PRMD8Vk46PU8dJtzd1VLAfgokK2Y2N+SjAzDskBnmAydZVWAM315nZIUQsgnY8xoATw==", + "@jest/types": { + "version": "27.2.5", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.2.5.tgz", + "integrity": "sha512-nmuM4VuDtCZcY+eTpw+0nvstwReMsjPoj7ZR80/BbixulhLaiX+fbv8oeLW8WZlJMcsGQsTmMKT/iTZu1Uy/lQ==", "dev": true, "requires": { - "@truffle/error": "^0.2.0", - "colors": "1.4.0" + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^16.0.0", + "chalk": "^4.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } } }, - "@truffle/config": { - "version": "1.3.48", - "resolved": "https://registry.npmjs.org/@truffle/config/-/config-1.3.48.tgz", - "integrity": "sha512-Q+Tw9+HLcFJEReTL0x408Qb08hh1qwGnnwGm+Xd5xmg1HWAFOEE0k4Sm553goqqKhwzDgtYb0YddJ61zTardJw==", - "dev": true, + "@metamask/eth-sig-util": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@metamask/eth-sig-util/-/eth-sig-util-4.0.1.tgz", + "integrity": "sha512-tghyZKLHZjcdlDqCA3gNZmLeR0XvOE9U1qoQO9ohyAZT6Pya+H9vkBPcsyXytmYLNgVoin7CKCmweo/R43V+tQ==", "optional": true, "requires": { - "@truffle/error": "^0.2.0", - "@truffle/events": "^0.1.20", - "@truffle/provider": "^0.3.2", - "conf": "^10.1.2", - "debug": "^4.3.1", - "find-up": "^2.1.0", - "lodash": "^4.17.21", - "original-require": "^1.0.1" + "ethereumjs-abi": "^0.6.8", + "ethereumjs-util": "^6.2.1", + "ethjs-util": "^0.1.6", + "tweetnacl": "^1.0.3", + "tweetnacl-util": "^0.15.1" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "optional": true + }, + "ethereumjs-util": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-6.2.1.tgz", + "integrity": "sha512-W2Ktez4L01Vexijrm5EB6w7dg4n/TgpoYU4avuT5T3Vmnw/eCRtiBrJfQYS/DCSvDIOLn2k57GcHdeBcgVxAqw==", + "optional": true, + "requires": { + "@types/bn.js": "^4.11.3", + "bn.js": "^4.11.0", + "create-hash": "^1.1.2", + "elliptic": "^6.5.2", + "ethereum-cryptography": "^0.1.3", + "ethjs-util": "0.1.6", + "rlp": "^2.2.3" + } + } + } + }, + "@mysten/bcs": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/@mysten/bcs/-/bcs-0.7.1.tgz", + "integrity": "sha512-wFPb8bkhwrbiStfZMV5rFM7J+umpke59/dNjDp+UYJKykNlW23LCk2ePyEUvGdb62HGJM1jyOJ8g4egE3OmdKA==", + "requires": { + "bs58": "^5.0.0" + }, + "dependencies": { + "base-x": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/base-x/-/base-x-4.0.0.tgz", + "integrity": "sha512-FuwxlW4H5kh37X/oW59pwTzzTKRzfrrQwhmyspRM7swOEZcHtDZSCt45U6oKgtuFE+WYPblePMVIPR4RZrh/hw==" + }, + "bs58": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/bs58/-/bs58-5.0.0.tgz", + "integrity": "sha512-r+ihvQJvahgYT50JD05dyJNKlmmSlMoOGwn1lCcEzanPglg7TxYjioQUYehQ9mAR/+hOSd2jRc/Z2y5UxBymvQ==", + "requires": { + "base-x": "^4.0.0" + } + } + } + }, + "@mysten/sui.js": { + "version": "0.32.2", + "resolved": "https://registry.npmjs.org/@mysten/sui.js/-/sui.js-0.32.2.tgz", + "integrity": "sha512-/Hm4xkGolJhqj8FvQr7QSHDTlxIvL52mtbOao9f75YjrBh7y1Uh9kbJSY7xiTF1NY9sv6p5hUVlYRJuM0Hvn9A==", + "requires": { + "@mysten/bcs": "0.7.1", + "@noble/curves": "^1.0.0", + "@noble/hashes": "^1.3.0", + "@scure/bip32": "^1.3.0", + "@scure/bip39": "^1.2.0", + "@suchipi/femver": "^1.0.0", + "jayson": "^4.0.0", + "rpc-websockets": "^7.5.1", + "superstruct": "^1.0.3", + "tweetnacl": "^1.0.3" }, "dependencies": { - "debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "optional": true, - "requires": { - "ms": "2.1.2" - } - }, - "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ==", - "dev": true, - "optional": true, - "requires": { - "locate-path": "^2.0.0" - } + "@noble/hashes": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.3.0.tgz", + "integrity": "sha512-ilHEACi9DwqJB0pw7kv+Apvh50jiiSyR/cQ3y4W7lOR5mhvn/50FLUfsnfJz0BDZtl/RR16kXvptiv6q1msYZg==" }, - "locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA==", - "dev": true, - "optional": true, + "@scure/bip39": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.2.0.tgz", + "integrity": "sha512-SX/uKq52cuxm4YFXWFaVByaSHJh2w3BnokVSeUJVCv6K7WulT9u2BuNRBhuFl8vAuYnzx9bEu9WgpcNYTrYieg==", "requires": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" + "@noble/hashes": "~1.3.0", + "@scure/base": "~1.1.0" } }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true, - "optional": true - }, - "p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", - "dev": true, - "optional": true, - "requires": { - "p-try": "^1.0.0" - } + "@types/node": { + "version": "12.20.55", + "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.55.tgz", + "integrity": "sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==" }, - "p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg==", - "dev": true, - "optional": true, + "jayson": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/jayson/-/jayson-4.1.0.tgz", + "integrity": "sha512-R6JlbyLN53Mjku329XoRT2zJAE6ZgOQ8f91ucYdMCD4nkGCF9kZSrcGXpHIU4jeKj58zUZke2p+cdQchU7Ly7A==", "requires": { - "p-limit": "^1.1.0" + "@types/connect": "^3.4.33", + "@types/node": "^12.12.54", + "@types/ws": "^7.4.4", + "commander": "^2.20.3", + "delay": "^5.0.0", + "es6-promisify": "^5.0.0", + "eyes": "^0.1.8", + "isomorphic-ws": "^4.0.1", + "json-stringify-safe": "^5.0.1", + "JSONStream": "^1.3.5", + "uuid": "^8.3.2", + "ws": "^7.4.5" } }, - "p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww==", - "dev": true, - "optional": true + "superstruct": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/superstruct/-/superstruct-1.0.3.tgz", + "integrity": "sha512-8iTn3oSS8nRGn+C2pgXSKPI3jmpm6FExNazNpjvqS6ZUJQCej3PUXEKM8NjHBOs54ExM+LPW/FBRhymrdcCiSg==" }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", - "dev": true, - "optional": true + "uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==" } } }, - "@truffle/dashboard-message-bus-client": { - "version": "0.1.9", - "resolved": "https://registry.npmjs.org/@truffle/dashboard-message-bus-client/-/dashboard-message-bus-client-0.1.9.tgz", - "integrity": "sha512-5tzPkMMkjSrD5POt3odHKTMBCAe2pPNsWi19BtFd4vASLwvqWVd0B2oIjQLqMLe/fSDPnpCmMwb5OK0FR/IzAA==", - "dev": true, - "optional": true, + "@noble/curves": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.0.0.tgz", + "integrity": "sha512-2upgEu0iLiDVDZkNLeFV2+ht0BAVgQnEmCk6JsOch9Rp8xfkMCbvbAZlA2pBHQc73dbl+vFOXfqkf4uemdn0bw==", "requires": { - "@truffle/dashboard-message-bus-common": "^0.1.5", - "@truffle/promise-tracker": "^0.1.5", - "axios": "0.27.2", - "debug": "^4.3.1", - "delay": "^5.0.0", - "isomorphic-ws": "^4.0.1", - "node-abort-controller": "^3.0.1", - "tiny-typed-emitter": "^2.1.0", - "ws": "^7.2.0" + "@noble/hashes": "1.3.0" }, "dependencies": { - "axios": { - "version": "0.27.2", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.27.2.tgz", - "integrity": "sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==", - "dev": true, - "optional": true, - "requires": { - "follow-redirects": "^1.14.9", - "form-data": "^4.0.0" - } - }, - "debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "optional": true, - "requires": { - "ms": "2.1.2" - } - }, - "form-data": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", - "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", - "dev": true, - "optional": true, - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true, - "optional": true + "@noble/hashes": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.3.0.tgz", + "integrity": "sha512-ilHEACi9DwqJB0pw7kv+Apvh50jiiSyR/cQ3y4W7lOR5mhvn/50FLUfsnfJz0BDZtl/RR16kXvptiv6q1msYZg==" } } }, - "@truffle/dashboard-message-bus-common": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/@truffle/dashboard-message-bus-common/-/dashboard-message-bus-common-0.1.5.tgz", - "integrity": "sha512-F4RfXi7ymNA3HFOlaujRJxAb3I8ciErCRQq+MZVaqjSPF9LSw23IizZsGpLaY43K2bGoBSxyNQRZWxsUEBujPQ==", - "dev": true, - "optional": true + "@noble/ed25519": { + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/@noble/ed25519/-/ed25519-1.7.1.tgz", + "integrity": "sha512-Rk4SkJFaXZiznFyC/t77Q0NKS4FL7TLJJsVG2V2oiEq3kJVeTdxysEe/yRWSpnWMe808XRDJ+VFh5pt/FN5plw==" }, - "@truffle/db": { - "version": "2.0.11", - "resolved": "https://registry.npmjs.org/@truffle/db/-/db-2.0.11.tgz", - "integrity": "sha512-OozYKh4aw8AxGzQ8O1sXakvmhZtSFbUn45AvbqPHIBiOZ/pmb4KoNdcE5xeAUwS0k+gWuDoTo50NycpqJxkhYA==", - "dev": true, - "optional": true, + "@noble/hashes": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.1.3.tgz", + "integrity": "sha512-CE0FCR57H2acVI5UOzIGSSIYxZ6v/HOhDR0Ro9VLyhnzLwx0o8W1mmgaqlEUx4049qJDlIBRztv5k+MM8vbO3A==" + }, + "@noble/secp256k1": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/@noble/secp256k1/-/secp256k1-1.7.0.tgz", + "integrity": "sha512-kbacwGSsH/CTout0ZnZWxnW1B+jH/7r/WAAKLBtrRJ/+CUH7lgmQzl3GTrQua3SGKWNSDsS6lmjnDpIJ5Dxyaw==" + }, + "@openzeppelin/contracts": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@openzeppelin/contracts/-/contracts-4.2.0.tgz", + "integrity": "sha512-LD4NnkKpHHSMo5z9MvFsG4g1xxZUDqV3A3Futu3nvyfs4wPwXxqOgMaxOoa2PeyGL2VNeSlbxT54enbQzGcgJQ==", + "dev": true + }, + "@project-serum/anchor": { + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/@project-serum/anchor/-/anchor-0.25.0.tgz", + "integrity": "sha512-E6A5Y/ijqpfMJ5psJvbw0kVTzLZFUcOFgs6eSM2M2iWE1lVRF18T6hWZVNl6zqZsoz98jgnNHtVGJMs+ds9A7A==", "requires": { - "@graphql-tools/delegate": "^8.4.3", - "@graphql-tools/schema": "^8.3.1", - "@truffle/abi-utils": "^0.3.6", - "@truffle/code-utils": "^3.0.1", - "@truffle/config": "^1.3.48", - "abstract-leveldown": "^7.2.0", - "apollo-server": "^3.11.0", - "debug": "^4.3.1", - "fs-extra": "^9.1.0", - "graphql": "^15.3.0", - "graphql-tag": "^2.12.6", - "json-stable-stringify": "^1.0.1", - "pascal-case": "^2.0.1", - "pluralize": "^8.0.0", - "pouchdb": "7.3.0", - "pouchdb-adapter-memory": "^7.1.1", - "pouchdb-debug": "^7.1.1", - "pouchdb-find": "^7.0.0", - "web3-utils": "1.8.1" + "@project-serum/borsh": "^0.2.5", + "@solana/web3.js": "^1.36.0", + "base64-js": "^1.5.1", + "bn.js": "^5.1.2", + "bs58": "^4.0.1", + "buffer-layout": "^1.2.2", + "camelcase": "^5.3.1", + "cross-fetch": "^3.1.5", + "crypto-hash": "^1.3.0", + "eventemitter3": "^4.0.7", + "js-sha256": "^0.9.0", + "pako": "^2.0.3", + "snake-case": "^3.0.4", + "superstruct": "^0.15.4", + "toml": "^3.0.0" + }, + "dependencies": { + "superstruct": { + "version": "0.15.5", + "resolved": "https://registry.npmjs.org/superstruct/-/superstruct-0.15.5.tgz", + "integrity": "sha512-4AOeU+P5UuE/4nOUkmcQdW5y7i9ndt1cQd/3iUe+LTz3RxESf/W/5lg4B74HbDMMv8PHnPnGCQFH45kBcrQYoQ==" + } + } + }, + "@project-serum/borsh": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/@project-serum/borsh/-/borsh-0.2.5.tgz", + "integrity": "sha512-UmeUkUoKdQ7rhx6Leve1SssMR/Ghv8qrEiyywyxSWg7ooV7StdpPBhciiy5eB3T0qU1BXvdRNC8TdrkxK7WC5Q==", + "requires": { + "bn.js": "^5.1.2", + "buffer-layout": "^1.2.0" + } + }, + "@protobufjs/aspromise": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", + "integrity": "sha1-m4sMxmPWaafY9vXQiToU00jzD78=" + }, + "@protobufjs/base64": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz", + "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==" + }, + "@protobufjs/codegen": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz", + "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==" + }, + "@protobufjs/eventemitter": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz", + "integrity": "sha1-NVy8mLr61ZePntCV85diHx0Ga3A=" + }, + "@protobufjs/fetch": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz", + "integrity": "sha1-upn7WYYUr2VwDBYZ/wbUVLDYTEU=", + "requires": { + "@protobufjs/aspromise": "^1.1.1", + "@protobufjs/inquire": "^1.1.0" + } + }, + "@protobufjs/float": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz", + "integrity": "sha1-Xp4avctz/Ap8uLKR33jIy9l7h9E=" + }, + "@protobufjs/inquire": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz", + "integrity": "sha1-/yAOPnzyQp4tyvwRQIKOjMY48Ik=" + }, + "@protobufjs/path": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz", + "integrity": "sha1-bMKyDFya1q0NzP0hynZz2Nf79o0=" + }, + "@protobufjs/pool": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz", + "integrity": "sha1-Cf0V8tbTq/qbZbw2ZQbWrXhG/1Q=" + }, + "@protobufjs/utf8": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", + "integrity": "sha1-p3c2C1s5oaLlEG+OhY8v0tBgxXA=" + }, + "@scure/base": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@scure/base/-/base-1.1.1.tgz", + "integrity": "sha512-ZxOhsSyxYwLJj3pLZCefNitxsj093tb2vq90mp2txoYeBqbcjDjqFhyM8eUjq/uFm6zJ+mUuqxlS2FkuSY1MTA==" + }, + "@scure/bip32": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-1.3.0.tgz", + "integrity": "sha512-bcKpo1oj54hGholplGLpqPHRbIsnbixFtc06nwuNM5/dwSXOq/AAYoIBRsBmnZJSdfeNW5rnff7NTAz3ZCqR9Q==", + "requires": { + "@noble/curves": "~1.0.0", + "@noble/hashes": "~1.3.0", + "@scure/base": "~1.1.0" }, "dependencies": { - "debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "optional": true, - "requires": { - "ms": "2.1.2" - } - }, - "fs-extra": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", - "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", - "dev": true, - "optional": true, - "requires": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - } - }, - "graphql": { - "version": "15.8.0", - "resolved": "https://registry.npmjs.org/graphql/-/graphql-15.8.0.tgz", - "integrity": "sha512-5gghUc24tP9HRznNpV2+FIoq3xKkj5dTQqf4v0CpdPbFVwFkWoxOM+o+2OC9ZSvjEMTjfmG9QT+gcvggTwW1zw==", - "dev": true, - "optional": true - }, - "jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", - "dev": true, - "optional": true, - "requires": { - "graceful-fs": "^4.1.6", - "universalify": "^2.0.0" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true, - "optional": true - }, - "universalify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", - "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", - "dev": true, - "optional": true + "@noble/hashes": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.3.0.tgz", + "integrity": "sha512-ilHEACi9DwqJB0pw7kv+Apvh50jiiSyR/cQ3y4W7lOR5mhvn/50FLUfsnfJz0BDZtl/RR16kXvptiv6q1msYZg==" } } }, - "@truffle/db-loader": { - "version": "0.2.11", - "resolved": "https://registry.npmjs.org/@truffle/db-loader/-/db-loader-0.2.11.tgz", - "integrity": "sha512-C0uSqeFXAdw1yH/k+yMqz8fbmRLxY+etd8JKorcW1O2ieYmoFpF1mCdwdryl0X37pdlPV8yZrRAo48YFrgy1Pw==", - "dev": true, + "@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==", "requires": { - "@truffle/db": "^2.0.11" + "@noble/hashes": "~1.1.1", + "@scure/base": "~1.1.0" } }, - "@truffle/debugger": { - "version": "11.0.22", - "resolved": "https://registry.npmjs.org/@truffle/debugger/-/debugger-11.0.22.tgz", - "integrity": "sha512-U2eCusUqYQsA13Tex5kVLGqn4nWWJewZBmnHbyOL6R1WX/aqXcs7gQhPgAuSw5kMtgmZ1DhtNZhlQ5RvkE8zhA==", + "@sindresorhus/is": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.6.0.tgz", + "integrity": "sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==", + "dev": true + }, + "@sinonjs/commons": { + "version": "1.8.3", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.3.tgz", + "integrity": "sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ==", "dev": true, "requires": { - "@truffle/abi-utils": "^0.3.6", - "@truffle/codec": "^0.14.12", - "@truffle/source-map-utils": "^1.3.104", - "bn.js": "^5.1.3", - "debug": "^4.3.1", - "json-pointer": "^0.6.1", - "json-stable-stringify": "^1.0.1", - "lodash": "^4.17.21", - "redux": "^3.7.2", - "redux-saga": "1.0.0", - "reselect-tree": "^1.3.7", - "semver": "7.3.7", - "web3": "1.8.1", - "web3-eth-abi": "1.8.1" + "type-detect": "4.0.8" }, "dependencies": { - "debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "requires": { - "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "type-detect": { + "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 - }, - "semver": { - "version": "7.3.7", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", - "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } } } }, - "@truffle/error": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/@truffle/error/-/error-0.2.0.tgz", - "integrity": "sha512-Fe0/z4WWb7IP2gBnv3l6zqP87Y0kSMs7oiSLakKJq17q3GUunrHSdioKuNspdggxkXIBhEQLhi8C+LJdwmHKWQ==", - "dev": true - }, - "@truffle/events": { - "version": "0.1.20", - "resolved": "https://registry.npmjs.org/@truffle/events/-/events-0.1.20.tgz", - "integrity": "sha512-vqKCgyvYDBm/RmjglTMfGR3ZnVHkFEuhAxgQOsA2uqMOW0FonaMY6/paOddy/kSLfVBwFd8hwG53PyBAAwDhkA==", + "@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, - "optional": true, "requires": { - "@truffle/dashboard-message-bus-client": "^0.1.9", - "@truffle/spinners": "^0.2.3", - "debug": "^4.3.1", - "emittery": "^0.4.1", - "web3-utils": "1.8.1" - }, - "dependencies": { - "debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "optional": true, - "requires": { - "ms": "2.1.2" - } - }, - "emittery": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.4.1.tgz", - "integrity": "sha512-r4eRSeStEGf6M5SKdrQhhLK5bOwOBxQhIE3YSTnZE3GpKiLfnnhE+tPtrJE79+eDJgm39BM6LSoI8SCx4HbwlQ==", - "dev": true, - "optional": true - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true, - "optional": true - } + "@sinonjs/commons": "^1.7.0" } }, - "@truffle/interface-adapter": { - "version": "0.5.26", - "resolved": "https://registry.npmjs.org/@truffle/interface-adapter/-/interface-adapter-0.5.26.tgz", - "integrity": "sha512-fBhoqtT+CT4XKXcOijvw0RIMgyUi3FJg+n5i5PyGBsoRzqbLZd9cZq+oMNjOZPdf3GH68hsOFOaQO5tZH7oZow==", - "dev": true, - "optional": true, + "@solana/buffer-layout": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@solana/buffer-layout/-/buffer-layout-4.0.0.tgz", + "integrity": "sha512-lR0EMP2HC3+Mxwd4YcnZb0smnaDw7Bl2IQWZiTevRH5ZZBZn6VRWn3/92E3qdU4SSImJkA6IDHawOHAnx/qUvQ==", "requires": { - "bn.js": "^5.1.3", - "ethers": "^4.0.32", - "web3": "1.8.1" + "buffer": "~6.0.3" }, "dependencies": { - "ethers": { - "version": "4.0.49", - "resolved": "https://registry.npmjs.org/ethers/-/ethers-4.0.49.tgz", - "integrity": "sha512-kPltTvWiyu+OktYy1IStSO16i2e7cS9D9OxZ81q2UUaiNPVrm/RTcbxamCXF9VUSKzJIdJV68EAIhTEVBalRWg==", - "dev": true, - "optional": true, - "requires": { - "aes-js": "3.0.0", - "bn.js": "^4.11.9", - "elliptic": "6.5.4", - "hash.js": "1.1.3", - "js-sha3": "0.5.7", - "scrypt-js": "2.0.4", - "setimmediate": "1.0.4", - "uuid": "2.0.1", - "xmlhttprequest": "1.8.0" - }, - "dependencies": { - "bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true, - "optional": true - } - } - }, - "hash.js": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.3.tgz", - "integrity": "sha512-/UETyP0W22QILqS+6HowevwhEFJ3MBJnwTf75Qob9Wz9t0DPuisL8kW8YZMK62dHAKE1c1p+gY1TtOLY+USEHA==", - "dev": true, - "optional": true, + "buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", "requires": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.0" + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" } - }, - "js-sha3": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.5.7.tgz", - "integrity": "sha512-GII20kjaPX0zJ8wzkTbNDYMY7msuZcTWk8S5UOh6806Jq/wz1J8/bnr8uGU0DAUmYDjj2Mr4X1cW8v/GLYnR+g==", - "dev": true, - "optional": true - }, - "scrypt-js": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-2.0.4.tgz", - "integrity": "sha512-4KsaGcPnuhtCZQCxFxN3GVYIhKFPTdLd8PLC552XwbMndtD0cjRFAhDuuydXQ0h08ZfPgzqe6EKHozpuH74iDw==", - "dev": true, - "optional": true - }, - "setimmediate": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.4.tgz", - "integrity": "sha512-/TjEmXQVEzdod/FFskf3o7oOAsGhHf2j1dZqRFbDzq4F3mvvxflIIi4Hd3bLQE9y/CpwqfSQam5JakI/mi3Pog==", - "dev": true, - "optional": true - }, - "uuid": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-2.0.1.tgz", - "integrity": "sha512-nWg9+Oa3qD2CQzHIP4qKUqwNfzKn8P0LtFhotaCTFchsV7ZfDhAybeip/HZVeMIpZi9JgY1E3nUlwaCmZT1sEg==", - "dev": true, - "optional": true } } }, - "@truffle/promise-tracker": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/@truffle/promise-tracker/-/promise-tracker-0.1.5.tgz", - "integrity": "sha512-wZx8eeu/6rcwwkmRF0Y832/NSQR9A9u6pyhTozv+j77jklnd/KZvu2JlACaAjP30eL5SOtSrSOzAMcSh/trJjg==", - "dev": true, - "optional": true + "@solana/buffer-layout-utils": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@solana/buffer-layout-utils/-/buffer-layout-utils-0.2.0.tgz", + "integrity": "sha512-szG4sxgJGktbuZYDg2FfNmkMi0DYQoVjN2h7ta1W1hPrwzarcFLBq9UpX1UjNXsNpT9dn+chgprtWGioUAr4/g==", + "requires": { + "@solana/buffer-layout": "^4.0.0", + "@solana/web3.js": "^1.32.0", + "bigint-buffer": "^1.1.5", + "bignumber.js": "^9.0.1" + } }, - "@truffle/provider": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@truffle/provider/-/provider-0.3.2.tgz", - "integrity": "sha512-WJ0ebmFYIILg+P0Xa7MnBrjrnbxtyOIOpcGZ8UF0jA+WXp8gFRVs7YYteCJezTwrEZ6JzOCnC5G3vshJzf7GsA==", - "dev": true, - "optional": true, + "@solana/spl-token": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@solana/spl-token/-/spl-token-0.3.5.tgz", + "integrity": "sha512-0bGC6n415lGjKu02gkLOIpP1wzndSP0SHwN9PefJ+wKAhmfU1rl3AV1Pa41uap2kzSCD6F9642ngNO8KXPvh/g==", "requires": { - "@truffle/error": "^0.2.0", - "@truffle/interface-adapter": "^0.5.26", - "debug": "^4.3.1", - "web3": "1.8.1" + "@solana/buffer-layout": "^4.0.0", + "@solana/buffer-layout-utils": "^0.2.0", + "buffer": "^6.0.3" }, "dependencies": { - "debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "optional": true, + "buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", "requires": { - "ms": "2.1.2" + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true, - "optional": true } } }, - "@truffle/source-map-utils": { - "version": "1.3.104", - "resolved": "https://registry.npmjs.org/@truffle/source-map-utils/-/source-map-utils-1.3.104.tgz", - "integrity": "sha512-AVD1+jnw/zj7Vqw8i8RIZ4pMEW69bAqTKjJbY6kFsxG9S1oi7ZEUFSBvuja/JNm8xkmmAwIc0NOkQr2K2G/rSA==", - "dev": true, + "@solana/web3.js": { + "version": "1.66.2", + "resolved": "https://registry.npmjs.org/@solana/web3.js/-/web3.js-1.66.2.tgz", + "integrity": "sha512-RyaHMR2jGmaesnYP045VLeBGfR/gAW3cvZHzMFGg7bkO+WOYOYp1nEllf0/la4U4qsYGKCsO9eEevR5fhHiVHg==", "requires": { - "@truffle/code-utils": "^3.0.1", - "@truffle/codec": "^0.14.12", - "debug": "^4.3.1", - "json-pointer": "^0.6.1", - "node-interval-tree": "^1.3.3", - "web3-utils": "1.8.1" - }, - "dependencies": { - "debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "requires": { - "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - } + "@babel/runtime": "^7.12.5", + "@noble/ed25519": "^1.7.0", + "@noble/hashes": "^1.1.2", + "@noble/secp256k1": "^1.6.3", + "@solana/buffer-layout": "^4.0.0", + "bigint-buffer": "^1.1.5", + "bn.js": "^5.0.0", + "borsh": "^0.7.0", + "bs58": "^4.0.1", + "buffer": "6.0.1", + "fast-stable-stringify": "^1.0.0", + "jayson": "^3.4.4", + "node-fetch": "2", + "rpc-websockets": "^7.5.0", + "superstruct": "^0.14.2" } }, - "@truffle/spinners": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/@truffle/spinners/-/spinners-0.2.3.tgz", - "integrity": "sha512-YnaQ+oBRQ1I1+/P18i8oSW4orUYi6vwpZQxauEZ5X0L8atjKq+RWdiNaza6J6L+KOLunXM4+pWxnNzuUmxlJZw==", + "@suchipi/femver": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@suchipi/femver/-/femver-1.0.0.tgz", + "integrity": "sha512-bprE8+K5V+DPX7q2e2K57ImqNBdfGHDIWaGI5xHxZoxbKOuQZn4wzPiUxOAHnsUr3w3xHrWXwN7gnG/iIuEMIg==" + }, + "@szmarczak/http-timer": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-5.0.1.tgz", + "integrity": "sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw==", "dev": true, - "optional": true, "requires": { - "@trufflesuite/spinnies": "^0.1.1" + "defer-to-connect": "^2.0.1" } }, - "@trufflesuite/spinnies": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@trufflesuite/spinnies/-/spinnies-0.1.1.tgz", - "integrity": "sha512-jltEtmFJj6xmQqr85gP8OqBHCEiId+zw+uAsb3DyLLRD17O6sySW6Afa2Z/jpzSafj+32ssDfLJ+c0of1NLqcA==", - "dev": true, - "optional": true, + "@terra-money/legacy.proto": { + "version": "npm:@terra-money/terra.proto@0.1.7", + "resolved": "https://registry.npmjs.org/@terra-money/terra.proto/-/terra.proto-0.1.7.tgz", + "integrity": "sha512-NXD7f6pQCulvo6+mv6MAPzhOkUzRjgYVuHZE/apih+lVnPG5hDBU0rRYnOGGofwvKT5/jQoOENnFn/gioWWnyQ==", "requires": { - "chalk": "^4.1.2", - "cli-cursor": "^3.1.0", - "strip-ansi": "^6.0.0" + "google-protobuf": "^3.17.3", + "long": "^4.0.0", + "protobufjs": "~6.11.2" + } + }, + "@terra-money/terra.js": { + "version": "3.1.9", + "resolved": "https://registry.npmjs.org/@terra-money/terra.js/-/terra.js-3.1.9.tgz", + "integrity": "sha512-JulSvOHLM56fL7s+cIjIbZeWPBluq883X1soWxA4TG5rKkDythT/DHeLXr3jP5Ld/26VENPSg6lNvK7cEYKpiw==", + "requires": { + "@classic-terra/terra.proto": "^1.1.0", + "@terra-money/terra.proto": "^2.1.0", + "axios": "^0.27.2", + "bech32": "^2.0.0", + "bip32": "^2.0.6", + "bip39": "^3.0.3", + "bufferutil": "^4.0.3", + "decimal.js": "^10.2.1", + "jscrypto": "^1.0.1", + "readable-stream": "^3.6.0", + "secp256k1": "^4.0.2", + "tmp": "^0.2.1", + "utf-8-validate": "^5.0.5", + "ws": "^7.5.9" }, "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "optional": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "optional": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "optional": true, + "axios": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.27.2.tgz", + "integrity": "sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==", "requires": { - "color-name": "~1.1.4" + "follow-redirects": "^1.14.9", + "form-data": "^4.0.0" } }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true, - "optional": true - }, - "has-flag": { + "form-data": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "optional": true - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "optional": true, + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", "requires": { - "has-flag": "^4.0.0" + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" } } } }, + "@terra-money/terra.proto": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@terra-money/terra.proto/-/terra.proto-2.1.0.tgz", + "integrity": "sha512-rhaMslv3Rkr+QsTQEZs64FKA4QlfO0DfQHaR6yct/EovenMkibDEQ63dEL6yJA6LCaEQGYhyVB9JO9pTUA8ybw==", + "requires": { + "@improbable-eng/grpc-web": "^0.14.1", + "google-protobuf": "^3.17.3", + "long": "^4.0.0", + "protobufjs": "~6.11.2" + } + }, + "@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 + }, "@typechain/ethers-v5": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/@typechain/ethers-v5/-/ethers-v5-7.0.1.tgz", @@ -21498,16 +15807,6 @@ "dev": true, "requires": {} }, - "@types/accepts": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/@types/accepts/-/accepts-1.3.5.tgz", - "integrity": "sha512-jOdnI/3qTpHABjM5cx1Hc0sKsPoYCp+DP/GJRGtDlPd7fiV9oXGGIcjW/ZOxLIvjGz8MA+uMZI9metHlgqbgwQ==", - "dev": true, - "optional": true, - "requires": { - "@types/node": "*" - } - }, "@types/babel__core": { "version": "7.1.16", "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.16.tgz", @@ -21558,17 +15857,6 @@ "@types/node": "*" } }, - "@types/body-parser": { - "version": "1.19.2", - "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.2.tgz", - "integrity": "sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==", - "dev": true, - "optional": true, - "requires": { - "@types/connect": "*", - "@types/node": "*" - } - }, "@types/bs58": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/@types/bs58/-/bs58-4.0.1.tgz", @@ -21598,13 +15886,6 @@ "@types/node": "*" } }, - "@types/cors": { - "version": "2.8.12", - "resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.12.tgz", - "integrity": "sha512-vt+kDhq/M2ayberEtJcIN/hxXy1Pk+59g2FV/ZQceeaTyCtCucjL2Q7FXlFjtWn4n15KCr1NE2lNNFhp0lEThw==", - "dev": true, - "optional": true - }, "@types/elliptic": { "version": "6.4.14", "resolved": "https://registry.npmjs.org/@types/elliptic/-/elliptic-6.4.14.tgz", @@ -21614,19 +15895,6 @@ "@types/bn.js": "*" } }, - "@types/express": { - "version": "4.17.14", - "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.14.tgz", - "integrity": "sha512-TEbt+vaPFQ+xpxFLFssxUDXj5cWCxZJjIcB7Yg0k0GMHGtgtQgpvx/MUQUeAkNbA9AAGrwkAsoeItdTgS7FMyg==", - "dev": true, - "optional": true, - "requires": { - "@types/body-parser": "*", - "@types/express-serve-static-core": "^4.17.18", - "@types/qs": "*", - "@types/serve-static": "*" - } - }, "@types/express-serve-static-core": { "version": "4.17.31", "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.31.tgz", @@ -21714,13 +15982,6 @@ "resolved": "https://registry.npmjs.org/@types/long/-/long-4.0.2.tgz", "integrity": "sha512-MqTGEo5bj5t157U6fA/BiDynNkn0YknVdh48CMPkTSpFTVmvao5UQmm7uEF6xBEo7qIMAlY/JSleYaE6VOdpaA==" }, - "@types/mime": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@types/mime/-/mime-3.0.1.tgz", - "integrity": "sha512-Y4XFY5VJAuw0FgAqPNd6NNoV44jbq9Bz2L7Rh/J6jLTiHBSBJa9fxqQIvkIld4GsoDOcCbvzOUAbLPsSKKg+uA==", - "dev": true, - "optional": true - }, "@types/node": { "version": "16.6.1", "resolved": "https://registry.npmjs.org/@types/node/-/node-16.6.1.tgz", @@ -21800,17 +16061,6 @@ "@types/node": "*" } }, - "@types/serve-static": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.0.tgz", - "integrity": "sha512-z5xyF6uh8CbjAu9760KDKsH2FcDxZ2tFCsA4HIMWE6IkiYMXfVoa+4f9KX+FN0ZLsaMw1WNG2ETLA6N+/YA+cg==", - "dev": true, - "optional": true, - "requires": { - "@types/mime": "*", - "@types/node": "*" - } - }, "@types/stack-utils": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz", @@ -21934,50 +16184,12 @@ "integrity": "sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q==", "dev": true }, - "abort-controller": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", - "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", - "dev": true, - "optional": true, - "requires": { - "event-target-shim": "^5.0.0" - } - }, "abortcontroller-polyfill": { "version": "1.7.5", "resolved": "https://registry.npmjs.org/abortcontroller-polyfill/-/abortcontroller-polyfill-1.7.5.tgz", "integrity": "sha512-JMJ5soJWP18htbbxJjG7bG6yuI6pRhgJ0scHHTfkUjf6wjP912xZWvM+A4sJK3gqd9E8fcPbDnOefbA9Th/FIQ==", "dev": true }, - "abstract-leveldown": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-7.2.0.tgz", - "integrity": "sha512-DnhQwcFEaYsvYDnACLZhMmCWd3rkOeEvglpa4q5i/5Jlm3UIsWaxVzuXvDLFCSCWRO3yy2/+V/G7FusFgejnfQ==", - "dev": true, - "optional": true, - "requires": { - "buffer": "^6.0.3", - "catering": "^2.0.0", - "is-buffer": "^2.0.5", - "level-concat-iterator": "^3.0.0", - "level-supports": "^2.0.1", - "queue-microtask": "^1.2.3" - }, - "dependencies": { - "buffer": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", - "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", - "dev": true, - "optional": true, - "requires": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" - } - } - } - }, "accepts": { "version": "1.3.7", "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", @@ -22050,282 +16262,73 @@ } } }, - "ajv": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", - "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", - "dev": true, - "optional": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - } - }, - "ajv-formats": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", - "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", - "dev": true, - "optional": true, - "requires": { - "ajv": "^8.0.0" - } - }, "algo-msgpack-with-bigint": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/algo-msgpack-with-bigint/-/algo-msgpack-with-bigint-2.1.1.tgz", "integrity": "sha512-F1tGh056XczEaEAqu7s+hlZUDWwOBT70Eq0lfMpBP2YguSQVyxRbprLq5rELXKQOyOaixTWYhMeMQMzP0U5FoQ==" }, - "algosdk": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/algosdk/-/algosdk-2.4.0.tgz", - "integrity": "sha512-sENe6IyUqvhQprfS/7gJAkPC5sX2LI5uc+gXaKNgzKp72UEyXYSoN3h4MZkOlCrOcTSWTJW7605tYgg8nFkflw==", - "requires": { - "algo-msgpack-with-bigint": "^2.1.1", - "buffer": "^6.0.3", - "cross-fetch": "^3.1.5", - "hi-base32": "^0.5.1", - "js-sha256": "^0.9.0", - "js-sha3": "^0.8.0", - "js-sha512": "^0.8.0", - "json-bigint": "^1.0.0", - "tweetnacl": "^1.0.3", - "vlq": "^2.0.4" - }, - "dependencies": { - "buffer": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", - "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", - "requires": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" - } - } - } - }, - "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==", - "dev": true - }, - "ansi-escapes": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", - "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", - "dev": true, - "requires": { - "type-fest": "^0.21.3" - } - }, - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "devOptional": true - }, - "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==", - "devOptional": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "anymatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", - "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", - "dev": true, - "requires": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - } - }, - "apollo-datasource": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/apollo-datasource/-/apollo-datasource-3.3.2.tgz", - "integrity": "sha512-L5TiS8E2Hn/Yz7SSnWIVbZw0ZfEIXZCa5VUiVxD9P53JvSrf4aStvsFDlGWPvpIdCR+aly2CfoB79B9/JjKFqg==", - "dev": true, - "optional": true, - "requires": { - "@apollo/utils.keyvaluecache": "^1.0.1", - "apollo-server-env": "^4.2.1" - } - }, - "apollo-reporting-protobuf": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/apollo-reporting-protobuf/-/apollo-reporting-protobuf-3.3.3.tgz", - "integrity": "sha512-L3+DdClhLMaRZWVmMbBcwl4Ic77CnEBPXLW53F7hkYhkaZD88ivbCVB1w/x5gunO6ZHrdzhjq0FHmTsBvPo7aQ==", - "dev": true, - "optional": true, - "requires": { - "@apollo/protobufjs": "1.2.6" - }, - "dependencies": { - "@apollo/protobufjs": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/@apollo/protobufjs/-/protobufjs-1.2.6.tgz", - "integrity": "sha512-Wqo1oSHNUj/jxmsVp4iR3I480p6qdqHikn38lKrFhfzcDJ7lwd7Ck7cHRl4JE81tWNArl77xhnG/OkZhxKBYOw==", - "dev": true, - "optional": true, - "requires": { - "@protobufjs/aspromise": "^1.1.2", - "@protobufjs/base64": "^1.1.2", - "@protobufjs/codegen": "^2.0.4", - "@protobufjs/eventemitter": "^1.1.0", - "@protobufjs/fetch": "^1.1.0", - "@protobufjs/float": "^1.0.2", - "@protobufjs/inquire": "^1.1.0", - "@protobufjs/path": "^1.1.2", - "@protobufjs/pool": "^1.1.0", - "@protobufjs/utf8": "^1.1.0", - "@types/long": "^4.0.0", - "@types/node": "^10.1.0", - "long": "^4.0.0" - } - }, - "@types/node": { - "version": "10.17.60", - "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.60.tgz", - "integrity": "sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw==", - "dev": true, - "optional": true - } - } - }, - "apollo-server": { - "version": "3.11.1", - "resolved": "https://registry.npmjs.org/apollo-server/-/apollo-server-3.11.1.tgz", - "integrity": "sha512-3RZ/veWGbi0zXy2YVaPkYIAavpbHyEVui91DNYvz6UFS0fZmhJwG7f1VmGheeRiqiV8nFa8GuBejI1niTeAYzA==", - "dev": true, - "optional": true, - "requires": { - "@types/express": "4.17.14", - "apollo-server-core": "^3.11.1", - "apollo-server-express": "^3.11.1", - "express": "^4.17.1" - } - }, - "apollo-server-core": { - "version": "3.11.1", - "resolved": "https://registry.npmjs.org/apollo-server-core/-/apollo-server-core-3.11.1.tgz", - "integrity": "sha512-t/eCKrRFK1lYZlc5pHD99iG7Np7CEm3SmbDiONA7fckR3EaB/pdsEdIkIwQ5QBBpT5JLp/nwvrZRVwhaWmaRvw==", - "dev": true, - "optional": true, + "algosdk": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/algosdk/-/algosdk-2.4.0.tgz", + "integrity": "sha512-sENe6IyUqvhQprfS/7gJAkPC5sX2LI5uc+gXaKNgzKp72UEyXYSoN3h4MZkOlCrOcTSWTJW7605tYgg8nFkflw==", "requires": { - "@apollo/utils.keyvaluecache": "^1.0.1", - "@apollo/utils.logger": "^1.0.0", - "@apollo/utils.usagereporting": "^1.0.0", - "@apollographql/apollo-tools": "^0.5.3", - "@apollographql/graphql-playground-html": "1.6.29", - "@graphql-tools/mock": "^8.1.2", - "@graphql-tools/schema": "^8.0.0", - "@josephg/resolvable": "^1.0.0", - "apollo-datasource": "^3.3.2", - "apollo-reporting-protobuf": "^3.3.3", - "apollo-server-env": "^4.2.1", - "apollo-server-errors": "^3.3.1", - "apollo-server-plugin-base": "^3.7.1", - "apollo-server-types": "^3.7.1", - "async-retry": "^1.2.1", - "fast-json-stable-stringify": "^2.1.0", - "graphql-tag": "^2.11.0", - "loglevel": "^1.6.8", - "lru-cache": "^6.0.0", - "node-abort-controller": "^3.0.1", - "sha.js": "^2.4.11", - "uuid": "^9.0.0", - "whatwg-mimetype": "^3.0.0" + "algo-msgpack-with-bigint": "^2.1.1", + "buffer": "^6.0.3", + "cross-fetch": "^3.1.5", + "hi-base32": "^0.5.1", + "js-sha256": "^0.9.0", + "js-sha3": "^0.8.0", + "js-sha512": "^0.8.0", + "json-bigint": "^1.0.0", + "tweetnacl": "^1.0.3", + "vlq": "^2.0.4" }, "dependencies": { - "uuid": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.0.tgz", - "integrity": "sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg==", - "dev": true, - "optional": true - }, - "whatwg-mimetype": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-3.0.0.tgz", - "integrity": "sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==", - "dev": true, - "optional": true + "buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "requires": { + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" + } } } }, - "apollo-server-env": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/apollo-server-env/-/apollo-server-env-4.2.1.tgz", - "integrity": "sha512-vm/7c7ld+zFMxibzqZ7SSa5tBENc4B0uye9LTfjJwGoQFY5xsUPH5FpO5j0bMUDZ8YYNbrF9SNtzc5Cngcr90g==", + "ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", "dev": true, - "optional": true, "requires": { - "node-fetch": "^2.6.7" + "type-fest": "^0.21.3" } }, - "apollo-server-errors": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/apollo-server-errors/-/apollo-server-errors-3.3.1.tgz", - "integrity": "sha512-xnZJ5QWs6FixHICXHxUfm+ZWqqxrNuPlQ+kj5m6RtEgIpekOPssH/SD9gf2B4HuWV0QozorrygwZnux8POvyPA==", - "dev": true, - "optional": true, - "requires": {} - }, - "apollo-server-express": { - "version": "3.11.1", - "resolved": "https://registry.npmjs.org/apollo-server-express/-/apollo-server-express-3.11.1.tgz", - "integrity": "sha512-x9ngcpXbBlt4naCXTwNtBFb/mOd9OU0wtFXvJkObHF26NsRazu3DxDfEuekA6V1NFOocD+A9jmVMQeQWug5MgA==", - "dev": true, - "optional": true, - "requires": { - "@types/accepts": "^1.3.5", - "@types/body-parser": "1.19.2", - "@types/cors": "2.8.12", - "@types/express": "4.17.14", - "@types/express-serve-static-core": "4.17.31", - "accepts": "^1.3.5", - "apollo-server-core": "^3.11.1", - "apollo-server-types": "^3.7.1", - "body-parser": "^1.19.0", - "cors": "^2.8.5", - "parseurl": "^1.3.3" - } + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "devOptional": true }, - "apollo-server-plugin-base": { - "version": "3.7.1", - "resolved": "https://registry.npmjs.org/apollo-server-plugin-base/-/apollo-server-plugin-base-3.7.1.tgz", - "integrity": "sha512-g3vJStmQtQvjGI289UkLMfThmOEOddpVgHLHT2bNj0sCD/bbisj4xKbBHETqaURokteqSWyyd4RDTUe0wAUDNQ==", - "dev": true, - "optional": true, + "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==", + "devOptional": true, "requires": { - "apollo-server-types": "^3.7.1" + "color-convert": "^1.9.0" } }, - "apollo-server-types": { - "version": "3.7.1", - "resolved": "https://registry.npmjs.org/apollo-server-types/-/apollo-server-types-3.7.1.tgz", - "integrity": "sha512-aE9RDVplmkaOj/OduNmGa+0a1B5RIWI0o3zC1zLvBTVWMKTpo0ifVf11TyMkLCY+T7cnZqVqwyShziOyC3FyUw==", + "anymatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", + "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", "dev": true, - "optional": true, "requires": { - "@apollo/utils.keyvaluecache": "^1.0.1", - "@apollo/utils.logger": "^1.0.0", - "apollo-reporting-protobuf": "^3.3.3", - "apollo-server-env": "^4.2.1" + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" } }, - "app-module-path": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/app-module-path/-/app-module-path-2.2.0.tgz", - "integrity": "sha512-gkco+qxENJV+8vFcDiiFhuoSvRXb2a/QPqpSoWhVz829VNJfOTnELbBmPmNKFxf3xdNnw4DWCkzkDaavcX/1YQ==", - "dev": true - }, "aptos": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/aptos/-/aptos-1.5.0.tgz", @@ -22368,13 +16371,6 @@ "sprintf-js": "~1.0.2" } }, - "argsarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/argsarray/-/argsarray-0.0.1.tgz", - "integrity": "sha512-u96dg2GcAKtpTrBdDoFIM7PjcBA+6rSP0OR94MOReNRyUECL6MtQt5XXmRr4qrftYaef9+l5hcpO5te7sML1Cg==", - "dev": true, - "optional": true - }, "array-back": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/array-back/-/array-back-2.0.0.tgz", @@ -22431,35 +16427,11 @@ "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==", "dev": true }, - "async-retry": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/async-retry/-/async-retry-1.3.3.tgz", - "integrity": "sha512-wfr/jstw9xNi/0teMHrRW7dsz3Lt5ARhYNZ2ewpadnhaIp5mbALhOAP+EAdsC7t4Z6wqsDVv9+W6gm1Dk9mEyw==", - "dev": true, - "optional": true, - "requires": { - "retry": "0.13.1" - } - }, "asynckit": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" }, - "at-least-node": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", - "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", - "dev": true, - "optional": true - }, - "atomically": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/atomically/-/atomically-1.7.0.tgz", - "integrity": "sha512-Xcz9l0z7y9yQ9rdDaxlmaI4uJHf/T8g9hOEzJcsEqX2SjCj4J20uK7+ldkDHMbpJDK76wF7xEIgxc/vSlsfw5w==", - "dev": true, - "optional": true - }, "available-typed-arrays": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", @@ -22674,12 +16646,6 @@ "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.36.tgz", "integrity": "sha512-t70bfa7HYEA1D9idDbmuv7YbsbVkQ+Hp+8KFSul4aE5e/i1bjCNIRYJZlA8Q8p0r9T8cF/RVvwUgRA//FydEyg==" }, - "big.js": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/big.js/-/big.js-6.2.1.tgz", - "integrity": "sha512-bCtHMwL9LeDIozFn+oNhhFoq+yQ3BNdnsLSASUxLciOb1vgvpHsIO1dsENiGMgbb4SkP5TrzWzRiLddn8ahVOQ==", - "dev": true - }, "bigint-buffer": { "version": "1.1.5", "resolved": "https://registry.npmjs.org/bigint-buffer/-/bigint-buffer-1.1.5.tgz", @@ -22693,12 +16659,6 @@ "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.0.2.tgz", "integrity": "sha512-GAcQvbpsM0pUb0zw1EI0KhQEZ+lRwR5fYaAp3vPOYuP7aDvGy6cVN6XHLauvF8SOga2y0dcLcjt3iQDTSEliyw==" }, - "binary-extensions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", - "dev": true - }, "binary-parser": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/binary-parser/-/binary-parser-2.2.1.tgz", @@ -22838,12 +16798,6 @@ "integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==", "dev": true }, - "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==", - "dev": true - }, "browserify-aes": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", @@ -23061,33 +17015,6 @@ "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", "dev": true }, - "camel-case": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-3.0.0.tgz", - "integrity": "sha512-+MbKztAYHXPr1jNTSKQF52VpcFjwY5RkR7fxksV8Doo4KAYc5Fl4UJRgthBbTmEx8C54DqahhbLJkDwjI3PI/w==", - "dev": true, - "requires": { - "no-case": "^2.2.0", - "upper-case": "^1.1.1" - }, - "dependencies": { - "lower-case": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz", - "integrity": "sha512-2Fgx1Ycm599x+WGpIYwJOvsjmXFzTSc34IwDWALRA/8AopUKAVPwfJ+h5+f85BCp0PWmmJcWzEpxOpoXycMpdA==", - "dev": true - }, - "no-case": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/no-case/-/no-case-2.3.2.tgz", - "integrity": "sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ==", - "dev": true, - "requires": { - "lower-case": "^1.1.1" - } - } - } - }, "camelcase": { "version": "5.3.1", "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", @@ -23110,23 +17037,6 @@ "integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==", "dev": true }, - "catering": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/catering/-/catering-2.1.1.tgz", - "integrity": "sha512-K7Qy8O9p76sL3/3m7/zLKbRkyOlSZAgzEaLhyj2mXS8PsCud2Eo4hAb8aLtZqHh0QGqLcb9dlJSu6lHRVENm1w==", - "dev": true, - "optional": true - }, - "cbor": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/cbor/-/cbor-5.2.0.tgz", - "integrity": "sha512-5IMhi9e1QU76ppa5/ajP1BmMWZ2FHkhAhjeVKQ/EFCgYSEaeVaoGtL7cxJskf9oCCk+XjzaIdc3IuU/dbA/o2A==", - "dev": true, - "requires": { - "bignumber.js": "^9.0.1", - "nofilter": "^1.0.4" - } - }, "chalk": { "version": "2.4.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", @@ -23138,89 +17048,12 @@ "supports-color": "^5.3.0" } }, - "change-case": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/change-case/-/change-case-3.0.2.tgz", - "integrity": "sha512-Mww+SLF6MZ0U6kdg11algyKd5BARbyM4TbFBepwowYSR5ClfQGCGtxNXgykpN0uF/bstWeaGDT4JWaDh8zWAHA==", - "dev": true, - "requires": { - "camel-case": "^3.0.0", - "constant-case": "^2.0.0", - "dot-case": "^2.1.0", - "header-case": "^1.0.0", - "is-lower-case": "^1.1.0", - "is-upper-case": "^1.1.0", - "lower-case": "^1.1.1", - "lower-case-first": "^1.0.0", - "no-case": "^2.3.2", - "param-case": "^2.1.0", - "pascal-case": "^2.0.0", - "path-case": "^2.1.0", - "sentence-case": "^2.1.0", - "snake-case": "^2.1.0", - "swap-case": "^1.1.0", - "title-case": "^2.1.0", - "upper-case": "^1.1.1", - "upper-case-first": "^1.1.0" - }, - "dependencies": { - "dot-case": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-2.1.1.tgz", - "integrity": "sha512-HnM6ZlFqcajLsyudHq7LeeLDr2rFAVYtDv/hV5qchQEidSck8j9OPUsXY9KwJv/lHMtYlX4DjRQqwFYa+0r8Ug==", - "dev": true, - "requires": { - "no-case": "^2.2.0" - } - }, - "lower-case": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz", - "integrity": "sha512-2Fgx1Ycm599x+WGpIYwJOvsjmXFzTSc34IwDWALRA/8AopUKAVPwfJ+h5+f85BCp0PWmmJcWzEpxOpoXycMpdA==", - "dev": true - }, - "no-case": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/no-case/-/no-case-2.3.2.tgz", - "integrity": "sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ==", - "dev": true, - "requires": { - "lower-case": "^1.1.1" - } - }, - "snake-case": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/snake-case/-/snake-case-2.1.0.tgz", - "integrity": "sha512-FMR5YoPFwOLuh4rRz92dywJjyKYZNLpMn1R5ujVpIYkbA9p01fq8RMg0FkO4M+Yobt4MjHeLTJVm5xFFBHSV2Q==", - "dev": true, - "requires": { - "no-case": "^2.2.0" - } - } - } - }, "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 }, - "chokidar": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", - "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", - "dev": true, - "requires": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "fsevents": "~2.3.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" - } - }, "chownr": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", @@ -23289,16 +17122,6 @@ "integrity": "sha512-rhjH9AG1fvabIDoGRVH587413LPjTZgmDF9fOFCbFJQV4yuocX1mHxxvXI4g3cGwbVY9wAYIoKlg1N79frJKQw==", "dev": true }, - "cli-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", - "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", - "dev": true, - "optional": true, - "requires": { - "restore-cursor": "^3.1.0" - } - }, "cliui": { "version": "7.0.4", "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", @@ -23310,13 +17133,6 @@ "wrap-ansi": "^7.0.0" } }, - "clone-buffer": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/clone-buffer/-/clone-buffer-1.0.0.tgz", - "integrity": "sha512-KLLTJWrvwIP+OPfMn0x2PheDEP20RPUcGXj/ERegTgdmPEZylALQldygiqrPPu8P45uNuPs7ckmReLY6v/iA5g==", - "dev": true, - "optional": true - }, "clone-response": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.3.tgz", @@ -23353,12 +17169,6 @@ "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", "devOptional": true }, - "colors": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", - "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", - "dev": true - }, "combined-stream": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", @@ -23388,73 +17198,6 @@ "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" }, - "conf": { - "version": "10.2.0", - "resolved": "https://registry.npmjs.org/conf/-/conf-10.2.0.tgz", - "integrity": "sha512-8fLl9F04EJqjSqH+QjITQfJF8BrOVaYr1jewVgSRAEWePfxT0sku4w2hrGQ60BC/TNLGQ2pgxNlTbWQmMPFvXg==", - "dev": true, - "optional": true, - "requires": { - "ajv": "^8.6.3", - "ajv-formats": "^2.1.1", - "atomically": "^1.7.0", - "debounce-fn": "^4.0.0", - "dot-prop": "^6.0.1", - "env-paths": "^2.2.1", - "json-schema-typed": "^7.0.3", - "onetime": "^5.1.2", - "pkg-up": "^3.1.0", - "semver": "^7.3.5" - }, - "dependencies": { - "semver": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", - "dev": true, - "optional": true, - "requires": { - "lru-cache": "^6.0.0" - } - } - } - }, - "constant-case": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/constant-case/-/constant-case-2.0.0.tgz", - "integrity": "sha512-eS0N9WwmjTqrOmR3o83F5vW8Z+9R1HnVz3xmzT2PMFug9ly+Au/fxRWlEBSb6LcZwspSsEn9Xs1uw9YgzAg1EQ==", - "dev": true, - "requires": { - "snake-case": "^2.1.0", - "upper-case": "^1.1.1" - }, - "dependencies": { - "lower-case": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz", - "integrity": "sha512-2Fgx1Ycm599x+WGpIYwJOvsjmXFzTSc34IwDWALRA/8AopUKAVPwfJ+h5+f85BCp0PWmmJcWzEpxOpoXycMpdA==", - "dev": true - }, - "no-case": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/no-case/-/no-case-2.3.2.tgz", - "integrity": "sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ==", - "dev": true, - "requires": { - "lower-case": "^1.1.1" - } - }, - "snake-case": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/snake-case/-/snake-case-2.1.0.tgz", - "integrity": "sha512-FMR5YoPFwOLuh4rRz92dywJjyKYZNLpMn1R5ujVpIYkbA9p01fq8RMg0FkO4M+Yobt4MjHeLTJVm5xFFBHSV2Q==", - "dev": true, - "requires": { - "no-case": "^2.2.0" - } - } - } - }, "content-disposition": { "version": "0.5.4", "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", @@ -23675,13 +17418,6 @@ "resolved": "https://registry.npmjs.org/crypto-hash/-/crypto-hash-1.3.0.tgz", "integrity": "sha512-lyAZ0EMyjDkVvz8WOeVnuCPvKVBXcMv1l5SVqO1yC7PzTwrD/pPje/BIRbWhMoPe436U+Y2nD7f5bFx0kt+Sbg==" }, - "cssfilter": { - "version": "0.0.10", - "resolved": "https://registry.npmjs.org/cssfilter/-/cssfilter-0.0.10.tgz", - "integrity": "sha512-FAaLDaplstoRsDR8XGYH51znUN0UY7nMc6Z9/fvE8EXGwvJE9hu7W2vHwx1+bd6gCYnln9nLbzxFTrcO9YQDZw==", - "dev": true, - "optional": true - }, "cssom": { "version": "0.4.4", "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.4.4.tgz", @@ -23741,32 +17477,6 @@ "whatwg-url": "^8.0.0" } }, - "dataloader": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/dataloader/-/dataloader-2.1.0.tgz", - "integrity": "sha512-qTcEYLen3r7ojZNgVUaRggOI+KM7jrKxXeSHhogh/TWxYMeONEMqY+hmkobiYQozsGIyg9OYVzO4ZIfoB4I0pQ==", - "dev": true, - "optional": true - }, - "debounce-fn": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/debounce-fn/-/debounce-fn-4.0.0.tgz", - "integrity": "sha512-8pYCQiL9Xdcg0UPSD3d+0KMlOjp+KGU5EPwYddgzQ7DATsg4fuUDjQtsYLmWjnk2obnNHgV3vE2Y4jejSOJVBQ==", - "dev": true, - "optional": true, - "requires": { - "mimic-fn": "^3.0.0" - }, - "dependencies": { - "mimic-fn": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-3.1.0.tgz", - "integrity": "sha512-Ysbi9uYW9hFyfrThdDEQuykN4Ey6BuwPD2kpI5ES/nFTDn/98yxYNLZJcgUAKPT/mcrLLKaGzJR9YVxJrIdASQ==", - "dev": true, - "optional": true - } - } - }, "debug": { "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", @@ -23776,12 +17486,6 @@ "ms": "2.0.0" } }, - "decamelize": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz", - "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==", - "dev": true - }, "decimal.js": { "version": "10.3.1", "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.3.1.tgz", @@ -23828,66 +17532,11 @@ "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==", "dev": true }, - "defer-to-connect": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz", - "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==", - "dev": true - }, - "deferred-leveldown": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/deferred-leveldown/-/deferred-leveldown-5.3.0.tgz", - "integrity": "sha512-a59VOT+oDy7vtAbLRCZwWgxu2BaCfd5Hk7wxJd48ei7I+nsg8Orlb9CLG0PMZienk9BSUKgeAqkO2+Lw+1+Ukw==", - "dev": true, - "optional": true, - "requires": { - "abstract-leveldown": "~6.2.1", - "inherits": "^2.0.3" - }, - "dependencies": { - "abstract-leveldown": { - "version": "6.2.3", - "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-6.2.3.tgz", - "integrity": "sha512-BsLm5vFMRUrrLeCcRc+G0t2qOaTzpoJQLOubq2XM72eNpjF5UdU5o/5NvlNhx95XHcAvcl8OMXr4mlg/fRgUXQ==", - "dev": true, - "optional": true, - "requires": { - "buffer": "^5.5.0", - "immediate": "^3.2.3", - "level-concat-iterator": "~2.0.0", - "level-supports": "~1.0.0", - "xtend": "~4.0.0" - } - }, - "buffer": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", - "dev": true, - "optional": true, - "requires": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" - } - }, - "level-concat-iterator": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/level-concat-iterator/-/level-concat-iterator-2.0.1.tgz", - "integrity": "sha512-OTKKOqeav2QWcERMJR7IS9CUo1sHnke2C0gkSmcR7QuEtFNLLzHQAvnMw8ykvEcv0Qtkg0p7FOwP1v9e5Smdcw==", - "dev": true, - "optional": true - }, - "level-supports": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/level-supports/-/level-supports-1.0.1.tgz", - "integrity": "sha512-rXM7GYnW8gsl1vedTJIbzOrRv85c/2uCMpiiCzO2fndd06U/kUXEEU9evYn4zFggBOg36IsBW8LzqIpETwwQzg==", - "dev": true, - "optional": true, - "requires": { - "xtend": "^4.0.2" - } - } - } + "defer-to-connect": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz", + "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==", + "dev": true }, "define-properties": { "version": "1.2.0", @@ -24006,29 +17655,12 @@ } } }, - "dot-prop": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-6.0.1.tgz", - "integrity": "sha512-tE7ztYzXHIeyvc7N+hR3oi7FIbf/NIjVP9hmAt3yMXzrQ072/fpjGLx2GxNxGxUl5V73MEqYzioOMoVhGMJ5cA==", - "dev": true, - "optional": true, - "requires": { - "is-obj": "^2.0.0" - } - }, "dotenv": { "version": "16.0.3", "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.0.3.tgz", "integrity": "sha512-7GO6HghkA5fYG9TYnNxi14/7K9f5occMlp3zXAuSxn7CKCxt9xbNWG7yF8hTCSUchlfWSe3uLmlPfigevRItzQ==", "dev": true }, - "double-ended-queue": { - "version": "2.1.0-0", - "resolved": "https://registry.npmjs.org/double-ended-queue/-/double-ended-queue-2.1.0-0.tgz", - "integrity": "sha512-+BNfZ+deCo8hMNpDqDnvT+c0XpJ5cUa6mqYq89bho2Ifze4URTqRkcwR399hWoTrTkbZ/XJYDgP6rc7pRgffEQ==", - "dev": true, - "optional": true - }, "drbg.js": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/drbg.js/-/drbg.js-1.0.1.tgz", @@ -24150,63 +17782,6 @@ "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", "dev": true }, - "encoding-down": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/encoding-down/-/encoding-down-6.3.0.tgz", - "integrity": "sha512-QKrV0iKR6MZVJV08QY0wp1e7vF6QbhnbQhb07bwpEyuz4uZiZgPlEGdkCROuFkUwdxlFaiPIhjyarH1ee/3vhw==", - "dev": true, - "optional": true, - "requires": { - "abstract-leveldown": "^6.2.1", - "inherits": "^2.0.3", - "level-codec": "^9.0.0", - "level-errors": "^2.0.0" - }, - "dependencies": { - "abstract-leveldown": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-6.3.0.tgz", - "integrity": "sha512-TU5nlYgta8YrBMNpc9FwQzRbiXsj49gsALsXadbGHt9CROPzX5fB0rWDR5mtdpOOKa5XqRFpbj1QroPAoPzVjQ==", - "dev": true, - "optional": true, - "requires": { - "buffer": "^5.5.0", - "immediate": "^3.2.3", - "level-concat-iterator": "~2.0.0", - "level-supports": "~1.0.0", - "xtend": "~4.0.0" - } - }, - "buffer": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", - "dev": true, - "optional": true, - "requires": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" - } - }, - "level-concat-iterator": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/level-concat-iterator/-/level-concat-iterator-2.0.1.tgz", - "integrity": "sha512-OTKKOqeav2QWcERMJR7IS9CUo1sHnke2C0gkSmcR7QuEtFNLLzHQAvnMw8ykvEcv0Qtkg0p7FOwP1v9e5Smdcw==", - "dev": true, - "optional": true - }, - "level-supports": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/level-supports/-/level-supports-1.0.1.tgz", - "integrity": "sha512-rXM7GYnW8gsl1vedTJIbzOrRv85c/2uCMpiiCzO2fndd06U/kUXEEU9evYn4zFggBOg36IsBW8LzqIpETwwQzg==", - "dev": true, - "optional": true, - "requires": { - "xtend": "^4.0.2" - } - } - } - }, "end-of-stream": { "version": "1.4.4", "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", @@ -24216,33 +17791,6 @@ "once": "^1.4.0" } }, - "end-stream": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/end-stream/-/end-stream-0.1.0.tgz", - "integrity": "sha512-Brl10T8kYnc75IepKizW6Y9liyW8ikz1B7n/xoHrJxoVSSjoqPn30sb7XVFfQERK4QfUMYRGs9dhWwtt2eu6uA==", - "dev": true, - "optional": true, - "requires": { - "write-stream": "~0.4.3" - } - }, - "env-paths": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", - "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", - "dev": true, - "optional": true - }, - "errno": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz", - "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==", - "dev": true, - "optional": true, - "requires": { - "prr": "~1.0.1" - } - }, "error-polyfill": { "version": "0.1.3", "resolved": "https://registry.npmjs.org/error-polyfill/-/error-polyfill-0.1.3.tgz", @@ -24614,13 +18162,6 @@ "strip-hex-prefix": "1.0.0" } }, - "event-target-shim": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", - "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==", - "dev": true, - "optional": true - }, "eventemitter3": { "version": "4.0.7", "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", @@ -24758,15 +18299,6 @@ "resolved": "https://registry.npmjs.org/eyes/-/eyes-0.1.8.tgz", "integrity": "sha1-Ys8SAjTGg3hdkCNIqADvPgzCC8A=" }, - "fast-check": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/fast-check/-/fast-check-3.1.1.tgz", - "integrity": "sha512-3vtXinVyuUKCKFKYcwXhGE6NtGWkqF8Yh3rvMZNzmwz8EPrgoc/v4pDdLHyLnCyCI5MZpZZkDEwFyXyEONOxpA==", - "dev": true, - "requires": { - "pure-rand": "^5.0.1" - } - }, "fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", @@ -24799,16 +18331,6 @@ "bser": "2.1.1" } }, - "fetch-cookie": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/fetch-cookie/-/fetch-cookie-0.11.0.tgz", - "integrity": "sha512-BQm7iZLFhMWFy5CZ/162sAGjBfdNWb7a8LEqqnzsHFhxT/X/SVj/z2t2nu3aJvjlbQkrAlTUApplPRjWyH4mhA==", - "dev": true, - "optional": true, - "requires": { - "tough-cookie": "^2.3.3 || ^3.0.1 || ^4.0.0" - } - }, "file-uri-to-path": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", @@ -24869,12 +18391,6 @@ "path-exists": "^4.0.0" } }, - "flat": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", - "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", - "dev": true - }, "follow-redirects": { "version": "1.15.1", "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.1.tgz", @@ -24889,12 +18405,6 @@ "is-callable": "^1.1.3" } }, - "foreach": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz", - "integrity": "sha1-C+4AUBiusmDQo6865ljdATbsG5k=", - "dev": true - }, "forever-agent": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", @@ -24927,410 +18437,47 @@ "fresh": { "version": "0.5.2", "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", - "dev": true - }, - "fs-extra": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", - "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - }, - "fs-minipass": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.7.tgz", - "integrity": "sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==", - "dev": true, - "requires": { - "minipass": "^2.6.0" - } - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" - }, - "fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "dev": true, - "optional": true - }, - "function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "devOptional": true - }, - "functional-red-black-tree": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", - "integrity": "sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==", - "dev": true, - "optional": true - }, - "ganache": { - "version": "7.6.0", - "resolved": "https://registry.npmjs.org/ganache/-/ganache-7.6.0.tgz", - "integrity": "sha512-TVpSHgIKPVCqvehGXOsXTYi5X0VvPeS+KHl0Ph8WQvtvoqxutZ8Ov4PclaAX9htIGmwns8DYJBg+yvola6wdrA==", - "dev": true, - "requires": { - "@trufflesuite/bigint-buffer": "1.1.10", - "@types/bn.js": "^5.1.0", - "@types/lru-cache": "5.1.1", - "@types/seedrandom": "3.0.1", - "bufferutil": "4.0.5", - "emittery": "0.10.0", - "keccak": "3.0.2", - "leveldown": "6.1.0", - "secp256k1": "4.0.3", - "utf-8-validate": "5.0.7" - }, - "dependencies": { - "@trufflesuite/bigint-buffer": { - "version": "1.1.10", - "resolved": "https://registry.npmjs.org/@trufflesuite/bigint-buffer/-/bigint-buffer-1.1.10.tgz", - "integrity": "sha512-pYIQC5EcMmID74t26GCC67946mgTJFiLXOT/BYozgrd4UEY2JHEGLhWi9cMiQCt5BSqFEvKkCHNnoj82SRjiEw==", - "bundled": true, - "dev": true, - "requires": { - "node-gyp-build": "4.4.0" - }, - "dependencies": { - "node-gyp-build": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.4.0.tgz", - "integrity": "sha512-amJnQCcgtRVw9SvoebO3BKGESClrfXGCUTX9hSn1OuGQTQBOZmVd0Z0OlecpuRksKvbsUqALE8jls/ErClAPuQ==", - "bundled": true, - "dev": true - } - } - }, - "@types/bn.js": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-5.1.0.tgz", - "integrity": "sha512-QSSVYj7pYFN49kW77o2s9xTCwZ8F2xLbjLLSEVh8D2F4JUhZtPAGOFLTD+ffqksBx/u4cE/KImFjyhqCjn/LIA==", - "bundled": true, - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "@types/lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/@types/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-ssE3Vlrys7sdIzs5LOxCzTVMsU7i9oa/IaW92wF32JFb3CVczqOkru2xspuKczHEbG3nvmPY7IFqVmGGHdNbYw==", - "bundled": true, - "dev": true - }, - "@types/node": { - "version": "17.0.0", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.0.tgz", - "integrity": "sha512-eMhwJXc931Ihh4tkU+Y7GiLzT/y/DBNpNtr4yU9O2w3SYBsr9NaOPhQlLKRmoWtI54uNwuo0IOUFQjVOTZYRvw==", - "bundled": true, - "dev": true - }, - "@types/seedrandom": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@types/seedrandom/-/seedrandom-3.0.1.tgz", - "integrity": "sha512-giB9gzDeiCeloIXDgzFBCgjj1k4WxcDrZtGl6h1IqmUPlxF+Nx8Ve+96QCyDZ/HseB/uvDsKbpib9hU5cU53pw==", - "bundled": true, - "dev": true - }, - "base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", - "bundled": true, - "dev": true - }, - "brorand": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", - "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=", - "bundled": true, - "dev": true - }, - "buffer": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", - "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", - "bundled": true, - "dev": true, - "requires": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" - } - }, - "bufferutil": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/bufferutil/-/bufferutil-4.0.5.tgz", - "integrity": "sha512-HTm14iMQKK2FjFLRTM5lAVcyaUzOnqbPtesFIvREgXpJHdQm8bWS+GkQgIkfaBYRHuCnea7w8UVNfwiAQhlr9A==", - "dev": true, - "optional": true, - "requires": { - "node-gyp-build": "^4.3.0" - } - }, - "catering": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/catering/-/catering-2.1.0.tgz", - "integrity": "sha512-M5imwzQn6y+ODBfgi+cfgZv2hIUI6oYU/0f35Mdb1ujGeqeoI5tOnl9Q13DTH7LW+7er+NYq8stNOKZD/Z3U/A==", - "bundled": true, - "dev": true, - "requires": { - "queue-tick": "^1.0.0" - } - }, - "elliptic": { - "version": "6.5.4", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", - "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", - "bundled": true, - "dev": true, - "requires": { - "bn.js": "^4.11.9", - "brorand": "^1.1.0", - "hash.js": "^1.0.0", - "hmac-drbg": "^1.0.1", - "inherits": "^2.0.4", - "minimalistic-assert": "^1.0.1", - "minimalistic-crypto-utils": "^1.0.1" - }, - "dependencies": { - "bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "bundled": true, - "dev": true - } - } - }, - "emittery": { - "version": "0.10.0", - "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.10.0.tgz", - "integrity": "sha512-AGvFfs+d0JKCJQ4o01ASQLGPmSCxgfU9RFXvzPvZdjKK8oscynksuJhWrSTSw7j7Ep/sZct5b5ZhYCi8S/t0HQ==", - "bundled": true, - "dev": true - }, - "hash.js": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", - "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", - "bundled": true, - "dev": true, - "requires": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.1" - } - }, - "hmac-drbg": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", - "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", - "bundled": true, - "dev": true, - "requires": { - "hash.js": "^1.0.3", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.1" - } - }, - "ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", - "bundled": true, - "dev": true - }, - "inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "bundled": true, - "dev": true - }, - "is-buffer": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz", - "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==", - "bundled": true, - "dev": true - }, - "keccak": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/keccak/-/keccak-3.0.2.tgz", - "integrity": "sha512-PyKKjkH53wDMLGrvmRGSNWgmSxZOUqbnXwKL9tmgbFYA1iAYqW21kfR7mZXV0MlESiefxQQE9X9fTa3X+2MPDQ==", - "bundled": true, - "dev": true, - "requires": { - "node-addon-api": "^2.0.0", - "node-gyp-build": "^4.2.0", - "readable-stream": "^3.6.0" - } - }, - "leveldown": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/leveldown/-/leveldown-6.1.0.tgz", - "integrity": "sha512-8C7oJDT44JXxh04aSSsfcMI8YiaGRhOFI9/pMEL7nWJLVsWajDPTRxsSHTM2WcTVY5nXM+SuRHzPPi0GbnDX+w==", - "bundled": true, - "dev": true, - "requires": { - "abstract-leveldown": "^7.2.0", - "napi-macros": "~2.0.0", - "node-gyp-build": "^4.3.0" - }, - "dependencies": { - "abstract-leveldown": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-7.2.0.tgz", - "integrity": "sha512-DnhQwcFEaYsvYDnACLZhMmCWd3rkOeEvglpa4q5i/5Jlm3UIsWaxVzuXvDLFCSCWRO3yy2/+V/G7FusFgejnfQ==", - "bundled": true, - "dev": true, - "requires": { - "buffer": "^6.0.3", - "catering": "^2.0.0", - "is-buffer": "^2.0.5", - "level-concat-iterator": "^3.0.0", - "level-supports": "^2.0.1", - "queue-microtask": "^1.2.3" - } - }, - "level-concat-iterator": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/level-concat-iterator/-/level-concat-iterator-3.1.0.tgz", - "integrity": "sha512-BWRCMHBxbIqPxJ8vHOvKUsaO0v1sLYZtjN3K2iZJsRBYtp+ONsY6Jfi6hy9K3+zolgQRryhIn2NRZjZnWJ9NmQ==", - "bundled": true, - "dev": true, - "requires": { - "catering": "^2.1.0" - } - }, - "level-supports": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/level-supports/-/level-supports-2.1.0.tgz", - "integrity": "sha512-E486g1NCjW5cF78KGPrMDRBYzPuueMZ6VBXHT6gC7A8UYWGiM14fGgp+s/L1oFfDWSPV/+SFkYCmZ0SiESkRKA==", - "bundled": true, - "dev": true - } - } - }, - "minimalistic-assert": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", - "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", - "bundled": true, - "dev": true - }, - "minimalistic-crypto-utils": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", - "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=", - "bundled": true, - "dev": true - }, - "napi-macros": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/napi-macros/-/napi-macros-2.0.0.tgz", - "integrity": "sha512-A0xLykHtARfueITVDernsAWdtIMbOJgKgcluwENp3AlsKN/PloyO10HtmoqnFAQAcxPkgZN7wdfPfEd0zNGxbg==", - "bundled": true, - "dev": true - }, - "node-addon-api": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-2.0.2.tgz", - "integrity": "sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA==", - "bundled": true, - "dev": true - }, - "node-gyp-build": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.3.0.tgz", - "integrity": "sha512-iWjXZvmboq0ja1pUGULQBexmxq8CV4xBhX7VDOTbL7ZR4FOowwY/VOtRxBN/yKxmdGoIp4j5ysNT4u3S2pDQ3Q==", - "bundled": true, - "dev": true - }, - "queue-microtask": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", - "bundled": true, - "dev": true - }, - "queue-tick": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/queue-tick/-/queue-tick-1.0.0.tgz", - "integrity": "sha512-ULWhjjE8BmiICGn3G8+1L9wFpERNxkf8ysxkAer4+TFdRefDaXOCV5m92aMB9FtBVmn/8sETXLXY6BfW7hyaWQ==", - "bundled": true, - "dev": true - }, - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "bundled": true, - "dev": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - }, - "safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "bundled": true, - "dev": true - }, - "secp256k1": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-4.0.3.tgz", - "integrity": "sha512-NLZVf+ROMxwtEj3Xa562qgv2BK5e2WNmXPiOdVIPLgs6lyTzMvBq0aWTYMI5XCP9jZMVKOcqZLw/Wc4vDkuxhA==", - "bundled": true, - "dev": true, - "requires": { - "elliptic": "^6.5.4", - "node-addon-api": "^2.0.0", - "node-gyp-build": "^4.2.0" - } - }, - "string_decoder": { - "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==", - "bundled": true, - "dev": true, - "requires": { - "safe-buffer": "~5.2.0" - } - }, - "utf-8-validate": { - "version": "5.0.7", - "resolved": "https://registry.npmjs.org/utf-8-validate/-/utf-8-validate-5.0.7.tgz", - "integrity": "sha512-vLt1O5Pp+flcArHGIyKEQq883nBt8nN8tVBcoL0qUXj2XT1n7p70yGIq2VK98I5FdZ1YHc0wk/koOnHjnXWk1Q==", - "dev": true, - "optional": true, - "requires": { - "node-gyp-build": "^4.3.0" - } - }, - "util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", - "bundled": true, - "dev": true - } + "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", + "dev": true + }, + "fs-extra": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", + "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + } + }, + "fs-minipass": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.7.tgz", + "integrity": "sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==", + "dev": true, + "requires": { + "minipass": "^2.6.0" } }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" + }, + "fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "optional": true + }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "devOptional": true + }, "gensync": { "version": "1.0.0-beta.2", "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", @@ -25388,15 +18535,6 @@ "path-is-absolute": "^1.0.0" } }, - "glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "requires": { - "is-glob": "^4.0.1" - } - }, "global": { "version": "4.4.0", "resolved": "https://registry.npmjs.org/global/-/global-4.4.0.tgz", @@ -25601,39 +18739,6 @@ "minimalistic-assert": "^1.0.1" } }, - "he": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", - "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", - "dev": true - }, - "header-case": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/header-case/-/header-case-1.0.1.tgz", - "integrity": "sha512-i0q9mkOeSuhXw6bGgiQCCBgY/jlZuV/7dZXyZ9c6LcBrqwvT8eT719E9uxE5LiZftdl+z81Ugbg/VvXV4OJOeQ==", - "dev": true, - "requires": { - "no-case": "^2.2.0", - "upper-case": "^1.1.3" - }, - "dependencies": { - "lower-case": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz", - "integrity": "sha512-2Fgx1Ycm599x+WGpIYwJOvsjmXFzTSc34IwDWALRA/8AopUKAVPwfJ+h5+f85BCp0PWmmJcWzEpxOpoXycMpdA==", - "dev": true - }, - "no-case": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/no-case/-/no-case-2.3.2.tgz", - "integrity": "sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ==", - "dev": true, - "requires": { - "lower-case": "^1.1.1" - } - } - } - }, "hi-base32": { "version": "0.5.1", "resolved": "https://registry.npmjs.org/hi-base32/-/hi-base32-0.5.1.tgz", @@ -25824,13 +18929,6 @@ "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==" }, - "immediate": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.3.0.tgz", - "integrity": "sha512-HR7EVodfFUdQCTIeySw+WDRFJlPcLOJbXfwwZ7Oom6tjsvZ3bOkCDJHehQC3nxJrv7+f9XecwazynjU8e4Vw3Q==", - "dev": true, - "optional": true - }, "import-local": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.0.3.tgz", @@ -25883,22 +18981,6 @@ "has-tostringtag": "^1.0.0" } }, - "is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dev": true, - "requires": { - "binary-extensions": "^2.0.0" - } - }, - "is-buffer": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz", - "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==", - "dev": true, - "optional": true - }, "is-callable": { "version": "1.2.7", "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", @@ -25914,12 +18996,6 @@ "has": "^1.0.3" } }, - "is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "dev": true - }, "is-fullwidth-code-point": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", @@ -25947,57 +19023,18 @@ "has-tostringtag": "^1.0.0" } }, - "is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dev": true, - "requires": { - "is-extglob": "^2.1.1" - } - }, "is-hex-prefixed": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-hex-prefixed/-/is-hex-prefixed-1.0.0.tgz", "integrity": "sha1-fY035q135dEnFIkTxXPggtd39VQ=", "devOptional": true }, - "is-lower-case": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/is-lower-case/-/is-lower-case-1.1.3.tgz", - "integrity": "sha512-+5A1e/WJpLLXZEDlgz4G//WYSHyQBD32qa4Jd3Lw06qQlv3fJHnp3YIHjTQSGzHMgzmVKz2ZP3rBxTHkPw/lxA==", - "dev": true, - "requires": { - "lower-case": "^1.1.0" - }, - "dependencies": { - "lower-case": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz", - "integrity": "sha512-2Fgx1Ycm599x+WGpIYwJOvsjmXFzTSc34IwDWALRA/8AopUKAVPwfJ+h5+f85BCp0PWmmJcWzEpxOpoXycMpdA==", - "dev": true - } - } - }, "is-number": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", "dev": true }, - "is-obj": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", - "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", - "dev": true, - "optional": true - }, - "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==", - "dev": true - }, "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", @@ -26029,21 +19066,6 @@ "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", "dev": true }, - "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==", - "dev": true - }, - "is-upper-case": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/is-upper-case/-/is-upper-case-1.1.2.tgz", - "integrity": "sha512-GQYSJMgfeAmVwh9ixyk888l7OIhNAGKtY6QA+IrWlu9MDTCaXmeozOZ2S9Knj7bQwBO/H6J2kb+pbyTUiMNbsw==", - "dev": true, - "requires": { - "upper-case": "^1.1.0" - } - }, "isarray": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", @@ -27559,44 +20581,12 @@ "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", "dev": true }, - "json-pointer": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/json-pointer/-/json-pointer-0.6.2.tgz", - "integrity": "sha512-vLWcKbOaXlO+jvRy4qNd+TI1QUPZzfJj1tpJ3vAXDych5XJf93ftpUKe5pKCrzyIIwgBJcOcCVRUfqQP25afBw==", - "dev": true, - "requires": { - "foreach": "^2.0.4" - } - }, "json-schema": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==", "dev": true }, - "json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true, - "optional": true - }, - "json-schema-typed": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/json-schema-typed/-/json-schema-typed-7.0.3.tgz", - "integrity": "sha512-7DE8mpG+/fVw+dTpjbxnx47TaMnDfOI1jwft9g1VybltZCduyRQPJPvc+zzKY9WPHxhPWczyFuYa6I8Mw4iU5A==", - "dev": true, - "optional": true - }, - "json-stable-stringify": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.2.tgz", - "integrity": "sha512-eunSSaEnxV12z+Z73y/j5N37/In40GK4GmsSy+tEHJMxknvqnA7/djeYtAgW0GsWHUfg+847WJjKaEylk2y09g==", - "dev": true, - "requires": { - "jsonify": "^0.0.1" - } - }, "json-stringify-safe": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", @@ -27626,12 +20616,6 @@ "graceful-fs": "^4.1.6" } }, - "jsonify": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.1.tgz", - "integrity": "sha512-2/Ki0GcmuqSrgFyelQq9M05y7PS0mEwuIzrf3f1fPqkVDVRvZrPZtVSMHxdgo8Aq0sxAOb/cr2aqqA3LeWHVPg==", - "dev": true - }, "jsonparse": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", @@ -27682,277 +20666,36 @@ "requires": { "bn.js": "^5.2.0", "buffer": "^6.0.3", - "keccak": "^3.0.2" - }, - "dependencies": { - "buffer": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", - "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", - "optional": true, - "requires": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" - } - } - } - }, - "keyv": { - "version": "4.5.2", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.2.tgz", - "integrity": "sha512-5MHbFaKn8cNSmVW7BYnijeAVlE4cYA/SVkifVgrh7yotnfhKmjuXpDKjrABLnT0SfHWV21P8ow07OGfRrNDg8g==", - "dev": true, - "requires": { - "json-buffer": "3.0.1" - } - }, - "kleur": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", - "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", - "dev": true - }, - "level": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/level/-/level-6.0.1.tgz", - "integrity": "sha512-psRSqJZCsC/irNhfHzrVZbmPYXDcEYhA5TVNwr+V92jF44rbf86hqGp8fiT702FyiArScYIlPSBTDUASCVNSpw==", - "dev": true, - "optional": true, - "requires": { - "level-js": "^5.0.0", - "level-packager": "^5.1.0", - "leveldown": "^5.4.0" - } - }, - "level-codec": { - "version": "9.0.2", - "resolved": "https://registry.npmjs.org/level-codec/-/level-codec-9.0.2.tgz", - "integrity": "sha512-UyIwNb1lJBChJnGfjmO0OR+ezh2iVu1Kas3nvBS/BzGnx79dv6g7unpKIDNPMhfdTEGoc7mC8uAu51XEtX+FHQ==", - "dev": true, - "optional": true, - "requires": { - "buffer": "^5.6.0" - }, - "dependencies": { - "buffer": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", - "dev": true, - "optional": true, - "requires": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" - } - } - } - }, - "level-concat-iterator": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/level-concat-iterator/-/level-concat-iterator-3.1.0.tgz", - "integrity": "sha512-BWRCMHBxbIqPxJ8vHOvKUsaO0v1sLYZtjN3K2iZJsRBYtp+ONsY6Jfi6hy9K3+zolgQRryhIn2NRZjZnWJ9NmQ==", - "dev": true, - "optional": true, - "requires": { - "catering": "^2.1.0" - } - }, - "level-errors": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/level-errors/-/level-errors-2.0.1.tgz", - "integrity": "sha512-UVprBJXite4gPS+3VznfgDSU8PTRuVX0NXwoWW50KLxd2yw4Y1t2JUR5In1itQnudZqRMT9DlAM3Q//9NCjCFw==", - "dev": true, - "optional": true, - "requires": { - "errno": "~0.1.1" - } - }, - "level-iterator-stream": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/level-iterator-stream/-/level-iterator-stream-4.0.2.tgz", - "integrity": "sha512-ZSthfEqzGSOMWoUGhTXdX9jv26d32XJuHz/5YnuHZzH6wldfWMOVwI9TBtKcya4BKTyTt3XVA0A3cF3q5CY30Q==", - "dev": true, - "optional": true, - "requires": { - "inherits": "^2.0.4", - "readable-stream": "^3.4.0", - "xtend": "^4.0.2" - } - }, - "level-js": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/level-js/-/level-js-5.0.2.tgz", - "integrity": "sha512-SnBIDo2pdO5VXh02ZmtAyPP6/+6YTJg2ibLtl9C34pWvmtMEmRTWpra+qO/hifkUtBTOtfx6S9vLDjBsBK4gRg==", - "dev": true, - "optional": true, - "requires": { - "abstract-leveldown": "~6.2.3", - "buffer": "^5.5.0", - "inherits": "^2.0.3", - "ltgt": "^2.1.2" - }, - "dependencies": { - "abstract-leveldown": { - "version": "6.2.3", - "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-6.2.3.tgz", - "integrity": "sha512-BsLm5vFMRUrrLeCcRc+G0t2qOaTzpoJQLOubq2XM72eNpjF5UdU5o/5NvlNhx95XHcAvcl8OMXr4mlg/fRgUXQ==", - "dev": true, - "optional": true, - "requires": { - "buffer": "^5.5.0", - "immediate": "^3.2.3", - "level-concat-iterator": "~2.0.0", - "level-supports": "~1.0.0", - "xtend": "~4.0.0" - } - }, - "buffer": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", - "dev": true, - "optional": true, - "requires": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" - } - }, - "level-concat-iterator": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/level-concat-iterator/-/level-concat-iterator-2.0.1.tgz", - "integrity": "sha512-OTKKOqeav2QWcERMJR7IS9CUo1sHnke2C0gkSmcR7QuEtFNLLzHQAvnMw8ykvEcv0Qtkg0p7FOwP1v9e5Smdcw==", - "dev": true, - "optional": true - }, - "level-supports": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/level-supports/-/level-supports-1.0.1.tgz", - "integrity": "sha512-rXM7GYnW8gsl1vedTJIbzOrRv85c/2uCMpiiCzO2fndd06U/kUXEEU9evYn4zFggBOg36IsBW8LzqIpETwwQzg==", - "dev": true, - "optional": true, - "requires": { - "xtend": "^4.0.2" - } - } - } - }, - "level-packager": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/level-packager/-/level-packager-5.1.1.tgz", - "integrity": "sha512-HMwMaQPlTC1IlcwT3+swhqf/NUO+ZhXVz6TY1zZIIZlIR0YSn8GtAAWmIvKjNY16ZkEg/JcpAuQskxsXqC0yOQ==", - "dev": true, - "optional": true, - "requires": { - "encoding-down": "^6.3.0", - "levelup": "^4.3.2" - } - }, - "level-supports": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/level-supports/-/level-supports-2.1.0.tgz", - "integrity": "sha512-E486g1NCjW5cF78KGPrMDRBYzPuueMZ6VBXHT6gC7A8UYWGiM14fGgp+s/L1oFfDWSPV/+SFkYCmZ0SiESkRKA==", - "dev": true, - "optional": true - }, - "level-write-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/level-write-stream/-/level-write-stream-1.0.0.tgz", - "integrity": "sha512-bBNKOEOMl8msO+uIM9YX/gUO6ckokZ/4pCwTm/lwvs46x6Xs8Zy0sn3Vh37eDqse4mhy4fOMIb/JsSM2nyQFtw==", - "dev": true, - "optional": true, - "requires": { - "end-stream": "~0.1.0" - } - }, - "leveldown": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/leveldown/-/leveldown-5.6.0.tgz", - "integrity": "sha512-iB8O/7Db9lPaITU1aA2txU/cBEXAt4vWwKQRrrWuS6XDgbP4QZGj9BL2aNbwb002atoQ/lIotJkfyzz+ygQnUQ==", - "dev": true, - "optional": true, - "requires": { - "abstract-leveldown": "~6.2.1", - "napi-macros": "~2.0.0", - "node-gyp-build": "~4.1.0" + "keccak": "^3.0.2" }, "dependencies": { - "abstract-leveldown": { - "version": "6.2.3", - "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-6.2.3.tgz", - "integrity": "sha512-BsLm5vFMRUrrLeCcRc+G0t2qOaTzpoJQLOubq2XM72eNpjF5UdU5o/5NvlNhx95XHcAvcl8OMXr4mlg/fRgUXQ==", - "dev": true, - "optional": true, - "requires": { - "buffer": "^5.5.0", - "immediate": "^3.2.3", - "level-concat-iterator": "~2.0.0", - "level-supports": "~1.0.0", - "xtend": "~4.0.0" - } - }, "buffer": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", - "dev": true, + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", "optional": true, "requires": { "base64-js": "^1.3.1", - "ieee754": "^1.1.13" - } - }, - "level-concat-iterator": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/level-concat-iterator/-/level-concat-iterator-2.0.1.tgz", - "integrity": "sha512-OTKKOqeav2QWcERMJR7IS9CUo1sHnke2C0gkSmcR7QuEtFNLLzHQAvnMw8ykvEcv0Qtkg0p7FOwP1v9e5Smdcw==", - "dev": true, - "optional": true - }, - "level-supports": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/level-supports/-/level-supports-1.0.1.tgz", - "integrity": "sha512-rXM7GYnW8gsl1vedTJIbzOrRv85c/2uCMpiiCzO2fndd06U/kUXEEU9evYn4zFggBOg36IsBW8LzqIpETwwQzg==", - "dev": true, - "optional": true, - "requires": { - "xtend": "^4.0.2" + "ieee754": "^1.2.1" } - }, - "node-gyp-build": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.1.1.tgz", - "integrity": "sha512-dSq1xmcPDKPZ2EED2S6zw/b9NKsqzXRE6dVr8TVQnI3FJOTteUMuqF3Qqs6LZg+mLGYJWqQzMbIjMtJqTv87nQ==", - "dev": true, - "optional": true } } }, - "levelup": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/levelup/-/levelup-4.4.0.tgz", - "integrity": "sha512-94++VFO3qN95cM/d6eBXvd894oJE0w3cInq9USsyQzzoJxmiYzPAocNcuGCPGGjoXqDVJcr3C1jzt1TSjyaiLQ==", + "keyv": { + "version": "4.5.2", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.2.tgz", + "integrity": "sha512-5MHbFaKn8cNSmVW7BYnijeAVlE4cYA/SVkifVgrh7yotnfhKmjuXpDKjrABLnT0SfHWV21P8ow07OGfRrNDg8g==", "dev": true, - "optional": true, "requires": { - "deferred-leveldown": "~5.3.0", - "level-errors": "~2.0.0", - "level-iterator-stream": "~4.0.0", - "level-supports": "~1.0.0", - "xtend": "~4.0.0" - }, - "dependencies": { - "level-supports": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/level-supports/-/level-supports-1.0.1.tgz", - "integrity": "sha512-rXM7GYnW8gsl1vedTJIbzOrRv85c/2uCMpiiCzO2fndd06U/kUXEEU9evYn4zFggBOg36IsBW8LzqIpETwwQzg==", - "dev": true, - "optional": true, - "requires": { - "xtend": "^4.0.2" - } - } + "json-buffer": "3.0.1" } }, + "kleur": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", + "dev": true + }, "leven": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", @@ -28007,99 +20750,18 @@ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" }, - "lodash-es": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz", - "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==", - "dev": true - }, "lodash.memoize": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=", "dev": true }, - "lodash.sortby": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", - "integrity": "sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==", - "dev": true, - "optional": true - }, "lodash.values": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/lodash.values/-/lodash.values-4.3.0.tgz", "integrity": "sha512-r0RwvdCv8id9TUblb/O7rYPwVy6lerCbcawrfdo9iC/1t1wsNMJknO79WNBgwkH0hIeJ08jmvvESbFpNb4jH0Q==", "optional": true }, - "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==", - "dev": true, - "requires": { - "chalk": "^4.1.0", - "is-unicode-supported": "^0.1.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "loglevel": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.8.1.tgz", - "integrity": "sha512-tCRIJM51SHjAayKwC+QAg8hT8vg6z7GSgLJKGvzuPb1Wc+hLzqtuVLxp6/HzSPOozuK+8ErAhy7U/sVzw8Dgfg==", - "dev": true, - "optional": true - }, "long": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz", @@ -28109,7 +20771,7 @@ "version": "1.4.0", "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", - "devOptional": true, + "optional": true, "requires": { "js-tokens": "^3.0.0 || ^4.0.0" } @@ -28129,23 +20791,6 @@ } } }, - "lower-case-first": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/lower-case-first/-/lower-case-first-1.0.2.tgz", - "integrity": "sha512-UuxaYakO7XeONbKrZf5FEgkantPf5DUqDayzP5VXZrtRPdH86s4kN47I8B3TW10S4QKiE3ziHNf3kRN//okHjA==", - "dev": true, - "requires": { - "lower-case": "^1.1.2" - }, - "dependencies": { - "lower-case": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz", - "integrity": "sha512-2Fgx1Ycm599x+WGpIYwJOvsjmXFzTSc34IwDWALRA/8AopUKAVPwfJ+h5+f85BCp0PWmmJcWzEpxOpoXycMpdA==", - "dev": true - } - } - }, "lowercase-keys": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-3.0.0.tgz", @@ -28161,13 +20806,6 @@ "yallist": "^4.0.0" } }, - "ltgt": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ltgt/-/ltgt-2.2.1.tgz", - "integrity": "sha512-AI2r85+4MquTw9ZYqabu4nMwy9Oftlfa/e/52t9IjtfG+mGBbTNdAoZ3RQKLHR6r0wQnwZnPIEh/Ya6XTWAKNA==", - "dev": true, - "optional": true - }, "lunr": { "version": "2.3.9", "resolved": "https://registry.npmjs.org/lunr/-/lunr-2.3.9.tgz", @@ -28234,40 +20872,6 @@ "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", "dev": true }, - "memdown": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/memdown/-/memdown-1.4.1.tgz", - "integrity": "sha512-iVrGHZB8i4OQfM155xx8akvG9FIj+ht14DX5CQkCTG4EHzZ3d3sgckIf/Lm9ivZalEsFuEVnWv2B2WZvbrro2w==", - "dev": true, - "optional": true, - "requires": { - "abstract-leveldown": "~2.7.1", - "functional-red-black-tree": "^1.0.1", - "immediate": "^3.2.3", - "inherits": "~2.0.1", - "ltgt": "~2.2.0", - "safe-buffer": "~5.1.1" - }, - "dependencies": { - "abstract-leveldown": { - "version": "2.7.2", - "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-2.7.2.tgz", - "integrity": "sha512-+OVvxH2rHVEhWLdbudP6p0+dNMXu8JA1CbhP19T8paTYAcX7oJ4OVjT+ZUVpv7mITxXHqDMej+GdqXBmXkw09w==", - "dev": true, - "optional": true, - "requires": { - "xtend": "~4.0.0" - } - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true, - "optional": true - } - } - }, "merge-descriptors": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", @@ -28396,190 +21000,33 @@ } } }, - "minizlib": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.3.3.tgz", - "integrity": "sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==", - "dev": true, - "requires": { - "minipass": "^2.9.0" - } - }, - "mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "dev": true, - "requires": { - "minimist": "^1.2.5" - } - }, - "mkdirp-promise": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/mkdirp-promise/-/mkdirp-promise-5.0.1.tgz", - "integrity": "sha512-Hepn5kb1lJPtVW84RFT40YG1OddBNTOVUZR2bzQUHc+Z03en8/3uX0+060JDhcEzyO08HmipsN9DcnFMxhIL9w==", - "dev": true, - "requires": { - "mkdirp": "*" - } - }, - "mocha": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/mocha/-/mocha-10.1.0.tgz", - "integrity": "sha512-vUF7IYxEoN7XhQpFLxQAEMtE4W91acW4B6En9l97MwE9stL1A9gusXfoHZCLVHDUJ/7V5+lbCM6yMqzo5vNymg==", - "dev": true, - "requires": { - "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" - }, - "dependencies": { - "argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true - }, - "brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "requires": { - "balanced-match": "^1.0.0" - } - }, - "debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "requires": { - "ms": "2.1.2" - }, - "dependencies": { - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - } - } - }, - "diff": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz", - "integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==", - "dev": true - }, - "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==", - "dev": true - }, - "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==", - "dev": true, - "requires": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - } - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dev": true, - "requires": { - "argparse": "^2.0.1" - } - }, - "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==", - "dev": true, - "requires": { - "p-locate": "^5.0.0" - } - }, - "minimatch": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.0.1.tgz", - "integrity": "sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g==", - "dev": true, - "requires": { - "brace-expansion": "^2.0.1" - } - }, - "ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "dev": true - }, - "p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "dev": true, - "requires": { - "yocto-queue": "^0.1.0" - } - }, - "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==", - "dev": true, - "requires": { - "p-limit": "^3.0.2" - } - }, - "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, - "requires": { - "has-flag": "^4.0.0" - } - }, - "yargs-parser": { - "version": "20.2.4", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz", - "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==", - "dev": true - } - } - }, + "minizlib": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.3.3.tgz", + "integrity": "sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==", + "dev": true, + "requires": { + "minipass": "^2.9.0" + } + }, + "mkdirp": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "dev": true, + "requires": { + "minimist": "^1.2.5" + } + }, + "mkdirp-promise": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/mkdirp-promise/-/mkdirp-promise-5.0.1.tgz", + "integrity": "sha512-Hepn5kb1lJPtVW84RFT40YG1OddBNTOVUZR2bzQUHc+Z03en8/3uX0+060JDhcEzyO08HmipsN9DcnFMxhIL9w==", + "dev": true, + "requires": { + "mkdirp": "*" + } + }, "mock-fs": { "version": "4.14.0", "resolved": "https://registry.npmjs.org/mock-fs/-/mock-fs-4.14.0.tgz", @@ -28672,19 +21119,6 @@ "integrity": "sha512-9MqxMH/BSJC7dnLsEMPyfN5Dvoo49IsPFYMcHw3Bcfc2kN0lpHRBSzlMSVx4HGyJ7s9B31CyBTVehWJoQ8Ctew==", "dev": true }, - "nanoid": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.3.tgz", - "integrity": "sha512-p1sjXuopFs0xg+fPASzQ28agW1oHD7xDsd9Xkf3T15H3c/cifrFHVwrh74PdoklAPi+i7MdRsE47vm2r6JoB+w==", - "dev": true - }, - "napi-macros": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/napi-macros/-/napi-macros-2.0.0.tgz", - "integrity": "sha512-A0xLykHtARfueITVDernsAWdtIMbOJgKgcluwENp3AlsKN/PloyO10HtmoqnFAQAcxPkgZN7wdfPfEd0zNGxbg==", - "dev": true, - "optional": true - }, "natural-compare": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", @@ -28750,13 +21184,6 @@ } } }, - "node-abort-controller": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/node-abort-controller/-/node-abort-controller-3.0.1.tgz", - "integrity": "sha512-/ujIVxthRs+7q6hsdjHMaj8hRG9NuWmwrz+JdRwZ14jdFoKSkm+vDsCbF9PLpnSqjaWQJuTmVtcWHNLr+vrOFw==", - "dev": true, - "optional": true - }, "node-addon-api": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-2.0.2.tgz", @@ -28802,15 +21229,6 @@ "integrity": "sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs=", "dev": true }, - "node-interval-tree": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/node-interval-tree/-/node-interval-tree-1.3.3.tgz", - "integrity": "sha512-K9vk96HdTK5fEipJwxSvIIqwTqr4e3HRJeJrNxBSeVMNSC/JWARRaX7etOLOuTmrRMeOI/K5TCJu3aWIwZiNTw==", - "dev": true, - "requires": { - "shallowequal": "^1.0.2" - } - }, "node-modules-regexp": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/node-modules-regexp/-/node-modules-regexp-1.0.0.tgz", @@ -28823,12 +21241,6 @@ "integrity": "sha512-CqyzN6z7Q6aMeF/ktcMVTzhAHCEpf8SOarwpzpf8pNBY2k5/oM34UHldUwp8VKI7uxct2HxSRdJjBaZeESzcxA==", "dev": true }, - "nofilter": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/nofilter/-/nofilter-1.0.4.tgz", - "integrity": "sha512-N8lidFp+fCz+TD51+haYdbDGrcBWwuHX40F5+z0qkUjMJ5Tp+rdSuAkMJ9N9eoolDlEVTf6u5icM+cNKkKW2mA==", - "dev": true - }, "noms": { "version": "0.0.0", "resolved": "https://registry.npmjs.org/noms/-/noms-0.0.0.tgz", @@ -28989,12 +21401,6 @@ "word-wrap": "~1.2.3" } }, - "original-require": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/original-require/-/original-require-1.0.1.tgz", - "integrity": "sha512-5vdKMbE58WaE61uVD+PKyh8xdM398UnjPBLotW2sjG5MzHARwta/+NtMBCBA0t2WQblGYBvq5vsiZpWokwno+A==", - "dev": true - }, "p-cancelable": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-3.0.0.tgz", @@ -29030,32 +21436,6 @@ "resolved": "https://registry.npmjs.org/pako/-/pako-2.0.4.tgz", "integrity": "sha512-v8tweI900AUkZN6heMU/4Uy4cXRc2AYNRggVmTR+dEncawDJgCdLMximOVA2p4qO57WMynangsfGRb5WD6L1Bg==" }, - "param-case": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/param-case/-/param-case-2.1.1.tgz", - "integrity": "sha512-eQE845L6ot89sk2N8liD8HAuH4ca6Vvr7VWAWwt7+kvvG5aBcPmmphQ68JsEG2qa9n1TykS2DLeMt363AAH8/w==", - "dev": true, - "requires": { - "no-case": "^2.2.0" - }, - "dependencies": { - "lower-case": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz", - "integrity": "sha512-2Fgx1Ycm599x+WGpIYwJOvsjmXFzTSc34IwDWALRA/8AopUKAVPwfJ+h5+f85BCp0PWmmJcWzEpxOpoXycMpdA==", - "dev": true - }, - "no-case": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/no-case/-/no-case-2.3.2.tgz", - "integrity": "sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ==", - "dev": true, - "requires": { - "lower-case": "^1.1.1" - } - } - } - }, "parse-asn1": { "version": "5.1.6", "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.6.tgz", @@ -29087,42 +21467,6 @@ "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", "dev": true }, - "pascal-case": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-2.0.1.tgz", - "integrity": "sha512-qjS4s8rBOJa2Xm0jmxXiyh1+OFf6ekCWOvUaRgAQSktzlTbMotS0nmG9gyYAybCWBcuP4fsBeRCKNwGBnMe2OQ==", - "dev": true, - "requires": { - "camel-case": "^3.0.0", - "upper-case-first": "^1.1.0" - } - }, - "path-case": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/path-case/-/path-case-2.1.1.tgz", - "integrity": "sha512-Ou0N05MioItesaLr9q8TtHVWmJ6fxWdqKB2RohFmNWVyJ+2zeKIeDNWAN6B/Pe7wpzWChhZX6nONYmOnMeJQ/Q==", - "dev": true, - "requires": { - "no-case": "^2.2.0" - }, - "dependencies": { - "lower-case": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz", - "integrity": "sha512-2Fgx1Ycm599x+WGpIYwJOvsjmXFzTSc34IwDWALRA/8AopUKAVPwfJ+h5+f85BCp0PWmmJcWzEpxOpoXycMpdA==", - "dev": true - }, - "no-case": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/no-case/-/no-case-2.3.2.tgz", - "integrity": "sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ==", - "dev": true, - "requires": { - "lower-case": "^1.1.1" - } - } - } - }, "path-exists": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", @@ -29168,428 +21512,36 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==", - "dev": true - }, - "picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", - "dev": true - }, - "picomatch": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz", - "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==", - "dev": true - }, - "pirates": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.1.tgz", - "integrity": "sha512-WuNqLTbMI3tmfef2TKxlQmAiLHKtFhlsCZnPIpuv2Ow0RDVO8lfy1Opf4NUzlMXLjPl+Men7AuVdX6TA+s+uGA==", - "dev": true, - "requires": { - "node-modules-regexp": "^1.0.0" - } - }, - "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, - "requires": { - "find-up": "^4.0.0" - } - }, - "pkg-up": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-3.1.0.tgz", - "integrity": "sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==", - "dev": true, - "optional": true, - "requires": { - "find-up": "^3.0.0" - }, - "dependencies": { - "find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "dev": true, - "optional": true, - "requires": { - "locate-path": "^3.0.0" - } - }, - "locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", - "dev": true, - "optional": true, - "requires": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - } - }, - "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==", - "dev": true, - "optional": true, - "requires": { - "p-limit": "^2.0.0" - } - }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", - "dev": true, - "optional": true - } - } - }, - "pluralize": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-8.0.0.tgz", - "integrity": "sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==", - "dev": true, - "optional": true - }, - "pouchdb": { - "version": "7.3.0", - "resolved": "https://registry.npmjs.org/pouchdb/-/pouchdb-7.3.0.tgz", - "integrity": "sha512-OwsIQGXsfx3TrU1pLruj6PGSwFH+h5k4hGNxFkZ76Um7/ZI8F5TzUHFrpldVVIhfXYi2vP31q0q7ot1FSLFYOw==", - "dev": true, - "optional": true, - "requires": { - "abort-controller": "3.0.0", - "argsarray": "0.0.1", - "buffer-from": "1.1.2", - "clone-buffer": "1.0.0", - "double-ended-queue": "2.1.0-0", - "fetch-cookie": "0.11.0", - "immediate": "3.3.0", - "inherits": "2.0.4", - "level": "6.0.1", - "level-codec": "9.0.2", - "level-write-stream": "1.0.0", - "leveldown": "5.6.0", - "levelup": "4.4.0", - "ltgt": "2.2.1", - "node-fetch": "2.6.7", - "readable-stream": "1.1.14", - "spark-md5": "3.0.2", - "through2": "3.0.2", - "uuid": "8.3.2", - "vuvuzela": "1.0.3" - }, - "dependencies": { - "readable-stream": { - "version": "1.1.14", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", - "integrity": "sha512-+MeVjFf4L44XUkhM1eYbD8fyEsxcV81pqMSR5gblfcLCHfZvbrqy4/qYHE+/R5HoBUT11WV5O08Cr1n3YXkWVQ==", - "dev": true, - "optional": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" - } - }, - "string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==", - "dev": true, - "optional": true - }, - "through2": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/through2/-/through2-3.0.2.tgz", - "integrity": "sha512-enaDQ4MUyP2W6ZyT6EsMzqBPZaM/avg8iuo+l2d3QCs0J+6RaqkHV/2/lOwDTueBHeJ/2LG9lrLW3d5rWPucuQ==", - "dev": true, - "optional": true, - "requires": { - "inherits": "^2.0.4", - "readable-stream": "2 || 3" - }, - "dependencies": { - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dev": true, - "optional": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - }, - "string_decoder": { - "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==", - "dev": true, - "optional": true, - "requires": { - "safe-buffer": "~5.2.0" - } - } - } - }, - "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, - "optional": true - } - } - }, - "pouchdb-abstract-mapreduce": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/pouchdb-abstract-mapreduce/-/pouchdb-abstract-mapreduce-7.3.1.tgz", - "integrity": "sha512-0zKXVFBvrfc1KnN0ggrB762JDmZnUpePHywo9Bq3Jy+L1FnoG7fXM5luFfvv5/T0gEw+ZTIwoocZECMnESBI9w==", - "dev": true, - "optional": true, - "requires": { - "pouchdb-binary-utils": "7.3.1", - "pouchdb-collate": "7.3.1", - "pouchdb-collections": "7.3.1", - "pouchdb-errors": "7.3.1", - "pouchdb-fetch": "7.3.1", - "pouchdb-mapreduce-utils": "7.3.1", - "pouchdb-md5": "7.3.1", - "pouchdb-utils": "7.3.1" - } - }, - "pouchdb-adapter-leveldb-core": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/pouchdb-adapter-leveldb-core/-/pouchdb-adapter-leveldb-core-7.3.1.tgz", - "integrity": "sha512-mxShHlqLMPz2gChrgtA9okV1ogFmQrRAoM/O4EN0CrQWPLXqYtpL1f7sI2asIvFe7SmpnvbLx7kkZyFmLTfwjA==", - "dev": true, - "optional": true, - "requires": { - "argsarray": "0.0.1", - "buffer-from": "1.1.2", - "double-ended-queue": "2.1.0-0", - "levelup": "4.4.0", - "pouchdb-adapter-utils": "7.3.1", - "pouchdb-binary-utils": "7.3.1", - "pouchdb-collections": "7.3.1", - "pouchdb-errors": "7.3.1", - "pouchdb-json": "7.3.1", - "pouchdb-md5": "7.3.1", - "pouchdb-merge": "7.3.1", - "pouchdb-utils": "7.3.1", - "sublevel-pouchdb": "7.3.1", - "through2": "3.0.2" - }, - "dependencies": { - "through2": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/through2/-/through2-3.0.2.tgz", - "integrity": "sha512-enaDQ4MUyP2W6ZyT6EsMzqBPZaM/avg8iuo+l2d3QCs0J+6RaqkHV/2/lOwDTueBHeJ/2LG9lrLW3d5rWPucuQ==", - "dev": true, - "optional": true, - "requires": { - "inherits": "^2.0.4", - "readable-stream": "2 || 3" - } - } - } - }, - "pouchdb-adapter-memory": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/pouchdb-adapter-memory/-/pouchdb-adapter-memory-7.3.1.tgz", - "integrity": "sha512-iHdWGJAHONqQv0we3Oi1MYen69ZS8McLW9wUyaAYcWTJnAIIAr2ZM0/TeTDVSHfMUwYqEYk7X8jRtJZEMwLnwg==", - "dev": true, - "optional": true, - "requires": { - "memdown": "1.4.1", - "pouchdb-adapter-leveldb-core": "7.3.1", - "pouchdb-utils": "7.3.1" - } - }, - "pouchdb-adapter-utils": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/pouchdb-adapter-utils/-/pouchdb-adapter-utils-7.3.1.tgz", - "integrity": "sha512-uKLG6dClwTs/sLIJ4WkLAi9wlnDBpOnfyhpeAgOjlOGN/XLz5nKHrA4UJRnURDyc+uv79S9r/Unc4hVpmbSPUw==", - "dev": true, - "optional": true, - "requires": { - "pouchdb-binary-utils": "7.3.1", - "pouchdb-collections": "7.3.1", - "pouchdb-errors": "7.3.1", - "pouchdb-md5": "7.3.1", - "pouchdb-merge": "7.3.1", - "pouchdb-utils": "7.3.1" - } - }, - "pouchdb-binary-utils": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/pouchdb-binary-utils/-/pouchdb-binary-utils-7.3.1.tgz", - "integrity": "sha512-crZJNfAEOnUoRk977Qtmk4cxEv6sNKllQ6vDDKgQrQLFjMUXma35EHzNyIJr1s76J77Q4sqKQAmxz9Y40yHGtw==", - "dev": true, - "optional": true, - "requires": { - "buffer-from": "1.1.2" - } - }, - "pouchdb-collate": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/pouchdb-collate/-/pouchdb-collate-7.3.1.tgz", - "integrity": "sha512-o4gyGqDMLMSNzf6EDTr3eHaH/JRMoqRhdc+eV+oA8u00nTBtr9wD+jypVe2LbgKLJ4NWqx2qVkXiTiQdUFtsLQ==", - "dev": true, - "optional": true - }, - "pouchdb-collections": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/pouchdb-collections/-/pouchdb-collections-7.3.1.tgz", - "integrity": "sha512-yUyDqR+OJmtwgExOSJegpBJXDLAEC84TWnbAYycyh+DZoA51Yw0+XVQF5Vh8Ii90/Ut2xo88fmrmp0t6kqom8w==", - "dev": true, - "optional": true - }, - "pouchdb-debug": { - "version": "7.2.1", - "resolved": "https://registry.npmjs.org/pouchdb-debug/-/pouchdb-debug-7.2.1.tgz", - "integrity": "sha512-eP3ht/AKavLF2RjTzBM6S9gaI2/apcW6xvaKRQhEdOfiANqerFuksFqHCal3aikVQuDO+cB/cw+a4RyJn/glBw==", - "dev": true, - "optional": true, - "requires": { - "debug": "3.1.0" - }, - "dependencies": { - "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "dev": true, - "optional": true, - "requires": { - "ms": "2.0.0" - } - } - } - }, - "pouchdb-errors": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/pouchdb-errors/-/pouchdb-errors-7.3.1.tgz", - "integrity": "sha512-Zktz4gnXEUcZcty8FmyvtYUYsHskoST05m6H5/E2gg/0mCfEXq/XeyyLkZHaZmqD0ZPS9yNmASB1VaFWEKEaDw==", - "dev": true, - "optional": true, - "requires": { - "inherits": "2.0.4" - } - }, - "pouchdb-fetch": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/pouchdb-fetch/-/pouchdb-fetch-7.3.1.tgz", - "integrity": "sha512-205xAtvdHRPQ4fp1h9+RmT9oQabo9gafuPmWsS9aEl3ER54WbY8Vaj1JHZGbU4KtMTYvW7H5088zLS7Nrusuag==", - "dev": true, - "optional": true, - "requires": { - "abort-controller": "3.0.0", - "fetch-cookie": "0.11.0", - "node-fetch": "2.6.7" - } - }, - "pouchdb-find": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/pouchdb-find/-/pouchdb-find-7.3.1.tgz", - "integrity": "sha512-AeqUfAVY1c7IFaY36BRT0vIz9r4VTKq/YOWTmiqndOZUQ/pDGxyO2fNFal6NN3PyYww0JijlD377cPvhnrhJVA==", - "dev": true, - "optional": true, - "requires": { - "pouchdb-abstract-mapreduce": "7.3.1", - "pouchdb-collate": "7.3.1", - "pouchdb-errors": "7.3.1", - "pouchdb-fetch": "7.3.1", - "pouchdb-md5": "7.3.1", - "pouchdb-selector-core": "7.3.1", - "pouchdb-utils": "7.3.1" - } - }, - "pouchdb-json": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/pouchdb-json/-/pouchdb-json-7.3.1.tgz", - "integrity": "sha512-AyOKsmc85/GtHjMZyEacqzja8qLVfycS1hh1oskR+Bm5PIITX52Fb8zyi0hEetV6VC0yuGbn0RqiLjJxQePeqQ==", - "dev": true, - "optional": true, - "requires": { - "vuvuzela": "1.0.3" - } - }, - "pouchdb-mapreduce-utils": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/pouchdb-mapreduce-utils/-/pouchdb-mapreduce-utils-7.3.1.tgz", - "integrity": "sha512-oUMcq82+4pTGQ6dtrhgORHOVHZSr6w/5tFIUGlv7RABIDvJarL4snMawADjlpiEwPdiQ/ESG8Fqt8cxqvqsIgg==", - "dev": true, - "optional": true, - "requires": { - "argsarray": "0.0.1", - "inherits": "2.0.4", - "pouchdb-collections": "7.3.1", - "pouchdb-utils": "7.3.1" - } + "dev": true }, - "pouchdb-md5": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/pouchdb-md5/-/pouchdb-md5-7.3.1.tgz", - "integrity": "sha512-aDV8ui/mprnL3xmt0gT/81DFtTtJiKyn+OxIAbwKPMfz/rDFdPYvF0BmDC9QxMMzGfkV+JJUjU6at0PPs2mRLg==", - "dev": true, - "optional": true, - "requires": { - "pouchdb-binary-utils": "7.3.1", - "spark-md5": "3.0.2" - } + "picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "dev": true }, - "pouchdb-merge": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/pouchdb-merge/-/pouchdb-merge-7.3.1.tgz", - "integrity": "sha512-FeK3r35mKimokf2PQ2tUI523QWyZ4lYZ0Yd75FfSch/SPY6wIokz5XBZZ6PHdu5aOJsEKzoLUxr8CpSg9DhcAw==", - "dev": true, - "optional": true + "picomatch": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz", + "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==", + "dev": true }, - "pouchdb-selector-core": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/pouchdb-selector-core/-/pouchdb-selector-core-7.3.1.tgz", - "integrity": "sha512-HBX+nNGXcaL9z0uNpwSMRq2GNZd3EZXW+fe9rJHS0hvJohjZL7aRJLoaXfEdHPRTNW+CpjM3Rny60eGekQdI/w==", + "pirates": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.1.tgz", + "integrity": "sha512-WuNqLTbMI3tmfef2TKxlQmAiLHKtFhlsCZnPIpuv2Ow0RDVO8lfy1Opf4NUzlMXLjPl+Men7AuVdX6TA+s+uGA==", "dev": true, - "optional": true, "requires": { - "pouchdb-collate": "7.3.1", - "pouchdb-utils": "7.3.1" + "node-modules-regexp": "^1.0.0" } }, - "pouchdb-utils": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/pouchdb-utils/-/pouchdb-utils-7.3.1.tgz", - "integrity": "sha512-R3hHBo1zTdTu/NFs3iqkcaQAPwhIH0gMIdfVKd5lbDYlmP26rCG5pdS+v7NuoSSFLJ4xxnaGV+Gjf4duYsJ8wQ==", + "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, - "optional": true, "requires": { - "argsarray": "0.0.1", - "clone-buffer": "1.0.0", - "immediate": "3.3.0", - "inherits": "2.0.4", - "pouchdb-collections": "7.3.1", - "pouchdb-errors": "7.3.1", - "pouchdb-md5": "7.3.1", - "uuid": "8.3.2" - }, - "dependencies": { - "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, - "optional": true - } + "find-up": "^4.0.0" } }, "prelude-ls": { @@ -29707,13 +21659,6 @@ "ipaddr.js": "1.9.1" } }, - "prr": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", - "integrity": "sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==", - "dev": true, - "optional": true - }, "psl": { "version": "1.8.0", "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", @@ -29758,12 +21703,6 @@ "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", "dev": true }, - "pure-rand": { - "version": "5.0.5", - "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-5.0.5.tgz", - "integrity": "sha512-BwQpbqxSCBJVpamI6ydzcKqyFmnd5msMWUGvzXLm1aXvusbbgkbOto/EUPM00hjveJEaJtdbhUjKSzWRhQVkaw==", - "dev": true - }, "qs": { "version": "6.9.6", "resolved": "https://registry.npmjs.org/qs/-/qs-6.9.6.tgz", @@ -29781,13 +21720,6 @@ "strict-uri-encode": "^1.0.0" } }, - "queue-microtask": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", - "dev": true, - "optional": true - }, "quick-lru": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", @@ -29846,15 +21778,6 @@ "util-deprecate": "^1.0.1" } }, - "readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "dev": true, - "requires": { - "picomatch": "^2.2.1" - } - }, "readonly-date": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/readonly-date/-/readonly-date-1.0.0.tgz", @@ -29870,35 +21793,6 @@ "resolve": "^1.1.6" } }, - "redux": { - "version": "3.7.2", - "resolved": "https://registry.npmjs.org/redux/-/redux-3.7.2.tgz", - "integrity": "sha512-pNqnf9q1hI5HHZRBkj3bAngGZW/JMCmexDlOxw4XagXY2o1327nHH54LoTjiPJ0gizoqPDRqWyX/00g0hD6w+A==", - "dev": true, - "requires": { - "lodash": "^4.2.1", - "lodash-es": "^4.2.1", - "loose-envify": "^1.1.0", - "symbol-observable": "^1.0.3" - }, - "dependencies": { - "symbol-observable": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.2.0.tgz", - "integrity": "sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ==", - "dev": true - } - } - }, - "redux-saga": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/redux-saga/-/redux-saga-1.0.0.tgz", - "integrity": "sha512-GvJWs/SzMvEQgeaw6sRMXnS2FghlvEGsHiEtTLpJqc/FHF3I5EE/B+Hq5lyHZ8LSoT2r/X/46uWvkdCnK9WgHA==", - "dev": true, - "requires": { - "@redux-saga/core": "^1.0.0" - } - }, "regenerator-runtime": { "version": "0.13.11", "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", @@ -29967,47 +21861,6 @@ "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", "devOptional": true }, - "require-from-string": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", - "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", - "dev": true, - "optional": true - }, - "reselect": { - "version": "4.1.7", - "resolved": "https://registry.npmjs.org/reselect/-/reselect-4.1.7.tgz", - "integrity": "sha512-Zu1xbUt3/OPwsXL46hvOOoQrap2azE7ZQbokq61BQfiXvhewsKDwhMeZjTX9sX0nvw1t/U5Audyn1I9P/m9z0A==", - "dev": true - }, - "reselect-tree": { - "version": "1.3.7", - "resolved": "https://registry.npmjs.org/reselect-tree/-/reselect-tree-1.3.7.tgz", - "integrity": "sha512-kZN+C1cVJ6fFN2smSb0l4UvYZlRzttgnu183svH4NrU22cBY++ikgr2QT75Uuk4MYpv5gXSVijw4c5U6cx6GKg==", - "dev": true, - "requires": { - "debug": "^3.1.0", - "json-pointer": "^0.6.1", - "reselect": "^4.0.0" - }, - "dependencies": { - "debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - }, - "ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "dev": true - } - } - }, "resolve": { "version": "1.20.0", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz", @@ -30062,24 +21915,6 @@ } } }, - "restore-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", - "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", - "dev": true, - "optional": true, - "requires": { - "onetime": "^5.1.0", - "signal-exit": "^3.0.2" - } - }, - "retry": { - "version": "0.13.1", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz", - "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==", - "dev": true, - "optional": true - }, "rimraf": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", @@ -30221,42 +22056,6 @@ } } }, - "sentence-case": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/sentence-case/-/sentence-case-2.1.1.tgz", - "integrity": "sha512-ENl7cYHaK/Ktwk5OTD+aDbQ3uC8IByu/6Bkg+HDv8Mm+XnBnppVNalcfJTNsp1ibstKh030/JKQQWglDvtKwEQ==", - "dev": true, - "requires": { - "no-case": "^2.2.0", - "upper-case-first": "^1.1.2" - }, - "dependencies": { - "lower-case": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz", - "integrity": "sha512-2Fgx1Ycm599x+WGpIYwJOvsjmXFzTSc34IwDWALRA/8AopUKAVPwfJ+h5+f85BCp0PWmmJcWzEpxOpoXycMpdA==", - "dev": true - }, - "no-case": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/no-case/-/no-case-2.3.2.tgz", - "integrity": "sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ==", - "dev": true, - "requires": { - "lower-case": "^1.1.1" - } - } - } - }, - "serialize-javascript": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", - "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==", - "dev": true, - "requires": { - "randombytes": "^2.1.0" - } - }, "serve-static": { "version": "1.14.2", "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.2.tgz", @@ -30320,12 +22119,6 @@ } } }, - "shallowequal": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/shallowequal/-/shallowequal-1.1.0.tgz", - "integrity": "sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==", - "dev": true - }, "shebang-command": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", @@ -30478,13 +22271,6 @@ } } }, - "spark-md5": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/spark-md5/-/spark-md5-3.0.2.tgz", - "integrity": "sha512-wcFzz9cDfbuqe0FZzfi2or1sgyIrsDwmPwfZC4hiNidPdPINjeUwNfv5kldczoEAcjl9Y1L3SM7Uz2PUEQzxQw==", - "dev": true, - "optional": true - }, "sprintf-js": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", @@ -30609,47 +22395,6 @@ "is-hex-prefixed": "1.0.0" } }, - "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==", - "dev": true - }, - "sublevel-pouchdb": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/sublevel-pouchdb/-/sublevel-pouchdb-7.3.1.tgz", - "integrity": "sha512-n+4fK72F/ORdqPwoGgMGYeOrW2HaPpW9o9k80bT1B3Cim5BSvkKkr9WbWOWynni/GHkbCEdvLVFJL1ktosAdhQ==", - "dev": true, - "optional": true, - "requires": { - "inherits": "2.0.4", - "level-codec": "9.0.2", - "ltgt": "2.2.1", - "readable-stream": "1.1.14" - }, - "dependencies": { - "readable-stream": { - "version": "1.1.14", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", - "integrity": "sha512-+MeVjFf4L44XUkhM1eYbD8fyEsxcV81pqMSR5gblfcLCHfZvbrqy4/qYHE+/R5HoBUT11WV5O08Cr1n3YXkWVQ==", - "dev": true, - "optional": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" - } - }, - "string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==", - "dev": true, - "optional": true - } - } - }, "superstruct": { "version": "0.14.2", "resolved": "https://registry.npmjs.org/superstruct/-/superstruct-0.14.2.tgz", @@ -30691,24 +22436,6 @@ } } }, - "swap-case": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/swap-case/-/swap-case-1.1.2.tgz", - "integrity": "sha512-BAmWG6/bx8syfc6qXPprof3Mn5vQgf5dwdUNJhsNqU9WdPt5P+ES/wQ5bxfijy8zwZgZZHslC3iAsxsuQMCzJQ==", - "dev": true, - "requires": { - "lower-case": "^1.1.1", - "upper-case": "^1.1.1" - }, - "dependencies": { - "lower-case": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz", - "integrity": "sha512-2Fgx1Ycm599x+WGpIYwJOvsjmXFzTSc34IwDWALRA/8AopUKAVPwfJ+h5+f85BCp0PWmmJcWzEpxOpoXycMpdA==", - "dev": true - } - } - }, "swarm-js": { "version": "0.1.42", "resolved": "https://registry.npmjs.org/swarm-js/-/swarm-js-0.1.42.tgz", @@ -30973,40 +22700,6 @@ } } }, - "tiny-typed-emitter": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/tiny-typed-emitter/-/tiny-typed-emitter-2.1.0.tgz", - "integrity": "sha512-qVtvMxeXbVej0cQWKqVSSAHmKZEHAvxdF8HEUBFWts8h+xEo5m/lEiPakuyZ3BnCBjOD8i24kzNOiOLLgsSxhA==", - "dev": true, - "optional": true - }, - "title-case": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/title-case/-/title-case-2.1.1.tgz", - "integrity": "sha512-EkJoZ2O3zdCz3zJsYCsxyq2OC5hrxR9mfdd5I+w8h/tmFfeOxJ+vvkxsKxdmN0WtS9zLdHEgfgVOiMVgv+Po4Q==", - "dev": true, - "requires": { - "no-case": "^2.2.0", - "upper-case": "^1.0.3" - }, - "dependencies": { - "lower-case": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz", - "integrity": "sha512-2Fgx1Ycm599x+WGpIYwJOvsjmXFzTSc34IwDWALRA/8AopUKAVPwfJ+h5+f85BCp0PWmmJcWzEpxOpoXycMpdA==", - "dev": true - }, - "no-case": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/no-case/-/no-case-2.3.2.tgz", - "integrity": "sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ==", - "dev": true, - "requires": { - "lower-case": "^1.1.1" - } - } - } - }, "tmp": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz", @@ -31066,21 +22759,6 @@ "punycode": "^2.1.1" } }, - "truffle": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/truffle/-/truffle-5.7.2.tgz", - "integrity": "sha512-8MlSliw7b6zF1Z89L5CwlI74IyhdNXGQUvjECNGpZEtXZ1jKzFJV/XjpjpvSMZrABG+vLFKwQo6UdTTB5ea+tg==", - "dev": true, - "requires": { - "@truffle/db": "^2.0.11", - "@truffle/db-loader": "^0.2.11", - "@truffle/debugger": "^11.0.22", - "app-module-path": "^2.2.0", - "ganache": "7.6.0", - "mocha": "10.1.0", - "original-require": "^1.0.1" - } - }, "ts-essentials": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/ts-essentials/-/ts-essentials-7.0.3.tgz", @@ -31308,30 +22986,6 @@ "integrity": "sha512-DqQgihaQ9cUrskJo9kIyW/+g0Vxsk8cDtZ52a3NGh0YNTfpUSArXSohyUGnvbPazEPLu398C0UxmKSOrPumUzA==", "dev": true }, - "typescript-compare": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/typescript-compare/-/typescript-compare-0.0.2.tgz", - "integrity": "sha512-8ja4j7pMHkfLJQO2/8tut7ub+J3Lw2S3061eJLFQcvs3tsmJKp8KG5NtpLn7KcY2w08edF74BSVN7qJS0U6oHA==", - "dev": true, - "requires": { - "typescript-logic": "^0.0.0" - } - }, - "typescript-logic": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/typescript-logic/-/typescript-logic-0.0.0.tgz", - "integrity": "sha512-zXFars5LUkI3zP492ls0VskH3TtdeHCqu0i7/duGt60i5IGPIpAHE/DWo5FqJ6EjQ15YKXrt+AETjv60Dat34Q==", - "dev": true - }, - "typescript-tuple": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/typescript-tuple/-/typescript-tuple-2.2.1.tgz", - "integrity": "sha512-Zcr0lbt8z5ZdEzERHAMAniTiIKerFCMgd7yjq1fPnDJ43et/k9twIFQMUYff9k5oXcsQ0WpvFcgzK2ZKASoW6Q==", - "dev": true, - "requires": { - "typescript-compare": "^0.0.2" - } - }, "typical": { "version": "2.6.1", "resolved": "https://registry.npmjs.org/typical/-/typical-2.6.1.tgz", @@ -31374,21 +23028,6 @@ "integrity": "sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==", "optional": true }, - "upper-case": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/upper-case/-/upper-case-1.1.3.tgz", - "integrity": "sha512-WRbjgmYzgXkCV7zNVpy5YgrHgbBv126rMALQQMrmzOVC4GM2waQ9x7xtm8VU+1yF2kWyPzI9zbZ48n4vSxwfSA==", - "dev": true - }, - "upper-case-first": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/upper-case-first/-/upper-case-first-1.1.2.tgz", - "integrity": "sha512-wINKYvI3Db8dtjikdAqoBbZoP6Q+PZUyfMR7pmwHzjC2quzSkUq5DmPrTtPEqHaz8AGtmsB4TqwapMTM1QAQOQ==", - "dev": true, - "requires": { - "upper-case": "^1.1.1" - } - }, "uri-js": { "version": "4.4.1", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", @@ -31466,13 +23105,6 @@ } } }, - "value-or-promise": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/value-or-promise/-/value-or-promise-1.0.11.tgz", - "integrity": "sha512-41BrgH+dIbCFXClcSapVs5M6GkENd3gQOJpEfPDNa71LsUGMXDL0jMWpI/Rh7WhX+Aalfz2TTS3Zt5pUsbnhLg==", - "dev": true, - "optional": true - }, "varint": { "version": "5.0.2", "resolved": "https://registry.npmjs.org/varint/-/varint-5.0.2.tgz", @@ -31513,13 +23145,6 @@ "integrity": "sha512-Uw5ooOQxRASHgu6C7GVvUxisKXfSgW4oFlO+aa+PAkgmH89O3CXxEEzNRNtHSqtXFTl0nAC1uYj0GMSH27uwtQ==", "dev": true }, - "vuvuzela": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/vuvuzela/-/vuvuzela-1.0.3.tgz", - "integrity": "sha512-Tm7jR1xTzBbPW+6y1tknKiEhz04Wf/1iZkcTJjSFcpNko43+dFW6+OOeQe9taJIug3NdfUAjFKgUSyQrIKaDvQ==", - "dev": true, - "optional": true - }, "w3c-hr-time": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz", @@ -32021,12 +23646,6 @@ "integrity": "sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==", "dev": true }, - "workerpool": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.2.1.tgz", - "integrity": "sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw==", - "dev": true - }, "wrap-ansi": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", @@ -32081,25 +23700,6 @@ "typedarray-to-buffer": "^3.1.5" } }, - "write-stream": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/write-stream/-/write-stream-0.4.3.tgz", - "integrity": "sha512-IJrvkhbAnj89W/GAVdVgbnPiVw5Ntg/B4tc/MUCIEwj/g6JIww1DWJyB/yBMT3yw2/TkT6IUZ0+IYef3flEw8A==", - "dev": true, - "optional": true, - "requires": { - "readable-stream": "~0.0.2" - }, - "dependencies": { - "readable-stream": { - "version": "0.0.4", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-0.0.4.tgz", - "integrity": "sha512-azrivNydKRYt7zwLV5wWUK7YzKTWs3q87xSmY6DlHapPrCvaT6ZrukvM5erV+yCSSPmZT8zkSdttOHQpWWm9zw==", - "dev": true, - "optional": true - } - } - }, "ws": { "version": "7.5.9", "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz", @@ -32154,24 +23754,6 @@ "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==", "dev": true }, - "xmlhttprequest": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/xmlhttprequest/-/xmlhttprequest-1.8.0.tgz", - "integrity": "sha512-58Im/U0mlVBLM38NdZjHyhuMtCqa61469k2YP/AaPbvCoV9aQGUpbJBj1QRm2ytRiVQBD/fsw7L2bJGDVQswBA==", - "dev": true, - "optional": true - }, - "xss": { - "version": "1.0.14", - "resolved": "https://registry.npmjs.org/xss/-/xss-1.0.14.tgz", - "integrity": "sha512-og7TEJhXvn1a7kzZGQ7ETjdQVS2UfZyTlsEdDOqvQF7GoxNfY+0YLCzBy1kPdsDDx4QuNAonQPddpsn6Xl/7sw==", - "dev": true, - "optional": true, - "requires": { - "commander": "^2.20.3", - "cssfilter": "0.0.10" - } - }, "xstream": { "version": "11.14.0", "resolved": "https://registry.npmjs.org/xstream/-/xstream-11.14.0.tgz", @@ -32235,32 +23817,6 @@ "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", "devOptional": true }, - "yargs-unparser": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-2.0.0.tgz", - "integrity": "sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==", - "dev": true, - "requires": { - "camelcase": "^6.0.0", - "decamelize": "^4.0.0", - "flat": "^5.0.2", - "is-plain-obj": "^2.1.0" - }, - "dependencies": { - "camelcase": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", - "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", - "dev": true - } - } - }, - "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==", - "dev": true - }, "zen-observable": { "version": "0.8.15", "resolved": "https://registry.npmjs.org/zen-observable/-/zen-observable-0.8.15.tgz", diff --git a/sdk/js/package.json b/sdk/js/package.json index fc62bc3b04..f5f3ffd1d3 100644 --- a/sdk/js/package.json +++ b/sdk/js/package.json @@ -1,6 +1,6 @@ { "name": "@certusone/wormhole-sdk", - "version": "0.10.17", + "version": "0.10.18", "description": "SDK for interacting with Wormhole", "homepage": "https://wormhole.com", "main": "./lib/cjs/index.js", @@ -60,7 +60,6 @@ "ethers": "^5.6.8", "jest": "^27.3.1", "prettier": "^2.3.2", - "truffle": "^5.7.2", "ts-jest": "^27.0.7", "tslint": "^6.1.3", "tslint-config-prettier": "^1.18.0", @@ -87,6 +86,7 @@ "bs58": "^4.0.1", "elliptic": "^6.5.4", "js-base64": "^3.6.1", + "js-sha3": "0.8.0", "near-api-js": "^1.0.0" }, "optionalDependencies": { diff --git a/sdk/js/src/relayer/__tests__/wormhole_relayer.ts b/sdk/js/src/relayer/__tests__/wormhole_relayer.ts index ff5b4fb948..f9218ec2a3 100644 --- a/sdk/js/src/relayer/__tests__/wormhole_relayer.ts +++ b/sdk/js/src/relayer/__tests__/wormhole_relayer.ts @@ -55,7 +55,7 @@ const createTestChain = (name: ChainName) => { if (process.env.DEV) { // Via ir is off -> different wormhole relayer address addressInfo.wormholeRelayerAddress = - "0x53855d4b64E9A3CF59A84bc768adA716B5536BC5"; + "0xcC680D088586c09c3E0E099a676FA4b6e42467b4"; } if (network == "MAINNET") addressInfo.mockIntegrationAddress = diff --git a/sdk/js/src/relayer/consts.ts b/sdk/js/src/relayer/consts.ts index 00904c58ba..502ca1f1fd 100644 --- a/sdk/js/src/relayer/consts.ts +++ b/sdk/js/src/relayer/consts.ts @@ -138,6 +138,12 @@ const MAINNET: { [K in ChainName]?: AddressInfo } = { blast: { wormholeRelayerAddress: "0x27428DD2d3DD32A4D7f7C497eAaa23130d894911", }, + mantle: { + wormholeRelayerAddress: "0x27428DD2d3DD32A4D7f7C497eAaa23130d894911", + }, + xlayer: { + wormholeRelayerAddress: "0x27428DD2d3DD32A4D7f7C497eAaa23130d894911", + }, }; export const RELAYER_CONTRACTS = { MAINNET, TESTNET, DEVNET }; diff --git a/sdk/js/src/utils/consts.ts b/sdk/js/src/utils/consts.ts index 69378b2a30..cd09a8c430 100644 --- a/sdk/js/src/utils/consts.ts +++ b/sdk/js/src/utils/consts.ts @@ -38,6 +38,7 @@ export const CHAINS = { linea: 38, berachain: 39, seievm: 40, + snaxchain: 43, wormchain: 3104, cosmoshub: 4000, evmos: 4001, @@ -89,6 +90,7 @@ export const EVMChainNames = [ "linea", "berachain", "seievm", + "snaxchain", "sepolia", "arbitrum_sepolia", "base_sepolia", @@ -343,6 +345,11 @@ const MAINNET = { token_bridge: undefined, nft_bridge: undefined, }, + snaxchain: { + core: "0xc1BA3CC4bFE724A08FbbFbF64F8db196738665f4", + token_bridge: "0x8B94bfE456B48a6025b92E11Be393BAa86e68410", + nft_bridge: undefined, + }, wormchain: { core: "wormhole1ufs3tlq4umljk0qfe8k5ya0x6hpavn897u2cnf9k0en9jr7qarqqaqfk2j", token_bridge: @@ -489,14 +496,14 @@ const TESTNET = { nft_bridge: "0x63eD9318628D26BdCB15df58B53BB27231D1B227", }, karura: { - core: "0xE4eacc10990ba3308DdCC72d985f2a27D20c7d03", - token_bridge: "0xd11De1f930eA1F7Dd0290Fe3a2e35b9C91AEFb37", - nft_bridge: "0x0A693c2D594292B6Eb89Cb50EFe4B0b63Dd2760D", + core: "0x64fb09E405D2043ed7785a29E296C766D56F2056", + token_bridge: "0xe157115ef34c93145Fec2FE53706846853B07F42", + nft_bridge: undefined, }, acala: { - core: "0x4377B49d559c0a9466477195C6AdC3D433e265c0", - token_bridge: "0xebA00cbe08992EdD08ed7793E07ad6063c807004", - nft_bridge: "0x96f1335e0AcAB3cfd9899B30b2374e25a2148a6E", + core: "0x64fb09E405D2043ed7785a29E296C766D56F2056", + token_bridge: "0xe157115ef34c93145Fec2FE53706846853B07F42", + nft_bridge: undefined, }, klaytn: { core: "0x1830CC6eE66c84D2F177B94D544967c774E624cA", @@ -563,7 +570,7 @@ const TESTNET = { nft_bridge: "0x23908A62110e21C04F3A4e011d24F901F911744A", }, gnosis: { - core: "0xE4eacc10990ba3308DdCC72d985f2a27D20c7d03", + core: "0xBB73cB66C26740F31d1FabDC6b7A46a038A300dd", token_bridge: undefined, nft_bridge: undefined, }, @@ -634,6 +641,11 @@ const TESTNET = { token_bridge: undefined, nft_bridge: undefined, }, + snaxchain: { + core: "0xBB73cB66C26740F31d1FabDC6b7A46a038A300dd", + token_bridge: "0xa10f2eF61dE1f19f586ab8B6F2EbA89bACE63F7a", + nft_bridge: undefined, + }, wormchain: { core: "wormhole16jzpxp0e8550c9aht6q9svcux30vtyyyyxv5w2l2djjra46580wsazcjwp", token_bridge: @@ -918,6 +930,11 @@ const DEVNET = { token_bridge: undefined, nft_bridge: undefined, }, + snaxchain: { + core: undefined, + token_bridge: undefined, + nft_bridge: undefined, + }, wormchain: { core: "wormhole1ghd753shjuwexxywmgs4xz7x2q732vcnkm6h2pyv9s6ah3hylvrqtm7t3h", token_bridge: @@ -1078,6 +1095,7 @@ export const CHAIN_ID_XLAYER = CHAINS["xlayer"]; export const CHAIN_ID_LINEA = CHAINS["linea"]; export const CHAIN_ID_BERACHAIN = CHAINS["berachain"]; export const CHAIN_ID_SEIEVM = CHAINS["seievm"]; +export const CHAIN_ID_SNAXCHAIN = CHAINS["snaxchain"]; export const CHAIN_ID_WORMCHAIN = CHAINS["wormchain"]; export const CHAIN_ID_GATEWAY = CHAIN_ID_WORMCHAIN; export const CHAIN_ID_COSMOSHUB = CHAINS["cosmoshub"]; diff --git a/sdk/mainnet_consts.go b/sdk/mainnet_consts.go index c6514ff05c..3afca58c6e 100644 --- a/sdk/mainnet_consts.go +++ b/sdk/mainnet_consts.go @@ -122,6 +122,7 @@ var knownTokenbridgeEmitters = map[vaa.ChainID]string{ vaa.ChainIDMantle: "00000000000000000000000024850c6f61C438823F01B7A3BF2B89B72174Fa9d", vaa.ChainIDBlast: "00000000000000000000000024850c6f61C438823F01B7A3BF2B89B72174Fa9d", vaa.ChainIDXLayer: "0000000000000000000000005537857664B0f9eFe38C9f320F75fEf23234D904", + vaa.ChainIDSnaxchain: "0000000000000000000000008B94bfE456B48a6025b92E11Be393BAa86e68410", vaa.ChainIDInjective: "00000000000000000000000045dbea4617971d93188eda21530bc6503d153313", vaa.ChainIDSui: "ccceeb29348f71bdd22ffef43a2a19c1f5b5e17c5cca5411529120182672ade5", vaa.ChainIDSei: "86c5fd957e2db8389553e1728f9c27964b22a8154091ccba54d75f4b10c61f5e", @@ -187,4 +188,7 @@ var KnownAutomaticRelayerEmitters = []struct { {ChainId: vaa.ChainIDBase, Addr: "000000000000000000000000706f82e9bb5b0813501714ab5974216704980e31"}, {ChainId: vaa.ChainIDScroll, Addr: "00000000000000000000000027428DD2d3DD32A4D7f7C497eAaa23130d894911"}, {ChainId: vaa.ChainIDBlast, Addr: "00000000000000000000000027428DD2d3DD32A4D7f7C497eAaa23130d894911"}, + {ChainId: vaa.ChainIDMantle, Addr: "00000000000000000000000027428dd2d3dd32a4d7f7c497eaaa23130d894911"}, + {ChainId: vaa.ChainIDXLayer, Addr: "00000000000000000000000027428dd2d3dd32a4d7f7c497eaaa23130d894911"}, + {ChainId: vaa.ChainIDSnaxchain, Addr: "00000000000000000000000027428DD2d3DD32A4D7f7C497eAaa23130d894911"}, } diff --git a/sdk/testnet_consts.go b/sdk/testnet_consts.go index df8d8b9308..960554ad6c 100644 --- a/sdk/testnet_consts.go +++ b/sdk/testnet_consts.go @@ -20,8 +20,8 @@ var knownTestnetTokenbridgeEmitters = map[vaa.ChainID]string{ vaa.ChainIDAptos: "0000000000000000000000000000000000000000000000000000000000000001", vaa.ChainIDAurora: "000000000000000000000000d05ed3ad637b890d68a854d607eeaf11af456fba", vaa.ChainIDFantom: "000000000000000000000000599cea2204b4faecd584ab1f2b6aca137a0afbe8", - vaa.ChainIDKarura: "000000000000000000000000d11de1f930ea1f7dd0290fe3a2e35b9c91aefb37", - vaa.ChainIDAcala: "000000000000000000000000eba00cbe08992edd08ed7793e07ad6063c807004", + vaa.ChainIDKarura: "000000000000000000000000e157115ef34c93145Fec2FE53706846853B07F42", + vaa.ChainIDAcala: "000000000000000000000000e157115ef34c93145Fec2FE53706846853B07F42", vaa.ChainIDKlaytn: "000000000000000000000000c7a13be098720840dea132d860fdfa030884b09a", vaa.ChainIDCelo: "00000000000000000000000005ca6037ec51f8b712ed2e6fa72219feae74e153", vaa.ChainIDNear: "c2c0b6ecbbe9ecf91b2b7999f0264018ba68126c2e83bf413f59f712f3a1df55", @@ -39,6 +39,7 @@ var knownTestnetTokenbridgeEmitters = map[vaa.ChainID]string{ vaa.ChainIDXLayer: "000000000000000000000000dA91a06299BBF302091B053c6B9EF86Eff0f930D", vaa.ChainIDLinea: "000000000000000000000000C7A204bDBFe983FCD8d8E61D02b475D4073fF97e", vaa.ChainIDBerachain: "000000000000000000000000a10f2eF61dE1f19f586ab8B6F2EbA89bACE63F7a", + vaa.ChainIDSnaxchain: "000000000000000000000000a10f2eF61dE1f19f586ab8B6F2EbA89bACE63F7a", vaa.ChainIDSepolia: "000000000000000000000000DB5492265f6038831E89f495670FF909aDe94bd9", vaa.ChainIDHolesky: "00000000000000000000000076d093BbaE4529a342080546cAFEec4AcbA59EC6", vaa.ChainIDArbitrumSepolia: "000000000000000000000000C7A204bDBFe983FCD8d8E61D02b475D4073fF97e", @@ -59,8 +60,6 @@ var knownTestnetNFTBridgeEmitters = map[vaa.ChainID]string{ vaa.ChainIDOasis: "000000000000000000000000c5c25b41ab0b797571620f5204afa116a44c0eba", vaa.ChainIDAurora: "0000000000000000000000008f399607e9ba2405d87f5f3e1b78d950b44b2e24", vaa.ChainIDFantom: "00000000000000000000000063ed9318628d26bdcb15df58b53bb27231d1b227", - vaa.ChainIDKarura: "0000000000000000000000000a693c2d594292b6eb89cb50efe4b0b63dd2760d", - vaa.ChainIDAcala: "00000000000000000000000096f1335e0acab3cfd9899b30b2374e25a2148a6e", vaa.ChainIDKlaytn: "00000000000000000000000094c994fc51c13101062958b567e743f1a04432de", vaa.ChainIDCelo: "000000000000000000000000acd8190f647a31e56a656748bc30f69259f245db", vaa.ChainIDMoonbeam: "00000000000000000000000098a0f4b96972b32fcb3bd03caeb66a44a6ab9edb", diff --git a/sdk/vaa/structs.go b/sdk/vaa/structs.go index a1d797a337..8c9ae5c633 100644 --- a/sdk/vaa/structs.go +++ b/sdk/vaa/structs.go @@ -209,6 +209,8 @@ func (c ChainID) String() string { return "berachain" case ChainIDSeiEVM: return "seievm" + case ChainIDSnaxchain: + return "snaxchain" case ChainIDCosmoshub: return "cosmoshub" case ChainIDEvmos: @@ -322,6 +324,8 @@ func ChainIDFromString(s string) (ChainID, error) { return ChainIDLinea, nil case "berachain": return ChainIDBerachain, nil + case "snaxchain": + return ChainIDSnaxchain, nil case "cosmoshub": return ChainIDCosmoshub, nil case "seievm": @@ -397,6 +401,7 @@ func GetAllNetworkIDs() []ChainID { ChainIDXLayer, ChainIDLinea, ChainIDBerachain, + ChainIDSnaxchain, ChainIDWormchain, ChainIDCosmoshub, ChainIDEvmos, @@ -493,6 +498,8 @@ const ( ChainIDBerachain ChainID = 39 // ChainIDSeiEVM is the ChainID of SeiEVM ChainIDSeiEVM ChainID = 40 + // ChainIDSnaxchain is the ChainID of Snaxchain + ChainIDSnaxchain ChainID = 43 //ChainIDWormchain is the ChainID of Wormchain ChainIDWormchain ChainID = 3104 // ChainIDCosmoshub is the ChainID of Cosmoshub diff --git a/sdk/vaa/structs_test.go b/sdk/vaa/structs_test.go index bd8106ad6e..09fc9fe186 100644 --- a/sdk/vaa/structs_test.go +++ b/sdk/vaa/structs_test.go @@ -65,6 +65,7 @@ func TestChainIDFromString(t *testing.T) { {input: "xlayer", output: ChainIDXLayer}, {input: "linea", output: ChainIDLinea}, {input: "berachain", output: ChainIDBerachain}, + {input: "snaxchain", output: ChainIDSnaxchain}, {input: "seievm", output: ChainIDSeiEVM}, {input: "wormchain", output: ChainIDWormchain}, {input: "cosmoshub", output: ChainIDCosmoshub}, @@ -119,6 +120,7 @@ func TestChainIDFromString(t *testing.T) { {input: "XLayer", output: ChainIDXLayer}, {input: "Linea", output: ChainIDLinea}, {input: "Berachain", output: ChainIDBerachain}, + {input: "Snaxchain", output: ChainIDSnaxchain}, {input: "SeiEVM", output: ChainIDSeiEVM}, {input: "Wormchain", output: ChainIDWormchain}, {input: "Cosmoshub", output: ChainIDCosmoshub}, @@ -314,6 +316,7 @@ func TestChainId_String(t *testing.T) { {input: 38, output: "linea"}, {input: 39, output: "berachain"}, {input: 40, output: "seievm"}, + {input: 43, output: "snaxchain"}, {input: 3104, output: "wormchain"}, {input: 4000, output: "cosmoshub"}, {input: 4001, output: "evmos"}, diff --git a/whitepapers/0007_governor.md b/whitepapers/0007_governor.md index ca1bffb61c..a586bbe908 100644 --- a/whitepapers/0007_governor.md +++ b/whitepapers/0007_governor.md @@ -104,7 +104,7 @@ In this design, there are three mechanisms for enqueued messages to be published ## Operational Considerations ### Extending the release time to have more time to investigate -Guardian operators can use the `ChainGovernorResetReleaseTimer` admin RPC or `governor-reset-release-timer [VAA_ID]` admin command to reset the delay to 24h. +Guardian operators can use the `ChainGovernorResetReleaseTimer` admin RPC or the `governor-reset-release-timer [VAA_ID] ` admin command to reset the delay to the specified amount of days (`num_days`), up to 7 days. Omitting the argument defaults to 1 day. ### Dropping messages from the Governor Guardian operators can use the `ChainGovernorDropPendingVAA` admin RPC or `governor-drop-pending-vaa [VAA_ID]` admin command to remove a VAA from the Governor queue. Note that in most cases this should be done in conjunction with disconnecting a chain or block-listing certain messages because otherwise the message may just get re-observed through automatic observation requests. diff --git a/wormchain/contracts/tools/__tests__/test_ntt_accountant.ts b/wormchain/contracts/tools/__tests__/test_ntt_accountant.ts index 30ba217a9d..0b8c0907bc 100644 --- a/wormchain/contracts/tools/__tests__/test_ntt_accountant.ts +++ b/wormchain/contracts/tools/__tests__/test_ntt_accountant.ts @@ -125,10 +125,10 @@ const UNKNOWN_SPOKE_TRANSCEIVER = "beeffacebeeffacebeeffacebeeffacebeeffacebeeffacebeeffacebeefface"; const RELAYER_ADDRESS = ci ? "0xb98F46E96cb1F519C333FdFB5CCe0B13E0300ED4" - : "0x53855d4b64E9A3CF59A84bc768adA716B5536BC5"; + : "0xcC680D088586c09c3E0E099a676FA4b6e42467b4"; const RELAYER_EMITTER = ci ? "000000000000000000000000b98F46E96cb1F519C333FdFB5CCe0B13E0300ED4" - : "00000000000000000000000053855d4b64e9a3cf59a84bc768ada716b5536bc5"; + : "000000000000000000000000cc680d088586c09c3e0e099a676fa4b6e42467b4"; const dummy32 = `0000000000000000000000000000000000000000000000000000000000001234`; const host = ci diff --git a/wormchain/contracts/tools/deploy_wormchain.ts b/wormchain/contracts/tools/deploy_wormchain.ts index 3108d44532..cc1273be93 100644 --- a/wormchain/contracts/tools/deploy_wormchain.ts +++ b/wormchain/contracts/tools/deploy_wormchain.ts @@ -393,6 +393,16 @@ async function main() { address: "wormhole18s5lynnmx37hq4wlrw9gdn68sg2uxp5rwf5k3u", name: "nttAccountantTest", }), + client.core.msgCreateAllowlistEntryRequest({ + signer: signer, + address: "wormhole1h6v7cku5w803pf563czepx5s32vrzz5cntj9k4", + name: "guardianAccountant0", + }), + client.core.msgCreateAllowlistEntryRequest({ + signer: signer, + address: "wormhole1g25zz7gyuyh6chuejc3ppfemgfla4xpsm69lzq", + name: "guardianAccountant1", + }), ], { ...ZERO_FEE, @@ -470,6 +480,8 @@ async function main() { process.env.REGISTER_NEAR_TOKEN_BRIDGE_VAA, // APTOS process.env.REGISTER_APTOS_TOKEN_BRIDGE_VAA, + // Sui + process.env.REGISTER_SUI_TOKEN_BRIDGE_VAA, ], }; diff --git a/wormchain/devnet/base/config/genesis.json b/wormchain/devnet/base/config/genesis.json index 9c07f339c9..4e4413dda3 100644 --- a/wormchain/devnet/base/config/genesis.json +++ b/wormchain/devnet/base/config/genesis.json @@ -84,6 +84,20 @@ "pub_key": null, "account_number": "0", "sequence": "0" + }, + { + "@type": "/cosmos.auth.v1beta1.BaseAccount", + "address": "wormhole1h6v7cku5w803pf563czepx5s32vrzz5cntj9k4", + "pub_key": null, + "account_number": "0", + "sequence": "0" + }, + { + "@type": "/cosmos.auth.v1beta1.BaseAccount", + "address": "wormhole1g25zz7gyuyh6chuejc3ppfemgfla4xpsm69lzq", + "pub_key": null, + "account_number": "0", + "sequence": "0" } ] }, @@ -196,6 +210,32 @@ "amount": "200000000" } ] + }, + { + "address": "wormhole1h6v7cku5w803pf563czepx5s32vrzz5cntj9k4", + "coins": [ + { + "denom": "utest", + "amount": "100000000000" + }, + { + "denom": "uworm", + "amount": "200000000" + } + ] + }, + { + "address": "wormhole1g25zz7gyuyh6chuejc3ppfemgfla4xpsm69lzq", + "coins": [ + { + "denom": "utest", + "amount": "100000000000" + }, + { + "denom": "uworm", + "amount": "200000000" + } + ] } ], "supply": [], diff --git a/wormchain/interchaintest/cancel_upgrade_test.go b/wormchain/interchaintest/cancel_upgrade_test.go new file mode 100644 index 0000000000..99c486863f --- /dev/null +++ b/wormchain/interchaintest/cancel_upgrade_test.go @@ -0,0 +1,59 @@ +package ictest + +import ( + "context" + "fmt" + "testing" + "time" + + "github.com/strangelove-ventures/interchaintest/v4/chain/cosmos" + "github.com/strangelove-ventures/interchaintest/v4/testutil" + "github.com/stretchr/testify/require" + + "github.com/wormhole-foundation/wormchain/interchaintest/guardians" + "github.com/wormhole-foundation/wormchain/interchaintest/helpers" +) + +// TestCancelUpgrade will start on wormchain v2.18.1.1, schedule an upgrade to v2.23.0, cancel the upgrade, +// and verify that block production does not stop at the cancelled scheduled upgrade height. +func TestCancelUpgrade(t *testing.T) { + // Base setup + numVals := 2 + guardians := guardians.CreateValSet(t, numVals) + chains := CreateChains(t, "v2.18.1.1", *guardians) + ctx, _, _, _ := BuildInterchain(t, chains) + + // Chains + wormchain := chains[0].(*cosmos.CosmosChain) + + // Set up upgrade + blocksAfterUpgrade := uint64(10) + height, err := wormchain.Height(ctx) + require.NoError(t, err, "error fetching height before upgrade") + fmt.Println("Height at sending schedule upgrade: ", height) + + haltHeight := height + blocksAfterUpgrade + fmt.Println("Height for scheduled upgrade: ", haltHeight) + + // Schedule upgrade + helpers.ScheduleUpgrade(t, ctx, wormchain, "faucet", "v2.23.0", haltHeight, guardians) + + // Cancel upgrade + testutil.WaitForBlocks(ctx, 2, wormchain) + helpers.CancelUpgrade(t, ctx, wormchain, "faucet", guardians) + + timeoutCtx3, timeoutCtxCancel3 := context.WithTimeout(ctx, time.Second*45) + defer timeoutCtxCancel3() + + // Wait for chain to reach/exceed originally scheduled upgrade height + // If it times-out, the cancel upgrade did not work and the chain will have halted at the scheduled upgrade height + // If it does not timeout, it will be one block after the originally scheduled upgrade height + testutil.WaitForBlocks(timeoutCtx3, int(blocksAfterUpgrade), wormchain) + + height, err = wormchain.Height(ctx) + require.NoError(t, err, "error fetching height after chain should have halted") + + // Ensure that the chain continued making blocks passed the upgrade height + require.NotEqual(t, haltHeight, height, "height is equal to halt height, it shouldn't be") + fmt.Println("***** Cancel upgrade test passed ******") +} diff --git a/wormchain/interchaintest/contracts/cw20_wrapped_2.wasm b/wormchain/interchaintest/contracts/cw20_wrapped_2.wasm new file mode 100644 index 0000000000000000000000000000000000000000..1fec316864fd76e5f8e802e7e00657b952644cc4 GIT binary patch literal 242883 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%0A+NAJgdXPgvcA=!W4r_I%-+vM=anMJ3Ir%b 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 literal 0 HcmV?d00001 diff --git a/wormchain/interchaintest/contracts/ibc_hooks.wasm b/wormchain/interchaintest/contracts/ibc_hooks.wasm new file mode 100644 index 0000000000000000000000000000000000000000..d4f5243dbb1d92b5dd8f450534f3a888688de329 GIT binary patch literal 377791 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 J=$+2o{{;tLk7xh@ literal 0 HcmV?d00001 diff --git a/wormchain/interchaintest/contracts/ibc_hooks/.cargo/config b/wormchain/interchaintest/contracts/ibc_hooks/.cargo/config new file mode 100644 index 0000000000..2d5cce4ea5 --- /dev/null +++ b/wormchain/interchaintest/contracts/ibc_hooks/.cargo/config @@ -0,0 +1,5 @@ +[alias] +wasm = "build --release --target wasm32-unknown-unknown" +wasm-debug = "build --target wasm32-unknown-unknown" +unit-test = "test --lib --features backtraces" +integration-test = "test --test integration" \ No newline at end of file diff --git a/wormchain/interchaintest/contracts/ibc_hooks/Cargo.lock b/wormchain/interchaintest/contracts/ibc_hooks/Cargo.lock new file mode 100644 index 0000000000..1fc1401d4a --- /dev/null +++ b/wormchain/interchaintest/contracts/ibc_hooks/Cargo.lock @@ -0,0 +1,690 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 3 + +[[package]] +name = "ahash" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fcb51a0695d8f838b1ee009b3fbf66bda078cd64590202a864a8f3e8c4315c47" +dependencies = [ + "getrandom", + "once_cell", + "version_check", +] + +[[package]] +name = "anyhow" +version = "1.0.71" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c7d0618f0e0b7e8ff11427422b64564d5fb0be1940354bfe2e0529b18a9d9b8" + +[[package]] +name = "base16ct" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "349a06037c7bf932dd7e7d1f653678b2038b9ad46a74102f1fc7bd7872678cce" + +[[package]] +name = "base64" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" + +[[package]] +name = "base64ct" +version = "1.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8c3c1a368f70d6cf7302d78f8f7093da241fb8e8807c05cc9e51a125895a6d5b" + +[[package]] +name = "block-buffer" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4152116fd6e9dadb291ae18fc1ec3575ed6d84c29642d97890f4b4a3417297e4" +dependencies = [ + "generic-array", +] + +[[package]] +name = "block-buffer" +version = "0.10.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" +dependencies = [ + "generic-array", +] + +[[package]] +name = "byteorder" +version = "1.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610" + +[[package]] +name = "cfg-if" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" + +[[package]] +name = "const-oid" +version = "0.9.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "520fbf3c07483f94e3e3ca9d0cfd913d7718ef2483d2cfd91c0d9e91474ab913" + +[[package]] +name = "cosmwasm-crypto" +version = "1.2.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bb64554a91d6a9231127f4355d351130a0b94e663d5d9dc8b3a54ca17d83de49" +dependencies = [ + "digest 0.10.7", + "ed25519-zebra", + "k256", + "rand_core 0.6.4", + "thiserror", +] + +[[package]] +name = "cosmwasm-derive" +version = "1.2.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a0fb2ce09f41a3dae1a234d56a9988f9aff4c76441cd50ef1ee9a4f20415b028" +dependencies = [ + "syn 1.0.109", +] + +[[package]] +name = "cosmwasm-schema" +version = "1.2.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "230e5d1cefae5331db8934763c81b9c871db6a2cd899056a5694fa71d292c815" +dependencies = [ + "cosmwasm-schema-derive", + "schemars", + "serde", + "serde_json", + "thiserror", +] + +[[package]] +name = "cosmwasm-schema-derive" +version = "1.2.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43dadf7c23406cb28079d69e6cb922c9c29b9157b0fe887e3b79c783b7d4bcb8" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "cosmwasm-std" +version = "1.2.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4337eef8dfaf8572fe6b6b415d6ec25f9308c7bb09f2da63789209fb131363be" +dependencies = [ + "base64", + "cosmwasm-crypto", + "cosmwasm-derive", + "derivative", + "forward_ref", + "hex", + "schemars", + "serde", + "serde-json-wasm", + "sha2 0.10.7", + "thiserror", + "uint", +] + +[[package]] +name = "cpufeatures" +version = "0.2.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "03e69e28e9f7f77debdedbaafa2866e1de9ba56df55a8bd7cfc724c25a09987c" +dependencies = [ + "libc", +] + +[[package]] +name = "crunchy" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7" + +[[package]] +name = "crypto-bigint" +version = "0.4.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef2b4b23cddf68b89b8f8069890e8c270d54e2d5fe1b143820234805e4cb17ef" +dependencies = [ + "generic-array", + "rand_core 0.6.4", + "subtle", + "zeroize", +] + +[[package]] +name = "crypto-common" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" +dependencies = [ + "generic-array", + "typenum", +] + +[[package]] +name = "curve25519-dalek" +version = "3.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b9fdf9972b2bd6af2d913799d9ebc165ea4d2e65878e329d9c6b372c4491b61" +dependencies = [ + "byteorder", + "digest 0.9.0", + "rand_core 0.5.1", + "subtle", + "zeroize", +] + +[[package]] +name = "der" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1a467a65c5e759bce6e65eaf91cc29f466cdc57cb65777bd646872a8a1fd4de" +dependencies = [ + "const-oid", + "zeroize", +] + +[[package]] +name = "derivative" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "digest" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3dd60d1080a57a05ab032377049e0591415d2b31afd7028356dbf3cc6dcb066" +dependencies = [ + "generic-array", +] + +[[package]] +name = "digest" +version = "0.10.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" +dependencies = [ + "block-buffer 0.10.4", + "crypto-common", + "subtle", +] + +[[package]] +name = "dyn-clone" +version = "1.0.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68b0cf012f1230e43cd00ebb729c6bb58707ecfa8ad08b52ef3a4ccd2697fc30" + +[[package]] +name = "ecdsa" +version = "0.14.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "413301934810f597c1d19ca71c8710e99a3f1ba28a0d2ebc01551a2daeea3c5c" +dependencies = [ + "der", + "elliptic-curve", + "rfc6979", + "signature", +] + +[[package]] +name = "ed25519-zebra" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7c24f403d068ad0b359e577a77f92392118be3f3c927538f2bb544a5ecd828c6" +dependencies = [ + "curve25519-dalek", + "hashbrown", + "hex", + "rand_core 0.6.4", + "serde", + "sha2 0.9.9", + "zeroize", +] + +[[package]] +name = "elliptic-curve" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e7bb888ab5300a19b8e5bceef25ac745ad065f3c9f7efc6de1b91958110891d3" +dependencies = [ + "base16ct", + "crypto-bigint", + "der", + "digest 0.10.7", + "ff", + "generic-array", + "group", + "pkcs8", + "rand_core 0.6.4", + "sec1", + "subtle", + "zeroize", +] + +[[package]] +name = "ff" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d013fc25338cc558c5c2cfbad646908fb23591e2404481826742b651c9af7160" +dependencies = [ + "rand_core 0.6.4", + "subtle", +] + +[[package]] +name = "forward_ref" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8cbd1169bd7b4a0a20d92b9af7a7e0422888bd38a6f5ec29c1fd8c1558a272e" + +[[package]] +name = "generic-array" +version = "0.14.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" +dependencies = [ + "typenum", + "version_check", +] + +[[package]] +name = "getrandom" +version = "0.2.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "be4136b2a15dd319360be1c07d9933517ccf0be8f16bf62a3bee4f0d618df427" +dependencies = [ + "cfg-if", + "libc", + "wasi", +] + +[[package]] +name = "group" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5dfbfb3a6cfbd390d5c9564ab283a0349b9b9fcd46a706c1eb10e0db70bfbac7" +dependencies = [ + "ff", + "rand_core 0.6.4", + "subtle", +] + +[[package]] +name = "hashbrown" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" +dependencies = [ + "ahash", +] + +[[package]] +name = "hex" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" + +[[package]] +name = "hmac" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e" +dependencies = [ + "digest 0.10.7", +] + +[[package]] +name = "ibc-hooks" +version = "0.1.0" +dependencies = [ + "anyhow", + "cosmwasm-schema", + "cosmwasm-std", +] + +[[package]] +name = "itoa" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "453ad9f582a441959e5f0d088b02ce04cfe8d51a8eaf077f12ac6d3e94164ca6" + +[[package]] +name = "k256" +version = "0.11.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72c1e0b51e7ec0a97369623508396067a486bd0cbed95a2659a4b863d28cfc8b" +dependencies = [ + "cfg-if", + "ecdsa", + "elliptic-curve", + "sha2 0.10.7", +] + +[[package]] +name = "libc" +version = "0.2.147" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b4668fb0ea861c1df094127ac5f1da3409a82116a4ba74fca2e58ef927159bb3" + +[[package]] +name = "once_cell" +version = "1.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d" + +[[package]] +name = "opaque-debug" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5" + +[[package]] +name = "pkcs8" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9eca2c590a5f85da82668fa685c09ce2888b9430e83299debf1f34b65fd4a4ba" +dependencies = [ + "der", + "spki", +] + +[[package]] +name = "proc-macro2" +version = "1.0.63" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7b368fba921b0dce7e60f5e04ec15e565b3303972b42bcfde1d0713b881959eb" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "quote" +version = "1.0.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b9ab9c7eadfd8df19006f1cf1a4aed13540ed5cbc047010ece5826e10825488" +dependencies = [ + "proc-macro2", +] + +[[package]] +name = "rand_core" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19" + +[[package]] +name = "rand_core" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" +dependencies = [ + "getrandom", +] + +[[package]] +name = "rfc6979" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7743f17af12fa0b03b803ba12cd6a8d9483a587e89c69445e3909655c0b9fabb" +dependencies = [ + "crypto-bigint", + "hmac", + "zeroize", +] + +[[package]] +name = "ryu" +version = "1.0.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f91339c0467de62360649f8d3e185ca8de4224ff281f66000de5eb2a77a79041" + +[[package]] +name = "schemars" +version = "0.8.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "02c613288622e5f0c3fdc5dbd4db1c5fbe752746b1d1a56a0630b78fd00de44f" +dependencies = [ + "dyn-clone", + "schemars_derive", + "serde", + "serde_json", +] + +[[package]] +name = "schemars_derive" +version = "0.8.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "109da1e6b197438deb6db99952990c7f959572794b80ff93707d55a232545e7c" +dependencies = [ + "proc-macro2", + "quote", + "serde_derive_internals", + "syn 1.0.109", +] + +[[package]] +name = "sec1" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3be24c1842290c45df0a7bf069e0c268a747ad05a192f2fd7dcfdbc1cba40928" +dependencies = [ + "base16ct", + "der", + "generic-array", + "pkcs8", + "subtle", + "zeroize", +] + +[[package]] +name = "serde" +version = "1.0.164" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e8c8cf938e98f769bc164923b06dce91cea1751522f46f8466461af04c9027d" +dependencies = [ + "serde_derive", +] + +[[package]] +name = "serde-json-wasm" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "16a62a1fad1e1828b24acac8f2b468971dade7b8c3c2e672bcadefefb1f8c137" +dependencies = [ + "serde", +] + +[[package]] +name = "serde_derive" +version = "1.0.164" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d9735b638ccc51c28bf6914d90a2e9725b377144fc612c49a611fddd1b631d68" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.22", +] + +[[package]] +name = "serde_derive_internals" +version = "0.26.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85bf8229e7920a9f636479437026331ce11aa132b4dde37d121944a44d6e5f3c" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "serde_json" +version = "1.0.99" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "46266871c240a00b8f503b877622fe33430b3c7d963bdc0f2adc511e54a1eae3" +dependencies = [ + "itoa", + "ryu", + "serde", +] + +[[package]] +name = "sha2" +version = "0.9.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4d58a1e1bf39749807d89cf2d98ac2dfa0ff1cb3faa38fbb64dd88ac8013d800" +dependencies = [ + "block-buffer 0.9.0", + "cfg-if", + "cpufeatures", + "digest 0.9.0", + "opaque-debug", +] + +[[package]] +name = "sha2" +version = "0.10.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "479fb9d862239e610720565ca91403019f2f00410f1864c5aa7479b950a76ed8" +dependencies = [ + "cfg-if", + "cpufeatures", + "digest 0.10.7", +] + +[[package]] +name = "signature" +version = "1.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "74233d3b3b2f6d4b006dc19dee745e73e2a6bfb6f93607cd3b02bd5b00797d7c" +dependencies = [ + "digest 0.10.7", + "rand_core 0.6.4", +] + +[[package]] +name = "spki" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67cf02bbac7a337dc36e4f5a693db6c21e7863f45070f7064577eb4367a3212b" +dependencies = [ + "base64ct", + "der", +] + +[[package]] +name = "static_assertions" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" + +[[package]] +name = "subtle" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "81cdd64d312baedb58e21336b31bc043b77e01cc99033ce76ef539f78e965ebc" + +[[package]] +name = "syn" +version = "1.0.109" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "syn" +version = "2.0.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2efbeae7acf4eabd6bcdcbd11c92f45231ddda7539edc7806bd1a04a03b24616" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "thiserror" +version = "1.0.40" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "978c9a314bd8dc99be594bc3c175faaa9794be04a5a5e153caba6915336cebac" +dependencies = [ + "thiserror-impl", +] + +[[package]] +name = "thiserror-impl" +version = "1.0.40" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9456a42c5b0d803c8cd86e73dd7cc9edd429499f37a3550d286d5e86720569f" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.22", +] + +[[package]] +name = "typenum" +version = "1.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "497961ef93d974e23eb6f433eb5fe1b7930b659f06d12dec6fc44a8f554c0bba" + +[[package]] +name = "uint" +version = "0.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "76f64bba2c53b04fcab63c01a7d7427eadc821e3bc48c34dc9ba29c501164b52" +dependencies = [ + "byteorder", + "crunchy", + "hex", + "static_assertions", +] + +[[package]] +name = "unicode-ident" +version = "1.0.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b15811caf2415fb889178633e7724bad2509101cde276048e013b9def5e51fa0" + +[[package]] +name = "version_check" +version = "0.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" + +[[package]] +name = "wasi" +version = "0.11.0+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" + +[[package]] +name = "zeroize" +version = "1.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2a0956f1ba7c7909bfb66c2e9e4124ab6f6482560f6628b5aaeba39207c9aad9" diff --git a/wormchain/interchaintest/contracts/ibc_hooks/Cargo.toml b/wormchain/interchaintest/contracts/ibc_hooks/Cargo.toml new file mode 100644 index 0000000000..75b98de1ca --- /dev/null +++ b/wormchain/interchaintest/contracts/ibc_hooks/Cargo.toml @@ -0,0 +1,37 @@ +[package] +name = "ibc-hooks" +version = "0.1.0" +authors = ["Wormhole Project Contributors"] +edition = "2021" + +[lib] +crate-type = ["cdylib", "rlib"] + +[profile.release] +opt-level = 0 +debug = true +rpath = false +lto = false +debug-assertions = false +codegen-units = 1 +panic = 'abort' +incremental = false +overflow-checks = true + +[features] +# for more explicit tests, cargo test --features=backtraces +backtraces = ["cosmwasm-std/backtraces"] +# use library feature to disable all instantiate/execute/query/reply exports +library = [] + +[package.metadata.scripts] +optimize = """docker run --rm -v "$(pwd)":/code \ + --mount type=volume,source="$(basename "$(pwd)")_cache",target=/code/target \ + --mount type=volume,source=registry_cache,target=/usr/local/cargo/registry \ + cosmwasm/rust-optimizer:0.12.6 +""" + +[dependencies] +cosmwasm-std = {version="1.2.7", features = ["ibc3"] } +cosmwasm-schema = "1.2.7" +anyhow = "1" \ No newline at end of file diff --git a/wormchain/interchaintest/contracts/ibc_hooks/src/contract.rs b/wormchain/interchaintest/contracts/ibc_hooks/src/contract.rs new file mode 100644 index 0000000000..0523641776 --- /dev/null +++ b/wormchain/interchaintest/contracts/ibc_hooks/src/contract.rs @@ -0,0 +1,54 @@ +#[cfg(not(feature = "library"))] +use cosmwasm_std::entry_point; + +use anyhow::{Context, ensure}; +use cosmwasm_std::{ + BankMsg, CosmosMsg, DepsMut, Empty, Env, MessageInfo, Response, +}; + +use crate::{ + msg::{ExecuteMsg, InstantiateMsg}, +}; + +#[cfg_attr(not(feature = "library"), entry_point)] +pub fn instantiate( + _deps: DepsMut, + _env: Env, + _info: MessageInfo, + _msg: InstantiateMsg, +) -> Result { + Ok(Response::new()) +} + +#[cfg_attr(not(feature = "library"), entry_point)] +pub fn migrate(_deps: DepsMut, _env: Env, _msg: Empty) -> Result { + Ok(Response::default()) +} + +#[cfg_attr(not(feature = "library"), entry_point)] +pub fn execute( + _deps: DepsMut, + _env: Env, + info: MessageInfo, + msg: ExecuteMsg, +) -> Result { + match msg { + ExecuteMsg::ForwardTokens { recipient } => { + // bank tokens sent to the contract will be in info.funds + ensure!( + info.funds.len() == 1, + "info.funds should contain only 1 coin" + ); + + // batch calls together + let mut response: Response = Response::new(); + response = response.add_message(BankMsg::Send { + to_address: recipient, + amount: info.funds, + //amount: vec![amount], + }); + + Ok(response) + }, + } +} diff --git a/wormchain/interchaintest/contracts/ibc_hooks/src/lib.rs b/wormchain/interchaintest/contracts/ibc_hooks/src/lib.rs new file mode 100644 index 0000000000..1041aa717e --- /dev/null +++ b/wormchain/interchaintest/contracts/ibc_hooks/src/lib.rs @@ -0,0 +1,2 @@ +pub mod contract; +pub mod msg; \ No newline at end of file diff --git a/wormchain/interchaintest/contracts/ibc_hooks/src/msg.rs b/wormchain/interchaintest/contracts/ibc_hooks/src/msg.rs new file mode 100644 index 0000000000..cb57101fec --- /dev/null +++ b/wormchain/interchaintest/contracts/ibc_hooks/src/msg.rs @@ -0,0 +1,11 @@ +use cosmwasm_schema::cw_serde; + +#[cw_serde] +pub struct InstantiateMsg {} + +#[cw_serde] +pub enum ExecuteMsg { + ForwardTokens { + recipient: String, + }, +} diff --git a/wormchain/interchaintest/contracts/ibc_translator.wasm b/wormchain/interchaintest/contracts/ibc_translator.wasm new file mode 100644 index 0000000000000000000000000000000000000000..64590b4b2ad481fa67fb57176ba3ab87f48c5d69 GIT binary patch literal 309318 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

Pvxn;=We+#} zW21)L!d5(v5bUs@sRC)*WE&%e$hP`0frhav5)T7^Ost9P zqq@%jgmjY?-Es{MCQ+GBRVEj>871S!_6e;$KZVf7^_eLWy>p#6!56bF{zgK{t`JJV zt<$uu+~jNOK~Pz#3L?RXb(#wHp5!lu6TU?iA?WUrpqoib&}%ExcOi&e$GNUG*~y_H z(3k~UsWvfIhA+{dWCl8zLNo=p)mmDlcY*7Kt#`7Y?{CcFPR$59mV0219J?jpYW|UD&ilStn-QX+LGe9nZid5K2pji1?q>WxC6PKm zj6wz0NDes5HK|BxK6plGL@}>t#dK%B*?TK_3oeN<59H64iHEP&<=f}_MA&er^6PHR zq|gb+mXJ>>{lo(63D-hmhf0{D(`Pt&{uwHhM@a)rT@*s@#eDt~K;>ZTBo=g0{NFXS zLQfdnBvvz3{HDuN-wsCEzjIm47yZ?HfobR}t^ZTH3W|llx5)3WY<2LvM5mExgqKQw z{fvi6K4A4+)@t)=b_!^JF4SZzbfPtBQu8_uGMbM03lwn?D{PELq;jZg&nYUCj30<| zx}%curJIit5(mdQKQ82 zJz!1qj48z>K({K{bO}H%OVk!xMrTc=V$GdJFrsj^3+@0}w^0q7MGy!BKxU4I;TM?3 zV(`~7xl1Zx2C%1TuFtwz)Qz&);=D`HNUD-~SAx<~mRRMWTWUpYMORTYT^EEBkb;xC zqLTcKt~9u$a6b*DVmG~IASk2p36kxESp=g90T(ixK&KJHfvGGaT%^MUeXvnwPrlWv zQP(h-88WNL3d%UqkayI+&rDJtlvo7O+V}eK^a->~Sp$gAX+kwG)WeDs8#DAh87Asw zNlX~4w|r+Sj0M|A6HJx#RV=)TD%`iE0BatKhiQ?J2~G40x8$DI?Y8;cVa~VVh34{? z)GplKbG!4LenNBF@to@XlYRE@K^v4qf)y#_gUr9BFO*7N7^9Quyh%9c8IQOdv{`Pa z+eBIz3K(49TCiFc1pN)01Hfw)`!$D;SEf1V^WX#(2xz-b>R?QZ0+HmhFUce(<{=(x zcDEgqg}$Y!wzQ^{Ho`z=nOWV$Ku5cHQkiyJ2vJi2gVNSzlGwr)pr!H+aB%#gDW7k8v8}BZ^^BZk7AfBJxPn^U7Lf-Ga|-1`GO%*|O@A`VAU2 z=qs!gSS9o%;g3Z{iKecSEfKs+$Ww9V`&gcwg#_e5^pW02J2O`nd&4Y&ms){l=mV!d zUFipohg#wJK-eHS{k(pFa?h|^fqrRCAh+5t20I2@vfkILXoGV@v8&OvpePdg#Eb?a zMdaI$52g!f9wwq3%x#YyqSj5NDkTI$|eZv&IIJ5rW9WK0It19HcaEyb~;B zGs*L+57E|JGxQa3J^(n5fFZP}IstGKv?B4aT+L@KGe}CRWeQNIDRZbs$rD=RHW-`j z_5R0VHXuv<+DpJOa&dpY2Hr&RSpDEGI+K;;F}X-Yj&QdH6!D<2T;z5up%@Et1=?7` zBB)OY=K&o-MMwdZs<(iO`rarBf-9pb^D$bmbg=U%o=$#0o}jEX#607;bEDDG9pQJ9 zC2B|rDFwwta^=>n3dKin6+hnCVVK@r)elY^;n;_dm6xi z8DKZoXN7-__1VC{#`@fjgOHKSU!MuTgiy8Mto2z7)>@wp!CUw%Az6ZSTA$!1>vK=F zKE(ro>W2|d4z=v9(Y~ePuWCR}6#sAi5Qr&`(WHD(*e2D(30|$&=N&O)ezF3`iB3%O zdi4{ewYgq}m?gpV5n30bch3ef7rc;vGlO|(iwvHwdM$qp5GH0ZQGB$1c-ACt3t`$} z1vU_|TFDg}RwWH2tjcyq!D<250K5c=gGX=SvKH)iSj!tBC$<6EHma;aUO49h3{VjIMuAOKi8=d?xdv}`0hTJ`Bo8q1QfyJQIaSqS zODl<($PHss$?*q9q&j!!lP&R?uq7%BNgPb8h}t;eQNg5r%d1y$m-}vqq!@%u5@$5S z1eS-9X-m9>l?zF~>W_~bOC3Trv#{w{R?VJ0DT>bs-RHcwa#3S+wm_T9_uYU@BAy#4eHK1m6|sB+e+wNy-?KK6PUOdV-oN&=Yj) zbKr<%EpAj30*lO(VGn3U>KAmDI%MfX?G&b@mzJgm*F_i`XeHY+raOGNSTMXg2U4-l z*a26&cExcqit(5H81lb+-LBJUsb$z#p>->Ej8U(WWfVF6ml>HUpgb1QqVAAW!>o@D zk70zK=iUq%U_uo_aWxOG4P7`8gyV6JYMW&kdh0?8w+Y?pgl!5#dh22>0W)?GPT@8v zNte`H)!r%XYU27>gkYQG_r3!Z+@$~<&~}d!MsXTA;jaedFwg){N`hYNlpcU;wTal8 zB+!UFd{YGj;Fo&AV~7-6FM);HuI>x^C6%!4A86XS!EXx^eGqyONsN&LY=MDHWDN*& z#x45x_rAS$P5 z4K<4eH9THhCR(!4^FuAgYl^BdUe*-JC>G1rbL6>U$D$6Tf~!s+KiCp+u_gqZ6)aJl zHkQ~J8uVV#YC>1NkaO!H5ZZ7^p$*3fbMW-xl?Rk5#9?~2-Rd$(Cdh_PBzR2cygSY} zUS*42dy|%I^2F3)5B;<~^vDJF(9c#L`a|Iro2Ra(hn@rOnUP~Ga(U>pYoq3Q9be2t zc<2wI-OB9`BT7#34wd9%wTJ$^^D7g!F)I&!SqtaSr&{cxKO}7%~J~*1KNSTYBgZo9-kJy}b&nBygrI3$hbd9Id=lN?kCicWAV< zY&|}%_1=CcC%A$t%916nT7?u z!lz!fEtF=O_dd| zq=c0zqWE&`zjFV35Vp$ji|MW;N?|ci1Sn`=P${gsbf#$lRReG(hiOhwLAfh&hcL~` zN-g=sIoX7zVW{4b`9%nv$jG``N3dJY&j|puc_KsC^uV4m~C4onB zN<`ljPqSw}-n*%sxt*?p4_^JS=xL@*0`;-TCXgQVnA`zTX^NfTR*;{zeLa0TYKyw< zq%t^e8iJ^2HBMAoh=T64?}WeTNh$D>W12t!&gs^l4@5Ym_M<2qQr_!(A(u03T8FAT zs4xVJ2G@|VO^q~J>3veed*zc?T^Rc~vHfPn!3pH71aiEnM{uJD1zN5T==#8SE80U5 zfP%IbD|ZeKSyGu)6WpD+x)ke?n0CV*ps0}uHej{eKVM5{8so|7*^#W>*}c0(z4B<^ zKEvXc4q-N+60a@_fT0CLUOUBWgp|lnVvM@TYobbeO$#jQ*ZQM6o-9Dht$wie-r_5* zJBS^b1+w`L z%1zoEy(0Rk%@yj5n*Ao>{K3{c)gKX-Xd){Hcv$oq1vE1=UR*&H2nVh{-ny^f zGjfH~zftF1X>h_k{dlnT)?!csjDpk+8A-0_eVT3{Zcm1W^T1^PN->z)biyce2b!DU0R?(JX)|rAkWbU{d z@!`-pMn%0p9ihe_EIbRjeI5u7W*92dME?1MCR>E(48HG(?*N49M|8P3kmjB3*lN!E$pvbcu7KmYn9}7_I53ui!}gl%yJ-F9N_9iNL!Chl!8H!4?6Xsdh!C1;+N}H3_Ss#Oh>NOmAvUjs)b3<^-T7X z#5%UWD2s~OLB8J@U_gdS=|H<{11}ik%Ct=^)@i-Rv?Q)?4B~nx^bpI1rWMJ+3*^#V z*fPWr`jniQxXYRoOKIPc7jHZZUYzw_7mTUqz?h~mnG+sEpG$6>#E6T?DYjMOs!aW3 zan!wYTqwP@@Agsmu3QbWSpXVK3XTia42HYe6_G*kNRe$oAL?CL;WU5~|=@`_hocL1tmKC-_=dj-qwgpI_+tIJ+ zZSNs7F9%`;;m}@%;9TX-0zxyd%q5q^rY%PazeL@$e_s{{54_$ZGMZ@6v#sg@ssg+% z>RaSCA?^L#GDwv!a2rT#(Tky~be>X1%dG}$vj~spr=ovIL+Mwe|CRBLWOBr6eZzuC z=noUfuO$hxtdT4ojS&WOJCqD7;(bbv9NCt=ro=x4N(g{%B`1XpAM79C2|OB)r-jBm zEwt}xq1DpPRs4w57St7MXs<9LY?QXhC&Lz*1OBT@c`%G&u^DI{rA^%cc61{KchDJf!9l6Cr=2 z>yDSDd+utoemR85IO5nLf`e&aidi}}hG`w%KUXSd%;>J*cWmheUlHNInw8w(4XECE z(q+zyuI7>*a|ZkL38E=}s^c--Vnp|c)Bs=8g1W8ujKKe5#@A{n3|df#5h;uYD&f6p z*e9##w_=$ert@7G^W?5GfKO7S{UVVyNk#cC|F}4=Gdc;wwDe#*i>JrgsqI4Xr$$d+~JBq+N1V;9Ot~NJg zSxbzk+TDz~RCAzxvsG`-yM)ZzRmr?tWA|-UvOHxaolFvxoCt*#E~y==%fVTAFN!N^=&L+ENl z$Q~);ej=DxjM`z)o)^NAi~#|DP@)Vg@eGmmEPj4YFuf26)uv`rpmf}0Bc`Zp2p=jED7(X^`g6-v(dRPHEemSRQ3So`m-c1mw+@Bp?Ol z8TpZVsWhm0@Q7q_IW>XwSo(mRa!_08zWVYvVNf3-+x=j&Xx+(ua_qoEMhXmd`5TMQ z`#|K$?uYV8djCj97{S!Qq51mE%mY5c?q2bfk^Us<3DBh#A~+-KtX(nkH)`712Ava@ zaaHB>zlt9;0j>NhneAuN#9n1bi55*NfTA6zdPv=IdNxU(jKSoL+)*JV8N!63@v4N6luso$>8S|Gb4lm0G5u+UL#c+OdD0~egA8{(QR)18x;RjWpYs@#kJVmN^zO)vB3z1{YTE|QBqxvS zxp0&0Fn9@>nyxQ~j$nX{`H$+H55UUVE?dDJ|I~C%@2JV^NxWD zz4yLdIZpm5yss zbk@;d+QMZ`Ye#ptzG}L=+r=FAaeoMvWpXm_VZM`s&;uh zR)U9Q(9%^URFIS)cNLnEl5uFHgW29a+$~zHAzuR~YPOin<_BOWbn;y|ic=xO~ zM)K}TgLfxI1IPkZX&5JE^8amAj7+&0wfQRhb*^Uqm#9ifDtr^J#~DVF%j8c z>#fjq<<}xxM76&TcF*iv40&!F#>8)u_Or%q+Ay}x?S(ds$wsmBhA|y}SdmhwN~hek zvHmIanDf%bNfl0(p}4;pLvc@H zIHS|Ox-S*$H5fzi8tTi=tXI0-PChvY#YI2Dr2ArOXY|SXsb}c+8Ch>YuaG;!X1h*S zI2QP#5NF9$)CBmK%)%0J7DPSirUYrhVwo&qON^2 zep@v$i(@m=zV0)Aswu2aP4s@$EksqDs7(l_Qb14$+ghut6#9zSrzEX7u0>dhXZCh# zM~vGotoM4aF;@jl&@h&7l0LU#<5Y3ZWeo~eVDw0aqJ){Op9VQY@}ot%d4{Xj)_FZc zy^*FB3Ip};-6{;l!K{|Ggq3a^;h1^ZoQgo0^~Nq!OchCpHZ!%b-9nCT>@xMFVV{g=ic29e)shpSj~neYG#zXwM=UTXN3X2z(j_qJd{E7OB4gmAkrBV{=dJr&MOEO3?Btvn`XR%=6r>rwc`P~np( zNJ6U3vNZWC;DE1V2q-N{!A{wvvYAdYVTA8!S=e5y+9!?T+IU`T&C3~r9}LEC4(ZJ$ z88&BtM5pNoa4vyTS0(h1Iw06p$#c`8g~V`OaZi~Fbrs{UbY~_|4wzC{sPyMJ8pZ=z z5&?y@uzJPCr0OTuf?-A#QmTt}@}!H)XwADU;c8FmISxGuV3Wv}-zq~8beKmnK37A1 zP6nSOEj>%HZUYP>U16kY6K7>M5(G*>l~etEnTjscBvga+6T)CjLg&o0x0-~)$RWYv zfDpP$bcS%FKns;M4HNUGgz!fn;X7oSIIndKquIJ@We!)KH)jZdBwm(q3zmZuSl zYcOF96MXMjGo_$Ky51!CAxZNQNMck05Mj3=&#L*5_)S3^UaFJ_60;hcRwqT6(AqSm z+?NdIan?XkCa#b3Wxc~qp{l8u<-%;lm=;gD3ji%ioX-B_B}Frmuh+G_xId3T`=pu) zF-U%4`5O4l-k0+xiw=wu6Ulm?Gs9S$(x%*C9mI;j>G_QI54Ol?dA}IH-lnEm_VRoT zS_-#Tz9!G~bdQ8%;y_NhQos1I566p&;-Gy#XU%cb`xhXR-xtrX-~a5-@jlSvCs%yB zs@Oyjo-j*JM*UMVcP9RpIPXZ_>-mXuKlxE{9LEQ{9R!a_I7j!q z@%61%_y>a@#{m}=4xT2Z*VB_b+Ebn%p{`+1q5q@_b4sRTA3?hi5!j+Ev*YZS*$q&o zK=}n8l9p`6cuF0w6l2MxR9gJ?PXWxwTg7T6Etk^Aj-zEF;QD7K?SM^U%8oBeufJ$b zL2LtUv@bQ^9h0)VoD|G&ly~#p$BO|I!3^zg&JZ8mQ*__riQHX`^nA90jdtlP)VLo4 zvnqIWj~73}vr#o_w=91oKdCm0TEIAuz~alBE~F-{J1u-Iuinp?Dkv=3hW@k3*1&S1*VRIK8jbl3 z1O~Y`i7(HDU)8ijZnNrL-iwfL%hkX80|4(80iXzOB;}0~)mj5ZJmx3#P-tm#rirqx z&B%+k0D(|=HRd*JOf>$uJ*JIFMrq^8iH2O89BWCa<-!z~VP~RYrSRIAq-e6`mk=P9=8DDlHJ0gYk_uSbZwOL{$a@Obqk z_W7K5oG)4CTWdJMK$cZd#rcNd?f_0=39>O9{2!^O*n(zd3+jVRvJlDt!iMm10a^IO zyQc%xqxZZ?gHzNfJBw#~Z_o>;BPEkOHr@q|A3}yDHfuvOIN%aTd_D^;IjvQZ5GTor zn~m_!HFs*GQ38J~cZgR~sf3T(DY@crz=QI4t&DQFnjpD^@RY=j3IIkJ249LBVZCHj zKY%q#TXto^O#ABDV~J9QW*&j$S4iy#hIDn#}~>oCXRt zX%(B|6o@Sfj*mIDulOUJ(CG=pQObw1Z>|xPlSJl20z(O@_S8cOt{}j0cu)QG@Sb`Q z!PpdW#FyMWKED+c98$t$)VQJ0lYx2~v@|JF{;r9KL;El}tHq*{TwOXah9@!A3Stbq zfsko)AMkV6OU_`7tP*+coO!rJ!cr|zs9$N&3nQA~f4K%U*80u{w1%ujb(m~=rd6Bc zTGn&zr*u${1>coa@@SOY$nRg{-?Z~=W-PxR9|_@vTRVl(O8P}Pa#?4^fLVp|V>%cN z666&q1>$r1J~WbMW`V0Nm019wH;`k|2^S{IgbPdC5-vpS2`Ew`Xo^rl6R1jvV==J- zNvg85mhzVyB@e`6y;Np_4KF9mFH}%ctF#+=b9ix`M_KXCJBZaPl(r;RLrE9_SxKyb z*I$&G1@;svvj8DQdt(oLBeQ__z&A1raG-CKO3}4Jy$61CD#X%6rOse66WOk*)Km6t zBq{~1(yGYHo$D#Hz_P&wuqyzbbV+HE5+z$nUvAbkHZL zVUs>d-&>Lx4!;mOH3CA!Em-f3lHeGPz!KFigNtbufaZPJ<4}HqtDkLt0lMFS?aDB0 zPi=!Oo+MfYde!(Nstf2G~9q*Rr2WYEL|wS02~r%qQ5r5yd!L#o@|m= zFCRT4@dXBkJ&pVVX+>W+zW`lntmyd!vXnw)fp}NZnmUEbi5Tcb)*zLt zBKZaAdn3KdWUSx>vW>~DAbY~v3NXB2t{8Z=hYsMXp)a`vz*Qy731on-DqHbe0In)I z`D{Q|Zl7a6w1tQ&zd&i*x=hLlKSO{czrdbGegXFSKfC+_bUok-*P3fDC%8^Teu0yd zeQgge9tvoZeCpf5pq;V`SW1YMmgIsOQJ|bj{&VgDzlyh3vV}r^JP`t=3v9M$9;yNd z+As}O0cxGm)349zdnP3P+DZz=T>IHF`K*p^$>-qzuQLCCC3mkVrGzcI4&YiTlLkDh zEC$lq6dt2!{|i=8Zub2<+nc{7EdoxJ9Wov4)O}>3J0ifQq2*~fLuwv2DDNw`-a!N2SlXTxmIHg%ULgdyo=jFL#%A$YfCl=}F1w&}$7b1?9oOVys2? z9^?c4&c*e#6d9+XKet2;O5SjzWDZrvczjR{9o2z1l&a5NtSn_~@bcL>6Knqd)mCvt z>lsV&DLp*!{kZEt(rLk-mU!$JC%Ht@MG13?l5x&w--sFbW>(RoN&@8emh5NDhRtsATO0vIB3yh=8i6eN-QtT;1{YJA4p-|I zUy3pWtr%$>aH}I6;s~*>0+Heij&o?eQ8nJn`97}LLFgkz9Ob1fbvnkYlR+A~#n-EL z_9a5B_y+T5w>Y9AFk3~FQFKT}>5Q%%L0s({>Z=>M3t(KjQ;WJr=eu=PxnGU|d(Hiw?%M zrMhdsyi&?!z0dH7#!uQ2mE)G=?`a>RDusySjt;aR$D+MVrBKRD69KA+sj6G7`F*~k zjq-ioCBjvmV0O#1P2D7hLO#AT5>BdbI1Bk3fb%>FM(;%Va%*qrNGaaGO9SFK=zd3G zfrdqW^yuF!Sfmpw9VFmWnzza21tf_2(WhwE1JjHjdhX6?f278m&)f~-D@0>m_CxlR}!Lsjb* zIsbE}7ubW%#MOu({Tha3;j@TT99zr$&j~|I25o$J?iG^H3jk1?ssNjTNm3NZ{Oh$$O*p(+I$qZG2Z(y2N_Y4n}CuW z`A$7@{O5pd-beXi{P?jC9aCCyF%7=qxAAxIwG5y1ZZM*U5l)eSVnsKHprT$5K}Do! z2dF@a1T%w#t`<2DoX_V|@DAJ1$^qlx63{6ALA4ZxNdG{w=q*hPr2LpXgX=yxJu40# zFaG#v8jBR-{{J+eS;YUL`Ap)F|GW9jBL2Uc&n)79+kF0&`hnS_my95KsTqR{`0Pvd zR*Uk7rrPcA8rNBto2_8W;wXR+>MIGo->KPhfhShfMgkb;lpdS=9@~EA=U2bl`Y6x0 ze9sB~UY$xezg}hI@pSg(A3dQT#~1X;`Ca792}4o8lKxUZ)TSzMgUAc1fEGWZENiJnlC-d4 z6y&AF(PoR(5|UUT>)rJfqJ=;dUhpa82+$XH3K=1ZN)nQaDtk$mhzg73(Cp$#1TAkM zwa6K^Y%|tli;8z9I1?5ZM`)UR6IO8CB#EEkJzbqF>L7$JNB$mL=94@=c`a`A_~OR& z0mp6X0|+8}n{<~CeQ+ItHBr9zcr>0qV8+=1&60b;rzCs9r=(kfRi}iG%gur|q0tE- z(7?sv!0KGcT4ln_W;LV=m9pUBwO+-qMWECM{W-h$%-i3 z$~H`t@6VujiA2J(+G1H-j;w7}M7g8$vfFNhj$KjV)+(+@@`;>Div*=sh~6^$@x;2jY#6dv}EdXur&=P zF}J2Cn9Kyv5rE8j2nz5bBaWv)-Zfhr>KOp7kQ4KczF@KmazX}=8NfiH!P~Ri*2D*- zRj`+zxbzqy{AD_x#$%wI$Lz5Z9Y_yII~w*uZWN8eB{HlE%ob$TT@AV%YsXLDcEMww z2`tkw&;O2qa>?dc5VowD?Aaaj{7^TW5HK-O0!%?L{*_B0;K&NFCYhFb?05&XNfrwI z%+JREP|pPVL)k6$Do-?UYmfEb!Pe_z4vRE@B}Iq{-0ulQ284BM33Y&FM@tAn2@s%X z#{^>a?!rbogu$TfNhsv)KKpYympcRbhnAne#mAMtW%+fX2wr}g{9CHYXVIi(c4M`C zST7b8j3jC0utKCM^(168Rz|s8(ToC{ghPjAN01?`T}mukFrZT`n304;tw5Tt6@Fn; zJon1ytK<2)@_Bze&y~-I<5@}`NpK+xM!Iq(72t8Ktzk42K!udKprf0gn9e4JCChEE zx!xDrR0fsHTfL9#7Lo|yd@B{6j($5P5ia-kURh#P^QxatW<^^;7u-Iobe~*TG8Ad9 z4`zL|3oP{+5mIe!%Nb;P{=mSQeCIRew`()IG)m^O_QBR+rz~UI4z^ycglrJ^_^zca zXWC&%S4qUi?>AzXZnOMU;oP8;DgY$T!PdsT04DHWzn|qTO8X=2qn#@4nnnRCDbp5q zO7*`>PBa}}J;J`r3BG1iHH(IHX};}5`_PZFrE92{>M=eyldN?MCt16Km`+!CEuUjN zZ7G3Uw0B>>rD$U#R#_LclS+Wq!PaiFs?DI*Mte4-D4iOEd_dUGbrCH{R~WCMx!`@8 z8J-PX1Q;v95xI{@d!^m-ya@QQ9!In8i0lL{D)B>+-8VI82@=xJ+F`pPf0n*n$Oxx& z5*)K8etn>_vho61qOdaECMT8GS%;iie07UI0+jMfR`3F*8s9iW#fO4rFDA(Cd5)EM zr*5{K{fU`0V3m8t+&bqQvas$|V2SWU_jy4_g_<8WIpzB6>o z1_Ta_+2r16s=79@w3LDMZ5yjwy`{EHIa+}HIWq(cK0ea9g<|Twlgp}XN*FE`0M4+O zJ#g8x=UHU-oN}b4`!t-(R{1|I=1JzOWWpy z;S9FV2gC$Y@GRzo4|=a_Lc-<<^*x(%_hW2~>H|S#Jv^*d@g%gMgSQ;-9S|7KD$LlZ zu;}txPTX?*~D!fblkQ%M8~F9bBK-%@yLQOi%xNdX~yOFU^ci;*X3+yb^#dpbpdrj1h=CV z#^1Bmm^xm+o&TS`_Ybn`s_s3{{nhuXe@Iu7e@K>poO@+#$#!G&%ReMzbX+4y=H+F~ z6z>%?lRuKF_Xm-wsi2`KrYbLKKmjpP9s&e(-Uw)efhNcxz#&Z{paGFIF9HNHpd?Dt zAxxwb$>xckD`_8Qs7y+&F{l z;1t@O?sbIq0{7&K*V#ml>tpra)w;4B!Zo@cYV>lwIo;^pMD4TQv?H}XOjV+(Yj3e@ zCsRXhpRe!fUnliqBM-;wrfFQlEvxza*Q>n8!-HPFjaxPgP-$Pa9jW)WQiKGBLU}$` z>yxFZi6_ZM2Timh+8UGDFN*PL=hjU5e+HMoY|sz`Y7i+oS3!q1CKy6cLWimpqnSo) zO3dq^l*ltSSsL1jyJTLD1WlHSQB_By7*kWGrScnI58~Z^k=OZhE?~`=mm2;{<<6*? zL~3+b@~I)q%>^>={Q}QeHR}Hh`zFvSyhoA^Fio5Z(qwJEE>>AdJuV z4_BLnG=`2T878FRe<}os|H%Y*Dn`4o#$rTr>!b0r3V##SRr4n7 zWQEZZQXfdgMz57AB(;DIqv!xrvmw@>D%lmC)0mPzsMo5CMO^91$5;Hz-$olTT6T|RF@!Nlgs2Arjw!ufU!Y*Ql&Ch?_ z5W0C6pvCkNCjOdk?iC~C*(j9JzPSdpE7;kTeDw(qu_@obPw$Tnzb~SK^@-$V*gxvG z>!Z!6HkV7W@_+f-zR5?2enhpcAFhp=o2o#)w{GjSy8wU?xsfeJC{XJ^rtdEu{vMod zM^f}|V2`dPo&El+c)hdib?fYwv3wKTDReQ_%j&c^M8pPF}VG;iIYdD^0r(c93s zJ!`#@f2ms7v3LoJQ!P&!e9hFe{xXFw#Y8oNF*-0r&?n<+j7-z08amOC@(rYN{#V3G zR({2%n<4TWYU8?U8zs4*RsmCJ^*lA`pb$(cs7$^?h&&(ReTE#nf<62g3q=x->Waa0 zL|0hSY~8qo`ig4Zc^Rg_lKRy@slXJk`VKnkgmBQ+Cb1iKGq*Vmg)A2%`^pTM*v%Yb zCt2kV7(CMC+otb`(;9u_w^BpM>B&(%ja>-2#fLb+Ml|_`rms=V=tJY?>|k?e?P#!5 zeuckFIibkCw$78x;YVXtUxcLw03K?-OBf^M^YVPT360_Blv_wBD~{Q%uvyI5?IS`Y)t{pJX`zHB(O4{lbNYqr z*|-Yz#UX0t=%y?m*Gapo`~W3A-PZGMUb2spzTa{RMFlI1Jf*`ZX%$cF%D$iFX|#Mg z#}m=-gl(MzQa*8V#{jeW)?4dS)@&3zy1)S!CfIr{w9bR17swZgBEjG{<#k$*1ja!i z7cDZ#n@u_pi)6O(3vNp}1#}c`)BQrd%eZrYkrEip&(yn|JNG>)!Q)DkW}CRP)HC=> zb27V=<4{QGxCt@AB`13i@H^nVukREM~P|#EABbsORLA<8ag#t2i8^4e~kW)*612GS$CSsZr?pO#e$+RGlR2(yJOU zWp=;W#rv=WUryzw@7t9A)u_aLI-v-VuDH%WG~-$@{AZW@xXm_dO|?~xYV57>H(ZwI zqxmKlruqx=%nYhWMQ6a=WcI6CtjYr>ZO2UZRlcTD z5dI>G&eedV*APM%@|xULs{nN`%PL(W2Wr*t@rtkdyP5E-)Nd{qe5iOvELqCuA}scW zx7BYli&pACN4FT1aN`4VrKUR!1~OmCv=l30ojdEh za<91WjZtcuu>GbgQ&z4PRgjO{Z0I@VK-ZxZ&y;E^x9wB3YcDVY|J5qupD?p@KNIdH3?S^Rqc}Tn^t(%9Yv`6T z#cr}PX$K^4hAW(S2#s(g|BJ;-R>2Fp10+S8Yl8%3aCA_4Nn*Crxn{$dp%97m5O#Sz zj#Po8)M3^?bUBCGnmhuo!Xla^QI8IJ1awlDc?6{Wdc)?1JpxCEJpz27h1Z~E zt_Iq+8yyQtdh)f7JWZ1eGLb8c!NCwZ8v+XsFEroXoIQX#GMRkl!X>^{OsC|G5(ztj9;{6-%bt=y8tQxU@7WG4gSnmr%{fvhY**9B!|;3oaWY zyA(=OFYds*F?sLW=4Dy7fj-oWr`;>}MzQ99!Vj?))1Eyw&6NPRyVp5`oCi{iShQ2e zoVrxiclR|7I_1hV{7s!c$c9=!>mGjNBL)zZ^xWKc*jWf!t!S zQNHZC`COO`CR20#QX9i>+BkiitvAyc4qK;TQ-T&7i6TtTzO2R#A`LGNtGO>D7>1SJ z4wJl(bOtkS;1@Ob70Mv0aVkcMUY&X3u8b{UV4XW>c&i9UfNDWPQ_;YuKn>LqvMP`O z6uVc59AWcT$)UqZ12#g=4JNbgF-l`uCQ2KO($C_D(kNlk3C(xcdNpsn+-EhFNFyR*ATwE-=YeG}WtDnPWo z(e2;JySLnHmH%r0hWy6=mCNY=SnE_n_B<2RTnO@55S*-IOK^qRK!)bKz08~+W^4aME!wL363ck}7Of56Plc1L zjTT+b2#9!Ox|qk}2KL8&4_xww_YeD_hNa9-Y8pP0>rDehpi}e}zQ*r-q&1VIK zqS@Kch-Y5MJr1Wp()B#~=GE>;@kq&3`Ma^ob0ATSeFY>+BN|2@ArC{JF-6yiR>vM6 z5Kt^PGS4@HgN;(*YxyNo;j@M*{pVRySCa}~GZnrkujVC&<*TUUYP-8eg}L2AlBRQU zJ?3kkxHG+r>yffVx>shpSDH*956`7Vq|QXV62dr-8f2b2Me;meN!1GVdKDJ1qy*y_ z#E})^?IKF(0ZRxS|BsP-B4YUvDH(((6J$JX=^YWed_ZR~DLr5bIL7|Ks~P*lubCeX zST^M6TCy1MUB6bp{ntCcR##HX!I4T*3zWiWS|-a3w~^E`)iQ%0pCjhZbYppxQspz` zn0u^AemYz#t<>PU`SOU)4oYN5O|cqeo+@=e&HYiU{$Pte)2Z%ItM^P@XIs5z>3XEq zyH#%k;>9(wP_L*Z@)AsDpRErE<)R+Nxkv`E zZ#_%qcpZlp?WTy@*}ObeI+rR%_qOo&WcE?1;jEZ^N$=@=at3>W;M_Ibo&@jQlIv8Q zYwhXfTu=G0*p1pTy|=khX4YU)p-J{fJzzJglLn!qr%%)iWz{hM*TrFm4XxUGx<%@2 zOO#0Q(M(Q_{GeJycaK_QWk;mS%PboKc&@T+U|UwRzp|HI>B*fC2yj!W626^uJpXkv zLxr}GpHeP(KiWa3x%JeW#k!|xoUZpqg~wBMcLhE~`|7(?a?)%?dE^LnwoSJgE$a8K zZDq}7vqr6J*rmSs`a7jsczgU$$MpW zKZ-ljq)|&^yI!2-#mtkL&bDL+ZW=&l22>%RZ5d=DjO=`630GwUD&VcNGZiwNsgfb) z5=4Gqok`<|kd8w3qe=vmhs*n8$u}qK>I}NJr3YO)HokEQx$@Rz236u56-~z5WhI`~ z<>k-AEHru`HyX!BrELeTZJfGDU9TT7npy?getX?n%mMM7DGC6&pFT)6lCI6yQ>mAz zv=CiG9s!D9!L$*ZxmsoXk6pBc0)yUSx>qvvL~K`!@{FIXAHPD!Yc})i#8X7!_M7pP z_2ZkFHO>*Gbg5ke{$Fb#m+Lt-f$5TXO3gF(y0qMnN4=aJfb}wtt#WV5-rjYvmG!d7 zp^{3iWjZQV%*U|n)W{hTN zzc|ncMp7Gc_5Nf%ScM_x@<0d?6+@7`*ovi`mcV8Iq*J=0P!dO~=T{V2e!~{U!X82a z+|91LY5EYpwW@7KC^gY4-xQT*x;|9TFQ-8q5~L0N8ohPsZ|l0xhEZn zv`a+8RG{YWyzToqm?sz(4kJJ$n&J>VD*0RCQAE2$@^Yql!$#dxRW?oJT`w+*PmNaj zl(d6@9(*c6hfe_=hm{f04JGO!#wDzh5w+aLa>k%LCfZIS^Xs+ZTV&_50?#LyQFXEJ ztuXvX_gxiSv$B~UUoX>i80FVH%6r>P`B1#C_=;$`+3oAlL9jY;xlc2nF?XHsdzA;L zn_x;9Q5bPtAH+eB6KXL24g%!I5*>qoK*sdx^N2)PY>eaZi!5X37V-#bOz{6$BGCAN zMzC0V88nhXBU*Lc%OH7Z#FhGzMv5_J$`U#eS1D=j0_%x7CN8z0gDE%0g&aNZPtn+} z^e=Fvqlt~c7Au@AV+RYBKvG{1_znZi7xn>bn}&0cRdKbs{zUFUY~F z<+stCtaqDOTpJ$~8QM>A@>>WPs&ApvAH71+X8~b?9YdrAryZw zy047vt^B`IGTg8b)}&#N*=^ErJV`_QjUIM;Jqhp299y%rPc0Mp_X1wm zS!>-2(y#}rbXfR$(A3ir%vQPMZ?BDLPv@3k6jf@SNquedjebSDsU>M>CD9ZS?_~pN z*b&~4hJ4}7URR`Hv(6MuN_Mj<4arNocWqlrwyW6<$*f1e`^oo>48&o*V2TyfubpRG za8tBp@Dz2a?)sN^ybcs?SGC8M))C4!dsbHJ2tJ~~oB4V)%UvEem@(0DLzc>dXUW5SQq-Ss^%OOe4#gpXYc5fs4M7uuAVU-g8j(D;Oeg;`8k#%Ss`Auw7b^CP za`$ya$3C<`@dH>9WhPs*k_+5=QnDPeqjIGwQ#-T%>lB5TF_ByUNVSpHrPq+UU4 zKGl~C=Z(IMWKj{0$>?J4_$Z|xNL!;Kki}pc@{oRg+9+)fTM=)xG3L!;>J`T9RIZu> zLuJjzTWvTj?~LJq7aN2vnk@~9qg5)FNxd#_2|?1j)p&+F$(u7xS*tP$Z_2L;d2^GR zCZSW6H>X10;FRU_o?37!$s2=ys@ko^VR`dVT?|rK$Tz3{_46$V5(VV|zB%EOu8C>! zf%M@@V-w{)q2?Mh_U6LZS81*#z_HbKjN+nkN3@M*@2SQXDh(0_o*?!r&7uFRG)Ez` zng$tIw8_SwHre>oCi4TFtjzZ3I|tE%7znO4CWXIIV$>|xn{TZ@47X7(?xL<+aC7L2 zOg^P6LK!Coz8xe7PukVM)v)aYHH;Z%PK1gYW<<}2$}tnIjpbXovyCTvt=<-+ZjPpC z=4)M5Sb&Vyx~c&Cze627+3aC7-Qjv08W=5=vOq(nEYME&J5V#FEYM0R3p6sLt!%|e zX0?ktZR1c1ik}td@)bBl!9ZrmIHak!%al}`9{JM(KQ{(`&_N78Ks<#;&v-z``4(IU z@?h!7di&JfOhkB*g(Tf?qcN-Zwy0~1;mgPDFzprHSVE2C8AMVCq1w>XQ=+)|WP9O*FFA$cE1C zqZjJr)QIbjkF|Q%`E#wF90sOJ8y1d1D+qlNi}r~&d1g4z8+&jMF(1rwag6fa+<*?S zn-mzCfY@5vdfI7WbU+K?wHYCceXO@3xL}1^6Z%n!z>0U*EeT--b7on&Vc# zsdFT)B~Sd*oSv1pro1I#^yci#Oo7Slt950VdGyYLwu+MmlbdQOH!qmnftD)SPIQQ9 zYM1_BssA+um*m~0F5FAxp1Z_i?$`2~Cox>QJKqS$xSD)>=;7)yo+hsHhpW`!0eD}7 z{v?CnM|^l|eyK6jVv2_?zMO+V7!TL^>Kp6^9xjzX9G+Vo;$bqs(jUlj=x@@p1O0+y z8t%O%0`P?0d2ZyFmd`BlV9m{@^qlXo1sWFd=4;~N>6hXNA+l$BrL){V!*7o&!bWVH zRk{KgTC`+U^yH z?xT|&)DzeJah>8?oT1jVf`_j1M7}|66mW{Cw0g+uJV~7=_0`$N9+6ZrO{80Cmi&|X5+=;xmz)Ie6OH~D^vd1YM(Z=0@*@;Pxm-QYA&uBRGs z3$70l#?W;^Y?^8L?V4|+D-!#c{}hZx#= z)`v_op5$1}iql?ZqpTf6Rrau#-RbYiW11C@G^E7#iQVYi{UhX@a%CY=3=%b=F6>Z@ zmkPMu>9>z?d#B%OwSs@o(k`Kih6v4C=yjF>MV@4;;RPy~Z}fIhlWbqD>9MA$e2N`0 zU(S1I5%<{ZELIQ-#iF^M_8k9A)L%JDlA4PX-h&pm1QY0t_UGQDBe)IaeDCU(IzV5f z!qW;Kpn@XneyE0Y;mzZXK6@iljy!1~I%+H*YO~q1N{MZ0e;krBwIR-g_PE)gLT^|r=7`GM+9YTL0|z14MyUh`*&D;2_v_l)ksYdOV&%2^uld9xaw#_k z`)N1o8QHuA>Y`BFm}uK=pw=fVE}8CcQ&APu&Iv1+Hu~y6+lI4gbL0xXaN@6$v`-Ou zOrk(>jG-a2IY|i|y?h6gjS@I{S#riorYj}lXiULMi8vl@sFa8!W(BUmRFB4HQQTCB z(p(_vU-Mq~GrAXTGd1t_=|YZGc{^R+>PKeUPD@o~|16e1Hv4zoeG7@J6Gqgsw|BmW z!1`V9VYS>{dQTQx;x0n)TWEl$=sm_cf$EqPCv0^GYFSqNm*$?EYpkudF+r+nj2EnItk>gy z8YN(qE9mH7QljD@rI%3(+RC#1lx?OA8ZOI7;Ok#S8K^7E&Qf+YWgxFCJ4e|yl!3mo zjI6hQP8q!_%ka+j`;^i5vW&=j|0$G#p;RXFnI@NT3O=g)lThzsJ*XNEKhJ$JN4N=y zW%?d{v=U}Ys>hSX3T9I(vD%29&(v9P7LsnBNo!#RlY0w1U6x+Afahp>5-rYZa;<+L z?>umK{_1`Gf~r*V?8>xb3eHhhEK<`|>03)ozq))n%Wv1DCpBu3go0E0>L8tXO8TWx zZce{^QesY?p7hl`U!4>DD^N{@poyI|@+7mox3e}aB%wylLJ}6mWly9Tkq4Zx&&*cl zW4WzJRy@XXzbjb$!-4k53w<~T_S1)?K@L7Vio{EsDRs5vqWtQ#O|dzXpC*9RNEFDr z^pJvO=Qe4kjLuJ@hdg7T8`XD-y-bbtJH8nY#A)i)ff3UzFf1X3;+QkWR&tp^?3DPA zz{1Fr+AtGzGebVtgX%K9Im%TdKCfr=z+8(lBiEwv^GtadMJK zCfiMhiNA-EQK$!^K^HB!yj2~#kll2D1N=(~@TxSl@VvgXR)jf~p~l@+evI;CACss% z_z+AeEyLdJKPTV$LeqKsyYd|`%y;CwY%B6&-&g0ef)g~jboX(j236iJJ78!2oc}0| zprKd)qaI)I00qX(qlynbaJKy-Lh z|E_-z&89-JgwZs2$8x6=#DJ&RVz%xQ;JdGpiC~S zOwE?FZG_*YKo-994frk=-#wodS9WhpzgYIKY51TMAp`Oa^)k6AIanz{eo}&XDc{*| zYy#m@mLQdR=WL|}sZ0rirF;ibNXcxa1W`!|Y`=U5aY_lIA(aTj+GlDp=umuiDk(+W z&xoE*(L$%3;y4vxJcxo3qi&vOIiy5RT9(7^7j%W)&+7`i{k$rJ-JZ}DKk2+GbaI0) zbng?nvE}J8g0u1{g%Kf+gw^Z(mBq*nj9z0)%v}3i$I5dfKBWy2Ol0zRuEO~kA+w3- z;Za1|e%VKm!OxfrE^#GzE$)I{^<4vIB*!p#G)@{;j}fqmZ{LcRvQ3cy0Wu~@qH>te82l**v-k7^P4L?^nvnnMQjJF zZM!f;>)konX1)=_=;M&MZDFG2hNtRwmaeTn=x=mA)>av$+r|2xxYY$eyMMK(`!S(V zf^VYO%&2b9Z0ppCVuR$s*CCfwz=>^*;;$`&|3Y1|A&F`d@RQ1CJE2(Iaq8n*-nnl83ThP*IFG{Lebrq;f(xcm2U4qBkuumq+?R=mZ^yer6ID|?-5dj8%n zE7Qm?G*Fzg*GSADhU|O8m3?JG%HFNPZ?hyvp5iso-L@>dm0mQ8DIS7BSmPQG z*o-<_+h-E`?pLzGFh>`aCae?-2=pP`@#^iFRz-Vsnh34ZKED6~KNxKULigovZ%g~! zZGe`{h}LdS3YESlE%DA5=AA93Ah^0(Xl)=`VpHq-$|ZmuOylg&((&Us~ znaFx!cqTjR=$3nMu*Tg^j>__GWwQym_6QOIJQq_3=5^W~0vq#c__R9{!vu`ZMzTE0 z4W8%2@Y1?T4gA%VOqNe5NcnZ;6S6JeT0Wh!Zy#f3#kUHaJPM;ZX&HAeE!?SXjGmp*^c{KXQUOdCSf+l_Q=94p#%s!ebai(o3YrNvEK`O*d zG%q~)7qrGJ#d^0-wCw~Km=O=>dcX5;9Y0h`roX-!d|N~HC) zSPmj&)_3KDB}%lWToTjpI9%P>Yh?Z8WrmK@gbHGGd`@_(N2Y^zY-ncLVG1095mIxGapUW|7xFUYpeeiofZ0pf>?mnXO)b;AhNwf=psTq3fbL_9i^AG zpvr6z2!LBZZ$LU7E3U{>w-5T9#`Cf6JWGldm zX?uOP?zo(0d`Pj!4@I}gqVo+m>y|ceM+V9Nu34f~CkoJ*#S;`8G!)rF`StlF@|8 zVV0LDlqrOPAOz&Y!zVTZ+Cra^ARwTmKB2K}orq;P?(yEMMNf0orr8-{7fw-*%*ky@$lfg|TqIRvyP5en%Py9&>g`~FjX_k!U75I~9k~xDyIjJ%z3llD5 zP)KiE;bIsu!^o#qoZX>mWm_f&9&D{3a{<9nCD+_HDvWRufgVfXl)n@h(gF=Ia z%~-jNi-6%LKn|y}1}LJcV48(f88i!)o&ysn-!z{UN=-HPtv$p8{Rd0kJ)s|SJRw_a zg7wXyWT|*qg8uU(o++FJ!v*0ze+KyTLlK@O9NcPihu*F%EC3wBLWqI}_zUlf9ldei zdHxe_2Yx_KRtDbW0`cCZ)Di??FifGh4;tZ!kbNsu3{w1Fz=c*lXs8SIL7vWbUvMF?PG3LxRsvyDQc; zQ%Tq=KKnsxSXZ3VMUs3RpAGlj!|JEJa$~c9++czI$gg36&#)u-i0=qKqO5OQT|Z(e zUADU34p;OI!AH!|KElT4{Tp=Z->&5g?Inoe|NMBW?#t~-{=~sOQp}f*7(4%w5+-8M znw`ElhYRNAx!r0>-HTMoLcOAzy zYz5AR^lE&j)Tc0prcRIB!+zW6mSDX~ujkfJKVY{sJ2FzG+f>7WT5r3Gl#8I}Um*K} z%P(pvKkB^FnQix6XKxDij!b4X#Qi^MSyM3zSFMrxt8%O|uc=E6lR7$<>%#IL?J$I_ zutxG1vQ0Qq11VXklpI`&N#Q_v+b`pd(LV>M#1PL4>=|M`v|W>;WQdNh*f(59TJk$| z8MDF$KtXop?Na3?F5uU<4R>U$lL}+R(8CSVt3gGJqv_P;bDUkej$RraG}#$@4N8Ws zPiszQkFDvEuUPmysAz-V#WkD7s}0q>_~SJ@GBg4<>&$+*W@l|5clI^;heQTORSUdt zlo*$7=((@CGh4$gvEnAKnT}jD6Y81y?e z=|*4KQVE`3INMNVC`@(E#T7DGY22Wn8O3mY4m=)}^4A-$?`o9!Bs5dW(_@|zKNd^J zESVqL0@+Fe#at&PzV0dU_M4@|*CpC)=^rOf(^5;{0_xWVmFpR6kj5neDK}>jAeJB7 zG4@uwzrqnHObG2NO>^ZPN>whVzNKGThuBCt@%DbSLq1zuMGcNvnqZ@STsdq!&!e5_ zN=}|sOz!3^Ctf==fV4G6aJFu&$+|J^&CtedFKn&!^Rzp|8YWu7xT3=yf9HHwv@Iik zjTFN8oN944VE|;66=T&3(6dy**iZ%1^e}xae*tW@m5uKC@NFhH?O3BhVgNEaWat{} zWohUK*BlPM7q*}QWw4$n5yZLRT0_>c9xI)MLXJvC62zj~-0|QxPE#&xajz?QY2I&3 zltJRQ;5@z$46OY9mcTP9pQ#>HJXWQ5#7)Th&3HI&hZG+gHM7%7PFTs|O36c3a(|`d zw3QsGlss%D4^~PZv65qzl1HuN_-JBMO+`8PvB9rq{FJWbDj(F934cIWQh}y8fPFz{ zaIvrOfzjLQ$JVIt)P#Ei#zr5+6ppC0y|XsURbMTz1@TdpIg?@?9F!JJjQ9}(qd1cG->{m#L%|pr`h$R6@pYa0=eyb$Fv>qY?)~NcB zXDsP8Y*xu(8427qAORzcVIo|a1n_AB@}W`j88qWjEPSpfMoINYm8mvP<#WwMpBLG* zt@_%j6D>Q&bm7nqpC9{~ zALdneu#AjY-V~(+&hZ#qNdi{R)3s@Bg0K34WAE151iYHIg_;}jiFHtSNlsR$X?!9( zPQ77sA2s%m#CVtsmtJGUQD(srxqOM31A#nuq5-!W9Vju;k6g%^V`ZECh>j;b zoByKJ4f4HB-9WvVk|;&pxCk`^WyREtk)N`fVQRxF>OxvK?ku@oRT*Lh;^V0d@W86d z&|ao8IP?{nvXqrkZJs4%!RN=eG}01>G1BnRQRh~x^h9by?B7?a7BN9=AKV1sHAX-f z1|$bL>y{8qBA(h2=x#7{v^?J%Y=(htwI#W@DKqv|*VT z9mX_klF0NAX0j+RujhNrcbV9minZu zs3ns5pd-HYCcJ)$WS09fc@qv83gojClJ+l`%u`8j)nVWClfit2q&f2AB@#}_n=pz* zuKpvP-lUP6p)Hrrt?(-hwxr33k|57jUu@7ekj|NfNn9$PBP5ih^MBR*wBwxGU@_MO zq?FDAgkK>JQl(~OH0JPL?8cpy*l@se>oL_Tgw%f3qDvSTBp8Sg2n^6}IU-%Scce z=!78+UrEMD*cJtd)V(Olbk%*P>XxLjVqfJ{DlI9Nag2$9S?JjHtL5GR@!aqRRIGSY zM^HmV5oQY8tSPloEPIo3Or0r7Ik>;ct=2$p$*4ZBc`Tq8Vjg2dCWc+HVq^8+|`8 zMn}p`NHg;5G0D#u37cW143nk2+1#?uo6Rqa!OiMmrUph63%bRb|2b?XBOk>FhyA>S zGKOrXKef#>2Yz0~$rEQLq^dcK*Ip>oo;YqZ8DrJZELde`Gj%F9(`TKV%1@}z-Peor zE}2i9VkIvU%K`b7>t%e~S;D+4jNBP#|59h*mx`~Vh8c??G9f<1VA~@t>H4FcY5)|P zZU-mO*iXiA&N~Je7U$WSGg&^QK--8-utAE>2BCFFE8ibYot60{oeLwaWYAU;Ks6=p zEKQJx`NU>;WOczLe3*3l3+gX~nGq0g4ZxD=mp9PlvSy9vX8UM`qMd3PCOVj{& zxIEOk?0lFI10Xl+mh#9+NB5#EFCDCCz+{#nC~mI7H&JZ}*yOAU7#J}N+FeDbaaP|> zyjP3a!V{bNkd2vy-Fc6y7{#YO*0&SC9QM9fQd_%Po9H1p`9{H@8KR4*l_9xG$qgnO z!J-t}KbCj9p*of;w8_huSRINj*5*>z--`aq(z%l?$Fj=6uLQSzXB}!C&0WyE|+DO)g@Nla#Ai0@}RZc)`sa zrMmrkpX~iPT~Yeyb>)b_1f;UzgzqvLyY5tUu$bv0rAu&6xyp18z<{SIE)M?_&JiujF}tLTZ3Hg(USErR;O) zg41f6scfjgw`OnWaWcadth6ifxt0I$k&$%7ld(To!E&|iA{9a%^CZwT<_D?>oLqmJk8m_+8!Cjo6h?97;B+R|$PB6$A*gvn$Vuh)8yI7N49541B@ zIa4>=T^Z`p@J9PX)D0>}q`UAG>LjQf(7zu-ol8zox5eE&!y$&1QOBGO;ama_xiA2p zL>@SMt+{5|1bg9@MFm7tcu(68ZS6nZ?9vJ(S}) z<7+KtzFpM*PcQYPc^pg7-*fYIUg#O0Nk%<6Q6JOgWxM~YSY{+#+FFOaMk zaT}d7klagFva);0CK#Sf$m>F_mm@>g%ZBce6|EN(&}6+p{h(j$WAt&Y7dW`_VD_$4 z{uTQyt!BN5--o@iUL8=>iX!+lIu^;MurIe=u0W4=#^+;vv35tP@h=Sn4Fv907tEqv z2&y3$Xg_2=zeR>7(WQ#7VnHym%y_8Fc#uu$?C}C*nQ;;Rtn=MFGZ!T~Rm+h#Jun<* z2ZjUrFxU#{@nTmp96G+&lSjoGeu#V1lz4`#qW@w#$Rt>vo+D#oM!ziA)R$@VGAxej z-DR4;vVUY+n3XWF8Dv3pN(};;Wqw5XshKksvqQ3OC>cj9&0O#2n02!XI1Apag2uq> zSlR=KSd`gnQqG0j0cNKC>$L+wkJ$mB$Ls*mv&;^d3eGQ9H6^Ymy;29WtYQbiJ4>(M zkUJ25SpG2N4nzU|DcAvO*ojeWfYz`HFchZzDfomW^{I zyTZLJ7cl4HC`%Q4bxZ7YVRWF_k5v`>v5QpfO^oYJ zvQ#l%(atdLZ%8|zVsE05UGlPDJhDxUM%~`m18oZ7{gLI_EROF zT;<&KGMH&q$pYSVI|QsqMGtHQ7PRY$TU{n$!Y){l)|(T^`Q{MxecYf|iNhx2L#wk2lN zTJrPiL0B4V9lVerELwKy+GuxEf{Bt^EL4FmWTA?bwqTwJbmoSb5G0`GA8Eu>8*@rr zBEb+!ttpsAN;Mhq6+s}2@~0pR%{*L97FO9^;>*t5_0`I`H16I&F|%cHY&RX+A3CII zf4Jf;id-M)bE`y=FI=B9zI~pMDKIT$3e2S;(>a^Y;VTsdyN>ix?es57TFF<+lqyxB zAsq=xTK+JkBbjq*zA{-p8S`&mAf3ZrTx3-FbIe*h4fdaddzzQ=XdutMSn2d5cqMcH zgM)LFY*Xo21v6`(xNqSI9u;Vx1zDo$*_uU1_3cbzC3Q?~LDI=Wuv%O!FVUfS^1JyrDKj;Dw&l4dECoMx$quBUX; z15PJ`ReRw+mX`@yT^8OwK>1=cKNz1)2MP}KI0vFwV35}B)(ISxoyKu>j2 zKDOy2{Q7XkqYM)|-C?bSj*s9cF`;m%M;^EFLKcLT9e!=#ko9(nup^pRivXZHoQ$># zbe8d{6Lf~&8#|@5}(!OHZq-Fg@O09=4m2)#Dt*_32 zF_%BYr1c-f9*vn>tL7tpR{>XH7e5Fe%1Jo9#>|!g+Zr>tPOLE_Am^gLIF~KeH|!{t zfx2Pms0_3X9iWo5jhBij>;M&-^(&>WA<{|*s0>t$Uxso#>AL>wLrTRU29wkapFEjQ z9t+@u&N91;)hk5<$n17vhi?|$_-)-4NwHX@k;zN;OQP7x>=zjnh)p!=E0`>+OFJzq zKVa<@#YUwZSe^b#QY$EhKr0mv&QHno33Zp}r&z&-DHS%27`m*!OM_a;>B5&5rp#!nNrX3WyRq8h5Vr0X@T8MFUtP)Tcr ziX!j2HB=Gk(hN271#k$cBgAGV%ZYwUyG z)ijk7%iLDBK=g~3SJg?%IMPqsJ~v6ZnofeDYi$la3c_ zlgaG))*G|jP{bX^eTq~<~kkz0d*bP7}4Yq1dBk0!!Wu+&MCAq!L7J4=2x4TnVz;bK)q zNIkUZ@ZN*Ei~xo8F|9%HF{r2q8n`F^F9+ma)}@vCm>O_j^X3St(w{=Kt464$&RkP9 z0(@P*CAg5uh5NI=rr7i{c2HhZbYDhvZjH7W!K?^x0WnQ}y##df>v}HyipL{4b8E&iRj58B?GP{;G(kz=+P(^WSbWe9*ZTu+)_L~;%EzT{e;9OK-03WMVprIV9;D?;}Lz#B^ zsJ38#%Ub}`n9L5?5mnAl#aD+a_^np&D$2A&M74tHsKC_3!<7oeNTmWHY^Z{7 zwtAOQrX5YH6`YF-NUCIoex(8-Y^Z`Cwm5hJI$)2QY6bg8oDNvj2_1|KD3Lx5SMXaS z+F!@^{;pOq9Tng`n9L4WDxgop6})xCazAI6v|u(WKx2gtDitVEbf^mtj2PRPTT;PX zQ~*nX4k{JcLe=VI`q&8U2Rc|%!9rBPZ_q)d0{S%Eg3pa82ctN(q=HjX0bx_ zPY-qBFGehmd}c`nXQBc!1mFji3dAOdD){DzG1hZSDmWJv&^qX#Qi1wARKX8Nls-}H zZ!e*Pw$lMr3LR9I>Fed83Vw?%rYM_UQo(do0F^=ql?wFoPz7&oa})^tU`YkDQ2|s6 z9aJhXj8}*8fi{Pl!4H;HFc%d-rO-j80?oXk7JRJTyM?laB^4}01w{IxgGvROc|#R^ zuFYwOlr5>?R8&BI4s=kdKr?Tsg1>0@o=(}BB^8{B3gFn#L8SuCyrBxd+3r1qvU5u+ zI2RRMsR|yeRG{pIp$dN3?md&T{pQslNT&U6TXWD56&x@d-sOUJWEiU8w>rINQ8vA# zg6XK>YE^K!Qh}tDF6N!+Sc<);UmF1!)M5?6x zxlwk$GX$eYaL5{Zgc}9Vow!~f|4~zuZ8H1Are^JA_L-)p|73>m*`(H|Eh%g=`&3h$ zZ8G~L8Q!{nqA6xQnSHz|u0NT5tSRxqw6M%{w)$<3Z#ALw-vdBWq5#sD6p)z~DkB(? z{(W9Wj>CahRu(Ob!*nO|;p*etqh8D(52Yup-8?>N{rW*5?jHkj-w(vuQJWy*dx5y` z2I9UGi2HUR?puL4^e;o)BZ0WHP3`4K1+QuO$h^AcBl8jdu7W< z<`pd;nI8v$9|ZvPGXwBg0AN2zOk6&EO8|It0C-aXI1~Wh7y#Z70A3#eUf1%W|4%0H zCo}Xn1Hge~#@r9K#yLI=0PhI^?+yU(3IO*9fOiIfcLad@0>Ik?z}o@<`ketd8~|oo z<5wDh-wOaA2>`zv03Hkg9}WN?3IHDr03Qed?+*aze+J-4065wjClQDq{80e-!vOG^ z0B}42d^!MpDgb;k0DK|s!Ji2!g?n|=zw-v@xd3jlu`03Hqie-i+{76AS_0Q^+|_{#u*erW(s z2Y|)a_$CAJg8=Z40pR-q;L!l^y#Vmt0Pvjv@a+KbtpMQqCqgLzoV6`D>A`D8Vjh@Y zF`4~_DJYW}ClvZTFqMgUV7k|2_6k$t*dHqZ{3rmRpIQ$%$%m(Bz?%cW zn*zY00Pw~D@P+{J`T+1c(^n_6|D^K?X(;-u0XQ%c^I$|HZiz`Fv#{Q=;e z0pJ}0;JyIx_5kp<0DyjL01gL$nGtP)0)XEO03QhezZ(D^3;-Vv03Qkf9}EB=2mtR7 z0O-F4;79;CI$~R?Fb@L29|nNW1c2iK;L`!%Qvu+U0pJq>;Nt-R{n!8;3jp&YI*^_o zd^G@kB>;Rm06Y``{v-f=DFA#i0DK_;d_Dl6KO2A(0pR3_HW~uJ-v@xd3jlu`03Hqi ze-i+{76AS_0Q^+|_{#u*er*6w2Y|&9odpSi9|VAZ3;^E`0FMTM?*)MG27vDbfNuwY zZv_DKZv*g10606Mon`^>8dHlWvsbr69<)OqXg4i>e^oo=K|AC@JLEwC_)!2rKQ{o6 z1%Rn`xRBox0Nxw`-V^{11%NjOfHwqy*9U;twL>1XV;-~}z=3wmgSM@DV;%&6cL#uX z1%Uelz&iuLI|9Ic0pRTc;B5f_{oZAOL(M0Q_zMcrXBbH~@So0DLe2 zd>{b4KLDWr8-ODL;Aq?OADIUM;12`9X9B?S0PyJm@Tmas$pG+)0PyhufPG*9js<}E zb}aq-Y5@330QhnMcqjn;NdWj#0Qh16_(A~qd;q|HFaRe4z{z%G=l*>F_`3k`w*lbc z0Pr^f;A;WkuLHne1%ST{0N57>;B)|3Y)5*-4+6kH27vDefJXzs_X5Co1Hg9zz_$ay zw*mn6hXHsb0Gzcrp5{R(JA7!0S3O4>~aqIu77KC+2}CT`>;=z`Fy$y8^)d0pOhh z;2iH-u0QQjqI2Hir6*dwx`)UCA zN&xtB0C*?>{7C@#QULg30Qf=x_DW-{zm{tor=CFO51CeR0&O=nJDh$e$neLB_sv0HZ$0Cr8J$;|h&Ku2;ueQqHl7wWQgr^xe~UWN*~< zX*;qv=z7bJ?De|dyd$%n{|EWj_gfbZI3hg*^jc?#hElPC4cvISfhs=wbkB!25D`q!e4F^~|NPx4bn|9yO zvJ5Sj^PN0BFFdk@BlzAQS}+(v_P#Couo$XM1=t|unhicg3DEph| zBRALP*m|SrD0P$VwvR=c%t-O+I@?`OX6wW=M~dTm;`9xTr)^QL-^T4X>c}Q`vIB-T z=T-`^ZN(jPSG$U{Plk2klr7z|EwuZpg{?o*Tg5)r&mm?k-wEC`QXH_d)08#JvO`w( zFlB4Xvcp#P2vB?p{YY`Yl{{K0IbtP`@m*RYJW@PpW&4IV^w#O1+7O)HvY9$tpw)z< z-$!xD_l&MIfE@6>T+= za0Z4GHU#?^?ci)v+nBujD?%+V_{-&M4E-Fn3D7A{Dm%t~L55v1{kr+A$a!G3dq3kC z1Gbj8kI68!kr4LP2ir`&EIDf>Wc{TQReX>$n$(*WHceM8!`r2w5ngn@jgSNlKHhfe zyx+Ye-wtc@L&197^>h|jE${0TuB@>OH6xwEC5)5op!5b#;mXM7;1sSJy2V(2y>f&4 zkqMD{OY&suN%XeTH%sg{bftIH+x_S7ZD8~KeQsVvpU3j8bk$EydWzb9UDuWK-4xok7=L!!6NjL!Ve+mB+o?reo}e4f{L}@dYE!YCYR1AFktD z`>L}>p5!jZV6^jV#WSHFe%R`_+QW^iUZnj(s6bBzIe=;Sbf9Lw%YQt?EoaQ=J#8QN z6u&*gjxlU@qFHjxZjbAB#%?utRQt=JcDvQe1@YDeJ#n3nD-&)_-t!6=e`iy)b#XXkA02IKs(s2y10gvVq6_ZLWXxUJcX?w@Tu{*dUW=~gVDaKZWC3f$4sx}$+_ga>4QbLr$pSaa(`fol$MG`w zf?(%LHf&w@c=w)!&z$v_^E%;}iA%i%L^)ftJfwuWt>k2-M3Lu)b{4L}m`5V0X9eV3 zOucmH-s)`2?&Vu}L~bQ}liYdlTsd=;*T{VbIsY)u5Ve!qgPAr!I7z)+;AVi5YB z5=r~OqmVQud`hXKzvb+6MA;~(rW>-16jI3mVPsukIGKi0LyE&04W&e*wDqsHBNoYzq_aK)bno<$mW$OyMn1R3RnjDQIb zbsDCTI>a#<4U;MeE?(Oouj%wek!MZ%W;$3=ZJw_0o_LmSY;eY(rK!STtKXwGd_O5( zZOqUyzYQS^W2Cik#Z77$oN4z2ku#S2o4X$ntqaAQyT4~|&o@x|8Cx`Ha;-TiSL00U zCUuU-A&r&|h#k21xev`}`Di}geIpnb@{Pi!RW%Af>(-_xNU=jC57ozS7G&*v!0W1e zk}A8uV}K8WmC^C1@`6Bvbart60tvw)bJEeNY4^m_*ioNF-A_|OzMUtINND?MfrMpS zFYS-+VTodUTYa1^E2oMrm$!?Q?j@@QvTW?Z3u8puYvN=XZD>Z$NY{Z5wF2C0b*2J? zfK|al%7JG6wRCFuLnnYvC?Ba~TE+N{dKu~2(1F{Sa3S7|T>!uZAw(-0If#;GJPEyf zPP~aZ`JgxmZ0H1U=xpN!VII-}84Vr6Ft2AA-h*NST#pzt07Efbxfvx2j{NjZP7q4Gsn*_#5xbo`|j%+MJ;RCL z*reLYGXlB$b4yzbN%IrD*M^j~+SvlBiPnB=v-W; zC~XguOazgy<(Qf=Re`%pbGz5#Zrtvafo=;zco#C!Ugiy{$?C}6Q~D2WlCH2B+Vdu! zLg%20X?2;+3QR~r6(*#Pkhs8aYCT2wi;y6c5Oz#6C__YbK}3UW45DFz_u&{uG@FBH z<{L~bo0;^3E9a*pik)bTKP)Aj`9{8(jg{zh_uonq2L9`QRG5wXJ!COoN&5YjMXmcl zt6w(tkl=MN7a8h0~0)#JSGhsMq~_GzBU zeW?8GG`bMF$R`cH%^C>SWS&yiz3cVvD@Baty_XZCM3D8JIy);tc+)z_JG{aR1 z!&n|e#YTMHAJispE%Krx48uX!@X9u}(PI+XR6}()enrc-S?53st}$cMk{_AxxF>oQ zJIJ71q@3@Dtq0t;smV6uB`S<~=pIC$_&;s5OGBbim%%3~4 zrpT%8k$q?|?`l9mhRRX3aurk>ZiGs3z?g%2*+sgeg6)mm(R&Gz9m6s#`CkQ=VXEbr zJDMwaM=Kk`yE=MHpjk`xOjQjuzf@?3hYiq-$Q?#=$XH>{Wh}o-#%^U^Be39?oMURY z(C>oX@^c?ot0`KtGW)Ero^KdsF%}S5$5|u%S+v-{TAY#MT$+sb3Z{75o_^01ZtY7t z591KyG+6}OOdOiGU3-R0=Q&L3O||+i^@h~o&6@kgNgN}M;_N^z5#u={70Sr$WV?5* z-X|`PUVx(9?p>$re7kqOu4F2hZufAzzfNY*&9zgZ{gWy{qhMlfNk1Kl?$FY>=(h!_ z9nAL0>|xg9+`G2EZY>UL0j~X7`_@_?J^VU-_LuEFnEN^bkltHUtxo1UwFy=5?>4wG zh6u|qUpM9%yb>{D0;MK|l^k+Kp6B|LmMR->>Q}g*L_zOj`JUUvS2NP!e8BL=@*YLI zC;F7#6f9Q>qTqG0-RtXmuH93o#b|7-O6;*h)ikrdYi0?XrnN~y7st^d-c{CROIBbL z<=hBfc7`F)?IuhOHnW8>Gjv=o!Fb`ajfgUrn@C^arCSX3h@)awn)`@r?ohL7gAj6s z_Mp1%3#x93BklerBDpkS-aieH`?8&Og{?tw~8?xL$k4X;67SB#;P@*h#mj9@sfV4K3&@HTo0l$8;3Pasa>JM?$;~NJ0^sq<&04;DqNjFQ)5m*b#TC7J!FEN` znApRog_jMT^dxP)Im>otn2OR#7kCbxRL83o^VR3M@_}UB;(F@4zN`;zzPM&j@tyJ& zum2ya&(#05>NEBKS@ro#<%4o@%~XCLMFUe={h4Ypv>Q#h>tyds>~0HpzH8zp?k=~o z%ecGL?lg#9yIZdV;x}-sY+?w$y{Fg0$;dgl9fCiS?#uxbtArRK9hu4Kbsw(j^i2KB zJLnil!rH%~PVPG_(#neZy)k*SpYP+sk$yQExpsFCgYgaBfRr#;CvXSQ2eb9M0_#63yzme)}(gmwWVF6oA zy`NVDX4~LH)TUDjtx5CdvyzpLBwPx^+-<;^lAxkuvFGrYflyOg)Z}g4&b6=r+@T}! zl65~~GkT^uv4LOV5R+Nf%NQ9`!qtZRoA}gP&0l8=gyb*j)f>C)G;z-59rxhzsLs+I zH+TJWX}kPAT|ISrM1grSwY#H|X3jatHxb)2lA#Tw`S$JyQ!DCVu!b)idKm{(HAq35 zbYzUAEsSS9c=w3Ce5y8a39V!}_&eXypt#bBV3}*(h9^szu?R6VDPF6DGaJRj2+;Cv z^$;P0^H|Od><#i!&D<0@*qpQ*O?JDfHm?Fe_8F=~t0`Jne(-G53{rJe8wB-JjTL{Dg5{+njwGUx!EsBdy5pRN7yl=F5k{tlwn(){99(LDVAoLpjet(h+>H=-V{qjpDC2)V8n76 zS6rK-#r8_74b_hu(?C*?EY0 z@^F+tZKS^6R0ehm)0L>_l&(APsvl^e1MIx}$F*1Wci!E2zJ|+u-}0py>4>|^Jzm#j z3s;Kydc%c>okx3~M8A$Wy4+l;F~($9@at$Y>m(4fx^Re_MTYW(zejU=i9SXo!?=E- z-^BNg*LUA+$wn*a)ML4PW+pO=3olY7Kawktv@N3}l_kp-Dq<6?nucGVSa0XGzE6%RIP=DN23Uuaq6nf+&DGqa zlDVe8+TVQVdlVsS*!~cWg8UKMk#xEGG5F?LjTuD;@%Hi?%%TkNOC7EnwXkiYW!@Go zhumi521f0mE$S8Kt)z=7zxr#sg+Vv^PL6Bywe!0Nu-vRf|1#ZyKs~>>Ns0dDWsoDZ zGVsxu4r0y>Q|a7g?v5e9 z+iLGq@htv>ME#AfQ>%NT{%Z7Gs_@WsBeSP*` zsz@3i+ZPZSZWJG^l%1tacI!t6Wwb84kG{%2FlrJDr15Y*n>mzXRCRCHAkDPz**&56 zj=Pbl02$tDHxdGR#Dj`gnhFvL<&+uFHMGoz=<}s1!W3EJcd>V6iVWO*G-E$!FPclq z;;LE=YMhJue%!_q?oP?+M8lYVT=HB!0A?@00yNk}1|p zL|5fu(fq-^LYov-USyU?Ek3O)&*omJvpEpY=w^ylg^gG|0ylQHQJik&744YSCwpH(|w0z@lJ2cMP2s;X;yo2 zjrvT>sqLgW6AqiVp>Iy5ptjkT2CbyFLoKnh1+o-j63W{Uz2lz>YO99(6x`D;TgDR* zQy4mwl*t40Zt^-q@z>;dHHif`0aaG0zN&g7{DvGu0GX9xf1i_$=thwdxSjN&E zw1sbvT>=ZQ?a8v%b0a9#RKON36C0Pt%*EJ1g?sqP+mOo@S3@<5U3&9zON67J5V5$5 zmZ8EW;lj$va6FeX;t+!XN-b>&H{#uTlR$EpuBkN-HTvrbxxHASY4kbCAR|SZO4I^| zr%ezU0~-ygt(x>=CR-Q_r*zc0trLdOs7~FJRs$$OQJ~? z;+t>Cqi4<_>LLvXVczILuWP}8qUm72IBZIUkSY8ZU9mRglMe$=ddHI~>00Vkgh)VG zS;9d=eF;QRQkKnGAZ4~va+H#kcWJ|W5QpD5(3xy}JM0WZdGTN_=;YUP##F3DLh4z| zIVf0n5!kuIv9kz5!j;d~cvb8Gyn>zCy0F7`q>h=RWRVPGMz*>2z3dNJ%9O}8p5*me zxSD!R@5{0&>ot8ZOIT$fQcpNG@loQKCw>Yt0T*->FeQ>4GhiSH-Fc#~0x*KwPe~#u zBeFzLQ?T?izlr*I$cWnr>YwTm)H0O)LltFTtD=miR8V%dHiWWsC>g^jd(G;)wB3@JAlE9&SP7wg2HD!!y^ZYd zsYBm5-IxjrV`5$?9vR(w_r02!oNp!4!$91@awwGb?+sA5ws>Ul0PChh6Ew#s=Ft)1 zk$L8%H#Z_YHi`$$9Ua)~6a*bRyks2Fo|x`~UMfeCZw9@Dl4DXMUGZAs%*F*OzG*lY z)*v(!YtZY6q0tJi)Ei*Dd;{hK!#ZEGAm3>q&nuLBNAsE*pos!@h1Md zHJLmE3s&aVWbzESJ?++Hcm|kN*po7cWJz19QrJ_n;liVU(U{P}i?Y;+zO#w4Oxn|0 zdrcEGt~zgp`-fPv&=L(|6`HXazm#P;>blv0iVi-G-Pf6@o84!j^nXUX&pg0x_pP&Y zg9{dWi&Nt3T$9)Cex-6?k?qNb!UIl7{5Q*}x4FrSS5=??X~0ay!HP{1nx>wL9cc#< z7O?-k2lP9PIl#yaWSOc=qK-_WQDz=mjhRGm_KuetM*862*%H zlZXK*2XYLtmX@TThF}uOLpNBzabYGAljD$^KduladuC}CN-}%IBGNl2R2b`w7)yGfxZ zX%LysDbKA?ys1pPO?DIMS8g}4GrH_1vh`&**#$3w+fAA5CdrpKJ)vJVDta_jyzOhi#|8 z&VmS~>^$#kd5$8iGTix#s4t1vJ)$00Foa3-tr#ZVh%%F+Gi_P0uM|CrwYVRGFT{HstiHGd;r!h4^mw=~=Nt$BH2M;Fi88mI zsxFNoJ1W!Knab2Ob2|klKyDh^;+$!LVHg=Fn*yxR8n%&@9W*IBU-@o-#R{z;aAlNX zl{GBoXi3O(x+i76XaC@2^Dt-!2MFkTiQYRtH|U(E^y_vNp~%AQQ+ z;zEr|wiYqvU4G&78kOT!qmn#3gt-h;bW}4c2X(M9if1{>&;Jc_*G#I}jdW_=;1p;r z`AK};exlyxO4EbxD|UB%(wp3Yyox4;I!*Xn4JB(93XpYnKFc{4tzhl^baT4hA|DQY zD`i@q(Lv~2aj${a#kTfpt|F1h0Pn7Q(yccag`Q>p^}xiy!G1Q>&qrM$U4a0eeB3Nc z3z*{ww5=M!V}4VR3*flXuFRO%FqfeW5P3A$um)nlEAddSsid~st{Fosd*mt|TG=CS zYBfDRa;!`aW3OBO@vc4njQnE_*D2CndzGcAi#ed(Eu7yXj+~x8k|t%e zS`BrtfvjnksEy{Apjw&H+A8kalW!pDmYCn2d-C<3Fs;r?^=TE)jQx&U)?qJ$S%NbC zN~cMf(H-10%8YZiSa(Fjd^wa=jv^_fX^8C^yFo}x&x%Utw`H<1cHK)Zc5|%AvAGW& zp3l1f2p4iLB|I48QFnBc#%cH}+GA-yREE1ngyXRaB|>QZs+Y|`zqnWJy)aU&gy4Pojv^CLg~ApI0=KCF+=c=j zNffrw4FB8GtnTXC3?2FSQvOW+sKI7=FWbAbX1b$$sAjDF(jb4{Q6f`azAxp<&|-fzaCH6LBo?S!9_0XWxf_9iRviW}f*6h>PmTk4~!UX4akCXI|b%prInr~>O z@!=7@Uog3dxpJ@ChxS%D4eplhtuQ^p>$bOo&rK$iEs+V539=F9O{=2l8u}AIm#pfmRCqTYj3)|?T7U~-rgJs=; z^hA<6AG=X}LpISiCbQmb6hGi`d@zH3nB=la$oO;JQ`z6>3Ksv$e%lTQAiX5+Pu6eC zzD;_|P>LYtzA{bZ(3Dww43izoL@gOh zNC4Di$`+i7BmrTyow72QCvs?ooS5M@zMbXPKd~uLa!N}PiXhIuGgSoisQ{U8gcEQS)97=)ivbX{y% zzDNs2K;(TQjAd=_RBaLi|;qDIK9lw8rhOzI^w_7-ck z&hh{YycAKNSW0Ai5Zz;N{FYh}2NG}!>}U|QhFD&Wp=77i6l!E_2N!-^&@+?4lAm~< z*GFO)|A%(2gtn@blOjb`3IotGN_5ImzdZ9!3lCgOnasg+YhQ(!QrXhXy9KzAEvPV> zk>K(n#f5-ywZ#D%K5ewk6_LfLX^hc+fjZT&#n1=6ooT45qbL{7%A+WP)cVrm!+K@F z5I$jFAlgf&z~q0Ql!T-#09cb>aX~dglmGYZzBpTF8!#5#6-4vJao=g5>6XPEMec65 z3{}$ZP4}duW<2ELQ*~fiMiEbLS%~IaQvP99<_gyW(DE6rUn>*KXY_ZiN{nZi{eP(| z1K$qu>U95i?p({5_PhjREv}28bV_-)5`sUx8IDessF%1QrG;=W#O~2E#vS^uc-KMN9MEQ>MonsVTxpEA(XQq z<<|O(?2V3()Qjzb6;Q=j_Va!dOpuyr{-FX7xwXLeR{7d zW%&-H+r8S_dJz@dx-k4a&F*F1&55-%`|%n@j$HKU!v_4KdgLFk)}!U4w0mOw0-D7J z!O^UbsaYjmTo69|<5ijkh9TX}7mnd*j_7Vt?O7*6u6H@D8%nu|HffBCh1XKU8Xsk+ z+>5Q@k44@vez4kKbiD4)J;{9^Lgv zEm6ty_(oYWZ$HyDmdXu^)1A)bwVb zRxv8%lvP0rn1x0`%@betTg;f*eKH@ui>6}csf3M=^17HJ%r}%&eV9<<`+F<#1zW`G zmsoyRzqEd>lzu>=RVjHjo9(nU7MWcKbY9JF%0}O?BQKO{yTCu2-C}DQiDDg_y)ep9 zm}zsG8l!z1SbKBI5&VD<2_%@JJ4_*}krMGYJ|q6xj_der=4-@Xd-hQ>!*CS>8t^Kf zQwB&>t^_#ZM0nVaDLJ3i5}ta!m=ee%GnMv`J0{T?)6WJ{g`RY0BpWN-;cP|rWJ3i! zgi`1qB|x(^AbVDtE!uh2C#=V&Io50V61Fj}Xw(%4M9TRx*YcF5J2dQ7egGqn`PrSZ zujhxq;&Yz8q%t;rZThmxIB%&|`y=LOmFlu`T>tLm7@$E*l+7}2i-wkWdav<&2S%M|A#(9U3n5+L<@&DHK?mjm{^;tU-&B-P2aGo zelZc=rv6%qw4>$%tuSJ+W?rKT#v#=8qV1h;$IjC_>oAnvID{hTG$28Sg)$dS*M}A~ z-9XmJ^|{~t#D~UYp|b=v3@xW|1AP!TSeY|$1N$s)kimvr*~8&d#KlEqs*q_7?4!VWQYSFX3_=rKM6Z4KhE=TAFpBEXs*BVuPN>eGVi(ELn58*<>qL9Sq$c0l$_Q()%T)3|;rODN{O+WShZ{fuqdT$G`dC5w;{ z$s=spWJuz2MbX+-tlzaqXd4`c&0f1l;}mN@61<}&Y77e`q4tJ1SP(3*?IKuQymoqf zqC?$WpHsvmEVFW_@i)PnhBqsGNO*G~c$FOVR(mh-YNl@9XG36z0k7v9tNYg_I6N+)(qi{a>NN~0V%Fj*4n*_ z!X}!}5_c1sY?k^8fZql*LNWx6OhU93fYUjfgtDFGCO0!%gM?tx5H<-=S$XE)(UeX2 zYFy>-bb_FzcT=>i_2=pM=*5JM!{Oiy4!W?#1Uj{>OzQO>U7O?USYw{__+W)Nb4oI_ zF7%*0fPuzH5EL6G3waQznUuGEEUs`lrnJ zEPA$610yA6iVI||N%q!IQV=gImvcsHo0Jq4@|WMgEc!2XD3GQB%7b<*AQ|dhDck!y ztfffH&<0;Mg}^sBFlwr^Ygl1$>|90jdY5-gqh&!!ArE$JTk=AKFAJ)6CnNRQVA1>K zl>WJITV{$3L|lR`R(NKBhZvM_X7j?YRb0&H@CFIkh0Q;1qh~>2-d6(5MRu8cHZ|q; zKrnb)_fR&i1}O3fzvmm?@~+UFZM>1f!%|!0&9c2Y)p&E<-muCQr=NwIKs{=_VL_B~ zPSkHi4REE_#-$Wn5+6Y<{ep=luR`AzS#sq7Mmq1Ya3DRbEdkqtSK1{2;9Wf>lBvBi z7H+SmdA`!ApT+L~m+r3z4S<#tn?&@75~$Q;YZyV2yHe%BV=1&ctr&uG;IS8?1W+zo z$l~Ry^+_lcZQdnPV2$q<8$>fg^9l8@$sL!qymdPD%zX!aHFIU_;a$R%ygU=#=X`30 zOnZHK6Ed%T9;I(U6aW>!$c7&5HWwm*I{>!?!^%~fB^iRdi&NQ%L22qxJ^w!r--O1x z56V_t8G`-bcD|T1YBoIl0t)?tbJC9)sZxN!8IWJVL-;0*?QlFp1Fz=2qWLx>JC*X* za~479roLr;A+XyQZGw{(xqW(_)|$*cfZyPy>|D*7b7*)20E^F>A9=wp52^Dy&Eu%9 z%pJC~=f`!AOmI@y4Ul+UA?+tDO&Qh&S^Uo)raJnniPMq~;@cT+?#&{T;Mz2Q>tjTs zntjX(#p3cS$)kIDu{pdr^-mw=Y22UAUi;`?eH`DX)aTdf(`MbjJZ70@x&QlIZ*SeV zckf=YsRFFp_cOtPPw~de*MNKp!Rcs);M{8*9l`Nm3Omwe*x-vXKSZQZt){=J4NdWhtMegprt@su?D%l zsVd|NWIwq8P*srAUJP}bfmjV_YG>UYFOL_C3Sj+VPoQ|7sYZSadLRK;NAQel1%)tgiHX1S3Drlq`% zH+bDx&?k)KggFuZQ)lQ~HpVS@EwF>7p6%L~52N+iZub^%{1wvU^P zM@-rlEznM%DhiWI4rf>dwztfv{ter92nc*TBjEXA6Nr|;Ljet82NppEXBxXtyF{0! zU?w#C9!a9Kv^k{Z6XL%+`6~{LvQKu)x!}RT%=eA4C+T1%dMD*|Xzo8&Y4RZ1?((C} zXIzVawE4_N+7C9Lk(NKueBNI_2(QXH0jBa8R2!ege?*g(;RSALCZ36E=4T~odkEeb zme-*wzKvn@MVnfSftjtIpZR(4hai%H0zVzXf?Bx0p{aGAX?R#;1UD#8yq`gk$A#c( zQ!55}R&`QjOqjc-m?aI2q7-r?*U)yub3_Dn!-TrHHT5~l^%0efQAugsu9VUuB{L~a zP$3&N+VvE(Kax441V+l$inJngJRN|C*p9?4CBd|Vn>h0A{AW%s{px@I-0vKF$y`y) z7j1y7pqLQlGEkf>Ce;b7li;i&($h!<7N-TFRbmbbh$|!R$7GPS&R6r#J=)v_))h7M zG0tDBj;qp4q(10ym5131C)12-jbqQKx}$)*G%C>lr*E=~Lls;qrANC4d`h2+;r z43#2~6q-|04?An>8j~Yk9({|)Xv52m%n0n17J?EeJ04)Dk8)l$*J4hikVm7*G}uAh zydnA)9G8cTAHjv0VXBA;xfPWyEz|<>f1zWT)R4R0Te`)y`mC5%Vx*}F-RA8b0n(Jo zy;0HMc^fTrIUGQ&w!9Fcl0mG3&nFgq-sbP6$FY}EuR!)v=!d*ed8+#^2QH^+G{m_n z+*mZ{l7i)nWRHlJ9~(TNoOM2cA?`JpT?_hYAGodC)o&NmD#+EG8_1(`T)V|}+-=oe z2DMj$k^6(pjcSmP_Dehi$ZBv^->SErP-~uxF}zLajk~6&i-K&vW&Smwm@Y1?ARgL6 zx(q{gF<4iVxP^{i&#*$9k}^0P$6wijS*3+T!Nr3m;`bHu<3-@D=mdr3Q(oq+lW6j;;!)RDk8|H!{#-TV=Q` z&I^FH2$;x0Zc=q)#}we9| zSM4&wl2sqZiE{AgAVL{}amWstX`|QY$vKj)d~V`q zpoX-V0L@y9!6c6sVmO4u3dCrmM&VP)1U z6fxeKuy>_Xp0q+2s{pQ@@`SxPU&A$2T*omosGPQn%Tr6>(3`ye^6|%bc$ptZsDNx8 zv%L)?+h6_LG~4<}>tXyXms_Y8Ta(^@R9sHfb_V0$==LbLsozSZf|xy-4FoI+xD?T3b{YU{W5pRbUB`&Twl!D-p}=H z&h|2{=W;u?9p?d#0L{d?!6)7y%LZ@M^?24hOaUgwCA}jVN*&+ll0zBCx*=le&>lU1 zFdL-h-z92kS`N6Bll|1(EKPc}l6&8WInquJNXt!V8s!X0aH#ZZ+r1xEMFLEFD5X$^ z8lKBJ2qAv|uyu+v2q@`x_7G$@C%?uf$+_g$^RoBg9?5$vUxBtOUUgNV!rS%9N}$ZV zkF%#$)Rx7aMJo+bd8&qQxoB_d#qO*;zj9RK7!Z{JXd!>mx;SS!HwuKXRVwRrHD@zz zK=e5)XLy2T^Xn46<^@IRv^K(z(ozX2?B2C3y|+LDYlLau6_C1x8QYMDr%tA2O#pjD z^NCI#u<>JeGnYi>Ckl?wkRb@V)s1q1Y?7hYLX4p2wR%Sx^3d?C4gODF}%z&IX$ zz?1EvvKEcE!G}0h#h$g|3|jtmF8Pbp(R{|!hqefN)80pDi%mHMLc=dkq&NIxB(=x7 zKQ4%AChQUf_$kwV2R7YSl#L|pOCit(hZ*)eAhUg*D9u-QY{h4~DAF9(hKhuO#x=d@ zL`N_+LyY8Jy4mgLLny-F>>1>CI;s&F4Hacg+9|5ozG#ilxU}~z-e4=4iImcd8Jabz z3GC_B7fT%*SkzfGLoJIi(Wm&62BgLmUO5vDQk*~mGAO{RWlMV>HUu^*g2L>S(WeWC zNCf$mlD7e7pDwa!9moyGE%JWa>#JP{a#0TXEtgN(Y&+!BJkB}88Q!u+}96KNzi_9nDL^Qc=B8vtNasAJH}`^-6;LQHwxIk6GNVcMq9 zhFrv^RsPB1GRxe7*vNaxK2Mf*s6%JPXVzClZ0sCO`U>-)Gt47=M17hX==u;Y#v>JE z0f@HMbLVo5#!BQ$<{9IKnpvR@9GSgqx+^$Y&?YA);alN-2=vD~CUx5Y_@x*4Wn%SJ=vmYKn!ZFh^U0giVC8;7`gJfctlt#fXpQyHCn}>n#3?+TszfV z0zE(kG&fFxaoBQjE(9&U+~6;Xc28TMF!4*LiS&(K9?bhj_K!BE#!rUXc2t!+or{#K zn5=1B$8Vurk;diN5=c3=i?-~MSRi((UcXA3r!7KK-5LNnTu<9b^L}(R%{yfIoaQ}| zilUYWcm)g&t)_VgVzD*N`@mO#=Iv{Y!u~J{`>biUVxajAVf~_L-eRN3#n{W5=Dqjz zpm`h_FPitt$Dw&TGF}2!gXVQzEgk;+I?=pP$w-tf-phEGUSqQAEOXr6})Q zLNM>9S!}h$mbj;2!z7kN;kD30$5={;<#AYGp#J`CE?FN5nZ5YpRMe!YqFR)-te=|J z-znP*GkMZVX+SGlU`%c+(+3gVay0fb<~%OMgsevOG&M*|I^@)JfF6 z*rtZKm)7>OhAJHT*hq&}=G72P%QkHHwqnfMCUtF{Phr+mF02@i)|FqKVQxrQHZA@_ zI;$B8WcimpT{eUOoLZhSnc-mPa!z))s;|ZNM(GPF&bVu)+}9?KNx!sKjxk*EWQ%t)yd*h?HT% zDa|-=a1A|?Ib=c_BC|nODYMSl`bY1_ptNSojpmiLEj09XdZv}|9}ve1g?AY`yeJ_H z5@`D7o1T>~vo;ZIoLZV;&lH4@V-tH17Sns)oSn*VJMFl|fRL z(Nut#CR+ENzDBd4K2A3>Gc22dK_%O)s|{tZypn5Sg7qv50%{9BD!!4K=PZ7NhsC<+^{VwM&}{%j%uOw>G25*3 z^(qbMrL9+i%)Pf1a`W6^)|bn)gzH|;bi;N=ay{lgT-+U&kJ2C*YFHm*o3LBfPP6I_ zh16INwuUu(nX4FGi|=h~qI_q?H1@JQN59!5r;eQER$F+vJuhhBDoZ{+YDpgSY-D3$ zy|~^#KF+NLz6QkHTEKg1`rc)LM$Fc%eA;d`nB`%+C4#G(l@n)_rC8m|ZA9LTFX)M@ zjX2j6mWfi+*kI)&R%yZ;3n7o3k_8#Kp`%tvwn9P2%@7 zzFHQ%SU!aeX*D7N3pr z-oaEg9c~Zc&UQPgA(a0IOKnYQ4g40VjJ@4#|TUwB_y5uvPU1e>@T%Px|BG@OXkpL1z~( z{@fUNrV5q%hmhu^{N?s;5KTu-@JAT;_M6k+BTKW+BXyn2A$6$p_;8)EMJKYUH&BDf z>f;Qq*up-pLId_Zapr~r>GAe}RuQ?7RqS?uW0`_VoHVyE(Dsp*PRm#)4$}faoVUSZ z1%l34K{_~!4$J`YgkXz8G!X7(3e__q7^wNSWN#}@L&jc9AFRaZd4k|aOB$fY5KfK& zZg2K&2_ei0B?=c%;mjuae4Y?yVB>#6UE#_xq)B-gpJCQECA5W7)Kfm-|A()Tl7RO7 z(sxCdCy0W9of#9fOV-v20kHz)r|~m*Hk-OeZS~0mmF#`cknZu$K#{_2)(r?rD?}Kq zt7a|8K2U%P#%8dwdb`LI2dgM{$KZi>ZmQgX)Dh2mil^9YhMT8)G+>!UJqnVBD(DxpcE&&g zjoH5MZRy8_x7W`X+&*QuUzZ)x)s{`T7Pw&QnT~9?(D8P=&*r8hidtnrjxAGK5ez2@ z+kl7@k9u-z5G*xQcFQob{V>R;EcZ-9!p!k0DH(`n+1dd=jJXN~_zSWmi7=`C(`m=hR7hZu@>#=ua1q0LG;hzNBy76NrP z76Mf^76Mf^76MB#QVexA76L0VYJR_pnav(FsfVs(J7idyf3Mj5`;M}Z*_jk)b2v(Y zhelaIW6tb_bpJRmkEA|kk&KKaFgs^6E#oKUQ+_+iEs)e(rG3(G)oGxow<0u8_^ovW zUI($8&F%u%_85V1TsDGlTxLNxE;k_)AVINO?t+whAwxX`J>Z(UEM&k=?->0r`W+FQJ#cPo-ty-sw1z68BBM;fUG^!h*KBPKs*S1NJUE8qgk4ai_u;D`vQ< z<7J^H%4K>~J5RQE$A+D#Z>Un}7O5TzQhI{I6 zjwoywo5Jkv6dM*;5>UlLnDt0&G`iRzd)kC#HNtIh(ji_c$ZF65;%85hdILI!WHnTk zV*PE&Te)0uTk^GBHs6-q#^p*KnZ=Jz%es{b1ed#o*GP=p{plv25X5G=zyh}VQ{msP z<_VXB&Hl8Jrx}VX6$j-3ZZ|);M=u_-1G)74&>pn-9?7Kohh)>1j29sp&z5Y8WNe#` z$-0(|7aL^}}IXc)sd{^!Z z|3QN0F=6MM-kd$nmAhl(2${$A4texU+pjO_`l2O2rCYKQSwzW?EBR@?1Ht)aDoZA9 zNdgr}xAM{sy@fTmv`c;x@+3apQX!jtw>X9}q~-F+Ps8ob$*;c+g*mOKzqY56b9~}A z)nN@`URk@@*y6QopWY?5x@xrKthE}gBSk`^*{WCV(Da7OK*e;cTM2G9pO|vxiP(dJ zNmm}B)z%+NSq09qr>b{;4xVuSv-F&%E!%zwtV|+pdMDB>@{P)9%C0m;JtK)2Sw|8v zMu`N1>nSGz^6fb4rLM%x_}LV(L6qFLcgZs;A2KPa zw|v@JxUnd|6^{?{2~vf$2QeXODnULOSM@ZFpvKMeQJl6|t!yl^-J-B+kRsK2Dl9gDmKLh6B;`)b?O(}LM6mvhi9vs$ooTfwiI{c4}EQ7@Hom|m%eH}W~XTZ6s#Ya zEDY%6{p)F(#KF&@YZ0U67t;bk*<=C`6Y{~2$Oo*pDI_=>{pZddRrWp(N|Nar&BHV@ z7j9e(CC=RA2($Ync}X{H?NM3SEB?;>h)n(+=p!PN3A73KCr#cy)OaJE!4#XA#zp7> ztwm10{v!iGXWM&Cc_S&xV3=YQxDAz03ROLhXoZ-wBf%k1duOzD&mdAE*koz`%yaV9r= z!+3>lY}_3_bqBlUVljK+83bCk&n#f@ghgQhf;P>r=ChZJ zY;ieT$~>A9gRYsFm!C8fg%}3ge;(wgKA&=@k>i~U1Dm_K_F$O=*zG;boYhpmi3_7X z3$JfOp>mHLFc3Mnkc-gO@!l^%10=(K!=R(f9ldYLkUnKu=85>W2_zC%KVI_8L0y`K zHn*n~%MpBc9>b1tHQ#YlR_0duIBl0XOs&%PDDrP7a||bh`Xe}KZfk1Yjtm8HaHSVo zBmrn>%4(KFPDmpIq!X&^)rLT!R1!8R(+(dOshzrvEe?TtsbJYFoMpFo1bF$vMgD!}l$t-4U#}Wz$G!wyo z-9ia9TX~^5-LB_!yAfuM;V{VA{P7H|JdoAPvFUxRrm4*6IK2sj=aHE&VRGZ~Sxs&g zK9@k_J@T<8w}nc)Ffc^WE(8qw4!j2fzzBl+0>c#oGtXxC83)5W$2=23h~(df(`*^c zvhp+kdO0cQyx|_JRLsLDx5ggO8X7p_1{A1>gfQ1IMCKN8y%kvK5xAsg2Rg1ehSbH_ z`3v!RKLaq}V`I@tF&%SB&{?HBd-q%Bfp}wc&LbdM&?AKFeaf>3epF9 zM+0A>ImX%fb?Au<3;kpx^;?Iw80ftqCUX^jVFNCH(ZZVCKqcV`gm@sF9f1cT#v!l* z*B8?UCO}qdOxTA(s=|a1|G;umzKH^eUdM2E-nMYx|SSnD|k*ah>j(%2GlwZTYBUoux$YZswN6^6bJNDW0)ewt!&>*eqmv%0b(2skD*kP|$W=Ahi<^g|GBuv*jO5-Qh(n}Mnt3LyA*$k(b`)p69W zS~%YO30kI+r-kY~Oiu;+*bWWDs^V^=G{GSB-%ux%edOO$_GHz2TisODRVp7b{x7C3 z9DBRoue?)LUiCjh?liNEA{;GmOU`K01=w|Vmw)vr896GZ>^fLVe*Y#*-IpqqL296r>P< zsKq#2TRuv<8?Zzfs&C=@64VH);7Qdp)q@%V1GT9{(=M%gY5>}6Xr|fYEkD@iLJ6z{ zj!;rLMiC=BRi>5f^n}I+eoDbKQJwOWNq}$cmiO7HLXauyV`x0XLb=Xm3Zl$MDWJ|Z z7%Trh$g$1Mk%~W6ezJb1T$wu~#HfCu3^IiuO(S^AJ%_8cAskJkeA$ppq1hLwg=4jL zLbebNIMmA+t$a#W0!8S(5-7HI3{b#u%f|!+X@zh_$5E~Wa17<-d#Z+k$Oar)!5a8S zhJ|uQz|n_w0B1$6L96^=0~ivx4%g3?sm5k2&48m1B77@Ki-gZUH-OXb{Y=J;H;Un) zL5{(?;XW3y4NXa(pS${FB}zoLGY9F5X*2WA2&?5v*KyqEVp9)e6>!i?ZS~WxX@%Cr zRwal8%ojRqvUlK=KN*Qu8dv!t&RRyZ#WF4F5C^08l%={?wAc5t`Usi^;g*nq)-Wv5 z6&?NJx3!db8X-VveV_9%KOJTS4ZBaxJ85X)hq;Igs!*XtUFdz1JY|zmnJe^DV;nb63q1}5035P zx;RcuOT4mbd9M7^gUcKiL3s@6>m)66Bule)j&QkTX}P-#W|Kcayoy{g0SPO)hY|FE zd0M2Sr*%Xg+$CA5vqgTc>Q~sl+*%Ly_iW4uv7f912Rw9169Q z`2a}}%wMz4N!n2bmqg=ZilWwB&K0};026&M7RgOat{z%vs$C8a^H#1NC!#*d{Sn@+ zbo4mNyOoX}$9cEH(ZfQJ6_jzhE{~_9)ai~5X5>0x!_x2bWuG0{gPA2M7yVXt=t9_z zNN(OI+#ca}*carwHGM&@sC+>-k8u4U`fz~Ax}u1%fg)hd4Nf5D2G<8Kx8+5D8F%OxE z#`2qO#&Vfa#?q!5BAxX7~+Pt*pnSt>>14aes(y*Qk}mXo4JQYHDzA6X`7 zw$ekRzedHHGSMtW5eQ4j&durbX%x+I6=)_2C;9P;ief3lZ8`NZO2NVA=JdDgQlyyI z%?*b$L)RM3g>yBM?3IRv4$s~QK&Oxty&tffORznf37-K{KEVx*qPegzCZ*znwnx6g z@0S%8{}L0z^)FbW6p0HbFoi(|uqd!bPHR?2%wHxCT_}OgmJ1~?){js`6)=`2JB4IY zjmu6f7OiDUlOY$p5xwDRmU4B=7B8B`9rf5(HlF3nvLoF{GDf5p4!*2*q!X#P_&GQJ zF{P2LovPu-&02y@I`ijeJBO`PxMTg+(5vX-?m?g+)-kG$R@O4{lE5u8t$^`nvGL}J zy@CG6H1aRMsM~)^DX{NGn5x5+lPa{FK0RTD!pj>i%#SdP2j$KV_QE%^k}O(2i7x(c zv_6k^?`MEy=_b<&D;n-q9^c2%$#wn!_T|=|-akQvl@!}d^GT&?^9n9XTezWV-1Khj zMyQ^Ur3`m{R;~1Xb+DiuyO}{>>2OvK+Yroo9YiysQ$s*H#PZOw@;82fnx9vRv>41% zzkH$9+vr=EfP1q9;4c4arb1SpvW_x@abV1S-iEMxbJEfCv`nBG`s#nAVKLy^@17aUI<2(RNuXJ2DQeBR3vxv-ZLeio zipKjZjBO%ZX(@v3ukzBi;1RwSmv(&;q4rON;0EyELRx;{y+R5~g?V1pEjwMpCbLh< zNm_<)K=%jJ(Dc>K%aeB2Zl_kU4!w^R+y2OAi&^TB5u@4Sj21&En=MA{7e08Syev$9 zU_jYk-K+^@2`1SuXWbtfOFNG^bhDknZbBYhpdQ}_V+LFTVB*Wrdp_$E|JrZZr|CB> zmj3*<%pP1AwDCH659)PVWV?4Sl;8aTLorBsY~O`5Al`ZeN6QJ=9rLsoiu^7P6H(zn zuJ=-=)V&w7LA&=yI7mdGg^^8rzn@9X$J@dStS<%9m-f z{ZKgBItx$^kf+@DbG+A&DrGSE15Wy~s4x1_7eK~ecBj5zvkXwhB$Khr;4V7II0%lk zo*RtyvMGiO9?=Z!S%;b0O|HA^ES{INbVkK7Yj7@WSq3|c!eDQv1Q4-2GgQu<(|NXY zMQa!~(16-yh2fuZVQ-(ns%C0+yK3ftB0OgygG>4F1616#;gy1!SY=)__#WI6a4M25 zT~KMsY0tdsus(_V(Oq`P<%+%evr{$5?;&YMOoq}v4xx932nXDq-UqGbra=(3Lxp172<@M}Nx1jOnDZ=64x`W#=SPuQr&5Vs1{70i5VT zAcTV~8pJ91RC#rIT&~XNWr5Z{iOTWW6ucMoO`DkhxRqrO=Z`o8C7~cUFcH8+z1D!8 z36hr(eF$x@z`lf>DNp=N$R6uDq8F+w(@L1F_}ThDYeon`aC;;{;-h^iQloA~9DbyYC$EhYCE}Un% z_~%14JdOtj2&+ z!WdAf#$f&x{#*AgP=nXGB6^X$qsZ>rf|@3YHZO}iHDei&qIW(8UX3?XyUUIC(zL<~ zh-E>d(-EZhv@h;g_^*vl*nH(wuUu3DSz2&K-+|Qdlr4ySQKN{BR?=l$2&CbV$}!R) z7n*7p#NVbA3vu0UG4-JZv%9rhO0=@5?l#9eeIg19vlLPNl{AA;&1O>!Y~e&pFVzmU ziul$h?UyH1vj|VQ_)}1+etEoV3RG%AuE}Je{W7(eh3_5H(Ghmp;g81!-duav7Te56 zZq!G1V}WZ9KN$;}@C%3082pHS!enT`&pYL`SFZyvwOyV5Y`nJGZ$>SG-;pdG6Yfac zw`Qslp9AGxS&BZx^?n@Kg52 zci|mxXBzryopt~Ksh2uwOOQIC7zlu>1p<~YF%599`bAkyKyPh_L;PSnT)A_h5SF)s zOFm|q;F8aL!6iT2>3{N{`G$c!1xq}nv^~#a)hFd2|KX=T(=qSf5*vVa&rvWQP4n+t zTwGjc4v(8>P2^IWpOa9f4{2twvFXLIC;NJYLYU+b5r^;9oQfOOWonl=`Vc%zy zb(V*e`8Z{%eH2AS$+rey>Dv-8OVGUE3e4}>k^C!Cjqi@lGmFJez>39!VTuDI%P-bs zhXnI92QHK{Uatoyyg?2d>+bTL z?oZNgvw1g@0f6+jgw2%lmDjd~upz{jpP9Kl#|TzZeFaV$uSr9Tmn92<1uHkRi-;wv*`Q#QpmdqI~y|1XOV`!-7)tQb|1zYww`Sak`70_VZ2T$w%JU@nKA8o-| zoXF{yasw3A29bD!Vta4dkK3o{;ScVtGdWsGd$F113wO_vQsn}MbQu&;k{@0SqB|E&RClkOz&kj~S zquU0-`v4qp>V4LDPd`IRZTcM3 zk3=rWM4w*L7-^9-3B;3*G2vn&wgHjBlUer%$Fpr{8X|+ssiJ?dM=VwJk8Sz={f)ZZ zp$Ja$59;Z1T)~LA9!UF_>w0e=BD^i%sQ@9{^36bi%h9xdg|7Qj0w{3(P6d0~mfzZ+ z)TJl#jYmkTpd;Jz#k6l8BJb*N(c|_$je~(OOk56YH$B&P_pjFFp8hqu%*sm>`qrN* zmmlum2$-jfnWf^IrQ+(PVrmI&%!|pT;>x9B^HOoe5^8X|e+lI2E)|5EDAq3(<4eWm zOU2j{YdooaOqcL~Vq5;we6}Cwuk}T**tAq^Tq@R)XKApWL`92|mgaZt#}Q22h0?Yx z6;~~hX|SQ_STXt1{MYRt6!VWPJ-P%m*B2Y?b%%z{Z`(iUg996v=5N?P7$`|`?Gi9( zQ_TG2evY(aqAbndx__{h@;5KduiHNu^OEE}*ISz3vVU-0@kWHa>81It`v=$i$E$fU zwKTtB|9~Yj`aR#-KY(r*?Ir3S+~A4ic(-n8etiD`o=x}XuiQTvw>C^I0r(s+&A)B` zV3K5;mgYC^2h&&xS(?9k|6syP*hE9GTAH8RKfpn+nDm!y5C`n@`FT`8MOH~?H|n04$HOF&*yL2FM?mp zc%rPhu{`n2vV||=DAbm{rL#nT7%!%*rW+VnFlA6&YmdbeNOV2e|3)w2Dh79*eHmW@ zGv843?P0J4*4|L`>|xy!h<#nL)gH!{K=yu76mQVu5;FkN*S@55fr)W_ah*MG1^1Xd zH$svJHyW)krU+h`GTpA;k-wV@KB4z;nck7la+xvLtYX6sW&@8`;q#{JmL2)KxO8{q z+qtl!&m1eR*ulKwx*6X+U9a4ce+XST$#U7GpTL>f`0O#p#M1b}yIpJB$=f z?8upq#bs>c(nt1b9@2H=j{JTun|9=PaA9v=(VdYbBq+1OdMNKc7gRmgl5&^Kij+SH zReBc!k<4mv==4FxN$*=|S}-t*7{5z*k9=2o?L%6VEix125Fj=))bRa{T##;ED(FeX z$t6Y*!Utvol%)Xleu4Qc4G1noMaa~&k|L;AMfh$W7s-&0-;0d?Zt2bl^L#H7+YIV^ zOLJGeKA9%olx!z|#wcm3=}1&CPTo{&{e7)-iXW-BDFz#l-h62Ru^>~pmhUzSR6cj(WUxA3Vl*)?)0gP4!u@!U#12oo?lfSSmS>S0dCJV%I@F)YgS%_c-4*+W)e3Ja7Ha*Bsb3iOTO%^Da zHeQsCkH#t#WF_zoyA}fkl{LGNkg$;apuCbT;gR^KBweYdVUS*qgM>ID1I4Su*fuo{mTvYWgQY!Nh+pFaRZLAbF51`#m z>EL(y?!|L%UD9@>RXYTR<8`~ot9FNzt0n>kYs^3*V$$w$h3bLty7D<;1JuXzCm1_5dF0?y`m=qHzb|f*6T3E1rMi^fZo&Z|w$KV09+&!AvI@TCK(E_zR zEZ78l9i)+ppqNtYra+3LXPB$g<)?H(j6+u|Pw4&y{lJ0Bmw$(wQ~s2Zt@k6E5N4tI z`BW=5D$q1|s*ncX&_Og2U6sb8pyM6|$k(`IeO{%*WJGDx@}r;SaZ-=w-Sl7nA0F51 z(cG9`)Z^uPgz&(il=m_{0%9KZb)z2PBbqFVG^w6FsSlIo$L&(6$K`SEdr#Q1o^{}# zB;I-uqW5p?={lXq@m=1ccX@Vn@%2kY)qHy-L|CQMKaQ@DJuGz{J^ zqN)7bXFPZUy?l{-2(^_=!jfVZdf%t8LOhwqc=5LUj#c{lH>SJZ;Vq!I0M+5VdyVFz zFla8J8xNM}8C=m&tXW7P?-POnNJripvn9sT>`H(7bos+;;s-D19G~fLbo&Xx^Y1wSk{Cx zHoL))Ad=DNaCg)0a))?ZR&I@V6tkI8RvMV zEG#y0_g3!QFn23=g}u9lJ86{}?IelW-tKkOW^~>D7g0MCb2orkqr%CHx}01BKCd|!4qm*?|A6PheM3lAO$8=^#Ah(2#Lj5<};5shG;h>*-i*w&Cro2MS&}R{;|lXWaWMC^%*K*kZFB{@J+8#%Q%}I@SvoK&Ut(*XOj}Q- zmq`jl)_2?eqfFL~HYqg~ITr`P5_#SY_yAl6{HG~RQ6)1q$LWOl(5(o`s1UN>e<8zD z)nqKyk7iEAP#PZAPbTvxe)`m}|H@;(|6BVXd53A-q3XS_QPtYfMuk&-kr8O3wuo{E zn)n@(kNQ^7ODQ%YYgzfdp>i%FO*Ba>7F^WfgO|`@X||b>MZoTIplN5~_Z$ORPO&71 ze$BFL%ILaU<$6Bqq*|Ev^iN?-024!^e2o<&c@{9nah>SUFLQs6AG65|wt8Al#h zc89l0=ze$F78V6#42!(7HzVfBzR){`@j=?|l2@=UCl_ojbb+#bhohoG^rh_h zDiBJit--Q9)K7~_rv-orl%@}Me>lhCzd}jiBBi$19;6haTh$0O3_!XNX~jW6*)|Tc zLrghxig(Rw$-pMd`!t8O*3Y!1ARA#V5V6frqe=KxVLt5=GaKOBt=PaQY`0*HP!XGV z_b9^NqY>&en5)kiDcGz``?%aB;8mk3WJjA)(`{IY%7(7Vtt$`U7S?asYh+flb^`~S zu2J1*12eLwBMIt3#&UDyl5Y)0o2)$b$D(1HTrTv8d;2t_`{jwxFygXhtdaXX-`CE) zh;U-Lzh?*`=q#qMCPp|u1l_u=i97-;3_ELdK%5>(>kz~|nvNltLC0W6A&wT3YVq@+ z7g!C2?Ie5&ds=sY%iD#_ZdOC)=PQXVKZ#EH%wX}`Q8`$%0EBcL+3r*n#15;X_D3+h z^4~xaSJ!!R}B% zR)l#r+-6mb`vOq8qE*pahRoftD!Q>t&2`(0b-^%&;$?%;LZup!s}WPI?WW~oPbwT& zOmW;mQt_2QPh(MXojr9Ps$R_4i>dm>w7uByP&xKMc~)5c|v^A-h@=f83TPK*QP-2#~bJu)cBVW-`?DY=G zl8#KK2YO?3H(b)gXkoLUZgd2ra?@TZvluM}U9X^@qjaXOP$Ho8*VmQ3>Uw@FsIq4h zw+YZhkwwNrNRx}R86M{1c7gt${Im!GMsuN%c0%1I8A!Ul3){LA@0;}$w-)(47`w>s z`0c#esjXDGoMwVt!Gqj=d;1U;A|JwY4s*mXBckK%&)@FL^c!t*Xp}>UOFa|VT%jhr zuclMy{-Jm3{|zH0>y1pz%zKR#o>Ceqvw7M`wKY=V4kloZB<=D^lz)wxSw9Jm<6{Q7 zkuU<^auKT?Mo>P$QqQ*YNrqC5rRBVXrKT{JPq%68jkOsm0^N5G1~Y|9N~^vhbHnXK$NK>dxMh74>l1&j@AjKK9kxPjIUStYpa)%-2(AQQisv1XLFEtT4(9(+#_42+LU$oAcqLTIxlOKZ1cET9zP zM`lr2C3%rMhF|sUw$l=7L8Y=xCgqIoBr}o=mI5mwhdk&d;IpR2*DTo6)eQ-EBr!k0 z?YNLqf_wBq$RZ6A`^#Aqr+(332-OyP{Gq)2Ig0Ypkwcsh&ndiqGyvJoVwK%Bj+jQ| zJ1uOH-stJS8|3BhCkr!gY^7areeM6+sl3zja59(*m-i)antSO{e$H8JzT!Pg$Vjhobb#Oz>S>alp(o;j%y?p!(s~ zHbk>bR|?T2Z5pD<1uE@1roCI3Hk-Z27`$VHm9y7^OHv>hZ!FHfah8%qKx&tGYBg~( zUfZEHYxObK-q3A;4v{%liujuLbdt2Do(rCZC)`TD{y38f%ZiM^I@tpu{75GJwxP&l zXZSdmT-hJX86YYhD{qot)0kk#j6!%Xlm0k(R*o?{Cm?oArI$ zBG~cHgQHd)MO{W2k_9Dsw|k#AwV}WcZKpNnHz(JrF*oRlKh`0T7;oxN>N49W&s?&# zKjpcZHL){#KY?h@r5Z*~Z%{Dv4&i@rck2-TCt;zcm{R<6L@`ZUMO7uTPfzjB)gI~Y z8nkzVI`VdOm;&ApajVyDr#U`_r?hcP6Yo7v+HAV|@KU(GArdB2Y_sCfy)aFLKJQ{! z99h3jN9RtnkmBeAi48+Jm%P&yW+Nrz z`asmg>2^?!BL}lnWryYE339T-F4yU-8p#f&^>~LS5svQNxnOWr;idGMxn!qml|CFx z9cX*VWu-QlFs-(bo!MeVdXhc;9Q17oLeiqD@@@^ykKg8!w=jWd!Hg#kEzmq_hk3MD zjz7R)F?HO2kFV!58k$)xbKC_*tB5;(9xWMg0%G*>BGvf_(nQr`_5^nsTwtTzHe~?$ zlVNyu-X^0ShLD-(65boAfA|#5HAog?bcfpQTb%_ z4xw4?mx~kqrdt&knHCqZop;7<%&2J`$V`;tX3mScx?`RPu4Geu{Gsk3wL=A%4a`Ga zMKlkoQ}fW&eZ*YNL)OuK9%jKW^qDlvhJ^u!N}R?>6yQpLh)<+cWH^oUNbEFV&$vzE zHTk{TLE68tXa#_cj+>__Z!o?L}LWuQZ8`IqrYf&Qbspy&)*4vf#JcY03CNB^9> zQ;HOk*Ixx+`}+O*sxzP~%qCGQetljw>A*vli(TaTA*H`e=`}DxR%wU24Ma~VMW=U0 zn`5dJ#L;VYUtT4@0l_$A5eC^#;rf?8cq)(HXA2yFJ28=h`VQ?g`_BqZdq`xj^^jn=t2AO_+19&4f9dx|#me8ak?EJ~ZpU zNf~-Xf?ha41Z^?f=v=rKuBFi;VTmX)TTONS22)+7t)FSY3&?zr4x z33o2MIeQl`IQWU~NnaUcaw=yPZV$urc|_w9?Ucms*Use@2F->H2UaKnSO+!YXex6X z)C&nsc5p(8=!^oZ4X;u2l)u867oST2)#kYQH#yD^k{*l`cWQe`7ZD$hh=GA|#H*=)#f;^j-ICdl z$^B57-`5|b1vqY&X8Izw>K#ln-buHcf!OOvB53<9T(H7!FDBJ-?5317MoBn4m3tRi z0Qs-VgYU)rVXs#FTV?*xp!>1;&cnFs7W+N|1z!J=fvnp&0LevaQq~XHoGe$9vJ7)7 z*lc#I!sxb(8T%xQ=a}sW(>Y>eyLl;J42;CP`^X@Z1sgSPMT8kEpFZ%6%wiJthX2$= zoF`^F2@By^KN)ERDngLRD>NfCATrP-Z!(>!ZV`6iT!=+<&fV(^f_@Cf%i`^!5z;b%9F=X`O>dq zGX85YuRQuJWbf+odA+cGjbr6iyNhX^wuYvSQOrEm@u>T1s$M_;O8U*5w?;%9_f!w> zH|RYzFo$uVlO(JZ=CdABTvnx!w_r>WI%H*UtWxBS6fN(vrPx%ZkYisg!_L_WwOn4M zV63VX2B(nXiYf(e`c;atMlGAG6k{R97>F^L!iD>m$BOmyw>`GExNQEb_}$1>+r7o6 z`2oL|&tJ{&74w%rwihSx&GS93>xXvUZfNejrJQ=>E$OO_x9h8ox9h{^XHZYT9B(wy zhXKES-cK~%*TXQ;=-gx@MLi6YjTGHRih3BjjTCmMT>xP{3{#C177uyVFiba6%rt7L zhhe6XVqGIeJq+tYiYX3d{K^eNhPnp0dyOV)7~TQa>;3x1`+6AGtLYdKlww08MLi4~ z8YwPoq^O7CvPO!HjTH4TY;2_1)JRd!hE0tWmp4+>!*F>c#TAVd8isd3H1hHar9g)f z!}OUmC5zZsY*vH;+1zMsb3m?aysro3%0@S@YNV(K#6p*x$G|XyPp^7w#!`J4L>X5psgM2An6aa02+u5<`JPEWEcO zZID~M631|tQ3_sSmMW$#P8>Bo`yZ*g$uf`Wg|SRA$_X}W&51kLj1pK(&^a_8wquXv zmlMt}LyA%Sa)K7sWsKsN6UbF{ic$P>0!wn8VidoeD2-o+c8ubeIuW-nV-&xfKq~VT z;+J1ZG&CH9J6K1&7{IKNATV zX4mvOZNS>Xo~X63(7?=43KIPK&f4*Y3{u{FX81S|mNU zrT}aRvQc@6JxQp0p$~c2sfn322Rn#eFFi?U zAATp}9x{|&_v`1khYZY3ux}_sNQPg8BzrFxdJXFtl?;yrsjZ$2qMa661+A+OrLiqY zI)f*J5DiuDp#^>f8 zMQFy?1q4z8`6BG7l%cWJ8Yg%$Q4%(mgGTtgiha^PnB(2nzA?CDUAPHz2mo-#yHU24 zdllnE5r!?^J+0HgB}vq|O^jo46P|cCCIfw5$ui%;q3&%NGT80&_UVlg#4lB%ku>Z< zK7CpI^5k;?QOk_KV|p^+OV9Q~*2kpJR!Q?RFQ0EDMV+_$*2SbRRY|eKl;;{rZSOx# zn~q8M#-?$Ab-O&Mr_cZf)=I4q<;f~(r|gu+8c9vwqST34>a$f+U{pRIlg7{ID!$7> z>@ZbOj9IF&dQBw^Cf(bZ^J7eyOVi80&M1T?mFT)jmUnA4C{Xi*L)82wbwbpf3Z~1w z`u5j6mC)UCZv=UXKR|h~dI|+Shs5mUNmCbE;73rf04q{G3GZU=Fkn8AzDnZybd9YuTvI>kyC&4H7U`GGG2EX-u7S_&b%2ii8J~G+$quJ9+ zHP&9S3&aivXV&N{EBcct$lJmR zH2TioYx$1S^(ijv-7GFBLXNSQQcmpzJgJrG75+NEdKt#mEI8qe!OX*^QYM3-hXE2x zVg5fOOescN{s1V+D$IjeB^5g{zn!Q2z5>>f5EtLqMkE$bg&pY}9&Mi! zHtm-S&!-~*( zB)etbNASO_Q^LnRWizH;uW8wn+3%}XAEb>T zFdrQuFyEl}k-=nnxtv1lRkXfme! zq5#yjT&n;i4~`K4nvQi`Du`D17zGtri~!v_eOLuLmbnC=sWkz#J~nCgF(bW;i_5Ph zj|vx7Vh|P@2jv$9pvx@RDgbTt*DEpTa=reNFz5=EunG*DtlUu;1lbdSHmnJtE0y4q zrWj_OR{@|cmTMJ&uJ+d}0d!5QU8@grVropu916<D^BlLP z=ml=QZ%3;@;c+wo5P8+M6##L;o%Gtg657Xx=eO4F6YHiDE#BoU@0EeUJ^A->I5pbG znvE`>k54i2OL`H;e!M&vKhwlkxmN{Qf5k`-#;1X8EEg`8`F9B;+cbccY&2+tNPhx^ zL~p#E0hr(<%<^sGqtog?N)4Qx(M@?@q}W>BY(+den6nGP!rD`@u5uqEUfx(9)4#7zlR$hmAe zar4IuwvJEAa?bsMkJyXE(;y4eU`}sVP)C5y&gx^bVWA4s0A!rsLRuRR|A44O)tg;# z+UQUC-xavpkC%rrQ?oJ8PIP@r_lKy>wsdLZHE~1b5X_x=8e}-hgPZlrWNy-Y%*4j| zg7UgwuMd+FykllO5)i@3Tu0JFeC8S1GZqf}RN?;I{bbui)b2#mU%5c9ZYG*rq~VMQ zB-2bSK}MIA52}^(XkJ@f-6QLBT8Bqq|5~-m_B@&6yEbOU9h^8Qu*<7_?*EqD-q=@& z?28)%UsM5}4BW{DC0UGr{nMV<2H(7tWKI{G*WB(^gzK%7jYBIlH$dn<1-g{U}6x?2a8hxMGV6Y5NJ&OX%4VA<-t3@Z9#TJrY{t z9-;QgJwk@v@&FhGgULPzroJX!$9dkjypkLGM^1V?kJ+Kh_-nf+HSv+z?ad)NjD zDzoi{P*R-=pbdqrE?_qTKa5>wL3uASInFA1hJb}U0q@s<1CKITp&9%;Bx1mp@RULV zVF`v+9|x>37W&GQdAqxB8p1`t1Iv!lsGzqGSwtx++5FHR{GV}Ov#qqo2=GC=i$Fx^ z@QqD#l!!eD3`YCk4WA29KQ+2^%9t=^6!`+?R!srGWKLFMpt3yM3+(Gk2{)lE+?l9< zT!Err9wSh6x%t68MSIVi6YvN4FmpS$6B+Bs(Px)6X%~N&Nh?t%zBu~n_#!MhoqZv^ zaAqwSY5Dk%hC+mefeMUwfXs_$m|m*QY^0%25mFr5i&WX7X&ST8)IGWn0OZp{d-e>* zw47%^6h9-PR?3hdsI$7%2`hRsov?xtmK_enu4tr-F_yx#EDiA@E@{aMMFA3MZ7%b{ z=3UtG1oP8JiHo+!GIQX9v{S$sj28w3X~;I9*`#ryLK9m@O7PE4`~rtuQsO4s-kK4- zo~DuF)$Cylky?!K$R>k?^sKs|P0J8EcC?tB6>-n_oGmrU&;@Enb74}M3)$y>=ou^C zD1s(AZhl*7eL}0m`*bG}VODoC7mD|lkALtPuhxfHkkJtTk4QJw92EHgioSQjV370!S+5#5@m z-b?I^#TfGu0OxGp(vR3Bi#`1DSs}NbU;}65^sCr%9d`;CB!_$aafY4fP7ZGruM7`Ybsrz&a z!xU9uT^bYSF|E~SyU38Maby7MRH5T+f)ciKQO89Xv@8Kd(Mm#3F)dgL60y-# zfi~F$PC*2Zk1)oa2j%BTQTnK2ti`fo$F9^jDofKQPtxx9w|wfLf!NfE(=~J`FBf%a zPwW%}spWR-lwCBC>J)?1Av_~I5-O|3Tqbl;&2DYbD4ZBNH0QrpY9sO&twg*o_x-2k zWSfW3&JZQa#pW{ucb-mF-_KSLlD>1Vh2>_W!oWr@(n1u82#yu9rP`fd02-HEgijI* z6kcnNXl9SfETqqp5HgWSQrX1|S)5n48`h zE2_XZ5Hcpo2tua8gqCTFGnhWCK3&3K3PwUY_H%}LBBa~83h9;u(jms5WSo#BB-p-yJ=g zzbcw}HNj4ft{KKU3IB~j|Im$`x{FZwUQ9|7$*^r`wk0#X&<--0tVYW`CvBA065w9o ztH%X$5-uhbw!=fEk&ab6Y=vsMgDi^%m^h}$wN&W>Og-2BIM32*4=2-PcuE*=ci0Yz z5e?X;BVk)qt^^T$5rHqUhpfys8GB50u#5CSk*_$L>#LfNv^q8DtR{)% z*NpyRNaC}2yO^3o2xD#;Q1#S@b|-hP6W_rdpCmF#@bc9}c<9Ka+M zf}+*K@TK0xk?+xR!bk~c?9$>QZd&wuGXw2?H(I>WZ(5uH!}ECm^3o1r5Ii^okrm3c z*jQZNJFLgUSoJIdP-`wZjKV~qit7sQe>5ND3a_D}N{cZuiGAh<(nD%n zpZew!)|PDW4JnD8pEKjX>Eb7Q7tb1A%G6bBDd>-kOGm65%{LlXK~xRRzU(; z0W^m$vJ_#!oQ}YpGuTbdRlr0+1DMEcF$H!rL02Z#hwy~nR;AqLS;0OGH-oiN&?blD z*4YL^Xst^Fab0(65F6|$$mZr13Dt0LgcE@*#n_6eGhjg0+3N7d%ciFk0IFpHbjAWA zD1eT}ONc;S6lQ^RLIZd+<`Y2ibjB1Ki4^ZNj8r@wM*W__OepG(P!wm9lnKr+Z?NL- zWN5Q;D9Y%#x2|`0% zcCLVZqt!jWf$THh>YWSRImVYlvbj3^j?GAFsKW247Q*jzrl1Q}v^Rnk7J$gX99CP-9G28}pUpgo_?{rR%TCfUMUEF7T#3dRp!MPw&#^6 zEZt&5f1GBd>{Bud2uxxt{>-rcgoTLWwtT)p`2Y)GDo^?=1sU-j6|GVQgto3xz-0lh zqNbq$;wQC=%if$VLbo}wti?f5amo<0h+zn<3(F-B=d}Hd>sjMUfecGl@WVMKcTLX~ zQ-TeMnC_A>P;|;`(+VeS*y=fv?|?8CoP6>o%R2QY;n4+>PF=4Ajy4LFq(+=DrYeZy z=47=voW$%^3mCK`dzvo#5mxlGSU+Pj0!lIa8`V(c zUJ)rlU@n=3f~d;5WSi0R)alZMk%0Ep)gX2p8)JQp&zpRFfOq{#Y?4nm`X>nhHXH5A zY_z6=cD7w_?LlCtnu8pVa53hHwmuxIhQL|94*@eUf?(tjpr^t})c@J+*__koxGv{- zi*tQC@54QHZf-?{zS@ae9nPvVbxn7w?+jN0Z18&;jn5E#{l7J|$%T2&du7Z`n1>60 zMw-@HVS-EZ=XJ}g(-Ao;d$9LwL>aC(U#N^Kf^sEyJCinA($C5cn+RdtoN)^7*En%N zQefm=P#KWp13^qR?#Zjby!Kf>XI_uHn7OEFL}0UgFl|WYoJeIX#$q$*oEQ6E$zXV4 zJkXzlYegRAq;ArA)MVgMQx%VD%ju6Y$QZ)I**D`+ZH1?tb{=&e*G#oRb^ndhb3G3| z_9$_&l8Q~KBG{BgQ?imFzL4BKP-2$#WMo22Y7}|ailWx|buRgfEXsP8KD0w5XS(K8 zhH`K!D5!BNBazIFb|gun<-xT9vQQFv9P`y|l9ZqQ%};!&^Nk1qFrkz=g))UeQ%p9$ z!9K)YCIffLNTzsza2KQpb;7y^>rHH@1Rd(RZNw0?Ss)?-b(Afb`nGbR{GjOA8aQTPBAC_HT+6UZ){*Akop3+vf> zN_ePV%_V=7jiTXf6PD6K1$_rj-{ovx6#k;H7Bz7DPs4OMt+G9ypYOewAys8NYl@^N7t5F!COLOREKpR( zjViIHi$dTb_GpC29=lG6mZ>~e`;6*fsFtmI3$~~tD7PX+R<>kK5XI$XlL%d2&K$pv zH;OzSdm>ds*f*Daq9R20CbUD7sT&9pVi<5SG0d3rnOyCXtS0i4?Lzk2!`wE#jA4=K zK~lzSc3$!uQ7eV3);g(e?7{X23tee+Q&h<3Z+BR8vI&To<(Q6D+c5{ue+FUcIXmab zMTBmcctJ`NsVR>(I{uRZmPZ8u$5M+$H;Qc7ydO^iog3G|gqHzi{4;@WZ*S~O-d-KVQgcURY~ z`&3moZ4e42rd6C^)C8ZP65}XIFd>QGhzTZ;!7s!i8Ip&IOo9n2IyfPQBqWj4>I7d5ukHXH;Y$30*U8s%_84 zO%bfy|HC@GC`Vm+m0>iq64gCa`Bw#<)nKK)PBZml5eUCTwSk^pFk~W46i+;-89trtU_e1h0a}fWwP9dhY zCsnf}q;~fyT3!Ef%wJJ9W8oZAtx~N&wg6+6L${#90U(a~zi4LvDnm*S0XNhSws0Wh z&fe18!R+s|e2!i|fN_-8-NPrqe_vsN3UW^<78>T6{uk8uACwAmH!TS&$gg`K-|dDs zqnmv#&i_JGkUMil-Wj^nQbB&n+u=EeU8wg;s~}%{@Pi-fUP1*4asO&nkZ*|S|Nklo z^dPT-c&NNM734OXb-{>qoA6K!gk>W~usY00oR;EMkQ1E7aYCkotaKlo#FWGBU+~lA z4wd~cp@JMEs&uRGr@D4)Yqpte&ZiINX%avUW)aKf%_7#1l#3KZla6qTt5-ngLvg{Z zuk{wB9?`HLfL;GsiDgUJ^&!CCs;)!rLjwA6h%g)~kE@Ms}fN{NMCd2Z)YAwd_lVYL0S2ab*5s_@`YLX zk8yOuW~D?OYuG|lw=O1F+Q9sLmY)SC=DdV!MAKEhsDw+s&dQIF-EQUgz=p*34Gg>h zD}SyJEmPYIxAL1r`M9ks1`541BhYmdC_CsgU2EC$MX9mnAMXYTC8HJP&HTr?C`3a@ zTF&-o>Hui-FKy-*0G2lM>&}Zn6m>pyif}iJ}GhK$&AY0D?+ebY3N&^yVH^A7>O@RAVfLE+CdK$5k;d zo^(<%La?mJe9V~ztJ<1Ezc}6|*EWuIz?A2kMwhK=pj3pa!rsqF*2EP&&?|Ht5E?{3 z4-Bw9JkT(3ol2HV=XkXca)nI0$IIMg_YpXigyWQ!R!NwUPcarcW}*K=uv#`r7osTE zPi5yyiWfGUvU<6(c+u($CX|0&4U#=;ee~BTt!tydDcTi9i&zBAyFprzFjZ)RCY^Bf zEEgIvzPubng+TH17FjUt1sA$hX^WI$_8N?lxiw*Hm^DEyqI%aNbH00oj>y*hu%38m zJ)|d8n}zNp$Wz*RfMZA@DWo_5J`C=NU4kaW$I5sgX~W*&dwADmU}`((i3h)gbK{5g z^+BdcT>W?~^T=J~M%|b)%HRvb?P|3TuhF9ADP&oW;9)diyHLK*QPkV^V?b&O_Er^(DkmS+k3+m*dlpEG3RJZYg6D7xx?0p#dBxwA2bn0q?XDr z+X+{^*)|c|*&ExQn99$W9aZOmpqEV5Jq1KMOdt8H`?$6%{XNKU%7$psrziMSz1`93 zT*}{6%4%E62YgCV;9SaIQp&#c7v)W$U2K&3xi7miMOSkvZ&%8JMN^7el2Wrl?ff$p zwmki|9>|>n{4;vLSta;}-=gMx%q(a5N*-3a#hW8yMqwfYs^m*bSy{9>B2l@NU$Azh z&NZODiy}Ov3=RLZOZlr-w3U#4?<-WZ06H{W6eO4R7Uk(rZ+jtGMGCBR*OO;7o;_`Y z^*ugmST(`Koxs-P+<*V9KKIl@Cj{Y)5PZY0@)QrIjGHgl8tbtjJ3*1Iw0Ik9pOxD@=;{ z=YJ3ZT$9%NSE#Mu^uZJQF>S=@ANb%&oYqe8SAB3*Kl)jm{D|- z`rt}gg5&h#K4`Zk#p%!ZV87P*xx<>Z6Hn`%Yw#~KH!7@)!p!${_)c;^|^)& z>1{rEj#N~QxDAUPU%}jEq$-0V)nQ*)tTQn@gZ>&|U9CL2%^N;yC5fXt`pC-~=2k)q zk*{zrl%1T*7bELB63I3niuA!0+%@Kw->9~cM14OM1kqUc=(sldU|RYf_Hy3w-TQRP z$}Rr{hU=7-QMT(RCh;0Etr<-%)ncyI&Yx*jRu%orpUbd>F$6uNj63*HC z(ENPqfLtqd>@02DR|~DNV_ni$Yu&E$|HOr^8&kB_c&n?$wnmj|9E;~`!Q(#)NLt() zQ=cWqW5XZ$*E_y!brf}X^MB{R{3lKgR6R6?1$fjUV?7BzX9WgddfZo8euTSQq-j>- zcA}EH!_LrD*>W-H5*+-;vTMFA98PTz=x#w^kveS!bpgZ|eDJN(*y47qMi_sKDqkva z_)vh#lAzP>4GoY7m^;C|i(wMLy1Mwk^I!f`32L|iSe)&L8-=;9$a}{;_LhWLX!XK= z`EDF3F!~Oex@49BEo-*1t)!C_lQO3OcLQJZ)XByH^;kYGF$9wKu}70*k~C1L%h<9| zz!+qWBI;~;5W@f_E1fq9_i`X?FU@_f{8oYO;|`!p;GqX*IS)*Ma#Iu)F%&KMx5y`- z=D7eHM!1DCGAinj3$ zRX=I6&8pD)vx7qGFCI1y9v%uMfpvh!*gY+Ma3esEBerwv=+p7nx-h z5WI5WM1o(5#_=+-D+~M7GBv!_J8L_az;BP1=l-(krF+? zsqg9Hfpq?E+mOVK3mmdf6Xx&!-5Y1p`CIS3aa&DZbDAX#1sNC@s#LOc{+=S|2&X+n z$(ho9Jo2f0m^X!nb&&1BNf6gW8n{9Gv9_Q|< z5uDIFKmP!e*IGgq3SHFHISK^cND~Upq3Bo(b?H!Q_u*Ccp}+Ov82j+5gWOz-6B$`- z)-eP8iGJd#r7EcwOhvv_-N`l_d#P@TW@~kc)Be>MG4fSvs~s!Mv#KG=w=QeUA_lQ;8CV!3T77aE9rseqc!l;g!t){&T?LoeWzbbuy_ zXJY*}S2bg$;$c#do-+Zlq$|N_Nh!wI+VBH^O>dVf@Q>=YgLGt+iaMqSu%1e9)lR@zpgH>YUv#)p+W zIMwSmV(r9+{RosyL6amGs1ikR&W|{qhtrBtc-;5w6TjcPELln4GR){Ybio zq5=cJo$gU(vuR0A(2_H`L|6oV#_7r?`qhm|sZ52YA5~no!iCCrUX*KOBvvQ*bDo8t zUyICp3>|>WR&~@$=Te=-r*rHj@V!DPCu#^Hs~y5cQwy{E`YgsK-{_M2lCx`CqpVTlqqmSG@Vpw90p2egVLIG2s7Bt9((O zSG@h-YLyQsdgaUiyH@$qsleLANm(#W7|8Qfn3RRCHhMph*8PLE?!}D9h8H`37Gx-= z%MU<;`nEwhp11o*EC;x6BHe)8@}lM~G-*SVKbvt%UzGuoA-IttaDs{mhiRM=41@Tz zTt`r(NJ}OvafmjdoW!!sKIEjUfz(cw$`_HPF`;Kc5d#Q4P}_Wtfl!SJJ^g81frdJw zj}|OJhauu@nqvg89&VJ^6Hy4&P_jYU#2gar<6I`knS0C>w;R?I*C`4C-$~oy`2uY6Z@uBmD3qmU%c$nX7JreyVH53Pv;4O%whovaIV8xE@cUp zh&V5?u=2@51Z8peQ;I-3ppSC_qG3+V{(Fx(A|ljNZjE`2tvLNWH?XaV>=a8Kke&WE zVa#icqA*p1mz8OUfU69N-Kt3AVBvh3=`&CKw_oW(cL-xt`Jz9m7_kOZ785gieW71M zH$@?aphfgep`7+jjN4pahKhmQZd%}pBqL_OMQ|AjpTEK7wcL6p)rHLI6Va4Ka;0vC zLW(mrvo&U|b~A|b@@;lf7cJ2Y3c5muQBoQ-G4MUo%FWLd-4VB0^I2ds+F2atIsy7) z9ia;}*>|Bg?V}UDG*Ozd8cUq(1h-i8IoAnwz{hc0B5_Z0OSSLdligVymo5@_>mPBq zu8-tBi{b{`+hdlt)qy~N&k^Bb~Q-m_TFN+)*yvtP%g=QAsi#UuGC{`bDJ zz7Di zpBtEx9x@@v!+r1ijA6+tHubS8p(!)m_x93O%zlW;QrOV+G)g`D(7cBG=4;(qo`?@m zMB9_@K}?NcHD_jAIS^OU6-f~}J=d$UC)aGq3CQN;E|F&|8xlpF6w?gZNNmU^r%h9x zf_BP0^xA22rCOu12?wb6rGIWL;FT=#e_M$kjpJfA=H=C>cX+=Vy>qD5!79Wl z0eU-+vy#MKeaAtBG9=F2C&jLoEXncQbjUht#b&D4qEav55SebZpaV`&T5C%xs|tix z_lWVw))Z^TRFDErm0{Gb3=*NTuTj#CR~)3(ZCOX86p1>8!8BD!OWaX<|NF(zTD(Ht z1q-6excD;6uz#@7$^Z-smKnLho{FTu@NOO~v<%!Nwv+{#DT7;bCp<}bjo}Lfr`?5KcseP?U4(a#le5oK141} zfi%GV)Yxd2T@>(ypky7DM4;=c7>3o%HZ{(C<7_U%6@Eq~Cwy}aUc(z7R;C4t^!|lf zvW3#mvW_P34MsX4fLTDg6*^I#bd-z8lHQ(`Mx2(e+Y8MXsRjWm<@!{Xi(-^Z4dC$v zPsoBGO0)RT;rBQ|ry(JOrs|9%7&0P|Vj11EB+o(*LWXtQ#>Beq0nn<_*Y!8-zWzuI_VWe~axI(oMccjv0bXmL-@xRpPS z!C!|W;8`|ypz_g3G9IaAn^GnbK*SMDANnXaXbD@60P+RULPWe^XXDc^Dcx&CA_0C4 zPL`l_UN+d}bgO3bi2WsGK3GXmGe~4Z%(s z2)oGSqFKC|uG;99L~fsg#Nm`u#}6n~)-otq z^-*=4C;@RiDP6is$A)tGQ>=*`adEIQR%GwTNI)(A@t|4uHJXFUjNU3vNdjY1NkKOb z7kE5M^L%sZue%AeSp6DJC3(@8CMnFn7pt!16041c>Nfy6C7oFL`@wj*6C4oXE32b; zYwJG%^$%LY2qVBnSpo22blOJ%NtY48`ik6^jR1{JVnzV)cRA48aN?u?MK{seUju=| zi2=1hlx{wjsGOe6EB8BhUn;qo{82lv#X@q;WhQ&3@cJUtK1zDrJH5B=8t<}}8N zL?Mj^!DQAEkVBUo?6BD7{M*wfTw55SQd&G%iw*+Zq78H@eagk@VtYUznq7-@B2iTR z(|B)t12pjJ4FLXTT;rOFBG}?SA~i@MDsHRAtHf&rnN@=YqLtFt3}}D`5h<+t2XQvO zm)bIZsrnaK@)_K}j6kjWvwlA3hqUc;=$Qk#CA`XMxlVV zf)9eSq94v3o+LfPAQn=FTNS#}!>Ot1>|+(7+Mo4q=rrHEu|XhYmphk=CHA z#o6jtX)0*OvO)#>p0(iQ1GQ+j`rnurNi=&vkQ0>KYK6gB?P{=f$kj^Fi&42+L;t8d z_I0DB2u6B*EoON@#WNVSxD8~QzKcQ(1Pm~f;uc^=dIMSLE#t=J^GKU=aI=fVB~G$+ zMK&#tk=BFuvS_BUup<;~yqx4zbWma6wCd8#erbh?Ihz?m-Q5Sg-MmITuyfAv^r(J? zThTd9)=h`v)_5yeCAuL873wv}B&^rcAuukMWI<{$chEfkbdtDG!RS-Mf>HXKgK6mi zRML&n#Y}1;FhJ0`nwTx!vKL$GplzCh0I^FW9wrS4pfeH|%$h+7rz|P!26O;s^F?#< zN@}$m%8J_#)C!#7rrDG5qB62Mqg5{Et)Hj0=yKACqFl-5atgBvg;|ja1tL1im6*Lo zaiELt68TFChVsY;t>BmKw4q`POX3dP0LN`Uk)8`MS~DTw2Bu0u7^KMI26HChhUqn} zk<(O>D>+jo|6jgWSOwCj-Q2FxJ1wX?&L|e-2y=^nA+NwQna|aOTcg1O2bu^W^#H3O z(g&EbH(peWR*AjnD|~S_Q7}p>8uK2bqjHMQ2uend1lw9c?Gb*fXTlGK=JX8qr{B|L;k|@YkKSn{3{_RnBQV+@ zwVP5@(xvK&gJk-wOHFehg18MvMR2V8BwM>Lf)+|VGSVw#%xtje2d(r*==>ptuNGyS5?SQ?q16+Q!7eN@v#4&E&bW(wX2p#QFnaGAF z*r^I=u};@F^u_%IJyz4Wj5(>W4*^A^ufCr3(A8IaQA0@PFRj;S;4j}>YbL^&*kmQ)m za}g4@!U}_U^iz`&5{l=eVJN6$@`Uq-(8!m-G0klo3xFjF8lbmEW{|!Lj^nt^xoHU} zb8}DBv%q)eIf5MGYCyWgA!wiox(-`aAt|K=PBMyxe()C-kc^NT|Tp@mKj?WQinC)l7# zA)3fJz+@S0DtZz@k0U`Sn-8@}^%WiBGDW$)RG6aVvW7^CE1<}iD{dVmh zfW9c^-hALe1@uKR599+6E1)lmc_<%vQ~`Za%p>{0;|l1DVjjx}o>V|z6!WwKPxyeI zS{U-6?n+U=$R#ZT!BY?jGkGt$MP{t^I1pVJRfhTg~qHMtuj7ttQbBX!N)}!Um=2s zMCz%o_y$xF)6L7JkVukd#$STR#FP)E%Wj|3Uoz%)~t7r4|k*8ob1y{V>n3 zi#0q05J{tJt9A9Am|szj?oaXEWLg!B{Q7t-OAEFcYK3JXkOc*!lP^kvcYLudzKB*L z0twGsoG(iC@O&|@{&!jHLxoflZw*`{u_K=2TzegZu&JTO2AN$#p9xO_$Y0WGH~wzk zDxFvpJN9g+yp*?=KH4IqfUXdr8(hPWio=!67;050S}khe1A zM1vd%T%&?DvW_BKH` z3>u2i;u`CoNjzICOIk5UWo&YoN=!V)c84U(aC1B+!iajRiD-k5uuEgTqwlN@1eTYU zO{AvPQrV0pLtzgAr!l^|66HoKjH)q^8d;A+ZO8+3h+7F1F@R8$1XhGh9i>B1f|IgV zb{6_?G!4aS3tDX#XaP!41^sZVcY2sNk(*=eN@Pt~j*#K?T_iqNl)cx zyA6jiXxFIH3`U}p1pzVMx+I-MyU-3a+Pr{Hsy*#=l2M{;;f14<%KU?)leD@JD5a|s zjCS40sAa)ak~|d=L9u~wluaZPfMSS$Vbn60u9I4#$crDCF%IMdY_u?tMj3uJ;aE!Y zq*2Q(8f@3ZKpI7FNM}@WDbgsrCuo(CM$e@LeXSoF7Z9qoD0ap4Y4uZnm_Zq5-gam; z#WYw6m}(eU&GOF-fzW4`e;eUTS81z=G$snwtCu?#78$1zv(z&iafGBm+ok5$V)1`p z#$d~G0?w0!ax=>Z>qrYNAHj&?=K&|wq*3+1#N$l#P+jOX>nP5ka3fF=_cHQBC6I_O z$4)tshC-e4iV^G*4EL0F;&L&YxW!vonhe8I6K}y54R47>bu>-G(9uoDTM89acxuvA zH&P?sVr;<3Ku@I^z1Fro7FejeoAr*hQKYh&0qU zx_s*jtjLM7=*@ZF3CGgM$Q3S;G@rXa5kaO_mII^Jk!DQ#AT_J^(Bh-rbf)@yP(0A^ z9{*j>RL~nJERtS!;Rjqw#!+wS6JNPcU`+4xpJRJV)e&Gs@h>8SwWPg;a2m=0eeP9d zTHrUbw-@ED@%)utUAW$ff9pkPi&;AHS}WcRq=t`Vhoe8fSV z4w>r$WZS`BvR(QBu?E?wa!cl_RTH9J6d><5up@Z-!!6b=?b%s<`o?4hhDag+7 z(KSEvzq18b645Zixuw{m#mK{eminbw4pREQcBYd~=UQ3uAmypW9_(RI8=1>kb@COe zZiip$G z-c{sZ2P~Fq>qXvMMyDtmZw2T%5a>OCK&CgO2-owQe^#gwdR{qJ(CGMfBzB$*Of-3K z35CN- zbNJa4W-PSZ%GAVV&?!yq!D7RlL|H;4QJ<^F6jVc5r*js2LOg{E$K3>G^DT)&>C}&( z%D8JE)ERLKY7u$oALnBLJ_Lz~+n0b2OoTis&+!A5WMAcL1!1tr_h1ZFXT=|?PQRQZBp6Ff z`qke6w|Z?RLXeIrqKQ)rUWNmtWCxgMOUR=d^lvG(_}+uOROgH7-@5FPyg)NPa%FWt{JMviGhfZi=Uscu$x?Gd9GaPG-(x3Ynh1wj0QmF|h52LApjF0HhQ%D5@ZRhx@D`D)zaajl+JKh5_w@oH2R9trf{PAlLJ4*PzR288Ku z$m$r9##{oZ>=`0R)G0rfwBX%gL`uY|vf~-%Cbj)s9`s}j6QQ&X1TN}+V@N{v zeu(9ocqjU80;d%08aPa_~}qYAa^>Wo4m&8rUT!dgpET zN9*y$EWbXY7Ix{Szswf|ry4sNBQ=H%dA?jhXv5~>B^2s_%2s5cs`7woQI$OxR8hi< zDNyw=t+E_WPR=0+EtXfeYj3W<2!Ax!oI+`_+1y=+0Z?d|K<s@X@TkGnxQT`mrZvk5np z3zgA|g+SY2nTakfkGF!wwn-HWgJdts-k5`QJdMA$(2t3VR3)O1jF+qjMnV{V@nW+u zNEm<^$bjTUN%ORp+!n&#t4{(1uAvW!Dze@yQIbi2FElGXgAZ%=rBCbqHYQi~T}1%I zaS9smag&&wNF6LO)aTV%M>xE)3*jgb6?#SQnH#9czflB|k%&jG55mahzQ@WVEZpTJ zD43f0g1SnKcbP;#2mmPV6TsAFGle>_!w#Bzf}U01Cq{>P1QqVDjrkW z=E%IS!k17;@A)WwA4qT4LmU~l_@Lf@!F{j_?&O_A=0Zu!B4fiR7Pq2}MwRTs-wZol8PIenDU07%Be!3*J>vP6C5?)?8rkIv!Ftfg?U6yc{LRCa&IBM zQ|KZY%Is2lV^cR5O*?mO(R7eSZ!rDB?&YOg3T<`X=gyT7iS!icJ0G2I}&H7l9){5_Td-TMz#-M_tCKrAG566 zhmUXQY|^8x^F_Z8pOm%_zsL6BE4}T**UiXoAAZsA!!Nb=;giSq;aeWv$*esV@^H|Y zSD?ahq;dQ!Da`GwcMdw%ayp=Pi!@Wk&TUQp?%!qykK@CNV4Cgr54HFfs^z?zb2lw( z>X;MN>a3I83J+}X*F@A|0zy2JZf82Q5dJXxs5adStt)kgN!Ew>7So{@d7T0E2B{$78B+@Dm4(g;L;i8DW;|!2RmN38{9?@VF zZ>32pDiBb_P-(uARxMCwSs()%9uLfi3}D0UovLEAQql+b&9YA_D`Kcm0&S}#s{?1E z*HfIEvRQYNI%6FtWzJXs@3H1Q-JL>o=RrQaDF zUp^&!{AEy-*QwtU%CRJ)Ro#w$C0U8#IpSZd-;Fs}Jc-T{h^luLE58#vtI<4zRB8#5 z5*=68VAiHe#%ZGC*s@$K!fJDvjWPHUGe(lK*(<2SN^f!}6{L?jZPm&mCMDl^^*dtWX$+CU)o$uz$1qxdVoPf9c@b{)Z<*{-I8OUR75X7 zXjPAi0D=z!bv&;%qky0n;x*@>PZI7m=l$fXNrXm#Ktj=&o3_;NXOi2`58{g3dc!QU z5SlCz(kijdQSt>eN?{aA@`h$AHI!!u1ryf<_RlQdfm z)W8HOS>Yt)gjaKhhT2%idqAvSeg#LPh&DlrCP0^B2q@>*!L0Vxu$KzS84)cvQlB9T z2QU>xw4oi6{0!_>3Ne8>SE$RI6^dQT3gv{eT%ldQP>l1OWv4>@{KtuKCC-0P8I6*& z?s^~tJV97EZ=jVVj~Te^j!p2Z^+~tsvKllEC;FF4vGLj5n$J z+k5oaZF2ZoFvF)U)DNH-`DY3D_YtsCB0+ zXVaB)HO5;<2Ek^L4q!oCLPAq|x3Ol9=QInh{7U%}^bWut{3Jw3iVlwQPQ%8T?TS-XRswS=vV`_ zQB!A=K**dWtrr(!u@}uTcdjEe3g)f#!-T`|BHtkiccvEmfyK>;mQyfcbwWjwPX-sM zBVzw#;8FRhV$5l|H=yTjrJ1%JT%sRL7ITCiy69FDwg!<{2^Kr!t0+eLL9w$B@h9nB zmBuO9yec8W%Ov2pQqgG)E}dV~ucD!*9TCtnCmVsdX0EZDTK%D36@rW)}ed*ERpQplez_6qXfp93=qBkVEv*R;)!zX$JkILra z8XkROZYlswAVzeMu2kQPvTq-K7u*L4d2D;Mu0s_`0kqPeR;yV8qXx$&2IX5Ul^uSU zbPq*_+~dY*CADmf0GFhe_Z6Jb=Ej6pFnHKtjH&VfJ96tatG%9D&bHr{F>@hwXqe0C z;|3MF;`nqqeHRhxt}HK7R`sUCPR=|=*pqP!$#y^5X8nNt2QC1i2L6Vq zGV^<@6apR}DL;ghur)m60)g(cE8f-BVo$1Y`}0)zlIr?=IXjh@DVLOoZrd+deh5ZLcB4E*7D9wC< zo25M>yT!rCk$U%6@`hL&%&tp^74Q(_V^AO=oKb1)a1cuBj-AHJE~eCXk?5!6CPs7! z0B>^QULhe%0dm2gAiipv%=4Hnqx5|rzVqQ|rZ&LF!ek(Y^!ALiU)qsiCWoiVK2^6; zbuUOId8bD8IAa)%W4D^*2&6{@L^uk4SB0*n^cieX2PEA~$s;S?nNUg^s&+qkM;IskS@5Ul1mUvu$wtmgmEJQepuo}a<=NN0c{hRVlmWydPw0o>WkvA zqr*$3^sA8c%9=u!alq2Amy20XVf!I-blgD(jN$-BdIPQ3xmw+!0Hg+0Dwb?kTK2_p z6u9RWPypIfrusa$Aguq~RD>R`#2W8-Mj2lwLDd+&>96W0!CEipM?WY{wcwee<}Qq{PRUC1w5*pNJ@&ej{I9~M*hKf5x!#5 zBl6FBf$26GaYAemfkBGxm)J`%N8ou61m4ahr9&a5Zq25Lj^c9`o#x6`D1K!Vl$7>^ zIIvp3LQ7YT`lNR|uz1bKb-7acbeHjJz-t1kQkT;e=Fv2K^ys_)`O|;#wPW4}8brfK z@BhmBYmv>%$RXf5FIvLYY8?1b))wB0i*EeJqb@ajckjjVC?BoSQViM0}6pIU8xI_&&w!B&7Mzq)$X#2-{gfza@C^*Y0@T zQYn^MiaS31A3yLKlGy3MiuCJGs3A)e*%;| zDSd#4J5|LXhK%STrgjTjJjnqlIeH2lU!;1>jpKmJPMBJ{iKdg%&Z3T%np&!fpeI#K zu$F|@!w{klkfR-Pq6Cpz^wWQ2hg#@DaH9Zfe2v4CG#}I&lJJ@2+CQdWiq=;O9mqSuHD0?H|8$G0%`;NCHN!iVSQ z6OOSWyn*V5qv5~*jYseQ_{YEa&_`~peqN-UwJ&}Cldt{qpZ)b`{@|znF>;@^AQ~@{ zeCxP^R)D=MFkK7RM-Kk@n7 z|H1X()FL*6>#5q>1nC#NnzwmN zUrl5Q;5)|dUQ1AL#_j~}WYIEoqm2%hi|DdRS-O~+wt4eLZr;3+n>TOdCM6<{DdG=(pS-st2;hK`B4JGrozEOJJRJQe_TC@m6|olUk?7CkRQ>&N}Sr=xH{lh^OOz4wnJfD|IFj@*8H1?1Z5ga3+x%AzC>WoJnL; zNCzqb;tI+%y|5MZx4J%tb#AG?GV~#X<-8C~zsq?c&^9mn#SBjR2t1rTZN6E4J>5p^ zy~WD6+F>a?B!>a?|0;04Lf&qRL3ATno3bnb) zc;gR;Eohqz^b@1!?4WeWQu;l(TeotNH= z>I3_Lqa$cbL^@xbB_iDpl*J-}ljN+L6i;Jc=ycpTLicRlfa!TKJ$lpkx;fz9JuzL) zmnJxm1WPTFjh6jkUTiO0*fqH_!;a`%tIv4fff&$*V{}TAT-ssm&I+B2n$sS|a!HCbt z=Ki3Cf=E)yO&IWz*jRh94Cpwz-p=eiD~x=IOmUGT93L8H@}}@cQ7TsX9ndagM!9Su z?Sr4XABTdp%tan%h{mv~X0ceKLvE9z`FezPQ4Ciy)RDksOj1dM;(@HYZ7a9&9I)<@luq<4zdJ!z!OkLA7B7DIhmsikZ7)$DF~%XqcdpaiNXPj zN|D1um#%uF30arn70u2?u?g-9~A_j1=A#huc=U0Yh2$>wN!+Tyn*+ebH=5KuM6{SPbB? z-1{TEn~#>+zRl86P9NZ-f4%EJ-p^QK;ub%`%CE$i0nKuXRwi#@y~_H$)81qcf1ADa z^LCZJ$x3~RR<;T)FCBVnzChOKCKf$u8y5{=^fBC_YfOiEFbzL;(ZQq3S+qGZ#r~r2 z^QCR8Ds&YQ*%{&mNuB#?ov>Z*ZnoT zx$dv#&2?W6ZkHh7lN1z7x;Qs!jcX_ql0F!;{cGpQgb{n1+3|u#!BwsXxysd`ON1q| zgFHaDs_sS|#zHc8srqxs#ZECijgZ|(1m>U~z(p;R21>cNB@KT9E^$V8y-l&h)(@Z5 z;)0h5U#Q%2^CRpjX;afqEx- zsvDu!bOKO^y%dA2QY78lHvu&Kz6oI)x6{O+AXM1zpRlGlbF69$`zO>_M{kYBDaP-g zXvIh_kz{TbD)vwOzpch|8srj06^F6j&XsJMRcu>Bve zd_Uaj4xt|pwfe!`pG)*(nd`?g*N|fLDJaE8kJ>jqaw4ixkaQO#2n7p!$n#JU~T zDrrr|>r!n1=3H9_dv>cyLH@XAA0c2bgRFlHQ!8mZF1!tG021Rsx%i(8PdfUtk`0U zB7^=B`YG}-xtee!N0C`Uk@V7CN#6y9=DfiT3%xC9e{tDsyTAwg7ncf!VhH4)W%y+g z?sL(A2vYSI?AFv`^^?T`^BBCzu>g`3ntRfiYvX2UeG%INCn-IHO;WA_f2U_$Nx!2f zaz#;sKZ*xzl4dL-4xo86Y{rD)*tY6p4zVp(eer<7LOdj}Y6J$C4MG@?Cyc0MDv4jX zCbF_0GiJrDN$(&66_i3P2Q-gGgMEq#{~;U*h)9pT9XRAr9${=z-jrzE6&X zvq)VI-PebqUG5{@Wn5P1c1)uGO(GeHSY=B8LGOGo@viCw64ilTphZpm&j`>VE%8Xt z5(~vFZ0|?e`XEaa)j-_w%5gq6TEf5)n-k%v zEsU9DPg+3y_#ngWN2L&k1l7zM18uBX>r4(-U4`_vP}etOJ8mJZaAHI{I9TKtyLlIH zO|{vjaF97k?>W-quHSUNkt9YYEL|)*C9x1K6akIFHl(w0I%L# z_1VX$cWGk1qXP7-tcq739E{Vilx1vliA>Q=?+#5M9$`^ynyQq&Rv`k7EP@DN_!*S= zE$wk1kVvD!0)Q*pxQ!E~((MnI9*bnq!pO)Cs9}dO5PA3KoSzg3^fowkkm|MF?x%iEfE*zU)lsf?#zuju>NzQXG#R{97$o<9C`-$i`?hVA96S9FTQTkhVLBdZ@f9A719w?-L`l~#DuUP$MTz!EJ@!#niPu*oDYK^Ao)9;?$ zW=d3g`)5eKCVfhePsHi_f0^g6#XfVT0x*DaK|T(DsJ&Jx6OC@eE^zfpPw{-CTI-g6 zhO>qyCp)o`G;H~izuAADi7i{xQ}F+mB%Ky7`pL0gj($d>p9ZXqT8cPRftaTKv z#Dwz{4NnUw8mBfhWT1b_Lq7YWQb>H_(Vm(mapigUnV68i`2Lo=KPdtIrR{H#qmZ}1 z;!@!Qtfq62K?!@GVN|Wma0$o!=8mEy1a0S#N>P&cL#@Xbu z)c%=6(|QgLDzk*hfg5;lY@-}`h>Jhef{LjOpIT6H-Cr^#g~ zW^U(*Op~gH`i+yKDyyw5Wtd-ZNq)g>dY4pQ)S4Eta4;AS9Y?;k<#4X~l);o`ahRj_ zO|u#}gR>6I&`Ty>_f2p43{5okmm~)&A1KDf8*G<2+ud{bWjWSU94vh_BuF9Hq!oP7RCFtM&1>c&Mjo+ z(~$0zbB9@|JGHoSIJ!FN)hf6Jt6KIhZ3jmMZ}1hW2OjwG@I%zifRj~Alzpt1BROox znul*g(oL{8niUuV>M`D z9?3%u@Fq==UuUhzvYiy6amY46EJ}TSOnA7F)oq?tUCw{%cjLJ1?oa>#GLA6SMeM|)?iO?d z13b*rxd|oRwpj%Xm+QzkB4<;S2ZptRt>%2E)T~B%yewWaXhA~f#X&2w5}@*JE#g^4U%l%P#O1i^xGUJA;T?~xs zw5S1Hmy0N8xM361!VFb=KY;>Yor@@6df+TPs@mwIMT|r{1gx3nB8rTtwSz*^D;Lp% zJVg^8@;_jihn6Ffu!fLptGBymI{|>ScNB#y=uSmR1QM7E<`gOoL%V!e4i=aM>K{y3 zLkSV1*Qn5PJ6+*o-Og!Jp8%^9>(;?IdJ|A@7g%UoHscW7T+BU)$!#%?Xi1;JsLNp5 zE~wv>Sf)0h=P#Gc1dUY_M4HhuwS!i^OHTPhYO?hum_N8DI@u*D0h1FCCpKyeiV3#k z$oDvzBYBy&sm(aZm)u@T9ay@xpjK1@kOUEo+F0kFt@VzlE47as*B)f?BBUC&-HWwD zAcBF<+OeD3_%{gt@IW@u-9YBqZN&mPll6=WNel(#3sNJ=X|)u2z(hmPmsW|sm=fuP zLv_!~3BG%}uT!R>%K6YV!Hn^siJ}<@Cz3X5Wp}JAK*?v8Ea8|3h=9=r=vO|}6?ffG z^e5?ISC6;GH}LcSCB>^QOiEX|O{-Uddqvm~0+ar{c@?)%B$NSKl@5O{an-Q*%Ji*l-bkL-G_>J#Lx`qo!Zf3~)cv45V9^H0gg&=a3%~x8>@PgrQM)+gS zCdGLMuXw{dg-OHm9I3vYf(tk^A3eJK-S{*n?;(`nUI;2HHCb+WCtvk}g!-iH6sn{} zwUoCbNf%8Sh78zholA$Xtdx=jW&anL(l;i>!=I`33skj%ai(B`)&8PYi$D#)GP4a_ zf*NP`6t}8lz>VU&1uz^$uhH}ahC;%m=Vl;UvYs=oZT`A05MlJiHwfLLOAr*uZe~!* z0v-6RN0&j6o?wim?Ig7!XCO?K zjYDhu)LJy6n`LKnHJitqBtu>(H$7f@%vA&tX?om^b*7a~>E+}irVw}j6Sa2VP zL|_9MHbNGo&ZtvNnuJ|1RUVMk2?aYCeb8@(rRqhM%?W8;B7SCr4^M zH(Xx>Y2Skh8x&5>7hMpUMNNM|LGpxQIS6-0ddaAAbT0sI4PKGg96-chJ&^D3_ zX=21_v`t#O+g`+o=^#fbsE{TWZU8!cK_r?%Oe1zB0t`|3o7iPDVZ@ArL$-v-2qZd?TR8_?8+Cl-sMDh1=RT$~*2pQ@Ym8q4Ow<%y7R|p(|bS9r3W ze+7QaFuyACPp+)b&Ne3Z&nC0eNquxQIW$J{>4S~t?uqF`Z=P#34_`jBhlpllW`?h0 zyASU;xTC(Kez0EOH8DLhzGHT5vT@;cjgh(81}XPX&&=+aByD|9!#}2`r$!nxbGs(T zW_{L1b7pLMYR_D~IXYIK+A-6Z-7z*b+PF?d&CJ#(_tWYfGh=(ENZ26TY@@kjWN&?J zDg=CcW*P_P8WcV(Y^JVz2{G>=&9++`sDQ7)NDHx zmIH|@Kjfq6Rs8Z0I+pMXey`?t9KYlFt>kwCzZ3c8)2t~uH z>n+K;k!F3iF|%%LdhOY}H*Ox?v}xC_`o^<1Y}mMa{mAspr24gXW_EP##&w(4ZMJ;7 z#-{4c!|R$e193IlLEq2w@KCSD8qH+pFrzVwv*ON{#4Dq1@A;s;)3%1vg zy*@GajgY}8IMsyPC$r|P@~)j!n(&A7vQbyM34(+oOSbn{f4L5nG$8ETxEv0G{Q~wapGEe5y)a(p}*RPq|MV(`#d+IYg zCdQbT&;*9y>c;+w!&gpCk+3;4Hv*o|)F%$r56@f(Svh>6vd z>NAdx?4I_Zm~70})$FM{RORsGuIUNEamViF^rV1kFE*)mLtgZCv@z0b)Mo%px>0bT7QODS1eS#vPhI{Gmt|kC&%udtI9W!(L z0p*5`o6b1%tg|<7Ij6pBWVErHF%Yd04wv}-5Wkc8CH(sN>DwT`8o$@_t0xzX&Fr6m z{Evx{P6~n|8cDM;OaGZVOcERFWNwNMHb!O}qZ5bQ=-Fz@S>J@1jjZ2t=E#E`6#=?P-2Pa*r7Qx_Cq@h#3da%j_rtW(>C-rL{`VRp2Y?5n=24tpHEHcjWw zK2y1OgsHH}SKeOug6OxpnUiYbbkw!T=v?mTiGgB~xfD`9^0c%EZ$8&oE~0>mn_bK ze_F(0wh>^nWNL>AejJB}d?n|8$TXEraNNZE|iESnEp2MUx-n zByiE>AE$ychRoa02EN^$(*`EN;xYJ9yGqbLZ|C+)&fYOGy(i4QH{x6jnUD@=v;GR|J0tDgL__fzs5ki^>E^`*_rk5<+(}q@IUoe zqqoq*kMNVu6C}qgtu>vJW3uy#>8Xa794E(SV9|S$-D8ajWX+v8RaGNt3)k{gSz}WO zFJq%YzdAh$oHU7|y*}+Bo)yxL0;RDL*h46eZyzR3T1O~vZfblA`3AWa33zIjD%*;T z?(ymWfTy@VqWNfpKTd&|Ss&Prlg|$$3C_)qO-LqPs1EZgrz%)Q(r=wxrvDjB{&($uFsl=$irzX zq{~Y)rxG5e;~5%dNMgbrb9RT9vu5CW&DkCG-3+x!pB5J+wHZldjpmTBTK|sHCXJI* zm_{4ur3hR`%x0wGj-p}t;M8>D;}c}ZsZnXdA;~hQFCieB6c^d7QTdK6ntazrA&(CL z@~UcJ3Q00HlS~1TgAJ8GyO*HlMj9JUX7*0cfoD_Gv&pVTqB)5EGlNIX$aM3t>%Yixr0o75)|X-5xJYy<7c7fe}29oxZ-|JZ9JCa=qNrxmt0 z)86f^rS8v7Nm51UL72??gur6SoTzQDPVyZa?Wt~;JTvS>U3Fc+ptE)9Y0M%>(j44q zZzI_w)5Dac{RF{A>2^;yfzdRPO$V`n^gHJEqv4D;oD7+S&smon*P-dU{4H=B%!3wX zpP?Eiz=bxABJoQk23omc3aMrsHS`9CWCU4ydI}oJurLOo?T%1N z5XG7e7hWpO#-aR%V^(rxIK|mpgIT{=0#KiRB#^}0ayG;-Rrzc=HBbl5JQq49(9y1xK z$7G%!k$O3rq!KDG2eq=gOOTJ@Mcd50ZPs_Vmbcp4M|x40(Dq)!YYF#P)W)W%G`s6# z*aC)e)t^ zK}q&lKbs6E#+nrg^5$_w=!q3(%1`F8(RHDm4^WQE4Q z__gqR_Qka-3)-B`Lalkb%`+{!*6Qzm`Y)XA6{W%oKK#J&CJ8ya2-GM?I^3;T$!M%$RM|e0A0I z@IM9yvT23z&%=&ngL;eS^v39#5DT=(gzxu|PqxO3JVIH`5b$QhNTm>&c{K(eI+T9P z6vzoV+cnW>$^t{rrbc;(f;xQBiaI+ut1Lq?9l6lnv!KdG_(V&3}J~|K8Gb1CU%z&BFm{Oftb*ZF-LEYBM{qhNA~M zz0t84pUGsPXcujgT+-wzns6geNrvy^skVKTr|i#fb#&}%Z=?+h!gkN1@(S!iJ!?_r zm9~X;oxhYeef|=&;_lRJqX@6+*{7PphoaHIW^!!Xs4b8qrrV+1AU>)Ay zY#bb$o|_3~@z9g)X7d=;gphqyaDs%|PtvQ8rg+9-WLBop@V;%-PZ~?(DRRL5D@^Dz zh1F*bF&^5A+B-MNLWG|!RK~xYCdBu4C8#4FytXziNQ4h;W}{on`#OH&$1l}Jw}HI+ zC&_j-zn7{vEoP%Do!D-p+ciBsq58rYY~)?5NRmV`U^bd_IiV#Gm_^i&cT=v~sVNk>?7BgBh#=Hq4W%;#6QGd`bRvP3?;!uj+H=hLg7!n;tv!lD}?EO_A6 z&=y9l$iipyt~HO4USZLj5SH#Otto^r<6ZP$zw1wMT1(}(z0J;`Yfo-HFugD-qj{Wh7en4Y~zx(?wjeAiqf^X2ua!`C3p)G-v> z9K4D+wehV@mg}~&fYg{x-BKVez*sUtyvFgWM$8T4EQ)7+MTllUXU`V*y-$y!)xwY4q;$Q&3qnsy+7kqPVGYZ%98dvu< znEkJro@clA9>9RTV(b_ell_xbfH#O$k?L})yhHV)tC^SSRA*b+@P7^HvH*Ju3= zg&X9qY_jGTJxjdSD6g1)^W1cEZgS-hRc*~6Bn8f{b4q+`LD*k15duDI_4D0U3Tz3y4-f875 znVV@K-R+;7-7!&r$KmKq>eIghzq9yVe{wb2&hrxgP2ctJUGw&c-shh4k^YOK`S-i9 z^4r@@{(GE99ei11*vhHAz-d|_^Gnv~jBaipJ*l^uN{JUkaYV0SJ@mlh$jF-y7 zGn1~FK3VA8k32fFzJZ0ep>IDd zN|VCh!>`2ee0~@3yO5sX#}MsSf?qj9AU@r9yNup=ix(+l8WlZXIhu z&fg(h3A)DIACTS`t^>hW`S_w&4?32Q&QqTSKmE4xdlNqi6lMfv^(8n~z_r9JS?SG` zMGR%5rg5%b?aab26<+NahydJXe2=2HQT|(K(?|GeY&vb~_Yp6F>%a0;{9j)GRx`6bD*_{P6DCq+K2I-`AUUHtWPalr>l~eTb-MYu zhjzW4c1Xa1Qbr-%2LLvAgoVo?zC!$|x$u7{EGK{v|Cb%%uM-x>3h_^N#Q#-C{NHxO zKhqKazdGW--w|Jo+uPGcIA4E%NBr`R_*Zwtuk46lLw&-7(4UQj^YBnuLRE-At0P|F zHM#gR3Clqzq#q)jFaHw45_CfRrG%v*Jwt6l;bY|0Eb?M%@|Nuv zZMmGVR83LFEBL+Q(-|*A2&hfxb5C`%S+bgBL{Z;8h;jkQ3;W|cGBfs$2I)io^}K8J zhxr9=c_r_n(E1nP92V@NA8{(iTXO3#2jmTtXw`ctSxLOqvS4b=yW?#kPVl*6I>A|M zZ^jL_^Ic=r`tIy3vQ179Cu~38RF-7F{7zWj@axztZA}d&M@S=;;S)T|3)9j(=f?Lr z;x$u4x|caVfgyKzC~6^p{T$=L8YM#|PZ?Qt=d`Skzw~LYueo`$KsR`dc500FgQMzu zF6|O>5esxa&&><-jE)@~8*ON5=pBvbH06b~clop$d;KFAUB&Os{+E}QuIAeh23|8P zXRt!=){CS5)2mUPx&)M>u^rkFnvoXo! zBPHvnb(XF!!){>)^TR{Q#SL6#3Azf*_mI^={QiPPJ*)s8YD`QpIl>C3tpn1=X}Qv^ zORnK5&uUBy)Z>i6?q#>h{v&RZjE+gWC5P6-=-2EaTY<%vKeg6YCW%V$@wN3|dF07O z&AF|vORkn*FG&xb9=a*uuv&;u_mnLz?rK1*v7$n3cIWfX*m51d7dWHMT4w9vY;$@J zS`QVc!IS|FZ>Zb*6P8sQ>Qoczf#uW+$KP>!3cpR32S*x%$y*!AUK%7%kj4bY|Av(d zlOUD%=@iR2A4eVerJl}W%D4b+%d3+tTO>2nTII#PBEc^-@wM2J?z%_7j~=-F4+gJs zf%LAqPposUx#QrTc#!6sc!Yk}@RM#WY4uuuriRlcR5;;}zyf_}V&$hBK(H;~L~X4? zMz^kaG;pc>pvLqRo*;NQyE5`0a^*ZiIjd-g)nlevMIy z(U)mTzj2*p6KV;w7n%XWv8e3vCqZ^TYw5;Q=0lX7=E^>=qy3V;M6*MG{=E;&e8~LS z&z1m9134k!tAh5q(eb1o3=U30lgwK_+Dkohmlxd>9rf)o#}-!lnDI0xG>`a4NiP#< z$R`IL#8tE1u!xk_+0H>rj&LU3@FZl}ycO3*RIwI{ah#BHL&nnJH0{=rYns zh8f`rN%CnW?ueX$G&t@k@pZ%t9wD7A(3hMqI4CX24-DOob)88&CHtjOqG z;?>uS*&)yz8_A&h@AxjQ+z(Q+e{Pq!R6w<8mUzi;*OChl5~n-+*bft@cD4p9jKGW; z;`8|MHqyCq8$SGYM527$j}jMh=D)w4?_rBbgMoCV?$DUvG%6uaUvU#-ox;9e;g>mJ zN24APZ<*b_#lK#nMF*ql7if0_@C?wT9@Q)O>Gxy&9C+LLhRoEy1P5LZOd8?Aca=ep za2vn*aq{Ki*BSrsiN9v=#5H@HS4|(fd~V{Jxn1e#sK+Fyec9aYI=dQmlXie-7tdpP ziarF`QSNkedcW*}OdQvCNTJD?qC*xnHM-G1H!U1DD1^1csZwGDwQs5QP_et0zv@ZmIp&C$f4AiuVPwap*G zxAWcPi~20ul@%F%j&EA-_k}s6aD;AH$pjb4CEp-j%ySPKRtQYp%S)dHKOmCnxKPIY%0opOCt4<0QV1eCc-tHWAMDugfw@8a=cZ6S5hu z6B+R)MC}k&H&><=x6alLle$DB1Upv7ruQHcAyDoelR7C;R*rY7)~b=@&etH_ zoAzuzmT2p1x2(Hzm%M}xu$fb!-#8LrKZneO%I$;(W8UjRl%{@o$MU@kP8Wjs9oM1N zVUOUt%x5b&1G)}May14_m#n?6m#x&(Uf*rtpn}j)Pj=3-^o@J&&fQuD=SAXSvQxZ! z=X2E}-6kvJl+#aP!7g_DRL za?=IDe6cT6ZbKLtZLHllqq(5XjvLmUm6>kWvq#DhNd}+f_0?z(^X_&0ULB=(d>3om zM^4OH2B0GCX10*y406c+r+>Nhi(3+|pdou<|LHa7Z`;<{?I`+NS|O=0l>JfOMR9+S zQ1E*OqBZAMqg~XsnxC}z5Pm1`wOsfn-cRQ@Y-_yc#%q%Hz2yIaww1B;8yswQK0CH^Pkg^c?FWm%YKQkL1Q{!T7#Rm@ix`$XOR}r+!I1Kf_P9=Q&Ay&t+T0 zXWuP3!i9WZ;fAE%5dKfRC%N$Fc^~Qs3%f)5@A1CABP>g2i2pwC(j4;P!Cd%Q#0|kc z#INWGYh5EBKR{S^?vP$#aq|%F??}JABYcbxx6IpEO(yGze~spuZ*8MH z)?uL{>W*kuWfB$-I@-cf5C+pU3|&5H(h$!nA zv7NTJb??}|@rlX(2b%5auJj4tN=ml}c8^OrHBH)?*|~#mWRyC)czHa@?D`DOG zR%tJ#q?eMXRpZ(nFE9UT>vih9_7tMnf|IhhBf~(W7rT?~N|wzrDZKa<{*luDro_ zpbb7P=l~a&AP=2@=MHK9?LpvZRM75n^*$TM9Cozz{=`+Te=Xc-@BNu){hRE6tGmAW z{T;n-_17in?DYZw{u=_rc}I`FNc?}}(f@n!pWYvR(0nIGDh1ksoF})^~eJ!vZ45c_eYf@ zugXc!OL~dzCWmZAvM))$+RHEhZH(|vnH!LDdbc_I&FKkikG#uX(!)~{Sa_Ody|WcQ zlX%(3Lj21Vjhw!?aUJUvXP;>hU@NZEkT4)(CPLQRU&m;%oq8p~KSk%X9w8f#`luhv z4$&mPDSoU7*^xFcWMi@|Ca}j*hx*taIAG!}%5FCtD*D=4mrv={$$~be8IxMHsQO}*Ek=F2D zev+6&c$mSHOMM8Zgyq#V&99%I;IyBg;1=-X0PjtHvVbXmhTkl|e407J2mLo5h8u@? zUdJ!M|1j_G;P(?9--W#aUM-J6?H1-F68eHssm=hiiphF}oK{GG>!r@?Y?i0`IY2*T zzpML25?gjQ2f61xlf~LdR%`QWo(tQudvaFBh|ApAjZ#-ay1)6|FP^$EEp7Igd1}~X zj2Y_OH%L)T)?jekS)bjRa9j*1D<$bV`?!O$rG;I>Q)>jL@zne}ou~SD9)lsgvaLGK z#MuU0SpzO&VO_R%*)}y^H}DH%dL!>I0_VMobIA5c(|mbQ2(q@8ZULDAeJZWma&8vu zXc+c(TelLoB4BGbxl|KcCs;hym{$Qu$M#S{hq=km64}1wY2aLbY?a-u;X9+$sq5B7 zU%1@SC(I54EzV4$V7p|!ni+CtT84p9F!u)SpmhoP5`Brh32^!*PtlG?fxZ3>u^18F zt5>*j2~RiYSWsmt@sv|ePqz5@b9ffX`%_ke!>uE{?_||0l=b7J0hKIG7$?ow_wjo_ zzeN9jqVM#+(|IKCOy0SsZ_VkbekwD}satse@qmPxdnow29J>FiCLH*MK;&KVod`2UK#_UNdJGk)iBpL_Qel1;M7CYup&V1j@{pOqB%>8EWjL%=@_xl6>pkMRr{*XT$@CJN= zvVcDj2m}LKKo5ih;h;C@3zh}_!9Xw=)Pj026bx%#&8L-Vel4H{HBHmCkQUaxx=%0D z{dzzT>YA?WAw3-OhJ2y2kUta%1w&d$4~0VEFcdKi*@uC37|6nKtMj@~k_#4qY201u z_Juhv{@fR!5iwl2R%UA;ycXO5xc?}+G1J>8jWOA+2LNT584v#w!pw?s9qlsch@e~Q zUcBJ8J3;oIrkFl4{LBLfpA>@j$1LA5t&8htEQYnOC<~^tV=LKb0S~5&i@?wRo(Jru zHKw<}g8NKM2825ipaz~XNh@vyz+yS6r<$oJ|hAFW*y|Jvv^7Z7qyLw>B51T`P z>F5Qw!N=*#090cgU@Vt-(h=apu#2A-v#>l5?T29(`al1;AFSF610p~EpFi?%Kgxcv zRRbfvm^7!Pq-1W?R5Vs&02KcMDy*(LIPR9|vH7N1;4|5_jp4w2SpTqup+BoK54*^Z z8I+g^*|ZPPJ^(b#Li;HAtX*#epVeucM|_b~XVfqq12fq6tHRBomRX;cv2|{4Pqc3U z{;Wjt^1KPWa)H-p;Isbx8}Qk>oo1UwwNe{NNEjzOP%=$H zsl+L!p>&+-aFaq(Y$`!s;=^TVJKl+R(cRKF_zM3WzDh>rr|$ac>NQVzTV}0(XkGeW zEY_*@SH3MNozynB{iFUhYX{fw+_(S5!$*$3{^9uxqa3v-^Wj!q%bd1(?Ook#26qC<;iG5H zUl=jltLwVDjs9m296WUL)X1kR?_0ff+rdMJUmZUELG5ENy>;Z+a9u-VOY6M$2iFel zd-l0Qe?0Q)DZ3+iPTQAXT^%(R|LDUrmdqtR>8|#Bf3|1uiWd(!k~1=ErZhCpn%y?< zXDfbx_??q~9{Kc(JC_YC?|n44q;&h<=MKF(eCo``stu2M2QuG&=h$dNL}-K&+a=z`zA|iRIo>$v>3bjOgWN9QYA!7 zX@H6ZiGpZXnyd-p43W@uMJ5sv;Xn>TRLT>RfGkOTgP10^h*(Hgo9IoXm>_BwtZF%R zjc<1^ri;cKukn3P6Q|Jk9cdLEa*CX&CaQ}BMQ{qOVj*9n6j7BT;xiRdr(hz+lMq$v zyM-8Ar3u7JCWs-aknbC{r%0vtVv=RevKkN3z746Sqz4}1OZf^BTT*1>VD@s=c-N`& z#wc%`Q9s*6bUD(NXgn_&Z}3V=1yO{MR3oXva#IGGOE*frERNYaSa%)zmG@Nk$HMJ!1&R(KP(P#d!21b&=75hdYd zoN7+zT~a2>L5t`ecrV$958z>Z0>7i4l;6dt@M(0GKZh^UkMSk<2>lv=L#`k-ucES{ zabWZ2U*EI(;YXi%X8+Ik38Jh`tepAz@e?#LMbl@ttk|_@?@Ph63HLv^cJuej$aJxx zv8%i7+2_*IMM*IwCTrpH9XsE9U)I+R?huuV%7wQNthe{HAG&mT_WZwpJKB8f#>Y!a z^E@*)Z5jH_*6ll<+JE2`!K5a+$|qG%+qV79x3-9>&g}7(lP-R8dGzoR>b_xouE!rL zuf4gxsTqvLpnDw)x)stVDmd?{5#S*&vB zQB~GRIqwvyDmK;WezRXJk(5a8^r?kXfy0@bo|r5*Kn9b|siGp(N_ldx>Bh;(YC&0ioAS+@ujj%TAEaI zH){$la;kBEWD2?OMr%@kQ>GvoCky$?EVQ(kI4O=)W!lSm6gghd_gCYq{CcWTywX0o zexmWG2?C-s__P3ySc+(uI#V(Bgk0t#DnpA9jEyVbqjq8@KcVdcv@felL-24ODZ3$Z ztLlQXXp#kz%A)bcc%@(XuNXdtt6TmoIato89-Pewr)&X=!-z~m>$%w5d>0Jt2 ze?;F&U@KsFxxSWW5NJ|bZP715n&8@VO}GuNSzpNp$}6dx8{|8rBivh*DDIeoXKGhCW76!xZf)_$Hb zR9_Y7Y#LcKG_A2GYx<@GL({q8&gSkDL(SajtXsLW=Vt8rsI%ph^I5IOKOSmzbC+62 z(2Cjc(kpVsFkr#(N3|wzk_~kO+F^|74JadRj;UOhQ3^#efCFDhCP)P-$gKkbl>pU5 z1-no=Bc~E1QLqzX90nAj7*G^tU;+m_L70aGC=ojVV<0u~mXJskoPjEURs~8Aum`S$ z2M7|eDaw@<2{OejoQ}g#zIZM!REsD~Gaw|PX$Xs|G#_EvB-Y_H;D?ZIL69SFLOC*8 zNRa@A!l{@N8-;@bv4CJMk8s3=GvHqZ2PsGhn`8voj(Tx6`Z1wcMgsW&gaD-#8AmJ$ z3P#>cAN4|*M;=*)9sMBz2|*+fl5z>-#|Sbbk!48mktzv z5DMCah?EqSEJ6-s5efgY#2zM@Nfqjfr9=2{P&NVlG(1CMcNQ^uKx{XGO655j;V+=( zK_k#Q$d4ko;t`@XC16ql0_Q{!2%7GIq5zk>1;_wo4%)`DLLAg?falp26096_cpREU zr@?)$1Si8_8YYt@35yx@5!gJQmPyEh96YiDS9_Er--WgS%|r?k5EqMFhcOb{){u?e W*cdSG*2DO`7hEH_d~oCz+dlwFeJ8E} literal 0 HcmV?d00001 diff --git a/wormchain/interchaintest/contracts/wormhole_core.wasm b/wormchain/interchaintest/contracts/wormhole_core.wasm new file mode 100644 index 0000000000000000000000000000000000000000..83733c19da971ac3519a6cc22ce6589e2dcf8f5d GIT binary patch literal 264251 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 z�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 literal 0 HcmV?d00001 diff --git a/wormchain/interchaintest/go.mod b/wormchain/interchaintest/go.mod new file mode 100644 index 0000000000..428ead1b1d --- /dev/null +++ b/wormchain/interchaintest/go.mod @@ -0,0 +1,225 @@ +module github.com/wormhole-foundation/wormchain/interchaintest + +go 1.19 + +require ( + github.com/cosmos/cosmos-sdk v0.45.14 + github.com/icza/dyno v0.0.0-20220812133438-f0b6f8a18845 + github.com/stretchr/testify v1.8.4 + github.com/wormhole-foundation/wormchain v0.0.0-00010101000000-000000000000 + go.uber.org/zap v1.24.0 +) + +require ( + github.com/btcsuite/btcd/btcutil v1.1.3 + github.com/cosmos/ibc-go/v4 v4.3.0 + github.com/docker/docker v20.10.19+incompatible + github.com/ethereum/go-ethereum v1.11.6 + github.com/strangelove-ventures/interchaintest/v4 v4.0.0-20230815125617-67bc301715ea + github.com/tendermint/crypto v0.0.0-20191022145703-50d29ede1e15 + github.com/wormhole-foundation/wormhole/sdk v0.0.0-20230614161948-7f6213019abf +) + +require ( + cosmossdk.io/api v0.2.6 // indirect + cosmossdk.io/core v0.5.1 // indirect + cosmossdk.io/depinject v1.0.0-alpha.3 // indirect + filippo.io/edwards25519 v1.0.0-rc.1 // indirect + github.com/99designs/go-keychain v0.0.0-20191008050251-8e49817e8af4 // indirect + github.com/99designs/keyring v1.2.1 // indirect + github.com/BurntSushi/toml v1.2.1 // indirect + github.com/ChainSafe/go-schnorrkel v1.0.0 // indirect + github.com/ChainSafe/go-schnorrkel/1 v0.0.0-00010101000000-000000000000 // indirect + github.com/CosmWasm/wasmd v0.31.0 // indirect + github.com/CosmWasm/wasmvm v1.2.1 // indirect + github.com/DataDog/zstd v1.5.2 // indirect + github.com/Microsoft/go-winio v0.6.0 // indirect + github.com/StirlingMarketingGroup/go-namecase v1.0.0 // indirect + github.com/armon/go-metrics v0.4.0 // indirect + github.com/avast/retry-go/v4 v4.0.4 // indirect + github.com/benbjohnson/clock v1.3.0 // indirect + github.com/beorn7/perks v1.0.1 // indirect + github.com/bgentry/speakeasy v0.1.1-0.20220910012023-760eaf8b6816 // indirect + github.com/btcsuite/btcd v0.23.0 // indirect + github.com/btcsuite/btcd/btcec/v2 v2.3.2 // indirect + github.com/centrifuge/go-substrate-rpc-client/v4 v4.0.4 // indirect + github.com/cespare/xxhash v1.1.0 // indirect + github.com/cespare/xxhash/v2 v2.2.0 // indirect + github.com/cockroachdb/errors v1.9.1 // indirect + github.com/cockroachdb/logtags v0.0.0-20230118201751-21c54148d20b // indirect + github.com/cockroachdb/pebble v0.0.0-20230209160836-829675f94811 // indirect + github.com/cockroachdb/redact v1.1.3 // indirect + github.com/confio/ics23/go v0.9.0 // indirect + github.com/cosmos/btcutil v1.0.5 // indirect + github.com/cosmos/cosmos-db v0.0.0-20221226095112-f3c38ecb5e32 // indirect + github.com/cosmos/cosmos-proto v1.0.0-beta.2 // indirect + github.com/cosmos/go-bip39 v1.0.0 // indirect + github.com/cosmos/gogoproto v1.4.6 // indirect + github.com/cosmos/gorocksdb v1.2.0 // indirect + github.com/cosmos/iavl v0.19.5 // indirect + github.com/cosmos/interchain-security v1.0.0 // indirect + github.com/cosmos/ledger-cosmos-go v0.12.4 // indirect + github.com/danieljoos/wincred v1.1.2 // indirect + github.com/davecgh/go-spew v1.1.1 // indirect + github.com/deckarep/golang-set v1.8.0 // indirect + github.com/decred/base58 v1.0.3 // indirect + github.com/decred/dcrd/crypto/blake256 v1.0.0 // indirect + github.com/decred/dcrd/dcrec/secp256k1/v2 v2.0.0 // indirect + github.com/decred/dcrd/dcrec/secp256k1/v4 v4.0.1 // indirect + github.com/dgraph-io/badger/v2 v2.2007.4 // indirect + github.com/dgraph-io/ristretto v0.1.0 // indirect + github.com/dgryski/go-farm v0.0.0-20200201041132-a6ae2369ad13 // indirect + github.com/docker/distribution v2.8.1+incompatible // indirect + github.com/docker/go-connections v0.4.0 // indirect + github.com/docker/go-units v0.5.0 // indirect + github.com/dustin/go-humanize v1.0.1-0.20200219035652-afde56e7acac // indirect + github.com/dvsekhvalnov/jose2go v1.5.0 // indirect + github.com/felixge/httpsnoop v1.0.2 // indirect + github.com/fsnotify/fsnotify v1.6.0 // indirect + github.com/getsentry/sentry-go v0.18.0 // indirect + github.com/go-kit/kit v0.12.0 // indirect + github.com/go-kit/log v0.2.1 // indirect + github.com/go-logfmt/logfmt v0.5.1 // indirect + github.com/go-stack/stack v1.8.1 // indirect + github.com/godbus/dbus v0.0.0-20190726142602-4481cbc300e2 // indirect + github.com/gogo/gateway v1.1.0 // indirect + github.com/gogo/protobuf v1.3.3 // indirect + github.com/golang/glog v1.0.0 // indirect + github.com/golang/protobuf v1.5.2 // indirect + github.com/golang/snappy v0.0.5-0.20220116011046-fa5810519dcb // indirect + github.com/google/btree v1.1.2 // indirect + github.com/google/go-cmp v0.5.9 // indirect + github.com/google/uuid v1.3.0 // indirect + github.com/gorilla/handlers v1.5.1 // indirect + github.com/gorilla/mux v1.8.0 // indirect + github.com/gorilla/websocket v1.5.0 // indirect + github.com/grpc-ecosystem/go-grpc-middleware v1.3.0 // indirect + github.com/grpc-ecosystem/grpc-gateway v1.16.0 // indirect + github.com/gsterjov/go-libsecret v0.0.0-20161001094733-a6f4afe4910c // indirect + github.com/gtank/merlin v0.1.1 // indirect + github.com/gtank/ristretto255 v0.1.2 // indirect + github.com/hashicorp/go-immutable-radix v1.3.1 // indirect + github.com/hashicorp/go-version v1.6.0 // indirect + github.com/hashicorp/golang-lru v0.5.5-0.20210104140557-80c98217689d // indirect + github.com/hashicorp/hcl v1.0.0 // indirect + github.com/hdevalence/ed25519consensus v0.0.0-20220222234857-c00d1f31bab3 // indirect + github.com/holiman/uint256 v1.2.2-0.20230321075855-87b91420868c // indirect + github.com/inconshreveable/mousetrap v1.1.0 // indirect + github.com/ipfs/go-cid v0.0.7 // indirect + github.com/jmhodges/levigo v1.0.0 // indirect + github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51 // indirect + github.com/klauspost/compress v1.15.15 // indirect + github.com/klauspost/cpuid/v2 v2.0.9 // indirect + github.com/kr/pretty v0.3.1 // indirect + github.com/kr/text v0.2.0 // indirect + github.com/libp2p/go-buffer-pool v0.1.0 // indirect + github.com/libp2p/go-libp2p-core v0.15.1 // indirect + github.com/libp2p/go-openssl v0.0.7 // indirect + github.com/linxGnu/grocksdb v1.7.10 // indirect + github.com/magiconair/properties v1.8.6 // indirect + github.com/mattn/go-isatty v0.0.16 // indirect + github.com/matttproud/golang_protobuf_extensions v1.0.4 // indirect + github.com/mimoo/StrobeGo v0.0.0-20210601165009-122bf33a46e0 // indirect + github.com/minio/blake2b-simd v0.0.0-20160723061019-3f5f724cb5b1 // indirect + github.com/minio/sha256-simd v1.0.0 // indirect + github.com/mitchellh/mapstructure v1.5.0 // indirect + github.com/mr-tron/base58 v1.2.0 // indirect + github.com/mtibben/percent v0.2.1 // indirect + github.com/multiformats/go-base32 v0.0.3 // indirect + github.com/multiformats/go-base36 v0.1.0 // indirect + github.com/multiformats/go-multiaddr v0.4.1 // indirect + github.com/multiformats/go-multibase v0.0.3 // indirect + github.com/multiformats/go-multicodec v0.4.1 // indirect + github.com/multiformats/go-multihash v0.1.0 // indirect + github.com/multiformats/go-varint v0.0.6 // indirect + github.com/opencontainers/go-digest v1.0.0 // indirect + github.com/opencontainers/image-spec v1.1.0-rc2 // indirect + github.com/pelletier/go-toml v1.9.5 // indirect + github.com/pelletier/go-toml/v2 v2.0.5 // indirect + github.com/petermattis/goid v0.0.0-20180202154549-b0b1615b78e5 // indirect + github.com/pierrec/xxHash v0.1.5 // indirect + github.com/pkg/errors v0.9.1 // indirect + github.com/pmezard/go-difflib v1.0.0 // indirect + github.com/prometheus/client_golang v1.14.0 // indirect + github.com/prometheus/client_model v0.3.0 // indirect + github.com/prometheus/common v0.39.0 // indirect + github.com/prometheus/procfs v0.9.0 // indirect + github.com/rakyll/statik v0.1.7 // indirect + github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475 // indirect + github.com/regen-network/cosmos-proto v0.3.1 // indirect + github.com/remyoudompheng/bigfft v0.0.0-20200410134404-eec4a21b6bb0 // indirect + github.com/rogpeppe/go-internal v1.9.0 // indirect + github.com/rs/cors v1.8.2 // indirect + github.com/sasha-s/go-deadlock v0.3.1 // indirect + github.com/sirupsen/logrus v1.9.0 // indirect + github.com/spacemonkeygo/spacelog v0.0.0-20180420211403-2296661a0572 // indirect + github.com/spaolacci/murmur3 v1.1.0 // indirect + github.com/spf13/afero v1.9.2 // indirect + github.com/spf13/cast v1.5.0 // indirect + github.com/spf13/cobra v1.7.0 // indirect + github.com/spf13/jwalterweatherman v1.1.0 // indirect + github.com/spf13/pflag v1.0.5 // indirect + github.com/spf13/viper v1.14.0 // indirect + github.com/subosito/gotenv v1.4.1 // indirect + github.com/syndtr/goleveldb v1.0.1-0.20220614013038-64ee5596c38a // indirect + github.com/tendermint/go-amino v0.16.0 // indirect + github.com/tendermint/tendermint v0.34.26 // indirect + github.com/tendermint/tm-db v0.6.7 // indirect + github.com/tidwall/btree v1.5.0 // indirect + github.com/vedhavyas/go-subkey v1.0.3 // indirect + github.com/zondax/hid v0.9.2 // indirect + github.com/zondax/ledger-go v0.14.3 // indirect + go.etcd.io/bbolt v1.3.6 // indirect + go.uber.org/atomic v1.10.0 // indirect + go.uber.org/multierr v1.8.0 // indirect + golang.org/x/crypto v0.5.0 // indirect + golang.org/x/exp v0.0.0-20230206171751-46f607a40771 // indirect + golang.org/x/mod v0.9.0 // indirect + golang.org/x/net v0.8.0 // indirect + golang.org/x/sync v0.1.0 // indirect + golang.org/x/sys v0.6.0 // indirect + golang.org/x/term v0.6.0 // indirect + golang.org/x/text v0.8.0 // indirect + golang.org/x/tools v0.7.0 // indirect + google.golang.org/genproto v0.0.0-20230125152338-dcaf20b6aeaa // indirect + google.golang.org/grpc v1.53.0 // indirect + google.golang.org/protobuf v1.28.2-0.20220831092852-f930b1dc76e8 // indirect + gopkg.in/ini.v1 v1.67.0 // indirect + gopkg.in/natefinch/npipe.v2 v2.0.0-20160621034901-c1b8fa8bdcce // indirect + gopkg.in/yaml.v2 v2.4.0 // indirect + gopkg.in/yaml.v3 v3.0.1 // indirect + lukechampine.com/blake3 v1.1.6 // indirect + lukechampine.com/uint128 v1.1.1 // indirect + modernc.org/cc/v3 v3.36.0 // indirect + modernc.org/ccgo/v3 v3.16.6 // indirect + modernc.org/libc v1.16.7 // indirect + modernc.org/mathutil v1.4.1 // indirect + modernc.org/memory v1.1.1 // indirect + modernc.org/opt v0.1.1 // indirect + modernc.org/sqlite v1.17.3 // indirect + modernc.org/strutil v1.1.1 // indirect + modernc.org/token v1.0.0 // indirect +) + +replace ( + github.com/99designs/keyring => github.com/cosmos/keyring v1.2.0 + github.com/ChainSafe/go-schnorrkel => github.com/ChainSafe/go-schnorrkel v0.0.0-20200405005733-88cbf1b4c40d + github.com/ChainSafe/go-schnorrkel/1 => github.com/ChainSafe/go-schnorrkel v1.0.0 + // specify the version of btcd used so we don't get the btcec issue + github.com/btcsuite/btcd => github.com/btcsuite/btcd v0.22.2 + // use cosmos-sdk with ics support + github.com/cosmos/cosmos-sdk => github.com/cosmos/cosmos-sdk v0.45.14-ics + //github.com/cosmos/cosmos-sdk => github.com/wormhole-foundation/cosmos-sdk v0.45.9-wormhole-2 + github.com/gogo/protobuf => github.com/regen-network/protobuf v1.3.3-alpha.regen.1 + + //github.com/strangelove-ventures/interchaintest/v4 => ../../../../../strangelove-ventures/interchaintest_v4 + + // pin version! 126854af5e6d has issues with the store so that queries fail + github.com/syndtr/goleveldb => github.com/syndtr/goleveldb v1.0.1-0.20210819022825-2ae1ddf74ef7 + // use informal tendermint + github.com/tendermint/tendermint => github.com/informalsystems/tendermint v0.34.23 + github.com/vedhavyas/go-subkey => github.com/strangelove-ventures/go-subkey v1.0.7 + github.com/wormhole-foundation/wormchain => ../ + github.com/wormhole-foundation/wormhole/sdk => ../../sdk + +) diff --git a/wormchain/interchaintest/go.sum b/wormchain/interchaintest/go.sum new file mode 100644 index 0000000000..701880415b --- /dev/null +++ b/wormchain/interchaintest/go.sum @@ -0,0 +1,1222 @@ +cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= +cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= +cloud.google.com/go v0.38.0/go.mod h1:990N+gfupTy94rShfmMCWGDn0LpTmnzTp2qbd1dvSRU= +cloud.google.com/go v0.44.1/go.mod h1:iSa0KzasP4Uvy3f1mN/7PiObzGgflwredwwASm/v6AU= +cloud.google.com/go v0.44.2/go.mod h1:60680Gw3Yr4ikxnPRS/oxxkBccT6SA1yMk63TGekxKY= +cloud.google.com/go v0.44.3/go.mod h1:60680Gw3Yr4ikxnPRS/oxxkBccT6SA1yMk63TGekxKY= +cloud.google.com/go v0.45.1/go.mod h1:RpBamKRgapWJb87xiFSdk4g1CME7QZg3uwTez+TSTjc= +cloud.google.com/go v0.46.3/go.mod h1:a6bKKbmY7er1mI7TEI4lsAkts/mkhTSZK8w33B4RAg0= +cloud.google.com/go v0.50.0/go.mod h1:r9sluTvynVuxRIOHXQEHMFffphuXHOMZMycpNR5e6To= +cloud.google.com/go v0.52.0/go.mod h1:pXajvRH/6o3+F9jDHZWQ5PbGhn+o8w9qiu/CffaVdO4= +cloud.google.com/go v0.53.0/go.mod h1:fp/UouUEsRkN6ryDKNW/Upv/JBKnv6WDthjR6+vze6M= +cloud.google.com/go v0.54.0/go.mod h1:1rq2OEkV3YMf6n/9ZvGWI3GWw0VoqH/1x2nd8Is/bPc= +cloud.google.com/go v0.56.0/go.mod h1:jr7tqZxxKOVYizybht9+26Z/gUq7tiRzu+ACVAMbKVk= +cloud.google.com/go v0.57.0/go.mod h1:oXiQ6Rzq3RAkkY7N6t3TcE6jE+CIBBbA36lwQ1JyzZs= +cloud.google.com/go v0.62.0/go.mod h1:jmCYTdRCQuc1PHIIJ/maLInMho30T/Y0M4hTdTShOYc= +cloud.google.com/go v0.65.0/go.mod h1:O5N8zS7uWy9vkA9vayVHs65eM1ubvY4h553ofrNHObY= +cloud.google.com/go v0.72.0/go.mod h1:M+5Vjvlc2wnp6tjzE102Dw08nGShTscUx2nZMufOKPI= +cloud.google.com/go v0.74.0/go.mod h1:VV1xSbzvo+9QJOxLDaJfTjx5e+MePCpCWwvftOeQmWk= +cloud.google.com/go v0.75.0/go.mod h1:VGuuCn7PG0dwsd5XPVm2Mm3wlh3EL55/79EKB6hlPTY= +cloud.google.com/go/bigquery v1.0.1/go.mod h1:i/xbL2UlR5RvWAURpBYZTtm/cXjCha9lbfbpx4poX+o= +cloud.google.com/go/bigquery v1.3.0/go.mod h1:PjpwJnslEMmckchkHFfq+HTD2DmtT67aNFKH1/VBDHE= +cloud.google.com/go/bigquery v1.4.0/go.mod h1:S8dzgnTigyfTmLBfrtrhyYhwRxG72rYxvftPBK2Dvzc= +cloud.google.com/go/bigquery v1.5.0/go.mod h1:snEHRnqQbz117VIFhE8bmtwIDY80NLUZUMb4Nv6dBIg= +cloud.google.com/go/bigquery v1.7.0/go.mod h1://okPTzCYNXSlb24MZs83e2Do+h+VXtc4gLoIoXIAPc= +cloud.google.com/go/bigquery v1.8.0/go.mod h1:J5hqkt3O0uAFnINi6JXValWIb1v0goeZM77hZzJN/fQ= +cloud.google.com/go/datastore v1.0.0/go.mod h1:LXYbyblFSglQ5pkeyhO+Qmw7ukd3C+pD7TKLgZqpHYE= +cloud.google.com/go/datastore v1.1.0/go.mod h1:umbIZjpQpHh4hmRpGhH4tLFup+FVzqBi1b3c64qFpCk= +cloud.google.com/go/pubsub v1.0.1/go.mod h1:R0Gpsv3s54REJCy4fxDixWD93lHJMoZTyQ2kNxGRt3I= +cloud.google.com/go/pubsub v1.1.0/go.mod h1:EwwdRX2sKPjnvnqCa270oGRyludottCI76h+R3AArQw= +cloud.google.com/go/pubsub v1.2.0/go.mod h1:jhfEVHT8odbXTkndysNHCcx0awwzvfOlguIAii9o8iA= +cloud.google.com/go/pubsub v1.3.1/go.mod h1:i+ucay31+CNRpDW4Lu78I4xXG+O1r/MAHgjpRVR+TSU= +cloud.google.com/go/storage v1.0.0/go.mod h1:IhtSnM/ZTZV8YYJWCY8RULGVqBDmpoyjwiyrjsg+URw= +cloud.google.com/go/storage v1.5.0/go.mod h1:tpKbwo567HUNpVclU5sGELwQWBDZ8gh0ZeosJ0Rtdos= +cloud.google.com/go/storage v1.6.0/go.mod h1:N7U0C8pVQ/+NIKOBQyamJIeKQKkZ+mxpohlUTyfDhBk= +cloud.google.com/go/storage v1.8.0/go.mod h1:Wv1Oy7z6Yz3DshWRJFhqM/UCfaWIRTdp0RXyy7KQOVs= +cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9ullr3+Kg0= +cloud.google.com/go/storage v1.14.0/go.mod h1:GrKmX003DSIwi9o29oFT7YDnHYwZoctc3fOKtUw0Xmo= +cosmossdk.io/api v0.2.6 h1:AoNwaLLapcLsphhMK6+o0kZl+D6MMUaHVqSdwinASGU= +cosmossdk.io/api v0.2.6/go.mod h1:u/d+GAxil0nWpl1XnQL8nkziQDIWuBDhv8VnDm/s6dI= +cosmossdk.io/core v0.5.1 h1:vQVtFrIYOQJDV3f7rw4pjjVqc1id4+mE0L9hHP66pyI= +cosmossdk.io/core v0.5.1/go.mod h1:KZtwHCLjcFuo0nmDc24Xy6CRNEL9Vl/MeimQ2aC7NLE= +cosmossdk.io/depinject v1.0.0-alpha.3 h1:6evFIgj//Y3w09bqOUOzEpFj5tsxBqdc5CfkO7z+zfw= +cosmossdk.io/depinject v1.0.0-alpha.3/go.mod h1:eRbcdQ7MRpIPEM5YUJh8k97nxHpYbc3sMUnEtt8HPWU= +dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= +filippo.io/edwards25519 v1.0.0-rc.1 h1:m0VOOB23frXZvAOK44usCgLWvtsxIoMCTBGJZlpmGfU= +filippo.io/edwards25519 v1.0.0-rc.1/go.mod h1:N1IkdkCkiLB6tki+MYJoSx2JTY9NUlxZE7eHn5EwJns= +github.com/99designs/go-keychain v0.0.0-20191008050251-8e49817e8af4 h1:/vQbFIOMbk2FiG/kXiLl8BRyzTWDw7gX/Hz7Dd5eDMs= +github.com/99designs/go-keychain v0.0.0-20191008050251-8e49817e8af4/go.mod h1:hN7oaIRCjzsZ2dE+yG5k+rsdt3qcwykqK6HVGcKwsw4= +github.com/AndreasBriese/bbloom v0.0.0-20190306092124-e2d15f34fcf9/go.mod h1:bOvUY6CB00SOBii9/FifXqc0awNKxLFCL/+pkDPuyl8= +github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1 h1:UQHMgLO+TxOElx5B5HZ4hJQsoJ/PvUvKRhJHDQXO8P8= +github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= +github.com/BurntSushi/toml v1.2.1 h1:9F2/+DoOYIOksmaJFPw1tGFy1eDnIJXg+UHjuD8lTak= +github.com/BurntSushi/toml v1.2.1/go.mod h1:CxXYINrC8qIiEnFrOxCa7Jy5BFHlXnUU2pbicEuybxQ= +github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= +github.com/ChainSafe/go-schnorrkel v0.0.0-20200405005733-88cbf1b4c40d h1:nalkkPQcITbvhmL4+C4cKA87NW0tfm3Kl9VXRoPywFg= +github.com/ChainSafe/go-schnorrkel v0.0.0-20200405005733-88cbf1b4c40d/go.mod h1:URdX5+vg25ts3aCh8H5IFZybJYKWhJHYMTnf+ULtoC4= +github.com/ChainSafe/go-schnorrkel v1.0.0 h1:3aDA67lAykLaG1y3AOjs88dMxC88PgUuHRrLeDnvGIM= +github.com/ChainSafe/go-schnorrkel v1.0.0/go.mod h1:dpzHYVxLZcp8pjlV+O+UR8K0Hp/z7vcchBSbMBEhCw4= +github.com/CloudyKit/fastprinter v0.0.0-20200109182630-33d98a066a53/go.mod h1:+3IMCy2vIlbG1XG/0ggNQv0SvxCAIpPM5b1nCz56Xno= +github.com/CloudyKit/jet/v3 v3.0.0/go.mod h1:HKQPgSJmdK8hdoAbKUUWajkHyHo4RaU5rMdUywE7VMo= +github.com/CosmWasm/wasmd v0.31.0 h1:xACf6A/SkCeGWQWrKGsR4X9PQb5G4XYuNfnrl+HQ1mE= +github.com/CosmWasm/wasmd v0.31.0/go.mod h1:VcyDGk/ISVlMUeW+1GGL0zdHWBS2FPwLEV2qZ86l7l8= +github.com/CosmWasm/wasmvm v1.2.1 h1:si0tRsRDdUShV0k51Wn6zRKlmj3/WWP9Yr4cLmDTf+8= +github.com/CosmWasm/wasmvm v1.2.1/go.mod h1:vW/E3h8j9xBQs9bCoijDuawKo9kCtxOaS8N8J7KFtkc= +github.com/DataDog/datadog-go v3.2.0+incompatible/go.mod h1:LButxg5PwREeZtORoXG3tL4fMGNddJ+vMq1mwgfaqoQ= +github.com/DataDog/zstd v1.5.2 h1:vUG4lAyuPCXO0TLbXvPv7EB7cNK1QV/luu55UHLrrn8= +github.com/DataDog/zstd v1.5.2/go.mod h1:g4AWEaM3yOg3HYfnJ3YIawPnVdXJh9QME85blwSAmyw= +github.com/Joker/hpp v1.0.0/go.mod h1:8x5n+M1Hp5hC0g8okX3sR3vFQwynaX/UgSOM9MeBKzY= +github.com/Microsoft/go-winio v0.6.0 h1:slsWYD/zyx7lCXoZVlvQrj0hPTM1HI4+v1sIda2yDvg= +github.com/Microsoft/go-winio v0.6.0/go.mod h1:cTAf44im0RAYeL23bpB+fzCyDH2MJiz2BO69KH/soAE= +github.com/OneOfOne/xxhash v1.2.2 h1:KMrpdQIwFcEqXDklaen+P1axHaj9BSKzvpUUfnHldSE= +github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= +github.com/Shopify/goreferrer v0.0.0-20181106222321-ec9c9a553398/go.mod h1:a1uqRtAwp2Xwc6WNPJEufxJ7fx3npB4UV/JOLmbu5I0= +github.com/StackExchange/wmi v0.0.0-20180116203802-5d049714c4a6 h1:fLjPD/aNc3UIOA6tDi6QXUemppXK3P9BI7mr2hd6gx8= +github.com/StirlingMarketingGroup/go-namecase v1.0.0 h1:2CzaNtCzc4iNHirR+5ru9OzGg8rQp860gqLBFqRI02Y= +github.com/StirlingMarketingGroup/go-namecase v1.0.0/go.mod h1:ZsoSKcafcAzuBx+sndbxHu/RjDcDTrEdT4UvhniHfio= +github.com/VividCortex/gohistogram v1.0.0 h1:6+hBz+qvs0JOrrNhhmR7lFxo5sINxBCGXrdtl/UvroE= +github.com/Workiva/go-datastructures v1.0.53 h1:J6Y/52yX10Xc5JjXmGtWoSSxs3mZnGSaq37xZZh7Yig= +github.com/aead/siphash v1.0.1/go.mod h1:Nywa3cDsYNNK3gaciGTWPwHt0wlpNV15vwmswBAUSII= +github.com/ajg/form v1.5.1/go.mod h1:uL1WgH+h2mgNtvBq0339dVnzXdBETtL2LeUXaIv25UY= +github.com/alecthomas/participle/v2 v2.0.0-alpha7 h1:cK4vjj0VSgb3lN1nuKA5F7dw+1s1pWBe5bx7nNCnN+c= +github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= +github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= +github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= +github.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= +github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY= +github.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6/go.mod h1:grANhF5doyWs3UAsr3K4I6qtAmlQcZDesFNEHPZAzj8= +github.com/armon/go-metrics v0.4.0 h1:yCQqn7dwca4ITXb+CbubHmedzaQYHhNhrEXLYUeEe8Q= +github.com/armon/go-metrics v0.4.0/go.mod h1:E6amYzXo6aW1tqzoZGT755KkbgrJsSdpwZ+3JqfkOG4= +github.com/avast/retry-go/v4 v4.0.4 h1:38hLf0DsRXh+hOF6HbTni0+5QGTNdw9zbaMD7KAO830= +github.com/avast/retry-go/v4 v4.0.4/go.mod h1:HqmLvS2VLdStPCGDFjSuZ9pzlTqVRldCI4w2dO4m1Ms= +github.com/aymerick/raymond v2.0.3-0.20180322193309-b565731e1464+incompatible/go.mod h1:osfaiScAUVup+UC9Nfq76eWqDhXlp+4UYaA8uhTBO6g= +github.com/benbjohnson/clock v1.3.0 h1:ip6w0uFQkncKQ979AypyG0ER7mqUSBdKLOgAle/AT8A= +github.com/benbjohnson/clock v1.3.0/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA= +github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= +github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8= +github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= +github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= +github.com/bgentry/speakeasy v0.1.1-0.20220910012023-760eaf8b6816 h1:41iFGWnSlI2gVpmOtVTJZNodLdLQLn/KsJqFvXwnd/s= +github.com/bgentry/speakeasy v0.1.1-0.20220910012023-760eaf8b6816/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs= +github.com/btcsuite/btcd v0.22.2 h1:vBZ+lGGd1XubpOWO67ITJpAEsICWhA0YzqkcpkgNBfo= +github.com/btcsuite/btcd v0.22.2/go.mod h1:wqgTSL29+50LRkmOVknEdmt8ZojIzhuWvgu/iptuN7Y= +github.com/btcsuite/btcd/btcec/v2 v2.1.3/go.mod h1:ctjw4H1kknNJmRN4iP1R7bTQ+v3GJkZBd6mui8ZsAZE= +github.com/btcsuite/btcd/btcec/v2 v2.3.2 h1:5n0X6hX0Zk+6omWcihdYvdAlGf2DfasC0GMf7DClJ3U= +github.com/btcsuite/btcd/btcec/v2 v2.3.2/go.mod h1:zYzJ8etWJQIv1Ogk7OzpWjowwOdXY1W/17j2MW85J04= +github.com/btcsuite/btcd/btcutil v1.1.3 h1:xfbtw8lwpp0G6NwSHb+UE67ryTFHJAiNuipusjXSohQ= +github.com/btcsuite/btcd/btcutil v1.1.3/go.mod h1:UR7dsSJzJUfMmFiiLlIrMq1lS9jh9EdCV7FStZSnpi0= +github.com/btcsuite/btcd/chaincfg/chainhash v1.0.0/go.mod h1:7SFka0XMvUgj3hfZtydOrQY2mwhPclbT2snogU7SQQc= +github.com/btcsuite/btcd/chaincfg/chainhash v1.0.1 h1:q0rUy8C/TYNBQS1+CGKw68tLOFYSNEs0TFnxxnS9+4U= +github.com/btcsuite/btcd/chaincfg/chainhash v1.0.1/go.mod h1:7SFka0XMvUgj3hfZtydOrQY2mwhPclbT2snogU7SQQc= +github.com/btcsuite/btclog v0.0.0-20170628155309-84c8d2346e9f/go.mod h1:TdznJufoqS23FtqVCzL0ZqgP5MqXbb4fg/WgDys70nA= +github.com/btcsuite/btcutil v1.0.3-0.20201208143702-a53e38424cce h1:YtWJF7RHm2pYCvA5t0RPmAaLUhREsKuKd+SLhxFbFeQ= +github.com/btcsuite/btcutil v1.0.3-0.20201208143702-a53e38424cce/go.mod h1:0DVlHczLPewLcPGEIeUEzfOJhqGPQ0mJJRDBtD307+o= +github.com/btcsuite/go-socks v0.0.0-20170105172521-4720035b7bfd/go.mod h1:HHNXQzUsZCxOoE+CPiyCTO6x34Zs86zZUiwtpXoGdtg= +github.com/btcsuite/goleveldb v1.0.0/go.mod h1:QiK9vBlgftBg6rWQIj6wFzbPfRjiykIEhBH4obrXJ/I= +github.com/btcsuite/snappy-go v1.0.0/go.mod h1:8woku9dyThutzjeg+3xrA5iCpBRH8XEEg3lh6TiUghc= +github.com/btcsuite/websocket v0.0.0-20150119174127-31079b680792/go.mod h1:ghJtEyQwv5/p4Mg4C0fgbePVuGr935/5ddU9Z3TmDRY= +github.com/btcsuite/winsvc v1.0.0/go.mod h1:jsenWakMcC0zFBFurPLEAyrnc/teJEM1O46fmI40EZs= +github.com/cenkalti/backoff v2.2.1+incompatible h1:tNowT99t7UNflLxfYYSlKYsBpXdEet03Pg2g16Swow4= +github.com/cenkalti/backoff/v4 v4.1.3 h1:cFAlzYUlVYDysBEH2T5hyJZMh3+5+WCBvSnK6Q8UtC4= +github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= +github.com/centrifuge/go-substrate-rpc-client/v4 v4.0.4 h1:G2kCJurlIkguX0oxxI9sPPENuQqMVhIhV9RVkh/dpDg= +github.com/centrifuge/go-substrate-rpc-client/v4 v4.0.4/go.mod h1:5g1oM4Zu3BOaLpsKQ+O8PAv2kNuq+kPcA1VzFbsSqxE= +github.com/cespare/xxhash v1.1.0 h1:a6HrQnmkObjyL+Gs60czilIUGqrzKutQD6XZog3p+ko= +github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc= +github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= +github.com/cespare/xxhash/v2 v2.2.0 h1:DC2CZ1Ep5Y4k3ZQ899DldepgrayRUGE6BBZ/cd9Cj44= +github.com/cespare/xxhash/v2 v2.2.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= +github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI= +github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI= +github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU= +github.com/circonus-labs/circonus-gometrics v2.3.1+incompatible/go.mod h1:nmEj6Dob7S7YxXgwXpfOuvO54S+tGdZdw9fuRZt25Ag= +github.com/circonus-labs/circonusllhist v0.1.3/go.mod h1:kMXHVDlOchFAehlya5ePtbp5jckzBHf4XRpQvBOLI+I= +github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= +github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc= +github.com/cncf/udpa/go v0.0.0-20200629203442-efcf912fb354/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk= +github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk= +github.com/cockroachdb/apd/v3 v3.1.0 h1:MK3Ow7LH0W8zkd5GMKA1PvS9qG3bWFI95WaVNfyZJ/w= +github.com/cockroachdb/datadriven v1.0.2 h1:H9MtNqVoVhvd9nCBwOyDjUEdZCREqbIdCJD93PBm/jA= +github.com/cockroachdb/datadriven v1.0.2/go.mod h1:a9RdTaap04u637JoCzcUoIcDmvwSUtcUFtT/C3kJlTU= +github.com/cockroachdb/errors v1.9.1 h1:yFVvsI0VxmRShfawbt/laCIDy/mtTqqnvoNgiy5bEV8= +github.com/cockroachdb/errors v1.9.1/go.mod h1:2sxOtL2WIc096WSZqZ5h8fa17rdDq9HZOZLBCor4mBk= +github.com/cockroachdb/logtags v0.0.0-20211118104740-dabe8e521a4f/go.mod h1:Vz9DsVWQQhf3vs21MhPMZpMGSht7O/2vFW2xusFUVOs= +github.com/cockroachdb/logtags v0.0.0-20230118201751-21c54148d20b h1:r6VH0faHjZeQy818SGhaone5OnYfxFR/+AzdY3sf5aE= +github.com/cockroachdb/logtags v0.0.0-20230118201751-21c54148d20b/go.mod h1:Vz9DsVWQQhf3vs21MhPMZpMGSht7O/2vFW2xusFUVOs= +github.com/cockroachdb/pebble v0.0.0-20230209160836-829675f94811 h1:ytcWPaNPhNoGMWEhDvS3zToKcDpRsLuRolQJBVGdozk= +github.com/cockroachdb/pebble v0.0.0-20230209160836-829675f94811/go.mod h1:Nb5lgvnQ2+oGlE/EyZy4+2/CxRh9KfvCXnag1vtpxVM= +github.com/cockroachdb/redact v1.1.3 h1:AKZds10rFSIj7qADf0g46UixK8NNLwWTNdCIGS5wfSQ= +github.com/cockroachdb/redact v1.1.3/go.mod h1:BVNblN9mBWFyMyqK1k3AAiSxhvhfK2oOZZ2lK+dpvRg= +github.com/codegangsta/inject v0.0.0-20150114235600-33e0aa1cb7c0/go.mod h1:4Zcjuz89kmFXt9morQgcfYZAYZ5n8WHjt81YYWIwtTM= +github.com/coinbase/rosetta-sdk-go v0.7.9 h1:lqllBjMnazTjIqYrOGv8h8jxjg9+hJazIGZr9ZvoCcA= +github.com/confio/ics23/go v0.9.0 h1:cWs+wdbS2KRPZezoaaj+qBleXgUk5WOQFMP3CQFGTr4= +github.com/confio/ics23/go v0.9.0/go.mod h1:4LPZ2NYqnYIVRklaozjNR1FScgDJ2s5Xrp+e/mYVRak= +github.com/coreos/etcd v3.3.10+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= +github.com/coreos/go-etcd v2.0.0+incompatible/go.mod h1:Jez6KQU2B/sWsbdaef3ED8NzMklzPG4d5KIOhIy30Tk= +github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= +github.com/cosmos/btcutil v1.0.5 h1:t+ZFcX77LpKtDBhjucvnOH8C2l2ioGsBNEQ3jef8xFk= +github.com/cosmos/btcutil v1.0.5/go.mod h1:IyB7iuqZMJlthe2tkIFL33xPyzbFYP0XVdS8P5lUPis= +github.com/cosmos/cosmos-db v0.0.0-20221226095112-f3c38ecb5e32 h1:zlCp9n3uwQieELltZWHRmwPmPaZ8+XoL2Sj+A2YJlr8= +github.com/cosmos/cosmos-db v0.0.0-20221226095112-f3c38ecb5e32/go.mod h1:kwMlEC4wWvB48zAShGKVqboJL6w4zCLesaNQ3YLU2BQ= +github.com/cosmos/cosmos-proto v1.0.0-beta.2 h1:X3OKvWgK9Gsejo0F1qs5l8Qn6xJV/AzgIWR2wZ8Nua8= +github.com/cosmos/cosmos-proto v1.0.0-beta.2/go.mod h1:+XRCLJ14pr5HFEHIUcn51IKXD1Fy3rkEQqt4WqmN4V0= +github.com/cosmos/cosmos-sdk v0.45.14-ics h1:0yHgyiH719bE+1kitN3xR7moZhWb1ZjgaX7m7Xhf0AU= +github.com/cosmos/cosmos-sdk v0.45.14-ics/go.mod h1:bF1fyVbRDvZ922GMByg9opQT26sQwabwYqaYIchwdyw= +github.com/cosmos/go-bip39 v0.0.0-20180819234021-555e2067c45d/go.mod h1:tSxLoYXyBmiFeKpvmq4dzayMdCjCnu8uqmCysIGBT2Y= +github.com/cosmos/go-bip39 v1.0.0 h1:pcomnQdrdH22njcAatO0yWojsUnCO3y2tNoV1cb6hHY= +github.com/cosmos/go-bip39 v1.0.0/go.mod h1:RNJv0H/pOIVgxw6KS7QeX2a0Uo0aKUlfhZ4xuwvCdJw= +github.com/cosmos/gogoproto v1.4.6 h1:Ee7z15dWJaGlgM2rWrK8N2IX7PQcuccu8oG68jp5RL4= +github.com/cosmos/gogoproto v1.4.6/go.mod h1:VS/ASYmPgv6zkPKLjR9EB91lwbLHOzaGCirmKKhncfI= +github.com/cosmos/gorocksdb v1.2.0 h1:d0l3jJG8M4hBouIZq0mDUHZ+zjOx044J3nGRskwTb4Y= +github.com/cosmos/gorocksdb v1.2.0/go.mod h1:aaKvKItm514hKfNJpUJXnnOWeBnk2GL4+Qw9NHizILw= +github.com/cosmos/iavl v0.19.5 h1:rGA3hOrgNxgRM5wYcSCxgQBap7fW82WZgY78V9po/iY= +github.com/cosmos/iavl v0.19.5/go.mod h1:X9PKD3J0iFxdmgNLa7b2LYWdsGd90ToV5cAONApkEPw= +github.com/cosmos/ibc-go/v4 v4.3.0 h1:yOzVsyZzsv4XPBux8gq+D0LhZn45yGWKjvT+6Vyo5no= +github.com/cosmos/ibc-go/v4 v4.3.0/go.mod h1:CcLvIoi9NNtIbNsxs4KjBGjYhlwqtsmXy1AKARKiMzQ= +github.com/cosmos/interchain-security v1.0.0 h1:xNQjjigqH3mzEKSGQhAhKy8I0TA8XR2z5rRTxRBKK3o= +github.com/cosmos/interchain-security v1.0.0/go.mod h1:J9SbXUJT1GSe+mZy+MDCxtuAfbhwCKBEJRYnfjXsE8Q= +github.com/cosmos/keyring v1.2.0 h1:8C1lBP9xhImmIabyXW4c3vFjjLiBdGCmfLUfeZlV1Yo= +github.com/cosmos/keyring v1.2.0/go.mod h1:fc+wB5KTk9wQ9sDx0kFXB3A0MaeGHM9AwRStKOQ5vOA= +github.com/cosmos/ledger-cosmos-go v0.12.4 h1:drvWt+GJP7Aiw550yeb3ON/zsrgW0jgh5saFCr7pDnw= +github.com/cosmos/ledger-cosmos-go v0.12.4/go.mod h1:fjfVWRf++Xkygt9wzCsjEBdjcf7wiiY35fv3ctT+k4M= +github.com/cpuguy83/go-md2man v1.0.10/go.mod h1:SmD6nW6nTyfqj6ABTjUi3V3JVMnlJmwcJI5acqYI6dE= +github.com/cpuguy83/go-md2man/v2 v2.0.2/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= +github.com/creachadair/taskgroup v0.3.2 h1:zlfutDS+5XG40AOxcHDSThxKzns8Tnr9jnr6VqkYlkM= +github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= +github.com/cucumber/common/gherkin/go/v22 v22.0.0 h1:4K8NqptbvdOrjL9DEea6HFjSpbdT9+Q5kgLpmmsHYl0= +github.com/cucumber/common/messages/go/v17 v17.1.1 h1:RNqopvIFyLWnKv0LfATh34SWBhXeoFTJnSrgm9cT/Ts= +github.com/danieljoos/wincred v1.1.2 h1:QLdCxFs1/Yl4zduvBdcHB8goaYk9RARS2SgLLRuAyr0= +github.com/danieljoos/wincred v1.1.2/go.mod h1:GijpziifJoIBfYh+S7BbkdUTU4LfM+QnGqR5Vl2tAx0= +github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= +github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/deckarep/golang-set v1.8.0 h1:sk9/l/KqpunDwP7pSjUg0keiOOLEnOBHzykLrsPppp4= +github.com/deckarep/golang-set v1.8.0/go.mod h1:5nI87KwE7wgsBU1F4GKAw2Qod7p5kyS383rP6+o6qqo= +github.com/deckarep/golang-set/v2 v2.1.0 h1:g47V4Or+DUdzbs8FxCCmgb6VYd+ptPAngjM6dtGktsI= +github.com/decred/base58 v1.0.3 h1:KGZuh8d1WEMIrK0leQRM47W85KqCAdl2N+uagbctdDI= +github.com/decred/base58 v1.0.3/go.mod h1:pXP9cXCfM2sFLb2viz2FNIdeMWmZDBKG3ZBYbiSM78E= +github.com/decred/dcrd/chaincfg/chainhash v1.0.2 h1:rt5Vlq/jM3ZawwiacWjPa+smINyLRN07EO0cNBV6DGU= +github.com/decred/dcrd/chaincfg/chainhash v1.0.2/go.mod h1:BpbrGgrPTr3YJYRN3Bm+D9NuaFd+zGyNeIKgrhCXK60= +github.com/decred/dcrd/crypto/blake256 v1.0.0 h1:/8DMNYp9SGi5f0w7uCm6d6M4OU2rGFK09Y2A4Xv7EE0= +github.com/decred/dcrd/crypto/blake256 v1.0.0/go.mod h1:sQl2p6Y26YV+ZOcSTP6thNdn47hh8kt6rqSlvmrXFAc= +github.com/decred/dcrd/dcrec/secp256k1/v2 v2.0.0 h1:3GIJYXQDAKpLEFriGFN8SbSffak10UXHGdIcFaMPykY= +github.com/decred/dcrd/dcrec/secp256k1/v2 v2.0.0/go.mod h1:3s92l0paYkZoIHuj4X93Teg/HB7eGM9x/zokGw+u4mY= +github.com/decred/dcrd/dcrec/secp256k1/v4 v4.0.1 h1:YLtO71vCjJRCBcrPMtQ9nqBsqpA1m5sE92cU+pd5Mcc= +github.com/decred/dcrd/dcrec/secp256k1/v4 v4.0.1/go.mod h1:hyedUtir6IdtD/7lIxGeCxkaw7y45JueMRL4DIyJDKs= +github.com/decred/dcrd/lru v1.0.0/go.mod h1:mxKOwFd7lFjN2GZYsiz/ecgqR6kkYAl+0pz0tEMk218= +github.com/desertbit/timer v0.0.0-20180107155436-c41aec40b27f h1:U5y3Y5UE0w7amNe7Z5G/twsBW0KEalRQXZzf8ufSh9I= +github.com/dgraph-io/badger v1.6.0/go.mod h1:zwt7syl517jmP8s94KqSxTlM6IMsdhYy6psNgSztDR4= +github.com/dgraph-io/badger/v2 v2.2007.4 h1:TRWBQg8UrlUhaFdco01nO2uXwzKS7zd+HVdwV/GHc4o= +github.com/dgraph-io/badger/v2 v2.2007.4/go.mod h1:vSw/ax2qojzbN6eXHIx6KPKtCSHJN/Uz0X0VPruTIhk= +github.com/dgraph-io/ristretto v0.0.3-0.20200630154024-f66de99634de/go.mod h1:KPxhHT9ZxKefz+PCeOGsrHpl1qZ7i70dGTu2u+Ahh6E= +github.com/dgraph-io/ristretto v0.1.0 h1:Jv3CGQHp9OjuMBSne1485aDpUkTKEcUqF+jm/LuerPI= +github.com/dgraph-io/ristretto v0.1.0/go.mod h1:fux0lOrBhrVCJd3lcTHsIJhq1T2rokOu6v9Vcb3Q9ug= +github.com/dgryski/go-farm v0.0.0-20190423205320-6a90982ecee2/go.mod h1:SqUrOPUnsFjfmXRMNPybcSiG0BgUW2AuFH8PAnS2iTw= +github.com/dgryski/go-farm v0.0.0-20200201041132-a6ae2369ad13 h1:fAjc9m62+UWV/WAFKLNi6ZS0675eEUC9y3AlwSbQu1Y= +github.com/dgryski/go-farm v0.0.0-20200201041132-a6ae2369ad13/go.mod h1:SqUrOPUnsFjfmXRMNPybcSiG0BgUW2AuFH8PAnS2iTw= +github.com/docker/distribution v2.8.1+incompatible h1:Q50tZOPR6T/hjNsyc9g8/syEs6bk8XXApsHjKukMl68= +github.com/docker/distribution v2.8.1+incompatible/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w= +github.com/docker/docker v20.10.19+incompatible h1:lzEmjivyNHFHMNAFLXORMBXyGIhw/UP4DvJwvyKYq64= +github.com/docker/docker v20.10.19+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= +github.com/docker/go-connections v0.4.0 h1:El9xVISelRB7BuFusrZozjnkIM5YnzCViNKohAFqRJQ= +github.com/docker/go-connections v0.4.0/go.mod h1:Gbd7IOopHjR8Iph03tsViu4nIes5XhDvyHbTtUxmeec= +github.com/docker/go-units v0.5.0 h1:69rxXcBk27SvSaaxTtLh/8llcHD8vYHT7WSdRZ/jvr4= +github.com/docker/go-units v0.5.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= +github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= +github.com/dustin/go-humanize v1.0.1-0.20200219035652-afde56e7acac h1:opbrjaN/L8gg6Xh5D04Tem+8xVcz6ajZlGCs49mQgyg= +github.com/dustin/go-humanize v1.0.1-0.20200219035652-afde56e7acac/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= +github.com/dvsekhvalnov/jose2go v1.5.0 h1:3j8ya4Z4kMCwT5nXIKFSV84YS+HdqSSO0VsTQxaLAeM= +github.com/dvsekhvalnov/jose2go v1.5.0/go.mod h1:QsHjhyTlD/lAVqn/NSbVZmSCGeDehTB/mPZadG+mhXU= +github.com/eknkc/amber v0.0.0-20171010120322-cdade1c07385/go.mod h1:0vRUJqYpeSZifjYj7uP3BG/gKcuzL9xWVV/Y+cK33KM= +github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= +github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= +github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98= +github.com/envoyproxy/go-control-plane v0.9.7/go.mod h1:cwu0lG7PUMfa9snN8LXBig5ynNVH9qI8YYLbd1fK2po= +github.com/envoyproxy/go-control-plane v0.9.9-0.20201210154907-fd9021fe5dad/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk= +github.com/envoyproxy/go-control-plane v0.9.9-0.20210217033140-668b12f5399d/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk= +github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= +github.com/etcd-io/bbolt v1.3.3/go.mod h1:ZF2nL25h33cCyBtcyWeZ2/I3HQOfTP+0PIEvHjkjCrw= +github.com/ethereum/go-ethereum v1.11.6 h1:2VF8Mf7XiSUfmoNOy3D+ocfl9Qu8baQBrCNbo2CXQ8E= +github.com/ethereum/go-ethereum v1.11.6/go.mod h1:+a8pUj1tOyJ2RinsNQD4326YS+leSoKGiG/uVVb0x6Y= +github.com/facebookgo/ensure v0.0.0-20200202191622-63f1cf65ac4c h1:8ISkoahWXwZR41ois5lSJBSVw4D0OV19Ht/JSTzvSv0= +github.com/facebookgo/stack v0.0.0-20160209184415-751773369052 h1:JWuenKqqX8nojtoVVWjGfOF9635RETekkoH6Cc9SX0A= +github.com/facebookgo/subset v0.0.0-20200203212716-c811ad88dec4 h1:7HZCaLC5+BZpmbhCOZJ293Lz68O7PYrF2EzeiFMwCLk= +github.com/fasthttp-contrib/websocket v0.0.0-20160511215533-1f3b11f56072/go.mod h1:duJ4Jxv5lDcvg4QuQr0oowTf7dz4/CR8NtyCooz9HL8= +github.com/fatih/structs v1.1.0/go.mod h1:9NiDSp5zOcgEDl+j00MP/WkGVPOlPRLejGD8Ga6PJ7M= +github.com/felixge/httpsnoop v1.0.1/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= +github.com/felixge/httpsnoop v1.0.2 h1:+nS9g82KMXccJ/wp0zyRW9ZBHFETmMGtkk+2CTTrW4o= +github.com/felixge/httpsnoop v1.0.2/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= +github.com/fortytw2/leaktest v1.3.0 h1:u8491cBMTQ8ft8aeV+adlcytMZylmA5nnwwkRZjI8vw= +github.com/frankban/quicktest v1.14.3 h1:FJKSZTDHjyhriyC81FLQ0LY93eSai0ZyR/ZIkd3ZUKE= +github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= +github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ= +github.com/fsnotify/fsnotify v1.6.0 h1:n+5WquG0fcWoWp6xPWfHdbskMCQaFnG6PfBrh1Ky4HY= +github.com/fsnotify/fsnotify v1.6.0/go.mod h1:sl3t1tCWJFWoRz9R8WJCbQihKKwmorjAbSClcnxKAGw= +github.com/gavv/httpexpect v2.0.0+incompatible/go.mod h1:x+9tiU1YnrOvnB725RkpoLv1M62hOWzwo5OXotisrKc= +github.com/getsentry/sentry-go v0.12.0/go.mod h1:NSap0JBYWzHND8oMbyi0+XZhUalc1TBdRL1M71JZW2c= +github.com/getsentry/sentry-go v0.18.0 h1:MtBW5H9QgdcJabtZcuJG80BMOwaBpkRDZkxRkNC1sN0= +github.com/getsentry/sentry-go v0.18.0/go.mod h1:Kgon4Mby+FJ7ZWHFUAZgVaIa8sxHtnRJRLTXZr51aKQ= +github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= +github.com/gin-contrib/sse v0.0.0-20190301062529-5545eab6dad3/go.mod h1:VJ0WA2NBN22VlZ2dKZQPAPnyWw5XTlK1KymzLKsr59s= +github.com/gin-gonic/gin v1.4.0/go.mod h1:OW2EZn3DO8Ln9oIKOvM++LBO+5UPHJJDH72/q/3rZdM= +github.com/go-check/check v0.0.0-20180628173108-788fd7840127/go.mod h1:9ES+weclKsC9YodN5RgxqK/VD9HM9JsCSh7rNhMZE98= +github.com/go-errors/errors v1.0.1/go.mod h1:f4zRHt4oKfwPJE5k8C9vpYG+aDHdBFUsgrm6/TyX73Q= +github.com/go-errors/errors v1.4.2 h1:J6MZopCL4uSllY1OfXM374weqZFFItUbrImctkmUxIA= +github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU= +github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= +github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200222043503-6f7a984d4dc4/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= +github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= +github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= +github.com/go-kit/kit v0.12.0 h1:e4o3o3IsBfAKQh5Qbbiqyfu97Ku7jrO/JbohvztANh4= +github.com/go-kit/kit v0.12.0/go.mod h1:lHd+EkCZPIwYItmGDDRdhinkzX2A1sj+M9biaEaizzs= +github.com/go-kit/log v0.2.1 h1:MRVx0/zhvdseW+Gza6N9rVzU/IVzaeE1SFI4raAhmBU= +github.com/go-kit/log v0.2.1/go.mod h1:NwTd00d/i8cPZ3xOwwiv2PO5MOcx78fFErGNcVmBjv0= +github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= +github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= +github.com/go-logfmt/logfmt v0.5.1 h1:otpy5pqBCBZ1ng9RQ0dPu4PN7ba75Y/aA+UpowDyNVA= +github.com/go-logfmt/logfmt v0.5.1/go.mod h1:WYhtIu8zTZfxdn5+rREduYbwxfcBr/Vr6KEVveWlfTs= +github.com/go-martini/martini v0.0.0-20170121215854-22fa46961aab/go.mod h1:/P9AEU963A2AYjv4d1V5eVL1CQbEJq6aCNHDDjibzu8= +github.com/go-ole/go-ole v1.2.1 h1:2lOsA72HgjxAuMlKpFiCbHTvu44PIVkZ5hqm3RSdI/E= +github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= +github.com/go-stack/stack v1.8.1 h1:ntEHSVwIt7PNXNpgPmVfMrNhLtgjlmnZha2kOpuRiDw= +github.com/go-stack/stack v1.8.1/go.mod h1:dcoOX6HbPZSZptuspn9bctJ+N/CnF5gGygcUP3XYfe4= +github.com/gobwas/httphead v0.0.0-20180130184737-2c6c146eadee/go.mod h1:L0fX3K22YWvt/FAX9NnzrNzcI4wNYi9Yku4O0LKYflo= +github.com/gobwas/pool v0.2.0/go.mod h1:q8bcK0KcYlCgd9e7WYLm9LpyS+YeLd8JVDW6WezmKEw= +github.com/gobwas/ws v1.0.2/go.mod h1:szmBTxLgaFppYjEmNtny/v3w89xOydFnnZMcgRRu/EM= +github.com/godbus/dbus v0.0.0-20190726142602-4481cbc300e2 h1:ZpnhV/YsD2/4cESfV5+Hoeu/iUR3ruzNvZ+yQfO03a0= +github.com/godbus/dbus v0.0.0-20190726142602-4481cbc300e2/go.mod h1:bBOAhwG1umN6/6ZUMtDFBMQR8jRg9O75tm9K00oMsK4= +github.com/gofrs/uuid v4.3.0+incompatible h1:CaSVZxm5B+7o45rtab4jC2G37WGYX1zQfuU2i6DSvnc= +github.com/gogo/gateway v1.1.0 h1:u0SuhL9+Il+UbjM9VIE3ntfRujKbvVpFvNB4HbjeVQ0= +github.com/gogo/gateway v1.1.0/go.mod h1:S7rR8FRQyG3QFESeSv4l2WnsyzlCLG0CzBbUUo/mbic= +github.com/gogo/googleapis v0.0.0-20180223154316-0cd9801be74a/go.mod h1:gf4bu3Q80BeJ6H1S1vYPm8/ELATdvryBaNFGgqEef3s= +github.com/gogo/googleapis v1.4.1/go.mod h1:2lpHqI5OcWCtVElxXnPt+s8oJvMpySlOyM6xDCrzib4= +github.com/gogo/status v1.1.0/go.mod h1:BFv9nrluPLmrS0EmGVvLaPNmRosr9KapBYd5/hpY1WM= +github.com/golang-jwt/jwt v3.2.2+incompatible/go.mod h1:8pz2t5EyA70fFQQSrl6XZXzqecmYZeUEB8OUGHkxJ+I= +github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= +github.com/golang/glog v1.0.0 h1:nfP3RFugxnNRyKgeWd4oI1nYvXpxrx8ck8ZrcizshdQ= +github.com/golang/glog v1.0.0/go.mod h1:EWib/APOK0SL3dFbYqvxE3UYd8E6s1ouQ7iEp/0LWV4= +github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= +github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= +github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= +github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= +github.com/golang/mock v1.2.0/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= +github.com/golang/mock v1.3.1/go.mod h1:sBzyDLLjw3U8JLTeZvSv8jJB+tU5PVekmnlKIyFUx0Y= +github.com/golang/mock v1.4.0/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= +github.com/golang/mock v1.4.1/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= +github.com/golang/mock v1.4.3/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= +github.com/golang/mock v1.4.4/go.mod h1:l3mdAwkq5BuhzHwde/uurv3sEJeZMXNpwsxVWU71h+4= +github.com/golang/mock v1.6.0 h1:ErTB+efbowRARo13NNdxyJji2egdxLGQhRaY+DUumQc= +github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golang/protobuf v1.3.0/go.mod h1:Qd/q+1AKNOZr9uGQzbzCmRO6sUih6GTPZv6a1/R87v0= +github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golang/protobuf v1.3.3/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= +github.com/golang/protobuf v1.3.4/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= +github.com/golang/protobuf v1.3.5/go.mod h1:6O5/vntMXwX2lRkT1hjjk0nAC1IDOTvTlVgjlRvqsdk= +github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8= +github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA= +github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs= +github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:WU3c8KckQ9AFe+yFwt9sWVRKCVIyN9cPHBJSNnbL67w= +github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0= +github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QDs8UjoX8= +github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= +github.com/golang/protobuf v1.4.3/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= +github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= +github.com/golang/protobuf v1.5.2 h1:ROPKBNFfQgOUMifHyP+KYbvpjbdoFNs+aK7DXlji0Tw= +github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= +github.com/golang/snappy v0.0.3/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= +github.com/golang/snappy v0.0.4/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= +github.com/golang/snappy v0.0.5-0.20220116011046-fa5810519dcb h1:PBC98N2aIaM3XXiurYmW7fx4GZkL8feAMVq7nEjURHk= +github.com/golang/snappy v0.0.5-0.20220116011046-fa5810519dcb/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= +github.com/gomodule/redigo v1.7.1-0.20190724094224-574c33c3df38/go.mod h1:B4C85qUVwatsJoIUNIfCRsp7qO0iAmpGFZ4EELWSbC4= +github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= +github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= +github.com/google/btree v1.1.2 h1:xf4v41cLI2Z6FxbKm+8Bu+m8ifhj15JuZ9sa0jZCMUU= +github.com/google/btree v1.1.2/go.mod h1:qOPhT0dTNdNzV6Z/lhRX0YXUafgPLFUh+gZMl761Gm4= +github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= +github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= +github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= +github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.4.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.2/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.3/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.4/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38= +github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= +github.com/google/go-querystring v1.0.0/go.mod h1:odCYkC5MyYFN7vkCjXpyrEuKhc/BUO6wN/zVPAxq5ck= +github.com/google/gofuzz v0.0.0-20170612174753-24818f796faf/go.mod h1:HP5RmnzzSNb993RKQDq4+1A4ia9nllfqcQFTQJedwGI= +github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= +github.com/google/gofuzz v1.2.0 h1:xRy4A+RhZaiKjJ1bPfwQ8sedCA+YS2YcCHW6ec7JMi0= +github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs= +github.com/google/martian/v3 v3.0.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0= +github.com/google/martian/v3 v3.1.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0= +github.com/google/orderedcode v0.0.1 h1:UzfcAexk9Vhv8+9pNOgRu41f16lHq725vPwnSeiG/Us= +github.com/google/pprof v0.0.0-20181206194817-3ea8567a2e57/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= +github.com/google/pprof v0.0.0-20190515194954-54271f7e092f/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= +github.com/google/pprof v0.0.0-20191218002539-d4f498aebedc/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= +github.com/google/pprof v0.0.0-20200212024743-f11f1df84d12/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= +github.com/google/pprof v0.0.0-20200229191704-1ebb73c60ed3/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= +github.com/google/pprof v0.0.0-20200430221834-fc25d7d30c6d/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= +github.com/google/pprof v0.0.0-20200708004538-1a94d8640e99/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= +github.com/google/pprof v0.0.0-20201023163331-3e6fc7fc9c4c/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= +github.com/google/pprof v0.0.0-20201203190320-1bf35d6f28c2/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= +github.com/google/pprof v0.0.0-20201218002935-b9804c9f04c2/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= +github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= +github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/google/uuid v1.3.0 h1:t6JiXgmwXMjEs8VusXIJk2BXHsn+wx8BZdTaoZ5fu7I= +github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= +github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk= +github.com/googleapis/google-cloud-go-testing v0.0.0-20200911160855-bcd43fbb19e8/go.mod h1:dvDLG8qkwmyD9a/MJJN3XJcT3xFxOKAvTZGvuZmac9g= +github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= +github.com/gorilla/handlers v1.5.1 h1:9lRY6j8DEeeBT10CvO9hGW0gmky0BprnvDI5vfhUHH4= +github.com/gorilla/handlers v1.5.1/go.mod h1:t8XrUpc4KVXb7HGyJ4/cEnwQiaxrX/hz1Zv/4g96P1Q= +github.com/gorilla/mux v1.8.0 h1:i40aqfkR1h2SlN9hojwV5ZA91wcXFOvkdNIeFDP5koI= +github.com/gorilla/mux v1.8.0/go.mod h1:DVbg23sWSpFRCP0SfiEN6jmj59UnW/n46BH5rLB71So= +github.com/gorilla/websocket v1.4.1/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= +github.com/gorilla/websocket v1.5.0 h1:PPwGk2jz7EePpoHN/+ClbZu8SPxiqlu12wZP/3sWmnc= +github.com/gorilla/websocket v1.5.0/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= +github.com/grpc-ecosystem/go-grpc-middleware v1.3.0 h1:+9834+KizmvFV7pXQGSXQTsaWhq2GjuNUt0aUU0YBYw= +github.com/grpc-ecosystem/go-grpc-middleware v1.3.0/go.mod h1:z0ButlSOZa5vEBq9m2m2hlwIgKw+rp3sdCBRoJY+30Y= +github.com/grpc-ecosystem/grpc-gateway v1.8.5/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= +github.com/grpc-ecosystem/grpc-gateway v1.16.0 h1:gmcG1KaJ57LophUzW0Hy8NmPhnMZb4M0+kPpLofRdBo= +github.com/grpc-ecosystem/grpc-gateway v1.16.0/go.mod h1:BDjrQk3hbvj6Nolgz8mAMFbcEtjT1g+wF4CSlocrBnw= +github.com/gsterjov/go-libsecret v0.0.0-20161001094733-a6f4afe4910c h1:6rhixN/i8ZofjG1Y75iExal34USq5p+wiN1tpie8IrU= +github.com/gsterjov/go-libsecret v0.0.0-20161001094733-a6f4afe4910c/go.mod h1:NMPJylDgVpX0MLRlPy15sqSwOFv/U1GZ2m21JhFfek0= +github.com/gtank/merlin v0.1.1-0.20191105220539-8318aed1a79f/go.mod h1:T86dnYJhcGOh5BjZFCJWTDeTK7XW8uE+E21Cy/bIQ+s= +github.com/gtank/merlin v0.1.1 h1:eQ90iG7K9pOhtereWsmyRJ6RAwcP4tHTDBHXNg+u5is= +github.com/gtank/merlin v0.1.1/go.mod h1:T86dnYJhcGOh5BjZFCJWTDeTK7XW8uE+E21Cy/bIQ+s= +github.com/gtank/ristretto255 v0.1.2 h1:JEqUCPA1NvLq5DwYtuzigd7ss8fwbYay9fi4/5uMzcc= +github.com/gtank/ristretto255 v0.1.2/go.mod h1:Ph5OpO6c7xKUGROZfWVLiJf9icMDwUeIvY4OmlYW69o= +github.com/hashicorp/go-cleanhttp v0.5.0/go.mod h1:JpRdi6/HCYpAwUzNwuwqhbovhLtngrth3wmdIIUrZ80= +github.com/hashicorp/go-immutable-radix v1.0.0/go.mod h1:0y9vanUI8NX6FsYoO3zeMjhV/C5i9g4Q3DwcSNZ4P60= +github.com/hashicorp/go-immutable-radix v1.3.1 h1:DKHmCUm2hRBK510BaiZlwvpD40f8bJFeZnpfm2KLowc= +github.com/hashicorp/go-immutable-radix v1.3.1/go.mod h1:0y9vanUI8NX6FsYoO3zeMjhV/C5i9g4Q3DwcSNZ4P60= +github.com/hashicorp/go-retryablehttp v0.5.3/go.mod h1:9B5zBasrRhHXnJnui7y6sL7es7NDiJgTc6Er0maI1Xs= +github.com/hashicorp/go-uuid v1.0.0/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= +github.com/hashicorp/go-uuid v1.0.1 h1:fv1ep09latC32wFoVwnqcnKJGnMSdBanPczbHAYm1BE= +github.com/hashicorp/go-version v1.2.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA= +github.com/hashicorp/go-version v1.6.0 h1:feTTfFNnjP967rlCxM/I9g701jU+RN74YKx2mOkIeek= +github.com/hashicorp/go-version v1.6.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA= +github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= +github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= +github.com/hashicorp/golang-lru v0.5.5-0.20210104140557-80c98217689d h1:dg1dEPuWpEqDnvIw251EVy4zlP8gWbsGj4BsUKCRpYs= +github.com/hashicorp/golang-lru v0.5.5-0.20210104140557-80c98217689d/go.mod h1:iADmTwqILo4mZ8BN3D2Q6+9jd8WM5uGBxy+E8yxSoD4= +github.com/hashicorp/hcl v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4= +github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= +github.com/hdevalence/ed25519consensus v0.0.0-20220222234857-c00d1f31bab3 h1:aSVUgRRRtOrZOC1fYmY9gV0e9z/Iu+xNVSASWjsuyGU= +github.com/hdevalence/ed25519consensus v0.0.0-20220222234857-c00d1f31bab3/go.mod h1:5PC6ZNPde8bBqU/ewGZig35+UIZtw9Ytxez8/q5ZyFE= +github.com/holiman/uint256 v1.2.2-0.20230321075855-87b91420868c h1:DZfsyhDK1hnSS5lH8l+JggqzEleHteTYfutAiVlSUM8= +github.com/holiman/uint256 v1.2.2-0.20230321075855-87b91420868c/go.mod h1:SC8Ryt4n+UBbPbIBKaG9zbbDlp4jOru9xFZmPzLUTxw= +github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= +github.com/hydrogen18/memlistener v0.0.0-20200120041712-dcc25e7acd91/go.mod h1:qEIFzExnS6016fRpRfxrExeVn2gbClQA99gQhnIcdhE= +github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= +github.com/ianlancetaylor/demangle v0.0.0-20200824232613-28f6c0f3b639/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= +github.com/icza/dyno v0.0.0-20220812133438-f0b6f8a18845 h1:H+uM0Bv88eur3ZSsd2NGKg3YIiuXxwxtlN7HjE66UTU= +github.com/icza/dyno v0.0.0-20220812133438-f0b6f8a18845/go.mod h1:c1tRKs5Tx7E2+uHGSyyncziFjvGpgv4H2HrqXeUQ/Uk= +github.com/imkira/go-interpol v1.1.0/go.mod h1:z0h2/2T3XF8kyEPpRgJ3kmNv+C43p+I/CoI+jC3w2iA= +github.com/improbable-eng/grpc-web v0.15.0 h1:BN+7z6uNXZ1tQGcNAuaU1YjsLTApzkjt2tzCixLaUPQ= +github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8= +github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8= +github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw= +github.com/informalsystems/tendermint v0.34.23 h1:lZhFEDSmK6xWDyKhcJNqiB1xh2Gt/3FufF1FNQ+vVn4= +github.com/informalsystems/tendermint v0.34.23/go.mod h1:rXVrl4OYzmIa1I91av3iLv2HS0fGSiucyW9J4aMTpKI= +github.com/ipfs/go-cid v0.0.7 h1:ysQJVJA3fNDF1qigJbsSQOdjhVLsOEoPdh0+R97k3jY= +github.com/ipfs/go-cid v0.0.7/go.mod h1:6Ux9z5e+HpkQdckYoX1PG/6xqKspzlEIR5SDmgqgC/I= +github.com/iris-contrib/blackfriday v2.0.0+incompatible/go.mod h1:UzZ2bDEoaSGPbkg6SAB4att1aAwTmVIx/5gCVqeyUdI= +github.com/iris-contrib/go.uuid v2.0.0+incompatible/go.mod h1:iz2lgM/1UnEf1kP0L/+fafWORmlnuysV2EMP8MW+qe0= +github.com/iris-contrib/jade v1.1.3/go.mod h1:H/geBymxJhShH5kecoiOCSssPX7QWYH7UaeZTSWddIk= +github.com/iris-contrib/pongo2 v0.0.1/go.mod h1:Ssh+00+3GAZqSQb30AvBRNxBx7rf0GqwkjqxNd0u65g= +github.com/iris-contrib/schema v0.0.1/go.mod h1:urYA3uvUNG1TIIjOSCzHr9/LmbQo8LrOcOqfqxa4hXw= +github.com/jessevdk/go-flags v1.4.0/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= +github.com/jmhodges/levigo v1.0.0 h1:q5EC36kV79HWeTBWsod3mG11EgStG3qArTKcvlksN1U= +github.com/jmhodges/levigo v1.0.0/go.mod h1:Q6Qx+uH3RAqyK4rFQroq9RL7mdkABMcfhEI+nNuzMJQ= +github.com/jrick/logrotate v1.0.0/go.mod h1:LNinyqDIJnpAur+b8yyulnQw/wDuN1+BYKlTRt3OuAQ= +github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU= +github.com/json-iterator/go v1.1.9/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= +github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU= +github.com/jstemmer/go-junit-report v0.9.1/go.mod h1:Brl9GWCQeLvo8nXZwPNNblvFj/XSXhF0NWZEnDohbsk= +github.com/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU= +github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w= +github.com/k0kubun/colorstring v0.0.0-20150214042306-9440f1994b88/go.mod h1:3w7q1U84EfirKl04SVQ/s7nPm1ZPhiXd34z40TNz36k= +github.com/kataras/golog v0.0.10/go.mod h1:yJ8YKCmyL+nWjERB90Qwn+bdyBZsaQwU3bTVFgkFIp8= +github.com/kataras/iris/v12 v12.1.8/go.mod h1:LMYy4VlP67TQ3Zgriz8RE2h2kMZV2SgMYbq3UhfoFmE= +github.com/kataras/neffos v0.0.14/go.mod h1:8lqADm8PnbeFfL7CLXh1WHw53dG27MC3pgi2R1rmoTE= +github.com/kataras/pio v0.0.2/go.mod h1:hAoW0t9UmXi4R5Oyq5Z4irTbaTsOemSrDGUtaTl7Dro= +github.com/kataras/sitemap v0.0.5/go.mod h1:KY2eugMKiPwsJgx7+U103YZehfvNGOXURubcGyk0Bz8= +github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51 h1:Z9n2FFNUXsshfwJMBgNA0RU6/i7WVaAegv3PtuIHPMs= +github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51/go.mod h1:CzGEWj7cYgsdH8dAjBGEr58BoE7ScuLd+fwFZ44+/x8= +github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= +github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= +github.com/kkdai/bstream v0.0.0-20161212061736-f391b8402d23/go.mod h1:J+Gs4SYgM6CZQHDETBtE9HaSEkGmuNXF86RwHhHUvq4= +github.com/klauspost/compress v1.8.2/go.mod h1:RyIbtBH6LamlWaDj8nUwkbUhJ87Yi3uG0guNDohfE1A= +github.com/klauspost/compress v1.9.7/go.mod h1:RyIbtBH6LamlWaDj8nUwkbUhJ87Yi3uG0guNDohfE1A= +github.com/klauspost/compress v1.12.3/go.mod h1:8dP1Hq4DHOhN9w426knH3Rhby4rFm6D8eO+e+Dq5Gzg= +github.com/klauspost/compress v1.15.15 h1:EF27CXIuDsYJ6mmvtBRlEuB2UVOqHG1tAXgZ7yIO+lw= +github.com/klauspost/compress v1.15.15/go.mod h1:ZcK2JAFqKOpnBlxcLsJzYfrS9X1akm9fHZNnD9+Vo/4= +github.com/klauspost/cpuid v1.2.1/go.mod h1:Pj4uuM528wm8OyEC2QMXAi2YiTZ96dNQPGgoMS4s3ek= +github.com/klauspost/cpuid/v2 v2.0.4/go.mod h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa0213Md/qVLRg= +github.com/klauspost/cpuid/v2 v2.0.9 h1:lgaqFMSdTdQYdZ04uHyN2d/eKdOMyi2YLSvlQIBFYa4= +github.com/klauspost/cpuid/v2 v2.0.9/go.mod h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa0213Md/qVLRg= +github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= +github.com/kr/fs v0.1.0/go.mod h1:FFnZGqtBN9Gxj7eW1uZ42v5BccTP0vu6NEaFoC2HwRg= +github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc= +github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= +github.com/kr/pretty v0.3.0/go.mod h1:640gp4NfQd8pI5XOwp5fnNeVWj67G7CFk/SaSQn7NBk= +github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= +github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= +github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= +github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= +github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= +github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= +github.com/labstack/echo/v4 v4.5.0/go.mod h1:czIriw4a0C1dFun+ObrXp7ok03xON0N1awStJ6ArI7Y= +github.com/labstack/gommon v0.3.0/go.mod h1:MULnywXg0yavhxWKc+lOruYdAhDwPK9wf0OL7NoOu+k= +github.com/lib/pq v1.10.6 h1:jbk+ZieJ0D7EVGJYpL9QTz7/YW6UHbmdnZWYyK5cdBs= +github.com/libp2p/go-buffer-pool v0.1.0 h1:oK4mSFcQz7cTQIfqbe4MIj9gLW+mnanjyFtc6cdF0Y8= +github.com/libp2p/go-buffer-pool v0.1.0/go.mod h1:N+vh8gMqimBzdKkSMVuydVDq+UV5QTWy5HSiZacSbPg= +github.com/libp2p/go-libp2p-core v0.15.1 h1:0RY+Mi/ARK9DgG1g9xVQLb8dDaaU8tCePMtGALEfBnM= +github.com/libp2p/go-libp2p-core v0.15.1/go.mod h1:agSaboYM4hzB1cWekgVReqV5M4g5M+2eNNejV+1EEhs= +github.com/libp2p/go-openssl v0.0.7 h1:eCAzdLejcNVBzP/iZM9vqHnQm+XyCEbSSIheIPRGNsw= +github.com/libp2p/go-openssl v0.0.7/go.mod h1:unDrJpgy3oFr+rqXsarWifmJuNnJR4chtO1HmaZjggc= +github.com/linxGnu/grocksdb v1.7.10 h1:dz7RY7GnFUA+GJO6jodyxgkUeGMEkPp3ikt9hAcNGEw= +github.com/linxGnu/grocksdb v1.7.10/go.mod h1:0hTf+iA+GOr0jDX4CgIYyJZxqOH9XlBh6KVj8+zmF34= +github.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= +github.com/magiconair/properties v1.8.6 h1:5ibWZ6iY0NctNGWo87LalDlEZ6R41TqbbDamhfG/Qzo= +github.com/magiconair/properties v1.8.6/go.mod h1:y3VJvCyxH9uVvJTWEGAELF3aiYNyPKd5NZ3oSwXrF60= +github.com/mattn/go-colorable v0.1.2/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE= +github.com/mattn/go-colorable v0.1.8/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc= +github.com/mattn/go-colorable v0.1.11/go.mod h1:u5H1YNBxpqRaxsYJYSkiCWKzEfiAb1Gb520KVy5xxl4= +github.com/mattn/go-colorable v0.1.13 h1:fFA4WZxdEF4tXPZVKMLwD8oUnCTTo08duU7wxecdEvA= +github.com/mattn/go-isatty v0.0.7/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= +github.com/mattn/go-isatty v0.0.8/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= +github.com/mattn/go-isatty v0.0.9/go.mod h1:YNRxwqDuOph6SZLI9vUUz6OYw3QyUt7WiY2yME+cCiQ= +github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU= +github.com/mattn/go-isatty v0.0.14/go.mod h1:7GGIvUiUoEMVVmxf/4nioHXj79iQHKdU27kJ6hsGG94= +github.com/mattn/go-isatty v0.0.16 h1:bq3VjFmv/sOjHtdEhmkEV4x1AJtvUvOJ2PFAZ5+peKQ= +github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= +github.com/mattn/go-sqlite3 v1.14.12 h1:TJ1bhYJPV44phC+IMu1u2K/i5RriLTPe+yc68XDJ1Z0= +github.com/mattn/go-sqlite3 v1.14.12/go.mod h1:NyWgC/yNuGj7Q9rpYnZvas74GogHl5/Z4A/KQRfk6bU= +github.com/mattn/goveralls v0.0.2/go.mod h1:8d1ZMHsd7fW6IRPKQh46F2WRpyib5/X4FOpevwGNQEw= +github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= +github.com/matttproud/golang_protobuf_extensions v1.0.4 h1:mmDVorXM7PCGKw94cs5zkfA9PSy5pEvNWRP0ET0TIVo= +github.com/matttproud/golang_protobuf_extensions v1.0.4/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4= +github.com/mediocregopher/radix/v3 v3.4.2/go.mod h1:8FL3F6UQRXHXIBSPUs5h0RybMF8i4n7wVopoX3x7Bv8= +github.com/microcosm-cc/bluemonday v1.0.2/go.mod h1:iVP4YcDBq+n/5fb23BhYFvIMq/leAFZyRl6bYmGDlGc= +github.com/mimoo/StrobeGo v0.0.0-20181016162300-f8f6d4d2b643/go.mod h1:43+3pMjjKimDBf5Kr4ZFNGbLql1zKkbImw+fZbw3geM= +github.com/mimoo/StrobeGo v0.0.0-20210601165009-122bf33a46e0 h1:QRUSJEgZn2Snx0EmT/QLXibWjSUDjKWvXIT19NBVp94= +github.com/mimoo/StrobeGo v0.0.0-20210601165009-122bf33a46e0/go.mod h1:43+3pMjjKimDBf5Kr4ZFNGbLql1zKkbImw+fZbw3geM= +github.com/minio/blake2b-simd v0.0.0-20160723061019-3f5f724cb5b1 h1:lYpkrQH5ajf0OXOcUbGjvZxxijuBwbbmlSxLiuofa+g= +github.com/minio/blake2b-simd v0.0.0-20160723061019-3f5f724cb5b1/go.mod h1:pD8RvIylQ358TN4wwqatJ8rNavkEINozVn9DtGI3dfQ= +github.com/minio/highwayhash v1.0.2 h1:Aak5U0nElisjDCfPSG79Tgzkn2gl66NxOMspRrKnA/g= +github.com/minio/sha256-simd v0.1.1-0.20190913151208-6de447530771/go.mod h1:B5e1o+1/KgNmWrSQK08Y6Z1Vb5pwIktudl0J58iy0KM= +github.com/minio/sha256-simd v1.0.0 h1:v1ta+49hkWZyvaKwrQB8elexRqm6Y0aMLjCNsrYxo6g= +github.com/minio/sha256-simd v1.0.0/go.mod h1:OuYzVNI5vcoYIAmbIvHPl3N3jUzVedXbKy5RFepssQM= +github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= +github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= +github.com/mitchellh/mapstructure v1.5.0 h1:jeMsZIYE/09sWLaz43PL7Gy6RuMjD2eJVyuac5Z2hdY= +github.com/mitchellh/mapstructure v1.5.0/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= +github.com/moby/term v0.0.0-20220808134915-39b0c02b01ae h1:O4SWKdcHVCvYqyDV+9CJA1fcDN2L11Bule0iFy3YlAI= +github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= +github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= +github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= +github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= +github.com/morikuni/aec v1.0.0 h1:nP9CBfwrvYnBRgY6qfDQkygYDmYwOilePFkwzv4dU8A= +github.com/moul/http2curl v1.0.0/go.mod h1:8UbvGypXm98wA/IqH45anm5Y2Z6ep6O31QGOAZ3H0fQ= +github.com/mr-tron/base58 v1.1.0/go.mod h1:xcD2VGqlgYjBdcBLw+TuYLr8afG+Hj8g2eTVqeSzSU8= +github.com/mr-tron/base58 v1.1.3/go.mod h1:BinMc/sQntlIE1frQmRFPUoPA1Zkr8VRgBdjWI2mNwc= +github.com/mr-tron/base58 v1.2.0 h1:T/HDJBh4ZCPbU39/+c3rRvE0uKBQlU27+QI8LJ4t64o= +github.com/mr-tron/base58 v1.2.0/go.mod h1:BinMc/sQntlIE1frQmRFPUoPA1Zkr8VRgBdjWI2mNwc= +github.com/mtibben/percent v0.2.1 h1:5gssi8Nqo8QU/r2pynCm+hBQHpkB/uNK7BJCFogWdzs= +github.com/mtibben/percent v0.2.1/go.mod h1:KG9uO+SZkUp+VkRHsCdYQV3XSZrrSpR3O9ibNBTZrns= +github.com/multiformats/go-base32 v0.0.3 h1:tw5+NhuwaOjJCC5Pp82QuXbrmLzWg7uxlMFp8Nq/kkI= +github.com/multiformats/go-base32 v0.0.3/go.mod h1:pLiuGC8y0QR3Ue4Zug5UzK9LjgbkL8NSQj0zQ5Nz/AA= +github.com/multiformats/go-base36 v0.1.0 h1:JR6TyF7JjGd3m6FbLU2cOxhC0Li8z8dLNGQ89tUg4F4= +github.com/multiformats/go-base36 v0.1.0/go.mod h1:kFGE83c6s80PklsHO9sRn2NCoffoRdUUOENyW/Vv6sM= +github.com/multiformats/go-multiaddr v0.4.1 h1:Pq37uLx3hsyNlTDir7FZyU8+cFCTqd5y1KiM2IzOutI= +github.com/multiformats/go-multiaddr v0.4.1/go.mod h1:3afI9HfVW8csiF8UZqtpYRiDyew8pRX7qLIGHu9FLuM= +github.com/multiformats/go-multibase v0.0.3 h1:l/B6bJDQjvQ5G52jw4QGSYeOTZoAwIO77RblWplfIqk= +github.com/multiformats/go-multibase v0.0.3/go.mod h1:5+1R4eQrT3PkYZ24C3W2Ue2tPwIdYQD509ZjSb5y9Oc= +github.com/multiformats/go-multicodec v0.4.1 h1:BSJbf+zpghcZMZrwTYBGwy0CPcVZGWiC72Cp8bBd4R4= +github.com/multiformats/go-multicodec v0.4.1/go.mod h1:1Hj/eHRaVWSXiSNNfcEPcwZleTmdNP81xlxDLnWU9GQ= +github.com/multiformats/go-multihash v0.0.13/go.mod h1:VdAWLKTwram9oKAatUcLxBNUjdtcVwxObEQBtRfuyjc= +github.com/multiformats/go-multihash v0.0.14/go.mod h1:VdAWLKTwram9oKAatUcLxBNUjdtcVwxObEQBtRfuyjc= +github.com/multiformats/go-multihash v0.1.0 h1:CgAgwqk3//SVEw3T+6DqI4mWMyRuDwZtOWcJT0q9+EA= +github.com/multiformats/go-multihash v0.1.0/go.mod h1:RJlXsxt6vHGaia+S8We0ErjhojtKzPP2AH4+kYM7k84= +github.com/multiformats/go-varint v0.0.5/go.mod h1:3Ls8CIEsrijN6+B7PbrXRPxHRPuXSrVKRY101jdMZYE= +github.com/multiformats/go-varint v0.0.6 h1:gk85QWKxh3TazbLxED/NlDVv8+q+ReFJk7Y2W/KhfNY= +github.com/multiformats/go-varint v0.0.6/go.mod h1:3Ls8CIEsrijN6+B7PbrXRPxHRPuXSrVKRY101jdMZYE= +github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= +github.com/nats-io/jwt v0.3.0/go.mod h1:fRYCDE99xlTsqUzISS1Bi75UBJ6ljOJQOAAu5VglpSg= +github.com/nats-io/nats.go v1.9.1/go.mod h1:ZjDU1L/7fJ09jvUSRVBR2e7+RnLiiIQyqyzEE/Zbp4w= +github.com/nats-io/nkeys v0.1.0/go.mod h1:xpnFELMwJABBLVhffcfd1MZx6VsNRFpEugbxziKVo7w= +github.com/nats-io/nuid v1.0.1/go.mod h1:19wcPz3Ph3q0Jbyiqsd0kePYG7A95tJPxeL+1OSON2c= +github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno= +github.com/nxadm/tail v1.4.4 h1:DQuhQpB1tVlglWS2hLQ5OV6B5r8aGxSrPc5Qo6uTN78= +github.com/nxadm/tail v1.4.4/go.mod h1:kenIhsEOeOJmVchQTgglprH7qJGnHDVpk1VPCcaMI8A= +github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/ginkgo v1.10.3/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/ginkgo v1.12.1/go.mod h1:zj2OWP4+oCPe1qIXoGWkgMRwljMUYCdkwsT2108oapk= +github.com/onsi/ginkgo v1.14.0 h1:2mOpI4JVVPBN+WQRa0WKH2eXR+Ey+uK4n7Zj0aYpIQA= +github.com/onsi/ginkgo v1.14.0/go.mod h1:iSB4RoI2tjJc9BBv4NKIKWKya62Rps+oPG/Lv9klQyY= +github.com/onsi/gomega v1.4.1/go.mod h1:C1qb7wdrVGGVU+Z6iS04AVkA3Q65CEZX59MT0QO5uiA= +github.com/onsi/gomega v1.7.1/go.mod h1:XdKZgCCFLUoM/7CFJVPcG8C1xQ1AJ0vpAezJrB7JYyY= +github.com/onsi/gomega v1.10.1 h1:o0+MgICZLuZ7xjH7Vx6zS/zcu93/BEp1VwkIW1mEXCE= +github.com/onsi/gomega v1.10.1/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1ybHNo= +github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8Oi/yOhh5U= +github.com/opencontainers/go-digest v1.0.0/go.mod h1:0JzlMkj0TRzQZfJkVvzbP0HBR3IKzErnv2BNG4W4MAM= +github.com/opencontainers/image-spec v1.1.0-rc2 h1:2zx/Stx4Wc5pIPDvIxHXvXtQFW/7XWJGmnM7r3wg034= +github.com/opencontainers/image-spec v1.1.0-rc2/go.mod h1:3OVijpioIKYWTqjiG0zfF6wvoJ4fAXGbjdZuI2NgsRQ= +github.com/opentracing/opentracing-go v1.1.0/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= +github.com/otiai10/copy v1.6.0 h1:IinKAryFFuPONZ7cm6T6E2QX/vcJwSnlaA5lfoaXIiQ= +github.com/oxyno-zeta/gomock-extra-matcher v1.1.0 h1:Yyk5ov0ZPKBXtVEeIWtc4J2XVrHuNoIK+0F2BUJgtsc= +github.com/pascaldekloe/goe v0.1.0 h1:cBOtyMzM9HTpWjXfbbunk26uA6nG3a8n06Wieeh0MwY= +github.com/pascaldekloe/goe v0.1.0/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc= +github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic= +github.com/pelletier/go-toml v1.9.5 h1:4yBQzkHv+7BHq2PQUZF3Mx0IYxG7LsP222s7Agd3ve8= +github.com/pelletier/go-toml v1.9.5/go.mod h1:u1nR/EPcESfeI/szUZKdtJ0xRNbUoANCkoOuaOx1Y+c= +github.com/pelletier/go-toml/v2 v2.0.5 h1:ipoSadvV8oGUjnUbMub59IDPPwfxF694nG/jwbMiyQg= +github.com/pelletier/go-toml/v2 v2.0.5/go.mod h1:OMHamSCAODeSsVrwwvcJOaoN0LIUIaFVNZzmWyNfXas= +github.com/petermattis/goid v0.0.0-20180202154549-b0b1615b78e5 h1:q2e307iGHPdTGp0hoxKjt1H5pDo6utceo3dQVK3I5XQ= +github.com/petermattis/goid v0.0.0-20180202154549-b0b1615b78e5/go.mod h1:jvVRKCrJTQWu0XVbaOlby/2lO20uSCHEMzzplHXte1o= +github.com/pierrec/xxHash v0.1.5 h1:n/jBpwTHiER4xYvK3/CdPVnLDPchj8eTJFFLUb4QHBo= +github.com/pierrec/xxHash v0.1.5/go.mod h1:w2waW5Zoa/Wc4Yqe0wgrIYAGKqRMf7czn2HNKXmuL+I= +github.com/pierrre/gotestcover v0.0.0-20160517101806-924dca7d15f0/go.mod h1:4xpMLz7RBWyB+ElzHu8Llua96TRCB3YwX+l5EP1wmHk= +github.com/pingcap/errors v0.11.4 h1:lFuQV/oaUMGcD2tqt+01ROSmJs75VG1ToEOkZIZ4nE4= +github.com/pingcap/errors v0.11.4/go.mod h1:Oi8TUi2kEtXXLMJk9l1cGmz20kV3TaQ0usTwv5KuLY8= +github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA= +github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= +github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= +github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= +github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= +github.com/pkg/sftp v1.13.1/go.mod h1:3HaPG6Dq1ILlpPZRO0HVMrsydcdLt6HRDccSgb87qRg= +github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= +github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= +github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo= +github.com/prometheus/client_golang v1.4.0/go.mod h1:e9GMxYsXl05ICDXkRhurwBS4Q3OK1iX/F2sw+iXX5zU= +github.com/prometheus/client_golang v1.14.0 h1:nJdhIvne2eSX/XRAFV9PcvFFRbrjbcTUj0VP62TMhnw= +github.com/prometheus/client_golang v1.14.0/go.mod h1:8vpkKitgIVNcqrRBWh1C4TIUQgYNtG/XQE4E/Zae36Y= +github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= +github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= +github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= +github.com/prometheus/client_model v0.2.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= +github.com/prometheus/client_model v0.3.0 h1:UBgGFHqYdG/TPFD1B1ogZywDqEkwp3fBMvqdiQ7Xew4= +github.com/prometheus/client_model v0.3.0/go.mod h1:LDGWKZIo7rky3hgvBe+caln+Dr3dPggB5dvjtD7w9+w= +github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= +github.com/prometheus/common v0.9.1/go.mod h1:yhUN8i9wzaXS3w1O07YhxHEBxD+W35wd8bs7vj7HSQ4= +github.com/prometheus/common v0.39.0 h1:oOyhkDq05hPZKItWVBkJ6g6AtGxi+fy7F4JvUV8uhsI= +github.com/prometheus/common v0.39.0/go.mod h1:6XBZ7lYdLCbkAVhwRsWTZn+IN5AB9F/NXd5w0BbEX0Y= +github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= +github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= +github.com/prometheus/procfs v0.0.8/go.mod h1:7Qr8sr6344vo1JqZ6HhLceV9o3AJ1Ff+GxbHq6oeK9A= +github.com/prometheus/procfs v0.9.0 h1:wzCHvIvM5SxWqYvwgVL7yJY8Lz3PKn49KQtpgMYJfhI= +github.com/prometheus/procfs v0.9.0/go.mod h1:+pB4zwohETzFnmlpe6yd2lSc+0/46IYZRB/chUwxUZY= +github.com/rakyll/statik v0.1.7 h1:OF3QCZUuyPxuGEP7B4ypUa7sB/iHtqOTDYZXGM8KOdQ= +github.com/rakyll/statik v0.1.7/go.mod h1:AlZONWzMtEnMs7W4e/1LURLiI49pIMmp6V9Unghqrcc= +github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475 h1:N/ElC8H3+5XpJzTSTfLsJV/mx9Q9g7kxmchpfZyxgzM= +github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4= +github.com/regen-network/cosmos-proto v0.3.1 h1:rV7iM4SSFAagvy8RiyhiACbWEGotmqzywPxOvwMdxcg= +github.com/regen-network/cosmos-proto v0.3.1/go.mod h1:jO0sVX6a1B36nmE8C9xBFXpNwWejXC7QqCOnH3O0+YM= +github.com/regen-network/gocuke v0.6.2 h1:pHviZ0kKAq2U2hN2q3smKNxct6hS0mGByFMHGnWA97M= +github.com/regen-network/protobuf v1.3.3-alpha.regen.1 h1:OHEc+q5iIAXpqiqFKeLpu5NwTIkVXUs48vFMwzqpqY4= +github.com/regen-network/protobuf v1.3.3-alpha.regen.1/go.mod h1:2DjTFR1HhMQhiWC5sZ4OhQ3+NtdbZ6oBDKQwq5Ou+FI= +github.com/remyoudompheng/bigfft v0.0.0-20200410134404-eec4a21b6bb0 h1:OdAsTTz6OkFY5QxjkYwrChwuRruF69c169dPK26NUlk= +github.com/remyoudompheng/bigfft v0.0.0-20200410134404-eec4a21b6bb0/go.mod h1:qqbHyh8v60DhA7CoWK5oRCqLrMHRGoxYCSS9EjAz6Eo= +github.com/robertkrimen/godocdown v0.0.0-20130622164427-0bfa04905481/go.mod h1:C9WhFzY47SzYBIvzFqSvHIR6ROgDo4TtdTuRaOMjF/s= +github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= +github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= +github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= +github.com/rogpeppe/go-internal v1.6.1/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc= +github.com/rogpeppe/go-internal v1.8.1/go.mod h1:JeRgkft04UBgHMgCIwADu4Pn6Mtm5d4nPKWu0nJ5d+o= +github.com/rogpeppe/go-internal v1.9.0 h1:73kH8U+JUqXU8lRuOHeVHaa/SZPifC7BkcraZVejAe8= +github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs= +github.com/rs/cors v1.8.2 h1:KCooALfAYGs415Cwu5ABvv9n9509fSiG5SQJn/AQo4U= +github.com/rs/cors v1.8.2/go.mod h1:XyqrcTp5zjWr1wsJ8PIRZssZ8b/WMcMf71DJnit4EMU= +github.com/rs/zerolog v1.27.0 h1:1T7qCieN22GVc8S4Q2yuexzBb1EqjbgjSH9RohbMjKs= +github.com/russross/blackfriday v1.5.2/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR/rfWxYHBV53g= +github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= +github.com/ryanuber/columnize v2.1.0+incompatible/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts= +github.com/sasha-s/go-deadlock v0.3.1 h1:sqv7fDNShgjcaxkO0JNcOAlr8B9+cV5Ey/OB71efZx0= +github.com/sasha-s/go-deadlock v0.3.1/go.mod h1:F73l+cr82YSh10GxyRI6qZiCgK64VaZjwesgfQ1/iLM= +github.com/schollz/closestmatch v2.1.0+incompatible/go.mod h1:RtP1ddjLong6gTkbtmuhtR2uUrrJOpYzYRvbcPAid+g= +github.com/sergi/go-diff v1.0.0/go.mod h1:0CfEIISq7TuYL3j771MWULgwwjU+GofnZX9QAmXWZgo= +github.com/shirou/gopsutil v3.21.4-0.20210419000835-c7a38de76ee5+incompatible h1:Bn1aCHHRnjv4Bl16T8rcaFjYSrGrIZvpiGO6P3Q4GpU= +github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc= +github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= +github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= +github.com/sirupsen/logrus v1.9.0 h1:trlNQbNUG3OdDrDil03MCb1H2o9nJ1x4/5LYw7byDE0= +github.com/sirupsen/logrus v1.9.0/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= +github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= +github.com/smartystreets/goconvey v1.6.4/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA= +github.com/spacemonkeygo/spacelog v0.0.0-20180420211403-2296661a0572 h1:RC6RW7j+1+HkWaX/Yh71Ee5ZHaHYt7ZP4sQgUrm6cDU= +github.com/spacemonkeygo/spacelog v0.0.0-20180420211403-2296661a0572/go.mod h1:w0SWMsp6j9O/dk4/ZpIhL+3CkG8ofA2vuv7k+ltqUMc= +github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA= +github.com/spaolacci/murmur3 v1.1.0 h1:7c1g84S4BPRrfL5Xrdp6fOJ206sU9y293DDHaoy0bLI= +github.com/spaolacci/murmur3 v1.1.0/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA= +github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B0CQ= +github.com/spf13/afero v1.9.2 h1:j49Hj62F0n+DaZ1dDCvhABaPNSGNkt32oRFxI33IEMw= +github.com/spf13/afero v1.9.2/go.mod h1:iUV7ddyEEZPO5gA3zD4fJt6iStLlL+Lg4m2cihcDf8Y= +github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= +github.com/spf13/cast v1.5.0 h1:rj3WzYc11XZaIZMPKmwP96zkFEnnAmV8s6XbB2aY32w= +github.com/spf13/cast v1.5.0/go.mod h1:SpXXQ5YoyJw6s3/6cMTQuxvgRl3PCJiyaX9p6b155UU= +github.com/spf13/cobra v0.0.5/go.mod h1:3K3wKZymM7VvHMDS9+Akkh4K60UwM26emMESw8tLCHU= +github.com/spf13/cobra v1.7.0 h1:hyqWnYt1ZQShIddO5kBpj3vu05/++x6tJ6dg8EC572I= +github.com/spf13/cobra v1.7.0/go.mod h1:uLxZILRyS/50WlhOIKD7W6V5bgeIt+4sICxh6uRMrb0= +github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo= +github.com/spf13/jwalterweatherman v1.1.0 h1:ue6voC5bR5F8YxI5S67j9i582FU4Qvo2bmqnqMYADFk= +github.com/spf13/jwalterweatherman v1.1.0/go.mod h1:aNWZUN0dPAAO/Ljvb5BEdw96iTZ0EXowPYD95IqWIGo= +github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= +github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= +github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= +github.com/spf13/viper v1.3.2/go.mod h1:ZiWeW+zYFKm7srdB9IoDzzZXaJaI5eL9QjNiN/DMA2s= +github.com/spf13/viper v1.14.0 h1:Rg7d3Lo706X9tHsJMUjdiwMpHB7W8WnSVOssIY+JElU= +github.com/spf13/viper v1.14.0/go.mod h1:WT//axPky3FdvXHzGw33dNdXXXfFQqmEalje+egj8As= +github.com/strangelove-ventures/go-subkey v1.0.7 h1:cOP/Lajg3uxV/tvspu0m6+0Cu+DJgygkEAbx/s+f35I= +github.com/strangelove-ventures/go-subkey v1.0.7/go.mod h1:E34izOIEm+sZ1YmYawYRquqBQWeZBjVB4pF7bMuhc1c= +github.com/strangelove-ventures/interchaintest/v4 v4.0.0-20230815125617-67bc301715ea h1:31LPl6bizRVD0djX9VcyaJ6Tj7zphM0dWT72QaWIZgc= +github.com/strangelove-ventures/interchaintest/v4 v4.0.0-20230815125617-67bc301715ea/go.mod h1:pZEZL7eKFk6gauxedsFP1UpkNug4TKX4HxkHY1ITfeo= +github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= +github.com/stretchr/objx v0.5.0 h1:1zr/of2m5FGMsad5YfcqgdqdWrIhu+EBEJRhR1U7z/c= +github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= +github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= +github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= +github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA= +github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= +github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= +github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= +github.com/subosito/gotenv v1.4.1 h1:jyEFiXpy21Wm81FBN71l9VoMMV8H8jG+qIK3GCpY6Qs= +github.com/subosito/gotenv v1.4.1/go.mod h1:ayKnFf/c6rvx/2iiLrJUk1e6plDbT3edrFNGqEflhK0= +github.com/syndtr/goleveldb v1.0.1-0.20210819022825-2ae1ddf74ef7 h1:epCh84lMvA70Z7CTTCmYQn2CKbY8j86K7/FAIr141uY= +github.com/syndtr/goleveldb v1.0.1-0.20210819022825-2ae1ddf74ef7/go.mod h1:q4W45IWZaF22tdD+VEXcAWRA037jwmWEB5VWYORlTpc= +github.com/tendermint/crypto v0.0.0-20191022145703-50d29ede1e15 h1:hqAk8riJvK4RMWx1aInLzndwxKalgi5rTqgfXxOxbEI= +github.com/tendermint/crypto v0.0.0-20191022145703-50d29ede1e15/go.mod h1:z4YtwM70uOnk8h0pjJYlj3zdYwi9l03By6iAIF5j/Pk= +github.com/tendermint/go-amino v0.16.0 h1:GyhmgQKvqF82e2oZeuMSp9JTN0N09emoSZlb2lyGa2E= +github.com/tendermint/go-amino v0.16.0/go.mod h1:TQU0M1i/ImAo+tYpZi73AU3V/dKeCoMC9Sphe2ZwGME= +github.com/tendermint/tm-db v0.6.7 h1:fE00Cbl0jayAoqlExN6oyQJ7fR/ZtoVOmvPJ//+shu8= +github.com/tendermint/tm-db v0.6.7/go.mod h1:byQDzFkZV1syXr/ReXS808NxA2xvyuuVgXOJ/088L6I= +github.com/tidwall/btree v1.5.0 h1:iV0yVY/frd7r6qGBXfEYs7DH0gTDgrKTrDjS7xt/IyQ= +github.com/tidwall/btree v1.5.0/go.mod h1:LGm8L/DZjPLmeWGjv5kFrY8dL4uVhMmzmmLYmsObdKE= +github.com/tklauser/go-sysconf v0.3.5 h1:uu3Xl4nkLzQfXNsWn15rPc/HQCJKObbt1dKJeWp3vU4= +github.com/tklauser/numcpus v0.2.2 h1:oyhllyrScuYI6g+h/zUvNXNp1wy7x8qQy3t/piefldA= +github.com/tv42/httpunix v0.0.0-20150427012821-b75d8614f926/go.mod h1:9ESjWnEqriFuLhtthL60Sar/7RFoluCcXsuvEwTV5KM= +github.com/ugorji/go v1.1.4/go.mod h1:uQMGLiO92mf5W77hV/PUCpI3pbzQx3CRekS0kk+RGrc= +github.com/ugorji/go v1.1.7/go.mod h1:kZn38zHttfInRq0xu/PH0az30d+z6vm202qpg1oXVMw= +github.com/ugorji/go/codec v0.0.0-20181204163529-d75b2dcb6bc8/go.mod h1:VFNgLljTbGfSG7qAOspJ7OScBnGdDN/yBr0sguwnwf0= +github.com/ugorji/go/codec v1.1.7/go.mod h1:Ax+UKWsSmolVDwsd+7N3ZtXu+yMGCf907BLYF3GoBXY= +github.com/urfave/negroni v1.0.0/go.mod h1:Meg73S6kFm/4PpbYdq35yYWoCZ9mS/YSx+lKnmiohz4= +github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc= +github.com/valyala/fasthttp v1.6.0/go.mod h1:FstJa9V+Pj9vQ7OJie2qMHdwemEDaDiSdBnvPM1Su9w= +github.com/valyala/fasttemplate v1.0.1/go.mod h1:UQGH1tvbgY+Nz5t2n7tXsz52dQxojPUpymEIMZ47gx8= +github.com/valyala/fasttemplate v1.2.1/go.mod h1:KHLXt3tVN2HBp8eijSv/kGJopbvo7S+qRAEEKiv+SiQ= +github.com/valyala/tcplisten v0.0.0-20161114210144-ceec8f93295a/go.mod h1:v3UYOV9WzVtRmSR+PDvWpU/qWl4Wa5LApYYX4ZtKbio= +github.com/xeipuuv/gojsonpointer v0.0.0-20180127040702-4e3ac2762d5f/go.mod h1:N2zxlSyiKSe5eX1tZViRH5QA0qijqEDrYZiPEAiq3wU= +github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415/go.mod h1:GwrjFmJcFw6At/Gs6z4yjiIwzuJ1/+UwLxMQDVQXShQ= +github.com/xeipuuv/gojsonschema v1.2.0/go.mod h1:anYRn/JVcOK2ZgGU+IjEV4nwlhoK5sQluxsYJ78Id3Y= +github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q= +github.com/yalp/jsonpath v0.0.0-20180802001716-5cc68e5049a0/go.mod h1:/LWChgwKmvncFJFHJ7Gvn9wZArjbV5/FppcK2fKk/tI= +github.com/yudai/gojsondiff v1.0.0/go.mod h1:AY32+k2cwILAkW1fbgxQ5mUmMiZFgLIV+FBNExI05xg= +github.com/yudai/golcs v0.0.0-20170316035057-ecda9a501e82/go.mod h1:lgjkn3NuSvDfVJdfcVVdX+jpBxNmX4rDAzaS45IcYoM= +github.com/yudai/pp v2.0.1+incompatible/go.mod h1:PuxR/8QJ7cyCkFp/aUDS+JY727OFEZkTdatxwunjIkc= +github.com/yuin/goldmark v1.1.25/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= +github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= +github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= +github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= +github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= +github.com/yuin/goldmark v1.4.0/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= +github.com/zondax/hid v0.9.2 h1:WCJFnEDMiqGF64nlZz28E9qLVZ0KSJ7xpc5DLEyma2U= +github.com/zondax/hid v0.9.2/go.mod h1:l5wttcP0jwtdLjqjMMWFVEE7d1zO0jvSPA9OPZxWpEM= +github.com/zondax/ledger-go v0.14.3 h1:wEpJt2CEcBJ428md/5MgSLsXLBos98sBOyxNmCjfUCw= +github.com/zondax/ledger-go v0.14.3/go.mod h1:IKKaoxupuB43g4NxeQmbLXv7T9AlQyie1UpHb342ycI= +go.etcd.io/bbolt v1.3.6 h1:/ecaJf0sk1l4l6V4awd65v2C3ILy7MSj+s/x1ADCIMU= +go.etcd.io/bbolt v1.3.6/go.mod h1:qXsaaIqmgQH0T+OPdb99Bf+PKfBBQVAdyD6TY9G8XM4= +go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU= +go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8= +go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= +go.opencensus.io v0.22.3/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= +go.opencensus.io v0.22.4/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= +go.opencensus.io v0.22.5/go.mod h1:5pWMHQbX5EPX2/62yrJeAkowc+lfs/XD7Uxpq3pI6kk= +go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= +go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= +go.uber.org/atomic v1.10.0 h1:9qC72Qh0+3MqyJbAn8YU5xVq1frD8bn3JtD2oXtafVQ= +go.uber.org/atomic v1.10.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0= +go.uber.org/goleak v1.1.12 h1:gZAh5/EyT/HQwlpkCy6wTpqfH9H8Lz8zbm3dZh+OyzA= +go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0= +go.uber.org/multierr v1.8.0 h1:dg6GjLku4EH+249NNmoIciG9N/jURbDG+pFlTkhzIC8= +go.uber.org/multierr v1.8.0/go.mod h1:7EAYxJLBy9rStEaz58O2t4Uvip6FSURkq8/ppBp95ak= +go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= +go.uber.org/zap v1.24.0 h1:FiJd5l1UOLj0wCgbSE0rwwXHzEdAZS6hiiSnxJN/D60= +go.uber.org/zap v1.24.0/go.mod h1:2kMP+WWQ8aoFoedH3T2sq6iJ2yDWpHbP0f6MQbS9Gkg= +golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/crypto v0.0.0-20181203042331-505ab145d0a9/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= +golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20190611184440-5c40567a22f8/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20190701094942-4def268fd1a4/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20191206172530-e9b2fee46413/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= +golang.org/x/crypto v0.0.0-20191227163750-53104e6ec876/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= +golang.org/x/crypto v0.0.0-20200115085410-6d4e4cb37c7d/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= +golang.org/x/crypto v0.0.0-20200510223506-06a226fb4e37/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= +golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= +golang.org/x/crypto v0.0.0-20200728195943-123391ffb6de/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= +golang.org/x/crypto v0.0.0-20210220033148-5ea612d1eb83/go.mod h1:jdWPYTVW3xRLrWPugEBEK3UY2ZEsg3UU495nc5E+M+I= +golang.org/x/crypto v0.0.0-20210322153248-0c34fe9e7dc2/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4= +golang.org/x/crypto v0.0.0-20210421170649-83a5a9bb288b/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4= +golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= +golang.org/x/crypto v0.0.0-20211108221036-ceb1ce70b4fa/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= +golang.org/x/crypto v0.5.0 h1:U/0M97KRkSFvyD/3FSmdP5W5swImpNgle/EHFhOsQPE= +golang.org/x/crypto v0.5.0/go.mod h1:NK/OQwhpMQP3MwtdjgLlYHnH9ebylxKWv3e0fK+mkQU= +golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= +golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= +golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= +golang.org/x/exp v0.0.0-20190829153037-c13cbed26979/go.mod h1:86+5VVa7VpoJ4kLfm080zCjGlMRFzhUhsZKEZO7MGek= +golang.org/x/exp v0.0.0-20191030013958-a1ab85dbe136/go.mod h1:JXzH8nQsPlswgeRAPE3MuO9GYsAcnJvJ4vnMwN/5qkY= +golang.org/x/exp v0.0.0-20191129062945-2f5052295587/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= +golang.org/x/exp v0.0.0-20191227195350-da58074b4299/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= +golang.org/x/exp v0.0.0-20200119233911-0405dc783f0a/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= +golang.org/x/exp v0.0.0-20200207192155-f17229e696bd/go.mod h1:J/WKrq2StrnmMY6+EHIKF9dgMWnmCNThgcyBT1FY9mM= +golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod h1:3jZMyOhIsHpP37uCMkUooju7aAi5cS1Q23tOzKc+0MU= +golang.org/x/exp v0.0.0-20230206171751-46f607a40771 h1:xP7rWLUr1e1n2xkK5YB4LI0hPEy3LJC6Wk+D4pGlOJg= +golang.org/x/exp v0.0.0-20230206171751-46f607a40771/go.mod h1:CxIveKay+FTh1D0yPZemJVgC/95VzuuOLq5Qi4xnoYc= +golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= +golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= +golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= +golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= +golang.org/x/lint v0.0.0-20190301231843-5614ed5bae6f/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= +golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +golang.org/x/lint v0.0.0-20190409202823-959b441ac422/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +golang.org/x/lint v0.0.0-20190909230951-414d861bb4ac/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +golang.org/x/lint v0.0.0-20191125180803-fdd1cda4f05f/go.mod h1:5qLYkcX4OjUUV8bRuDixDT3tpyyb+LUpUlRWLxfhWrs= +golang.org/x/lint v0.0.0-20200130185559-910be7a94367/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= +golang.org/x/lint v0.0.0-20200302205851-738671d3881b/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= +golang.org/x/lint v0.0.0-20201208152925-83fdc39ff7b5/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= +golang.org/x/lint v0.0.0-20210508222113-6edffad5e616/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= +golang.org/x/mobile v0.0.0-20190312151609-d3739f865fa6/go.mod h1:z+o9i4GpDbdi3rU15maQ/Ox0txvL9dWGYEHz965HBQE= +golang.org/x/mobile v0.0.0-20190719004257-d2bd2a29d028/go.mod h1:E/iHnbuqvinMTCcRqshq8CkpyQDoeVncDDYHnLhea+o= +golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc= +golang.org/x/mod v0.1.0/go.mod h1:0QHyrYULN0/3qlju5TqG8bIK38QM8yzMo5ekMj3DlcY= +golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= +golang.org/x/mod v0.1.1-0.20191107180719-034126e5016b/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= +golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/mod v0.4.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/mod v0.4.1/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/mod v0.9.0 h1:KENHtAZL2y3NLMYZeHY9DW8HW8V+kQyJsY/V9JlKvCs= +golang.org/x/mod v0.9.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= +golang.org/x/net v0.0.0-20180719180050-a680a1efc54d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20181220203305-927f97764cc3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190327091125-710a502c58a2/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190501004415-9ce7a6920f09/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190503192946-f4e77d36d62c/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= +golang.org/x/net v0.0.0-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20190628185345-da137c7871d7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20190724013045-ca1201d0de80/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20190827160401-ba9fcec4b297/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20191209160850-c0dbc17a3553/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200114155413-6afb5195e5aa/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200202094626-16171245cfb2/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200222125558-5a598a2470a0/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200301022130-244492dfa37a/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= +golang.org/x/net v0.0.0-20200501053045-e0ff5e5a1de5/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= +golang.org/x/net v0.0.0-20200506145744-7e3656a0809f/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= +golang.org/x/net v0.0.0-20200513185701-a91f0712d120/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= +golang.org/x/net v0.0.0-20200520004742-59133d7f0dd7/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= +golang.org/x/net v0.0.0-20200520182314-0ba52f642ac2/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= +golang.org/x/net v0.0.0-20200625001655-4c5254603344/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= +golang.org/x/net v0.0.0-20200707034311-ab3426394381/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= +golang.org/x/net v0.0.0-20200813134508-3edf25e44fcc/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= +golang.org/x/net v0.0.0-20200822124328-c89045814202/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= +golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= +golang.org/x/net v0.0.0-20201031054903-ff519b6c9102/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= +golang.org/x/net v0.0.0-20201209123823-ac852fbbde11/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= +golang.org/x/net v0.0.0-20201224014010-6772e930b67b/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= +golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= +golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM= +golang.org/x/net v0.0.0-20210805182204-aaa1db679c0d/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= +golang.org/x/net v0.0.0-20211008194852-3b03d305991f/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= +golang.org/x/net v0.8.0 h1:Zrh2ngAOFYneWTAIAPethzeaQLuHwhuBkuV6ZiRnUaQ= +golang.org/x/net v0.8.0/go.mod h1:QVkue5JL9kW//ek3r6jTKnTFis1tRmNAW2P1shuFdJc= +golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= +golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= +golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= +golang.org/x/oauth2 v0.0.0-20191202225959-858c2ad4c8b6/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= +golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= +golang.org/x/oauth2 v0.0.0-20200902213428-5d25da1a8d43/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/oauth2 v0.0.0-20201109201403-9fd604954f58/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/oauth2 v0.0.0-20201208152858-08078c50e5b5/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/oauth2 v0.0.0-20210218202405-ba52d332ba99/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20200317015054-43a5402ce75a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20201207232520-09787c993a3a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.1.0 h1:wsuoTGHzEhffawBOhz5CYhcrV4IdKZbEyZjBMuTp12o= +golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20181107165924-66b7b1311ac8/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20181205085412-a5c9d58dba9a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190502145724-3ef323f4f1fd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190507160741-ecd444e8653b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190606165138-5da285871e9c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190626221950-04f50cda93cb/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190726091711-fc99dfbffb4e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190813064441-fde4db37ae7a/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190904154756-749cb33beabd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191001151750-bb3f8db39f24/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191120155948-bd437916bb0e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191204072324-ce4227a45e2e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191228213918-04cbcbbfeed8/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200113162924-86b910548bc1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200122134326-e047566fdf82/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200202164722-d101bd2416d5/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200212091648-12a6c2dcc1e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200302150141-5c8b2ff67527/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200331124033-c3d80250170d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200501052902-10377860bb8e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200511232937-7e40ca221e25/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200515095857-1151b9dac4a9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200519105757-fe76b779f299/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200523222454-059865788121/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200803210538-64077c9b5642/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200814200057-3d37ad5750ed/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200905004654-be1d3432aa8f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200923182605-d9f96fdee20d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20201201145000-ef89a241ccb3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210104204734-6f8348627aad/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210119212857-b64e53b001e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210225134936-a50acf3fe073/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210309074719-68d13333faf2/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210403161142-5e06dd20ab57/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210423185535-09eb48e85fd7/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210809222454-d867a43fc93e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210819135213-f52c844e1c1c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210927094055-39ccf1dd6fa6/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20211007075335-d3039528d8ac/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20211107104306-e0b2ad06fe42/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220209214540-3681064d5158/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220908164124-27713097b956/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.6.0 h1:MVltZSvRTcU2ljQOhs94SXPftV6DCNnZViHeQps87pQ= +golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw= +golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= +golang.org/x/term v0.6.0 h1:clScbb1cHjoCkyRbWwBEUZ5H/tIFu5TAXIqaZD0Gcjw= +golang.org/x/term v0.6.0/go.mod h1:m6U89DPEgQRMq3DNkDClhWw02AUbt2daBVO4cn4Hv9U= +golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= +golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/text v0.3.4/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= +golang.org/x/text v0.8.0 h1:57P1ETyNKtuIjB4SRd15iJxuhj8Gc416Y78H3qgMh68= +golang.org/x/text v0.8.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= +golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/time v0.0.0-20201208040808-7e3f01d25324/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/time v0.0.0-20220922220347-f3bd1da661af h1:Yx9k8YCG3dvF87UAn2tu2HQLf2dt/eR1bXxpLMWeH+Y= +golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20181221001348-537d06c36207/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= +golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/tools v0.0.0-20190312151545-0bb0c0a6e846/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/tools v0.0.0-20190312170243-e65039ee4138/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/tools v0.0.0-20190327201419-c70d86f8b7cf/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/tools v0.0.0-20190328211700-ab21143f2384/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/tools v0.0.0-20190425150028-36563e24a262/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= +golang.org/x/tools v0.0.0-20190506145303-2d16b83fe98c/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= +golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= +golang.org/x/tools v0.0.0-20190606124116-d0a3d012864b/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= +golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= +golang.org/x/tools v0.0.0-20190628153133-6cdbf07be9d0/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= +golang.org/x/tools v0.0.0-20190816200558-6889da9d5479/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20190911174233-4f2ddba30aff/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191012152004-8de300cfc20a/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191113191852-77e3bb0ad9e7/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191115202509-3a792d9c32b2/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191125144606-a911d9008d1f/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191130070609-6e064ea0cf2d/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191216173652-a0e659d51361/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20191227053925-7b8e75db28f4/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200117161641-43d50277825c/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200122220014-bf1340f18c4a/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200130002326-2f3ba24bd6e7/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200204074204-1cc6d1ef6c74/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200207183749-b753a1ba74fa/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200212150539-ea181f53ac56/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200224181240-023911ca70b2/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200227222343-706bc42d1f0d/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200304193943-95d2e580d8eb/go.mod h1:o4KQGtdN14AW+yjsvvwRTJJuXz8XRtIHtEnmAXLyFUw= +golang.org/x/tools v0.0.0-20200312045724-11d5b4c81c7d/go.mod h1:o4KQGtdN14AW+yjsvvwRTJJuXz8XRtIHtEnmAXLyFUw= +golang.org/x/tools v0.0.0-20200331025713-a30bf2db82d4/go.mod h1:Sl4aGygMT6LrqrWclx+PTx3U+LnKx/seiNR+3G19Ar8= +golang.org/x/tools v0.0.0-20200501065659-ab2804fb9c9d/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20200512131952-2bc93b1c0c88/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20200515010526-7d3b6ebf133d/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20200618134242-20370b0cb4b2/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20200729194436-6467de6f59a7/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= +golang.org/x/tools v0.0.0-20200804011535-6c149bb5ef0d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= +golang.org/x/tools v0.0.0-20200825202427-b303f430e36d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= +golang.org/x/tools v0.0.0-20200904185747-39188db58858/go.mod h1:Cj7w3i3Rnn0Xh82ur9kSqwfTHTeVxaDqrfMjpcNT6bE= +golang.org/x/tools v0.0.0-20201110124207-079ba7bd75cd/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= +golang.org/x/tools v0.0.0-20201124115921-2c860bdd6e78/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= +golang.org/x/tools v0.0.0-20201201161351-ac6f37ff4c2a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= +golang.org/x/tools v0.0.0-20201208233053-a543418bbed2/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= +golang.org/x/tools v0.0.0-20210105154028-b0ab187a4818/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= +golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= +golang.org/x/tools v0.0.0-20210108195828-e2f9c7f1fc8e/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= +golang.org/x/tools v0.1.0/go.mod h1:xkSsbof2nBLbhDlRMhhhyNLN/zl3eTqcnHD5viDpcZ0= +golang.org/x/tools v0.1.3/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= +golang.org/x/tools v0.1.7/go.mod h1:LGqMHiF4EqQNHR1JncWGqT5BVaXmza+X+BDGol+dOxo= +golang.org/x/tools v0.7.0 h1:W4OVu8VVOaIO0yzWMNdepAulS7YfoS3Zabrm8DOXXU4= +golang.org/x/tools v0.7.0/go.mod h1:4pg6aUX35JBAogB10C9AtvVL+qowtN4pT3CGSQex14s= +golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2 h1:H2TDz8ibqkAF6YGhCdN3jS9O0/s90v0rJh3X/OLHEUk= +google.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE= +google.golang.org/api v0.7.0/go.mod h1:WtwebWUNSVBH/HAw79HIFXZNqEvBhG+Ra+ax0hx3E3M= +google.golang.org/api v0.8.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= +google.golang.org/api v0.9.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= +google.golang.org/api v0.13.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= +google.golang.org/api v0.14.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= +google.golang.org/api v0.15.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= +google.golang.org/api v0.17.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= +google.golang.org/api v0.18.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= +google.golang.org/api v0.19.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= +google.golang.org/api v0.20.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= +google.golang.org/api v0.22.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= +google.golang.org/api v0.24.0/go.mod h1:lIXQywCXRcnZPGlsd8NbLnOjtAoL6em04bJ9+z0MncE= +google.golang.org/api v0.28.0/go.mod h1:lIXQywCXRcnZPGlsd8NbLnOjtAoL6em04bJ9+z0MncE= +google.golang.org/api v0.29.0/go.mod h1:Lcubydp8VUV7KeIHD9z2Bys/sm/vGKnG1UHuDBSrHWM= +google.golang.org/api v0.30.0/go.mod h1:QGmEvQ87FHZNiUVJkT14jQNYJ4ZJjdRF23ZXz5138Fc= +google.golang.org/api v0.35.0/go.mod h1:/XrVsuzM0rZmrsbjJutiuftIzeuTQcEeaYcSk/mQ1dg= +google.golang.org/api v0.36.0/go.mod h1:+z5ficQTmoYpPn8LCUNVpK5I7hwkpjbcgqA7I34qYtE= +google.golang.org/api v0.40.0/go.mod h1:fYKFpnQN0DsDSKRVRcQSDQNtqWPfM9i+zNPxepjRCQ8= +google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= +google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= +google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= +google.golang.org/appengine v1.6.1/go.mod h1:i06prIuMbXzDqacNJfV5OdTW448YApPu5ww/cMBSeb0= +google.golang.org/appengine v1.6.5/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= +google.golang.org/appengine v1.6.6/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= +google.golang.org/appengine v1.6.7/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= +google.golang.org/genproto v0.0.0-20180518175338-11a468237815/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= +google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= +google.golang.org/genproto v0.0.0-20180831171423-11092d34479b/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= +google.golang.org/genproto v0.0.0-20190307195333-5fe7a883aa19/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= +google.golang.org/genproto v0.0.0-20190418145605-e7d98fc518a7/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= +google.golang.org/genproto v0.0.0-20190425155659-357c62f0e4bb/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= +google.golang.org/genproto v0.0.0-20190502173448-54afdca5d873/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= +google.golang.org/genproto v0.0.0-20190801165951-fa694d86fc64/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= +google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= +google.golang.org/genproto v0.0.0-20190911173649-1774047e7e51/go.mod h1:IbNlFCBrqXvoKpeg0TB2l7cyZUmoaFKYIwrEpbDKLA8= +google.golang.org/genproto v0.0.0-20191108220845-16a3f7862a1a/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= +google.golang.org/genproto v0.0.0-20191115194625-c23dd37a84c9/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= +google.golang.org/genproto v0.0.0-20191216164720-4f79533eabd1/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= +google.golang.org/genproto v0.0.0-20191230161307-f3c370f40bfb/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= +google.golang.org/genproto v0.0.0-20200115191322-ca5a22157cba/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= +google.golang.org/genproto v0.0.0-20200122232147-0452cf42e150/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= +google.golang.org/genproto v0.0.0-20200204135345-fa8e72b47b90/go.mod h1:GmwEX6Z4W5gMy59cAlVYjN9JhxgbQH6Gn+gFDQe2lzA= +google.golang.org/genproto v0.0.0-20200212174721-66ed5ce911ce/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200224152610-e50cd9704f63/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200228133532-8c2c7df3a383/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200305110556-506484158171/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200312145019-da6875a35672/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200324203455-a04cca1dde73/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200331122359-1ee6d9798940/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200423170343-7949de9c1215/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200430143042-b979b6f78d84/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200511104702-f5ebc3bea380/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200513103714-09dca8ec2884/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200515170657-fc4c6c6a6587/go.mod h1:YsZOwe1myG/8QRHRsmBRE1LrgQY60beZKjly0O1fX9U= +google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo= +google.golang.org/genproto v0.0.0-20200618031413-b414f8b61790/go.mod h1:jDfRM7FcilCzHH/e9qn6dsT145K34l5v+OpcnNgKAAA= +google.golang.org/genproto v0.0.0-20200729003335-053ba62fc06f/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20200804131852-c06518451d9c/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20200825200019-8632dd797987/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20200904004341-0bd0a958aa1d/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20201109203340-2640f1f9cdfb/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20201201144952-b05cb90ed32e/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20201210142538-e3217bee35cc/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20201214200347-8c77b98c765d/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20210108203827-ffc7fda8c3d7/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20210226172003-ab064af71705/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20210624195500-8bfb893ecb84/go.mod h1:SzzZ/N+nwJDaO1kznhnlzqS8ocJICar6hYhVyhi++24= +google.golang.org/genproto v0.0.0-20230125152338-dcaf20b6aeaa h1:qQPhfbPO23fwm/9lQr91L1u62Zo6cm+zI+slZT+uf+o= +google.golang.org/genproto v0.0.0-20230125152338-dcaf20b6aeaa/go.mod h1:RGgjbofJ8xD9Sq1VVhDM1Vok1vRONV+rg+CjzG4SZKM= +google.golang.org/grpc v1.12.0/go.mod h1:yo6s7OP7yaDglbqo1J04qKzAhqBH6lvTonzMVmEdcZw= +google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= +google.golang.org/grpc v1.19.1/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= +google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= +google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= +google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= +google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY= +google.golang.org/grpc v1.26.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= +google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= +google.golang.org/grpc v1.27.1/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= +google.golang.org/grpc v1.28.0/go.mod h1:rpkK4SK4GF4Ach/+MFLZUBavHOvF2JJB5uozKKal+60= +google.golang.org/grpc v1.29.1/go.mod h1:itym6AZVZYACWQqET3MqgPpjcuV5QH3BxFS3IjizoKk= +google.golang.org/grpc v1.30.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= +google.golang.org/grpc v1.31.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= +google.golang.org/grpc v1.31.1/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= +google.golang.org/grpc v1.33.1/go.mod h1:fr5YgcSWrqhRRxogOsw7RzIpsmvOZ6IcH4kBYTpR3n0= +google.golang.org/grpc v1.33.2/go.mod h1:JMHMWHQWaTccqQQlmk3MJZS+GWXOdAesneDmEnv2fbc= +google.golang.org/grpc v1.34.0/go.mod h1:WotjhfgOW/POjDeRt8vscBtXq+2VjORFy659qA51WJ8= +google.golang.org/grpc v1.35.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= +google.golang.org/grpc v1.38.0/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM= +google.golang.org/grpc v1.53.0 h1:LAv2ds7cmFV/XTS3XG1NneeENYrXGmorPxsBbptIjNc= +google.golang.org/grpc v1.53.0/go.mod h1:OnIrk0ipVdj4N5d9IUoFUx72/VlD7+jUsHwZgwSMQpw= +google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= +google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= +google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= +google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE= +google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo= +google.golang.org/protobuf v1.22.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= +google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= +google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= +google.golang.org/protobuf v1.24.0/go.mod h1:r/3tXBNzIEhYS9I1OUVjXDlt8tc493IdKGjtUeSXeh4= +google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c= +google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= +google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= +google.golang.org/protobuf v1.28.2-0.20220831092852-f930b1dc76e8 h1:KR8+MyP7/qOlV+8Af01LtjL04bu7on42eVsxT4EyBQk= +google.golang.org/protobuf v1.28.2-0.20220831092852-f930b1dc76e8/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20200902074654-038fdea0a05b/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= +gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= +gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= +gopkg.in/go-playground/assert.v1 v1.2.1/go.mod h1:9RXL0bg/zibRAgZUYszZSwO/z8Y/a8bDuhia5mkpMnE= +gopkg.in/go-playground/validator.v8 v8.18.2/go.mod h1:RX2a/7Ha8BgOhfk7j780h4/u/RRjR0eouCJSH80/M2Y= +gopkg.in/ini.v1 v1.51.1/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= +gopkg.in/ini.v1 v1.67.0 h1:Dgnx+6+nfE+IfzjUEISNeydPJh9AXNNsWbGP9KzCsOA= +gopkg.in/ini.v1 v1.67.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= +gopkg.in/mgo.v2 v2.0.0-20180705113604-9856a29383ce/go.mod h1:yeKp02qBN3iKW1OzL3MGk2IdtZzaj7SFntXj72NppTA= +gopkg.in/natefinch/npipe.v2 v2.0.0-20160621034901-c1b8fa8bdcce h1:+JknDZhAj8YMt7GC73Ei8pv4MzjDUNPHgQWJdtMAaDU= +gopkg.in/natefinch/npipe.v2 v2.0.0-20160621034901-c1b8fa8bdcce/go.mod h1:5AcXVHNjg+BDxry382+8OKon8SEWiKktQR07RKPsv1c= +gopkg.in/resty.v1 v1.12.0/go.mod h1:mDo4pnntr5jdWRML875a/NmxYqAlA73dVijT2AXvQQo= +gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 h1:uRGJdciOHaEIrze2W8Q3AKkepLTh2hOroT7a+7czfdQ= +gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= +gopkg.in/yaml.v2 v2.0.0-20170812160011-eb3733d160e7/go.mod h1:JAlM8MvJe8wmxCU4Bli9HhUf9+ttbYbLASfIpnQbh74= +gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.2.3/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.2.5/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= +gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= +gopkg.in/yaml.v3 v3.0.0-20191120175047-4206685974f2/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= +gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +gotest.tools/v3 v3.4.0 h1:ZazjZUfuVeZGLAmlKKuyv3IKP5orXcwtOwDQH6YVr6o= +honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= +honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= +honnef.co/go/tools v0.0.0-20190418001031-e561f6794a2a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= +honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= +honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg= +honnef.co/go/tools v0.0.1-2020.1.3/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= +honnef.co/go/tools v0.0.1-2020.1.4/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= +lukechampine.com/blake3 v1.1.6 h1:H3cROdztr7RCfoaTpGZFQsrqvweFLrqS73j7L7cmR5c= +lukechampine.com/blake3 v1.1.6/go.mod h1:tkKEOtDkNtklkXtLNEOGNq5tcV90tJiA1vAA12R78LA= +lukechampine.com/uint128 v1.1.1 h1:pnxCASz787iMf+02ssImqk6OLt+Z5QHMoZyUXR4z6JU= +lukechampine.com/uint128 v1.1.1/go.mod h1:c4eWIwlEGaxC/+H1VguhU4PHXNWDCDMUlWdIWl2j1gk= +modernc.org/cc/v3 v3.36.0 h1:0kmRkTmqNidmu3c7BNDSdVHCxXCkWLmWmCIVX4LUboo= +modernc.org/cc/v3 v3.36.0/go.mod h1:NFUHyPn4ekoC/JHeZFfZurN6ixxawE1BnVonP/oahEI= +modernc.org/ccgo/v3 v3.0.0-20220428102840-41399a37e894/go.mod h1:eI31LL8EwEBKPpNpA4bU1/i+sKOwOrQy8D87zWUcRZc= +modernc.org/ccgo/v3 v3.0.0-20220430103911-bc99d88307be/go.mod h1:bwdAnOoaIt8Ax9YdWGjxWsdkPcZyRPHqrOvJxaKAKGw= +modernc.org/ccgo/v3 v3.16.4/go.mod h1:tGtX0gE9Jn7hdZFeU88slbTh1UtCYKusWOoCJuvkWsQ= +modernc.org/ccgo/v3 v3.16.6 h1:3l18poV+iUemQ98O3X5OMr97LOqlzis+ytivU4NqGhA= +modernc.org/ccgo/v3 v3.16.6/go.mod h1:tGtX0gE9Jn7hdZFeU88slbTh1UtCYKusWOoCJuvkWsQ= +modernc.org/ccorpus v1.11.6 h1:J16RXiiqiCgua6+ZvQot4yUuUy8zxgqbqEEUuGPlISk= +modernc.org/ccorpus v1.11.6/go.mod h1:2gEUTrWqdpH2pXsmTM1ZkjeSrUWDpjMu2T6m29L/ErQ= +modernc.org/httpfs v1.0.6 h1:AAgIpFZRXuYnkjftxTAZwMIiwEqAfk8aVB2/oA6nAeM= +modernc.org/httpfs v1.0.6/go.mod h1:7dosgurJGp0sPaRanU53W4xZYKh14wfzX420oZADeHM= +modernc.org/libc v0.0.0-20220428101251-2d5f3daf273b/go.mod h1:p7Mg4+koNjc8jkqwcoFBJx7tXkpj00G77X7A72jXPXA= +modernc.org/libc v1.16.0/go.mod h1:N4LD6DBE9cf+Dzf9buBlzVJndKr/iJHG97vGLHYnb5A= +modernc.org/libc v1.16.1/go.mod h1:JjJE0eu4yeK7tab2n4S1w8tlWd9MxXLRzheaRnAKymU= +modernc.org/libc v1.16.7 h1:qzQtHhsZNpVPpeCu+aMIQldXeV1P0vRhSqCL0nOIJOA= +modernc.org/libc v1.16.7/go.mod h1:hYIV5VZczAmGZAnG15Vdngn5HSF5cSkbvfz2B7GRuVU= +modernc.org/mathutil v1.2.2/go.mod h1:mZW8CKdRPY1v87qxC/wUdX5O1qDzXMP5TH3wjfpga6E= +modernc.org/mathutil v1.4.1 h1:ij3fYGe8zBF4Vu+g0oT7mB06r8sqGWKuJu1yXeR4by8= +modernc.org/mathutil v1.4.1/go.mod h1:mZW8CKdRPY1v87qxC/wUdX5O1qDzXMP5TH3wjfpga6E= +modernc.org/memory v1.1.1 h1:bDOL0DIDLQv7bWhP3gMvIrnoFw+Eo6F7a2QK9HPDiFU= +modernc.org/memory v1.1.1/go.mod h1:/0wo5ibyrQiaoUoH7f9D8dnglAmILJ5/cxZlRECf+Nw= +modernc.org/opt v0.1.1 h1:/0RX92k9vwVeDXj+Xn23DKp2VJubL7k8qNffND6qn3A= +modernc.org/opt v0.1.1/go.mod h1:WdSiB5evDcignE70guQKxYUl14mgWtbClRi5wmkkTX0= +modernc.org/sqlite v1.17.3 h1:iE+coC5g17LtByDYDWKpR6m2Z9022YrSh3bumwOnIrI= +modernc.org/sqlite v1.17.3/go.mod h1:10hPVYar9C0kfXuTWGz8s0XtB8uAGymUy51ZzStYe3k= +modernc.org/strutil v1.1.1 h1:xv+J1BXY3Opl2ALrBwyfEikFAj8pmqcpnfmuwUwcozs= +modernc.org/strutil v1.1.1/go.mod h1:DE+MQQ/hjKBZS2zNInV5hhcipt5rLPWkmpbGeW5mmdw= +modernc.org/tcl v1.13.1 h1:npxzTwFTZYM8ghWicVIX1cRWzj7Nd8i6AqqX2p+IYao= +modernc.org/tcl v1.13.1/go.mod h1:XOLfOwzhkljL4itZkK6T72ckMgvj0BDsnKNdZVUOecw= +modernc.org/token v1.0.0 h1:a0jaWiNMDhDUtqOj09wvjWWAqd3q7WpBulmL9H2egsk= +modernc.org/token v1.0.0/go.mod h1:UGzOrNV1mAFSEB63lOFHIpNRUVMvYTc6yu1SMY/XTDM= +modernc.org/z v1.5.1 h1:RTNHdsrOpeoSeOF4FbzTo8gBYByaJ5xT7NgZ9ZqRiJM= +modernc.org/z v1.5.1/go.mod h1:eWFB510QWW5Th9YGZT81s+LwvaAs3Q2yr4sP0rmLkv8= +nhooyr.io/websocket v1.8.7 h1:usjR2uOr/zjjkVMy0lW+PPohFok7PCow5sDjLgX4P4g= +pgregory.net/rapid v0.5.5 h1:jkgx1TjbQPD/feRoK+S/mXw9e1uj6WilpHrXJowi6oA= +rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8= +rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0= +rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA= diff --git a/wormchain/interchaintest/guardians/validators.go b/wormchain/interchaintest/guardians/validators.go new file mode 100644 index 0000000000..f14a2abca7 --- /dev/null +++ b/wormchain/interchaintest/guardians/validators.go @@ -0,0 +1,56 @@ +package guardians + +import ( + "crypto/ecdsa" + "testing" + + "github.com/ethereum/go-ethereum/crypto" + "github.com/stretchr/testify/require" +) + +type ValSet struct { + Vals []Val + Total int +} + +type Val struct { + Addr []byte + Priv *ecdsa.PrivateKey +} + +func CreateVal(t *testing.T) *Val { + priv, err := crypto.GenerateKey() + require.NoError(t, err) + + signer := crypto.PubkeyToAddress(priv.PublicKey).Bytes() + + return &Val{ + Addr: signer, + Priv: priv, + } +} + +func CreateValSet(t *testing.T, total int) *ValSet { + // If total == 1, mirror the guardian keys in scripts/devnet-consts.json + if total == 1 { + privHex := "cfb12303a19cde580bb4dd771639b0d26bc68353645571a8cff516ab2ee113a0" + priv, err := crypto.HexToECDSA(privHex) + require.NoError(t, err) + signer := crypto.PubkeyToAddress(priv.PublicKey).Bytes() + + return &ValSet{ + Vals: []Val{ + {signer, priv}, + }, + Total: 1, + } + } + + var valSet ValSet + for i := 0; i < total; i++ { + valSet.Vals = append(valSet.Vals, *CreateVal(t)) + } + + valSet.Total = total + return &valSet +} diff --git a/wormchain/interchaintest/helpers/bank.go b/wormchain/interchaintest/helpers/bank.go new file mode 100644 index 0000000000..488a853d50 --- /dev/null +++ b/wormchain/interchaintest/helpers/bank.go @@ -0,0 +1,33 @@ +package helpers + +import ( + "context" + "encoding/json" + "fmt" + "testing" + + banktypes "github.com/cosmos/cosmos-sdk/x/bank/types" + "github.com/strangelove-ventures/interchaintest/v4/chain/cosmos" + "github.com/stretchr/testify/require" +) + +func GetDenomsMetadata(t *testing.T, ctx context.Context, chain *cosmos.CosmosChain) QueryDenomsMetadataResponse { + node := chain.GetFullNode() + + stdoutBz, _, err := node.ExecQuery(ctx, "bank", "denom-metadata") + require.NoError(t, err) + + fmt.Println("Stdout: ", string(stdoutBz)) + res := QueryDenomsMetadataResponse{} + err = json.Unmarshal(stdoutBz, &res) + require.NoError(t, err) + + return res +} + +// QueryDenomsMetadataResponse is the response type for the Query/DenomsMetadata RPC +// method. +type QueryDenomsMetadataResponse struct { + // metadata provides the client information for all the registered tokens. + Metadatas []banktypes.Metadata `json:"metadatas"` +} diff --git a/wormchain/interchaintest/helpers/cw20_wrapped.go b/wormchain/interchaintest/helpers/cw20_wrapped.go new file mode 100644 index 0000000000..79fd75bf96 --- /dev/null +++ b/wormchain/interchaintest/helpers/cw20_wrapped.go @@ -0,0 +1,114 @@ +package helpers + +import ( + "encoding/json" + "testing" + + "github.com/stretchr/testify/require" +) + +type Cw20InstantiateMsg struct { + Name string `json:"name"` + Symbol string `json:"symbol"` + AssetChain uint16 `json:"asset_chain"` + AssetAddr []byte `json:"asset_address"` + Decimals uint8 `json:"decimals"` + InitHook InitHook `json:"init_hook"` +} + +type InitHook struct { + Msg []byte `json:"msg"` + ContractAddr string `json:"contract_addr"` +} + +type TbRegisterAssetHookMsg struct { + RegisterAssetHook RegisterAssetHook `json:"register_asset_hook,omitempty"` +} + +type RegisterAssetHook struct { + Chain uint16 `json:"chain,omitempty"` + TokenAddr ExternalTokenId `json:"token_address,omitempty"` +} + +type ExternalTokenId struct { + Bytes [32]byte `json:"bytes,omitempty"` +} + +func Cw20ContractInstantiateMsg( + t *testing.T, + name string, + symbol string, + chainID uint16, + assetAddr string, + decimals uint8, + tbContractAddr string, +) string { + index := 32 + assetAddr32 := [32]byte{} + for i := len(assetAddr); i > 0; i-- { + assetAddr32[index-1] = assetAddr[i-1] + index-- + } + + tbMsg := TbRegisterAssetHookMsg{ + RegisterAssetHook: RegisterAssetHook{ + Chain: chainID, + TokenAddr: ExternalTokenId{ + Bytes: assetAddr32, + }, + }, + } + tbMsgBz, err := json.Marshal(tbMsg) + require.NoError(t, err) + + msg := Cw20InstantiateMsg{ + Name: name, + Symbol: symbol, + AssetChain: chainID, + AssetAddr: assetAddr32[:], + Decimals: decimals, + InitHook: InitHook{ + Msg: tbMsgBz, + ContractAddr: tbContractAddr, + }, + } + + msgBz, err := json.Marshal(msg) + require.NoError(t, err) + + return string(msgBz) + +} + +type Cw20WrappedQueryMsg struct { + TokenInfo Cw20TokenInfo `json:"token_info"` +} + +type Cw20TokenInfo struct{} + +type Cw20WrappedBalanceQueryMsg struct { + Balance Cw20BalanceQuery `json:"balance"` +} + +type Cw20BalanceQuery struct { + Address string `json:"address"` +} + +type Cw20WrappedQueryRsp struct { + Data *Cw20WrappedQueryRspObj `json:"data,omitempty"` +} + +type Cw20WrappedQueryRspObj struct { + Name string `json:"name"` + Symbol string `json:"symbol"` + Decimals uint8 `json:"decimals"` + TotalSupply string `json:"total_supply"` +} + +type Cw20WrappedBalanceQueryRsp struct { + Data *Cw20WrappedBalanceQueryRspObj `json:"data,omitempty"` +} + +type Cw20WrappedBalanceQueryRspObj struct { + Balance string `json:"balance"` +} diff --git a/wormchain/interchaintest/helpers/gateway_governance_vaa.go b/wormchain/interchaintest/helpers/gateway_governance_vaa.go new file mode 100644 index 0000000000..c2f1feb561 --- /dev/null +++ b/wormchain/interchaintest/helpers/gateway_governance_vaa.go @@ -0,0 +1,97 @@ +package helpers + +import ( + "context" + "encoding/hex" + "testing" + + "github.com/strangelove-ventures/interchaintest/v4/chain/cosmos" + "github.com/strangelove-ventures/interchaintest/v4/ibc" + "github.com/stretchr/testify/require" + "github.com/wormhole-foundation/wormchain/interchaintest/guardians" + "github.com/wormhole-foundation/wormhole/sdk/vaa" +) + +func GetMiddlewareContract( + t *testing.T, + ctx context.Context, + chain *cosmos.CosmosChain, +) string { + node := chain.GetFullNode() + stdout, _, err := node.ExecQuery(ctx, "wormhole", "show-ibc-composability-mw-contract") + require.NoError(t, err) + return string(stdout) +} + +func SetMiddlewareContract( + t *testing.T, + ctx context.Context, + chain *cosmos.CosmosChain, + keyName string, + cfg ibc.ChainConfig, + contractBech32Addr string, + guardians *guardians.ValSet, +) { + node := chain.GetFullNode() + + contractAddr := [32]byte{} + copy(contractAddr[:], MustAccAddressFromBech32(contractBech32Addr, cfg.Bech32Prefix).Bytes()) + payload := vaa.BodyGatewayIbcComposabilityMwContract{ + ContractAddr: contractAddr, + } + payloadBz, err := payload.Serialize() + require.NoError(t, err) + v := generateVaa(0, guardians, vaa.GovernanceChain, vaa.GovernanceEmitter, payloadBz) + vBz, err := v.Marshal() + require.NoError(t, err) + vHex := hex.EncodeToString(vBz) + + _, err = node.ExecTx(ctx, keyName, "wormhole", "execute-gateway-governance-vaa", vHex, "--gas", "auto") + require.NoError(t, err) +} + +func ScheduleUpgrade( + t *testing.T, + ctx context.Context, + chain *cosmos.CosmosChain, + keyName string, + name string, + height uint64, + guardians *guardians.ValSet, +) { + node := chain.GetFullNode() + + payload := vaa.BodyGatewayScheduleUpgrade{ + Name: name, + Height: height, + } + payloadBz, err := payload.Serialize() + require.NoError(t, err) + v := generateVaa(0, guardians, vaa.ChainID(vaa.GovernanceChain), vaa.Address(vaa.GovernanceEmitter), payloadBz) + vBz, err := v.Marshal() + require.NoError(t, err) + vHex := hex.EncodeToString(vBz) + + _, err = node.ExecTx(ctx, keyName, "wormhole", "execute-gateway-governance-vaa", vHex, "--gas", "auto") + require.NoError(t, err) +} + +func CancelUpgrade( + t *testing.T, + ctx context.Context, + chain *cosmos.CosmosChain, + keyName string, + guardians *guardians.ValSet, +) { + node := chain.GetFullNode() + + payloadBz, err := vaa.EmptyPayloadVaa(vaa.GatewayModuleStr, vaa.ActionCancelUpgrade, vaa.ChainIDWormchain) + require.NoError(t, err) + v := generateVaa(0, guardians, vaa.GovernanceChain, vaa.GovernanceEmitter, payloadBz) + vBz, err := v.Marshal() + require.NoError(t, err) + vHex := hex.EncodeToString(vBz) + + _, err = node.ExecTx(ctx, keyName, "wormhole", "execute-gateway-governance-vaa", vHex, "--gas", "auto") + require.NoError(t, err) +} diff --git a/wormchain/interchaintest/helpers/ibc_hooks.go b/wormchain/interchaintest/helpers/ibc_hooks.go new file mode 100644 index 0000000000..cddaf2d152 --- /dev/null +++ b/wormchain/interchaintest/helpers/ibc_hooks.go @@ -0,0 +1,43 @@ +package helpers + +import ( + "encoding/json" + "testing" + + "github.com/stretchr/testify/require" +) + +type IbcHooks struct { + Payload IbcHooksPayload `json:"wasm"` +} + +type IbcHooksPayload struct { + Contract string `json:"contract"` + Msg IbcHooksExecute `json:"msg"` +} + +type IbcHooksExecute struct { + Forward IbcHooksForward `json:"forward_tokens"` +} + +type IbcHooksForward struct { + Recipient string `json:"recipient"` +} + +func CreateIbcHooksMsg(t *testing.T, contract string, recipient string) []byte { + msg := IbcHooks{ + Payload: IbcHooksPayload{ + Contract: contract, + Msg: IbcHooksExecute{ + Forward: IbcHooksForward{ + Recipient: recipient, + }, + }, + }, + } + + msgBz, err := json.Marshal(msg) + require.NoError(t, err) + + return msgBz +} diff --git a/wormchain/interchaintest/helpers/ibc_translator.go b/wormchain/interchaintest/helpers/ibc_translator.go new file mode 100644 index 0000000000..56edd9cf5c --- /dev/null +++ b/wormchain/interchaintest/helpers/ibc_translator.go @@ -0,0 +1,322 @@ +package helpers + +import ( + "bytes" + "context" + "encoding/binary" + "encoding/hex" + "encoding/json" + "fmt" + "strconv" + "testing" + + "github.com/strangelove-ventures/interchaintest/v4/chain/cosmos" + "github.com/strangelove-ventures/interchaintest/v4/ibc" + "github.com/stretchr/testify/require" + "github.com/wormhole-foundation/wormchain/interchaintest/guardians" + "github.com/wormhole-foundation/wormhole/sdk/vaa" +) + +func SubmitAllowlistInstantiateContract( + t *testing.T, + ctx context.Context, + chain *cosmos.CosmosChain, + keyName string, + cfg ibc.ChainConfig, + contractBech32Addr string, + codeIdStr string, + guardians *guardians.ValSet, +) { + node := chain.GetFullNode() + codeId, err := strconv.ParseUint(codeIdStr, 10, 64) + require.NoError(t, err) + + contractAddr := [32]byte{} + copy(contractAddr[:], MustAccAddressFromBech32(contractBech32Addr, cfg.Bech32Prefix).Bytes()) + payload := vaa.BodyWormchainWasmAllowlistInstantiate{ + ContractAddr: contractAddr, + CodeId: codeId, + } + payloadBz, err := payload.Serialize(vaa.ActionAddWasmInstantiateAllowlist) + require.NoError(t, err) + v := generateVaa(0, guardians, vaa.GovernanceChain, vaa.GovernanceEmitter, payloadBz) + vBz, err := v.Marshal() + require.NoError(t, err) + vHex := hex.EncodeToString(vBz) + + // add-wasm-instantiate-allowlist [bech32 contract addr] [codeId] [vaa-hex] + _, err = node.ExecTx(ctx, keyName, "wormhole", "add-wasm-instantiate-allowlist", contractBech32Addr, codeIdStr, vHex, "--gas", "auto") + require.NoError(t, err) +} + +type IbcTranslatorInstantiateMsg struct { + TokenBridgeContract string `json:"token_bridge_contract"` +} + +func IbcTranslatorContractInstantiateMsg(t *testing.T, tbContract string) string { + msg := IbcTranslatorInstantiateMsg{ + TokenBridgeContract: tbContract, + } + msgBz, err := json.Marshal(msg) + require.NoError(t, err) + + return string(msgBz) +} + +type IbcTranslatorSubmitUpdateChainToChannelMap struct { + SubmitUpdateChainToChannelMap SubmitUpdateChainToChannelMap `json:"submit_update_chain_to_channel_map"` +} + +type SubmitUpdateChainToChannelMap struct { + Vaa []byte `json:"vaa"` +} + +func SubmitUpdateChainToChannelMapMsg(t *testing.T, allowlistChainID uint16, allowlistChannel string, guardians *guardians.ValSet) string { + payload := new(bytes.Buffer) + module, err := vaa.LeftPadBytes("IbcTranslator", 32) + require.NoError(t, err) + payload.Write(module.Bytes()) + vaa.MustWrite(payload, binary.BigEndian, uint8(1)) + vaa.MustWrite(payload, binary.BigEndian, uint16(0)) + channelPadded, err := vaa.LeftPadBytes(allowlistChannel, 64) + require.NoError(t, err) + payload.Write(channelPadded.Bytes()) + vaa.MustWrite(payload, binary.BigEndian, allowlistChainID) + + v := generateVaa(0, guardians, vaa.GovernanceChain, vaa.GovernanceEmitter, payload.Bytes()) + vBz, err := v.Marshal() + require.NoError(t, err) + + msg := IbcTranslatorSubmitUpdateChainToChannelMap{ + SubmitUpdateChainToChannelMap: SubmitUpdateChainToChannelMap{ + Vaa: vBz, + }, + } + + msgBz, err := json.Marshal(msg) + require.NoError(t, err) + + return string(msgBz) +} + +type IbcTranslatorCompleteTransferAndConvert struct { + CompleteTransferAndConvert CompleteTransferAndConvert `json:"complete_transfer_and_convert"` +} + +type CompleteTransferAndConvert struct { + Vaa []byte `json:"vaa"` +} + +// TODO: replace amount's uint64 with big int or equivalent +func CreatePayload1(amount uint64, tokenAddr string, tokenChain uint16, recipient []byte, recipientChain uint16, fee uint64) []byte { + payload := new(bytes.Buffer) + vaa.MustWrite(payload, binary.BigEndian, uint8(1)) // Payload 1: Transfer + payload.Write(make([]byte, 24)) + vaa.MustWrite(payload, binary.BigEndian, amount) + + tokenAddrPadded, err := vaa.LeftPadBytes(tokenAddr, 32) + if err != nil { + panic(err) + } + payload.Write(tokenAddrPadded.Bytes()) + vaa.MustWrite(payload, binary.BigEndian, tokenChain) + + payload.Write(recipient) + vaa.MustWrite(payload, binary.BigEndian, recipientChain) + + payload.Write(make([]byte, 24)) + vaa.MustWrite(payload, binary.BigEndian, fee) + + return payload.Bytes() +} + +// TODO: replace amount's uint64 with big int or equivalent +func CreatePayload3(cfg ibc.ChainConfig, amount uint64, tokenAddr string, tokenChain uint16, recipient string, recipientChain uint16, from []byte, contractPayload []byte) []byte { + payload := new(bytes.Buffer) + vaa.MustWrite(payload, binary.BigEndian, uint8(3)) // Payload 3: TransferWithPayload + payload.Write(make([]byte, 24)) + vaa.MustWrite(payload, binary.BigEndian, amount) + + tokenAddrPadded, err := vaa.LeftPadBytes(tokenAddr, 32) + if err != nil { + panic(err) + } + payload.Write(tokenAddrPadded.Bytes()) + vaa.MustWrite(payload, binary.BigEndian, tokenChain) + + recipientAddr := MustAccAddressFromBech32(recipient, cfg.Bech32Prefix) + payload.Write(recipientAddr.Bytes()) + vaa.MustWrite(payload, binary.BigEndian, recipientChain) + + payload.Write(from) + + payload.Write(contractPayload) + + return payload.Bytes() +} + +func IbcTranslatorCompleteTransferAndConvertMsg(t *testing.T, emitterChainID uint16, emitterAddr string, payload []byte, guardians *guardians.ValSet) string { + emitterBz := [32]byte{} + eIndex := 32 + for i := len(emitterAddr); i > 0; i-- { + emitterBz[eIndex-1] = emitterAddr[i-1] + eIndex-- + } + v := generateVaa(0, guardians, vaa.ChainID(emitterChainID), vaa.Address(emitterBz), payload) + vBz, err := v.Marshal() + require.NoError(t, err) + + msg := IbcTranslatorCompleteTransferAndConvert{ + CompleteTransferAndConvert: CompleteTransferAndConvert{ + Vaa: vBz, + }, + } + + msgBz, err := json.Marshal(msg) + require.NoError(t, err) + + return string(msgBz) +} + +type GatewayIbcTokenBridgePayloadTransfer struct { + GatewayTransfer GatewayTransfer `json:"gateway_transfer"` +} + +type GatewayTransfer struct { + Chain uint16 `json:"chain"` + Recipient []byte `json:"recipient"` + Fee string `json:"fee"` + Nonce uint32 `json:"nonce"` +} + +func CreateGatewayIbcTokenBridgePayloadTransfer(t *testing.T, chainID uint16, recipient string, fee uint64, nonce uint32) []byte { + msg := GatewayIbcTokenBridgePayloadTransfer{ + GatewayTransfer: GatewayTransfer{ + Chain: chainID, + Recipient: []byte(recipient), + Fee: fmt.Sprint(fee), + Nonce: nonce, + }, + } + msgBz, err := json.Marshal(msg) + require.NoError(t, err) + + return msgBz +} + +type GatewayIbcTokenBridgePayloadTransferWithPayload struct { + GatewayTransferWithPayload GatewayTransferWithPayload `json:"gateway_transfer_with_payload"` +} + +type GatewayTransferWithPayload struct { + Chain uint16 `json:"chain"` + Contract []byte `json:"contract"` + Payload []byte `json:"payload"` + Nonce uint32 `json:"nonce"` +} + +func CreateGatewayIbcTokenBridgePayloadTransferWithPayload(t *testing.T, chainID uint16, contract string, payload []byte, nonce uint32) []byte { + msg := GatewayIbcTokenBridgePayloadTransferWithPayload{ + GatewayTransferWithPayload: GatewayTransferWithPayload{ + Chain: chainID, + Contract: []byte(contract), + Payload: payload, + Nonce: nonce, + }, + } + msgBz, err := json.Marshal(msg) + require.NoError(t, err) + + return msgBz +} + +type IbcTranslatorQueryMsg struct { + IbcChannel QueryIbcChannel `json:"ibc_channel"` +} + +type QueryIbcChannel struct { + ChainID uint16 `json:"chain_id"` +} + +type IbcTranslatorQueryRspMsg struct { + Data *IbcTranslatorQueryRspObj `json:"data"` +} + +type IbcTranslatorQueryRspObj struct { + Channel string `json:"channel,omitempty"` +} + +type IbcComposabilityMwMemoGatewayTransfer struct { + GatewayIbcTokenBridgePayloadTransfer GatewayIbcTokenBridgePayloadTransfer `json:"gateway_ibc_token_bridge_payload"` +} + +func CreateIbcComposabilityMwMemoGatewayTransfer(t *testing.T, chainID uint16, recipient []byte, fee uint64, nonce uint32) string { + msg := IbcComposabilityMwMemoGatewayTransfer{ + GatewayIbcTokenBridgePayloadTransfer{ + GatewayTransfer: GatewayTransfer{ + Chain: chainID, + Recipient: recipient, + Fee: fmt.Sprint(fee), + Nonce: nonce, + }, + }, + } + + msgBz, err := json.Marshal(msg) + require.NoError(t, err) + + return string(msgBz) +} + +type IbcComposabilityMwMemoGatewayTransferWithPayload struct { + GatewayIbcTokenBridgePayloadTransferWithPayload GatewayIbcTokenBridgePayloadTransferWithPayload `json:"gateway_ibc_token_bridge_payload"` +} + +func CreateIbcComposabilityMwMemoGatewayTransferWithPayload(t *testing.T, chainID uint16, externalContract []byte, payload []byte, nonce uint32) string { + msg := IbcComposabilityMwMemoGatewayTransferWithPayload{ + GatewayIbcTokenBridgePayloadTransferWithPayload{ + GatewayTransferWithPayload: GatewayTransferWithPayload{ + Chain: chainID, + Contract: externalContract, + Payload: payload, + Nonce: nonce, + }, + }, + } + + msgBz, err := json.Marshal(msg) + require.NoError(t, err) + + return string(msgBz) +} + +func SubmitIbcReceiverUpdateChannelChainMsg(t *testing.T, allowlistChainID uint16, allowlistChannel string, guardians *guardians.ValSet) string { + payload := new(bytes.Buffer) + module, err := vaa.LeftPadBytes("WormchainCore", 32) + require.NoError(t, err) + payload.Write(module.Bytes()) + vaa.MustWrite(payload, binary.BigEndian, uint8(1)) + vaa.MustWrite(payload, binary.BigEndian, uint16(0)) + channelPadded, err := vaa.LeftPadBytes(string(allowlistChannel), 64) + require.NoError(t, err) + payload.Write(channelPadded.Bytes()) + vaa.MustWrite(payload, binary.BigEndian, allowlistChainID) + + var channelIdBytes [64]byte + copy(channelIdBytes[:], channelPadded.Bytes()) + + // v := generateVaa(0, guardians, vaa.GovernanceChain, vaa.GovernanceEmitter, payload.Bytes()) + // vBz, err := v.Marshal() + // require.NoError(t, err) + + msg := vaa.BodyIbcUpdateChannelChain{ + TargetChainId: 3104, + ChannelId: channelIdBytes, + ChainId: vaa.ChainID(allowlistChainID), + } + + msgBz, err := json.Marshal(msg) + require.NoError(t, err) + + return string(msgBz) +} diff --git a/wormchain/interchaintest/helpers/instantiate_contract.go b/wormchain/interchaintest/helpers/instantiate_contract.go new file mode 100644 index 0000000000..9a0c427f60 --- /dev/null +++ b/wormchain/interchaintest/helpers/instantiate_contract.go @@ -0,0 +1,71 @@ +package helpers + +import ( + "bytes" + "context" + "encoding/binary" + "encoding/hex" + "encoding/json" + "strconv" + "testing" + + "github.com/strangelove-ventures/interchaintest/v4/chain/cosmos" + "github.com/stretchr/testify/require" + "github.com/wormhole-foundation/wormchain/interchaintest/guardians" + "github.com/wormhole-foundation/wormhole/sdk/vaa" +) + +func createWasmInstantiatePayload(code_id uint64, label string, json_msg string) []byte { + // governance message with sha3 of arguments to instantiate + // - code_id (big endian) + // - label + // - json_msg + expected_hash := vaa.CreateInstatiateCosmwasmContractHash(code_id, label, []byte(json_msg)) + + var payload bytes.Buffer + payload.Write(vaa.WasmdModule[:]) + payload.Write([]byte{byte(vaa.ActionInstantiateContract)}) + binary.Write(&payload, binary.BigEndian, uint16(vaa.ChainIDWormchain)) + // custom payload + payload.Write(expected_hash[:]) + return payload.Bytes() +} + +func InstantiateContract( + t *testing.T, + ctx context.Context, + chain *cosmos.CosmosChain, + keyName string, + codeId string, + label string, + message string, + guardians *guardians.ValSet, +) (contract string) { + + node := chain.GetFullNode() + + code_id, err := strconv.ParseUint(codeId, 10, 64) + require.NoError(t, err) + payload := createWasmInstantiatePayload(code_id, label, message) + v := generateVaa(0, guardians, vaa.ChainID(vaa.GovernanceChain), vaa.Address(vaa.GovernanceEmitter), payload) + vBz, err := v.Marshal() + require.NoError(t, err) + vHex := hex.EncodeToString(vBz) + + _, err = node.ExecTx(ctx, keyName, "wormhole", "instantiate", label, codeId, message, vHex, "--gas", "auto") + require.NoError(t, err) + + stdout, _, err := node.ExecQuery(ctx, "wasm", "list-contract-by-code", codeId) + require.NoError(t, err) + + contactsRes := QueryContractResponse{} + err = json.Unmarshal([]byte(stdout), &contactsRes) + require.NoError(t, err) + + contractAddr := contactsRes.Contracts[len(contactsRes.Contracts)-1] + return contractAddr +} + +type QueryContractResponse struct { + Contracts []string `json:"contracts"` +} diff --git a/wormchain/interchaintest/helpers/migrate_contract.go b/wormchain/interchaintest/helpers/migrate_contract.go new file mode 100644 index 0000000000..b488f462ee --- /dev/null +++ b/wormchain/interchaintest/helpers/migrate_contract.go @@ -0,0 +1,52 @@ +package helpers + +import ( + "bytes" + "context" + "encoding/binary" + "encoding/hex" + "strconv" + "testing" + + "github.com/strangelove-ventures/interchaintest/v4/chain/cosmos" + "github.com/stretchr/testify/require" + "github.com/wormhole-foundation/wormchain/interchaintest/guardians" + "github.com/wormhole-foundation/wormhole/sdk/vaa" +) + +func createWasmMigrationPayload(code_id uint64, contractAddr string, json_msg string) []byte { + expected_hash := vaa.CreateMigrateCosmwasmContractHash(code_id, contractAddr, []byte(json_msg)) + + var payload bytes.Buffer + payload.Write(vaa.WasmdModule[:]) + payload.Write([]byte{byte(vaa.ActionMigrateContract)}) + binary.Write(&payload, binary.BigEndian, uint16(vaa.ChainIDWormchain)) + // custom payload + payload.Write(expected_hash[:]) + return payload.Bytes() +} + +func MigrateContract( + t *testing.T, + ctx context.Context, + chain *cosmos.CosmosChain, + keyName string, + contractAddr string, + codeId string, + message string, + guardians *guardians.ValSet, +) { + + node := chain.GetFullNode() + + code_id, err := strconv.ParseUint(codeId, 10, 64) + require.NoError(t, err) + payload := createWasmMigrationPayload(code_id, contractAddr, message) + v := generateVaa(0, guardians, vaa.ChainID(vaa.GovernanceChain), vaa.Address(vaa.GovernanceEmitter), payload) + vBz, err := v.Marshal() + require.NoError(t, err) + vHex := hex.EncodeToString(vBz) + + _, err = node.ExecTx(ctx, keyName, "wormhole", "migrate", contractAddr, codeId, message, vHex, "--gas", "auto") + require.NoError(t, err) +} diff --git a/wormchain/interchaintest/helpers/pfm.go b/wormchain/interchaintest/helpers/pfm.go new file mode 100644 index 0000000000..bb10f0c95f --- /dev/null +++ b/wormchain/interchaintest/helpers/pfm.go @@ -0,0 +1,76 @@ +package helpers + +import ( + "encoding/json" + "testing" + "time" + + "github.com/stretchr/testify/require" +) + +type PacketMetadata struct { + Forward *ForwardMetadata `json:"forward"` +} + +type ForwardMetadata struct { + Receiver string `json:"receiver"` + Port string `json:"port"` + Channel string `json:"channel"` + Timeout time.Duration `json:"timeout"` + Retries *uint8 `json:"retries,omitempty"` + Next *string `json:"next,omitempty"` + RefundSequence *uint64 `json:"refund_sequence,omitempty"` +} + +func CreatePfmSimpleMsg(t *testing.T, recipient string, channel string) string { + retries := uint8(0) + msg := &PacketMetadata{ + Forward: &ForwardMetadata{ + Receiver: recipient, + Port: "transfer", + Channel: channel, + Timeout: time.Minute * 10, + Retries: &retries, + }, + } + + msgBz, err := json.Marshal(msg) + require.NoError(t, err) + + return string(msgBz) +} + +func CreatePfmContractControlledMsg(t *testing.T, contract string, channel string, recipient string) string { + ibchooks := &IbcHooks{ + Payload: IbcHooksPayload{ + Contract: contract, + Msg: IbcHooksExecute{ + Forward: IbcHooksForward{ + Recipient: recipient, + }, + }, + }, + } + + nextBz, err := json.Marshal(ibchooks) + require.NoError(t, err) + + next := string(nextBz) + + retries := uint8(0) + msg := &PacketMetadata{ + Forward: &ForwardMetadata{ + Receiver: contract, + Port: "transfer", + Channel: channel, + Timeout: 1 * time.Minute, + Retries: &retries, + Next: &next, + }, + } + + msgBz, err := json.Marshal(msg) + require.NoError(t, err) + + return string(msgBz) +} diff --git a/wormchain/interchaintest/helpers/store_contract.go b/wormchain/interchaintest/helpers/store_contract.go new file mode 100644 index 0000000000..b26665eafd --- /dev/null +++ b/wormchain/interchaintest/helpers/store_contract.go @@ -0,0 +1,137 @@ +package helpers + +import ( + "bytes" + "compress/gzip" + "context" + "encoding/hex" + "encoding/json" + "fmt" + "os" + "path" + "path/filepath" + "testing" + + "github.com/strangelove-ventures/interchaintest/v4/chain/cosmos" + "github.com/strangelove-ventures/interchaintest/v4/testutil" + "github.com/stretchr/testify/require" + + "github.com/tendermint/crypto/sha3" + "github.com/wormhole-foundation/wormchain/interchaintest/guardians" + "github.com/wormhole-foundation/wormchain/x/wormhole/types" + "github.com/wormhole-foundation/wormhole/sdk/vaa" +) + +func createWasmStoreCodePayload(wasmBytes []byte) []byte { + // governance message with sha3 of wasmBytes as the payload + var hashWasm [32]byte + keccak := sha3.NewLegacyKeccak256() + keccak.Write(wasmBytes) + keccak.Sum(hashWasm[:0]) + + gov_msg := types.NewGovernanceMessage(vaa.WasmdModule, byte(vaa.ActionStoreCode), uint16(vaa.ChainIDWormchain), + hashWasm[:]) + return gov_msg.MarshalBinary() +} + +func createContractUpgradePayload(payload vaa.BodyContractUpgrade) ([]byte, error) { + var coreModule [32]byte + copy(coreModule[:], vaa.CoreModule[:]) + + marshalledPayload, err := payload.Serialize() + if err != nil { + return nil, err + } + + gov_msg := types.NewGovernanceMessage(coreModule, byte(vaa.ActionContractUpgrade), uint16(vaa.ChainIDWormchain), + marshalledPayload) + + return gov_msg.MarshalBinary(), nil +} + +func createIbcReceiverUpdateChannelPayload(payload vaa.BodyIbcUpdateChannelChain) ([]byte, error) { + marshalledPayload, err := payload.Serialize(vaa.IbcReceiverModuleStr) + if err != nil { + return nil, err + } + + gov_msg := types.NewGovernanceMessage(vaa.IbcReceiverModule, byte(vaa.IbcReceiverActionUpdateChannelChain), uint16(vaa.ChainIDWormchain), + marshalledPayload) + + return gov_msg.MarshalBinary(), nil +} + +// func UpgradeCoreContract(t *testing.T, ctx context.Context, chain *cosmos.CosmosChain, keyName string, payload vaa.BodyContractUpgrade, guardians *guardians.ValSet) { +// node := chain.GetFullNode() + +// } + +// wormchaind tx wormhole store [wasm file] [vaa-hex] [flags] +func StoreContract(t *testing.T, ctx context.Context, chain *cosmos.CosmosChain, keyName string, fileLoc string, guardians *guardians.ValSet) (codeId string) { + node := chain.GetFullNode() + + _, file := filepath.Split(fileLoc) + err := node.CopyFile(ctx, fileLoc, file) + require.NoError(t, err, fmt.Errorf("writing contract file to docker volume: %w", err)) + + content, err := os.ReadFile(fileLoc) + require.NoError(t, err) + + // gzip the wasm file + if IsWasm(content) { + content, err = GzipIt(content) + require.NoError(t, err) + } + + payload := createWasmStoreCodePayload(content) + v := generateVaa(0, guardians, vaa.ChainID(vaa.GovernanceChain), vaa.Address(vaa.GovernanceEmitter), payload) + vBz, err := v.Marshal() + require.NoError(t, err) + + vHex := hex.EncodeToString(vBz) + + _, err = node.ExecTx(ctx, keyName, "wormhole", "store", path.Join(node.HomeDir(), file), vHex, "--gas", "auto") + require.NoError(t, err) + + err = testutil.WaitForBlocks(ctx, 2, node.Chain) + require.NoError(t, err) + + stdoutBz, _, err := node.ExecQuery(ctx, "wasm", "list-code", "--reverse") + require.NoError(t, err) + + res := CodeInfosResponse{} + err = json.Unmarshal(stdoutBz, &res) + require.NoError(t, err) + + return res.CodeInfos[0].CodeID +} + +// IsWasm checks if the file contents are of wasm binary +func IsWasm(input []byte) bool { + wasmIdent := []byte("\x00\x61\x73\x6D") + return bytes.Equal(input[:4], wasmIdent) +} + +// GzipIt compresses the input ([]byte) +func GzipIt(input []byte) ([]byte, error) { + // Create gzip writer. + var b bytes.Buffer + w := gzip.NewWriter(&b) + _, err := w.Write(input) + if err != nil { + return nil, err + } + err = w.Close() // You must close this first to flush the bytes to the buffer. + if err != nil { + return nil, err + } + + return b.Bytes(), nil +} + +type CodeInfo struct { + CodeID string `json:"code_id"` +} +type CodeInfosResponse struct { + CodeInfos []CodeInfo `json:"code_infos"` +} diff --git a/wormchain/interchaintest/helpers/token_bridge.go b/wormchain/interchaintest/helpers/token_bridge.go new file mode 100644 index 0000000000..bd30134008 --- /dev/null +++ b/wormchain/interchaintest/helpers/token_bridge.go @@ -0,0 +1,152 @@ +package helpers + +import ( + "bytes" + "encoding/binary" + "encoding/json" + "strconv" + "testing" + + "github.com/strangelove-ventures/interchaintest/v4/ibc" + "github.com/stretchr/testify/require" + "github.com/wormhole-foundation/wormchain/interchaintest/guardians" + "github.com/wormhole-foundation/wormhole/sdk/vaa" +) + +type TbInstantiateMsg struct { + GovChain uint16 `json:"gov_chain"` + GovAddress []byte `json:"gov_address"` + + WormholeContract string `json:"wormhole_contract"` + WrappedAssetCodeId uint64 `json:"wrapped_asset_code_id"` + + ChainId uint16 `json:"chain_id"` + NativeDenom string `json:"native_denom"` + NativeSymbol string `json:"native_symbol"` + NativeDecimals uint8 `json:"native_decimals"` +} + +func TbContractInstantiateMsg(t *testing.T, cfg ibc.ChainConfig, whContract string, wrappedAssetCodeId string) string { + codeId, err := strconv.ParseUint(wrappedAssetCodeId, 10, 64) + require.NoError(t, err) + + msg := TbInstantiateMsg{ + GovChain: uint16(vaa.GovernanceChain), + GovAddress: vaa.GovernanceEmitter[:], + WormholeContract: whContract, + WrappedAssetCodeId: codeId, + ChainId: uint16(vaa.ChainIDWormchain), + NativeDenom: cfg.Denom, + NativeSymbol: "WORM", + NativeDecimals: 6, + } + msgBz, err := json.Marshal(msg) + require.NoError(t, err) + + return string(msgBz) +} + +type TbSubmitVaaMsg struct { + SubmitVaa SubmitVaa `json:"submit_vaa,omitempty"` +} + +type SubmitVaa struct { + Data []byte `json:"data,omitempty"` +} + +func TbRegisterChainMsg(t *testing.T, chainID uint16, emitterAddr string, guardians *guardians.ValSet) []byte { + emitterBz := [32]byte{} + eIndex := 32 + for i := len(emitterAddr); i > 0; i-- { + emitterBz[eIndex-1] = emitterAddr[i-1] + eIndex-- + } + bodyTbRegisterChain := vaa.BodyTokenBridgeRegisterChain{ + Module: "TokenBridge", + ChainID: vaa.ChainID(chainID), + EmitterAddress: vaa.Address(emitterBz), + } + + payload, err := bodyTbRegisterChain.Serialize() + require.NoError(t, err) + v := generateVaa(0, guardians, vaa.ChainID(vaa.GovernanceChain), vaa.Address(vaa.GovernanceEmitter), payload) + vBz, err := v.Marshal() + require.NoError(t, err) + + msg := TbSubmitVaaMsg{ + SubmitVaa: SubmitVaa{ + Data: vBz, + }, + } + + msgBz, err := json.Marshal(msg) + require.NoError(t, err) + + return msgBz +} + +func TbRegisterForeignAsset(t *testing.T, tokenAddr string, chainID uint16, emitterAddr string, decimals uint8, symbol string, name string, guardians *guardians.ValSet) []byte { + payload := new(bytes.Buffer) + vaa.MustWrite(payload, binary.BigEndian, uint8(2)) + tokenAddrPadded, err := vaa.LeftPadBytes(tokenAddr, 32) + require.NoError(t, err) + payload.Write(tokenAddrPadded.Bytes()) + vaa.MustWrite(payload, binary.BigEndian, chainID) + vaa.MustWrite(payload, binary.BigEndian, decimals) + symbolPad := make([]byte, 32) + copy(symbolPad, []byte(symbol)) + payload.Write(symbolPad) + namePad := make([]byte, 32) + copy(namePad, []byte(name)) + payload.Write(namePad) + + emitterBz := [32]byte{} + eIndex := 32 + for i := len(emitterAddr); i > 0; i-- { + emitterBz[eIndex-1] = emitterAddr[i-1] + eIndex-- + } + v := generateVaa(0, guardians, vaa.ChainID(chainID), vaa.Address(emitterBz), payload.Bytes()) + vBz, err := v.Marshal() + require.NoError(t, err) + + msg := TbSubmitVaaMsg{ + SubmitVaa: SubmitVaa{ + Data: vBz, + }, + } + + msgBz, err := json.Marshal(msg) + require.NoError(t, err) + + return msgBz +} + +type TbQueryMsg struct { + WrappedRegistry WrappedRegistry `json:"wrapped_registry"` +} + +type WrappedRegistry struct { + Chain uint16 `json:"chain"` + Address []byte `json:"address"` +} + +func CreateCW20Query(t *testing.T, chainID uint16, address string) TbQueryMsg { + addressBz, err := vaa.LeftPadBytes(address, 32) + require.NoError(t, err) + msg := TbQueryMsg{ + WrappedRegistry: WrappedRegistry{ + Chain: chainID, + Address: addressBz.Bytes(), + }, + } + return msg +} + +type TbQueryRsp struct { + Data *TbQueryRspObj `json:"data,omitempty"` +} + +type TbQueryRspObj struct { + Address string `json:"address"` +} diff --git a/wormchain/interchaintest/helpers/utils.go b/wormchain/interchaintest/helpers/utils.go new file mode 100644 index 0000000000..b86e11afe7 --- /dev/null +++ b/wormchain/interchaintest/helpers/utils.go @@ -0,0 +1,47 @@ +package helpers + +import ( + "fmt" + "strings" + "testing" + + "github.com/strangelove-ventures/interchaintest/v4/chain/cosmos" + + sdk "github.com/cosmos/cosmos-sdk/types" + "github.com/stretchr/testify/require" +) + +func MustAccAddressFromBech32(address string, bech32Prefix string) sdk.AccAddress { + if len(strings.TrimSpace(address)) == 0 { + panic("empty address string is not allowed") + } + + bz, err := sdk.GetFromBech32(address, bech32Prefix) + if err != nil { + panic(err) + } + + err = sdk.VerifyAddressFormat(bz) + if err != nil { + panic(err) + } + + return sdk.AccAddress(bz) +} + +func FindEventAttribute(t *testing.T, chain *cosmos.CosmosChain, txHash string, eventType string, attributeKey string, attributeValue string) bool { + tx, err := chain.GetTransaction(txHash) + require.NoError(t, err) + for _, event := range tx.Events { + if event.Type == eventType { + for _, attribute := range event.Attributes { + if string(attribute.Key) == attributeKey && string(attribute.Value) == attributeValue { + fmt.Println("Found: ", eventType, " ", attributeKey, " ", attributeValue) + return true + } + } + } + } + fmt.Println("Not found: ", eventType, " ", attributeKey, " ", attributeValue, "!") + return false +} diff --git a/wormchain/interchaintest/helpers/vaa.go b/wormchain/interchaintest/helpers/vaa.go new file mode 100644 index 0000000000..452bbce52d --- /dev/null +++ b/wormchain/interchaintest/helpers/vaa.go @@ -0,0 +1,35 @@ +package helpers + +import ( + "time" + + "github.com/wormhole-foundation/wormhole/sdk/vaa" + + "github.com/wormhole-foundation/wormchain/interchaintest/guardians" +) + +var latestSequence = 1 + +func signVaa(vaaToSign vaa.VAA, signers *guardians.ValSet) vaa.VAA { + for i, key := range signers.Vals { + vaaToSign.AddSignature(key.Priv, uint8(i)) + } + return vaaToSign +} + +func generateVaa(index uint32, signers *guardians.ValSet, emitterChain vaa.ChainID, emitterAddr vaa.Address, payload []byte) vaa.VAA { + v := vaa.VAA{ + Version: uint8(1), + GuardianSetIndex: index, + Signatures: nil, + Timestamp: time.Unix(0, 0), + Nonce: uint32(1), + Sequence: uint64(latestSequence), + ConsistencyLevel: uint8(32), + EmitterChain: emitterChain, + EmitterAddress: emitterAddr, + Payload: payload, + } + latestSequence = latestSequence + 1 + return signVaa(v, signers) +} diff --git a/wormchain/interchaintest/helpers/wormhole_core.go b/wormchain/interchaintest/helpers/wormhole_core.go new file mode 100644 index 0000000000..9615d3ab04 --- /dev/null +++ b/wormchain/interchaintest/helpers/wormhole_core.go @@ -0,0 +1,54 @@ +package helpers + +import ( + "encoding/json" + "testing" + + "github.com/strangelove-ventures/interchaintest/v4/ibc" + "github.com/stretchr/testify/require" + "github.com/wormhole-foundation/wormchain/interchaintest/guardians" + "github.com/wormhole-foundation/wormhole/sdk/vaa" +) + +type CoreInstantiateMsg struct { + GovChain uint16 `json:"gov_chain"` + GovAddress []byte `json:"gov_address"` + InitialGuardianSet GuardianSetInfo `json:"initial_guardian_set"` + GuardianSetExpirity uint64 `json:"guardian_set_expirity"` + ChainId uint16 `json:"chain_id"` + FeeDenom string `json:"fee_denom"` +} + +type GuardianSetInfo struct { + Addresses []GuardianAddress `json:"addresses"` + ExpirationTime uint64 `json:"expiration_time"` +} + +type GuardianAddress struct { + Bytes []byte `json:"bytes"` +} + +func CoreContractInstantiateMsg(t *testing.T, cfg ibc.ChainConfig, guardians *guardians.ValSet) string { + guardianAddresses := []GuardianAddress{} + for i := 0; i < guardians.Total; i++ { + guardianAddresses = append(guardianAddresses, GuardianAddress{ + Bytes: guardians.Vals[i].Addr, + }) + } + + msg := CoreInstantiateMsg{ + GovChain: uint16(vaa.GovernanceChain), + GovAddress: vaa.GovernanceEmitter[:], + InitialGuardianSet: GuardianSetInfo{ + Addresses: guardianAddresses, + ExpirationTime: 0, + }, + GuardianSetExpirity: 86400, + ChainId: uint16(vaa.ChainIDWormchain), + FeeDenom: cfg.Denom, + } + msgBz, err := json.Marshal(msg) + require.NoError(t, err) + + return string(msgBz) +} diff --git a/wormchain/interchaintest/malformed_payload_test.go b/wormchain/interchaintest/malformed_payload_test.go new file mode 100644 index 0000000000..871c4c312a --- /dev/null +++ b/wormchain/interchaintest/malformed_payload_test.go @@ -0,0 +1,351 @@ +package ictest + +import ( + "encoding/json" + "fmt" + "testing" + + "github.com/btcsuite/btcd/btcutil/base58" + "github.com/strangelove-ventures/interchaintest/v4" + "github.com/strangelove-ventures/interchaintest/v4/chain/cosmos" + "github.com/strangelove-ventures/interchaintest/v4/ibc" + "github.com/strangelove-ventures/interchaintest/v4/testutil" + "github.com/stretchr/testify/require" + + "github.com/wormhole-foundation/wormchain/interchaintest/guardians" + "github.com/wormhole-foundation/wormchain/interchaintest/helpers" + "github.com/wormhole-foundation/wormhole/sdk/vaa" + + sdk "github.com/cosmos/cosmos-sdk/types" + transfertypes "github.com/cosmos/ibc-go/v4/modules/apps/transfer/types" +) + +// TestMalformedPayload tests the state of wormhole/osmosis chains when a GatewayIbcTokenBridge payload is malformed +// and what tokens are created +func TestMalformedPayload(t *testing.T) { + // Base setup + numVals := 1 + guardians := guardians.CreateValSet(t, numVals) + chains := CreateChains(t, "v2.23.0", *guardians) + ctx, r, eRep, _ := BuildInterchain(t, chains) + + // Chains + wormchain := chains[0].(*cosmos.CosmosChain) + gaia := chains[1].(*cosmos.CosmosChain) + osmosis := chains[2].(*cosmos.CosmosChain) + + osmoToWormChannel, err := ibc.GetTransferChannel(ctx, r, eRep, osmosis.Config().ChainID, wormchain.Config().ChainID) + require.NoError(t, err) + wormToOsmoChannel := osmoToWormChannel.Counterparty + gaiaToWormChannel, err := ibc.GetTransferChannel(ctx, r, eRep, gaia.Config().ChainID, wormchain.Config().ChainID) + require.NoError(t, err) + wormToGaiaChannel := gaiaToWormChannel.Counterparty + + users := interchaintest.GetAndFundTestUsers(t, ctx, "default", int64(10_000_000_000), wormchain, gaia, osmosis, osmosis) + osmoUser1 := users[2] + osmoUser2 := users[3] + + ibcHooksCodeId, err := osmosis.StoreContract(ctx, osmoUser1.KeyName, "./contracts/ibc_hooks.wasm") + require.NoError(t, err) + fmt.Println("IBC hooks code id: ", ibcHooksCodeId) + + ibcHooksContractAddr, err := osmosis.InstantiateContract(ctx, osmoUser1.KeyName, ibcHooksCodeId, "{}", true) + require.NoError(t, err) + fmt.Println("IBC hooks contract addr: ", ibcHooksContractAddr) + + // Store wormhole core contract + coreContractCodeId := helpers.StoreContract(t, ctx, wormchain, "faucet", "./contracts/wormhole_core.wasm", guardians) + fmt.Println("Core contract code id: ", coreContractCodeId) + + // Instantiate wormhole core contract + coreInstantiateMsg := helpers.CoreContractInstantiateMsg(t, wormchainConfig, guardians) + coreContractAddr := helpers.InstantiateContract(t, ctx, wormchain, "faucet", coreContractCodeId, "wormhole_core", coreInstantiateMsg, guardians) + fmt.Println("Core contract address: ", coreContractAddr) + + // Store cw20_wrapped_2 contract + wrappedAssetCodeId := helpers.StoreContract(t, ctx, wormchain, "faucet", "./contracts/cw20_wrapped_2.wasm", guardians) + fmt.Println("CW20 wrapped_2 code id: ", wrappedAssetCodeId) + + // Store token bridge contract + tbContractCodeId := helpers.StoreContract(t, ctx, wormchain, "faucet", "./contracts/token_bridge.wasm", guardians) + fmt.Println("Token bridge contract code id: ", tbContractCodeId) + + // Instantiate token bridge contract + tbInstantiateMsg := helpers.TbContractInstantiateMsg(t, wormchainConfig, coreContractAddr, wrappedAssetCodeId) + tbContractAddr := helpers.InstantiateContract(t, ctx, wormchain, "faucet", tbContractCodeId, "token_bridge", tbInstantiateMsg, guardians) + fmt.Println("Token bridge contract address: ", tbContractAddr) + + helpers.SubmitAllowlistInstantiateContract(t, ctx, wormchain, "faucet", wormchain.Config(), tbContractAddr, wrappedAssetCodeId, guardians) + + // Register a new external chain + tbRegisterChainMsg := helpers.TbRegisterChainMsg(t, ExternalChainId, ExternalChainEmitterAddr, guardians) + _, err = wormchain.ExecuteContract(ctx, "faucet", tbContractAddr, string(tbRegisterChainMsg)) + require.NoError(t, err) + + // Register a new foreign asset (Asset1) originating on externalChain + tbRegisterForeignAssetMsg := helpers.TbRegisterForeignAsset(t, Asset1ContractAddr, Asset1ChainID, ExternalChainEmitterAddr, Asset1Decimals, Asset1Symbol, Asset1Name, guardians) + _, err = wormchain.ExecuteContract(ctx, "faucet", tbContractAddr, string(tbRegisterForeignAssetMsg)) + require.NoError(t, err) + + // Store ibc translator contract + ibcTranslatorCodeId := helpers.StoreContract(t, ctx, wormchain, "faucet", "./contracts/ibc_translator.wasm", guardians) + fmt.Println("ibc_translator code id: ", ibcTranslatorCodeId) + + // Instantiate ibc translator contract + ibcTranslatorInstantiateMsg := helpers.IbcTranslatorContractInstantiateMsg(t, tbContractAddr) + ibcTranslatorContractAddr := helpers.InstantiateContract(t, ctx, wormchain, "faucet", ibcTranslatorCodeId, "ibc_translator", ibcTranslatorInstantiateMsg, guardians) + fmt.Println("Ibc translator contract address: ", ibcTranslatorContractAddr) + + helpers.SetMiddlewareContract(t, ctx, wormchain, "faucet", wormchain.Config(), ibcTranslatorContractAddr, guardians) + + // Allowlist worm/osmo chain id / channel + wormOsmoAllowlistMsg := helpers.SubmitUpdateChainToChannelMapMsg(t, OsmoChainID, wormToOsmoChannel.ChannelID, guardians) + _, err = wormchain.ExecuteContract(ctx, "faucet", ibcTranslatorContractAddr, wormOsmoAllowlistMsg) + require.NoError(t, err) + + // Allowlist worm/gaia chain id / channel + wormGaiaAllowlistMsg := helpers.SubmitUpdateChainToChannelMapMsg(t, GaiaChainID, wormToGaiaChannel.ChannelID, guardians) + _, err = wormchain.ExecuteContract(ctx, "faucet", ibcTranslatorContractAddr, wormGaiaAllowlistMsg) + require.NoError(t, err) + + // Get Asset 1 CW20 contract address + var tbQueryRsp helpers.TbQueryRsp + tbQueryReq := helpers.CreateCW20Query(t, Asset1ChainID, Asset1ContractAddr) + wormchain.QueryContract(ctx, tbContractAddr, tbQueryReq, &tbQueryRsp) + cw20Address := tbQueryRsp.Data.Address + + // Set up cw20 req/resp + var cw20QueryRsp helpers.Cw20WrappedQueryRsp + cw20QueryReq := helpers.Cw20WrappedQueryMsg{TokenInfo: helpers.Cw20TokenInfo{}} + + // Get the Osmo/IBC denom of asset1 + cw20AddressBz := helpers.MustAccAddressFromBech32(cw20Address, wormchain.Config().Bech32Prefix) + subdenom := base58.Encode(cw20AddressBz) + asset1TokenFactoryDenom := fmt.Sprint("factory/", ibcTranslatorContractAddr, "/", subdenom) + osmoAsset1Denom := transfertypes.GetPrefixedDenom("transfer", osmoToWormChannel.ChannelID, asset1TokenFactoryDenom) + osmoIbcAsset1Denom := transfertypes.ParseDenomTrace(osmoAsset1Denom).IBCDenom() + + // ***************** Start of interesting test cases *************************************************************************************** + // # Test | Result | + // | Cw20 minted | TB minted | Final location | + // ----------------------------------------------------------------------------------------------------------------------------------------- + // 1. GW Transfer: chain id isn't allowlisted | X (0) X (0) X (0) | + // 2. GW Transfer: recipient has invalid bech32 addr | + (100) + (100) wormchain (100) | + // 3. GW TransferWithPayload: recipient is valid, but not a contract | + (200) + (200) wormchain (200) | + // 4. GW TransferWithPayload: Memo malformed: ibc hooks: invalid "wasm" root keyword | + (300) + (300) osmosis (100) | + // 5. GW TransferWithPayload: Memo malformed: ibc hooks: invalid recipient (bech32 invalid) | + (400) + (400) wormchain (300) | + // 6. GW TransferWithPayload: Memo malformed: ibc hooks: invalid recipient (not a contract) | + (500) + (500) wormchain (400) | + // 7. GW TransferWithPayload: Memo malformed: ibc hooks: msg: invalid execute method | + (600) + (600) wormchain (500) | + // 8. GW TransferWithPayload: Memo malformed: ibc hooks: msg: invalid "forward to" recipient | + (700) + (700) wormchain (600) | + // ----------------------------------------------------------------------------------------------------------------------------------------- + + // Test 1 (GW Tranfer has 100 added to osmo chain id to make it denied / no chain id -> channel mapping) + simplePayload := helpers.CreateGatewayIbcTokenBridgePayloadTransfer(t, OsmoChainID+100, osmoUser1.Bech32Address(osmosis.Config().Bech32Prefix), 0, 1) + externalSender := []byte{1, 2, 3, 4, 5, 6, 7, 8, 1, 2, 3, 4, 5, 6, 7, 8, 1, 2, 3, 4, 5, 6, 7, 8, 1, 2, 3, 4, 5, 6, 7, 8} + payload3 := helpers.CreatePayload3(wormchain.Config(), 100, Asset1ContractAddr, Asset1ChainID, ibcTranslatorContractAddr, uint16(vaa.ChainIDWormchain), externalSender, simplePayload) + completeTransferAndConvertMsg := helpers.IbcTranslatorCompleteTransferAndConvertMsg(t, ExternalChainId, ExternalChainEmitterAddr, payload3, guardians) + _, err = wormchain.ExecuteContract(ctx, "faucet", ibcTranslatorContractAddr, completeTransferAndConvertMsg) + require.NoError(t, err) + err = testutil.WaitForBlocks(ctx, 1, wormchain, osmosis) + require.NoError(t, err) + + // Check the asset 1 CW20 total supply + wormchain.QueryContract(ctx, cw20Address, cw20QueryReq, &cw20QueryRsp) + require.Equal(t, "0", cw20QueryRsp.Data.TotalSupply, "Asset 1 CW20 total supply should be 0") + + // Check ibc-translator asset 1 denom balance + asset1DenomBalance, err := wormchain.GetBalance(ctx, ibcTranslatorContractAddr, asset1TokenFactoryDenom) + require.NoError(t, err) + require.Equal(t, int64(0), asset1DenomBalance, "Ibc translator asset 1 denom balance should be 0") + + // Test 2 (GW Transfer has a cosmos/gaia prefix for recipient address) + simplePayload = helpers.CreateGatewayIbcTokenBridgePayloadTransfer(t, OsmoChainID, osmoUser1.Bech32Address(gaia.Config().Bech32Prefix), 0, 1) + payload3 = helpers.CreatePayload3(wormchain.Config(), 100, Asset1ContractAddr, Asset1ChainID, ibcTranslatorContractAddr, uint16(vaa.ChainIDWormchain), externalSender, simplePayload) + completeTransferAndConvertMsg = helpers.IbcTranslatorCompleteTransferAndConvertMsg(t, ExternalChainId, ExternalChainEmitterAddr, payload3, guardians) + _, err = wormchain.ExecuteContract(ctx, "faucet", ibcTranslatorContractAddr, completeTransferAndConvertMsg) + require.NoError(t, err) + err = testutil.WaitForBlocks(ctx, 20, wormchain, osmosis) + require.NoError(t, err) + + // Check the asset 1 CW20 total supply + wormchain.QueryContract(ctx, cw20Address, cw20QueryReq, &cw20QueryRsp) + require.Equal(t, "100", cw20QueryRsp.Data.TotalSupply, "Asset 1 CW20 total supply should be 100") + + // Check ibc-translator asset 1 denom balance + asset1DenomBalance, err = wormchain.GetBalance(ctx, ibcTranslatorContractAddr, asset1TokenFactoryDenom) + require.NoError(t, err) + require.Equal(t, int64(100), asset1DenomBalance, "Ibc translator asset 1 denom balance should be 100") + + // Test 3 (GW TransferWithPayload has osmo user1 as recipient and not a contract) + ibcHooksPayload := helpers.CreateIbcHooksMsg(t, ibcHooksContractAddr, osmoUser2.Bech32Address(osmosis.Config().Bech32Prefix)) + contractControlledPayload := helpers.CreateGatewayIbcTokenBridgePayloadTransferWithPayload(t, OsmoChainID, osmoUser1.Bech32Address(osmosis.Config().Bech32Prefix), ibcHooksPayload, 1) + payload3 = helpers.CreatePayload3(wormchain.Config(), 100, Asset1ContractAddr, Asset1ChainID, ibcTranslatorContractAddr, uint16(vaa.ChainIDWormchain), externalSender, contractControlledPayload) + completeTransferAndConvertMsg = helpers.IbcTranslatorCompleteTransferAndConvertMsg(t, ExternalChainId, ExternalChainEmitterAddr, payload3, guardians) + _, err = wormchain.ExecuteContract(ctx, "faucet", ibcTranslatorContractAddr, completeTransferAndConvertMsg) + require.NoError(t, err) + err = testutil.WaitForBlocks(ctx, 20, wormchain, osmosis) + require.NoError(t, err) + + // Check the asset 1 CW20 total supply + wormchain.QueryContract(ctx, cw20Address, cw20QueryReq, &cw20QueryRsp) + require.Equal(t, "200", cw20QueryRsp.Data.TotalSupply, "Asset 1 CW20 total supply should be 200") + + // Check ibc-translator asset 1 denom balance + asset1DenomBalance, err = wormchain.GetBalance(ctx, ibcTranslatorContractAddr, asset1TokenFactoryDenom) + require.NoError(t, err) + require.Equal(t, int64(200), asset1DenomBalance, "Ibc translator asset 1 denom balance should be 200") + + // Test 4 (GW TransferWithPayload - change wasm root in memo) + ibcHooksPayload = CreateInvalidIbcHooksMsgWasm(t, ibcHooksContractAddr, osmoUser2.Bech32Address(osmosis.Config().Bech32Prefix)) + contractControlledPayload = helpers.CreateGatewayIbcTokenBridgePayloadTransferWithPayload(t, OsmoChainID, ibcHooksContractAddr, ibcHooksPayload, 1) + payload3 = helpers.CreatePayload3(wormchain.Config(), 100, Asset1ContractAddr, Asset1ChainID, ibcTranslatorContractAddr, uint16(vaa.ChainIDWormchain), externalSender, contractControlledPayload) + completeTransferAndConvertMsg = helpers.IbcTranslatorCompleteTransferAndConvertMsg(t, ExternalChainId, ExternalChainEmitterAddr, payload3, guardians) + _, err = wormchain.ExecuteContract(ctx, "faucet", ibcTranslatorContractAddr, completeTransferAndConvertMsg) + require.NoError(t, err) + err = testutil.WaitForBlocks(ctx, 20, wormchain, osmosis) + require.NoError(t, err) + + // Check the asset 1 CW20 total supply + wormchain.QueryContract(ctx, cw20Address, cw20QueryReq, &cw20QueryRsp) + require.Equal(t, "300", cw20QueryRsp.Data.TotalSupply, "Asset 1 CW20 total supply should be 300") + + // Check ibc-translator asset 1 denom balance + asset1DenomBalance, err = osmosis.GetBalance(ctx, ibcHooksContractAddr, osmoIbcAsset1Denom) + require.NoError(t, err) + require.Equal(t, int64(100), asset1DenomBalance, "Ibchooks asset 1 denom balance should be 100") + + // Test 5 (GW TransferWithPayload's ibc hook payload has osmo user1 as recipient and not a contract) + cosmosIbcHooksContractAddr := swapBech32Prefix(ibcHooksContractAddr, osmosis.Config().Bech32Prefix, gaia.Config().Bech32Prefix) + ibcHooksPayload = helpers.CreateIbcHooksMsg(t, cosmosIbcHooksContractAddr, osmoUser2.Bech32Address(osmosis.Config().Bech32Prefix)) + contractControlledPayload = helpers.CreateGatewayIbcTokenBridgePayloadTransferWithPayload(t, OsmoChainID, ibcHooksContractAddr, ibcHooksPayload, 1) + payload3 = helpers.CreatePayload3(wormchain.Config(), 100, Asset1ContractAddr, Asset1ChainID, ibcTranslatorContractAddr, uint16(vaa.ChainIDWormchain), externalSender, contractControlledPayload) + completeTransferAndConvertMsg = helpers.IbcTranslatorCompleteTransferAndConvertMsg(t, ExternalChainId, ExternalChainEmitterAddr, payload3, guardians) + _, err = wormchain.ExecuteContract(ctx, "faucet", ibcTranslatorContractAddr, completeTransferAndConvertMsg) + require.NoError(t, err) + err = testutil.WaitForBlocks(ctx, 20, wormchain, osmosis) + require.NoError(t, err) + + // Check the asset 1 CW20 total supply + wormchain.QueryContract(ctx, cw20Address, cw20QueryReq, &cw20QueryRsp) + require.Equal(t, "400", cw20QueryRsp.Data.TotalSupply, "Asset 1 CW20 total supply should be 400") + + // Check ibc-translator asset 1 denom balance + asset1DenomBalance, err = wormchain.GetBalance(ctx, ibcTranslatorContractAddr, asset1TokenFactoryDenom) + require.NoError(t, err) + require.Equal(t, int64(300), asset1DenomBalance, "Ibc translator asset 1 denom balance should be 300") + + // Test 6 (GW TransferWithPayload's ibc hook payload has osmo user1 as recipient and not a contract) + ibcHooksPayload = helpers.CreateIbcHooksMsg(t, osmoUser1.Bech32Address(osmosis.Config().Bech32Prefix), osmoUser2.Bech32Address(osmosis.Config().Bech32Prefix)) + contractControlledPayload = helpers.CreateGatewayIbcTokenBridgePayloadTransferWithPayload(t, OsmoChainID, ibcHooksContractAddr, ibcHooksPayload, 1) + payload3 = helpers.CreatePayload3(wormchain.Config(), 100, Asset1ContractAddr, Asset1ChainID, ibcTranslatorContractAddr, uint16(vaa.ChainIDWormchain), externalSender, contractControlledPayload) + completeTransferAndConvertMsg = helpers.IbcTranslatorCompleteTransferAndConvertMsg(t, ExternalChainId, ExternalChainEmitterAddr, payload3, guardians) + _, err = wormchain.ExecuteContract(ctx, "faucet", ibcTranslatorContractAddr, completeTransferAndConvertMsg) + require.NoError(t, err) + err = testutil.WaitForBlocks(ctx, 20, wormchain, osmosis) + require.NoError(t, err) + + // Check the asset 1 CW20 total supply + wormchain.QueryContract(ctx, cw20Address, cw20QueryReq, &cw20QueryRsp) + require.Equal(t, "500", cw20QueryRsp.Data.TotalSupply, "Asset 1 CW20 total supply should be 500") + + // Check ibc-translator asset 1 denom balance + asset1DenomBalance, err = wormchain.GetBalance(ctx, ibcTranslatorContractAddr, asset1TokenFactoryDenom) + require.NoError(t, err) + require.Equal(t, int64(400), asset1DenomBalance, "Ibc translator asset 1 denom balance should be 400") + + // Test 7 (GW TransferWithPayload has invalid execute method for ibc hooks contract) + ibcHooksPayload = CreateInvalidIbcHooksMsgExecute(t, ibcHooksContractAddr, osmoUser2.Bech32Address(osmosis.Config().Bech32Prefix)) + contractControlledPayload = helpers.CreateGatewayIbcTokenBridgePayloadTransferWithPayload(t, OsmoChainID, ibcHooksContractAddr, ibcHooksPayload, 1) + payload3 = helpers.CreatePayload3(wormchain.Config(), 100, Asset1ContractAddr, Asset1ChainID, ibcTranslatorContractAddr, uint16(vaa.ChainIDWormchain), externalSender, contractControlledPayload) + completeTransferAndConvertMsg = helpers.IbcTranslatorCompleteTransferAndConvertMsg(t, ExternalChainId, ExternalChainEmitterAddr, payload3, guardians) + _, err = wormchain.ExecuteContract(ctx, "faucet", ibcTranslatorContractAddr, completeTransferAndConvertMsg) + require.NoError(t, err) + err = testutil.WaitForBlocks(ctx, 20, wormchain, osmosis) + require.NoError(t, err) + + // Check the asset 1 CW20 total supply + wormchain.QueryContract(ctx, cw20Address, cw20QueryReq, &cw20QueryRsp) + require.Equal(t, "600", cw20QueryRsp.Data.TotalSupply, "Asset 1 CW20 total supply should be 600") + + // Check ibc-translator asset 1 denom balance + asset1DenomBalance, err = wormchain.GetBalance(ctx, ibcTranslatorContractAddr, asset1TokenFactoryDenom) + require.NoError(t, err) + require.Equal(t, int64(500), asset1DenomBalance, "Ibc translator asset 1 denom balance should be 500") + + // Test 8 (GW TransferWithPayload's ibc hook payload has recipient with cosmos/gaia bech32 prefix) + ibcHooksPayload = helpers.CreateIbcHooksMsg(t, ibcHooksContractAddr, osmoUser2.Bech32Address(gaia.Config().Bech32Prefix)) + contractControlledPayload = helpers.CreateGatewayIbcTokenBridgePayloadTransferWithPayload(t, OsmoChainID, ibcHooksContractAddr, ibcHooksPayload, 1) + payload3 = helpers.CreatePayload3(wormchain.Config(), 100, Asset1ContractAddr, Asset1ChainID, ibcTranslatorContractAddr, uint16(vaa.ChainIDWormchain), externalSender, contractControlledPayload) + completeTransferAndConvertMsg = helpers.IbcTranslatorCompleteTransferAndConvertMsg(t, ExternalChainId, ExternalChainEmitterAddr, payload3, guardians) + _, err = wormchain.ExecuteContract(ctx, "faucet", ibcTranslatorContractAddr, completeTransferAndConvertMsg) + require.NoError(t, err) + err = testutil.WaitForBlocks(ctx, 20, wormchain, osmosis) + require.NoError(t, err) + + // Check the asset 1 CW20 total supply + wormchain.QueryContract(ctx, cw20Address, cw20QueryReq, &cw20QueryRsp) + require.Equal(t, "700", cw20QueryRsp.Data.TotalSupply, "Asset 1 CW20 total supply should be 700") + + // Check ibc-translator asset 1 denom balance + asset1DenomBalance, err = wormchain.GetBalance(ctx, ibcTranslatorContractAddr, asset1TokenFactoryDenom) + require.NoError(t, err) + require.Equal(t, int64(600), asset1DenomBalance, "Ibc translator asset 1 denom balance should be 600") +} + +type IbcHooksWasm struct { + Payload helpers.IbcHooksPayload `json:"was"` // invalid keyword +} + +func CreateInvalidIbcHooksMsgWasm(t *testing.T, contract string, recipient string) []byte { + msg := IbcHooksWasm{ + Payload: helpers.IbcHooksPayload{ + Contract: contract, + Msg: helpers.IbcHooksExecute{ + Forward: helpers.IbcHooksForward{ + Recipient: recipient, + }, + }, + }, + } + + msgBz, err := json.Marshal(msg) + require.NoError(t, err) + + return msgBz +} + +type IbcHooks struct { + Payload IbcHooksPayload `json:"wasm"` +} + +type IbcHooksPayload struct { + Contract string `json:"contract"` + Msg IbcHooksExecute `json:"msg"` +} + +type IbcHooksExecute struct { + Forward helpers.IbcHooksForward `json:"forward_tokens1"` // invalid method +} + +func CreateInvalidIbcHooksMsgExecute(t *testing.T, contract string, recipient string) []byte { + msg := IbcHooks{ + Payload: IbcHooksPayload{ + Contract: contract, + Msg: IbcHooksExecute{ + Forward: helpers.IbcHooksForward{ + Recipient: recipient, + }, + }, + }, + } + + msgBz, err := json.Marshal(msg) + require.NoError(t, err) + + return msgBz +} + +func swapBech32Prefix(address string, currentBech32Prefix string, newBech32Prefix string) string { + accAddr := helpers.MustAccAddressFromBech32(address, currentBech32Prefix) + return sdk.MustBech32ifyAddressBytes(newBech32Prefix, accAddr) +} diff --git a/wormchain/interchaintest/setup.go b/wormchain/interchaintest/setup.go new file mode 100644 index 0000000000..6cc5dbc5ed --- /dev/null +++ b/wormchain/interchaintest/setup.go @@ -0,0 +1,285 @@ +package ictest + +import ( + "context" + "encoding/json" + "fmt" + "testing" + + simappparams "github.com/cosmos/cosmos-sdk/simapp/params" + sdk "github.com/cosmos/cosmos-sdk/types" + "github.com/icza/dyno" + + interchaintest "github.com/strangelove-ventures/interchaintest/v4" + "github.com/strangelove-ventures/interchaintest/v4/chain/cosmos/wasm" + "github.com/strangelove-ventures/interchaintest/v4/ibc" + "github.com/strangelove-ventures/interchaintest/v4/testreporter" + + "github.com/wormhole-foundation/wormchain/interchaintest/guardians" + "github.com/wormhole-foundation/wormchain/interchaintest/helpers" + wormholetypes "github.com/wormhole-foundation/wormchain/x/wormhole/types" + "github.com/wormhole-foundation/wormhole/sdk/vaa" + + "github.com/docker/docker/client" + "github.com/stretchr/testify/require" + "go.uber.org/zap/zaptest" +) + +var ( + // pathWormchainGaia = "wormchain-gaia" // Replace with 2nd cosmos chain supporting wormchain + // genesisWalletAmount = int64(10_000_000) + votingPeriod = "10s" + maxDepositPeriod = "10s" + coinType = "118" + wormchainConfig = ibc.ChainConfig{ + Type: "cosmos", + Name: "wormchain", + ChainID: "wormchain-1", + Images: []ibc.DockerImage{ + { + Repository: "ghcr.io/strangelove-ventures/heighliner/wormchain", + UidGid: "1025:1025", + }, + }, + Bin: "wormchaind", + Bech32Prefix: "wormhole", + Denom: "uworm", + CoinType: coinType, + GasPrices: "0.00uworm", + GasAdjustment: 1.8, + TrustingPeriod: "112h", + NoHostMount: false, + EncodingConfig: wormchainEncoding(), + } + numFullNodes = 1 +) + +// wormchainEncoding registers the Wormchain specific module codecs so that the associated types and msgs +// will be supported when writing to the blocksdb sqlite database. +func wormchainEncoding() *simappparams.EncodingConfig { + cfg := wasm.WasmEncoding() + + // register custom types + wormholetypes.RegisterInterfaces(cfg.InterfaceRegistry) + + return cfg +} + +func CreateChains(t *testing.T, wormchainVersion string, guardians guardians.ValSet) []ibc.Chain { + numWormchainVals := len(guardians.Vals) + wormchainConfig.Images[0].Version = wormchainVersion + + // Create chain factory with wormchain + wormchainConfig.ModifyGenesis = ModifyGenesis(votingPeriod, maxDepositPeriod, guardians) + + cf := interchaintest.NewBuiltinChainFactory(zaptest.NewLogger(t), []*interchaintest.ChainSpec{ + { + ChainName: "wormchain", + ChainConfig: wormchainConfig, + NumValidators: &numWormchainVals, + NumFullNodes: &numFullNodes, + }, + {Name: "gaia", Version: "v10.0.1", ChainConfig: ibc.ChainConfig{ + GasPrices: "0.0uatom", + }}, + { + Name: "osmosis", + Version: "v15.1.2", + ChainConfig: ibc.ChainConfig{ + ChainID: "osmosis-1002", // hardcoded handling in osmosis binary for osmosis-1, so need to override to something different. + GasPrices: "1.0uosmo", + EncodingConfig: wasm.WasmEncoding(), + }, + }, + }) + + // Get chains from the chain factory + chains, err := cf.Chains(t.Name()) + require.NoError(t, err) + + return chains +} + +func BuildInterchain(t *testing.T, chains []ibc.Chain) (context.Context, ibc.Relayer, *testreporter.RelayerExecReporter, *client.Client) { + // Create a new Interchain object which describes the chains, relayers, and IBC connections we want to use + ic := interchaintest.NewInterchain() + + for _, chain := range chains { + ic.AddChain(chain) + } + + rep := testreporter.NewNopReporter() + eRep := rep.RelayerExecReporter(t) + + wormGaiaPath := "wormgaia" + wormOsmoPath := "wormosmo" + ctx := context.Background() + client, network := interchaintest.DockerSetup(t) + r := interchaintest.NewBuiltinRelayerFactory(ibc.CosmosRly, zaptest.NewLogger(t)).Build( + t, client, network) + ic.AddRelayer(r, "relayer") + ic.AddLink(interchaintest.InterchainLink{ + Chain1: chains[0], // Wormchain + Chain2: chains[1], // Gaia + Relayer: r, + Path: wormGaiaPath, + }) + ic.AddLink(interchaintest.InterchainLink{ + Chain1: chains[0], // Wormchain + Chain2: chains[2], // Osmosis + Relayer: r, + Path: wormOsmoPath, + }) + + err := ic.Build(ctx, eRep, interchaintest.InterchainBuildOptions{ + TestName: t.Name(), + Client: client, + NetworkID: network, + SkipPathCreation: false, + BlockDatabaseFile: interchaintest.DefaultBlockDatabaseFilepath(), + }) + require.NoError(t, err) + + t.Cleanup(func() { + _ = ic.Close() + }) + + // Start the relayer + err = r.StartRelayer(ctx, eRep, wormGaiaPath, wormOsmoPath) + require.NoError(t, err) + + t.Cleanup( + func() { + err := r.StopRelayer(ctx, eRep) + if err != nil { + t.Logf("an error occured while stopping the relayer: %s", err) + } + }, + ) + + return ctx, r, eRep, client +} + +// Modify the genesis file: +// * Goverance - i.e. voting period +// * Get generated val set +// * Get faucet address +// * Set Guardian Set List using new val set +// * Set Guardian Validator List using new val set +// * Allow list the faucet address +func ModifyGenesis(votingPeriod string, maxDepositPeriod string, guardians guardians.ValSet) func(ibc.ChainConfig, []byte) ([]byte, error) { + return func(chainConfig ibc.ChainConfig, genbz []byte) ([]byte, error) { + numVals := len(guardians.Vals) + g := make(map[string]interface{}) + if err := json.Unmarshal(genbz, &g); err != nil { + return nil, fmt.Errorf("failed to unmarshal genesis file: %w", err) + } + + // Modify gov + if err := dyno.Set(g, votingPeriod, "app_state", "gov", "voting_params", "voting_period"); err != nil { + return nil, fmt.Errorf("failed to set voting period in genesis json: %w", err) + } + if err := dyno.Set(g, maxDepositPeriod, "app_state", "gov", "deposit_params", "max_deposit_period"); err != nil { + return nil, fmt.Errorf("failed to set max deposit period in genesis json: %w", err) + } + if err := dyno.Set(g, chainConfig.Denom, "app_state", "gov", "deposit_params", "min_deposit", 0, "denom"); err != nil { + return nil, fmt.Errorf("failed to set min deposit in genesis json: %w", err) + } + // Get validators + var validators [][]byte + for i := 0; i < numVals; i++ { + validatorBech32, err := dyno.Get(g, "app_state", "genutil", "gen_txs", i, "body", "messages", 0, "delegator_address") + if err != nil { + return nil, fmt.Errorf("failed to get validator pub key: %w", err) + } + validatorAccAddr := helpers.MustAccAddressFromBech32(validatorBech32.(string), chainConfig.Bech32Prefix).Bytes() + validators = append(validators, validatorAccAddr) + } + + // Get faucet address + faucetAddress, err := dyno.Get(g, "app_state", "auth", "accounts", numVals, "address") + if err != nil { + return nil, fmt.Errorf("failed to get faucet address: %w", err) + } + + // Get relayer address + relayerAddress, err := dyno.Get(g, "app_state", "auth", "accounts", numVals+1, "address") + if err != nil { + return nil, fmt.Errorf("failed to get relayer address: %w", err) + } + + // Set guardian set list and validators + guardianSetList := []GuardianSet{} + guardianSet := GuardianSet{ + Index: 0, + Keys: [][]byte{}, + } + guardianValidators := []GuardianValidator{} + for i := 0; i < numVals; i++ { + guardianSet.Keys = append(guardianSet.Keys, guardians.Vals[i].Addr) + guardianValidators = append(guardianValidators, GuardianValidator{ + GuardianKey: guardians.Vals[i].Addr, + ValidatorAddr: validators[i], + }) + } + guardianSetList = append(guardianSetList, guardianSet) + if err := dyno.Set(g, guardianSetList, "app_state", "wormhole", "guardianSetList"); err != nil { + return nil, fmt.Errorf("failed to set guardian set list: %w", err) + } + if err := dyno.Set(g, guardianValidators, "app_state", "wormhole", "guardianValidatorList"); err != nil { + return nil, fmt.Errorf("failed to set guardian validator list: %w", err) + } + + allowedAddresses := []ValidatorAllowedAddress{} + allowedAddresses = append(allowedAddresses, ValidatorAllowedAddress{ + ValidatorAddress: sdk.MustBech32ifyAddressBytes(chainConfig.Bech32Prefix, validators[0]), + AllowedAddress: faucetAddress.(string), + Name: "Faucet", + }) + allowedAddresses = append(allowedAddresses, ValidatorAllowedAddress{ + ValidatorAddress: sdk.MustBech32ifyAddressBytes(chainConfig.Bech32Prefix, validators[0]), + AllowedAddress: relayerAddress.(string), + Name: "Relayer", + }) + if err := dyno.Set(g, allowedAddresses, "app_state", "wormhole", "allowedAddresses"); err != nil { + return nil, fmt.Errorf("failed to set guardian validator list: %w", err) + } + + config := wormholetypes.Config{ + GuardianSetExpiration: 86400, + GovernanceEmitter: vaa.GovernanceEmitter[:], + GovernanceChain: uint32(vaa.GovernanceChain), + ChainId: uint32(vaa.ChainIDWormchain), + } + if err := dyno.Set(g, config, "app_state", "wormhole", "config"); err != nil { + return nil, fmt.Errorf("failed to set guardian validator list: %w", err) + } + out, err := json.Marshal(g) + if err != nil { + return nil, fmt.Errorf("failed to marshal genesis bytes to json: %w", err) + } + fmt.Println("Genesis: ", string(out)) + return out, nil + } +} + +// Replace these with reference to x/wormchain/types +type GuardianSet struct { + Index uint32 `protobuf:"varint,1,opt,name=index,proto3" json:"index,omitempty"` + Keys [][]byte `protobuf:"bytes,2,rep,name=keys,proto3" json:"keys,omitempty"` + ExpirationTime uint64 `protobuf:"varint,3,opt,name=expirationTime,proto3" json:"expirationTime,omitempty"` +} + +type ValidatorAllowedAddress struct { + // the validator/guardian that controls this entry + ValidatorAddress string `protobuf:"bytes,1,opt,name=validator_address,json=validatorAddress,proto3" json:"validator_address,omitempty"` + // the allowlisted account + AllowedAddress string `protobuf:"bytes,2,opt,name=allowed_address,json=allowedAddress,proto3" json:"allowed_address,omitempty"` + // human readable name + Name string `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"` +} + +type GuardianValidator struct { + GuardianKey []byte `protobuf:"bytes,1,opt,name=guardianKey,proto3" json:"guardianKey,omitempty"` + ValidatorAddr []byte `protobuf:"bytes,2,opt,name=validatorAddr,proto3" json:"validatorAddr,omitempty"` +} diff --git a/wormchain/interchaintest/upgrade_failure_test.go b/wormchain/interchaintest/upgrade_failure_test.go new file mode 100644 index 0000000000..4a4e5c35b8 --- /dev/null +++ b/wormchain/interchaintest/upgrade_failure_test.go @@ -0,0 +1,75 @@ +package ictest + +import ( + "context" + "fmt" + "testing" + "time" + + "github.com/strangelove-ventures/interchaintest/v4/chain/cosmos" + "github.com/strangelove-ventures/interchaintest/v4/testutil" + "github.com/stretchr/testify/require" + + "github.com/wormhole-foundation/wormchain/interchaintest/guardians" +) + +// TestUpgradeFailure starts wormchain on v2.18.1, then attempts to upgrade 1 validator at a time to v2.23.0 +func TestUpgradeFailure(t *testing.T) { + // Base setup + numVals := 5 + guardians := guardians.CreateValSet(t, numVals) + chains := CreateChains(t, "v2.18.1", *guardians) + ctx, _, _, client := BuildInterchain(t, chains) + + // Chains + wormchain := chains[0].(*cosmos.CosmosChain) + + blocksAfterUpgrade := uint64(5) + + // upgrade version on all nodes + wormchain.UpgradeVersion(ctx, client, "v2.23.0") + + for i := 0; i < numVals; i++ { + haltHeight, err := wormchain.Height(ctx) + require.NoError(t, err) + fmt.Println("Halt height:", i, " : ", haltHeight) + + // bring down node to prepare for upgrade + err = wormchain.StopANode(ctx, i) + require.NoError(t, err, "error stopping node(s)") + + // start node back up with new binary + err = wormchain.StartANode(ctx, i) + require.NoError(t, err, "error starting upgraded node(s)") + + // Restart the fullnode with the last validator + if i+1 == numVals { + err = wormchain.StopANode(ctx, i+1) + require.NoError(t, err, "error stopping node(s)") + err = wormchain.StartANode(ctx, i+1) + require.NoError(t, err, "error starting upgraded node(s)") + } + + timeoutCtx, timeoutCtxCancel := context.WithTimeout(ctx, time.Second*20) + defer timeoutCtxCancel() + + // Wait for 5 blocks (2sec/block) or 20 seconds + testutil.WaitForBlocks(timeoutCtx, int(blocksAfterUpgrade), wormchain) + } + // Get current height + height1, err := wormchain.Height(ctx) + require.NoError(t, err) + + timeoutCtx, timeoutCtxCancel := context.WithTimeout(ctx, time.Second*20) + defer timeoutCtxCancel() + + // Wait for 5 blocks (2sec/block) or 20 seconds + testutil.WaitForBlocks(timeoutCtx, int(blocksAfterUpgrade), wormchain) + + height2, err := wormchain.Height(ctx) + require.NoError(t, err, "error fetching height after upgrade") + fmt.Println("Checked height: ", height2) + + // height1 and height2 should be equal since we don't produce blocks with this upgrade path + require.Equal(t, height1, height2, "height incremented after upgrade, so upgrade succeeded and test failed") +} diff --git a/wormchain/interchaintest/upgrade_test.go b/wormchain/interchaintest/upgrade_test.go new file mode 100644 index 0000000000..2ce7440f84 --- /dev/null +++ b/wormchain/interchaintest/upgrade_test.go @@ -0,0 +1,399 @@ +package ictest + +import ( + "context" + "fmt" + "strconv" + "testing" + "time" + + "github.com/btcsuite/btcd/btcutil/base58" + "github.com/strangelove-ventures/interchaintest/v4" + "github.com/strangelove-ventures/interchaintest/v4/chain/cosmos" + "github.com/strangelove-ventures/interchaintest/v4/ibc" + "github.com/strangelove-ventures/interchaintest/v4/testutil" + "github.com/stretchr/testify/require" + + "github.com/wormhole-foundation/wormchain/interchaintest/guardians" + "github.com/wormhole-foundation/wormchain/interchaintest/helpers" + "github.com/wormhole-foundation/wormhole/sdk/vaa" + + sdk "github.com/cosmos/cosmos-sdk/types" + transfertypes "github.com/cosmos/ibc-go/v4/modules/apps/transfer/types" +) + +// TestUpgradeTest upgrades from v2.18.1 -> v2.18.1.1 -> V2.23.0 and: +// - Setup wormchain, gaia, and osmosis including contracts/allowlists/etc +// - External->Cosmos: Send 10.000_018 to gaia user 1 (simple) +// - External->Cosmos: Send 1.000_001 to osmo user 1 (simple) +// - External->Cosmos: Send 1.000_002 to osmo user 2 (contract controlled via osmo ibc-hooks contract) +// - Cosmos->External: Send 1.000_003 to external address (simple) from gaia user 1 +// -- gaia user 1 now has 9.000_015 of asset 1 +// - Cosmos->External: Send 1.000_004 to external address (contract controlled) from gaia user 1 +// -- gaia user 1 now has 8.000_011 of asset 1 +// - Cosmos->Cosmos: Send 1.000_005 to osmo user 1 (simple) from gaia user 1 +// -- gaia user 1 now has 7.000_006 of asset 1 +// -- osmo user 1 now has 2.000_006 of asset 1 +// - Cosmos->Cosmos: Send 1.000_006 to osmo user 2 (contract controlled via osmo ibc-hooks contract) from gaia user 1 +// -- gaia user 1 now has 6.000_000 of asset 1 +// -- osmo user 2 now has 2.000_008 of asset 1 +// - Verify asset 1 balance of gaia user 1, osmo user 1, osmo user 2, and cw20 contract total supply +func TestUpgrade(t *testing.T) { + // Base setup + numVals := 5 + guardians := guardians.CreateValSet(t, numVals) + chains := CreateChains(t, "v2.18.1", *guardians) + ctx, r, eRep, client := BuildInterchain(t, chains) + + // Chains + wormchain := chains[0].(*cosmos.CosmosChain) + gaia := chains[1].(*cosmos.CosmosChain) + osmosis := chains[2].(*cosmos.CosmosChain) + + wormchainFaucetAddrBz, err := wormchain.GetAddress(ctx, "faucet") + require.NoError(t, err) + wormchainFaucetAddr := sdk.MustBech32ifyAddressBytes(wormchain.Config().Bech32Prefix, wormchainFaucetAddrBz) + fmt.Println("Wormchain faucet addr: ", wormchainFaucetAddr) + + osmoToWormChannel, err := ibc.GetTransferChannel(ctx, r, eRep, osmosis.Config().ChainID, wormchain.Config().ChainID) + require.NoError(t, err) + wormToOsmoChannel := osmoToWormChannel.Counterparty + gaiaToWormChannel, err := ibc.GetTransferChannel(ctx, r, eRep, gaia.Config().ChainID, wormchain.Config().ChainID) + require.NoError(t, err) + wormToGaiaChannel := gaiaToWormChannel.Counterparty + + users := interchaintest.GetAndFundTestUsers(t, ctx, "default", int64(10_000_000_000), wormchain, gaia, osmosis, osmosis) + _ = users[0] // Wormchain user + gaiaUser := users[1] + osmoUser1 := users[2] + osmoUser2 := users[3] + + // ************************************************************* + // ********* Upgrade to new version of wormchain *************** + // ************************************************************* + + blocksAfterUpgrade := uint64(5) + + // upgrade version on all nodes + wormchain.UpgradeVersion(ctx, client, "v2.18.1.1") + + for i := 0; i < numVals; i++ { + haltHeight, err := wormchain.Height(ctx) + require.NoError(t, err) + fmt.Println("Halt height:", i, " : ", haltHeight) + + // bring down nodes to prepare for upgrade + err = wormchain.StopANode(ctx, i) + require.NoError(t, err, "error stopping node(s)") + + // start all nodes back up. + // validators reach consensus on first block after upgrade height + // and chain block production resumes. + err = wormchain.StartANode(ctx, i) + require.NoError(t, err, "error starting upgraded node(s)") + + // Restart the fullnode with the last validator + if i+1 == numVals { + err = wormchain.StopANode(ctx, i+1) + require.NoError(t, err, "error stopping node(s)") + err = wormchain.StartANode(ctx, i+1) + require.NoError(t, err, "error starting upgraded node(s)") + } + + timeoutCtx, timeoutCtxCancel := context.WithTimeout(ctx, time.Second*45) + defer timeoutCtxCancel() + + err = testutil.WaitForBlocks(timeoutCtx, int(blocksAfterUpgrade), wormchain) + require.NoError(t, err, "chain did not produce blocks after upgrade1") + + height, err := wormchain.Height(ctx) + require.NoError(t, err, "error fetching height after upgrade") + fmt.Println("Checked height: ", height) + + require.GreaterOrEqual(t, height, haltHeight+blocksAfterUpgrade, "height did not increment enough after upgrade") + } + + fmt.Println("***** PASS upgrade #1 **********") + + // -------------------------------------------------------------------------------------- + // upgrade version on all nodes + blocksAfterUpgrade = uint64(10) + + height, err := wormchain.Height(ctx) + require.NoError(t, err, "error fetching height before upgrade") + fmt.Println("Height at sending schedule upgrade: ", height) + + haltHeight := height + blocksAfterUpgrade + fmt.Println("Height for scheduled upgrade: ", haltHeight) + + helpers.ScheduleUpgrade(t, ctx, wormchain, "faucet", "v2.23.0", haltHeight, guardians) + + timeoutCtx3, timeoutCtxCancel3 := context.WithTimeout(ctx, time.Second*45) + defer timeoutCtxCancel3() + + // this should timeout due to chain halt at upgrade height. + testutil.WaitForBlocks(timeoutCtx3, int(blocksAfterUpgrade)+2, wormchain) + + height, err = wormchain.Height(ctx) + require.NoError(t, err, "error fetching height after chain should have halted") + fmt.Println("Height when chains should have halted: ", height) + + require.Equal(t, haltHeight, height, "height is not equal to halt height") + + // bring down nodes to prepare for upgrade + err = wormchain.StopAllNodes(ctx) + require.NoError(t, err, "error stopping node(s)") + + // upgrade version on all nodes + wormchain.UpgradeVersion(ctx, client, "v2.23.0") + + // start all nodes back up. + // validators reach consensus on first block after upgrade height + // and chain block production resumes. + err = wormchain.StartAllNodes(ctx) + require.NoError(t, err, "error starting upgraded node(s)") + + timeoutCtx4, timeoutCtxCancel4 := context.WithTimeout(ctx, time.Second*45) + defer timeoutCtxCancel4() + + err = testutil.WaitForBlocks(timeoutCtx4, int(blocksAfterUpgrade)+1, wormchain) + require.NoError(t, err, "chain did not produce blocks after upgrade") + + height, err = wormchain.Height(ctx) + require.NoError(t, err, "error fetching height after upgrade") + fmt.Println("Height after upgrade >10 blocks after scheduled halt: ", height) + + require.GreaterOrEqual(t, height, haltHeight+blocksAfterUpgrade, "height did not increment enough after upgrade") + fmt.Println("***** PASS 2nd upgrade **********") + + // ************************************************************* + // ******************* Continue with test ********************** + // ************************************************************* + + ibcHooksCodeId, err := osmosis.StoreContract(ctx, osmoUser1.KeyName, "./contracts/ibc_hooks.wasm") + require.NoError(t, err) + fmt.Println("IBC hooks code id: ", ibcHooksCodeId) + + ibcHooksContractAddr, err := osmosis.InstantiateContract(ctx, osmoUser1.KeyName, ibcHooksCodeId, "{}", true) + require.NoError(t, err) + fmt.Println("IBC hooks contract addr: ", ibcHooksContractAddr) + + err = testutil.WaitForBlocks(ctx, 2, wormchain) + require.NoError(t, err, "error waiting for 2 blocks") + + // Store wormhole core contract + coreContractCodeId := helpers.StoreContract(t, ctx, wormchain, "faucet", "./contracts/wormhole_core.wasm", guardians) + fmt.Println("Core contract code id: ", coreContractCodeId) + + // Instantiate wormhole core contract + coreInstantiateMsg := helpers.CoreContractInstantiateMsg(t, wormchainConfig, guardians) + coreContractAddr := helpers.InstantiateContract(t, ctx, wormchain, "faucet", coreContractCodeId, "wormhole_core", coreInstantiateMsg, guardians) + fmt.Println("Core contract address: ", coreContractAddr) + + // Store cw20_wrapped_2 contract + wrappedAssetCodeId := helpers.StoreContract(t, ctx, wormchain, "faucet", "./contracts/cw20_wrapped_2.wasm", guardians) + fmt.Println("CW20 wrapped_2 code id: ", wrappedAssetCodeId) + + // Store token bridge contract + tbContractCodeId := helpers.StoreContract(t, ctx, wormchain, "faucet", "./contracts/token_bridge.wasm", guardians) + fmt.Println("Token bridge contract code id: ", tbContractCodeId) + + // Instantiate token bridge contract + tbInstantiateMsg := helpers.TbContractInstantiateMsg(t, wormchainConfig, coreContractAddr, wrappedAssetCodeId) + tbContractAddr := helpers.InstantiateContract(t, ctx, wormchain, "faucet", tbContractCodeId, "token_bridge", tbInstantiateMsg, guardians) + fmt.Println("Token bridge contract address: ", tbContractAddr) + + helpers.SubmitAllowlistInstantiateContract(t, ctx, wormchain, "faucet", wormchain.Config(), tbContractAddr, wrappedAssetCodeId, guardians) + + // Register a new external chain + tbRegisterChainMsg := helpers.TbRegisterChainMsg(t, ExternalChainId, ExternalChainEmitterAddr, guardians) + _, err = wormchain.ExecuteContract(ctx, "faucet", tbContractAddr, string(tbRegisterChainMsg)) + require.NoError(t, err) + + // Register a new foreign asset (Asset1) originating on externalChain + tbRegisterForeignAssetMsg := helpers.TbRegisterForeignAsset(t, Asset1ContractAddr, Asset1ChainID, ExternalChainEmitterAddr, Asset1Decimals, Asset1Symbol, Asset1Name, guardians) + _, err = wormchain.ExecuteContract(ctx, "faucet", tbContractAddr, string(tbRegisterForeignAssetMsg)) + require.NoError(t, err) + + // Store ibc translator contract + ibcTranslatorCodeId := helpers.StoreContract(t, ctx, wormchain, "faucet", "./contracts/ibc_translator.wasm", guardians) + fmt.Println("Ibc translator code id: ", ibcTranslatorCodeId) + + // Instantiate ibc translator contract + ibcTranslatorInstantiateMsg := helpers.IbcTranslatorContractInstantiateMsg(t, tbContractAddr) + ibcTranslatorContractAddr := helpers.InstantiateContract(t, ctx, wormchain, "faucet", ibcTranslatorCodeId, "ibc_translator", ibcTranslatorInstantiateMsg, guardians) + fmt.Println("Ibc translator contract address: ", ibcTranslatorContractAddr) + + helpers.SetMiddlewareContract(t, ctx, wormchain, "faucet", wormchain.Config(), ibcTranslatorContractAddr, guardians) + + // Allowlist worm/osmo chain id / channel + wormOsmoAllowlistMsg := helpers.SubmitUpdateChainToChannelMapMsg(t, OsmoChainID, wormToOsmoChannel.ChannelID, guardians) + _, err = wormchain.ExecuteContract(ctx, "faucet", ibcTranslatorContractAddr, wormOsmoAllowlistMsg) + require.NoError(t, err) + + // Allowlist worm/gaia chain id / channel + wormGaiaAllowlistMsg := helpers.SubmitUpdateChainToChannelMapMsg(t, GaiaChainID, wormToGaiaChannel.ChannelID, guardians) + _, err = wormchain.ExecuteContract(ctx, "faucet", ibcTranslatorContractAddr, wormGaiaAllowlistMsg) + require.NoError(t, err) + + // Create and process a simple ibc payload3: Transfers 10.000_018 of asset1 from external chain through wormchain to gaia user + simplePayload := helpers.CreateGatewayIbcTokenBridgePayloadTransfer(t, GaiaChainID, gaiaUser.Bech32Address(gaia.Config().Bech32Prefix), 0, 1) + externalSender := []byte{1, 2, 3, 4, 5, 6, 7, 8, 1, 2, 3, 4, 5, 6, 7, 8, 1, 2, 3, 4, 5, 6, 7, 8, 1, 2, 3, 4, 5, 6, 7, 8} + payload3 := helpers.CreatePayload3(wormchain.Config(), uint64(AmountExternalToGaiaUser1), Asset1ContractAddr, Asset1ChainID, ibcTranslatorContractAddr, uint16(vaa.ChainIDWormchain), externalSender, simplePayload) + completeTransferAndConvertMsg := helpers.IbcTranslatorCompleteTransferAndConvertMsg(t, ExternalChainId, ExternalChainEmitterAddr, payload3, guardians) + _, err = wormchain.ExecuteContract(ctx, "faucet", ibcTranslatorContractAddr, completeTransferAndConvertMsg) + require.NoError(t, err) + + // Create and process a simple ibc payload3: Transfers 1.000_001 of asset1 from external chain through wormchain to osmo user1 + simplePayload = helpers.CreateGatewayIbcTokenBridgePayloadTransfer(t, OsmoChainID, osmoUser1.Bech32Address(osmosis.Config().Bech32Prefix), 0, 1) + payload3 = helpers.CreatePayload3(wormchain.Config(), uint64(AmountExternalToOsmoUser1), Asset1ContractAddr, Asset1ChainID, ibcTranslatorContractAddr, uint16(vaa.ChainIDWormchain), externalSender, simplePayload) + completeTransferAndConvertMsg = helpers.IbcTranslatorCompleteTransferAndConvertMsg(t, ExternalChainId, ExternalChainEmitterAddr, payload3, guardians) + _, err = wormchain.ExecuteContract(ctx, "faucet", ibcTranslatorContractAddr, completeTransferAndConvertMsg) + require.NoError(t, err) + + // Create and process a contract controlled ibc payload3 + // Transfers 1.000_002 of asset1 from external chain through wormchain to ibc hooks contract addr + // IBC hooks is used to route the contract controlled payload to a test contract which forwards tokens to osmo user2 + ibcHooksPayload := helpers.CreateIbcHooksMsg(t, ibcHooksContractAddr, osmoUser2.Bech32Address(osmosis.Config().Bech32Prefix)) + contractControlledPayload := helpers.CreateGatewayIbcTokenBridgePayloadTransferWithPayload(t, OsmoChainID, ibcHooksContractAddr, ibcHooksPayload, 1) + payload3 = helpers.CreatePayload3(wormchain.Config(), uint64(AmountExternalToOsmoUser2), Asset1ContractAddr, Asset1ChainID, ibcTranslatorContractAddr, uint16(vaa.ChainIDWormchain), externalSender, contractControlledPayload) + completeTransferAndConvertMsg = helpers.IbcTranslatorCompleteTransferAndConvertMsg(t, ExternalChainId, ExternalChainEmitterAddr, payload3, guardians) + _, err = wormchain.ExecuteContract(ctx, "faucet", ibcTranslatorContractAddr, completeTransferAndConvertMsg) + require.NoError(t, err) + + // wait for transfer to ack + err = testutil.WaitForBlocks(ctx, 10, wormchain, gaia) + require.NoError(t, err) + + // Query the CW20 address of asset1 + var tbQueryRsp helpers.TbQueryRsp + tbQueryReq := helpers.CreateCW20Query(t, Asset1ChainID, Asset1ContractAddr) + wormchain.QueryContract(ctx, tbContractAddr, tbQueryReq, &tbQueryRsp) + cw20Address := tbQueryRsp.Data.Address + fmt.Println("Asset1 cw20 addr: ", cw20Address) + + // Get the Gaia/IBC denom of asset1 + cw20AddressBz := helpers.MustAccAddressFromBech32(cw20Address, wormchain.Config().Bech32Prefix) + subdenom := base58.Encode(cw20AddressBz) + tokenFactoryDenom := fmt.Sprint("factory/", ibcTranslatorContractAddr, "/", subdenom) + gaiaAsset1Denom := transfertypes.GetPrefixedDenom("transfer", gaiaToWormChannel.ChannelID, tokenFactoryDenom) + gaiaIbcAsset1Denom := transfertypes.ParseDenomTrace(gaiaAsset1Denom).IBCDenom() + + // Get the Osmo/IBC denom of asset1 + osmoAsset1Denom := transfertypes.GetPrefixedDenom("transfer", osmoToWormChannel.ChannelID, tokenFactoryDenom) + osmoIbcAsset1Denom := transfertypes.ParseDenomTrace(osmoAsset1Denom).IBCDenom() + + // Verify Gaia user 1 has expected asset 1 balance + gaiaUser1Asset1BalanceTemp, err := gaia.GetBalance(ctx, gaiaUser.Bech32Address(gaia.Config().Bech32Prefix), gaiaIbcAsset1Denom) + require.NoError(t, err) + fmt.Println("Gaia user asset1 coins: ", gaiaUser1Asset1BalanceTemp) + + // wait for transfer to ack + err = testutil.WaitForBlocks(ctx, 2, wormchain, gaia) + require.NoError(t, err) + + // Verify Gaia user 1 has expected asset 1 balance + gaiaUser1Asset1BalanceTemp, err = gaia.GetBalance(ctx, gaiaUser.Bech32Address(gaia.Config().Bech32Prefix), gaiaIbcAsset1Denom) + require.NoError(t, err) + fmt.Println("Gaia user asset1 coins: ", gaiaUser1Asset1BalanceTemp) + + // ************* Cosmos->External: Simple payload (wormhole-mw + ibc-hooks) **************** + // Send 1.000_003 asset 1 from gaia user 1 to external + simpleMemo := helpers.CreateIbcComposabilityMwMemoGatewayTransfer(t, Asset1ChainID, externalSender, 0, 1) + transfer := ibc.WalletAmount{ + Address: ibcTranslatorContractAddr, + Denom: gaiaIbcAsset1Denom, + Amount: int64(AmountGaiaUser1ToExternalSimple), + } + _, err = gaia.SendIBCTransfer(ctx, gaiaToWormChannel.ChannelID, gaiaUser.KeyName, transfer, ibc.TransferOptions{Memo: simpleMemo}) + require.NoError(t, err) + + // wait for transfer to ack + err = testutil.WaitForBlocks(ctx, 2, wormchain, gaia) + require.NoError(t, err) + + // ************* Cosmos->External: Contract controlled payload (wormhole-mw + ibc-hooks) **************** + // Send 1.000_004 asset 1 from gaia user 1 to external + ccIbcHooksMsg := helpers.CreateIbcComposabilityMwMemoGatewayTransferWithPayload(t, Asset1ChainID, externalSender, []byte("ExternalContractPayload"), 1) + transfer = ibc.WalletAmount{ + Address: ibcTranslatorContractAddr, + Denom: gaiaIbcAsset1Denom, + Amount: int64(AmountGaiaUser1ToExternalCC), + } + _, err = gaia.SendIBCTransfer(ctx, gaiaToWormChannel.ChannelID, gaiaUser.KeyName, transfer, ibc.TransferOptions{Memo: ccIbcHooksMsg}) + require.NoError(t, err) + + // wait for transfer to ack + err = testutil.WaitForBlocks(ctx, 2, wormchain, gaia) + require.NoError(t, err) + + // ************** Cosmos->Cosmos: Simple payload (wormhole-mw + PFM) **************** + // Send 1.000_005 asset 1 from gaia user 1 to osmo user 1 + simplePfmMsg := helpers.CreateIbcComposabilityMwMemoGatewayTransfer(t, OsmoChainID, []byte(osmoUser1.Bech32Address(osmosis.Config().Bech32Prefix)), 0, 1) + transfer = ibc.WalletAmount{ + Address: wormchainFaucetAddr, + Denom: gaiaIbcAsset1Denom, + Amount: int64(AmountGaiaUser1ToOsmoUser1), + } + _, err = gaia.SendIBCTransfer(ctx, gaiaToWormChannel.ChannelID, gaiaUser.KeyName, transfer, ibc.TransferOptions{ + Timeout: &ibc.IBCTimeout{ + NanoSeconds: 30_000_000_000, + }, + Memo: simplePfmMsg, + }) + require.NoError(t, err) + + // wait for transfer to ack + err = testutil.WaitForBlocks(ctx, 2, wormchain, gaia) + require.NoError(t, err) + + // ************** Cosmos->Cosmos: Contract controlled payload (wormhole-mw + PFM) **************** + // Send 1.000_006 asset 1 from gaia user 1 to osmo user 2 + ccPayload := helpers.CreateIbcHooksMsg(t, ibcHooksContractAddr, osmoUser2.Bech32Address(osmosis.Config().Bech32Prefix)) + ccPfmMsg := helpers.CreateIbcComposabilityMwMemoGatewayTransferWithPayload(t, OsmoChainID, []byte(ibcHooksContractAddr), ccPayload, 1) + transfer = ibc.WalletAmount{ + Address: ibcTranslatorContractAddr, + Denom: gaiaIbcAsset1Denom, + Amount: int64(AmountGaiaUser1ToOsmoUser2), + } + _, err = gaia.SendIBCTransfer(ctx, gaiaToWormChannel.ChannelID, gaiaUser.KeyName, transfer, ibc.TransferOptions{ + Timeout: &ibc.IBCTimeout{ + NanoSeconds: 30_000_000_000, + }, + Memo: ccPfmMsg, + }) + require.NoError(t, err) + + // wait for transfer to ack + err = testutil.WaitForBlocks(ctx, 15, wormchain, gaia) + require.NoError(t, err) + + // Verify Gaia user 1 has expected asset 1 balance + gaiaUser1Asset1Balance, err := gaia.GetBalance(ctx, gaiaUser.Bech32Address(gaia.Config().Bech32Prefix), gaiaIbcAsset1Denom) + require.NoError(t, err) + expectedGaiaUser1Amount := AmountExternalToGaiaUser1 - AmountGaiaUser1ToExternalCC - AmountGaiaUser1ToExternalSimple - AmountGaiaUser1ToOsmoUser1 - AmountGaiaUser1ToOsmoUser2 + require.Equal(t, int64(expectedGaiaUser1Amount), gaiaUser1Asset1Balance) + fmt.Println("Gaia user asset1 coins: ", gaiaUser1Asset1Balance) + + // Verify osmo user 1 has expected asset 1 balance + osmoUser1Asset1Balance, err := osmosis.GetBalance(ctx, osmoUser1.Bech32Address(osmosis.Config().Bech32Prefix), osmoIbcAsset1Denom) + require.NoError(t, err) + require.Equal(t, int64(AmountExternalToOsmoUser1+AmountGaiaUser1ToOsmoUser1), osmoUser1Asset1Balance) + fmt.Println("Osmo user1 asset1 coins: ", osmoUser1Asset1Balance) + + // Verify osmo user 2 has expected asset 1 balance + osmoUser2Asset1Balance, err := osmosis.GetBalance(ctx, osmoUser2.Bech32Address(osmosis.Config().Bech32Prefix), osmoIbcAsset1Denom) + require.NoError(t, err) + require.Equal(t, int64(AmountExternalToOsmoUser2+AmountGaiaUser1ToOsmoUser2), osmoUser2Asset1Balance) + fmt.Println("Osmo user2 asset1 coins: ", osmoUser2Asset1Balance) + + // Verify asset 1 cw20 contract has expected final total supply + var cw20QueryRsp helpers.Cw20WrappedQueryRsp + cw20QueryReq := helpers.Cw20WrappedQueryMsg{TokenInfo: helpers.Cw20TokenInfo{}} + wormchain.QueryContract(ctx, cw20Address, cw20QueryReq, &cw20QueryRsp) + fmt.Println("Asset1 supply: ", cw20QueryRsp.Data.TotalSupply) + totalSupply, err := strconv.ParseUint(cw20QueryRsp.Data.TotalSupply, 10, 64) + require.NoError(t, err) + expectedTotalSupply := AmountExternalToGaiaUser1 + AmountExternalToOsmoUser1 + AmountExternalToOsmoUser2 - AmountGaiaUser1ToExternalSimple - AmountGaiaUser1ToExternalCC + require.Equal(t, uint64(expectedTotalSupply), totalSupply) +} diff --git a/wormchain/interchaintest/wormchain_test.go b/wormchain/interchaintest/wormchain_test.go new file mode 100644 index 0000000000..cec5d30cac --- /dev/null +++ b/wormchain/interchaintest/wormchain_test.go @@ -0,0 +1,333 @@ +package ictest + +import ( + "fmt" + "strconv" + "testing" + + "github.com/btcsuite/btcd/btcutil/base58" + "github.com/strangelove-ventures/interchaintest/v4" + "github.com/strangelove-ventures/interchaintest/v4/chain/cosmos" + "github.com/strangelove-ventures/interchaintest/v4/ibc" + "github.com/strangelove-ventures/interchaintest/v4/testutil" + "github.com/stretchr/testify/require" + + "github.com/wormhole-foundation/wormchain/interchaintest/guardians" + "github.com/wormhole-foundation/wormchain/interchaintest/helpers" + "github.com/wormhole-foundation/wormhole/sdk/vaa" + + sdk "github.com/cosmos/cosmos-sdk/types" + transfertypes "github.com/cosmos/ibc-go/v4/modules/apps/transfer/types" +) + +var ( + GaiaChainID = uint16(11) + OsmoChainID = uint16(12) + + ExternalChainId = uint16(123) + ExternalChainEmitterAddr = "0x123EmitterAddress" + + Asset1Name = "Wrapped BTC" + Asset1Symbol = "XBTC" + Asset1ContractAddr = "0xXBTC" + Asset1ChainID = ExternalChainId + Asset1Decimals = uint8(6) + + AmountExternalToGaiaUser1 = 10_000_018 + AmountExternalToOsmoUser1 = 1_000_001 + AmountExternalToOsmoUser2 = 1_000_002 + AmountGaiaUser1ToExternalSimple = 1_000_003 + AmountGaiaUser1ToExternalCC = 1_000_004 + AmountGaiaUser1ToOsmoUser1 = 1_000_005 + AmountGaiaUser1ToOsmoUser2 = 1_000_006 +) + +// TestWormchain runs through a simple test case for each deliverable +// - Setup wormchain, gaia, and osmosis including contracts/allowlists/etc +// - External->Cosmos: Send 10.000_018 to gaia user 1 (simple) +// - External->Cosmos: Send 1.000_001 to osmo user 1 (simple) +// - External->Cosmos: Send 1.000_002 to osmo user 2 (contract controlled via osmo ibc-hooks contract) +// - Cosmos->External: Send 1.000_003 to external address (simple) from gaia user 1 +// -- gaia user 1 now has 9.000_015 of asset 1 +// - Cosmos->External: Send 1.000_004 to external address (contract controlled) from gaia user 1 +// -- gaia user 1 now has 8.000_011 of asset 1 +// - Cosmos->Cosmos: Send 1.000_005 to osmo user 1 (simple) from gaia user 1 +// -- gaia user 1 now has 7.000_006 of asset 1 +// -- osmo user 1 now has 2.000_006 of asset 1 +// - Cosmos->Cosmos: Send 1.000_006 to osmo user 2 (contract controlled via osmo ibc-hooks contract) from gaia user 1 +// -- gaia user 1 now has 6.000_000 of asset 1 +// -- osmo user 2 now has 2.000_008 of asset 1 +// - Verify asset 1 balance of gaia user 1, osmo user 1, osmo user 2, and cw20 contract total supply +func TestWormchain(t *testing.T) { + // Base setup + numVals := 2 + guardians := guardians.CreateValSet(t, numVals) + chains := CreateChains(t, "v2.24.2", *guardians) + ctx, r, eRep, _ := BuildInterchain(t, chains) + + // Chains + wormchain := chains[0].(*cosmos.CosmosChain) + gaia := chains[1].(*cosmos.CosmosChain) + osmosis := chains[2].(*cosmos.CosmosChain) + + wormchainFaucetAddrBz, err := wormchain.GetAddress(ctx, "faucet") + require.NoError(t, err) + wormchainFaucetAddr := sdk.MustBech32ifyAddressBytes(wormchain.Config().Bech32Prefix, wormchainFaucetAddrBz) + fmt.Println("Wormchain faucet addr: ", wormchainFaucetAddr) + + osmoToWormChannel, err := ibc.GetTransferChannel(ctx, r, eRep, osmosis.Config().ChainID, wormchain.Config().ChainID) + require.NoError(t, err) + wormToOsmoChannel := osmoToWormChannel.Counterparty + gaiaToWormChannel, err := ibc.GetTransferChannel(ctx, r, eRep, gaia.Config().ChainID, wormchain.Config().ChainID) + require.NoError(t, err) + wormToGaiaChannel := gaiaToWormChannel.Counterparty + + users := interchaintest.GetAndFundTestUsers(t, ctx, "default", int64(10_000_000_000), wormchain, gaia, osmosis, osmosis) + _ = users[0] // Wormchain user + gaiaUser := users[1] + osmoUser1 := users[2] + osmoUser2 := users[3] + + ibcHooksCodeId, err := osmosis.StoreContract(ctx, osmoUser1.KeyName, "./contracts/ibc_hooks.wasm") + require.NoError(t, err) + fmt.Println("IBC hooks code id: ", ibcHooksCodeId) + + ibcHooksContractAddr, err := osmosis.InstantiateContract(ctx, osmoUser1.KeyName, ibcHooksCodeId, "{}", true) + require.NoError(t, err) + fmt.Println("IBC hooks contract addr: ", ibcHooksContractAddr) + + err = testutil.WaitForBlocks(ctx, 2, wormchain) + require.NoError(t, err, "error waiting for 2 blocks") + + // Store wormhole core contract + coreContractCodeId := helpers.StoreContract(t, ctx, wormchain, "faucet", "./contracts/wormhole_core.wasm", guardians) + fmt.Println("Core contract code id: ", coreContractCodeId) + + // Instantiate wormhole core contract + coreInstantiateMsg := helpers.CoreContractInstantiateMsg(t, wormchainConfig, guardians) + coreContractAddr := helpers.InstantiateContract(t, ctx, wormchain, "faucet", coreContractCodeId, "wormhole_core", coreInstantiateMsg, guardians) + fmt.Println("Core contract address: ", coreContractAddr) + + // Store cw20_wrapped_2 contract + wrappedAssetCodeId := helpers.StoreContract(t, ctx, wormchain, "faucet", "./contracts/cw20_wrapped_2.wasm", guardians) + fmt.Println("CW20 wrapped_2 code id: ", wrappedAssetCodeId) + + // Store token bridge contract + tbContractCodeId := helpers.StoreContract(t, ctx, wormchain, "faucet", "./contracts/token_bridge.wasm", guardians) + fmt.Println("Token bridge contract code id: ", tbContractCodeId) + + // Instantiate token bridge contract + tbInstantiateMsg := helpers.TbContractInstantiateMsg(t, wormchainConfig, coreContractAddr, wrappedAssetCodeId) + tbContractAddr := helpers.InstantiateContract(t, ctx, wormchain, "faucet", tbContractCodeId, "token_bridge", tbInstantiateMsg, guardians) + fmt.Println("Token bridge contract address: ", tbContractAddr) + + helpers.SubmitAllowlistInstantiateContract(t, ctx, wormchain, "faucet", wormchain.Config(), tbContractAddr, wrappedAssetCodeId, guardians) + + // Register a new external chain + tbRegisterChainMsg := helpers.TbRegisterChainMsg(t, ExternalChainId, ExternalChainEmitterAddr, guardians) + _, err = wormchain.ExecuteContract(ctx, "faucet", tbContractAddr, string(tbRegisterChainMsg)) + require.NoError(t, err) + + // Register a new foreign asset (Asset1) originating on externalChain + tbRegisterForeignAssetMsg := helpers.TbRegisterForeignAsset(t, Asset1ContractAddr, Asset1ChainID, ExternalChainEmitterAddr, Asset1Decimals, Asset1Symbol, Asset1Name, guardians) + _, err = wormchain.ExecuteContract(ctx, "faucet", tbContractAddr, string(tbRegisterForeignAssetMsg)) + require.NoError(t, err) + + // Store ibc translator contract + ibcTranslatorCodeId := helpers.StoreContract(t, ctx, wormchain, "faucet", "./contracts/ibc_translator.wasm", guardians) + fmt.Println("Ibc translator code id: ", ibcTranslatorCodeId) + + // Instantiate ibc translator contract + ibcTranslatorInstantiateMsg := helpers.IbcTranslatorContractInstantiateMsg(t, tbContractAddr) + ibcTranslatorContractAddr := helpers.InstantiateContract(t, ctx, wormchain, "faucet", ibcTranslatorCodeId, "ibc_translator", ibcTranslatorInstantiateMsg, guardians) + fmt.Println("Ibc translator contract address: ", ibcTranslatorContractAddr) + + helpers.SetMiddlewareContract(t, ctx, wormchain, "faucet", wormchain.Config(), ibcTranslatorContractAddr, guardians) + + // Allowlist worm/osmo chain id / channel + wormOsmoAllowlistMsg := helpers.SubmitUpdateChainToChannelMapMsg(t, OsmoChainID, wormToOsmoChannel.ChannelID, guardians) + _, err = wormchain.ExecuteContract(ctx, "faucet", ibcTranslatorContractAddr, wormOsmoAllowlistMsg) + require.NoError(t, err) + + // Allowlist worm/gaia chain id / channel + wormGaiaAllowlistMsg := helpers.SubmitUpdateChainToChannelMapMsg(t, GaiaChainID, wormToGaiaChannel.ChannelID, guardians) + _, err = wormchain.ExecuteContract(ctx, "faucet", ibcTranslatorContractAddr, wormGaiaAllowlistMsg) + require.NoError(t, err) + + // Create and process a simple ibc payload3: Transfers 10.000_018 of asset1 from external chain through wormchain to gaia user + simplePayload := helpers.CreateGatewayIbcTokenBridgePayloadTransfer(t, GaiaChainID, gaiaUser.Bech32Address(gaia.Config().Bech32Prefix), 0, 1) + externalSender := []byte{1, 2, 3, 4, 5, 6, 7, 8, 1, 2, 3, 4, 5, 6, 7, 8, 1, 2, 3, 4, 5, 6, 7, 8, 1, 2, 3, 4, 5, 6, 7, 8} + payload3 := helpers.CreatePayload3(wormchain.Config(), uint64(AmountExternalToGaiaUser1), Asset1ContractAddr, Asset1ChainID, ibcTranslatorContractAddr, uint16(vaa.ChainIDWormchain), externalSender, simplePayload) + completeTransferAndConvertMsg := helpers.IbcTranslatorCompleteTransferAndConvertMsg(t, ExternalChainId, ExternalChainEmitterAddr, payload3, guardians) + _, err = wormchain.ExecuteContract(ctx, "faucet", ibcTranslatorContractAddr, completeTransferAndConvertMsg) + require.NoError(t, err) + + // Create and process a simple ibc payload3: Transfers 1.000_001 of asset1 from external chain through wormchain to osmo user1 + simplePayload = helpers.CreateGatewayIbcTokenBridgePayloadTransfer(t, OsmoChainID, osmoUser1.Bech32Address(osmosis.Config().Bech32Prefix), 0, 1) + payload3 = helpers.CreatePayload3(wormchain.Config(), uint64(AmountExternalToOsmoUser1), Asset1ContractAddr, Asset1ChainID, ibcTranslatorContractAddr, uint16(vaa.ChainIDWormchain), externalSender, simplePayload) + completeTransferAndConvertMsg = helpers.IbcTranslatorCompleteTransferAndConvertMsg(t, ExternalChainId, ExternalChainEmitterAddr, payload3, guardians) + _, err = wormchain.ExecuteContract(ctx, "faucet", ibcTranslatorContractAddr, completeTransferAndConvertMsg) + require.NoError(t, err) + + // Create and process a contract controlled ibc payload3 + // Transfers 1.000_002 of asset1 from external chain through wormchain to ibc hooks contract addr + // IBC hooks is used to route the contract controlled payload to a test contract which forwards tokens to osmo user2 + ibcHooksPayload := helpers.CreateIbcHooksMsg(t, ibcHooksContractAddr, osmoUser2.Bech32Address(osmosis.Config().Bech32Prefix)) + contractControlledPayload := helpers.CreateGatewayIbcTokenBridgePayloadTransferWithPayload(t, OsmoChainID, ibcHooksContractAddr, ibcHooksPayload, 1) + payload3 = helpers.CreatePayload3(wormchain.Config(), uint64(AmountExternalToOsmoUser2), Asset1ContractAddr, Asset1ChainID, ibcTranslatorContractAddr, uint16(vaa.ChainIDWormchain), externalSender, contractControlledPayload) + completeTransferAndConvertMsg = helpers.IbcTranslatorCompleteTransferAndConvertMsg(t, ExternalChainId, ExternalChainEmitterAddr, payload3, guardians) + _, err = wormchain.ExecuteContract(ctx, "faucet", ibcTranslatorContractAddr, completeTransferAndConvertMsg) + require.NoError(t, err) + + // wait for transfer to ack + err = testutil.WaitForBlocks(ctx, 10, wormchain, gaia) + require.NoError(t, err) + + // Query the CW20 address of asset1 + var tbQueryRsp helpers.TbQueryRsp + tbQueryReq := helpers.CreateCW20Query(t, Asset1ChainID, Asset1ContractAddr) + wormchain.QueryContract(ctx, tbContractAddr, tbQueryReq, &tbQueryRsp) + cw20Address := tbQueryRsp.Data.Address + fmt.Println("Asset1 cw20 addr: ", cw20Address) + + // Get the Gaia/IBC denom of asset1 + cw20AddressBz := helpers.MustAccAddressFromBech32(cw20Address, wormchain.Config().Bech32Prefix) + subdenom := base58.Encode(cw20AddressBz) + tokenFactoryDenom := fmt.Sprint("factory/", ibcTranslatorContractAddr, "/", subdenom) + gaiaAsset1Denom := transfertypes.GetPrefixedDenom("transfer", gaiaToWormChannel.ChannelID, tokenFactoryDenom) + gaiaIbcAsset1Denom := transfertypes.ParseDenomTrace(gaiaAsset1Denom).IBCDenom() + + // Get the Osmo/IBC denom of asset1 + osmoAsset1Denom := transfertypes.GetPrefixedDenom("transfer", osmoToWormChannel.ChannelID, tokenFactoryDenom) + osmoIbcAsset1Denom := transfertypes.ParseDenomTrace(osmoAsset1Denom).IBCDenom() + + // Verify Gaia user 1 has expected asset 1 balance + gaiaUser1Asset1BalanceTemp, err := gaia.GetBalance(ctx, gaiaUser.Bech32Address(gaia.Config().Bech32Prefix), gaiaIbcAsset1Denom) + require.NoError(t, err) + fmt.Println("Gaia user asset1 coins: ", gaiaUser1Asset1BalanceTemp) + + // wait for transfer to ack + err = testutil.WaitForBlocks(ctx, 2, wormchain, gaia) + require.NoError(t, err) + + // Verify Gaia user 1 has expected asset 1 balance + gaiaUser1Asset1BalanceTemp, err = gaia.GetBalance(ctx, gaiaUser.Bech32Address(gaia.Config().Bech32Prefix), gaiaIbcAsset1Denom) + require.NoError(t, err) + fmt.Println("Gaia user asset1 coins: ", gaiaUser1Asset1BalanceTemp) + + // ************* Cosmos->External: Simple payload (wormhole-mw + ibc-hooks) **************** + // Send 1.000_003 asset 1 from gaia user 1 to external + simpleMemo := helpers.CreateIbcComposabilityMwMemoGatewayTransfer(t, Asset1ChainID, externalSender, 0, 1) + transfer := ibc.WalletAmount{ + Address: ibcTranslatorContractAddr, + Denom: gaiaIbcAsset1Denom, + Amount: int64(AmountGaiaUser1ToExternalSimple), + } + _, err = gaia.SendIBCTransfer(ctx, gaiaToWormChannel.ChannelID, gaiaUser.KeyName, transfer, ibc.TransferOptions{Memo: simpleMemo}) + require.NoError(t, err) + + // wait for transfer to ack + err = testutil.WaitForBlocks(ctx, 2, wormchain, gaia) + require.NoError(t, err) + + // ************* Cosmos->External: Contract controlled payload (wormhole-mw + ibc-hooks) **************** + // Send 1.000_004 asset 1 from gaia user 1 to external + ccIbcHooksMsg := helpers.CreateIbcComposabilityMwMemoGatewayTransferWithPayload(t, Asset1ChainID, externalSender, []byte("ExternalContractPayload"), 1) + transfer = ibc.WalletAmount{ + Address: ibcTranslatorContractAddr, + Denom: gaiaIbcAsset1Denom, + Amount: int64(AmountGaiaUser1ToExternalCC), + } + _, err = gaia.SendIBCTransfer(ctx, gaiaToWormChannel.ChannelID, gaiaUser.KeyName, transfer, ibc.TransferOptions{Memo: ccIbcHooksMsg}) + require.NoError(t, err) + + // wait for transfer to ack + err = testutil.WaitForBlocks(ctx, 2, wormchain, gaia) + require.NoError(t, err) + + // ************** Cosmos->Cosmos: Simple payload (wormhole-mw + PFM) **************** + // Send 1.000_005 asset 1 from gaia user 1 to osmo user 1 + simplePfmMsg := helpers.CreateIbcComposabilityMwMemoGatewayTransfer(t, OsmoChainID, []byte(osmoUser1.Bech32Address(osmosis.Config().Bech32Prefix)), 0, 1) + transfer = ibc.WalletAmount{ + Address: wormchainFaucetAddr, + Denom: gaiaIbcAsset1Denom, + Amount: int64(AmountGaiaUser1ToOsmoUser1), + } + _, err = gaia.SendIBCTransfer(ctx, gaiaToWormChannel.ChannelID, gaiaUser.KeyName, transfer, ibc.TransferOptions{ + Timeout: &ibc.IBCTimeout{ + NanoSeconds: 30_000_000_000, + }, + Memo: simplePfmMsg, + }) + require.NoError(t, err) + + // wait for transfer to ack + err = testutil.WaitForBlocks(ctx, 2, wormchain, gaia) + require.NoError(t, err) + + // ************** Cosmos->Cosmos: Contract controlled payload (wormhole-mw + PFM) **************** + // Send 1.000_006 asset 1 from gaia user 1 to osmo user 2 + ccPayload := helpers.CreateIbcHooksMsg(t, ibcHooksContractAddr, osmoUser2.Bech32Address(osmosis.Config().Bech32Prefix)) + ccPfmMsg := helpers.CreateIbcComposabilityMwMemoGatewayTransferWithPayload(t, OsmoChainID, []byte(ibcHooksContractAddr), ccPayload, 1) + transfer = ibc.WalletAmount{ + Address: ibcTranslatorContractAddr, + Denom: gaiaIbcAsset1Denom, + Amount: int64(AmountGaiaUser1ToOsmoUser2), + } + _, err = gaia.SendIBCTransfer(ctx, gaiaToWormChannel.ChannelID, gaiaUser.KeyName, transfer, ibc.TransferOptions{ + Timeout: &ibc.IBCTimeout{ + NanoSeconds: 30_000_000_000, + }, + Memo: ccPfmMsg, + }) + require.NoError(t, err) + + // wait for transfer to ack + err = testutil.WaitForBlocks(ctx, 15, wormchain, gaia) + require.NoError(t, err) + + // Verify Gaia user 1 has expected asset 1 balance + gaiaUser1Asset1Balance, err := gaia.GetBalance(ctx, gaiaUser.Bech32Address(gaia.Config().Bech32Prefix), gaiaIbcAsset1Denom) + require.NoError(t, err) + expectedGaiaUser1Amount := AmountExternalToGaiaUser1 - AmountGaiaUser1ToExternalCC - AmountGaiaUser1ToExternalSimple - AmountGaiaUser1ToOsmoUser1 - AmountGaiaUser1ToOsmoUser2 + require.Equal(t, int64(expectedGaiaUser1Amount), gaiaUser1Asset1Balance) + fmt.Println("Gaia user asset1 coins: ", gaiaUser1Asset1Balance) + + // Verify osmo user 1 has expected asset 1 balance + osmoUser1Asset1Balance, err := osmosis.GetBalance(ctx, osmoUser1.Bech32Address(osmosis.Config().Bech32Prefix), osmoIbcAsset1Denom) + require.NoError(t, err) + require.Equal(t, int64(AmountExternalToOsmoUser1+AmountGaiaUser1ToOsmoUser1), osmoUser1Asset1Balance) + fmt.Println("Osmo user1 asset1 coins: ", osmoUser1Asset1Balance) + + // Verify osmo user 2 has expected asset 1 balance + osmoUser2Asset1Balance, err := osmosis.GetBalance(ctx, osmoUser2.Bech32Address(osmosis.Config().Bech32Prefix), osmoIbcAsset1Denom) + require.NoError(t, err) + require.Equal(t, int64(AmountExternalToOsmoUser2+AmountGaiaUser1ToOsmoUser2), osmoUser2Asset1Balance) + fmt.Println("Osmo user2 asset1 coins: ", osmoUser2Asset1Balance) + + // Verify asset 1 cw20 contract has expected final total supply + var cw20QueryRsp helpers.Cw20WrappedQueryRsp + cw20QueryReq := helpers.Cw20WrappedQueryMsg{TokenInfo: helpers.Cw20TokenInfo{}} + wormchain.QueryContract(ctx, cw20Address, cw20QueryReq, &cw20QueryRsp) + fmt.Println("Asset1 supply: ", cw20QueryRsp.Data.TotalSupply) + totalSupply, err := strconv.ParseUint(cw20QueryRsp.Data.TotalSupply, 10, 64) + require.NoError(t, err) + expectedTotalSupply := AmountExternalToGaiaUser1 + AmountExternalToOsmoUser1 + AmountExternalToOsmoUser2 - AmountGaiaUser1ToExternalSimple - AmountGaiaUser1ToExternalCC + require.Equal(t, uint64(expectedTotalSupply), totalSupply) + + denomsMetadata := helpers.GetDenomsMetadata(t, ctx, wormchain) + fmt.Println("Denoms metadata: ", denomsMetadata) +} + +type QueryMsg struct { + GuardianSetInfo *struct{} `json:"guardian_set_info,omitempty"` +} + +type QueryRsp struct { + Data *QueryRspObj `json:"data,omitempty"` +} + +type QueryRspObj struct { + GuardianSetIndex uint32 `json:"guardian_set_index"` + Addresses []helpers.GuardianAddress `json:"addresses"` +} diff --git a/wormchain/testutil/keeper/wormhole.go b/wormchain/testutil/keeper/wormhole.go index 62cff3c832..dcc9a80164 100644 --- a/wormchain/testutil/keeper/wormhole.go +++ b/wormchain/testutil/keeper/wormhole.go @@ -1,7 +1,7 @@ package keeper import ( - "io/ioutil" + "os" "testing" "time" @@ -97,10 +97,7 @@ func WormholeKeeperAndWasmd(t testing.TB) (*keeper.Keeper, wasmkeeper.Keeper, *w appapp.CapabilityKeeper = capabilitykeeper.NewKeeper(appCodec, keys[capabilitytypes.StoreKey], memKeys[capabilitytypes.MemStoreKey]) scopedWasmKeeper := appapp.CapabilityKeeper.ScopeToModule(wasm.ModuleName) - wasmDir, err := ioutil.TempDir("", "") - if err != nil { - panic(err) - } + wasmDir := os.TempDir() wasmKeeper := wasm.NewKeeper( appCodec, keys[wasmtypes.StoreKey], diff --git a/wormchain/x/wormhole/client/cli/genesis.go b/wormchain/x/wormhole/client/cli/genesis.go index 56529b5e79..2d43fcc9e8 100644 --- a/wormchain/x/wormhole/client/cli/genesis.go +++ b/wormchain/x/wormhole/client/cli/genesis.go @@ -6,7 +6,6 @@ import ( "encoding/binary" "encoding/hex" "fmt" - "io/ioutil" "math/big" "os" "strings" @@ -79,11 +78,11 @@ func CmdGenerateTestGuardianKey() *cobra.Command { private_key := [32]byte{} key.D.FillBytes(private_key[:]) - err = ioutil.WriteFile(outPrivatePath, []byte(hex.EncodeToString(private_key[:])), 0644) + err = os.WriteFile(outPrivatePath, []byte(hex.EncodeToString(private_key[:])), 0644) if err != nil { return err } - ioutil.WriteFile(outPublicPath, []byte(hex.EncodeToString(addr.Bytes())), 0644) + os.WriteFile(outPublicPath, []byte(hex.EncodeToString(addr.Bytes())), 0644) if err != nil { return err } @@ -131,7 +130,7 @@ func CmdDecodeAddress() *cobra.Command { func ImportKeyFromFile(filePath string) (*ecdsa.PrivateKey, error) { priv := ecdsa.PrivateKey{} - bz, err := ioutil.ReadFile(filePath) + bz, err := os.ReadFile(filePath) if err != nil { return &priv, err } @@ -139,7 +138,7 @@ func ImportKeyFromFile(filePath string) (*ecdsa.PrivateKey, error) { } func ImportPublicKeyFromFile(filePath string) ([]byte, error) { - hexBz, err := ioutil.ReadFile(filePath) + hexBz, err := os.ReadFile(filePath) if err != nil { return []byte{}, err } diff --git a/wormchain/x/wormhole/client/cli/tx_wasmd.go b/wormchain/x/wormhole/client/cli/tx_wasmd.go index be1aef678b..397922b349 100644 --- a/wormchain/x/wormhole/client/cli/tx_wasmd.go +++ b/wormchain/x/wormhole/client/cli/tx_wasmd.go @@ -2,7 +2,7 @@ package cli import ( "fmt" - "io/ioutil" + "os" "strconv" "encoding/hex" @@ -22,7 +22,7 @@ import ( var _ = strconv.Itoa(0) func parseStoreCodeArgs(file string, sender sdk.AccAddress, vaa []byte) (types.MsgStoreCode, error) { - wasm, err := ioutil.ReadFile(file) + wasm, err := os.ReadFile(file) if err != nil { return types.MsgStoreCode{}, err } From eeaa8adcb5dfa0b973940909373a2d76ebe79a7d Mon Sep 17 00:00:00 2001 From: JPB Date: Mon, 24 Jun 2024 11:06:32 -0400 Subject: [PATCH 08/14] Use ADRs for a record of project decisions. --- wormchain/docs/.adr-dir | 1 + ...0001-ADRs-are-canonical-source-of-truth.md | 32 +++++++++++++++++++ 2 files changed, 33 insertions(+) create mode 100644 wormchain/docs/.adr-dir create mode 100644 wormchain/docs/architecture/0001-ADRs-are-canonical-source-of-truth.md diff --git a/wormchain/docs/.adr-dir b/wormchain/docs/.adr-dir new file mode 100644 index 0000000000..c65fbdbbea --- /dev/null +++ b/wormchain/docs/.adr-dir @@ -0,0 +1 @@ +architecture diff --git a/wormchain/docs/architecture/0001-ADRs-are-canonical-source-of-truth.md b/wormchain/docs/architecture/0001-ADRs-are-canonical-source-of-truth.md new file mode 100644 index 0000000000..982d2c4154 --- /dev/null +++ b/wormchain/docs/architecture/0001-ADRs-are-canonical-source-of-truth.md @@ -0,0 +1,32 @@ +# 1. ADRs will be the Canonical Source of Truth for architecture decisions + +Date: 2024-06-24 + +## Status + +Accepted + +## Context + +- As WH/SL +- We want a place to memorialize decisions +- Because it helps with context / institutional memory / onboarding + +As discussed and agreed to in the Strangelove / Wormhole [project kick-off](https://miro.com/app/board/uXjVK_fZYq0=/?share_link_id=596301298163). + +## Decision + +To memorialize decisions, we'll use Architecture Decision Records, as [described by Michael Nygard](http://thinkrelevance.com/blog/2011/11/15/documenting-architecture-decisions). + +Briefly: ~if~ whenever we make a decision which might reasonably cause a Future Developer (e.g., a new dev, or Six-Months-In-The-Future-Us) to say "Wait—why'd we choose that?", we'll log an ADR to act as a Canonical Source Of Truth, contemporaneously detailing reasoning. + +At times, we'll certainly be wrong. + +We'll almost certainly backtrack certain ideas. + +But—hopefully—we won't bark up the same tree twice. + +## Consequences + +- You might want some tooling. For a lightweight ADR toolset, see Nat Pryce's [adr-tools](https://github.com/npryce/adr-tools), or `brew install adr-tools` if you're the trusting sort. +- We instantiated w/ the default template (Status, Context, Decision, Consequences). If/when we want to update the ADR format, this gh issue has the rundown: https://github.com/npryce/adr-tools/issues/120. From ee23fb52a98ee7d49f2b9a60beec285eaafc8959 Mon Sep 17 00:00:00 2001 From: Justin Tieri <37750742+jtieri@users.noreply.github.com> Date: Mon, 24 Jun 2024 15:09:01 -0500 Subject: [PATCH 09/14] docs: add ADR for wasmvm versioning decision --- ...ll-be-upgraded-to-v1-5-2-and-not-v2-x-x.md | 22 +++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 wormchain/docs/architecture/0002-wasmvm-will-be-upgraded-to-v1-5-2-and-not-v2-x-x.md diff --git a/wormchain/docs/architecture/0002-wasmvm-will-be-upgraded-to-v1-5-2-and-not-v2-x-x.md b/wormchain/docs/architecture/0002-wasmvm-will-be-upgraded-to-v1-5-2-and-not-v2-x-x.md new file mode 100644 index 0000000000..48a80abd45 --- /dev/null +++ b/wormchain/docs/architecture/0002-wasmvm-will-be-upgraded-to-v1-5-2-and-not-v2-x-x.md @@ -0,0 +1,22 @@ +# 2. wasmvm will be upgraded to v1.5.2 and not v2.x.x + +Date: 2024-06-24 + +## Status + +Accepted + +## Context + +wasmvm 1.5.2 has an EOL that will arrive sooner, but v2.x.x is a riskier upgrade path. + +## Decision + +We will upgrade to v1.5.2 and NOT v2.x.x because it was suggested that the risk/reward isn't worth it: too new, +bugs on tokenfactory for chains which deployed it. We will hold off on that for now. + +## Consequences + +Not being on wasmvm v2.x.x will leave wormhole gateway missing out on the "factor of 1000" lower cosmwasm gas costs, +improved submessage ergonomics and ability to query cosmwasm via grpc which are some of the main 2.x benefits. +Reference: https://medium.com/cosmwasm/cosmwasm-2-0-bbb94126ce6f From 07a06078566ba71deb2030df32e3332a1e555b04 Mon Sep 17 00:00:00 2001 From: pharr117 Date: Wed, 10 Jul 2024 18:51:12 -0400 Subject: [PATCH 10/14] Add ADR for Cosmos SDK v0.47 upgrade applied to wormhole-foundation Cosmos SDK fork --- ...de-will-be-implemented-in-wormhole-fork.md | 28 +++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 wormchain/docs/architecture/0003-cosmos-sdk-v0-47-upgrade-will-be-implemented-in-wormhole-fork.md diff --git a/wormchain/docs/architecture/0003-cosmos-sdk-v0-47-upgrade-will-be-implemented-in-wormhole-fork.md b/wormchain/docs/architecture/0003-cosmos-sdk-v0-47-upgrade-will-be-implemented-in-wormhole-fork.md new file mode 100644 index 0000000000..fe9d172476 --- /dev/null +++ b/wormchain/docs/architecture/0003-cosmos-sdk-v0-47-upgrade-will-be-implemented-in-wormhole-fork.md @@ -0,0 +1,28 @@ +# 3. cosmos sdk v0.47 upgrade will be implemented in wormhole fork + +Date: 2024-07-10 + +## Status + +Accepted + +## Context + +The Wormhole Foundation has made a copy of the Cosmos SDK repository, which can be found in their Github organization [here](https://github.com/wormhole-foundation/cosmos-sdk). They are referencing this copied repository in the wormchain [go.mod]( github.com/cosmos/cosmos-sdk => github.com/wormhole-foundation/cosmos-sdk v0.45.9-wormhole-2) file, referencing the [v0.45.9-wormhole-2](https://github.com/wormhole-foundation/cosmos-sdk/releases/tag/v0.45.9-wormhole-2) tag. This tag has [commits](https://github.com/wormhole-foundation/cosmos-sdk/commits/v0.45.9-wormhole-2/?since=2022-10-19&until=2022-12-21) made by the wormhole-foundation team that fundamentally change the behavior of the staking module, particularly implementing proof of authority based on the wormchain guardian set. + +## Decision + +With the use of a forked Cosmos SDK and fundamental changes to the staking module, the initial Cosmos SDK v0.45 to v0.47 upgrade will be done on their fork in the following manner: + +1. Pull in the [v0.47.12](https://github.com/cosmos/cosmos-sdk/releases/tag/v0.47.12) (latest in the v0.47 series) tag from the Cosmos SDK repository into the +2. Re-implement the changes made in the v0.45.9-wormhole-2 tag into the v0.47.12 tag. +3. Release a new tag that includes the changes from the v0.47.12 tag and the changes made on top of it from the v0.45.9-wormhole-2 tag. +4. Reference this new version in the wormchain go.mod file. + +## Consequences + +With the changes to the staking module being applied directly in the Wormhole Foundation Cosmos SDK fork, this will have the following good and bad consequences: + +1. It will maintain the required changes made to the staking module as they were at the time of the v0.45.9-wormhole-2 tag. +2. It will be easier to maintain the changes made to the staking module as they will be directly applied to the forked repository. +3. Maintaining the fork of the Cosmos SDK will be more difficult as the Cosmos SDK repository will continue to evolve. \ No newline at end of file From 8bb4384abaec1232f23e28345daf2a99b51dc346 Mon Sep 17 00:00:00 2001 From: Peter <24580777+pharr117@users.noreply.github.com> Date: Fri, 12 Jul 2024 11:38:07 -0400 Subject: [PATCH 11/14] Update 0003-cosmos-sdk-v0-47-upgrade-will-be-implemented-in-wormhole-fork.md --- ...dk-v0-47-upgrade-will-be-implemented-in-wormhole-fork.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/wormchain/docs/architecture/0003-cosmos-sdk-v0-47-upgrade-will-be-implemented-in-wormhole-fork.md b/wormchain/docs/architecture/0003-cosmos-sdk-v0-47-upgrade-will-be-implemented-in-wormhole-fork.md index fe9d172476..f9ad11a592 100644 --- a/wormchain/docs/architecture/0003-cosmos-sdk-v0-47-upgrade-will-be-implemented-in-wormhole-fork.md +++ b/wormchain/docs/architecture/0003-cosmos-sdk-v0-47-upgrade-will-be-implemented-in-wormhole-fork.md @@ -1,4 +1,4 @@ -# 3. cosmos sdk v0.47 upgrade will be implemented in wormhole fork +# 3. Cosmos SDK v0.47 upgrade will be implemented in Wormhole Fork Date: 2024-07-10 @@ -8,7 +8,7 @@ Accepted ## Context -The Wormhole Foundation has made a copy of the Cosmos SDK repository, which can be found in their Github organization [here](https://github.com/wormhole-foundation/cosmos-sdk). They are referencing this copied repository in the wormchain [go.mod]( github.com/cosmos/cosmos-sdk => github.com/wormhole-foundation/cosmos-sdk v0.45.9-wormhole-2) file, referencing the [v0.45.9-wormhole-2](https://github.com/wormhole-foundation/cosmos-sdk/releases/tag/v0.45.9-wormhole-2) tag. This tag has [commits](https://github.com/wormhole-foundation/cosmos-sdk/commits/v0.45.9-wormhole-2/?since=2022-10-19&until=2022-12-21) made by the wormhole-foundation team that fundamentally change the behavior of the staking module, particularly implementing proof of authority based on the wormchain guardian set. +The Wormhole Foundation has made a copy of the Cosmos SDK repository, which can be found in their Github organization [here](https://github.com/wormhole-foundation/cosmos-sdk). They are referencing this copied repository in the wormchain [go.mod](https://github.com/wormhole-foundation/wormhole/blob/6236a9a6cbd0dc00a940e6654c6f6106d0904ece/wormchain/go.mod#L142) file, referencing the [v0.45.9-wormhole-2](https://github.com/wormhole-foundation/cosmos-sdk/releases/tag/v0.45.9-wormhole-2) tag. This tag has [commits](https://github.com/wormhole-foundation/cosmos-sdk/commits/v0.45.9-wormhole-2/?since=2022-10-19&until=2022-12-21) made by the wormhole-foundation team that fundamentally change the behavior of the staking module, particularly implementing proof of authority based on the wormchain guardian set. ## Decision @@ -25,4 +25,4 @@ With the changes to the staking module being applied directly in the Wormhole Fo 1. It will maintain the required changes made to the staking module as they were at the time of the v0.45.9-wormhole-2 tag. 2. It will be easier to maintain the changes made to the staking module as they will be directly applied to the forked repository. -3. Maintaining the fork of the Cosmos SDK will be more difficult as the Cosmos SDK repository will continue to evolve. \ No newline at end of file +3. Maintaining the fork of the Cosmos SDK will be more difficult as the Cosmos SDK repository will continue to evolve. From 5f73226d0dd228f0d5d7ca8bd15898522902755e Mon Sep 17 00:00:00 2001 From: pharr117 Date: Fri, 12 Jul 2024 16:12:31 -0400 Subject: [PATCH 12/14] Add ADR for Tendermint to CometBFT migration applied to wormhole-foundation Cosmos SDK fork --- ...ing-to-latest-cosmos-sdk-upstream-v0-45.md | 33 +++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 wormchain/docs/architecture/0004-tendermint-core-will-be-migrated-to-cometbft-by-bumping-to-latest-cosmos-sdk-upstream-v0-45.md diff --git a/wormchain/docs/architecture/0004-tendermint-core-will-be-migrated-to-cometbft-by-bumping-to-latest-cosmos-sdk-upstream-v0-45.md b/wormchain/docs/architecture/0004-tendermint-core-will-be-migrated-to-cometbft-by-bumping-to-latest-cosmos-sdk-upstream-v0-45.md new file mode 100644 index 0000000000..5ecf4e1a7b --- /dev/null +++ b/wormchain/docs/architecture/0004-tendermint-core-will-be-migrated-to-cometbft-by-bumping-to-latest-cosmos-sdk-upstream-v0-45.md @@ -0,0 +1,33 @@ +# 4. Tendermint Core Will be Migrated to CometBFT by Bumping to Latest Cosmos SDK Upstream v0.45 + +Date: 2024-07-12 + +## Status + +Accepted + +## Context + +The Wormhole Cosmos SDK was forked at [v0.45.9](https://github.com/cosmos/cosmos-sdk/releases/tag/v0.45.9) of the Cosmos SDK releases. This can be seen by looking at their [in-use tag's](https://github.com/wormhole-foundation/cosmos-sdk/commits/v0.45.9-wormhole-2/) last commit from the upstream [here](https://github.com/wormhole-foundation/cosmos-sdk/commit/2582f0aab7b2cbf66ade066fe570a4622cf0b098), which shares the commit history and SHA of the v0.45.9 release. + +This version of the Cosmos SDK was released before the fork of Tendermint Core and migration provided by the Cosmos SDK core team in the [Comet BFT](https://github.com/cometbft/cometbft) project, the motivation of which was announced [here](https://informal.systems/blog/cosmos-meet-cometbft). + +To facilitate a more modern usage of the Cosmos SDK, projects should move away from Tendermint Core to CometBFT, as it is more up-to-date, maintained and provides security and bug fixes. + +The Cosmos SDK team slowly rolled out migrations from Tendermint Core to CometBFT in the Comsos SDK repo, and this migration was implemented in the v0.45 line in release [v0.45.15](https://github.com/cosmos/cosmos-sdk/releases/tag/v0.45.15). + +## Decision + +The migration to Tendermint Core will take place by: + +1. Pulling in the upstream latest version in the v0.45 line, which is [v0.45.16](https://github.com/cosmos/cosmos-sdk/releases/tag/v0.45.16) (one version after the v0.45.15 migration release) +2. Replaying the [commits](https://github.com/wormhole-foundation/cosmos-sdk/commits/v0.45.9-wormhole-2/?since=2022-10-19&until=2022-12-21) implemented by the Wormhole developers on top of this tag +3. Release a new tag that includes the changes from the v0.45.16 tag and the changes made on top of it from the v0.45.9-wormhole-2 tag. +4. Reference this new version in the wormchain go.mod file. + +## Consequences + +This change will have the following consequences: + +1. It pulls in the latest bug fixes and security updates in the v0.45 line while work on moving to v0.47 continues (see ADR 3 for details) +2. It will require extensive testing and review to ensure the changes fro v0.45.9 to v0.45.16 did not break the Wormchain repo's usage of the Cosmos SDK From 7002ccafc4e6e45d1576601bcfbf95a9411e1226 Mon Sep 17 00:00:00 2001 From: pharr117 Date: Fri, 12 Jul 2024 16:35:33 -0400 Subject: [PATCH 13/14] Typo --- ...o-cometbft-by-bumping-to-latest-cosmos-sdk-upstream-v0-45.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/wormchain/docs/architecture/0004-tendermint-core-will-be-migrated-to-cometbft-by-bumping-to-latest-cosmos-sdk-upstream-v0-45.md b/wormchain/docs/architecture/0004-tendermint-core-will-be-migrated-to-cometbft-by-bumping-to-latest-cosmos-sdk-upstream-v0-45.md index 5ecf4e1a7b..7f7f432665 100644 --- a/wormchain/docs/architecture/0004-tendermint-core-will-be-migrated-to-cometbft-by-bumping-to-latest-cosmos-sdk-upstream-v0-45.md +++ b/wormchain/docs/architecture/0004-tendermint-core-will-be-migrated-to-cometbft-by-bumping-to-latest-cosmos-sdk-upstream-v0-45.md @@ -30,4 +30,4 @@ The migration to Tendermint Core will take place by: This change will have the following consequences: 1. It pulls in the latest bug fixes and security updates in the v0.45 line while work on moving to v0.47 continues (see ADR 3 for details) -2. It will require extensive testing and review to ensure the changes fro v0.45.9 to v0.45.16 did not break the Wormchain repo's usage of the Cosmos SDK +2. It will require extensive testing and review to ensure the changes from v0.45.9 to v0.45.16 did not break the Wormchain repo's usage of the Cosmos SDK From 44c5aa401e7b175b29a7ba372f849d2423c9f5e4 Mon Sep 17 00:00:00 2001 From: Kaku <105181329+kakucodes@users.noreply.github.com> Date: Wed, 11 Sep 2024 15:08:07 -0500 Subject: [PATCH 14/14] cosmwasm: add support for json schemas for all contracts Fix incorrectly merged db_test.go wormchain: removed adrs that shouldn't go to main in this pr --- cosmwasm/Cargo.lock | 4 + cosmwasm/contracts/cw20-wrapped/Cargo.toml | 1 + .../src/examples/cw20_wrapped_schema.rs | 10 + cosmwasm/contracts/cw20-wrapped/src/msg.rs | 32 +- .../src/examples/ibc_translator_schema.rs | 10 + .../mock-bridge-integration/Cargo.toml | 1 + .../mock-bridge-integration/src/msg.rs | 16 +- cosmwasm/contracts/token-bridge/Cargo.toml | 1 + cosmwasm/contracts/token-bridge/src/msg.rs | 43 +- .../examples/wormchain_ibc_receiver_schema.rs | 11 + .../src/examples/wormhole_ibc_schema.rs | 11 + cosmwasm/contracts/wormhole/Cargo.toml | 1 + .../wormhole/src/examples/wormhole_schema.rs | 10 + cosmwasm/contracts/wormhole/src/msg.rs | 33 +- node/pkg/db/db_test.go | 368 +++++++++++++----- wormchain/docs/.adr-dir | 1 - ...0001-ADRs-are-canonical-source-of-truth.md | 32 -- ...ll-be-upgraded-to-v1-5-2-and-not-v2-x-x.md | 22 -- ...de-will-be-implemented-in-wormhole-fork.md | 28 -- ...ing-to-latest-cosmos-sdk-upstream-v0-45.md | 33 -- 20 files changed, 383 insertions(+), 285 deletions(-) create mode 100644 cosmwasm/contracts/cw20-wrapped/src/examples/cw20_wrapped_schema.rs create mode 100644 cosmwasm/contracts/ibc-translator/src/examples/ibc_translator_schema.rs create mode 100644 cosmwasm/contracts/wormchain-ibc-receiver/src/examples/wormchain_ibc_receiver_schema.rs create mode 100644 cosmwasm/contracts/wormhole-ibc/src/examples/wormhole_ibc_schema.rs create mode 100644 cosmwasm/contracts/wormhole/src/examples/wormhole_schema.rs delete mode 100644 wormchain/docs/.adr-dir delete mode 100644 wormchain/docs/architecture/0001-ADRs-are-canonical-source-of-truth.md delete mode 100644 wormchain/docs/architecture/0002-wasmvm-will-be-upgraded-to-v1-5-2-and-not-v2-x-x.md delete mode 100644 wormchain/docs/architecture/0003-cosmos-sdk-v0-47-upgrade-will-be-implemented-in-wormhole-fork.md delete mode 100644 wormchain/docs/architecture/0004-tendermint-core-will-be-migrated-to-cometbft-by-bumping-to-latest-cosmos-sdk-upstream-v0-45.md diff --git a/cosmwasm/Cargo.lock b/cosmwasm/Cargo.lock index 2c3fc20235..ecb0a9adae 100644 --- a/cosmwasm/Cargo.lock +++ b/cosmwasm/Cargo.lock @@ -611,6 +611,7 @@ dependencies = [ name = "cw20-wrapped-2" version = "0.1.0" dependencies = [ + "cosmwasm-schema", "cosmwasm-std", "cosmwasm-storage", "cw2 0.13.4", @@ -1244,6 +1245,7 @@ dependencies = [ name = "mock-bridge-integration-2" version = "0.1.0" dependencies = [ + "cosmwasm-schema", "cosmwasm-std", "cosmwasm-storage", "cosmwasm-vm", @@ -1976,6 +1978,7 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" name = "token-bridge-cosmwasm" version = "0.1.0" dependencies = [ + "cosmwasm-schema", "cosmwasm-std", "cosmwasm-storage", "cw20", @@ -2624,6 +2627,7 @@ dependencies = [ name = "wormhole-cosmwasm" version = "0.1.0" dependencies = [ + "cosmwasm-schema", "cosmwasm-std", "cosmwasm-storage", "generic-array", diff --git a/cosmwasm/contracts/cw20-wrapped/Cargo.toml b/cosmwasm/contracts/cw20-wrapped/Cargo.toml index e7dcf4a51d..13ec0b6321 100644 --- a/cosmwasm/contracts/cw20-wrapped/Cargo.toml +++ b/cosmwasm/contracts/cw20-wrapped/Cargo.toml @@ -16,6 +16,7 @@ library = [] [dependencies] cosmwasm-std = { version = "1.0.0" } cosmwasm-storage = { version = "1.0.0" } +cosmwasm-schema = { version = "1.0.0" } schemars = "0.8.8" serde = { version = "1.0.137", default-features = false, features = ["derive"] } cw2 = { version = "0.13.2" } diff --git a/cosmwasm/contracts/cw20-wrapped/src/examples/cw20_wrapped_schema.rs b/cosmwasm/contracts/cw20-wrapped/src/examples/cw20_wrapped_schema.rs new file mode 100644 index 0000000000..799b182c87 --- /dev/null +++ b/cosmwasm/contracts/cw20-wrapped/src/examples/cw20_wrapped_schema.rs @@ -0,0 +1,10 @@ +use cosmwasm_schema::write_api; +use cw20_wrapped_2::msg::{ExecuteMsg, InstantiateMsg, QueryMsg}; + +fn main() { + write_api! { + instantiate: InstantiateMsg, + execute: ExecuteMsg, + query: QueryMsg, + } +} \ No newline at end of file diff --git a/cosmwasm/contracts/cw20-wrapped/src/msg.rs b/cosmwasm/contracts/cw20-wrapped/src/msg.rs index 2c82c4e4c9..c68abcd017 100644 --- a/cosmwasm/contracts/cw20-wrapped/src/msg.rs +++ b/cosmwasm/contracts/cw20-wrapped/src/msg.rs @@ -1,13 +1,12 @@ #![allow(clippy::field_reassign_with_default)] -use schemars::JsonSchema; -use serde::{Deserialize, Serialize}; +use cosmwasm_schema::{cw_serde, QueryResponses}; use cosmwasm_std::{Addr, Binary, Uint128}; -use cw20::Expiration; +use cw20::{AllowanceResponse, BalanceResponse, Expiration, TokenInfoResponse}; type HumanAddr = String; -#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, Eq, JsonSchema)] +#[cw_serde] pub struct InstantiateMsg { pub name: String, pub symbol: String, @@ -18,24 +17,22 @@ pub struct InstantiateMsg { pub init_hook: Option, } -#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, Eq, JsonSchema)] +#[cw_serde] pub struct InitHook { pub msg: Binary, pub contract_addr: HumanAddr, } -#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, Eq, JsonSchema)] +#[cw_serde] pub struct InitMint { pub recipient: HumanAddr, pub amount: Uint128, } -#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, Eq, JsonSchema)] -#[serde(rename_all = "snake_case")] +#[cw_serde] pub struct MigrateMsg {} -#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)] -#[serde(rename_all = "snake_case")] +#[cw_serde] pub enum ExecuteMsg { /// Implements CW20. Transfer is a base message to move tokens to another account without triggering actions Transfer { @@ -94,17 +91,24 @@ pub enum ExecuteMsg { UpdateMetadata { name: String, symbol: String }, } -#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, Eq, JsonSchema)] -#[serde(rename_all = "snake_case")] +#[cw_serde] +#[derive(QueryResponses)] pub enum QueryMsg { - // Generic information about the wrapped asset + #[returns(WrappedAssetInfoResponse)] + /// Generic information about the wrapped asset WrappedAssetInfo {}, + + #[returns(BalanceResponse)] /// Implements CW20. Returns the current balance of the given address, 0 if unset. Balance { address: HumanAddr, }, + + #[returns(TokenInfoResponse)] /// Implements CW20. Returns metadata on the contract - name, decimals, supply, etc. TokenInfo {}, + + #[returns(AllowanceResponse)] /// Implements CW20 "allowance" extension. /// Returns how much spender can use from owner account, 0 if unset. Allowance { @@ -113,7 +117,7 @@ pub enum QueryMsg { }, } -#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, Eq, JsonSchema)] +#[cw_serde] pub struct WrappedAssetInfoResponse { pub asset_chain: u16, // Asset chain id pub asset_address: Binary, // Asset smart contract address in the original chain diff --git a/cosmwasm/contracts/ibc-translator/src/examples/ibc_translator_schema.rs b/cosmwasm/contracts/ibc-translator/src/examples/ibc_translator_schema.rs new file mode 100644 index 0000000000..ea88b77f6c --- /dev/null +++ b/cosmwasm/contracts/ibc-translator/src/examples/ibc_translator_schema.rs @@ -0,0 +1,10 @@ +use cosmwasm_schema::write_api; +use ibc_translator::msg::{ExecuteMsg, InstantiateMsg, QueryMsg}; + +fn main() { + write_api! { + instantiate: InstantiateMsg, + execute: ExecuteMsg, + query: QueryMsg, + } +} \ No newline at end of file diff --git a/cosmwasm/contracts/mock-bridge-integration/Cargo.toml b/cosmwasm/contracts/mock-bridge-integration/Cargo.toml index 1c8226c77e..d5ec88fcd3 100644 --- a/cosmwasm/contracts/mock-bridge-integration/Cargo.toml +++ b/cosmwasm/contracts/mock-bridge-integration/Cargo.toml @@ -15,6 +15,7 @@ library = [] [dependencies] cosmwasm-std = { version = "1.0.0" } cosmwasm-storage = { version = "1.0.0" } +cosmwasm-schema = { version = "1.0.0" } schemars = "0.8.8" serde = { version = "1.0.137", default-features = false, features = ["derive"] } diff --git a/cosmwasm/contracts/mock-bridge-integration/src/msg.rs b/cosmwasm/contracts/mock-bridge-integration/src/msg.rs index 8970a8f1fd..b86acc6794 100644 --- a/cosmwasm/contracts/mock-bridge-integration/src/msg.rs +++ b/cosmwasm/contracts/mock-bridge-integration/src/msg.rs @@ -1,26 +1,24 @@ +use cosmwasm_schema::{cw_serde, QueryResponses}; use cosmwasm_std::Binary; -use schemars::JsonSchema; -use serde::{Deserialize, Serialize}; type HumanAddr = String; -#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, Eq, JsonSchema)] +#[cw_serde] pub struct InstantiateMsg { pub token_bridge_contract: HumanAddr, } -#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, Eq, JsonSchema)] -#[serde(rename_all = "snake_case")] +#[cw_serde] pub enum ExecuteMsg { CompleteTransferWithPayload { data: Binary }, } -#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, Eq, JsonSchema)] -#[serde(rename_all = "snake_case")] +#[cw_serde] pub struct MigrateMsg {} -#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, Eq, JsonSchema)] -#[serde(rename_all = "snake_case")] +#[cw_serde] +#[derive(QueryResponses)] pub enum QueryMsg { + #[returns(())] WrappedRegistry { chain: u16, address: Binary }, } diff --git a/cosmwasm/contracts/token-bridge/Cargo.toml b/cosmwasm/contracts/token-bridge/Cargo.toml index 67c72f44d8..05b9275ea6 100644 --- a/cosmwasm/contracts/token-bridge/Cargo.toml +++ b/cosmwasm/contracts/token-bridge/Cargo.toml @@ -21,6 +21,7 @@ default = ["full"] [dependencies] cosmwasm-std = { version = "1.0.0" } cosmwasm-storage = { version = "1.0.0" } +cosmwasm-schema = { version = "1.0.0" } schemars = "0.8.8" serde = { version = "1.0.137", default-features = false, features = ["derive"] } cw20 = "0.13.2" diff --git a/cosmwasm/contracts/token-bridge/src/msg.rs b/cosmwasm/contracts/token-bridge/src/msg.rs index e0a78bdf9a..1bc28b5e5a 100644 --- a/cosmwasm/contracts/token-bridge/src/msg.rs +++ b/cosmwasm/contracts/token-bridge/src/msg.rs @@ -1,6 +1,5 @@ +use cosmwasm_schema::{cw_serde, QueryResponses}; use cosmwasm_std::{Binary, Uint128}; -use schemars::JsonSchema; -use serde::{Deserialize, Serialize}; use crate::token_address::{ExternalTokenId, TokenId}; @@ -8,7 +7,7 @@ type HumanAddr = String; /// The instantiation parameters of the token bridge contract. See /// [`crate::state::ConfigInfo`] for more details on what these fields mean. -#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, Eq, JsonSchema)] +#[cw_serde] pub struct InstantiateMsg { pub gov_chain: u16, pub gov_address: Binary, @@ -22,8 +21,7 @@ pub struct InstantiateMsg { pub native_decimals: u8, } -#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)] -#[serde(rename_all = "snake_case")] +#[cw_serde] pub enum ExecuteMsg { RegisterAssetHook { chain: u16, @@ -67,28 +65,30 @@ pub enum ExecuteMsg { }, } -#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, Eq, JsonSchema)] -#[serde(rename_all = "snake_case")] +#[cw_serde] pub struct MigrateMsg {} -#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, Eq, JsonSchema)] -#[serde(rename_all = "snake_case")] +#[cw_serde] +#[derive(QueryResponses)] pub enum QueryMsg { + #[returns(WrappedRegistryResponse)] WrappedRegistry { chain: u16, address: Binary }, + #[returns(TransferInfoResponse)] TransferInfo { vaa: Binary }, + #[returns(ExternalIdResponse)] ExternalId { external_id: Binary }, + #[returns(IsVaaRedeemedResponse)] IsVaaRedeemed { vaa: Binary }, + #[returns(ChainRegistrationResponse)] ChainRegistration { chain: u16 }, } -#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, Eq, JsonSchema)] -#[serde(rename_all = "snake_case")] +#[cw_serde] pub struct WrappedRegistryResponse { pub address: HumanAddr, } -#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, Eq, JsonSchema)] -#[serde(rename_all = "snake_case")] +#[cw_serde] pub struct TransferInfoResponse { pub amount: Uint128, pub token_address: [u8; 32], @@ -99,26 +99,22 @@ pub struct TransferInfoResponse { pub payload: Vec, } -#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, Eq, JsonSchema)] -#[serde(rename_all = "snake_case")] +#[cw_serde] pub struct ExternalIdResponse { pub token_id: TokenId, } -#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, Eq, JsonSchema)] -#[serde(rename_all = "snake_case")] +#[cw_serde] pub struct IsVaaRedeemedResponse { pub is_redeemed: bool, } -#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, Eq, JsonSchema)] -#[serde(rename_all = "snake_case")] +#[cw_serde] pub struct ChainRegistrationResponse { pub address: Binary, } -#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, Eq, JsonSchema)] -#[serde(rename_all = "snake_case")] +#[cw_serde] pub struct CompleteTransferResponse { // All addresses are bech32-encoded strings. @@ -132,7 +128,7 @@ pub struct CompleteTransferResponse { pub fee: Uint128, } -#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)] +#[cw_serde] pub struct Asset { pub info: AssetInfo, pub amount: Uint128, @@ -140,8 +136,7 @@ pub struct Asset { /// AssetInfo contract_addr is usually passed from the cw20 hook /// so we can trust the contract_addr is properly validated. -#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)] -#[serde(rename_all = "snake_case")] +#[cw_serde] pub enum AssetInfo { Token { contract_addr: String }, NativeToken { denom: String }, diff --git a/cosmwasm/contracts/wormchain-ibc-receiver/src/examples/wormchain_ibc_receiver_schema.rs b/cosmwasm/contracts/wormchain-ibc-receiver/src/examples/wormchain_ibc_receiver_schema.rs new file mode 100644 index 0000000000..5547fe0c24 --- /dev/null +++ b/cosmwasm/contracts/wormchain-ibc-receiver/src/examples/wormchain_ibc_receiver_schema.rs @@ -0,0 +1,11 @@ +use cosmwasm_schema::write_api; +use cosmwasm_std::Empty; +use wormchain_ibc_receiver::msg::{ExecuteMsg, QueryMsg}; + +fn main() { + write_api! { + instantiate: Empty, + execute: ExecuteMsg, + query: QueryMsg, + } +} \ No newline at end of file diff --git a/cosmwasm/contracts/wormhole-ibc/src/examples/wormhole_ibc_schema.rs b/cosmwasm/contracts/wormhole-ibc/src/examples/wormhole_ibc_schema.rs new file mode 100644 index 0000000000..07965c550b --- /dev/null +++ b/cosmwasm/contracts/wormhole-ibc/src/examples/wormhole_ibc_schema.rs @@ -0,0 +1,11 @@ +use cosmwasm_schema::write_api; +use cw_wormhole::msg::{InstantiateMsg, QueryMsg}; +use wormhole_ibc::msg::ExecuteMsg; + +fn main() { + write_api! { + instantiate: InstantiateMsg, + execute: ExecuteMsg, + query: QueryMsg, + } +} \ No newline at end of file diff --git a/cosmwasm/contracts/wormhole/Cargo.toml b/cosmwasm/contracts/wormhole/Cargo.toml index 5c1dc2405a..2d5fdd9b96 100644 --- a/cosmwasm/contracts/wormhole/Cargo.toml +++ b/cosmwasm/contracts/wormhole/Cargo.toml @@ -21,6 +21,7 @@ default = ["full"] [dependencies] cosmwasm-std = { version = "1.0.0" } cosmwasm-storage = { version = "1.0.0" } +cosmwasm-schema = { version = "1.0.0" } schemars = "0.8.8" serde = { version = "1.0.137", default-features = false, features = ["derive"] } thiserror = { version = "1.0.31" } diff --git a/cosmwasm/contracts/wormhole/src/examples/wormhole_schema.rs b/cosmwasm/contracts/wormhole/src/examples/wormhole_schema.rs new file mode 100644 index 0000000000..c3a87e0017 --- /dev/null +++ b/cosmwasm/contracts/wormhole/src/examples/wormhole_schema.rs @@ -0,0 +1,10 @@ +use cosmwasm_schema::write_api; +use cw_wormhole::msg::{ExecuteMsg, InstantiateMsg, QueryMsg}; + +fn main() { + write_api! { + instantiate: InstantiateMsg, + execute: ExecuteMsg, + query: QueryMsg, + } +} \ No newline at end of file diff --git a/cosmwasm/contracts/wormhole/src/msg.rs b/cosmwasm/contracts/wormhole/src/msg.rs index 8f9941cd9c..e0f770eaf0 100644 --- a/cosmwasm/contracts/wormhole/src/msg.rs +++ b/cosmwasm/contracts/wormhole/src/msg.rs @@ -1,14 +1,13 @@ +use cosmwasm_schema::{ cw_serde, QueryResponses}; use cosmwasm_std::{Binary, Coin}; -use schemars::JsonSchema; -use serde::{Deserialize, Serialize}; -use crate::state::{GuardianAddress, GuardianSetInfo}; +use crate::state::{GuardianAddress, GuardianSetInfo, ParsedVAA}; type HumanAddr = String; /// The instantiation parameters of the core bridge contract. See /// [`crate::state::ConfigInfo`] for more details on what these fields mean. -#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, Eq, JsonSchema)] +#[cw_serde] pub struct InstantiateMsg { pub gov_chain: u16, pub gov_address: Binary, @@ -21,47 +20,45 @@ pub struct InstantiateMsg { pub fee_denom: String, } -#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, Eq, JsonSchema)] -#[serde(rename_all = "snake_case")] +#[cw_serde] pub enum ExecuteMsg { SubmitVAA { vaa: Binary }, PostMessage { message: Binary, nonce: u32 }, } -#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, Eq, JsonSchema)] -#[serde(rename_all = "snake_case")] +#[cw_serde] pub struct MigrateMsg {} -#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, Eq, JsonSchema)] -#[serde(rename_all = "snake_case")] +#[cw_serde] +#[derive(QueryResponses)] pub enum QueryMsg { + #[returns(GuardianSetInfoResponse)] GuardianSetInfo {}, + #[returns(ParsedVAA)] VerifyVAA { vaa: Binary, block_time: u64 }, + #[returns(GetStateResponse)] GetState {}, + #[returns(GetAddressHexResponse)] QueryAddressHex { address: HumanAddr }, } -#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, Eq, JsonSchema)] -#[serde(rename_all = "snake_case")] +#[cw_serde] pub struct GuardianSetInfoResponse { pub guardian_set_index: u32, // Current guardian set index pub addresses: Vec, // List of querdian addresses } -#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, Eq, JsonSchema)] -#[serde(rename_all = "snake_case")] +#[cw_serde] pub struct WrappedRegistryResponse { pub address: HumanAddr, } -#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)] -#[serde(rename_all = "snake_case")] +#[cw_serde] pub struct GetStateResponse { pub fee: Coin, } -#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, Eq, JsonSchema)] -#[serde(rename_all = "snake_case")] +#[cw_serde] pub struct GetAddressHexResponse { pub hex: String, } diff --git a/node/pkg/db/db_test.go b/node/pkg/db/db_test.go index e58f7dfc04..543d1b6cd6 100644 --- a/node/pkg/db/db_test.go +++ b/node/pkg/db/db_test.go @@ -1,130 +1,290 @@ -package processor +package db import ( - "encoding/hex" - "time" - - "github.com/mr-tron/base58" - - "github.com/prometheus/client_golang/prometheus" - "github.com/prometheus/client_golang/prometheus/promauto" + "bytes" + "crypto/ecdsa" + "crypto/rand" + "fmt" + math_rand "math/rand" + "os" + "runtime" + "sync" + "sync/atomic" - ethCommon "github.com/ethereum/go-ethereum/common" + "github.com/dgraph-io/badger/v3" "github.com/ethereum/go-ethereum/crypto" + "github.com/wormhole-foundation/wormhole/sdk/vaa" "go.uber.org/zap" - "go.uber.org/zap/zapcore" - "github.com/certusone/wormhole/node/pkg/common" - "github.com/wormhole-foundation/wormhole/sdk/vaa" + "testing" + "time" + + "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" ) -var ( - // SECURITY: source_chain/target_chain are untrusted uint8 values. An attacker could cause a maximum of 255**2 label - // pairs to be created, which is acceptable. +func getVAA() vaa.VAA { + return getVAAWithSeqNum(1) +} - messagesObservedTotal = promauto.NewCounterVec( - prometheus.CounterOpts{ - Name: "wormhole_message_observations_total", - Help: "Total number of messages observed", - }, - []string{"emitter_chain"}) -) +func getVAAWithSeqNum(seqNum uint64) vaa.VAA { + var payload = []byte{97, 97, 97, 97, 97, 97} + var governanceEmitter = vaa.Address{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4} + + return vaa.VAA{ + Version: uint8(1), + GuardianSetIndex: uint32(1), + Signatures: nil, + Timestamp: time.Unix(0, 0), + Nonce: uint32(1), + Sequence: seqNum, + ConsistencyLevel: uint8(32), + EmitterChain: vaa.ChainIDSolana, + EmitterAddress: governanceEmitter, + Payload: payload, + } +} + +// Testing the expected default behavior of a CreateGovernanceVAA +func TestVaaIDFromString(t *testing.T) { + vaaIdString := "1/0000000000000000000000000000000000000000000000000000000000000004/1" + vaaID, _ := VaaIDFromString(vaaIdString) + expectAddr := vaa.Address{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4} + + assert.Equal(t, vaa.ChainIDSolana, vaaID.EmitterChain) + assert.Equal(t, expectAddr, vaaID.EmitterAddress) + assert.Equal(t, uint64(1), vaaID.Sequence) +} + +func TestVaaIDFromVAA(t *testing.T) { + testVaa := getVAA() + vaaID := VaaIDFromVAA(&testVaa) + expectAddr := vaa.Address{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4} + + assert.Equal(t, vaa.ChainIDSolana, vaaID.EmitterChain) + assert.Equal(t, expectAddr, vaaID.EmitterAddress) + assert.Equal(t, uint64(1), vaaID.Sequence) +} + +func TestBytes(t *testing.T) { + vaaIdString := "1/0000000000000000000000000000000000000000000000000000000000000004/1" + vaaID, _ := VaaIDFromString(vaaIdString) + expected := []byte{0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x2f, 0x31, 0x2f, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x34, 0x2f, 0x31} + + assert.Equal(t, expected, vaaID.Bytes()) +} + +func TestEmitterPrefixBytesWithChainIDAndAddress(t *testing.T) { + vaaIdString := "1/0000000000000000000000000000000000000000000000000000000000000004/1" + vaaID, _ := VaaIDFromString(vaaIdString) + expected := []byte{0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x2f, 0x31, 0x2f, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x34} + + assert.Equal(t, expected, vaaID.EmitterPrefixBytes()) +} + +func TestEmitterPrefixBytesWithOnlyChainID(t *testing.T) { + vaaID := VAAID{EmitterChain: vaa.ChainID(26)} + assert.Equal(t, []byte("signed/26"), vaaID.EmitterPrefixBytes()) +} + +func TestStoreSignedVAAUnsigned(t *testing.T) { + dbPath := t.TempDir() + db := OpenDb(zap.NewNop(), &dbPath) + defer db.Close() + defer os.Remove(dbPath) + + testVaa := getVAA() + + // Should panic because the VAA is not signed + assert.Panics(t, func() { db.StoreSignedVAA(&testVaa) }, "The code did not panic") //nolint:errcheck +} + +func TestStoreSignedVAASigned(t *testing.T) { + dbPath := t.TempDir() + db := OpenDb(zap.NewNop(), &dbPath) + defer db.Close() + defer os.Remove(dbPath) + + testVaa := getVAA() + + privKey, _ := ecdsa.GenerateKey(crypto.S256(), rand.Reader) + testVaa.AddSignature(privKey, 0) + + err2 := db.StoreSignedVAA(&testVaa) + assert.NoError(t, err2) +} + +func TestStoreSignedVAABatch(t *testing.T) { + dbPath := t.TempDir() + db := OpenDb(zap.NewNop(), &dbPath) + defer db.Close() + defer os.Remove(dbPath) -// handleMessage processes a message received from a chain and instantiates our deterministic copy of the VAA. An -// event may be received multiple times and must be handled in an idempotent fashion. -func (p *Processor) handleMessage(k *common.MessagePublication) { - if p.gs == nil { - p.logger.Warn("dropping observation since we haven't initialized our guardian set yet", - zap.String("message_id", k.MessageIDString()), - zap.Uint32("nonce", k.Nonce), - zap.Stringer("txhash", k.TxHash), - zap.Time("timestamp", k.Timestamp), - ) - return + privKey, err := ecdsa.GenerateKey(crypto.S256(), rand.Reader) + require.NoError(t, err) + + require.Less(t, int64(0), db.db.MaxBatchCount()) // In testing this was 104857. + require.Less(t, int64(0), db.db.MaxBatchSize()) // In testing this was 10066329. + + // Make sure we exceed the max batch size. + numVAAs := uint64(db.db.MaxBatchCount() + 1) + + // Build the VAA batch. + vaaBatch := make([]*vaa.VAA, 0, numVAAs) + for seqNum := uint64(0); seqNum < numVAAs; seqNum++ { + v := getVAAWithSeqNum(seqNum) + v.AddSignature(privKey, 0) + vaaBatch = append(vaaBatch, &v) } - messagesObservedTotal.WithLabelValues(k.EmitterChain.String()).Inc() - - // All nodes will create the exact same VAA and sign its digest. - // Consensus is established on this digest. - - v := &VAA{ - VAA: vaa.VAA{ - Version: vaa.SupportedVAAVersion, - GuardianSetIndex: p.gs.Index, - Signatures: nil, - Timestamp: k.Timestamp, - Nonce: k.Nonce, - EmitterChain: k.EmitterChain, - EmitterAddress: k.EmitterAddress, - Payload: k.Payload, - Sequence: k.Sequence, - ConsistencyLevel: k.ConsistencyLevel, - }, - Unreliable: k.Unreliable, - Reobservation: k.IsReobservation, + // Store the batch in the database. + err = db.StoreSignedVAABatch(vaaBatch) + require.NoError(t, err) + + // Verify all the VAAs are in the database. + for _, v := range vaaBatch { + storedBytes, err := db.GetSignedVAABytes(*VaaIDFromVAA(v)) + require.NoError(t, err) + + origBytes, err := v.Marshal() + require.NoError(t, err) + + assert.True(t, bytes.Equal(origBytes, storedBytes)) + } + + // Verify that updates work as well by tweaking the VAAs and rewriting them. + for _, v := range vaaBatch { + v.Nonce += 1 } - // Generate digest of the unsigned VAA. - digest := v.SigningDigest() - hash := hex.EncodeToString(digest.Bytes()) + // Store the updated batch in the database. + err = db.StoreSignedVAABatch(vaaBatch) + require.NoError(t, err) - // Sign the digest using our node's guardian key. - signature, err := crypto.Sign(digest.Bytes(), p.gk) - if err != nil { - panic(err) + // Verify all the updated VAAs are in the database. + for _, v := range vaaBatch { + storedBytes, err := db.GetSignedVAABytes(*VaaIDFromVAA(v)) + require.NoError(t, err) + + origBytes, err := v.Marshal() + require.NoError(t, err) + + assert.True(t, bytes.Equal(origBytes, storedBytes)) + } +} + +func TestGetSignedVAABytes(t *testing.T) { + dbPath := t.TempDir() + db := OpenDb(zap.NewNop(), &dbPath) + defer db.Close() + defer os.Remove(dbPath) + + testVaa := getVAA() + + vaaID := VaaIDFromVAA(&testVaa) + + privKey, _ := ecdsa.GenerateKey(crypto.S256(), rand.Reader) + testVaa.AddSignature(privKey, 0) + + // Store full VAA + err2 := db.StoreSignedVAA(&testVaa) + assert.NoError(t, err2) + + // Retrieve it using vaaID + vaaBytes, err2 := db.GetSignedVAABytes(*vaaID) + assert.NoError(t, err2) + + testVaaBytes, err3 := testVaa.Marshal() + assert.NoError(t, err3) + + assert.Equal(t, testVaaBytes, vaaBytes) +} + +func TestFindEmitterSequenceGap(t *testing.T) { + dbPath := t.TempDir() + db := OpenDb(zap.NewNop(), &dbPath) + defer db.Close() + defer os.Remove(dbPath) + + testVaa := getVAA() + + vaaID := VaaIDFromVAA(&testVaa) + + privKey, _ := ecdsa.GenerateKey(crypto.S256(), rand.Reader) + testVaa.AddSignature(privKey, 0) + + // Store full VAA + err2 := db.StoreSignedVAA(&testVaa) + assert.NoError(t, err2) + + resp, firstSeq, lastSeq, err := db.FindEmitterSequenceGap(*vaaID) + + assert.Equal(t, []uint64{0x0}, resp) + assert.Equal(t, uint64(0x0), firstSeq) + assert.Equal(t, uint64(0x1), lastSeq) + assert.NoError(t, err) +} + +// BenchmarkVaaLookup benchmarks db.GetSignedVAABytes +// You need to set the environment variable WH_DBPATH to a path with a populated BadgerDB. +// You may want to play with the CONCURRENCY parameter. +func BenchmarkVaaLookup(b *testing.B) { + CONCURRENCY := runtime.NumCPU() + dbPath := os.Getenv("WH_DBPATH") + require.NotEqual(b, dbPath, "") + + // open DB + optionsDB := badger.DefaultOptions(dbPath) + optionsDB.Logger = nil + badgerDb, err := badger.Open(optionsDB) + require.NoError(b, err) + db := &Database{ + db: badgerDb, } - shouldPublishImmediately := p.shouldPublishImmediately(&v.VAA) - - if p.logger.Core().Enabled(zapcore.DebugLevel) { - p.logger.Debug("observed and signed confirmed message publication", - zap.String("message_id", k.MessageIDString()), - zap.Stringer("txhash", k.TxHash), - zap.String("txhash_b58", base58.Encode(k.TxHash.Bytes())), - zap.String("hash", hash), - zap.Uint32("nonce", k.Nonce), - zap.Time("timestamp", k.Timestamp), - zap.Uint8("consistency_level", k.ConsistencyLevel), - zap.String("signature", hex.EncodeToString(signature)), - zap.Bool("shouldPublishImmediately", shouldPublishImmediately), - zap.Bool("isReobservation", k.IsReobservation), - ) + if err != nil { + b.Error("failed to open database") } + defer db.Close() + + vaaIds := make(chan *VAAID, b.N) - // Broadcast the signature. - ourObs, msg := p.broadcastSignature(v.MessageID(), k.TxHash.Bytes(), digest, signature, shouldPublishImmediately) + for i := 0; i < b.N; i++ { + randId := math_rand.Intn(250000) //nolint + randId = 250000 - (i / 18) + vaaId, err := VaaIDFromString(fmt.Sprintf("4/000000000000000000000000b6f6d86a8f9879a9c87f643768d9efc38c1da6e7/%d", randId)) + assert.NoError(b, err) + vaaIds <- vaaId + } - // Indicate that we observed this one. - observationsReceivedTotal.Inc() - observationsReceivedByGuardianAddressTotal.WithLabelValues(p.ourAddr.Hex()).Inc() + b.ResetTimer() - // Get / create our state entry. - s := p.state.signatures[hash] - if s == nil { - s = &state{ - firstObserved: time.Now(), - nextRetry: time.Now().Add(nextRetryDuration(0)), - signatures: map[ethCommon.Address][]byte{}, - source: "loopback", - } + // actual timed code + var errCtr atomic.Int32 + var wg sync.WaitGroup - p.state.signatures[hash] = s + for i := 0; i < CONCURRENCY; i++ { + wg.Add(1) + go func() { + for { + select { + case vaaId := <-vaaIds: + _, err = db.GetSignedVAABytes(*vaaId) + if err != nil { + fmt.Printf("error retrieving %s/%s/%d: %s\n", vaaId.EmitterChain, vaaId.EmitterAddress, vaaId.Sequence, err) + errCtr.Add(1) + } + default: + wg.Done() + return + } + } + }() } - // Update our state. - s.ourObservation = v - s.txHash = k.TxHash.Bytes() - s.source = v.GetEmitterChain().String() - s.gs = p.gs // guaranteed to match ourObservation - there's no concurrent access to p.gs - s.signatures[p.ourAddr] = signature - s.ourObs = ourObs - s.ourMsg = msg - - // Fast path for our own signature. - if !s.submitted { - start := time.Now() - p.checkForQuorum(ourObs, s, s.gs, hash) - timeToHandleObservation.Observe(float64(time.Since(start).Microseconds())) + wg.Wait() + + if int(errCtr.Load()) > b.N/3 { + b.Error("More than 1/3 of GetSignedVAABytes failed.") } } diff --git a/wormchain/docs/.adr-dir b/wormchain/docs/.adr-dir deleted file mode 100644 index c65fbdbbea..0000000000 --- a/wormchain/docs/.adr-dir +++ /dev/null @@ -1 +0,0 @@ -architecture diff --git a/wormchain/docs/architecture/0001-ADRs-are-canonical-source-of-truth.md b/wormchain/docs/architecture/0001-ADRs-are-canonical-source-of-truth.md deleted file mode 100644 index 982d2c4154..0000000000 --- a/wormchain/docs/architecture/0001-ADRs-are-canonical-source-of-truth.md +++ /dev/null @@ -1,32 +0,0 @@ -# 1. ADRs will be the Canonical Source of Truth for architecture decisions - -Date: 2024-06-24 - -## Status - -Accepted - -## Context - -- As WH/SL -- We want a place to memorialize decisions -- Because it helps with context / institutional memory / onboarding - -As discussed and agreed to in the Strangelove / Wormhole [project kick-off](https://miro.com/app/board/uXjVK_fZYq0=/?share_link_id=596301298163). - -## Decision - -To memorialize decisions, we'll use Architecture Decision Records, as [described by Michael Nygard](http://thinkrelevance.com/blog/2011/11/15/documenting-architecture-decisions). - -Briefly: ~if~ whenever we make a decision which might reasonably cause a Future Developer (e.g., a new dev, or Six-Months-In-The-Future-Us) to say "Wait—why'd we choose that?", we'll log an ADR to act as a Canonical Source Of Truth, contemporaneously detailing reasoning. - -At times, we'll certainly be wrong. - -We'll almost certainly backtrack certain ideas. - -But—hopefully—we won't bark up the same tree twice. - -## Consequences - -- You might want some tooling. For a lightweight ADR toolset, see Nat Pryce's [adr-tools](https://github.com/npryce/adr-tools), or `brew install adr-tools` if you're the trusting sort. -- We instantiated w/ the default template (Status, Context, Decision, Consequences). If/when we want to update the ADR format, this gh issue has the rundown: https://github.com/npryce/adr-tools/issues/120. diff --git a/wormchain/docs/architecture/0002-wasmvm-will-be-upgraded-to-v1-5-2-and-not-v2-x-x.md b/wormchain/docs/architecture/0002-wasmvm-will-be-upgraded-to-v1-5-2-and-not-v2-x-x.md deleted file mode 100644 index 48a80abd45..0000000000 --- a/wormchain/docs/architecture/0002-wasmvm-will-be-upgraded-to-v1-5-2-and-not-v2-x-x.md +++ /dev/null @@ -1,22 +0,0 @@ -# 2. wasmvm will be upgraded to v1.5.2 and not v2.x.x - -Date: 2024-06-24 - -## Status - -Accepted - -## Context - -wasmvm 1.5.2 has an EOL that will arrive sooner, but v2.x.x is a riskier upgrade path. - -## Decision - -We will upgrade to v1.5.2 and NOT v2.x.x because it was suggested that the risk/reward isn't worth it: too new, -bugs on tokenfactory for chains which deployed it. We will hold off on that for now. - -## Consequences - -Not being on wasmvm v2.x.x will leave wormhole gateway missing out on the "factor of 1000" lower cosmwasm gas costs, -improved submessage ergonomics and ability to query cosmwasm via grpc which are some of the main 2.x benefits. -Reference: https://medium.com/cosmwasm/cosmwasm-2-0-bbb94126ce6f diff --git a/wormchain/docs/architecture/0003-cosmos-sdk-v0-47-upgrade-will-be-implemented-in-wormhole-fork.md b/wormchain/docs/architecture/0003-cosmos-sdk-v0-47-upgrade-will-be-implemented-in-wormhole-fork.md deleted file mode 100644 index f9ad11a592..0000000000 --- a/wormchain/docs/architecture/0003-cosmos-sdk-v0-47-upgrade-will-be-implemented-in-wormhole-fork.md +++ /dev/null @@ -1,28 +0,0 @@ -# 3. Cosmos SDK v0.47 upgrade will be implemented in Wormhole Fork - -Date: 2024-07-10 - -## Status - -Accepted - -## Context - -The Wormhole Foundation has made a copy of the Cosmos SDK repository, which can be found in their Github organization [here](https://github.com/wormhole-foundation/cosmos-sdk). They are referencing this copied repository in the wormchain [go.mod](https://github.com/wormhole-foundation/wormhole/blob/6236a9a6cbd0dc00a940e6654c6f6106d0904ece/wormchain/go.mod#L142) file, referencing the [v0.45.9-wormhole-2](https://github.com/wormhole-foundation/cosmos-sdk/releases/tag/v0.45.9-wormhole-2) tag. This tag has [commits](https://github.com/wormhole-foundation/cosmos-sdk/commits/v0.45.9-wormhole-2/?since=2022-10-19&until=2022-12-21) made by the wormhole-foundation team that fundamentally change the behavior of the staking module, particularly implementing proof of authority based on the wormchain guardian set. - -## Decision - -With the use of a forked Cosmos SDK and fundamental changes to the staking module, the initial Cosmos SDK v0.45 to v0.47 upgrade will be done on their fork in the following manner: - -1. Pull in the [v0.47.12](https://github.com/cosmos/cosmos-sdk/releases/tag/v0.47.12) (latest in the v0.47 series) tag from the Cosmos SDK repository into the -2. Re-implement the changes made in the v0.45.9-wormhole-2 tag into the v0.47.12 tag. -3. Release a new tag that includes the changes from the v0.47.12 tag and the changes made on top of it from the v0.45.9-wormhole-2 tag. -4. Reference this new version in the wormchain go.mod file. - -## Consequences - -With the changes to the staking module being applied directly in the Wormhole Foundation Cosmos SDK fork, this will have the following good and bad consequences: - -1. It will maintain the required changes made to the staking module as they were at the time of the v0.45.9-wormhole-2 tag. -2. It will be easier to maintain the changes made to the staking module as they will be directly applied to the forked repository. -3. Maintaining the fork of the Cosmos SDK will be more difficult as the Cosmos SDK repository will continue to evolve. diff --git a/wormchain/docs/architecture/0004-tendermint-core-will-be-migrated-to-cometbft-by-bumping-to-latest-cosmos-sdk-upstream-v0-45.md b/wormchain/docs/architecture/0004-tendermint-core-will-be-migrated-to-cometbft-by-bumping-to-latest-cosmos-sdk-upstream-v0-45.md deleted file mode 100644 index 7f7f432665..0000000000 --- a/wormchain/docs/architecture/0004-tendermint-core-will-be-migrated-to-cometbft-by-bumping-to-latest-cosmos-sdk-upstream-v0-45.md +++ /dev/null @@ -1,33 +0,0 @@ -# 4. Tendermint Core Will be Migrated to CometBFT by Bumping to Latest Cosmos SDK Upstream v0.45 - -Date: 2024-07-12 - -## Status - -Accepted - -## Context - -The Wormhole Cosmos SDK was forked at [v0.45.9](https://github.com/cosmos/cosmos-sdk/releases/tag/v0.45.9) of the Cosmos SDK releases. This can be seen by looking at their [in-use tag's](https://github.com/wormhole-foundation/cosmos-sdk/commits/v0.45.9-wormhole-2/) last commit from the upstream [here](https://github.com/wormhole-foundation/cosmos-sdk/commit/2582f0aab7b2cbf66ade066fe570a4622cf0b098), which shares the commit history and SHA of the v0.45.9 release. - -This version of the Cosmos SDK was released before the fork of Tendermint Core and migration provided by the Cosmos SDK core team in the [Comet BFT](https://github.com/cometbft/cometbft) project, the motivation of which was announced [here](https://informal.systems/blog/cosmos-meet-cometbft). - -To facilitate a more modern usage of the Cosmos SDK, projects should move away from Tendermint Core to CometBFT, as it is more up-to-date, maintained and provides security and bug fixes. - -The Cosmos SDK team slowly rolled out migrations from Tendermint Core to CometBFT in the Comsos SDK repo, and this migration was implemented in the v0.45 line in release [v0.45.15](https://github.com/cosmos/cosmos-sdk/releases/tag/v0.45.15). - -## Decision - -The migration to Tendermint Core will take place by: - -1. Pulling in the upstream latest version in the v0.45 line, which is [v0.45.16](https://github.com/cosmos/cosmos-sdk/releases/tag/v0.45.16) (one version after the v0.45.15 migration release) -2. Replaying the [commits](https://github.com/wormhole-foundation/cosmos-sdk/commits/v0.45.9-wormhole-2/?since=2022-10-19&until=2022-12-21) implemented by the Wormhole developers on top of this tag -3. Release a new tag that includes the changes from the v0.45.16 tag and the changes made on top of it from the v0.45.9-wormhole-2 tag. -4. Reference this new version in the wormchain go.mod file. - -## Consequences - -This change will have the following consequences: - -1. It pulls in the latest bug fixes and security updates in the v0.45 line while work on moving to v0.47 continues (see ADR 3 for details) -2. It will require extensive testing and review to ensure the changes from v0.45.9 to v0.45.16 did not break the Wormchain repo's usage of the Cosmos SDK