123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730 |
- {
- "version": "3.0.0",
- "name": "spl_token_swap",
- "instructions": [
- {
- "name": "initialize",
- "accounts": [
- {
- "name": "swap",
- "isMut": true,
- "isSigner": true
- },
- {
- "name": "authority",
- "isMut": false,
- "isSigner": false
- },
- {
- "name": "tokenA",
- "isMut": false,
- "isSigner": false
- },
- {
- "name": "tokenB",
- "isMut": false,
- "isSigner": false
- },
- {
- "name": "pool",
- "isMut": true,
- "isSigner": false
- },
- {
- "name": "fee",
- "isMut": false,
- "isSigner": false
- },
- {
- "name": "destination",
- "isMut": true,
- "isSigner": false
- },
- {
- "name": "tokenProgram",
- "isMut": false,
- "isSigner": false
- }
- ],
- "args": [
- {
- "name": "fees",
- "type": {
- "defined": "Fees"
- }
- },
- {
- "name": "swapCurve",
- "type": {
- "defined": "SwapCurve"
- }
- }
- ]
- },
- {
- "name": "swap",
- "accounts": [
- {
- "name": "swap",
- "isMut": false,
- "isSigner": false
- },
- {
- "name": "authority",
- "isMut": false,
- "isSigner": false
- },
- {
- "name": "userTransferAuthority",
- "isMut": false,
- "isSigner": true
- },
- {
- "name": "source",
- "isMut": true,
- "isSigner": false
- },
- {
- "name": "swapSource",
- "isMut": true,
- "isSigner": false
- },
- {
- "name": "swapDestination",
- "isMut": true,
- "isSigner": false
- },
- {
- "name": "destination",
- "isMut": true,
- "isSigner": false
- },
- {
- "name": "poolMint",
- "isMut": true,
- "isSigner": false
- },
- {
- "name": "poolFee",
- "isMut": true,
- "isSigner": false
- },
- {
- "name": "tokenProgram",
- "isMut": false,
- "isSigner": false
- }
- ],
- "args": [
- {
- "name": "amountIn",
- "type": "u64"
- },
- {
- "name": "minimumAmountOut",
- "type": "u64"
- }
- ]
- },
- {
- "name": "depositAllTokenTypes",
- "accounts": [
- {
- "name": "swap",
- "isMut": false,
- "isSigner": false
- },
- {
- "name": "authority",
- "isMut": false,
- "isSigner": false
- },
- {
- "name": "userTransferAuthority",
- "isMut": false,
- "isSigner": true
- },
- {
- "name": "depositTokenA",
- "isMut": true,
- "isSigner": false
- },
- {
- "name": "depositTokenB",
- "isMut": true,
- "isSigner": false
- },
- {
- "name": "swapTokenA",
- "isMut": true,
- "isSigner": false
- },
- {
- "name": "swapTokenB",
- "isMut": true,
- "isSigner": false
- },
- {
- "name": "poolMint",
- "isMut": true,
- "isSigner": false
- },
- {
- "name": "destination",
- "isMut": true,
- "isSigner": false
- },
- {
- "name": "tokenProgram",
- "isMut": false,
- "isSigner": false
- }
- ],
- "args": [
- {
- "name": "poolTokenAmount",
- "type": "u64"
- },
- {
- "name": "maximumTokenAAmount",
- "type": "u64"
- },
- {
- "name": "maximumTokenBAmount",
- "type": "u64"
- }
- ]
- },
- {
- "name": "withdrawAllTokenTypes",
- "accounts": [
- {
- "name": "swap",
- "isMut": false,
- "isSigner": false
- },
- {
- "name": "authority",
- "isMut": false,
- "isSigner": false
- },
- {
- "name": "userTransferAuthority",
- "isMut": false,
- "isSigner": true
- },
- {
- "name": "poolMint",
- "isMut": true,
- "isSigner": false
- },
- {
- "name": "source",
- "isMut": true,
- "isSigner": false
- },
- {
- "name": "swapTokenA",
- "isMut": true,
- "isSigner": false
- },
- {
- "name": "swapTokenB",
- "isMut": true,
- "isSigner": false
- },
- {
- "name": "destinationTokenA",
- "isMut": true,
- "isSigner": false
- },
- {
- "name": "destinationTokenB",
- "isMut": true,
- "isSigner": false
- },
- {
- "name": "feeAccount",
- "isMut": true,
- "isSigner": false
- },
- {
- "name": "tokenProgram",
- "isMut": false,
- "isSigner": false
- }
- ],
- "args": [
- {
- "name": "poolTokenAmount",
- "type": "u64"
- },
- {
- "name": "minimumTokenAAmount",
- "type": "u64"
- },
- {
- "name": "minimumTokenBAmount",
- "type": "u64"
- }
- ]
- },
- {
- "name": "depositSingleTokenTypeExactAmountIn",
- "accounts": [
- {
- "name": "swap",
- "isMut": false,
- "isSigner": false
- },
- {
- "name": "authority",
- "isMut": false,
- "isSigner": false
- },
- {
- "name": "userTransferAuthority",
- "isMut": false,
- "isSigner": true
- },
- {
- "name": "sourceToken",
- "isMut": true,
- "isSigner": false
- },
- {
- "name": "swapTokenA",
- "isMut": true,
- "isSigner": false
- },
- {
- "name": "swapTokenB",
- "isMut": true,
- "isSigner": false
- },
- {
- "name": "poolMint",
- "isMut": true,
- "isSigner": false
- },
- {
- "name": "destination",
- "isMut": true,
- "isSigner": false
- },
- {
- "name": "tokenProgram",
- "isMut": false,
- "isSigner": false
- }
- ],
- "args": [
- {
- "name": "sourceTokenAmount",
- "type": "u64"
- },
- {
- "name": "minimumPoolTokenAmount",
- "type": "u64"
- }
- ]
- },
- {
- "name": "withdrawSingleTokenTypeExactAmountOut",
- "accounts": [
- {
- "name": "swap",
- "isMut": false,
- "isSigner": false
- },
- {
- "name": "authority",
- "isMut": false,
- "isSigner": false
- },
- {
- "name": "userTransferAuthority",
- "isMut": false,
- "isSigner": true
- },
- {
- "name": "poolMint",
- "isMut": true,
- "isSigner": false
- },
- {
- "name": "poolTokenSource",
- "isMut": true,
- "isSigner": false
- },
- {
- "name": "swapTokenA",
- "isMut": true,
- "isSigner": false
- },
- {
- "name": "swapTokenB",
- "isMut": true,
- "isSigner": false
- },
- {
- "name": "destination",
- "isMut": true,
- "isSigner": false
- },
- {
- "name": "feeAccount",
- "isMut": true,
- "isSigner": false
- },
- {
- "name": "tokenProgram",
- "isMut": false,
- "isSigner": false
- }
- ],
- "args": [
- {
- "name": "destinationTokenAmount",
- "type": "u64"
- },
- {
- "name": "maximumPoolTokenAmount",
- "type": "u64"
- }
- ]
- }
- ],
- "accounts": [
- {
- "name": "Swap",
- "type": {
- "kind": "struct",
- "fields": [
- {
- "name": "version",
- "type": "u8"
- },
- {
- "name": "isInitialized",
- "type": "bool"
- },
- {
- "name": "bumpSeed",
- "type": "u8"
- },
- {
- "name": "tokenProgramId",
- "type": "publicKey"
- },
- {
- "name": "tokenA",
- "type": "publicKey"
- },
- {
- "name": "tokenB",
- "type": "publicKey"
- },
- {
- "name": "poolMint",
- "type": "publicKey"
- },
- {
- "name": "tokenAMint",
- "type": "publicKey"
- },
- {
- "name": "tokenBMint",
- "type": "publicKey"
- },
- {
- "name": "poolFeeAccount",
- "type": "publicKey"
- },
- {
- "name": "fees",
- "type": {
- "defined": "Fees"
- }
- },
- {
- "name": "swapCurve",
- "type": {
- "defined": "SwapCurve"
- }
- }
- ]
- }
- }
- ],
- "types": [
- {
- "name": "Fees",
- "type": {
- "kind": "struct",
- "fields": [
- {
- "name": "tradeFeeNumerator",
- "type": "u64"
- },
- {
- "name": "tradeFeeDenominator",
- "type": "u64"
- },
- {
- "name": "ownerTradeFeeNumerator",
- "type": "u64"
- },
- {
- "name": "ownerTradeFeeDenominator",
- "type": "u64"
- },
- {
- "name": "ownerWithdrawFeeNumerator",
- "type": "u64"
- },
- {
- "name": "ownerWithdrawFeeDenominator",
- "type": "u64"
- },
- {
- "name": "hostFeeNumerator",
- "type": "u64"
- },
- {
- "name": "hostFeeDenominator",
- "type": "u64"
- }
- ]
- }
- },
- {
- "name": "SwapCurve",
- "type": {
- "kind": "struct",
- "fields": [
- {
- "name": "curveType",
- "type": {
- "defined": "CurveType"
- }
- },
- {
- "name": "calculator",
- "type": {
- "array": [
- "u8",
- 32
- ]
- }
- }
- ]
- }
- },
- {
- "name": "StableCurve",
- "type": {
- "kind": "struct",
- "fields": [
- {
- "name": "amp",
- "type": "u64"
- }
- ]
- }
- },
- {
- "name": "OffsetCurve",
- "type": {
- "kind": "struct",
- "fields": [
- {
- "name": "tokenBOffset",
- "type": "u64"
- }
- ]
- }
- },
- {
- "name": "ConstantProductCurve",
- "type": {
- "kind": "struct",
- "fields": []
- }
- },
- {
- "name": "ConstantPriceCurve",
- "type": {
- "kind": "struct",
- "fields": [
- {
- "name": "tokenBPrice",
- "type": "u64"
- }
- ]
- }
- },
- {
- "name": "CurveType",
- "type": {
- "kind": "enum",
- "variants": [
- {
- "name": "ConstantProduct"
- },
- {
- "name": "ConstantPrice"
- },
- {
- "name": "Stable"
- },
- {
- "name": "Offset"
- }
- ]
- }
- }
- ],
- "errors": [
- {
- "code": 0,
- "name": "AlreadyInUse",
- "msg": "Swap account already in use"
- },
- {
- "code": 1,
- "name": "InvalidProgramAddress",
- "msg": "Invalid program address generated from bump seed and key"
- },
- {
- "code": 2,
- "name": "InvalidOwner",
- "msg": "Input account owner is not the program address"
- },
- {
- "code": 3,
- "name": "InvalidOutputOwner",
- "msg": "Output pool account owner cannot be the program address"
- },
- {
- "code": 4,
- "name": "ExpectedMint",
- "msg": "Deserialized account is not an SPL Token mint"
- },
- {
- "code": 5,
- "name": "ExpectedAccount",
- "msg": "Deserialized account is not an SPL Token account"
- },
- {
- "code": 6,
- "name": "EmptySupply",
- "msg": "Input token account empty"
- },
- {
- "code": 7,
- "name": "InvalidSupply",
- "msg": "Pool token mint has a non-zero supply"
- },
- {
- "code": 8,
- "name": "InvalidDelegate",
- "msg": "Token account has a delegate"
- },
- {
- "code": 9,
- "name": "InvalidInput",
- "msg": "InvalidInput"
- },
- {
- "code": 10,
- "name": "IncorrectSwapAccount",
- "msg": "Address of the provided swap token account is incorrect"
- },
- {
- "code": 11,
- "name": "IncorrectPoolMint",
- "msg": "Address of the provided pool token mint is incorrect"
- },
- {
- "code": 12,
- "name": "InvalidOutput",
- "msg": "InvalidOutput"
- },
- {
- "code": 13,
- "name": "CalculationFailure",
- "msg": "General calculation failure due to overflow or underflow"
- },
- {
- "code": 14,
- "name": "InvalidInstruction",
- "msg": "Invalid instruction"
- },
- {
- "code": 15,
- "name": "RepeatedMint",
- "msg": "Swap input token accounts have the same mint"
- },
- {
- "code": 16,
- "name": "ExceededSlippage",
- "msg": "Swap instruction exceeds desired slippage limit"
- },
- {
- "code": 17,
- "name": "InvalidCloseAuthority",
- "msg": "Token account has a close authority"
- },
- {
- "code": 18,
- "name": "InvalidFreezeAuthority",
- "msg": "Pool token mint has a freeze authority"
- },
- {
- "code": 19,
- "name": "IncorrectFeeAccount",
- "msg": "Pool fee token account incorrect"
- },
- {
- "code": 20,
- "name": "ZeroTradingTokens",
- "msg": "Given pool token amount results in zero trading tokens"
- },
- {
- "code": 21,
- "name": "FeeCalculationFailure",
- "msg": "Fee calculation failed due to overflow, underflow, or unexpected 0"
- },
- {
- "code": 22,
- "name": "ConversionFailure",
- "msg": "Conversion to u64 failed with an overflow or underflow"
- },
- {
- "code": 23,
- "name": "InvalidFee",
- "msg": "The provided fee does not match the program owner's constraints"
- },
- {
- "code": 24,
- "name": "IncorrectTokenProgramId",
- "msg": "The provided token program does not match the token program expected by the swap"
- },
- {
- "code": 25,
- "name": "UnsupportedCurveType",
- "msg": "The provided curve type is not supported by the program owner"
- },
- {
- "code": 26,
- "name": "InvalidCurve",
- "msg": "The provided curve parameters are invalid"
- },
- {
- "code": 27,
- "name": "UnsupportedCurveOperation",
- "msg": "The operation cannot be performed on the given curve"
- }
- ]
- }
|