export type Escrow = { "version": "0.1.0"; "name": "escrow"; "instructions": [ { "name": "setTradeConfigAuthority"; "accounts": [ { "name": "marketAccount"; "isMut": true; "isSigner": false; }, { "name": "deployerAuthority"; "isMut": false; "isSigner": true; } ]; "args": [ { "name": "newTradeConfigAuthority"; "type": "publicKey"; } ]; }, { "name": "setAmlPolicyAuthority"; "accounts": [ { "name": "marketAccount"; "isMut": true; "isSigner": false; }, { "name": "deployerAuthority"; "isMut": true; "isSigner": true; } ]; "args": [ { "name": "newAmlPolicyAuthority"; "type": "publicKey"; } ]; }, { "name": "addArbitratorCert"; "accounts": [ { "name": "marketAccount"; "isMut": false; "isSigner": false; }, { "name": "tradeConfigAuthority"; "isMut": true; "isSigner": true; }, { "name": "arbitratorAuthority"; "isMut": false; "isSigner": false; }, { "name": "arbitratorCert"; "isMut": true; "isSigner": false; }, { "name": "systemProgram"; "isMut": false; "isSigner": false; } ]; "args": [ { "name": "arbitratorCertBump"; "type": "u8"; } ]; }, { "name": "addTokenMetadata"; "accounts": [ { "name": "marketAccount"; "isMut": true; "isSigner": false; }, { "name": "tradeConfigAuthority"; "isMut": true; "isSigner": true; }, { "name": "systemProgram"; "isMut": false; "isSigner": false; } ]; "args": [ { "name": "quota30Days"; "type": { "vec": "u128"; }; }, { "name": "quota24Hours"; "type": { "vec": "u128"; }; } ]; }, { "name": "addTokenOracleMetadata"; "accounts": [ { "name": "marketAccount"; "isMut": true; "isSigner": false; }, { "name": "tradeConfigAuthority"; "isMut": true; "isSigner": true; }, { "name": "systemProgram"; "isMut": false; "isSigner": false; } ]; "args": [ { "name": "renecOraclePubkey"; "type": "publicKey"; }, { "name": "quota30Days"; "type": { "vec": "u128"; }; }, { "name": "quota24Hours"; "type": { "vec": "u128"; }; } ]; }, { "name": "setRenecRate"; "accounts": [ { "name": "tradeConfigAuthority"; "isMut": false; "isSigner": true; }, { "name": "marketAccount"; "isMut": true; "isSigner": false; } ]; "args": [ { "name": "renecRate"; "type": "u64"; } ]; }, { "name": "setUsdRate"; "accounts": [ { "name": "tradeConfigAuthority"; "isMut": false; "isSigner": true; }, { "name": "marketAccount"; "isMut": true; "isSigner": false; } ]; "args": [ { "name": "usdRate"; "type": "u64"; } ]; }, { "name": "setMinimumOfferSize"; "accounts": [ { "name": "tradeConfigAuthority"; "isMut": false; "isSigner": true; }, { "name": "marketAccount"; "isMut": true; "isSigner": false; } ]; "args": [ { "name": "minimumOfferSize"; "type": "u64"; } ]; }, { "name": "updateMarketState"; "accounts": [ { "name": "marketAccount"; "isMut": true; "isSigner": false; }, { "name": "tradeConfigAuthority"; "isMut": false; "isSigner": true; } ]; "args": [ { "name": "treasuryPubkey"; "type": { "option": "publicKey"; }; }, { "name": "bondSize"; "type": { "option": "u64"; }; }, { "name": "arbitratorCommission"; "type": { "option": "u64"; }; }, { "name": "treasuryShare"; "type": { "option": "u64"; }; }, { "name": "paymentDuration"; "type": { "option": "u64"; }; }, { "name": "cancelPenaltyRate"; "type": { "option": "u64"; }; }, { "name": "limitActiveBondlessTrade"; "type": { "option": "u16"; }; } ]; }, { "name": "initKycCert"; "docs": [ "Init default kyc cert account for user. Anyone can call this ix", "By default, the kyc cert of the target user is 0" ]; "accounts": [ { "name": "marketAccount"; "isMut": true; "isSigner": false; }, { "name": "marketNativeVault"; "isMut": true; "isSigner": false; }, { "name": "caller"; "isMut": true; "isSigner": true; }, { "name": "tokenMint"; "isMut": false; "isSigner": false; }, { "name": "kycCert"; "isMut": true; "isSigner": false; }, { "name": "systemProgram"; "isMut": false; "isSigner": false; }, { "name": "rent"; "isMut": false; "isSigner": false; } ]; "args": [ { "name": "user"; "type": "publicKey"; }, { "name": "kycCertBump"; "type": "u8"; } ]; }, { "name": "setKycCert"; "docs": [ "only aml_policy authority can call and set the level a kyc cert of an user", "prerequisite: the kyc cert account of the user has been initialized by the init_kyc_cert ix" ]; "accounts": [ { "name": "marketAccount"; "isMut": true; "isSigner": false; }, { "name": "amlPolicyAuthority"; "isMut": false; "isSigner": true; }, { "name": "tokenMint"; "isMut": false; "isSigner": false; }, { "name": "kycCert"; "isMut": true; "isSigner": false; } ]; "args": [ { "name": "user"; "type": "publicKey"; }, { "name": "level"; "type": "u8"; } ]; }, { "name": "removeArbitratorCert"; "accounts": [ { "name": "marketAccount"; "isMut": false; "isSigner": false; }, { "name": "tradeConfigAuthority"; "isMut": true; "isSigner": true; }, { "name": "arbitratorAuthority"; "isMut": false; "isSigner": false; }, { "name": "arbitratorCert"; "isMut": true; "isSigner": false; }, { "name": "systemProgram"; "isMut": false; "isSigner": false; } ]; "args": []; }, { "name": "initializeConfig"; "accounts": [ { "name": "configAccount"; "isMut": true; "isSigner": false; }, { "name": "deployer"; "isMut": true; "isSigner": true; }, { "name": "tokenProgram"; "isMut": false; "isSigner": false; }, { "name": "systemProgram"; "isMut": false; "isSigner": false; }, { "name": "rent"; "isMut": false; "isSigner": false; } ]; "args": [ { "name": "configId"; "type": "string"; }, { "name": "bump"; "type": "u8"; }, { "name": "startOfferId"; "type": "u64"; }, { "name": "startTradeId"; "type": "u64"; } ]; }, { "name": "initializeMarket"; "accounts": [ { "name": "configAccount"; "isMut": false; "isSigner": false; }, { "name": "marketAccount"; "isMut": true; "isSigner": false; }, { "name": "tokenMint"; "isMut": true; "isSigner": false; }, { "name": "marketTokenVault"; "isMut": true; "isSigner": false; }, { "name": "marketNativeVault"; "isMut": true; "isSigner": false; }, { "name": "deployer"; "isMut": true; "isSigner": true; }, { "name": "tokenProgram"; "isMut": false; "isSigner": false; }, { "name": "systemProgram"; "isMut": false; "isSigner": false; }, { "name": "rent"; "isMut": false; "isSigner": false; } ]; "args": [ { "name": "marketId"; "type": "string"; }, { "name": "tradeConfigAuthority"; "type": "publicKey"; }, { "name": "amlPolicyAuthority"; "type": "publicKey"; }, { "name": "treasuryPubkey"; "type": "publicKey"; }, { "name": "bondSize"; "type": "u64"; }, { "name": "arbitratorCommission"; "type": "u64"; }, { "name": "treasuryShare"; "type": "u64"; }, { "name": "paymentDuration"; "type": "u64"; }, { "name": "cancelPenaltyRate"; "type": "u64"; }, { "name": "marketBump"; "type": "u8"; }, { "name": "tokenVaultBump"; "type": "u8"; }, { "name": "nativeVaultBump"; "type": "u8"; } ]; }, { "name": "makeOffer"; "accounts": [ { "name": "configAccount"; "isMut": true; "isSigner": false; }, { "name": "marketAccount"; "isMut": true; "isSigner": false; }, { "name": "marketTokenVault"; "isMut": true; "isSigner": false; }, { "name": "marketNativeVault"; "isMut": true; "isSigner": false; }, { "name": "offerAccount"; "isMut": true; "isSigner": false; }, { "name": "tokenMint"; "isMut": false; "isSigner": false; }, { "name": "userTokenAccount"; "isMut": true; "isSigner": false; }, { "name": "user"; "isMut": true; "isSigner": true; }, { "name": "tokenProgram"; "isMut": false; "isSigner": false; }, { "name": "systemProgram"; "isMut": false; "isSigner": false; }, { "name": "rent"; "isMut": false; "isSigner": false; } ]; "args": [ { "name": "side"; "type": { "defined": "TradeSide"; }; }, { "name": "bondType"; "type": { "defined": "BondType"; }; }, { "name": "minTradeSize"; "type": "u64"; }, { "name": "tokenAmount"; "type": "u64"; }, { "name": "rate"; "type": "u64"; }, { "name": "fiatCurrency"; "type": "string"; }, { "name": "offerBump"; "type": "u8"; }, { "name": "bankName"; "type": { "option": "string"; }; }, { "name": "accountNumber"; "type": { "option": "string"; }; }, { "name": "accountName"; "type": { "option": "string"; }; }, { "name": "nonce"; "type": { "option": "string"; }; } ]; }, { "name": "makeOfferOracle"; "accounts": [ { "name": "configAccount"; "isMut": true; "isSigner": false; }, { "name": "marketAccount"; "isMut": true; "isSigner": false; }, { "name": "marketTokenVault"; "isMut": true; "isSigner": false; }, { "name": "marketNativeVault"; "isMut": true; "isSigner": false; }, { "name": "offerAccount"; "isMut": true; "isSigner": false; }, { "name": "tokenMint"; "isMut": false; "isSigner": false; }, { "name": "userTokenAccount"; "isMut": true; "isSigner": false; }, { "name": "user"; "isMut": true; "isSigner": true; }, { "name": "oracleProduct"; "isMut": false; "isSigner": false; }, { "name": "oraclePrice"; "isMut": false; "isSigner": false; }, { "name": "tokenProgram"; "isMut": false; "isSigner": false; }, { "name": "systemProgram"; "isMut": false; "isSigner": false; }, { "name": "rent"; "isMut": false; "isSigner": false; } ]; "args": [ { "name": "side"; "type": { "defined": "TradeSide"; }; }, { "name": "bondType"; "type": { "defined": "BondType"; }; }, { "name": "minTradeSize"; "type": "u64"; }, { "name": "tokenAmount"; "type": "u64"; }, { "name": "rate"; "type": "u64"; }, { "name": "fiatCurrency"; "type": "string"; }, { "name": "offerBump"; "type": "u8"; }, { "name": "bankName"; "type": { "option": "string"; }; }, { "name": "accountNumber"; "type": { "option": "string"; }; }, { "name": "accountName"; "type": { "option": "string"; }; }, { "name": "nonce"; "type": { "option": "string"; }; } ]; }, { "name": "matchCreateTrade"; "accounts": [ { "name": "configAccount"; "isMut": true; "isSigner": false; }, { "name": "marketAccount"; "isMut": true; "isSigner": false; }, { "name": "marketTokenVault"; "isMut": true; "isSigner": false; }, { "name": "marketNativeVault"; "isMut": true; "isSigner": false; }, { "name": "takerTokenAccount"; "isMut": true; "isSigner": false; }, { "name": "taker"; "isMut": true; "isSigner": true; }, { "name": "kycCert"; "isMut": true; "isSigner": false; }, { "name": "tokenProgram"; "isMut": false; "isSigner": false; }, { "name": "systemProgram"; "isMut": false; "isSigner": false; }, { "name": "rent"; "isMut": false; "isSigner": false; } ]; "args": [ { "name": "offerQuantity"; "type": "u8"; }, { "name": "totalTradeAmount"; "type": "u64"; }, { "name": "amountSpecifiedIsCrypto"; "type": "bool"; }, { "name": "rates"; "type": { "vec": "u64"; }; }, { "name": "tradeIds"; "type": { "vec": "u64"; }; }, { "name": "bumps"; "type": "bytes"; }, { "name": "useBondless"; "type": "bool"; }, { "name": "takerBondType"; "type": { "defined": "BondType"; }; } ]; }, { "name": "matchCreateTradeWithBuyOffer"; "accounts": [ { "name": "configAccount"; "isMut": true; "isSigner": false; }, { "name": "marketAccount"; "isMut": true; "isSigner": false; }, { "name": "marketTokenVault"; "isMut": true; "isSigner": false; }, { "name": "marketNativeVault"; "isMut": true; "isSigner": false; }, { "name": "takerTokenAccount"; "isMut": true; "isSigner": false; }, { "name": "taker"; "isMut": true; "isSigner": true; }, { "name": "kycCert"; "isMut": true; "isSigner": false; }, { "name": "tokenProgram"; "isMut": false; "isSigner": false; }, { "name": "systemProgram"; "isMut": false; "isSigner": false; }, { "name": "rent"; "isMut": false; "isSigner": false; } ]; "args": [ { "name": "offerQuantity"; "type": "u8"; }, { "name": "totalTradeAmount"; "type": "u64"; }, { "name": "amountSpecifiedIsCrypto"; "type": "bool"; }, { "name": "rates"; "type": { "vec": "u64"; }; }, { "name": "tradeIds"; "type": { "vec": "u64"; }; }, { "name": "bumps"; "type": "bytes"; }, { "name": "useBondless"; "type": "bool"; } ]; }, { "name": "cancelOffer"; "accounts": [ { "name": "marketAccount"; "isMut": true; "isSigner": false; }, { "name": "marketTokenVault"; "isMut": true; "isSigner": false; }, { "name": "marketNativeVault"; "isMut": true; "isSigner": false; }, { "name": "offerAccount"; "isMut": true; "isSigner": false; }, { "name": "tokenMint"; "isMut": false; "isSigner": false; }, { "name": "userTokenAccount"; "isMut": true; "isSigner": false; }, { "name": "user"; "isMut": true; "isSigner": true; }, { "name": "tokenProgram"; "isMut": false; "isSigner": false; }, { "name": "systemProgram"; "isMut": false; "isSigner": false; } ]; "args": []; }, { "name": "cancelTrade"; "accounts": [ { "name": "marketAccount"; "isMut": true; "isSigner": false; }, { "name": "marketTokenVault"; "isMut": true; "isSigner": false; }, { "name": "marketNativeVault"; "isMut": true; "isSigner": false; }, { "name": "kycCert"; "isMut": true; "isSigner": false; }, { "name": "sellOfferAccount"; "isMut": true; "isSigner": false; }, { "name": "tradeAccount"; "isMut": true; "isSigner": false; }, { "name": "treasuryAuthority"; "isMut": true; "isSigner": false; }, { "name": "treasuryTokenAccount"; "isMut": true; "isSigner": false; }, { "name": "taker"; "isMut": true; "isSigner": true; }, { "name": "takerTokenAccount"; "isMut": true; "isSigner": false; }, { "name": "tokenProgram"; "isMut": false; "isSigner": false; }, { "name": "systemProgram"; "isMut": false; "isSigner": false; } ]; "args": []; }, { "name": "release"; "accounts": [ { "name": "marketAccount"; "isMut": true; "isSigner": false; }, { "name": "marketTokenVault"; "isMut": true; "isSigner": false; }, { "name": "marketNativeVault"; "isMut": true; "isSigner": false; }, { "name": "kycCert"; "isMut": true; "isSigner": false; }, { "name": "sellOfferAccount"; "isMut": true; "isSigner": false; }, { "name": "tradeAccount"; "isMut": true; "isSigner": false; }, { "name": "seller"; "isMut": true; "isSigner": true; }, { "name": "buyer"; "isMut": true; "isSigner": false; }, { "name": "sellerTokenAccount"; "isMut": true; "isSigner": false; }, { "name": "buyerTokenAccount"; "isMut": true; "isSigner": false; }, { "name": "tokenProgram"; "isMut": false; "isSigner": false; }, { "name": "systemProgram"; "isMut": false; "isSigner": false; }, { "name": "rent"; "isMut": false; "isSigner": false; } ]; "args": []; }, { "name": "callArbitrator"; "accounts": [ { "name": "marketAccount"; "isMut": false; "isSigner": false; }, { "name": "trade"; "isMut": true; "isSigner": false; }, { "name": "caller"; "isMut": false; "isSigner": true; } ]; "args": []; }, { "name": "resolveDispute"; "accounts": [ { "name": "marketAccount"; "isMut": true; "isSigner": false; }, { "name": "marketTokenVault"; "isMut": true; "isSigner": false; }, { "name": "marketNativeVault"; "isMut": true; "isSigner": false; }, { "name": "kycCert"; "isMut": true; "isSigner": false; }, { "name": "sellOfferAccount"; "isMut": true; "isSigner": false; }, { "name": "tradeAccount"; "isMut": true; "isSigner": false; }, { "name": "arbitratorAuthority"; "isMut": true; "isSigner": true; }, { "name": "treasuryAuthority"; "isMut": true; "isSigner": false; }, { "name": "treasuryTokenAccount"; "isMut": true; "isSigner": false; }, { "name": "arbitratorCert"; "isMut": false; "isSigner": false; }, { "name": "arbitratorTokenAccount"; "isMut": true; "isSigner": false; }, { "name": "seller"; "isMut": true; "isSigner": false; }, { "name": "sellerTokenAccount"; "isMut": true; "isSigner": false; }, { "name": "buyer"; "isMut": true; "isSigner": false; }, { "name": "buyerTokenAccount"; "isMut": true; "isSigner": false; }, { "name": "tokenProgram"; "isMut": false; "isSigner": false; }, { "name": "systemProgram"; "isMut": false; "isSigner": false; }, { "name": "rent"; "isMut": false; "isSigner": false; } ]; "args": [ { "name": "disputeAction"; "type": { "defined": "DisputeAction"; }; }, { "name": "compensationAction"; "type": { "defined": "CompensationAction"; }; } ]; }, { "name": "savePaymentEvidence"; "accounts": [ { "name": "marketAccount"; "isMut": true; "isSigner": false; }, { "name": "marketNativeVault"; "isMut": true; "isSigner": false; }, { "name": "evidenceAccount"; "isMut": true; "isSigner": false; }, { "name": "trade"; "isMut": false; "isSigner": false; }, { "name": "user"; "isMut": true; "isSigner": true; }, { "name": "systemProgram"; "isMut": false; "isSigner": false; }, { "name": "rent"; "isMut": false; "isSigner": false; } ]; "args": [ { "name": "sellerData"; "type": "string"; }, { "name": "arbitratorData"; "type": "string"; }, { "name": "nonce"; "type": "string"; }, { "name": "bump"; "type": "u8"; } ]; }, { "name": "redeemOffer"; "accounts": [ { "name": "marketAccount"; "isMut": true; "isSigner": false; }, { "name": "marketTokenVault"; "isMut": true; "isSigner": false; }, { "name": "marketNativeVault"; "isMut": true; "isSigner": false; }, { "name": "offerAccount"; "isMut": true; "isSigner": false; }, { "name": "userTokenAccount"; "isMut": true; "isSigner": false; }, { "name": "user"; "isMut": true; "isSigner": true; }, { "name": "tokenProgram"; "isMut": false; "isSigner": false; }, { "name": "systemProgram"; "isMut": false; "isSigner": false; } ]; "args": []; }, { "name": "updateOffer"; "accounts": [ { "name": "offerAccount"; "isMut": true; "isSigner": false; }, { "name": "user"; "isMut": true; "isSigner": true; } ]; "args": [ { "name": "rate"; "type": { "option": "u64"; }; }, { "name": "bankName"; "type": { "option": "string"; }; }, { "name": "accountName"; "type": { "option": "string"; }; }, { "name": "accountNumber"; "type": { "option": "string"; }; }, { "name": "nonce"; "type": { "option": "string"; }; } ]; } ]; "accounts": [ { "name": "arbitratorCert"; "type": { "kind": "struct"; "fields": [ { "name": "bump"; "type": "u8"; } ]; }; }, { "name": "escrowConfig"; "type": { "kind": "struct"; "fields": [ { "name": "configId"; "type": "string"; }, { "name": "currentTradeId"; "type": "u64"; }, { "name": "currentOfferId"; "type": "u64"; }, { "name": "bump"; "type": { "array": [ "u8", 1 ]; }; } ]; }; }, { "name": "evidenceAccount"; "type": { "kind": "struct"; "fields": [ { "name": "bump"; "type": "u8"; }, { "name": "sellerData"; "type": "string"; }, { "name": "arbitratorData"; "type": "string"; }, { "name": "nonce"; "type": "string"; }, { "name": "trade"; "type": "publicKey"; } ]; }; }, { "name": "kycCert"; "type": { "kind": "struct"; "fields": [ { "name": "level"; "type": "u8"; }, { "name": "bump"; "type": "u8"; }, { "name": "totalTradedAmount"; "type": "u128"; }, { "name": "totalActiveBondlessTrade"; "type": "u8"; }, { "name": "dayVolumesHistory"; "type": { "defined": "VolumeHistory30Days"; }; }, { "name": "hourVolumesHistory"; "type": { "defined": "VolumeHistory24Hours"; }; } ]; }; }, { "name": "marketState"; "type": { "kind": "struct"; "fields": [ { "name": "marketId"; "type": "string"; }, { "name": "configAccount"; "type": "publicKey"; }, { "name": "deployerAuthority"; "type": "publicKey"; }, { "name": "tradeConfigAuthority"; "type": "publicKey"; }, { "name": "amlPolicyAuthority"; "type": "publicKey"; }, { "name": "marketAccount"; "type": "publicKey"; }, { "name": "treasuryPubkey"; "type": "publicKey"; }, { "name": "marketTokenVaultAccount"; "type": "publicKey"; }, { "name": "marketNativeVaultAccount"; "type": "publicKey"; }, { "name": "totalDepositAmount"; "type": "u64"; }, { "name": "totalPendingAmount"; "type": "u64"; }, { "name": "totalAvailableAmount"; "type": "u64"; }, { "name": "totalBondAmountInToken"; "type": "u64"; }, { "name": "totalBondAmountInNative"; "type": "u64"; }, { "name": "bondSize"; "type": "u64"; }, { "name": "minimumOfferSize"; "type": "u64"; }, { "name": "arbitratorCommission"; "type": "u64"; }, { "name": "treasuryShare"; "type": "u64"; }, { "name": "paymentDuration"; "type": "u64"; }, { "name": "cancelPenaltyRate"; "type": "u64"; }, { "name": "tokenMint"; "type": "publicKey"; }, { "name": "tokenDecimals"; "type": "u8"; }, { "name": "oracleTokenMetadata"; "docs": [ "The specification of the token of the market." ]; "type": { "defined": "TokenMetaData"; }; }, { "name": "tokenMetadata"; "type": { "defined": "TokenMetaData"; }; }, { "name": "lastApplicableTime"; "type": "u64"; }, { "name": "limitActiveBondlessTrade"; "type": "u16"; }, { "name": "totalActiveBondlessTrade"; "type": "u16"; }, { "name": "expo"; "type": "u8"; }, { "name": "marketBump"; "type": { "array": [ "u8", 1 ]; }; }, { "name": "marketNativeVaultBump"; "type": { "array": [ "u8", 1 ]; }; }, { "name": "marketTokenVaultBump"; "type": { "array": [ "u8", 1 ]; }; } ]; }; }, { "name": "offer"; "type": { "kind": "struct"; "fields": [ { "name": "offerId"; "type": "u64"; }, { "name": "offerIdSeed"; "type": { "array": [ "u8", 8 ]; }; }, { "name": "side"; "type": { "defined": "TradeSide"; }; }, { "name": "state"; "type": { "defined": "OfferState"; }; }, { "name": "bondType"; "type": { "defined": "BondType"; }; }, { "name": "marketAccount"; "type": "publicKey"; }, { "name": "makerAuthority"; "type": "publicKey"; }, { "name": "makerTokenAccount"; "type": "publicKey"; }, { "name": "tokenMint"; "type": "publicKey"; }, { "name": "fiatCurrency"; "type": "string"; }, { "name": "configAccount"; "type": "publicKey"; }, { "name": "bondAmountSpl"; "type": "u64"; }, { "name": "bondAmountNative"; "type": "u64"; }, { "name": "rate"; "type": "u64"; }, { "name": "totalAmount"; "type": "u64"; }, { "name": "pendingAmount"; "type": "u64"; }, { "name": "availableAmount"; "type": "u64"; }, { "name": "filledAmount"; "type": "u64"; }, { "name": "minTradeSize"; "type": "u64"; }, { "name": "createdAt"; "type": "u64"; }, { "name": "finishedAt"; "type": "u64"; }, { "name": "bump"; "type": { "array": [ "u8", 1 ]; }; }, { "name": "bankName"; "type": { "option": "string"; }; }, { "name": "accountNumber"; "type": { "option": "string"; }; }, { "name": "accountName"; "type": { "option": "string"; }; }, { "name": "nonce"; "type": { "option": "string"; }; } ]; }; }, { "name": "product"; "type": { "kind": "struct"; "fields": [ { "name": "version"; "type": "u16"; }, { "name": "status"; "type": { "defined": "ProductStatus"; }; }, { "name": "assetType"; "type": { "defined": "AssetType"; }; }, { "name": "quoteCurrency"; "type": "string"; }, { "name": "quoteMint"; "type": "publicKey"; }, { "name": "baseCurrency"; "type": "string"; }, { "name": "baseMint"; "type": "publicKey"; }, { "name": "priceAccount"; "type": "publicKey"; }, { "name": "expo"; "type": "i32"; }, { "name": "maxPrice"; "type": "u64"; }, { "name": "minPrice"; "type": "u64"; }, { "name": "windowSize"; "type": "u64"; }, { "name": "controller"; "type": "publicKey"; }, { "name": "bump"; "type": { "array": [ "u8", 1 ]; }; } ]; }; }, { "name": "price"; "type": { "kind": "struct"; "fields": [ { "name": "version"; "type": "u16"; }, { "name": "status"; "type": { "defined": "PriceStatus"; }; }, { "name": "productAccount"; "type": "publicKey"; }, { "name": "price"; "type": "u64"; }, { "name": "numPublishers"; "type": "u16"; }, { "name": "timestamp"; "type": "u64"; }, { "name": "prevPrice"; "type": "u64"; }, { "name": "prevTimestamp"; "type": "u64"; }, { "name": "bump"; "type": { "array": [ "u8", 1 ]; }; } ]; }; }, { "name": "trade"; "type": { "kind": "struct"; "fields": [ { "name": "sellOfferId"; "type": "u64"; }, { "name": "buyOfferId"; "type": "u64"; }, { "name": "tradeId"; "type": "u64"; }, { "name": "tradeIdSeed"; "type": { "array": [ "u8", 8 ]; }; }, { "name": "side"; "type": { "defined": "TradeSide"; }; }, { "name": "state"; "type": { "defined": "TradeState"; }; }, { "name": "sellerBondType"; "type": { "defined": "BondType"; }; }, { "name": "buyerBondType"; "type": { "defined": "BondType"; }; }, { "name": "marketAccount"; "type": "publicKey"; }, { "name": "sellerAuthority"; "type": "publicKey"; }, { "name": "sellerTokenAccount"; "type": "publicKey"; }, { "name": "buyerAuthority"; "type": "publicKey"; }, { "name": "buyerTokenAccount"; "type": "publicKey"; }, { "name": "tokenMint"; "type": "publicKey"; }, { "name": "fiatCurrency"; "type": "string"; }, { "name": "configAccount"; "type": "publicKey"; }, { "name": "bondAmountSpl"; "type": "u64"; }, { "name": "bondAmountNative"; "type": "u64"; }, { "name": "tradeAmount"; "type": "u64"; }, { "name": "fiatAmount"; "type": "u64"; }, { "name": "createdAt"; "type": "u64"; }, { "name": "finishedAt"; "type": "u64"; }, { "name": "bump"; "type": { "array": [ "u8", 1 ]; }; }, { "name": "bankName"; "type": { "option": "string"; }; }, { "name": "accountNumber"; "type": { "option": "string"; }; }, { "name": "accountName"; "type": { "option": "string"; }; }, { "name": "nonce"; "type": { "option": "string"; }; }, { "name": "useBondless"; "type": "bool"; } ]; }; } ]; "types": [ { "name": "TokenMetaData"; "type": { "kind": "struct"; "fields": [ { "name": "renecRate"; "type": "u64"; }, { "name": "usdRate"; "type": "u64"; }, { "name": "quota24Hours"; "type": { "vec": "u128"; }; }, { "name": "quota30Days"; "type": { "vec": "u128"; }; }, { "name": "renecOraclePubkey"; "type": "publicKey"; } ]; }; }, { "name": "VolumeHistory30Days"; "type": { "kind": "struct"; "fields": [ { "name": "head"; "type": "u8"; }, { "name": "volumes"; "type": { "array": [ "u64", 30 ]; }; }, { "name": "lastApplicableTime"; "type": "u64"; } ]; }; }, { "name": "VolumeHistory24Hours"; "type": { "kind": "struct"; "fields": [ { "name": "head"; "type": "u8"; }, { "name": "volumes"; "type": { "array": [ "u64", 24 ]; }; }, { "name": "lastApplicableTime"; "type": "u64"; } ]; }; }, { "name": "ErrorCode"; "type": { "kind": "enum"; "variants": [ { "name": "InvalidInput"; }, { "name": "NumberCastError"; }, { "name": "InvalidTimestampConversion"; }, { "name": "InvalidTokenAccountMint"; }, { "name": "InvalidState"; }, { "name": "InvalidCaller"; }, { "name": "StillPaymentTime"; }, { "name": "UnauthorizedUser"; }, { "name": "SelfJoin"; }, { "name": "InvalidKycLevel"; }, { "name": "QuotaExceeded"; }, { "name": "UserParticipated"; }, { "name": "AmountCalcOverflow"; }, { "name": "DivisionByZero"; }, { "name": "Unimplemented"; }, { "name": "RenecRateNotSet"; }, { "name": "UsdRateNotSet"; }, { "name": "MinTradeSizeNotValid"; }, { "name": "BelowMinimumOfferSize"; }, { "name": "BelowMinimumTradeAmount"; }, { "name": "NotEnoughBalance"; }, { "name": "InvalidBondType"; }, { "name": "OfferCanceled"; }, { "name": "DayQuotaExceeded"; }, { "name": "MonthQuotaExceeded"; }, { "name": "PendingAmountNotZero"; }, { "name": "InvalidPriceOfProductOracle"; }, { "name": "UnavailableProduct"; }, { "name": "UnavailablePrice"; }, { "name": "PriceTooOld"; }, { "name": "ExpoPositiveNonSupport"; }, { "name": "PriceMustBeNonZero"; }, { "name": "InvalidProduct"; }, { "name": "MaxBondlessTrade"; }, { "name": "TradeVolumeNotAllowBondLess"; }, { "name": "LimitBondlessTrade"; }, { "name": "AmountCalcUnderflow"; }, { "name": "NotEnoughFundForRent"; }, { "name": "WrongTradeSide"; }, { "name": "TradeNotBelongToAnyOffer"; }, { "name": "MismatchSellAndBuyOffers"; }, { "name": "MismatchOfferAndTrade"; }, { "name": "InvalidCallerCreateTradeWithBuyOffer"; }, { "name": "ExceedSlippageTolerance"; } ]; }; }, { "name": "AssetType"; "type": { "kind": "enum"; "variants": [ { "name": "Forex"; }, { "name": "Crypto"; } ]; }; }, { "name": "ProductStatus"; "type": { "kind": "enum"; "variants": [ { "name": "Unknown"; }, { "name": "Offline"; }, { "name": "Online"; } ]; }; }, { "name": "PriceStatus"; "type": { "kind": "enum"; "variants": [ { "name": "Unknown"; }, { "name": "Offline"; }, { "name": "Online"; } ]; }; }, { "name": "TradeState"; "type": { "kind": "enum"; "variants": [ { "name": "Awaiting"; }, { "name": "Deposited"; }, { "name": "Disputed"; }, { "name": "Released"; }, { "name": "Canceled"; } ]; }; }, { "name": "OfferState"; "type": { "kind": "enum"; "variants": [ { "name": "Awaiting"; }, { "name": "Canceled"; }, { "name": "OutOfFund"; }, { "name": "Fulfilled"; } ]; }; }, { "name": "TradeSide"; "type": { "kind": "enum"; "variants": [ { "name": "Buy"; }, { "name": "Sell"; } ]; }; }, { "name": "BondType"; "type": { "kind": "enum"; "variants": [ { "name": "Native"; }, { "name": "Spl"; } ]; }; }, { "name": "DisputeAction"; "type": { "kind": "enum"; "variants": [ { "name": "Release"; }, { "name": "Cancel"; } ]; }; }, { "name": "CompensationAction"; "type": { "kind": "enum"; "variants": [ { "name": "NoCompensate"; }, { "name": "CompensateSeller"; }, { "name": "CompensateBuyer"; } ]; }; } ]; }; export declare const IDL: Escrow;