diff --git a/CHANGELOG.md b/CHANGELOG.md index 3bba1ad4d..553f0ee7f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -44,6 +44,8 @@ Master list of UniV3 forks: ### Breaking changes +* Deprecate Abstract Sepolia testnet + ### Non-breaking changes * Fix bug that was causing bad revert reason for expired `AllowanceHolder` diff --git a/api_secrets.json.template b/api_secrets.json.template index 40421aff5..bf081132f 100644 --- a/api_secrets.json.template +++ b/api_secrets.json.template @@ -95,10 +95,6 @@ "rpcUrl": "", "etherscanKey": "" }, - "abstract-testnet": { - "etherscanKey": "", - "rpcUrl": "" - }, "abstract": { "etherscanKey": "", "rpcUrl": "" diff --git a/chain_config.json b/chain_config.json index 3d16cfe0d..ff983e24a 100644 --- a/chain_config.json +++ b/chain_config.json @@ -843,38 +843,6 @@ "blockscoutApi": "https://api.socialscan.io/monad/v1/explorer/command_api/contract", "etherscanApi": "https://api.etherscan.io/v2/api?chainid=143" }, - "abstract-testnet": { - "chainId": 11124, - "displayName": "AbstractSepolia", - "wnative": "0x9EDCde0257F2386Ce177C3a7FCdd97787F0D841d", - "isShanghai": true, - "isCancun": true, - "isEraVm": true, - "extraFlags": "", - "extraScriptFlags": "", - "gasMultiplierPercent": 500, - "minGasPriceGwei": 1, - "safe": { - "toehold": "0xaECDbB0a3B1C6D1Fe1755866e330D82eC81fD4FD", - "singleton": "0x1727c2c531cf966f902E5927b98490fDFb3b2b70", - "factory": "0xDAec33641865E4651fB43181C6DB6f7232Ee91c2", - "fallback": "0x2f870a80647BbC554F3a0EBD093f11B4d2a7492A", - "multiCall": "0xf220D3b4DFb23C4ade8C88E526C1353AbAcbC38F", - "apiUrl": "https://transaction-testnet.safe.abs.xyz/api" - }, - "governance": { - "upgradeSafe": "0x0a3ba9036e62df32fAeC7753c3372B4375c6E20A", - "deploymentSafe": "0xcF20bD8fbd83C484a34A3f48B30612b42E87e7bb", - "pause": "0x1CeC01DC0fFEE5eB5aF47DbEc1809F2A7c601C30" - }, - "deployment": { - "forwardingMultiCall": "0x00000000000000CF9E3c5A26621af382fA17f24f", - "crossChainFactory": "", - "allowanceHolder": "0x0000000000001fF3684f28c67538d4D072C22734", - "deployer": "0x00000000000004533Fe15556B1E086BB1A72cEae" - }, - "etherscanApi": "https://api.etherscan.io/v2/api?chainid=11124" - }, "abstract": { "chainId": 2741, "displayName": "Abstract", diff --git a/script/SafeConfig.sol b/script/SafeConfig.sol index 4f6593907..393a5a82e 100644 --- a/script/SafeConfig.sol +++ b/script/SafeConfig.sol @@ -7,7 +7,6 @@ library SafeConfig { function _isTestnet() internal view returns (bool) { if ( block.chainid == 10143 // monad testnet - || block.chainid == 11124 // abstract sepolia || block.chainid == 11155111 // sepolia ) { return true; @@ -62,7 +61,6 @@ library SafeConfig { || block.chainid == 8453 // base || block.chainid == 9745 // plasma || block.chainid == 10143 // monad testnet - || block.chainid == 11124 // abstract sepolia || block.chainid == 34443 // mode || block.chainid == 42161 // arbitrum || block.chainid == 43114 // avalanche @@ -83,7 +81,6 @@ library SafeConfig { function isEraVm() internal view returns (bool) { if ( block.chainid == 2741 // abstract - || block.chainid == 11124 // abstract sepolia ) { return true; } diff --git a/src/chains/AbstractSepolia/BridgeSettler.sol b/src/chains/AbstractSepolia/BridgeSettler.sol deleted file mode 100644 index f8274ebfb..000000000 --- a/src/chains/AbstractSepolia/BridgeSettler.sol +++ /dev/null @@ -1,25 +0,0 @@ -// SPDX-License-Identifier: MIT -pragma solidity =0.8.25; - -import {SettlerAbstract} from "../../SettlerAbstract.sol"; -import {IBridgeSettlerActions} from "../../bridge/IBridgeSettlerActions.sol"; -import {BridgeSettler, BridgeSettlerBase} from "../../bridge/BridgeSettler.sol"; - -contract AbstractSepoliaBridgeSettler is BridgeSettler { - constructor(bytes20 gitCommit) BridgeSettlerBase(gitCommit) { - assert(block.chainid == 11124 || block.chainid == 31337); - } - - function _dispatch(uint256 i, uint256 action, bytes calldata data) - internal - override(BridgeSettlerBase, SettlerAbstract) - returns (bool) - { - if (super._dispatch(i, action, data)) { - return true; - } else { - return false; - } - return true; - } -} diff --git a/src/chains/AbstractSepolia/Common.sol b/src/chains/AbstractSepolia/Common.sol deleted file mode 100644 index 240a777a5..000000000 --- a/src/chains/AbstractSepolia/Common.sol +++ /dev/null @@ -1,61 +0,0 @@ -// SPDX-License-Identifier: MIT -pragma solidity =0.8.25; - -import {SettlerBase} from "../../SettlerBase.sol"; - -import {IERC20} from "@forge-std/interfaces/IERC20.sol"; -import {FreeMemory} from "../../utils/FreeMemory.sol"; - -import {ISettlerActions} from "../../ISettlerActions.sol"; -import {ISignatureTransfer} from "@permit2/interfaces/ISignatureTransfer.sol"; -import {revertUnknownForkId} from "../../core/SettlerErrors.sol"; - -import { - uniswapV3AbstractSepoliaFactory, - uniswapV3InitHashEraVm, - uniswapV3ForkId, - IUniswapV3Callback -} from "../../core/univ3forks/UniswapV3.sol"; - -// Solidity inheritance is stupid -import {SettlerAbstract} from "../../SettlerAbstract.sol"; - -abstract contract AbstractSepoliaMixin is FreeMemory, SettlerBase { - constructor() { - assert(block.chainid == 11124 || block.chainid == 31337); - } - - function _dispatch(uint256 i, uint256 action, bytes calldata data) - internal - virtual - override(/* SettlerAbstract, */ SettlerBase) - DANGEROUS_freeMemory - returns (bool) - { - if (super._dispatch(i, action, data)) { - return true; - } else { - return false; - } - return true; - } - - function _isEraVmUniV3Fork(uint8 forkId) internal pure virtual override returns (bool) { - return forkId == uniswapV3ForkId; - } - - function _uniV3ForkInfo(uint8 forkId) - internal - pure - override - returns (address factory, bytes32 initHash, uint32 callbackSelector) - { - if (forkId == uniswapV3ForkId) { - factory = uniswapV3AbstractSepoliaFactory; - initHash = uniswapV3InitHashEraVm; - callbackSelector = uint32(IUniswapV3Callback.uniswapV3SwapCallback.selector); - } else { - revertUnknownForkId(forkId); - } - } -} diff --git a/src/chains/AbstractSepolia/Intent.sol b/src/chains/AbstractSepolia/Intent.sol deleted file mode 100644 index 42e1c2409..000000000 --- a/src/chains/AbstractSepolia/Intent.sol +++ /dev/null @@ -1,102 +0,0 @@ -// SPDX-License-Identifier: MIT -pragma solidity =0.8.25; - -import {AbstractSepoliaSettlerMetaTxn} from "./MetaTxn.sol"; -import {SettlerIntent} from "../../SettlerIntent.sol"; - -import {IERC20} from "@forge-std/interfaces/IERC20.sol"; -import {ISignatureTransfer} from "@permit2/interfaces/ISignatureTransfer.sol"; -import {ISettlerActions} from "../../ISettlerActions.sol"; - -// Solidity inheritance is stupid -import {SettlerAbstract} from "../../SettlerAbstract.sol"; -import {SettlerBase} from "../../SettlerBase.sol"; -import {SettlerMetaTxn} from "../../SettlerMetaTxn.sol"; -import {SettlerIntent} from "../../SettlerIntent.sol"; -import {AbstractContext, Context} from "../../Context.sol"; -import {Permit2PaymentAbstract} from "../../core/Permit2PaymentAbstract.sol"; -import {Permit2PaymentMetaTxn} from "../../core/Permit2Payment.sol"; -import {UniswapV3Fork} from "../../core/UniswapV3Fork.sol"; - -/// @custom:security-contact security@0x.org -contract AbstractSepoliaSettlerIntent is SettlerIntent, AbstractSepoliaSettlerMetaTxn { - constructor(bytes20 gitCommit) AbstractSepoliaSettlerMetaTxn(gitCommit) {} - - // Solidity inheritance is stupid - function executeMetaTxn( - AllowedSlippage calldata slippage, - bytes[] calldata actions, - bytes32, /* zid & affiliate */ - address msgSender, - bytes calldata sig - ) public override(SettlerIntent, SettlerMetaTxn) returns (bool) { - return super.executeMetaTxn(slippage, actions, bytes32(0), msgSender, sig); - } - - function _dispatch(uint256 i, uint256 action, bytes calldata data) - internal - override(AbstractSepoliaSettlerMetaTxn, SettlerBase, SettlerAbstract) - returns (bool) - { - return super._dispatch(i, action, data); - } - - function _isEraVmUniV3Fork(uint8 forkId) internal pure override(AbstractSepoliaSettlerMetaTxn, UniswapV3Fork) returns (bool) { - return super._isEraVmUniV3Fork(forkId); - } - - function _isForwarded() internal view override(AbstractContext, Context, SettlerIntent) returns (bool) { - return super._isForwarded(); - } - - function _msgData() internal view override(AbstractContext, Context, SettlerIntent) returns (bytes calldata) { - return super._msgData(); - } - - function _msgSender() internal view override(SettlerIntent, AbstractSepoliaSettlerMetaTxn) returns (address) { - return super._msgSender(); - } - - function _witnessTypeSuffix() - internal - pure - override(SettlerIntent, Permit2PaymentMetaTxn) - returns (string memory) - { - return super._witnessTypeSuffix(); - } - - function _mandatorySlippageCheck() internal pure override(SettlerBase, SettlerIntent) returns (bool) { - return super._mandatorySlippageCheck(); - } - - function _tokenId() internal pure override(SettlerIntent, SettlerMetaTxn, SettlerAbstract) returns (uint256) { - return super._tokenId(); - } - - function _dispatchVIP(uint256 action, bytes calldata data, bytes calldata sig) - internal - override(AbstractSepoliaSettlerMetaTxn, SettlerMetaTxn) - returns (bool) - { - return super._dispatchVIP(action, data, sig); - } - - function _permitToSellAmountCalldata(ISignatureTransfer.PermitTransferFrom calldata permit) - internal - view - override(SettlerIntent, Permit2PaymentAbstract, Permit2PaymentMetaTxn) - returns (uint256) - { - return super._permitToSellAmountCalldata(permit); - } - - function _permitToSellAmount(ISignatureTransfer.PermitTransferFrom memory permit) - internal - view - override(SettlerIntent, Permit2PaymentAbstract, Permit2PaymentMetaTxn) - returns (uint256) - { - return super._permitToSellAmount(permit); - } -} diff --git a/src/chains/AbstractSepolia/MetaTxn.sol b/src/chains/AbstractSepolia/MetaTxn.sol deleted file mode 100644 index 6038c841c..000000000 --- a/src/chains/AbstractSepolia/MetaTxn.sol +++ /dev/null @@ -1,53 +0,0 @@ -// SPDX-License-Identifier: MIT -pragma solidity =0.8.25; - -import {AbstractSepoliaMixin} from "./Common.sol"; -import {SettlerMetaTxn} from "../../SettlerMetaTxn.sol"; - -import {IERC20} from "@forge-std/interfaces/IERC20.sol"; -import {ISignatureTransfer} from "@permit2/interfaces/ISignatureTransfer.sol"; -import {ISettlerActions} from "../../ISettlerActions.sol"; - -// Solidity inheritance is stupid -import {SettlerAbstract} from "../../SettlerAbstract.sol"; -import {SettlerBase} from "../../SettlerBase.sol"; -import {AbstractContext} from "../../Context.sol"; -import {UniswapV3Fork} from "../../core/UniswapV3Fork.sol"; - -/// @custom:security-contact security@0x.org -contract AbstractSepoliaSettlerMetaTxn is SettlerMetaTxn, AbstractSepoliaMixin { - constructor(bytes20 gitCommit) SettlerBase(gitCommit) {} - - function _dispatchVIP(uint256 action, bytes calldata data, bytes calldata sig) - internal - virtual - override - DANGEROUS_freeMemory - returns (bool) - { - if (super._dispatchVIP(action, data, sig)) { - return true; - } else { - return false; - } - return true; - } - - // Solidity inheritance is stupid - function _dispatch(uint256 i, uint256 action, bytes calldata data) - internal - virtual - override(SettlerAbstract, SettlerBase, AbstractSepoliaMixin) - returns (bool) - { - return super._dispatch(i, action, data); - } - - function _msgSender() internal view virtual override(SettlerMetaTxn, AbstractContext) returns (address) { - return super._msgSender(); - } - - function _isEraVmUniV3Fork(uint8 forkId) internal pure virtual override(AbstractSepoliaMixin, UniswapV3Fork) returns (bool) { - return super._isEraVmUniV3Fork(forkId); - } -} diff --git a/src/chains/AbstractSepolia/TakerSubmitted.sol b/src/chains/AbstractSepolia/TakerSubmitted.sol deleted file mode 100644 index b8bd491ef..000000000 --- a/src/chains/AbstractSepolia/TakerSubmitted.sol +++ /dev/null @@ -1,56 +0,0 @@ -// SPDX-License-Identifier: MIT -pragma solidity =0.8.25; - -import {AbstractSepoliaMixin} from "./Common.sol"; -import {Settler} from "../../Settler.sol"; - -import {IERC20} from "@forge-std/interfaces/IERC20.sol"; -import {ISignatureTransfer} from "@permit2/interfaces/ISignatureTransfer.sol"; -import {ISettlerActions} from "../../ISettlerActions.sol"; - -// Solidity inheritance is stupid -import {SettlerAbstract} from "../../SettlerAbstract.sol"; -import {SettlerBase} from "../../SettlerBase.sol"; -import {Permit2PaymentAbstract} from "../../core/Permit2PaymentAbstract.sol"; -import {AbstractContext} from "../../Context.sol"; -import {UniswapV3Fork} from "../../core/UniswapV3Fork.sol"; - -/// @custom:security-contact security@0x.org -contract AbstractSepoliaSettler is Settler, AbstractSepoliaMixin { - constructor(bytes20 gitCommit) SettlerBase(gitCommit) {} - - function _dispatchVIP(uint256 action, bytes calldata data) internal override DANGEROUS_freeMemory returns (bool) { - if (super._dispatchVIP(action, data)) { - return true; - } else { - return false; - } - return true; - } - - // Solidity inheritance is stupid - function _isRestrictedTarget(address target) - internal - pure - override(Settler, Permit2PaymentAbstract) - returns (bool) - { - return super._isRestrictedTarget(target); - } - - function _dispatch(uint256 i, uint256 action, bytes calldata data) - internal - override(Settler, AbstractSepoliaMixin) - returns (bool) - { - return super._dispatch(i, action, data); - } - - function _msgSender() internal view override(Settler, AbstractContext) returns (address) { - return super._msgSender(); - } - - function _isEraVmUniV3Fork(uint8 forkId) internal pure override(AbstractSepoliaMixin, UniswapV3Fork) returns (bool) { - return super._isEraVmUniV3Fork(forkId); - } -} diff --git a/src/core/univ3forks/UniswapV3.sol b/src/core/univ3forks/UniswapV3.sol index 9297d1999..eb19c2922 100644 --- a/src/core/univ3forks/UniswapV3.sol +++ b/src/core/univ3forks/UniswapV3.sol @@ -19,7 +19,6 @@ address constant uniswapV3MonadTestnetFactory = 0x961235a9020B05C44DF1026D956D1F address constant uniswapV3UnichainFactory = 0x1F98400000000000000000000000000000000003; // https://github.com/Uniswap/contracts/blob/main/deployments/130.md#fri-nov-08-2024 address constant uniswapV3PlasmaFactory = 0xcb2436774C3e191c85056d248EF4260ce5f27A9D; address constant uniswapV3MonadFactory = 0x204FAca1764B154221e35c0d20aBb3c525710498; -address constant uniswapV3AbstractSepoliaFactory = 0x2E17FF9b877661bDFEF8879a4B31665157a960F0; address constant uniswapV3AbstractFactory = 0xA1160e73B63F322ae88cC2d8E700833e71D0b2a1; bytes32 constant uniswapV3InitHash = 0xe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54;