` - Either resolves with no value if the message is successfully routed, or reverts.
-
-## Examples
-
-You can check our current examples for reference:
-
-- [Unsafe Token And Data Transfer Test in Foundry](./test/smoke/ccip/UnsafeTokenAndDataTransfer.t.sol)
-- [Unsafe Token And Data Transfer Test in Hardhat](./test/smoke/ccip/UnsafeTokenAndDataTransfer.spec.ts)
-- [Unsafe Token And Data Transfer Script in Hardhat](./scripts/examples/UnsafeTokenAndDataTransfer.ts)
-- [Unsafe Token Transfer With Native Coin Test in Foundry](./test/smoke/ccip/PayWithNative.t.sol)
-- [Ping Pong example Test in Foundry (Reply cross-chain messages)](./test/smoke/ccip/PingPong.t.sol)
-
-And also recreated test examples in Foundry from the [Official Chainlink Documentation](https://docs.chain.link/ccip):
-
-- [Token Transferor](./test/smoke/ccip/TokenTransferor.t.sol)
-- [Programmable Token Transfers](./test/smoke/ccip/ProgrammableTokenTransfers.t.sol)
-- [Programmable Token Transfers - Defensive Example](./test/smoke/ccip/ProgrammableDefensiveTokenTransfers.t.sol)
-
-Forking examples with Foundry:
-
-User must provide `ETHEREUM_SEPOLIA_RPC_URL` and `ARBITRUM_SEPOLIA_RPC_URL`.
-
-- [Ping Pong example Fork Test in Foundry (Reply cross-chain messages)](./test/e2e/ccip/PingPongFork.t.sol)
-- [Token Transferor Fork Test in Foundry](./test/e2e/ccip/TokenTransferorFork.t.sol)
-
-Forking examples with Hardhat:
-
-User must provide `ETHEREUM_SEPOLIA_RPC_URL` and `ARBITRUM_SEPOLIA_RPC_URL`.
-
-- [Unsafe Token And Data Transfer Fork Script in Hardhat](./scripts/examples/UnsafeTokenAndDataTransferFork.ts)
-
-To run this example:
-
-1. In the first terminal window run: `npx hardhat node`
-2. In the second terminal window run: `npx hardhat run ./scripts/examples/UnsafeTokenAndDataTransferFork.ts --network localhost`
-
-## Contribute to Chainlink Local
-
-### Build & Test
-
-To get started:
-
-- Clone this repo.
-- Run `npm i && forge install` to install dependencies.
-- Run `npx hardhat test` to run Hardhat tests.
-- Run `forge test` to run Foundry tests.
-
-### Contributing
-
-Contributions are welcome, feel free to raise issues and/or open pull requests.
-
-Thank you!
diff --git a/README.md b/README.md
index 713d7d1..af742d3 100644
--- a/README.md
+++ b/README.md
@@ -6,7 +6,7 @@ The package exposes a set of smart contracts and scripts with which you build, d
User Contracts tested with Chainlink Local can be deployed to test networks without any modifications (assuming network specific contract addresses such as Router contracts and LINK token addresses are passed in via a constructor).
-To view more detailed documentation and more examples, visit the [Chainlink Local Documentation](https://cll-devrel.gitbook.io/chainlink-local-documentation).
+To view more detailed documentation and more examples, visit the [Chainlink Local Documentation](https://docs.chain.link/chainlink-local).
@@ -78,7 +78,7 @@ contract Demo is Test {
### Learn more
-To view detailed documentation and more examples, visit the [Chainlink Local Documentation](https://cll-devrel.gitbook.io/chainlink-local-documentation).
+To view detailed documentation and more examples, visit the [Chainlink Local Documentation](https://docs.chain.link/chainlink-local).
> **Note**
>
diff --git a/api_reference/solidity/ccip/CCIPLocalSimulator.mdx b/api_reference/solidity/ccip/CCIPLocalSimulator.mdx
index 782a2b5..974e812 100644
--- a/api_reference/solidity/ccip/CCIPLocalSimulator.mdx
+++ b/api_reference/solidity/ccip/CCIPLocalSimulator.mdx
@@ -64,6 +64,12 @@ address[] s_supportedTokens
The list of supported token addresses
+### CCIPLocalSimulator\_\_MsgSenderIsNotTokenOwner
+
+```solidity
+error CCIPLocalSimulator__MsgSenderIsNotTokenOwner()
+```
+
### constructor
```solidity
@@ -72,14 +78,31 @@ constructor() public
Constructor to initialize the contract and pre-deployed token instances
-### supportNewToken
+### supportNewTokenViaOwner
+
+```solidity
+function supportNewTokenViaOwner(address tokenAddress) external
+```
+
+Allows user to support any new token, besides CCIP BnM and CCIP LnM, for
+cross-chain transfers. Reverts if token does not implement owner() function.
+Reverts if the caller is not the token owner.
+
+#### Parameters
+
+| Name | Type | Description |
+| ------------ | ------- | ------------------------------------------------------------------ |
+| tokenAddress | address | - The address of the token to add to the list of supported tokens. |
+
+### supportNewTokenViaGetCCIPAdmin
```solidity
-function supportNewToken(address tokenAddress) external
+function supportNewTokenViaGetCCIPAdmin(address tokenAddress) external
```
Allows user to support any new token, besides CCIP BnM and CCIP LnM, for
-cross-chain transfers.
+cross-chain transfers. Reverts if token does not implement getCCIPAdmin()
+function. Reverts if the caller is not the token CCIPAdmin.
#### Parameters
diff --git a/api_reference/solidity/ccip/CCIPLocalSimulatorFork.mdx b/api_reference/solidity/ccip/CCIPLocalSimulatorFork.mdx
index 5c342d6..53132b9 100644
--- a/api_reference/solidity/ccip/CCIPLocalSimulatorFork.mdx
+++ b/api_reference/solidity/ccip/CCIPLocalSimulatorFork.mdx
@@ -4,6 +4,13 @@
### OffRamp
+Structure representing an offRamp configuration
+
+#### Parameters
+
+| Name | Type | Description |
+| ---- | ---- | ----------- |
+
```solidity
struct OffRamp {
uint64 sourceChainSelector;
@@ -30,7 +37,7 @@ Gets the list of offRamps
### executeSingleMessage
```solidity
-function executeSingleMessage(struct Internal.EVM2EVMMessage message, bytes[] offchainTokenData) external
+function executeSingleMessage(struct Internal.EVM2EVMMessage message, bytes[] offchainTokenData, uint32[] tokenGasOverrides) external
```
Executes a single CCIP message on the offRamp
@@ -41,6 +48,7 @@ Executes a single CCIP message on the offRamp
| ----------------- | ------------------------------ | --------------------------------- |
| message | struct Internal.EVM2EVMMessage | - The CCIP message to be executed |
| offchainTokenData | bytes[] | - Additional offchain token data |
+| tokenGasOverrides | uint32[] | |
## CCIPLocalSimulatorFork
diff --git a/api_reference/solidity/ccip/MockEvm2EvmOffRamp.mdx b/api_reference/solidity/ccip/MockEvm2EvmOffRamp.mdx
deleted file mode 100644
index d628ce5..0000000
--- a/api_reference/solidity/ccip/MockEvm2EvmOffRamp.mdx
+++ /dev/null
@@ -1,176 +0,0 @@
-# Solidity API
-
-## MockEvm2EvmOffRamp
-
-This contract handles off-ramp processes for CCIP messages
-
-### DynamicConfig
-
-```solidity
-struct DynamicConfig {
- uint32 permissionLessExecutionThresholdSeconds;
- address router;
- address priceRegistry;
- uint16 maxNumberOfTokensPerMsg;
- uint32 maxDataBytes;
- uint32 maxPoolReleaseOrMintGas;
-}
-```
-
-### i_sourceChainSelector
-
-```solidity
-uint64 i_sourceChainSelector
-```
-
-_chain selector for the source chain_
-
-### s_ccipLocalSimulator
-
-```solidity
-address s_ccipLocalSimulator
-```
-
-_Address of the CCIP Local Simulator_
-
-### s_dynamicConfig
-
-```solidity
-struct MockEvm2EvmOffRamp.DynamicConfig s_dynamicConfig
-```
-
-_Dynamic configuration of the offramp_
-
-### CanOnlySimulatorCall
-
-```solidity
-error CanOnlySimulatorCall()
-```
-
-_Error thrown when a function can only be called by the simulator_
-
-### ReceiverError
-
-```solidity
-error ReceiverError(bytes error)
-```
-
-_Error thrown when there is an error in the receiver_
-
-#### Parameters
-
-| Name | Type | Description |
-| ----- | ----- | -------------- |
-| error | bytes | The error data |
-
-### TokenHandlingError
-
-```solidity
-error TokenHandlingError(bytes error)
-```
-
-_Error thrown when there is an error in token handling_
-
-#### Parameters
-
-| Name | Type | Description |
-| ----- | ----- | -------------- |
-| error | bytes | The error data |
-
-### UnsupportedToken
-
-```solidity
-error UnsupportedToken(contract IERC20 token)
-```
-
-_Error thrown when an unsupported token is encountered_
-
-#### Parameters
-
-| Name | Type | Description |
-| ----- | --------------- | --------------------- |
-| token | contract IERC20 | The unsupported token |
-
-### constructor
-
-```solidity
-constructor(address ccipLocalSimulator, struct MockEvm2EvmOffRamp.DynamicConfig dynamicConfig, struct RateLimiter.Config config, uint64 sourceChainSelector, address[] sourceTokens, address[] pools) public
-```
-
-Constructor to initialize the contract.
-
-#### Parameters
-
-| Name | Type | Description |
-| ------------------- | --------------------------------------- | -------------------------------------------------------------------------- |
-| ccipLocalSimulator | address | - Address of the CCIP local simulator. |
-| dynamicConfig | struct MockEvm2EvmOffRamp.DynamicConfig | - Initial dynamic configuration parameters. |
-| config | struct RateLimiter.Config | - Rate limiter configuration. |
-| sourceChainSelector | uint64 | - Source chain selector. |
-| sourceTokens | address[] | - List of supported tokens on the source chain. |
-| pools | address[] | - List of pools corresponding to the supported tokens on the source chain. |
-
-### executeSingleMessage
-
-```solidity
-function executeSingleMessage(struct Internal.EVM2EVMMessage message, bytes[] offchainTokenData) external
-```
-
-Executes a single CCIP message.
-
-#### Parameters
-
-| Name | Type | Description |
-| ----------------- | ------------------------------ | ---------------------------------- |
-| message | struct Internal.EVM2EVMMessage | - The CCIP message to be executed. |
-| offchainTokenData | bytes[] | - Additional off-chain token data. |
-
-### \_releaseOrMintTokens
-
-```solidity
-function _releaseOrMintTokens(struct Client.EVMTokenAmount[] sourceTokenAmounts, bytes originalSender, address receiver, bytes[] sourceTokenData, bytes[] offchainTokenData) internal returns (struct Client.EVMTokenAmount[])
-```
-
-Uses pools to release or mint a number of different tokens to a receiver
-address.
-
-_This function wraps the token pool call in a try-catch block to gracefully
-handle any non-rate limiting errors that may occur. If we encounter a rate
-limiting related error we bubble it up. If we encounter a non-rate limiting
-error we wrap it in a TokenHandlingError._
-
-#### Parameters
-
-| Name | Type | Description |
-| ------------------ | ------------------------------ | ------------------------------------------------------------------ |
-| sourceTokenAmounts | struct Client.EVMTokenAmount[] | - List of tokens and amount values to be released/minted. |
-| originalSender | bytes | - The message sender. |
-| receiver | address | - The address that will receive the tokens. |
-| sourceTokenData | bytes[] | - Array of token data returned by token pools on the source chain. |
-| offchainTokenData | bytes[] | - Array of token data fetched offchain by the DON. |
-
-#### Return Values
-
-| Name | Type | Description |
-| ---- | ------------------------------ | ------------------------------------------------------------ |
-| [0] | struct Client.EVMTokenAmount[] | destTokenAmounts - The amounts of tokens released or minted. |
-
-### getPoolBySourceToken
-
-```solidity
-function getPoolBySourceToken(contract IERC20 sourceToken) public view returns (contract IPool)
-```
-
-Get a token pool by its source token.
-
-#### Parameters
-
-| Name | Type | Description |
-| ----------- | --------------- | ------------------- |
-| sourceToken | contract IERC20 | - The source token. |
-
-#### Return Values
-
-| Name | Type | Description |
-| ---- | -------------- | ------------------------------------ |
-| [0] | contract IPool | pool - The corresponding token pool. |
diff --git a/api_reference/solidity/ccip/Register.mdx b/api_reference/solidity/ccip/Register.mdx
index 1ca6778..0eaa65d 100644
--- a/api_reference/solidity/ccip/Register.mdx
+++ b/api_reference/solidity/ccip/Register.mdx
@@ -16,6 +16,9 @@ struct NetworkDetails {
address wrappedNativeAddress;
address ccipBnMAddress;
address ccipLnMAddress;
+ address rmnProxyAddress;
+ address registryModuleOwnerCustomAddress;
+ address tokenAdminRegistryAddress;
}
```
diff --git a/api_reference/solidity/ccip/index.mdx b/api_reference/solidity/ccip/index.mdx
index b9e8417..fad034d 100644
--- a/api_reference/solidity/ccip/index.mdx
+++ b/api_reference/solidity/ccip/index.mdx
@@ -3,5 +3,4 @@
- [BurnMintERC677Helper](BurnMintERC677Helper.mdx)
- [CCIPLocalSimulator](CCIPLocalSimulator.mdx)
- [CCIPLocalSimulatorFork](CCIPLocalSimulatorFork.mdx)
-- [MockEvm2EvmOffRamp](MockEvm2EvmOffRamp.mdx)
- [Register](Register.mdx)
diff --git a/assets/remix-001.png b/assets/remix-001.png
deleted file mode 100644
index 7a415cd..0000000
Binary files a/assets/remix-001.png and /dev/null differ
diff --git a/assets/remix-002.png b/assets/remix-002.png
deleted file mode 100644
index 35e279a..0000000
Binary files a/assets/remix-002.png and /dev/null differ
diff --git a/foundry.toml b/foundry.toml
index 1efc978..7c5fa0f 100644
--- a/foundry.toml
+++ b/foundry.toml
@@ -1,5 +1,7 @@
[profile.default]
src = 'src'
+solc = '0.8.24'
+evm_version = 'paris'
out = 'out'
libs = ['lib']
test = 'test'
diff --git a/hardhat.config.ts b/hardhat.config.ts
index 3576b4b..c904e4e 100644
--- a/hardhat.config.ts
+++ b/hardhat.config.ts
@@ -8,14 +8,22 @@ import "@nomicfoundation/hardhat-foundry";
dotenv.config();
const config: HardhatUserConfig = {
- solidity: "0.8.19",
+ solidity: {
+ compilers: [
+ {
+ version: "0.8.24",
+ settings: {
+ evmVersion: "paris"
+ },
+ }
+ ]
+ },
paths: {
sources: "./src",
},
docgen: {
pages: "files",
pageExtension: ".mdx",
- templates: "custom_templates",
exclude: ["test"],
outputDir: "api_reference/solidity",
},
diff --git a/lib/ccip b/lib/ccip
index b06a3c2..71be1a7 160000
--- a/lib/ccip
+++ b/lib/ccip
@@ -1 +1 @@
-Subproject commit b06a3c2eecb9892ec6f76a015624413fffa1a122
+Subproject commit 71be1a76b8b2192c3e16a3c79da9afc0eed7fc1e
diff --git a/package-lock.json b/package-lock.json
index 8da35d9..44cc93f 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,16 +1,16 @@
{
"name": "@chainlink/local",
- "version": "0.2.1",
+ "version": "0.2.2",
"lockfileVersion": 2,
"requires": true,
"packages": {
"": {
"name": "@chainlink/local",
- "version": "0.2.1",
+ "version": "0.2.2",
"license": "MIT",
"dependencies": {
"@chainlink/contracts": "^1.1.1",
- "@chainlink/contracts-ccip": "^1.4.0"
+ "@chainlink/contracts-ccip": "^1.5.0"
},
"devDependencies": {
"@nomicfoundation/hardhat-foundry": "^1.1.1",
@@ -137,6 +137,11 @@
"node": ">=6.9.0"
}
},
+ "node_modules/@balena/dockerignore": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/@balena/dockerignore/-/dockerignore-1.0.2.tgz",
+ "integrity": "sha512-wMue2Sy4GAVTk6Ic4tJVcnfdau+gx2EnG7S+uAEe+TWJFqE4YoWN4/H8MSLj4eYJKxGg26lZwboEniNiNwZQ6Q=="
+ },
"node_modules/@chainlink/contracts": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/@chainlink/contracts/-/contracts-1.1.1.tgz",
@@ -152,16 +157,256 @@
}
},
"node_modules/@chainlink/contracts-ccip": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/@chainlink/contracts-ccip/-/contracts-ccip-1.4.0.tgz",
- "integrity": "sha512-8F0OpmXy73vSbOvnKPL0DcYLA6FTiwQSKw1+DQzKyBYVbFk4vtijzs+5Ts/Beu6EIPqXlmLq7WVFZFHiDOBjCg==",
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/@chainlink/contracts-ccip/-/contracts-ccip-1.5.0.tgz",
+ "integrity": "sha512-pz6vhAY6ey5vLjU6mUv7rapRIKXWS2kEhd+J4axdeQhyClfyl+HyzqBTL+Jd/tbekhrfEn2YbkhIZXlovvUk7w==",
"dependencies": {
"@arbitrum/nitro-contracts": "1.1.1",
"@arbitrum/token-bridge-contracts": "1.1.2",
+ "@changesets/changelog-github": "^0.5.0",
+ "@changesets/cli": "~2.27.7",
"@eth-optimism/contracts": "0.6.0",
+ "@matterlabs/hardhat-zksync-verify": "^1.6.0",
"@openzeppelin/contracts": "4.9.3",
"@openzeppelin/contracts-upgradeable": "4.9.3",
- "@scroll-tech/contracts": "0.1.0"
+ "@scroll-tech/contracts": "0.1.0",
+ "semver": "^7.6.3"
+ },
+ "engines": {
+ "node": ">=18",
+ "pnpm": ">=9"
+ }
+ },
+ "node_modules/@chainlink/contracts-ccip/node_modules/@changesets/apply-release-plan": {
+ "version": "7.0.4",
+ "resolved": "https://registry.npmjs.org/@changesets/apply-release-plan/-/apply-release-plan-7.0.4.tgz",
+ "integrity": "sha512-HLFwhKWayKinWAul0Vj+76jVx1Pc2v55MGPVjZ924Y/ROeSsBMFutv9heHmCUj48lJyRfOTJG5+ar+29FUky/A==",
+ "dependencies": {
+ "@babel/runtime": "^7.20.1",
+ "@changesets/config": "^3.0.2",
+ "@changesets/get-version-range-type": "^0.4.0",
+ "@changesets/git": "^3.0.0",
+ "@changesets/should-skip-package": "^0.1.0",
+ "@changesets/types": "^6.0.0",
+ "@manypkg/get-packages": "^1.1.3",
+ "detect-indent": "^6.0.0",
+ "fs-extra": "^7.0.1",
+ "lodash.startcase": "^4.4.0",
+ "outdent": "^0.5.0",
+ "prettier": "^2.7.1",
+ "resolve-from": "^5.0.0",
+ "semver": "^7.5.3"
+ }
+ },
+ "node_modules/@chainlink/contracts-ccip/node_modules/@changesets/assemble-release-plan": {
+ "version": "6.0.3",
+ "resolved": "https://registry.npmjs.org/@changesets/assemble-release-plan/-/assemble-release-plan-6.0.3.tgz",
+ "integrity": "sha512-bLNh9/Lgl1VwkjWZTq8JmRqH+hj7/Yzfz0jsQ/zJJ+FTmVqmqPj3szeKOri8O/hEM8JmHW019vh2gTO9iq5Cuw==",
+ "dependencies": {
+ "@babel/runtime": "^7.20.1",
+ "@changesets/errors": "^0.2.0",
+ "@changesets/get-dependents-graph": "^2.1.1",
+ "@changesets/should-skip-package": "^0.1.0",
+ "@changesets/types": "^6.0.0",
+ "@manypkg/get-packages": "^1.1.3",
+ "semver": "^7.5.3"
+ }
+ },
+ "node_modules/@chainlink/contracts-ccip/node_modules/@changesets/changelog-git": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/@changesets/changelog-git/-/changelog-git-0.2.0.tgz",
+ "integrity": "sha512-bHOx97iFI4OClIT35Lok3sJAwM31VbUM++gnMBV16fdbtBhgYu4dxsphBF/0AZZsyAHMrnM0yFcj5gZM1py6uQ==",
+ "dependencies": {
+ "@changesets/types": "^6.0.0"
+ }
+ },
+ "node_modules/@chainlink/contracts-ccip/node_modules/@changesets/changelog-github": {
+ "version": "0.5.0",
+ "resolved": "https://registry.npmjs.org/@changesets/changelog-github/-/changelog-github-0.5.0.tgz",
+ "integrity": "sha512-zoeq2LJJVcPJcIotHRJEEA2qCqX0AQIeFE+L21L8sRLPVqDhSXY8ZWAt2sohtBpFZkBwu+LUwMSKRr2lMy3LJA==",
+ "dependencies": {
+ "@changesets/get-github-info": "^0.6.0",
+ "@changesets/types": "^6.0.0",
+ "dotenv": "^8.1.0"
+ }
+ },
+ "node_modules/@chainlink/contracts-ccip/node_modules/@changesets/cli": {
+ "version": "2.27.7",
+ "resolved": "https://registry.npmjs.org/@changesets/cli/-/cli-2.27.7.tgz",
+ "integrity": "sha512-6lr8JltiiXPIjDeYg4iM2MeePP6VN/JkmqBsVA5XRiy01hGS3y629LtSDvKcycj/w/5Eur1rEwby/MjcYS+e2A==",
+ "dependencies": {
+ "@babel/runtime": "^7.20.1",
+ "@changesets/apply-release-plan": "^7.0.4",
+ "@changesets/assemble-release-plan": "^6.0.3",
+ "@changesets/changelog-git": "^0.2.0",
+ "@changesets/config": "^3.0.2",
+ "@changesets/errors": "^0.2.0",
+ "@changesets/get-dependents-graph": "^2.1.1",
+ "@changesets/get-release-plan": "^4.0.3",
+ "@changesets/git": "^3.0.0",
+ "@changesets/logger": "^0.1.0",
+ "@changesets/pre": "^2.0.0",
+ "@changesets/read": "^0.6.0",
+ "@changesets/should-skip-package": "^0.1.0",
+ "@changesets/types": "^6.0.0",
+ "@changesets/write": "^0.3.1",
+ "@manypkg/get-packages": "^1.1.3",
+ "@types/semver": "^7.5.0",
+ "ansi-colors": "^4.1.3",
+ "chalk": "^2.1.0",
+ "ci-info": "^3.7.0",
+ "enquirer": "^2.3.0",
+ "external-editor": "^3.1.0",
+ "fs-extra": "^7.0.1",
+ "human-id": "^1.0.2",
+ "mri": "^1.2.0",
+ "outdent": "^0.5.0",
+ "p-limit": "^2.2.0",
+ "preferred-pm": "^3.0.0",
+ "resolve-from": "^5.0.0",
+ "semver": "^7.5.3",
+ "spawndamnit": "^2.0.0",
+ "term-size": "^2.1.0"
+ },
+ "bin": {
+ "changeset": "bin.js"
+ }
+ },
+ "node_modules/@chainlink/contracts-ccip/node_modules/@changesets/config": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/@changesets/config/-/config-3.0.2.tgz",
+ "integrity": "sha512-cdEhS4t8woKCX2M8AotcV2BOWnBp09sqICxKapgLHf9m5KdENpWjyrFNMjkLqGJtUys9U+w93OxWT0czorVDfw==",
+ "dependencies": {
+ "@changesets/errors": "^0.2.0",
+ "@changesets/get-dependents-graph": "^2.1.1",
+ "@changesets/logger": "^0.1.0",
+ "@changesets/types": "^6.0.0",
+ "@manypkg/get-packages": "^1.1.3",
+ "fs-extra": "^7.0.1",
+ "micromatch": "^4.0.2"
+ }
+ },
+ "node_modules/@chainlink/contracts-ccip/node_modules/@changesets/errors": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/@changesets/errors/-/errors-0.2.0.tgz",
+ "integrity": "sha512-6BLOQUscTpZeGljvyQXlWOItQyU71kCdGz7Pi8H8zdw6BI0g3m43iL4xKUVPWtG+qrrL9DTjpdn8eYuCQSRpow==",
+ "dependencies": {
+ "extendable-error": "^0.1.5"
+ }
+ },
+ "node_modules/@chainlink/contracts-ccip/node_modules/@changesets/get-dependents-graph": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/@changesets/get-dependents-graph/-/get-dependents-graph-2.1.1.tgz",
+ "integrity": "sha512-LRFjjvigBSzfnPU2n/AhFsuWR5DK++1x47aq6qZ8dzYsPtS/I5mNhIGAS68IAxh1xjO9BTtz55FwefhANZ+FCA==",
+ "dependencies": {
+ "@changesets/types": "^6.0.0",
+ "@manypkg/get-packages": "^1.1.3",
+ "chalk": "^2.1.0",
+ "fs-extra": "^7.0.1",
+ "semver": "^7.5.3"
+ }
+ },
+ "node_modules/@chainlink/contracts-ccip/node_modules/@changesets/get-github-info": {
+ "version": "0.6.0",
+ "resolved": "https://registry.npmjs.org/@changesets/get-github-info/-/get-github-info-0.6.0.tgz",
+ "integrity": "sha512-v/TSnFVXI8vzX9/w3DU2Ol+UlTZcu3m0kXTjTT4KlAdwSvwutcByYwyYn9hwerPWfPkT2JfpoX0KgvCEi8Q/SA==",
+ "dependencies": {
+ "dataloader": "^1.4.0",
+ "node-fetch": "^2.5.0"
+ }
+ },
+ "node_modules/@chainlink/contracts-ccip/node_modules/@changesets/get-release-plan": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/@changesets/get-release-plan/-/get-release-plan-4.0.3.tgz",
+ "integrity": "sha512-6PLgvOIwTSdJPTtpdcr3sLtGatT+Jr22+cQwEBJBy6wP0rjB4yJ9lv583J9fVpn1bfQlBkDa8JxbS2g/n9lIyA==",
+ "dependencies": {
+ "@babel/runtime": "^7.20.1",
+ "@changesets/assemble-release-plan": "^6.0.3",
+ "@changesets/config": "^3.0.2",
+ "@changesets/pre": "^2.0.0",
+ "@changesets/read": "^0.6.0",
+ "@changesets/types": "^6.0.0",
+ "@manypkg/get-packages": "^1.1.3"
+ }
+ },
+ "node_modules/@chainlink/contracts-ccip/node_modules/@changesets/get-version-range-type": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/@changesets/get-version-range-type/-/get-version-range-type-0.4.0.tgz",
+ "integrity": "sha512-hwawtob9DryoGTpixy1D3ZXbGgJu1Rhr+ySH2PvTLHvkZuQ7sRT4oQwMh0hbqZH1weAooedEjRsbrWcGLCeyVQ=="
+ },
+ "node_modules/@chainlink/contracts-ccip/node_modules/@changesets/git": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/@changesets/git/-/git-3.0.0.tgz",
+ "integrity": "sha512-vvhnZDHe2eiBNRFHEgMiGd2CT+164dfYyrJDhwwxTVD/OW0FUD6G7+4DIx1dNwkwjHyzisxGAU96q0sVNBns0w==",
+ "dependencies": {
+ "@babel/runtime": "^7.20.1",
+ "@changesets/errors": "^0.2.0",
+ "@changesets/types": "^6.0.0",
+ "@manypkg/get-packages": "^1.1.3",
+ "is-subdir": "^1.1.1",
+ "micromatch": "^4.0.2",
+ "spawndamnit": "^2.0.0"
+ }
+ },
+ "node_modules/@chainlink/contracts-ccip/node_modules/@changesets/logger": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/@changesets/logger/-/logger-0.1.0.tgz",
+ "integrity": "sha512-pBrJm4CQm9VqFVwWnSqKEfsS2ESnwqwH+xR7jETxIErZcfd1u2zBSqrHbRHR7xjhSgep9x2PSKFKY//FAshA3g==",
+ "dependencies": {
+ "chalk": "^2.1.0"
+ }
+ },
+ "node_modules/@chainlink/contracts-ccip/node_modules/@changesets/parse": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/@changesets/parse/-/parse-0.4.0.tgz",
+ "integrity": "sha512-TS/9KG2CdGXS27S+QxbZXgr8uPsP4yNJYb4BC2/NeFUj80Rni3TeD2qwWmabymxmrLo7JEsytXH1FbpKTbvivw==",
+ "dependencies": {
+ "@changesets/types": "^6.0.0",
+ "js-yaml": "^3.13.1"
+ }
+ },
+ "node_modules/@chainlink/contracts-ccip/node_modules/@changesets/pre": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/@changesets/pre/-/pre-2.0.0.tgz",
+ "integrity": "sha512-HLTNYX/A4jZxc+Sq8D1AMBsv+1qD6rmmJtjsCJa/9MSRybdxh0mjbTvE6JYZQ/ZiQ0mMlDOlGPXTm9KLTU3jyw==",
+ "dependencies": {
+ "@babel/runtime": "^7.20.1",
+ "@changesets/errors": "^0.2.0",
+ "@changesets/types": "^6.0.0",
+ "@manypkg/get-packages": "^1.1.3",
+ "fs-extra": "^7.0.1"
+ }
+ },
+ "node_modules/@chainlink/contracts-ccip/node_modules/@changesets/read": {
+ "version": "0.6.0",
+ "resolved": "https://registry.npmjs.org/@changesets/read/-/read-0.6.0.tgz",
+ "integrity": "sha512-ZypqX8+/im1Fm98K4YcZtmLKgjs1kDQ5zHpc2U1qdtNBmZZfo/IBiG162RoP0CUF05tvp2y4IspH11PLnPxuuw==",
+ "dependencies": {
+ "@babel/runtime": "^7.20.1",
+ "@changesets/git": "^3.0.0",
+ "@changesets/logger": "^0.1.0",
+ "@changesets/parse": "^0.4.0",
+ "@changesets/types": "^6.0.0",
+ "chalk": "^2.1.0",
+ "fs-extra": "^7.0.1",
+ "p-filter": "^2.1.0"
+ }
+ },
+ "node_modules/@chainlink/contracts-ccip/node_modules/@changesets/types": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/@changesets/types/-/types-6.0.0.tgz",
+ "integrity": "sha512-b1UkfNulgKoWfqyHtzKS5fOZYSJO+77adgL7DLRDr+/7jhChN+QcHnbjiQVOz/U+Ts3PGNySq7diAItzDgugfQ=="
+ },
+ "node_modules/@chainlink/contracts-ccip/node_modules/@changesets/write": {
+ "version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/@changesets/write/-/write-0.3.1.tgz",
+ "integrity": "sha512-SyGtMXzH3qFqlHKcvFY2eX+6b0NGiFcNav8AFsYwy5l8hejOeoeTDemu5Yjmke2V5jpzY+pBvM0vCCQ3gdZpfw==",
+ "dependencies": {
+ "@babel/runtime": "^7.20.1",
+ "@changesets/types": "^6.0.0",
+ "fs-extra": "^7.0.1",
+ "human-id": "^1.0.2",
+ "prettier": "^2.7.1"
}
},
"node_modules/@chainlink/contracts-ccip/node_modules/@eth-optimism/contracts": {
@@ -177,6 +422,48 @@
"ethers": "^5"
}
},
+ "node_modules/@chainlink/contracts-ccip/node_modules/argparse": {
+ "version": "1.0.10",
+ "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
+ "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
+ "dependencies": {
+ "sprintf-js": "~1.0.2"
+ }
+ },
+ "node_modules/@chainlink/contracts-ccip/node_modules/ci-info": {
+ "version": "3.9.0",
+ "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz",
+ "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/sibiraj-s"
+ }
+ ],
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/@chainlink/contracts-ccip/node_modules/dotenv": {
+ "version": "8.6.0",
+ "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-8.6.0.tgz",
+ "integrity": "sha512-IrPdXQsk2BbzvCBGBOTmmSH5SodmqZNt4ERAZDmW4CT+tL8VtvinqywuANaFu4bOMWki16nqf0e4oC0QIaDr/g==",
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/@chainlink/contracts-ccip/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==",
+ "bin": {
+ "esparse": "bin/esparse.js",
+ "esvalidate": "bin/esvalidate.js"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
"node_modules/@chainlink/contracts-ccip/node_modules/ethers": {
"version": "5.7.2",
"resolved": "https://registry.npmjs.org/ethers/-/ethers-5.7.2.tgz",
@@ -225,6 +512,102 @@
"@ethersproject/wordlists": "5.7.0"
}
},
+ "node_modules/@chainlink/contracts-ccip/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/@chainlink/contracts-ccip/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==",
+ "dependencies": {
+ "argparse": "^1.0.7",
+ "esprima": "^4.0.0"
+ },
+ "bin": {
+ "js-yaml": "bin/js-yaml.js"
+ }
+ },
+ "node_modules/@chainlink/contracts-ccip/node_modules/jsonfile": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz",
+ "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==",
+ "optionalDependencies": {
+ "graceful-fs": "^4.1.6"
+ }
+ },
+ "node_modules/@chainlink/contracts-ccip/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"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/@chainlink/contracts-ccip/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/@chainlink/contracts-ccip/node_modules/prettier": {
+ "version": "2.8.8",
+ "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz",
+ "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==",
+ "bin": {
+ "prettier": "bin-prettier.js"
+ },
+ "engines": {
+ "node": ">=10.13.0"
+ },
+ "funding": {
+ "url": "https://github.com/prettier/prettier?sponsor=1"
+ }
+ },
+ "node_modules/@chainlink/contracts-ccip/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==",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/@chainlink/contracts-ccip/node_modules/semver": {
+ "version": "7.6.3",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz",
+ "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==",
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/@chainlink/contracts-ccip/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/@chainlink/contracts/node_modules/@eth-optimism/contracts": {
"version": "0.6.0",
"resolved": "https://registry.npmjs.org/@eth-optimism/contracts/-/contracts-0.6.0.tgz",
@@ -847,6 +1230,21 @@
"node": ">= 4.0.0"
}
},
+ "node_modules/@changesets/should-skip-package": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/@changesets/should-skip-package/-/should-skip-package-0.1.0.tgz",
+ "integrity": "sha512-FxG6Mhjw7yFStlSM7Z0Gmg3RiyQ98d/9VpQAZ3Fzr59dCOM9G6ZdYbjiSAt0XtFr9JR5U2tBaJWPjrkGGc618g==",
+ "dependencies": {
+ "@babel/runtime": "^7.20.1",
+ "@changesets/types": "^6.0.0",
+ "@manypkg/get-packages": "^1.1.3"
+ }
+ },
+ "node_modules/@changesets/should-skip-package/node_modules/@changesets/types": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/@changesets/types/-/types-6.0.0.tgz",
+ "integrity": "sha512-b1UkfNulgKoWfqyHtzKS5fOZYSJO+77adgL7DLRDr+/7jhChN+QcHnbjiQVOz/U+Ts3PGNySq7diAItzDgugfQ=="
+ },
"node_modules/@changesets/types": {
"version": "5.2.1",
"resolved": "https://registry.npmjs.org/@changesets/types/-/types-5.2.1.tgz",
@@ -912,7 +1310,7 @@
"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,
+ "devOptional": true,
"peer": true,
"dependencies": {
"@jridgewell/trace-mapping": "0.3.9"
@@ -1719,7 +2117,6 @@
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/@fastify/busboy/-/busboy-2.1.0.tgz",
"integrity": "sha512-+KpH+QxZU7O4675t3mnkQKcZZg56u+K/Ct2K+N2AZYNVK8kyeo/bI18tI8aPm3tvNNRyTWfj6s5tnGNlcbQRsA==",
- "dev": true,
"engines": {
"node": ">=14"
}
@@ -1831,7 +2228,7 @@
"version": "3.1.2",
"resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz",
"integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==",
- "dev": true,
+ "devOptional": true,
"peer": true,
"engines": {
"node": ">=6.0.0"
@@ -1841,14 +2238,14 @@
"version": "1.4.15",
"resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz",
"integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==",
- "dev": true,
+ "devOptional": true,
"peer": 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,
+ "devOptional": true,
"peer": true,
"dependencies": {
"@jridgewell/resolve-uri": "^3.0.3",
@@ -2043,11 +2440,265 @@
"node": ">= 4.0.0"
}
},
+ "node_modules/@matterlabs/hardhat-zksync-solc": {
+ "version": "1.2.5",
+ "resolved": "https://registry.npmjs.org/@matterlabs/hardhat-zksync-solc/-/hardhat-zksync-solc-1.2.5.tgz",
+ "integrity": "sha512-iZyznWl1Hoe/Z46hnUe1s2drBZBjJOS/eN+Ql2lIBX9B6NevBl9DYzkKzH5HEIMCLGnX9sWpRAJqUQJWy9UB6w==",
+ "dependencies": {
+ "@nomiclabs/hardhat-docker": "^2.0.2",
+ "chai": "^4.3.4",
+ "chalk": "^4.1.2",
+ "debug": "^4.3.5",
+ "dockerode": "^4.0.2",
+ "fs-extra": "^11.2.0",
+ "proper-lockfile": "^4.1.2",
+ "semver": "^7.6.2",
+ "sinon": "^18.0.0",
+ "sinon-chai": "^3.7.0",
+ "undici": "^6.18.2"
+ },
+ "peerDependencies": {
+ "hardhat": "^2.22.5"
+ }
+ },
+ "node_modules/@matterlabs/hardhat-zksync-solc/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/@matterlabs/hardhat-zksync-solc/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/@matterlabs/hardhat-zksync-solc/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/@matterlabs/hardhat-zksync-solc/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/@matterlabs/hardhat-zksync-solc/node_modules/debug": {
+ "version": "4.3.7",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz",
+ "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==",
+ "dependencies": {
+ "ms": "^2.1.3"
+ },
+ "engines": {
+ "node": ">=6.0"
+ },
+ "peerDependenciesMeta": {
+ "supports-color": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@matterlabs/hardhat-zksync-solc/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/@matterlabs/hardhat-zksync-solc/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/@matterlabs/hardhat-zksync-solc/node_modules/semver": {
+ "version": "7.6.3",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz",
+ "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==",
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/@matterlabs/hardhat-zksync-solc/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/@matterlabs/hardhat-zksync-solc/node_modules/undici": {
+ "version": "6.20.0",
+ "resolved": "https://registry.npmjs.org/undici/-/undici-6.20.0.tgz",
+ "integrity": "sha512-AITZfPuxubm31Sx0vr8bteSalEbs9wQb/BOBi9FPlD9Qpd6HxZ4Q0+hI742jBhkPb4RT2v5MQzaW5VhRVyj+9A==",
+ "engines": {
+ "node": ">=18.17"
+ }
+ },
+ "node_modules/@matterlabs/hardhat-zksync-verify": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/@matterlabs/hardhat-zksync-verify/-/hardhat-zksync-verify-1.6.0.tgz",
+ "integrity": "sha512-RsWlQbI23BDXMsxTtvHXpzx1dBotI2p2trvdG+r1uN/KAmMJBOKIqxce2UNXl8skd5Gtysa4GPjXEp4yaf2KrA==",
+ "dependencies": {
+ "@ethersproject/abi": "^5.7.0",
+ "@ethersproject/address": "5.7.0",
+ "@matterlabs/hardhat-zksync-solc": "^1.2.1",
+ "@nomicfoundation/hardhat-verify": "^2.0.8",
+ "axios": "^1.7.2",
+ "cbor": "^9.0.2",
+ "chai": "^4.3.4",
+ "chalk": "^4.1.2",
+ "debug": "^4.3.5",
+ "semver": "^7.6.2",
+ "sinon": "^18.0.0",
+ "sinon-chai": "^3.7.0"
+ },
+ "peerDependencies": {
+ "@nomicfoundation/hardhat-verify": "^2.0.8",
+ "hardhat": "^2.22.5"
+ }
+ },
+ "node_modules/@matterlabs/hardhat-zksync-verify/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/@matterlabs/hardhat-zksync-verify/node_modules/cbor": {
+ "version": "9.0.2",
+ "resolved": "https://registry.npmjs.org/cbor/-/cbor-9.0.2.tgz",
+ "integrity": "sha512-JPypkxsB10s9QOWwa6zwPzqE1Md3vqpPc+cai4sAecuCsRyAtAl/pMyhPlMbT/xtPnm2dznJZYRLui57qiRhaQ==",
+ "dependencies": {
+ "nofilter": "^3.1.0"
+ },
+ "engines": {
+ "node": ">=16"
+ }
+ },
+ "node_modules/@matterlabs/hardhat-zksync-verify/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/@matterlabs/hardhat-zksync-verify/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/@matterlabs/hardhat-zksync-verify/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/@matterlabs/hardhat-zksync-verify/node_modules/debug": {
+ "version": "4.3.7",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz",
+ "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==",
+ "dependencies": {
+ "ms": "^2.1.3"
+ },
+ "engines": {
+ "node": ">=6.0"
+ },
+ "peerDependenciesMeta": {
+ "supports-color": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@matterlabs/hardhat-zksync-verify/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/@matterlabs/hardhat-zksync-verify/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/@matterlabs/hardhat-zksync-verify/node_modules/semver": {
+ "version": "7.6.3",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz",
+ "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==",
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/@matterlabs/hardhat-zksync-verify/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/@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==",
- "dev": true,
"dependencies": {
"ethereumjs-abi": "^0.6.8",
"ethereumjs-util": "^6.2.1",
@@ -2063,7 +2714,6 @@
"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": {
"@types/node": "*"
}
@@ -2071,14 +2721,12 @@
"node_modules/@metamask/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
+ "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA=="
},
"node_modules/@metamask/eth-sig-util/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": {
"@types/bn.js": "^4.11.3",
"bn.js": "^4.11.0",
@@ -2119,7 +2767,6 @@
"version": "1.7.1",
"resolved": "https://registry.npmjs.org/@noble/secp256k1/-/secp256k1-1.7.1.tgz",
"integrity": "sha512-hOUk6AyBFmqVrv7k5WAw/LpszxVbj9gGN4JRkIX52fdFAj1UA61KXmZDvqVEm+pOyec3+fIeZB02LYa/pWOArw==",
- "dev": true,
"funding": [
{
"type": "individual",
@@ -2156,96 +2803,94 @@
"fastq": "^1.6.0"
},
"engines": {
- "node": ">= 8"
+ "node": ">= 8"
+ }
+ },
+ "node_modules/@nomicfoundation/edr": {
+ "version": "0.6.3",
+ "resolved": "https://registry.npmjs.org/@nomicfoundation/edr/-/edr-0.6.3.tgz",
+ "integrity": "sha512-hThe5ORR75WFYTXKL0K2AyLDxkTMrG+VQ1yL9BhQYsuh3OIH+3yNDxMz2LjfvrpOrMmJ4kk5NKdFewpqDojjXQ==",
+ "dependencies": {
+ "@nomicfoundation/edr-darwin-arm64": "0.6.3",
+ "@nomicfoundation/edr-darwin-x64": "0.6.3",
+ "@nomicfoundation/edr-linux-arm64-gnu": "0.6.3",
+ "@nomicfoundation/edr-linux-arm64-musl": "0.6.3",
+ "@nomicfoundation/edr-linux-x64-gnu": "0.6.3",
+ "@nomicfoundation/edr-linux-x64-musl": "0.6.3",
+ "@nomicfoundation/edr-win32-x64-msvc": "0.6.3"
+ },
+ "engines": {
+ "node": ">= 18"
+ }
+ },
+ "node_modules/@nomicfoundation/edr-darwin-arm64": {
+ "version": "0.6.3",
+ "resolved": "https://registry.npmjs.org/@nomicfoundation/edr-darwin-arm64/-/edr-darwin-arm64-0.6.3.tgz",
+ "integrity": "sha512-hqtI7tYDqKG5PDmZ//Z65EH5cgH8VL/SAAu50rpHP7WAVfJWkOCcYbecywwF6nhHdonJbRTDGAeG1/+VOy6zew==",
+ "engines": {
+ "node": ">= 18"
+ }
+ },
+ "node_modules/@nomicfoundation/edr-darwin-x64": {
+ "version": "0.6.3",
+ "resolved": "https://registry.npmjs.org/@nomicfoundation/edr-darwin-x64/-/edr-darwin-x64-0.6.3.tgz",
+ "integrity": "sha512-4fGi79/lyOlRUORhCYsYb3sWqRHuHT7qqzyZfZuNOn8llaxmT1k36xNmvpyg37R8SzjnhT/DzoukSJrs23Ip9Q==",
+ "engines": {
+ "node": ">= 18"
+ }
+ },
+ "node_modules/@nomicfoundation/edr-linux-arm64-gnu": {
+ "version": "0.6.3",
+ "resolved": "https://registry.npmjs.org/@nomicfoundation/edr-linux-arm64-gnu/-/edr-linux-arm64-gnu-0.6.3.tgz",
+ "integrity": "sha512-yFFTvGFMhfAvQ1Z2itUh1jpoUA+mVROyVELcaxjIq8fyg602lQmbS+NXkhQ+oaeDgJ+06mSENrHBg4fcfRf9cw==",
+ "engines": {
+ "node": ">= 18"
}
},
- "node_modules/@nomicfoundation/ethereumjs-block": {
- "version": "5.0.4",
- "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-block/-/ethereumjs-block-5.0.4.tgz",
- "integrity": "sha512-AcyacJ9eX/uPEvqsPiB+WO1ymE+kyH48qGGiGV+YTojdtas8itUTW5dehDSOXEEItWGbbzEJ4PRqnQZlWaPvDw==",
- "dev": true,
- "dependencies": {
- "@nomicfoundation/ethereumjs-common": "4.0.4",
- "@nomicfoundation/ethereumjs-rlp": "5.0.4",
- "@nomicfoundation/ethereumjs-trie": "6.0.4",
- "@nomicfoundation/ethereumjs-tx": "5.0.4",
- "@nomicfoundation/ethereumjs-util": "9.0.4",
- "ethereum-cryptography": "0.1.3"
- },
+ "node_modules/@nomicfoundation/edr-linux-arm64-musl": {
+ "version": "0.6.3",
+ "resolved": "https://registry.npmjs.org/@nomicfoundation/edr-linux-arm64-musl/-/edr-linux-arm64-musl-0.6.3.tgz",
+ "integrity": "sha512-pOKmd0Fa3a6BHg5qbjbl/jMRELVi9oazbfiuU7Bvgn/dpTK+ID3jwT0SXiuC2zxjmPByWgXL6G9XRf5BPAM2rQ==",
"engines": {
- "node": ">=18"
+ "node": ">= 18"
}
},
- "node_modules/@nomicfoundation/ethereumjs-blockchain": {
- "version": "7.0.4",
- "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-blockchain/-/ethereumjs-blockchain-7.0.4.tgz",
- "integrity": "sha512-jYsd/kwzbmpnxx86tXsYV8wZ5xGvFL+7/P0c6OlzpClHsbFzeF41KrYA9scON8Rg6bZu3ZTv6JOAgj3t7USUfg==",
- "dev": true,
- "dependencies": {
- "@nomicfoundation/ethereumjs-block": "5.0.4",
- "@nomicfoundation/ethereumjs-common": "4.0.4",
- "@nomicfoundation/ethereumjs-ethash": "3.0.4",
- "@nomicfoundation/ethereumjs-rlp": "5.0.4",
- "@nomicfoundation/ethereumjs-trie": "6.0.4",
- "@nomicfoundation/ethereumjs-tx": "5.0.4",
- "@nomicfoundation/ethereumjs-util": "9.0.4",
- "debug": "^4.3.3",
- "ethereum-cryptography": "0.1.3",
- "lru-cache": "^10.0.0"
- },
+ "node_modules/@nomicfoundation/edr-linux-x64-gnu": {
+ "version": "0.6.3",
+ "resolved": "https://registry.npmjs.org/@nomicfoundation/edr-linux-x64-gnu/-/edr-linux-x64-gnu-0.6.3.tgz",
+ "integrity": "sha512-3AUferhkLIXtLV63w5GjpHttzdxZ36i656XMy+pkBZbbiqnzIVeKWg6DJv1A94fQY16gB4gqj9CLq4CWvbNN6w==",
"engines": {
- "node": ">=18"
+ "node": ">= 18"
}
},
- "node_modules/@nomicfoundation/ethereumjs-common": {
- "version": "4.0.4",
- "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-common/-/ethereumjs-common-4.0.4.tgz",
- "integrity": "sha512-9Rgb658lcWsjiicr5GzNCjI1llow/7r0k50dLL95OJ+6iZJcVbi15r3Y0xh2cIO+zgX0WIHcbzIu6FeQf9KPrg==",
- "dev": true,
- "dependencies": {
- "@nomicfoundation/ethereumjs-util": "9.0.4"
+ "node_modules/@nomicfoundation/edr-linux-x64-musl": {
+ "version": "0.6.3",
+ "resolved": "https://registry.npmjs.org/@nomicfoundation/edr-linux-x64-musl/-/edr-linux-x64-musl-0.6.3.tgz",
+ "integrity": "sha512-fr6bD872WIBXe9YnTDi0CzYepMcYRgSnkVqn0yK4wRnIvKrloWhxXNVY45GVIl51aNZguBnvoA4WEt6HIazs3A==",
+ "engines": {
+ "node": ">= 18"
}
},
- "node_modules/@nomicfoundation/ethereumjs-ethash": {
- "version": "3.0.4",
- "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-ethash/-/ethereumjs-ethash-3.0.4.tgz",
- "integrity": "sha512-xvIrwIMl9sSaiYKRem68+O7vYdj7Q2XWv5P7JXiIkn83918QzWHvqbswTRsH7+r6X1UEvdsURRnZbvZszEjAaQ==",
- "dev": true,
- "dependencies": {
- "@nomicfoundation/ethereumjs-block": "5.0.4",
- "@nomicfoundation/ethereumjs-rlp": "5.0.4",
- "@nomicfoundation/ethereumjs-util": "9.0.4",
- "bigint-crypto-utils": "^3.2.2",
- "ethereum-cryptography": "0.1.3"
- },
+ "node_modules/@nomicfoundation/edr-win32-x64-msvc": {
+ "version": "0.6.3",
+ "resolved": "https://registry.npmjs.org/@nomicfoundation/edr-win32-x64-msvc/-/edr-win32-x64-msvc-0.6.3.tgz",
+ "integrity": "sha512-sn34MvN1ajw2Oq1+Drpxej78Z0HfIzI4p4WlolupAV9dOZKzp2JAIQeLVfZpjIFbF3zuyxLPP4dUBrQoFPEqhA==",
"engines": {
- "node": ">=18"
+ "node": ">= 18"
}
},
- "node_modules/@nomicfoundation/ethereumjs-evm": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-evm/-/ethereumjs-evm-2.0.4.tgz",
- "integrity": "sha512-lTyZZi1KpeMHzaO6cSVisR2tjiTTedjo7PcmhI/+GNFo9BmyY6QYzGeSti0sFttmjbEMioHgXxl5yrLNRg6+1w==",
- "dev": true,
+ "node_modules/@nomicfoundation/ethereumjs-common": {
+ "version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-common/-/ethereumjs-common-4.0.4.tgz",
+ "integrity": "sha512-9Rgb658lcWsjiicr5GzNCjI1llow/7r0k50dLL95OJ+6iZJcVbi15r3Y0xh2cIO+zgX0WIHcbzIu6FeQf9KPrg==",
"dependencies": {
- "@nomicfoundation/ethereumjs-common": "4.0.4",
- "@nomicfoundation/ethereumjs-statemanager": "2.0.4",
- "@nomicfoundation/ethereumjs-tx": "5.0.4",
- "@nomicfoundation/ethereumjs-util": "9.0.4",
- "@types/debug": "^4.1.9",
- "debug": "^4.3.3",
- "ethereum-cryptography": "0.1.3",
- "rustbn-wasm": "^0.2.0"
- },
- "engines": {
- "node": ">=18"
+ "@nomicfoundation/ethereumjs-util": "9.0.4"
}
},
"node_modules/@nomicfoundation/ethereumjs-rlp": {
"version": "5.0.4",
"resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-rlp/-/ethereumjs-rlp-5.0.4.tgz",
"integrity": "sha512-8H1S3s8F6QueOc/X92SdrA4RDenpiAEqMg5vJH99kcQaCy/a3Q6fgseo75mgWlbanGJXSlAPtnCeG9jvfTYXlw==",
- "dev": true,
"bin": {
"rlp": "bin/rlp.cjs"
},
@@ -2253,52 +2898,10 @@
"node": ">=18"
}
},
- "node_modules/@nomicfoundation/ethereumjs-statemanager": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-statemanager/-/ethereumjs-statemanager-2.0.4.tgz",
- "integrity": "sha512-HPDjeFrxw6llEi+BzqXkZ+KkvFnTOPczuHBtk21hRlDiuKuZz32dPzlhpRsDBGV1b5JTmRDUVqCS1lp3Gghw4Q==",
- "dev": true,
- "dependencies": {
- "@nomicfoundation/ethereumjs-common": "4.0.4",
- "@nomicfoundation/ethereumjs-rlp": "5.0.4",
- "@nomicfoundation/ethereumjs-trie": "6.0.4",
- "@nomicfoundation/ethereumjs-util": "9.0.4",
- "debug": "^4.3.3",
- "ethereum-cryptography": "0.1.3",
- "js-sdsl": "^4.1.4",
- "lru-cache": "^10.0.0"
- },
- "peerDependencies": {
- "@nomicfoundation/ethereumjs-verkle": "0.0.2"
- },
- "peerDependenciesMeta": {
- "@nomicfoundation/ethereumjs-verkle": {
- "optional": true
- }
- }
- },
- "node_modules/@nomicfoundation/ethereumjs-trie": {
- "version": "6.0.4",
- "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-trie/-/ethereumjs-trie-6.0.4.tgz",
- "integrity": "sha512-3nSwQiFMvr2VFe/aZUyinuohYvtytUqZCUCvIWcPJ/BwJH6oQdZRB42aNFBJ/8nAh2s3OcroWpBLskzW01mFKA==",
- "dev": true,
- "dependencies": {
- "@nomicfoundation/ethereumjs-rlp": "5.0.4",
- "@nomicfoundation/ethereumjs-util": "9.0.4",
- "@types/readable-stream": "^2.3.13",
- "ethereum-cryptography": "0.1.3",
- "lru-cache": "^10.0.0",
- "readable-stream": "^3.6.0"
- },
- "engines": {
- "node": ">=18"
- }
- },
"node_modules/@nomicfoundation/ethereumjs-tx": {
"version": "5.0.4",
"resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-tx/-/ethereumjs-tx-5.0.4.tgz",
"integrity": "sha512-Xjv8wAKJGMrP1f0n2PeyfFCCojHd7iS3s/Ab7qzF1S64kxZ8Z22LCMynArYsVqiFx6rzYy548HNVEyI+AYN/kw==",
- "dev": true,
"dependencies": {
"@nomicfoundation/ethereumjs-common": "4.0.4",
"@nomicfoundation/ethereumjs-rlp": "5.0.4",
@@ -2321,7 +2924,6 @@
"version": "9.0.4",
"resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-util/-/ethereumjs-util-9.0.4.tgz",
"integrity": "sha512-sLOzjnSrlx9Bb9EFNtHzK/FJFsfg2re6bsGqinFinH1gCqVfz9YYlXiMWwDM4C/L4ywuHFCYwfKTVr/QHQcU0Q==",
- "dev": true,
"dependencies": {
"@nomicfoundation/ethereumjs-rlp": "5.0.4",
"ethereum-cryptography": "0.1.3"
@@ -2338,43 +2940,6 @@
}
}
},
- "node_modules/@nomicfoundation/ethereumjs-verkle": {
- "version": "0.0.2",
- "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-verkle/-/ethereumjs-verkle-0.0.2.tgz",
- "integrity": "sha512-bjnfZElpYGK/XuuVRmLS3yDvr+cDs85D9oonZ0YUa5A3lgFgokWMp76zXrxX2jVQ0BfHaw12y860n1+iOi6yFQ==",
- "dev": true,
- "dependencies": {
- "@nomicfoundation/ethereumjs-rlp": "5.0.4",
- "@nomicfoundation/ethereumjs-util": "9.0.4",
- "lru-cache": "^10.0.0",
- "rust-verkle-wasm": "^0.0.1"
- },
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@nomicfoundation/ethereumjs-vm": {
- "version": "7.0.4",
- "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-vm/-/ethereumjs-vm-7.0.4.tgz",
- "integrity": "sha512-gsA4IhmtWHI4BofKy3kio9W+dqZQs5Ji5mLjLYxHCkat+JQBUt5szjRKra2F9nGDJ2XcI/wWb0YWUFNgln4zRQ==",
- "dev": true,
- "dependencies": {
- "@nomicfoundation/ethereumjs-block": "5.0.4",
- "@nomicfoundation/ethereumjs-blockchain": "7.0.4",
- "@nomicfoundation/ethereumjs-common": "4.0.4",
- "@nomicfoundation/ethereumjs-evm": "2.0.4",
- "@nomicfoundation/ethereumjs-rlp": "5.0.4",
- "@nomicfoundation/ethereumjs-statemanager": "2.0.4",
- "@nomicfoundation/ethereumjs-trie": "6.0.4",
- "@nomicfoundation/ethereumjs-tx": "5.0.4",
- "@nomicfoundation/ethereumjs-util": "9.0.4",
- "debug": "^4.3.3",
- "ethereum-cryptography": "0.1.3"
- },
- "engines": {
- "node": ">=18"
- }
- },
"node_modules/@nomicfoundation/hardhat-chai-matchers": {
"version": "2.0.6",
"resolved": "https://registry.npmjs.org/@nomicfoundation/hardhat-chai-matchers/-/hardhat-chai-matchers-2.0.6.tgz",
@@ -2460,11 +3025,9 @@
}
},
"node_modules/@nomicfoundation/hardhat-verify": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/@nomicfoundation/hardhat-verify/-/hardhat-verify-2.0.4.tgz",
- "integrity": "sha512-B8ZjhOrmbbRWqJi65jvQblzjsfYktjqj2vmOm+oc2Vu8drZbT2cjeSCRHZKbS7lOtfW78aJZSFvw+zRLCiABJA==",
- "dev": true,
- "peer": true,
+ "version": "2.0.11",
+ "resolved": "https://registry.npmjs.org/@nomicfoundation/hardhat-verify/-/hardhat-verify-2.0.11.tgz",
+ "integrity": "sha512-lGIo4dNjVQFdsiEgZp3KP6ntLiF7xJEJsbNHfSyIiFCyI0Yv0518ElsFtMC5uCuHEChiBBMrib9jWQvHHT+X3Q==",
"dependencies": {
"@ethersproject/abi": "^5.1.2",
"@ethersproject/address": "^5.0.2",
@@ -2484,7 +3047,6 @@
"version": "0.1.1",
"resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer/-/solidity-analyzer-0.1.1.tgz",
"integrity": "sha512-1LMtXj1puAxyFusBgUIy5pZk3073cNXYnXUpuNKFghHbIit/xZgbk0AokpUADbNm3gyD6bFWl3LRFh3dhVdREg==",
- "dev": true,
"engines": {
"node": ">= 12"
},
@@ -2508,7 +3070,6 @@
"cpu": [
"arm64"
],
- "dev": true,
"optional": true,
"os": [
"darwin"
@@ -2524,7 +3085,6 @@
"cpu": [
"x64"
],
- "dev": true,
"optional": true,
"os": [
"darwin"
@@ -2540,7 +3100,6 @@
"cpu": [
"x64"
],
- "dev": true,
"optional": true,
"os": [
"freebsd"
@@ -2556,7 +3115,6 @@
"cpu": [
"arm64"
],
- "dev": true,
"optional": true,
"os": [
"linux"
@@ -2572,7 +3130,6 @@
"cpu": [
"arm64"
],
- "dev": true,
"optional": true,
"os": [
"linux"
@@ -2581,84 +3138,279 @@
"node": ">= 10"
}
},
- "node_modules/@nomicfoundation/solidity-analyzer-linux-x64-gnu": {
- "version": "0.1.1",
- "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-linux-x64-gnu/-/solidity-analyzer-linux-x64-gnu-0.1.1.tgz",
- "integrity": "sha512-5WN7leSr5fkUBBjE4f3wKENUy9HQStu7HmWqbtknfXkkil+eNWiBV275IOlpXku7v3uLsXTOKpnnGHJYI2qsdA==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">= 10"
+ "node_modules/@nomicfoundation/solidity-analyzer-linux-x64-gnu": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-linux-x64-gnu/-/solidity-analyzer-linux-x64-gnu-0.1.1.tgz",
+ "integrity": "sha512-5WN7leSr5fkUBBjE4f3wKENUy9HQStu7HmWqbtknfXkkil+eNWiBV275IOlpXku7v3uLsXTOKpnnGHJYI2qsdA==",
+ "cpu": [
+ "x64"
+ ],
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "node_modules/@nomicfoundation/solidity-analyzer-linux-x64-musl": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-linux-x64-musl/-/solidity-analyzer-linux-x64-musl-0.1.1.tgz",
+ "integrity": "sha512-KdYMkJOq0SYPQMmErv/63CwGwMm5XHenEna9X9aB8mQmhDBrYrlAOSsIPgFCUSL0hjxE3xHP65/EPXR/InD2+w==",
+ "cpu": [
+ "x64"
+ ],
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "node_modules/@nomicfoundation/solidity-analyzer-win32-arm64-msvc": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-win32-arm64-msvc/-/solidity-analyzer-win32-arm64-msvc-0.1.1.tgz",
+ "integrity": "sha512-VFZASBfl4qiBYwW5xeY20exWhmv6ww9sWu/krWSesv3q5hA0o1JuzmPHR4LPN6SUZj5vcqci0O6JOL8BPw+APg==",
+ "cpu": [
+ "arm64"
+ ],
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "node_modules/@nomicfoundation/solidity-analyzer-win32-ia32-msvc": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-win32-ia32-msvc/-/solidity-analyzer-win32-ia32-msvc-0.1.1.tgz",
+ "integrity": "sha512-JnFkYuyCSA70j6Si6cS1A9Gh1aHTEb8kOTBApp/c7NRTFGNMH8eaInKlyuuiIbvYFhlXW4LicqyYuWNNq9hkpQ==",
+ "cpu": [
+ "ia32"
+ ],
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "node_modules/@nomicfoundation/solidity-analyzer-win32-x64-msvc": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-win32-x64-msvc/-/solidity-analyzer-win32-x64-msvc-0.1.1.tgz",
+ "integrity": "sha512-HrVJr6+WjIXGnw3Q9u6KQcbZCtk0caVWhCdFADySvRyUxJ8PnzlaP+MhwNE8oyT8OZ6ejHBRrrgjSqDCFXGirw==",
+ "cpu": [
+ "x64"
+ ],
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "node_modules/@nomiclabs/hardhat-docker": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/@nomiclabs/hardhat-docker/-/hardhat-docker-2.0.2.tgz",
+ "integrity": "sha512-XgGEpRT3wlA1VslyB57zyAHV+oll8KnV1TjwnxxC1tpAL04/lbdwpdO5KxInVN8irMSepqFpsiSkqlcnvbE7Ng==",
+ "dependencies": {
+ "dockerode": "^2.5.8",
+ "fs-extra": "^7.0.1",
+ "node-fetch": "^2.6.0"
+ }
+ },
+ "node_modules/@nomiclabs/hardhat-docker/node_modules/bl": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/bl/-/bl-1.2.3.tgz",
+ "integrity": "sha512-pvcNpa0UU69UT341rO6AYy4FVAIkUHuZXRIWbq+zHnsVcRzDDjIAhGuuYoi0d//cwIwtt4pkpKycWEfjdV+vww==",
+ "dependencies": {
+ "readable-stream": "^2.3.5",
+ "safe-buffer": "^5.1.1"
+ }
+ },
+ "node_modules/@nomiclabs/hardhat-docker/node_modules/bl/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/@nomiclabs/hardhat-docker/node_modules/bl/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/@nomiclabs/hardhat-docker/node_modules/bl/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/@nomiclabs/hardhat-docker/node_modules/debug": {
+ "version": "3.2.7",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
+ "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
+ "dependencies": {
+ "ms": "^2.1.1"
+ }
+ },
+ "node_modules/@nomiclabs/hardhat-docker/node_modules/docker-modem": {
+ "version": "1.0.9",
+ "resolved": "https://registry.npmjs.org/docker-modem/-/docker-modem-1.0.9.tgz",
+ "integrity": "sha512-lVjqCSCIAUDZPAZIeyM125HXfNvOmYYInciphNrLrylUtKyW66meAjSPXWchKVzoIYZx69TPnAepVSSkeawoIw==",
+ "dependencies": {
+ "debug": "^3.2.6",
+ "JSONStream": "1.3.2",
+ "readable-stream": "~1.0.26-4",
+ "split-ca": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/@nomiclabs/hardhat-docker/node_modules/dockerode": {
+ "version": "2.5.8",
+ "resolved": "https://registry.npmjs.org/dockerode/-/dockerode-2.5.8.tgz",
+ "integrity": "sha512-+7iOUYBeDTScmOmQqpUYQaE7F4vvIt6+gIZNHWhqAQEI887tiPFB9OvXI/HzQYqfUNvukMK+9myLW63oTJPZpw==",
+ "dependencies": {
+ "concat-stream": "~1.6.2",
+ "docker-modem": "^1.0.8",
+ "tar-fs": "~1.16.3"
+ },
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/@nomiclabs/hardhat-docker/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/@nomiclabs/hardhat-docker/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/@nomiclabs/hardhat-docker/node_modules/jsonfile": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz",
+ "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==",
+ "optionalDependencies": {
+ "graceful-fs": "^4.1.6"
+ }
+ },
+ "node_modules/@nomiclabs/hardhat-docker/node_modules/pump": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/pump/-/pump-1.0.3.tgz",
+ "integrity": "sha512-8k0JupWme55+9tCVE+FS5ULT3K6AbgqrGa58lTT49RpyfwwcGedHqaC5LlQNdEAumn/wFsu6aPwkuPMioy8kqw==",
+ "dependencies": {
+ "end-of-stream": "^1.1.0",
+ "once": "^1.3.1"
+ }
+ },
+ "node_modules/@nomiclabs/hardhat-docker/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/@nomicfoundation/solidity-analyzer-linux-x64-musl": {
- "version": "0.1.1",
- "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-linux-x64-musl/-/solidity-analyzer-linux-x64-musl-0.1.1.tgz",
- "integrity": "sha512-KdYMkJOq0SYPQMmErv/63CwGwMm5XHenEna9X9aB8mQmhDBrYrlAOSsIPgFCUSL0hjxE3xHP65/EPXR/InD2+w==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">= 10"
+ "node_modules/@nomiclabs/hardhat-docker/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/@nomiclabs/hardhat-docker/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/@nomiclabs/hardhat-docker/node_modules/tar-fs": {
+ "version": "1.16.3",
+ "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-1.16.3.tgz",
+ "integrity": "sha512-NvCeXpYx7OsmOh8zIOP/ebG55zZmxLE0etfWRbWok+q2Qo8x/vOR/IJT1taADXPe+jsiu9axDb3X4B+iIgNlKw==",
+ "dependencies": {
+ "chownr": "^1.0.1",
+ "mkdirp": "^0.5.1",
+ "pump": "^1.0.0",
+ "tar-stream": "^1.1.2"
}
},
- "node_modules/@nomicfoundation/solidity-analyzer-win32-arm64-msvc": {
- "version": "0.1.1",
- "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-win32-arm64-msvc/-/solidity-analyzer-win32-arm64-msvc-0.1.1.tgz",
- "integrity": "sha512-VFZASBfl4qiBYwW5xeY20exWhmv6ww9sWu/krWSesv3q5hA0o1JuzmPHR4LPN6SUZj5vcqci0O6JOL8BPw+APg==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "win32"
- ],
+ "node_modules/@nomiclabs/hardhat-docker/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==",
+ "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": ">= 10"
+ "node": ">= 0.8.0"
}
},
- "node_modules/@nomicfoundation/solidity-analyzer-win32-ia32-msvc": {
- "version": "0.1.1",
- "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-win32-ia32-msvc/-/solidity-analyzer-win32-ia32-msvc-0.1.1.tgz",
- "integrity": "sha512-JnFkYuyCSA70j6Si6cS1A9Gh1aHTEb8kOTBApp/c7NRTFGNMH8eaInKlyuuiIbvYFhlXW4LicqyYuWNNq9hkpQ==",
- "cpu": [
- "ia32"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "win32"
- ],
- "engines": {
- "node": ">= 10"
+ "node_modules/@nomiclabs/hardhat-docker/node_modules/tar-stream/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/@nomiclabs/hardhat-docker/node_modules/tar-stream/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/@nomicfoundation/solidity-analyzer-win32-x64-msvc": {
- "version": "0.1.1",
- "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-win32-x64-msvc/-/solidity-analyzer-win32-x64-msvc-0.1.1.tgz",
- "integrity": "sha512-HrVJr6+WjIXGnw3Q9u6KQcbZCtk0caVWhCdFADySvRyUxJ8PnzlaP+MhwNE8oyT8OZ6ejHBRrrgjSqDCFXGirw==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "win32"
- ],
+ "node_modules/@nomiclabs/hardhat-docker/node_modules/tar-stream/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/@nomiclabs/hardhat-docker/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": ">= 10"
+ "node": ">= 4.0.0"
}
},
"node_modules/@offchainlabs/upgrade-executor": {
@@ -2811,7 +3563,6 @@
"version": "1.1.5",
"resolved": "https://registry.npmjs.org/@scure/base/-/base-1.1.5.tgz",
"integrity": "sha512-Brj9FiG2W1MRQSTB212YVPRrcbjkv48FoZi/u4l/zds/ieRrqsh7aUf6CLwkAq61oKXr/ZlTzlY66gLIj3TFTQ==",
- "dev": true,
"funding": {
"url": "https://paulmillr.com/funding/"
}
@@ -2875,7 +3626,6 @@
"version": "5.30.0",
"resolved": "https://registry.npmjs.org/@sentry/core/-/core-5.30.0.tgz",
"integrity": "sha512-TmfrII8w1PQZSZgPpUESqjB+jC6MvZJZdLtE/0hZ+SrnKhW3x5WlYLvTXZpcWePYBku7rl2wn1RZu6uT0qCTeg==",
- "dev": true,
"dependencies": {
"@sentry/hub": "5.30.0",
"@sentry/minimal": "5.30.0",
@@ -2890,14 +3640,12 @@
"node_modules/@sentry/core/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
+ "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg=="
},
"node_modules/@sentry/hub": {
"version": "5.30.0",
"resolved": "https://registry.npmjs.org/@sentry/hub/-/hub-5.30.0.tgz",
"integrity": "sha512-2tYrGnzb1gKz2EkMDQcfLrDTvmGcQPuWxLnJKXJvYTQDGLlEvi2tWz1VIHjunmOvJrB5aIQLhm+dcMRwFZDCqQ==",
- "dev": true,
"dependencies": {
"@sentry/types": "5.30.0",
"@sentry/utils": "5.30.0",
@@ -2910,14 +3658,12 @@
"node_modules/@sentry/hub/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
+ "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg=="
},
"node_modules/@sentry/minimal": {
"version": "5.30.0",
"resolved": "https://registry.npmjs.org/@sentry/minimal/-/minimal-5.30.0.tgz",
"integrity": "sha512-BwWb/owZKtkDX+Sc4zCSTNcvZUq7YcH3uAVlmh/gtR9rmUvbzAA3ewLuB3myi4wWRAMEtny6+J/FN/x+2wn9Xw==",
- "dev": true,
"dependencies": {
"@sentry/hub": "5.30.0",
"@sentry/types": "5.30.0",
@@ -2930,14 +3676,12 @@
"node_modules/@sentry/minimal/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
+ "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg=="
},
"node_modules/@sentry/node": {
"version": "5.30.0",
"resolved": "https://registry.npmjs.org/@sentry/node/-/node-5.30.0.tgz",
"integrity": "sha512-Br5oyVBF0fZo6ZS9bxbJZG4ApAjRqAnqFFurMVJJdunNb80brh7a5Qva2kjhm+U6r9NJAB5OmDyPkA1Qnt+QVg==",
- "dev": true,
"dependencies": {
"@sentry/core": "5.30.0",
"@sentry/hub": "5.30.0",
@@ -2956,14 +3700,12 @@
"node_modules/@sentry/node/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
+ "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg=="
},
"node_modules/@sentry/tracing": {
"version": "5.30.0",
"resolved": "https://registry.npmjs.org/@sentry/tracing/-/tracing-5.30.0.tgz",
"integrity": "sha512-dUFowCr0AIMwiLD7Fs314Mdzcug+gBVo/+NCMyDw8tFxJkwWAKl7Qa2OZxLQ0ZHjakcj1hNKfCQJ9rhyfOl4Aw==",
- "dev": true,
"dependencies": {
"@sentry/hub": "5.30.0",
"@sentry/minimal": "5.30.0",
@@ -2978,14 +3720,12 @@
"node_modules/@sentry/tracing/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
+ "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg=="
},
"node_modules/@sentry/types": {
"version": "5.30.0",
"resolved": "https://registry.npmjs.org/@sentry/types/-/types-5.30.0.tgz",
"integrity": "sha512-R8xOqlSTZ+htqrfteCWU5Nk0CDN5ApUTvrlvBuiH1DyP6czDZ4ktbZB0hAgBlVcK0U+qpD3ag3Tqqpa5Q67rPw==",
- "dev": true,
"engines": {
"node": ">=6"
}
@@ -2994,7 +3734,6 @@
"version": "5.30.0",
"resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-5.30.0.tgz",
"integrity": "sha512-zaYmoH0NWWtvnJjC9/CBseXMtKHm/tm40sz3YfJRxeQjyzRqNQPgivpd9R/oDJCYj999mzdW382p/qi2ypjLww==",
- "dev": true,
"dependencies": {
"@sentry/types": "5.30.0",
"tslib": "^1.9.3"
@@ -3006,8 +3745,46 @@
"node_modules/@sentry/utils/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
+ "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg=="
+ },
+ "node_modules/@sinonjs/commons": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.1.tgz",
+ "integrity": "sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==",
+ "dependencies": {
+ "type-detect": "4.0.8"
+ }
+ },
+ "node_modules/@sinonjs/fake-timers": {
+ "version": "11.2.2",
+ "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-11.2.2.tgz",
+ "integrity": "sha512-G2piCSxQ7oWOxwGSAyFHfPIsyeJGXYtc6mFbnFA+kRXkiEnTl8c/8jul2S329iFBnDI9HGoeWWAZvuvOkZccgw==",
+ "dependencies": {
+ "@sinonjs/commons": "^3.0.0"
+ }
+ },
+ "node_modules/@sinonjs/samsam": {
+ "version": "8.0.2",
+ "resolved": "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-8.0.2.tgz",
+ "integrity": "sha512-v46t/fwnhejRSFTGqbpn9u+LQ9xJDse10gNnPgAcxgdoCDMXj/G2asWAC/8Qs+BAZDicX+MNZouXT1A7c83kVw==",
+ "dependencies": {
+ "@sinonjs/commons": "^3.0.1",
+ "lodash.get": "^4.4.2",
+ "type-detect": "^4.1.0"
+ }
+ },
+ "node_modules/@sinonjs/samsam/node_modules/type-detect": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.1.0.tgz",
+ "integrity": "sha512-Acylog8/luQ8L7il+geoSxhEkazvkslg7PSNKOX59mbB9cOveP5aq9h74Y7YU8yDpJwetzQQrfIwtf4Wp4LKcw==",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/@sinonjs/text-encoding": {
+ "version": "0.7.3",
+ "resolved": "https://registry.npmjs.org/@sinonjs/text-encoding/-/text-encoding-0.7.3.tgz",
+ "integrity": "sha512-DE427ROAphMQzU4ENbliGYrBSYPXF+TtLg9S8vzeA+OF4ZKzoDdzfL8sxuMUGS/lgRhM6j1URSk9ghf7Xo1tyA=="
},
"node_modules/@solidity-parser/parser": {
"version": "0.14.5",
@@ -3023,28 +3800,28 @@
"version": "1.0.9",
"resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.9.tgz",
"integrity": "sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==",
- "dev": true,
+ "devOptional": true,
"peer": 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,
+ "devOptional": true,
"peer": 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,
+ "devOptional": true,
"peer": 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,
+ "devOptional": true,
"peer": true
},
"node_modules/@typechain/ethers-v6": {
@@ -3100,7 +3877,6 @@
"version": "5.1.5",
"resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-5.1.5.tgz",
"integrity": "sha512-V46N0zwKRF5Q00AZ6hWtN0T8gGmDUaUzLWQvHFo5yThtVwK/VCenFY3wXVbOvNfajEpsTfQM4IN9k/d6gUVX3A==",
- "devOptional": true,
"dependencies": {
"@types/node": "*"
}
@@ -3132,15 +3908,6 @@
"@types/node": "*"
}
},
- "node_modules/@types/debug": {
- "version": "4.1.12",
- "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.12.tgz",
- "integrity": "sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==",
- "dev": true,
- "dependencies": {
- "@types/ms": "*"
- }
- },
"node_modules/@types/form-data": {
"version": "0.0.33",
"resolved": "https://registry.npmjs.org/@types/form-data/-/form-data-0.0.33.tgz",
@@ -3222,8 +3989,7 @@
"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
+ "integrity": "sha512-ssE3Vlrys7sdIzs5LOxCzTVMsU7i9oa/IaW92wF32JFb3CVczqOkru2xspuKczHEbG3nvmPY7IFqVmGGHdNbYw=="
},
"node_modules/@types/markdown-it": {
"version": "14.1.1",
@@ -3262,17 +4028,10 @@
"dev": true,
"peer": true
},
- "node_modules/@types/ms": {
- "version": "0.7.34",
- "resolved": "https://registry.npmjs.org/@types/ms/-/ms-0.7.34.tgz",
- "integrity": "sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==",
- "dev": true
- },
"node_modules/@types/node": {
"version": "20.11.20",
"resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.20.tgz",
"integrity": "sha512-7/rR21OS+fq8IyHTgtLkDK949uzsa6n8BkziAKtPVpugIkO6D+/ooXMvzXxDnZrmtXVfjb1bKQafYpb8s89LOg==",
- "devOptional": true,
"dependencies": {
"undici-types": "~5.26.4"
}
@@ -3286,7 +4045,6 @@
"version": "3.1.2",
"resolved": "https://registry.npmjs.org/@types/pbkdf2/-/pbkdf2-3.1.2.tgz",
"integrity": "sha512-uRwJqmiXmh9++aSu1VNEn3iIxWOhd8AHXNSdlaLfdAAdSTY9jYVeGWnzejM3dvrkbqE3/hyQkQQ29IFATEGlew==",
- "devOptional": true,
"dependencies": {
"@types/node": "*"
}
@@ -3305,27 +4063,10 @@
"dev": true,
"peer": true
},
- "node_modules/@types/readable-stream": {
- "version": "2.3.15",
- "resolved": "https://registry.npmjs.org/@types/readable-stream/-/readable-stream-2.3.15.tgz",
- "integrity": "sha512-oM5JSKQCcICF1wvGgmecmHldZ48OZamtMxcGGVICOJA8o8cahXC1zEVAif8iwoc5j8etxFaRFnf095+CDsuoFQ==",
- "dev": true,
- "dependencies": {
- "@types/node": "*",
- "safe-buffer": "~5.1.1"
- }
- },
- "node_modules/@types/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==",
- "dev": true
- },
"node_modules/@types/secp256k1": {
"version": "4.0.6",
"resolved": "https://registry.npmjs.org/@types/secp256k1/-/secp256k1-4.0.6.tgz",
"integrity": "sha512-hHxJU6PAEUn0TP4S/ZOzuTUvJWuZ6eIKeNKb5RBpODvSl6hp1Wrw4s7ATY50rklRCScUDpHzVA/DQdSjJ3UoYQ==",
- "devOptional": true,
"dependencies": {
"@types/node": "*"
}
@@ -3351,7 +4092,7 @@
"version": "8.11.3",
"resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz",
"integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==",
- "dev": true,
+ "devOptional": true,
"peer": true,
"bin": {
"acorn": "bin/acorn"
@@ -3364,7 +4105,7 @@
"version": "8.3.2",
"resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.2.tgz",
"integrity": "sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==",
- "dev": true,
+ "devOptional": true,
"peer": true,
"engines": {
"node": ">=0.4.0"
@@ -3374,7 +4115,6 @@
"version": "0.4.16",
"resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.4.16.tgz",
"integrity": "sha512-TFi4HBKSGfIKsK5YCkKaaFG2m4PEDyViZmEwof3MTIgzimHLto6muaHVpbrljdIvIrFZzEq/p4nafOeLcYegrg==",
- "dev": true,
"engines": {
"node": ">=0.3.0"
}
@@ -3390,7 +4130,6 @@
"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": {
"debug": "4"
},
@@ -3402,7 +4141,6 @@
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz",
"integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==",
- "dev": true,
"dependencies": {
"clean-stack": "^2.0.0",
"indent-string": "^4.0.0"
@@ -3415,8 +4153,6 @@
"version": "8.12.0",
"resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz",
"integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==",
- "dev": true,
- "peer": true,
"dependencies": {
"fast-deep-equal": "^3.1.1",
"json-schema-traverse": "^1.0.0",
@@ -3443,7 +4179,6 @@
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz",
"integrity": "sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==",
- "dev": true,
"dependencies": {
"string-width": "^4.1.0"
}
@@ -3473,7 +4208,6 @@
"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"
},
@@ -3514,7 +4248,6 @@
"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": {
"normalize-path": "^3.0.0",
"picomatch": "^2.0.4"
@@ -3527,14 +4260,13 @@
"version": "4.1.3",
"resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz",
"integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==",
- "dev": true,
+ "devOptional": true,
"peer": true
},
"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
+ "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q=="
},
"node_modules/array-back": {
"version": "3.1.0",
@@ -3651,6 +4383,14 @@
"dev": true,
"peer": 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==",
+ "dependencies": {
+ "safer-buffer": "~2.1.0"
+ }
+ },
"node_modules/assertion-error": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz",
@@ -3663,8 +4403,6 @@
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz",
"integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==",
- "dev": true,
- "peer": true,
"engines": {
"node": ">=8"
}
@@ -3679,9 +4417,7 @@
"node_modules/asynckit": {
"version": "0.4.0",
"resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
- "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==",
- "dev": true,
- "peer": true
+ "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q=="
},
"node_modules/at-least-node": {
"version": "1.0.0",
@@ -3707,13 +4443,11 @@
}
},
"node_modules/axios": {
- "version": "1.6.7",
- "resolved": "https://registry.npmjs.org/axios/-/axios-1.6.7.tgz",
- "integrity": "sha512-/hDJGff6/c7u0hDkvkGxR/oy6CbCs8ziCsC7SqmhjfozqiJGc8Z11wrv9z9lYfY4K8l+H9TpjcMDX0xOZmx+RA==",
- "dev": true,
- "peer": true,
+ "version": "1.7.7",
+ "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.7.tgz",
+ "integrity": "sha512-S4kL7XrjgBmvdGut0sN3yJxqYzrDOnivkBiN0OFs6hLiUam3UPvswUo0kqGyhqUZGEOytHyumEdXsAkgCOUf3Q==",
"dependencies": {
- "follow-redirects": "^1.15.4",
+ "follow-redirects": "^1.15.6",
"form-data": "^4.0.0",
"proxy-from-env": "^1.1.0"
}
@@ -3727,11 +4461,42 @@
"version": "3.0.9",
"resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.9.tgz",
"integrity": "sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ==",
- "devOptional": true,
"dependencies": {
"safe-buffer": "^5.0.1"
}
},
+ "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==",
+ "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=="
+ },
"node_modules/bech32": {
"version": "1.1.4",
"resolved": "https://registry.npmjs.org/bech32/-/bech32-1.1.4.tgz",
@@ -3748,29 +4513,28 @@
"node": ">=4"
}
},
- "node_modules/bigint-crypto-utils": {
- "version": "3.3.0",
- "resolved": "https://registry.npmjs.org/bigint-crypto-utils/-/bigint-crypto-utils-3.3.0.tgz",
- "integrity": "sha512-jOTSb+drvEDxEq6OuUybOAv/xxoh3cuYRUIPyu8sSHQNKM303UQ2R1DAo45o1AkcIXw6fzbaFI1+xGGdaXs2lg==",
- "dev": true,
- "engines": {
- "node": ">=14.0.0"
- }
- },
"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,
"engines": {
"node": ">=8"
}
},
+ "node_modules/bl": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz",
+ "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==",
+ "dependencies": {
+ "buffer": "^5.5.0",
+ "inherits": "^2.0.4",
+ "readable-stream": "^3.4.0"
+ }
+ },
"node_modules/blakejs": {
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/blakejs/-/blakejs-1.2.1.tgz",
- "integrity": "sha512-QXUSXI3QVc/gJME0dBpXrag1kbzOqCjCX8/b54ntNyW6sjtoqxqRk3LTmXzaJoh71zMsDCjM+47jS7XiwN/+fQ==",
- "devOptional": true
+ "integrity": "sha512-QXUSXI3QVc/gJME0dBpXrag1kbzOqCjCX8/b54ntNyW6sjtoqxqRk3LTmXzaJoh71zMsDCjM+47jS7XiwN/+fQ=="
},
"node_modules/bluebird": {
"version": "3.7.2",
@@ -3788,7 +4552,6 @@
"version": "5.1.2",
"resolved": "https://registry.npmjs.org/boxen/-/boxen-5.1.2.tgz",
"integrity": "sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ==",
- "dev": true,
"dependencies": {
"ansi-align": "^3.0.0",
"camelcase": "^6.2.0",
@@ -3810,7 +4573,6 @@
"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"
},
@@ -3825,7 +4587,6 @@
"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"
@@ -3841,7 +4602,6 @@
"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"
},
@@ -3852,14 +4612,12 @@
"node_modules/boxen/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
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
},
"node_modules/boxen/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"
}
@@ -3868,7 +4626,6 @@
"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"
},
@@ -3880,7 +4637,6 @@
"version": "0.20.2",
"resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz",
"integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==",
- "dev": true,
"engines": {
"node": ">=10"
},
@@ -3924,14 +4680,12 @@
"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==",
- "dev": true
+ "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==",
- "devOptional": true,
"dependencies": {
"buffer-xor": "^1.0.3",
"cipher-base": "^1.0.0",
@@ -3945,33 +4699,71 @@
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz",
"integrity": "sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw==",
- "devOptional": true,
"dependencies": {
- "base-x": "^3.0.2"
+ "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": {
+ "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/bs58check": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/bs58check/-/bs58check-2.1.2.tgz",
- "integrity": "sha512-0TS1jicxdU09dwJMNZtVAfzPi6Q6QeN0pM1Fkzrjn+XYHvzMKPU3pHVpva+769iNVSfIYWf7LJ6WR+BuuMf8cA==",
- "devOptional": true,
+ "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==",
"dependencies": {
- "bs58": "^4.0.0",
- "create-hash": "^1.1.0",
- "safe-buffer": "^5.1.2"
+ "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=="
+ },
+ "node_modules/buffer-fill": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/buffer-fill/-/buffer-fill-1.0.0.tgz",
+ "integrity": "sha512-T7zexNBwiiaCOGDg9xNX9PBmjrubblRkENuptryuI64URkXDFum9il/JGL8Lm8wYfAXpredVXXZz7eMHilimiQ=="
+ },
"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
+ "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ=="
},
"node_modules/buffer-xor": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz",
- "integrity": "sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ==",
- "devOptional": true
+ "integrity": "sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ=="
},
"node_modules/bufio": {
"version": "1.2.1",
@@ -3981,11 +4773,19 @@
"node": ">=14.0.0"
}
},
+ "node_modules/buildcheck": {
+ "version": "0.0.6",
+ "resolved": "https://registry.npmjs.org/buildcheck/-/buildcheck-0.0.6.tgz",
+ "integrity": "sha512-8f9ZJCUXyT1M35Jx7MkBgmBMo3oHTTBIPLiY9xyL0pl3T5RwcPEY8cUHr5LBNfu/fk6c2T4DJZuVM/8ZZT2D2A==",
+ "optional": true,
+ "engines": {
+ "node": ">=10.0.0"
+ }
+ },
"node_modules/bytes": {
"version": "3.1.2",
"resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz",
"integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==",
- "dev": true,
"engines": {
"node": ">= 0.8"
}
@@ -4037,7 +4837,6 @@
"version": "6.3.0",
"resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz",
"integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==",
- "dev": true,
"engines": {
"node": ">=10"
},
@@ -4093,8 +4892,6 @@
"version": "8.1.0",
"resolved": "https://registry.npmjs.org/cbor/-/cbor-8.1.0.tgz",
"integrity": "sha512-DwGjNW9omn6EwP70aXsn7FQJx5kO12tX0bZkaTjzdVFM6/7nhA4t0EENocKGx6D2Bch9PE2KzCUf5SceBdeijg==",
- "dev": true,
- "peer": true,
"dependencies": {
"nofilter": "^3.1.0"
},
@@ -4172,29 +4969,36 @@
}
},
"node_modules/chokidar": {
- "version": "3.6.0",
- "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz",
- "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==",
- "dev": true,
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.1.tgz",
+ "integrity": "sha512-n8enUVCED/KVRQlab1hr3MVpcVMvxtZjmEa956u+4YijlmQED223XMSYj2tLuKvr4jcCTzNNMpQDUer72MMmzA==",
"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"
+ "readdirp": "^4.0.1"
},
"engines": {
- "node": ">= 8.10.0"
+ "node": ">= 14.16.0"
},
"funding": {
"url": "https://paulmillr.com/funding/"
+ }
+ },
+ "node_modules/chokidar/node_modules/readdirp": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.0.2.tgz",
+ "integrity": "sha512-yDMz9g+VaZkqBYS/ozoBJwaBhTbZo3UNYQHNRw1D3UFQB8oHB4uS/tAODO+ZLjGWmUbKnIlOWO+aaIiAxrUWHA==",
+ "engines": {
+ "node": ">= 14.16.0"
},
- "optionalDependencies": {
- "fsevents": "~2.3.2"
+ "funding": {
+ "type": "individual",
+ "url": "https://paulmillr.com/funding/"
}
},
+ "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/ci-info": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz",
@@ -4204,7 +5008,6 @@
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz",
"integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==",
- "devOptional": true,
"dependencies": {
"inherits": "^2.0.1",
"safe-buffer": "^5.0.1"
@@ -4214,7 +5017,6 @@
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz",
"integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==",
- "dev": true,
"engines": {
"node": ">=6"
}
@@ -4223,7 +5025,6 @@
"version": "2.2.1",
"resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz",
"integrity": "sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==",
- "dev": true,
"engines": {
"node": ">=6"
},
@@ -4299,7 +5100,6 @@
"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",
@@ -4355,8 +5155,6 @@
"version": "1.0.8",
"resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
"integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
- "dev": true,
- "peer": true,
"dependencies": {
"delayed-stream": "~1.0.0"
},
@@ -4367,8 +5165,7 @@
"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
+ "integrity": "sha512-LTQ/SGc+s0Xc0Fu5WaKnR0YiygZkm9eKFvyS+fRsU7/ZWFF8ykFM6Pc9aCVf1+xasOOZpO3BAVgVrKvsqKHV7w=="
},
"node_modules/command-line-args": {
"version": "5.2.1",
@@ -4516,10 +5313,12 @@
}
},
"node_modules/commander": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/commander/-/commander-3.0.2.tgz",
- "integrity": "sha512-Gar0ASD4BDyKC4hl4DwHqDrmvjoxWKZigVnAbn5H1owvm4CxCPdb0HQDehwNYMJpla5+M2tPmPARzhtYuwpHow==",
- "dev": true
+ "version": "8.3.0",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz",
+ "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==",
+ "engines": {
+ "node": ">= 12"
+ }
},
"node_modules/common-sequence": {
"version": "2.0.2",
@@ -4546,11 +5345,9 @@
"version": "1.6.2",
"resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz",
"integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==",
- "dev": true,
"engines": [
"node >= 0.8"
],
- "peer": true,
"dependencies": {
"buffer-from": "^1.0.0",
"inherits": "^2.0.3",
@@ -4562,8 +5359,6 @@
"version": "2.3.8",
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz",
"integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==",
- "dev": true,
- "peer": true,
"dependencies": {
"core-util-is": "~1.0.0",
"inherits": "~2.0.3",
@@ -4577,16 +5372,12 @@
"node_modules/concat-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==",
- "dev": true,
- "peer": true
+ "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
},
"node_modules/concat-stream/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,
- "peer": true,
"dependencies": {
"safe-buffer": "~5.1.0"
}
@@ -4615,7 +5406,6 @@
"version": "0.4.2",
"resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz",
"integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==",
- "dev": true,
"engines": {
"node": ">= 0.6"
}
@@ -4623,15 +5413,26 @@
"node_modules/core-util-is": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz",
- "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==",
- "dev": true,
- "peer": true
+ "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ=="
+ },
+ "node_modules/cpu-features": {
+ "version": "0.0.10",
+ "resolved": "https://registry.npmjs.org/cpu-features/-/cpu-features-0.0.10.tgz",
+ "integrity": "sha512-9IkYqtX3YHPCzoVg1Py+o9057a3i0fp7S530UWokCSaFVTc7CwXPRiOjRjBQQ18ZCNafx78YfnG+HALxtVmOGA==",
+ "hasInstallScript": true,
+ "optional": true,
+ "dependencies": {
+ "buildcheck": "~0.0.6",
+ "nan": "^2.19.0"
+ },
+ "engines": {
+ "node": ">=10.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==",
- "devOptional": true,
"dependencies": {
"cipher-base": "^1.0.1",
"inherits": "^2.0.1",
@@ -4644,7 +5445,6 @@
"version": "1.1.7",
"resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz",
"integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==",
- "devOptional": true,
"dependencies": {
"cipher-base": "^1.0.3",
"create-hash": "^1.1.0",
@@ -4658,7 +5458,7 @@
"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,
+ "devOptional": true,
"peer": true
},
"node_modules/cross-spawn": {
@@ -4787,7 +5587,6 @@
"version": "4.3.4",
"resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
"integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
- "devOptional": true,
"dependencies": {
"ms": "2.1.2"
},
@@ -4804,7 +5603,6 @@
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz",
"integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==",
- "dev": true,
"engines": {
"node": ">=10"
},
@@ -4917,8 +5715,6 @@
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
"integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==",
- "dev": true,
- "peer": true,
"engines": {
"node": ">=0.4.0"
}
@@ -4927,7 +5723,6 @@
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz",
"integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==",
- "dev": true,
"engines": {
"node": ">= 0.8"
}
@@ -4944,7 +5739,6 @@
"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"
}
@@ -5017,6 +5811,33 @@
"node": ">=8"
}
},
+ "node_modules/docker-modem": {
+ "version": "5.0.3",
+ "resolved": "https://registry.npmjs.org/docker-modem/-/docker-modem-5.0.3.tgz",
+ "integrity": "sha512-89zhop5YVhcPEt5FpUFGr3cDyceGhq/F9J+ZndQ4KfqNvfbJpPMfgeixFgUj5OjCYAboElqODxY5Z1EBsSa6sg==",
+ "dependencies": {
+ "debug": "^4.1.1",
+ "readable-stream": "^3.5.0",
+ "split-ca": "^1.0.1",
+ "ssh2": "^1.15.0"
+ },
+ "engines": {
+ "node": ">= 8.0"
+ }
+ },
+ "node_modules/dockerode": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/dockerode/-/dockerode-4.0.2.tgz",
+ "integrity": "sha512-9wM1BVpVMFr2Pw3eJNXrYYt6DT9k0xMcsSCjtPvyQ+xa1iPg/Mo3T/gUcwI0B2cczqCeCYRPF8yFYDwtFXT0+w==",
+ "dependencies": {
+ "@balena/dockerignore": "^1.0.2",
+ "docker-modem": "^5.0.3",
+ "tar-fs": "~2.0.1"
+ },
+ "engines": {
+ "node": ">= 8.0"
+ }
+ },
"node_modules/dotenv": {
"version": "16.4.5",
"resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.4.5.tgz",
@@ -5060,6 +5881,14 @@
"resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
"integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="
},
+ "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/enquirer": {
"version": "2.4.1",
"resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.4.1.tgz",
@@ -5089,7 +5918,6 @@
"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"
}
@@ -5455,7 +6283,6 @@
"version": "0.1.3",
"resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz",
"integrity": "sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ==",
- "devOptional": true,
"dependencies": {
"@types/pbkdf2": "^3.0.0",
"@types/secp256k1": "^4.0.1",
@@ -5478,7 +6305,6 @@
"version": "0.6.8",
"resolved": "https://registry.npmjs.org/ethereumjs-abi/-/ethereumjs-abi-0.6.8.tgz",
"integrity": "sha512-Tx0r/iXI6r+lRsdvkFDlut0N08jWMnKRZ6Gkq+Nmw75lZe4e6o3EkSnkaBP5NF6+m5PTGAr9JP43N3LyeoglsA==",
- "dev": true,
"dependencies": {
"bn.js": "^4.11.8",
"ethereumjs-util": "^6.0.0"
@@ -5488,7 +6314,6 @@
"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": {
"@types/node": "*"
}
@@ -5496,14 +6321,12 @@
"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==",
- "dev": true
+ "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA=="
},
"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==",
- "dev": true,
"dependencies": {
"@types/bn.js": "^4.11.3",
"bn.js": "^4.11.0",
@@ -5592,7 +6415,6 @@
"version": "0.1.6",
"resolved": "https://registry.npmjs.org/ethjs-util/-/ethjs-util-0.1.6.tgz",
"integrity": "sha512-CUnVOQq7gSpDHZVVrQW8ExxUETWrnrvXYvYz55wOU8Uj4VCgw56XC2B/fVqQN+f7gmrnRHSLVnFAwsCuNwji8w==",
- "dev": true,
"dependencies": {
"is-hex-prefixed": "1.0.0",
"strip-hex-prefix": "1.0.0"
@@ -5606,7 +6428,6 @@
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz",
"integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==",
- "devOptional": true,
"dependencies": {
"md5.js": "^1.3.4",
"safe-buffer": "^5.1.1"
@@ -5633,9 +6454,7 @@
"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,
- "peer": true
+ "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q=="
},
"node_modules/fast-glob": {
"version": "3.3.2",
@@ -5718,7 +6537,6 @@
"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,
"dependencies": {
"locate-path": "^2.0.0"
},
@@ -5747,16 +6565,14 @@
"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.5",
- "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.5.tgz",
- "integrity": "sha512-vSFWUON1B+yAw1VN4xMfxgn5fTUiaOzAJCKBwIIgT/+7CuGy9+r+5gITvP62j3RmaD5Ph65UaERdOSRGUzZtgw==",
- "dev": true,
+ "version": "1.15.9",
+ "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.9.tgz",
+ "integrity": "sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==",
"funding": [
{
"type": "individual",
@@ -5878,8 +6694,6 @@
"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,
- "peer": true,
"dependencies": {
"asynckit": "^0.4.0",
"combined-stream": "^1.0.8",
@@ -5892,14 +6706,17 @@
"node_modules/fp-ts": {
"version": "1.19.3",
"resolved": "https://registry.npmjs.org/fp-ts/-/fp-ts-1.19.3.tgz",
- "integrity": "sha512-H5KQDspykdHuztLTg+ajGN0Z2qUjcEf3Ybxc6hLt0k7/zPkn29XnKnxlBPyW2XIddWrGaJBzBl4VLYOtk39yZg==",
- "dev": true
+ "integrity": "sha512-H5KQDspykdHuztLTg+ajGN0Z2qUjcEf3Ybxc6hLt0k7/zPkn29XnKnxlBPyW2XIddWrGaJBzBl4VLYOtk39yZg=="
+ },
+ "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=="
},
"node_modules/fs-extra": {
"version": "11.2.0",
"resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz",
"integrity": "sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==",
- "dev": true,
"license": "MIT",
"dependencies": {
"graceful-fs": "^4.2.0",
@@ -5936,7 +6753,6 @@
"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": [
@@ -6206,24 +7022,16 @@
}
},
"node_modules/hardhat": {
- "version": "2.20.1",
- "resolved": "https://registry.npmjs.org/hardhat/-/hardhat-2.20.1.tgz",
- "integrity": "sha512-q75xDQiQtCZcTMBwjTovrXEU5ECr49baxr4/OBkIu/ULTPzlB20yk1dRWNmD2IFbAeAeXggaWvQAdpiScaHtPw==",
- "dev": true,
+ "version": "2.22.13",
+ "resolved": "https://registry.npmjs.org/hardhat/-/hardhat-2.22.13.tgz",
+ "integrity": "sha512-psVJX4FSXDpSXwsU8OcKTJN04pQEj9cFBMX5OPko+OFwbIoiOpvRmafa954/UaA1934npTj8sV3gaTSdx9bPbA==",
"dependencies": {
"@ethersproject/abi": "^5.1.2",
"@metamask/eth-sig-util": "^4.0.0",
- "@nomicfoundation/ethereumjs-block": "5.0.4",
- "@nomicfoundation/ethereumjs-blockchain": "7.0.4",
+ "@nomicfoundation/edr": "^0.6.3",
"@nomicfoundation/ethereumjs-common": "4.0.4",
- "@nomicfoundation/ethereumjs-evm": "2.0.4",
- "@nomicfoundation/ethereumjs-rlp": "5.0.4",
- "@nomicfoundation/ethereumjs-statemanager": "2.0.4",
- "@nomicfoundation/ethereumjs-trie": "6.0.4",
"@nomicfoundation/ethereumjs-tx": "5.0.4",
"@nomicfoundation/ethereumjs-util": "9.0.4",
- "@nomicfoundation/ethereumjs-verkle": "0.0.2",
- "@nomicfoundation/ethereumjs-vm": "7.0.4",
"@nomicfoundation/solidity-analyzer": "^0.1.0",
"@sentry/node": "^5.18.1",
"@types/bn.js": "^5.1.0",
@@ -6233,7 +7041,7 @@
"ansi-escapes": "^4.3.0",
"boxen": "^5.1.2",
"chalk": "^2.4.2",
- "chokidar": "^3.4.0",
+ "chokidar": "^4.0.0",
"ci-info": "^2.0.0",
"debug": "^4.1.1",
"enquirer": "^2.3.0",
@@ -6246,6 +7054,7 @@
"glob": "7.2.0",
"immutable": "^4.0.0-rc.12",
"io-ts": "1.10.4",
+ "json-stream-stringify": "^3.1.4",
"keccak": "^3.0.2",
"lodash": "^4.17.11",
"mnemonist": "^0.38.0",
@@ -6254,7 +7063,7 @@
"raw-body": "^2.4.1",
"resolve": "1.17.0",
"semver": "^6.3.0",
- "solc": "0.7.3",
+ "solc": "0.8.26",
"source-map-support": "^0.5.13",
"stacktrace-parser": "^0.1.10",
"tsort": "0.0.1",
@@ -6297,7 +7106,6 @@
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.2.0.tgz",
"integrity": "sha512-FZfhjEDbT5GRswV3C6uvLPHMiVD6lQBmpoX5+eSiPaMTXte/IKqI5dykDxzZB/WBeK/CDuQRBWarPdi3FNY2zQ==",
- "dev": true,
"funding": [
{
"type": "individual",
@@ -6309,7 +7117,6 @@
"version": "1.1.5",
"resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-1.1.5.tgz",
"integrity": "sha512-XyNh1rB0SkEqd3tXcXMi+Xe1fvg+kUIcoRIEujP1Jgv7DqW2r9lg3Ah0NkFaCs9sTkQAQA8kw7xiRXzENi9Rtw==",
- "dev": true,
"funding": [
{
"type": "individual",
@@ -6326,7 +7133,6 @@
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.1.1.tgz",
"integrity": "sha512-t+wDck2rVkh65Hmv280fYdVdY25J9YeEUIgn2LG1WM6gxFkGzcksoDiUkWVpVp3Oex9xGC68JU2dSbUfwZ2jPg==",
- "dev": true,
"funding": [
{
"type": "individual",
@@ -6342,7 +7148,6 @@
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-1.2.0.tgz",
"integrity": "sha512-6yFQC9b5ug6/17CQpCyE3k9eKBMdhyVjzUy1WkiuY/E4vj/SXDBbCw8QEIaXqf0Mf2SnY6RmpDcwlUmBSS0EJw==",
- "dev": true,
"dependencies": {
"@noble/hashes": "1.2.0",
"@noble/secp256k1": "1.7.1",
@@ -6354,7 +7159,6 @@
"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": {
"graceful-fs": "^4.1.2",
"jsonfile": "^4.0.0",
@@ -6368,7 +7172,6 @@
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz",
"integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==",
- "dev": true,
"optionalDependencies": {
"graceful-fs": "^4.1.6"
}
@@ -6377,7 +7180,6 @@
"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"
}
@@ -6386,7 +7188,6 @@
"version": "7.5.9",
"resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz",
"integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==",
- "dev": true,
"engines": {
"node": ">=8.3.0"
},
@@ -6470,7 +7271,6 @@
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz",
"integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==",
- "devOptional": true,
"dependencies": {
"inherits": "^2.0.4",
"readable-stream": "^3.6.0",
@@ -6504,7 +7304,6 @@
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz",
"integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==",
- "dev": true,
"bin": {
"he": "bin/he"
}
@@ -6551,7 +7350,6 @@
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz",
"integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==",
- "dev": true,
"dependencies": {
"depd": "2.0.0",
"inherits": "2.0.4",
@@ -6584,7 +7382,6 @@
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz",
"integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==",
- "dev": true,
"dependencies": {
"agent-base": "6",
"debug": "4"
@@ -6609,6 +7406,25 @@
"node": ">=0.10.0"
}
},
+ "node_modules/ieee754": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz",
+ "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ]
+ },
"node_modules/ignore": {
"version": "5.3.1",
"resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz",
@@ -6620,8 +7436,7 @@
"node_modules/immutable": {
"version": "4.3.5",
"resolved": "https://registry.npmjs.org/immutable/-/immutable-4.3.5.tgz",
- "integrity": "sha512-8eabxkth9gZatlwl5TBuJnCsoTADlL6ftEr7A4qgdaTsPyreilDSnUk57SO+jfKcNtxPa22U5KK6DSeAYhpBJw==",
- "dev": true
+ "integrity": "sha512-8eabxkth9gZatlwl5TBuJnCsoTADlL6ftEr7A4qgdaTsPyreilDSnUk57SO+jfKcNtxPa22U5KK6DSeAYhpBJw=="
},
"node_modules/indent-string": {
"version": "4.0.0",
@@ -6679,7 +7494,6 @@
"version": "1.10.4",
"resolved": "https://registry.npmjs.org/io-ts/-/io-ts-1.10.4.tgz",
"integrity": "sha512-b23PteSnYXSONJ6JQXRAlvJhuw8KOtkqa87W4wDtvMrud/DTJd5X+NpOOI+O/zZwVq6v0VLAaJ+1EDViKEuN9g==",
- "dev": true,
"dependencies": {
"fp-ts": "^1.0.0"
}
@@ -6719,7 +7533,6 @@
"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,
"dependencies": {
"binary-extensions": "^2.0.0"
},
@@ -6837,7 +7650,6 @@
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/is-hex-prefixed/-/is-hex-prefixed-1.0.0.tgz",
"integrity": "sha512-WvtOiug1VFrE9v1Cydwm+FnXd3+w9GaeVUss5W4v/SLy3UW00vP+6iNF2SdnfiBoLy4bTqVdkftNGTUeOFVsbA==",
- "dev": true,
"engines": {
"node": ">=6.5.0",
"npm": ">=3"
@@ -6880,7 +7692,6 @@
"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,
"engines": {
"node": ">=8"
}
@@ -6971,7 +7782,6 @@
"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"
},
@@ -7012,9 +7822,7 @@
"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,
- "peer": true
+ "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ=="
},
"node_modules/isexe": {
"version": "2.0.0",
@@ -7040,16 +7848,6 @@
"@pkgjs/parseargs": "^0.11.0"
}
},
- "node_modules/js-sdsl": {
- "version": "4.4.2",
- "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.4.2.tgz",
- "integrity": "sha512-dwXFwByc/ajSV6m5bcKAPwe4yDDF6D614pxmIi5odytzxRlwqF6nwoiCek80Ixc7Cvma5awClxrzFtxCQvcM8w==",
- "dev": true,
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/js-sdsl"
- }
- },
"node_modules/js-sha3": {
"version": "0.8.0",
"resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.8.0.tgz",
@@ -7064,7 +7862,6 @@
"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"
},
@@ -7243,9 +8040,15 @@
"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,
- "peer": true
+ "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug=="
+ },
+ "node_modules/json-stream-stringify": {
+ "version": "3.1.6",
+ "resolved": "https://registry.npmjs.org/json-stream-stringify/-/json-stream-stringify-3.1.6.tgz",
+ "integrity": "sha512-x7fpwxOkbhFCaJDJ8vb1fBY3DdSa4AlITaz+HHILQJzdPMnHEFjxPwVUi1ALIbcIxDE0PNe/0i7frnY8QnBQog==",
+ "engines": {
+ "node": ">=7.10.1"
+ }
},
"node_modules/jsonfile": {
"version": "6.1.0",
@@ -7258,6 +8061,14 @@
"graceful-fs": "^4.1.6"
}
},
+ "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",
@@ -7268,11 +8079,30 @@
"node": "*"
}
},
+ "node_modules/JSONStream": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.2.tgz",
+ "integrity": "sha512-mn0KSip7N4e0UDPZHnqDsHECo5uGQrixQKnAskOM1BIB8hd7QKbd6il8IPRPudPHOeHiECoCFqhyMaRO9+nWyA==",
+ "dependencies": {
+ "jsonparse": "^1.2.0",
+ "through": ">=2.2.7 <3"
+ },
+ "bin": {
+ "JSONStream": "bin.js"
+ },
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/just-extend": {
+ "version": "6.2.0",
+ "resolved": "https://registry.npmjs.org/just-extend/-/just-extend-6.2.0.tgz",
+ "integrity": "sha512-cYofQu2Xpom82S6qD778jBDpwvvy39s1l/hrYij2u9AMdQcGRpaBu6kY4mVhuno5kJVi1DAz4aiphA2WI1/OAw=="
+ },
"node_modules/keccak": {
"version": "3.0.4",
"resolved": "https://registry.npmjs.org/keccak/-/keccak-3.0.4.tgz",
"integrity": "sha512-3vKuW0jV8J3XNTzvfyicFR5qvxrSAGl7KIhvgOu5cmWwM7tZRj3fMbj/pfIf4be7aznbc+prBWGjywox/g2Y6Q==",
- "devOptional": true,
"hasInstallScript": true,
"dependencies": {
"node-addon-api": "^2.0.0",
@@ -7291,15 +8121,6 @@
"node": ">=0.10.0"
}
},
- "node_modules/klaw": {
- "version": "1.3.1",
- "resolved": "https://registry.npmjs.org/klaw/-/klaw-1.3.1.tgz",
- "integrity": "sha512-TED5xi9gGQjGpNnvRWknrwAB1eL5GciPfVFOt3Vk1OJCVDQbzuSfrF3hkUQKlsgKrG1F+0t5W0m+Fje1jIt8rw==",
- "dev": true,
- "optionalDependencies": {
- "graceful-fs": "^4.1.9"
- }
- },
"node_modules/klaw-sync": {
"version": "6.0.0",
"resolved": "https://registry.npmjs.org/klaw-sync/-/klaw-sync-6.0.0.tgz",
@@ -7395,7 +8216,6 @@
"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,
"dependencies": {
"p-locate": "^2.0.0",
"path-exists": "^3.0.0"
@@ -7407,8 +8227,7 @@
"node_modules/lodash": {
"version": "4.17.21",
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
- "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==",
- "dev": true
+ "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg=="
},
"node_modules/lodash.camelcase": {
"version": "4.3.0",
@@ -7419,9 +8238,12 @@
"node_modules/lodash.clonedeep": {
"version": "4.5.0",
"resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz",
- "integrity": "sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ==",
- "dev": true,
- "peer": true
+ "integrity": "sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ=="
+ },
+ "node_modules/lodash.get": {
+ "version": "4.4.2",
+ "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz",
+ "integrity": "sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ=="
},
"node_modules/lodash.isequal": {
"version": "4.5.0",
@@ -7452,15 +8274,12 @@
"node_modules/lodash.truncate": {
"version": "4.4.2",
"resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz",
- "integrity": "sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==",
- "dev": true,
- "peer": true
+ "integrity": "sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw=="
},
"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"
@@ -7476,7 +8295,6 @@
"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"
},
@@ -7491,7 +8309,6 @@
"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"
@@ -7507,7 +8324,6 @@
"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"
},
@@ -7518,14 +8334,12 @@
"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
+ "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==",
- "dev": true,
"engines": {
"node": ">=8"
}
@@ -7534,7 +8348,6 @@
"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"
},
@@ -7553,23 +8366,13 @@
"node_modules/lru_map": {
"version": "0.3.3",
"resolved": "https://registry.npmjs.org/lru_map/-/lru_map-0.3.3.tgz",
- "integrity": "sha512-Pn9cox5CsMYngeDbmChANltQl+5pi6XmTrraMSzhPmMBbmgcxmqWry0U3PGapCU1yB4/LqCcom7qhHZiF/jGfQ==",
- "dev": true
- },
- "node_modules/lru-cache": {
- "version": "10.2.0",
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.0.tgz",
- "integrity": "sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==",
- "dev": true,
- "engines": {
- "node": "14 || >=16.14"
- }
+ "integrity": "sha512-Pn9cox5CsMYngeDbmChANltQl+5pi6XmTrraMSzhPmMBbmgcxmqWry0U3PGapCU1yB4/LqCcom7qhHZiF/jGfQ=="
},
"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,
+ "devOptional": true,
"peer": true
},
"node_modules/map-obj": {
@@ -7636,7 +8439,6 @@
"version": "1.3.5",
"resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz",
"integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==",
- "devOptional": true,
"dependencies": {
"hash-base": "^3.0.0",
"inherits": "^2.0.1",
@@ -7654,7 +8456,6 @@
"version": "0.3.1",
"resolved": "https://registry.npmjs.org/memorystream/-/memorystream-0.3.1.tgz",
"integrity": "sha512-S3UwM3yj5mtUSEfP41UZmt/0SCoVYUcU1rkXv+BQ5Ig8ndL4sPoJNBUJERafdPb5jjHJGuMgytgKvKIf58XNBw==",
- "dev": true,
"engines": {
"node": ">= 0.10.0"
}
@@ -7753,8 +8554,6 @@
"version": "1.52.0",
"resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
"integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==",
- "dev": true,
- "peer": true,
"engines": {
"node": ">= 0.6"
}
@@ -7763,8 +8562,6 @@
"version": "2.1.35",
"resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz",
"integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
- "dev": true,
- "peer": true,
"dependencies": {
"mime-db": "1.52.0"
},
@@ -7852,8 +8649,6 @@
"version": "0.5.6",
"resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz",
"integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==",
- "dev": true,
- "peer": true,
"dependencies": {
"minimist": "^1.2.6"
},
@@ -7861,6 +8656,11 @@
"mkdirp": "bin/cmd.js"
}
},
+ "node_modules/mkdirp-classic": {
+ "version": "0.5.3",
+ "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz",
+ "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A=="
+ },
"node_modules/mkdirp2": {
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/mkdirp2/-/mkdirp2-1.0.5.tgz",
@@ -7872,7 +8672,6 @@
"version": "0.38.5",
"resolved": "https://registry.npmjs.org/mnemonist/-/mnemonist-0.38.5.tgz",
"integrity": "sha512-bZTFT5rrPKtPJxj8KSV0WkPyNxl72vQepqqVUAW2ARUpUSF2qXMB6jZj7hW5/k7C1rtpzqbD/IIbJwLXUjCHeg==",
- "dev": true,
"dependencies": {
"obliterator": "^2.0.0"
}
@@ -7881,7 +8680,6 @@
"version": "10.3.0",
"resolved": "https://registry.npmjs.org/mocha/-/mocha-10.3.0.tgz",
"integrity": "sha512-uF2XJs+7xSLsrmIvn37i/wnc91nw7XjOQB8ccyx5aEgdnohr7n+rEiZP23WkCYHjilR6+EboEnbq/ZQDz4LSbg==",
- "dev": true,
"dependencies": {
"ansi-colors": "4.1.1",
"browser-stdout": "1.3.1",
@@ -7916,7 +8714,6 @@
"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,
"engines": {
"node": ">=6"
}
@@ -7925,7 +8722,6 @@
"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"
}
@@ -7934,7 +8730,6 @@
"version": "3.5.3",
"resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz",
"integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==",
- "dev": true,
"funding": [
{
"type": "individual",
@@ -7961,7 +8756,6 @@
"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"
},
@@ -7973,7 +8767,6 @@
"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"
@@ -7989,7 +8782,6 @@
"version": "8.1.0",
"resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz",
"integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==",
- "dev": true,
"dependencies": {
"fs.realpath": "^1.0.0",
"inflight": "^1.0.4",
@@ -8008,7 +8800,6 @@
"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"
}
@@ -8017,7 +8808,6 @@
"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"
},
@@ -8032,7 +8822,6 @@
"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"
},
@@ -8043,14 +8832,12 @@
"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
+ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="
},
"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==",
- "dev": true,
"dependencies": {
"yocto-queue": "^0.1.0"
},
@@ -8065,7 +8852,6 @@
"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"
},
@@ -8080,7 +8866,6 @@
"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"
}
@@ -8089,7 +8874,6 @@
"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"
},
@@ -8100,11 +8884,24 @@
"url": "https://github.com/chalk/supports-color?sponsor=1"
}
},
+ "node_modules/mri": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/mri/-/mri-1.2.0.tgz",
+ "integrity": "sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==",
+ "engines": {
+ "node": ">=4"
+ }
+ },
"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==",
- "devOptional": true
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
+ },
+ "node_modules/nan": {
+ "version": "2.20.0",
+ "resolved": "https://registry.npmjs.org/nan/-/nan-2.20.0.tgz",
+ "integrity": "sha512-bk3gXBZDGILuuo/6sKtr0DQmSThYHLtNCdSdXk9YkxD/jK6X2vmCyyXBBxyqZ4XcnzTyYEAThfX3DCEnLf6igw==",
+ "optional": true
},
"node_modules/neo-async": {
"version": "2.6.2",
@@ -8117,11 +8914,30 @@
"resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz",
"integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ=="
},
+ "node_modules/nise": {
+ "version": "6.1.1",
+ "resolved": "https://registry.npmjs.org/nise/-/nise-6.1.1.tgz",
+ "integrity": "sha512-aMSAzLVY7LyeM60gvBS423nBmIPP+Wy7St7hsb+8/fc1HmeoHJfLO8CKse4u3BtOZvQLJghYPI2i/1WZrEj5/g==",
+ "dependencies": {
+ "@sinonjs/commons": "^3.0.1",
+ "@sinonjs/fake-timers": "^13.0.1",
+ "@sinonjs/text-encoding": "^0.7.3",
+ "just-extend": "^6.2.0",
+ "path-to-regexp": "^8.1.0"
+ }
+ },
+ "node_modules/nise/node_modules/@sinonjs/fake-timers": {
+ "version": "13.0.2",
+ "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-13.0.2.tgz",
+ "integrity": "sha512-4Bb+oqXZTSTZ1q27Izly9lv8B9dlV61CROxPiVtywwzv5SnytJqhvYe6FclHYuXml4cd1VHPo1zd5PmTeJozvA==",
+ "dependencies": {
+ "@sinonjs/commons": "^3.0.1"
+ }
+ },
"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==",
- "devOptional": true
+ "integrity": "sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA=="
},
"node_modules/node-emoji": {
"version": "1.11.0",
@@ -8156,7 +8972,6 @@
"version": "4.8.0",
"resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.8.0.tgz",
"integrity": "sha512-u6fs2AEUljNho3EYTJNBfImO5QTo/J/1Etd+NVdCj7qWKUSN/bSLkZwhDv7I+w/MSC6qJ4cknepkAYykDdK8og==",
- "devOptional": true,
"bin": {
"node-gyp-build": "bin.js",
"node-gyp-build-optional": "optional.js",
@@ -8167,7 +8982,6 @@
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/nofilter/-/nofilter-3.1.0.tgz",
"integrity": "sha512-l2NNj07e9afPnhAhvgVrCD/oy2Ai1yfLpuo3EpiO1jFTsB4sFz6oIfAfSZyQzVpkZQ9xS8ZS5g1jCBgq4Hwo0g==",
- "devOptional": true,
"engines": {
"node": ">=12.19"
}
@@ -8208,7 +9022,6 @@
"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"
}
@@ -8298,8 +9111,7 @@
"node_modules/obliterator": {
"version": "2.0.4",
"resolved": "https://registry.npmjs.org/obliterator/-/obliterator-2.0.4.tgz",
- "integrity": "sha512-lgHwxlxV1qIg1Eap7LgIeoBWIMFibOjbrYPIPJZcI1mmGAI2m3lNYpK12Y+GBdPQ0U1hRwSord7GIaawz962qQ==",
- "dev": true
+ "integrity": "sha512-lgHwxlxV1qIg1Eap7LgIeoBWIMFibOjbrYPIPJZcI1mmGAI2m3lNYpK12Y+GBdPQ0U1hRwSord7GIaawz962qQ=="
},
"node_modules/once": {
"version": "1.4.0",
@@ -8385,7 +9197,6 @@
"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"
},
@@ -8397,7 +9208,6 @@
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz",
"integrity": "sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg==",
- "dev": true,
"dependencies": {
"p-limit": "^1.1.0"
},
@@ -8409,7 +9219,6 @@
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz",
"integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==",
- "dev": true,
"dependencies": {
"aggregate-error": "^3.0.0"
},
@@ -8424,7 +9233,6 @@
"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,
"engines": {
"node": ">=4"
}
@@ -8600,7 +9408,6 @@
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
"integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==",
- "dev": true,
"engines": {
"node": ">=4"
}
@@ -8653,6 +9460,14 @@
"node": "20 || >=22"
}
},
+ "node_modules/path-to-regexp": {
+ "version": "8.2.0",
+ "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-8.2.0.tgz",
+ "integrity": "sha512-TdrF7fW9Rphjq4RjrW0Kp2AW0Ahwu9sRGTkS6bvDi0SCwZlEZYmcfDbEsTz8RVk0EHIS/Vd1bv3JhG+1xZuAyQ==",
+ "engines": {
+ "node": ">=16"
+ }
+ },
"node_modules/path-type": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz",
@@ -8673,7 +9488,6 @@
"version": "3.1.2",
"resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz",
"integrity": "sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==",
- "devOptional": true,
"dependencies": {
"create-hash": "^1.1.2",
"create-hmac": "^1.1.4",
@@ -8900,9 +9714,7 @@
"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==",
- "dev": true,
- "peer": true
+ "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag=="
},
"node_modules/promise": {
"version": "8.3.0",
@@ -8918,7 +9730,6 @@
"version": "4.1.2",
"resolved": "https://registry.npmjs.org/proper-lockfile/-/proper-lockfile-4.1.2.tgz",
"integrity": "sha512-TjNPblN4BwAWMXU8s9AEz4JmQxnD1NNL7bNOY/AKUzyamc379FWASUhc/K1pL2noVb+XmZKLL68cjzLsiOAMaA==",
- "optional": true,
"dependencies": {
"graceful-fs": "^4.2.4",
"retry": "^0.12.0",
@@ -8928,21 +9739,26 @@
"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,
- "peer": true
+ "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg=="
},
"node_modules/pseudomap": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz",
"integrity": "sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ=="
},
+ "node_modules/pump": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.2.tgz",
+ "integrity": "sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw==",
+ "dependencies": {
+ "end-of-stream": "^1.1.0",
+ "once": "^1.3.1"
+ }
+ },
"node_modules/punycode": {
"version": "2.3.1",
"resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz",
"integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==",
- "dev": true,
- "peer": true,
"engines": {
"node": ">=6"
}
@@ -9004,7 +9820,6 @@
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz",
"integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==",
- "devOptional": true,
"dependencies": {
"safe-buffer": "^5.1.0"
}
@@ -9013,7 +9828,6 @@
"version": "2.5.2",
"resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz",
"integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==",
- "dev": true,
"dependencies": {
"bytes": "3.1.2",
"http-errors": "2.0.0",
@@ -9184,7 +9998,6 @@
"version": "3.6.2",
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz",
"integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==",
- "devOptional": true,
"dependencies": {
"inherits": "^2.0.3",
"string_decoder": "^1.1.1",
@@ -9198,7 +10011,6 @@
"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"
},
@@ -9418,7 +10230,6 @@
"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"
}
@@ -9463,7 +10274,6 @@
"version": "0.12.0",
"resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz",
"integrity": "sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==",
- "optional": true,
"engines": {
"node": ">= 4"
}
@@ -9551,7 +10361,6 @@
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz",
"integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==",
- "devOptional": true,
"dependencies": {
"hash-base": "^3.0.0",
"inherits": "^2.0.1"
@@ -9561,7 +10370,6 @@
"version": "2.2.7",
"resolved": "https://registry.npmjs.org/rlp/-/rlp-2.2.7.tgz",
"integrity": "sha512-d5gdPmgQ0Z+AklL2NVXr/IoSjNZFfTVvQWzL/AM2AOcSzYP2xjlb0AC8YyCLc41MSNf6P6QVtjgPdmVtzb+4lQ==",
- "devOptional": true,
"dependencies": {
"bn.js": "^5.2.0"
},
@@ -9591,21 +10399,6 @@
"queue-microtask": "^1.2.2"
}
},
- "node_modules/rust-verkle-wasm": {
- "version": "0.0.1",
- "resolved": "https://registry.npmjs.org/rust-verkle-wasm/-/rust-verkle-wasm-0.0.1.tgz",
- "integrity": "sha512-BN6fiTsxcd2dCECz/cHtGTt9cdLJR925nh7iAuRcj8ymKw7OOaPmCneQZ7JePOJ/ia27TjEL91VdOi88Yf+mcA==",
- "dev": true
- },
- "node_modules/rustbn-wasm": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/rustbn-wasm/-/rustbn-wasm-0.2.0.tgz",
- "integrity": "sha512-FThvYFNTqrEKGqXuseeg0zR7yROh/6U1617mCHF68OVqrN1tNKRN7Tdwy4WayPVsCmmK+eMxtIZX1qL6JxTkMg==",
- "dev": true,
- "dependencies": {
- "@scure/base": "^1.1.1"
- }
- },
"node_modules/safe-array-concat": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.2.tgz",
@@ -9632,7 +10425,6 @@
"version": "5.2.1",
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
"integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
- "devOptional": true,
"funding": [
{
"type": "github",
@@ -9789,7 +10581,6 @@
"version": "4.0.3",
"resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-4.0.3.tgz",
"integrity": "sha512-NLZVf+ROMxwtEj3Xa562qgv2BK5e2WNmXPiOdVIPLgs6lyTzMvBq0aWTYMI5XCP9jZMVKOcqZLw/Wc4vDkuxhA==",
- "devOptional": true,
"hasInstallScript": true,
"dependencies": {
"elliptic": "^6.5.4",
@@ -9804,7 +10595,6 @@
"version": "6.3.1",
"resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
"integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
- "dev": true,
"bin": {
"semver": "bin/semver.js"
}
@@ -9813,7 +10603,6 @@
"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"
}
@@ -9856,20 +10645,17 @@
"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==",
- "devOptional": true
+ "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA=="
},
"node_modules/setprototypeof": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz",
- "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==",
- "dev": true
+ "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==",
- "devOptional": true,
"dependencies": {
"inherits": "^2.0.1",
"safe-buffer": "^5.0.1"
@@ -9951,6 +10737,59 @@
"resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz",
"integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ=="
},
+ "node_modules/sinon": {
+ "version": "18.0.1",
+ "resolved": "https://registry.npmjs.org/sinon/-/sinon-18.0.1.tgz",
+ "integrity": "sha512-a2N2TDY1uGviajJ6r4D1CyRAkzE9NNVlYOV1wX5xQDuAk0ONgzgRl0EjCQuRCPxOwp13ghsMwt9Gdldujs39qw==",
+ "dependencies": {
+ "@sinonjs/commons": "^3.0.1",
+ "@sinonjs/fake-timers": "11.2.2",
+ "@sinonjs/samsam": "^8.0.0",
+ "diff": "^5.2.0",
+ "nise": "^6.0.0",
+ "supports-color": "^7"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/sinon"
+ }
+ },
+ "node_modules/sinon-chai": {
+ "version": "3.7.0",
+ "resolved": "https://registry.npmjs.org/sinon-chai/-/sinon-chai-3.7.0.tgz",
+ "integrity": "sha512-mf5NURdUaSdnatJx3uhoBOrY9dtL19fiOtAdT1Azxg3+lNJFiuN0uzaU3xX1LeAfL17kHQhTAJgpsfhbMJMY2g==",
+ "peerDependencies": {
+ "chai": "^4.0.0",
+ "sinon": ">=4.0.0"
+ }
+ },
+ "node_modules/sinon/node_modules/diff": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/diff/-/diff-5.2.0.tgz",
+ "integrity": "sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A==",
+ "engines": {
+ "node": ">=0.3.1"
+ }
+ },
+ "node_modules/sinon/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/sinon/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/slash": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
@@ -9963,8 +10802,6 @@
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz",
"integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==",
- "dev": true,
- "peer": true,
"dependencies": {
"ansi-styles": "^4.0.0",
"astral-regex": "^2.0.0",
@@ -9981,8 +10818,6 @@
"version": "4.3.0",
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
"integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "dev": true,
- "peer": true,
"dependencies": {
"color-convert": "^2.0.1"
},
@@ -9997,8 +10832,6 @@
"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,
- "peer": true,
"dependencies": {
"color-name": "~1.1.4"
},
@@ -10009,9 +10842,7 @@
"node_modules/slice-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==",
- "dev": true,
- "peer": true
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
},
"node_modules/smartwrap": {
"version": "2.0.2",
@@ -10204,69 +11035,29 @@
}
},
"node_modules/solc": {
- "version": "0.7.3",
- "resolved": "https://registry.npmjs.org/solc/-/solc-0.7.3.tgz",
- "integrity": "sha512-GAsWNAjGzIDg7VxzP6mPjdurby3IkGCjQcM8GFYZT6RyaoUZKmMU6Y7YwG+tFGhv7dwZ8rmR4iwFDrrD99JwqA==",
- "dev": true,
+ "version": "0.8.26",
+ "resolved": "https://registry.npmjs.org/solc/-/solc-0.8.26.tgz",
+ "integrity": "sha512-yiPQNVf5rBFHwN6SIf3TUUvVAFKcQqmSUFeq+fb6pNRCo0ZCgpYOZDi3BVoezCPIAcKrVYd/qXlBLUP9wVrZ9g==",
"dependencies": {
"command-exists": "^1.2.8",
- "commander": "3.0.2",
+ "commander": "^8.1.0",
"follow-redirects": "^1.12.1",
- "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"
},
"bin": {
- "solcjs": "solcjs"
+ "solcjs": "solc.js"
},
"engines": {
- "node": ">=8.0.0"
- }
- },
- "node_modules/solc/node_modules/fs-extra": {
- "version": "0.30.0",
- "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-0.30.0.tgz",
- "integrity": "sha512-UvSPKyhMn6LEd/WpUaV9C9t3zATuqoqfWc3QdPhPLb58prN9tqYPlPWi8Krxi44loBoUzlobqZ3+8tGpxxSzwA==",
- "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/node_modules/jsonfile": {
- "version": "2.4.0",
- "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz",
- "integrity": "sha512-PKllAqbgLgxHaj8TElYymKCAgrASebJrWpTnEkOaTowt23VKXXN0sUeriJ+eh7y6ufb/CC5ap11pz71/cM0hUw==",
- "dev": true,
- "optionalDependencies": {
- "graceful-fs": "^4.1.6"
- }
- },
- "node_modules/solc/node_modules/rimraf": {
- "version": "2.7.1",
- "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz",
- "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==",
- "deprecated": "Rimraf versions prior to v4 are no longer supported",
- "dev": true,
- "license": "ISC",
- "dependencies": {
- "glob": "^7.1.3"
- },
- "bin": {
- "rimraf": "bin.js"
+ "node": ">=10.0.0"
}
},
"node_modules/solc/node_modules/semver": {
"version": "5.7.2",
"resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz",
"integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==",
- "dev": true,
"bin": {
"semver": "bin/semver"
}
@@ -10451,7 +11242,6 @@
"version": "0.5.21",
"resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz",
"integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==",
- "dev": true,
"dependencies": {
"buffer-from": "^1.0.0",
"source-map": "^0.6.0"
@@ -10461,7 +11251,6 @@
"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"
}
@@ -10527,16 +11316,37 @@
"resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.18.tgz",
"integrity": "sha512-xxRs31BqRYHwiMzudOrpSiHtZ8i/GeionCBDSilhYRj+9gIcI8wCZTlXZKu9vZIVqViP3dcp9qE5G6AlIaD+TQ=="
},
+ "node_modules/split-ca": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/split-ca/-/split-ca-1.0.1.tgz",
+ "integrity": "sha512-Q5thBSxp5t8WPTTJQS59LrGqOZqOsrhDGDVm8azCqIBjSBd7nd9o2PM+mDulQQkh8h//4U6hFZnc/mul8t5pWQ=="
+ },
"node_modules/sprintf-js": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
"integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g=="
},
+ "node_modules/ssh2": {
+ "version": "1.16.0",
+ "resolved": "https://registry.npmjs.org/ssh2/-/ssh2-1.16.0.tgz",
+ "integrity": "sha512-r1X4KsBGedJqo7h8F5c4Ybpcr5RjyP+aWIG007uBPRjmdQWfEiVLzSK71Zji1B9sKxwaCvD8y8cwSkYrlLiRRg==",
+ "hasInstallScript": true,
+ "dependencies": {
+ "asn1": "^0.2.6",
+ "bcrypt-pbkdf": "^1.0.2"
+ },
+ "engines": {
+ "node": ">=10.16.0"
+ },
+ "optionalDependencies": {
+ "cpu-features": "~0.0.10",
+ "nan": "^2.20.0"
+ }
+ },
"node_modules/stacktrace-parser": {
"version": "0.1.10",
"resolved": "https://registry.npmjs.org/stacktrace-parser/-/stacktrace-parser-0.1.10.tgz",
"integrity": "sha512-KJP1OCML99+8fhOHxwwzyWrlUuVX5GQ0ZpJTd1DFXhdkrvg1szxfHhawXUZ3g9TkXORQd4/WG68jMlQZ2p8wlg==",
- "dev": true,
"dependencies": {
"type-fest": "^0.7.1"
},
@@ -10548,7 +11358,6 @@
"version": "0.7.1",
"resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.7.1.tgz",
"integrity": "sha512-Ne2YiiGN8bmrmJJEuTWTLJR32nh/JdL1+PSicowtNb0WFpn59GK8/lfD61bVtzguz7b3PBt74nxpv/Pw5po5Rg==",
- "dev": true,
"engines": {
"node": ">=8"
}
@@ -10557,7 +11366,6 @@
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz",
"integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==",
- "dev": true,
"engines": {
"node": ">= 0.8"
}
@@ -10617,7 +11425,6 @@
"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==",
- "devOptional": true,
"dependencies": {
"safe-buffer": "~5.2.0"
}
@@ -10741,7 +11548,6 @@
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/strip-hex-prefix/-/strip-hex-prefix-1.0.0.tgz",
"integrity": "sha512-q8d4ue7JGEiVcypji1bALTos+0pWtyGlivAWyPuTkHzuTCJqrK9sWxYQZUq6Nq3cuyv3bm734IhHvHtGGURU6A==",
- "dev": true,
"dependencies": {
"is-hex-prefixed": "1.0.0"
},
@@ -10765,7 +11571,6 @@
"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"
},
@@ -10813,8 +11618,6 @@
"version": "6.8.1",
"resolved": "https://registry.npmjs.org/table/-/table-6.8.1.tgz",
"integrity": "sha512-Y4X9zqrCftUhMeH2EptSSERdVKt/nEdijTOacGD/97EKjhQ/Qs8RTlEGABSJNNN8lac9kheH+af7yAkEWlgneA==",
- "dev": true,
- "peer": true,
"dependencies": {
"ajv": "^8.0.1",
"lodash.truncate": "^4.4.2",
@@ -10862,6 +11665,32 @@
"node": ">=8"
}
},
+ "node_modules/tar-fs": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.0.1.tgz",
+ "integrity": "sha512-6tzWDMeroL87uF/+lin46k+Q+46rAJ0SyPGz7OW7wTgblI273hsBqk2C1j0/xNadNLKDTUL9BukSjB7cwgmlPA==",
+ "dependencies": {
+ "chownr": "^1.1.1",
+ "mkdirp-classic": "^0.5.2",
+ "pump": "^3.0.0",
+ "tar-stream": "^2.0.0"
+ }
+ },
+ "node_modules/tar-stream": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz",
+ "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==",
+ "dependencies": {
+ "bl": "^4.0.3",
+ "end-of-stream": "^1.4.1",
+ "fs-constants": "^1.0.0",
+ "inherits": "^2.0.3",
+ "readable-stream": "^3.1.1"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
"node_modules/temp-path": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/temp-path/-/temp-path-1.0.0.tgz",
@@ -10959,6 +11788,11 @@
"node": ">= 0.12"
}
},
+ "node_modules/through": {
+ "version": "2.3.8",
+ "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz",
+ "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg=="
+ },
"node_modules/tmp": {
"version": "0.0.33",
"resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz",
@@ -10970,6 +11804,11 @@
"node": ">=0.6.0"
}
},
+ "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=="
+ },
"node_modules/to-regex-range": {
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
@@ -10985,7 +11824,6 @@
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz",
"integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==",
- "dev": true,
"engines": {
"node": ">=0.6"
}
@@ -11109,7 +11947,7 @@
"version": "10.9.2",
"resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.2.tgz",
"integrity": "sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==",
- "dev": true,
+ "devOptional": true,
"peer": true,
"dependencies": {
"@cspotcode/source-map-support": "^0.8.0",
@@ -11153,7 +11991,7 @@
"version": "4.0.2",
"resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz",
"integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==",
- "dev": true,
+ "devOptional": true,
"peer": true,
"engines": {
"node": ">=0.3.1"
@@ -11169,8 +12007,7 @@
"node_modules/tsort": {
"version": "0.0.1",
"resolved": "https://registry.npmjs.org/tsort/-/tsort-0.0.1.tgz",
- "integrity": "sha512-Tyrf5mxF8Ofs1tNoxA13lFeZ2Zrbd6cKbuH3V+MQ5sb6DtBj5FjrXVsRWT8YvNAQTqNoz66dz1WsbigI22aEnw==",
- "dev": true
+ "integrity": "sha512-Tyrf5mxF8Ofs1tNoxA13lFeZ2Zrbd6cKbuH3V+MQ5sb6DtBj5FjrXVsRWT8YvNAQTqNoz66dz1WsbigI22aEnw=="
},
"node_modules/tty-table": {
"version": "4.2.3",
@@ -11297,14 +12134,12 @@
"node_modules/tweetnacl": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.3.tgz",
- "integrity": "sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==",
- "dev": true
+ "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==",
- "dev": true
+ "integrity": "sha512-RKJBIj8lySrShN4w6i/BonWp2Z/uxwC3h4y7xsRrpP59ZboCd0GpEVsOnMDYLMmKBpYhb5TgHzZXy7wTfYFBRw=="
},
"node_modules/type-check": {
"version": "0.3.2",
@@ -11331,7 +12166,6 @@
"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"
},
@@ -11522,15 +12356,13 @@
"node_modules/typedarray": {
"version": "0.0.6",
"resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz",
- "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==",
- "dev": true,
- "peer": true
+ "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA=="
},
"node_modules/typescript": {
"version": "5.3.3",
"resolved": "https://registry.npmjs.org/typescript/-/typescript-5.3.3.tgz",
"integrity": "sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==",
- "dev": true,
+ "devOptional": true,
"peer": true,
"bin": {
"tsc": "bin/tsc",
@@ -11594,7 +12426,6 @@
"version": "5.28.3",
"resolved": "https://registry.npmjs.org/undici/-/undici-5.28.3.tgz",
"integrity": "sha512-3ItfzbrhDlINjaP0duwnNsKpDQk3acHI3gVJ1z4fmwMK31k5G9OVIAMLSIaP6w4FaGkaAkN6zaQO9LUvZ1t7VA==",
- "dev": true,
"dependencies": {
"@fastify/busboy": "^2.0.0"
},
@@ -11605,8 +12436,7 @@
"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==",
- "devOptional": true
+ "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA=="
},
"node_modules/universalify": {
"version": "2.0.1",
@@ -11620,7 +12450,6 @@
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
"integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==",
- "dev": true,
"engines": {
"node": ">= 0.8"
}
@@ -11629,8 +12458,6 @@
"version": "4.4.1",
"resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz",
"integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==",
- "dev": true,
- "peer": true,
"dependencies": {
"punycode": "^2.1.0"
}
@@ -11645,14 +12472,12 @@
"node_modules/util-deprecate": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
- "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==",
- "devOptional": true
+ "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw=="
},
"node_modules/uuid": {
"version": "8.3.2",
"resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz",
"integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==",
- "dev": true,
"bin": {
"uuid": "dist/bin/uuid"
}
@@ -11661,7 +12486,7 @@
"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,
+ "devOptional": true,
"peer": true
},
"node_modules/validate-npm-package-license": {
@@ -11837,7 +12662,6 @@
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz",
"integrity": "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==",
- "dev": true,
"dependencies": {
"string-width": "^4.0.0"
},
@@ -11888,8 +12712,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
+ "integrity": "sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw=="
},
"node_modules/wrap-ansi": {
"version": "7.0.0",
@@ -12026,6 +12849,14 @@
"dev": true,
"license": "Apache-2.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": "5.0.8",
"resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz",
@@ -12053,7 +12884,6 @@
"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",
@@ -12071,7 +12901,6 @@
"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"
}
@@ -12080,7 +12909,6 @@
"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",
@@ -12095,7 +12923,7 @@
"version": "3.1.1",
"resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz",
"integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==",
- "dev": true,
+ "devOptional": true,
"peer": true,
"engines": {
"node": ">=6"
@@ -12207,6 +13035,11 @@
"regenerator-runtime": "^0.14.0"
}
},
+ "@balena/dockerignore": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/@balena/dockerignore/-/dockerignore-1.0.2.tgz",
+ "integrity": "sha512-wMue2Sy4GAVTk6Ic4tJVcnfdau+gx2EnG7S+uAEe+TWJFqE4YoWN4/H8MSLj4eYJKxGg26lZwboEniNiNwZQ6Q=="
+ },
"@chainlink/contracts": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/@chainlink/contracts/-/contracts-1.1.1.tgz",
@@ -12269,26 +13102,259 @@
"@ethersproject/wordlists": "5.7.0"
}
},
- "semver": {
- "version": "7.6.2",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz",
- "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w=="
- }
- }
- },
- "@chainlink/contracts-ccip": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/@chainlink/contracts-ccip/-/contracts-ccip-1.4.0.tgz",
- "integrity": "sha512-8F0OpmXy73vSbOvnKPL0DcYLA6FTiwQSKw1+DQzKyBYVbFk4vtijzs+5Ts/Beu6EIPqXlmLq7WVFZFHiDOBjCg==",
- "requires": {
- "@arbitrum/nitro-contracts": "1.1.1",
- "@arbitrum/token-bridge-contracts": "1.1.2",
- "@eth-optimism/contracts": "0.6.0",
- "@openzeppelin/contracts": "4.9.3",
- "@openzeppelin/contracts-upgradeable": "4.9.3",
- "@scroll-tech/contracts": "0.1.0"
- },
- "dependencies": {
+ "semver": {
+ "version": "7.6.2",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz",
+ "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w=="
+ }
+ }
+ },
+ "@chainlink/contracts-ccip": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/@chainlink/contracts-ccip/-/contracts-ccip-1.5.0.tgz",
+ "integrity": "sha512-pz6vhAY6ey5vLjU6mUv7rapRIKXWS2kEhd+J4axdeQhyClfyl+HyzqBTL+Jd/tbekhrfEn2YbkhIZXlovvUk7w==",
+ "requires": {
+ "@arbitrum/nitro-contracts": "1.1.1",
+ "@arbitrum/token-bridge-contracts": "1.1.2",
+ "@changesets/changelog-github": "^0.5.0",
+ "@changesets/cli": "~2.27.7",
+ "@eth-optimism/contracts": "0.6.0",
+ "@matterlabs/hardhat-zksync-verify": "^1.6.0",
+ "@openzeppelin/contracts": "4.9.3",
+ "@openzeppelin/contracts-upgradeable": "4.9.3",
+ "@scroll-tech/contracts": "0.1.0",
+ "semver": "^7.6.3"
+ },
+ "dependencies": {
+ "@changesets/apply-release-plan": {
+ "version": "7.0.4",
+ "resolved": "https://registry.npmjs.org/@changesets/apply-release-plan/-/apply-release-plan-7.0.4.tgz",
+ "integrity": "sha512-HLFwhKWayKinWAul0Vj+76jVx1Pc2v55MGPVjZ924Y/ROeSsBMFutv9heHmCUj48lJyRfOTJG5+ar+29FUky/A==",
+ "requires": {
+ "@babel/runtime": "^7.20.1",
+ "@changesets/config": "^3.0.2",
+ "@changesets/get-version-range-type": "^0.4.0",
+ "@changesets/git": "^3.0.0",
+ "@changesets/should-skip-package": "^0.1.0",
+ "@changesets/types": "^6.0.0",
+ "@manypkg/get-packages": "^1.1.3",
+ "detect-indent": "^6.0.0",
+ "fs-extra": "^7.0.1",
+ "lodash.startcase": "^4.4.0",
+ "outdent": "^0.5.0",
+ "prettier": "^2.7.1",
+ "resolve-from": "^5.0.0",
+ "semver": "^7.5.3"
+ }
+ },
+ "@changesets/assemble-release-plan": {
+ "version": "6.0.3",
+ "resolved": "https://registry.npmjs.org/@changesets/assemble-release-plan/-/assemble-release-plan-6.0.3.tgz",
+ "integrity": "sha512-bLNh9/Lgl1VwkjWZTq8JmRqH+hj7/Yzfz0jsQ/zJJ+FTmVqmqPj3szeKOri8O/hEM8JmHW019vh2gTO9iq5Cuw==",
+ "requires": {
+ "@babel/runtime": "^7.20.1",
+ "@changesets/errors": "^0.2.0",
+ "@changesets/get-dependents-graph": "^2.1.1",
+ "@changesets/should-skip-package": "^0.1.0",
+ "@changesets/types": "^6.0.0",
+ "@manypkg/get-packages": "^1.1.3",
+ "semver": "^7.5.3"
+ }
+ },
+ "@changesets/changelog-git": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/@changesets/changelog-git/-/changelog-git-0.2.0.tgz",
+ "integrity": "sha512-bHOx97iFI4OClIT35Lok3sJAwM31VbUM++gnMBV16fdbtBhgYu4dxsphBF/0AZZsyAHMrnM0yFcj5gZM1py6uQ==",
+ "requires": {
+ "@changesets/types": "^6.0.0"
+ }
+ },
+ "@changesets/changelog-github": {
+ "version": "0.5.0",
+ "resolved": "https://registry.npmjs.org/@changesets/changelog-github/-/changelog-github-0.5.0.tgz",
+ "integrity": "sha512-zoeq2LJJVcPJcIotHRJEEA2qCqX0AQIeFE+L21L8sRLPVqDhSXY8ZWAt2sohtBpFZkBwu+LUwMSKRr2lMy3LJA==",
+ "requires": {
+ "@changesets/get-github-info": "^0.6.0",
+ "@changesets/types": "^6.0.0",
+ "dotenv": "^8.1.0"
+ }
+ },
+ "@changesets/cli": {
+ "version": "2.27.7",
+ "resolved": "https://registry.npmjs.org/@changesets/cli/-/cli-2.27.7.tgz",
+ "integrity": "sha512-6lr8JltiiXPIjDeYg4iM2MeePP6VN/JkmqBsVA5XRiy01hGS3y629LtSDvKcycj/w/5Eur1rEwby/MjcYS+e2A==",
+ "requires": {
+ "@babel/runtime": "^7.20.1",
+ "@changesets/apply-release-plan": "^7.0.4",
+ "@changesets/assemble-release-plan": "^6.0.3",
+ "@changesets/changelog-git": "^0.2.0",
+ "@changesets/config": "^3.0.2",
+ "@changesets/errors": "^0.2.0",
+ "@changesets/get-dependents-graph": "^2.1.1",
+ "@changesets/get-release-plan": "^4.0.3",
+ "@changesets/git": "^3.0.0",
+ "@changesets/logger": "^0.1.0",
+ "@changesets/pre": "^2.0.0",
+ "@changesets/read": "^0.6.0",
+ "@changesets/should-skip-package": "^0.1.0",
+ "@changesets/types": "^6.0.0",
+ "@changesets/write": "^0.3.1",
+ "@manypkg/get-packages": "^1.1.3",
+ "@types/semver": "^7.5.0",
+ "ansi-colors": "^4.1.3",
+ "chalk": "^2.1.0",
+ "ci-info": "^3.7.0",
+ "enquirer": "^2.3.0",
+ "external-editor": "^3.1.0",
+ "fs-extra": "^7.0.1",
+ "human-id": "^1.0.2",
+ "mri": "^1.2.0",
+ "outdent": "^0.5.0",
+ "p-limit": "^2.2.0",
+ "preferred-pm": "^3.0.0",
+ "resolve-from": "^5.0.0",
+ "semver": "^7.5.3",
+ "spawndamnit": "^2.0.0",
+ "term-size": "^2.1.0"
+ }
+ },
+ "@changesets/config": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/@changesets/config/-/config-3.0.2.tgz",
+ "integrity": "sha512-cdEhS4t8woKCX2M8AotcV2BOWnBp09sqICxKapgLHf9m5KdENpWjyrFNMjkLqGJtUys9U+w93OxWT0czorVDfw==",
+ "requires": {
+ "@changesets/errors": "^0.2.0",
+ "@changesets/get-dependents-graph": "^2.1.1",
+ "@changesets/logger": "^0.1.0",
+ "@changesets/types": "^6.0.0",
+ "@manypkg/get-packages": "^1.1.3",
+ "fs-extra": "^7.0.1",
+ "micromatch": "^4.0.2"
+ }
+ },
+ "@changesets/errors": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/@changesets/errors/-/errors-0.2.0.tgz",
+ "integrity": "sha512-6BLOQUscTpZeGljvyQXlWOItQyU71kCdGz7Pi8H8zdw6BI0g3m43iL4xKUVPWtG+qrrL9DTjpdn8eYuCQSRpow==",
+ "requires": {
+ "extendable-error": "^0.1.5"
+ }
+ },
+ "@changesets/get-dependents-graph": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/@changesets/get-dependents-graph/-/get-dependents-graph-2.1.1.tgz",
+ "integrity": "sha512-LRFjjvigBSzfnPU2n/AhFsuWR5DK++1x47aq6qZ8dzYsPtS/I5mNhIGAS68IAxh1xjO9BTtz55FwefhANZ+FCA==",
+ "requires": {
+ "@changesets/types": "^6.0.0",
+ "@manypkg/get-packages": "^1.1.3",
+ "chalk": "^2.1.0",
+ "fs-extra": "^7.0.1",
+ "semver": "^7.5.3"
+ }
+ },
+ "@changesets/get-github-info": {
+ "version": "0.6.0",
+ "resolved": "https://registry.npmjs.org/@changesets/get-github-info/-/get-github-info-0.6.0.tgz",
+ "integrity": "sha512-v/TSnFVXI8vzX9/w3DU2Ol+UlTZcu3m0kXTjTT4KlAdwSvwutcByYwyYn9hwerPWfPkT2JfpoX0KgvCEi8Q/SA==",
+ "requires": {
+ "dataloader": "^1.4.0",
+ "node-fetch": "^2.5.0"
+ }
+ },
+ "@changesets/get-release-plan": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/@changesets/get-release-plan/-/get-release-plan-4.0.3.tgz",
+ "integrity": "sha512-6PLgvOIwTSdJPTtpdcr3sLtGatT+Jr22+cQwEBJBy6wP0rjB4yJ9lv583J9fVpn1bfQlBkDa8JxbS2g/n9lIyA==",
+ "requires": {
+ "@babel/runtime": "^7.20.1",
+ "@changesets/assemble-release-plan": "^6.0.3",
+ "@changesets/config": "^3.0.2",
+ "@changesets/pre": "^2.0.0",
+ "@changesets/read": "^0.6.0",
+ "@changesets/types": "^6.0.0",
+ "@manypkg/get-packages": "^1.1.3"
+ }
+ },
+ "@changesets/get-version-range-type": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/@changesets/get-version-range-type/-/get-version-range-type-0.4.0.tgz",
+ "integrity": "sha512-hwawtob9DryoGTpixy1D3ZXbGgJu1Rhr+ySH2PvTLHvkZuQ7sRT4oQwMh0hbqZH1weAooedEjRsbrWcGLCeyVQ=="
+ },
+ "@changesets/git": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/@changesets/git/-/git-3.0.0.tgz",
+ "integrity": "sha512-vvhnZDHe2eiBNRFHEgMiGd2CT+164dfYyrJDhwwxTVD/OW0FUD6G7+4DIx1dNwkwjHyzisxGAU96q0sVNBns0w==",
+ "requires": {
+ "@babel/runtime": "^7.20.1",
+ "@changesets/errors": "^0.2.0",
+ "@changesets/types": "^6.0.0",
+ "@manypkg/get-packages": "^1.1.3",
+ "is-subdir": "^1.1.1",
+ "micromatch": "^4.0.2",
+ "spawndamnit": "^2.0.0"
+ }
+ },
+ "@changesets/logger": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/@changesets/logger/-/logger-0.1.0.tgz",
+ "integrity": "sha512-pBrJm4CQm9VqFVwWnSqKEfsS2ESnwqwH+xR7jETxIErZcfd1u2zBSqrHbRHR7xjhSgep9x2PSKFKY//FAshA3g==",
+ "requires": {
+ "chalk": "^2.1.0"
+ }
+ },
+ "@changesets/parse": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/@changesets/parse/-/parse-0.4.0.tgz",
+ "integrity": "sha512-TS/9KG2CdGXS27S+QxbZXgr8uPsP4yNJYb4BC2/NeFUj80Rni3TeD2qwWmabymxmrLo7JEsytXH1FbpKTbvivw==",
+ "requires": {
+ "@changesets/types": "^6.0.0",
+ "js-yaml": "^3.13.1"
+ }
+ },
+ "@changesets/pre": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/@changesets/pre/-/pre-2.0.0.tgz",
+ "integrity": "sha512-HLTNYX/A4jZxc+Sq8D1AMBsv+1qD6rmmJtjsCJa/9MSRybdxh0mjbTvE6JYZQ/ZiQ0mMlDOlGPXTm9KLTU3jyw==",
+ "requires": {
+ "@babel/runtime": "^7.20.1",
+ "@changesets/errors": "^0.2.0",
+ "@changesets/types": "^6.0.0",
+ "@manypkg/get-packages": "^1.1.3",
+ "fs-extra": "^7.0.1"
+ }
+ },
+ "@changesets/read": {
+ "version": "0.6.0",
+ "resolved": "https://registry.npmjs.org/@changesets/read/-/read-0.6.0.tgz",
+ "integrity": "sha512-ZypqX8+/im1Fm98K4YcZtmLKgjs1kDQ5zHpc2U1qdtNBmZZfo/IBiG162RoP0CUF05tvp2y4IspH11PLnPxuuw==",
+ "requires": {
+ "@babel/runtime": "^7.20.1",
+ "@changesets/git": "^3.0.0",
+ "@changesets/logger": "^0.1.0",
+ "@changesets/parse": "^0.4.0",
+ "@changesets/types": "^6.0.0",
+ "chalk": "^2.1.0",
+ "fs-extra": "^7.0.1",
+ "p-filter": "^2.1.0"
+ }
+ },
+ "@changesets/types": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/@changesets/types/-/types-6.0.0.tgz",
+ "integrity": "sha512-b1UkfNulgKoWfqyHtzKS5fOZYSJO+77adgL7DLRDr+/7jhChN+QcHnbjiQVOz/U+Ts3PGNySq7diAItzDgugfQ=="
+ },
+ "@changesets/write": {
+ "version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/@changesets/write/-/write-0.3.1.tgz",
+ "integrity": "sha512-SyGtMXzH3qFqlHKcvFY2eX+6b0NGiFcNav8AFsYwy5l8hejOeoeTDemu5Yjmke2V5jpzY+pBvM0vCCQ3gdZpfw==",
+ "requires": {
+ "@babel/runtime": "^7.20.1",
+ "@changesets/types": "^6.0.0",
+ "fs-extra": "^7.0.1",
+ "human-id": "^1.0.2",
+ "prettier": "^2.7.1"
+ }
+ },
"@eth-optimism/contracts": {
"version": "0.6.0",
"resolved": "https://registry.npmjs.org/@eth-optimism/contracts/-/contracts-0.6.0.tgz",
@@ -12299,6 +13365,29 @@
"@ethersproject/abstract-signer": "^5.7.0"
}
},
+ "argparse": {
+ "version": "1.0.10",
+ "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
+ "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
+ "requires": {
+ "sprintf-js": "~1.0.2"
+ }
+ },
+ "ci-info": {
+ "version": "3.9.0",
+ "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz",
+ "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ=="
+ },
+ "dotenv": {
+ "version": "8.6.0",
+ "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-8.6.0.tgz",
+ "integrity": "sha512-IrPdXQsk2BbzvCBGBOTmmSH5SodmqZNt4ERAZDmW4CT+tL8VtvinqywuANaFu4bOMWki16nqf0e4oC0QIaDr/g=="
+ },
+ "esprima": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
+ "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A=="
+ },
"ethers": {
"version": "5.7.2",
"resolved": "https://registry.npmjs.org/ethers/-/ethers-5.7.2.tgz",
@@ -12336,6 +13425,66 @@
"@ethersproject/web": "5.7.1",
"@ethersproject/wordlists": "5.7.0"
}
+ },
+ "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"
+ }
+ },
+ "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==",
+ "requires": {
+ "argparse": "^1.0.7",
+ "esprima": "^4.0.0"
+ }
+ },
+ "jsonfile": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz",
+ "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==",
+ "requires": {
+ "graceful-fs": "^4.1.6"
+ }
+ },
+ "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-try": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
+ "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ=="
+ },
+ "prettier": {
+ "version": "2.8.8",
+ "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz",
+ "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q=="
+ },
+ "resolve-from": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz",
+ "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw=="
+ },
+ "semver": {
+ "version": "7.6.3",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz",
+ "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A=="
+ },
+ "universalify": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz",
+ "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg=="
}
}
},
@@ -12794,6 +13943,23 @@
}
}
},
+ "@changesets/should-skip-package": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/@changesets/should-skip-package/-/should-skip-package-0.1.0.tgz",
+ "integrity": "sha512-FxG6Mhjw7yFStlSM7Z0Gmg3RiyQ98d/9VpQAZ3Fzr59dCOM9G6ZdYbjiSAt0XtFr9JR5U2tBaJWPjrkGGc618g==",
+ "requires": {
+ "@babel/runtime": "^7.20.1",
+ "@changesets/types": "^6.0.0",
+ "@manypkg/get-packages": "^1.1.3"
+ },
+ "dependencies": {
+ "@changesets/types": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/@changesets/types/-/types-6.0.0.tgz",
+ "integrity": "sha512-b1UkfNulgKoWfqyHtzKS5fOZYSJO+77adgL7DLRDr+/7jhChN+QcHnbjiQVOz/U+Ts3PGNySq7diAItzDgugfQ=="
+ }
+ }
+ },
"@changesets/types": {
"version": "5.2.1",
"resolved": "https://registry.npmjs.org/@changesets/types/-/types-5.2.1.tgz",
@@ -12845,7 +14011,7 @@
"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,
+ "devOptional": true,
"peer": true,
"requires": {
"@jridgewell/trace-mapping": "0.3.9"
@@ -13322,8 +14488,7 @@
"@fastify/busboy": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/@fastify/busboy/-/busboy-2.1.0.tgz",
- "integrity": "sha512-+KpH+QxZU7O4675t3mnkQKcZZg56u+K/Ct2K+N2AZYNVK8kyeo/bI18tI8aPm3tvNNRyTWfj6s5tnGNlcbQRsA==",
- "dev": true
+ "integrity": "sha512-+KpH+QxZU7O4675t3mnkQKcZZg56u+K/Ct2K+N2AZYNVK8kyeo/bI18tI8aPm3tvNNRyTWfj6s5tnGNlcbQRsA=="
},
"@isaacs/cliui": {
"version": "8.0.2",
@@ -13394,21 +14559,21 @@
"version": "3.1.2",
"resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz",
"integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==",
- "dev": true,
+ "devOptional": true,
"peer": 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,
+ "devOptional": true,
"peer": 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,
+ "devOptional": true,
"peer": true,
"requires": {
"@jridgewell/resolve-uri": "^3.0.3",
@@ -13526,41 +14691,217 @@
"resolved": "https://registry.npmjs.org/@changesets/types/-/types-4.1.0.tgz",
"integrity": "sha512-LDQvVDv5Kb50ny2s25Fhm3d9QSZimsoUGBsUioj6MC3qbMUCuC8GPIvk/M6IvXx3lYhAs0lwWUQLb+VIEUCECw=="
},
- "fs-extra": {
- "version": "8.1.0",
- "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz",
- "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==",
+ "fs-extra": {
+ "version": "8.1.0",
+ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz",
+ "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==",
+ "requires": {
+ "graceful-fs": "^4.2.0",
+ "jsonfile": "^4.0.0",
+ "universalify": "^0.1.0"
+ }
+ },
+ "globby": {
+ "version": "11.1.0",
+ "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz",
+ "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==",
+ "requires": {
+ "array-union": "^2.1.0",
+ "dir-glob": "^3.0.1",
+ "fast-glob": "^3.2.9",
+ "ignore": "^5.2.0",
+ "merge2": "^1.4.1",
+ "slash": "^3.0.0"
+ }
+ },
+ "jsonfile": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz",
+ "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==",
+ "requires": {
+ "graceful-fs": "^4.1.6"
+ }
+ },
+ "universalify": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz",
+ "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg=="
+ }
+ }
+ },
+ "@matterlabs/hardhat-zksync-solc": {
+ "version": "1.2.5",
+ "resolved": "https://registry.npmjs.org/@matterlabs/hardhat-zksync-solc/-/hardhat-zksync-solc-1.2.5.tgz",
+ "integrity": "sha512-iZyznWl1Hoe/Z46hnUe1s2drBZBjJOS/eN+Ql2lIBX9B6NevBl9DYzkKzH5HEIMCLGnX9sWpRAJqUQJWy9UB6w==",
+ "requires": {
+ "@nomiclabs/hardhat-docker": "^2.0.2",
+ "chai": "^4.3.4",
+ "chalk": "^4.1.2",
+ "debug": "^4.3.5",
+ "dockerode": "^4.0.2",
+ "fs-extra": "^11.2.0",
+ "proper-lockfile": "^4.1.2",
+ "semver": "^7.6.2",
+ "sinon": "^18.0.0",
+ "sinon-chai": "^3.7.0",
+ "undici": "^6.18.2"
+ },
+ "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=="
+ },
+ "debug": {
+ "version": "4.3.7",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz",
+ "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==",
+ "requires": {
+ "ms": "^2.1.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=="
+ },
+ "ms": {
+ "version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
+ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="
+ },
+ "semver": {
+ "version": "7.6.3",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz",
+ "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A=="
+ },
+ "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"
+ }
+ },
+ "undici": {
+ "version": "6.20.0",
+ "resolved": "https://registry.npmjs.org/undici/-/undici-6.20.0.tgz",
+ "integrity": "sha512-AITZfPuxubm31Sx0vr8bteSalEbs9wQb/BOBi9FPlD9Qpd6HxZ4Q0+hI742jBhkPb4RT2v5MQzaW5VhRVyj+9A=="
+ }
+ }
+ },
+ "@matterlabs/hardhat-zksync-verify": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/@matterlabs/hardhat-zksync-verify/-/hardhat-zksync-verify-1.6.0.tgz",
+ "integrity": "sha512-RsWlQbI23BDXMsxTtvHXpzx1dBotI2p2trvdG+r1uN/KAmMJBOKIqxce2UNXl8skd5Gtysa4GPjXEp4yaf2KrA==",
+ "requires": {
+ "@ethersproject/abi": "^5.7.0",
+ "@ethersproject/address": "5.7.0",
+ "@matterlabs/hardhat-zksync-solc": "^1.2.1",
+ "@nomicfoundation/hardhat-verify": "^2.0.8",
+ "axios": "^1.7.2",
+ "cbor": "^9.0.2",
+ "chai": "^4.3.4",
+ "chalk": "^4.1.2",
+ "debug": "^4.3.5",
+ "semver": "^7.6.2",
+ "sinon": "^18.0.0",
+ "sinon-chai": "^3.7.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"
+ }
+ },
+ "cbor": {
+ "version": "9.0.2",
+ "resolved": "https://registry.npmjs.org/cbor/-/cbor-9.0.2.tgz",
+ "integrity": "sha512-JPypkxsB10s9QOWwa6zwPzqE1Md3vqpPc+cai4sAecuCsRyAtAl/pMyhPlMbT/xtPnm2dznJZYRLui57qiRhaQ==",
+ "requires": {
+ "nofilter": "^3.1.0"
+ }
+ },
+ "chalk": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
"requires": {
- "graceful-fs": "^4.2.0",
- "jsonfile": "^4.0.0",
- "universalify": "^0.1.0"
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
}
},
- "globby": {
- "version": "11.1.0",
- "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz",
- "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==",
+ "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": {
- "array-union": "^2.1.0",
- "dir-glob": "^3.0.1",
- "fast-glob": "^3.2.9",
- "ignore": "^5.2.0",
- "merge2": "^1.4.1",
- "slash": "^3.0.0"
+ "color-name": "~1.1.4"
}
},
- "jsonfile": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz",
- "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==",
+ "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": "4.3.7",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz",
+ "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==",
"requires": {
- "graceful-fs": "^4.1.6"
+ "ms": "^2.1.3"
}
},
- "universalify": {
- "version": "0.1.2",
- "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz",
- "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg=="
+ "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=="
+ },
+ "semver": {
+ "version": "7.6.3",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz",
+ "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A=="
+ },
+ "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"
+ }
}
}
},
@@ -13568,7 +14909,6 @@
"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==",
- "dev": true,
"requires": {
"ethereumjs-abi": "^0.6.8",
"ethereumjs-util": "^6.2.1",
@@ -13581,7 +14921,6 @@
"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,
"requires": {
"@types/node": "*"
}
@@ -13589,14 +14928,12 @@
"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
+ "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==",
- "dev": true,
"requires": {
"@types/bn.js": "^4.11.3",
"bn.js": "^4.11.0",
@@ -13629,8 +14966,7 @@
"@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==",
- "dev": true
+ "integrity": "sha512-hOUk6AyBFmqVrv7k5WAw/LpszxVbj9gGN4JRkIX52fdFAj1UA61KXmZDvqVEm+pOyec3+fIeZB02LYa/pWOArw=="
},
"@nodelib/fs.scandir": {
"version": "2.1.5",
@@ -13655,117 +14991,72 @@
"fastq": "^1.6.0"
}
},
- "@nomicfoundation/ethereumjs-block": {
- "version": "5.0.4",
- "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-block/-/ethereumjs-block-5.0.4.tgz",
- "integrity": "sha512-AcyacJ9eX/uPEvqsPiB+WO1ymE+kyH48qGGiGV+YTojdtas8itUTW5dehDSOXEEItWGbbzEJ4PRqnQZlWaPvDw==",
- "dev": true,
+ "@nomicfoundation/edr": {
+ "version": "0.6.3",
+ "resolved": "https://registry.npmjs.org/@nomicfoundation/edr/-/edr-0.6.3.tgz",
+ "integrity": "sha512-hThe5ORR75WFYTXKL0K2AyLDxkTMrG+VQ1yL9BhQYsuh3OIH+3yNDxMz2LjfvrpOrMmJ4kk5NKdFewpqDojjXQ==",
"requires": {
- "@nomicfoundation/ethereumjs-common": "4.0.4",
- "@nomicfoundation/ethereumjs-rlp": "5.0.4",
- "@nomicfoundation/ethereumjs-trie": "6.0.4",
- "@nomicfoundation/ethereumjs-tx": "5.0.4",
- "@nomicfoundation/ethereumjs-util": "9.0.4",
- "ethereum-cryptography": "0.1.3"
+ "@nomicfoundation/edr-darwin-arm64": "0.6.3",
+ "@nomicfoundation/edr-darwin-x64": "0.6.3",
+ "@nomicfoundation/edr-linux-arm64-gnu": "0.6.3",
+ "@nomicfoundation/edr-linux-arm64-musl": "0.6.3",
+ "@nomicfoundation/edr-linux-x64-gnu": "0.6.3",
+ "@nomicfoundation/edr-linux-x64-musl": "0.6.3",
+ "@nomicfoundation/edr-win32-x64-msvc": "0.6.3"
}
},
- "@nomicfoundation/ethereumjs-blockchain": {
- "version": "7.0.4",
- "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-blockchain/-/ethereumjs-blockchain-7.0.4.tgz",
- "integrity": "sha512-jYsd/kwzbmpnxx86tXsYV8wZ5xGvFL+7/P0c6OlzpClHsbFzeF41KrYA9scON8Rg6bZu3ZTv6JOAgj3t7USUfg==",
- "dev": true,
- "requires": {
- "@nomicfoundation/ethereumjs-block": "5.0.4",
- "@nomicfoundation/ethereumjs-common": "4.0.4",
- "@nomicfoundation/ethereumjs-ethash": "3.0.4",
- "@nomicfoundation/ethereumjs-rlp": "5.0.4",
- "@nomicfoundation/ethereumjs-trie": "6.0.4",
- "@nomicfoundation/ethereumjs-tx": "5.0.4",
- "@nomicfoundation/ethereumjs-util": "9.0.4",
- "debug": "^4.3.3",
- "ethereum-cryptography": "0.1.3",
- "lru-cache": "^10.0.0"
- }
+ "@nomicfoundation/edr-darwin-arm64": {
+ "version": "0.6.3",
+ "resolved": "https://registry.npmjs.org/@nomicfoundation/edr-darwin-arm64/-/edr-darwin-arm64-0.6.3.tgz",
+ "integrity": "sha512-hqtI7tYDqKG5PDmZ//Z65EH5cgH8VL/SAAu50rpHP7WAVfJWkOCcYbecywwF6nhHdonJbRTDGAeG1/+VOy6zew=="
+ },
+ "@nomicfoundation/edr-darwin-x64": {
+ "version": "0.6.3",
+ "resolved": "https://registry.npmjs.org/@nomicfoundation/edr-darwin-x64/-/edr-darwin-x64-0.6.3.tgz",
+ "integrity": "sha512-4fGi79/lyOlRUORhCYsYb3sWqRHuHT7qqzyZfZuNOn8llaxmT1k36xNmvpyg37R8SzjnhT/DzoukSJrs23Ip9Q=="
+ },
+ "@nomicfoundation/edr-linux-arm64-gnu": {
+ "version": "0.6.3",
+ "resolved": "https://registry.npmjs.org/@nomicfoundation/edr-linux-arm64-gnu/-/edr-linux-arm64-gnu-0.6.3.tgz",
+ "integrity": "sha512-yFFTvGFMhfAvQ1Z2itUh1jpoUA+mVROyVELcaxjIq8fyg602lQmbS+NXkhQ+oaeDgJ+06mSENrHBg4fcfRf9cw=="
+ },
+ "@nomicfoundation/edr-linux-arm64-musl": {
+ "version": "0.6.3",
+ "resolved": "https://registry.npmjs.org/@nomicfoundation/edr-linux-arm64-musl/-/edr-linux-arm64-musl-0.6.3.tgz",
+ "integrity": "sha512-pOKmd0Fa3a6BHg5qbjbl/jMRELVi9oazbfiuU7Bvgn/dpTK+ID3jwT0SXiuC2zxjmPByWgXL6G9XRf5BPAM2rQ=="
+ },
+ "@nomicfoundation/edr-linux-x64-gnu": {
+ "version": "0.6.3",
+ "resolved": "https://registry.npmjs.org/@nomicfoundation/edr-linux-x64-gnu/-/edr-linux-x64-gnu-0.6.3.tgz",
+ "integrity": "sha512-3AUferhkLIXtLV63w5GjpHttzdxZ36i656XMy+pkBZbbiqnzIVeKWg6DJv1A94fQY16gB4gqj9CLq4CWvbNN6w=="
+ },
+ "@nomicfoundation/edr-linux-x64-musl": {
+ "version": "0.6.3",
+ "resolved": "https://registry.npmjs.org/@nomicfoundation/edr-linux-x64-musl/-/edr-linux-x64-musl-0.6.3.tgz",
+ "integrity": "sha512-fr6bD872WIBXe9YnTDi0CzYepMcYRgSnkVqn0yK4wRnIvKrloWhxXNVY45GVIl51aNZguBnvoA4WEt6HIazs3A=="
+ },
+ "@nomicfoundation/edr-win32-x64-msvc": {
+ "version": "0.6.3",
+ "resolved": "https://registry.npmjs.org/@nomicfoundation/edr-win32-x64-msvc/-/edr-win32-x64-msvc-0.6.3.tgz",
+ "integrity": "sha512-sn34MvN1ajw2Oq1+Drpxej78Z0HfIzI4p4WlolupAV9dOZKzp2JAIQeLVfZpjIFbF3zuyxLPP4dUBrQoFPEqhA=="
},
"@nomicfoundation/ethereumjs-common": {
"version": "4.0.4",
"resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-common/-/ethereumjs-common-4.0.4.tgz",
"integrity": "sha512-9Rgb658lcWsjiicr5GzNCjI1llow/7r0k50dLL95OJ+6iZJcVbi15r3Y0xh2cIO+zgX0WIHcbzIu6FeQf9KPrg==",
- "dev": true,
"requires": {
"@nomicfoundation/ethereumjs-util": "9.0.4"
}
},
- "@nomicfoundation/ethereumjs-ethash": {
- "version": "3.0.4",
- "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-ethash/-/ethereumjs-ethash-3.0.4.tgz",
- "integrity": "sha512-xvIrwIMl9sSaiYKRem68+O7vYdj7Q2XWv5P7JXiIkn83918QzWHvqbswTRsH7+r6X1UEvdsURRnZbvZszEjAaQ==",
- "dev": true,
- "requires": {
- "@nomicfoundation/ethereumjs-block": "5.0.4",
- "@nomicfoundation/ethereumjs-rlp": "5.0.4",
- "@nomicfoundation/ethereumjs-util": "9.0.4",
- "bigint-crypto-utils": "^3.2.2",
- "ethereum-cryptography": "0.1.3"
- }
- },
- "@nomicfoundation/ethereumjs-evm": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-evm/-/ethereumjs-evm-2.0.4.tgz",
- "integrity": "sha512-lTyZZi1KpeMHzaO6cSVisR2tjiTTedjo7PcmhI/+GNFo9BmyY6QYzGeSti0sFttmjbEMioHgXxl5yrLNRg6+1w==",
- "dev": true,
- "requires": {
- "@nomicfoundation/ethereumjs-common": "4.0.4",
- "@nomicfoundation/ethereumjs-statemanager": "2.0.4",
- "@nomicfoundation/ethereumjs-tx": "5.0.4",
- "@nomicfoundation/ethereumjs-util": "9.0.4",
- "@types/debug": "^4.1.9",
- "debug": "^4.3.3",
- "ethereum-cryptography": "0.1.3",
- "rustbn-wasm": "^0.2.0"
- }
- },
"@nomicfoundation/ethereumjs-rlp": {
"version": "5.0.4",
"resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-rlp/-/ethereumjs-rlp-5.0.4.tgz",
- "integrity": "sha512-8H1S3s8F6QueOc/X92SdrA4RDenpiAEqMg5vJH99kcQaCy/a3Q6fgseo75mgWlbanGJXSlAPtnCeG9jvfTYXlw==",
- "dev": true
- },
- "@nomicfoundation/ethereumjs-statemanager": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-statemanager/-/ethereumjs-statemanager-2.0.4.tgz",
- "integrity": "sha512-HPDjeFrxw6llEi+BzqXkZ+KkvFnTOPczuHBtk21hRlDiuKuZz32dPzlhpRsDBGV1b5JTmRDUVqCS1lp3Gghw4Q==",
- "dev": true,
- "requires": {
- "@nomicfoundation/ethereumjs-common": "4.0.4",
- "@nomicfoundation/ethereumjs-rlp": "5.0.4",
- "@nomicfoundation/ethereumjs-trie": "6.0.4",
- "@nomicfoundation/ethereumjs-util": "9.0.4",
- "debug": "^4.3.3",
- "ethereum-cryptography": "0.1.3",
- "js-sdsl": "^4.1.4",
- "lru-cache": "^10.0.0"
- }
- },
- "@nomicfoundation/ethereumjs-trie": {
- "version": "6.0.4",
- "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-trie/-/ethereumjs-trie-6.0.4.tgz",
- "integrity": "sha512-3nSwQiFMvr2VFe/aZUyinuohYvtytUqZCUCvIWcPJ/BwJH6oQdZRB42aNFBJ/8nAh2s3OcroWpBLskzW01mFKA==",
- "dev": true,
- "requires": {
- "@nomicfoundation/ethereumjs-rlp": "5.0.4",
- "@nomicfoundation/ethereumjs-util": "9.0.4",
- "@types/readable-stream": "^2.3.13",
- "ethereum-cryptography": "0.1.3",
- "lru-cache": "^10.0.0",
- "readable-stream": "^3.6.0"
- }
+ "integrity": "sha512-8H1S3s8F6QueOc/X92SdrA4RDenpiAEqMg5vJH99kcQaCy/a3Q6fgseo75mgWlbanGJXSlAPtnCeG9jvfTYXlw=="
},
"@nomicfoundation/ethereumjs-tx": {
"version": "5.0.4",
"resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-tx/-/ethereumjs-tx-5.0.4.tgz",
"integrity": "sha512-Xjv8wAKJGMrP1f0n2PeyfFCCojHd7iS3s/Ab7qzF1S64kxZ8Z22LCMynArYsVqiFx6rzYy548HNVEyI+AYN/kw==",
- "dev": true,
"requires": {
"@nomicfoundation/ethereumjs-common": "4.0.4",
"@nomicfoundation/ethereumjs-rlp": "5.0.4",
@@ -13777,40 +15068,8 @@
"version": "9.0.4",
"resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-util/-/ethereumjs-util-9.0.4.tgz",
"integrity": "sha512-sLOzjnSrlx9Bb9EFNtHzK/FJFsfg2re6bsGqinFinH1gCqVfz9YYlXiMWwDM4C/L4ywuHFCYwfKTVr/QHQcU0Q==",
- "dev": true,
- "requires": {
- "@nomicfoundation/ethereumjs-rlp": "5.0.4",
- "ethereum-cryptography": "0.1.3"
- }
- },
- "@nomicfoundation/ethereumjs-verkle": {
- "version": "0.0.2",
- "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-verkle/-/ethereumjs-verkle-0.0.2.tgz",
- "integrity": "sha512-bjnfZElpYGK/XuuVRmLS3yDvr+cDs85D9oonZ0YUa5A3lgFgokWMp76zXrxX2jVQ0BfHaw12y860n1+iOi6yFQ==",
- "dev": true,
- "requires": {
- "@nomicfoundation/ethereumjs-rlp": "5.0.4",
- "@nomicfoundation/ethereumjs-util": "9.0.4",
- "lru-cache": "^10.0.0",
- "rust-verkle-wasm": "^0.0.1"
- }
- },
- "@nomicfoundation/ethereumjs-vm": {
- "version": "7.0.4",
- "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-vm/-/ethereumjs-vm-7.0.4.tgz",
- "integrity": "sha512-gsA4IhmtWHI4BofKy3kio9W+dqZQs5Ji5mLjLYxHCkat+JQBUt5szjRKra2F9nGDJ2XcI/wWb0YWUFNgln4zRQ==",
- "dev": true,
"requires": {
- "@nomicfoundation/ethereumjs-block": "5.0.4",
- "@nomicfoundation/ethereumjs-blockchain": "7.0.4",
- "@nomicfoundation/ethereumjs-common": "4.0.4",
- "@nomicfoundation/ethereumjs-evm": "2.0.4",
"@nomicfoundation/ethereumjs-rlp": "5.0.4",
- "@nomicfoundation/ethereumjs-statemanager": "2.0.4",
- "@nomicfoundation/ethereumjs-trie": "6.0.4",
- "@nomicfoundation/ethereumjs-tx": "5.0.4",
- "@nomicfoundation/ethereumjs-util": "9.0.4",
- "debug": "^4.3.3",
"ethereum-cryptography": "0.1.3"
}
},
@@ -13865,11 +15124,9 @@
"requires": {}
},
"@nomicfoundation/hardhat-verify": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/@nomicfoundation/hardhat-verify/-/hardhat-verify-2.0.4.tgz",
- "integrity": "sha512-B8ZjhOrmbbRWqJi65jvQblzjsfYktjqj2vmOm+oc2Vu8drZbT2cjeSCRHZKbS7lOtfW78aJZSFvw+zRLCiABJA==",
- "dev": true,
- "peer": true,
+ "version": "2.0.11",
+ "resolved": "https://registry.npmjs.org/@nomicfoundation/hardhat-verify/-/hardhat-verify-2.0.11.tgz",
+ "integrity": "sha512-lGIo4dNjVQFdsiEgZp3KP6ntLiF7xJEJsbNHfSyIiFCyI0Yv0518ElsFtMC5uCuHEChiBBMrib9jWQvHHT+X3Q==",
"requires": {
"@ethersproject/abi": "^5.1.2",
"@ethersproject/address": "^5.0.2",
@@ -13886,7 +15143,6 @@
"version": "0.1.1",
"resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer/-/solidity-analyzer-0.1.1.tgz",
"integrity": "sha512-1LMtXj1puAxyFusBgUIy5pZk3073cNXYnXUpuNKFghHbIit/xZgbk0AokpUADbNm3gyD6bFWl3LRFh3dhVdREg==",
- "dev": true,
"requires": {
"@nomicfoundation/solidity-analyzer-darwin-arm64": "0.1.1",
"@nomicfoundation/solidity-analyzer-darwin-x64": "0.1.1",
@@ -13904,72 +15160,253 @@
"version": "0.1.1",
"resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-darwin-arm64/-/solidity-analyzer-darwin-arm64-0.1.1.tgz",
"integrity": "sha512-KcTodaQw8ivDZyF+D76FokN/HdpgGpfjc/gFCImdLUyqB6eSWVaZPazMbeAjmfhx3R0zm/NYVzxwAokFKgrc0w==",
- "dev": true,
"optional": true
},
"@nomicfoundation/solidity-analyzer-darwin-x64": {
"version": "0.1.1",
"resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-darwin-x64/-/solidity-analyzer-darwin-x64-0.1.1.tgz",
"integrity": "sha512-XhQG4BaJE6cIbjAVtzGOGbK3sn1BO9W29uhk9J8y8fZF1DYz0Doj8QDMfpMu+A6TjPDs61lbsmeYodIDnfveSA==",
- "dev": true,
"optional": true
},
"@nomicfoundation/solidity-analyzer-freebsd-x64": {
"version": "0.1.1",
"resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-freebsd-x64/-/solidity-analyzer-freebsd-x64-0.1.1.tgz",
"integrity": "sha512-GHF1VKRdHW3G8CndkwdaeLkVBi5A9u2jwtlS7SLhBc8b5U/GcoL39Q+1CSO3hYqePNP+eV5YI7Zgm0ea6kMHoA==",
- "dev": true,
"optional": true
},
"@nomicfoundation/solidity-analyzer-linux-arm64-gnu": {
"version": "0.1.1",
"resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-linux-arm64-gnu/-/solidity-analyzer-linux-arm64-gnu-0.1.1.tgz",
"integrity": "sha512-g4Cv2fO37ZsUENQ2vwPnZc2zRenHyAxHcyBjKcjaSmmkKrFr64yvzeNO8S3GBFCo90rfochLs99wFVGT/0owpg==",
- "dev": true,
"optional": true
},
"@nomicfoundation/solidity-analyzer-linux-arm64-musl": {
"version": "0.1.1",
"resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-linux-arm64-musl/-/solidity-analyzer-linux-arm64-musl-0.1.1.tgz",
"integrity": "sha512-WJ3CE5Oek25OGE3WwzK7oaopY8xMw9Lhb0mlYuJl/maZVo+WtP36XoQTb7bW/i8aAdHW5Z+BqrHMux23pvxG3w==",
- "dev": true,
"optional": true
},
"@nomicfoundation/solidity-analyzer-linux-x64-gnu": {
"version": "0.1.1",
"resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-linux-x64-gnu/-/solidity-analyzer-linux-x64-gnu-0.1.1.tgz",
"integrity": "sha512-5WN7leSr5fkUBBjE4f3wKENUy9HQStu7HmWqbtknfXkkil+eNWiBV275IOlpXku7v3uLsXTOKpnnGHJYI2qsdA==",
- "dev": true,
"optional": true
},
"@nomicfoundation/solidity-analyzer-linux-x64-musl": {
"version": "0.1.1",
"resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-linux-x64-musl/-/solidity-analyzer-linux-x64-musl-0.1.1.tgz",
"integrity": "sha512-KdYMkJOq0SYPQMmErv/63CwGwMm5XHenEna9X9aB8mQmhDBrYrlAOSsIPgFCUSL0hjxE3xHP65/EPXR/InD2+w==",
- "dev": true,
"optional": true
},
"@nomicfoundation/solidity-analyzer-win32-arm64-msvc": {
"version": "0.1.1",
"resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-win32-arm64-msvc/-/solidity-analyzer-win32-arm64-msvc-0.1.1.tgz",
"integrity": "sha512-VFZASBfl4qiBYwW5xeY20exWhmv6ww9sWu/krWSesv3q5hA0o1JuzmPHR4LPN6SUZj5vcqci0O6JOL8BPw+APg==",
- "dev": true,
"optional": true
},
"@nomicfoundation/solidity-analyzer-win32-ia32-msvc": {
"version": "0.1.1",
"resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-win32-ia32-msvc/-/solidity-analyzer-win32-ia32-msvc-0.1.1.tgz",
"integrity": "sha512-JnFkYuyCSA70j6Si6cS1A9Gh1aHTEb8kOTBApp/c7NRTFGNMH8eaInKlyuuiIbvYFhlXW4LicqyYuWNNq9hkpQ==",
- "dev": true,
"optional": true
},
"@nomicfoundation/solidity-analyzer-win32-x64-msvc": {
"version": "0.1.1",
"resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-win32-x64-msvc/-/solidity-analyzer-win32-x64-msvc-0.1.1.tgz",
"integrity": "sha512-HrVJr6+WjIXGnw3Q9u6KQcbZCtk0caVWhCdFADySvRyUxJ8PnzlaP+MhwNE8oyT8OZ6ejHBRrrgjSqDCFXGirw==",
- "dev": true,
"optional": true
},
+ "@nomiclabs/hardhat-docker": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/@nomiclabs/hardhat-docker/-/hardhat-docker-2.0.2.tgz",
+ "integrity": "sha512-XgGEpRT3wlA1VslyB57zyAHV+oll8KnV1TjwnxxC1tpAL04/lbdwpdO5KxInVN8irMSepqFpsiSkqlcnvbE7Ng==",
+ "requires": {
+ "dockerode": "^2.5.8",
+ "fs-extra": "^7.0.1",
+ "node-fetch": "^2.6.0"
+ },
+ "dependencies": {
+ "bl": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/bl/-/bl-1.2.3.tgz",
+ "integrity": "sha512-pvcNpa0UU69UT341rO6AYy4FVAIkUHuZXRIWbq+zHnsVcRzDDjIAhGuuYoi0d//cwIwtt4pkpKycWEfjdV+vww==",
+ "requires": {
+ "readable-stream": "^2.3.5",
+ "safe-buffer": "^5.1.1"
+ },
+ "dependencies": {
+ "isarray": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
+ "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ=="
+ },
+ "readable-stream": {
+ "version": "2.3.8",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz",
+ "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==",
+ "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"
+ }
+ },
+ "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"
+ }
+ }
+ }
+ },
+ "debug": {
+ "version": "3.2.7",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
+ "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
+ "requires": {
+ "ms": "^2.1.1"
+ }
+ },
+ "docker-modem": {
+ "version": "1.0.9",
+ "resolved": "https://registry.npmjs.org/docker-modem/-/docker-modem-1.0.9.tgz",
+ "integrity": "sha512-lVjqCSCIAUDZPAZIeyM125HXfNvOmYYInciphNrLrylUtKyW66meAjSPXWchKVzoIYZx69TPnAepVSSkeawoIw==",
+ "requires": {
+ "debug": "^3.2.6",
+ "JSONStream": "1.3.2",
+ "readable-stream": "~1.0.26-4",
+ "split-ca": "^1.0.0"
+ }
+ },
+ "dockerode": {
+ "version": "2.5.8",
+ "resolved": "https://registry.npmjs.org/dockerode/-/dockerode-2.5.8.tgz",
+ "integrity": "sha512-+7iOUYBeDTScmOmQqpUYQaE7F4vvIt6+gIZNHWhqAQEI887tiPFB9OvXI/HzQYqfUNvukMK+9myLW63oTJPZpw==",
+ "requires": {
+ "concat-stream": "~1.6.2",
+ "docker-modem": "^1.0.8",
+ "tar-fs": "~1.16.3"
+ }
+ },
+ "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"
+ }
+ },
+ "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=="
+ },
+ "jsonfile": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz",
+ "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==",
+ "requires": {
+ "graceful-fs": "^4.1.6"
+ }
+ },
+ "pump": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/pump/-/pump-1.0.3.tgz",
+ "integrity": "sha512-8k0JupWme55+9tCVE+FS5ULT3K6AbgqrGa58lTT49RpyfwwcGedHqaC5LlQNdEAumn/wFsu6aPwkuPMioy8kqw==",
+ "requires": {
+ "end-of-stream": "^1.1.0",
+ "once": "^1.3.1"
+ }
+ },
+ "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"
+ }
+ },
+ "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_decoder": {
+ "version": "0.10.31",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
+ "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ=="
+ },
+ "tar-fs": {
+ "version": "1.16.3",
+ "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-1.16.3.tgz",
+ "integrity": "sha512-NvCeXpYx7OsmOh8zIOP/ebG55zZmxLE0etfWRbWok+q2Qo8x/vOR/IJT1taADXPe+jsiu9axDb3X4B+iIgNlKw==",
+ "requires": {
+ "chownr": "^1.0.1",
+ "mkdirp": "^0.5.1",
+ "pump": "^1.0.0",
+ "tar-stream": "^1.1.2"
+ }
+ },
+ "tar-stream": {
+ "version": "1.6.2",
+ "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-1.6.2.tgz",
+ "integrity": "sha512-rzS0heiNf8Xn7/mpdSVVSMAWAoy9bfb1WOTYC78Z0UQKeKa/CWS8FOq0lKGNa8DWKAn9gxjCvMLYc5PGXYlK2A==",
+ "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"
+ },
+ "dependencies": {
+ "isarray": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
+ "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ=="
+ },
+ "readable-stream": {
+ "version": "2.3.8",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz",
+ "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==",
+ "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"
+ }
+ },
+ "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"
+ }
+ }
+ }
+ },
+ "universalify": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz",
+ "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg=="
+ }
+ }
+ },
"@offchainlabs/upgrade-executor": {
"version": "1.1.0-beta.0",
"resolved": "https://registry.npmjs.org/@offchainlabs/upgrade-executor/-/upgrade-executor-1.1.0-beta.0.tgz",
@@ -14092,8 +15529,7 @@
"@scure/base": {
"version": "1.1.5",
"resolved": "https://registry.npmjs.org/@scure/base/-/base-1.1.5.tgz",
- "integrity": "sha512-Brj9FiG2W1MRQSTB212YVPRrcbjkv48FoZi/u4l/zds/ieRrqsh7aUf6CLwkAq61oKXr/ZlTzlY66gLIj3TFTQ==",
- "dev": true
+ "integrity": "sha512-Brj9FiG2W1MRQSTB212YVPRrcbjkv48FoZi/u4l/zds/ieRrqsh7aUf6CLwkAq61oKXr/ZlTzlY66gLIj3TFTQ=="
},
"@scure/bip32": {
"version": "1.3.3",
@@ -14141,7 +15577,6 @@
"version": "5.30.0",
"resolved": "https://registry.npmjs.org/@sentry/core/-/core-5.30.0.tgz",
"integrity": "sha512-TmfrII8w1PQZSZgPpUESqjB+jC6MvZJZdLtE/0hZ+SrnKhW3x5WlYLvTXZpcWePYBku7rl2wn1RZu6uT0qCTeg==",
- "dev": true,
"requires": {
"@sentry/hub": "5.30.0",
"@sentry/minimal": "5.30.0",
@@ -14153,8 +15588,7 @@
"tslib": {
"version": "1.14.1",
"resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
- "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==",
- "dev": true
+ "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg=="
}
}
},
@@ -14162,7 +15596,6 @@
"version": "5.30.0",
"resolved": "https://registry.npmjs.org/@sentry/hub/-/hub-5.30.0.tgz",
"integrity": "sha512-2tYrGnzb1gKz2EkMDQcfLrDTvmGcQPuWxLnJKXJvYTQDGLlEvi2tWz1VIHjunmOvJrB5aIQLhm+dcMRwFZDCqQ==",
- "dev": true,
"requires": {
"@sentry/types": "5.30.0",
"@sentry/utils": "5.30.0",
@@ -14172,8 +15605,7 @@
"tslib": {
"version": "1.14.1",
"resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
- "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==",
- "dev": true
+ "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg=="
}
}
},
@@ -14181,7 +15613,6 @@
"version": "5.30.0",
"resolved": "https://registry.npmjs.org/@sentry/minimal/-/minimal-5.30.0.tgz",
"integrity": "sha512-BwWb/owZKtkDX+Sc4zCSTNcvZUq7YcH3uAVlmh/gtR9rmUvbzAA3ewLuB3myi4wWRAMEtny6+J/FN/x+2wn9Xw==",
- "dev": true,
"requires": {
"@sentry/hub": "5.30.0",
"@sentry/types": "5.30.0",
@@ -14191,8 +15622,7 @@
"tslib": {
"version": "1.14.1",
"resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
- "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==",
- "dev": true
+ "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg=="
}
}
},
@@ -14200,7 +15630,6 @@
"version": "5.30.0",
"resolved": "https://registry.npmjs.org/@sentry/node/-/node-5.30.0.tgz",
"integrity": "sha512-Br5oyVBF0fZo6ZS9bxbJZG4ApAjRqAnqFFurMVJJdunNb80brh7a5Qva2kjhm+U6r9NJAB5OmDyPkA1Qnt+QVg==",
- "dev": true,
"requires": {
"@sentry/core": "5.30.0",
"@sentry/hub": "5.30.0",
@@ -14216,8 +15645,7 @@
"tslib": {
"version": "1.14.1",
"resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
- "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==",
- "dev": true
+ "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg=="
}
}
},
@@ -14225,7 +15653,6 @@
"version": "5.30.0",
"resolved": "https://registry.npmjs.org/@sentry/tracing/-/tracing-5.30.0.tgz",
"integrity": "sha512-dUFowCr0AIMwiLD7Fs314Mdzcug+gBVo/+NCMyDw8tFxJkwWAKl7Qa2OZxLQ0ZHjakcj1hNKfCQJ9rhyfOl4Aw==",
- "dev": true,
"requires": {
"@sentry/hub": "5.30.0",
"@sentry/minimal": "5.30.0",
@@ -14237,35 +15664,69 @@
"tslib": {
"version": "1.14.1",
"resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
- "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==",
- "dev": true
+ "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg=="
}
}
},
"@sentry/types": {
"version": "5.30.0",
"resolved": "https://registry.npmjs.org/@sentry/types/-/types-5.30.0.tgz",
- "integrity": "sha512-R8xOqlSTZ+htqrfteCWU5Nk0CDN5ApUTvrlvBuiH1DyP6czDZ4ktbZB0hAgBlVcK0U+qpD3ag3Tqqpa5Q67rPw==",
- "dev": true
+ "integrity": "sha512-R8xOqlSTZ+htqrfteCWU5Nk0CDN5ApUTvrlvBuiH1DyP6czDZ4ktbZB0hAgBlVcK0U+qpD3ag3Tqqpa5Q67rPw=="
},
"@sentry/utils": {
"version": "5.30.0",
"resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-5.30.0.tgz",
"integrity": "sha512-zaYmoH0NWWtvnJjC9/CBseXMtKHm/tm40sz3YfJRxeQjyzRqNQPgivpd9R/oDJCYj999mzdW382p/qi2ypjLww==",
- "dev": true,
"requires": {
- "@sentry/types": "5.30.0",
- "tslib": "^1.9.3"
+ "@sentry/types": "5.30.0",
+ "tslib": "^1.9.3"
+ },
+ "dependencies": {
+ "tslib": {
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
+ "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg=="
+ }
+ }
+ },
+ "@sinonjs/commons": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.1.tgz",
+ "integrity": "sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==",
+ "requires": {
+ "type-detect": "4.0.8"
+ }
+ },
+ "@sinonjs/fake-timers": {
+ "version": "11.2.2",
+ "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-11.2.2.tgz",
+ "integrity": "sha512-G2piCSxQ7oWOxwGSAyFHfPIsyeJGXYtc6mFbnFA+kRXkiEnTl8c/8jul2S329iFBnDI9HGoeWWAZvuvOkZccgw==",
+ "requires": {
+ "@sinonjs/commons": "^3.0.0"
+ }
+ },
+ "@sinonjs/samsam": {
+ "version": "8.0.2",
+ "resolved": "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-8.0.2.tgz",
+ "integrity": "sha512-v46t/fwnhejRSFTGqbpn9u+LQ9xJDse10gNnPgAcxgdoCDMXj/G2asWAC/8Qs+BAZDicX+MNZouXT1A7c83kVw==",
+ "requires": {
+ "@sinonjs/commons": "^3.0.1",
+ "lodash.get": "^4.4.2",
+ "type-detect": "^4.1.0"
},
"dependencies": {
- "tslib": {
- "version": "1.14.1",
- "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
- "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==",
- "dev": true
+ "type-detect": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.1.0.tgz",
+ "integrity": "sha512-Acylog8/luQ8L7il+geoSxhEkazvkslg7PSNKOX59mbB9cOveP5aq9h74Y7YU8yDpJwetzQQrfIwtf4Wp4LKcw=="
}
}
},
+ "@sinonjs/text-encoding": {
+ "version": "0.7.3",
+ "resolved": "https://registry.npmjs.org/@sinonjs/text-encoding/-/text-encoding-0.7.3.tgz",
+ "integrity": "sha512-DE427ROAphMQzU4ENbliGYrBSYPXF+TtLg9S8vzeA+OF4ZKzoDdzfL8sxuMUGS/lgRhM6j1URSk9ghf7Xo1tyA=="
+ },
"@solidity-parser/parser": {
"version": "0.14.5",
"resolved": "https://registry.npmjs.org/@solidity-parser/parser/-/parser-0.14.5.tgz",
@@ -14280,28 +15741,28 @@
"version": "1.0.9",
"resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.9.tgz",
"integrity": "sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==",
- "dev": true,
+ "devOptional": true,
"peer": 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,
+ "devOptional": true,
"peer": 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,
+ "devOptional": true,
"peer": 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,
+ "devOptional": true,
"peer": true
},
"@typechain/ethers-v6": {
@@ -14344,7 +15805,6 @@
"version": "5.1.5",
"resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-5.1.5.tgz",
"integrity": "sha512-V46N0zwKRF5Q00AZ6hWtN0T8gGmDUaUzLWQvHFo5yThtVwK/VCenFY3wXVbOvNfajEpsTfQM4IN9k/d6gUVX3A==",
- "devOptional": true,
"requires": {
"@types/node": "*"
}
@@ -14376,15 +15836,6 @@
"@types/node": "*"
}
},
- "@types/debug": {
- "version": "4.1.12",
- "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.12.tgz",
- "integrity": "sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==",
- "dev": true,
- "requires": {
- "@types/ms": "*"
- }
- },
"@types/form-data": {
"version": "0.0.33",
"resolved": "https://registry.npmjs.org/@types/form-data/-/form-data-0.0.33.tgz",
@@ -14455,8 +15906,7 @@
"@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
+ "integrity": "sha512-ssE3Vlrys7sdIzs5LOxCzTVMsU7i9oa/IaW92wF32JFb3CVczqOkru2xspuKczHEbG3nvmPY7IFqVmGGHdNbYw=="
},
"@types/markdown-it": {
"version": "14.1.1",
@@ -14493,17 +15943,10 @@
"dev": true,
"peer": true
},
- "@types/ms": {
- "version": "0.7.34",
- "resolved": "https://registry.npmjs.org/@types/ms/-/ms-0.7.34.tgz",
- "integrity": "sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==",
- "dev": true
- },
"@types/node": {
"version": "20.11.20",
"resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.20.tgz",
"integrity": "sha512-7/rR21OS+fq8IyHTgtLkDK949uzsa6n8BkziAKtPVpugIkO6D+/ooXMvzXxDnZrmtXVfjb1bKQafYpb8s89LOg==",
- "devOptional": true,
"requires": {
"undici-types": "~5.26.4"
}
@@ -14517,7 +15960,6 @@
"version": "3.1.2",
"resolved": "https://registry.npmjs.org/@types/pbkdf2/-/pbkdf2-3.1.2.tgz",
"integrity": "sha512-uRwJqmiXmh9++aSu1VNEn3iIxWOhd8AHXNSdlaLfdAAdSTY9jYVeGWnzejM3dvrkbqE3/hyQkQQ29IFATEGlew==",
- "devOptional": true,
"requires": {
"@types/node": "*"
}
@@ -14536,29 +15978,10 @@
"dev": true,
"peer": true
},
- "@types/readable-stream": {
- "version": "2.3.15",
- "resolved": "https://registry.npmjs.org/@types/readable-stream/-/readable-stream-2.3.15.tgz",
- "integrity": "sha512-oM5JSKQCcICF1wvGgmecmHldZ48OZamtMxcGGVICOJA8o8cahXC1zEVAif8iwoc5j8etxFaRFnf095+CDsuoFQ==",
- "dev": true,
- "requires": {
- "@types/node": "*",
- "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==",
- "dev": true
- }
- }
- },
"@types/secp256k1": {
"version": "4.0.6",
"resolved": "https://registry.npmjs.org/@types/secp256k1/-/secp256k1-4.0.6.tgz",
"integrity": "sha512-hHxJU6PAEUn0TP4S/ZOzuTUvJWuZ6eIKeNKb5RBpODvSl6hp1Wrw4s7ATY50rklRCScUDpHzVA/DQdSjJ3UoYQ==",
- "devOptional": true,
"requires": {
"@types/node": "*"
}
@@ -14584,21 +16007,20 @@
"version": "8.11.3",
"resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz",
"integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==",
- "dev": true,
+ "devOptional": true,
"peer": true
},
"acorn-walk": {
"version": "8.3.2",
"resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.2.tgz",
"integrity": "sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==",
- "dev": true,
+ "devOptional": true,
"peer": true
},
"adm-zip": {
"version": "0.4.16",
"resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.4.16.tgz",
- "integrity": "sha512-TFi4HBKSGfIKsK5YCkKaaFG2m4PEDyViZmEwof3MTIgzimHLto6muaHVpbrljdIvIrFZzEq/p4nafOeLcYegrg==",
- "dev": true
+ "integrity": "sha512-TFi4HBKSGfIKsK5YCkKaaFG2m4PEDyViZmEwof3MTIgzimHLto6muaHVpbrljdIvIrFZzEq/p4nafOeLcYegrg=="
},
"aes-js": {
"version": "4.0.0-beta.5",
@@ -14611,7 +16033,6 @@
"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,
"requires": {
"debug": "4"
}
@@ -14620,7 +16041,6 @@
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz",
"integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==",
- "dev": true,
"requires": {
"clean-stack": "^2.0.0",
"indent-string": "^4.0.0"
@@ -14630,8 +16050,6 @@
"version": "8.12.0",
"resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz",
"integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==",
- "dev": true,
- "peer": true,
"requires": {
"fast-deep-equal": "^3.1.1",
"json-schema-traverse": "^1.0.0",
@@ -14651,7 +16069,6 @@
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz",
"integrity": "sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==",
- "dev": true,
"requires": {
"string-width": "^4.1.0"
}
@@ -14674,7 +16091,6 @@
"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"
}
@@ -14703,7 +16119,6 @@
"version": "3.1.3",
"resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz",
"integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==",
- "dev": true,
"requires": {
"normalize-path": "^3.0.0",
"picomatch": "^2.0.4"
@@ -14713,14 +16128,13 @@
"version": "4.1.3",
"resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz",
"integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==",
- "dev": true,
+ "devOptional": true,
"peer": true
},
"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
+ "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q=="
},
"array-back": {
"version": "3.1.0",
@@ -14801,6 +16215,14 @@
"dev": true,
"peer": true
},
+ "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==",
+ "requires": {
+ "safer-buffer": "~2.1.0"
+ }
+ },
"assertion-error": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz",
@@ -14809,9 +16231,7 @@
"astral-regex": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz",
- "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==",
- "dev": true,
- "peer": true
+ "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ=="
},
"async": {
"version": "1.5.2",
@@ -14823,9 +16243,7 @@
"asynckit": {
"version": "0.4.0",
"resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
- "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==",
- "dev": true,
- "peer": true
+ "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q=="
},
"at-least-node": {
"version": "1.0.0",
@@ -14841,13 +16259,11 @@
}
},
"axios": {
- "version": "1.6.7",
- "resolved": "https://registry.npmjs.org/axios/-/axios-1.6.7.tgz",
- "integrity": "sha512-/hDJGff6/c7u0hDkvkGxR/oy6CbCs8ziCsC7SqmhjfozqiJGc8Z11wrv9z9lYfY4K8l+H9TpjcMDX0xOZmx+RA==",
- "dev": true,
- "peer": true,
+ "version": "1.7.7",
+ "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.7.tgz",
+ "integrity": "sha512-S4kL7XrjgBmvdGut0sN3yJxqYzrDOnivkBiN0OFs6hLiUam3UPvswUo0kqGyhqUZGEOytHyumEdXsAkgCOUf3Q==",
"requires": {
- "follow-redirects": "^1.15.4",
+ "follow-redirects": "^1.15.6",
"form-data": "^4.0.0",
"proxy-from-env": "^1.1.0"
}
@@ -14861,11 +16277,30 @@
"version": "3.0.9",
"resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.9.tgz",
"integrity": "sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ==",
- "devOptional": true,
"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": "sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==",
+ "requires": {
+ "tweetnacl": "^0.14.3"
+ },
+ "dependencies": {
+ "tweetnacl": {
+ "version": "0.14.5",
+ "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz",
+ "integrity": "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA=="
+ }
+ }
+ },
"bech32": {
"version": "1.1.4",
"resolved": "https://registry.npmjs.org/bech32/-/bech32-1.1.4.tgz",
@@ -14879,23 +16314,25 @@
"is-windows": "^1.0.0"
}
},
- "bigint-crypto-utils": {
- "version": "3.3.0",
- "resolved": "https://registry.npmjs.org/bigint-crypto-utils/-/bigint-crypto-utils-3.3.0.tgz",
- "integrity": "sha512-jOTSb+drvEDxEq6OuUybOAv/xxoh3cuYRUIPyu8sSHQNKM303UQ2R1DAo45o1AkcIXw6fzbaFI1+xGGdaXs2lg==",
- "dev": true
- },
"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
+ "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA=="
+ },
+ "bl": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz",
+ "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==",
+ "requires": {
+ "buffer": "^5.5.0",
+ "inherits": "^2.0.4",
+ "readable-stream": "^3.4.0"
+ }
},
"blakejs": {
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/blakejs/-/blakejs-1.2.1.tgz",
- "integrity": "sha512-QXUSXI3QVc/gJME0dBpXrag1kbzOqCjCX8/b54ntNyW6sjtoqxqRk3LTmXzaJoh71zMsDCjM+47jS7XiwN/+fQ==",
- "devOptional": true
+ "integrity": "sha512-QXUSXI3QVc/gJME0dBpXrag1kbzOqCjCX8/b54ntNyW6sjtoqxqRk3LTmXzaJoh71zMsDCjM+47jS7XiwN/+fQ=="
},
"bluebird": {
"version": "3.7.2",
@@ -14912,7 +16349,6 @@
"version": "5.1.2",
"resolved": "https://registry.npmjs.org/boxen/-/boxen-5.1.2.tgz",
"integrity": "sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ==",
- "dev": true,
"requires": {
"ansi-align": "^3.0.0",
"camelcase": "^6.2.0",
@@ -14928,7 +16364,6 @@
"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"
}
@@ -14937,7 +16372,6 @@
"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"
@@ -14947,7 +16381,6 @@
"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"
}
@@ -14955,20 +16388,17 @@
"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
+ "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==",
- "dev": true
+ "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==",
- "dev": true,
"requires": {
"has-flag": "^4.0.0"
}
@@ -14976,8 +16406,7 @@
"type-fest": {
"version": "0.20.2",
"resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz",
- "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==",
- "dev": true
+ "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ=="
}
}
},
@@ -15014,14 +16443,12 @@
"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
+ "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==",
- "devOptional": true,
"requires": {
"buffer-xor": "^1.0.3",
"cipher-base": "^1.0.0",
@@ -15035,7 +16462,6 @@
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz",
"integrity": "sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw==",
- "devOptional": true,
"requires": {
"base-x": "^3.0.2"
}
@@ -15044,35 +16470,65 @@
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/bs58check/-/bs58check-2.1.2.tgz",
"integrity": "sha512-0TS1jicxdU09dwJMNZtVAfzPi6Q6QeN0pM1Fkzrjn+XYHvzMKPU3pHVpva+769iNVSfIYWf7LJ6WR+BuuMf8cA==",
- "devOptional": true,
"requires": {
"bs58": "^4.0.0",
"create-hash": "^1.1.0",
"safe-buffer": "^5.1.2"
}
},
+ "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==",
+ "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=="
+ },
+ "buffer-fill": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/buffer-fill/-/buffer-fill-1.0.0.tgz",
+ "integrity": "sha512-T7zexNBwiiaCOGDg9xNX9PBmjrubblRkENuptryuI64URkXDFum9il/JGL8Lm8wYfAXpredVXXZz7eMHilimiQ=="
+ },
"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
+ "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ=="
},
"buffer-xor": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz",
- "integrity": "sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ==",
- "devOptional": true
+ "integrity": "sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ=="
},
"bufio": {
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/bufio/-/bufio-1.2.1.tgz",
"integrity": "sha512-9oR3zNdupcg/Ge2sSHQF3GX+kmvL/fTPvD0nd5AGLq8SjUYnTz+SlFjK/GXidndbZtIj+pVKXiWeR9w6e9wKCA=="
},
+ "buildcheck": {
+ "version": "0.0.6",
+ "resolved": "https://registry.npmjs.org/buildcheck/-/buildcheck-0.0.6.tgz",
+ "integrity": "sha512-8f9ZJCUXyT1M35Jx7MkBgmBMo3oHTTBIPLiY9xyL0pl3T5RwcPEY8cUHr5LBNfu/fk6c2T4DJZuVM/8ZZT2D2A==",
+ "optional": true
+ },
"bytes": {
"version": "3.1.2",
"resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz",
- "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==",
- "dev": true
+ "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg=="
},
"cache-point": {
"version": "2.0.0",
@@ -15108,8 +16564,7 @@
"camelcase": {
"version": "6.3.0",
"resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz",
- "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==",
- "dev": true
+ "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA=="
},
"camelcase-keys": {
"version": "6.2.2",
@@ -15148,8 +16603,6 @@
"version": "8.1.0",
"resolved": "https://registry.npmjs.org/cbor/-/cbor-8.1.0.tgz",
"integrity": "sha512-DwGjNW9omn6EwP70aXsn7FQJx5kO12tX0bZkaTjzdVFM6/7nhA4t0EENocKGx6D2Bch9PE2KzCUf5SceBdeijg==",
- "dev": true,
- "peer": true,
"requires": {
"nofilter": "^3.1.0"
}
@@ -15209,21 +16662,25 @@
}
},
"chokidar": {
- "version": "3.6.0",
- "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz",
- "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==",
- "dev": true,
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.1.tgz",
+ "integrity": "sha512-n8enUVCED/KVRQlab1hr3MVpcVMvxtZjmEa956u+4YijlmQED223XMSYj2tLuKvr4jcCTzNNMpQDUer72MMmzA==",
"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"
+ "readdirp": "^4.0.1"
+ },
+ "dependencies": {
+ "readdirp": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.0.2.tgz",
+ "integrity": "sha512-yDMz9g+VaZkqBYS/ozoBJwaBhTbZo3UNYQHNRw1D3UFQB8oHB4uS/tAODO+ZLjGWmUbKnIlOWO+aaIiAxrUWHA=="
+ }
}
},
+ "chownr": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz",
+ "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg=="
+ },
"ci-info": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz",
@@ -15233,7 +16690,6 @@
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz",
"integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==",
- "devOptional": true,
"requires": {
"inherits": "^2.0.1",
"safe-buffer": "^5.0.1"
@@ -15242,14 +16698,12 @@
"clean-stack": {
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz",
- "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==",
- "dev": true
+ "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A=="
},
"cli-boxes": {
"version": "2.2.1",
"resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz",
- "integrity": "sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==",
- "dev": true
+ "integrity": "sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw=="
},
"cli-table3": {
"version": "0.5.1",
@@ -15304,7 +16758,6 @@
"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",
@@ -15350,8 +16803,6 @@
"version": "1.0.8",
"resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
"integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
- "dev": true,
- "peer": true,
"requires": {
"delayed-stream": "~1.0.0"
}
@@ -15359,8 +16810,7 @@
"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
+ "integrity": "sha512-LTQ/SGc+s0Xc0Fu5WaKnR0YiygZkm9eKFvyS+fRsU7/ZWFF8ykFM6Pc9aCVf1+xasOOZpO3BAVgVrKvsqKHV7w=="
},
"command-line-args": {
"version": "5.2.1",
@@ -15475,10 +16925,9 @@
}
},
"commander": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/commander/-/commander-3.0.2.tgz",
- "integrity": "sha512-Gar0ASD4BDyKC4hl4DwHqDrmvjoxWKZigVnAbn5H1owvm4CxCPdb0HQDehwNYMJpla5+M2tPmPARzhtYuwpHow==",
- "dev": true
+ "version": "8.3.0",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz",
+ "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww=="
},
"common-sequence": {
"version": "2.0.2",
@@ -15501,8 +16950,6 @@
"version": "1.6.2",
"resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz",
"integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==",
- "dev": true,
- "peer": true,
"requires": {
"buffer-from": "^1.0.0",
"inherits": "^2.0.3",
@@ -15514,8 +16961,6 @@
"version": "2.3.8",
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz",
"integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==",
- "dev": true,
- "peer": true,
"requires": {
"core-util-is": "~1.0.0",
"inherits": "~2.0.3",
@@ -15529,16 +16974,12 @@
"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,
- "peer": true
+ "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
},
"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,
- "peer": true,
"requires": {
"safe-buffer": "~5.1.0"
}
@@ -15565,21 +17006,27 @@
"cookie": {
"version": "0.4.2",
"resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz",
- "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==",
- "dev": true
+ "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA=="
},
"core-util-is": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz",
- "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==",
- "dev": true,
- "peer": true
+ "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ=="
+ },
+ "cpu-features": {
+ "version": "0.0.10",
+ "resolved": "https://registry.npmjs.org/cpu-features/-/cpu-features-0.0.10.tgz",
+ "integrity": "sha512-9IkYqtX3YHPCzoVg1Py+o9057a3i0fp7S530UWokCSaFVTc7CwXPRiOjRjBQQ18ZCNafx78YfnG+HALxtVmOGA==",
+ "optional": true,
+ "requires": {
+ "buildcheck": "~0.0.6",
+ "nan": "^2.19.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==",
- "devOptional": true,
"requires": {
"cipher-base": "^1.0.1",
"inherits": "^2.0.1",
@@ -15592,7 +17039,6 @@
"version": "1.1.7",
"resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz",
"integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==",
- "devOptional": true,
"requires": {
"cipher-base": "^1.0.3",
"create-hash": "^1.1.0",
@@ -15606,7 +17052,7 @@
"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,
+ "devOptional": true,
"peer": true
},
"cross-spawn": {
@@ -15707,7 +17153,6 @@
"version": "4.3.4",
"resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
"integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
- "devOptional": true,
"requires": {
"ms": "2.1.2"
}
@@ -15715,8 +17160,7 @@
"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
+ "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ=="
},
"decamelize-keys": {
"version": "1.1.1",
@@ -15791,15 +17235,12 @@
"delayed-stream": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
- "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==",
- "dev": true,
- "peer": true
+ "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ=="
},
"depd": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz",
- "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==",
- "dev": true
+ "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw=="
},
"detect-indent": {
"version": "6.1.0",
@@ -15809,8 +17250,7 @@
"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
+ "integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w=="
},
"difflib": {
"version": "0.2.4",
@@ -15864,6 +17304,27 @@
}
}
},
+ "docker-modem": {
+ "version": "5.0.3",
+ "resolved": "https://registry.npmjs.org/docker-modem/-/docker-modem-5.0.3.tgz",
+ "integrity": "sha512-89zhop5YVhcPEt5FpUFGr3cDyceGhq/F9J+ZndQ4KfqNvfbJpPMfgeixFgUj5OjCYAboElqODxY5Z1EBsSa6sg==",
+ "requires": {
+ "debug": "^4.1.1",
+ "readable-stream": "^3.5.0",
+ "split-ca": "^1.0.1",
+ "ssh2": "^1.15.0"
+ }
+ },
+ "dockerode": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/dockerode/-/dockerode-4.0.2.tgz",
+ "integrity": "sha512-9wM1BVpVMFr2Pw3eJNXrYYt6DT9k0xMcsSCjtPvyQ+xa1iPg/Mo3T/gUcwI0B2cczqCeCYRPF8yFYDwtFXT0+w==",
+ "requires": {
+ "@balena/dockerignore": "^1.0.2",
+ "docker-modem": "^5.0.3",
+ "tar-fs": "~2.0.1"
+ }
+ },
"dotenv": {
"version": "16.4.5",
"resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.4.5.tgz",
@@ -15902,6 +17363,14 @@
"resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
"integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="
},
+ "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"
+ }
+ },
"enquirer": {
"version": "2.4.1",
"resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.4.1.tgz",
@@ -15920,8 +17389,7 @@
"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
+ "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A=="
},
"error-ex": {
"version": "1.3.2",
@@ -16198,7 +17666,6 @@
"version": "0.1.3",
"resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz",
"integrity": "sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ==",
- "devOptional": true,
"requires": {
"@types/pbkdf2": "^3.0.0",
"@types/secp256k1": "^4.0.1",
@@ -16221,7 +17688,6 @@
"version": "0.6.8",
"resolved": "https://registry.npmjs.org/ethereumjs-abi/-/ethereumjs-abi-0.6.8.tgz",
"integrity": "sha512-Tx0r/iXI6r+lRsdvkFDlut0N08jWMnKRZ6Gkq+Nmw75lZe4e6o3EkSnkaBP5NF6+m5PTGAr9JP43N3LyeoglsA==",
- "dev": true,
"requires": {
"bn.js": "^4.11.8",
"ethereumjs-util": "^6.0.0"
@@ -16231,7 +17697,6 @@
"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,
"requires": {
"@types/node": "*"
}
@@ -16239,14 +17704,12 @@
"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
+ "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==",
- "dev": true,
"requires": {
"@types/bn.js": "^4.11.3",
"bn.js": "^4.11.0",
@@ -16321,7 +17784,6 @@
"version": "0.1.6",
"resolved": "https://registry.npmjs.org/ethjs-util/-/ethjs-util-0.1.6.tgz",
"integrity": "sha512-CUnVOQq7gSpDHZVVrQW8ExxUETWrnrvXYvYz55wOU8Uj4VCgw56XC2B/fVqQN+f7gmrnRHSLVnFAwsCuNwji8w==",
- "dev": true,
"requires": {
"is-hex-prefixed": "1.0.0",
"strip-hex-prefix": "1.0.0"
@@ -16331,7 +17793,6 @@
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz",
"integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==",
- "devOptional": true,
"requires": {
"md5.js": "^1.3.4",
"safe-buffer": "^5.1.1"
@@ -16355,9 +17816,7 @@
"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,
- "peer": true
+ "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q=="
},
"fast-glob": {
"version": "3.3.2",
@@ -16425,7 +17884,6 @@
"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,
"requires": {
"locate-path": "^2.0.0"
}
@@ -16450,14 +17908,12 @@
"flat": {
"version": "5.0.2",
"resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz",
- "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==",
- "dev": true
+ "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ=="
},
"follow-redirects": {
- "version": "1.15.5",
- "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.5.tgz",
- "integrity": "sha512-vSFWUON1B+yAw1VN4xMfxgn5fTUiaOzAJCKBwIIgT/+7CuGy9+r+5gITvP62j3RmaD5Ph65UaERdOSRGUzZtgw==",
- "dev": true
+ "version": "1.15.9",
+ "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.9.tgz",
+ "integrity": "sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ=="
},
"for-each": {
"version": "0.3.3",
@@ -16530,8 +17986,6 @@
"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,
- "peer": true,
"requires": {
"asynckit": "^0.4.0",
"combined-stream": "^1.0.8",
@@ -16541,14 +17995,17 @@
"fp-ts": {
"version": "1.19.3",
"resolved": "https://registry.npmjs.org/fp-ts/-/fp-ts-1.19.3.tgz",
- "integrity": "sha512-H5KQDspykdHuztLTg+ajGN0Z2qUjcEf3Ybxc6hLt0k7/zPkn29XnKnxlBPyW2XIddWrGaJBzBl4VLYOtk39yZg==",
- "dev": true
+ "integrity": "sha512-H5KQDspykdHuztLTg+ajGN0Z2qUjcEf3Ybxc6hLt0k7/zPkn29XnKnxlBPyW2XIddWrGaJBzBl4VLYOtk39yZg=="
+ },
+ "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=="
},
"fs-extra": {
"version": "11.2.0",
"resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz",
"integrity": "sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==",
- "dev": true,
"requires": {
"graceful-fs": "^4.2.0",
"jsonfile": "^6.0.1",
@@ -16577,7 +18034,6 @@
"version": "2.3.3",
"resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz",
"integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==",
- "dev": true,
"optional": true
},
"function-bind": {
@@ -16764,24 +18220,16 @@
"integrity": "sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA=="
},
"hardhat": {
- "version": "2.20.1",
- "resolved": "https://registry.npmjs.org/hardhat/-/hardhat-2.20.1.tgz",
- "integrity": "sha512-q75xDQiQtCZcTMBwjTovrXEU5ECr49baxr4/OBkIu/ULTPzlB20yk1dRWNmD2IFbAeAeXggaWvQAdpiScaHtPw==",
- "dev": true,
+ "version": "2.22.13",
+ "resolved": "https://registry.npmjs.org/hardhat/-/hardhat-2.22.13.tgz",
+ "integrity": "sha512-psVJX4FSXDpSXwsU8OcKTJN04pQEj9cFBMX5OPko+OFwbIoiOpvRmafa954/UaA1934npTj8sV3gaTSdx9bPbA==",
"requires": {
"@ethersproject/abi": "^5.1.2",
"@metamask/eth-sig-util": "^4.0.0",
- "@nomicfoundation/ethereumjs-block": "5.0.4",
- "@nomicfoundation/ethereumjs-blockchain": "7.0.4",
+ "@nomicfoundation/edr": "^0.6.3",
"@nomicfoundation/ethereumjs-common": "4.0.4",
- "@nomicfoundation/ethereumjs-evm": "2.0.4",
- "@nomicfoundation/ethereumjs-rlp": "5.0.4",
- "@nomicfoundation/ethereumjs-statemanager": "2.0.4",
- "@nomicfoundation/ethereumjs-trie": "6.0.4",
"@nomicfoundation/ethereumjs-tx": "5.0.4",
"@nomicfoundation/ethereumjs-util": "9.0.4",
- "@nomicfoundation/ethereumjs-verkle": "0.0.2",
- "@nomicfoundation/ethereumjs-vm": "7.0.4",
"@nomicfoundation/solidity-analyzer": "^0.1.0",
"@sentry/node": "^5.18.1",
"@types/bn.js": "^5.1.0",
@@ -16791,7 +18239,7 @@
"ansi-escapes": "^4.3.0",
"boxen": "^5.1.2",
"chalk": "^2.4.2",
- "chokidar": "^3.4.0",
+ "chokidar": "^4.0.0",
"ci-info": "^2.0.0",
"debug": "^4.1.1",
"enquirer": "^2.3.0",
@@ -16804,6 +18252,7 @@
"glob": "7.2.0",
"immutable": "^4.0.0-rc.12",
"io-ts": "1.10.4",
+ "json-stream-stringify": "^3.1.4",
"keccak": "^3.0.2",
"lodash": "^4.17.11",
"mnemonist": "^0.38.0",
@@ -16812,7 +18261,7 @@
"raw-body": "^2.4.1",
"resolve": "1.17.0",
"semver": "^6.3.0",
- "solc": "0.7.3",
+ "solc": "0.8.26",
"source-map-support": "^0.5.13",
"stacktrace-parser": "^0.1.10",
"tsort": "0.0.1",
@@ -16824,14 +18273,12 @@
"@noble/hashes": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.2.0.tgz",
- "integrity": "sha512-FZfhjEDbT5GRswV3C6uvLPHMiVD6lQBmpoX5+eSiPaMTXte/IKqI5dykDxzZB/WBeK/CDuQRBWarPdi3FNY2zQ==",
- "dev": true
+ "integrity": "sha512-FZfhjEDbT5GRswV3C6uvLPHMiVD6lQBmpoX5+eSiPaMTXte/IKqI5dykDxzZB/WBeK/CDuQRBWarPdi3FNY2zQ=="
},
"@scure/bip32": {
"version": "1.1.5",
"resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-1.1.5.tgz",
"integrity": "sha512-XyNh1rB0SkEqd3tXcXMi+Xe1fvg+kUIcoRIEujP1Jgv7DqW2r9lg3Ah0NkFaCs9sTkQAQA8kw7xiRXzENi9Rtw==",
- "dev": true,
"requires": {
"@noble/hashes": "~1.2.0",
"@noble/secp256k1": "~1.7.0",
@@ -16842,7 +18289,6 @@
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.1.1.tgz",
"integrity": "sha512-t+wDck2rVkh65Hmv280fYdVdY25J9YeEUIgn2LG1WM6gxFkGzcksoDiUkWVpVp3Oex9xGC68JU2dSbUfwZ2jPg==",
- "dev": true,
"requires": {
"@noble/hashes": "~1.2.0",
"@scure/base": "~1.1.0"
@@ -16852,7 +18298,6 @@
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-1.2.0.tgz",
"integrity": "sha512-6yFQC9b5ug6/17CQpCyE3k9eKBMdhyVjzUy1WkiuY/E4vj/SXDBbCw8QEIaXqf0Mf2SnY6RmpDcwlUmBSS0EJw==",
- "dev": true,
"requires": {
"@noble/hashes": "1.2.0",
"@noble/secp256k1": "1.7.1",
@@ -16864,7 +18309,6 @@
"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",
@@ -16875,7 +18319,6 @@
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz",
"integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==",
- "dev": true,
"requires": {
"graceful-fs": "^4.1.6"
}
@@ -16883,14 +18326,12 @@
"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
+ "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg=="
},
"ws": {
"version": "7.5.9",
"resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz",
"integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==",
- "dev": true,
"requires": {}
}
}
@@ -16947,7 +18388,6 @@
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz",
"integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==",
- "devOptional": true,
"requires": {
"inherits": "^2.0.4",
"readable-stream": "^3.6.0",
@@ -16974,8 +18414,7 @@
"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
+ "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw=="
},
"heap": {
"version": "0.2.7",
@@ -17016,7 +18455,6 @@
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz",
"integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==",
- "dev": true,
"requires": {
"depd": "2.0.0",
"inherits": "2.0.4",
@@ -17048,7 +18486,6 @@
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz",
"integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==",
- "dev": true,
"requires": {
"agent-base": "6",
"debug": "4"
@@ -17067,6 +18504,11 @@
"safer-buffer": ">= 2.1.2 < 3"
}
},
+ "ieee754": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz",
+ "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA=="
+ },
"ignore": {
"version": "5.3.1",
"resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz",
@@ -17075,8 +18517,7 @@
"immutable": {
"version": "4.3.5",
"resolved": "https://registry.npmjs.org/immutable/-/immutable-4.3.5.tgz",
- "integrity": "sha512-8eabxkth9gZatlwl5TBuJnCsoTADlL6ftEr7A4qgdaTsPyreilDSnUk57SO+jfKcNtxPa22U5KK6DSeAYhpBJw==",
- "dev": true
+ "integrity": "sha512-8eabxkth9gZatlwl5TBuJnCsoTADlL6ftEr7A4qgdaTsPyreilDSnUk57SO+jfKcNtxPa22U5KK6DSeAYhpBJw=="
},
"indent-string": {
"version": "4.0.0",
@@ -17125,7 +18566,6 @@
"version": "1.10.4",
"resolved": "https://registry.npmjs.org/io-ts/-/io-ts-1.10.4.tgz",
"integrity": "sha512-b23PteSnYXSONJ6JQXRAlvJhuw8KOtkqa87W4wDtvMrud/DTJd5X+NpOOI+O/zZwVq6v0VLAaJ+1EDViKEuN9g==",
- "dev": true,
"requires": {
"fp-ts": "^1.0.0"
}
@@ -17156,7 +18596,6 @@
"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"
}
@@ -17225,8 +18664,7 @@
"is-hex-prefixed": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/is-hex-prefixed/-/is-hex-prefixed-1.0.0.tgz",
- "integrity": "sha512-WvtOiug1VFrE9v1Cydwm+FnXd3+w9GaeVUss5W4v/SLy3UW00vP+6iNF2SdnfiBoLy4bTqVdkftNGTUeOFVsbA==",
- "dev": true
+ "integrity": "sha512-WvtOiug1VFrE9v1Cydwm+FnXd3+w9GaeVUss5W4v/SLy3UW00vP+6iNF2SdnfiBoLy4bTqVdkftNGTUeOFVsbA=="
},
"is-negative-zero": {
"version": "2.0.3",
@@ -17249,8 +18687,7 @@
"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
+ "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA=="
},
"is-regex": {
"version": "1.1.4",
@@ -17304,8 +18741,7 @@
"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
+ "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw=="
},
"is-weakref": {
"version": "1.0.2",
@@ -17331,9 +18767,7 @@
"isarray": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
- "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==",
- "dev": true,
- "peer": true
+ "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ=="
},
"isexe": {
"version": "2.0.0",
@@ -17350,12 +18784,6 @@
"@pkgjs/parseargs": "^0.11.0"
}
},
- "js-sdsl": {
- "version": "4.4.2",
- "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.4.2.tgz",
- "integrity": "sha512-dwXFwByc/ajSV6m5bcKAPwe4yDDF6D614pxmIi5odytzxRlwqF6nwoiCek80Ixc7Cvma5awClxrzFtxCQvcM8w==",
- "dev": true
- },
"js-sha3": {
"version": "0.8.0",
"resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.8.0.tgz",
@@ -17370,7 +18798,6 @@
"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"
}
@@ -17507,9 +18934,12 @@
"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,
- "peer": true
+ "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug=="
+ },
+ "json-stream-stringify": {
+ "version": "3.1.6",
+ "resolved": "https://registry.npmjs.org/json-stream-stringify/-/json-stream-stringify-3.1.6.tgz",
+ "integrity": "sha512-x7fpwxOkbhFCaJDJ8vb1fBY3DdSa4AlITaz+HHILQJzdPMnHEFjxPwVUi1ALIbcIxDE0PNe/0i7frnY8QnBQog=="
},
"jsonfile": {
"version": "6.1.0",
@@ -17520,6 +18950,11 @@
"universalify": "^2.0.0"
}
},
+ "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",
@@ -17527,11 +18962,24 @@
"dev": true,
"peer": true
},
+ "JSONStream": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.2.tgz",
+ "integrity": "sha512-mn0KSip7N4e0UDPZHnqDsHECo5uGQrixQKnAskOM1BIB8hd7QKbd6il8IPRPudPHOeHiECoCFqhyMaRO9+nWyA==",
+ "requires": {
+ "jsonparse": "^1.2.0",
+ "through": ">=2.2.7 <3"
+ }
+ },
+ "just-extend": {
+ "version": "6.2.0",
+ "resolved": "https://registry.npmjs.org/just-extend/-/just-extend-6.2.0.tgz",
+ "integrity": "sha512-cYofQu2Xpom82S6qD778jBDpwvvy39s1l/hrYij2u9AMdQcGRpaBu6kY4mVhuno5kJVi1DAz4aiphA2WI1/OAw=="
+ },
"keccak": {
"version": "3.0.4",
"resolved": "https://registry.npmjs.org/keccak/-/keccak-3.0.4.tgz",
"integrity": "sha512-3vKuW0jV8J3XNTzvfyicFR5qvxrSAGl7KIhvgOu5cmWwM7tZRj3fMbj/pfIf4be7aznbc+prBWGjywox/g2Y6Q==",
- "devOptional": true,
"requires": {
"node-addon-api": "^2.0.0",
"node-gyp-build": "^4.2.0",
@@ -17543,15 +18991,6 @@
"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": "sha512-TED5xi9gGQjGpNnvRWknrwAB1eL5GciPfVFOt3Vk1OJCVDQbzuSfrF3hkUQKlsgKrG1F+0t5W0m+Fje1jIt8rw==",
- "dev": true,
- "requires": {
- "graceful-fs": "^4.1.9"
- }
- },
"klaw-sync": {
"version": "6.0.0",
"resolved": "https://registry.npmjs.org/klaw-sync/-/klaw-sync-6.0.0.tgz",
@@ -17629,7 +19068,6 @@
"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,
"requires": {
"p-locate": "^2.0.0",
"path-exists": "^3.0.0"
@@ -17638,8 +19076,7 @@
"lodash": {
"version": "4.17.21",
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
- "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==",
- "dev": true
+ "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg=="
},
"lodash.camelcase": {
"version": "4.3.0",
@@ -17650,9 +19087,12 @@
"lodash.clonedeep": {
"version": "4.5.0",
"resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz",
- "integrity": "sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ==",
- "dev": true,
- "peer": true
+ "integrity": "sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ=="
+ },
+ "lodash.get": {
+ "version": "4.4.2",
+ "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz",
+ "integrity": "sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ=="
},
"lodash.isequal": {
"version": "4.5.0",
@@ -17681,15 +19121,12 @@
"lodash.truncate": {
"version": "4.4.2",
"resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz",
- "integrity": "sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==",
- "dev": true,
- "peer": true
+ "integrity": "sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw=="
},
"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"
@@ -17699,7 +19136,6 @@
"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"
}
@@ -17708,7 +19144,6 @@
"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"
@@ -17718,7 +19153,6 @@
"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"
}
@@ -17726,20 +19160,17 @@
"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
+ "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==",
- "dev": true
+ "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==",
- "dev": true,
"requires": {
"has-flag": "^4.0.0"
}
@@ -17757,20 +19188,13 @@
"lru_map": {
"version": "0.3.3",
"resolved": "https://registry.npmjs.org/lru_map/-/lru_map-0.3.3.tgz",
- "integrity": "sha512-Pn9cox5CsMYngeDbmChANltQl+5pi6XmTrraMSzhPmMBbmgcxmqWry0U3PGapCU1yB4/LqCcom7qhHZiF/jGfQ==",
- "dev": true
- },
- "lru-cache": {
- "version": "10.2.0",
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.0.tgz",
- "integrity": "sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==",
- "dev": true
+ "integrity": "sha512-Pn9cox5CsMYngeDbmChANltQl+5pi6XmTrraMSzhPmMBbmgcxmqWry0U3PGapCU1yB4/LqCcom7qhHZiF/jGfQ=="
},
"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,
+ "devOptional": true,
"peer": true
},
"map-obj": {
@@ -17816,7 +19240,6 @@
"version": "1.3.5",
"resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz",
"integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==",
- "devOptional": true,
"requires": {
"hash-base": "^3.0.0",
"inherits": "^2.0.1",
@@ -17832,8 +19255,7 @@
"memorystream": {
"version": "0.3.1",
"resolved": "https://registry.npmjs.org/memorystream/-/memorystream-0.3.1.tgz",
- "integrity": "sha512-S3UwM3yj5mtUSEfP41UZmt/0SCoVYUcU1rkXv+BQ5Ig8ndL4sPoJNBUJERafdPb5jjHJGuMgytgKvKIf58XNBw==",
- "dev": true
+ "integrity": "sha512-S3UwM3yj5mtUSEfP41UZmt/0SCoVYUcU1rkXv+BQ5Ig8ndL4sPoJNBUJERafdPb5jjHJGuMgytgKvKIf58XNBw=="
},
"meow": {
"version": "6.1.1",
@@ -17903,16 +19325,12 @@
"mime-db": {
"version": "1.52.0",
"resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
- "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==",
- "dev": true,
- "peer": true
+ "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg=="
},
"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==",
- "dev": true,
- "peer": true,
"requires": {
"mime-db": "1.52.0"
}
@@ -17977,12 +19395,15 @@
"version": "0.5.6",
"resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz",
"integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==",
- "dev": true,
- "peer": true,
"requires": {
"minimist": "^1.2.6"
}
},
+ "mkdirp-classic": {
+ "version": "0.5.3",
+ "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz",
+ "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A=="
+ },
"mkdirp2": {
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/mkdirp2/-/mkdirp2-1.0.5.tgz",
@@ -17993,7 +19414,6 @@
"version": "0.38.5",
"resolved": "https://registry.npmjs.org/mnemonist/-/mnemonist-0.38.5.tgz",
"integrity": "sha512-bZTFT5rrPKtPJxj8KSV0WkPyNxl72vQepqqVUAW2ARUpUSF2qXMB6jZj7hW5/k7C1rtpzqbD/IIbJwLXUjCHeg==",
- "dev": true,
"requires": {
"obliterator": "^2.0.0"
}
@@ -18002,7 +19422,6 @@
"version": "10.3.0",
"resolved": "https://registry.npmjs.org/mocha/-/mocha-10.3.0.tgz",
"integrity": "sha512-uF2XJs+7xSLsrmIvn37i/wnc91nw7XjOQB8ccyx5aEgdnohr7n+rEiZP23WkCYHjilR6+EboEnbq/ZQDz4LSbg==",
- "dev": true,
"requires": {
"ansi-colors": "4.1.1",
"browser-stdout": "1.3.1",
@@ -18029,14 +19448,12 @@
"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
+ "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA=="
},
"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"
}
@@ -18045,7 +19462,6 @@
"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",
@@ -18060,14 +19476,12 @@
"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
+ "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA=="
},
"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"
@@ -18077,7 +19491,6 @@
"version": "8.1.0",
"resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz",
"integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==",
- "dev": true,
"requires": {
"fs.realpath": "^1.0.0",
"inflight": "^1.0.4",
@@ -18089,14 +19502,12 @@
"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
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="
},
"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"
}
@@ -18105,7 +19516,6 @@
"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"
}
@@ -18113,14 +19523,12 @@
"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
+ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="
},
"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"
}
@@ -18129,7 +19537,6 @@
"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"
}
@@ -18137,25 +19544,33 @@
"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
+ "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w=="
},
"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"
}
}
}
},
+ "mri": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/mri/-/mri-1.2.0.tgz",
+ "integrity": "sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA=="
+ },
"ms": {
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
- "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
- "devOptional": true
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
+ },
+ "nan": {
+ "version": "2.20.0",
+ "resolved": "https://registry.npmjs.org/nan/-/nan-2.20.0.tgz",
+ "integrity": "sha512-bk3gXBZDGILuuo/6sKtr0DQmSThYHLtNCdSdXk9YkxD/jK6X2vmCyyXBBxyqZ4XcnzTyYEAThfX3DCEnLf6igw==",
+ "optional": true
},
"neo-async": {
"version": "2.6.2",
@@ -18168,11 +19583,32 @@
"resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz",
"integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ=="
},
+ "nise": {
+ "version": "6.1.1",
+ "resolved": "https://registry.npmjs.org/nise/-/nise-6.1.1.tgz",
+ "integrity": "sha512-aMSAzLVY7LyeM60gvBS423nBmIPP+Wy7St7hsb+8/fc1HmeoHJfLO8CKse4u3BtOZvQLJghYPI2i/1WZrEj5/g==",
+ "requires": {
+ "@sinonjs/commons": "^3.0.1",
+ "@sinonjs/fake-timers": "^13.0.1",
+ "@sinonjs/text-encoding": "^0.7.3",
+ "just-extend": "^6.2.0",
+ "path-to-regexp": "^8.1.0"
+ },
+ "dependencies": {
+ "@sinonjs/fake-timers": {
+ "version": "13.0.2",
+ "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-13.0.2.tgz",
+ "integrity": "sha512-4Bb+oqXZTSTZ1q27Izly9lv8B9dlV61CROxPiVtywwzv5SnytJqhvYe6FclHYuXml4cd1VHPo1zd5PmTeJozvA==",
+ "requires": {
+ "@sinonjs/commons": "^3.0.1"
+ }
+ }
+ }
+ },
"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==",
- "devOptional": true
+ "integrity": "sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA=="
},
"node-emoji": {
"version": "1.11.0",
@@ -18195,14 +19631,12 @@
"node-gyp-build": {
"version": "4.8.0",
"resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.8.0.tgz",
- "integrity": "sha512-u6fs2AEUljNho3EYTJNBfImO5QTo/J/1Etd+NVdCj7qWKUSN/bSLkZwhDv7I+w/MSC6qJ4cknepkAYykDdK8og==",
- "devOptional": true
+ "integrity": "sha512-u6fs2AEUljNho3EYTJNBfImO5QTo/J/1Etd+NVdCj7qWKUSN/bSLkZwhDv7I+w/MSC6qJ4cknepkAYykDdK8og=="
},
"nofilter": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/nofilter/-/nofilter-3.1.0.tgz",
- "integrity": "sha512-l2NNj07e9afPnhAhvgVrCD/oy2Ai1yfLpuo3EpiO1jFTsB4sFz6oIfAfSZyQzVpkZQ9xS8ZS5g1jCBgq4Hwo0g==",
- "devOptional": true
+ "integrity": "sha512-l2NNj07e9afPnhAhvgVrCD/oy2Ai1yfLpuo3EpiO1jFTsB4sFz6oIfAfSZyQzVpkZQ9xS8ZS5g1jCBgq4Hwo0g=="
},
"nopt": {
"version": "3.0.6",
@@ -18235,8 +19669,7 @@
"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
+ "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA=="
},
"number-to-bn": {
"version": "1.7.0",
@@ -18301,8 +19734,7 @@
"obliterator": {
"version": "2.0.4",
"resolved": "https://registry.npmjs.org/obliterator/-/obliterator-2.0.4.tgz",
- "integrity": "sha512-lgHwxlxV1qIg1Eap7LgIeoBWIMFibOjbrYPIPJZcI1mmGAI2m3lNYpK12Y+GBdPQ0U1hRwSord7GIaawz962qQ==",
- "dev": true
+ "integrity": "sha512-lgHwxlxV1qIg1Eap7LgIeoBWIMFibOjbrYPIPJZcI1mmGAI2m3lNYpK12Y+GBdPQ0U1hRwSord7GIaawz962qQ=="
},
"once": {
"version": "1.4.0",
@@ -18372,7 +19804,6 @@
"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"
}
@@ -18381,7 +19812,6 @@
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz",
"integrity": "sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg==",
- "dev": true,
"requires": {
"p-limit": "^1.1.0"
}
@@ -18390,7 +19820,6 @@
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz",
"integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==",
- "dev": true,
"requires": {
"aggregate-error": "^3.0.0"
}
@@ -18398,8 +19827,7 @@
"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
+ "integrity": "sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww=="
},
"package-json-from-dist": {
"version": "1.0.0",
@@ -18523,8 +19951,7 @@
"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
+ "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ=="
},
"path-is-absolute": {
"version": "1.0.1",
@@ -18559,6 +19986,11 @@
}
}
},
+ "path-to-regexp": {
+ "version": "8.2.0",
+ "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-8.2.0.tgz",
+ "integrity": "sha512-TdrF7fW9Rphjq4RjrW0Kp2AW0Ahwu9sRGTkS6bvDi0SCwZlEZYmcfDbEsTz8RVk0EHIS/Vd1bv3JhG+1xZuAyQ=="
+ },
"path-type": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz",
@@ -18573,7 +20005,6 @@
"version": "3.1.2",
"resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz",
"integrity": "sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==",
- "devOptional": true,
"requires": {
"create-hash": "^1.1.2",
"create-hmac": "^1.1.4",
@@ -18722,9 +20153,7 @@
"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==",
- "dev": true,
- "peer": true
+ "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag=="
},
"promise": {
"version": "8.3.0",
@@ -18740,7 +20169,6 @@
"version": "4.1.2",
"resolved": "https://registry.npmjs.org/proper-lockfile/-/proper-lockfile-4.1.2.tgz",
"integrity": "sha512-TjNPblN4BwAWMXU8s9AEz4JmQxnD1NNL7bNOY/AKUzyamc379FWASUhc/K1pL2noVb+XmZKLL68cjzLsiOAMaA==",
- "optional": true,
"requires": {
"graceful-fs": "^4.2.4",
"retry": "^0.12.0",
@@ -18750,21 +20178,26 @@
"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,
- "peer": true
+ "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg=="
},
"pseudomap": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz",
"integrity": "sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ=="
},
+ "pump": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.2.tgz",
+ "integrity": "sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw==",
+ "requires": {
+ "end-of-stream": "^1.1.0",
+ "once": "^1.3.1"
+ }
+ },
"punycode": {
"version": "2.3.1",
"resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz",
- "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==",
- "dev": true,
- "peer": true
+ "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg=="
},
"punycode.js": {
"version": "2.3.1",
@@ -18796,7 +20229,6 @@
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz",
"integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==",
- "devOptional": true,
"requires": {
"safe-buffer": "^5.1.0"
}
@@ -18805,7 +20237,6 @@
"version": "2.5.2",
"resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz",
"integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==",
- "dev": true,
"requires": {
"bytes": "3.1.2",
"http-errors": "2.0.0",
@@ -18930,7 +20361,6 @@
"version": "3.6.2",
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz",
"integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==",
- "devOptional": true,
"requires": {
"inherits": "^2.0.3",
"string_decoder": "^1.1.1",
@@ -18941,7 +20371,6 @@
"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"
}
@@ -19104,8 +20533,7 @@
"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
+ "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw=="
},
"require-main-filename": {
"version": "2.0.0",
@@ -19139,8 +20567,7 @@
"retry": {
"version": "0.12.0",
"resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz",
- "integrity": "sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==",
- "optional": true
+ "integrity": "sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow=="
},
"reusify": {
"version": "1.0.4",
@@ -19195,7 +20622,6 @@
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz",
"integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==",
- "devOptional": true,
"requires": {
"hash-base": "^3.0.0",
"inherits": "^2.0.1"
@@ -19205,7 +20631,6 @@
"version": "2.2.7",
"resolved": "https://registry.npmjs.org/rlp/-/rlp-2.2.7.tgz",
"integrity": "sha512-d5gdPmgQ0Z+AklL2NVXr/IoSjNZFfTVvQWzL/AM2AOcSzYP2xjlb0AC8YyCLc41MSNf6P6QVtjgPdmVtzb+4lQ==",
- "devOptional": true,
"requires": {
"bn.js": "^5.2.0"
}
@@ -19218,21 +20643,6 @@
"queue-microtask": "^1.2.2"
}
},
- "rust-verkle-wasm": {
- "version": "0.0.1",
- "resolved": "https://registry.npmjs.org/rust-verkle-wasm/-/rust-verkle-wasm-0.0.1.tgz",
- "integrity": "sha512-BN6fiTsxcd2dCECz/cHtGTt9cdLJR925nh7iAuRcj8ymKw7OOaPmCneQZ7JePOJ/ia27TjEL91VdOi88Yf+mcA==",
- "dev": true
- },
- "rustbn-wasm": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/rustbn-wasm/-/rustbn-wasm-0.2.0.tgz",
- "integrity": "sha512-FThvYFNTqrEKGqXuseeg0zR7yROh/6U1617mCHF68OVqrN1tNKRN7Tdwy4WayPVsCmmK+eMxtIZX1qL6JxTkMg==",
- "dev": true,
- "requires": {
- "@scure/base": "^1.1.1"
- }
- },
"safe-array-concat": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.2.tgz",
@@ -19254,8 +20664,7 @@
"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==",
- "devOptional": true
+ "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ=="
},
"safe-regex-test": {
"version": "1.0.3",
@@ -19374,7 +20783,6 @@
"version": "4.0.3",
"resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-4.0.3.tgz",
"integrity": "sha512-NLZVf+ROMxwtEj3Xa562qgv2BK5e2WNmXPiOdVIPLgs6lyTzMvBq0aWTYMI5XCP9jZMVKOcqZLw/Wc4vDkuxhA==",
- "devOptional": true,
"requires": {
"elliptic": "^6.5.4",
"node-addon-api": "^2.0.0",
@@ -19384,14 +20792,12 @@
"semver": {
"version": "6.3.1",
"resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
- "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
- "dev": true
+ "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA=="
},
"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"
}
@@ -19428,20 +20834,17 @@
"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==",
- "devOptional": true
+ "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA=="
},
"setprototypeof": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz",
- "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==",
- "dev": true
+ "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw=="
},
"sha.js": {
"version": "2.4.11",
"resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz",
"integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==",
- "devOptional": true,
"requires": {
"inherits": "^2.0.1",
"safe-buffer": "^5.0.1"
@@ -19499,6 +20902,45 @@
"resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz",
"integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ=="
},
+ "sinon": {
+ "version": "18.0.1",
+ "resolved": "https://registry.npmjs.org/sinon/-/sinon-18.0.1.tgz",
+ "integrity": "sha512-a2N2TDY1uGviajJ6r4D1CyRAkzE9NNVlYOV1wX5xQDuAk0ONgzgRl0EjCQuRCPxOwp13ghsMwt9Gdldujs39qw==",
+ "requires": {
+ "@sinonjs/commons": "^3.0.1",
+ "@sinonjs/fake-timers": "11.2.2",
+ "@sinonjs/samsam": "^8.0.0",
+ "diff": "^5.2.0",
+ "nise": "^6.0.0",
+ "supports-color": "^7"
+ },
+ "dependencies": {
+ "diff": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/diff/-/diff-5.2.0.tgz",
+ "integrity": "sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A=="
+ },
+ "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"
+ }
+ }
+ }
+ },
+ "sinon-chai": {
+ "version": "3.7.0",
+ "resolved": "https://registry.npmjs.org/sinon-chai/-/sinon-chai-3.7.0.tgz",
+ "integrity": "sha512-mf5NURdUaSdnatJx3uhoBOrY9dtL19fiOtAdT1Azxg3+lNJFiuN0uzaU3xX1LeAfL17kHQhTAJgpsfhbMJMY2g==",
+ "requires": {}
+ },
"slash": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
@@ -19508,8 +20950,6 @@
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz",
"integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==",
- "dev": true,
- "peer": true,
"requires": {
"ansi-styles": "^4.0.0",
"astral-regex": "^2.0.0",
@@ -19520,8 +20960,6 @@
"version": "4.3.0",
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
"integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "dev": true,
- "peer": true,
"requires": {
"color-convert": "^2.0.1"
}
@@ -19530,8 +20968,6 @@
"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,
- "peer": true,
"requires": {
"color-name": "~1.1.4"
}
@@ -19539,9 +20975,7 @@
"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,
- "peer": true
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
}
}
},
@@ -19687,58 +21121,23 @@
}
},
"solc": {
- "version": "0.7.3",
- "resolved": "https://registry.npmjs.org/solc/-/solc-0.7.3.tgz",
- "integrity": "sha512-GAsWNAjGzIDg7VxzP6mPjdurby3IkGCjQcM8GFYZT6RyaoUZKmMU6Y7YwG+tFGhv7dwZ8rmR4iwFDrrD99JwqA==",
- "dev": true,
+ "version": "0.8.26",
+ "resolved": "https://registry.npmjs.org/solc/-/solc-0.8.26.tgz",
+ "integrity": "sha512-yiPQNVf5rBFHwN6SIf3TUUvVAFKcQqmSUFeq+fb6pNRCo0ZCgpYOZDi3BVoezCPIAcKrVYd/qXlBLUP9wVrZ9g==",
"requires": {
"command-exists": "^1.2.8",
- "commander": "3.0.2",
+ "commander": "^8.1.0",
"follow-redirects": "^1.12.1",
- "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": "sha512-UvSPKyhMn6LEd/WpUaV9C9t3zATuqoqfWc3QdPhPLb58prN9tqYPlPWi8Krxi44loBoUzlobqZ3+8tGpxxSzwA==",
- "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"
- }
- },
- "jsonfile": {
- "version": "2.4.0",
- "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz",
- "integrity": "sha512-PKllAqbgLgxHaj8TElYymKCAgrASebJrWpTnEkOaTowt23VKXXN0sUeriJ+eh7y6ufb/CC5ap11pz71/cM0hUw==",
- "dev": true,
- "requires": {
- "graceful-fs": "^4.1.6"
- }
- },
- "rimraf": {
- "version": "2.7.1",
- "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz",
- "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==",
- "dev": true,
- "requires": {
- "glob": "^7.1.3"
- }
- },
"semver": {
"version": "5.7.2",
"resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz",
- "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==",
- "dev": true
+ "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g=="
}
}
},
@@ -19886,7 +21285,6 @@
"version": "0.5.21",
"resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz",
"integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==",
- "dev": true,
"requires": {
"buffer-from": "^1.0.0",
"source-map": "^0.6.0"
@@ -19895,8 +21293,7 @@
"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
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="
}
}
},
@@ -19963,16 +21360,31 @@
"resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.18.tgz",
"integrity": "sha512-xxRs31BqRYHwiMzudOrpSiHtZ8i/GeionCBDSilhYRj+9gIcI8wCZTlXZKu9vZIVqViP3dcp9qE5G6AlIaD+TQ=="
},
+ "split-ca": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/split-ca/-/split-ca-1.0.1.tgz",
+ "integrity": "sha512-Q5thBSxp5t8WPTTJQS59LrGqOZqOsrhDGDVm8azCqIBjSBd7nd9o2PM+mDulQQkh8h//4U6hFZnc/mul8t5pWQ=="
+ },
"sprintf-js": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
"integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g=="
},
+ "ssh2": {
+ "version": "1.16.0",
+ "resolved": "https://registry.npmjs.org/ssh2/-/ssh2-1.16.0.tgz",
+ "integrity": "sha512-r1X4KsBGedJqo7h8F5c4Ybpcr5RjyP+aWIG007uBPRjmdQWfEiVLzSK71Zji1B9sKxwaCvD8y8cwSkYrlLiRRg==",
+ "requires": {
+ "asn1": "^0.2.6",
+ "bcrypt-pbkdf": "^1.0.2",
+ "cpu-features": "~0.0.10",
+ "nan": "^2.20.0"
+ }
+ },
"stacktrace-parser": {
"version": "0.1.10",
"resolved": "https://registry.npmjs.org/stacktrace-parser/-/stacktrace-parser-0.1.10.tgz",
"integrity": "sha512-KJP1OCML99+8fhOHxwwzyWrlUuVX5GQ0ZpJTd1DFXhdkrvg1szxfHhawXUZ3g9TkXORQd4/WG68jMlQZ2p8wlg==",
- "dev": true,
"requires": {
"type-fest": "^0.7.1"
},
@@ -19980,16 +21392,14 @@
"type-fest": {
"version": "0.7.1",
"resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.7.1.tgz",
- "integrity": "sha512-Ne2YiiGN8bmrmJJEuTWTLJR32nh/JdL1+PSicowtNb0WFpn59GK8/lfD61bVtzguz7b3PBt74nxpv/Pw5po5Rg==",
- "dev": true
+ "integrity": "sha512-Ne2YiiGN8bmrmJJEuTWTLJR32nh/JdL1+PSicowtNb0WFpn59GK8/lfD61bVtzguz7b3PBt74nxpv/Pw5po5Rg=="
}
}
},
"statuses": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz",
- "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==",
- "dev": true
+ "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ=="
},
"stream-connect": {
"version": "1.0.2",
@@ -20035,7 +21445,6 @@
"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==",
- "devOptional": true,
"requires": {
"safe-buffer": "~5.2.0"
}
@@ -20125,7 +21534,6 @@
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/strip-hex-prefix/-/strip-hex-prefix-1.0.0.tgz",
"integrity": "sha512-q8d4ue7JGEiVcypji1bALTos+0pWtyGlivAWyPuTkHzuTCJqrK9sWxYQZUq6Nq3cuyv3bm734IhHvHtGGURU6A==",
- "dev": true,
"requires": {
"is-hex-prefixed": "1.0.0"
}
@@ -20141,8 +21549,7 @@
"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
+ "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig=="
},
"supports-color": {
"version": "5.5.0",
@@ -20178,8 +21585,6 @@
"version": "6.8.1",
"resolved": "https://registry.npmjs.org/table/-/table-6.8.1.tgz",
"integrity": "sha512-Y4X9zqrCftUhMeH2EptSSERdVKt/nEdijTOacGD/97EKjhQ/Qs8RTlEGABSJNNN8lac9kheH+af7yAkEWlgneA==",
- "dev": true,
- "peer": true,
"requires": {
"ajv": "^8.0.1",
"lodash.truncate": "^4.4.2",
@@ -20217,6 +21622,29 @@
}
}
},
+ "tar-fs": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.0.1.tgz",
+ "integrity": "sha512-6tzWDMeroL87uF/+lin46k+Q+46rAJ0SyPGz7OW7wTgblI273hsBqk2C1j0/xNadNLKDTUL9BukSjB7cwgmlPA==",
+ "requires": {
+ "chownr": "^1.1.1",
+ "mkdirp-classic": "^0.5.2",
+ "pump": "^3.0.0",
+ "tar-stream": "^2.0.0"
+ }
+ },
+ "tar-stream": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz",
+ "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==",
+ "requires": {
+ "bl": "^4.0.3",
+ "end-of-stream": "^1.4.1",
+ "fs-constants": "^1.0.0",
+ "inherits": "^2.0.3",
+ "readable-stream": "^3.1.1"
+ }
+ },
"temp-path": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/temp-path/-/temp-path-1.0.0.tgz",
@@ -20296,6 +21724,11 @@
}
}
},
+ "through": {
+ "version": "2.3.8",
+ "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz",
+ "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg=="
+ },
"tmp": {
"version": "0.0.33",
"resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz",
@@ -20304,6 +21737,11 @@
"os-tmpdir": "~1.0.2"
}
},
+ "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=="
+ },
"to-regex-range": {
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
@@ -20315,8 +21753,7 @@
"toidentifier": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz",
- "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==",
- "dev": true
+ "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA=="
},
"tr46": {
"version": "0.0.3",
@@ -20410,7 +21847,7 @@
"version": "10.9.2",
"resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.2.tgz",
"integrity": "sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==",
- "dev": true,
+ "devOptional": true,
"peer": true,
"requires": {
"@cspotcode/source-map-support": "^0.8.0",
@@ -20432,7 +21869,7 @@
"version": "4.0.2",
"resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz",
"integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==",
- "dev": true,
+ "devOptional": true,
"peer": true
}
}
@@ -20447,8 +21884,7 @@
"tsort": {
"version": "0.0.1",
"resolved": "https://registry.npmjs.org/tsort/-/tsort-0.0.1.tgz",
- "integrity": "sha512-Tyrf5mxF8Ofs1tNoxA13lFeZ2Zrbd6cKbuH3V+MQ5sb6DtBj5FjrXVsRWT8YvNAQTqNoz66dz1WsbigI22aEnw==",
- "dev": true
+ "integrity": "sha512-Tyrf5mxF8Ofs1tNoxA13lFeZ2Zrbd6cKbuH3V+MQ5sb6DtBj5FjrXVsRWT8YvNAQTqNoz66dz1WsbigI22aEnw=="
},
"tty-table": {
"version": "4.2.3",
@@ -20541,14 +21977,12 @@
"tweetnacl": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.3.tgz",
- "integrity": "sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==",
- "dev": true
+ "integrity": "sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw=="
},
"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
+ "integrity": "sha512-RKJBIj8lySrShN4w6i/BonWp2Z/uxwC3h4y7xsRrpP59ZboCd0GpEVsOnMDYLMmKBpYhb5TgHzZXy7wTfYFBRw=="
},
"type-check": {
"version": "0.3.2",
@@ -20568,8 +22002,7 @@
"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
+ "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w=="
},
"typechain": {
"version": "8.3.2",
@@ -20701,15 +22134,13 @@
"typedarray": {
"version": "0.0.6",
"resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz",
- "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==",
- "dev": true,
- "peer": true
+ "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA=="
},
"typescript": {
"version": "5.3.3",
"resolved": "https://registry.npmjs.org/typescript/-/typescript-5.3.3.tgz",
"integrity": "sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==",
- "dev": true,
+ "devOptional": true,
"peer": true
},
"typical": {
@@ -20752,7 +22183,6 @@
"version": "5.28.3",
"resolved": "https://registry.npmjs.org/undici/-/undici-5.28.3.tgz",
"integrity": "sha512-3ItfzbrhDlINjaP0duwnNsKpDQk3acHI3gVJ1z4fmwMK31k5G9OVIAMLSIaP6w4FaGkaAkN6zaQO9LUvZ1t7VA==",
- "dev": true,
"requires": {
"@fastify/busboy": "^2.0.0"
}
@@ -20760,8 +22190,7 @@
"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==",
- "devOptional": true
+ "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA=="
},
"universalify": {
"version": "2.0.1",
@@ -20771,15 +22200,12 @@
"unpipe": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
- "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==",
- "dev": true
+ "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ=="
},
"uri-js": {
"version": "4.4.1",
"resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz",
"integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==",
- "dev": true,
- "peer": true,
"requires": {
"punycode": "^2.1.0"
}
@@ -20794,20 +22220,18 @@
"util-deprecate": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
- "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==",
- "devOptional": true
+ "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw=="
},
"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
+ "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg=="
},
"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,
+ "devOptional": true,
"peer": true
},
"validate-npm-package-license": {
@@ -20953,7 +22377,6 @@
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz",
"integrity": "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==",
- "dev": true,
"requires": {
"string-width": "^4.0.0"
}
@@ -20994,8 +22417,7 @@
"workerpool": {
"version": "6.2.1",
"resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.2.1.tgz",
- "integrity": "sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw==",
- "dev": true
+ "integrity": "sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw=="
},
"wrap-ansi": {
"version": "7.0.0",
@@ -21086,6 +22508,11 @@
"integrity": "sha512-nquOebG4sngPmGPICTS5EnxqhKbCmz5Ox5hsszI2T6U5qdrJizBc+0ilYSEjTSzU0yZcmvppztXe/5Al5fUwdg==",
"dev": true
},
+ "xtend": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz",
+ "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ=="
+ },
"y18n": {
"version": "5.0.8",
"resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz",
@@ -21107,7 +22534,6 @@
"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",
@@ -21121,14 +22547,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
+ "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA=="
},
"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",
@@ -21140,7 +22564,7 @@
"version": "3.1.1",
"resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz",
"integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==",
- "dev": true,
+ "devOptional": true,
"peer": true
},
"yocto-queue": {
diff --git a/package.json b/package.json
index 90301c0..dc45f2e 100644
--- a/package.json
+++ b/package.json
@@ -2,7 +2,7 @@
"name": "@chainlink/local",
"description": "Chainlink Local Simulator",
"license": "MIT",
- "version": "0.2.1",
+ "version": "0.2.2",
"files": [
"src/**/*.sol",
"!src/test/**/*",
@@ -43,6 +43,6 @@
},
"dependencies": {
"@chainlink/contracts": "^1.1.1",
- "@chainlink/contracts-ccip": "^1.4.0"
+ "@chainlink/contracts-ccip": "^1.5.0"
}
}
diff --git a/src/ccip/CCIPLocalSimulator.sol b/src/ccip/CCIPLocalSimulator.sol
index 3e3d8a3..da4fa92 100644
--- a/src/ccip/CCIPLocalSimulator.sol
+++ b/src/ccip/CCIPLocalSimulator.sol
@@ -6,8 +6,12 @@ import {LinkToken} from "../shared/LinkToken.sol";
import {BurnMintERC677Helper} from "./BurnMintERC677Helper.sol";
import {MockCCIPRouter} from "@chainlink/contracts-ccip/src/v0.8/ccip/test/mocks/MockRouter.sol";
import {IRouterClient} from "@chainlink/contracts-ccip/src/v0.8/ccip/interfaces/IRouterClient.sol";
-import {IERC20} from "@chainlink/contracts-ccip/src/v0.8/vendor/openzeppelin-solidity/v4.8.3/contracts/token/ERC20/IERC20.sol";
-import {SafeERC20} from "@chainlink/contracts-ccip/src/v0.8/vendor/openzeppelin-solidity/v4.8.3/contracts/token/ERC20/utils/SafeERC20.sol";
+import {IERC20} from
+ "@chainlink/contracts-ccip/src/v0.8/vendor/openzeppelin-solidity/v4.8.3/contracts/token/ERC20/IERC20.sol";
+import {SafeERC20} from
+ "@chainlink/contracts-ccip/src/v0.8/vendor/openzeppelin-solidity/v4.8.3/contracts/token/ERC20/utils/SafeERC20.sol";
+import {IOwner} from "@chainlink/contracts-ccip/src/v0.8/ccip/interfaces/IOwner.sol";
+import {IGetCCIPAdmin} from "@chainlink/contracts-ccip/src/v0.8/ccip/interfaces/IGetCCIPAdmin.sol";
/// @title CCIPLocalSimulator
/// @notice This contract simulates local CCIP (Cross-Chain Interoperability Protocol) operations for testing and development purposes.
@@ -36,6 +40,8 @@ contract CCIPLocalSimulator {
/// @notice The list of supported token addresses
address[] internal s_supportedTokens;
+ error CCIPLocalSimulator__MsgSenderIsNotTokenOwner();
+
/**
* @notice Constructor to initialize the contract and pre-deployed token instances
*/
@@ -52,10 +58,29 @@ contract CCIPLocalSimulator {
/**
* @notice Allows user to support any new token, besides CCIP BnM and CCIP LnM, for cross-chain transfers.
+ * Reverts if token does not implement owner() function.
+ * Reverts if the caller is not the token owner.
*
* @param tokenAddress - The address of the token to add to the list of supported tokens.
*/
- function supportNewToken(address tokenAddress) external {
+ function supportNewTokenViaOwner(address tokenAddress) external {
+ if (msg.sender != IOwner(tokenAddress).owner()) {
+ revert CCIPLocalSimulator__MsgSenderIsNotTokenOwner();
+ }
+ s_supportedTokens.push(tokenAddress);
+ }
+
+ /**
+ * @notice Allows user to support any new token, besides CCIP BnM and CCIP LnM, for cross-chain transfers.
+ * Reverts if token does not implement getCCIPAdmin() function.
+ * Reverts if the caller is not the token CCIPAdmin.
+ *
+ * @param tokenAddress - The address of the token to add to the list of supported tokens.
+ */
+ function supportNewTokenViaGetCCIPAdmin(address tokenAddress) external {
+ if (msg.sender != IGetCCIPAdmin(tokenAddress).getCCIPAdmin()) {
+ revert CCIPLocalSimulator__MsgSenderIsNotTokenOwner();
+ }
s_supportedTokens.push(tokenAddress);
}
@@ -66,9 +91,7 @@ contract CCIPLocalSimulator {
*
* @return supported - Returns true if `chainSelector` is supported by the simulator.
*/
- function isChainSupported(
- uint64 chainSelector
- ) public pure returns (bool supported) {
+ function isChainSupported(uint64 chainSelector) public pure returns (bool supported) {
supported = chainSelector == CHAIN_SELECTOR;
}
@@ -79,9 +102,7 @@ contract CCIPLocalSimulator {
*
* @return tokens - Returns a list of token addresses that are supported for cross-chain transfers by the simulator.
*/
- function getSupportedTokens(
- uint64 chainSelector
- ) external view returns (address[] memory tokens) {
+ function getSupportedTokens(uint64 chainSelector) external view returns (address[] memory tokens) {
if (!isChainSupported(chainSelector)) {
return new address[](0);
}
@@ -97,10 +118,7 @@ contract CCIPLocalSimulator {
*
* @return success - Returns `true` if the transfer of tokens was successful, otherwise `false`.
*/
- function requestLinkFromFaucet(
- address to,
- uint256 amount
- ) external returns (bool success) {
+ function requestLinkFromFaucet(address to, uint256 amount) external returns (bool success) {
success = i_linkToken.transfer(to, amount);
}
diff --git a/src/ccip/CCIPLocalSimulatorFork.sol b/src/ccip/CCIPLocalSimulatorFork.sol
index 5e394f0..88d9d29 100644
--- a/src/ccip/CCIPLocalSimulatorFork.sol
+++ b/src/ccip/CCIPLocalSimulatorFork.sol
@@ -4,7 +4,8 @@ pragma solidity ^0.8.19;
import {Test, Vm} from "forge-std/Test.sol";
import {Register} from "./Register.sol";
import {Internal} from "@chainlink/contracts-ccip/src/v0.8/ccip/libraries/Internal.sol";
-import {IERC20} from "@chainlink/contracts-ccip/src/v0.8/vendor/openzeppelin-solidity/v4.8.3/contracts/token/ERC20/IERC20.sol";
+import {IERC20} from
+ "@chainlink/contracts-ccip/src/v0.8/vendor/openzeppelin-solidity/v4.8.3/contracts/token/ERC20/IERC20.sol";
/// @title IRouterFork Interface
interface IRouterFork {
@@ -37,7 +38,8 @@ interface IEVM2EVMOffRampFork {
*/
function executeSingleMessage(
Internal.EVM2EVMMessage memory message,
- bytes[] memory offchainTokenData
+ bytes[] memory offchainTokenData,
+ uint32[] memory tokenGasOverrides
) external;
}
@@ -80,10 +82,7 @@ contract CCIPLocalSimulatorFork is Test {
uint256 length = entries.length;
for (uint256 i; i < length; ++i) {
if (entries[i].topics[0] == CCIPSendRequested.selector) {
- message = abi.decode(
- entries[i].data,
- (Internal.EVM2EVMMessage)
- );
+ message = abi.decode(entries[i].data, (Internal.EVM2EVMMessage));
if (!s_processedMessages[message.messageId]) {
s_processedMessages[message.messageId] = true;
break;
@@ -94,21 +93,21 @@ contract CCIPLocalSimulatorFork is Test {
vm.selectFork(forkId);
assertEq(vm.activeFork(), forkId);
- IRouterFork.OffRamp[] memory offRamps = IRouterFork(
- i_register.getNetworkDetails(block.chainid).routerAddress
- ).getOffRamps();
+ IRouterFork.OffRamp[] memory offRamps =
+ IRouterFork(i_register.getNetworkDetails(block.chainid).routerAddress).getOffRamps();
length = offRamps.length;
- for (uint256 i; i < length; ++i) {
- if (
- offRamps[i].sourceChainSelector == message.sourceChainSelector
- ) {
- vm.startPrank(offRamps[i].offRamp);
+ for (uint256 i = length; i > 0; --i) {
+ if (offRamps[i - 1].sourceChainSelector == message.sourceChainSelector) {
+ vm.startPrank(offRamps[i - 1].offRamp);
uint256 numberOfTokens = message.tokenAmounts.length;
bytes[] memory offchainTokenData = new bytes[](numberOfTokens);
- IEVM2EVMOffRampFork(offRamps[i].offRamp).executeSingleMessage(
- message,
- offchainTokenData
+ uint32[] memory tokenGasOverrides = new uint32[](numberOfTokens);
+ for (uint256 j; j < numberOfTokens; ++j) {
+ tokenGasOverrides[j] = uint32(message.gasLimit);
+ }
+ IEVM2EVMOffRampFork(offRamps[i - 1].offRamp).executeSingleMessage(
+ message, offchainTokenData, tokenGasOverrides
);
vm.stopPrank();
break;
@@ -129,9 +128,7 @@ contract CCIPLocalSimulatorFork is Test {
* ccipBnMAddress - The address of the CCIP BnM token.
* ccipLnMAddress - The address of the CCIP LnM token.
*/
- function getNetworkDetails(
- uint256 chainId
- ) external view returns (Register.NetworkDetails memory) {
+ function getNetworkDetails(uint256 chainId) external view returns (Register.NetworkDetails memory) {
return i_register.getNetworkDetails(chainId);
}
@@ -147,10 +144,7 @@ contract CCIPLocalSimulatorFork is Test {
* ccipBnMAddress - The address of the CCIP BnM token.
* ccipLnMAddress - The address of the CCIP LnM token.
*/
- function setNetworkDetails(
- uint256 chainId,
- Register.NetworkDetails memory networkDetails
- ) external {
+ function setNetworkDetails(uint256 chainId, Register.NetworkDetails memory networkDetails) external {
i_register.setNetworkDetails(chainId, networkDetails);
}
@@ -162,13 +156,8 @@ contract CCIPLocalSimulatorFork is Test {
*
* @return success - Returns `true` if the transfer of tokens was successful, otherwise `false`.
*/
- function requestLinkFromFaucet(
- address to,
- uint256 amount
- ) external returns (bool success) {
- address linkAddress = i_register
- .getNetworkDetails(block.chainid)
- .linkAddress;
+ function requestLinkFromFaucet(address to, uint256 amount) external returns (bool success) {
+ address linkAddress = i_register.getNetworkDetails(block.chainid).linkAddress;
vm.startPrank(LINK_FAUCET);
success = IERC20(linkAddress).transfer(to, amount);
diff --git a/src/ccip/CCIPLocalSimulatorV0.sol b/src/ccip/CCIPLocalSimulatorV0.sol
deleted file mode 100644
index be36498..0000000
--- a/src/ccip/CCIPLocalSimulatorV0.sol
+++ /dev/null
@@ -1,449 +0,0 @@
-// // SPDX-License-Identifier: BUSL-1.1
-// pragma solidity ^0.8.19;
-
-// import {WETH9} from "../shared/WETH9.sol";
-// import {LinkToken} from "../shared/LinkToken.sol";
-// import {BurnMintERC677Helper} from "./BurnMintERC677Helper.sol";
-// import {Router} from "@chainlink/contracts-ccip/src/v0.8/ccip/Router.sol";
-// import {ARMProxy} from "@chainlink/contracts-ccip/src/v0.8/ccip/ARMProxy.sol";
-// import {ARM} from "@chainlink/contracts-ccip/src/v0.8/ccip/ARM.sol";
-// import {EVM2EVMOnRamp, Internal, RateLimiter} from "@chainlink/contracts-ccip/src/v0.8/ccip/onRamp/EVM2EVMOnRamp.sol";
-// import {PriceRegistry} from "@chainlink/contracts-ccip/src/v0.8/ccip/PriceRegistry.sol";
-// import {BurnMintTokenPool} from "@chainlink/contracts-ccip/src/v0.8/ccip/pools/BurnMintTokenPool.sol";
-// import {LockReleaseTokenPool} from "@chainlink/contracts-ccip/src/v0.8/ccip/pools/LockReleaseTokenPool.sol";
-// import {TokenPool} from "@chainlink/contracts-ccip/src/v0.8/ccip/pools/TokenPool.sol";
-// import {IBurnMintERC20} from "@chainlink/contracts-ccip/src/v0.8/shared/token/ERC20/IBurnMintERC20.sol";
-// import {MockEvm2EvmOffRamp} from "./MockEvm2EvmOffRamp.sol";
-// import {Client} from "@chainlink/contracts-ccip/src/v0.8/ccip/libraries/Client.sol";
-// import {IRouterClient} from "@chainlink/contracts-ccip/src/v0.8/ccip/interfaces/IRouterClient.sol";
-// import {IERC20} from "@chainlink/contracts-ccip/src/v0.8/vendor/openzeppelin-solidity/v4.8.3/contracts/token/ERC20/IERC20.sol";
-// import {SafeERC20} from "@chainlink/contracts-ccip/src/v0.8/vendor/openzeppelin-solidity/v4.8.3/contracts/token/ERC20/utils/SafeERC20.sol";
-// import {IAny2EVMMessageReceiver} from "@chainlink/contracts-ccip/src/v0.8/ccip/interfaces/IAny2EVMMessageReceiver.sol";
-// import {CallWithExactGas} from "@chainlink/contracts-ccip/src/v0.8/shared/call/CallWithExactGas.sol";
-
-// contract CCIPLocalSimulatorV0 {
-// using SafeERC20 for IERC20;
-
-// WETH9 immutable wrappedNative;
-// LinkToken immutable linkToken;
-// Router immutable router;
-// ARMProxy immutable armProxy;
-// ARM immutable arm;
-// EVM2EVMOnRamp immutable evm2EvmOnRamp;
-// PriceRegistry immutable priceRegistry;
-// BurnMintTokenPool immutable ccipBnMTokenPool;
-// LockReleaseTokenPool immutable ccipLnMTokenPool;
-// BurnMintERC677Helper immutable ccipBnM;
-// BurnMintERC677Helper immutable ccipLnM;
-// MockEvm2EvmOffRamp immutable mockEvm2EvmOffRamp;
-
-// uint64 constant CHAIN_SELECTOR = 777000000000000000;
-
-// error CCIPLocalSimulator_InvalidExtraArgsTag();
-// error CCIPLocalSimulator_InvalidAddress(bytes);
-// error CCIPLocalSimulator__OnlyOffRamp();
-
-// event MessageExecuted(
-// bytes32 messageId,
-// uint64 sourceChainSelector,
-// address offRamp,
-// bytes32 calldataHash
-// );
-
-// constructor() {
-// wrappedNative = new WETH9();
-// linkToken = new LinkToken();
-// ARM.Voter[] memory voters = new ARM.Voter[](1);
-// voters[0] = ARM.Voter(
-// address(this), // blessVoteAddr
-// address(7), // curseVoteAddr
-// address(777), // curseUnvoteAddr
-// 1, // blessWeight
-// 1 // curseWeight
-// );
-
-// arm = new ARM(
-// ARM.Config(
-// voters,
-// 1, // blessWeightThreshold
-// 1 //curseWeightThreshold
-// )
-// );
-// armProxy = new ARMProxy(address(arm));
-
-// router = new Router(address(wrappedNative), address(armProxy));
-
-// address[] memory priceUpdaters = new address[](1);
-// priceUpdaters[0] = address(this);
-// address[] memory feeTokens = new address[](2);
-// feeTokens[0] = address(linkToken);
-// feeTokens[1] = address(wrappedNative);
-
-// priceRegistry = new PriceRegistry(
-// priceUpdaters,
-// feeTokens,
-// 3600 // stalenessThreshold
-// );
-
-// EVM2EVMOnRamp.StaticConfig memory staticConfig = EVM2EVMOnRamp
-// .StaticConfig(
-// address(linkToken),
-// CHAIN_SELECTOR, // chainSelector
-// CHAIN_SELECTOR, // destChainSelector
-// 200000, // defaultTxGasLimit
-// 100000000000000000000000000, // maxNopFeesJuels
-// address(0), // prevOnRamp
-// address(armProxy)
-// );
-
-// EVM2EVMOnRamp.DynamicConfig memory dynamicConfig = EVM2EVMOnRamp
-// .DynamicConfig(
-// address(router), // router
-// 1, // maxNumberOfTokensPerMsg
-// 350000, // destGasOverhead
-// 16, // destGasPerPayloadByte
-// 33596, // destDataAvailabilityOverheadGas
-// 16, // destGasPerDataAvailabilityByte
-// 6840, // destDataAvailabilityMultiplierBps
-// address(priceRegistry),
-// 30000, // maxDataBytes
-// 3000000 // maxPerMsgGasLimit
-// );
-
-// ccipBnM = new BurnMintERC677Helper("CCIP-BnM", "CCIP-BnM");
-// ccipLnM = new BurnMintERC677Helper("CCIP-LnM", "CCIP-LnM");
-
-// address[] memory allowlist = new address[](1);
-// allowlist[0] = address(this);
-
-// ccipBnMTokenPool = new BurnMintTokenPool(
-// IBurnMintERC20(address(ccipBnM)),
-// allowlist,
-// address(armProxy)
-// );
-// ccipBnM.grantMintAndBurnRoles(address(ccipBnMTokenPool));
-
-// ccipLnMTokenPool = new LockReleaseTokenPool(
-// IBurnMintERC20(address(ccipLnM)),
-// allowlist,
-// address(armProxy),
-// false // acceptLiquidity
-// );
-// ccipLnM.grantMintAndBurnRoles(address(ccipLnMTokenPool));
-
-// Internal.PoolUpdate[] memory tokensAndPools = new Internal.PoolUpdate[](
-// 2
-// );
-// tokensAndPools[0] = Internal.PoolUpdate(
-// address(ccipBnM),
-// address(ccipBnMTokenPool)
-// );
-// tokensAndPools[1] = Internal.PoolUpdate(
-// address(ccipLnM),
-// address(ccipLnMTokenPool)
-// );
-// RateLimiter.Config memory rateLimiterConfig = RateLimiter.Config(
-// false, // isEnabled
-// 0, // capacity
-// 0 // rate
-// );
-// EVM2EVMOnRamp.FeeTokenConfigArgs[]
-// memory feeTokenConfigs = new EVM2EVMOnRamp.FeeTokenConfigArgs[](3);
-// feeTokenConfigs[0] = EVM2EVMOnRamp.FeeTokenConfigArgs(
-// address(linkToken), // token
-// 0, // networkFeeUSDCents
-// 0, // gasMultiplierWeiPerEth
-// 0, // premiumMultiplierWeiPerEth
-// true // enabled
-// );
-// feeTokenConfigs[1] = EVM2EVMOnRamp.FeeTokenConfigArgs(
-// address(wrappedNative), // token
-// 0, // networkFeeUSDCents
-// 0, // gasMultiplierWeiPerEth
-// 0, // premiumMultiplierWeiPerEth
-// true // enabled
-// );
-// feeTokenConfigs[2] = EVM2EVMOnRamp.FeeTokenConfigArgs(
-// address(0), // token
-// 0, // networkFeeUSDCents
-// 0, // gasMultiplierWeiPerEth
-// 0, // premiumMultiplierWeiPerEth
-// true // enabled
-// );
-
-// EVM2EVMOnRamp.TokenTransferFeeConfigArgs[]
-// memory tokenTransferFeeConfigArgs = new EVM2EVMOnRamp.TokenTransferFeeConfigArgs[](
-// 2
-// );
-// tokenTransferFeeConfigArgs[0] = EVM2EVMOnRamp
-// .TokenTransferFeeConfigArgs(
-// address(ccipBnM), // token
-// 0, // minFeeUSDCents
-// 0, // maxFeeUSDCents
-// 0, // deciBps
-// 0, // destGasOverhead
-// 0 // destBytesOverhead
-// );
-// tokenTransferFeeConfigArgs[1] = EVM2EVMOnRamp
-// .TokenTransferFeeConfigArgs(
-// address(ccipLnM), // token
-// 0, // minFeeUSDCents
-// 0, // maxFeeUSDCents
-// 0, // deciBps
-// 0, // destGasOverhead
-// 0 // destBytesOverhead
-// );
-
-// EVM2EVMOnRamp.NopAndWeight[]
-// memory nopsAndWeights = new EVM2EVMOnRamp.NopAndWeight[](1);
-// nopsAndWeights[0] = EVM2EVMOnRamp.NopAndWeight(
-// address(this), // nop
-// 0 // weight
-// );
-
-// evm2EvmOnRamp = new EVM2EVMOnRamp(
-// staticConfig,
-// dynamicConfig,
-// tokensAndPools,
-// rateLimiterConfig,
-// feeTokenConfigs,
-// tokenTransferFeeConfigArgs,
-// nopsAndWeights
-// );
-
-// address[] memory sourceTokens = new address[](2);
-// sourceTokens[0] = address(ccipBnM);
-// sourceTokens[1] = address(ccipLnM);
-
-// address[] memory pools = new address[](2);
-// pools[0] = address(ccipBnMTokenPool);
-// pools[1] = address(ccipLnMTokenPool);
-
-// mockEvm2EvmOffRamp = new MockEvm2EvmOffRamp(
-// address(this), // ccipLocalSimulator
-// MockEvm2EvmOffRamp.DynamicConfig(
-// 604800, // permissionLessExecutionThresholdSeconds (1 week)
-// address(this), // router
-// address(priceRegistry), // priceRegistry
-// 1, // maxNumberOfTokensPerMsg
-// 30000, // maxDataBytes
-// 3000000 // maxPoolReleaseOrMintGas
-// ),
-// rateLimiterConfig, // rateLimiterConfig
-// CHAIN_SELECTOR, // sourceChainSelector,
-// sourceTokens, // sourceTokens
-// pools // pools
-// );
-
-// Router.OnRamp[] memory onRampUpdates = new Router.OnRamp[](1);
-// onRampUpdates[0] = Router.OnRamp(
-// CHAIN_SELECTOR,
-// address(evm2EvmOnRamp)
-// );
-
-// Router.OffRamp[] memory offRampAdds = new Router.OffRamp[](1);
-// offRampAdds[0] = Router.OffRamp(
-// CHAIN_SELECTOR,
-// address(mockEvm2EvmOffRamp)
-// );
-
-// router.applyRampUpdates(
-// onRampUpdates,
-// new Router.OffRamp[](0), // offRampRemoves
-// offRampAdds
-// );
-
-// Internal.TokenPriceUpdate[]
-// memory tokenPriceUpdates = new Internal.TokenPriceUpdate[](5);
-// tokenPriceUpdates[0] = Internal.TokenPriceUpdate(
-// address(wrappedNative), // sourceToken
-// 1 // usdPerToken
-// );
-// tokenPriceUpdates[1] = Internal.TokenPriceUpdate(address(0), 1);
-// tokenPriceUpdates[2] = Internal.TokenPriceUpdate(address(linkToken), 1);
-// tokenPriceUpdates[3] = Internal.TokenPriceUpdate(address(ccipBnM), 1);
-// tokenPriceUpdates[4] = Internal.TokenPriceUpdate(address(ccipBnM), 1);
-// Internal.GasPriceUpdate[]
-// memory gasPriceUpdates = new Internal.GasPriceUpdate[](1);
-// gasPriceUpdates[0] = Internal.GasPriceUpdate(CHAIN_SELECTOR, 0);
-// priceRegistry.updatePrices(
-// Internal.PriceUpdates(tokenPriceUpdates, gasPriceUpdates)
-// );
-
-// TokenPool.RampUpdate[] memory onRamps = new TokenPool.RampUpdate[](1);
-// onRamps[0] = TokenPool.RampUpdate(
-// address(evm2EvmOnRamp), // ramp
-// true, // allowed
-// rateLimiterConfig // rateLimiterConfig
-// );
-// TokenPool.RampUpdate[] memory offRamps = new TokenPool.RampUpdate[](1);
-// offRamps[0] = TokenPool.RampUpdate(
-// address(mockEvm2EvmOffRamp), // ramp
-// true, // allowed
-// rateLimiterConfig // rateLimiterConfig
-// );
-
-// ccipBnMTokenPool.applyRampUpdates(onRamps, offRamps);
-// ccipLnMTokenPool.applyRampUpdates(onRamps, offRamps);
-// }
-
-// function ccipSend(
-// uint64 destinationChainSelector,
-// Client.EVM2AnyMessage calldata message
-// ) external returns (bytes32 messageId) {
-// for (uint256 i = 0; i < message.tokenAmounts.length; ++i) {
-// IERC20 token = IERC20(message.tokenAmounts[i].token);
-// uint256 amount = message.tokenAmounts[i].amount;
-// token.safeTransferFrom(msg.sender, address(this), amount);
-// token.approve(address(router), amount);
-// }
-
-// messageId = IRouterClient(router).ccipSend(
-// destinationChainSelector,
-// message
-// );
-
-// if (message.receiver.length != 32) {
-// revert CCIPLocalSimulator_InvalidAddress(message.receiver);
-// }
-// uint256 decodedReceiver = abi.decode(message.receiver, (uint256));
-// if (decodedReceiver > type(uint160).max || decodedReceiver < 10) {
-// revert CCIPLocalSimulator_InvalidAddress(message.receiver);
-// }
-
-// bytes[] memory sourceTokenData;
-// uint256 numberOfTokens = message.tokenAmounts.length;
-// if (numberOfTokens > 0) {
-// sourceTokenData = new bytes[](numberOfTokens);
-// for (uint256 i = 0; i < numberOfTokens; ++i) {
-// sourceTokenData[i] = "";
-// }
-// }
-
-// Internal.EVM2EVMMessage memory evm2EvmMessage = Internal.EVM2EVMMessage(
-// CHAIN_SELECTOR, // sourceChainSelector
-// msg.sender, //sender
-// address(uint160(decodedReceiver)), // receiver
-// evm2EvmOnRamp.getExpectedNextSequenceNumber(), //sequenceNumber
-// _fromBytes(message.extraArgs).gasLimit, // gasLimit
-// false, // strict; DEPRECATED
-// evm2EvmOnRamp.getSenderNonce(msg.sender), // nonce
-// message.feeToken == address(0)
-// ? address(wrappedNative)
-// : address(linkToken), // feeToken
-// evm2EvmOnRamp.getFee(destinationChainSelector, message), // feeTokenAmount
-// message.data, // arbitrary data payload supplied by the message sender
-// message.tokenAmounts, // array of tokens and amounts to transfer
-// sourceTokenData, // sourceTokenData
-// messageId
-// );
-// bytes[] memory offchainTokenData = new bytes[](numberOfTokens);
-
-// mockEvm2EvmOffRamp.executeSingleMessage(
-// evm2EvmMessage,
-// offchainTokenData
-// );
-// }
-
-// function isChainSupported(
-// uint64 chainSelector
-// ) external view returns (bool supported) {
-// supported = router.isChainSupported(chainSelector);
-// }
-
-// function getSupportedTokens(
-// uint64 chainSelector
-// ) external view returns (address[] memory tokens) {
-// tokens = router.getSupportedTokens(chainSelector);
-// }
-
-// function getFee(
-// uint64 destinationChainSelector,
-// Client.EVM2AnyMessage memory message
-// ) external view returns (uint256 fee) {
-// fee = router.getFee(destinationChainSelector, message);
-// }
-
-// function routeMessage(
-// Client.Any2EVMMessage calldata message,
-// uint16 gasForCallExactCheck,
-// uint256 gasLimit,
-// address receiver
-// ) external returns (bool success, bytes memory retData, uint256 gasUsed) {
-// if (msg.sender != address(mockEvm2EvmOffRamp))
-// revert CCIPLocalSimulator__OnlyOffRamp();
-
-// // We encode here instead of the offRamps to constrain specifically what functions
-// // can be called from the router.
-// bytes memory data = abi.encodeWithSelector(
-// IAny2EVMMessageReceiver.ccipReceive.selector,
-// message
-// );
-
-// (success, retData, gasUsed) = CallWithExactGas
-// ._callWithExactGasSafeReturnData(
-// data,
-// receiver,
-// gasLimit,
-// gasForCallExactCheck,
-// Internal.MAX_RET_BYTES
-// );
-
-// emit MessageExecuted(
-// message.messageId,
-// message.sourceChainSelector,
-// msg.sender,
-// keccak256(data)
-// );
-// return (success, retData, gasUsed);
-// }
-
-// function configuration()
-// public
-// view
-// returns (
-// uint64 chainSelector_,
-// Router sourceRouter_,
-// Router destinationRouter_,
-// WETH9 wrappedNative_,
-// LinkToken linkToken_,
-// BurnMintERC677Helper ccipBnM_,
-// BurnMintERC677Helper ccipLnM_
-// )
-// {
-// return (
-// CHAIN_SELECTOR,
-// Router(address(this)),
-// Router(address(this)),
-// wrappedNative,
-// linkToken,
-// ccipBnM,
-// ccipLnM
-// );
-// }
-
-// function requestLinkFromFaucet(
-// address to,
-// uint256 amount
-// ) external returns (bool success) {
-// success = linkToken.transfer(to, amount);
-// }
-
-// /// @dev Convert the extra args bytes into a struct
-// /// @param extraArgs The extra args bytes
-// /// @return The extra args struct
-// function _fromBytes(
-// bytes calldata extraArgs
-// ) internal pure returns (Client.EVMExtraArgsV1 memory) {
-// if (extraArgs.length == 0) {
-// // 200000 = defaultTxGasLimit
-// return Client.EVMExtraArgsV1({gasLimit: 200000});
-// }
-// if (bytes4(extraArgs) != Client.EVM_EXTRA_ARGS_V1_TAG) {
-// revert CCIPLocalSimulator_InvalidExtraArgsTag();
-// }
-// // EVMExtraArgsV1 originally included a second boolean (strict) field which we have deprecated entirely.
-// // Clients may still send that version but it will be ignored.
-// return abi.decode(extraArgs[4:], (Client.EVMExtraArgsV1));
-// }
-// }
diff --git a/src/ccip/MockEvm2EvmOffRamp.sol b/src/ccip/MockEvm2EvmOffRamp.sol
deleted file mode 100644
index 33ea348..0000000
--- a/src/ccip/MockEvm2EvmOffRamp.sol
+++ /dev/null
@@ -1,215 +0,0 @@
-// SPDX-License-Identifier: BUSL-1.1
-pragma solidity ^0.8.19;
-
-import {Client} from "@chainlink/contracts-ccip/src/v0.8/ccip/libraries/Client.sol";
-import {Internal} from "@chainlink/contracts-ccip/src/v0.8/ccip/libraries/Internal.sol";
-import {IRouter} from "@chainlink/contracts-ccip/src/v0.8/ccip/interfaces/IRouter.sol";
-import {IAny2EVMMessageReceiver} from "@chainlink/contracts-ccip/src/v0.8/ccip/interfaces/IAny2EVMMessageReceiver.sol";
-import {IPool} from "@chainlink/contracts-ccip/src/v0.8/ccip/interfaces/pools/IPool.sol";
-import {IPriceRegistry} from "@chainlink/contracts-ccip/src/v0.8/ccip/interfaces/IPriceRegistry.sol";
-import {CallWithExactGas} from "@chainlink/contracts-ccip/src/v0.8/shared/call/CallWithExactGas.sol";
-import {EnumerableMapAddresses} from "@chainlink/contracts-ccip/src/v0.8/shared/enumerable/EnumerableMapAddresses.sol";
-import {RateLimiter} from "@chainlink/contracts-ccip/src/v0.8/ccip/libraries/RateLimiter.sol";
-import {USDPriceWith18Decimals} from "@chainlink/contracts-ccip/src/v0.8/ccip/libraries/USDPriceWith18Decimals.sol";
-import {AggregateRateLimiter} from "@chainlink/contracts-ccip/src/v0.8/ccip/AggregateRateLimiter.sol";
-import {IERC20} from "@chainlink/contracts-ccip/src/v0.8/vendor/openzeppelin-solidity/v4.8.3/contracts/token/ERC20/IERC20.sol";
-import {Address} from "@chainlink/contracts-ccip/src/v0.8/vendor/openzeppelin-solidity/v4.8.3/contracts/utils/Address.sol";
-import {ERC165Checker} from "@chainlink/contracts-ccip/src/v0.8/vendor/openzeppelin-solidity/v4.8.3/contracts/utils/introspection/ERC165Checker.sol";
-
-/// @title MockEvm2EvmOffRamp
-/// @notice This contract handles off-ramp processes for CCIP messages
-contract MockEvm2EvmOffRamp is AggregateRateLimiter {
- using EnumerableMapAddresses for EnumerableMapAddresses.AddressToAddressMap;
- using USDPriceWith18Decimals for uint224;
- using Address for address;
- using ERC165Checker for address;
-
- struct DynamicConfig {
- uint32 permissionLessExecutionThresholdSeconds; // ─╮ Waiting time before manual execution is enabled
- address router; // ─────────────────────────────────╯ Router address
- address priceRegistry; // ──────────╮ Price registry address
- uint16 maxNumberOfTokensPerMsg; // │ Maximum number of ERC20 token transfers that can be included per message
- uint32 maxDataBytes; // │ Maximum payload data size in bytes
- uint32 maxPoolReleaseOrMintGas; // ─╯ Maximum amount of gas passed on to token pool when calling releaseOrMint
- }
-
- /// @dev chain selector for the source chain
- uint64 internal immutable i_sourceChainSelector;
-
- /// @dev Address of the CCIP Local Simulator
- address internal s_ccipLocalSimulator;
-
- /// @dev Dynamic configuration of the offramp
- DynamicConfig internal s_dynamicConfig;
-
- /// @dev Map from source token to token pool
- EnumerableMapAddresses.AddressToAddressMap private s_poolsBySourceToken;
-
- /// @dev Error thrown when a function can only be called by the simulator
- error CanOnlySimulatorCall();
-
- /// @dev Error thrown when there is an error in the receiver
- /// @param error The error data
- error ReceiverError(bytes error);
-
- /// @dev Error thrown when there is an error in token handling
- /// @param error The error data
- error TokenHandlingError(bytes error);
-
- /// @dev Error thrown when an unsupported token is encountered
- /// @param token The unsupported token
- error UnsupportedToken(IERC20 token);
-
- /**
- * @notice Constructor to initialize the contract.
- *
- * @param ccipLocalSimulator - Address of the CCIP local simulator.
- * @param dynamicConfig - Initial dynamic configuration parameters.
- * @param config - Rate limiter configuration.
- * @param sourceChainSelector - Source chain selector.
- * @param sourceTokens - List of supported tokens on the source chain.
- * @param pools - List of pools corresponding to the supported tokens on the source chain.
- */
- constructor(
- address ccipLocalSimulator,
- DynamicConfig memory dynamicConfig,
- RateLimiter.Config memory config,
- uint64 sourceChainSelector,
- address[] memory sourceTokens,
- address[] memory pools
- ) AggregateRateLimiter(config) {
- s_ccipLocalSimulator = ccipLocalSimulator;
- s_dynamicConfig = dynamicConfig;
- i_sourceChainSelector = sourceChainSelector;
-
- for (uint256 i = 0; i < sourceTokens.length; ++i) {
- s_poolsBySourceToken.set(
- address(sourceTokens[i]),
- address(pools[i])
- );
- // s_poolsByDestToken.set(address(pools[i].getToken()), address(pools[i]));
- // emit PoolAdded(address(sourceTokens[i]), address(pools[i]));
- }
- }
-
- /**
- * @notice Executes a single CCIP message.
- *
- * @param message - The CCIP message to be executed.
- * @param offchainTokenData - Additional off-chain token data.
- */
- function executeSingleMessage(
- Internal.EVM2EVMMessage memory message,
- bytes[] memory offchainTokenData
- ) external {
- if (msg.sender != s_ccipLocalSimulator) revert CanOnlySimulatorCall();
-
- Client.EVMTokenAmount[]
- memory destTokenAmounts = new Client.EVMTokenAmount[](0);
- if (message.tokenAmounts.length > 0) {
- destTokenAmounts = _releaseOrMintTokens(
- message.tokenAmounts,
- abi.encode(message.sender),
- message.receiver,
- message.sourceTokenData,
- offchainTokenData
- );
- }
- if (
- !message.receiver.isContract() ||
- !message.receiver.supportsInterface(
- type(IAny2EVMMessageReceiver).interfaceId
- )
- ) return;
-
- (bool success, bytes memory returnData, ) = IRouter(
- s_dynamicConfig.router
- ).routeMessage(
- Internal._toAny2EVMMessage(message, destTokenAmounts),
- Internal.GAS_FOR_CALL_EXACT_CHECK,
- message.gasLimit,
- message.receiver
- );
- // If CCIP receiver execution is not successful, revert the call including token transfers
- if (!success) revert ReceiverError(returnData);
- }
-
- /**
- * @notice Uses pools to release or mint a number of different tokens to a receiver address.
- *
- * @param sourceTokenAmounts - List of tokens and amount values to be released/minted.
- * @param originalSender - The message sender.
- * @param receiver - The address that will receive the tokens.
- * @param sourceTokenData - Array of token data returned by token pools on the source chain.
- * @param offchainTokenData - Array of token data fetched offchain by the DON.
- * @return destTokenAmounts - The amounts of tokens released or minted.
- *
- * @dev This function wraps the token pool call in a try-catch block to gracefully handle
- * any non-rate limiting errors that may occur. If we encounter a rate limiting related error
- * we bubble it up. If we encounter a non-rate limiting error we wrap it in a TokenHandlingError.
- */
- function _releaseOrMintTokens(
- Client.EVMTokenAmount[] memory sourceTokenAmounts,
- bytes memory originalSender,
- address receiver,
- bytes[] memory sourceTokenData,
- bytes[] memory offchainTokenData
- ) internal returns (Client.EVMTokenAmount[] memory) {
- Client.EVMTokenAmount[]
- memory destTokenAmounts = new Client.EVMTokenAmount[](
- sourceTokenAmounts.length
- );
- for (uint256 i = 0; i < sourceTokenAmounts.length; ++i) {
- IPool pool = getPoolBySourceToken(
- IERC20(sourceTokenAmounts[i].token)
- );
- uint256 sourceTokenAmount = sourceTokenAmounts[i].amount;
-
- // Call the pool with exact gas to increase resistance against malicious tokens or token pools.
- // _callWithExactGas also protects against return data bombs by capping the return data size
- // at MAX_RET_BYTES.
- (bool success, bytes memory returnData, ) = CallWithExactGas
- ._callWithExactGasSafeReturnData(
- abi.encodeWithSelector(
- pool.releaseOrMint.selector,
- originalSender,
- receiver,
- sourceTokenAmount,
- i_sourceChainSelector,
- abi.encode(sourceTokenData[i], offchainTokenData[i])
- ),
- address(pool),
- s_dynamicConfig.maxPoolReleaseOrMintGas,
- Internal.GAS_FOR_CALL_EXACT_CHECK,
- Internal.MAX_RET_BYTES
- );
-
- // wrap and rethrow the error so we can catch it lower in the stack
- if (!success) revert TokenHandlingError(returnData);
-
- destTokenAmounts[i].token = address(pool.getToken());
- destTokenAmounts[i].amount = sourceTokenAmount;
- }
- _rateLimitValue(
- destTokenAmounts,
- IPriceRegistry(s_dynamicConfig.priceRegistry)
- );
- return destTokenAmounts;
- }
-
- /**
- * @notice Get a token pool by its source token.
- *
- * @param sourceToken - The source token.
- * @return pool - The corresponding token pool.
- */
- function getPoolBySourceToken(
- IERC20 sourceToken
- ) public view returns (IPool) {
- (bool success, address pool) = s_poolsBySourceToken.tryGet(
- address(sourceToken)
- );
- if (!success) revert UnsupportedToken(sourceToken);
- return IPool(pool);
- }
-}
diff --git a/src/ccip/Register.sol b/src/ccip/Register.sol
index b6f1e4b..564f7f5 100644
--- a/src/ccip/Register.sol
+++ b/src/ccip/Register.sol
@@ -1,5 +1,5 @@
// SPDX-License-Identifier: BUSL-1.1
-pragma solidity ^0.8.19;
+pragma solidity ^0.8.0;
/// @title Register Contract
/// @notice This contract allows storing and retrieving network details for various chains.
@@ -12,6 +12,9 @@ contract Register {
address wrappedNativeAddress;
address ccipBnMAddress;
address ccipLnMAddress;
+ address rmnProxyAddress;
+ address registryModuleOwnerCustomAddress;
+ address tokenAdminRegistryAddress;
}
/// @notice Mapping to store network details based on chain ID.
@@ -19,51 +22,19 @@ contract Register {
/// @notice Constructor to initialize the network details for various chains.
constructor() {
- // Ethereum Sepolia
- s_networkDetails[11155111] = NetworkDetails({
- chainSelector: 16015286601757825753,
- routerAddress: 0x0BF3dE8c5D3e8A2B34D2BEeB17ABfCeBaf363A59,
- linkAddress: 0x779877A7B0D9E8603169DdbD7836e478b4624789,
- wrappedNativeAddress: 0x097D90c9d3E0B50Ca60e1ae45F6A81010f9FB534,
- ccipBnMAddress: 0xFd57b4ddBf88a4e07fF4e34C487b99af2Fe82a05,
- ccipLnMAddress: 0x466D489b6d36E7E3b824ef491C225F5830E81cC1
- });
- // Optimism Sepolia
- s_networkDetails[11155420] = NetworkDetails({
- chainSelector: 5224473277236331295,
- routerAddress: 0x114A20A10b43D4115e5aeef7345a1A71d2a60C57,
- linkAddress: 0xE4aB69C077896252FAFBD49EFD26B5D171A32410,
- wrappedNativeAddress: 0x4200000000000000000000000000000000000006,
- ccipBnMAddress: 0x8aF4204e30565DF93352fE8E1De78925F6664dA7,
- ccipLnMAddress: 0x044a6B4b561af69D2319A2f4be5Ec327a6975D0a
- });
- // Polygon Mumbai
- s_networkDetails[80001] = NetworkDetails({
- chainSelector: 12532609583862916517,
- routerAddress: 0x1035CabC275068e0F4b745A29CEDf38E13aF41b1,
- linkAddress: 0x326C977E6efc84E512bB9C30f76E30c160eD06FB,
- wrappedNativeAddress: 0x9c3C9283D3e44854697Cd22D3Faa240Cfb032889,
- ccipBnMAddress: 0xf1E3A5842EeEF51F2967b3F05D45DD4f4205FF40,
- ccipLnMAddress: 0xc1c76a8c5bFDE1Be034bbcD930c668726E7C1987
- });
- // Avalanche Fuji
- s_networkDetails[43113] = NetworkDetails({
- chainSelector: 14767482510784806043,
- routerAddress: 0xF694E193200268f9a4868e4Aa017A0118C9a8177,
- linkAddress: 0x0b9d5D9136855f6FEc3c0993feE6E9CE8a297846,
- wrappedNativeAddress: 0xd00ae08403B9bbb9124bB305C09058E32C39A48c,
- ccipBnMAddress: 0xD21341536c5cF5EB1bcb58f6723cE26e8D8E90e4,
- ccipLnMAddress: 0x70F5c5C40b873EA597776DA2C21929A8282A3b35
- });
- // BNB Chain Testnet
- s_networkDetails[97] = NetworkDetails({
- chainSelector: 13264668187771770619,
- routerAddress: 0xE1053aE1857476f36A3C62580FF9b016E8EE8F6f,
- linkAddress: 0x84b9B910527Ad5C03A9Ca831909E21e236EA7b06,
- wrappedNativeAddress: 0xae13d989daC2f0dEbFf460aC112a837C89BAa7cd,
- ccipBnMAddress: 0xbFA2ACd33ED6EEc0ed3Cc06bF1ac38d22b36B9e9,
- ccipLnMAddress: 0x79a4Fc27f69323660f5Bfc12dEe21c3cC14f5901
+ // Polygon Amoy
+ s_networkDetails[80002] = NetworkDetails({
+ chainSelector: 16281711391670634445,
+ routerAddress: 0x9C32fCB86BF0f4a1A8921a9Fe46de3198bb884B2,
+ linkAddress: 0x0Fd9e8d3aF1aaee056EB9e802c3A762a667b1904,
+ wrappedNativeAddress: 0x360ad4f9a9A8EFe9A8DCB5f461c4Cc1047E1Dcf9,
+ ccipBnMAddress: 0xcab0EF91Bee323d1A617c0a027eE753aFd6997E4,
+ ccipLnMAddress: 0x3d357fb52253e86c8Ee0f80F5FfE438fD9503FF2,
+ rmnProxyAddress: 0x7c1e545A40750Ee8761282382D51E017BAC68CBB,
+ registryModuleOwnerCustomAddress: 0x84ad5890A63957C960e0F19b0448A038a574936B,
+ tokenAdminRegistryAddress: 0x1e73f6842d7afDD78957ac143d1f315404Dd9e5B
});
+
// Arbitrum Sepolia
s_networkDetails[421614] = NetworkDetails({
chainSelector: 3478487238524512106,
@@ -71,8 +42,12 @@ contract Register {
linkAddress: 0xb1D4538B4571d411F07960EF2838Ce337FE1E80E,
wrappedNativeAddress: 0xE591bf0A0CF924A0674d7792db046B23CEbF5f34,
ccipBnMAddress: 0xA8C0c11bf64AF62CDCA6f93D3769B88BdD7cb93D,
- ccipLnMAddress: 0x139E99f0ab4084E14e6bb7DacA289a91a2d92927
+ ccipLnMAddress: 0x139E99f0ab4084E14e6bb7DacA289a91a2d92927,
+ rmnProxyAddress: 0x9527E2d01A3064ef6b50c1Da1C0cC523803BCFF2,
+ registryModuleOwnerCustomAddress: 0xE625f0b8b0Ac86946035a7729Aba124c8A64cf69,
+ tokenAdminRegistryAddress: 0x8126bE56454B628a88C17849B9ED99dd5a11Bd2f
});
+
// Base Sepolia
s_networkDetails[84532] = NetworkDetails({
chainSelector: 10344971235874465080,
@@ -80,26 +55,64 @@ contract Register {
linkAddress: 0xE4aB69C077896252FAFBD49EFD26B5D171A32410,
wrappedNativeAddress: 0x4200000000000000000000000000000000000006,
ccipBnMAddress: 0x88A2d74F47a237a62e7A51cdDa67270CE381555e,
- ccipLnMAddress: 0xA98FA8A008371b9408195e52734b1768c0d1Cb5c
+ ccipLnMAddress: 0xA98FA8A008371b9408195e52734b1768c0d1Cb5c,
+ rmnProxyAddress: 0x99360767a4705f68CcCb9533195B761648d6d807,
+ registryModuleOwnerCustomAddress: 0x8A55C61227f26a3e2f217842eCF20b52007bAaBe,
+ tokenAdminRegistryAddress: 0x736D0bBb318c1B27Ff686cd19804094E66250e17
});
- // Wemix Testnet
- s_networkDetails[1112] = NetworkDetails({
- chainSelector: 9284632837123596123,
- routerAddress: 0xA8C0c11bf64AF62CDCA6f93D3769B88BdD7cb93D,
- linkAddress: 0x3580c7A817cCD41f7e02143BFa411D4EeAE78093,
- wrappedNativeAddress: 0xbE3686643c05f00eC46e73da594c78098F7a9Ae7,
- ccipBnMAddress: 0xF4E4057FbBc86915F4b2d63EEFFe641C03294ffc,
- ccipLnMAddress: 0xcb342aE3D65E3fEDF8F912B0432e2B8F88514d5D
+
+ // Blast Sepolia
+ s_networkDetails[168587773] = NetworkDetails({
+ chainSelector: 2027362563942762617,
+ routerAddress: 0xfb2f2A207dC428da81fbAFfDDe121761f8Be1194,
+ linkAddress: 0x02c359ebf98fc8BF793F970F9B8302bb373BdF32,
+ wrappedNativeAddress: 0x4200000000000000000000000000000000000023,
+ ccipBnMAddress: 0x8D122C3e8ce9C8B62b87d3551bDfD8C259Bb0771,
+ ccipLnMAddress: 0x35347A2fC1f2a4c5Eae03339040d0b83b09e6FDA,
+ rmnProxyAddress: 0x1cb6afB6F411f0469c3C0d5D46f6e8f7fd3eADe0,
+ registryModuleOwnerCustomAddress: 0x912F59E92467C54BBab49ED3a5d431504aFBa30c,
+ tokenAdminRegistryAddress: 0x98f1703B9C02f9Ab8bA4cc209Ee8D7B188Bb43a8
});
- // Kroma Sepolia
- s_networkDetails[2358] = NetworkDetails({
- chainSelector: 5990477251245693094,
- routerAddress: 0xA8C0c11bf64AF62CDCA6f93D3769B88BdD7cb93D,
- linkAddress: 0xa75cCA5b404ec6F4BB6EC4853D177FE7057085c8,
- wrappedNativeAddress: 0x4200000000000000000000000000000000000001,
- ccipBnMAddress: 0x6AC3e353D1DDda24d5A5416024d6E436b8817A4e,
- ccipLnMAddress: 0x835fcBB6770E1246CfCf52F83cDcec3177d0bb6b
+
+ // BNB Chain Testnet
+ s_networkDetails[97] = NetworkDetails({
+ chainSelector: 13264668187771770619,
+ routerAddress: 0xE1053aE1857476f36A3C62580FF9b016E8EE8F6f,
+ linkAddress: 0x84b9B910527Ad5C03A9Ca831909E21e236EA7b06,
+ wrappedNativeAddress: 0xae13d989daC2f0dEbFf460aC112a837C89BAa7cd,
+ ccipBnMAddress: 0xbFA2ACd33ED6EEc0ed3Cc06bF1ac38d22b36B9e9,
+ ccipLnMAddress: 0x79a4Fc27f69323660f5Bfc12dEe21c3cC14f5901,
+ rmnProxyAddress: 0xA8C0c11bf64AF62CDCA6f93D3769B88BdD7cb93D,
+ registryModuleOwnerCustomAddress: 0x763685240370758c5ac6C5F7c22AB36684c0570E,
+ tokenAdminRegistryAddress: 0xF8f2A4466039Ac8adf9944fD67DBb3bb13888f2B
+ });
+
+ // Celo Testnet Alfajores
+ s_networkDetails[44787] = NetworkDetails({
+ chainSelector: 3552045678561919002,
+ routerAddress: 0xb00E95b773528E2Ea724DB06B75113F239D15Dca,
+ linkAddress: 0x32E08557B14FaD8908025619797221281D439071,
+ wrappedNativeAddress: 0x99604d0e2EfE7ABFb58BdE565b5330Bb46Ab3Dca,
+ ccipBnMAddress: 0x7e503dd1dAF90117A1b79953321043d9E6815C72,
+ ccipLnMAddress: 0x7F4e739D40E58BBd59dAD388171d18e37B26326f,
+ rmnProxyAddress: 0x7A394C616A7347dc91C40159929e1c9a435cb83A,
+ registryModuleOwnerCustomAddress: 0xa8c380Ecd336401Ee896Df33b93F1c76b749C902,
+ tokenAdminRegistryAddress: 0x5585040bED214fdC60c9cE8c3E8a9c52CE19f4Ea
+ });
+
+ // Avalanche Fuji
+ s_networkDetails[43113] = NetworkDetails({
+ chainSelector: 14767482510784806043,
+ routerAddress: 0xF694E193200268f9a4868e4Aa017A0118C9a8177,
+ linkAddress: 0x0b9d5D9136855f6FEc3c0993feE6E9CE8a297846,
+ wrappedNativeAddress: 0xd00ae08403B9bbb9124bB305C09058E32C39A48c,
+ ccipBnMAddress: 0xD21341536c5cF5EB1bcb58f6723cE26e8D8E90e4,
+ ccipLnMAddress: 0x70F5c5C40b873EA597776DA2C21929A8282A3b35,
+ rmnProxyAddress: 0xAc8CFc3762a979628334a0E4C1026244498E821b,
+ registryModuleOwnerCustomAddress: 0x97300785aF1edE1343DB6d90706A35CF14aA3d81,
+ tokenAdminRegistryAddress: 0xA92053a4a3922084d992fD2835bdBa4caC6877e6
});
+
// Gnosis Chiado
s_networkDetails[10200] = NetworkDetails({
chainSelector: 8871595565390010547,
@@ -107,7 +120,101 @@ contract Register {
linkAddress: 0xDCA67FD8324990792C0bfaE95903B8A64097754F,
wrappedNativeAddress: 0x18c8a7ec7897177E4529065a7E7B0878358B3BfF,
ccipBnMAddress: 0xA189971a2c5AcA0DFC5Ee7a2C44a2Ae27b3CF389,
- ccipLnMAddress: 0x30DeCD269277b8094c00B0bacC3aCaF3fF4Da7fB
+ ccipLnMAddress: 0x30DeCD269277b8094c00B0bacC3aCaF3fF4Da7fB,
+ rmnProxyAddress: 0x1be106fd3b104275B1e56BcAca554B8cbc5a2577,
+ registryModuleOwnerCustomAddress: 0x02a254c97Ca097Fb09792bfe331E3FBE61f6aF6A,
+ tokenAdminRegistryAddress: 0x75ada0256Bea7956824B190419b52ba6660f9CF9
+ });
+
+ // Kroma Sepolia
+ s_networkDetails[2358] = NetworkDetails({
+ chainSelector: 5990477251245693094,
+ routerAddress: 0xA8C0c11bf64AF62CDCA6f93D3769B88BdD7cb93D,
+ linkAddress: 0xa75cCA5b404ec6F4BB6EC4853D177FE7057085c8,
+ wrappedNativeAddress: 0x4200000000000000000000000000000000000001,
+ ccipBnMAddress: 0x6AC3e353D1DDda24d5A5416024d6E436b8817A4e,
+ ccipLnMAddress: 0x835fcBB6770E1246CfCf52F83cDcec3177d0bb6b,
+ rmnProxyAddress: 0xA930c1E0fF1E1005E8Ef569Aa81e6EEbf466b1c3,
+ registryModuleOwnerCustomAddress: 0x683995A22b3654556E9EeA29C0b9df973be6D549,
+ tokenAdminRegistryAddress: 0xaE669d8217c00b02Fb7a7d9902c897745F4f4c83
+ });
+
+ // Metis Sepolia
+ s_networkDetails[59902] = NetworkDetails({
+ chainSelector: 3777822886988675105,
+ routerAddress: 0xaCdaBa07ECad81dc634458b98673931DD9d3Bc14,
+ linkAddress: 0x9870D6a0e05F867EAAe696e106741843F7fD116D,
+ wrappedNativeAddress: 0x5c48e07062aC4E2Cf4b9A768a711Aef18e8fbdA0,
+ ccipBnMAddress: 0x20Aa09AAb761e2E600d65c6929A9fd1E59821D3f,
+ ccipLnMAddress: 0x705b364CadE0e515577F2646529e3A417473a155,
+ rmnProxyAddress: 0xfd66EBE7335E91ae6f4CCCccdDDF262Ab5e35c71,
+ registryModuleOwnerCustomAddress: 0xA8942fF01DE753BDa1D39acA8774f0872Eee5080,
+ tokenAdminRegistryAddress: 0x31668C3E8f96415286e9e03592ad97E50e565f52
+ });
+
+ // Mode Sepolia
+ s_networkDetails[919] = NetworkDetails({
+ chainSelector: 829525985033418733,
+ routerAddress: 0xc49ec0eB4beb48B8Da4cceC51AA9A5bD0D0A4c43,
+ linkAddress: 0x925a4bfE64AE2bFAC8a02b35F78e60C29743755d,
+ wrappedNativeAddress: 0x4200000000000000000000000000000000000006,
+ ccipBnMAddress: 0xB9d4e1141E67ECFedC8A8139b5229b7FF2BF16F5,
+ ccipLnMAddress: 0x86f9Eed8EAD1534D87d23FbAB247D764fC725D49,
+ rmnProxyAddress: 0xcbFD5e55619B4EE3E6e7fe3CEb0E78fDf7d82dfc,
+ registryModuleOwnerCustomAddress: 0x4f4fe77A9dBEDe8c4EbFe51932C2E08A37c890ED,
+ tokenAdminRegistryAddress: 0xc89d4ff0cb206677a7555e52500879bfab73cC68
+ });
+
+ // Optimism Sepolia
+ s_networkDetails[11155420] = NetworkDetails({
+ chainSelector: 5224473277236331295,
+ routerAddress: 0x114A20A10b43D4115e5aeef7345a1A71d2a60C57,
+ linkAddress: 0xE4aB69C077896252FAFBD49EFD26B5D171A32410,
+ wrappedNativeAddress: 0x4200000000000000000000000000000000000006,
+ ccipBnMAddress: 0x8aF4204e30565DF93352fE8E1De78925F6664dA7,
+ ccipLnMAddress: 0x044a6B4b561af69D2319A2f4be5Ec327a6975D0a,
+ rmnProxyAddress: 0xb40A3109075965cc09E93719e33E748abf680dAe,
+ registryModuleOwnerCustomAddress: 0x49c4ba01dc6F5090f9df43Ab8F79449Db91A0CBB,
+ tokenAdminRegistryAddress: 0x1d702b1FA12F347f0921C722f9D9166F00DEB67A
+ });
+
+ // Ethereum Sepolia
+ s_networkDetails[11155111] = NetworkDetails({
+ chainSelector: 16015286601757825753,
+ routerAddress: 0x0BF3dE8c5D3e8A2B34D2BEeB17ABfCeBaf363A59,
+ linkAddress: 0x779877A7B0D9E8603169DdbD7836e478b4624789,
+ wrappedNativeAddress: 0x097D90c9d3E0B50Ca60e1ae45F6A81010f9FB534,
+ ccipBnMAddress: 0xFd57b4ddBf88a4e07fF4e34C487b99af2Fe82a05,
+ ccipLnMAddress: 0x466D489b6d36E7E3b824ef491C225F5830E81cC1,
+ rmnProxyAddress: 0xba3f6251de62dED61Ff98590cB2fDf6871FbB991,
+ registryModuleOwnerCustomAddress: 0x62e731218d0D47305aba2BE3751E7EE9E5520790,
+ tokenAdminRegistryAddress: 0x95F29FEE11c5C55d26cCcf1DB6772DE953B37B82
+ });
+
+ // WEMIX Testnet
+ s_networkDetails[1112] = NetworkDetails({
+ chainSelector: 9284632837123596123,
+ routerAddress: 0xA8C0c11bf64AF62CDCA6f93D3769B88BdD7cb93D,
+ linkAddress: 0x3580c7A817cCD41f7e02143BFa411D4EeAE78093,
+ wrappedNativeAddress: 0xbE3686643c05f00eC46e73da594c78098F7a9Ae7,
+ ccipBnMAddress: 0xF4E4057FbBc86915F4b2d63EEFFe641C03294ffc,
+ ccipLnMAddress: 0xcb342aE3D65E3fEDF8F912B0432e2B8F88514d5D,
+ rmnProxyAddress: 0xA930c1E0fF1E1005E8Ef569Aa81e6EEbf466b1c3,
+ registryModuleOwnerCustomAddress: 0x7050BD352A5Aacf774CF883f9345a0C10BdF3cD2,
+ tokenAdminRegistryAddress: 0xecf484BFcC51F24fcB31056c262A021bAf688D9B
+ });
+
+ // zkSync Sepolia
+ s_networkDetails[300] = NetworkDetails({
+ chainSelector: 6898391096552792247,
+ routerAddress: 0xA1fdA8aa9A8C4b945C45aD30647b01f07D7A0B16,
+ linkAddress: 0x23A1aFD896c8c8876AF46aDc38521f4432658d1e,
+ wrappedNativeAddress: 0x4317b2eCD41851173175005783322D29E9bAee9E,
+ ccipBnMAddress: 0xFf6d0c1518A8104611f482eb2801CaF4f13c9dEb,
+ ccipLnMAddress: 0xBf8eA19505ab7Eb266aeD435B11bd56321BFB5c5,
+ rmnProxyAddress: 0x3DA20FD3D8a8f8c1f1A5fD03648147143608C467,
+ registryModuleOwnerCustomAddress: 0x3139687Ee9938422F57933C3CDB3E21EE43c4d0F,
+ tokenAdminRegistryAddress: 0xc7777f12258014866c677Bdb679D0b007405b7DF
});
}
@@ -117,9 +224,7 @@ contract Register {
* @param chainId - The ID of the chain to get the details for.
* @return networkDetails - The network details for the specified chain ID.
*/
- function getNetworkDetails(
- uint256 chainId
- ) external view returns (NetworkDetails memory networkDetails) {
+ function getNetworkDetails(uint256 chainId) external view returns (NetworkDetails memory networkDetails) {
networkDetails = s_networkDetails[chainId];
}
@@ -129,10 +234,7 @@ contract Register {
* @param chainId - The ID of the chain to set the details for.
* @param networkDetails - The network details to set for the specified chain ID.
*/
- function setNetworkDetails(
- uint256 chainId,
- NetworkDetails memory networkDetails
- ) external {
+ function setNetworkDetails(uint256 chainId, NetworkDetails memory networkDetails) external {
s_networkDetails[chainId] = networkDetails;
}
}
diff --git a/src/data-feeds/MockOffchainAggregator.sol b/src/data-feeds/MockOffchainAggregator.sol
index 89f378f..1cbee1f 100644
--- a/src/data-feeds/MockOffchainAggregator.sol
+++ b/src/data-feeds/MockOffchainAggregator.sol
@@ -9,8 +9,7 @@ contract MockOffchainAggregator {
int192 private constant MIN_ANSWER_POSSIBLE = 1;
/// @notice The maximum possible answer the aggregator can report.
- int192 private constant MAX_ANSWER_POSSIBLE =
- 95780971304118053647396689196894323976171195136475135; // type(uint176).max
+ int192 private constant MAX_ANSWER_POSSIBLE = 95780971304118053647396689196894323976171195136475135; // type(uint176).max
/// @notice The number of decimals used by the aggregator.
uint8 public decimals;
@@ -71,12 +70,7 @@ contract MockOffchainAggregator {
* @param _timestamp - The timestamp to be set.
* @param _startedAt - The timestamp when the round started.
*/
- function updateRoundData(
- uint80 _roundId,
- int256 _answer,
- uint256 _timestamp,
- uint256 _startedAt
- ) public {
+ function updateRoundData(uint80 _roundId, int256 _answer, uint256 _timestamp, uint256 _startedAt) public {
latestRound = _roundId;
latestAnswer = _answer;
latestTimestamp = _timestamp;
@@ -94,26 +88,12 @@ contract MockOffchainAggregator {
* @return updatedAt - The timestamp when the round was updated.
* @return answeredInRound - The round ID in which the answer was computed.
*/
- function getRoundData(
- uint80 _roundId
- )
+ function getRoundData(uint80 _roundId)
external
view
- returns (
- uint80 roundId,
- int256 answer,
- uint256 startedAt,
- uint256 updatedAt,
- uint80 answeredInRound
- )
+ returns (uint80 roundId, int256 answer, uint256 startedAt, uint256 updatedAt, uint80 answeredInRound)
{
- return (
- _roundId,
- getAnswer[_roundId],
- getStartedAt[_roundId],
- getTimestamp[_roundId],
- _roundId
- );
+ return (_roundId, getAnswer[_roundId], getStartedAt[_roundId], getTimestamp[_roundId], _roundId);
}
/**
@@ -127,13 +107,7 @@ contract MockOffchainAggregator {
function latestRoundData()
external
view
- returns (
- uint80 roundId,
- int256 answer,
- uint256 startedAt,
- uint256 updatedAt,
- uint80 answeredInRound
- )
+ returns (uint80 roundId, int256 answer, uint256 startedAt, uint256 updatedAt, uint80 answeredInRound)
{
return (
uint80(latestRound),
@@ -149,14 +123,8 @@ contract MockOffchainAggregator {
* @param _minAnswer - The new minimum answer.
* @param _maxAnswer - The new maximum answer.
*/
- function updateMinAndMaxAnswers(
- int192 _minAnswer,
- int192 _maxAnswer
- ) external {
- require(
- _minAnswer < _maxAnswer,
- "minAnswer must be less than maxAnswer"
- );
+ function updateMinAndMaxAnswers(int192 _minAnswer, int192 _maxAnswer) external {
+ require(_minAnswer < _maxAnswer, "minAnswer must be less than maxAnswer");
require(_minAnswer >= MIN_ANSWER_POSSIBLE, "minAnswer is too low");
require(_maxAnswer <= MAX_ANSWER_POSSIBLE, "maxAnswer is too high");
diff --git a/src/data-feeds/MockV3Aggregator.sol b/src/data-feeds/MockV3Aggregator.sol
index 27661a0..8097b55 100644
--- a/src/data-feeds/MockV3Aggregator.sol
+++ b/src/data-feeds/MockV3Aggregator.sol
@@ -1,7 +1,11 @@
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
-import {AggregatorInterface, AggregatorV3Interface, AggregatorV2V3Interface} from "./interfaces/AggregatorV2V3Interface.sol";
+import {
+ AggregatorInterface,
+ AggregatorV3Interface,
+ AggregatorV2V3Interface
+} from "./interfaces/AggregatorV2V3Interface.sol";
import {MockOffchainAggregator} from "./MockOffchainAggregator.sol";
/// @title MockV3Aggregator
@@ -23,9 +27,7 @@ contract MockV3Aggregator is AggregatorV2V3Interface {
* @param _initialAnswer - The initial answer to be set in the mock aggregator.
*/
constructor(uint8 _decimals, int256 _initialAnswer) {
- aggregator = address(
- new MockOffchainAggregator(_decimals, _initialAnswer)
- );
+ aggregator = address(new MockOffchainAggregator(_decimals, _initialAnswer));
proposedAggregator = address(0);
}
@@ -39,28 +41,18 @@ contract MockV3Aggregator is AggregatorV2V3Interface {
/**
* @inheritdoc AggregatorInterface
*/
- function getAnswer(
- uint256 roundId
- ) external view override returns (int256) {
+ function getAnswer(uint256 roundId) external view override returns (int256) {
return AggregatorV2V3Interface(aggregator).getAnswer(roundId);
}
/**
* @inheritdoc AggregatorV3Interface
*/
- function getRoundData(
- uint80 _roundId
- )
+ function getRoundData(uint80 _roundId)
external
view
override
- returns (
- uint80 roundId,
- int256 answer,
- uint256 startedAt,
- uint256 updatedAt,
- uint80 answeredInRound
- )
+ returns (uint80 roundId, int256 answer, uint256 startedAt, uint256 updatedAt, uint80 answeredInRound)
{
return AggregatorV2V3Interface(aggregator).getRoundData(_roundId);
}
@@ -72,13 +64,7 @@ contract MockV3Aggregator is AggregatorV2V3Interface {
external
view
override
- returns (
- uint80 roundId,
- int256 answer,
- uint256 startedAt,
- uint256 updatedAt,
- uint80 answeredInRound
- )
+ returns (uint80 roundId, int256 answer, uint256 startedAt, uint256 updatedAt, uint80 answeredInRound)
{
return AggregatorV2V3Interface(aggregator).latestRoundData();
}
@@ -86,9 +72,7 @@ contract MockV3Aggregator is AggregatorV2V3Interface {
/**
* @inheritdoc AggregatorInterface
*/
- function getTimestamp(
- uint256 roundId
- ) external view override returns (uint256) {
+ function getTimestamp(uint256 roundId) external view override returns (uint256) {
return AggregatorV2V3Interface(aggregator).getTimestamp(roundId);
}
@@ -128,18 +112,8 @@ contract MockV3Aggregator is AggregatorV2V3Interface {
* @param _timestamp - The timestamp to be set.
* @param _startedAt - The timestamp when the round started.
*/
- function updateRoundData(
- uint80 _roundId,
- int256 _answer,
- uint256 _timestamp,
- uint256 _startedAt
- ) public {
- MockOffchainAggregator(aggregator).updateRoundData(
- _roundId,
- _answer,
- _timestamp,
- _startedAt
- );
+ function updateRoundData(uint80 _roundId, int256 _answer, uint256 _timestamp, uint256 _startedAt) public {
+ MockOffchainAggregator(aggregator).updateRoundData(_roundId, _answer, _timestamp, _startedAt);
}
/**
@@ -147,14 +121,8 @@ contract MockV3Aggregator is AggregatorV2V3Interface {
* @param _aggregator - The address of the proposed aggregator.
*/
function proposeAggregator(AggregatorV2V3Interface _aggregator) external {
- require(
- address(_aggregator) != address(0),
- "Proposed aggregator cannot be zero address"
- );
- require(
- address(_aggregator) != aggregator,
- "Proposed aggregator cannot be current aggregator"
- );
+ require(address(_aggregator) != address(0), "Proposed aggregator cannot be zero address");
+ require(address(_aggregator) != aggregator, "Proposed aggregator cannot be current aggregator");
proposedAggregator = address(_aggregator);
}
@@ -163,10 +131,7 @@ contract MockV3Aggregator is AggregatorV2V3Interface {
* @param _aggregator - The address of the proposed aggregator.
*/
function confirmAggregator(address _aggregator) external {
- require(
- _aggregator == address(proposedAggregator),
- "Invalid proposed aggregator"
- );
+ require(_aggregator == address(proposedAggregator), "Invalid proposed aggregator");
aggregator = proposedAggregator;
proposedAggregator = address(0);
}
diff --git a/src/data-feeds/interfaces/AggregatorInterface.sol b/src/data-feeds/interfaces/AggregatorInterface.sol
index 07d76b1..b7f3db7 100644
--- a/src/data-feeds/interfaces/AggregatorInterface.sol
+++ b/src/data-feeds/interfaces/AggregatorInterface.sol
@@ -43,11 +43,7 @@ interface AggregatorInterface {
* @param roundId - The round ID for which the answer was updated.
* @param updatedAt - The timestamp when the answer was updated.
*/
- event AnswerUpdated(
- int256 indexed current,
- uint256 indexed roundId,
- uint256 updatedAt
- );
+ event AnswerUpdated(int256 indexed current, uint256 indexed roundId, uint256 updatedAt);
/**
* @notice Emitted when a new round is started.
@@ -55,9 +51,5 @@ interface AggregatorInterface {
* @param startedBy - The address of the account that started the round.
* @param startedAt - The timestamp when the round was started.
*/
- event NewRound(
- uint256 indexed roundId,
- address indexed startedBy,
- uint256 startedAt
- );
+ event NewRound(uint256 indexed roundId, address indexed startedBy, uint256 startedAt);
}
diff --git a/src/data-feeds/interfaces/AggregatorV2V3Interface.sol b/src/data-feeds/interfaces/AggregatorV2V3Interface.sol
index 9a046b6..a66ffea 100644
--- a/src/data-feeds/interfaces/AggregatorV2V3Interface.sol
+++ b/src/data-feeds/interfaces/AggregatorV2V3Interface.sol
@@ -6,9 +6,4 @@ import {AggregatorV3Interface} from "./AggregatorV3Interface.sol";
/// @title AggregatorV2V3Interface
/// @notice Interface that inherits from both AggregatorInterface and AggregatorV3Interface.
-interface AggregatorV2V3Interface is
- AggregatorInterface,
- AggregatorV3Interface
-{
-
-}
+interface AggregatorV2V3Interface is AggregatorInterface, AggregatorV3Interface {}
diff --git a/src/data-feeds/interfaces/AggregatorV3Interface.sol b/src/data-feeds/interfaces/AggregatorV3Interface.sol
index 987dbf5..753e7ba 100644
--- a/src/data-feeds/interfaces/AggregatorV3Interface.sol
+++ b/src/data-feeds/interfaces/AggregatorV3Interface.sol
@@ -33,18 +33,10 @@ interface AggregatorV3Interface {
* @return answeredInRound - The round ID in which the answer was computed.
* @dev This function should raise "No data present" if no data is available for the given round ID.
*/
- function getRoundData(
- uint80 _roundId
- )
+ function getRoundData(uint80 _roundId)
external
view
- returns (
- uint80 roundId,
- int256 answer,
- uint256 startedAt,
- uint256 updatedAt,
- uint80 answeredInRound
- );
+ returns (uint80 roundId, int256 answer, uint256 startedAt, uint256 updatedAt, uint80 answeredInRound);
/**
* @notice Gets the latest round data.
@@ -58,11 +50,5 @@ interface AggregatorV3Interface {
function latestRoundData()
external
view
- returns (
- uint80 roundId,
- int256 answer,
- uint256 startedAt,
- uint256 updatedAt,
- uint80 answeredInRound
- );
+ returns (uint80 roundId, int256 answer, uint256 startedAt, uint256 updatedAt, uint80 answeredInRound);
}
diff --git a/src/test/ccip/BasicTokenSender.sol b/src/test/ccip/BasicTokenSender.sol
index 2af564d..76a2e4b 100644
--- a/src/test/ccip/BasicTokenSender.sol
+++ b/src/test/ccip/BasicTokenSender.sol
@@ -1,8 +1,10 @@
// SPDX-License-Identifier: MIT
-pragma solidity 0.8.19;
+pragma solidity 0.8.24;
-import {IERC20} from "@chainlink/contracts-ccip/src/v0.8/vendor/openzeppelin-solidity/v4.8.3/contracts/token/ERC20/IERC20.sol";
-import {SafeERC20} from "@chainlink/contracts-ccip/src/v0.8/vendor/openzeppelin-solidity/v4.8.3/contracts/token/ERC20/utils/SafeERC20.sol";
+import {IERC20} from
+ "@chainlink/contracts-ccip/src/v0.8/vendor/openzeppelin-solidity/v4.8.3/contracts/token/ERC20/IERC20.sol";
+import {SafeERC20} from
+ "@chainlink/contracts-ccip/src/v0.8/vendor/openzeppelin-solidity/v4.8.3/contracts/token/ERC20/utils/SafeERC20.sol";
import {IRouterClient} from "@chainlink/contracts-ccip/src/v0.8/ccip/interfaces/IRouterClient.sol";
import {Client} from "@chainlink/contracts-ccip/src/v0.8/ccip/libraries/Client.sol";
@@ -24,29 +26,17 @@ contract BasicTokenSender {
receive() external payable {}
- function getSupportedTokens(
- uint64 chainSelector
- ) external view returns (address[] memory tokens) {
- tokens = IRouterClient(i_router).getSupportedTokens(chainSelector);
- }
-
- function send(
- uint64 destinationChainSelector,
- address receiver,
- Client.EVMTokenAmount[] memory tokensToSendDetails
- ) external payable {
+ function send(uint64 destinationChainSelector, address receiver, Client.EVMTokenAmount[] memory tokensToSendDetails)
+ external
+ payable
+ {
uint256 length = tokensToSendDetails.length;
- for (uint256 i = 0; i < length; ) {
+ for (uint256 i = 0; i < length;) {
IERC20(tokensToSendDetails[i].token).safeTransferFrom(
- msg.sender,
- address(this),
- tokensToSendDetails[i].amount
- );
- IERC20(tokensToSendDetails[i].token).approve(
- i_router,
- tokensToSendDetails[i].amount
+ msg.sender, address(this), tokensToSendDetails[i].amount
);
+ IERC20(tokensToSendDetails[i].token).approve(i_router, tokensToSendDetails[i].amount);
unchecked {
++i;
@@ -61,15 +51,9 @@ contract BasicTokenSender {
feeToken: address(0)
});
- uint256 fee = IRouterClient(i_router).getFee(
- destinationChainSelector,
- message
- );
+ uint256 fee = IRouterClient(i_router).getFee(destinationChainSelector, message);
- bytes32 messageId = IRouterClient(i_router).ccipSend{value: fee}(
- destinationChainSelector,
- message
- );
+ bytes32 messageId = IRouterClient(i_router).ccipSend{value: fee}(destinationChainSelector, message);
emit MessageSent(messageId);
}
diff --git a/src/test/ccip/CCIPReceiver_Unsafe.sol b/src/test/ccip/CCIPReceiver_Unsafe.sol
index 3e447e3..1aeb1cb 100644
--- a/src/test/ccip/CCIPReceiver_Unsafe.sol
+++ b/src/test/ccip/CCIPReceiver_Unsafe.sol
@@ -1,5 +1,5 @@
// SPDX-License-Identifier: MIT
-pragma solidity 0.8.19;
+pragma solidity 0.8.24;
import {CCIPReceiver} from "@chainlink/contracts-ccip/src/v0.8/ccip/applications/CCIPReceiver.sol";
import {Client} from "@chainlink/contracts-ccip/src/v0.8/ccip/libraries/Client.sol";
@@ -9,9 +9,7 @@ contract CCIPReceiver_Unsafe is CCIPReceiver {
constructor(address router) CCIPReceiver(router) {}
- function _ccipReceive(
- Client.Any2EVMMessage memory message
- ) internal override {
+ function _ccipReceive(Client.Any2EVMMessage memory message) internal override {
text = abi.decode(message.data, (string));
}
}
diff --git a/src/test/ccip/ProgrammableDefensiveTokenTransfers.sol b/src/test/ccip/ProgrammableDefensiveTokenTransfers.sol
index 96c4eff..6ec406a 100644
--- a/src/test/ccip/ProgrammableDefensiveTokenTransfers.sol
+++ b/src/test/ccip/ProgrammableDefensiveTokenTransfers.sol
@@ -1,5 +1,5 @@
// SPDX-License-Identifier: MIT
-pragma solidity 0.8.19;
+pragma solidity 0.8.24;
import {IRouterClient} from "@chainlink/contracts-ccip/src/v0.8/ccip/interfaces/IRouterClient.sol";
import {OwnerIsCreator} from "@chainlink/contracts-ccip/src/v0.8/shared/access/OwnerIsCreator.sol";
@@ -436,7 +436,7 @@ contract ProgrammableDefensiveTokenTransfers is CCIPReceiver, OwnerIsCreator {
extraArgs: Client._argsToBytes(
// Additional arguments, setting gas limit
Client.EVMExtraArgsV1({gasLimit: 400_000})
- ),
+ ),
// Set the feeToken to a feeTokenAddress, indicating specific asset will be used for fees
feeToken: _feeTokenAddress
});
diff --git a/src/test/ccip/ProgrammableTokenTransfers.sol b/src/test/ccip/ProgrammableTokenTransfers.sol
index b964833..6a901cd 100644
--- a/src/test/ccip/ProgrammableTokenTransfers.sol
+++ b/src/test/ccip/ProgrammableTokenTransfers.sol
@@ -1,11 +1,12 @@
// SPDX-License-Identifier: MIT
-pragma solidity 0.8.19;
+pragma solidity 0.8.24;
import {IRouterClient} from "@chainlink/contracts-ccip/src/v0.8/ccip/interfaces/IRouterClient.sol";
import {OwnerIsCreator} from "@chainlink/contracts-ccip/src/v0.8/shared/access/OwnerIsCreator.sol";
import {Client} from "@chainlink/contracts-ccip/src/v0.8/ccip/libraries/Client.sol";
import {CCIPReceiver} from "@chainlink/contracts-ccip/src/v0.8/ccip/applications/CCIPReceiver.sol";
-import {IERC20} from "@chainlink/contracts-ccip/src/v0.8/vendor/openzeppelin-solidity/v4.8.3/contracts/token/ERC20/IERC20.sol";
+import {IERC20} from
+ "@chainlink/contracts-ccip/src/v0.8/vendor/openzeppelin-solidity/v4.8.3/contracts/token/ERC20/IERC20.sol";
/**
* THIS IS AN EXAMPLE CONTRACT THAT USES HARDCODED VALUES FOR CLARITY.
@@ -25,25 +26,37 @@ contract ProgrammableTokenTransfers is CCIPReceiver, OwnerIsCreator {
error InvalidReceiverAddress(); // Used when the receiver address is 0.
// Event emitted when a message is sent to another chain.
- event MessageSent(
- bytes32 indexed messageId, // The unique ID of the CCIP message.
- uint64 indexed destinationChainSelector, // The chain selector of the destination chain.
- address receiver, // The address of the receiver on the destination chain.
- string text, // The text being sent.
- address token, // The token address that was transferred.
- uint256 tokenAmount, // The token amount that was transferred.
- address feeToken, // the token address used to pay CCIP fees.
- uint256 fees // The fees paid for sending the message.
+ event MessageSent( // The unique ID of the CCIP message.
+ // The chain selector of the destination chain.
+ // The address of the receiver on the destination chain.
+ // The text being sent.
+ // The token address that was transferred.
+ // The token amount that was transferred.
+ // the token address used to pay CCIP fees.
+ // The fees paid for sending the message.
+ bytes32 indexed messageId,
+ uint64 indexed destinationChainSelector,
+ address receiver,
+ string text,
+ address token,
+ uint256 tokenAmount,
+ address feeToken,
+ uint256 fees
);
// Event emitted when a message is received from another chain.
- event MessageReceived(
- bytes32 indexed messageId, // The unique ID of the CCIP message.
- uint64 indexed sourceChainSelector, // The chain selector of the source chain.
- address sender, // The address of the sender from the source chain.
- string text, // The text that was received.
- address token, // The token address that was transferred.
- uint256 tokenAmount // The token amount that was transferred.
+ event MessageReceived( // The unique ID of the CCIP message.
+ // The chain selector of the source chain.
+ // The address of the sender from the source chain.
+ // The text that was received.
+ // The token address that was transferred.
+ // The token amount that was transferred.
+ bytes32 indexed messageId,
+ uint64 indexed sourceChainSelector,
+ address sender,
+ string text,
+ address token,
+ uint256 tokenAmount
);
bytes32 private s_lastReceivedMessageId; // Store the last received messageId.
@@ -72,8 +85,9 @@ contract ProgrammableTokenTransfers is CCIPReceiver, OwnerIsCreator {
/// @dev Modifier that checks if the chain with the given destinationChainSelector is allowlisted.
/// @param _destinationChainSelector The selector of the destination chain.
modifier onlyAllowlistedDestinationChain(uint64 _destinationChainSelector) {
- if (!allowlistedDestinationChains[_destinationChainSelector])
+ if (!allowlistedDestinationChains[_destinationChainSelector]) {
revert DestinationChainNotAllowed(_destinationChainSelector);
+ }
_;
}
@@ -88,8 +102,9 @@ contract ProgrammableTokenTransfers is CCIPReceiver, OwnerIsCreator {
/// @param _sourceChainSelector The selector of the destination chain.
/// @param _sender The address of the sender.
modifier onlyAllowlisted(uint64 _sourceChainSelector, address _sender) {
- if (!allowlistedSourceChains[_sourceChainSelector])
+ if (!allowlistedSourceChains[_sourceChainSelector]) {
revert SourceChainNotAllowed(_sourceChainSelector);
+ }
if (!allowlistedSenders[_sender]) revert SenderNotAllowed(_sender);
_;
}
@@ -98,10 +113,7 @@ contract ProgrammableTokenTransfers is CCIPReceiver, OwnerIsCreator {
/// @notice This function can only be called by the owner.
/// @param _destinationChainSelector The selector of the destination chain to be updated.
/// @param allowed The allowlist status to be set for the destination chain.
- function allowlistDestinationChain(
- uint64 _destinationChainSelector,
- bool allowed
- ) external onlyOwner {
+ function allowlistDestinationChain(uint64 _destinationChainSelector, bool allowed) external onlyOwner {
allowlistedDestinationChains[_destinationChainSelector] = allowed;
}
@@ -109,10 +121,7 @@ contract ProgrammableTokenTransfers is CCIPReceiver, OwnerIsCreator {
/// @notice This function can only be called by the owner.
/// @param _sourceChainSelector The selector of the source chain to be updated.
/// @param allowed The allowlist status to be set for the source chain.
- function allowlistSourceChain(
- uint64 _sourceChainSelector,
- bool allowed
- ) external onlyOwner {
+ function allowlistSourceChain(uint64 _sourceChainSelector, bool allowed) external onlyOwner {
allowlistedSourceChains[_sourceChainSelector] = allowed;
}
@@ -148,13 +157,8 @@ contract ProgrammableTokenTransfers is CCIPReceiver, OwnerIsCreator {
{
// Create an EVM2AnyMessage struct in memory with necessary information for sending a cross-chain message
// address(linkToken) means fees are paid in LINK
- Client.EVM2AnyMessage memory evm2AnyMessage = _buildCCIPMessage(
- _receiver,
- _text,
- _token,
- _amount,
- address(s_linkToken)
- );
+ Client.EVM2AnyMessage memory evm2AnyMessage =
+ _buildCCIPMessage(_receiver, _text, _token, _amount, address(s_linkToken));
// Initialize a router client instance to interact with cross-chain router
IRouterClient router = IRouterClient(this.getRouter());
@@ -162,8 +166,9 @@ contract ProgrammableTokenTransfers is CCIPReceiver, OwnerIsCreator {
// Get the fee required to send the CCIP message
uint256 fees = router.getFee(_destinationChainSelector, evm2AnyMessage);
- if (fees > s_linkToken.balanceOf(address(this)))
+ if (fees > s_linkToken.balanceOf(address(this))) {
revert NotEnoughBalance(s_linkToken.balanceOf(address(this)), fees);
+ }
// approve the Router to transfer LINK tokens on contract's behalf. It will spend the fees in LINK
s_linkToken.approve(address(router), fees);
@@ -176,14 +181,7 @@ contract ProgrammableTokenTransfers is CCIPReceiver, OwnerIsCreator {
// Emit an event with message details
emit MessageSent(
- messageId,
- _destinationChainSelector,
- _receiver,
- _text,
- _token,
- _amount,
- address(s_linkToken),
- fees
+ messageId, _destinationChainSelector, _receiver, _text, _token, _amount, address(s_linkToken), fees
);
// Return the message ID
@@ -214,13 +212,7 @@ contract ProgrammableTokenTransfers is CCIPReceiver, OwnerIsCreator {
{
// Create an EVM2AnyMessage struct in memory with necessary information for sending a cross-chain message
// address(0) means fees are paid in native gas
- Client.EVM2AnyMessage memory evm2AnyMessage = _buildCCIPMessage(
- _receiver,
- _text,
- _token,
- _amount,
- address(0)
- );
+ Client.EVM2AnyMessage memory evm2AnyMessage = _buildCCIPMessage(_receiver, _text, _token, _amount, address(0));
// Initialize a router client instance to interact with cross-chain router
IRouterClient router = IRouterClient(this.getRouter());
@@ -228,29 +220,18 @@ contract ProgrammableTokenTransfers is CCIPReceiver, OwnerIsCreator {
// Get the fee required to send the CCIP message
uint256 fees = router.getFee(_destinationChainSelector, evm2AnyMessage);
- if (fees > address(this).balance)
+ if (fees > address(this).balance) {
revert NotEnoughBalance(address(this).balance, fees);
+ }
// approve the Router to spend tokens on contract's behalf. It will spend the amount of the given token
IERC20(_token).approve(address(router), _amount);
// Send the message through the router and store the returned message ID
- messageId = router.ccipSend{value: fees}(
- _destinationChainSelector,
- evm2AnyMessage
- );
+ messageId = router.ccipSend{value: fees}(_destinationChainSelector, evm2AnyMessage);
// Emit an event with message details
- emit MessageSent(
- messageId,
- _destinationChainSelector,
- _receiver,
- _text,
- _token,
- _amount,
- address(0),
- fees
- );
+ emit MessageSent(messageId, _destinationChainSelector, _receiver, _text, _token, _amount, address(0), fees);
// Return the message ID
return messageId;
@@ -267,31 +248,16 @@ contract ProgrammableTokenTransfers is CCIPReceiver, OwnerIsCreator {
function getLastReceivedMessageDetails()
public
view
- returns (
- bytes32 messageId,
- string memory text,
- address tokenAddress,
- uint256 tokenAmount
- )
+ returns (bytes32 messageId, string memory text, address tokenAddress, uint256 tokenAmount)
{
- return (
- s_lastReceivedMessageId,
- s_lastReceivedText,
- s_lastReceivedTokenAddress,
- s_lastReceivedTokenAmount
- );
+ return (s_lastReceivedMessageId, s_lastReceivedText, s_lastReceivedTokenAddress, s_lastReceivedTokenAmount);
}
/// handle a received message
- function _ccipReceive(
- Client.Any2EVMMessage memory any2EvmMessage
- )
+ function _ccipReceive(Client.Any2EVMMessage memory any2EvmMessage)
internal
override
- onlyAllowlisted(
- any2EvmMessage.sourceChainSelector,
- abi.decode(any2EvmMessage.sender, (address))
- ) // Make sure source chain and sender are allowlisted
+ onlyAllowlisted(any2EvmMessage.sourceChainSelector, abi.decode(any2EvmMessage.sender, (address))) // Make sure source chain and sender are allowlisted
{
s_lastReceivedMessageId = any2EvmMessage.messageId; // fetch the messageId
s_lastReceivedText = abi.decode(any2EvmMessage.data, (string)); // abi-decoding of the sent text
@@ -325,25 +291,20 @@ contract ProgrammableTokenTransfers is CCIPReceiver, OwnerIsCreator {
address _feeTokenAddress
) private pure returns (Client.EVM2AnyMessage memory) {
// Set the token amounts
- Client.EVMTokenAmount[]
- memory tokenAmounts = new Client.EVMTokenAmount[](1);
- tokenAmounts[0] = Client.EVMTokenAmount({
- token: _token,
- amount: _amount
- });
+ Client.EVMTokenAmount[] memory tokenAmounts = new Client.EVMTokenAmount[](1);
+ tokenAmounts[0] = Client.EVMTokenAmount({token: _token, amount: _amount});
// Create an EVM2AnyMessage struct in memory with necessary information for sending a cross-chain message
- return
- Client.EVM2AnyMessage({
- receiver: abi.encode(_receiver), // ABI-encoded receiver address
- data: abi.encode(_text), // ABI-encoded string
- tokenAmounts: tokenAmounts, // The amount and type of token being transferred
- extraArgs: Client._argsToBytes(
- // Additional arguments, setting gas limit
- Client.EVMExtraArgsV1({gasLimit: 200_000})
- ),
- // Set the feeToken to a feeTokenAddress, indicating specific asset will be used for fees
- feeToken: _feeTokenAddress
- });
+ return Client.EVM2AnyMessage({
+ receiver: abi.encode(_receiver), // ABI-encoded receiver address
+ data: abi.encode(_text), // ABI-encoded string
+ tokenAmounts: tokenAmounts, // The amount and type of token being transferred
+ extraArgs: Client._argsToBytes(
+ // Additional arguments, setting gas limit
+ Client.EVMExtraArgsV1({gasLimit: 200_000})
+ ),
+ // Set the feeToken to a feeTokenAddress, indicating specific asset will be used for fees
+ feeToken: _feeTokenAddress
+ });
}
/// @notice Fallback function to allow the contract to receive Ether.
@@ -363,7 +324,7 @@ contract ProgrammableTokenTransfers is CCIPReceiver, OwnerIsCreator {
if (amount == 0) revert NothingToWithdraw();
// Attempt to send the funds, capturing the success status and discarding any return data
- (bool sent, ) = _beneficiary.call{value: amount}("");
+ (bool sent,) = _beneficiary.call{value: amount}("");
// Revert if the send failed, with information about the attempted transfer
if (!sent) revert FailedToWithdrawEth(msg.sender, _beneficiary, amount);
@@ -373,10 +334,7 @@ contract ProgrammableTokenTransfers is CCIPReceiver, OwnerIsCreator {
/// @dev This function reverts with a 'NothingToWithdraw' error if there are no tokens to withdraw.
/// @param _beneficiary The address to which the tokens will be sent.
/// @param _token The contract address of the ERC20 token to be withdrawn.
- function withdrawToken(
- address _beneficiary,
- address _token
- ) public onlyOwner {
+ function withdrawToken(address _beneficiary, address _token) public onlyOwner {
// Retrieve the balance of this contract
uint256 amount = IERC20(_token).balanceOf(address(this));
diff --git a/src/test/ccip/TokenTransferor.sol b/src/test/ccip/TokenTransferor.sol
index 2bc0a19..e3c9b92 100644
--- a/src/test/ccip/TokenTransferor.sol
+++ b/src/test/ccip/TokenTransferor.sol
@@ -1,5 +1,5 @@
// SPDX-License-Identifier: MIT
-pragma solidity 0.8.19;
+pragma solidity 0.8.24;
import {IRouterClient} from "@chainlink/contracts-ccip/src/v0.8/ccip/interfaces/IRouterClient.sol";
import {OwnerIsCreator} from "@chainlink/contracts-ccip/src/v0.8/shared/access/OwnerIsCreator.sol";
diff --git a/test/e2e/ccip/CCIPv1_5ForkBurnMintPoolFork.t.sol b/test/e2e/ccip/CCIPv1_5ForkBurnMintPoolFork.t.sol
new file mode 100644
index 0000000..a71657a
--- /dev/null
+++ b/test/e2e/ccip/CCIPv1_5ForkBurnMintPoolFork.t.sol
@@ -0,0 +1,275 @@
+// SPDX-License-Identifier: MIT
+pragma solidity ^0.8.0;
+
+import {Test, Vm} from "forge-std/Test.sol";
+import {CCIPLocalSimulatorFork, Register} from "../../../src/ccip/CCIPLocalSimulatorFork.sol";
+import {BurnMintTokenPool, TokenPool} from "@chainlink/contracts-ccip/src/v0.8/ccip/pools/BurnMintTokenPool.sol";
+import {LockReleaseTokenPool} from "@chainlink/contracts-ccip/src/v0.8/ccip/pools/LockReleaseTokenPool.sol"; // not used in this test
+import {IBurnMintERC20} from "@chainlink/contracts-ccip/src/v0.8/shared/token/ERC20/IBurnMintERC20.sol";
+import {RegistryModuleOwnerCustom} from
+ "@chainlink/contracts-ccip/src/v0.8/ccip/tokenAdminRegistry/RegistryModuleOwnerCustom.sol";
+import {TokenAdminRegistry} from "@chainlink/contracts-ccip/src/v0.8/ccip/tokenAdminRegistry/TokenAdminRegistry.sol";
+import {RateLimiter} from "@chainlink/contracts-ccip/src/v0.8/ccip/libraries/RateLimiter.sol";
+import {IRouterClient} from "@chainlink/contracts-ccip/src/v0.8/ccip/interfaces/IRouterClient.sol";
+import {Client} from "@chainlink/contracts-ccip/src/v0.8/ccip/libraries/Client.sol";
+
+import {
+ ERC20,
+ ERC20Burnable,
+ IERC20
+} from
+ "@chainlink/contracts-ccip/src/v0.8/vendor/openzeppelin-solidity/v4.8.3/contracts/token/ERC20/extensions/ERC20Burnable.sol";
+import {AccessControl} from
+ "@chainlink/contracts-ccip/src/v0.8/vendor/openzeppelin-solidity/v4.8.3/contracts/access/AccessControl.sol";
+
+contract MockERC20BurnAndMintToken is IBurnMintERC20, ERC20Burnable, AccessControl {
+ address internal immutable i_CCIPAdmin;
+ bytes32 public constant MINTER_ROLE = keccak256("MINTER_ROLE");
+ bytes32 public constant BURNER_ROLE = keccak256("BURNER_ROLE");
+
+ constructor() ERC20("MockERC20BurnAndMintToken", "MTK") {
+ _grantRole(DEFAULT_ADMIN_ROLE, msg.sender);
+ _grantRole(MINTER_ROLE, msg.sender);
+ _grantRole(BURNER_ROLE, msg.sender);
+ i_CCIPAdmin = msg.sender;
+ }
+
+ function mint(address account, uint256 amount) public onlyRole(MINTER_ROLE) {
+ _mint(account, amount);
+ }
+
+ function burn(uint256 amount) public override(IBurnMintERC20, ERC20Burnable) onlyRole(BURNER_ROLE) {
+ super.burn(amount);
+ }
+
+ function burnFrom(address account, uint256 amount)
+ public
+ override(IBurnMintERC20, ERC20Burnable)
+ onlyRole(BURNER_ROLE)
+ {
+ super.burnFrom(account, amount);
+ }
+
+ function burn(address account, uint256 amount) public virtual override {
+ burnFrom(account, amount);
+ }
+
+ function getCCIPAdmin() public view returns (address) {
+ return i_CCIPAdmin;
+ }
+}
+
+contract CCIPv1_5BurnMintPoolFork is Test {
+ CCIPLocalSimulatorFork public ccipLocalSimulatorFork;
+ MockERC20BurnAndMintToken public mockERC20TokenEthSepolia;
+ MockERC20BurnAndMintToken public mockERC20TokenBaseSepolia;
+
+ Register.NetworkDetails baseSepoliaNetworkDetails;
+
+ uint256 ethSepoliaFork;
+ uint256 baseSepoliaFork;
+
+ address alice;
+
+ function setUp() public {
+ alice = makeAddr("alice");
+
+ string memory ETHEREUM_SEPOLIA_RPC_URL = vm.envString("ETHEREUM_SEPOLIA_RPC_URL");
+ string memory BASE_SEPOLIA_RPC_URL = vm.envString("BASE_SEPOLIA_RPC_URL");
+ ethSepoliaFork = vm.createSelectFork(ETHEREUM_SEPOLIA_RPC_URL);
+ baseSepoliaFork = vm.createFork(BASE_SEPOLIA_RPC_URL);
+
+ ccipLocalSimulatorFork = new CCIPLocalSimulatorFork();
+ vm.makePersistent(address(ccipLocalSimulatorFork));
+
+ // Step 1) Deploy token on Ethereum Sepolia
+ vm.startPrank(alice);
+ mockERC20TokenEthSepolia = new MockERC20BurnAndMintToken();
+ vm.stopPrank();
+
+ // Step 2) Deploy token on Base Sepolia
+ vm.selectFork(baseSepoliaFork);
+
+ vm.startPrank(alice);
+ mockERC20TokenBaseSepolia = new MockERC20BurnAndMintToken();
+ vm.stopPrank();
+ }
+
+ function test_forkSupportNewCCIPToken() public {
+ // Step 3) Deploy BurnMintTokenPool on Ethereum Sepolia
+ vm.selectFork(ethSepoliaFork);
+ Register.NetworkDetails memory ethSepoliaNetworkDetails =
+ ccipLocalSimulatorFork.getNetworkDetails(block.chainid);
+ address[] memory allowlist = new address[](0);
+
+ vm.startPrank(alice);
+ BurnMintTokenPool burnMintTokenPoolEthSepolia = new BurnMintTokenPool(
+ IBurnMintERC20(address(mockERC20TokenEthSepolia)),
+ allowlist,
+ ethSepoliaNetworkDetails.rmnProxyAddress,
+ ethSepoliaNetworkDetails.routerAddress
+ );
+ vm.stopPrank();
+
+ // Step 4) Deploy BurnMintTokenPool on Base Sepolia
+ vm.selectFork(baseSepoliaFork);
+ baseSepoliaNetworkDetails = ccipLocalSimulatorFork.getNetworkDetails(block.chainid);
+
+ vm.startPrank(alice);
+ BurnMintTokenPool burnMintTokenPoolBaseSepolia = new BurnMintTokenPool(
+ IBurnMintERC20(address(mockERC20TokenBaseSepolia)),
+ allowlist,
+ baseSepoliaNetworkDetails.rmnProxyAddress,
+ baseSepoliaNetworkDetails.routerAddress
+ );
+ vm.stopPrank();
+
+ // Step 5) Grant Mint and Burn roles to BurnMintTokenPool on Ethereum Sepolia
+ vm.selectFork(ethSepoliaFork);
+
+ vm.startPrank(alice);
+ mockERC20TokenEthSepolia.grantRole(mockERC20TokenEthSepolia.MINTER_ROLE(), address(burnMintTokenPoolEthSepolia));
+ mockERC20TokenEthSepolia.grantRole(mockERC20TokenEthSepolia.BURNER_ROLE(), address(burnMintTokenPoolEthSepolia));
+ vm.stopPrank();
+
+ // Step 6) Grant Mint and Burn roles to BurnMintTokenPool on Base Sepolia
+ vm.selectFork(baseSepoliaFork);
+
+ vm.startPrank(alice);
+ mockERC20TokenBaseSepolia.grantRole(
+ mockERC20TokenBaseSepolia.MINTER_ROLE(), address(burnMintTokenPoolBaseSepolia)
+ );
+ mockERC20TokenBaseSepolia.grantRole(
+ mockERC20TokenBaseSepolia.BURNER_ROLE(), address(burnMintTokenPoolBaseSepolia)
+ );
+ vm.stopPrank();
+
+ // Step 7) Claim Admin role on Ethereum Sepolia
+ vm.selectFork(ethSepoliaFork);
+
+ RegistryModuleOwnerCustom registryModuleOwnerCustomEthSepolia =
+ RegistryModuleOwnerCustom(ethSepoliaNetworkDetails.registryModuleOwnerCustomAddress);
+
+ vm.startPrank(alice);
+ registryModuleOwnerCustomEthSepolia.registerAdminViaGetCCIPAdmin(address(mockERC20TokenEthSepolia));
+ vm.stopPrank();
+
+ // Step 8) Claim Admin role on Base Sepolia
+ vm.selectFork(baseSepoliaFork);
+
+ RegistryModuleOwnerCustom registryModuleOwnerCustomBaseSepolia =
+ RegistryModuleOwnerCustom(baseSepoliaNetworkDetails.registryModuleOwnerCustomAddress);
+
+ vm.startPrank(alice);
+ registryModuleOwnerCustomBaseSepolia.registerAdminViaGetCCIPAdmin(address(mockERC20TokenBaseSepolia));
+ vm.stopPrank();
+
+ // Step 9) Accept Admin role on Ethereum Sepolia
+ vm.selectFork(ethSepoliaFork);
+
+ TokenAdminRegistry tokenAdminRegistryEthSepolia =
+ TokenAdminRegistry(ethSepoliaNetworkDetails.tokenAdminRegistryAddress);
+
+ vm.startPrank(alice);
+ tokenAdminRegistryEthSepolia.acceptAdminRole(address(mockERC20TokenEthSepolia));
+ vm.stopPrank();
+
+ // Step 10) Accept Admin role on Base Sepolia
+ vm.selectFork(baseSepoliaFork);
+
+ TokenAdminRegistry tokenAdminRegistryBaseSepolia =
+ TokenAdminRegistry(baseSepoliaNetworkDetails.tokenAdminRegistryAddress);
+
+ vm.startPrank(alice);
+ tokenAdminRegistryBaseSepolia.acceptAdminRole(address(mockERC20TokenBaseSepolia));
+ vm.stopPrank();
+
+ // Step 11) Link token to pool on Ethereum Sepolia
+ vm.selectFork(ethSepoliaFork);
+
+ vm.startPrank(alice);
+ tokenAdminRegistryEthSepolia.setPool(address(mockERC20TokenEthSepolia), address(burnMintTokenPoolEthSepolia));
+ vm.stopPrank();
+
+ // Step 12) Link token to pool on Base Sepolia
+ vm.selectFork(baseSepoliaFork);
+
+ vm.startPrank(alice);
+ tokenAdminRegistryBaseSepolia.setPool(address(mockERC20TokenBaseSepolia), address(burnMintTokenPoolBaseSepolia));
+ vm.stopPrank();
+
+ // Step 13) Configure Token Pool on Ethereum Sepolia
+ vm.selectFork(ethSepoliaFork);
+
+ vm.startPrank(alice);
+ TokenPool.ChainUpdate[] memory chains = new TokenPool.ChainUpdate[](1);
+ chains[0] = TokenPool.ChainUpdate({
+ remoteChainSelector: baseSepoliaNetworkDetails.chainSelector,
+ allowed: true,
+ remotePoolAddress: abi.encode(address(burnMintTokenPoolBaseSepolia)),
+ remoteTokenAddress: abi.encode(address(mockERC20TokenBaseSepolia)),
+ outboundRateLimiterConfig: RateLimiter.Config({isEnabled: true, capacity: 100_000, rate: 167}),
+ inboundRateLimiterConfig: RateLimiter.Config({isEnabled: true, capacity: 100_000, rate: 167})
+ });
+ burnMintTokenPoolEthSepolia.applyChainUpdates(chains);
+ vm.stopPrank();
+
+ // Step 14) Configure Token Pool on Base Sepolia
+ vm.selectFork(baseSepoliaFork);
+
+ vm.startPrank(alice);
+ chains = new TokenPool.ChainUpdate[](1);
+ chains[0] = TokenPool.ChainUpdate({
+ remoteChainSelector: ethSepoliaNetworkDetails.chainSelector,
+ allowed: true,
+ remotePoolAddress: abi.encode(address(burnMintTokenPoolEthSepolia)),
+ remoteTokenAddress: abi.encode(address(mockERC20TokenEthSepolia)),
+ outboundRateLimiterConfig: RateLimiter.Config({isEnabled: true, capacity: 100_000, rate: 167}),
+ inboundRateLimiterConfig: RateLimiter.Config({isEnabled: true, capacity: 100_000, rate: 167})
+ });
+ burnMintTokenPoolBaseSepolia.applyChainUpdates(chains);
+ vm.stopPrank();
+
+ // Step 15) Mint tokens on Ethereum Sepolia and transfer them to Base Sepolia
+ vm.selectFork(ethSepoliaFork);
+
+ address linkSepolia = ethSepoliaNetworkDetails.linkAddress;
+ ccipLocalSimulatorFork.requestLinkFromFaucet(address(alice), 20 ether);
+
+ uint256 amountToSend = 100;
+ Client.EVMTokenAmount[] memory tokenToSendDetails = new Client.EVMTokenAmount[](1);
+ Client.EVMTokenAmount memory tokenAmount =
+ Client.EVMTokenAmount({token: address(mockERC20TokenEthSepolia), amount: amountToSend});
+ tokenToSendDetails[0] = tokenAmount;
+
+ vm.startPrank(alice);
+ mockERC20TokenEthSepolia.mint(address(alice), amountToSend);
+
+ mockERC20TokenEthSepolia.approve(ethSepoliaNetworkDetails.routerAddress, amountToSend);
+ IERC20(linkSepolia).approve(ethSepoliaNetworkDetails.routerAddress, 20 ether);
+
+ uint256 balanceOfAliceBeforeEthSepolia = mockERC20TokenEthSepolia.balanceOf(alice);
+
+ IRouterClient routerEthSepolia = IRouterClient(ethSepoliaNetworkDetails.routerAddress);
+ routerEthSepolia.ccipSend(
+ baseSepoliaNetworkDetails.chainSelector,
+ Client.EVM2AnyMessage({
+ receiver: abi.encode(address(alice)),
+ data: "",
+ tokenAmounts: tokenToSendDetails,
+ extraArgs: Client._argsToBytes(Client.EVMExtraArgsV1({gasLimit: 0})),
+ feeToken: linkSepolia
+ })
+ );
+
+ uint256 balanceOfAliceAfterEthSepolia = mockERC20TokenEthSepolia.balanceOf(alice);
+ vm.stopPrank();
+
+ assertEq(balanceOfAliceAfterEthSepolia, balanceOfAliceBeforeEthSepolia - amountToSend);
+
+ ccipLocalSimulatorFork.switchChainAndRouteMessage(baseSepoliaFork);
+
+ uint256 balanceOfAliceAfterBaseSepolia = mockERC20TokenBaseSepolia.balanceOf(alice);
+ assertEq(balanceOfAliceAfterBaseSepolia, amountToSend);
+ }
+}
diff --git a/test/e2e/ccip/CCIPv1_5LockReleasePoolFork.t.sol b/test/e2e/ccip/CCIPv1_5LockReleasePoolFork.t.sol
new file mode 100644
index 0000000..7da12d8
--- /dev/null
+++ b/test/e2e/ccip/CCIPv1_5LockReleasePoolFork.t.sol
@@ -0,0 +1,247 @@
+// SPDX-License-Identifier: MIT
+pragma solidity ^0.8.0;
+
+import {Test, Vm} from "forge-std/Test.sol";
+import {CCIPLocalSimulatorFork, Register} from "../../../src/ccip/CCIPLocalSimulatorFork.sol";
+import {LockReleaseTokenPool, TokenPool} from "@chainlink/contracts-ccip/src/v0.8/ccip/pools/LockReleaseTokenPool.sol";
+import {RegistryModuleOwnerCustom} from
+ "@chainlink/contracts-ccip/src/v0.8/ccip/tokenAdminRegistry/RegistryModuleOwnerCustom.sol";
+import {TokenAdminRegistry} from "@chainlink/contracts-ccip/src/v0.8/ccip/tokenAdminRegistry/TokenAdminRegistry.sol";
+import {RateLimiter} from "@chainlink/contracts-ccip/src/v0.8/ccip/libraries/RateLimiter.sol";
+import {IRouterClient} from "@chainlink/contracts-ccip/src/v0.8/ccip/interfaces/IRouterClient.sol";
+import {Client} from "@chainlink/contracts-ccip/src/v0.8/ccip/libraries/Client.sol";
+
+import {
+ ERC20,
+ IERC20
+} from "@chainlink/contracts-ccip/src/v0.8/vendor/openzeppelin-solidity/v4.8.3/contracts/token/ERC20/ERC20.sol";
+import {OwnerIsCreator} from "@chainlink/contracts-ccip/src/v0.8/shared/access/OwnerIsCreator.sol";
+
+contract MockERC20TokenOwner is ERC20, OwnerIsCreator {
+ constructor() ERC20("MockERC20Token", "MTK") {}
+
+ function mint(address account, uint256 amount) public onlyOwner {
+ _mint(account, amount);
+ }
+}
+
+contract CCIPv1_5LockReleasePoolFork is Test {
+ CCIPLocalSimulatorFork public ccipLocalSimulatorFork;
+ MockERC20TokenOwner public mockERC20TokenEthSepolia;
+ MockERC20TokenOwner public mockERC20TokenBaseSepolia;
+
+ uint256 ethSepoliaFork;
+ uint256 baseSepoliaFork;
+
+ address alice;
+
+ function setUp() public {
+ alice = makeAddr("alice");
+
+ string memory ETHEREUM_SEPOLIA_RPC_URL = vm.envString("ETHEREUM_SEPOLIA_RPC_URL");
+ string memory BASE_SEPOLIA_RPC_URL = vm.envString("BASE_SEPOLIA_RPC_URL");
+ ethSepoliaFork = vm.createSelectFork(ETHEREUM_SEPOLIA_RPC_URL);
+ baseSepoliaFork = vm.createFork(BASE_SEPOLIA_RPC_URL);
+
+ ccipLocalSimulatorFork = new CCIPLocalSimulatorFork();
+ vm.makePersistent(address(ccipLocalSimulatorFork));
+
+ // Step 1) Deploy token on Ethereum Sepolia
+ vm.startPrank(alice);
+ mockERC20TokenEthSepolia = new MockERC20TokenOwner();
+ vm.stopPrank();
+
+ // Step 2) Deploy token on Base Sepolia
+ vm.selectFork(baseSepoliaFork);
+
+ vm.startPrank(alice);
+ mockERC20TokenBaseSepolia = new MockERC20TokenOwner();
+ vm.stopPrank();
+ }
+
+ function test_forkSupportNewCCIPToken() public {
+ // Step 3) Deploy LockReleaseTokenPool on Ethereum Sepolia
+ vm.selectFork(ethSepoliaFork);
+ Register.NetworkDetails memory ethSepoliaNetworkDetails =
+ ccipLocalSimulatorFork.getNetworkDetails(block.chainid);
+ address[] memory allowlist = new address[](0);
+
+ vm.startPrank(alice);
+ LockReleaseTokenPool lockReleaseTokenPoolEthSepolia = new LockReleaseTokenPool(
+ IERC20(address(mockERC20TokenEthSepolia)),
+ allowlist,
+ ethSepoliaNetworkDetails.rmnProxyAddress,
+ true, // acceptLiquidity
+ ethSepoliaNetworkDetails.routerAddress
+ );
+ vm.stopPrank();
+
+ // Step 4) Deploy LockReleaseTokenPool on Base Sepolia
+ vm.selectFork(baseSepoliaFork);
+ Register.NetworkDetails memory baseSepoliaNetworkDetails =
+ ccipLocalSimulatorFork.getNetworkDetails(block.chainid);
+
+ vm.startPrank(alice);
+ LockReleaseTokenPool lockReleaseTokenPoolBaseSepolia = new LockReleaseTokenPool(
+ IERC20(address(mockERC20TokenBaseSepolia)),
+ allowlist,
+ baseSepoliaNetworkDetails.rmnProxyAddress,
+ true, // acceptLiquidity
+ baseSepoliaNetworkDetails.routerAddress
+ );
+ vm.stopPrank();
+
+ // Step 5) Set the LiquidityManager address and Add liquidity to the pool on Ethereum Sepolia
+ vm.selectFork(ethSepoliaFork);
+ uint256 amountToMint = 1_000_000;
+ uint128 liquidityAmount = 100_000;
+
+ vm.startPrank(alice);
+ mockERC20TokenEthSepolia.mint(address(alice), amountToMint);
+ mockERC20TokenEthSepolia.approve(address(lockReleaseTokenPoolEthSepolia), liquidityAmount);
+ lockReleaseTokenPoolEthSepolia.setRebalancer(address(alice));
+ lockReleaseTokenPoolEthSepolia.provideLiquidity(liquidityAmount);
+ vm.stopPrank();
+
+ // Step 6) Set the LiquidityManager address and Add liquidity to the pool on Base Sepolia
+ vm.selectFork(baseSepoliaFork);
+
+ vm.startPrank(alice);
+ mockERC20TokenBaseSepolia.mint(address(alice), amountToMint);
+ mockERC20TokenBaseSepolia.approve(address(lockReleaseTokenPoolBaseSepolia), liquidityAmount);
+ lockReleaseTokenPoolBaseSepolia.setRebalancer(address(alice));
+ lockReleaseTokenPoolBaseSepolia.provideLiquidity(liquidityAmount);
+ vm.stopPrank();
+
+ // Step 7) Claim Admin role on Ethereum Sepolia
+ vm.selectFork(ethSepoliaFork);
+
+ RegistryModuleOwnerCustom registryModuleOwnerCustomEthSepolia =
+ RegistryModuleOwnerCustom(ethSepoliaNetworkDetails.registryModuleOwnerCustomAddress);
+
+ vm.startPrank(alice);
+ registryModuleOwnerCustomEthSepolia.registerAdminViaOwner(address(mockERC20TokenEthSepolia));
+ vm.stopPrank();
+
+ // Step 8) Claim Admin role on Base Sepolia
+ vm.selectFork(baseSepoliaFork);
+
+ RegistryModuleOwnerCustom registryModuleOwnerCustomBaseSepolia =
+ RegistryModuleOwnerCustom(baseSepoliaNetworkDetails.registryModuleOwnerCustomAddress);
+
+ vm.startPrank(alice);
+ registryModuleOwnerCustomBaseSepolia.registerAdminViaOwner(address(mockERC20TokenBaseSepolia));
+ vm.stopPrank();
+
+ // Step 9) Accept Admin role on Ethereum Sepolia
+ vm.selectFork(ethSepoliaFork);
+
+ TokenAdminRegistry tokenAdminRegistryEthSepolia =
+ TokenAdminRegistry(ethSepoliaNetworkDetails.tokenAdminRegistryAddress);
+
+ vm.startPrank(alice);
+ tokenAdminRegistryEthSepolia.acceptAdminRole(address(mockERC20TokenEthSepolia));
+ vm.stopPrank();
+
+ // Step 10) Accept Admin role on Base Sepolia
+ vm.selectFork(baseSepoliaFork);
+
+ TokenAdminRegistry tokenAdminRegistryBaseSepolia =
+ TokenAdminRegistry(baseSepoliaNetworkDetails.tokenAdminRegistryAddress);
+
+ vm.startPrank(alice);
+ tokenAdminRegistryBaseSepolia.acceptAdminRole(address(mockERC20TokenBaseSepolia));
+ vm.stopPrank();
+
+ // Step 11) Link token to pool on Ethereum Sepolia
+ vm.selectFork(ethSepoliaFork);
+
+ vm.startPrank(alice);
+ tokenAdminRegistryEthSepolia.setPool(address(mockERC20TokenEthSepolia), address(lockReleaseTokenPoolEthSepolia));
+ vm.stopPrank();
+
+ // Step 12) Link token to pool on Base Sepolia
+ vm.selectFork(baseSepoliaFork);
+
+ vm.startPrank(alice);
+ tokenAdminRegistryBaseSepolia.setPool(
+ address(mockERC20TokenBaseSepolia), address(lockReleaseTokenPoolBaseSepolia)
+ );
+ vm.stopPrank();
+
+ // Step 13) Configure Token Pool on Ethereum Sepolia
+ vm.selectFork(ethSepoliaFork);
+
+ vm.startPrank(alice);
+ TokenPool.ChainUpdate[] memory chains = new TokenPool.ChainUpdate[](1);
+ chains[0] = TokenPool.ChainUpdate({
+ remoteChainSelector: baseSepoliaNetworkDetails.chainSelector,
+ allowed: true,
+ remotePoolAddress: abi.encode(address(lockReleaseTokenPoolBaseSepolia)),
+ remoteTokenAddress: abi.encode(address(mockERC20TokenBaseSepolia)),
+ outboundRateLimiterConfig: RateLimiter.Config({isEnabled: true, capacity: liquidityAmount, rate: 167}),
+ inboundRateLimiterConfig: RateLimiter.Config({isEnabled: true, capacity: liquidityAmount, rate: 167})
+ });
+ lockReleaseTokenPoolEthSepolia.applyChainUpdates(chains);
+ vm.stopPrank();
+
+ // Step 14) Configure Token Pool on Base Sepolia
+ vm.selectFork(baseSepoliaFork);
+
+ vm.startPrank(alice);
+ chains = new TokenPool.ChainUpdate[](1);
+ chains[0] = TokenPool.ChainUpdate({
+ remoteChainSelector: ethSepoliaNetworkDetails.chainSelector,
+ allowed: true,
+ remotePoolAddress: abi.encode(address(lockReleaseTokenPoolEthSepolia)),
+ remoteTokenAddress: abi.encode(address(mockERC20TokenEthSepolia)),
+ outboundRateLimiterConfig: RateLimiter.Config({isEnabled: true, capacity: liquidityAmount, rate: 167}),
+ inboundRateLimiterConfig: RateLimiter.Config({isEnabled: true, capacity: liquidityAmount, rate: 167})
+ });
+ lockReleaseTokenPoolBaseSepolia.applyChainUpdates(chains);
+ vm.stopPrank();
+
+ // Step 15) Transfer tokens from Ethereum Sepolia to Base Sepolia
+ vm.selectFork(ethSepoliaFork);
+
+ address linkEthSepoliaAddress = ethSepoliaNetworkDetails.linkAddress;
+ address routerEthSepoliaAddress = ethSepoliaNetworkDetails.routerAddress;
+ ccipLocalSimulatorFork.requestLinkFromFaucet(address(alice), 20 ether);
+
+ uint256 amountToSend = 100;
+ Client.EVMTokenAmount[] memory tokenToSendDetails = new Client.EVMTokenAmount[](1);
+ Client.EVMTokenAmount memory tokenAmount =
+ Client.EVMTokenAmount({token: address(mockERC20TokenEthSepolia), amount: amountToSend});
+ tokenToSendDetails[0] = tokenAmount;
+
+ vm.startPrank(alice);
+
+ mockERC20TokenEthSepolia.approve(routerEthSepoliaAddress, amountToSend);
+ IERC20(linkEthSepoliaAddress).approve(routerEthSepoliaAddress, 20 ether);
+
+ uint256 balanceOfAliceBeforeEthSepolia = mockERC20TokenEthSepolia.balanceOf(alice);
+
+ uint64 destinationChainSelector = baseSepoliaNetworkDetails.chainSelector;
+ IRouterClient routerEthSepolia = IRouterClient(routerEthSepoliaAddress);
+ routerEthSepolia.ccipSend(
+ destinationChainSelector,
+ Client.EVM2AnyMessage({
+ receiver: abi.encode(address(alice)),
+ data: "",
+ tokenAmounts: tokenToSendDetails,
+ extraArgs: Client._argsToBytes(Client.EVMExtraArgsV1({gasLimit: 0})),
+ feeToken: linkEthSepoliaAddress
+ })
+ );
+
+ uint256 balanceOfAliceAfterEthSepolia = mockERC20TokenEthSepolia.balanceOf(alice);
+ vm.stopPrank();
+
+ assertEq(balanceOfAliceAfterEthSepolia, balanceOfAliceBeforeEthSepolia - amountToSend);
+
+ ccipLocalSimulatorFork.switchChainAndRouteMessage(baseSepoliaFork);
+
+ uint256 balanceOfAliceAfterBaseSepolia = mockERC20TokenBaseSepolia.balanceOf(alice);
+ assertEq(balanceOfAliceAfterBaseSepolia, balanceOfAliceBeforeEthSepolia + amountToSend);
+ }
+}
diff --git a/test/smoke/ccip/PayWithNative.t.sol b/test/smoke/ccip/PayWithNative.t.sol
index 4289335..68cbc92 100644
--- a/test/smoke/ccip/PayWithNative.t.sol
+++ b/test/smoke/ccip/PayWithNative.t.sol
@@ -1,9 +1,11 @@
// SPDX-License-Identifier: MIT
-pragma solidity ^0.8.19;
+pragma solidity ^0.8.24;
import {Test, console2} from "forge-std/Test.sol";
import {BasicTokenSender} from "../../../src/test/ccip/BasicTokenSender.sol";
-import {CCIPLocalSimulator, IRouterClient, BurnMintERC677Helper} from "@chainlink/local/src/ccip/CCIPLocalSimulator.sol";
+import {
+ CCIPLocalSimulator, IRouterClient, BurnMintERC677Helper
+} from "@chainlink/local/src/ccip/CCIPLocalSimulator.sol";
import {Client} from "@chainlink/contracts-ccip/src/v0.8/ccip/libraries/Client.sol";
contract PayWithNativeTest is Test {
@@ -17,15 +19,8 @@ contract PayWithNativeTest is Test {
function setUp() public {
ccipLocalSimulator = new CCIPLocalSimulator();
- (
- uint64 chainSelector_,
- IRouterClient sourceRouter_,
- ,
- ,
- ,
- BurnMintERC677Helper ccipBnM_,
-
- ) = ccipLocalSimulator.configuration();
+ (uint64 chainSelector_, IRouterClient sourceRouter_,,,, BurnMintERC677Helper ccipBnM_,) =
+ ccipLocalSimulator.configuration();
sender = new BasicTokenSender(address(sourceRouter_));
@@ -43,12 +38,9 @@ contract PayWithNativeTest is Test {
ccipBnM.drip(alice);
uint256 amountToSend = 100;
- Client.EVMTokenAmount[]
- memory tokensToSendDetails = new Client.EVMTokenAmount[](1);
- Client.EVMTokenAmount memory tokenToSend = Client.EVMTokenAmount({
- token: address(ccipBnM),
- amount: amountToSend
- });
+ Client.EVMTokenAmount[] memory tokensToSendDetails = new Client.EVMTokenAmount[](1);
+ Client.EVMTokenAmount memory tokenToSend =
+ Client.EVMTokenAmount({token: address(ccipBnM), amount: amountToSend});
tokensToSendDetails[0] = tokenToSend;
Client.EVM2AnyMessage memory message = Client.EVM2AnyMessage({
diff --git a/test/smoke/ccip/TokenTransferor.t.sol b/test/smoke/ccip/TokenTransferor.t.sol
index 7842a70..a07bf87 100644
--- a/test/smoke/ccip/TokenTransferor.t.sol
+++ b/test/smoke/ccip/TokenTransferor.t.sol
@@ -1,9 +1,14 @@
// SPDX-License-Identifier: MIT
-pragma solidity ^0.8.19;
+pragma solidity ^0.8.24;
import {Test, console2} from "forge-std/Test.sol";
import {TokenTransferor} from "../../../src/test/ccip/TokenTransferor.sol";
-import {CCIPLocalSimulator, IRouterClient, LinkToken, BurnMintERC677Helper} from "@chainlink/local/src/ccip/CCIPLocalSimulator.sol";
+import {
+ CCIPLocalSimulator,
+ IRouterClient,
+ LinkToken,
+ BurnMintERC677Helper
+} from "@chainlink/local/src/ccip/CCIPLocalSimulator.sol";
contract TokenTransferorTest is Test {
TokenTransferor public tokenTransferor;
@@ -14,20 +19,10 @@ contract TokenTransferorTest is Test {
function setUp() public {
ccipLocalSimulator = new CCIPLocalSimulator();
- (
- uint64 chainSelector_,
- IRouterClient sourceRouter,
- ,
- ,
- LinkToken linkToken,
- BurnMintERC677Helper ccipBnM_,
+ (uint64 chainSelector_, IRouterClient sourceRouter,,, LinkToken linkToken, BurnMintERC677Helper ccipBnM_,) =
+ ccipLocalSimulator.configuration();
- ) = ccipLocalSimulator.configuration();
-
- tokenTransferor = new TokenTransferor(
- address(sourceRouter),
- address(linkToken)
- );
+ tokenTransferor = new TokenTransferor(address(sourceRouter), address(linkToken));
chainSelector = chainSelector_;
ccipBnM = ccipBnM_;
@@ -40,34 +35,19 @@ contract TokenTransferorTest is Test {
ccipBnM.drip(address(tokenTransferor));
- ccipLocalSimulator.requestLinkFromFaucet(
- address(tokenTransferor),
- amountForFees
- );
+ ccipLocalSimulator.requestLinkFromFaucet(address(tokenTransferor), amountForFees);
tokenTransferor.allowlistDestinationChain(chainSelector, true);
uint256 receiverBalanceBefore = ccipBnM.balanceOf(receiver);
- uint256 tokenTransferorBalanceBefore = ccipBnM.balanceOf(
- address(tokenTransferor)
- );
+ uint256 tokenTransferorBalanceBefore = ccipBnM.balanceOf(address(tokenTransferor));
- tokenTransferor.transferTokensPayLINK(
- chainSelector,
- receiver,
- address(ccipBnM),
- amountToSend
- );
+ tokenTransferor.transferTokensPayLINK(chainSelector, receiver, address(ccipBnM), amountToSend);
uint256 receiverBalanceAfter = ccipBnM.balanceOf(receiver);
- uint256 tokenTransferorBalanceAfter = ccipBnM.balanceOf(
- address(tokenTransferor)
- );
+ uint256 tokenTransferorBalanceAfter = ccipBnM.balanceOf(address(tokenTransferor));
assertEq(receiverBalanceAfter, receiverBalanceBefore + amountToSend);
- assertEq(
- tokenTransferorBalanceAfter,
- tokenTransferorBalanceBefore - amountToSend
- );
+ assertEq(tokenTransferorBalanceAfter, tokenTransferorBalanceBefore - amountToSend);
}
}
diff --git a/test/unit/ccip/CCIPLocalSimulatorUnit.t.sol b/test/unit/ccip/CCIPLocalSimulatorUnit.t.sol
new file mode 100644
index 0000000..86ddc9c
--- /dev/null
+++ b/test/unit/ccip/CCIPLocalSimulatorUnit.t.sol
@@ -0,0 +1,105 @@
+// SPDX-License-Identifier: MIT
+pragma solidity ^0.8.0;
+
+import {Test, console2} from "forge-std/Test.sol";
+import {CCIPLocalSimulator} from "@chainlink/local/src/ccip/CCIPLocalSimulator.sol";
+
+import {ERC20} from
+ "@chainlink/contracts-ccip/src/v0.8/vendor/openzeppelin-solidity/v5.0.2/contracts/token/ERC20/ERC20.sol";
+import {OwnerIsCreator} from "@chainlink/contracts-ccip/src/v0.8/shared/access/OwnerIsCreator.sol";
+
+contract MockERC20TokenOwner is ERC20, OwnerIsCreator {
+ constructor() ERC20("MockERC20Token", "MTK") {}
+
+ function mint(address account, uint256 amount) public onlyOwner {
+ _mint(account, amount);
+ }
+}
+
+contract MockERC20TokenGetCCIPAdmin is ERC20 {
+ address immutable i_CCIPAdmin;
+
+ constructor() ERC20("MockERC20Token", "MTK") {
+ i_CCIPAdmin = msg.sender;
+ }
+
+ function mint(address account, uint256 amount) public {
+ require(msg.sender == i_CCIPAdmin, "Only CCIP Admin can mint");
+ _mint(account, amount);
+ }
+
+ function getCCIPAdmin() public view returns (address) {
+ return (i_CCIPAdmin);
+ }
+}
+
+contract CCIPLocalSimulatorUnitTest is Test {
+ CCIPLocalSimulator public ccipLocalSimulator;
+
+ MockERC20TokenOwner public mockERC20TokenOwner;
+ MockERC20TokenGetCCIPAdmin public mockERC20TokenGetCCIPAdmin;
+
+ address alice;
+ address bob;
+ uint64 chainSelector;
+
+ function setUp() public {
+ ccipLocalSimulator = new CCIPLocalSimulator();
+
+ (uint64 chainSelector_,,,,,,) = ccipLocalSimulator.configuration();
+ chainSelector = chainSelector_;
+
+ alice = makeAddr("alice");
+ bob = makeAddr("bob");
+
+ vm.startPrank(alice);
+ mockERC20TokenOwner = new MockERC20TokenOwner();
+ mockERC20TokenGetCCIPAdmin = new MockERC20TokenGetCCIPAdmin();
+ vm.stopPrank();
+
+ assertEq(mockERC20TokenOwner.owner(), alice);
+ assertEq(mockERC20TokenGetCCIPAdmin.getCCIPAdmin(), alice);
+ }
+
+ function test_shouldSupportNewTokenIfCalledByOwner() public {
+ address[] memory supportedTokensBefore = ccipLocalSimulator.getSupportedTokens(chainSelector);
+
+ vm.startPrank(alice);
+ ccipLocalSimulator.supportNewTokenViaOwner(address(mockERC20TokenOwner));
+ vm.stopPrank();
+
+ address[] memory supportedTokensAfter = ccipLocalSimulator.getSupportedTokens(chainSelector);
+ assertEq(supportedTokensAfter.length, supportedTokensBefore.length + 1);
+ assertEq(supportedTokensAfter[supportedTokensAfter.length - 1], address(mockERC20TokenOwner));
+ }
+
+ function test_shouldRevertIfSupportNewTokenIsNotCalledByOwner() public {
+ vm.startPrank(bob);
+ vm.expectRevert(
+ abi.encodeWithSelector(CCIPLocalSimulator.CCIPLocalSimulator__MsgSenderIsNotTokenOwner.selector)
+ );
+ ccipLocalSimulator.supportNewTokenViaOwner(address(mockERC20TokenOwner));
+ vm.stopPrank();
+ }
+
+ function test_shouldSupportNewTokenIfCalledByCCIPAdmin() public {
+ address[] memory supportedTokensBefore = ccipLocalSimulator.getSupportedTokens(chainSelector);
+
+ vm.startPrank(alice);
+ ccipLocalSimulator.supportNewTokenViaGetCCIPAdmin(address(mockERC20TokenGetCCIPAdmin));
+ vm.stopPrank();
+
+ address[] memory supportedTokensAfter = ccipLocalSimulator.getSupportedTokens(chainSelector);
+ assertEq(supportedTokensAfter.length, supportedTokensBefore.length + 1);
+ assertEq(supportedTokensAfter[supportedTokensAfter.length - 1], address(mockERC20TokenGetCCIPAdmin));
+ }
+
+ function test_shouldRevertIfSupportNewTokenIsNotCalledByCCIPAdmin() public {
+ vm.startPrank(bob);
+ vm.expectRevert(
+ abi.encodeWithSelector(CCIPLocalSimulator.CCIPLocalSimulator__MsgSenderIsNotTokenOwner.selector)
+ );
+ ccipLocalSimulator.supportNewTokenViaGetCCIPAdmin(address(mockERC20TokenGetCCIPAdmin));
+ vm.stopPrank();
+ }
+}