From fed6f5b2fd7f24c16791fccbc97beaca9e27f313 Mon Sep 17 00:00:00 2001 From: Seun Lanlege Date: Fri, 13 Sep 2024 19:09:40 +0000 Subject: [PATCH 1/5] add gnosis host --- .../developers/evm/contract-addresses.mdx | 22 +++++++++--- evm/foundry.toml | 2 ++ evm/script/BaseScript.sol | 1 + evm/script/DeployGateway.s.sol | 6 +++- evm/script/DeployIsmp.s.sol | 4 +++ evm/script/batchDeploy.sh | 2 +- evm/src/hosts/Gnosis.sol | 35 +++++++++++++++++++ 7 files changed, 65 insertions(+), 7 deletions(-) create mode 100644 evm/src/hosts/Gnosis.sol diff --git a/docs/pages/developers/evm/contract-addresses.mdx b/docs/pages/developers/evm/contract-addresses.mdx index 6b102b632..777a3ee78 100644 --- a/docs/pages/developers/evm/contract-addresses.mdx +++ b/docs/pages/developers/evm/contract-addresses.mdx @@ -13,7 +13,7 @@ The current testnet environment for the Hyperbridge network. |:------------|:-----| | `HandlerV1` | [`0xb8b5F80f6f58975970d9A5fb99407CF60A8FD3Ff`](https://sepolia.etherscan.io/address/0xb8b5F80f6f58975970d9A5fb99407CF60A8FD3Ff) | | `PingModule` | [`0x42C6551d05eA47c46Fc7B01BBaaD37c466481361`](https://sepolia.etherscan.io/address/0x42C6551d05eA47c46Fc7B01BBaaD37c466481361) | -| `TokenGateway` | [`0x43B220ae10D0378f974af7F8E46326f9F7cF2cee`](https://sepolia.etherscan.io/address/0x43B220ae10D0378f974af7F8E46326f9F7cF2cee) | +| `TokenGateway` | [`0xf85a6D74eE7F57C068597f78b250a3657640ecA1`](https://sepolia.etherscan.io/address/0xf85a6D74eE7F57C068597f78b250a3657640ecA1) | | `TokenFaucet` | [`0x6Ced0D49EBfe3dee51ccBE744464d18cbf549Ef1`](https://sepolia.etherscan.io/address/0x6Ced0D49EBfe3dee51ccBE744464d18cbf549Ef1) | | `FeeToken (USD.h)` | [`0x088f5218efbDfC73992b0906c5d35572DB2db845`](https://sepolia.etherscan.io/address/0x088f5218efbDfC73992b0906c5d35572DB2db845) | @@ -24,7 +24,7 @@ The current testnet environment for the Hyperbridge network. |:------------|:-----| | `HandlerV1` | [`0xBCb07384915818F6E2fEA3d0e3c19EFa5bef823A`](https://sepolia.arbiscan.io/address/0xBCb07384915818F6E2fEA3d0e3c19EFa5bef823A) | | `PingModule` | [`0x42C6551d05eA47c46Fc7B01BBaaD37c466481361`](https://sepolia.arbiscan.io/address/0x42C6551d05eA47c46Fc7B01BBaaD37c466481361) | -| `TokenGateway` | [`0x43B220ae10D0378f974af7F8E46326f9F7cF2cee`](https://sepolia.arbiscan.io/address/0x43B220ae10D0378f974af7F8E46326f9F7cF2cee) | +| `TokenGateway` | [`0xf85a6D74eE7F57C068597f78b250a3657640ecA1`](https://sepolia.arbiscan.io/address/0xf85a6D74eE7F57C068597f78b250a3657640ecA1) | | `TokenFaucet` | [`0x6Ced0D49EBfe3dee51ccBE744464d18cbf549Ef1`](https://sepolia.arbiscan.io/address/0x6Ced0D49EBfe3dee51ccBE744464d18cbf549Ef1) | | `FeeToken (USD.h)` | [`0x088f5218efbDfC73992b0906c5d35572DB2db845`](https://sepolia.arbiscan.io/address/0x088f5218efbDfC73992b0906c5d35572DB2db845) | @@ -35,7 +35,7 @@ The current testnet environment for the Hyperbridge network. |:------------|:-----| | `HandlerV1` | [`0x78ba8ea54a141b0f6e43070Bb9F9a303F7E05689`](https://sepolia-optimism.etherscan.io/address/0x78ba8ea54a141b0f6e43070Bb9F9a303F7E05689) | | `PingModule` | [`0x42C6551d05eA47c46Fc7B01BBaaD37c466481361`](https://sepolia-optimism.etherscan.io/address/0x42C6551d05eA47c46Fc7B01BBaaD37c466481361) | -| `TokenGateway` | [`0x43B220ae10D0378f974af7F8E46326f9F7cF2cee`](https://sepolia-optimism.etherscan.io/address/0x43B220ae10D0378f974af7F8E46326f9F7cF2cee) | +| `TokenGateway` | [`0xf85a6D74eE7F57C068597f78b250a3657640ecA1`](https://sepolia-optimism.etherscan.io/address/0xf85a6D74eE7F57C068597f78b250a3657640ecA1) | | `TokenFaucet` | [`0x6Ced0D49EBfe3dee51ccBE744464d18cbf549Ef1`](https://sepolia-optimism.etherscan.io/address/0x6Ced0D49EBfe3dee51ccBE744464d18cbf549Ef1) | | `FeeToken (USD.h)` | [`0x088f5218efbDfC73992b0906c5d35572DB2db845`](https://sepolia-optimism.etherscan.io/address/0x088f5218efbDfC73992b0906c5d35572DB2db845) | @@ -46,7 +46,7 @@ The current testnet environment for the Hyperbridge network. |:------------|:-----| | `HandlerV1` | [`0x146662aF74f7332Ef3D91826B2F6DaCBf4459dB4`](https://sepolia.basescan.org/address/0x146662aF74f7332Ef3D91826B2F6DaCBf4459dB4) | | `PingModule` | [`0x42C6551d05eA47c46Fc7B01BBaaD37c466481361`](https://sepolia.basescan.org/address/0x42C6551d05eA47c46Fc7B01BBaaD37c466481361) | -| `TokenGateway` | [`0x43B220ae10D0378f974af7F8E46326f9F7cF2cee`](https://sepolia.basescan.org/address/0x43B220ae10D0378f974af7F8E46326f9F7cF2cee) | +| `TokenGateway` | [`0xf85a6D74eE7F57C068597f78b250a3657640ecA1`](https://sepolia.basescan.org/address/0xf85a6D74eE7F57C068597f78b250a3657640ecA1) | | `TokenFaucet` | [`0x6Ced0D49EBfe3dee51ccBE744464d18cbf549Ef1`](https://sepolia.basescan.org/address/0x6Ced0D49EBfe3dee51ccBE744464d18cbf549Ef1) | | `FeeToken (USD.h)` | [`0x088f5218efbDfC73992b0906c5d35572DB2db845`](https://sepolia.basescan.org/address/0x088f5218efbDfC73992b0906c5d35572DB2db845) | @@ -57,10 +57,22 @@ The current testnet environment for the Hyperbridge network. |:------------|:-----| | `HandlerV1` | [`0x648e59B610630D06cdf5eBCb775b2d33f6BAbBb0`](https://testnet.bscscan.com/address/0x648e59B610630D06cdf5eBCb775b2d33f6BAbBb0) | | `PingModule` | [`0x42C6551d05eA47c46Fc7B01BBaaD37c466481361`](https://testnet.bscscan.com/address/0x42C6551d05eA47c46Fc7B01BBaaD37c466481361) | -| `TokenGateway` | [`0x43B220ae10D0378f974af7F8E46326f9F7cF2cee`](https://testnet.bscscan.com/address/0x43B220ae10D0378f974af7F8E46326f9F7cF2cee) | +| `TokenGateway` | [`0xf85a6D74eE7F57C068597f78b250a3657640ecA1`](https://testnet.bscscan.com/address/0xf85a6D74eE7F57C068597f78b250a3657640ecA1) | | `TokenFaucet` | [`0x6Ced0D49EBfe3dee51ccBE744464d18cbf549Ef1`](https://testnet.bscscan.com/address/0x6Ced0D49EBfe3dee51ccBE744464d18cbf549Ef1) | | `FeeToken (USD.h)` | [`0x088f5218efbDfC73992b0906c5d35572DB2db845`](https://testnet.bscscan.com/address/0x088f5218efbDfC73992b0906c5d35572DB2db845) | + +### Gnosis Chiado + + +| `IsmpHost` | [`0x11EB87c745D97a4Fa8Aec805359837459d240d1b`](https://gnosis-chiado.blockscout.com/address/0x11EB87c745D97a4Fa8Aec805359837459d240d1b) | +|:------------|:-----| +| `HandlerV1` | [`0xc4029227067b4a9bBE93DA618483355708c34067`](https://gnosis-chiado.blockscout.com/address/0xc4029227067b4a9bBE93DA618483355708c34067) | +| `PingModule` | [`0x42C6551d05eA47c46Fc7B01BBaaD37c466481361`](https://gnosis-chiado.blockscout.com/address/0x42C6551d05eA47c46Fc7B01BBaaD37c466481361) | +| `TokenGateway` | [`0xf85a6D74eE7F57C068597f78b250a3657640ecA1`](https://gnosis-chiado.blockscout.com/address/0xf85a6D74eE7F57C068597f78b250a3657640ecA1) | +| `TokenFaucet` | [`0xE2FC77763630ED77E81F3038A983075460319142`](https://gnosis-chiado.blockscout.com/address/0xE2FC77763630ED77E81F3038A983075460319142) | +| `FeeToken (USD.h)` | [`0xD3dBb48A798E7A7443EBb3A3934E18b439dDd241`](https://gnosis-chiado.blockscout.com/address/0xD3dBb48A798E7A7443EBb3A3934E18b439dDd241) | + ## Gargantua V2 (Paseo) (Deprecated) Deprecated testnet environment for Gargantua V2 (Paseo). diff --git a/evm/foundry.toml b/evm/foundry.toml index b86a79050..bda7b3d91 100644 --- a/evm/foundry.toml +++ b/evm/foundry.toml @@ -13,6 +13,7 @@ arbitrum-sepolia = "${ARBITRUM_SEPOLIA_RPC_URL}" base-sepolia = "${BASE_SEPOLIA_RPC_URL}" polygon-mumbai = "${POLYGON_MUMBAI_RPC_URL}" bsc-testnet = "${BSC_TESTNET_RPC_URL}" +chiado = "${CHIADO_RPC_URL}" [etherscan] # testnet @@ -22,5 +23,6 @@ arbitrum-sepolia = { key = "${ARBITRUM_ETHERSCAN_API_KEY}", chain = 421614, url base-sepolia = { key = "${BASE_ETHERSCAN_API_KEY}", chain = 84532, url = "https://api-sepolia.basescan.org/api" } polygon-mumbai = { key = "${POLYGON_ETHERSCAN_API_KEY}", chain = 80001, url = "https://api-testnet.polygonscan.com/api" } bsc-testnet = { key = "${BSC_ETHERSCAN_API_KEY}", chain = 97, url = "https://api-testnet.bscscan.com/api" } +chiado = { key = "${GNOSIS_BLOCKSCOUT_API_KEY}", chain = 10200, url = "https://gnosis-chiado.blockscout.com/api" } # mainnet \ No newline at end of file diff --git a/evm/script/BaseScript.sol b/evm/script/BaseScript.sol index b2a1c51d5..f53654b34 100644 --- a/evm/script/BaseScript.sol +++ b/evm/script/BaseScript.sol @@ -11,6 +11,7 @@ abstract contract BaseScript is Script { address payable internal OP_SEPOLIA_HOST = payable(vm.envAddress("OP_SEPOLIA_HOST")); address payable internal BASE_SEPOLIA_HOST = payable(vm.envAddress("BASE_SEPOLIA_HOST")); address payable internal BSC_TESTNET_HOST = payable(vm.envAddress("BSC_TESTNET_HOST")); + address payable internal CHIADO_HOST = payable(vm.envAddress("CHIADO_HOST")); address payable internal FEE_TOKEN = payable(vm.envAddress("FEE_TOKEN")); /** diff --git a/evm/script/DeployGateway.s.sol b/evm/script/DeployGateway.s.sol index f9d792a14..6a9e99ed3 100644 --- a/evm/script/DeployGateway.s.sol +++ b/evm/script/DeployGateway.s.sol @@ -8,6 +8,7 @@ import {TokenGateway, Asset, TokenGatewayParamsExt, TokenGatewayParams, AssetMet import {TokenFaucet} from "../src/modules/TokenFaucet.sol"; import {CrossChainMessenger} from "../examples/CrossChainMessenger.sol"; import {BaseScript} from "./BaseScript.sol"; +import {IIsmpHost} from "@polytope-labs/ismp-solidity/IIsmpHost.sol"; contract DeployScript is BaseScript { bytes32 public constant MINTER_ROLE = keccak256("MINTER ROLE"); @@ -35,6 +36,9 @@ contract DeployScript is BaseScript { } else if (equal(host, "bsc-testnet")) { vm.startBroadcast(uint256(privateKey)); deployGateway(BSC_TESTNET_HOST, admin, callDispatcher); + } else if (equal(host, "chiado")) { + vm.startBroadcast(uint256(privateKey)); + deployGateway(CHIADO_HOST, admin, callDispatcher); } } @@ -44,7 +48,7 @@ contract DeployScript is BaseScript { } function deployGateway(address host, address admin, address callDispatcher) public { - IERC6160Ext20 feeToken = IERC6160Ext20(FEE_TOKEN); + IERC6160Ext20 feeToken = IERC6160Ext20(IIsmpHost(host).feeToken()); TokenGateway gateway = new TokenGateway{salt: salt}(admin); feeToken.grantRole(MINTER_ROLE, address(gateway)); diff --git a/evm/script/DeployIsmp.s.sol b/evm/script/DeployIsmp.s.sol index ef1816c73..2fa9dbf50 100644 --- a/evm/script/DeployIsmp.s.sol +++ b/evm/script/DeployIsmp.s.sol @@ -13,6 +13,7 @@ import "../src/hosts/Ethereum.sol"; import "../src/hosts/Arbitrum.sol"; import "../src/hosts/Optimism.sol"; import "../src/hosts/Base.sol"; +import "../src/hosts/Gnosis.sol"; import {ERC6160Ext20} from "@polytope-labs/erc6160/tokens/ERC6160Ext20.sol"; import {TokenGateway, Asset, TokenGatewayParamsExt, TokenGatewayParams, AssetMetadata} from "../src/modules/TokenGateway.sol"; @@ -114,6 +115,9 @@ contract DeployScript is BaseScript { } else if (host.toSlice().startsWith("polygon".toSlice())) { PolygonHost h = new PolygonHost{salt: salt}(params); return address(h); + } else if (host.toSlice().startsWith("chiado".toSlice())) { + GnosisHost h = new GnosisHost{salt: salt}(params); + return address(h); } revert("Unknown host"); diff --git a/evm/script/batchDeploy.sh b/evm/script/batchDeploy.sh index e87cb7984..67284a118 100755 --- a/evm/script/batchDeploy.sh +++ b/evm/script/batchDeploy.sh @@ -1,6 +1,6 @@ #!/bin/bash -declare -a arr=("sepolia" "arbitrum-sepolia" "optimism-sepolia" "base-sepolia" "bsc-testnet") +declare -a arr=("sepolia" "arbitrum-sepolia" "optimism-sepolia" "base-sepolia" "bsc-testnet" "chiado") for i in "${arr[@]}" do diff --git a/evm/src/hosts/Gnosis.sol b/evm/src/hosts/Gnosis.sol new file mode 100644 index 000000000..46daf2301 --- /dev/null +++ b/evm/src/hosts/Gnosis.sol @@ -0,0 +1,35 @@ +// Copyright (C) Polytope Labs Ltd. +// SPDX-License-Identifier: Apache-2.0 + +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +pragma solidity 0.8.17; + +import {EvmHost, HostParams} from "./EvmHost.sol"; + +/** + * @title The GnosisHost + * @author Polytope Labs (hello@polytope.technology) + * + * @notice The IsmpHost and IsmpDispatcher implementation for the Gnosis state machine. + * Refer to the official ISMP specification. https://docs.hyperbridge.network/protocol/ismp + */ +contract GnosisHost is EvmHost { + constructor(HostParams memory params) EvmHost(params) {} + + /// chainId for the Gnosis mainnet + uint256 public constant CHAIN_ID = 100; + + function chainId() public pure override returns (uint256) { + return CHAIN_ID; + } +} From 67c6238985327ae0af4b0b7405b04a41f8c48617 Mon Sep 17 00:00:00 2001 From: David Salami Date: Fri, 13 Sep 2024 19:39:57 +0000 Subject: [PATCH 2/5] support gnosis in evm gas oracle --- tesseract/evm/src/gas_oracle.rs | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/tesseract/evm/src/gas_oracle.rs b/tesseract/evm/src/gas_oracle.rs index fabb86618..3cf83b6ee 100644 --- a/tesseract/evm/src/gas_oracle.rs +++ b/tesseract/evm/src/gas_oracle.rs @@ -67,6 +67,7 @@ pub const BASE_CHAIN_ID: u32 = 8453; pub const ETHEREUM_CHAIN_ID: u32 = 1; pub const BSC_CHAIN_ID: u32 = 56; pub const POLYGON_CHAIN_ID: u32 = 137; +pub const GNOSIS_CHAIN_ID: u32 = 100; // Testnets pub const ARBITRUM_SEPOLIA_CHAIN_ID: u32 = 421614; @@ -75,6 +76,7 @@ pub const BASE_SEPOLIA_CHAIN_ID: u32 = 84532; pub const SEPOLIA_CHAIN_ID: u32 = 11155111; pub const BSC_TESTNET_CHAIN_ID: u32 = 97; pub const POLYGON_TESTNET_CHAIN_ID: u32 = 80002; +pub const CHIADO_CHAIN_ID: u32 = 10200; pub fn is_orbit_chain(id: u32) -> bool { [ARBITRUM_CHAIN_ID, ARBITRUM_SEPOLIA_CHAIN_ID].contains(&id) @@ -163,6 +165,13 @@ pub async fn get_current_gas_cost_in_usd( gas_price_cost = convert_27_decimals_to_18_decimals(unit_wei * gas_price)?; }; }, + CHIADO_CHAIN_ID | GNOSIS_CHAIN_ID => { + // temporarily use naive gas price for gnosis + gas_price = client.get_gas_price().await?; + // one unit of the gas token is 1 usd + unit_wei = get_cost_of_one_wei(U256::one()); + gas_price_cost = convert_27_decimals_to_18_decimals(unit_wei * gas_price)?; + }, POLYGON_CHAIN_ID | POLYGON_TESTNET_CHAIN_ID => { let uri = format!( "https://api.polygonscan.com/api?module=gastracker&action=gasoracle&apikey={api_keys}" From 079256aca730a72731c3d4e42420f0f8b6f5efce Mon Sep 17 00:00:00 2001 From: Seun Lanlege Date: Sat, 14 Sep 2024 12:43:52 +0000 Subject: [PATCH 3/5] bump erc6160 & solidity-merkle-trees --- evm/examples/PingModule.sol | 4 ++-- evm/package.json | 4 ++-- evm/remappings.txt | 2 +- evm/script/DeployHostUpdates.s.sol | 2 +- evm/src/consensus/BeefyV1.sol | 4 ++-- evm/src/consensus/UltraPlonkBeefy.sol | 2 +- evm/src/hosts/EvmHost.sol | 10 ++++----- evm/src/modules/HandlerV1.sol | 23 ++++---------------- evm/src/modules/HostManager.sol | 2 +- evm/src/modules/Registrar.sol | 4 ++-- evm/src/modules/TokenGateway.sol | 12 +++-------- evm/test/MainnetForkBaseTest.sol | 2 +- evm/test/MockUSDC.sol | 2 +- evm/test/TestConsensusClient.sol | 2 +- evm/test/TokenGatewayTest.sol | 2 +- evm/test/mocks/ERC20Token.sol | 2 +- evm/test/mocks/MiniStakingContract.sol | 2 +- evm/yarn.lock | 30 ++++++++++++++++++++++---- 18 files changed, 56 insertions(+), 55 deletions(-) diff --git a/evm/examples/PingModule.sol b/evm/examples/PingModule.sol index 63aacc299..865db15ae 100644 --- a/evm/examples/PingModule.sol +++ b/evm/examples/PingModule.sol @@ -8,7 +8,7 @@ import "@polytope-labs/ismp-solidity/IIsmpHost.sol"; import "@polytope-labs/ismp-solidity/StateMachine.sol"; import "@polytope-labs/ismp-solidity/Message.sol"; import "@polytope-labs/ismp-solidity/IDispatcher.sol"; -import {IERC20} from "openzeppelin/token/ERC20/IERC20.sol"; +import {IERC20} from "@openzeppelin/contracts/token/ERC20/IERC20.sol"; import {StorageValue} from "@polytope-labs/solidity-merkle-trees/Types.sol"; struct PingMessage { @@ -103,7 +103,7 @@ contract PingModule is IIsmpModule { function dispatch(PostRequest memory request) public returns (bytes32) { uint256 perByteFee = IIsmpHost(_host).perByteFee(); address feeToken = IIsmpHost(_host).feeToken(); - uint256 length = 32 > request.body.length ? 32 : request.body.length; + uint256 length = 32 > request.body.length ? 32 : request.body.length; uint256 fee = perByteFee * length; IERC20(feeToken).transferFrom(msg.sender, address(this), fee); diff --git a/evm/package.json b/evm/package.json index 2c5495522..f2bb89a85 100644 --- a/evm/package.json +++ b/evm/package.json @@ -14,9 +14,9 @@ "license": "ISC", "description": "", "dependencies": { - "@polytope-labs/erc6160": "^0.3.0", + "@polytope-labs/erc6160": "^0.3.1", "@polytope-labs/ismp-solidity": "^0.5.1", - "@polytope-labs/solidity-merkle-trees": "^0.2.3", + "@polytope-labs/solidity-merkle-trees": "^0.3.4", "@uniswap/v2-periphery": "^1.1.0-beta.0", "openzeppelin-solidity": "4.8.1", "prettier": "^3.3.3", diff --git a/evm/remappings.txt b/evm/remappings.txt index 7a7d03442..71c285b8a 100644 --- a/evm/remappings.txt +++ b/evm/remappings.txt @@ -1,5 +1,5 @@ @polytope-labs/ismp-solidity/=node_modules/@polytope-labs/ismp-solidity/interfaces/ -openzeppelin/=node_modules/openzeppelin-solidity/contracts/ +@openzeppelin/=node_modules/openzeppelin-solidity @polytope-labs/solidity-merkle-trees/=node_modules/@polytope-labs/solidity-merkle-trees/src/ @polytope-labs/erc6160/=node_modules/@polytope-labs/erc6160/src/ @uniswap/v2-periphery/=node_modules/@uniswap/v2-periphery diff --git a/evm/script/DeployHostUpdates.s.sol b/evm/script/DeployHostUpdates.s.sol index d29619a22..7b10a2ab4 100644 --- a/evm/script/DeployHostUpdates.s.sol +++ b/evm/script/DeployHostUpdates.s.sol @@ -2,7 +2,7 @@ pragma solidity ^0.8.13; import "forge-std/Script.sol"; -import "openzeppelin/utils/Strings.sol"; +import "@openzeppelin/contracts/utils/Strings.sol"; import "stringutils/strings.sol"; import {EvmHost, HostParams} from "../src/hosts/EvmHost.sol"; diff --git a/evm/src/consensus/BeefyV1.sol b/evm/src/consensus/BeefyV1.sol index 72651c6b5..ad120be8e 100644 --- a/evm/src/consensus/BeefyV1.sol +++ b/evm/src/consensus/BeefyV1.sol @@ -25,8 +25,8 @@ import {StorageValue, MmrLeaf} from "@polytope-labs/solidity-merkle-trees/Types. import {ScaleCodec} from "@polytope-labs/solidity-merkle-trees/trie/substrate/ScaleCodec.sol"; import {Bytes} from "@polytope-labs/solidity-merkle-trees/trie/Bytes.sol"; -import {ECDSA} from "openzeppelin/utils/cryptography/ECDSA.sol"; -import {ERC165} from "openzeppelin/utils/introspection/ERC165.sol"; +import {ECDSA} from "@openzeppelin/contracts/utils/cryptography/ECDSA.sol"; +import {ERC165} from "@openzeppelin/contracts/utils/introspection/ERC165.sol"; struct Vote { // secp256k1 signature from a member of the authority set diff --git a/evm/src/consensus/UltraPlonkBeefy.sol b/evm/src/consensus/UltraPlonkBeefy.sol index 638cb03e0..6b9314f41 100644 --- a/evm/src/consensus/UltraPlonkBeefy.sol +++ b/evm/src/consensus/UltraPlonkBeefy.sol @@ -24,7 +24,7 @@ import "@polytope-labs/solidity-merkle-trees/trie/Bytes.sol"; import "./verifiers/IVerifier.sol"; import "./Codec.sol"; -import {ERC165} from "openzeppelin/utils/introspection/ERC165.sol"; +import {ERC165} from "@openzeppelin/contracts/utils/introspection/ERC165.sol"; struct UltraPlonkConsensusProof { // Commitment message diff --git a/evm/src/hosts/EvmHost.sol b/evm/src/hosts/EvmHost.sol index 92375cc30..a610d80dc 100644 --- a/evm/src/hosts/EvmHost.sol +++ b/evm/src/hosts/EvmHost.sol @@ -14,11 +14,11 @@ // limitations under the License. pragma solidity 0.8.17; -import {Context} from "openzeppelin/utils/Context.sol"; -import {Strings} from "openzeppelin/utils/Strings.sol"; -import {IERC20} from "openzeppelin/token/ERC20/IERC20.sol"; -import {SafeERC20} from "openzeppelin/token/ERC20/utils/SafeERC20.sol"; -import {IERC165} from "openzeppelin/utils/introspection/IERC165.sol"; +import {Context} from "@openzeppelin/contracts/utils/Context.sol"; +import {Strings} from "@openzeppelin/contracts/utils/Strings.sol"; +import {IERC20} from "@openzeppelin/contracts/token/ERC20/IERC20.sol"; +import {SafeERC20} from "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol"; +import {IERC165} from "@openzeppelin/contracts/utils/introspection/IERC165.sol"; import {IIsmpModule, IncomingPostRequest, IncomingPostResponse, IncomingGetResponse} from "@polytope-labs/ismp-solidity/IIsmpModule.sol"; import {DispatchPost, DispatchPostResponse, DispatchGet} from "@polytope-labs/ismp-solidity/IDispatcher.sol"; diff --git a/evm/src/modules/HandlerV1.sol b/evm/src/modules/HandlerV1.sol index 5ee62f1a3..0748d6c58 100644 --- a/evm/src/modules/HandlerV1.sol +++ b/evm/src/modules/HandlerV1.sol @@ -21,25 +21,10 @@ import {Bytes} from "@polytope-labs/solidity-merkle-trees/trie/Bytes.sol"; import {IConsensusClient, IntermediateState, StateMachineHeight, StateCommitment} from "@polytope-labs/ismp-solidity/IConsensusClient.sol"; import {IIsmpHost, FeeMetadata, FrozenStatus} from "@polytope-labs/ismp-solidity/IIsmpHost.sol"; import {IHandler} from "@polytope-labs/ismp-solidity/IHandler.sol"; -import { - Message, - PostResponse, - PostRequest, - GetRequest, - GetResponse, - PostRequestMessage, - PostResponseMessage, - GetResponseMessage, - PostRequestTimeoutMessage, - PostResponseTimeoutMessage, - GetTimeoutMessage, - PostRequestLeaf, - PostResponseLeaf, - GetResponseLeaf -} from "@polytope-labs/ismp-solidity/Message.sol"; - -import {Context} from "openzeppelin/utils/Context.sol"; -import {ERC165} from "openzeppelin/utils/introspection/ERC165.sol"; +import {Message, PostResponse, PostRequest, GetRequest, GetResponse, PostRequestMessage, PostResponseMessage, GetResponseMessage, PostRequestTimeoutMessage, PostResponseTimeoutMessage, GetTimeoutMessage, PostRequestLeaf, PostResponseLeaf, GetResponseLeaf} from "@polytope-labs/ismp-solidity/Message.sol"; + +import {Context} from "@openzeppelin/contracts/utils/Context.sol"; +import {ERC165} from "@openzeppelin/contracts/utils/introspection/ERC165.sol"; // Storage prefix for request receipts in the pallet-ismp child trie bytes constant REQUEST_RECEIPTS_STORAGE_PREFIX = hex"526571756573745265636569707473"; diff --git a/evm/src/modules/HostManager.sol b/evm/src/modules/HostManager.sol index fe5d44033..27192ee35 100644 --- a/evm/src/modules/HostManager.sol +++ b/evm/src/modules/HostManager.sol @@ -20,7 +20,7 @@ import {StateMachine} from "@polytope-labs/ismp-solidity/StateMachine.sol"; import {IIsmpHost} from "@polytope-labs/ismp-solidity/IIsmpHost.sol"; import {BaseIsmpModule, IncomingPostRequest, IIsmpModule} from "@polytope-labs/ismp-solidity/IIsmpModule.sol"; -import {ERC165} from "openzeppelin/utils/introspection/ERC165.sol"; +import {ERC165} from "@openzeppelin/contracts/utils/introspection/ERC165.sol"; import {HostParams, IHostManager, WithdrawParams} from "../hosts/EvmHost.sol"; diff --git a/evm/src/modules/Registrar.sol b/evm/src/modules/Registrar.sol index c2b093154..fee715789 100644 --- a/evm/src/modules/Registrar.sol +++ b/evm/src/modules/Registrar.sol @@ -17,8 +17,8 @@ pragma solidity 0.8.17; import {BaseIsmpModule, PostRequest, IncomingPostRequest} from "@polytope-labs/ismp-solidity/IIsmpModule.sol"; import {IDispatcher, DispatchPost} from "@polytope-labs/ismp-solidity/IDispatcher.sol"; import {IIsmpHost} from "@polytope-labs/ismp-solidity/IIsmpHost.sol"; -import {IERC20} from "openzeppelin/token/ERC20/IERC20.sol"; -import {SafeERC20} from "openzeppelin/token/ERC20/utils/SafeERC20.sol"; +import {IERC20} from "@openzeppelin/contracts/token/ERC20/IERC20.sol"; +import {SafeERC20} from "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol"; import {Bytes} from "@polytope-labs/solidity-merkle-trees/trie/Bytes.sol"; import {IUniswapV2Router02} from "@uniswap/v2-periphery/contracts/interfaces/IUniswapV2Router02.sol"; diff --git a/evm/src/modules/TokenGateway.sol b/evm/src/modules/TokenGateway.sol index c395c5747..03fe47daa 100644 --- a/evm/src/modules/TokenGateway.sol +++ b/evm/src/modules/TokenGateway.sol @@ -21,8 +21,8 @@ import {StateMachine} from "@polytope-labs/ismp-solidity/StateMachine.sol"; import {BaseIsmpModule, PostRequest, IncomingPostRequest} from "@polytope-labs/ismp-solidity/IIsmpModule.sol"; import {IERC6160Ext20} from "@polytope-labs/erc6160/interfaces/IERC6160Ext20.sol"; import {ERC6160Ext20} from "@polytope-labs/erc6160/tokens/ERC6160Ext20.sol"; -import {IERC20} from "openzeppelin/token/ERC20/IERC20.sol"; -import {SafeERC20} from "openzeppelin/token/ERC20/utils/SafeERC20.sol"; +import {IERC20} from "@openzeppelin/contracts/token/ERC20/IERC20.sol"; +import {SafeERC20} from "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol"; import {Bytes} from "@polytope-labs/solidity-merkle-trees/trie/Bytes.sol"; import {IUniswapV2Router02} from "@uniswap/v2-periphery/contracts/interfaces/IUniswapV2Router02.sol"; import {ICallDispatcher, CallDispatcherParams} from "./CallDispatcher.sol"; @@ -530,13 +530,7 @@ contract TokenGateway is BaseIsmpModule { BodyWithCall memory body = abi.decode(incoming.request.body[1:], (BodyWithCall)); bytes32 commitment = incoming.request.hash(); handleIncomingAsset( - Body({ - amount: body.amount, - assetId: body.assetId, - redeem: body.redeem, - from: body.from, - to: body.to - }) + Body({amount: body.amount, assetId: body.assetId, redeem: body.redeem, from: body.from, to: body.to}) ); ICallDispatcher(_params.dispatcher).dispatch(body.data); diff --git a/evm/test/MainnetForkBaseTest.sol b/evm/test/MainnetForkBaseTest.sol index f3dce8deb..8ed0caeee 100644 --- a/evm/test/MainnetForkBaseTest.sol +++ b/evm/test/MainnetForkBaseTest.sol @@ -26,7 +26,7 @@ import {HostManagerParams, HostManager} from "../src/modules/HostManager.sol"; import {TokenRegistrar, RegistrarParams} from "../src/modules/Registrar.sol"; import {ERC6160Ext20} from "@polytope-labs/erc6160/tokens/ERC6160Ext20.sol"; import {StateMachine} from "@polytope-labs/ismp-solidity/StateMachine.sol"; -import {IERC20} from "openzeppelin/token/ERC20/IERC20.sol"; +import {IERC20} from "@openzeppelin/contracts/token/ERC20/IERC20.sol"; import {IUniswapV2Router02} from "@uniswap/v2-periphery/contracts/interfaces/IUniswapV2Router02.sol"; import "../src/modules/TokenGateway.sol"; import {TokenFaucet} from "../src/modules/TokenFaucet.sol"; diff --git a/evm/test/MockUSDC.sol b/evm/test/MockUSDC.sol index b00849e32..063b9d4ee 100644 --- a/evm/test/MockUSDC.sol +++ b/evm/test/MockUSDC.sol @@ -14,7 +14,7 @@ // limitations under the License. pragma solidity ^0.8.17; -import {ERC20} from "openzeppelin/token/ERC20/ERC20.sol"; +import {ERC20} from "@openzeppelin/contracts/token/ERC20/ERC20.sol"; contract MockUSCDC is ERC20 { constructor(string memory _name, string memory _symbol) ERC20(_name, _symbol) { diff --git a/evm/test/TestConsensusClient.sol b/evm/test/TestConsensusClient.sol index 23295a1ef..daf61c747 100644 --- a/evm/test/TestConsensusClient.sol +++ b/evm/test/TestConsensusClient.sol @@ -15,7 +15,7 @@ pragma solidity 0.8.17; import {IConsensusClient, IntermediateState} from "@polytope-labs/ismp-solidity/IConsensusClient.sol"; -import {ERC165} from "openzeppelin/utils/introspection/ERC165.sol"; +import {ERC165} from "@openzeppelin/contracts/utils/introspection/ERC165.sol"; /// Test consensus client, performs no verification contract TestConsensusClient is IConsensusClient, ERC165 { diff --git a/evm/test/TokenGatewayTest.sol b/evm/test/TokenGatewayTest.sol index d563a1939..85aaf883a 100644 --- a/evm/test/TokenGatewayTest.sol +++ b/evm/test/TokenGatewayTest.sol @@ -21,7 +21,7 @@ import {IncomingPostRequest} from "@polytope-labs/ismp-solidity/IIsmpModule.sol" import "@polytope-labs/ismp-solidity/Message.sol"; import {StateMachine} from "@polytope-labs/ismp-solidity/StateMachine.sol"; import {NotRoleAdmin} from "@polytope-labs/erc6160/tokens/ERC6160Ext20.sol"; -import {IERC20} from "openzeppelin/token/ERC20/IERC20.sol"; +import {IERC20} from "@openzeppelin/contracts/token/ERC20/IERC20.sol"; import {ERC6160Ext20} from "@polytope-labs/erc6160/tokens/ERC6160Ext20.sol"; import "../src/modules/TokenGateway.sol"; diff --git a/evm/test/mocks/ERC20Token.sol b/evm/test/mocks/ERC20Token.sol index 7b3bd3007..df80571bb 100644 --- a/evm/test/mocks/ERC20Token.sol +++ b/evm/test/mocks/ERC20Token.sol @@ -2,7 +2,7 @@ pragma solidity 0.8.17; // ========== External imports ========== -import {ERC20} from "openzeppelin/token/ERC20/ERC20.sol"; +import {ERC20} from "@openzeppelin/contracts/token/ERC20/ERC20.sol"; contract ERC20Token is ERC20 { uint8 immutable _decimals; diff --git a/evm/test/mocks/MiniStakingContract.sol b/evm/test/mocks/MiniStakingContract.sol index 4da75f265..835f8ce95 100644 --- a/evm/test/mocks/MiniStakingContract.sol +++ b/evm/test/mocks/MiniStakingContract.sol @@ -2,7 +2,7 @@ pragma solidity 0.8.17; // ========== External imports ========== -import {ERC20, IERC20} from "openzeppelin/token/ERC20/ERC20.sol"; +import {ERC20, IERC20} from "@openzeppelin/contracts/token/ERC20/ERC20.sol"; import "forge-std/console.sol"; contract MiniStaking is ERC20 { diff --git a/evm/yarn.lock b/evm/yarn.lock index 8843a351f..0d16ec515 100644 --- a/evm/yarn.lock +++ b/evm/yarn.lock @@ -2,10 +2,10 @@ # yarn lockfile v1 -"@polytope-labs/erc6160@^0.3.0": - version "0.3.0" - resolved "https://registry.npmjs.org/@polytope-labs/erc6160/-/erc6160-0.3.0.tgz" - integrity sha512-8eW+xetYveMcDcdNa6L7M/vYxZ6wm1f3rF2No1ltfo7FuAp2qbjzjOYguIXkn041S4sp+SM9HC8BlOoopnr4Iw== +"@polytope-labs/erc6160@^0.3.1": + version "0.3.1" + resolved "https://registry.yarnpkg.com/@polytope-labs/erc6160/-/erc6160-0.3.1.tgz#c631c4b909a401ea1a7bce583969e8e6297565bc" + integrity sha512-rcadGvzF7ThHkOzgbsDyOiTwEnJN9okHSOK4wuCWiBgfic1raiWvpHJDRJE6egaJxcXM0wvdmRrtQlpammSRqQ== dependencies: openzeppelin-solidity "^4.8.1" prettier "^3.3.3" @@ -28,11 +28,25 @@ dependencies: openzeppelin-solidity "^4.8.1" +"@polytope-labs/solidity-merkle-trees@^0.3.4": + version "0.3.4" + resolved "https://registry.yarnpkg.com/@polytope-labs/solidity-merkle-trees/-/solidity-merkle-trees-0.3.4.tgz#49553502c768d8dc46daaeb9d1734dd85b518739" + integrity sha512-ldLirdWNd7qNi8iRfpwlHCwy/FrVMd5wbsu9qVxx/IyOnbQnzzU816AfL3Zn01iN8DhB5UFLMkQ/HmF+VOLGFA== + dependencies: + openzeppelin-solidity "^4.8.1" + prettier "^3.3.3" + prettier-plugin-solidity "^1.4.1" + "@solidity-parser/parser@^0.17.0": version "0.17.0" resolved "https://registry.npmjs.org/@solidity-parser/parser/-/parser-0.17.0.tgz" integrity sha512-Nko8R0/kUo391jsEHHxrGM07QFdnPGvlmox4rmH0kNiNAashItAilhy4Mv4pK5gQmW5f4sXAF58fwJbmlkGcVw== +"@solidity-parser/parser@^0.18.0": + version "0.18.0" + resolved "https://registry.yarnpkg.com/@solidity-parser/parser/-/parser-0.18.0.tgz#8e77a02a09ecce957255a2f48c9a7178ec191908" + integrity sha512-yfORGUIPgLck41qyN7nbwJRAx17/jAIXCTanHOJZhB6PJ1iAk/84b/xlsVKFSyNyLXIj0dhppoE0+CRws7wlzA== + "@uniswap/lib@1.1.1": version "1.1.1" resolved "https://registry.npmjs.org/@uniswap/lib/-/lib-1.1.1.tgz" @@ -65,6 +79,14 @@ prettier-plugin-solidity@^1.3.1: semver "^7.5.4" solidity-comments-extractor "^0.0.8" +prettier-plugin-solidity@^1.4.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/prettier-plugin-solidity/-/prettier-plugin-solidity-1.4.1.tgz#8060baf18853a9e34d2e09e47e87b4f19e15afe9" + integrity sha512-Mq8EtfacVZ/0+uDKTtHZGW3Aa7vEbX/BNx63hmVg6YTiTXSiuKP0amj0G6pGwjmLaOfymWh3QgXEZkjQbU8QRg== + dependencies: + "@solidity-parser/parser" "^0.18.0" + semver "^7.5.4" + prettier@^3.3.3: version "3.3.3" resolved "https://registry.npmjs.org/prettier/-/prettier-3.3.3.tgz" From 4b91e1fac5ef83837a1708ef649cab8e9b297444 Mon Sep 17 00:00:00 2001 From: Seun Lanlege Date: Sat, 14 Sep 2024 12:47:14 +0000 Subject: [PATCH 4/5] change solidity-merkle-tree remapping --- evm/examples/PingModule.sol | 2 +- evm/remappings.txt | 2 +- evm/src/consensus/BeefyV1.sol | 12 ++++++------ evm/src/consensus/Codec.sol | 6 +++--- evm/src/consensus/Header.sol | 4 ++-- evm/src/consensus/UltraPlonkBeefy.sol | 8 ++++---- evm/src/modules/HandlerV1.sol | 6 +++--- evm/src/modules/HostManager.sol | 2 +- evm/src/modules/Registrar.sol | 2 +- evm/src/modules/TokenGateway.sol | 2 +- evm/test/EvmHostTest.sol | 2 +- 11 files changed, 24 insertions(+), 24 deletions(-) diff --git a/evm/examples/PingModule.sol b/evm/examples/PingModule.sol index 865db15ae..582f56f3a 100644 --- a/evm/examples/PingModule.sol +++ b/evm/examples/PingModule.sol @@ -9,7 +9,7 @@ import "@polytope-labs/ismp-solidity/StateMachine.sol"; import "@polytope-labs/ismp-solidity/Message.sol"; import "@polytope-labs/ismp-solidity/IDispatcher.sol"; import {IERC20} from "@openzeppelin/contracts/token/ERC20/IERC20.sol"; -import {StorageValue} from "@polytope-labs/solidity-merkle-trees/Types.sol"; +import {StorageValue} from "@polytope-labs/solidity-merkle-trees/src/Types.sol"; struct PingMessage { bytes dest; diff --git a/evm/remappings.txt b/evm/remappings.txt index 71c285b8a..291164f87 100644 --- a/evm/remappings.txt +++ b/evm/remappings.txt @@ -1,6 +1,6 @@ @polytope-labs/ismp-solidity/=node_modules/@polytope-labs/ismp-solidity/interfaces/ @openzeppelin/=node_modules/openzeppelin-solidity -@polytope-labs/solidity-merkle-trees/=node_modules/@polytope-labs/solidity-merkle-trees/src/ +@polytope-labs/solidity-merkle-trees/=node_modules/@polytope-labs/solidity-merkle-trees/ @polytope-labs/erc6160/=node_modules/@polytope-labs/erc6160/src/ @uniswap/v2-periphery/=node_modules/@uniswap/v2-periphery stringutils/=lib/solidity-stringutils/src/ diff --git a/evm/src/consensus/BeefyV1.sol b/evm/src/consensus/BeefyV1.sol index ad120be8e..33598ca00 100644 --- a/evm/src/consensus/BeefyV1.sol +++ b/evm/src/consensus/BeefyV1.sol @@ -18,12 +18,12 @@ import "./Codec.sol"; import "@polytope-labs/ismp-solidity/StateMachine.sol"; import "@polytope-labs/ismp-solidity/IConsensusClient.sol"; -import {MerkleMultiProof} from "@polytope-labs/solidity-merkle-trees/MerkleMultiProof.sol"; -import {MerkleMountainRange} from "@polytope-labs/solidity-merkle-trees/MerkleMountainRange.sol"; -import {MerklePatricia} from "@polytope-labs/solidity-merkle-trees/MerklePatricia.sol"; -import {StorageValue, MmrLeaf} from "@polytope-labs/solidity-merkle-trees/Types.sol"; -import {ScaleCodec} from "@polytope-labs/solidity-merkle-trees/trie/substrate/ScaleCodec.sol"; -import {Bytes} from "@polytope-labs/solidity-merkle-trees/trie/Bytes.sol"; +import {MerkleMultiProof} from "@polytope-labs/solidity-merkle-trees/src/MerkleMultiProof.sol"; +import {MerkleMountainRange} from "@polytope-labs/solidity-merkle-trees/src/MerkleMountainRange.sol"; +import {MerklePatricia} from "@polytope-labs/solidity-merkle-trees/src/MerklePatricia.sol"; +import {StorageValue, MmrLeaf} from "@polytope-labs/solidity-merkle-trees/src/Types.sol"; +import {ScaleCodec} from "@polytope-labs/solidity-merkle-trees/src/trie/substrate/ScaleCodec.sol"; +import {Bytes} from "@polytope-labs/solidity-merkle-trees/src/trie/Bytes.sol"; import {ECDSA} from "@openzeppelin/contracts/utils/cryptography/ECDSA.sol"; import {ERC165} from "@openzeppelin/contracts/utils/introspection/ERC165.sol"; diff --git a/evm/src/consensus/Codec.sol b/evm/src/consensus/Codec.sol index 022b6f42d..07bf8fb51 100644 --- a/evm/src/consensus/Codec.sol +++ b/evm/src/consensus/Codec.sol @@ -14,9 +14,9 @@ // limitations under the License. pragma solidity 0.8.17; -import "@polytope-labs/solidity-merkle-trees/MerkleMultiProof.sol"; -import "@polytope-labs/solidity-merkle-trees/trie/substrate/ScaleCodec.sol"; -import "@polytope-labs/solidity-merkle-trees/trie/Bytes.sol"; +import "@polytope-labs/solidity-merkle-trees/src/MerkleMultiProof.sol"; +import "@polytope-labs/solidity-merkle-trees/src/trie/substrate/ScaleCodec.sol"; +import "@polytope-labs/solidity-merkle-trees/src/trie/Bytes.sol"; import "./Header.sol"; struct Payload { diff --git a/evm/src/consensus/Header.sol b/evm/src/consensus/Header.sol index 78744055e..aad997a78 100644 --- a/evm/src/consensus/Header.sol +++ b/evm/src/consensus/Header.sol @@ -15,8 +15,8 @@ pragma solidity 0.8.17; import {StateCommitment} from "@polytope-labs/ismp-solidity/IConsensusClient.sol"; -import "@polytope-labs/solidity-merkle-trees/trie/Bytes.sol"; -import "@polytope-labs/solidity-merkle-trees/trie/substrate/ScaleCodec.sol"; +import "@polytope-labs/solidity-merkle-trees/src/trie/Bytes.sol"; +import "@polytope-labs/solidity-merkle-trees/src/trie/substrate/ScaleCodec.sol"; struct DigestItem { bytes4 consensusId; diff --git a/evm/src/consensus/UltraPlonkBeefy.sol b/evm/src/consensus/UltraPlonkBeefy.sol index 6b9314f41..e4dd2ff93 100644 --- a/evm/src/consensus/UltraPlonkBeefy.sol +++ b/evm/src/consensus/UltraPlonkBeefy.sol @@ -17,10 +17,10 @@ pragma solidity 0.8.17; import "@polytope-labs/ismp-solidity/StateMachine.sol"; import "@polytope-labs/ismp-solidity/IConsensusClient.sol"; -import "@polytope-labs/solidity-merkle-trees/MerkleMultiProof.sol"; -import "@polytope-labs/solidity-merkle-trees/MerkleMountainRange.sol"; -import "@polytope-labs/solidity-merkle-trees/trie/substrate/ScaleCodec.sol"; -import "@polytope-labs/solidity-merkle-trees/trie/Bytes.sol"; +import "@polytope-labs/solidity-merkle-trees/src/MerkleMultiProof.sol"; +import "@polytope-labs/solidity-merkle-trees/src/MerkleMountainRange.sol"; +import "@polytope-labs/solidity-merkle-trees/src/trie/substrate/ScaleCodec.sol"; +import "@polytope-labs/solidity-merkle-trees/src/trie/Bytes.sol"; import "./verifiers/IVerifier.sol"; import "./Codec.sol"; diff --git a/evm/src/modules/HandlerV1.sol b/evm/src/modules/HandlerV1.sol index 0748d6c58..881201a35 100644 --- a/evm/src/modules/HandlerV1.sol +++ b/evm/src/modules/HandlerV1.sol @@ -14,9 +14,9 @@ // limitations under the License. pragma solidity 0.8.17; -import {MerkleMountainRange, MmrLeaf} from "@polytope-labs/solidity-merkle-trees/MerkleMountainRange.sol"; -import {MerklePatricia, StorageValue} from "@polytope-labs/solidity-merkle-trees/MerklePatricia.sol"; -import {Bytes} from "@polytope-labs/solidity-merkle-trees/trie/Bytes.sol"; +import {MerkleMountainRange, MmrLeaf} from "@polytope-labs/solidity-merkle-trees/src/MerkleMountainRange.sol"; +import {MerklePatricia, StorageValue} from "@polytope-labs/solidity-merkle-trees/src/MerklePatricia.sol"; +import {Bytes} from "@polytope-labs/solidity-merkle-trees/src/trie/Bytes.sol"; import {IConsensusClient, IntermediateState, StateMachineHeight, StateCommitment} from "@polytope-labs/ismp-solidity/IConsensusClient.sol"; import {IIsmpHost, FeeMetadata, FrozenStatus} from "@polytope-labs/ismp-solidity/IIsmpHost.sol"; diff --git a/evm/src/modules/HostManager.sol b/evm/src/modules/HostManager.sol index 27192ee35..9a91885ac 100644 --- a/evm/src/modules/HostManager.sol +++ b/evm/src/modules/HostManager.sol @@ -14,7 +14,7 @@ // limitations under the License. pragma solidity ^0.8.17; -import {Bytes} from "@polytope-labs/solidity-merkle-trees/trie/Bytes.sol"; +import {Bytes} from "@polytope-labs/solidity-merkle-trees/src/trie/Bytes.sol"; import {PostRequest, PostResponse, GetRequest, GetResponse} from "@polytope-labs/ismp-solidity/Message.sol"; import {StateMachine} from "@polytope-labs/ismp-solidity/StateMachine.sol"; import {IIsmpHost} from "@polytope-labs/ismp-solidity/IIsmpHost.sol"; diff --git a/evm/src/modules/Registrar.sol b/evm/src/modules/Registrar.sol index fee715789..b2c850a5c 100644 --- a/evm/src/modules/Registrar.sol +++ b/evm/src/modules/Registrar.sol @@ -19,7 +19,7 @@ import {IDispatcher, DispatchPost} from "@polytope-labs/ismp-solidity/IDispatche import {IIsmpHost} from "@polytope-labs/ismp-solidity/IIsmpHost.sol"; import {IERC20} from "@openzeppelin/contracts/token/ERC20/IERC20.sol"; import {SafeERC20} from "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol"; -import {Bytes} from "@polytope-labs/solidity-merkle-trees/trie/Bytes.sol"; +import {Bytes} from "@polytope-labs/solidity-merkle-trees/src/trie/Bytes.sol"; import {IUniswapV2Router02} from "@uniswap/v2-periphery/contracts/interfaces/IUniswapV2Router02.sol"; struct RequestBody { diff --git a/evm/src/modules/TokenGateway.sol b/evm/src/modules/TokenGateway.sol index 03fe47daa..b84cc99ba 100644 --- a/evm/src/modules/TokenGateway.sol +++ b/evm/src/modules/TokenGateway.sol @@ -23,7 +23,7 @@ import {IERC6160Ext20} from "@polytope-labs/erc6160/interfaces/IERC6160Ext20.sol import {ERC6160Ext20} from "@polytope-labs/erc6160/tokens/ERC6160Ext20.sol"; import {IERC20} from "@openzeppelin/contracts/token/ERC20/IERC20.sol"; import {SafeERC20} from "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol"; -import {Bytes} from "@polytope-labs/solidity-merkle-trees/trie/Bytes.sol"; +import {Bytes} from "@polytope-labs/solidity-merkle-trees/src/trie/Bytes.sol"; import {IUniswapV2Router02} from "@uniswap/v2-periphery/contracts/interfaces/IUniswapV2Router02.sol"; import {ICallDispatcher, CallDispatcherParams} from "./CallDispatcher.sol"; diff --git a/evm/test/EvmHostTest.sol b/evm/test/EvmHostTest.sol index 1a8cff123..6c69a1f59 100644 --- a/evm/test/EvmHostTest.sol +++ b/evm/test/EvmHostTest.sol @@ -18,7 +18,7 @@ import "forge-std/Test.sol"; import "../src/hosts/EvmHost.sol"; import {BaseTest} from "./BaseTest.sol"; -import {Bytes} from "@polytope-labs/solidity-merkle-trees/trie/Bytes.sol"; +import {Bytes} from "@polytope-labs/solidity-merkle-trees/src/trie/Bytes.sol"; import {DispatchPost} from "@polytope-labs/ismp-solidity/IDispatcher.sol"; import {StateMachine} from "@polytope-labs/ismp-solidity/StateMachine.sol"; From 9846773c9ef37f5784565d7cad2ee898e6231fce Mon Sep 17 00:00:00 2001 From: Seun Lanlege Date: Sat, 14 Sep 2024 13:42:35 +0000 Subject: [PATCH 5/5] bump ismp-solidity --- evm/package.json | 2 +- evm/yarn.lock | 19 ++++++------------- 2 files changed, 7 insertions(+), 14 deletions(-) diff --git a/evm/package.json b/evm/package.json index f2bb89a85..34d3d36cd 100644 --- a/evm/package.json +++ b/evm/package.json @@ -15,7 +15,7 @@ "description": "", "dependencies": { "@polytope-labs/erc6160": "^0.3.1", - "@polytope-labs/ismp-solidity": "^0.5.1", + "@polytope-labs/ismp-solidity": "^0.6.8", "@polytope-labs/solidity-merkle-trees": "^0.3.4", "@uniswap/v2-periphery": "^1.1.0-beta.0", "openzeppelin-solidity": "4.8.1", diff --git a/evm/yarn.lock b/evm/yarn.lock index 0d16ec515..d0a3874fd 100644 --- a/evm/yarn.lock +++ b/evm/yarn.lock @@ -11,24 +11,17 @@ prettier "^3.3.3" prettier-plugin-solidity "^1.3.1" -"@polytope-labs/ismp-solidity@^0.5.1": - version "0.5.1" - resolved "https://registry.yarnpkg.com/@polytope-labs/ismp-solidity/-/ismp-solidity-0.5.1.tgz#486cfa6e14cba48e8b6c070291a02a1ad3263b11" - integrity sha512-7XAJp/H8vA1/U3hQ3UIK2hNRZaaflLlQkJ3w6J9s3mWjxCfPhG/5R83vmRxnT2iHGIXNt1R8h/oDzu2S6wGCkg== +"@polytope-labs/ismp-solidity@^0.6.8": + version "0.6.8" + resolved "https://registry.yarnpkg.com/@polytope-labs/ismp-solidity/-/ismp-solidity-0.6.8.tgz#ce87fd11c239126db115b1290636f404f5dfc639" + integrity sha512-8OrqpkC4zbK5B9uVJtOqzcymsFbjS0uiaspEc6RdLFkXwO8SNDh2cgRIuVBLLFCmZgMjmRZyM4MlDv/aVKY84g== dependencies: - "@polytope-labs/solidity-merkle-trees" "^0.2.3" + "@polytope-labs/solidity-merkle-trees" "^0.3.3" openzeppelin-solidity "^4.8.1" prettier "^3.3.3" prettier-plugin-solidity "^1.3.1" -"@polytope-labs/solidity-merkle-trees@^0.2.3": - version "0.2.3" - resolved "https://registry.npmjs.org/@polytope-labs/solidity-merkle-trees/-/solidity-merkle-trees-0.2.3.tgz" - integrity sha512-aUcUjVNX0CXJNk7pS0jpqbfhi3w9VUI21/3IyTOblw0iAmctkUGq5TDwQBR7zXZnuTxpXbBPPEuXW1uhI2BHDA== - dependencies: - openzeppelin-solidity "^4.8.1" - -"@polytope-labs/solidity-merkle-trees@^0.3.4": +"@polytope-labs/solidity-merkle-trees@^0.3.3", "@polytope-labs/solidity-merkle-trees@^0.3.4": version "0.3.4" resolved "https://registry.yarnpkg.com/@polytope-labs/solidity-merkle-trees/-/solidity-merkle-trees-0.3.4.tgz#49553502c768d8dc46daaeb9d1734dd85b518739" integrity sha512-ldLirdWNd7qNi8iRfpwlHCwy/FrVMd5wbsu9qVxx/IyOnbQnzzU816AfL3Zn01iN8DhB5UFLMkQ/HmF+VOLGFA==