@drift-labs/sdk-browser
Version:
SDK for Drift Protocol
1,767 lines • 497 kB
JSON
{
"version": "2.139.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": "initializeSignedMsgUserOrders",
"accounts": [
{
"name": "signedMsgUserOrders",
"isMut": true,
"isSigner": false
},
{
"name": "authority",
"isMut": false,
"isSigner": false
},
{
"name": "payer",
"isMut": true,
"isSigner": true
},
{
"name": "rent",
"isMut": false,
"isSigner": false
},
{
"name": "systemProgram",
"isMut": false,
"isSigner": false
}
],
"args": [
{
"name": "numOrders",
"type": "u16"
}
]
},
{
"name": "resizeSignedMsgUserOrders",
"accounts": [
{
"name": "signedMsgUserOrders",
"isMut": true,
"isSigner": false
},
{
"name": "authority",
"isMut": false,
"isSigner": false
},
{
"name": "user",
"isMut": false,
"isSigner": false
},
{
"name": "payer",
"isMut": true,
"isSigner": true
},
{
"name": "systemProgram",
"isMut": false,
"isSigner": false
}
],
"args": [
{
"name": "numOrders",
"type": "u16"
}
]
},
{
"name": "initializeSignedMsgWsDelegates",
"accounts": [
{
"name": "signedMsgWsDelegates",
"isMut": true,
"isSigner": false
},
{
"name": "authority",
"isMut": true,
"isSigner": true
},
{
"name": "rent",
"isMut": false,
"isSigner": false
},
{
"name": "systemProgram",
"isMut": false,
"isSigner": false
}
],
"args": [
{
"name": "delegates",
"type": {
"vec": "publicKey"
}
}
]
},
{
"name": "changeSignedMsgWsDelegateStatus",
"accounts": [
{
"name": "signedMsgWsDelegates",
"isMut": true,
"isSigner": false
},
{
"name": "authority",
"isMut": true,
"isSigner": true
},
{
"name": "systemProgram",
"isMut": false,
"isSigner": false
}
],
"args": [
{
"name": "delegate",
"type": "publicKey"
},
{
"name": "add",
"type": "bool"
}
]
},
{
"name": "initializeFuelOverflow",
"accounts": [
{
"name": "fuelOverflow",
"isMut": true,
"isSigner": false
},
{
"name": "userStats",
"isMut": true,
"isSigner": false
},
{
"name": "authority",
"isMut": false,
"isSigner": false
},
{
"name": "payer",
"isMut": true,
"isSigner": true
},
{
"name": "rent",
"isMut": false,
"isSigner": false
},
{
"name": "systemProgram",
"isMut": false,
"isSigner": false
}
],
"args": []
},
{
"name": "sweepFuel",
"accounts": [
{
"name": "fuelOverflow",
"isMut": true,
"isSigner": false
},
{
"name": "userStats",
"isMut": true,
"isSigner": false
},
{
"name": "authority",
"isMut": false,
"isSigner": false
},
{
"name": "signer",
"isMut": false,
"isSigner": true
}
],
"args": []
},
{
"name": "resetFuelSeason",
"accounts": [
{
"name": "userStats",
"isMut": true,
"isSigner": false
},
{
"name": "authority",
"isMut": false,
"isSigner": false
},
{
"name": "state",
"isMut": false,
"isSigner": false
},
{
"name": "admin",
"isMut": false,
"isSigner": true
}
],
"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": "transferPools",
"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": "depositFromSpotMarketVault",
"isMut": true,
"isSigner": false
},
{
"name": "depositToSpotMarketVault",
"isMut": true,
"isSigner": false
},
{
"name": "borrowFromSpotMarketVault",
"isMut": true,
"isSigner": false
},
{
"name": "borrowToSpotMarketVault",
"isMut": true,
"isSigner": false
},
{
"name": "driftSigner",
"isMut": false,
"isSigner": false
}
],
"args": [
{
"name": "depositFromMarketIndex",
"type": "u16"
},
{
"name": "depositToMarketIndex",
"type": "u16"
},
{
"name": "borrowFromMarketIndex",
"type": "u16"
},
{
"name": "borrowToMarketIndex",
"type": "u16"
},
{
"name": "depositAmount",
"type": {
"option": "u64"
}
},
{
"name": "borrowAmount",
"type": {
"option": "u64"
}
}
]
},
{
"name": "transferPerpPosition",
"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
}
],
"args": [
{
"name": "marketIndex",
"type": "u16"
},
{
"name": "amount",
"type": {
"option": "i64"
}
}
]
},
{
"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": "successCondition",
"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": "placeAndMakeSignedMsgPerpOrder",
"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": "takerSignedMsgUserOrders",
"isMut": false,
"isSigner": false
},
{
"name": "authority",
"isMut": false,
"isSigner": true
}
],
"args": [
{
"name": "params",
"type": {
"defined": "OrderParams"
}
},
{
"name": "signedMsgOrderUuid",
"type": {
"array": [
"u8",
8
]
}
}
]
},
{
"name": "placeSignedMsgTakerOrder",
"accounts": [
{
"name": "state",
"isMut": false,
"isSigner": false
},
{
"name": "user",
"isMut": true,
"isSigner": false
},
{
"name": "userStats",
"isMut": true,
"isSigner": false
},
{
"name": "signedMsgUserOrders",
"isMut": true,
"isSigner": false
},
{
"name": "authority",
"isMut": false,
"isSigner": true
},
{
"name": "ixSysvar",
"isMut": false,
"isSigner": false,
"docs": [
"the supplied Sysvar could be anything else.",
"The Instruction Sysvar has not been implemented",
"in the Anchor framework yet, so this is the safe approach."
]
}
],
"args": [
{
"name": "signedMsgOrderParamsMessageBytes",
"type": "bytes"
},
{
"name": "isDelegateSigner",
"type": "bool"
}
]
},
{
"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": "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": "updateUserPerpPositionCustomMarginRatio",
"accounts": [
{
"name": "user",
"isMut": true,
"isSigner": false
},
{
"name": "authority",
"isMut": false,
"isSigner": true
}
],
"args": [
{
"name": "subAccountId",
"type": "u16"
},
{
"name": "perpMarketIndex",
"type": "u16"
},
{
"name": "marginRatio",
"type": "u16"
}
]
},
{
"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": "updateUserPoolId",
"accounts": [
{
"name": "user",
"isMut": true,
"isSigner": false
},
{
"name": "authority",
"isMut": false,
"isSigner": true
}
],
"args": [
{
"name": "subAccountId",
"type": "u16"
},
{
"name": "poolId",
"type": "u8"
}
]
},
{
"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": "updateUserProtectedMakerOrders",
"accounts": [
{
"name": "state",
"isMut": false,
"isSigner": false
},
{
"name": "user",
"isMut": true,
"isSigner": false
},
{
"name": "authority",
"isMut": false,
"isSigner": true
},
{
"name": "protectedMakerModeConfig",
"isMut": true,
"isSigner": false
}
],
"args": [
{
"name": "subAccountId",
"type": "u16"
},
{
"name": "protectedMakerOrders",
"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": true,
"isSigner": true
}
],
"args": []
},
{
"name": "forceDeleteUser",
"accounts": [
{
"name": "user",
"isMut": true,
"isSigner": false
},
{
"name": "userStats",
"isMut": true,
"isSigner": false
},
{
"name": "state",
"isMut": true,
"isSigner": false
},
{
"name": "authority",
"isMut": true,
"isSigner": false
},
{
"name": "keeper",
"isMut": true,
"isSigner": true
},
{
"name": "driftSigner",
"isMut": false,
"isSigner": false
}
],
"args": []
},
{
"name": "deleteSignedMsgUserOrders",
"accounts": [
{
"name": "signedMsgUserOrders",
"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": "enableUserHighLeverageMode",
"accounts": [
{
"name": "state",
"isMut": false,
"isSigner": false
},
{
"name": "user",
"isMut": true,
"isSigner": false
},
{
"name": "authority",
"isMut": false,
"isSigner": true
},
{
"name": "highLeverageModeConfig",
"isMut": true,
"isSigner": false
}
],
"args": [
{
"name": "subAccountId",
"type": "u16"
}
]
},
{
"name": "fillPerpOrder",
"accounts": [
{
"name": "state",
"isMut": false,
"isSigner": false
},
{
"name": "authority",
"isMut": false,
"isSigner":