988 lines
20 KiB
TypeScript
988 lines
20 KiB
TypeScript
export type MangoV4 = {
|
|
"version": "0.1.0",
|
|
"name": "mango_v4",
|
|
"instructions": [
|
|
{
|
|
"name": "createGroup",
|
|
"accounts": [
|
|
{
|
|
"name": "group",
|
|
"isMut": true,
|
|
"isSigner": false,
|
|
"pda": {
|
|
"seeds": [
|
|
{
|
|
"kind": "const",
|
|
"type": "string",
|
|
"value": "group"
|
|
},
|
|
{
|
|
"kind": "account",
|
|
"type": "publicKey",
|
|
"path": "admin"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"name": "admin",
|
|
"isMut": false,
|
|
"isSigner": true
|
|
},
|
|
{
|
|
"name": "payer",
|
|
"isMut": true,
|
|
"isSigner": true
|
|
},
|
|
{
|
|
"name": "systemProgram",
|
|
"isMut": false,
|
|
"isSigner": false
|
|
},
|
|
{
|
|
"name": "rent",
|
|
"isMut": false,
|
|
"isSigner": false
|
|
}
|
|
],
|
|
"args": []
|
|
},
|
|
{
|
|
"name": "registerToken",
|
|
"accounts": [
|
|
{
|
|
"name": "group",
|
|
"isMut": false,
|
|
"isSigner": false
|
|
},
|
|
{
|
|
"name": "admin",
|
|
"isMut": false,
|
|
"isSigner": true
|
|
},
|
|
{
|
|
"name": "mint",
|
|
"isMut": false,
|
|
"isSigner": false
|
|
},
|
|
{
|
|
"name": "bank",
|
|
"isMut": true,
|
|
"isSigner": false,
|
|
"pda": {
|
|
"seeds": [
|
|
{
|
|
"kind": "account",
|
|
"type": "publicKey",
|
|
"path": "group"
|
|
},
|
|
{
|
|
"kind": "const",
|
|
"type": "string",
|
|
"value": "tokenbank"
|
|
},
|
|
{
|
|
"kind": "account",
|
|
"type": "publicKey",
|
|
"account": "Mint",
|
|
"path": "mint"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"name": "vault",
|
|
"isMut": true,
|
|
"isSigner": false,
|
|
"pda": {
|
|
"seeds": [
|
|
{
|
|
"kind": "account",
|
|
"type": "publicKey",
|
|
"path": "group"
|
|
},
|
|
{
|
|
"kind": "const",
|
|
"type": "string",
|
|
"value": "tokenvault"
|
|
},
|
|
{
|
|
"kind": "account",
|
|
"type": "publicKey",
|
|
"account": "Mint",
|
|
"path": "mint"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"name": "payer",
|
|
"isMut": true,
|
|
"isSigner": true
|
|
},
|
|
{
|
|
"name": "tokenProgram",
|
|
"isMut": false,
|
|
"isSigner": false
|
|
},
|
|
{
|
|
"name": "systemProgram",
|
|
"isMut": false,
|
|
"isSigner": false
|
|
},
|
|
{
|
|
"name": "rent",
|
|
"isMut": false,
|
|
"isSigner": false
|
|
}
|
|
],
|
|
"args": [
|
|
{
|
|
"name": "decimals",
|
|
"type": "u8"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "createAccount",
|
|
"accounts": [
|
|
{
|
|
"name": "group",
|
|
"isMut": false,
|
|
"isSigner": false
|
|
},
|
|
{
|
|
"name": "account",
|
|
"isMut": true,
|
|
"isSigner": false,
|
|
"pda": {
|
|
"seeds": [
|
|
{
|
|
"kind": "account",
|
|
"type": "publicKey",
|
|
"path": "group"
|
|
},
|
|
{
|
|
"kind": "const",
|
|
"type": "string",
|
|
"value": "account"
|
|
},
|
|
{
|
|
"kind": "account",
|
|
"type": "publicKey",
|
|
"path": "owner"
|
|
},
|
|
{
|
|
"kind": "arg",
|
|
"type": "u8",
|
|
"path": "account_num"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"name": "owner",
|
|
"isMut": false,
|
|
"isSigner": true
|
|
},
|
|
{
|
|
"name": "payer",
|
|
"isMut": true,
|
|
"isSigner": true
|
|
},
|
|
{
|
|
"name": "systemProgram",
|
|
"isMut": false,
|
|
"isSigner": false
|
|
},
|
|
{
|
|
"name": "rent",
|
|
"isMut": false,
|
|
"isSigner": false
|
|
}
|
|
],
|
|
"args": [
|
|
{
|
|
"name": "accountNum",
|
|
"type": "u8"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "deposit",
|
|
"accounts": [
|
|
{
|
|
"name": "group",
|
|
"isMut": false,
|
|
"isSigner": false
|
|
},
|
|
{
|
|
"name": "account",
|
|
"isMut": false,
|
|
"isSigner": false
|
|
},
|
|
{
|
|
"name": "bank",
|
|
"isMut": true,
|
|
"isSigner": false,
|
|
"pda": {
|
|
"seeds": [
|
|
{
|
|
"kind": "account",
|
|
"type": "publicKey",
|
|
"path": "group"
|
|
},
|
|
{
|
|
"kind": "const",
|
|
"type": "string",
|
|
"value": "tokenbank"
|
|
},
|
|
{
|
|
"kind": "account",
|
|
"type": "publicKey",
|
|
"account": "TokenAccount",
|
|
"path": "deposit_token.mint"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"name": "vault",
|
|
"isMut": true,
|
|
"isSigner": false,
|
|
"pda": {
|
|
"seeds": [
|
|
{
|
|
"kind": "account",
|
|
"type": "publicKey",
|
|
"path": "group"
|
|
},
|
|
{
|
|
"kind": "const",
|
|
"type": "string",
|
|
"value": "tokenvault"
|
|
},
|
|
{
|
|
"kind": "account",
|
|
"type": "publicKey",
|
|
"account": "TokenAccount",
|
|
"path": "deposit_token.mint"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"name": "depositToken",
|
|
"isMut": true,
|
|
"isSigner": false
|
|
},
|
|
{
|
|
"name": "depositAuthority",
|
|
"isMut": false,
|
|
"isSigner": true
|
|
},
|
|
{
|
|
"name": "tokenProgram",
|
|
"isMut": false,
|
|
"isSigner": false
|
|
}
|
|
],
|
|
"args": [
|
|
{
|
|
"name": "amount",
|
|
"type": "u64"
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"accounts": [
|
|
{
|
|
"name": "mangoAccount",
|
|
"type": {
|
|
"kind": "struct",
|
|
"fields": [
|
|
{
|
|
"name": "group",
|
|
"type": "publicKey"
|
|
},
|
|
{
|
|
"name": "owner",
|
|
"type": "publicKey"
|
|
},
|
|
{
|
|
"name": "delegate",
|
|
"type": "publicKey"
|
|
},
|
|
{
|
|
"name": "indexedPositions",
|
|
"type": {
|
|
"defined": "IndexedPositions"
|
|
}
|
|
},
|
|
{
|
|
"name": "beingLiquidated",
|
|
"type": "bool"
|
|
},
|
|
{
|
|
"name": "isBankrupt",
|
|
"type": "bool"
|
|
},
|
|
{
|
|
"name": "reserved",
|
|
"type": {
|
|
"array": [
|
|
"u8",
|
|
5
|
|
]
|
|
}
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"name": "mangoGroup",
|
|
"type": {
|
|
"kind": "struct",
|
|
"fields": [
|
|
{
|
|
"name": "admin",
|
|
"type": "publicKey"
|
|
},
|
|
{
|
|
"name": "tokens",
|
|
"type": {
|
|
"defined": "Tokens"
|
|
}
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"name": "tokenBank",
|
|
"type": {
|
|
"kind": "struct",
|
|
"fields": [
|
|
{
|
|
"name": "depositIndex",
|
|
"type": {
|
|
"defined": "I80F48"
|
|
}
|
|
},
|
|
{
|
|
"name": "borrowIndex",
|
|
"type": {
|
|
"defined": "I80F48"
|
|
}
|
|
},
|
|
{
|
|
"name": "indexedTotalDeposits",
|
|
"type": {
|
|
"defined": "I80F48"
|
|
}
|
|
},
|
|
{
|
|
"name": "indexedTotalBorrows",
|
|
"type": {
|
|
"defined": "I80F48"
|
|
}
|
|
}
|
|
]
|
|
}
|
|
}
|
|
],
|
|
"types": [
|
|
{
|
|
"name": "IndexedPosition",
|
|
"type": {
|
|
"kind": "struct",
|
|
"fields": [
|
|
{
|
|
"name": "indexedValue",
|
|
"type": {
|
|
"defined": "I80F48"
|
|
}
|
|
},
|
|
{
|
|
"name": "tokenIndex",
|
|
"type": {
|
|
"defined": "TokenIndex"
|
|
}
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"name": "IndexedPositions",
|
|
"type": {
|
|
"kind": "struct",
|
|
"fields": [
|
|
{
|
|
"name": "values",
|
|
"type": {
|
|
"array": [
|
|
{
|
|
"defined": "IndexedPosition"
|
|
},
|
|
32
|
|
]
|
|
}
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"name": "TokenInfo",
|
|
"type": {
|
|
"kind": "struct",
|
|
"fields": [
|
|
{
|
|
"name": "mint",
|
|
"type": "publicKey"
|
|
},
|
|
{
|
|
"name": "decimals",
|
|
"type": "u8"
|
|
},
|
|
{
|
|
"name": "bankBump",
|
|
"type": "u8"
|
|
},
|
|
{
|
|
"name": "vaultBump",
|
|
"type": "u8"
|
|
},
|
|
{
|
|
"name": "reserved",
|
|
"type": {
|
|
"array": [
|
|
"u8",
|
|
30
|
|
]
|
|
}
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"name": "Tokens",
|
|
"type": {
|
|
"kind": "struct",
|
|
"fields": [
|
|
{
|
|
"name": "infos",
|
|
"type": {
|
|
"array": [
|
|
{
|
|
"defined": "TokenInfo"
|
|
},
|
|
100
|
|
]
|
|
}
|
|
}
|
|
]
|
|
}
|
|
}
|
|
],
|
|
"errors": [
|
|
{
|
|
"code": 6000,
|
|
"name": "SomeError",
|
|
"msg": ""
|
|
}
|
|
]
|
|
};
|
|
|
|
export const IDL: MangoV4 = {
|
|
"version": "0.1.0",
|
|
"name": "mango_v4",
|
|
"instructions": [
|
|
{
|
|
"name": "createGroup",
|
|
"accounts": [
|
|
{
|
|
"name": "group",
|
|
"isMut": true,
|
|
"isSigner": false,
|
|
"pda": {
|
|
"seeds": [
|
|
{
|
|
"kind": "const",
|
|
"type": "string",
|
|
"value": "group"
|
|
},
|
|
{
|
|
"kind": "account",
|
|
"type": "publicKey",
|
|
"path": "admin"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"name": "admin",
|
|
"isMut": false,
|
|
"isSigner": true
|
|
},
|
|
{
|
|
"name": "payer",
|
|
"isMut": true,
|
|
"isSigner": true
|
|
},
|
|
{
|
|
"name": "systemProgram",
|
|
"isMut": false,
|
|
"isSigner": false
|
|
},
|
|
{
|
|
"name": "rent",
|
|
"isMut": false,
|
|
"isSigner": false
|
|
}
|
|
],
|
|
"args": []
|
|
},
|
|
{
|
|
"name": "registerToken",
|
|
"accounts": [
|
|
{
|
|
"name": "group",
|
|
"isMut": false,
|
|
"isSigner": false
|
|
},
|
|
{
|
|
"name": "admin",
|
|
"isMut": false,
|
|
"isSigner": true
|
|
},
|
|
{
|
|
"name": "mint",
|
|
"isMut": false,
|
|
"isSigner": false
|
|
},
|
|
{
|
|
"name": "bank",
|
|
"isMut": true,
|
|
"isSigner": false,
|
|
"pda": {
|
|
"seeds": [
|
|
{
|
|
"kind": "account",
|
|
"type": "publicKey",
|
|
"path": "group"
|
|
},
|
|
{
|
|
"kind": "const",
|
|
"type": "string",
|
|
"value": "tokenbank"
|
|
},
|
|
{
|
|
"kind": "account",
|
|
"type": "publicKey",
|
|
"account": "Mint",
|
|
"path": "mint"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"name": "vault",
|
|
"isMut": true,
|
|
"isSigner": false,
|
|
"pda": {
|
|
"seeds": [
|
|
{
|
|
"kind": "account",
|
|
"type": "publicKey",
|
|
"path": "group"
|
|
},
|
|
{
|
|
"kind": "const",
|
|
"type": "string",
|
|
"value": "tokenvault"
|
|
},
|
|
{
|
|
"kind": "account",
|
|
"type": "publicKey",
|
|
"account": "Mint",
|
|
"path": "mint"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"name": "payer",
|
|
"isMut": true,
|
|
"isSigner": true
|
|
},
|
|
{
|
|
"name": "tokenProgram",
|
|
"isMut": false,
|
|
"isSigner": false
|
|
},
|
|
{
|
|
"name": "systemProgram",
|
|
"isMut": false,
|
|
"isSigner": false
|
|
},
|
|
{
|
|
"name": "rent",
|
|
"isMut": false,
|
|
"isSigner": false
|
|
}
|
|
],
|
|
"args": [
|
|
{
|
|
"name": "decimals",
|
|
"type": "u8"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "createAccount",
|
|
"accounts": [
|
|
{
|
|
"name": "group",
|
|
"isMut": false,
|
|
"isSigner": false
|
|
},
|
|
{
|
|
"name": "account",
|
|
"isMut": true,
|
|
"isSigner": false,
|
|
"pda": {
|
|
"seeds": [
|
|
{
|
|
"kind": "account",
|
|
"type": "publicKey",
|
|
"path": "group"
|
|
},
|
|
{
|
|
"kind": "const",
|
|
"type": "string",
|
|
"value": "account"
|
|
},
|
|
{
|
|
"kind": "account",
|
|
"type": "publicKey",
|
|
"path": "owner"
|
|
},
|
|
{
|
|
"kind": "arg",
|
|
"type": "u8",
|
|
"path": "account_num"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"name": "owner",
|
|
"isMut": false,
|
|
"isSigner": true
|
|
},
|
|
{
|
|
"name": "payer",
|
|
"isMut": true,
|
|
"isSigner": true
|
|
},
|
|
{
|
|
"name": "systemProgram",
|
|
"isMut": false,
|
|
"isSigner": false
|
|
},
|
|
{
|
|
"name": "rent",
|
|
"isMut": false,
|
|
"isSigner": false
|
|
}
|
|
],
|
|
"args": [
|
|
{
|
|
"name": "accountNum",
|
|
"type": "u8"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "deposit",
|
|
"accounts": [
|
|
{
|
|
"name": "group",
|
|
"isMut": false,
|
|
"isSigner": false
|
|
},
|
|
{
|
|
"name": "account",
|
|
"isMut": false,
|
|
"isSigner": false
|
|
},
|
|
{
|
|
"name": "bank",
|
|
"isMut": true,
|
|
"isSigner": false,
|
|
"pda": {
|
|
"seeds": [
|
|
{
|
|
"kind": "account",
|
|
"type": "publicKey",
|
|
"path": "group"
|
|
},
|
|
{
|
|
"kind": "const",
|
|
"type": "string",
|
|
"value": "tokenbank"
|
|
},
|
|
{
|
|
"kind": "account",
|
|
"type": "publicKey",
|
|
"account": "TokenAccount",
|
|
"path": "deposit_token.mint"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"name": "vault",
|
|
"isMut": true,
|
|
"isSigner": false,
|
|
"pda": {
|
|
"seeds": [
|
|
{
|
|
"kind": "account",
|
|
"type": "publicKey",
|
|
"path": "group"
|
|
},
|
|
{
|
|
"kind": "const",
|
|
"type": "string",
|
|
"value": "tokenvault"
|
|
},
|
|
{
|
|
"kind": "account",
|
|
"type": "publicKey",
|
|
"account": "TokenAccount",
|
|
"path": "deposit_token.mint"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"name": "depositToken",
|
|
"isMut": true,
|
|
"isSigner": false
|
|
},
|
|
{
|
|
"name": "depositAuthority",
|
|
"isMut": false,
|
|
"isSigner": true
|
|
},
|
|
{
|
|
"name": "tokenProgram",
|
|
"isMut": false,
|
|
"isSigner": false
|
|
}
|
|
],
|
|
"args": [
|
|
{
|
|
"name": "amount",
|
|
"type": "u64"
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"accounts": [
|
|
{
|
|
"name": "mangoAccount",
|
|
"type": {
|
|
"kind": "struct",
|
|
"fields": [
|
|
{
|
|
"name": "group",
|
|
"type": "publicKey"
|
|
},
|
|
{
|
|
"name": "owner",
|
|
"type": "publicKey"
|
|
},
|
|
{
|
|
"name": "delegate",
|
|
"type": "publicKey"
|
|
},
|
|
{
|
|
"name": "indexedPositions",
|
|
"type": {
|
|
"defined": "IndexedPositions"
|
|
}
|
|
},
|
|
{
|
|
"name": "beingLiquidated",
|
|
"type": "bool"
|
|
},
|
|
{
|
|
"name": "isBankrupt",
|
|
"type": "bool"
|
|
},
|
|
{
|
|
"name": "reserved",
|
|
"type": {
|
|
"array": [
|
|
"u8",
|
|
5
|
|
]
|
|
}
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"name": "mangoGroup",
|
|
"type": {
|
|
"kind": "struct",
|
|
"fields": [
|
|
{
|
|
"name": "admin",
|
|
"type": "publicKey"
|
|
},
|
|
{
|
|
"name": "tokens",
|
|
"type": {
|
|
"defined": "Tokens"
|
|
}
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"name": "tokenBank",
|
|
"type": {
|
|
"kind": "struct",
|
|
"fields": [
|
|
{
|
|
"name": "depositIndex",
|
|
"type": {
|
|
"defined": "I80F48"
|
|
}
|
|
},
|
|
{
|
|
"name": "borrowIndex",
|
|
"type": {
|
|
"defined": "I80F48"
|
|
}
|
|
},
|
|
{
|
|
"name": "indexedTotalDeposits",
|
|
"type": {
|
|
"defined": "I80F48"
|
|
}
|
|
},
|
|
{
|
|
"name": "indexedTotalBorrows",
|
|
"type": {
|
|
"defined": "I80F48"
|
|
}
|
|
}
|
|
]
|
|
}
|
|
}
|
|
],
|
|
"types": [
|
|
{
|
|
"name": "IndexedPosition",
|
|
"type": {
|
|
"kind": "struct",
|
|
"fields": [
|
|
{
|
|
"name": "indexedValue",
|
|
"type": {
|
|
"defined": "I80F48"
|
|
}
|
|
},
|
|
{
|
|
"name": "tokenIndex",
|
|
"type": {
|
|
"defined": "TokenIndex"
|
|
}
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"name": "IndexedPositions",
|
|
"type": {
|
|
"kind": "struct",
|
|
"fields": [
|
|
{
|
|
"name": "values",
|
|
"type": {
|
|
"array": [
|
|
{
|
|
"defined": "IndexedPosition"
|
|
},
|
|
32
|
|
]
|
|
}
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"name": "TokenInfo",
|
|
"type": {
|
|
"kind": "struct",
|
|
"fields": [
|
|
{
|
|
"name": "mint",
|
|
"type": "publicKey"
|
|
},
|
|
{
|
|
"name": "decimals",
|
|
"type": "u8"
|
|
},
|
|
{
|
|
"name": "bankBump",
|
|
"type": "u8"
|
|
},
|
|
{
|
|
"name": "vaultBump",
|
|
"type": "u8"
|
|
},
|
|
{
|
|
"name": "reserved",
|
|
"type": {
|
|
"array": [
|
|
"u8",
|
|
30
|
|
]
|
|
}
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"name": "Tokens",
|
|
"type": {
|
|
"kind": "struct",
|
|
"fields": [
|
|
{
|
|
"name": "infos",
|
|
"type": {
|
|
"array": [
|
|
{
|
|
"defined": "TokenInfo"
|
|
},
|
|
100
|
|
]
|
|
}
|
|
}
|
|
]
|
|
}
|
|
}
|
|
],
|
|
"errors": [
|
|
{
|
|
"code": 6000,
|
|
"name": "SomeError",
|
|
"msg": ""
|
|
}
|
|
]
|
|
};
|