From 1f0a344696229362671bfcdb5fca16c146361002 Mon Sep 17 00:00:00 2001 From: PedroAraoz Date: Mon, 30 Mar 2026 10:31:30 -0300 Subject: [PATCH 1/2] evm: add cross chain swap operation to safeguards --- packages/evm/contracts/safeguards/OperationsValidator.sol | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/packages/evm/contracts/safeguards/OperationsValidator.sol b/packages/evm/contracts/safeguards/OperationsValidator.sol index bf8cb3f..342095f 100644 --- a/packages/evm/contracts/safeguards/OperationsValidator.sol +++ b/packages/evm/contracts/safeguards/OperationsValidator.sol @@ -134,7 +134,9 @@ contract OperationsValidator is */ function _isSafeguardValid(Operation memory operation, Safeguard memory safeguard) internal pure returns (bool) { if (safeguard.mode == uint8(0)) revert OperationsValidatorNoneAllowed(); - if (operation.opType == uint8(OpType.Swap)) return _isSwapOperationValid(operation, safeguard); + if (operation.opType == uint8(OpType.Swap) || operation.opType == uint8(OpType.CrossChainSwap)) { + return _isSwapOperationValid(operation, safeguard); + } if (operation.opType == uint8(OpType.Transfer)) return _isTransferOperationValid(operation, safeguard); if (operation.opType == uint8(OpType.Call)) return _isCallOperationValid(operation, safeguard); revert OperationsValidatorUnknownOperationType(uint8(operation.opType)); From eb1ce284ff23e1c8ed37fb189f0e6c7db15c3143 Mon Sep 17 00:00:00 2001 From: PedroAraoz Date: Mon, 30 Mar 2026 11:09:08 -0300 Subject: [PATCH 2/2] update test to include cross chain swap --- packages/evm/test/safeguards/OperationsValidator.test.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/evm/test/safeguards/OperationsValidator.test.ts b/packages/evm/test/safeguards/OperationsValidator.test.ts index a7bdcd2..784e6b6 100644 --- a/packages/evm/test/safeguards/OperationsValidator.test.ts +++ b/packages/evm/test/safeguards/OperationsValidator.test.ts @@ -6,6 +6,7 @@ import { OperationsValidator } from '../../types/ethers-contracts/index.js' import { CallSafeguardMode, createCallOperation, + createCrossChainSwapOperation, createDeniedAccountSafeguard, createDeniedChainSafeguard, createDeniedSelectorSafeguard, @@ -122,7 +123,7 @@ describe('OperationsValidator', () => { }) context('TokenIn', () => { - const operation = createSwapOperation({ tokensIn: [{ token: token1, amount: 1n }], tokensOut: [] }) + const operation = createCrossChainSwapOperation({ tokensIn: [{ token: token1, amount: 1n }], tokensOut: [] }) context('when the token in is allowed', () => { const safeguard = createOnlyAccountSafeguard(SwapSafeguardMode.TokenIn, token1)