diff --git a/safe-batches/obol-claiming.json b/safe-batches/obol-claiming.json index 763ff26..9d01536 100644 --- a/safe-batches/obol-claiming.json +++ b/safe-batches/obol-claiming.json @@ -1,14 +1,14 @@ { "version": "1.0", "chainId": "1", - "createdAt": 1741379312894, + "createdAt": 1741380088421, "meta": { "name": "Transactions Batch", "description": "obol-claiming", "txBuilderVersion": "1.10.0", "createdFromSafeAddress": "0x9D89745fD63Af482ce93a9AdB8B0BbDbb98D3e06", "createdFromOwnerAddress": "", - "checksum": "0x22a34fbc8fbe2add329e8574ae9c67de1f492ffd9e6c172ad8257af5733365a2" + "checksum": "0x0bc46cb3bdf1526c58ff28527be82d6dfa8b797bfb239203ca120d1c170688ac" }, "transactions": [ { @@ -16,6 +16,11 @@ "value": "0x0", "data": "0x5534fa0c000000000000000000000000efd2247fcc3c7aa1fcbe1d2b81e6d0164583eea34a3067b9000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001" }, + { + "to": "0x9000fef2846a5253fd2c6ed5241de0fddb404302", + "value": "0x0", + "data": "0x5534fa0c0000000000000000000000003b9122704a20946e9cb49b2a8616ccc0f0d61adb6198e339000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001" + }, { "to": "0x9000fef2846a5253fd2c6ed5241de0fddb404302", "value": "0x0", diff --git a/script/RumpelConfig.sol b/script/RumpelConfig.sol index c72397e..8ec2291 100644 --- a/script/RumpelConfig.sol +++ b/script/RumpelConfig.sol @@ -191,6 +191,7 @@ library RumpelConfig { address public constant MAINNET_LRT2 = 0x8F08B70456eb22f6109F57b8fafE862ED28E6040; address public constant MAINNET_OBOL_CLAIM = 0xEfd2247fcC3C7aA1FCbE1d2b81e6d0164583eeA3; address public constant MAINNET_OBOL = 0x0B010000b7624eb9B3DfBC279673C76E9D29D5F7; + address public constant MAINNET_OBOL_LOCKUPS = 0x3b9122704A20946E9Cb49b2a8616CCC0f0d61AdB; function updateGuardAllowlist(RumpelGuard rumpelGuard, string memory tag) internal { setupGuardProtocols(rumpelGuard, tag); @@ -2243,11 +2244,15 @@ library RumpelConfig { } function getOBOLProtocolConfigs() internal pure returns (ProtocolGuardConfig[] memory) { - ProtocolGuardConfig[] memory configs = new ProtocolGuardConfig[](1); + ProtocolGuardConfig[] memory configs = new ProtocolGuardConfig[](2); configs[0] = ProtocolGuardConfig({target: MAINNET_OBOL_CLAIM, selectorStates: new SelectorState[](1)}); configs[0].selectorStates[0] = - SelectorState({selector: IOBOLClaim.claimAndDelegate.selector, state: RumpelGuard.AllowListState.ON}); + SelectorState({selector: IObolClaim.claimAndDelegate.selector, state: RumpelGuard.AllowListState.ON}); + + configs[1] = ProtocolGuardConfig({target: MAINNET_OBOL_LOCKUPS, selectorStates: new SelectorState[](1)}); + configs[1].selectorStates[0] = + SelectorState({selector: IObolLockups.unlock.selector, state: RumpelGuard.AllowListState.ON}); return configs; } @@ -2374,7 +2379,7 @@ interface IFluidVaultFactory_ { function safeTransferFrom(address from_, address to_, uint256 id_) external; } -interface IOBOLClaim { +interface IObolClaim { struct SignatureParams { uint256 nonce; uint256 expiry; @@ -2392,6 +2397,10 @@ interface IOBOLClaim { ) external payable; } +interface IObolLockups { + function unlock(uint256) external; +} + // @dev actually a function in ActionMiscV3 called through the RouterProxy contract IPendleRouterV4 { struct RedeemYtIncomeToTokenStruct {