goosefx-ssl-sdk-prism
Version:
SDK for interacting with GooseFX Single-sided Liquidity pools
385 lines (384 loc) • 10.9 kB
JSON
{
"version": "0.1.0",
"name": "contract",
"instructions": [
{
"name": "createLiquidityAccount",
"accounts": [
{
"name": "controller",
"isMut": false,
"isSigner": false
},
{
"name": "ssl",
"isMut": true,
"isSigner": false
},
{
"name": "liquidityAccount",
"isMut": true,
"isSigner": false
},
{
"name": "userWallet",
"isMut": true,
"isSigner": true
},
{
"name": "systemProgram",
"isMut": false,
"isSigner": false
},
{
"name": "rent",
"isMut": false,
"isSigner": false
}
],
"args": []
},
{
"name": "deposit",
"accounts": [
{
"name": "controller",
"isMut": false,
"isSigner": false
},
{
"name": "ssl",
"isMut": true,
"isSigner": false
},
{
"name": "liquidityAccount",
"isMut": true,
"isSigner": false
},
{
"name": "rtVault",
"isMut": true,
"isSigner": false
},
{
"name": "userRtAta",
"isMut": true,
"isSigner": false
},
{
"name": "userWallet",
"isMut": false,
"isSigner": true
},
{
"name": "tokenProgram",
"isMut": false,
"isSigner": false
}
],
"args": [
{
"name": "amount",
"type": "u64"
}
]
},
{
"name": "withdraw",
"accounts": [
{
"name": "controller",
"isMut": false,
"isSigner": false
},
{
"name": "ssl",
"isMut": true,
"isSigner": false
},
{
"name": "liquidityAccount",
"isMut": true,
"isSigner": false
},
{
"name": "rtVault",
"isMut": true,
"isSigner": false
},
{
"name": "userRtAta",
"isMut": true,
"isSigner": false
},
{
"name": "userWallet",
"isMut": false,
"isSigner": true
},
{
"name": "tokenProgram",
"isMut": false,
"isSigner": false
}
],
"args": [
{
"name": "withdrawPercent",
"type": "u64"
}
]
},
{
"name": "mintPt",
"accounts": [
{
"name": "controller",
"isMut": false,
"isSigner": false
},
{
"name": "ssl",
"isMut": true,
"isSigner": false
},
{
"name": "rtVault",
"isMut": true,
"isSigner": false
},
{
"name": "liquidityAccount",
"isMut": true,
"isSigner": false
},
{
"name": "ptMint",
"isMut": true,
"isSigner": false
},
{
"name": "userPtAta",
"isMut": true,
"isSigner": false
},
{
"name": "userWallet",
"isMut": false,
"isSigner": true
},
{
"name": "tokenProgram",
"isMut": false,
"isSigner": false
}
],
"args": [
{
"name": "amountToMint",
"type": "u64"
}
]
},
{
"name": "burnPt",
"accounts": [
{
"name": "controller",
"isMut": false,
"isSigner": false
},
{
"name": "ssl",
"isMut": true,
"isSigner": false
},
{
"name": "liquidityAccount",
"isMut": true,
"isSigner": false
},
{
"name": "ptMint",
"isMut": true,
"isSigner": false
},
{
"name": "userPtAta",
"isMut": true,
"isSigner": false
},
{
"name": "userWallet",
"isMut": false,
"isSigner": true
},
{
"name": "tokenProgram",
"isMut": false,
"isSigner": false
}
],
"args": [
{
"name": "amountToBurn",
"type": "u64"
}
]
},
{
"name": "swap",
"accounts": [
{
"name": "controller",
"isMut": false,
"isSigner": false
},
{
"name": "pair",
"isMut": true,
"isSigner": false
},
{
"name": "sslIn",
"isMut": true,
"isSigner": false
},
{
"name": "sslOut",
"isMut": true,
"isSigner": false
},
{
"name": "liabilityVaultIn",
"isMut": true,
"isSigner": false
},
{
"name": "swappedLiabilityVaultIn",
"isMut": true,
"isSigner": false
},
{
"name": "liabilityVaultOut",
"isMut": true,
"isSigner": false
},
{
"name": "swappedLiabilityVaultOut",
"isMut": true,
"isSigner": false
},
{
"name": "userInAta",
"isMut": true,
"isSigner": false
},
{
"name": "userOutAta",
"isMut": true,
"isSigner": false
},
{
"name": "feeCollectorAta",
"isMut": true,
"isSigner": false
},
{
"name": "userWallet",
"isMut": false,
"isSigner": true
},
{
"name": "feeCollector",
"isMut": false,
"isSigner": false
},
{
"name": "tokenProgram",
"isMut": false,
"isSigner": false
}
],
"args": [
{
"name": "amountIn",
"type": "u64"
},
{
"name": "minOut",
"type": "u64"
}
]
}
],
"accounts": [],
"errors": [
{
"code": 6000,
"name": "Suspended",
"msg": "[G100] The pool is suspended"
},
{
"code": 6001,
"name": "NotAdmin",
"msg": "[G101] Not admin"
},
{
"code": 6002,
"name": "MintsNotSorted",
"msg": "[G102] Mints are not sorted"
},
{
"code": 6003,
"name": "WrongRTMint",
"msg": "[G103] The risk token mint is wrong"
},
{
"code": 6004,
"name": "OracleNotPresent",
"msg": "[G104] The required oracle is not present"
},
{
"code": 6005,
"name": "OracleNotHealthyStatus",
"msg": "[G105] The oracle is not in a healthy state (status)"
},
{
"code": 6006,
"name": "OracleNotHealthyDelay",
"msg": "[G106] The oracle is not in a healthy state (delay)"
},
{
"code": 6007,
"name": "OracleNotHealthyConfidence",
"msg": "[G107] The oracle is not in a healthy state (confidence)"
},
{
"code": 6008,
"name": "SlippageTooLarge",
"msg": "[G108] SlippageTooLarge"
},
{
"code": 6009,
"name": "PercentageOutOfRange",
"msg": "[G109] Percentage out of range"
},
{
"code": 6010,
"name": "SwapIXNotInOrder",
"msg": "[G110] Swap instruction is not executed in order"
},
{
"code": 6011,
"name": "MintNotMatchPair",
"msg": "[G111] Mint does not match the pair"
},
{
"code": 6012,
"name": "FeeCollectorIncorrect",
"msg": "[G112] Fee collector account incorrect"
}
]
}