UNPKG

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
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", }, {