LSP20 verification library deviates from spec and will accept fail values
The functions `lsp20VerifyCall()` and `lsp20VerifyCallResult()` are called to validate the owner accepts some account interaction. The specification states they must return a specific 4 byte magic value. However, the implementation will accept any byte array that starts with the required magic value.\\n```\\n    function _verifyCall(address logicVerifier) internal virtual returns (bool verifyAfter) {\\n        (bool success, bytes memory returnedData) = logicVerifier.call(\\n            abi.encodeWithSelector(ILSP20.lsp20VerifyCall.selector, msg.sender, msg.value, msg.data)\\n    );\\n    if (!success) _revert(false, returnedData);\\n    if (returnedData.length < 32) revert \\n      LSP20InvalidMagicValue(false, returnedData);\\n        bytes32 magicValue = abi.decode(returnedData, (bytes32));\\n    if (bytes3(magicValue) != \\n      bytes3(ILSP20.lsp20VerifyCall.selector))\\n        revert LSP20InvalidMagicValue(false, returnedData);\\n    return bytes1(magicValue[3]) == 0x01 ? true : false;\\n    }\\n```\\n\\nTherefore, implementations of the above functions which intend to signal failure status may be accepted by the verification wrapper above.
Verify that the return data length is 32 bytes (the 4 bytes are extended by the compiler), and that all other bytes are zero.
```\\n    function _verifyCall(address logicVerifier) internal virtual returns (bool verifyAfter) {\\n        (bool success, bytes memory returnedData) = logicVerifier.call(\\n            abi.encodeWithSelector(ILSP20.lsp20VerifyCall.selector, msg.sender, msg.value, msg.data)\\n    );\\n    if (!success) _revert(false, returnedData);\\n    if (returnedData.length < 32) revert \\n      LSP20InvalidMagicValue(false, returnedData);\\n        bytes32 magicValue = abi.decode(returnedData, (bytes32));\\n    if (bytes3(magicValue) != \\n      bytes3(ILSP20.lsp20VerifyCall.selector))\\n        revert LSP20InvalidMagicValue(false, returnedData);\\n    return bytes1(magicValue[3]) == 0x01 ? true : false;\\n    }\\n```\\n