981 lines
27 KiB
JSON
981 lines
27 KiB
JSON
{
|
|
"version": "0.1.0",
|
|
"name": "jupiter_smart_wallet",
|
|
"instructions": [
|
|
{
|
|
"name": "initialize",
|
|
"accounts": [
|
|
{
|
|
"name": "vault",
|
|
"isMut": false,
|
|
"isSigner": false
|
|
},
|
|
{
|
|
"name": "vaultInfo",
|
|
"isMut": true,
|
|
"isSigner": false
|
|
},
|
|
{
|
|
"name": "payer",
|
|
"isMut": true,
|
|
"isSigner": true
|
|
},
|
|
{
|
|
"name": "systemProgram",
|
|
"isMut": false,
|
|
"isSigner": false
|
|
},
|
|
{
|
|
"name": "eventAuthority",
|
|
"isMut": false,
|
|
"isSigner": false
|
|
},
|
|
{
|
|
"name": "program",
|
|
"isMut": false,
|
|
"isSigner": false
|
|
}
|
|
],
|
|
"args": [
|
|
{
|
|
"name": "userSigner",
|
|
"type": {
|
|
"array": [
|
|
"u8",
|
|
64
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"name": "label",
|
|
"type": "string"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "flashSwapApprove",
|
|
"accounts": [
|
|
{
|
|
"name": "keeper",
|
|
"isMut": true,
|
|
"isSigner": true
|
|
},
|
|
{
|
|
"name": "wsolMint",
|
|
"isMut": false,
|
|
"isSigner": false
|
|
},
|
|
{
|
|
"name": "vaultWsol",
|
|
"isMut": true,
|
|
"isSigner": false
|
|
},
|
|
{
|
|
"name": "tokenProgram",
|
|
"isMut": false,
|
|
"isSigner": false
|
|
},
|
|
{
|
|
"name": "vault",
|
|
"isMut": true,
|
|
"isSigner": false
|
|
},
|
|
{
|
|
"name": "vaultInfo",
|
|
"isMut": true,
|
|
"isSigner": false
|
|
},
|
|
{
|
|
"name": "inputMint",
|
|
"isMut": false,
|
|
"isSigner": false
|
|
},
|
|
{
|
|
"name": "outputMint",
|
|
"isMut": false,
|
|
"isSigner": false
|
|
},
|
|
{
|
|
"name": "keeperInputAccount",
|
|
"isMut": true,
|
|
"isSigner": false
|
|
},
|
|
{
|
|
"name": "inputVault",
|
|
"isMut": true,
|
|
"isSigner": false
|
|
},
|
|
{
|
|
"name": "outputVault",
|
|
"isMut": true,
|
|
"isSigner": false,
|
|
"docs": [
|
|
"CHECKED: in implementation code"
|
|
]
|
|
},
|
|
{
|
|
"name": "inputTokenProgram",
|
|
"isMut": false,
|
|
"isSigner": false
|
|
},
|
|
{
|
|
"name": "outputTokenProgram",
|
|
"isMut": false,
|
|
"isSigner": false
|
|
},
|
|
{
|
|
"name": "instructionsSysvar",
|
|
"isMut": false,
|
|
"isSigner": false
|
|
},
|
|
{
|
|
"name": "associatedTokenProgram",
|
|
"isMut": false,
|
|
"isSigner": false
|
|
},
|
|
{
|
|
"name": "systemProgram",
|
|
"isMut": false,
|
|
"isSigner": false
|
|
},
|
|
{
|
|
"name": "eventAuthority",
|
|
"isMut": false,
|
|
"isSigner": false
|
|
},
|
|
{
|
|
"name": "program",
|
|
"isMut": false,
|
|
"isSigner": false
|
|
}
|
|
],
|
|
"args": [
|
|
{
|
|
"name": "nonce",
|
|
"type": "u64"
|
|
},
|
|
{
|
|
"name": "signature",
|
|
"type": {
|
|
"array": [
|
|
"u8",
|
|
64
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"name": "recoveryId",
|
|
"type": "u8"
|
|
},
|
|
{
|
|
"name": "priorityFeeLamports",
|
|
"type": "u64"
|
|
},
|
|
{
|
|
"name": "inputAmount",
|
|
"type": "u64"
|
|
},
|
|
{
|
|
"name": "minOut",
|
|
"type": "u64"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "preFlashSwapApprove",
|
|
"accounts": [
|
|
{
|
|
"name": "keeper",
|
|
"isMut": true,
|
|
"isSigner": true
|
|
},
|
|
{
|
|
"name": "vaultWsol",
|
|
"isMut": true,
|
|
"isSigner": false
|
|
},
|
|
{
|
|
"name": "tokenProgram",
|
|
"isMut": false,
|
|
"isSigner": false
|
|
},
|
|
{
|
|
"name": "vault",
|
|
"isMut": true,
|
|
"isSigner": false
|
|
},
|
|
{
|
|
"name": "vaultInfo",
|
|
"isMut": true,
|
|
"isSigner": false
|
|
},
|
|
{
|
|
"name": "inputMint",
|
|
"isMut": true,
|
|
"isSigner": false
|
|
},
|
|
{
|
|
"name": "outputMint",
|
|
"isMut": false,
|
|
"isSigner": false
|
|
},
|
|
{
|
|
"name": "keeperInputAccount",
|
|
"isMut": false,
|
|
"isSigner": false
|
|
},
|
|
{
|
|
"name": "referrer",
|
|
"isMut": true,
|
|
"isSigner": false
|
|
},
|
|
{
|
|
"name": "inputVault",
|
|
"isMut": true,
|
|
"isSigner": false
|
|
},
|
|
{
|
|
"name": "outputVault",
|
|
"isMut": true,
|
|
"isSigner": false,
|
|
"docs": [
|
|
"CHECKED: in implementation code"
|
|
]
|
|
},
|
|
{
|
|
"name": "inputTokenProgram",
|
|
"isMut": false,
|
|
"isSigner": false
|
|
},
|
|
{
|
|
"name": "outputTokenProgram",
|
|
"isMut": false,
|
|
"isSigner": false
|
|
},
|
|
{
|
|
"name": "instructionsSysvar",
|
|
"isMut": false,
|
|
"isSigner": false
|
|
},
|
|
{
|
|
"name": "associatedTokenProgram",
|
|
"isMut": false,
|
|
"isSigner": false
|
|
},
|
|
{
|
|
"name": "systemProgram",
|
|
"isMut": false,
|
|
"isSigner": false
|
|
},
|
|
{
|
|
"name": "eventAuthority",
|
|
"isMut": false,
|
|
"isSigner": false
|
|
},
|
|
{
|
|
"name": "program",
|
|
"isMut": false,
|
|
"isSigner": false
|
|
}
|
|
],
|
|
"args": [
|
|
{
|
|
"name": "nonce",
|
|
"type": "u64"
|
|
},
|
|
{
|
|
"name": "signature",
|
|
"type": {
|
|
"array": [
|
|
"u8",
|
|
64
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"name": "recoveryId",
|
|
"type": "u8"
|
|
},
|
|
{
|
|
"name": "priorityFeeLamports",
|
|
"type": "u64"
|
|
},
|
|
{
|
|
"name": "inputAmount",
|
|
"type": "u64"
|
|
},
|
|
{
|
|
"name": "minOut",
|
|
"type": "u64"
|
|
},
|
|
{
|
|
"name": "postSwapIxIndex",
|
|
"type": "u8"
|
|
},
|
|
{
|
|
"name": "feeBps",
|
|
"type": "u16"
|
|
},
|
|
{
|
|
"name": "referralShareBps",
|
|
"type": "u16"
|
|
},
|
|
{
|
|
"name": "useDurableNonce",
|
|
"type": "bool"
|
|
},
|
|
{
|
|
"name": "maxOut",
|
|
"type": "u64"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "postSwap",
|
|
"accounts": [
|
|
{
|
|
"name": "keeper",
|
|
"isMut": true,
|
|
"isSigner": true
|
|
},
|
|
{
|
|
"name": "wsolMint",
|
|
"isMut": false,
|
|
"isSigner": false
|
|
},
|
|
{
|
|
"name": "vaultWsol",
|
|
"isMut": true,
|
|
"isSigner": false
|
|
},
|
|
{
|
|
"name": "tokenProgram",
|
|
"isMut": false,
|
|
"isSigner": false
|
|
},
|
|
{
|
|
"name": "vault",
|
|
"isMut": true,
|
|
"isSigner": false
|
|
},
|
|
{
|
|
"name": "vaultInfo",
|
|
"isMut": true,
|
|
"isSigner": false
|
|
},
|
|
{
|
|
"name": "referrer",
|
|
"isMut": true,
|
|
"isSigner": false
|
|
},
|
|
{
|
|
"name": "outputVault",
|
|
"isMut": false,
|
|
"isSigner": false
|
|
},
|
|
{
|
|
"name": "associatedTokenProgram",
|
|
"isMut": false,
|
|
"isSigner": false
|
|
},
|
|
{
|
|
"name": "systemProgram",
|
|
"isMut": false,
|
|
"isSigner": false
|
|
},
|
|
{
|
|
"name": "eventAuthority",
|
|
"isMut": false,
|
|
"isSigner": false
|
|
},
|
|
{
|
|
"name": "program",
|
|
"isMut": false,
|
|
"isSigner": false
|
|
}
|
|
],
|
|
"args": []
|
|
},
|
|
{
|
|
"name": "withdraw",
|
|
"accounts": [
|
|
{
|
|
"name": "keeper",
|
|
"isMut": true,
|
|
"isSigner": true
|
|
},
|
|
{
|
|
"name": "vault",
|
|
"isMut": true,
|
|
"isSigner": false
|
|
},
|
|
{
|
|
"name": "vaultInfo",
|
|
"isMut": true,
|
|
"isSigner": false
|
|
},
|
|
{
|
|
"name": "user",
|
|
"isMut": true,
|
|
"isSigner": false
|
|
},
|
|
{
|
|
"name": "vaultTokenAccount",
|
|
"isMut": true,
|
|
"isSigner": false
|
|
},
|
|
{
|
|
"name": "mint",
|
|
"isMut": false,
|
|
"isSigner": false
|
|
},
|
|
{
|
|
"name": "tokenProgram",
|
|
"isMut": false,
|
|
"isSigner": false
|
|
},
|
|
{
|
|
"name": "associatedTokenProgram",
|
|
"isMut": false,
|
|
"isSigner": false
|
|
},
|
|
{
|
|
"name": "systemProgram",
|
|
"isMut": false,
|
|
"isSigner": false
|
|
},
|
|
{
|
|
"name": "eventAuthority",
|
|
"isMut": false,
|
|
"isSigner": false
|
|
},
|
|
{
|
|
"name": "program",
|
|
"isMut": false,
|
|
"isSigner": false
|
|
}
|
|
],
|
|
"args": [
|
|
{
|
|
"name": "nonce",
|
|
"type": "u64"
|
|
},
|
|
{
|
|
"name": "signature",
|
|
"type": {
|
|
"array": [
|
|
"u8",
|
|
64
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"name": "recoveryId",
|
|
"type": "u8"
|
|
},
|
|
{
|
|
"name": "amount",
|
|
"type": "u64"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "withdrawToken",
|
|
"accounts": [
|
|
{
|
|
"name": "keeper",
|
|
"isMut": true,
|
|
"isSigner": true
|
|
},
|
|
{
|
|
"name": "vault",
|
|
"isMut": true,
|
|
"isSigner": false
|
|
},
|
|
{
|
|
"name": "vaultInfo",
|
|
"isMut": true,
|
|
"isSigner": false
|
|
},
|
|
{
|
|
"name": "receiver",
|
|
"isMut": false,
|
|
"isSigner": false
|
|
},
|
|
{
|
|
"name": "receiverTokenAccount",
|
|
"isMut": true,
|
|
"isSigner": false
|
|
},
|
|
{
|
|
"name": "vaultTokenAccount",
|
|
"isMut": true,
|
|
"isSigner": false
|
|
},
|
|
{
|
|
"name": "mint",
|
|
"isMut": true,
|
|
"isSigner": false
|
|
},
|
|
{
|
|
"name": "tokenProgram",
|
|
"isMut": false,
|
|
"isSigner": false
|
|
},
|
|
{
|
|
"name": "associatedTokenProgram",
|
|
"isMut": false,
|
|
"isSigner": false
|
|
},
|
|
{
|
|
"name": "systemProgram",
|
|
"isMut": false,
|
|
"isSigner": false
|
|
},
|
|
{
|
|
"name": "eventAuthority",
|
|
"isMut": false,
|
|
"isSigner": false
|
|
},
|
|
{
|
|
"name": "program",
|
|
"isMut": false,
|
|
"isSigner": false
|
|
}
|
|
],
|
|
"args": [
|
|
{
|
|
"name": "nonce",
|
|
"type": "u64"
|
|
},
|
|
{
|
|
"name": "signature",
|
|
"type": {
|
|
"array": [
|
|
"u8",
|
|
64
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"name": "recoveryId",
|
|
"type": "u8"
|
|
},
|
|
{
|
|
"name": "amount",
|
|
"type": "u64"
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"accounts": [
|
|
{
|
|
"name": "VaultInfo",
|
|
"type": {
|
|
"kind": "struct",
|
|
"fields": [
|
|
{
|
|
"name": "vault",
|
|
"type": "publicKey"
|
|
},
|
|
{
|
|
"name": "bump",
|
|
"type": "u8"
|
|
},
|
|
{
|
|
"name": "createdAt",
|
|
"type": "i64"
|
|
},
|
|
{
|
|
"name": "label",
|
|
"type": "string"
|
|
},
|
|
{
|
|
"name": "transientNonces",
|
|
"type": {
|
|
"array": [
|
|
"u64",
|
|
32
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"name": "userSigner",
|
|
"type": {
|
|
"array": [
|
|
"u8",
|
|
64
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"name": "swapInProgress",
|
|
"type": "bool"
|
|
},
|
|
{
|
|
"name": "preSwapAmount",
|
|
"type": "u64"
|
|
},
|
|
{
|
|
"name": "minOut",
|
|
"type": "u64"
|
|
},
|
|
{
|
|
"name": "feeBps",
|
|
"type": "u16"
|
|
},
|
|
{
|
|
"name": "referralShareBps",
|
|
"type": "u16"
|
|
},
|
|
{
|
|
"name": "maxOut",
|
|
"type": "u64"
|
|
},
|
|
{
|
|
"name": "reserved",
|
|
"type": {
|
|
"array": [
|
|
"u8",
|
|
31
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"name": "durableNonces",
|
|
"type": {
|
|
"vec": "u64"
|
|
}
|
|
}
|
|
]
|
|
}
|
|
}
|
|
],
|
|
"types": [
|
|
{
|
|
"name": "SwapApproval",
|
|
"type": {
|
|
"kind": "struct",
|
|
"fields": [
|
|
{
|
|
"name": "nonce",
|
|
"type": "u64"
|
|
},
|
|
{
|
|
"name": "inputMint",
|
|
"type": "publicKey"
|
|
},
|
|
{
|
|
"name": "outputMint",
|
|
"type": "publicKey"
|
|
},
|
|
{
|
|
"name": "inputAmount",
|
|
"type": "u64"
|
|
},
|
|
{
|
|
"name": "priorityFeeLamports",
|
|
"type": "u64"
|
|
},
|
|
{
|
|
"name": "useDurableNonce",
|
|
"type": "bool"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"name": "WithdrawApproval",
|
|
"type": {
|
|
"kind": "struct",
|
|
"fields": [
|
|
{
|
|
"name": "nonce",
|
|
"type": "u64"
|
|
},
|
|
{
|
|
"name": "amount",
|
|
"type": "u64"
|
|
},
|
|
{
|
|
"name": "withdrawalAddress",
|
|
"type": "publicKey"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"name": "WithdrawTokenApproval",
|
|
"type": {
|
|
"kind": "struct",
|
|
"fields": [
|
|
{
|
|
"name": "nonce",
|
|
"type": "u64"
|
|
},
|
|
{
|
|
"name": "amount",
|
|
"type": "u64"
|
|
},
|
|
{
|
|
"name": "mint",
|
|
"type": "publicKey"
|
|
},
|
|
{
|
|
"name": "withdrawalAddress",
|
|
"type": "publicKey"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"name": "BurnApproval",
|
|
"type": {
|
|
"kind": "struct",
|
|
"fields": [
|
|
{
|
|
"name": "nonce",
|
|
"type": "u64"
|
|
},
|
|
{
|
|
"name": "mint",
|
|
"type": "publicKey"
|
|
}
|
|
]
|
|
}
|
|
}
|
|
],
|
|
"events": [
|
|
{
|
|
"name": "Initialize",
|
|
"fields": [
|
|
{
|
|
"name": "vaultKey",
|
|
"type": "publicKey",
|
|
"index": false
|
|
},
|
|
{
|
|
"name": "userKey",
|
|
"type": {
|
|
"array": [
|
|
"u8",
|
|
64
|
|
]
|
|
},
|
|
"index": false
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "Withdraw",
|
|
"fields": [
|
|
{
|
|
"name": "vaultKey",
|
|
"type": "publicKey",
|
|
"index": false
|
|
},
|
|
{
|
|
"name": "receiverKey",
|
|
"type": "publicKey",
|
|
"index": false
|
|
},
|
|
{
|
|
"name": "mint",
|
|
"type": "publicKey",
|
|
"index": false
|
|
},
|
|
{
|
|
"name": "amount",
|
|
"type": "u64",
|
|
"index": false
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "Swap",
|
|
"fields": [
|
|
{
|
|
"name": "userKey",
|
|
"type": {
|
|
"array": [
|
|
"u8",
|
|
64
|
|
]
|
|
},
|
|
"index": false
|
|
},
|
|
{
|
|
"name": "vaultKey",
|
|
"type": "publicKey",
|
|
"index": false
|
|
},
|
|
{
|
|
"name": "inputMint",
|
|
"type": "publicKey",
|
|
"index": false
|
|
},
|
|
{
|
|
"name": "outputMint",
|
|
"type": "publicKey",
|
|
"index": false
|
|
},
|
|
{
|
|
"name": "inputAmount",
|
|
"type": "u64",
|
|
"index": false
|
|
},
|
|
{
|
|
"name": "baseFeeAmount",
|
|
"type": "u64",
|
|
"index": false
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "Refer",
|
|
"fields": [
|
|
{
|
|
"name": "vaultKey",
|
|
"type": "publicKey",
|
|
"index": false
|
|
},
|
|
{
|
|
"name": "referrerKey",
|
|
"type": "publicKey",
|
|
"index": false
|
|
},
|
|
{
|
|
"name": "shareAmount",
|
|
"type": "u64",
|
|
"index": false
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"errors": [
|
|
{
|
|
"code": 6000,
|
|
"name": "MathOverflow"
|
|
},
|
|
{
|
|
"code": 6001,
|
|
"name": "AddressMismatch"
|
|
},
|
|
{
|
|
"code": 6002,
|
|
"name": "Unauthorized"
|
|
},
|
|
{
|
|
"code": 6003,
|
|
"name": "UnauthorizedKeeper"
|
|
},
|
|
{
|
|
"code": 6004,
|
|
"name": "ProgramMismatch"
|
|
},
|
|
{
|
|
"code": 6005,
|
|
"name": "UnexpectedSwapProgram"
|
|
},
|
|
{
|
|
"code": 6006,
|
|
"name": "UnexpectedSwapInstruction"
|
|
},
|
|
{
|
|
"code": 6007,
|
|
"name": "WrongSwapOutAccount"
|
|
},
|
|
{
|
|
"code": 6008,
|
|
"name": "InvalidSwapMint"
|
|
},
|
|
{
|
|
"code": 6009,
|
|
"name": "ExceedSlippageSetting"
|
|
},
|
|
{
|
|
"code": 6010,
|
|
"name": "AmountMismatch"
|
|
},
|
|
{
|
|
"code": 6011,
|
|
"name": "MissingSwapInstructions"
|
|
},
|
|
{
|
|
"code": 6012,
|
|
"name": "InvalidPublicKey"
|
|
},
|
|
{
|
|
"code": 6013,
|
|
"name": "InvalidApproval"
|
|
},
|
|
{
|
|
"code": 6014,
|
|
"name": "ExpiredApproval"
|
|
},
|
|
{
|
|
"code": 6015,
|
|
"name": "ExpiredOrder"
|
|
},
|
|
{
|
|
"code": 6016,
|
|
"name": "InsufficientSOLForFees"
|
|
},
|
|
{
|
|
"code": 6017,
|
|
"name": "InvalidNonce"
|
|
},
|
|
{
|
|
"code": 6018,
|
|
"name": "ViolateMinOut"
|
|
},
|
|
{
|
|
"code": 6019,
|
|
"name": "FeeTooHigh"
|
|
},
|
|
{
|
|
"code": 6020,
|
|
"name": "NonceInvalid"
|
|
},
|
|
{
|
|
"code": 6021,
|
|
"name": "NonceUsed"
|
|
},
|
|
{
|
|
"code": 6022,
|
|
"name": "NonceLimit"
|
|
},
|
|
{
|
|
"code": 6023,
|
|
"name": "UnableToVerify"
|
|
},
|
|
{
|
|
"code": 6024,
|
|
"name": "MissingPreSwapIx"
|
|
},
|
|
{
|
|
"code": 6025,
|
|
"name": "MissingPostSwapIx"
|
|
},
|
|
{
|
|
"code": 6026,
|
|
"name": "InvalidBps"
|
|
},
|
|
{
|
|
"code": 6027,
|
|
"name": "TooLargeFee"
|
|
},
|
|
{
|
|
"code": 6028,
|
|
"name": "InvalidReceiverTokenAccount"
|
|
},
|
|
{
|
|
"code": 6029,
|
|
"name": "Deprecated"
|
|
},
|
|
{
|
|
"code": 6030,
|
|
"name": "ViolateMaxOut"
|
|
}
|
|
]
|
|
} |