diff --git a/test/protocol/switchboard/EVMxSwitchboard.t.sol b/test/protocol/switchboard/EVMxSwitchboard.t.sol index cf979b30..eaecdf67 100644 --- a/test/protocol/switchboard/EVMxSwitchboard.t.sol +++ b/test/protocol/switchboard/EVMxSwitchboard.t.sol @@ -279,19 +279,22 @@ contract EVMxSwitchboardTestBase is Test, Utils { * @dev Helper to create signature for assignTransmitter given digest params and new transmitter * @param digestParams_ The digest parameters (will be modified to use new transmitter) * @param newTransmitter_ The new transmitter address - * @return signature The signature for the new digest + * @return signature The signature for the old and new digest */ function _createAssignTransmitterSignature( DigestParams memory digestParams_, address newTransmitter_ ) internal view returns (bytes memory signature) { + // Create old digest with current transmitter (before modification) + bytes32 oldDigest = createDigest(digestParams_); + // Create new digest with new transmitter digestParams_.transmitter = toBytes32Format(newTransmitter_); bytes32 newDigest = createDigest(digestParams_); - // Create signature for the new digest + // Create signature digest with both old and new digests bytes32 signatureDigest = keccak256( - abi.encodePacked(toBytes32Format(address(evmxSwitchboard)), CHAIN_SLUG, newDigest) + abi.encodePacked(toBytes32Format(address(evmxSwitchboard)), CHAIN_SLUG, oldDigest, newDigest) ); signature = createSignature(signatureDigest, watcherPrivateKey); } @@ -1253,13 +1256,16 @@ contract SocketPayloadIdVerificationTest is EVMxSwitchboardTestBase { uint256 nonWatcherKey = 0x2222222222222222222222222222222222222222222222222222222222222222; address nonWatcher = vm.addr(nonWatcherKey); + // Create old digest with old transmitter + bytes32 oldDigest = createDigest(digestParams); + // Create new digest with new transmitter digestParams.transmitter = toBytes32Format(newTransmitter); bytes32 newDigest = createDigest(digestParams); - // Create signature for the new digest with non-watcher key + // Create signature digest with both old and new digests with non-watcher key bytes32 signatureDigest = keccak256( - abi.encodePacked(toBytes32Format(address(evmxSwitchboard)), CHAIN_SLUG, newDigest) + abi.encodePacked(toBytes32Format(address(evmxSwitchboard)), CHAIN_SLUG, oldDigest, newDigest) ); bytes memory signature = createSignature(signatureDigest, nonWatcherKey);