resolveQueuedTrades is intended to be non atomic but invalid signature can still cause entire transaction to revert
BufferRouter#resolveQueuedTrades and unlockOptions attempt to be non atomic (i.e. doesn't revert the transaction if one fails) but an invalid signature can still cause the entire transaction to revert, because the ECDSA.recover sub call in _validateSigner can still revert.\\n```\\nfunction _validateSigner(\\n    uint256 timestamp,\\n    address asset,\\n    uint256 price,\\n    bytes memory signature\\n) internal view returns (bool) {\\n    bytes32 digest = ECDSA.toEthSignedMessageHash(\\n        keccak256(abi.encodePacked(timestamp, asset, price))\\n    );\\n    address recoveredSigner = ECDSA.recover(digest, signature);\\n    return recoveredSigner == publisher;\\n}\\n```\\n\\n_validateSigner can revert at the ECDSA.recover sub call breaking the intended non atomic nature of BufferRouter#resolveQueuedTrades and unlockOptions.
Use a try statement inside _validateSigner to avoid any reverts:\\n```\\n    function _validateSigner(\\n        uint256 timestamp,\\n        address asset,\\n        uint256 price,\\n        bytes memory signature\\n    ) internal view returns (bool) {\\n        bytes32 digest = ECDSA.toEthSignedMessageHash(\\n            keccak256(abi.encodePacked(timestamp, asset, price))\\n        );\\n-       address recoveredSigner = ECDSA.recover(digest, signature);\\n\\n+       try ECDSA.recover(digest, signature) returns (address recoveredSigner) {\\n+           return recoveredSigner == publisher;\\n+       } else {\\n+           return false;\\n+       }\\n    }\\n```\\n
BufferRouter#resolveQueuedTrades and unlockOptions don't function as intended if signature is malformed
```\\nfunction _validateSigner(\\n    uint256 timestamp,\\n    address asset,\\n    uint256 price,\\n    bytes memory signature\\n) internal view returns (bool) {\\n    bytes32 digest = ECDSA.toEthSignedMessageHash(\\n        keccak256(abi.encodePacked(timestamp, asset, price))\\n    );\\n    address recoveredSigner = ECDSA.recover(digest, signature);\\n    return recoveredSigner == publisher;\\n}\\n```\\n