escrow-market-sdk
Version:
SDK for Escrow Market Solana Program
744 lines (743 loc) • 21.1 kB
TypeScript
export * from './accounts';
export * from './instructions';
export interface EscrowMarketIDL {
"version": "0.1.0";
"name": "escrow_market";
"instructions": [
{
"name": "initialize";
"docs": [
"Initialize the Config Account for the escrow market.",
"This instruction can only be called once by the admin."
];
"accounts": [
{
"name": "payer";
"isMut": true;
"isSigner": true;
},
{
"name": "config";
"isMut": true;
"isSigner": false;
},
{
"name": "systemProgram";
"isMut": false;
"isSigner": false;
}
];
"args": [
{
"name": "admin";
"type": "publicKey";
},
{
"name": "operator";
"type": "publicKey";
}
];
},
{
"name": "deposit";
"accounts": [
{
"name": "user";
"isMut": true;
"isSigner": true;
},
{
"name": "mint";
"isMut": false;
"isSigner": false;
},
{
"name": "userTokenAccount";
"isMut": true;
"isSigner": false;
},
{
"name": "vaultTokenAccount";
"isMut": true;
"isSigner": false;
},
{
"name": "vaultAuthority";
"isMut": false;
"isSigner": false;
},
{
"name": "tokenProgram";
"isMut": false;
"isSigner": false;
},
{
"name": "systemProgram";
"isMut": false;
"isSigner": false;
},
{
"name": "associatedTokenProgram";
"isMut": false;
"isSigner": false;
}
];
"args": [
{
"name": "amount";
"type": "u64";
}
];
},
{
"name": "initializeVault";
"accounts": [
{
"name": "payer";
"isMut": true;
"isSigner": true;
},
{
"name": "mint";
"isMut": false;
"isSigner": false;
},
{
"name": "vaultTokenAccount";
"isMut": true;
"isSigner": false;
},
{
"name": "vaultAuthority";
"isMut": false;
"isSigner": false;
},
{
"name": "tokenProgram";
"isMut": false;
"isSigner": false;
},
{
"name": "systemProgram";
"isMut": false;
"isSigner": false;
},
{
"name": "rent";
"isMut": false;
"isSigner": false;
},
{
"name": "associatedTokenProgram";
"isMut": false;
"isSigner": false;
}
];
"args": [];
},
{
"name": "withdraw";
"accounts": [
{
"name": "operator";
"isMut": true;
"isSigner": true;
},
{
"name": "user";
"isMut": false;
"isSigner": false;
},
{
"name": "config";
"isMut": false;
"isSigner": false;
},
{
"name": "mint";
"isMut": false;
"isSigner": false;
},
{
"name": "userTokenAccount";
"isMut": true;
"isSigner": false;
},
{
"name": "vaultTokenAccount";
"isMut": true;
"isSigner": false;
},
{
"name": "vaultAuthority";
"isMut": false;
"isSigner": false;
},
{
"name": "withdrawNonce";
"isMut": true;
"isSigner": false;
},
{
"name": "tokenProgram";
"isMut": false;
"isSigner": false;
},
{
"name": "systemProgram";
"isMut": false;
"isSigner": false;
},
{
"name": "associatedTokenProgram";
"isMut": false;
"isSigner": false;
}
];
"args": [
{
"name": "amount";
"type": "u64";
},
{
"name": "nonce";
"type": "u64";
}
];
},
{
"name": "settle";
"accounts": [
{
"name": "seller";
"isMut": true;
"isSigner": true;
},
{
"name": "operator";
"isMut": true;
"isSigner": true;
},
{
"name": "buyer";
"isMut": true;
"isSigner": false;
},
{
"name": "deal";
"isMut": true;
"isSigner": false;
},
{
"name": "config";
"isMut": false;
"isSigner": false;
},
{
"name": "tokenTransfer";
"isMut": false;
"isSigner": false;
},
{
"name": "sellerTokenAccount";
"isMut": true;
"isSigner": false;
},
{
"name": "buyerTokenAccount";
"isMut": true;
"isSigner": false;
},
{
"name": "tokenWithdraw";
"isMut": false;
"isSigner": false;
},
{
"name": "sellerWithdrawAccount";
"isMut": true;
"isSigner": false;
},
{
"name": "vaultTokenAccount";
"isMut": true;
"isSigner": false;
},
{
"name": "vaultAuthority";
"isMut": false;
"isSigner": false;
},
{
"name": "tokenTransferProgram";
"isMut": false;
"isSigner": false;
},
{
"name": "tokenWithdrawProgram";
"isMut": false;
"isSigner": false;
},
{
"name": "associatedTokenProgram";
"isMut": false;
"isSigner": false;
},
{
"name": "systemProgram";
"isMut": false;
"isSigner": false;
}
];
"args": [
{
"name": "dealId";
"type": "string";
},
{
"name": "transferAmount";
"type": "u64";
},
{
"name": "withdrawAmount";
"type": "u64";
}
];
},
{
"name": "operatorCancel";
"accounts": [
{
"name": "buyer";
"isMut": true;
"isSigner": false;
},
{
"name": "operator";
"isMut": true;
"isSigner": true;
},
{
"name": "deal";
"isMut": true;
"isSigner": false;
},
{
"name": "config";
"isMut": false;
"isSigner": false;
},
{
"name": "token";
"isMut": false;
"isSigner": false;
},
{
"name": "buyerTokenAccount";
"isMut": true;
"isSigner": false;
},
{
"name": "vaultTokenAccount";
"isMut": true;
"isSigner": false;
},
{
"name": "vaultAuthority";
"isMut": false;
"isSigner": false;
},
{
"name": "tokenProgram";
"isMut": false;
"isSigner": false;
},
{
"name": "associatedTokenProgram";
"isMut": false;
"isSigner": false;
},
{
"name": "systemProgram";
"isMut": false;
"isSigner": false;
}
];
"args": [
{
"name": "dealId";
"type": "string";
},
{
"name": "amount";
"type": "u64";
}
];
}
];
"accounts": [
{
"name": "withdrawNonce";
"type": {
"kind": "struct";
"fields": [
{
"name": "nonce";
"type": "u64";
}
];
};
},
{
"name": "config";
"docs": [
"Config account stores admin and operator information"
];
"type": {
"kind": "struct";
"fields": [
{
"name": "admin";
"docs": [
"The admin pubkey"
];
"type": "publicKey";
},
{
"name": "operator";
"docs": [
"The operator pubkey"
];
"type": "publicKey";
},
{
"name": "bump";
"docs": [
"Bump seed for PDA"
];
"type": "u8";
}
];
};
},
{
"name": "deal";
"docs": [
"Deal account stores information about a specific deal"
];
"type": {
"kind": "struct";
"fields": [
{
"name": "dealId";
"docs": [
"Unique identifier for the deal"
];
"type": "string";
},
{
"name": "bump";
"type": "u8";
}
];
};
}
];
"types": [
{
"name": "CustomError";
"type": {
"kind": "enum";
"variants": [
{
"name": "InvalidMint";
},
{
"name": "Overflow";
},
{
"name": "InsufficientFunds";
},
{
"name": "MintIsNotOwnedByTokenProgram";
}
];
};
}
];
"events": [
{
"name": "DepositEvent";
"fields": [
{
"name": "user";
"type": "publicKey";
"index": false;
},
{
"name": "token";
"type": "publicKey";
"index": false;
},
{
"name": "amount";
"type": "u64";
"index": false;
},
{
"name": "timestamp";
"type": "i64";
"index": false;
}
];
},
{
"name": "SettleEvent";
"fields": [
{
"name": "dealId";
"type": "string";
"index": false;
},
{
"name": "seller";
"type": "publicKey";
"index": false;
},
{
"name": "buyer";
"type": "publicKey";
"index": false;
},
{
"name": "tokenTransfer";
"type": "publicKey";
"index": false;
},
{
"name": "transferAmount";
"type": "u64";
"index": false;
},
{
"name": "tokenWithdraw";
"type": "publicKey";
"index": false;
},
{
"name": "withdrawAmount";
"type": "u64";
"index": false;
},
{
"name": "timestamp";
"type": "i64";
"index": false;
}
];
},
{
"name": "CancelEvent";
"fields": [
{
"name": "dealId";
"type": "string";
"index": false;
},
{
"name": "buyer";
"type": "publicKey";
"index": false;
},
{
"name": "token";
"type": "publicKey";
"index": false;
},
{
"name": "amount";
"type": "u64";
"index": false;
},
{
"name": "cancelledBy";
"type": "publicKey";
"index": false;
},
{
"name": "timestamp";
"type": "i64";
"index": false;
}
];
},
{
"name": "WithdrawEvent";
"fields": [
{
"name": "user";
"type": "publicKey";
"index": false;
},
{
"name": "token";
"type": "publicKey";
"index": false;
},
{
"name": "amount";
"type": "u64";
"index": false;
},
{
"name": "nonce";
"type": "u64";
"index": false;
},
{
"name": "operator";
"type": "publicKey";
"index": false;
},
{
"name": "timestamp";
"type": "i64";
"index": false;
}
];
},
{
"name": "WithdrawEvent";
"fields": [
{
"name": "user";
"type": "publicKey";
"index": false;
},
{
"name": "token";
"type": "publicKey";
"index": false;
},
{
"name": "amount";
"type": "u64";
"index": false;
},
{
"name": "nonce";
"type": "u64";
"index": false;
},
{
"name": "operator";
"type": "publicKey";
"index": false;
},
{
"name": "timestamp";
"type": "i64";
"index": false;
}
];
}
];
"errors": [
{
"code": 6000;
"name": "NotAdmin";
"msg": "Caller is not admin";
},
{
"code": 6001;
"name": "NotOperator";
"msg": "Caller is not operator";
},
{
"code": 6002;
"name": "NotSeller";
"msg": "Caller is not seller";
},
{
"code": 6003;
"name": "NotBuyer";
"msg": "Caller is not buyer";
},
{
"code": 6004;
"name": "DealAlreadySettled";
"msg": "Deal already settled";
},
{
"code": 6005;
"name": "DealAlreadyCancelled";
"msg": "Deal already cancelled";
},
{
"code": 6006;
"name": "DealNotFound";
"msg": "Deal not found";
},
{
"code": 6007;
"name": "DealExpired";
"msg": "Deal expired";
},
{
"code": 6008;
"name": "InvalidDealStatus";
"msg": "Invalid deal status";
},
{
"code": 6009;
"name": "NonceUsed";
"msg": "Nonce already used";
},
{
"code": 6010;
"name": "InvalidNonce";
"msg": "Invalid nonce";
},
{
"code": 6011;
"name": "SignatureMissing";
"msg": "Missing required signature";
},
{
"code": 6012;
"name": "NotEnoughSigner";
"msg": "Not enough signers";
},
{
"code": 6013;
"name": "InvalidAddress";
"msg": "Invalid address";
},
{
"code": 6014;
"name": "InvalidAmount";
"msg": "Invalid amount";
},
{
"code": 6015;
"name": "InvalidToken";
"msg": "Invalid token";
},
{
"code": 6016;
"name": "DeadlineInPast";
"msg": "Deadline is in the past";
},
{
"code": 6017;
"name": "TokenTransferFailed";
"msg": "Token transfer failed";
},
{
"code": 6018;
"name": "Unknown";
"msg": "Unknown error";
}
];
}
export declare const IDL: EscrowMarketIDL;