web3.db-fileconnector
Version:
GraphQL System Built on web3 technologies. Web3.DB is an open database built on top of web3 technologies. It is a decentralized, open-source database that allows users to store and query data in a secure and efficient manner. The system is designed to be
2,513 lines (2,510 loc) • 259 kB
JavaScript
export class DriftInterface {
idl = idl;
/** Will clean drift transaction */
clean(data) {
let obj = data.params[0];
const newObj = {};
for (let key in obj) {
if (obj.hasOwnProperty(key)) {
const value = obj[key];
switch (key) {
case "marketIndex":
newObj[key] = value;
break;
case "direction":
if (value.long) {
newObj[key] = "long";
} else {
newObj[key] = "short";
}
break;
case "marketType":
if (value.perp) {
newObj[key] = "perp";
} else {
newObj[key] = "spot";
}
break;
case "baseAssetAmount":
newObj[key] = value.toString();
break;
case "price":
newObj[key] = value.toString();
break;
default:
newObj[key] = value;
break;
}
}
}
return newObj;
}
}
export const idl = {
version: "2.66.0",
name: "drift",
instructions: [
{
name: "initializeUser",
accounts: [
{
name: "user",
isMut: true,
isSigner: false,
},
{
name: "userStats",
isMut: true,
isSigner: false,
},
{
name: "state",
isMut: true,
isSigner: false,
},
{
name: "authority",
isMut: false,
isSigner: true,
},
{
name: "payer",
isMut: true,
isSigner: true,
},
{
name: "rent",
isMut: false,
isSigner: false,
},
{
name: "systemProgram",
isMut: false,
isSigner: false,
},
],
args: [
{
name: "subAccountId",
type: "u16",
},
{
name: "name",
type: {
array: ["u8", 32],
},
},
],
},
{
name: "initializeUserStats",
accounts: [
{
name: "userStats",
isMut: true,
isSigner: false,
},
{
name: "state",
isMut: true,
isSigner: false,
},
{
name: "authority",
isMut: false,
isSigner: true,
},
{
name: "payer",
isMut: true,
isSigner: true,
},
{
name: "rent",
isMut: false,
isSigner: false,
},
{
name: "systemProgram",
isMut: false,
isSigner: false,
},
],
args: [],
},
{
name: "initializeReferrerName",
accounts: [
{
name: "referrerName",
isMut: true,
isSigner: false,
},
{
name: "user",
isMut: true,
isSigner: false,
},
{
name: "userStats",
isMut: true,
isSigner: false,
},
{
name: "authority",
isMut: false,
isSigner: true,
},
{
name: "payer",
isMut: true,
isSigner: true,
},
{
name: "rent",
isMut: false,
isSigner: false,
},
{
name: "systemProgram",
isMut: false,
isSigner: false,
},
],
args: [
{
name: "name",
type: {
array: ["u8", 32],
},
},
],
},
{
name: "deposit",
accounts: [
{
name: "state",
isMut: false,
isSigner: false,
},
{
name: "user",
isMut: true,
isSigner: false,
},
{
name: "userStats",
isMut: true,
isSigner: false,
},
{
name: "authority",
isMut: false,
isSigner: true,
},
{
name: "spotMarketVault",
isMut: true,
isSigner: false,
},
{
name: "userTokenAccount",
isMut: true,
isSigner: false,
},
{
name: "tokenProgram",
isMut: false,
isSigner: false,
},
],
args: [
{
name: "marketIndex",
type: "u16",
},
{
name: "amount",
type: "u64",
},
{
name: "reduceOnly",
type: "bool",
},
],
},
{
name: "withdraw",
accounts: [
{
name: "state",
isMut: false,
isSigner: false,
},
{
name: "user",
isMut: true,
isSigner: false,
},
{
name: "userStats",
isMut: true,
isSigner: false,
},
{
name: "authority",
isMut: false,
isSigner: true,
},
{
name: "spotMarketVault",
isMut: true,
isSigner: false,
},
{
name: "driftSigner",
isMut: false,
isSigner: false,
},
{
name: "userTokenAccount",
isMut: true,
isSigner: false,
},
{
name: "tokenProgram",
isMut: false,
isSigner: false,
},
],
args: [
{
name: "marketIndex",
type: "u16",
},
{
name: "amount",
type: "u64",
},
{
name: "reduceOnly",
type: "bool",
},
],
},
{
name: "transferDeposit",
accounts: [
{
name: "fromUser",
isMut: true,
isSigner: false,
},
{
name: "toUser",
isMut: true,
isSigner: false,
},
{
name: "userStats",
isMut: true,
isSigner: false,
},
{
name: "authority",
isMut: false,
isSigner: true,
},
{
name: "state",
isMut: false,
isSigner: false,
},
{
name: "spotMarketVault",
isMut: false,
isSigner: false,
},
],
args: [
{
name: "marketIndex",
type: "u16",
},
{
name: "amount",
type: "u64",
},
],
},
{
name: "placePerpOrder",
accounts: [
{
name: "state",
isMut: false,
isSigner: false,
},
{
name: "user",
isMut: true,
isSigner: false,
},
{
name: "authority",
isMut: false,
isSigner: true,
},
],
args: [
{
name: "params",
type: {
defined: "OrderParams",
},
},
],
},
{
name: "cancelOrder",
accounts: [
{
name: "state",
isMut: false,
isSigner: false,
},
{
name: "user",
isMut: true,
isSigner: false,
},
{
name: "authority",
isMut: false,
isSigner: true,
},
],
args: [
{
name: "orderId",
type: {
option: "u32",
},
},
],
},
{
name: "cancelOrderByUserId",
accounts: [
{
name: "state",
isMut: false,
isSigner: false,
},
{
name: "user",
isMut: true,
isSigner: false,
},
{
name: "authority",
isMut: false,
isSigner: true,
},
],
args: [
{
name: "userOrderId",
type: "u8",
},
],
},
{
name: "cancelOrders",
accounts: [
{
name: "state",
isMut: false,
isSigner: false,
},
{
name: "user",
isMut: true,
isSigner: false,
},
{
name: "authority",
isMut: false,
isSigner: true,
},
],
args: [
{
name: "marketType",
type: {
option: {
defined: "MarketType",
},
},
},
{
name: "marketIndex",
type: {
option: "u16",
},
},
{
name: "direction",
type: {
option: {
defined: "PositionDirection",
},
},
},
],
},
{
name: "cancelOrdersByIds",
accounts: [
{
name: "state",
isMut: false,
isSigner: false,
},
{
name: "user",
isMut: true,
isSigner: false,
},
{
name: "authority",
isMut: false,
isSigner: true,
},
],
args: [
{
name: "orderIds",
type: {
vec: "u32",
},
},
],
},
{
name: "modifyOrder",
accounts: [
{
name: "state",
isMut: false,
isSigner: false,
},
{
name: "user",
isMut: true,
isSigner: false,
},
{
name: "authority",
isMut: false,
isSigner: true,
},
],
args: [
{
name: "orderId",
type: {
option: "u32",
},
},
{
name: "modifyOrderParams",
type: {
defined: "ModifyOrderParams",
},
},
],
},
{
name: "modifyOrderByUserId",
accounts: [
{
name: "state",
isMut: false,
isSigner: false,
},
{
name: "user",
isMut: true,
isSigner: false,
},
{
name: "authority",
isMut: false,
isSigner: true,
},
],
args: [
{
name: "userOrderId",
type: "u8",
},
{
name: "modifyOrderParams",
type: {
defined: "ModifyOrderParams",
},
},
],
},
{
name: "placeAndTakePerpOrder",
accounts: [
{
name: "state",
isMut: false,
isSigner: false,
},
{
name: "user",
isMut: true,
isSigner: false,
},
{
name: "userStats",
isMut: true,
isSigner: false,
},
{
name: "authority",
isMut: false,
isSigner: true,
},
],
args: [
{
name: "params",
type: {
defined: "OrderParams",
},
},
{
name: "makerOrderId",
type: {
option: "u32",
},
},
],
},
{
name: "placeAndMakePerpOrder",
accounts: [
{
name: "state",
isMut: false,
isSigner: false,
},
{
name: "user",
isMut: true,
isSigner: false,
},
{
name: "userStats",
isMut: true,
isSigner: false,
},
{
name: "taker",
isMut: true,
isSigner: false,
},
{
name: "takerStats",
isMut: true,
isSigner: false,
},
{
name: "authority",
isMut: false,
isSigner: true,
},
],
args: [
{
name: "params",
type: {
defined: "OrderParams",
},
},
{
name: "takerOrderId",
type: "u32",
},
],
},
{
name: "placeSpotOrder",
accounts: [
{
name: "state",
isMut: false,
isSigner: false,
},
{
name: "user",
isMut: true,
isSigner: false,
},
{
name: "authority",
isMut: false,
isSigner: true,
},
],
args: [
{
name: "params",
type: {
defined: "OrderParams",
},
},
],
},
{
name: "placeAndTakeSpotOrder",
accounts: [
{
name: "state",
isMut: false,
isSigner: false,
},
{
name: "user",
isMut: true,
isSigner: false,
},
{
name: "userStats",
isMut: true,
isSigner: false,
},
{
name: "authority",
isMut: false,
isSigner: true,
},
],
args: [
{
name: "params",
type: {
defined: "OrderParams",
},
},
{
name: "fulfillmentType",
type: {
option: {
defined: "SpotFulfillmentType",
},
},
},
{
name: "makerOrderId",
type: {
option: "u32",
},
},
],
},
{
name: "placeAndMakeSpotOrder",
accounts: [
{
name: "state",
isMut: false,
isSigner: false,
},
{
name: "user",
isMut: true,
isSigner: false,
},
{
name: "userStats",
isMut: true,
isSigner: false,
},
{
name: "taker",
isMut: true,
isSigner: false,
},
{
name: "takerStats",
isMut: true,
isSigner: false,
},
{
name: "authority",
isMut: false,
isSigner: true,
},
],
args: [
{
name: "params",
type: {
defined: "OrderParams",
},
},
{
name: "takerOrderId",
type: "u32",
},
{
name: "fulfillmentType",
type: {
option: {
defined: "SpotFulfillmentType",
},
},
},
],
},
{
name: "placeOrders",
accounts: [
{
name: "state",
isMut: false,
isSigner: false,
},
{
name: "user",
isMut: true,
isSigner: false,
},
{
name: "authority",
isMut: false,
isSigner: true,
},
],
args: [
{
name: "params",
type: {
vec: {
defined: "OrderParams",
},
},
},
],
},
{
name: "beginSwap",
accounts: [
{
name: "state",
isMut: false,
isSigner: false,
},
{
name: "user",
isMut: true,
isSigner: false,
},
{
name: "userStats",
isMut: true,
isSigner: false,
},
{
name: "authority",
isMut: false,
isSigner: true,
},
{
name: "outSpotMarketVault",
isMut: true,
isSigner: false,
},
{
name: "inSpotMarketVault",
isMut: true,
isSigner: false,
},
{
name: "outTokenAccount",
isMut: true,
isSigner: false,
},
{
name: "inTokenAccount",
isMut: true,
isSigner: false,
},
{
name: "tokenProgram",
isMut: false,
isSigner: false,
},
{
name: "driftSigner",
isMut: false,
isSigner: false,
},
{
name: "instructions",
isMut: false,
isSigner: false,
docs: ["Instructions Sysvar for instruction introspection"],
},
],
args: [
{
name: "inMarketIndex",
type: "u16",
},
{
name: "outMarketIndex",
type: "u16",
},
{
name: "amountIn",
type: "u64",
},
],
},
{
name: "endSwap",
accounts: [
{
name: "state",
isMut: false,
isSigner: false,
},
{
name: "user",
isMut: true,
isSigner: false,
},
{
name: "userStats",
isMut: true,
isSigner: false,
},
{
name: "authority",
isMut: false,
isSigner: true,
},
{
name: "outSpotMarketVault",
isMut: true,
isSigner: false,
},
{
name: "inSpotMarketVault",
isMut: true,
isSigner: false,
},
{
name: "outTokenAccount",
isMut: true,
isSigner: false,
},
{
name: "inTokenAccount",
isMut: true,
isSigner: false,
},
{
name: "tokenProgram",
isMut: false,
isSigner: false,
},
{
name: "driftSigner",
isMut: false,
isSigner: false,
},
{
name: "instructions",
isMut: false,
isSigner: false,
docs: ["Instructions Sysvar for instruction introspection"],
},
],
args: [
{
name: "inMarketIndex",
type: "u16",
},
{
name: "outMarketIndex",
type: "u16",
},
{
name: "limitPrice",
type: {
option: "u64",
},
},
{
name: "reduceOnly",
type: {
option: {
defined: "SwapReduceOnly",
},
},
},
],
},
{
name: "addPerpLpShares",
accounts: [
{
name: "state",
isMut: false,
isSigner: false,
},
{
name: "user",
isMut: true,
isSigner: false,
},
{
name: "authority",
isMut: false,
isSigner: true,
},
],
args: [
{
name: "nShares",
type: "u64",
},
{
name: "marketIndex",
type: "u16",
},
],
},
{
name: "removePerpLpShares",
accounts: [
{
name: "state",
isMut: false,
isSigner: false,
},
{
name: "user",
isMut: true,
isSigner: false,
},
{
name: "authority",
isMut: false,
isSigner: true,
},
],
args: [
{
name: "sharesToBurn",
type: "u64",
},
{
name: "marketIndex",
type: "u16",
},
],
},
{
name: "removePerpLpSharesInExpiringMarket",
accounts: [
{
name: "state",
isMut: false,
isSigner: false,
},
{
name: "user",
isMut: true,
isSigner: false,
},
],
args: [
{
name: "sharesToBurn",
type: "u64",
},
{
name: "marketIndex",
type: "u16",
},
],
},
{
name: "updateUserName",
accounts: [
{
name: "user",
isMut: true,
isSigner: false,
},
{
name: "authority",
isMut: false,
isSigner: true,
},
],
args: [
{
name: "subAccountId",
type: "u16",
},
{
name: "name",
type: {
array: ["u8", 32],
},
},
],
},
{
name: "updateUserCustomMarginRatio",
accounts: [
{
name: "user",
isMut: true,
isSigner: false,
},
{
name: "authority",
isMut: false,
isSigner: true,
},
],
args: [
{
name: "subAccountId",
type: "u16",
},
{
name: "marginRatio",
type: "u32",
},
],
},
{
name: "updateUserMarginTradingEnabled",
accounts: [
{
name: "user",
isMut: true,
isSigner: false,
},
{
name: "authority",
isMut: false,
isSigner: true,
},
],
args: [
{
name: "subAccountId",
type: "u16",
},
{
name: "marginTradingEnabled",
type: "bool",
},
],
},
{
name: "updateUserDelegate",
accounts: [
{
name: "user",
isMut: true,
isSigner: false,
},
{
name: "authority",
isMut: false,
isSigner: true,
},
],
args: [
{
name: "subAccountId",
type: "u16",
},
{
name: "delegate",
type: "publicKey",
},
],
},
{
name: "updateUserReduceOnly",
accounts: [
{
name: "user",
isMut: true,
isSigner: false,
},
{
name: "authority",
isMut: false,
isSigner: true,
},
],
args: [
{
name: "subAccountId",
type: "u16",
},
{
name: "reduceOnly",
type: "bool",
},
],
},
{
name: "updateUserAdvancedLp",
accounts: [
{
name: "user",
isMut: true,
isSigner: false,
},
{
name: "authority",
isMut: false,
isSigner: true,
},
],
args: [
{
name: "subAccountId",
type: "u16",
},
{
name: "advancedLp",
type: "bool",
},
],
},
{
name: "deleteUser",
accounts: [
{
name: "user",
isMut: true,
isSigner: false,
},
{
name: "userStats",
isMut: true,
isSigner: false,
},
{
name: "state",
isMut: true,
isSigner: false,
},
{
name: "authority",
isMut: false,
isSigner: true,
},
],
args: [],
},
{
name: "reclaimRent",
accounts: [
{
name: "user",
isMut: true,
isSigner: false,
},
{
name: "userStats",
isMut: true,
isSigner: false,
},
{
name: "state",
isMut: false,
isSigner: false,
},
{
name: "authority",
isMut: false,
isSigner: true,
},
{
name: "rent",
isMut: false,
isSigner: false,
},
],
args: [],
},
{
name: "fillPerpOrder",
accounts: [
{
name: "state",
isMut: false,
isSigner: false,
},
{
name: "authority",
isMut: false,
isSigner: true,
},
{
name: "filler",
isMut: true,
isSigner: false,
},
{
name: "fillerStats",
isMut: true,
isSigner: false,
},
{
name: "user",
isMut: true,
isSigner: false,
},
{
name: "userStats",
isMut: true,
isSigner: false,
},
],
args: [
{
name: "orderId",
type: {
option: "u32",
},
},
{
name: "makerOrderId",
type: {
option: "u32",
},
},
],
},
{
name: "revertFill",
accounts: [
{
name: "state",
isMut: false,
isSigner: false,
},
{
name: "authority",
isMut: false,
isSigner: true,
},
{
name: "filler",
isMut: true,
isSigner: false,
},
{
name: "fillerStats",
isMut: true,
isSigner: false,
},
],
args: [],
},
{
name: "fillSpotOrder",
accounts: [
{
name: "state",
isMut: false,
isSigner: false,
},
{
name: "authority",
isMut: false,
isSigner: true,
},
{
name: "filler",
isMut: true,
isSigner: false,
},
{
name: "fillerStats",
isMut: true,
isSigner: false,
},
{
name: "user",
isMut: true,
isSigner: false,
},
{
name: "userStats",
isMut: true,
isSigner: false,
},
],
args: [
{
name: "orderId",
type: {
option: "u32",
},
},
{
name: "fulfillmentType",
type: {
option: {
defined: "SpotFulfillmentType",
},
},
},
{
name: "makerOrderId",
type: {
option: "u32",
},
},
],
},
{
name: "triggerOrder",
accounts: [
{
name: "state",
isMut: false,
isSigner: false,
},
{
name: "authority",
isMut: false,
isSigner: true,
},
{
name: "filler",
isMut: true,
isSigner: false,
},
{
name: "user",
isMut: true,
isSigner: false,
},
],
args: [
{
name: "orderId",
type: "u32",
},
],
},
{
name: "forceCancelOrders",
accounts: [
{
name: "state",
isMut: false,
isSigner: false,
},
{
name: "authority",
isMut: false,
isSigner: true,
},
{
name: "filler",
isMut: true,
isSigner: false,
},
{
name: "user",
isMut: true,
isSigner: false,
},
],
args: [],
},
{
name: "updateUserIdle",
accounts: [
{
name: "state",
isMut: false,
isSigner: false,
},
{
name: "authority",
isMut: false,
isSigner: true,
},
{
name: "filler",
isMut: true,
isSigner: false,
},
{
name: "user",
isMut: true,
isSigner: false,
},
],
args: [],
},
{
name: "updateUserOpenOrdersCount",
accounts: [
{
name: "state",
isMut: false,
isSigner: false,
},
{
name: "authority",
isMut: false,
isSigner: true,
},
{
name: "filler",
isMut: true,
isSigner: false,
},
{
name: "user",
isMut: true,
isSigner: false,
},
],
args: [],
},
{
name: "adminDisableUpdatePerpBidAskTwap",
accounts: [
{
name: "admin",
isMut: false,
isSigner: true,
},
{
name: "state",
isMut: false,
isSigner: false,
},
{
name: "userStats",
isMut: true,
isSigner: false,
},
],
args: [
{
name: "disable",
type: "bool",
},
],
},
{
name: "settlePnl",
accounts: [
{
name: "state",
isMut: false,
isSigner: false,
},
{
name: "user",
isMut: true,
isSigner: false,
},
{
name: "authority",
isMut: false,
isSigner: true,
},
{
name: "spotMarketVault",
isMut: false,
isSigner: false,
},
],
args: [
{
name: "marketIndex",
type: "u16",
},
],
},
{
name: "settleFundingPayment",
accounts: [
{
name: "state",
isMut: false,
isSigner: false,
},
{
name: "user",
isMut: true,
isSigner: false,
},
],
args: [],
},
{
name: "settleLp",
accounts: [
{
name: "state",
isMut: false,
isSigner: false,
},
{
name: "user",
isMut: true,
isSigner: false,
},
],
args: [
{
name: "marketIndex",
type: "u16",
},
],
},
{
name: "settleExpiredMarket",
accounts: [
{
name: "state",
isMut: false,
isSigner: false,
},
{
name: "authority",
isMut: false,
isSigner: true,
},
],
args: [
{
name: "marketIndex",
type: "u16",
},
],
},
{
name: "liquidatePerp",
accounts: [
{
name: "state",
isMut: false,
isSigner: false,
},
{
name: "authority",
isMut: false,
isSigner: true,
},
{
name: "liquidator",
isMut: true,
isSigner: false,
},
{
name: "liquidatorStats",
isMut: true,
isSigner: false,
},
{
name: "user",
isMut: true,
isSigner: false,
},
{
name: "userStats",
isMut: true,
isSigner: false,
},
],
args: [
{
name: "marketIndex",
type: "u16",
},
{
name: "liquidatorMaxBaseAssetAmount",
type: "u64",
},
{
name: "limitPrice",
type: {
option: "u64",
},
},
],
},
{
name: "liquidateSpot",
accounts: [
{
name: "state",
isMut: false,
isSigner: false,
},
{
name: "authority",
isMut: false,
isSigner: true,
},
{
name: "liquidator",
isMut: true,
isSigner: false,
},
{
name: "liquidatorStats",
isMut: true,
isSigner: false,
},
{
name: "user",
isMut: true,
isSigner: false,
},
{
name: "userStats",
isMut: true,
isSigner: false,
},
],
args: [
{
name: "assetMarketIndex",
type: "u16",
},
{
name: "liabilityMarketIndex",
type: "u16",
},
{
name: "liquidatorMaxLiabilityTransfer",
type: "u128",
},
{
name: "limitPrice",
type: {
option: "u64",
},
},
],
},
{
name: "liquidateBorrowForPerpPnl",
accounts: [
{
name: "state",
isMut: false,
isSigner: false,
},
{
name: "authority",
isMut: false,
isSigner: true,
},
{
name: "liquidator",
isMut: true,
isSigner: false,
},
{
name: "liquidatorStats",
isMut: true,
isSigner: false,
},
{
name: "user",
isMut: true,
isSigner: false,
},
{
name: "userStats",
isMut: true,
isSigner: false,
},
],
args: [
{
name: "perpMarketIndex",
type: "u16",
},
{
name: "spotMarketIndex",
type: "u16",
},
{
name: "liquidatorMaxLiabilityTransfer",
type: "u128",
},
{
name: "limitPrice",
type: {
option: "u64",
},
},
],
},
{
name: "liquidatePerpPnlForDeposit",
accounts: [
{
name: "state",
isMut: false,
isSigner: false,
},
{
name: "authority",
isMut: false,
isSigner: true,
},
{
name: "liquidator",
isMut: true,
isSigner: false,
},
{
name: "liquidatorStats",
isMut: true,
isSigner: false,
},
{
name: "user",
isMut: true,
isSigner: false,
},
{
name: "userStats",
isMut: true,
isSigner: false,
},
],
args: [
{
name: "perpMarketIndex",
type: "u16",
},
{
name: "spotMarketIndex",
type: "u16",
},
{
name: "liquidatorMaxPnlTransfer",
type: "u128",
},
{
name: "limitPrice",
type: {
option: "u64",
},
},
],
},
{
name: "resolvePerpPnlDeficit",
accounts: [
{
name: "state",
isMut: false,
isSigner: false,
},
{
name: "authority",
isMut: false,
isSigner: true,
},
{
name: "spotMarketVault",
isMut: true,
isSigner: false,
},
{
name: "insuranceFundVault",
isMut: true,
isSigner: false,
},
{
name: "driftSigner",
isMut: false,
isSigner: false,
},
{
name: "tokenProgram",
isMut: false,
isSigner: false,
},
],
args: [
{
name: "spotMarketIndex",
type: "u16",
},
{
name: "perpMarketIndex",
type: "u16",
},
],
},
{
name: "resolvePerpBankruptcy",
accounts: [
{
name: "state",
isMut: false,
isSigner: false,
},
{
name: "authority",
isMut: false,
isSigner: true,
},
{
name: "liquidator",
isMut: true,
isSigner: false,
},
{
name: "liquidatorStats",
isMut: true,
isSigner: false,
},
{
name: "user",
isMut: true,
isSigner: false,
},
{
name: "userStats",
isMut: true,
isSigner: false,
},
{
name: "spotMarketVault",
isMut: true,
isSigner: false,
},
{
name: "insuranceFundVault",
isMut: true,
isSigner: false,
},
{
name: "driftSigner",
isMut: false,
isSigner: false,
},
{
name: "tokenProgram",
isMut: false,
isSigner: false,
},
],
args: [
{
name: "quoteSpotMarketIndex",
type: "u16",
},
{
name: "marketIndex",
type: "u16",
},
],
},
{
name: "resolveSpotBankruptcy",
accounts: [
{
name: "state",
isMut: false,
isSigner: false,
},
{
name: "authority",
isMut: false,
isSigner: true,
},
{
name: "liquidator",
isMut: true,
isSigner: false,
},
{
name: "liquidatorStats",
isMut: true,
isSigner: false,
},
{
name: "user",
isMut: true,
isSigner: false,
},
{
name: "userStats",
isMut: true,
isSigner: false,
},
{
name: "spotMarketVault",
isMut: true,
isSigner: false,
},
{
name: "insuranceFundVault",
isMut: true,
isSigner: false,
},
{
name: "driftSigner",
isMut: false,
isSigner: false,
},
{
name: "tokenProgram",
isMut: false,
isSigner: false,
},
],
args: [
{
name: "marketIndex",
type: "u16",
},
],
},
{
name: "settleRevenueToInsuranceFund",
accounts: [
{
name: "state",
isMut: false,
isSigner: false,
},
{
name: "spotMarket",
isMut: true,
isSigner: false,
},
{
name: "spotMarketVault",
isMut: true,
isSigner: false,
},
{
name: "driftSigner",
isMut: false,
isSigner: false,
},
{
name: "insuranceFundVault",
isMut: true,
isSigner: false,
},
{
name: "tokenProgram",
isMut: false,
isSigner: false,
},
],
args: [
{
name: "spotMarketIndex",
type: "u16",
},
],
},
{
name: "updateFundingRate",
accounts: [
{
name: "state",
isMut: false,
isSigner: false,
},
{
name: "perpMarket",
isMut: true,
isSigner: false,
},
{
name: "oracle",
isMut: false,
isSigner: false,
},
],
args: [
{
name: "marketIndex",
type: "u16",
},
],
},
{
name: "updatePerpBidAskTwap",
accounts: [
{
name: "state",
isMut: false,
isSigner: false,
},
{
name: "perpMarket",
isMut: true,
isSigner: false,
},
{
name: "oracle",
isMut: false,
isSigner: false,
},
{
name: "keeperStats",
isMut: false,
isSigner: false,
},
{
name: "authority",
isMut: false,
isSigner: true,
},
],
args: [],
},
{
name: "updateSpotMarketCumulativeInterest",
accounts: [
{
name: "state",
isMut: false,
isSigner: false,
},
{
name: "spotMarket",
isMut: true,
isSigner: false,
},
{
name: "oracle",
isMut: false,
isSigner: false,
},
{
name: "spotMarketVault",
isMut: false,
isSigner: false,
},
],
args: [],
},
{
name: "updateAmms",
accounts: [
{
name: "state",
isMut: false,
isSigner: false,
},
{
name: "authority",
isMut: false,
isSigner: true,
},
],
args: [
{
name: "marketIndexes",
type: {
array: ["u16", 5],
},
},
],
},
{
name: "updateSpotMarketExpiry",
accounts: [
{
name: "admin",
isMut: false,
isSigner: true,
},
{
name: "state",
isMut: false,
isSigner: false,
},
{
name: "spotMarket",
isMut: true,
isSigner: false,
},
],
args: [
{
name: "expiryTs",
type: "i64",
},
],
},
{
name: "updateUserQuoteAssetInsuranceStake",
accounts: [
{
name: "state",
isMut: false,
isSigner: false,
},
{
name: "spotMarket",
isMut: false,
isSigner: false,
},
{
name: "insuranceFundStake",
isMut: true,
isSigner: false,
},
{
name: "userStats",
isMut: true,
isSigner: false,
},
{
name: "authority",
isMut: false,
isSigner: true,
},
{
name: "insuranceFundVault",
isMut: true,
isSigner: false,
},
],
args: [],
},
{
name: "initializeInsuranceFundStake",
accounts: [
{
name: "spotMarket",
isMut: false,
isSigner: false,
},
{
name: "insuranceFundStake",
isMut: true,
isSigner: false,
},
{
name: "userStats",
isMut: true,
isSigner: false,
},
{
name: "state",
isMut: false,
isSigner: false,
},
{
name: "authority",
isMut: false,
isSigner: true,
},
{
name: "payer",
isMut: true,
isSigner: true,
},
{
name: "rent",
isMut: false,
isSigner: false,
},
{
name: "systemProgram",
isMut: false,
isSigner: false,
},
],
args: [
{
name: "marketIndex",
type: "u16",
},
],
},
{
name: "addInsuranceFundStake",
accounts: [
{
name: "state",
isMut: false,
isSigner: false,
},
{
name: "spotMarket",
isMut: false,
isSigner: false,
},
{
name: "insuranceFundStake",
isMut: true,
isSigner: false,
},
{
name: "userStats",
isMut: true,
isSigner: false,
},
{
name: "authority",
isMut: false,
isSigner: true,
},
{
name: "spotMarketVault",
isMut: true,
isSigner: false,
},
{
name: "insuranceFundVault",
isMut: true,
isSigner: false,
},
{
name: "driftSigner",
isMut: false,
isSigner: false,
},
{
name: "userTokenAccount",
isMut: true,
isSigner: false,
},
{
name: "tokenProgram",
isMut: false,
isSigner: false,
},
],
args: [
{
name: "marketIndex",
type: "u16",
},
{
name: "amount",
type: "u64",
},
],
},
{
name: "requestRemoveInsuranceFundStake",
accounts: [
{
name: "spotMarket",
isMut: false,
isSigner: false,
},
{
name: "insuranceFundStake",
isMut: true,
isSigner: false,
},
{
name: "userStats",
isMut: true,
isSigner: false,
},
{
name: "authority",
isMut: false,
isSigner: true,
},
{
name: "insuranceFundVault",
isMut: true,
isSigner: false,
},
],
args: [
{
name: "marketIndex",
type: "u16",
},
{
name: "amount",
type: "u64",
},
],
},
{
name: "cancelRequestRemoveInsuranceFundStake",
accounts: [
{
name: "spotMarket",
isMut: false,
isSigner: false,
},
{
name: "insuranceFundStake",
isMut: true,
isSigner: false,
},
{
name: "userStats",
isMut: true,
isSigner: false,
},
{
name: "authority",
isMut: false,
isSigner: true,
},
{
name: "insuranceFundVault",
isMut: true,
isSigner: false,
},
],
args: [
{
name: "marketIndex",
type: "u16",
},
],
},
{
name: "removeInsuranceFundStake",
accounts: [
{
name: "state",
isMut: false,
isSigner: false,
},
{
name: "spotMarket",
isMut: false,
isSigner: false,
},
{
name: "insuranceFundStake",
isMut: true,
isSigner: false,
},
{
name: "userStats",
isMut: true,
isSigner: false,
},
{
name: "authority",
isMut: false,
isSigner: true,
},
{
name: "insuranceFundVault",
isMut: true,
isSigner: false,
},
{
name: "driftSigner",
isMut: false,
isSigner: false,
},
{
name: "userTokenAccount",
isMut: true,
isSigner: false,
},
{
name: "tokenProgram",
isMut: false,
isSigner: false,
},
],
args: [
{
name: "marketIndex",
type: "u16",
},
],
},
{
name: "transferProtocolIfShares",
accounts: [
{
name: "signer",
isMut: false,
isSigner: true,
},
{
name: "transferConfig",
isMut: true,
isSigner: false,
},
{
name: "state",
isMut: false,
isSigner: false,
},
{
name: "spotMarket",
isMut: true,
isSigner: false,
},
{
name: "insuranceFundStake",
isMut: true,
isSigner: false,
},
{
name: "userStats",
isMut: true,
isSigner: false,
},
{
name: "authority",
isMut: false,
isSigner: true,
},
{
name: "insuranceFundVault",
isMut: false,
isSigner: false,
},
],
args: [
{
name: "marketIndex",
type: "u16",
},
{