{
  "version": "2.2.0",
  "name": "rfq",
  "docs": [
    "Request for quote (RFQ) protocol module."
  ],
  "instructions": [
    {
      "name": "initializeProtocol",
      "accounts": [
        {
          "name": "signer",
          "isMut": true,
          "isSigner": true
        },
        {
          "name": "protocol",
          "isMut": true,
          "isSigner": false
        },
        {
          "name": "riskEngine",
          "isMut": false,
          "isSigner": false
        },
        {
          "name": "collateralMint",
          "isMut": false,
          "isSigner": false
        },
        {
          "name": "systemProgram",
          "isMut": false,
          "isSigner": false
        }
      ],
      "args": [
        {
          "name": "settleFees",
          "type": {
            "defined": "FeeParameters"
          }
        },
        {
          "name": "defaultFees",
          "type": {
            "defined": "FeeParameters"
          }
        },
        {
          "name": "assetAddFee",
          "type": "u64"
        }
      ]
    },
    {
      "name": "addInstrument",
      "accounts": [
        {
          "name": "authority",
          "isMut": false,
          "isSigner": true
        },
        {
          "name": "protocol",
          "isMut": true,
          "isSigner": false
        },
        {
          "name": "instrumentProgram",
          "isMut": false,
          "isSigner": false
        }
      ],
      "args": [
        {
          "name": "canBeUsedAsQuote",
          "type": "bool"
        },
        {
          "name": "validateDataAccountAmount",
          "type": "u8"
        },
        {
          "name": "prepareToSettleAccountAmount",
          "type": "u8"
        },
        {
          "name": "settleAccountAmount",
          "type": "u8"
        },
        {
          "name": "revertPreparationAccountAmount",
          "type": "u8"
        },
        {
          "name": "cleanUpAccountAmount",
          "type": "u8"
        }
      ]
    },
    {
      "name": "addPrintTradeProvider",
      "accounts": [
        {
          "name": "authority",
          "isMut": false,
          "isSigner": true
        },
        {
          "name": "protocol",
          "isMut": true,
          "isSigner": false
        },
        {
          "name": "printTradeProviderProgram",
          "isMut": false,
          "isSigner": false
        }
      ],
      "args": [
        {
          "name": "validateResponseAccountAmount",
          "type": "u8"
        },
        {
          "name": "settlementCanExpire",
          "type": "bool"
        }
      ]
    },
    {
      "name": "addBaseAsset",
      "accounts": [
        {
          "name": "authority",
          "isMut": true,
          "isSigner": true
        },
        {
          "name": "protocol",
          "isMut": false,
          "isSigner": false
        },
        {
          "name": "baseAsset",
          "isMut": true,
          "isSigner": false
        },
        {
          "name": "systemProgram",
          "isMut": false,
          "isSigner": false
        }
      ],
      "args": [
        {
          "name": "index",
          "type": {
            "defined": "BaseAssetIndex"
          }
        },
        {
          "name": "ticker",
          "type": "string"
        },
        {
          "name": "riskCategory",
          "type": {
            "defined": "RiskCategory"
          }
        },
        {
          "name": "oracleSource",
          "type": {
            "defined": "OracleSource"
          }
        },
        {
          "name": "switchboardOracle",
          "type": {
            "option": "publicKey"
          }
        },
        {
          "name": "pythOracle",
          "type": {
            "option": "publicKey"
          }
        },
        {
          "name": "inPlacePrice",
          "type": {
            "option": "f64"
          }
        }
      ]
    },
    {
      "name": "addUserAsset",
      "accounts": [
        {
          "name": "creator",
          "isMut": true,
          "isSigner": true
        },
        {
          "name": "authority",
          "isMut": true,
          "isSigner": false
        },
        {
          "name": "protocol",
          "isMut": false,
          "isSigner": false
        },
        {
          "name": "baseAsset",
          "isMut": true,
          "isSigner": false
        },
        {
          "name": "mintInfo",
          "isMut": true,
          "isSigner": false
        },
        {
          "name": "mint",
          "isMut": false,
          "isSigner": false
        },
        {
          "name": "systemProgram",
          "isMut": false,
          "isSigner": false
        }
      ],
      "args": [
        {
          "name": "index",
          "type": {
            "defined": "BaseAssetIndex"
          }
        },
        {
          "name": "ticker",
          "type": "string"
        }
      ]
    },
    {
      "name": "changeProtocolFees",
      "accounts": [
        {
          "name": "authority",
          "isMut": false,
          "isSigner": true
        },
        {
          "name": "protocol",
          "isMut": true,
          "isSigner": false
        }
      ],
      "args": [
        {
          "name": "settleFees",
          "type": {
            "option": {
              "defined": "FeeParameters"
            }
          }
        },
        {
          "name": "defaultFees",
          "type": {
            "option": {
              "defined": "FeeParameters"
            }
          }
        },
        {
          "name": "assetAddFee",
          "type": {
            "option": "u64"
          }
        }
      ]
    },
    {
      "name": "changeBaseAssetParameters",
      "accounts": [
        {
          "name": "authority",
          "isMut": false,
          "isSigner": true
        },
        {
          "name": "protocol",
          "isMut": false,
          "isSigner": false
        },
        {
          "name": "baseAsset",
          "isMut": true,
          "isSigner": false
        }
      ],
      "args": [
        {
          "name": "enabled",
          "type": {
            "option": "bool"
          }
        },
        {
          "name": "riskCategory",
          "type": {
            "option": {
              "defined": "RiskCategory"
            }
          }
        },
        {
          "name": "oracleSource",
          "type": {
            "option": {
              "defined": "OracleSource"
            }
          }
        },
        {
          "name": "switchboardOracle",
          "type": {
            "defined": "CustomOptionalPubkey"
          }
        },
        {
          "name": "pythOracle",
          "type": {
            "defined": "CustomOptionalPubkey"
          }
        },
        {
          "name": "inPlacePrice",
          "type": {
            "defined": "CustomOptionalF64"
          }
        },
        {
          "name": "strict",
          "type": {
            "option": "bool"
          }
        }
      ]
    },
    {
      "name": "setInstrumentEnabledStatus",
      "accounts": [
        {
          "name": "authority",
          "isMut": false,
          "isSigner": true
        },
        {
          "name": "protocol",
          "isMut": true,
          "isSigner": false
        }
      ],
      "args": [
        {
          "name": "instrumentKey",
          "type": "publicKey"
        },
        {
          "name": "enabledStatusToSet",
          "type": "bool"
        }
      ]
    },
    {
      "name": "registerMint",
      "accounts": [
        {
          "name": "authority",
          "isMut": true,
          "isSigner": true
        },
        {
          "name": "protocol",
          "isMut": false,
          "isSigner": false
        },
        {
          "name": "mintInfo",
          "isMut": true,
          "isSigner": false
        },
        {
          "name": "baseAsset",
          "isMut": false,
          "isSigner": false
        },
        {
          "name": "mint",
          "isMut": false,
          "isSigner": false
        },
        {
          "name": "systemProgram",
          "isMut": false,
          "isSigner": false
        }
      ],
      "args": []
    },
    {
      "name": "initializeCollateral",
      "accounts": [
        {
          "name": "user",
          "isMut": true,
          "isSigner": true
        },
        {
          "name": "protocol",
          "isMut": false,
          "isSigner": false
        },
        {
          "name": "collateralInfo",
          "isMut": true,
          "isSigner": false
        },
        {
          "name": "collateralToken",
          "isMut": true,
          "isSigner": false
        },
        {
          "name": "collateralMint",
          "isMut": false,
          "isSigner": false
        },
        {
          "name": "systemProgram",
          "isMut": false,
          "isSigner": false
        },
        {
          "name": "tokenProgram",
          "isMut": false,
          "isSigner": false
        },
        {
          "name": "rent",
          "isMut": false,
          "isSigner": false
        }
      ],
      "args": []
    },
    {
      "name": "fundCollateral",
      "accounts": [
        {
          "name": "user",
          "isMut": false,
          "isSigner": true
        },
        {
          "name": "userTokens",
          "isMut": true,
          "isSigner": false
        },
        {
          "name": "protocol",
          "isMut": false,
          "isSigner": false
        },
        {
          "name": "collateralInfo",
          "isMut": false,
          "isSigner": false
        },
        {
          "name": "collateralToken",
          "isMut": true,
          "isSigner": false
        },
        {
          "name": "tokenProgram",
          "isMut": false,
          "isSigner": false
        }
      ],
      "args": [
        {
          "name": "amount",
          "type": "u64"
        }
      ]
    },
    {
      "name": "withdrawCollateral",
      "accounts": [
        {
          "name": "user",
          "isMut": false,
          "isSigner": true
        },
        {
          "name": "userTokens",
          "isMut": true,
          "isSigner": false
        },
        {
          "name": "protocol",
          "isMut": false,
          "isSigner": false
        },
        {
          "name": "collateralInfo",
          "isMut": false,
          "isSigner": false
        },
        {
          "name": "collateralToken",
          "isMut": true,
          "isSigner": false
        },
        {
          "name": "tokenProgram",
          "isMut": false,
          "isSigner": false
        }
      ],
      "args": [
        {
          "name": "amount",
          "type": "u64"
        }
      ]
    },
    {
      "name": "createRfq",
      "accounts": [
        {
          "name": "taker",
          "isMut": true,
          "isSigner": true
        },
        {
          "name": "protocol",
          "isMut": false,
          "isSigner": false
        },
        {
          "name": "rfq",
          "isMut": true,
          "isSigner": false
        },
        {
          "name": "whitelist",
          "isMut": true,
          "isSigner": false,
          "isOptional": true
        },
        {
          "name": "systemProgram",
          "isMut": false,
          "isSigner": false
        }
      ],
      "args": [
        {
          "name": "expectedLegsSize",
          "type": "u16"
        },
        {
          "name": "expectedLegsHash",
          "type": {
            "array": [
              "u8",
              32
            ]
          }
        },
        {
          "name": "legs",
          "type": {
            "vec": {
              "defined": "ApiLeg"
            }
          }
        },
        {
          "name": "printTradeProvider",
          "type": {
            "option": "publicKey"
          }
        },
        {
          "name": "orderType",
          "type": {
            "defined": "OrderType"
          }
        },
        {
          "name": "quoteAsset",
          "type": {
            "defined": "QuoteAsset"
          }
        },
        {
          "name": "fixedSize",
          "type": {
            "defined": "FixedSize"
          }
        },
        {
          "name": "activeWindow",
          "type": "u32"
        },
        {
          "name": "settlingWindow",
          "type": "u32"
        },
        {
          "name": "recentTimestamp",
          "type": "u64"
        }
      ]
    },
    {
      "name": "addLegsToRfq",
      "accounts": [
        {
          "name": "taker",
          "isMut": false,
          "isSigner": true
        },
        {
          "name": "protocol",
          "isMut": false,
          "isSigner": false
        },
        {
          "name": "rfq",
          "isMut": true,
          "isSigner": false
        }
      ],
      "args": [
        {
          "name": "legs",
          "type": {
            "vec": {
              "defined": "ApiLeg"
            }
          }
        }
      ]
    },
    {
      "name": "validateRfqByPrintTradeProvider",
      "accounts": [
        {
          "name": "taker",
          "isMut": false,
          "isSigner": true
        },
        {
          "name": "protocol",
          "isMut": false,
          "isSigner": false
        },
        {
          "name": "rfq",
          "isMut": true,
          "isSigner": false
        }
      ],
      "args": []
    },
    {
      "name": "finalizeRfqConstruction",
      "accounts": [
        {
          "name": "taker",
          "isMut": false,
          "isSigner": true
        },
        {
          "name": "protocol",
          "isMut": false,
          "isSigner": false
        },
        {
          "name": "rfq",
          "isMut": true,
          "isSigner": false
        },
        {
          "name": "collateralInfo",
          "isMut": true,
          "isSigner": false
        },
        {
          "name": "collateralToken",
          "isMut": false,
          "isSigner": false
        },
        {
          "name": "riskEngine",
          "isMut": false,
          "isSigner": false
        }
      ],
      "args": []
    },
    {
      "name": "respondToRfq",
      "accounts": [
        {
          "name": "maker",
          "isMut": true,
          "isSigner": true
        },
        {
          "name": "protocol",
          "isMut": false,
          "isSigner": false
        },
        {
          "name": "rfq",
          "isMut": true,
          "isSigner": false
        },
        {
          "name": "response",
          "isMut": true,
          "isSigner": false
        },
        {
          "name": "collateralInfo",
          "isMut": true,
          "isSigner": false
        },
        {
          "name": "collateralToken",
          "isMut": false,
          "isSigner": false
        },
        {
          "name": "riskEngine",
          "isMut": false,
          "isSigner": false
        },
        {
          "name": "whitelist",
          "isMut": false,
          "isSigner": false,
          "isOptional": true
        },
        {
          "name": "systemProgram",
          "isMut": false,
          "isSigner": false
        }
      ],
      "args": [
        {
          "name": "bid",
          "type": {
            "option": {
              "defined": "Quote"
            }
          }
        },
        {
          "name": "ask",
          "type": {
            "option": {
              "defined": "Quote"
            }
          }
        },
        {
          "name": "pdaDistinguisher",
          "type": "u16"
        },
        {
          "name": "expirationTimestamp",
          "type": "i64"
        },
        {
          "name": "additionalData",
          "type": "bytes"
        }
      ]
    },
    {
      "name": "confirmResponse",
      "accounts": [
        {
          "name": "taker",
          "isMut": false,
          "isSigner": true
        },
        {
          "name": "protocol",
          "isMut": false,
          "isSigner": false
        },
        {
          "name": "rfq",
          "isMut": true,
          "isSigner": false
        },
        {
          "name": "response",
          "isMut": true,
          "isSigner": false
        },
        {
          "name": "collateralInfo",
          "isMut": true,
          "isSigner": false
        },
        {
          "name": "makerCollateralInfo",
          "isMut": true,
          "isSigner": false
        },
        {
          "name": "collateralToken",
          "isMut": false,
          "isSigner": false
        },
        {
          "name": "riskEngine",
          "isMut": false,
          "isSigner": false
        }
      ],
      "args": [
        {
          "name": "side",
          "type": {
            "defined": "QuoteSide"
          }
        },
        {
          "name": "overrideLegMultiplierBps",
          "type": {
            "option": "u64"
          }
        }
      ]
    },
    {
      "name": "prepareEscrowSettlement",
      "accounts": [
        {
          "name": "caller",
          "isMut": true,
          "isSigner": true
        },
        {
          "name": "protocol",
          "isMut": false,
          "isSigner": false
        },
        {
          "name": "rfq",
          "isMut": false,
          "isSigner": false
        },
        {
          "name": "response",
          "isMut": true,
          "isSigner": false
        }
      ],
      "args": [
        {
          "name": "side",
          "type": {
            "defined": "AuthoritySide"
          }
        },
        {
          "name": "legAmountToPrepare",
          "type": "u8"
        }
      ]
    },
    {
      "name": "prepareMoreEscrowLegsSettlement",
      "accounts": [
        {
          "name": "caller",
          "isMut": false,
          "isSigner": true
        },
        {
          "name": "protocol",
          "isMut": false,
          "isSigner": false
        },
        {
          "name": "rfq",
          "isMut": false,
          "isSigner": false
        },
        {
          "name": "response",
          "isMut": true,
          "isSigner": false
        }
      ],
      "args": [
        {
          "name": "side",
          "type": {
            "defined": "AuthoritySide"
          }
        },
        {
          "name": "legAmountToPrepare",
          "type": "u8"
        }
      ]
    },
    {
      "name": "preparePrintTradeSettlement",
      "accounts": [
        {
          "name": "caller",
          "isMut": true,
          "isSigner": true
        },
        {
          "name": "protocol",
          "isMut": false,
          "isSigner": false
        },
        {
          "name": "rfq",
          "isMut": false,
          "isSigner": false
        },
        {
          "name": "response",
          "isMut": true,
          "isSigner": false
        }
      ],
      "args": [
        {
          "name": "side",
          "type": {
            "defined": "AuthoritySide"
          }
        }
      ]
    },
    {
      "name": "settleEscrow",
      "accounts": [
        {
          "name": "protocol",
          "isMut": false,
          "isSigner": false
        },
        {
          "name": "rfq",
          "isMut": false,
          "isSigner": false
        },
        {
          "name": "response",
          "isMut": true,
          "isSigner": false
        }
      ],
      "args": []
    },
    {
      "name": "partiallySettleEscrowLegs",
      "accounts": [
        {
          "name": "protocol",
          "isMut": false,
          "isSigner": false
        },
        {
          "name": "rfq",
          "isMut": false,
          "isSigner": false
        },
        {
          "name": "response",
          "isMut": true,
          "isSigner": false
        }
      ],
      "args": [
        {
          "name": "legAmountToSettle",
          "type": "u8"
        }
      ]
    },
    {
      "name": "settlePrintTrade",
      "accounts": [
        {
          "name": "protocol",
          "isMut": false,
          "isSigner": false
        },
        {
          "name": "rfq",
          "isMut": false,
          "isSigner": false
        },
        {
          "name": "response",
          "isMut": true,
          "isSigner": false
        }
      ],
      "args": []
    },
    {
      "name": "expireSettlement",
      "accounts": [
        {
          "name": "protocol",
          "isMut": false,
          "isSigner": false
        },
        {
          "name": "rfq",
          "isMut": false,
          "isSigner": false
        },
        {
          "name": "response",
          "isMut": true,
          "isSigner": false
        }
      ],
      "args": []
    },
    {
      "name": "revertEscrowSettlementPreparation",
      "accounts": [
        {
          "name": "protocol",
          "isMut": false,
          "isSigner": false
        },
        {
          "name": "rfq",
          "isMut": false,
          "isSigner": false
        },
        {
          "name": "response",
          "isMut": true,
          "isSigner": false
        }
      ],
      "args": [
        {
          "name": "side",
          "type": {
            "defined": "AuthoritySide"
          }
        }
      ]
    },
    {
      "name": "partlyRevertEscrowSettlementPreparation",
      "accounts": [
        {
          "name": "protocol",
          "isMut": false,
          "isSigner": false
        },
        {
          "name": "rfq",
          "isMut": false,
          "isSigner": false
        },
        {
          "name": "response",
          "isMut": true,
          "isSigner": false
        }
      ],
      "args": [
        {
          "name": "side",
          "type": {
            "defined": "AuthoritySide"
          }
        },
        {
          "name": "legAmountToRevert",
          "type": "u8"
        }
      ]
    },
    {
      "name": "revertPrintTradeSettlementPreparationPreparation",
      "accounts": [
        {
          "name": "protocol",
          "isMut": false,
          "isSigner": false
        },
        {
          "name": "rfq",
          "isMut": false,
          "isSigner": false
        },
        {
          "name": "response",
          "isMut": true,
          "isSigner": false
        }
      ],
      "args": [
        {
          "name": "side",
          "type": {
            "defined": "AuthoritySide"
          }
        }
      ]
    },
    {
      "name": "unlockResponseCollateral",
      "accounts": [
        {
          "name": "protocol",
          "isMut": false,
          "isSigner": false
        },
        {
          "name": "rfq",
          "isMut": true,
          "isSigner": false
        },
        {
          "name": "response",
          "isMut": true,
          "isSigner": false
        },
        {
          "name": "takerCollateralInfo",
          "isMut": true,
          "isSigner": false
        },
        {
          "name": "makerCollateralInfo",
          "isMut": true,
          "isSigner": false
        },
        {
          "name": "takerCollateralTokens",
          "isMut": true,
          "isSigner": false
        },
        {
          "name": "makerCollateralTokens",
          "isMut": true,
          "isSigner": false
        },
        {
          "name": "protocolCollateralTokens",
          "isMut": true,
          "isSigner": false
        },
        {
          "name": "tokenProgram",
          "isMut": false,
          "isSigner": false
        }
      ],
      "args": []
    },
    {
      "name": "unlockRfqCollateral",
      "accounts": [
        {
          "name": "protocol",
          "isMut": false,
          "isSigner": false
        },
        {
          "name": "rfq",
          "isMut": true,
          "isSigner": false
        },
        {
          "name": "collateralInfo",
          "isMut": true,
          "isSigner": false
        }
      ],
      "args": []
    },
    {
      "name": "settleOnePartyDefault",
      "accounts": [
        {
          "name": "protocol",
          "isMut": false,
          "isSigner": false
        },
        {
          "name": "rfq",
          "isMut": true,
          "isSigner": false
        },
        {
          "name": "response",
          "isMut": true,
          "isSigner": false
        },
        {
          "name": "takerCollateralInfo",
          "isMut": true,
          "isSigner": false
        },
        {
          "name": "makerCollateralInfo",
          "isMut": true,
          "isSigner": false
        },
        {
          "name": "takerCollateralTokens",
          "isMut": true,
          "isSigner": false
        },
        {
          "name": "makerCollateralTokens",
          "isMut": true,
          "isSigner": false
        },
        {
          "name": "protocolCollateralTokens",
          "isMut": true,
          "isSigner": false
        },
        {
          "name": "tokenProgram",
          "isMut": false,
          "isSigner": false
        }
      ],
      "args": []
    },
    {
      "name": "settleTwoPartyDefault",
      "accounts": [
        {
          "name": "protocol",
          "isMut": false,
          "isSigner": false
        },
        {
          "name": "rfq",
          "isMut": true,
          "isSigner": false
        },
        {
          "name": "response",
          "isMut": true,
          "isSigner": false
        },
        {
          "name": "takerCollateralInfo",
          "isMut": true,
          "isSigner": false
        },
        {
          "name": "makerCollateralInfo",
          "isMut": true,
          "isSigner": false
        },
        {
          "name": "takerCollateralTokens",
          "isMut": true,
          "isSigner": false
        },
        {
          "name": "makerCollateralTokens",
          "isMut": true,
          "isSigner": false
        },
        {
          "name": "protocolCollateralTokens",
          "isMut": true,
          "isSigner": false
        },
        {
          "name": "tokenProgram",
          "isMut": false,
          "isSigner": false
        }
      ],
      "args": []
    },
    {
      "name": "cleanUpResponse",
      "accounts": [
        {
          "name": "maker",
          "isMut": true,
          "isSigner": false
        },
        {
          "name": "protocol",
          "isMut": false,
          "isSigner": false
        },
        {
          "name": "rfq",
          "isMut": true,
          "isSigner": false
        },
        {
          "name": "response",
          "isMut": true,
          "isSigner": false
        }
      ],
      "args": []
    },
    {
      "name": "cleanUpResponseEscrowLegs",
      "accounts": [
        {
          "name": "protocol",
          "isMut": false,
          "isSigner": false
        },
        {
          "name": "rfq",
          "isMut": false,
          "isSigner": false
        },
        {
          "name": "response",
          "isMut": true,
          "isSigner": false
        }
      ],
      "args": [
        {
          "name": "legAmountToClear",
          "type": "u8"
        }
      ]
    },
    {
      "name": "cleanUpRfq",
      "accounts": [
        {
          "name": "taker",
          "isMut": true,
          "isSigner": false
        },
        {
          "name": "protocol",
          "isMut": false,
          "isSigner": false
        },
        {
          "name": "rfq",
          "isMut": true,
          "isSigner": false
        },
        {
          "name": "whitelist",
          "isMut": true,
          "isSigner": false,
          "isOptional": true
        }
      ],
      "args": []
    },
    {
      "name": "cancelResponse",
      "accounts": [
        {
          "name": "maker",
          "isMut": false,
          "isSigner": true
        },
        {
          "name": "protocol",
          "isMut": false,
          "isSigner": false
        },
        {
          "name": "rfq",
          "isMut": false,
          "isSigner": false
        },
        {
          "name": "response",
          "isMut": true,
          "isSigner": false
        }
      ],
      "args": []
    },
    {
      "name": "cancelRfq",
      "accounts": [
        {
          "name": "taker",
          "isMut": false,
          "isSigner": true
        },
        {
          "name": "protocol",
          "isMut": false,
          "isSigner": false
        },
        {
          "name": "rfq",
          "isMut": true,
          "isSigner": false
        }
      ],
      "args": []
    },
    {
      "name": "closeProtocolState",
      "accounts": [
        {
          "name": "authority",
          "isMut": true,
          "isSigner": true
        },
        {
          "name": "protocol",
          "isMut": true,
          "isSigner": false
        }
      ],
      "args": []
    },
    {
      "name": "createWhitelist",
      "accounts": [
        {
          "name": "whitelistAccount",
          "isMut": true,
          "isSigner": true
        },
        {
          "name": "creator",
          "isMut": true,
          "isSigner": true
        },
        {
          "name": "systemProgram",
          "isMut": false,
          "isSigner": false
        }
      ],
      "args": [
        {
          "name": "whitelist",
          "type": {
            "vec": "publicKey"
          }
        }
      ]
    },
    {
      "name": "cleanUpWhitelist",
      "accounts": [
        {
          "name": "whitelistAccount",
          "isMut": true,
          "isSigner": false
        },
        {
          "name": "creator",
          "isMut": true,
          "isSigner": true
        },
        {
          "name": "systemProgram",
          "isMut": false,
          "isSigner": false
        }
      ],
      "args": []
    }
  ],
  "accounts": [
    {
      "name": "CollateralInfo",
      "type": {
        "kind": "struct",
        "fields": [
          {
            "name": "bump",
            "type": "u8"
          },
          {
            "name": "user",
            "type": "publicKey"
          },
          {
            "name": "tokenAccountBump",
            "type": "u8"
          },
          {
            "name": "lockedTokensAmount",
            "type": "u64"
          },
          {
            "name": "reserved",
            "type": {
              "array": [
                "u8",
                256
              ]
            }
          }
        ]
      }
    },
    {
      "name": "ProtocolState",
      "type": {
        "kind": "struct",
        "fields": [
          {
            "name": "authority",
            "type": "publicKey"
          },
          {
            "name": "bump",
            "type": "u8"
          },
          {
            "name": "active",
            "type": "bool"
          },
          {
            "name": "settleFees",
            "type": {
              "defined": "FeeParameters"
            }
          },
          {
            "name": "defaultFees",
            "type": {
              "defined": "FeeParameters"
            }
          },
          {
            "name": "riskEngine",
            "type": "publicKey"
          },
          {
            "name": "collateralMint",
            "type": "publicKey"
          },
          {
            "name": "printTradeProviders",
            "type": {
              "vec": {
                "defined": "PrintTradeProvider"
              }
            }
          },
          {
            "name": "instruments",
            "type": {
              "vec": {
                "defined": "Instrument"
              }
            }
          },
          {
            "name": "assetAddFee",
            "type": "u64"
          },
          {
            "name": "reserved",
            "type": {
              "array": [
                "u8",
                1016
              ]
            }
          }
        ]
      }
    },
    {
      "name": "BaseAssetInfo",
      "type": {
        "kind": "struct",
        "fields": [
          {
            "name": "bump",
            "type": "u8"
          },
          {
            "name": "index",
            "type": {
              "defined": "BaseAssetIndex"
            }
          },
          {
            "name": "enabled",
            "type": "bool"
          },
          {
            "name": "riskCategory",
            "type": {
              "defined": "RiskCategory"
            }
          },
          {
            "name": "oracleSource",
            "type": {
              "defined": "OracleSource"
            }
          },
          {
            "name": "switchboardOracle",
            "type": "publicKey"
          },
          {
            "name": "pythOracle",
            "type": "publicKey"
          },
          {
            "name": "inPlacePrice",
            "type": "f64"
          },
          {
            "name": "nonStrict",
            "type": "bool"
          },
          {
            "name": "reserved",
            "type": {
              "array": [
                "u8",
                159
              ]
            }
          },
          {
            "name": "ticker",
            "type": "string"
          }
        ]
      }
    },
    {
      "name": "MintInfo",
      "type": {
        "kind": "struct",
        "fields": [
          {
            "name": "bump",
            "type": "u8"
          },
          {
            "name": "mintAddress",
            "type": "publicKey"
          },
          {
            "name": "decimals",
            "type": "u8"
          },
          {
            "name": "mintType",
            "type": {
              "defined": "MintType"
            }
          },
          {
            "name": "reserved",
            "type": {
              "array": [
                "u8",
                160
              ]
            }
          }
        ]
      }
    },
    {
      "name": "Response",
      "type": {
        "kind": "struct",
        "fields": [
          {
            "name": "maker",
            "type": "publicKey"
          },
          {
            "name": "rfq",
            "type": "publicKey"
          },
          {
            "name": "creationTimestamp",
            "type": "i64"
          },
          {
            "name": "expirationTimestamp",
            "type": "i64"
          },
          {
            "name": "makerCollateralLocked",
            "type": "u64"
          },
          {
            "name": "takerCollateralLocked",
            "type": "u64"
          },
          {
            "name": "state",
            "type": {
              "defined": "StoredResponseState"
            }
          },
          {
            "name": "takerPreparedCounter",
            "type": "u8"
          },
          {
            "name": "makerPreparedCounter",
            "type": "u8"
          },
          {
            "name": "settledEscrowLegs",
            "type": "u8"
          },
          {
            "name": "reserved",
            "type": {
              "array": [
                "u8",
                256
              ]
            }
          },
          {
            "name": "confirmed",
            "type": {
              "option": {
                "defined": "Confirmation"
              }
            }
          },
          {
            "name": "defaultingParty",
            "type": {
              "option": {
                "defined": "DefaultingParty"
              }
            }
          },
          {
            "name": "printTradeInitializedBy",
            "type": {
              "option": {
                "defined": "AuthoritySide"
              }
            }
          },
          {
            "name": "escrowLegPreparationsInitializedBy",
            "type": {
              "vec": {
                "defined": "AuthoritySide"
              }
            }
          },
          {
            "name": "bid",
            "type": {
              "option": {
                "defined": "Quote"
              }
            }
          },
          {
            "name": "ask",
            "type": {
              "option": {
                "defined": "Quote"
              }
            }
          },
          {
            "name": "additionalData",
            "type": "bytes"
          }
        ]
      }
    },
    {
      "name": "Rfq",
      "type": {
        "kind": "struct",
        "fields": [
          {
            "name": "taker",
            "type": "publicKey"
          },
          {
            "name": "orderType",
            "type": {
              "defined": "OrderType"
            }
          },
          {
            "name": "fixedSize",
            "type": {
              "defined": "FixedSize"
            }
          },
          {
            "name": "quoteAsset",
            "type": {
              "defined": "QuoteAsset"
            }
          },
          {
            "name": "creationTimestamp",
            "type": "i64"
          },
          {
            "name": "activeWindow",
            "type": "u32"
          },
          {
            "name": "settlingWindow",
            "type": "u32"
          },
          {
            "name": "expectedLegsSize",
            "type": "u16"
          },
          {
            "name": "expectedLegsHash",
            "type": {
              "array": [
                "u8",
                32
              ]
            }
          },
          {
            "name": "state",
            "type": {
              "defined": "StoredRfqState"
            }
          },
          {
            "name": "nonResponseTakerCollateralLocked",
            "type": "u64"
          },
          {
            "name": "totalTakerCollateralLocked",
            "type": "u64"
          },
          {
            "name": "totalResponses",
            "type": "u32"
          },
          {
            "name": "clearedResponses",
            "type": "u32"
          },
          {
            "name": "confirmedResponses",
            "type": "u32"
          },
          {
            "name": "whitelist",
            "type": "publicKey"
          },
          {
            "name": "reserved",
            "type": {
              "array": [
                "u8",
                224
              ]
            }
          },
          {
            "name": "printTradeProvider",
            "type": {
              "option": "publicKey"
            }
          },
          {
            "name": "legs",
            "type": {
              "vec": {
                "defined": "Leg"
              }
            }
          }
        ]
      }
    },
    {
      "name": "Whitelist",
      "type": {
        "kind": "struct",
        "fields": [
          {
            "name": "creator",
            "type": "publicKey"
          },
          {
            "name": "associatedRfq",
            "type": "publicKey"
          },
          {
            "name": "whitelist",
            "type": {
              "vec": "publicKey"
            }
          }
        ]
      }
    }
  ],
  "types": [
    {
      "name": "PrintTradeProvider",
      "type": {
        "kind": "struct",
        "fields": [
          {
            "name": "programKey",
            "type": "publicKey"
          },
          {
            "name": "validateResponseAccountAmount",
            "type": "u8"
          },
          {
            "name": "settlementCanExpire",
            "type": "bool"
          }
        ]
      }
    },
    {
      "name": "Instrument",
      "type": {
        "kind": "struct",
        "fields": [
          {
            "name": "programKey",
            "type": "publicKey"
          },
          {
            "name": "enabled",
            "type": "bool"
          },
          {
            "name": "canBeUsedAsQuote",
            "type": "bool"
          },
          {
            "name": "validateDataAccountAmount",
            "type": "u8"
          },
          {
            "name": "prepareToSettleAccountAmount",
            "type": "u8"
          },
          {
            "name": "settleAccountAmount",
            "type": "u8"
          },
          {
            "name": "revertPreparationAccountAmount",
            "type": "u8"
          },
          {
            "name": "cleanUpAccountAmount",
            "type": "u8"
          },
          {
            "name": "reserved",
            "type": {
              "array": [
                "u8",
                32
              ]
            }
          }
        ]
      }
    },
    {
      "name": "FeeParameters",
      "type": {
        "kind": "struct",
        "fields": [
          {
            "name": "takerBps",
            "type": "u64"
          },
          {
            "name": "makerBps",
            "type": "u64"
          }
        ]
      }
    },
    {
      "name": "BaseAssetIndex",
      "type": {
        "kind": "struct",
        "fields": [
          {
            "name": "value",
            "type": "u16"
          }
        ]
      }
    },
    {
      "name": "Confirmation",
      "type": {
        "kind": "struct",
        "fields": [
          {
            "name": "side",
            "type": {
              "defined": "QuoteSide"
            }
          },
          {
            "name": "overrideLegMultiplierBps",
            "type": {
              "option": "u64"
            }
          }
        ]
      }
    },
    {
      "name": "QuoteAsset",
      "type": {
        "kind": "struct",
        "fields": [
          {
            "name": "settlementTypeMetadata",
            "type": {
              "defined": "SettlementTypeMetadata"
            }
          },
          {
            "name": "data",
            "type": "bytes"
          },
          {
            "name": "decimals",
            "type": "u8"
          }
        ]
      }
    },
    {
      "name": "Leg",
      "type": {
        "kind": "struct",
        "fields": [
          {
            "name": "settlementTypeMetadata",
            "type": {
              "defined": "SettlementTypeMetadata"
            }
          },
          {
            "name": "baseAssetIndex",
            "type": {
              "defined": "BaseAssetIndex"
            }
          },
          {
            "name": "data",
            "type": "bytes"
          },
          {
            "name": "amount",
            "type": "u64"
          },
          {
            "name": "amountDecimals",
            "type": "u8"
          },
          {
            "name": "side",
            "type": {
              "defined": "LegSide"
            }
          },
          {
            "name": "reserved",
            "type": {
              "array": [
                "u8",
                64
              ]
            }
          }
        ]
      }
    },
    {
      "name": "ApiLeg",
      "type": {
        "kind": "struct",
        "fields": [
          {
            "name": "settlementTypeMetadata",
            "type": {
              "defined": "SettlementTypeMetadata"
            }
          },
          {
            "name": "baseAssetIndex",
            "type": {
              "defined": "BaseAssetIndex"
            }
          },
          {
            "name": "data",
            "type": "bytes"
          },
          {
            "name": "amount",
            "type": "u64"
          },
          {
            "name": "amountDecimals",
            "type": "u8"
          },
          {
            "name": "side",
            "type": {
              "defined": "LegSide"
            }
          }
        ]
      }
    },
    {
      "name": "CustomOptionalPubkey",
      "type": {
        "kind": "enum",
        "variants": [
          {
            "name": "Some",
            "fields": [
              {
                "name": "value",
                "type": {
                  "option": "publicKey"
                }
              }
            ]
          },
          {
            "name": "None"
          }
        ]
      }
    },
    {
      "name": "CustomOptionalF64",
      "type": {
        "kind": "enum",
        "variants": [
          {
            "name": "Some",
            "fields": [
              {
                "name": "value",
                "type": {
                  "option": "f64"
                }
              }
            ]
          },
          {
            "name": "None"
          }
        ]
      }
    },
    {
      "name": "SettlementResult",
      "type": {
        "kind": "enum",
        "variants": [
          {
            "name": "Success"
          },
          {
            "name": "TakerDefaults"
          },
          {
            "name": "MakerDefaults"
          },
          {
            "name": "BothPartiesDefault"
          }
        ]
      }
    },
    {
      "name": "RiskCategory",
      "type": {
        "kind": "enum",
        "variants": [
          {
            "name": "VeryLow"
          },
          {
            "name": "Low"
          },
          {
            "name": "Medium"
          },
          {
            "name": "High"
          },
          {
            "name": "VeryHigh"
          },
          {
            "name": "Custom1"
          },
          {
            "name": "Custom2"
          },
          {
            "name": "Custom3"
          }
        ]
      }
    },
    {
      "name": "OracleSource",
      "type": {
        "kind": "enum",
        "variants": [
          {
            "name": "Switchboard"
          },
          {
            "name": "Pyth"
          },
          {
            "name": "InPlace"
          }
        ]
      }
    },
    {
      "name": "MintType",
      "type": {
        "kind": "enum",
        "variants": [
          {
            "name": "Stablecoin"
          },
          {
            "name": "AssetWithRisk",
            "fields": [
              {
                "name": "base_asset_index",
                "type": {
                  "defined": "BaseAssetIndex"
                }
              }
            ]
          }
        ]
      }
    },
    {
      "name": "QuoteSide",
      "type": {
        "kind": "enum",
        "variants": [
          {
            "name": "Bid"
          },
          {
            "name": "Ask"
          }
        ]
      }
    },
    {
      "name": "StoredResponseState",
      "type": {
        "kind": "enum",
        "variants": [
          {
            "name": "Active"
          },
          {
            "name": "Canceled"
          },
          {
            "name": "WaitingForLastLook"
          },
          {
            "name": "SettlingPreparations"
          },
          {
            "name": "ReadyForSettling"
          },
          {
            "name": "Settled"
          },
          {
            "name": "SettlementExpired"
          },
          {
            "name": "Defaulted"
          }
        ]
      }
    },
    {
      "name": "ResponseState",
      "type": {
        "kind": "enum",
        "variants": [
          {
            "name": "Active"
          },
          {
            "name": "Canceled"
          },
          {
            "name": "WaitingForLastLook"
          },
          {
            "name": "SettlingPreparations"
          },
          {
            "name": "OnlyMakerPrepared"
          },
          {
            "name": "OnlyTakerPrepared"
          },
          {
            "name": "ReadyForSettling"
          },
          {
            "name": "Settled"
          },
          {
            "name": "SettlementExpired"
          },
          {
            "name": "Defaulted"
          },
          {
            "name": "Expired"
          }
        ]
      }
    },
    {
      "name": "DefaultingParty",
      "type": {
        "kind": "enum",
        "variants": [
          {
            "name": "Taker"
          },
          {
            "name": "Maker"
          },
          {
            "name": "Both"
          }
        ]
      }
    },
    {
      "name": "AuthoritySide",
      "type": {
        "kind": "enum",
        "variants": [
          {
            "name": "Taker"
          },
          {
            "name": "Maker"
          }
        ]
      }
    },
    {
      "name": "Quote",
      "type": {
        "kind": "enum",
        "variants": [
          {
            "name": "Standard",
            "fields": [
              {
                "name": "price_quote",
                "type": {
                  "defined": "PriceQuote"
                }
              },
              {
                "name": "legs_multiplier_bps",
                "type": "u64"
              }
            ]
          },
          {
            "name": "FixedSize",
            "fields": [
              {
                "name": "price_quote",
                "type": {
                  "defined": "PriceQuote"
                }
              }
            ]
          }
        ]
      }
    },
    {
      "name": "PriceQuote",
      "type": {
        "kind": "enum",
        "variants": [
          {
            "name": "AbsolutePrice",
            "fields": [
              {
                "name": "amount_bps",
                "type": "i128"
              }
            ]
          }
        ]
      }
    },
    {
      "name": "SettlementTypeMetadata",
      "type": {
        "kind": "enum",
        "variants": [
          {
            "name": "Instrument",
            "fields": [
              {
                "name": "instrument_index",
                "type": "u8"
              }
            ]
          },
          {
            "name": "PrintTrade",
            "fields": [
              {
                "name": "instrument_type",
                "type": "u8"
              }
            ]
          }
        ]
      }
    },
    {
      "name": "FixedSize",
      "type": {
        "kind": "enum",
        "variants": [
          {
            "name": "None",
            "fields": [
              {
                "name": "padding",
                "type": "u64"
              }
            ]
          },
          {
            "name": "BaseAsset",
            "fields": [
              {
                "name": "legs_multiplier_bps",
                "type": "u64"
              }
            ]
          },
          {
            "name": "QuoteAsset",
            "fields": [
              {
                "name": "quote_amount",
                "type": "u64"
              }
            ]
          }
        ]
      }
    },
    {
      "name": "OrderType",
      "type": {
        "kind": "enum",
        "variants": [
          {
            "name": "Buy"
          },
          {
            "name": "Sell"
          },
          {
            "name": "TwoWay"
          }
        ]
      }
    },
    {
      "name": "StoredRfqState",
      "type": {
        "kind": "enum",
        "variants": [
          {
            "name": "Constructed"
          },
          {
            "name": "ValidatedByPrintTradeProvider"
          },
          {
            "name": "Active"
          },
          {
            "name": "Canceled"
          }
        ]
      }
    },
    {
      "name": "RfqState",
      "type": {
        "kind": "enum",
        "variants": [
          {
            "name": "Constructed"
          },
          {
            "name": "ValidatedByPrintTradeProvider"
          },
          {
            "name": "Active"
          },
          {
            "name": "Canceled"
          },
          {
            "name": "Expired"
          },
          {
            "name": "Settling"
          },
          {
            "name": "SettlingEnded"
          }
        ]
      }
    },
    {
      "name": "LegSide",
      "type": {
        "kind": "enum",
        "variants": [
          {
            "name": "Long"
          },
          {
            "name": "Short"
          }
        ]
      }
    },
    {
      "name": "AssetIdentifier",
      "type": {
        "kind": "enum",
        "variants": [
          {
            "name": "Leg",
            "fields": [
              {
                "name": "leg_index",
                "type": "u8"
              }
            ]
          },
          {
            "name": "Quote"
          }
        ]
      }
    }
  ],
  "errors": [
    {
      "code": 6000,
      "name": "NotAProtocolAuthority",
      "msg": "Require protocol authority"
    },
    {
      "code": 6001,
      "name": "AlreadyAdded",
      "msg": "Program is already added"
    },
    {
      "code": 6002,
      "name": "CannotAddBecauseOfMaxAmountLimit",
      "msg": "Can't add because the max limit is reached"
    },
    {
      "code": 6003,
      "name": "InvalidValueForAFee",
      "msg": "Fee can't be higher than 100%"
    },
    {
      "code": 6004,
      "name": "InvalidRiskEngineRegister",
      "msg": "Invalid risk engine register"
    },
    {
      "code": 6005,
      "name": "NotACollateralMint",
      "msg": "Passed mint is not a collateral mint"
    },
    {
      "code": 6006,
      "name": "NotACollateralTokenAccount",
      "msg": "Passed token account does not belong to collateral mint"
    },
    {
      "code": 6007,
      "name": "NotARiskEngine",
      "msg": "Passed account is not a risk engine in the protocol"
    },
    {
      "code": 6008,
      "name": "InvalidRecentTimestamp",
      "msg": "Recent timestamp is too different from on-chain time"
    },
    {
      "code": 6009,
      "name": "InvalidExpirationTimestamp",
      "msg": "Expiration timestamp is invalid"
    },
    {
      "code": 6010,
      "name": "EmptyLegsNotSupported",
      "msg": "An Rfq without legs is not supported"
    },
    {
      "code": 6011,
      "name": "LegsSizeDoesNotMatchExpectedSize",
      "msg": "Legs size does not match specified expected leg size"
    },
    {
      "code": 6012,
      "name": "LegsHashDoesNotMatchExpectedHash",
      "msg": "Legs hash does not match specified expected leg hash"
    },
    {
      "code": 6013,
      "name": "NotEnoughTokens",
      "msg": "Not enough tokens"
    },
    {
      "code": 6014,
      "name": "NotEnoughCollateral",
      "msg": "Not enough collateral"
    },
    {
      "code": 6015,
      "name": "NotAWhitelistedInstrument",
      "msg": "Not a whitelisted instrument"
    },
    {
      "code": 6016,
      "name": "NotAWhitelistedPrintTradeProvider",
      "msg": "Not a whitelisted print trade provider"
    },
    {
      "code": 6017,
      "name": "NotEnoughAccounts",
      "msg": "Not enough accounts"
    },
    {
      "code": 6018,
      "name": "PassedProgramIdDiffersFromAnInstrument",
      "msg": "Passed program id differs from an instrument"
    },
    {
      "code": 6019,
      "name": "PassedProgramIdDiffersFromAPrintTradeProvider",
      "msg": "Passed program id differs from a print trade provider"
    },
    {
      "code": 6020,
      "name": "RfqIsNotInRequiredState",
      "msg": "Rfq is not in required state"
    },
    {
      "code": 6021,
      "name": "ResponseDoesNotMatchOrderType",
      "msg": "Response does not match order type"
    },
    {
      "code": 6022,
      "name": "InvalidQuoteType",
      "msg": "Invalid quote type"
    },
    {
      "code": 6023,
      "name": "ResponseForAnotherRfq",
      "msg": "Response is for another Rfq"
    },
    {
      "code": 6024,
      "name": "NotATaker",
      "msg": "Passed address is not a rfq taker"
    },
    {
      "code": 6025,
      "name": "ResponseIsNotInRequiredState",
      "msg": "Response is not required state"
    },
    {
      "code": 6026,
      "name": "ConfirmedSideMissing",
      "msg": "Confirmed side is missing in a response"
    },
    {
      "code": 6027,
      "name": "NotAPassedAuthority",
      "msg": "Caller is not a authority passed in parameters"
    },
    {
      "code": 6028,
      "name": "TakerCanNotRespond",
      "msg": "Taker can not respond to rfq he had created"
    },
    {
      "code": 6029,
      "name": "NotAQuoteMint",
      "msg": "Not a quote mint"
    },
    {
      "code": 6030,
      "name": "WrongQuoteReceiver",
      "msg": "Quote receiver account is not a receiver associated token account"
    },
    {
      "code": 6031,
      "name": "NoLegMultiplierForFixedSize",
      "msg": "Fixed size rfq doesn't support specifying legs multiplier"
    },
    {
      "code": 6032,
      "name": "LegMultiplierHigherThanInQuote",
      "msg": "Leg multiplier can't be higher than which is specified in the quote"
    },
    {
      "code": 6033,
      "name": "CanNotLockAdditionalMakerCollateral",
      "msg": "Confirmation can't lock additional maker collateral"
    },
    {
      "code": 6034,
      "name": "NoPreparationToRevert",
      "msg": "This side of rfq either had not prepared or had already reverted"
    },
    {
      "code": 6035,
      "name": "NoCollateralLocked",
      "msg": "No collateral locked"
    },
    {
      "code": 6036,
      "name": "InvalidDefaultingParty",
      "msg": "Invalid defaulting party"
    },
    {
      "code": 6037,
      "name": "HaveCollateralLocked",
      "msg": "Can't clean up with collateral locked"
    },
    {
      "code": 6038,
      "name": "PendingPreparations",
      "msg": "Can't clean up with pending settle preparations"
    },
    {
      "code": 6039,
      "name": "NotAMaker",
      "msg": "Passed address is not a response maker"
    },
    {
      "code": 6040,
      "name": "NotFirstToPrepare",
      "msg": "Passed address is not of a party first to prepare for settlement"
    },
    {
      "code": 6041,
      "name": "HaveExistingResponses",
      "msg": "Rfq have not cleared responses and can't be cleaned up"
    },
    {
      "code": 6042,
      "name": "HaveResponses",
      "msg": "Can't cancel an rfq with existing responses"
    },
    {
      "code": 6043,
      "name": "InvalidSpecifiedLegAmount",
      "msg": "Invalid specified leg amount"
    },
    {
      "code": 6044,
      "name": "AlreadyStartedToPrepare",
      "msg": "Already started to prepare to settle"
    },
    {
      "code": 6045,
      "name": "HaveNotStartedToPrepare",
      "msg": "Have not started to prepare to settle"
    },
    {
      "code": 6046,
      "name": "TooManyLegs",
      "msg": "LegAmountExceedsMaximumLimit"
    },
    {
      "code": 6047,
      "name": "LegsDataTooBig",
      "msg": "LegsDataSizeExceedsMaximumLimit"
    },
    {
      "code": 6048,
      "name": "MaxInstruments",
      "msg": "Can't add new instrument because maximum amout of instruments already added"
    },
    {
      "code": 6049,
      "name": "InvalidQuoteInstrument",
      "msg": "Current instrument cannot be used as a quote asset"
    },
    {
      "code": 6050,
      "name": "NoPrintTradeProvider",
      "msg": "Print trade provider program ID wasn't provided"
    },
    {
      "code": 6051,
      "name": "InvalidSettlingFlow",
      "msg": "This instruction is used for settling flow of another type of rfq"
    },
    {
      "code": 6052,
      "name": "NoPrintTradeToCleanUp",
      "msg": "No print trade to clean up"
    },
    {
      "code": 6053,
      "name": "AssetAmountOverflow",
      "msg": "Amount of asset to transfer overflows"
    },
    {
      "code": 6054,
      "name": "PriceShouldBePositive",
      "msg": "Price should be positive for fixed quote asset amount RFQ"
    },
    {
      "code": 6055,
      "name": "AlreadyHasAStatusToSet",
      "msg": "Already has a status to set"
    },
    {
      "code": 6056,
      "name": "InstrumentIsDisabled",
      "msg": "Can't create an rfq using a disabled instrument"
    },
    {
      "code": 6057,
      "name": "BaseAssetIsDisabled",
      "msg": "Can't create an rfq using a disabled base asset"
    },
    {
      "code": 6058,
      "name": "SettlementInfoDoesNotMatchRfqType",
      "msg": "Settlement type info does not match rfq type"
    },
    {
      "code": 6059,
      "name": "SettlementExpirationIsDisabled",
      "msg": "Settlement expiration is disabled for this print trade provider"
    },
    {
      "code": 6060,
      "name": "TooEarlyForExpiration",
      "msg": "Too early for the settlement expiration"
    },
    {
      "code": 6061,
      "name": "DefaultValueIsNotPermitted",
      "msg": "Can't accept default value in non-default field"
    },
    {
      "code": 6062,
      "name": "OracleSourceIsMissing",
      "msg": "Specified oracle source is missing"
    },
    {
      "code": 6063,
      "name": "AdditionalDataIsNotSupported",
      "msg": "Additional data is not supported for escrow rfqs"
    },
    {
      "code": 6064,
      "name": "InvalidReturnDataEmitter",
      "msg": "Invalid return data emitter"
    },
    {
      "code": 6065,
      "name": "WhitelistMaximumCapacityReached",
      "msg": "Whitelist maximum capacity reached"
    },
    {
      "code": 6066,
      "name": "MakerAddressNotWhitelisted",
      "msg": "Cannot respond as maker address is not whitelisted"
    },
    {
      "code": 6067,
      "name": "WhitelistCreatorMismatch",
      "msg": "Whitelist creator mismatch"
    },
    {
      "code": 6068,
      "name": "WhitelistEmpty",
      "msg": "Whitelist empty"
    },
    {
      "code": 6069,
      "name": "AddressDoesNotExistOnWhitelist",
      "msg": "Address does not exist on whitelist"
    },
    {
      "code": 6070,
      "name": "WhitelistNotProvided",
      "msg": "Whitelist not provided"
    },
    {
      "code": 6071,
      "name": "WhitelistAddressMismatch",
      "msg": "Whitelist address mismatch"
    },
    {
      "code": 6072,
      "name": "WhitelistAlreadyAssociated",
      "msg": "Whitelist already associated with an RFQ"
    },
    {
      "code": 6073,
      "name": "WhitelistHasAssociatedRfq",
      "msg": "Whitelist has an associated RFQ"
    },
    {
      "code": 6074,
      "name": "WhitelistAssocaitionRFQMismatch",
      "msg": "Whitelist RFQ association  mismatch"
    }
  ],
  "metadata": {
    "address": "FqAhTZg86EKEzeWMLtutVDRXJuLWrey7oDHr3Au6RFdo",
    "origin": "anchor",
    "binaryVersion": "0.28.0",
    "libVersion": "0.28.0"
  }
}