anchor.diff:      returns (uint256, bytes memory)
   {
       if (_token.balanceOf(from) < maxPossibleCharge) {
  -        return _declineRelayedCall(uint256(GSNRecipientERC20ChargeErrorCodes.INSUFFICIENT_BALANCE));
  +        return _rejectRelayedCall(uint256(GSNBouncerERC20FeeErrorCodes.INSUFFICIENT_BALANCE));
       } else if (_token.allowance(from, address(this)) < maxPossibleCharge) {
  -        return _declineRelayedCall(uint256(GSNRecipientERC20ChargeErrorCodes.INSUFFICIENT_ALLOWANCE));
  +        return _rejectRelayedCall(uint256(GSNBouncerERC20FeeErrorCodes.INSUFFICIENT_ALLOWANCE));
       }
   
  -    return _confirmRelayedCall(abi.encode(from, maxPossibleCharge, transactionFee, gasPrice));
  +    return _approveRelayedCall(abi.encode(from, maxPossibleCharge, transactionFee, gasPrice));
   }
   ----
   
  
positive.code: [source,solidity]
  ----
  
    return _declineRelayedCall(uint256(GSNRecipientSignedDataErrorCodes.INVALID_SIGNER));
  
    // Defined on base class GSNBouncerBase
    // uint256 constant private RELAYED_CALL_REJECTED = 11;
    // function _declineRelayedCall(uint256 errorCode) internal pure returns (uint256, bytes memory) {
    //    return (RELAYED_CALL_REJECTED + errorCode, "");
    // }
  ----
  
negative.code: [source,solidity]
  ----
  
    return _approveRelayedCall();
  
    // Defined on base class GSNBouncerBase
    // uint256 constant private RELAYED_CALL_ACCEPTED = 0;
    // function _approveRelayedCall(bytes memory context) internal pure returns (uint256, bytes memory) {
    //    return (RELAYED_CALL_ACCEPTED, context);
    // }
  ----
  