diff --git a/packages/protocol/contract_layout.md b/packages/protocol/contract_layout.md index 08d8a74d7a..d4a822850c 100644 --- a/packages/protocol/contract_layout.md +++ b/packages/protocol/contract_layout.md @@ -376,78 +376,6 @@ | __gap | uint256[49] | 202 | 0 | 1568 | contracts/L1/hooks/AssignmentHook.sol:AssignmentHook | | __gap | uint256[50] | 251 | 0 | 1600 | contracts/L1/hooks/AssignmentHook.sol:AssignmentHook | -## DevnetTierProvider -| Name | Type | Slot | Offset | Bytes | Contract | -|----------------|-------------|------|--------|-------|--------------------------------------------------------------| -| _initialized | uint8 | 0 | 0 | 1 | contracts/L1/tiers/DevnetTierProvider.sol:DevnetTierProvider | -| _initializing | bool | 0 | 1 | 1 | contracts/L1/tiers/DevnetTierProvider.sol:DevnetTierProvider | -| __gap | uint256[50] | 1 | 0 | 1600 | contracts/L1/tiers/DevnetTierProvider.sol:DevnetTierProvider | -| _owner | address | 51 | 0 | 20 | contracts/L1/tiers/DevnetTierProvider.sol:DevnetTierProvider | -| __gap | uint256[49] | 52 | 0 | 1568 | contracts/L1/tiers/DevnetTierProvider.sol:DevnetTierProvider | -| _pendingOwner | address | 101 | 0 | 20 | contracts/L1/tiers/DevnetTierProvider.sol:DevnetTierProvider | -| __gap | uint256[49] | 102 | 0 | 1568 | contracts/L1/tiers/DevnetTierProvider.sol:DevnetTierProvider | -| addressManager | address | 151 | 0 | 20 | contracts/L1/tiers/DevnetTierProvider.sol:DevnetTierProvider | -| __gap | uint256[49] | 152 | 0 | 1568 | contracts/L1/tiers/DevnetTierProvider.sol:DevnetTierProvider | -| __reentry | uint8 | 201 | 0 | 1 | contracts/L1/tiers/DevnetTierProvider.sol:DevnetTierProvider | -| __paused | uint8 | 201 | 1 | 1 | contracts/L1/tiers/DevnetTierProvider.sol:DevnetTierProvider | -| lastUnpausedAt | uint64 | 201 | 2 | 8 | contracts/L1/tiers/DevnetTierProvider.sol:DevnetTierProvider | -| __gap | uint256[49] | 202 | 0 | 1568 | contracts/L1/tiers/DevnetTierProvider.sol:DevnetTierProvider | -| __gap | uint256[50] | 251 | 0 | 1600 | contracts/L1/tiers/DevnetTierProvider.sol:DevnetTierProvider | - -## TierProviderV1 -| Name | Type | Slot | Offset | Bytes | Contract | -|----------------|-------------|------|--------|-------|------------------------------------------------------| -| _initialized | uint8 | 0 | 0 | 1 | contracts/L1/tiers/TierProviderV1.sol:TierProviderV1 | -| _initializing | bool | 0 | 1 | 1 | contracts/L1/tiers/TierProviderV1.sol:TierProviderV1 | -| __gap | uint256[50] | 1 | 0 | 1600 | contracts/L1/tiers/TierProviderV1.sol:TierProviderV1 | -| _owner | address | 51 | 0 | 20 | contracts/L1/tiers/TierProviderV1.sol:TierProviderV1 | -| __gap | uint256[49] | 52 | 0 | 1568 | contracts/L1/tiers/TierProviderV1.sol:TierProviderV1 | -| _pendingOwner | address | 101 | 0 | 20 | contracts/L1/tiers/TierProviderV1.sol:TierProviderV1 | -| __gap | uint256[49] | 102 | 0 | 1568 | contracts/L1/tiers/TierProviderV1.sol:TierProviderV1 | -| addressManager | address | 151 | 0 | 20 | contracts/L1/tiers/TierProviderV1.sol:TierProviderV1 | -| __gap | uint256[49] | 152 | 0 | 1568 | contracts/L1/tiers/TierProviderV1.sol:TierProviderV1 | -| __reentry | uint8 | 201 | 0 | 1 | contracts/L1/tiers/TierProviderV1.sol:TierProviderV1 | -| __paused | uint8 | 201 | 1 | 1 | contracts/L1/tiers/TierProviderV1.sol:TierProviderV1 | -| lastUnpausedAt | uint64 | 201 | 2 | 8 | contracts/L1/tiers/TierProviderV1.sol:TierProviderV1 | -| __gap | uint256[49] | 202 | 0 | 1568 | contracts/L1/tiers/TierProviderV1.sol:TierProviderV1 | -| __gap | uint256[50] | 251 | 0 | 1600 | contracts/L1/tiers/TierProviderV1.sol:TierProviderV1 | - -## TierProviderV2 -| Name | Type | Slot | Offset | Bytes | Contract | -|----------------|-------------|------|--------|-------|------------------------------------------------------| -| _initialized | uint8 | 0 | 0 | 1 | contracts/L1/tiers/TierProviderV2.sol:TierProviderV2 | -| _initializing | bool | 0 | 1 | 1 | contracts/L1/tiers/TierProviderV2.sol:TierProviderV2 | -| __gap | uint256[50] | 1 | 0 | 1600 | contracts/L1/tiers/TierProviderV2.sol:TierProviderV2 | -| _owner | address | 51 | 0 | 20 | contracts/L1/tiers/TierProviderV2.sol:TierProviderV2 | -| __gap | uint256[49] | 52 | 0 | 1568 | contracts/L1/tiers/TierProviderV2.sol:TierProviderV2 | -| _pendingOwner | address | 101 | 0 | 20 | contracts/L1/tiers/TierProviderV2.sol:TierProviderV2 | -| __gap | uint256[49] | 102 | 0 | 1568 | contracts/L1/tiers/TierProviderV2.sol:TierProviderV2 | -| addressManager | address | 151 | 0 | 20 | contracts/L1/tiers/TierProviderV2.sol:TierProviderV2 | -| __gap | uint256[49] | 152 | 0 | 1568 | contracts/L1/tiers/TierProviderV2.sol:TierProviderV2 | -| __reentry | uint8 | 201 | 0 | 1 | contracts/L1/tiers/TierProviderV2.sol:TierProviderV2 | -| __paused | uint8 | 201 | 1 | 1 | contracts/L1/tiers/TierProviderV2.sol:TierProviderV2 | -| lastUnpausedAt | uint64 | 201 | 2 | 8 | contracts/L1/tiers/TierProviderV2.sol:TierProviderV2 | -| __gap | uint256[49] | 202 | 0 | 1568 | contracts/L1/tiers/TierProviderV2.sol:TierProviderV2 | -| __gap | uint256[50] | 251 | 0 | 1600 | contracts/L1/tiers/TierProviderV2.sol:TierProviderV2 | - -## TierProviderV3 -| Name | Type | Slot | Offset | Bytes | Contract | -|----------------|-------------|------|--------|-------|------------------------------------------------------| -| _initialized | uint8 | 0 | 0 | 1 | contracts/L1/tiers/TierProviderV3.sol:TierProviderV3 | -| _initializing | bool | 0 | 1 | 1 | contracts/L1/tiers/TierProviderV3.sol:TierProviderV3 | -| __gap | uint256[50] | 1 | 0 | 1600 | contracts/L1/tiers/TierProviderV3.sol:TierProviderV3 | -| _owner | address | 51 | 0 | 20 | contracts/L1/tiers/TierProviderV3.sol:TierProviderV3 | -| __gap | uint256[49] | 52 | 0 | 1568 | contracts/L1/tiers/TierProviderV3.sol:TierProviderV3 | -| _pendingOwner | address | 101 | 0 | 20 | contracts/L1/tiers/TierProviderV3.sol:TierProviderV3 | -| __gap | uint256[49] | 102 | 0 | 1568 | contracts/L1/tiers/TierProviderV3.sol:TierProviderV3 | -| addressManager | address | 151 | 0 | 20 | contracts/L1/tiers/TierProviderV3.sol:TierProviderV3 | -| __gap | uint256[49] | 152 | 0 | 1568 | contracts/L1/tiers/TierProviderV3.sol:TierProviderV3 | -| __reentry | uint8 | 201 | 0 | 1 | contracts/L1/tiers/TierProviderV3.sol:TierProviderV3 | -| __paused | uint8 | 201 | 1 | 1 | contracts/L1/tiers/TierProviderV3.sol:TierProviderV3 | -| lastUnpausedAt | uint64 | 201 | 2 | 8 | contracts/L1/tiers/TierProviderV3.sol:TierProviderV3 | -| __gap | uint256[49] | 202 | 0 | 1568 | contracts/L1/tiers/TierProviderV3.sol:TierProviderV3 | -| __gap | uint256[50] | 251 | 0 | 1600 | contracts/L1/tiers/TierProviderV3.sol:TierProviderV3 | - ## ERC20Airdrop | Name | Type | Slot | Offset | Bytes | Contract | |----------------|--------------------------|------|--------|-------|------------------------------------------------------| diff --git a/packages/protocol/contracts/L1/tiers/DevnetTierProvider.sol b/packages/protocol/contracts/L1/tiers/DevnetTierProvider.sol index 391b4b8265..12d437c2bb 100644 --- a/packages/protocol/contracts/L1/tiers/DevnetTierProvider.sol +++ b/packages/protocol/contracts/L1/tiers/DevnetTierProvider.sol @@ -1,54 +1,18 @@ // SPDX-License-Identifier: MIT pragma solidity 0.8.24; -import "../../common/EssentialContract.sol"; -import "../../common/LibStrings.sol"; -import "./ITierProvider.sol"; +import "./TierProviderBase.sol"; /// @title DevnetTierProvider /// @dev Labeled in AddressResolver as "tier_provider" /// @custom:security-contact security@taiko.xyz -contract DevnetTierProvider is EssentialContract, ITierProvider { - uint256[50] private __gap; - - /// @notice Initializes the contract. - /// @param _owner The owner of this contract. msg.sender will be used if this value is zero. - function init(address _owner) external initializer { - __Essential_init(_owner); - } - - /// @inheritdoc ITierProvider - function getTier(uint16 _tierId) public pure override returns (ITierProvider.Tier memory) { - if (_tierId == LibTiers.TIER_OPTIMISTIC) { - return ITierProvider.Tier({ - verifierName: "", - validityBond: 250 ether, // TKO - contestBond: 500 ether, // TKO - cooldownWindow: 1440, //24 hours - provingWindow: 120, // 2 hours - maxBlocksToVerifyPerProof: 16 - }); - } - - if (_tierId == LibTiers.TIER_GUARDIAN) { - return ITierProvider.Tier({ - verifierName: LibStrings.B_TIER_GUARDIAN, - validityBond: 0, // must be 0 for top tier - contestBond: 0, // must be 0 for top tier - cooldownWindow: 60, //1 hours - provingWindow: 2880, // 48 hours - maxBlocksToVerifyPerProof: 16 - }); - } - - revert TIER_NOT_FOUND(); - } - +contract DevnetTierProvider is TierProviderBase { /// @inheritdoc ITierProvider function getTierIds() public pure override returns (uint16[] memory tiers_) { - tiers_ = new uint16[](2); + tiers_ = new uint16[](3); tiers_[0] = LibTiers.TIER_OPTIMISTIC; - tiers_[1] = LibTiers.TIER_GUARDIAN; + tiers_[1] = LibTiers.TIER_GUARDIAN_MINORITY; + tiers_[2] = LibTiers.TIER_GUARDIAN; } /// @inheritdoc ITierProvider diff --git a/packages/protocol/contracts/L1/tiers/HeklaTierProvider.sol b/packages/protocol/contracts/L1/tiers/TierProviderBase.sol similarity index 56% rename from packages/protocol/contracts/L1/tiers/HeklaTierProvider.sol rename to packages/protocol/contracts/L1/tiers/TierProviderBase.sol index 9d5098fdf1..00d457c735 100644 --- a/packages/protocol/contracts/L1/tiers/HeklaTierProvider.sol +++ b/packages/protocol/contracts/L1/tiers/TierProviderBase.sol @@ -1,24 +1,20 @@ // SPDX-License-Identifier: MIT pragma solidity 0.8.24; -import "../../common/EssentialContract.sol"; import "../../common/LibStrings.sol"; import "./ITierProvider.sol"; -/// @title HeklaTierProvider -/// @dev Labeled in AddressResolver as "tier_provider" +/// @title TierProviderBase /// @custom:security-contact security@taiko.xyz -contract HeklaTierProvider is EssentialContract, ITierProvider { - uint256[50] private __gap; - - /// @notice Initializes the contract. - /// @param _owner The owner of this contract. msg.sender will be used if this value is zero. - function init(address _owner) external initializer { - __Essential_init(_owner); - } - +abstract contract TierProviderBase is ITierProvider { /// @inheritdoc ITierProvider - function getTier(uint16 _tierId) public pure override returns (ITierProvider.Tier memory) { + function getTier(uint16 _tierId) + public + pure + virtual + override + returns (ITierProvider.Tier memory) + { if (_tierId == LibTiers.TIER_OPTIMISTIC) { return ITierProvider.Tier({ verifierName: "", @@ -26,7 +22,7 @@ contract HeklaTierProvider is EssentialContract, ITierProvider { contestBond: 500 ether, // TKO cooldownWindow: 1440, //24 hours provingWindow: 30, // 0.5 hours - maxBlocksToVerifyPerProof: 12 + maxBlocksToVerifyPerProof: 16 }); } @@ -41,6 +37,28 @@ contract HeklaTierProvider is EssentialContract, ITierProvider { }); } + if (_tierId == LibTiers.TIER_SGX_ZKVM) { + return ITierProvider.Tier({ + verifierName: LibStrings.B_TIER_SGX_ZKVM, + validityBond: 500 ether, // TKO + contestBond: 3280 ether, // =500TKO * 6.5625 + cooldownWindow: 1440, //24 hours + provingWindow: 240, // 4 hours + maxBlocksToVerifyPerProof: 4 + }); + } + + if (_tierId == LibTiers.TIER_GUARDIAN_MINORITY) { + return ITierProvider.Tier({ + verifierName: LibStrings.B_TIER_GUARDIAN_MINORITY, + validityBond: 500 ether, // TKO + contestBond: 3280 ether, // =500TKO * 6.5625 + cooldownWindow: 1440, //24 hours + provingWindow: 2880, // 48 hours + maxBlocksToVerifyPerProof: 16 + }); + } + if (_tierId == LibTiers.TIER_GUARDIAN) { return ITierProvider.Tier({ verifierName: LibStrings.B_TIER_GUARDIAN, @@ -54,18 +72,4 @@ contract HeklaTierProvider is EssentialContract, ITierProvider { revert TIER_NOT_FOUND(); } - - /// @inheritdoc ITierProvider - function getTierIds() public pure override returns (uint16[] memory tiers_) { - tiers_ = new uint16[](3); - tiers_[0] = LibTiers.TIER_OPTIMISTIC; - tiers_[1] = LibTiers.TIER_SGX; - tiers_[2] = LibTiers.TIER_GUARDIAN; - } - - /// @inheritdoc ITierProvider - function getMinTier(uint256 _rand) public pure override returns (uint16) { - // All blocks require SGX proofs. - return LibTiers.TIER_SGX; - } } diff --git a/packages/protocol/contracts/L1/tiers/TierProviderV2.sol b/packages/protocol/contracts/L1/tiers/TierProviderV2.sol index 9fd258d715..5f2536f011 100644 --- a/packages/protocol/contracts/L1/tiers/TierProviderV2.sol +++ b/packages/protocol/contracts/L1/tiers/TierProviderV2.sol @@ -1,60 +1,12 @@ // SPDX-License-Identifier: MIT pragma solidity 0.8.24; -import "../../common/EssentialContract.sol"; -import "../../common/LibStrings.sol"; -import "./ITierProvider.sol"; +import "./TierProviderBase.sol"; /// @title TierProviderV2 /// @dev Labeled in AddressResolver as "tier_provider" /// @custom:security-contact security@taiko.xyz -contract TierProviderV2 is EssentialContract, ITierProvider { - uint256[50] private __gap; - - /// @notice Initializes the contract. - /// @param _owner The owner of this contract. msg.sender will be used if this value is zero. - function init(address _owner) external initializer { - __Essential_init(_owner); - } - - /// @inheritdoc ITierProvider - function getTier(uint16 _tierId) public pure override returns (ITierProvider.Tier memory) { - if (_tierId == LibTiers.TIER_SGX) { - return ITierProvider.Tier({ - verifierName: LibStrings.B_TIER_SGX, - validityBond: 250 ether, // TKO - contestBond: 1640 ether, // =250TKO * 6.5625 - cooldownWindow: 1440, //24 hours - provingWindow: 60, // 1 hours - maxBlocksToVerifyPerProof: 8 - }); - } - - if (_tierId == LibTiers.TIER_GUARDIAN_MINORITY) { - return ITierProvider.Tier({ - verifierName: LibStrings.B_TIER_GUARDIAN_MINORITY, - validityBond: 500 ether, // TKO - contestBond: 3280 ether, // =500TKO * 6.5625 - cooldownWindow: 60, //1 hours - provingWindow: 2880, // 48 hours - maxBlocksToVerifyPerProof: 16 - }); - } - - if (_tierId == LibTiers.TIER_GUARDIAN) { - return ITierProvider.Tier({ - verifierName: LibStrings.B_TIER_GUARDIAN, - validityBond: 0, // must be 0 for top tier - contestBond: 0, // must be 0 for top tier - cooldownWindow: 60, //1 hours - provingWindow: 2880, // 48 hours - maxBlocksToVerifyPerProof: 16 - }); - } - - revert TIER_NOT_FOUND(); - } - +contract TierProviderV2 is TierProviderBase { /// @inheritdoc ITierProvider function getTierIds() public pure override returns (uint16[] memory tiers_) { tiers_ = new uint16[](3); diff --git a/packages/protocol/contracts/L1/tiers/TierProviderV3.sol b/packages/protocol/contracts/L1/tiers/TierProviderV3.sol index ebae9447e3..7a85625a30 100644 --- a/packages/protocol/contracts/L1/tiers/TierProviderV3.sol +++ b/packages/protocol/contracts/L1/tiers/TierProviderV3.sol @@ -1,71 +1,12 @@ // SPDX-License-Identifier: MIT pragma solidity 0.8.24; -import "../../common/EssentialContract.sol"; -import "../../common/LibStrings.sol"; -import "./ITierProvider.sol"; +import "./TierProviderBase.sol"; /// @title TierProviderV3 /// @dev Labeled in AddressResolver as "tier_provider" /// @custom:security-contact security@taiko.xyz -contract TierProviderV3 is EssentialContract, ITierProvider { - uint256[50] private __gap; - - /// @notice Initializes the contract. - /// @param _owner The owner of this contract. msg.sender will be used if this value is zero. - function init(address _owner) external initializer { - __Essential_init(_owner); - } - - /// @inheritdoc ITierProvider - function getTier(uint16 _tierId) public pure override returns (ITierProvider.Tier memory) { - if (_tierId == LibTiers.TIER_SGX) { - return ITierProvider.Tier({ - verifierName: LibStrings.B_TIER_SGX, - validityBond: 250 ether, // TKO - contestBond: 1640 ether, // =250TKO * 6.5625 - cooldownWindow: 1440, //24 hours - provingWindow: 60, // 1 hours - maxBlocksToVerifyPerProof: 8 - }); - } - - if (_tierId == LibTiers.TIER_SGX_ZKVM) { - return ITierProvider.Tier({ - verifierName: LibStrings.B_TIER_SGX_ZKVM, - validityBond: 500 ether, // TKO - contestBond: 3280 ether, // =500TKO * 6.5625 - cooldownWindow: 1440, //24 hours - provingWindow: 240, // 4 hours - maxBlocksToVerifyPerProof: 4 - }); - } - - if (_tierId == LibTiers.TIER_GUARDIAN_MINORITY) { - return ITierProvider.Tier({ - verifierName: LibStrings.B_TIER_GUARDIAN_MINORITY, - validityBond: 500 ether, // TKO - contestBond: 3280 ether, // =500TKO * 6.5625 - cooldownWindow: 60, //1 hours - provingWindow: 2880, // 48 hours - maxBlocksToVerifyPerProof: 16 - }); - } - - if (_tierId == LibTiers.TIER_GUARDIAN) { - return ITierProvider.Tier({ - verifierName: LibStrings.B_TIER_GUARDIAN, - validityBond: 0, // must be 0 for top tier - contestBond: 0, // must be 0 for top tier - cooldownWindow: 60, //1 hours - provingWindow: 2880, // 48 hours - maxBlocksToVerifyPerProof: 16 - }); - } - - revert TIER_NOT_FOUND(); - } - +contract TierProviderV3 is TierProviderBase { /// @inheritdoc ITierProvider function getTierIds() public pure override returns (uint16[] memory tiers_) { tiers_ = new uint16[](4); diff --git a/packages/protocol/deployments/gen-layouts.sh b/packages/protocol/deployments/gen-layouts.sh index fefa3e3370..b88691cd9f 100755 --- a/packages/protocol/deployments/gen-layouts.sh +++ b/packages/protocol/deployments/gen-layouts.sh @@ -17,10 +17,6 @@ contracts=( "BridgedERC721" "BridgedERC1155" "AssignmentHook" - "DevnetTierProvider" - "TierProviderV1" - "TierProviderV2" - "TierProviderV3" "ERC20Airdrop" "AutomataDcapV3Attestation" "SgxVerifier" diff --git a/packages/protocol/package.json b/packages/protocol/package.json index 449ca411a7..1773b2c381 100644 --- a/packages/protocol/package.json +++ b/packages/protocol/package.json @@ -31,7 +31,7 @@ "eslint-plugin-promise": "^6.1.1", "ethers": "^5.7.2", "solc": "0.8.24", - "solhint": "^4.5.4", + "solhint": "^5.0.1", "ts-node": "^10.9.2", "typescript": "^5.2.2" }, diff --git a/packages/protocol/script/DeployOnL1.s.sol b/packages/protocol/script/DeployOnL1.s.sol index 379f939ab7..452df521fe 100644 --- a/packages/protocol/script/DeployOnL1.s.sol +++ b/packages/protocol/script/DeployOnL1.s.sol @@ -8,7 +8,6 @@ import "../contracts/tko/TaikoToken.sol"; import "../contracts/L1/TaikoL1.sol"; import "../contracts/L1/provers/GuardianProver.sol"; import "../contracts/L1/tiers/DevnetTierProvider.sol"; -import "../contracts/L1/tiers/TierProviderV1.sol"; import "../contracts/L1/tiers/TierProviderV2.sol"; import "../contracts/L1/hooks/AssignmentHook.sol"; import "../contracts/bridge/Bridge.sol"; @@ -25,6 +24,7 @@ import "../contracts/automata-attestation/lib/PEMCertChainLib.sol"; import "../contracts/verifiers/SgxVerifier.sol"; import "../test/common/erc20/FreeMintERC20.sol"; import "../test/common/erc20/MayFailFreeMintERC20.sol"; +import "../test/L1/TestTierProvider.sol"; import "../test/DeployCapability.sol"; // Actually this one is deployed already on mainnet, but we are now deploying our own (non via-ir) @@ -276,13 +276,6 @@ contract DeployOnL1 is DeployCapability { data: abi.encodeCall(AssignmentHook.init, (owner, rollupAddressManager)) }); - deployProxy({ - name: "tier_provider", - impl: deployTierProvider(vm.envString("TIER_PROVIDER")), - data: abi.encodeCall(TierProviderV1.init, (owner)), - registerTo: rollupAddressManager - }); - deployProxy({ name: "tier_sgx", impl: address(new SgxVerifier()), @@ -310,6 +303,7 @@ contract DeployOnL1 is DeployCapability { register(rollupAddressManager, "tier_guardian_minority", guardianProverMinority); register(rollupAddressManager, "tier_guardian", guardianProver); + register(rollupAddressManager, "tier_provider", address(new TestTierProvider())); address[] memory guardians = vm.envAddress("GUARDIAN_PROVERS", ","); @@ -347,7 +341,7 @@ contract DeployOnL1 is DeployCapability { if (keccak256(abi.encode(tierProviderName)) == keccak256(abi.encode("devnet"))) { return address(new DevnetTierProvider()); } else if (keccak256(abi.encode(tierProviderName)) == keccak256(abi.encode("testnet"))) { - return address(new TierProviderV1()); + return address(new TestTierProvider()); } else if (keccak256(abi.encode(tierProviderName)) == keccak256(abi.encode("mainnet"))) { return address(new TierProviderV2()); } else { diff --git a/packages/protocol/script/upgrade/UpgradeTierProvider.s.sol b/packages/protocol/script/upgrade/UpgradeTierProvider.s.sol index 0908967e2c..1d9d858af8 100644 --- a/packages/protocol/script/upgrade/UpgradeTierProvider.s.sol +++ b/packages/protocol/script/upgrade/UpgradeTierProvider.s.sol @@ -2,8 +2,7 @@ pragma solidity 0.8.24; import "../../test/DeployCapability.sol"; -import "../../contracts/L1/tiers/ITierProvider.sol"; -import "../../contracts/L1/tiers/TierProviderV1.sol"; +import "../../test/L1/TestTierProvider.sol"; contract UpgradeTierProvider is DeployCapability { uint256 public privateKey = vm.envUint("PRIVATE_KEY"); @@ -11,7 +10,7 @@ contract UpgradeTierProvider is DeployCapability { function run() external { vm.startBroadcast(privateKey); - address impl = address(new TierProviderV1()); + address impl = address(new TestTierProvider()); AddressManager(addressManager).setAddress(uint64(block.chainid), "tier_provider", impl); vm.stopBroadcast(); console2.log("> tier_provider@", addressManager); diff --git a/packages/protocol/test/L1/TaikoL1TestBase.sol b/packages/protocol/test/L1/TaikoL1TestBase.sol index 592e3be9ad..cba32ecf1b 100644 --- a/packages/protocol/test/L1/TaikoL1TestBase.sol +++ b/packages/protocol/test/L1/TaikoL1TestBase.sol @@ -14,7 +14,7 @@ abstract contract TaikoL1TestBase is TaikoTest { RiscZeroVerifier public rv; SgxVerifier public sv; GuardianProver public gp; - TierProviderV1 public cp; + TestTierProvider public cp; Bridge public bridge; bytes32 public GENESIS_BLOCK_HASH = keccak256("GENESIS_BLOCK_HASH"); @@ -74,13 +74,7 @@ abstract contract TaikoL1TestBase is TaikoTest { setupGuardianProverMultisig(); - cp = TierProviderV1( - deployProxy({ - name: "tier_provider", - impl: address(new TierProviderV1()), - data: abi.encodeCall(TierProviderV1.init, (address(0))) - }) - ); + cp = new TestTierProvider(); bridge = Bridge( payable( diff --git a/packages/protocol/test/L1/TaikoL1TestGroup1.t.sol b/packages/protocol/test/L1/TaikoL1TestGroup1.t.sol index d5adbcb343..3197e55517 100644 --- a/packages/protocol/test/L1/TaikoL1TestGroup1.t.sol +++ b/packages/protocol/test/L1/TaikoL1TestGroup1.t.sol @@ -15,7 +15,7 @@ contract TaikoL1TestGroup1 is TaikoL1TestGroupBase { giveEthAndTko(Alice, 10_000 ether, 1000 ether); giveEthAndTko(Bob, 10_000 ether, 1000 ether); giveEthAndTko(Taylor, 10_000 ether, 1000 ether); - ITierProvider.Tier memory tierOp = TierProviderV1(cp).getTier(LibTiers.TIER_OPTIMISTIC); + ITierProvider.Tier memory tierOp = TestTierProvider(cp).getTier(LibTiers.TIER_OPTIMISTIC); console2.log("====== Alice propose a block with bob as the assigned prover"); TaikoData.BlockMetadata memory meta = proposeBlock(Alice, Bob, ""); @@ -125,7 +125,7 @@ contract TaikoL1TestGroup1 is TaikoL1TestGroupBase { giveEthAndTko(Alice, 10_000 ether, 1000 ether); giveEthAndTko(Bob, 10_000 ether, 1000 ether); giveEthAndTko(Taylor, 10_000 ether, 1000 ether); - ITierProvider.Tier memory tierOp = TierProviderV1(cp).getTier(LibTiers.TIER_OPTIMISTIC); + ITierProvider.Tier memory tierOp = TestTierProvider(cp).getTier(LibTiers.TIER_OPTIMISTIC); console2.log("====== Alice propose a block with bob as the assigned prover"); TaikoData.BlockMetadata memory meta = proposeBlock(Alice, Bob, ""); @@ -224,7 +224,7 @@ contract TaikoL1TestGroup1 is TaikoL1TestGroupBase { giveEthAndTko(Alice, 10_000 ether, 1000 ether); giveEthAndTko(Bob, 10_000 ether, 1000 ether); giveEthAndTko(Taylor, 10_000 ether, 1000 ether); - ITierProvider.Tier memory tierOp = TierProviderV1(cp).getTier(LibTiers.TIER_OPTIMISTIC); + ITierProvider.Tier memory tierOp = TestTierProvider(cp).getTier(LibTiers.TIER_OPTIMISTIC); console2.log("====== Alice propose a block with bob as the assigned prover"); TaikoData.BlockMetadata memory meta = proposeBlock(Alice, Bob, ""); @@ -277,7 +277,7 @@ contract TaikoL1TestGroup1 is TaikoL1TestGroupBase { giveEthAndTko(Alice, 10_000 ether, 1000 ether); giveEthAndTko(Bob, 10_000 ether, 1000 ether); giveEthAndTko(Taylor, 10_000 ether, 1000 ether); - ITierProvider.Tier memory tierOp = TierProviderV1(cp).getTier(LibTiers.TIER_OPTIMISTIC); + ITierProvider.Tier memory tierOp = TestTierProvider(cp).getTier(LibTiers.TIER_OPTIMISTIC); console2.log("====== Alice propose a block with bob as the assigned prover"); TaikoData.BlockMetadata memory meta = proposeBlock(Alice, Bob, ""); @@ -331,7 +331,7 @@ contract TaikoL1TestGroup1 is TaikoL1TestGroupBase { giveEthAndTko(Bob, 10_000 ether, 1000 ether); giveEthAndTko(Taylor, 10_000 ether, 1000 ether); giveEthAndTko(William, 10_000 ether, 1000 ether); - ITierProvider.Tier memory tierOp = TierProviderV1(cp).getTier(LibTiers.TIER_OPTIMISTIC); + ITierProvider.Tier memory tierOp = TestTierProvider(cp).getTier(LibTiers.TIER_OPTIMISTIC); console2.log("====== Alice propose a block with bob as the assigned prover"); TaikoData.BlockMetadata memory meta = proposeBlock(Alice, Bob, ""); @@ -385,7 +385,7 @@ contract TaikoL1TestGroup1 is TaikoL1TestGroupBase { giveEthAndTko(Alice, 10_000 ether, 1000 ether); giveEthAndTko(Bob, 10_000 ether, 1000 ether); giveEthAndTko(Taylor, 10_000 ether, 1000 ether); - ITierProvider.Tier memory tierOp = TierProviderV1(cp).getTier(LibTiers.TIER_OPTIMISTIC); + ITierProvider.Tier memory tierOp = TestTierProvider(cp).getTier(LibTiers.TIER_OPTIMISTIC); console2.log("====== Alice propose a block with bob as the assigned prover"); TaikoData.BlockMetadata memory meta = proposeBlock(Alice, Bob, ""); diff --git a/packages/protocol/test/L1/TaikoL1TestGroup2.t.sol b/packages/protocol/test/L1/TaikoL1TestGroup2.t.sol index 7265f4139d..94f8a2f166 100644 --- a/packages/protocol/test/L1/TaikoL1TestGroup2.t.sol +++ b/packages/protocol/test/L1/TaikoL1TestGroup2.t.sol @@ -17,8 +17,8 @@ contract TaikoL1TestGroup2 is TaikoL1TestGroupBase { giveEthAndTko(Bob, 10_000 ether, 1000 ether); giveEthAndTko(Taylor, 10_000 ether, 1000 ether); giveEthAndTko(William, 10_000 ether, 1000 ether); - ITierProvider.Tier memory tierOp = TierProviderV1(cp).getTier(LibTiers.TIER_OPTIMISTIC); - ITierProvider.Tier memory tierSgx = TierProviderV1(cp).getTier(LibTiers.TIER_SGX); + ITierProvider.Tier memory tierOp = TestTierProvider(cp).getTier(LibTiers.TIER_OPTIMISTIC); + ITierProvider.Tier memory tierSgx = TestTierProvider(cp).getTier(LibTiers.TIER_SGX); console2.log("====== Alice propose a block with bob as the assigned prover"); TaikoData.BlockMetadata memory meta = proposeBlock(Alice, Bob, ""); @@ -128,8 +128,8 @@ contract TaikoL1TestGroup2 is TaikoL1TestGroupBase { giveEthAndTko(Bob, 10_000 ether, 1000 ether); giveEthAndTko(Taylor, 10_000 ether, 1000 ether); giveEthAndTko(William, 10_000 ether, 1000 ether); - ITierProvider.Tier memory tierOp = TierProviderV1(cp).getTier(LibTiers.TIER_OPTIMISTIC); - ITierProvider.Tier memory tierSgx = TierProviderV1(cp).getTier(LibTiers.TIER_SGX); + ITierProvider.Tier memory tierOp = TestTierProvider(cp).getTier(LibTiers.TIER_OPTIMISTIC); + ITierProvider.Tier memory tierSgx = TestTierProvider(cp).getTier(LibTiers.TIER_SGX); console2.log("====== Alice propose a block with bob as the assigned prover"); TaikoData.BlockMetadata memory meta = proposeBlock(Alice, Bob, ""); diff --git a/packages/protocol/test/L1/TaikoL1TestGroup3.t.sol b/packages/protocol/test/L1/TaikoL1TestGroup3.t.sol index e5eda09feb..ee181cda4a 100644 --- a/packages/protocol/test/L1/TaikoL1TestGroup3.t.sol +++ b/packages/protocol/test/L1/TaikoL1TestGroup3.t.sol @@ -18,8 +18,8 @@ contract TaikoL1TestGroup3 is TaikoL1TestGroupBase { giveEthAndTko(James, 10_000 ether, 1000 ether); giveEthAndTko(Taylor, 10_000 ether, 1000 ether); giveEthAndTko(William, 10_000 ether, 1000 ether); - ITierProvider.Tier memory tierOp = TierProviderV1(cp).getTier(LibTiers.TIER_OPTIMISTIC); - ITierProvider.Tier memory tierSgx = TierProviderV1(cp).getTier(LibTiers.TIER_SGX); + ITierProvider.Tier memory tierOp = TestTierProvider(cp).getTier(LibTiers.TIER_OPTIMISTIC); + ITierProvider.Tier memory tierSgx = TestTierProvider(cp).getTier(LibTiers.TIER_SGX); console2.log("====== Alice propose a block with bob as the assigned prover"); TaikoData.BlockMetadata memory meta = proposeBlock(Alice, Bob, ""); @@ -133,8 +133,8 @@ contract TaikoL1TestGroup3 is TaikoL1TestGroupBase { giveEthAndTko(James, 10_000 ether, 1000 ether); giveEthAndTko(Taylor, 10_000 ether, 1000 ether); giveEthAndTko(William, 10_000 ether, 1000 ether); - ITierProvider.Tier memory tierOp = TierProviderV1(cp).getTier(LibTiers.TIER_OPTIMISTIC); - ITierProvider.Tier memory tierSgx = TierProviderV1(cp).getTier(LibTiers.TIER_SGX); + ITierProvider.Tier memory tierOp = TestTierProvider(cp).getTier(LibTiers.TIER_OPTIMISTIC); + ITierProvider.Tier memory tierSgx = TestTierProvider(cp).getTier(LibTiers.TIER_SGX); console2.log("====== Alice propose a block with bob as the assigned prover"); TaikoData.BlockMetadata memory meta = proposeBlock(Alice, Bob, ""); diff --git a/packages/protocol/test/L1/TaikoL1TestGroup4.t.sol b/packages/protocol/test/L1/TaikoL1TestGroup4.t.sol index ee497768e2..4c0cf35c3a 100644 --- a/packages/protocol/test/L1/TaikoL1TestGroup4.t.sol +++ b/packages/protocol/test/L1/TaikoL1TestGroup4.t.sol @@ -16,8 +16,8 @@ contract TaikoL1TestGroup4 is TaikoL1TestGroupBase { giveEthAndTko(Alice, 10_000 ether, 1000 ether); giveEthAndTko(Bob, 10_000 ether, 1000 ether); giveEthAndTko(Taylor, 10_000 ether, 1000 ether); - ITierProvider.Tier memory tierOp = TierProviderV1(cp).getTier(LibTiers.TIER_OPTIMISTIC); - ITierProvider.Tier memory tierSgx = TierProviderV1(cp).getTier(LibTiers.TIER_SGX); + ITierProvider.Tier memory tierOp = TestTierProvider(cp).getTier(LibTiers.TIER_OPTIMISTIC); + ITierProvider.Tier memory tierSgx = TestTierProvider(cp).getTier(LibTiers.TIER_SGX); console2.log("====== Alice propose a block with bob as the assigned prover"); TaikoData.BlockMetadata memory meta = proposeBlock(Alice, Bob, ""); @@ -99,8 +99,8 @@ contract TaikoL1TestGroup4 is TaikoL1TestGroupBase { giveEthAndTko(Bob, 10_000 ether, 1000 ether); giveEthAndTko(David, 10_000 ether, 1000 ether); giveEthAndTko(Taylor, 10_000 ether, 1000 ether); - ITierProvider.Tier memory tierOp = TierProviderV1(cp).getTier(LibTiers.TIER_OPTIMISTIC); - ITierProvider.Tier memory tierSgx = TierProviderV1(cp).getTier(LibTiers.TIER_SGX); + ITierProvider.Tier memory tierOp = TestTierProvider(cp).getTier(LibTiers.TIER_OPTIMISTIC); + ITierProvider.Tier memory tierSgx = TestTierProvider(cp).getTier(LibTiers.TIER_SGX); console2.log("====== Alice propose a block with bob as the assigned prover"); TaikoData.BlockMetadata memory meta = proposeBlock(Alice, Bob, ""); diff --git a/packages/protocol/test/L1/TaikoL1TestGroup5.t.sol b/packages/protocol/test/L1/TaikoL1TestGroup5.t.sol index 5e06703984..7e263b24ca 100644 --- a/packages/protocol/test/L1/TaikoL1TestGroup5.t.sol +++ b/packages/protocol/test/L1/TaikoL1TestGroup5.t.sol @@ -141,7 +141,7 @@ contract TaikoL1TestGroup5 is TaikoL1TestGroupBase { giveEthAndTko(Alice, 10_000 ether, 1000 ether); giveEthAndTko(Bob, 10_000 ether, 1000 ether); giveEthAndTko(William, 10_000 ether, 1000 ether); - ITierProvider.Tier memory tierOp = TierProviderV1(cp).getTier(LibTiers.TIER_OPTIMISTIC); + ITierProvider.Tier memory tierOp = TestTierProvider(cp).getTier(LibTiers.TIER_OPTIMISTIC); console2.log("====== Alice propose a block with bob as the assigned prover"); TaikoData.BlockMetadata memory meta = proposeBlock(Alice, Bob, ""); @@ -233,7 +233,7 @@ contract TaikoL1TestGroup5 is TaikoL1TestGroupBase { giveEthAndTko(Bob, 10_000 ether, 1000 ether); giveEthAndTko(David, 10_000 ether, 1000 ether); giveEthAndTko(William, 10_000 ether, 1000 ether); - ITierProvider.Tier memory tierOp = TierProviderV1(cp).getTier(LibTiers.TIER_OPTIMISTIC); + ITierProvider.Tier memory tierOp = TestTierProvider(cp).getTier(LibTiers.TIER_OPTIMISTIC); console2.log("====== Alice propose a block with bob as the assigned prover"); TaikoData.BlockMetadata memory meta = proposeBlock(Alice, Bob, ""); diff --git a/packages/protocol/test/L1/TaikoL1TestGroup6.t.sol b/packages/protocol/test/L1/TaikoL1TestGroup6.t.sol index 9b8ca7a11e..012f7321f3 100644 --- a/packages/protocol/test/L1/TaikoL1TestGroup6.t.sol +++ b/packages/protocol/test/L1/TaikoL1TestGroup6.t.sol @@ -16,8 +16,8 @@ contract TaikoL1TestGroup6 is TaikoL1TestGroupBase { giveEthAndTko(Alice, 10_000 ether, 1000 ether); giveEthAndTko(Bob, 10_000 ether, 1000 ether); giveEthAndTko(Taylor, 10_000 ether, 1000 ether); - ITierProvider.Tier memory tierOp = TierProviderV1(cp).getTier(LibTiers.TIER_OPTIMISTIC); - ITierProvider.Tier memory tierSgx = TierProviderV1(cp).getTier(LibTiers.TIER_SGX); + ITierProvider.Tier memory tierOp = TestTierProvider(cp).getTier(LibTiers.TIER_OPTIMISTIC); + ITierProvider.Tier memory tierSgx = TestTierProvider(cp).getTier(LibTiers.TIER_SGX); console2.log("====== Alice propose a block with bob as the assigned prover"); TaikoData.BlockMetadata memory meta = proposeBlock(Alice, Bob, ""); diff --git a/packages/protocol/test/L1/TaikoL1TestGroup7.t.sol b/packages/protocol/test/L1/TaikoL1TestGroup7.t.sol index 6a23fff7ea..e2b9897e46 100644 --- a/packages/protocol/test/L1/TaikoL1TestGroup7.t.sol +++ b/packages/protocol/test/L1/TaikoL1TestGroup7.t.sol @@ -14,7 +14,7 @@ contract TaikoL1TestGroup7 is TaikoL1TestGroupBase { giveEthAndTko(Alice, 10_000 ether, 1000 ether); giveEthAndTko(Bob, 10_000 ether, 1000 ether); giveEthAndTko(Taylor, 10_000 ether, 1000 ether); - ITierProvider.Tier memory tierOp = TierProviderV1(cp).getTier(LibTiers.TIER_OPTIMISTIC); + ITierProvider.Tier memory tierOp = TestTierProvider(cp).getTier(LibTiers.TIER_OPTIMISTIC); console2.log("====== Alice propose a block with bob as the assigned prover"); TaikoData.BlockMetadata memory meta = proposeBlock(Alice, Bob, ""); @@ -54,7 +54,7 @@ contract TaikoL1TestGroup7 is TaikoL1TestGroupBase { giveEthAndTko(Bob, 10_000 ether, 1000 ether); giveEthAndTko(Taylor, 10_000 ether, 1000 ether); giveEthAndTko(William, 10_000 ether, 1000 ether); - ITierProvider.Tier memory tierOp = TierProviderV1(cp).getTier(LibTiers.TIER_OPTIMISTIC); + ITierProvider.Tier memory tierOp = TestTierProvider(cp).getTier(LibTiers.TIER_OPTIMISTIC); console2.log("====== Alice propose a block with bob as the assigned prover"); TaikoData.BlockMetadata memory meta = proposeBlock(Alice, Bob, ""); diff --git a/packages/protocol/contracts/L1/tiers/TierProviderV1.sol b/packages/protocol/test/L1/TestTierProvider.sol similarity index 83% rename from packages/protocol/contracts/L1/tiers/TierProviderV1.sol rename to packages/protocol/test/L1/TestTierProvider.sol index abf4f189ef..5e06482412 100644 --- a/packages/protocol/contracts/L1/tiers/TierProviderV1.sol +++ b/packages/protocol/test/L1/TestTierProvider.sol @@ -1,22 +1,15 @@ // SPDX-License-Identifier: MIT pragma solidity 0.8.24; -import "../../common/EssentialContract.sol"; -import "../../common/LibStrings.sol"; -import "./ITierProvider.sol"; +import "../../contracts/common/LibStrings.sol"; +import "../../contracts/L1/tiers/ITierProvider.sol"; -/// @title TierProviderV1 +/// @title TestTierProvider /// @dev Labeled in AddressResolver as "tier_provider" /// @custom:security-contact security@taiko.xyz -contract TierProviderV1 is EssentialContract, ITierProvider { +contract TestTierProvider is ITierProvider { uint256[50] private __gap; - /// @notice Initializes the contract. - /// @param _owner The owner of this contract. msg.sender will be used if this value is zero. - function init(address _owner) external initializer { - __Essential_init(_owner); - } - /// @inheritdoc ITierProvider function getTier(uint16 _tierId) public pure override returns (ITierProvider.Tier memory) { if (_tierId == LibTiers.TIER_OPTIMISTIC) { diff --git a/packages/protocol/test/TaikoTest.sol b/packages/protocol/test/TaikoTest.sol index a9a464abe7..025d966619 100644 --- a/packages/protocol/test/TaikoTest.sol +++ b/packages/protocol/test/TaikoTest.sol @@ -17,7 +17,7 @@ import "../contracts/tko/TaikoToken.sol"; import "../contracts/L1/TaikoL1.sol"; import "../contracts/verifiers/SgxVerifier.sol"; import "../contracts/verifiers/RiscZeroVerifier.sol"; -import "../contracts/L1/tiers/TierProviderV1.sol"; +import "../test/L1/TestTierProvider.sol"; import "../contracts/L1/hooks/AssignmentHook.sol"; import "../contracts/L1/provers/GuardianProver.sol"; import "../contracts/bridge/QuotaManager.sol"; diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index ac0dd1a7d3..fc023c7cd6 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -26,19 +26,19 @@ importers: version: 2.26.1(debug@4.3.4) '@wagmi/connectors': specifier: ^4.3.1 - version: 4.3.5(@wagmi/core@2.9.3(bufferutil@4.0.8)(react@18.3.1)(typescript@5.4.5)(viem@2.10.2(bufferutil@4.0.8)(typescript@5.4.5)(zod@3.23.8))(zod@3.23.8))(bufferutil@4.0.8)(encoding@0.1.13)(react-i18next@13.5.0(i18next@22.5.1)(react-native@0.74.1(@babel/core@7.24.5)(@babel/preset-env@7.24.5(@babel/core@7.24.5))(bufferutil@4.0.8)(encoding@0.1.13)(react@18.3.1))(react@18.3.1))(react-native@0.74.1(@babel/core@7.24.5)(@babel/preset-env@7.24.5(@babel/core@7.24.5))(bufferutil@4.0.8)(encoding@0.1.13)(react@18.3.1))(react@18.3.1)(rollup@4.17.2)(typescript@5.4.5)(viem@2.10.2(bufferutil@4.0.8)(typescript@5.4.5)(zod@3.23.8))(zod@3.23.8) + version: 4.3.5(@wagmi/core@2.9.3(bufferutil@4.0.8)(react@18.3.1)(typescript@5.4.5)(utf-8-validate@6.0.3)(viem@2.10.2(bufferutil@4.0.8)(typescript@5.4.5)(utf-8-validate@6.0.3)(zod@3.23.8))(zod@3.23.8))(bufferutil@4.0.8)(encoding@0.1.13)(react-i18next@13.5.0(i18next@22.5.1)(react-native@0.74.1(@babel/core@7.24.5)(@babel/preset-env@7.24.5(@babel/core@7.24.5))(bufferutil@4.0.8)(encoding@0.1.13)(react@18.3.1)(utf-8-validate@6.0.3))(react@18.3.1))(react-native@0.74.1(@babel/core@7.24.5)(@babel/preset-env@7.24.5(@babel/core@7.24.5))(bufferutil@4.0.8)(encoding@0.1.13)(react@18.3.1)(utf-8-validate@6.0.3))(react@18.3.1)(rollup@4.17.2)(typescript@5.4.5)(utf-8-validate@6.0.3)(viem@2.10.2(bufferutil@4.0.8)(typescript@5.4.5)(utf-8-validate@6.0.3)(zod@3.23.8))(zod@3.23.8) '@wagmi/core': specifier: ^2.8.1 version: 2.9.3(bufferutil@4.0.8)(react@18.3.1)(typescript@5.4.5)(utf-8-validate@6.0.3)(viem@2.10.2(bufferutil@4.0.8)(typescript@5.4.5)(utf-8-validate@6.0.3)(zod@3.23.8))(zod@3.23.8) '@walletconnect/ethereum-provider': specifier: ^2.12.2 - version: 2.13.0(bufferutil@4.0.8)(encoding@0.1.13)(react@18.3.1) + version: 2.13.0(bufferutil@4.0.8)(encoding@0.1.13)(react@18.3.1)(utf-8-validate@6.0.3) '@walletconnect/modal': specifier: ^2.6.2 version: 2.6.2(react@18.3.1) '@web3modal/wagmi': specifier: ^4.1.11 - version: 4.1.11(@wagmi/connectors@4.3.5(@wagmi/core@2.9.3(bufferutil@4.0.8)(react@18.3.1)(typescript@5.4.5)(viem@2.10.2(bufferutil@4.0.8)(typescript@5.4.5)(zod@3.23.8))(zod@3.23.8))(bufferutil@4.0.8)(encoding@0.1.13)(react-i18next@13.5.0(i18next@22.5.1)(react-native@0.74.1(@babel/core@7.24.5)(@babel/preset-env@7.24.5(@babel/core@7.24.5))(bufferutil@4.0.8)(encoding@0.1.13)(react@18.3.1))(react@18.3.1))(react-native@0.74.1(@babel/core@7.24.5)(@babel/preset-env@7.24.5(@babel/core@7.24.5))(bufferutil@4.0.8)(encoding@0.1.13)(react@18.3.1))(react@18.3.1)(rollup@4.17.2)(typescript@5.4.5)(viem@2.10.2(bufferutil@4.0.8)(typescript@5.4.5)(zod@3.23.8))(zod@3.23.8))(@wagmi/core@2.9.3(bufferutil@4.0.8)(react@18.3.1)(typescript@5.4.5)(viem@2.10.2(bufferutil@4.0.8)(typescript@5.4.5)(zod@3.23.8))(zod@3.23.8))(react@18.3.1)(viem@2.10.2(bufferutil@4.0.8)(typescript@5.4.5)(zod@3.23.8)) + version: 4.1.11(@wagmi/connectors@4.3.5(@wagmi/core@2.9.3(bufferutil@4.0.8)(react@18.3.1)(typescript@5.4.5)(utf-8-validate@6.0.3)(viem@2.10.2(bufferutil@4.0.8)(typescript@5.4.5)(utf-8-validate@6.0.3)(zod@3.23.8))(zod@3.23.8))(bufferutil@4.0.8)(encoding@0.1.13)(react-i18next@13.5.0(i18next@22.5.1)(react-native@0.74.1(@babel/core@7.24.5)(@babel/preset-env@7.24.5(@babel/core@7.24.5))(bufferutil@4.0.8)(encoding@0.1.13)(react@18.3.1)(utf-8-validate@6.0.3))(react@18.3.1))(react-native@0.74.1(@babel/core@7.24.5)(@babel/preset-env@7.24.5(@babel/core@7.24.5))(bufferutil@4.0.8)(encoding@0.1.13)(react@18.3.1)(utf-8-validate@6.0.3))(react@18.3.1)(rollup@4.17.2)(typescript@5.4.5)(utf-8-validate@6.0.3)(viem@2.10.2(bufferutil@4.0.8)(typescript@5.4.5)(utf-8-validate@6.0.3)(zod@3.23.8))(zod@3.23.8))(@wagmi/core@2.9.3(bufferutil@4.0.8)(react@18.3.1)(typescript@5.4.5)(utf-8-validate@6.0.3)(viem@2.10.2(bufferutil@4.0.8)(typescript@5.4.5)(utf-8-validate@6.0.3)(zod@3.23.8))(zod@3.23.8))(react@18.3.1)(viem@2.10.2(bufferutil@4.0.8)(typescript@5.4.5)(utf-8-validate@6.0.3)(zod@3.23.8)) '@zerodevx/svelte-toast': specifier: ^0.9.5 version: 0.9.5(svelte@4.2.16) @@ -93,10 +93,10 @@ importers: version: 7.8.0(eslint@8.57.0)(typescript@5.4.5) '@vitest/coverage-v8': specifier: ^1.4.0 - version: 1.6.0(vitest@1.6.0(@types/node@20.12.11)(jsdom@24.0.0(bufferutil@4.0.8))(terser@5.31.0)) + version: 1.6.0(vitest@1.6.0(@types/node@20.12.11)(jsdom@24.0.0(bufferutil@4.0.8)(utf-8-validate@6.0.3))(terser@5.31.0)) '@wagmi/cli': specifier: ^2.1.4 - version: 2.1.4(bufferutil@4.0.8)(typescript@5.4.5) + version: 2.1.4(bufferutil@4.0.8)(typescript@5.4.5)(utf-8-validate@6.0.3) abitype: specifier: ^1.0.2 version: 1.0.2(typescript@5.4.5)(zod@3.23.8) @@ -171,10 +171,10 @@ importers: version: 1.6.0(@types/node@20.12.11)(jsdom@24.0.0(bufferutil@4.0.8)(utf-8-validate@6.0.3))(terser@5.31.0) vitest-fetch-mock: specifier: ^0.2.2 - version: 0.2.2(encoding@0.1.13)(vitest@1.6.0(@types/node@20.12.11)(jsdom@24.0.0(bufferutil@4.0.8))(terser@5.31.0)) + version: 0.2.2(encoding@0.1.13)(vitest@1.6.0(@types/node@20.12.11)(jsdom@24.0.0(bufferutil@4.0.8)(utf-8-validate@6.0.3))(terser@5.31.0)) vitest-mock-extended: specifier: 1.3.1 - version: 1.3.1(typescript@5.4.5)(vitest@1.6.0(@types/node@20.12.11)(jsdom@24.0.0(bufferutil@4.0.8))(terser@5.31.0)) + version: 1.3.1(typescript@5.4.5)(vitest@1.6.0(@types/node@20.12.11)(jsdom@24.0.0(bufferutil@4.0.8)(utf-8-validate@6.0.3))(terser@5.31.0)) packages/docs-site: dependencies: @@ -359,13 +359,13 @@ importers: version: 6.1.1(eslint@8.57.0) ethers: specifier: ^5.7.2 - version: 5.7.2(bufferutil@4.0.8) + version: 5.7.2(bufferutil@4.0.8)(utf-8-validate@6.0.3) solc: specifier: 0.8.24 version: 0.8.24 solhint: - specifier: ^4.5.4 - version: 4.5.4(typescript@5.4.5) + specifier: ^5.0.1 + version: 5.0.1(typescript@5.4.5) ts-node: specifier: ^10.9.2 version: 10.9.2(@types/node@20.12.11)(typescript@5.4.5) @@ -431,7 +431,7 @@ importers: version: 6.1.1(eslint@8.57.0) ethers: specifier: ^5.7.2 - version: 5.7.2(bufferutil@4.0.8) + version: 5.7.2(bufferutil@4.0.8)(utf-8-validate@6.0.3) solc: specifier: 0.8.24 version: 0.8.24 @@ -521,7 +521,7 @@ importers: version: 6.1.1(eslint@8.57.0) ethers: specifier: ^5.7.2 - version: 5.7.2(bufferutil@4.0.8) + version: 5.7.2(bufferutil@4.0.8)(utf-8-validate@6.0.3) solc: specifier: 0.8.24 version: 0.8.24 @@ -542,10 +542,10 @@ importers: version: 1.0.6 '@wagmi/cli': specifier: ^2.1.4 - version: 2.1.4(bufferutil@4.0.8)(typescript@5.4.5) + version: 2.1.4(bufferutil@4.0.8)(typescript@5.4.5)(utf-8-validate@6.0.3) '@wagmi/connectors': specifier: ^4.1.18 - version: 4.3.5(@wagmi/core@2.9.3(bufferutil@4.0.8)(react@18.3.1)(typescript@5.4.5)(viem@2.10.2(bufferutil@4.0.8)(typescript@5.4.5)(zod@3.23.8))(zod@3.23.8))(bufferutil@4.0.8)(encoding@0.1.13)(react-i18next@13.5.0(i18next@22.5.1)(react-native@0.74.1(@babel/core@7.24.5)(@babel/preset-env@7.24.5(@babel/core@7.24.5))(bufferutil@4.0.8)(encoding@0.1.13)(react@18.3.1))(react@18.3.1))(react-native@0.74.1(@babel/core@7.24.5)(@babel/preset-env@7.24.5(@babel/core@7.24.5))(bufferutil@4.0.8)(encoding@0.1.13)(react@18.3.1))(react@18.3.1)(rollup@4.17.2)(typescript@5.4.5)(viem@2.10.2(bufferutil@4.0.8)(typescript@5.4.5)(zod@3.23.8))(zod@3.23.8) + version: 4.3.5(@wagmi/core@2.9.3(bufferutil@4.0.8)(react@18.3.1)(typescript@5.4.5)(utf-8-validate@6.0.3)(viem@2.10.2(bufferutil@4.0.8)(typescript@5.4.5)(utf-8-validate@6.0.3)(zod@3.23.8))(zod@3.23.8))(bufferutil@4.0.8)(encoding@0.1.13)(react-i18next@13.5.0(i18next@22.5.1)(react-native@0.74.1(@babel/core@7.24.5)(@babel/preset-env@7.24.5(@babel/core@7.24.5))(bufferutil@4.0.8)(encoding@0.1.13)(react@18.3.1)(utf-8-validate@6.0.3))(react@18.3.1))(react-native@0.74.1(@babel/core@7.24.5)(@babel/preset-env@7.24.5(@babel/core@7.24.5))(bufferutil@4.0.8)(encoding@0.1.13)(react@18.3.1)(utf-8-validate@6.0.3))(react@18.3.1)(rollup@4.17.2)(typescript@5.4.5)(utf-8-validate@6.0.3)(viem@2.10.2(bufferutil@4.0.8)(typescript@5.4.5)(utf-8-validate@6.0.3)(zod@3.23.8))(zod@3.23.8) '@wagmi/core': specifier: ^2.8.0 version: 2.9.3(bufferutil@4.0.8)(react@18.3.1)(typescript@5.4.5)(utf-8-validate@6.0.3)(viem@2.10.2(bufferutil@4.0.8)(typescript@5.4.5)(utf-8-validate@6.0.3)(zod@3.23.8))(zod@3.23.8) @@ -557,7 +557,7 @@ importers: version: 4.1.11 '@web3modal/wagmi': specifier: ^4.1.1 - version: 4.1.11(@wagmi/connectors@4.3.5(@wagmi/core@2.9.3(bufferutil@4.0.8)(react@18.3.1)(typescript@5.4.5)(viem@2.10.2(bufferutil@4.0.8)(typescript@5.4.5)(zod@3.23.8))(zod@3.23.8))(bufferutil@4.0.8)(encoding@0.1.13)(react-i18next@13.5.0(i18next@22.5.1)(react-native@0.74.1(@babel/core@7.24.5)(@babel/preset-env@7.24.5(@babel/core@7.24.5))(bufferutil@4.0.8)(encoding@0.1.13)(react@18.3.1))(react@18.3.1))(react-native@0.74.1(@babel/core@7.24.5)(@babel/preset-env@7.24.5(@babel/core@7.24.5))(bufferutil@4.0.8)(encoding@0.1.13)(react@18.3.1))(react@18.3.1)(rollup@4.17.2)(typescript@5.4.5)(viem@2.10.2(bufferutil@4.0.8)(typescript@5.4.5)(zod@3.23.8))(zod@3.23.8))(@wagmi/core@2.9.3(bufferutil@4.0.8)(react@18.3.1)(typescript@5.4.5)(viem@2.10.2(bufferutil@4.0.8)(typescript@5.4.5)(zod@3.23.8))(zod@3.23.8))(react@18.3.1)(viem@2.10.2(bufferutil@4.0.8)(typescript@5.4.5)(zod@3.23.8)) + version: 4.1.11(@wagmi/connectors@4.3.5(@wagmi/core@2.9.3(bufferutil@4.0.8)(react@18.3.1)(typescript@5.4.5)(utf-8-validate@6.0.3)(viem@2.10.2(bufferutil@4.0.8)(typescript@5.4.5)(utf-8-validate@6.0.3)(zod@3.23.8))(zod@3.23.8))(bufferutil@4.0.8)(encoding@0.1.13)(react-i18next@13.5.0(i18next@22.5.1)(react-native@0.74.1(@babel/core@7.24.5)(@babel/preset-env@7.24.5(@babel/core@7.24.5))(bufferutil@4.0.8)(encoding@0.1.13)(react@18.3.1)(utf-8-validate@6.0.3))(react@18.3.1))(react-native@0.74.1(@babel/core@7.24.5)(@babel/preset-env@7.24.5(@babel/core@7.24.5))(bufferutil@4.0.8)(encoding@0.1.13)(react@18.3.1)(utf-8-validate@6.0.3))(react@18.3.1)(rollup@4.17.2)(typescript@5.4.5)(utf-8-validate@6.0.3)(viem@2.10.2(bufferutil@4.0.8)(typescript@5.4.5)(utf-8-validate@6.0.3)(zod@3.23.8))(zod@3.23.8))(@wagmi/core@2.9.3(bufferutil@4.0.8)(react@18.3.1)(typescript@5.4.5)(utf-8-validate@6.0.3)(viem@2.10.2(bufferutil@4.0.8)(typescript@5.4.5)(utf-8-validate@6.0.3)(zod@3.23.8))(zod@3.23.8))(react@18.3.1)(viem@2.10.2(bufferutil@4.0.8)(typescript@5.4.5)(utf-8-validate@6.0.3)(zod@3.23.8)) '@zerodevx/svelte-toast': specifier: ^0.9.5 version: 0.9.5(svelte@4.2.16) @@ -8040,6 +8040,10 @@ packages: resolution: {integrity: sha512-Cu1XiJXub2q1eCr9kkJ9VPv1sGcmj3V7Zb76B0CoezDOB9bu3DxKIFFH7ggCl9fWpEPD6xBmRLfZrYijkVmujQ==} hasBin: true + solhint@5.0.1: + resolution: {integrity: sha512-QeQLS9HGCnIiibt+xiOa/+MuP7BWz9N7C5+Mj9pLHshdkNhuo3AzCpWmjfWVZBUuwIUO3YyCRVIcYLR3YOKGfg==} + hasBin: true + solidity-stringutils@https://codeload.github.com/Arachnid/solidity-stringutils/tar.gz/4b2fcc43fa0426e19ce88b1f1ec16f5903a2e461: resolution: {tarball: https://codeload.github.com/Arachnid/solidity-stringutils/tar.gz/4b2fcc43fa0426e19ce88b1f1ec16f5903a2e461} version: 0.0.0 @@ -10854,7 +10858,7 @@ snapshots: dependencies: '@ethersproject/logger': 5.7.0 - '@ethersproject/providers@5.7.2(bufferutil@4.0.8)': + '@ethersproject/providers@5.7.2(bufferutil@4.0.8)(utf-8-validate@6.0.3)': dependencies: '@ethersproject/abstract-provider': 5.7.0 '@ethersproject/abstract-signer': 5.7.0 @@ -10875,7 +10879,7 @@ snapshots: '@ethersproject/transactions': 5.7.0 '@ethersproject/web': 5.7.1 bech32: 1.1.4 - ws: 7.4.6(bufferutil@4.0.8) + ws: 7.4.6(bufferutil@4.0.8)(utf-8-validate@6.0.3) transitivePeerDependencies: - bufferutil - utf-8-validate @@ -11386,7 +11390,7 @@ snapshots: '@metamask/safe-event-emitter@3.1.1': {} - '@metamask/sdk-communication-layer@0.18.5(cross-fetch@4.0.0(encoding@0.1.13))(eciesjs@0.3.18)(eventemitter2@6.4.9)(readable-stream@3.6.2)(socket.io-client@4.7.5(bufferutil@4.0.8))': + '@metamask/sdk-communication-layer@0.18.5(cross-fetch@4.0.0(encoding@0.1.13))(eciesjs@0.3.18)(eventemitter2@6.4.9)(readable-stream@3.6.2)(socket.io-client@4.7.5(bufferutil@4.0.8)(utf-8-validate@6.0.3))': dependencies: bufferutil: 4.0.8 cross-fetch: 4.0.0(encoding@0.1.13) @@ -11395,27 +11399,27 @@ snapshots: eciesjs: 0.3.18 eventemitter2: 6.4.9 readable-stream: 3.6.2 - socket.io-client: 4.7.5(bufferutil@4.0.8) + socket.io-client: 4.7.5(bufferutil@4.0.8)(utf-8-validate@6.0.3) utf-8-validate: 6.0.3 uuid: 8.3.2 transitivePeerDependencies: - supports-color - '@metamask/sdk-install-modal-web@0.18.5(i18next@22.5.1)(react-i18next@13.5.0(i18next@22.5.1)(react-native@0.74.1(@babel/core@7.24.5)(@babel/preset-env@7.24.5(@babel/core@7.24.5))(bufferutil@4.0.8)(encoding@0.1.13)(react@18.3.1))(react@18.3.1))(react-native@0.74.1(@babel/core@7.24.5)(@babel/preset-env@7.24.5(@babel/core@7.24.5))(bufferutil@4.0.8)(encoding@0.1.13)(react@18.3.1))(react@18.3.1)': + '@metamask/sdk-install-modal-web@0.18.5(i18next@22.5.1)(react-i18next@13.5.0(i18next@22.5.1)(react-native@0.74.1(@babel/core@7.24.5)(@babel/preset-env@7.24.5(@babel/core@7.24.5))(bufferutil@4.0.8)(encoding@0.1.13)(react@18.3.1)(utf-8-validate@6.0.3))(react@18.3.1))(react-native@0.74.1(@babel/core@7.24.5)(@babel/preset-env@7.24.5(@babel/core@7.24.5))(bufferutil@4.0.8)(encoding@0.1.13)(react@18.3.1)(utf-8-validate@6.0.3))(react@18.3.1)': dependencies: i18next: 22.5.1 qr-code-styling: 1.6.0-rc.1 - react-i18next: 13.5.0(i18next@22.5.1)(react-native@0.74.1(@babel/core@7.24.5)(@babel/preset-env@7.24.5(@babel/core@7.24.5))(bufferutil@4.0.8)(encoding@0.1.13)(react@18.3.1))(react@18.3.1) + react-i18next: 13.5.0(i18next@22.5.1)(react-native@0.74.1(@babel/core@7.24.5)(@babel/preset-env@7.24.5(@babel/core@7.24.5))(bufferutil@4.0.8)(encoding@0.1.13)(react@18.3.1)(utf-8-validate@6.0.3))(react@18.3.1) optionalDependencies: react: 18.3.1 - react-native: 0.74.1(@babel/core@7.24.5)(@babel/preset-env@7.24.5(@babel/core@7.24.5))(bufferutil@4.0.8)(encoding@0.1.13)(react@18.3.1) + react-native: 0.74.1(@babel/core@7.24.5)(@babel/preset-env@7.24.5(@babel/core@7.24.5))(bufferutil@4.0.8)(encoding@0.1.13)(react@18.3.1)(utf-8-validate@6.0.3) - '@metamask/sdk@0.18.6(bufferutil@4.0.8)(encoding@0.1.13)(react-i18next@13.5.0(i18next@22.5.1)(react-native@0.74.1(@babel/core@7.24.5)(@babel/preset-env@7.24.5(@babel/core@7.24.5))(bufferutil@4.0.8)(encoding@0.1.13)(react@18.3.1))(react@18.3.1))(react-native@0.74.1(@babel/core@7.24.5)(@babel/preset-env@7.24.5(@babel/core@7.24.5))(bufferutil@4.0.8)(encoding@0.1.13)(react@18.3.1))(react@18.3.1)(rollup@4.17.2)': + '@metamask/sdk@0.18.6(bufferutil@4.0.8)(encoding@0.1.13)(react-i18next@13.5.0(i18next@22.5.1)(react-native@0.74.1(@babel/core@7.24.5)(@babel/preset-env@7.24.5(@babel/core@7.24.5))(bufferutil@4.0.8)(encoding@0.1.13)(react@18.3.1)(utf-8-validate@6.0.3))(react@18.3.1))(react-native@0.74.1(@babel/core@7.24.5)(@babel/preset-env@7.24.5(@babel/core@7.24.5))(bufferutil@4.0.8)(encoding@0.1.13)(react@18.3.1)(utf-8-validate@6.0.3))(react@18.3.1)(rollup@4.17.2)(utf-8-validate@6.0.3)': dependencies: '@metamask/onboarding': 1.0.1 '@metamask/providers': 15.0.0 - '@metamask/sdk-communication-layer': 0.18.5(cross-fetch@4.0.0(encoding@0.1.13))(eciesjs@0.3.18)(eventemitter2@6.4.9)(readable-stream@3.6.2)(socket.io-client@4.7.5(bufferutil@4.0.8)) - '@metamask/sdk-install-modal-web': 0.18.5(i18next@22.5.1)(react-i18next@13.5.0(i18next@22.5.1)(react-native@0.74.1(@babel/core@7.24.5)(@babel/preset-env@7.24.5(@babel/core@7.24.5))(bufferutil@4.0.8)(encoding@0.1.13)(react@18.3.1))(react@18.3.1))(react-native@0.74.1(@babel/core@7.24.5)(@babel/preset-env@7.24.5(@babel/core@7.24.5))(bufferutil@4.0.8)(encoding@0.1.13)(react@18.3.1))(react@18.3.1) + '@metamask/sdk-communication-layer': 0.18.5(cross-fetch@4.0.0(encoding@0.1.13))(eciesjs@0.3.18)(eventemitter2@6.4.9)(readable-stream@3.6.2)(socket.io-client@4.7.5(bufferutil@4.0.8)(utf-8-validate@6.0.3)) + '@metamask/sdk-install-modal-web': 0.18.5(i18next@22.5.1)(react-i18next@13.5.0(i18next@22.5.1)(react-native@0.74.1(@babel/core@7.24.5)(@babel/preset-env@7.24.5(@babel/core@7.24.5))(bufferutil@4.0.8)(encoding@0.1.13)(react@18.3.1)(utf-8-validate@6.0.3))(react@18.3.1))(react-native@0.74.1(@babel/core@7.24.5)(@babel/preset-env@7.24.5(@babel/core@7.24.5))(bufferutil@4.0.8)(encoding@0.1.13)(react@18.3.1)(utf-8-validate@6.0.3))(react@18.3.1) '@types/dom-screen-wake-lock': 1.0.3 bowser: 2.11.0 cross-fetch: 4.0.0(encoding@0.1.13) @@ -11428,15 +11432,15 @@ snapshots: obj-multiplex: 1.0.0 pump: 3.0.0 qrcode-terminal-nooctal: 0.12.1 - react-native-webview: 11.26.1(react-native@0.74.1(@babel/core@7.24.5)(@babel/preset-env@7.24.5(@babel/core@7.24.5))(bufferutil@4.0.8)(encoding@0.1.13)(react@18.3.1))(react@18.3.1) + react-native-webview: 11.26.1(react-native@0.74.1(@babel/core@7.24.5)(@babel/preset-env@7.24.5(@babel/core@7.24.5))(bufferutil@4.0.8)(encoding@0.1.13)(react@18.3.1)(utf-8-validate@6.0.3))(react@18.3.1) readable-stream: 3.6.2 rollup-plugin-visualizer: 5.12.0(rollup@4.17.2) - socket.io-client: 4.7.5(bufferutil@4.0.8) + socket.io-client: 4.7.5(bufferutil@4.0.8)(utf-8-validate@6.0.3) util: 0.12.5 uuid: 8.3.2 optionalDependencies: react: 18.3.1 - react-native: 0.74.1(@babel/core@7.24.5)(@babel/preset-env@7.24.5(@babel/core@7.24.5))(bufferutil@4.0.8)(encoding@0.1.13)(react@18.3.1) + react-native: 0.74.1(@babel/core@7.24.5)(@babel/preset-env@7.24.5(@babel/core@7.24.5))(bufferutil@4.0.8)(encoding@0.1.13)(react@18.3.1)(utf-8-validate@6.0.3) transitivePeerDependencies: - bufferutil - encoding @@ -11872,7 +11876,7 @@ snapshots: hermes-profile-transformer: 0.0.6 node-stream-zip: 1.15.0 ora: 5.4.1 - semver: 7.6.1 + semver: 7.6.2 strip-ansi: 5.2.0 wcwidth: 1.0.1 yaml: 2.4.2 @@ -11916,7 +11920,7 @@ snapshots: transitivePeerDependencies: - encoding - '@react-native-community/cli-server-api@13.6.6(bufferutil@4.0.8)(encoding@0.1.13)': + '@react-native-community/cli-server-api@13.6.6(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@6.0.3)': dependencies: '@react-native-community/cli-debugger-ui': 13.6.6 '@react-native-community/cli-tools': 13.6.6(encoding@0.1.13) @@ -11926,7 +11930,7 @@ snapshots: nocache: 3.0.4 pretty-format: 26.6.2 serve-static: 1.15.0 - ws: 6.2.2(bufferutil@4.0.8) + ws: 6.2.2(bufferutil@4.0.8)(utf-8-validate@6.0.3) transitivePeerDependencies: - bufferutil - encoding @@ -11943,7 +11947,7 @@ snapshots: node-fetch: 2.7.0(encoding@0.1.13) open: 6.4.0 ora: 5.4.1 - semver: 7.6.1 + semver: 7.6.2 shell-quote: 1.8.1 sudo-prompt: 9.2.1 transitivePeerDependencies: @@ -11953,14 +11957,14 @@ snapshots: dependencies: joi: 17.13.1 - '@react-native-community/cli@13.6.6(bufferutil@4.0.8)(encoding@0.1.13)': + '@react-native-community/cli@13.6.6(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@6.0.3)': dependencies: '@react-native-community/cli-clean': 13.6.6(encoding@0.1.13) '@react-native-community/cli-config': 13.6.6(encoding@0.1.13) '@react-native-community/cli-debugger-ui': 13.6.6 '@react-native-community/cli-doctor': 13.6.6(encoding@0.1.13) '@react-native-community/cli-hermes': 13.6.6(encoding@0.1.13) - '@react-native-community/cli-server-api': 13.6.6(bufferutil@4.0.8)(encoding@0.1.13) + '@react-native-community/cli-server-api': 13.6.6(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@6.0.3) '@react-native-community/cli-tools': 13.6.6(encoding@0.1.13) '@react-native-community/cli-types': 13.6.6 chalk: 4.1.2 @@ -11971,7 +11975,7 @@ snapshots: fs-extra: 8.1.0 graceful-fs: 4.2.11 prompts: 2.4.2 - semver: 7.6.1 + semver: 7.6.2 transitivePeerDependencies: - bufferutil - encoding @@ -12049,16 +12053,16 @@ snapshots: transitivePeerDependencies: - supports-color - '@react-native/community-cli-plugin@0.74.83(@babel/core@7.24.5)(@babel/preset-env@7.24.5(@babel/core@7.24.5))(bufferutil@4.0.8)(encoding@0.1.13)': + '@react-native/community-cli-plugin@0.74.83(@babel/core@7.24.5)(@babel/preset-env@7.24.5(@babel/core@7.24.5))(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@6.0.3)': dependencies: - '@react-native-community/cli-server-api': 13.6.6(bufferutil@4.0.8)(encoding@0.1.13) + '@react-native-community/cli-server-api': 13.6.6(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@6.0.3) '@react-native-community/cli-tools': 13.6.6(encoding@0.1.13) - '@react-native/dev-middleware': 0.74.83(bufferutil@4.0.8)(encoding@0.1.13) + '@react-native/dev-middleware': 0.74.83(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@6.0.3) '@react-native/metro-babel-transformer': 0.74.83(@babel/core@7.24.5)(@babel/preset-env@7.24.5(@babel/core@7.24.5)) chalk: 4.1.2 execa: 5.1.1 - metro: 0.80.9(bufferutil@4.0.8)(encoding@0.1.13) - metro-config: 0.80.9(bufferutil@4.0.8)(encoding@0.1.13) + metro: 0.80.9(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@6.0.3) + metro-config: 0.80.9(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@6.0.3) metro-core: 0.80.9 node-fetch: 2.7.0(encoding@0.1.13) querystring: 0.2.1 @@ -12073,7 +12077,7 @@ snapshots: '@react-native/debugger-frontend@0.74.83': {} - '@react-native/dev-middleware@0.74.83(bufferutil@4.0.8)(encoding@0.1.13)': + '@react-native/dev-middleware@0.74.83(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@6.0.3)': dependencies: '@isaacs/ttlcache': 1.4.1 '@react-native/debugger-frontend': 0.74.83 @@ -12087,7 +12091,7 @@ snapshots: selfsigned: 2.4.1 serve-static: 1.15.0 temp-dir: 2.0.0 - ws: 6.2.2(bufferutil@4.0.8) + ws: 6.2.2(bufferutil@4.0.8)(utf-8-validate@6.0.3) transitivePeerDependencies: - bufferutil - encoding @@ -12110,12 +12114,12 @@ snapshots: '@react-native/normalize-colors@0.74.83': {} - '@react-native/virtualized-lists@0.74.83(react-native@0.74.1(@babel/core@7.24.5)(@babel/preset-env@7.24.5(@babel/core@7.24.5))(bufferutil@4.0.8)(encoding@0.1.13)(react@18.3.1))(react@18.3.1)': + '@react-native/virtualized-lists@0.74.83(react-native@0.74.1(@babel/core@7.24.5)(@babel/preset-env@7.24.5(@babel/core@7.24.5))(bufferutil@4.0.8)(encoding@0.1.13)(react@18.3.1)(utf-8-validate@6.0.3))(react@18.3.1)': dependencies: invariant: 2.2.4 nullthrows: 1.1.1 react: 18.3.1 - react-native: 0.74.1(@babel/core@7.24.5)(@babel/preset-env@7.24.5(@babel/core@7.24.5))(bufferutil@4.0.8)(encoding@0.1.13)(react@18.3.1) + react-native: 0.74.1(@babel/core@7.24.5)(@babel/preset-env@7.24.5(@babel/core@7.24.5))(bufferutil@4.0.8)(encoding@0.1.13)(react@18.3.1)(utf-8-validate@6.0.3) '@readme/better-ajv-errors@1.6.0(ajv@8.13.0)': dependencies: @@ -12206,9 +12210,9 @@ snapshots: '@rollup/rollup-win32-x64-msvc@4.17.2': optional: true - '@safe-global/safe-apps-provider@0.18.1(bufferutil@4.0.8)(typescript@5.4.5)(zod@3.23.8)': + '@safe-global/safe-apps-provider@0.18.1(bufferutil@4.0.8)(typescript@5.4.5)(utf-8-validate@6.0.3)(zod@3.23.8)': dependencies: - '@safe-global/safe-apps-sdk': 8.1.0(bufferutil@4.0.8)(typescript@5.4.5)(zod@3.23.8) + '@safe-global/safe-apps-sdk': 8.1.0(bufferutil@4.0.8)(typescript@5.4.5)(utf-8-validate@6.0.3)(zod@3.23.8) events: 3.3.0 transitivePeerDependencies: - bufferutil @@ -12216,7 +12220,7 @@ snapshots: - utf-8-validate - zod - '@safe-global/safe-apps-sdk@8.1.0(bufferutil@4.0.8)(typescript@5.4.5)(zod@3.23.8)': + '@safe-global/safe-apps-sdk@8.1.0(bufferutil@4.0.8)(typescript@5.4.5)(utf-8-validate@6.0.3)(zod@3.23.8)': dependencies: '@safe-global/safe-gateway-typescript-sdk': 3.21.1 viem: 1.21.4(bufferutil@4.0.8)(typescript@5.4.5)(utf-8-validate@6.0.3)(zod@3.23.8) @@ -12696,7 +12700,7 @@ snapshots: debug: 4.3.4 globby: 11.1.0 is-glob: 4.0.3 - semver: 7.6.1 + semver: 7.6.2 tsutils: 3.21.0(typescript@5.4.5) optionalDependencies: typescript: 5.4.5 @@ -12742,7 +12746,7 @@ snapshots: '@typescript-eslint/types': 7.8.0 '@typescript-eslint/typescript-estree': 7.8.0(typescript@5.4.5) eslint: 8.57.0 - semver: 7.6.1 + semver: 7.6.2 transitivePeerDependencies: - supports-color - typescript @@ -12759,7 +12763,7 @@ snapshots: '@ungap/structured-clone@1.2.0': {} - '@vitest/coverage-v8@1.6.0(vitest@1.6.0(@types/node@20.12.11)(jsdom@24.0.0(bufferutil@4.0.8))(terser@5.31.0))': + '@vitest/coverage-v8@1.6.0(vitest@1.6.0(@types/node@20.12.11)(jsdom@24.0.0(bufferutil@4.0.8)(utf-8-validate@6.0.3))(terser@5.31.0))': dependencies: '@ampproject/remapping': 2.3.0 '@bcoe/v8-coverage': 0.2.3 @@ -12867,7 +12871,7 @@ snapshots: '@vscode/l10n@0.0.18': {} - '@wagmi/cli@2.1.4(bufferutil@4.0.8)(typescript@5.4.5)': + '@wagmi/cli@2.1.4(bufferutil@4.0.8)(typescript@5.4.5)(utf-8-validate@6.0.3)': dependencies: abitype: 0.9.10(typescript@5.4.5)(zod@3.23.8) bundle-require: 4.1.0(esbuild@0.19.12) @@ -12894,14 +12898,14 @@ snapshots: - bufferutil - utf-8-validate - '@wagmi/connectors@4.3.5(@wagmi/core@2.9.3(bufferutil@4.0.8)(react@18.3.1)(typescript@5.4.5)(viem@2.10.2(bufferutil@4.0.8)(typescript@5.4.5)(zod@3.23.8))(zod@3.23.8))(bufferutil@4.0.8)(encoding@0.1.13)(react-i18next@13.5.0(i18next@22.5.1)(react-native@0.74.1(@babel/core@7.24.5)(@babel/preset-env@7.24.5(@babel/core@7.24.5))(bufferutil@4.0.8)(encoding@0.1.13)(react@18.3.1))(react@18.3.1))(react-native@0.74.1(@babel/core@7.24.5)(@babel/preset-env@7.24.5(@babel/core@7.24.5))(bufferutil@4.0.8)(encoding@0.1.13)(react@18.3.1))(react@18.3.1)(rollup@4.17.2)(typescript@5.4.5)(viem@2.10.2(bufferutil@4.0.8)(typescript@5.4.5)(zod@3.23.8))(zod@3.23.8)': + '@wagmi/connectors@4.3.5(@wagmi/core@2.9.3(bufferutil@4.0.8)(react@18.3.1)(typescript@5.4.5)(utf-8-validate@6.0.3)(viem@2.10.2(bufferutil@4.0.8)(typescript@5.4.5)(utf-8-validate@6.0.3)(zod@3.23.8))(zod@3.23.8))(bufferutil@4.0.8)(encoding@0.1.13)(react-i18next@13.5.0(i18next@22.5.1)(react-native@0.74.1(@babel/core@7.24.5)(@babel/preset-env@7.24.5(@babel/core@7.24.5))(bufferutil@4.0.8)(encoding@0.1.13)(react@18.3.1)(utf-8-validate@6.0.3))(react@18.3.1))(react-native@0.74.1(@babel/core@7.24.5)(@babel/preset-env@7.24.5(@babel/core@7.24.5))(bufferutil@4.0.8)(encoding@0.1.13)(react@18.3.1)(utf-8-validate@6.0.3))(react@18.3.1)(rollup@4.17.2)(typescript@5.4.5)(utf-8-validate@6.0.3)(viem@2.10.2(bufferutil@4.0.8)(typescript@5.4.5)(utf-8-validate@6.0.3)(zod@3.23.8))(zod@3.23.8)': dependencies: '@coinbase/wallet-sdk': 3.9.1 - '@metamask/sdk': 0.18.6(bufferutil@4.0.8)(encoding@0.1.13)(react-i18next@13.5.0(i18next@22.5.1)(react-native@0.74.1(@babel/core@7.24.5)(@babel/preset-env@7.24.5(@babel/core@7.24.5))(bufferutil@4.0.8)(encoding@0.1.13)(react@18.3.1))(react@18.3.1))(react-native@0.74.1(@babel/core@7.24.5)(@babel/preset-env@7.24.5(@babel/core@7.24.5))(bufferutil@4.0.8)(encoding@0.1.13)(react@18.3.1))(react@18.3.1)(rollup@4.17.2) - '@safe-global/safe-apps-provider': 0.18.1(bufferutil@4.0.8)(typescript@5.4.5)(zod@3.23.8) - '@safe-global/safe-apps-sdk': 8.1.0(bufferutil@4.0.8)(typescript@5.4.5)(zod@3.23.8) + '@metamask/sdk': 0.18.6(bufferutil@4.0.8)(encoding@0.1.13)(react-i18next@13.5.0(i18next@22.5.1)(react-native@0.74.1(@babel/core@7.24.5)(@babel/preset-env@7.24.5(@babel/core@7.24.5))(bufferutil@4.0.8)(encoding@0.1.13)(react@18.3.1)(utf-8-validate@6.0.3))(react@18.3.1))(react-native@0.74.1(@babel/core@7.24.5)(@babel/preset-env@7.24.5(@babel/core@7.24.5))(bufferutil@4.0.8)(encoding@0.1.13)(react@18.3.1)(utf-8-validate@6.0.3))(react@18.3.1)(rollup@4.17.2)(utf-8-validate@6.0.3) + '@safe-global/safe-apps-provider': 0.18.1(bufferutil@4.0.8)(typescript@5.4.5)(utf-8-validate@6.0.3)(zod@3.23.8) + '@safe-global/safe-apps-sdk': 8.1.0(bufferutil@4.0.8)(typescript@5.4.5)(utf-8-validate@6.0.3)(zod@3.23.8) '@wagmi/core': 2.9.3(bufferutil@4.0.8)(react@18.3.1)(typescript@5.4.5)(utf-8-validate@6.0.3)(viem@2.10.2(bufferutil@4.0.8)(typescript@5.4.5)(utf-8-validate@6.0.3)(zod@3.23.8))(zod@3.23.8) - '@walletconnect/ethereum-provider': 2.13.0(bufferutil@4.0.8)(encoding@0.1.13)(react@18.3.1) + '@walletconnect/ethereum-provider': 2.13.0(bufferutil@4.0.8)(encoding@0.1.13)(react@18.3.1)(utf-8-validate@6.0.3) '@walletconnect/modal': 2.6.2(react@18.3.1) viem: 2.10.2(bufferutil@4.0.8)(typescript@5.4.5)(utf-8-validate@6.0.3)(zod@3.23.8) optionalDependencies: @@ -12949,13 +12953,13 @@ snapshots: - utf-8-validate - zod - '@walletconnect/core@2.13.0(bufferutil@4.0.8)(encoding@0.1.13)': + '@walletconnect/core@2.13.0(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@6.0.3)': dependencies: '@walletconnect/heartbeat': 1.2.2 '@walletconnect/jsonrpc-provider': 1.0.14 '@walletconnect/jsonrpc-types': 1.0.4 '@walletconnect/jsonrpc-utils': 1.0.8 - '@walletconnect/jsonrpc-ws-connection': 1.0.14(bufferutil@4.0.8) + '@walletconnect/jsonrpc-ws-connection': 1.0.14(bufferutil@4.0.8)(utf-8-validate@6.0.3) '@walletconnect/keyvaluestorage': 1.1.1 '@walletconnect/logger': 2.1.2 '@walletconnect/relay-api': 1.0.10 @@ -12991,16 +12995,16 @@ snapshots: dependencies: tslib: 1.14.1 - '@walletconnect/ethereum-provider@2.13.0(bufferutil@4.0.8)(encoding@0.1.13)(react@18.3.1)': + '@walletconnect/ethereum-provider@2.13.0(bufferutil@4.0.8)(encoding@0.1.13)(react@18.3.1)(utf-8-validate@6.0.3)': dependencies: '@walletconnect/jsonrpc-http-connection': 1.0.8(encoding@0.1.13) '@walletconnect/jsonrpc-provider': 1.0.14 '@walletconnect/jsonrpc-types': 1.0.4 '@walletconnect/jsonrpc-utils': 1.0.8 '@walletconnect/modal': 2.6.2(react@18.3.1) - '@walletconnect/sign-client': 2.13.0(bufferutil@4.0.8)(encoding@0.1.13) + '@walletconnect/sign-client': 2.13.0(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@6.0.3) '@walletconnect/types': 2.13.0 - '@walletconnect/universal-provider': 2.13.0(bufferutil@4.0.8)(encoding@0.1.13) + '@walletconnect/universal-provider': 2.13.0(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@6.0.3) '@walletconnect/utils': 2.13.0 events: 3.3.0 transitivePeerDependencies: @@ -13061,12 +13065,12 @@ snapshots: '@walletconnect/jsonrpc-types': 1.0.4 tslib: 1.14.1 - '@walletconnect/jsonrpc-ws-connection@1.0.14(bufferutil@4.0.8)': + '@walletconnect/jsonrpc-ws-connection@1.0.14(bufferutil@4.0.8)(utf-8-validate@6.0.3)': dependencies: '@walletconnect/jsonrpc-utils': 1.0.8 '@walletconnect/safe-json': 1.0.2 events: 3.3.0 - ws: 7.5.9(bufferutil@4.0.8) + ws: 7.5.9(bufferutil@4.0.8)(utf-8-validate@6.0.3) transitivePeerDependencies: - bufferutil - utf-8-validate @@ -13138,9 +13142,9 @@ snapshots: dependencies: tslib: 1.14.1 - '@walletconnect/sign-client@2.13.0(bufferutil@4.0.8)(encoding@0.1.13)': + '@walletconnect/sign-client@2.13.0(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@6.0.3)': dependencies: - '@walletconnect/core': 2.13.0(bufferutil@4.0.8)(encoding@0.1.13) + '@walletconnect/core': 2.13.0(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@6.0.3) '@walletconnect/events': 1.0.1 '@walletconnect/heartbeat': 1.2.2 '@walletconnect/jsonrpc-utils': 1.0.8 @@ -13196,14 +13200,14 @@ snapshots: - ioredis - uWebSockets.js - '@walletconnect/universal-provider@2.13.0(bufferutil@4.0.8)(encoding@0.1.13)': + '@walletconnect/universal-provider@2.13.0(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@6.0.3)': dependencies: '@walletconnect/jsonrpc-http-connection': 1.0.8(encoding@0.1.13) '@walletconnect/jsonrpc-provider': 1.0.14 '@walletconnect/jsonrpc-types': 1.0.4 '@walletconnect/jsonrpc-utils': 1.0.8 '@walletconnect/logger': 2.1.2 - '@walletconnect/sign-client': 2.13.0(bufferutil@4.0.8)(encoding@0.1.13) + '@walletconnect/sign-client': 2.13.0(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@6.0.3) '@walletconnect/types': 2.13.0 '@walletconnect/utils': 2.13.0 events: 3.3.0 @@ -13336,9 +13340,9 @@ snapshots: lit: 3.1.0 qrcode: 1.5.3 - '@web3modal/wagmi@4.1.11(@wagmi/connectors@4.3.5(@wagmi/core@2.9.3(bufferutil@4.0.8)(react@18.3.1)(typescript@5.4.5)(viem@2.10.2(bufferutil@4.0.8)(typescript@5.4.5)(zod@3.23.8))(zod@3.23.8))(bufferutil@4.0.8)(encoding@0.1.13)(react-i18next@13.5.0(i18next@22.5.1)(react-native@0.74.1(@babel/core@7.24.5)(@babel/preset-env@7.24.5(@babel/core@7.24.5))(bufferutil@4.0.8)(encoding@0.1.13)(react@18.3.1))(react@18.3.1))(react-native@0.74.1(@babel/core@7.24.5)(@babel/preset-env@7.24.5(@babel/core@7.24.5))(bufferutil@4.0.8)(encoding@0.1.13)(react@18.3.1))(react@18.3.1)(rollup@4.17.2)(typescript@5.4.5)(viem@2.10.2(bufferutil@4.0.8)(typescript@5.4.5)(zod@3.23.8))(zod@3.23.8))(@wagmi/core@2.9.3(bufferutil@4.0.8)(react@18.3.1)(typescript@5.4.5)(viem@2.10.2(bufferutil@4.0.8)(typescript@5.4.5)(zod@3.23.8))(zod@3.23.8))(react@18.3.1)(viem@2.10.2(bufferutil@4.0.8)(typescript@5.4.5)(zod@3.23.8))': - dependencies: - '@wagmi/connectors': 4.3.5(@wagmi/core@2.9.3(bufferutil@4.0.8)(react@18.3.1)(typescript@5.4.5)(viem@2.10.2(bufferutil@4.0.8)(typescript@5.4.5)(zod@3.23.8))(zod@3.23.8))(bufferutil@4.0.8)(encoding@0.1.13)(react-i18next@13.5.0(i18next@22.5.1)(react-native@0.74.1(@babel/core@7.24.5)(@babel/preset-env@7.24.5(@babel/core@7.24.5))(bufferutil@4.0.8)(encoding@0.1.13)(react@18.3.1))(react@18.3.1))(react-native@0.74.1(@babel/core@7.24.5)(@babel/preset-env@7.24.5(@babel/core@7.24.5))(bufferutil@4.0.8)(encoding@0.1.13)(react@18.3.1))(react@18.3.1)(rollup@4.17.2)(typescript@5.4.5)(viem@2.10.2(bufferutil@4.0.8)(typescript@5.4.5)(zod@3.23.8))(zod@3.23.8) + ? '@web3modal/wagmi@4.1.11(@wagmi/connectors@4.3.5(@wagmi/core@2.9.3(bufferutil@4.0.8)(react@18.3.1)(typescript@5.4.5)(utf-8-validate@6.0.3)(viem@2.10.2(bufferutil@4.0.8)(typescript@5.4.5)(utf-8-validate@6.0.3)(zod@3.23.8))(zod@3.23.8))(bufferutil@4.0.8)(encoding@0.1.13)(react-i18next@13.5.0(i18next@22.5.1)(react-native@0.74.1(@babel/core@7.24.5)(@babel/preset-env@7.24.5(@babel/core@7.24.5))(bufferutil@4.0.8)(encoding@0.1.13)(react@18.3.1)(utf-8-validate@6.0.3))(react@18.3.1))(react-native@0.74.1(@babel/core@7.24.5)(@babel/preset-env@7.24.5(@babel/core@7.24.5))(bufferutil@4.0.8)(encoding@0.1.13)(react@18.3.1)(utf-8-validate@6.0.3))(react@18.3.1)(rollup@4.17.2)(typescript@5.4.5)(utf-8-validate@6.0.3)(viem@2.10.2(bufferutil@4.0.8)(typescript@5.4.5)(utf-8-validate@6.0.3)(zod@3.23.8))(zod@3.23.8))(@wagmi/core@2.9.3(bufferutil@4.0.8)(react@18.3.1)(typescript@5.4.5)(utf-8-validate@6.0.3)(viem@2.10.2(bufferutil@4.0.8)(typescript@5.4.5)(utf-8-validate@6.0.3)(zod@3.23.8))(zod@3.23.8))(react@18.3.1)(viem@2.10.2(bufferutil@4.0.8)(typescript@5.4.5)(utf-8-validate@6.0.3)(zod@3.23.8))' + : dependencies: + '@wagmi/connectors': 4.3.5(@wagmi/core@2.9.3(bufferutil@4.0.8)(react@18.3.1)(typescript@5.4.5)(utf-8-validate@6.0.3)(viem@2.10.2(bufferutil@4.0.8)(typescript@5.4.5)(utf-8-validate@6.0.3)(zod@3.23.8))(zod@3.23.8))(bufferutil@4.0.8)(encoding@0.1.13)(react-i18next@13.5.0(i18next@22.5.1)(react-native@0.74.1(@babel/core@7.24.5)(@babel/preset-env@7.24.5(@babel/core@7.24.5))(bufferutil@4.0.8)(encoding@0.1.13)(react@18.3.1)(utf-8-validate@6.0.3))(react@18.3.1))(react-native@0.74.1(@babel/core@7.24.5)(@babel/preset-env@7.24.5(@babel/core@7.24.5))(bufferutil@4.0.8)(encoding@0.1.13)(react@18.3.1)(utf-8-validate@6.0.3))(react@18.3.1)(rollup@4.17.2)(typescript@5.4.5)(utf-8-validate@6.0.3)(viem@2.10.2(bufferutil@4.0.8)(typescript@5.4.5)(utf-8-validate@6.0.3)(zod@3.23.8))(zod@3.23.8) '@wagmi/core': 2.9.3(bufferutil@4.0.8)(react@18.3.1)(typescript@5.4.5)(utf-8-validate@6.0.3)(viem@2.10.2(bufferutil@4.0.8)(typescript@5.4.5)(utf-8-validate@6.0.3)(zod@3.23.8))(zod@3.23.8) '@web3modal/polyfills': 4.1.11 '@web3modal/scaffold': 4.1.11(react@18.3.1) @@ -13857,7 +13861,7 @@ snapshots: builtins@5.1.0: dependencies: - semver: 7.6.1 + semver: 7.6.2 bundle-require@4.1.0(esbuild@0.19.12): dependencies: @@ -14526,12 +14530,12 @@ snapshots: dependencies: once: 1.4.0 - engine.io-client@6.5.3(bufferutil@4.0.8): + engine.io-client@6.5.3(bufferutil@4.0.8)(utf-8-validate@6.0.3): dependencies: '@socket.io/component-emitter': 3.1.2 debug: 4.3.4 engine.io-parser: 5.2.2 - ws: 8.11.0(bufferutil@4.0.8) + ws: 8.11.0(bufferutil@4.0.8)(utf-8-validate@6.0.3) xmlhttprequest-ssl: 2.0.0 transitivePeerDependencies: - bufferutil @@ -14781,7 +14785,7 @@ snapshots: eslint-compat-utils@0.5.0(eslint@8.57.0): dependencies: eslint: 8.57.0 - semver: 7.6.1 + semver: 7.6.2 eslint-config-prettier@9.1.0(eslint@8.57.0): dependencies: @@ -14865,7 +14869,7 @@ snapshots: is-core-module: 2.13.1 minimatch: 3.1.2 resolve: 1.22.8 - semver: 7.6.1 + semver: 7.6.2 eslint-plugin-node@11.1.0(eslint@8.57.0): dependencies: @@ -15126,7 +15130,7 @@ snapshots: ethereum-cryptography: 0.1.3 rlp: 2.2.7 - ethers@5.7.2(bufferutil@4.0.8): + ethers@5.7.2(bufferutil@4.0.8)(utf-8-validate@6.0.3): dependencies: '@ethersproject/abi': 5.7.0 '@ethersproject/abstract-provider': 5.7.0 @@ -15146,7 +15150,7 @@ snapshots: '@ethersproject/networks': 5.7.1 '@ethersproject/pbkdf2': 5.7.0 '@ethersproject/properties': 5.7.0 - '@ethersproject/providers': 5.7.2(bufferutil@4.0.8) + '@ethersproject/providers': 5.7.2(bufferutil@4.0.8)(utf-8-validate@6.0.3) '@ethersproject/random': 5.7.0 '@ethersproject/rlp': 5.7.0 '@ethersproject/sha2': 5.7.0 @@ -16962,12 +16966,12 @@ snapshots: metro-core: 0.80.9 rimraf: 3.0.2 - metro-config@0.80.9(bufferutil@4.0.8)(encoding@0.1.13): + metro-config@0.80.9(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@6.0.3): dependencies: connect: 3.7.0 cosmiconfig: 5.2.1 jest-validate: 29.7.0 - metro: 0.80.9(bufferutil@4.0.8)(encoding@0.1.13) + metro: 0.80.9(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@6.0.3) metro-cache: 0.80.9 metro-core: 0.80.9 metro-runtime: 0.80.9 @@ -17043,13 +17047,13 @@ snapshots: transitivePeerDependencies: - supports-color - metro-transform-worker@0.80.9(bufferutil@4.0.8)(encoding@0.1.13): + metro-transform-worker@0.80.9(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@6.0.3): dependencies: '@babel/core': 7.24.5 '@babel/generator': 7.24.5 '@babel/parser': 7.24.5 '@babel/types': 7.24.5 - metro: 0.80.9(bufferutil@4.0.8)(encoding@0.1.13) + metro: 0.80.9(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@6.0.3) metro-babel-transformer: 0.80.9 metro-cache: 0.80.9 metro-cache-key: 0.80.9 @@ -17063,7 +17067,7 @@ snapshots: - supports-color - utf-8-validate - metro@0.80.9(bufferutil@4.0.8)(encoding@0.1.13): + metro@0.80.9(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@6.0.3): dependencies: '@babel/code-frame': 7.24.2 '@babel/core': 7.24.5 @@ -17089,7 +17093,7 @@ snapshots: metro-babel-transformer: 0.80.9 metro-cache: 0.80.9 metro-cache-key: 0.80.9 - metro-config: 0.80.9(bufferutil@4.0.8)(encoding@0.1.13) + metro-config: 0.80.9(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@6.0.3) metro-core: 0.80.9 metro-file-map: 0.80.9 metro-resolver: 0.80.9 @@ -17097,7 +17101,7 @@ snapshots: metro-source-map: 0.80.9 metro-symbolicate: 0.80.9 metro-transform-plugins: 0.80.9 - metro-transform-worker: 0.80.9(bufferutil@4.0.8)(encoding@0.1.13) + metro-transform-worker: 0.80.9(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@6.0.3) mime-types: 2.1.35 node-fetch: 2.7.0(encoding@0.1.13) nullthrows: 1.1.1 @@ -17106,7 +17110,7 @@ snapshots: source-map: 0.5.7 strip-ansi: 6.0.1 throat: 5.0.0 - ws: 7.5.9(bufferutil@4.0.8) + ws: 7.5.9(bufferutil@4.0.8)(utf-8-validate@6.0.3) yargs: 17.7.2 transitivePeerDependencies: - bufferutil @@ -17812,7 +17816,7 @@ snapshots: got: 12.6.1 registry-auth-token: 5.0.2 registry-url: 6.0.1 - semver: 7.6.1 + semver: 7.6.2 pagefind@1.1.0: optionalDependencies: @@ -18209,22 +18213,22 @@ snapshots: react: 18.3.1 tween-functions: 1.2.0 - react-devtools-core@5.2.0(bufferutil@4.0.8): + react-devtools-core@5.2.0(bufferutil@4.0.8)(utf-8-validate@6.0.3): dependencies: shell-quote: 1.8.1 - ws: 7.5.9(bufferutil@4.0.8) + ws: 7.5.9(bufferutil@4.0.8)(utf-8-validate@6.0.3) transitivePeerDependencies: - bufferutil - utf-8-validate - react-i18next@13.5.0(i18next@22.5.1)(react-native@0.74.1(@babel/core@7.24.5)(@babel/preset-env@7.24.5(@babel/core@7.24.5))(bufferutil@4.0.8)(encoding@0.1.13)(react@18.3.1))(react@18.3.1): + react-i18next@13.5.0(i18next@22.5.1)(react-native@0.74.1(@babel/core@7.24.5)(@babel/preset-env@7.24.5(@babel/core@7.24.5))(bufferutil@4.0.8)(encoding@0.1.13)(react@18.3.1)(utf-8-validate@6.0.3))(react@18.3.1): dependencies: '@babel/runtime': 7.24.5 html-parse-stringify: 3.0.1 i18next: 22.5.1 react: 18.3.1 optionalDependencies: - react-native: 0.74.1(@babel/core@7.24.5)(@babel/preset-env@7.24.5(@babel/core@7.24.5))(bufferutil@4.0.8)(encoding@0.1.13)(react@18.3.1) + react-native: 0.74.1(@babel/core@7.24.5)(@babel/preset-env@7.24.5(@babel/core@7.24.5))(bufferutil@4.0.8)(encoding@0.1.13)(react@18.3.1)(utf-8-validate@6.0.3) react-is@17.0.2: {} @@ -18234,26 +18238,26 @@ snapshots: dependencies: p-defer: 3.0.0 - react-native-webview@11.26.1(react-native@0.74.1(@babel/core@7.24.5)(@babel/preset-env@7.24.5(@babel/core@7.24.5))(bufferutil@4.0.8)(encoding@0.1.13)(react@18.3.1))(react@18.3.1): + react-native-webview@11.26.1(react-native@0.74.1(@babel/core@7.24.5)(@babel/preset-env@7.24.5(@babel/core@7.24.5))(bufferutil@4.0.8)(encoding@0.1.13)(react@18.3.1)(utf-8-validate@6.0.3))(react@18.3.1): dependencies: escape-string-regexp: 2.0.0 invariant: 2.2.4 react: 18.3.1 - react-native: 0.74.1(@babel/core@7.24.5)(@babel/preset-env@7.24.5(@babel/core@7.24.5))(bufferutil@4.0.8)(encoding@0.1.13)(react@18.3.1) + react-native: 0.74.1(@babel/core@7.24.5)(@babel/preset-env@7.24.5(@babel/core@7.24.5))(bufferutil@4.0.8)(encoding@0.1.13)(react@18.3.1)(utf-8-validate@6.0.3) - react-native@0.74.1(@babel/core@7.24.5)(@babel/preset-env@7.24.5(@babel/core@7.24.5))(bufferutil@4.0.8)(encoding@0.1.13)(react@18.3.1): + react-native@0.74.1(@babel/core@7.24.5)(@babel/preset-env@7.24.5(@babel/core@7.24.5))(bufferutil@4.0.8)(encoding@0.1.13)(react@18.3.1)(utf-8-validate@6.0.3): dependencies: '@jest/create-cache-key-function': 29.7.0 - '@react-native-community/cli': 13.6.6(bufferutil@4.0.8)(encoding@0.1.13) + '@react-native-community/cli': 13.6.6(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@6.0.3) '@react-native-community/cli-platform-android': 13.6.6(encoding@0.1.13) '@react-native-community/cli-platform-ios': 13.6.6(encoding@0.1.13) '@react-native/assets-registry': 0.74.83 '@react-native/codegen': 0.74.83(@babel/preset-env@7.24.5(@babel/core@7.24.5)) - '@react-native/community-cli-plugin': 0.74.83(@babel/core@7.24.5)(@babel/preset-env@7.24.5(@babel/core@7.24.5))(bufferutil@4.0.8)(encoding@0.1.13) + '@react-native/community-cli-plugin': 0.74.83(@babel/core@7.24.5)(@babel/preset-env@7.24.5(@babel/core@7.24.5))(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@6.0.3) '@react-native/gradle-plugin': 0.74.83 '@react-native/js-polyfills': 0.74.83 '@react-native/normalize-colors': 0.74.83 - '@react-native/virtualized-lists': 0.74.83(react-native@0.74.1(@babel/core@7.24.5)(@babel/preset-env@7.24.5(@babel/core@7.24.5))(bufferutil@4.0.8)(encoding@0.1.13)(react@18.3.1))(react@18.3.1) + '@react-native/virtualized-lists': 0.74.83(react-native@0.74.1(@babel/core@7.24.5)(@babel/preset-env@7.24.5(@babel/core@7.24.5))(bufferutil@4.0.8)(encoding@0.1.13)(react@18.3.1)(utf-8-validate@6.0.3))(react@18.3.1) abort-controller: 3.0.0 anser: 1.4.10 ansi-regex: 5.0.1 @@ -18272,14 +18276,14 @@ snapshots: pretty-format: 26.6.2 promise: 8.3.0 react: 18.3.1 - react-devtools-core: 5.2.0(bufferutil@4.0.8) + react-devtools-core: 5.2.0(bufferutil@4.0.8)(utf-8-validate@6.0.3) react-refresh: 0.14.2 react-shallow-renderer: 16.15.0(react@18.3.1) regenerator-runtime: 0.13.11 scheduler: 0.24.0-canary-efb381bbf-20230505 stacktrace-parser: 0.1.10 whatwg-fetch: 3.6.20 - ws: 6.2.2(bufferutil@4.0.8) + ws: 6.2.2(bufferutil@4.0.8)(utf-8-validate@6.0.3) yargs: 17.7.2 transitivePeerDependencies: - '@babel/core' @@ -18835,11 +18839,11 @@ snapshots: dot-case: 3.0.4 tslib: 2.6.2 - socket.io-client@4.7.5(bufferutil@4.0.8): + socket.io-client@4.7.5(bufferutil@4.0.8)(utf-8-validate@6.0.3): dependencies: '@socket.io/component-emitter': 3.1.2 debug: 4.3.4 - engine.io-client: 6.5.3(bufferutil@4.0.8) + engine.io-client: 6.5.3(bufferutil@4.0.8)(utf-8-validate@6.0.3) socket.io-parser: 4.2.4 transitivePeerDependencies: - bufferutil @@ -18892,6 +18896,31 @@ snapshots: transitivePeerDependencies: - typescript + solhint@5.0.1(typescript@5.4.5): + dependencies: + '@solidity-parser/parser': 0.18.0 + ajv: 6.12.6 + antlr4: 4.13.1-patch-1 + ast-parents: 0.0.1 + chalk: 4.1.2 + commander: 10.0.1 + cosmiconfig: 8.3.6(typescript@5.4.5) + fast-diff: 1.3.0 + glob: 8.1.0 + ignore: 5.3.1 + js-yaml: 4.1.0 + latest-version: 7.0.0 + lodash: 4.17.21 + pluralize: 8.0.0 + semver: 7.6.2 + strip-ansi: 6.0.1 + table: 6.8.2 + text-table: 0.2.0 + optionalDependencies: + prettier: 2.8.8 + transitivePeerDependencies: + - typescript + solidity-stringutils@https://codeload.github.com/Arachnid/solidity-stringutils/tar.gz/4b2fcc43fa0426e19ce88b1f1ec16f5903a2e461: {} sonic-boom@2.8.0: @@ -19443,7 +19472,7 @@ snapshots: typescript-auto-import-cache@0.3.2: dependencies: - semver: 7.6.1 + semver: 7.6.2 typescript@5.4.5: {} @@ -19817,14 +19846,14 @@ snapshots: optionalDependencies: vite: 5.2.11(@types/node@20.12.11)(terser@5.31.0) - vitest-fetch-mock@0.2.2(encoding@0.1.13)(vitest@1.6.0(@types/node@20.12.11)(jsdom@24.0.0(bufferutil@4.0.8))(terser@5.31.0)): + vitest-fetch-mock@0.2.2(encoding@0.1.13)(vitest@1.6.0(@types/node@20.12.11)(jsdom@24.0.0(bufferutil@4.0.8)(utf-8-validate@6.0.3))(terser@5.31.0)): dependencies: cross-fetch: 3.1.8(encoding@0.1.13) vitest: 1.6.0(@types/node@20.12.11)(jsdom@24.0.0(bufferutil@4.0.8)(utf-8-validate@6.0.3))(terser@5.31.0) transitivePeerDependencies: - encoding - vitest-mock-extended@1.3.1(typescript@5.4.5)(vitest@1.6.0(@types/node@20.12.11)(jsdom@24.0.0(bufferutil@4.0.8))(terser@5.31.0)): + vitest-mock-extended@1.3.1(typescript@5.4.5)(vitest@1.6.0(@types/node@20.12.11)(jsdom@24.0.0(bufferutil@4.0.8)(utf-8-validate@6.0.3))(terser@5.31.0)): dependencies: ts-essentials: 9.4.2(typescript@5.4.5) typescript: 5.4.5 @@ -19905,7 +19934,7 @@ snapshots: volar-service-typescript@0.0.43(@volar/language-service@2.2.2): dependencies: path-browserify: 1.0.1 - semver: 7.6.1 + semver: 7.6.2 typescript-auto-import-cache: 0.3.2 vscode-languageserver-textdocument: 1.0.11 vscode-nls: 5.2.0 @@ -20076,23 +20105,27 @@ snapshots: imurmurhash: 0.1.4 signal-exit: 3.0.7 - ws@6.2.2(bufferutil@4.0.8): + ws@6.2.2(bufferutil@4.0.8)(utf-8-validate@6.0.3): dependencies: async-limiter: 1.0.1 optionalDependencies: bufferutil: 4.0.8 + utf-8-validate: 6.0.3 - ws@7.4.6(bufferutil@4.0.8): + ws@7.4.6(bufferutil@4.0.8)(utf-8-validate@6.0.3): optionalDependencies: bufferutil: 4.0.8 + utf-8-validate: 6.0.3 - ws@7.5.9(bufferutil@4.0.8): + ws@7.5.9(bufferutil@4.0.8)(utf-8-validate@6.0.3): optionalDependencies: bufferutil: 4.0.8 + utf-8-validate: 6.0.3 - ws@8.11.0(bufferutil@4.0.8): + ws@8.11.0(bufferutil@4.0.8)(utf-8-validate@6.0.3): optionalDependencies: bufferutil: 4.0.8 + utf-8-validate: 6.0.3 ws@8.13.0(bufferutil@4.0.8)(utf-8-validate@6.0.3): optionalDependencies: