From 64b9ef4828f2341495998d2d8a33dd05b073fabd Mon Sep 17 00:00:00 2001 From: ron Date: Thu, 29 Aug 2024 09:19:27 +0800 Subject: [PATCH] Remove storage migration --- contracts/src/storage/AssetsStorage.sol | 7 +-- contracts/src/storage/LegacyAssetsStorage.sol | 34 ------------- .../rococo/GatewayWithAssetStorageV2.sol | 49 ------------------- 3 files changed, 4 insertions(+), 86 deletions(-) delete mode 100644 contracts/src/storage/LegacyAssetsStorage.sol delete mode 100644 contracts/src/upgrades/rococo/GatewayWithAssetStorageV2.sol diff --git a/contracts/src/storage/AssetsStorage.sol b/contracts/src/storage/AssetsStorage.sol index 252c8a0247..57b5bab21a 100644 --- a/contracts/src/storage/AssetsStorage.sol +++ b/contracts/src/storage/AssetsStorage.sol @@ -6,6 +6,8 @@ import {TokenInfo, ParaID} from "../Types.sol"; library AssetsStorage { struct Layout { + // Native token registry by token address + mapping(address token => TokenInfo) tokenRegistry; address assetHubAgent; ParaID assetHubParaID; // XCM fee charged by AssetHub for registering a token (DOT) @@ -14,12 +16,11 @@ library AssetsStorage { uint128 assetHubReserveTransferFee; // Extra fee for registering a token, to discourage spamming (Ether) uint256 registerTokenFee; - // Token registry by token address - mapping(address token => TokenInfo) tokenRegistry; + // Foreign token registry by token ID mapping(bytes32 foreignID => address) tokenAddressOf; } - bytes32 internal constant SLOT = keccak256("org.snowbridge.storage.assets.v2"); + bytes32 internal constant SLOT = keccak256("org.snowbridge.storage.assets"); function layout() internal pure returns (Layout storage $) { bytes32 slot = SLOT; diff --git a/contracts/src/storage/LegacyAssetsStorage.sol b/contracts/src/storage/LegacyAssetsStorage.sol deleted file mode 100644 index 199c7c9ede..0000000000 --- a/contracts/src/storage/LegacyAssetsStorage.sol +++ /dev/null @@ -1,34 +0,0 @@ -// SPDX-License-Identifier: Apache-2.0 -// SPDX-FileCopyrightText: 2023 Snowfork -pragma solidity 0.8.25; - -import {ParaID} from "../Types.sol"; - -library LegacyAssetsStorage { - struct TokenInfoLegacy { - bool isRegistered; - bytes31 __padding; - } - - struct Layout { - // Legacy token registry by token address - mapping(address token => TokenInfoLegacy) tokenRegistry; - address assetHubAgent; - ParaID assetHubParaID; - // XCM fee charged by AssetHub for registering a token (DOT) - uint128 assetHubCreateAssetFee; - // XCM fee charged by AssetHub for receiving a token from the Gateway (DOT) - uint128 assetHubReserveTransferFee; - // Extra fee for registering a token, to discourage spamming (Ether) - uint256 registerTokenFee; - } - - bytes32 internal constant SLOT = keccak256("org.snowbridge.storage.assets"); - - function layout() internal pure returns (Layout storage $) { - bytes32 slot = SLOT; - assembly { - $.slot := slot - } - } -} diff --git a/contracts/src/upgrades/rococo/GatewayWithAssetStorageV2.sol b/contracts/src/upgrades/rococo/GatewayWithAssetStorageV2.sol deleted file mode 100644 index 0b4117e04a..0000000000 --- a/contracts/src/upgrades/rococo/GatewayWithAssetStorageV2.sol +++ /dev/null @@ -1,49 +0,0 @@ -// SPDX-License-Identifier: Apache-2.0 -// SPDX-FileCopyrightText: 2023 Snowfork -pragma solidity 0.8.25; - -import "../../Gateway.sol"; - -import {AssetsStorage} from "../../storage/AssetsStorage.sol"; -import {LegacyAssetsStorage} from "../../storage/LegacyAssetsStorage.sol"; - -contract GatewayWithAssetStorageV2 is Gateway { - constructor( - address beefyClient, - address agentExecutor, - ParaID bridgeHubParaID, - bytes32 bridgeHubAgentID, - uint8 foreignTokenDecimals, - uint128 destinationMaxTransferFee - ) - Gateway( - beefyClient, - agentExecutor, - bridgeHubParaID, - bridgeHubAgentID, - foreignTokenDecimals, - destinationMaxTransferFee - ) - {} - - function initialize(bytes memory data) external override { - // Prevent initialization of storage in implementation contract - if (ERC1967.load() == address(0)) { - revert Unauthorized(); - } - - address[] memory tokens = abi.decode(data, (address[])); - - LegacyAssetsStorage.Layout storage $ = LegacyAssetsStorage.layout(); - AssetsStorage.Layout storage $v2 = AssetsStorage.layout(); - - $v2.assetHubAgent = $.assetHubAgent; - $v2.assetHubParaID = $.assetHubParaID; - $v2.assetHubCreateAssetFee = $.assetHubCreateAssetFee; - $v2.assetHubReserveTransferFee = $.assetHubReserveTransferFee; - $v2.registerTokenFee = $.registerTokenFee; - for (uint256 i = 0; i < tokens.length; i++) { - $v2.tokenRegistry[tokens[i]].isRegistered = $.tokenRegistry[tokens[i]].isRegistered; - } - } -}