@xswap-link/sdk
Version:
JavaScript SDK for XSwap platform
2,485 lines (2,483 loc) • 58.3 kB
text/typescript
export type Jupiter = {
version: "0.1.0";
name: "jupiter";
instructions: [
{
name: "route";
docs: ["route_plan Topologically sorted trade DAG"];
accounts: [
{
name: "tokenProgram";
isMut: false;
isSigner: false;
},
{
name: "userTransferAuthority";
isMut: false;
isSigner: true;
},
{
name: "userSourceTokenAccount";
isMut: true;
isSigner: false;
},
{
name: "userDestinationTokenAccount";
isMut: true;
isSigner: false;
},
{
name: "destinationTokenAccount";
isMut: true;
isSigner: false;
isOptional: true;
},
{
name: "destinationMint";
isMut: false;
isSigner: false;
},
{
name: "platformFeeAccount";
isMut: true;
isSigner: false;
isOptional: true;
},
];
args: [
{
name: "routePlan";
type: {
vec: {
defined: "RoutePlanStep";
};
};
},
{
name: "inAmount";
type: "u64";
},
{
name: "quotedOutAmount";
type: "u64";
},
{
name: "slippageBps";
type: "u16";
},
{
name: "platformFeeBps";
type: "u8";
},
];
returns: "u64";
},
{
name: "routeWithTokenLedger";
accounts: [
{
name: "tokenProgram";
isMut: false;
isSigner: false;
},
{
name: "userTransferAuthority";
isMut: false;
isSigner: true;
},
{
name: "userSourceTokenAccount";
isMut: true;
isSigner: false;
},
{
name: "userDestinationTokenAccount";
isMut: true;
isSigner: false;
},
{
name: "destinationTokenAccount";
isMut: true;
isSigner: false;
isOptional: true;
},
{
name: "destinationMint";
isMut: false;
isSigner: false;
},
{
name: "platformFeeAccount";
isMut: true;
isSigner: false;
isOptional: true;
},
{
name: "tokenLedger";
isMut: false;
isSigner: false;
},
];
args: [
{
name: "routePlan";
type: {
vec: {
defined: "RoutePlanStep";
};
};
},
{
name: "quotedOutAmount";
type: "u64";
},
{
name: "slippageBps";
type: "u16";
},
{
name: "platformFeeBps";
type: "u8";
},
];
returns: "u64";
},
{
name: "sharedAccountsRoute";
docs: [
"Route by using program owned token accounts and open orders accounts.",
];
accounts: [
{
name: "tokenProgram";
isMut: false;
isSigner: false;
},
{
name: "programAuthority";
isMut: false;
isSigner: false;
},
{
name: "userTransferAuthority";
isMut: false;
isSigner: true;
},
{
name: "sourceTokenAccount";
isMut: true;
isSigner: false;
},
{
name: "programSourceTokenAccount";
isMut: true;
isSigner: false;
},
{
name: "programDestinationTokenAccount";
isMut: true;
isSigner: false;
},
{
name: "destinationTokenAccount";
isMut: true;
isSigner: false;
},
{
name: "sourceMint";
isMut: false;
isSigner: false;
},
{
name: "destinationMint";
isMut: false;
isSigner: false;
},
{
name: "platformFeeAccount";
isMut: true;
isSigner: false;
isOptional: true;
},
{
name: "token2022Program";
isMut: false;
isSigner: false;
isOptional: true;
},
];
args: [
{
name: "id";
type: "u8";
},
{
name: "routePlan";
type: {
vec: {
defined: "RoutePlanStep";
};
};
},
{
name: "inAmount";
type: "u64";
},
{
name: "quotedOutAmount";
type: "u64";
},
{
name: "slippageBps";
type: "u16";
},
{
name: "platformFeeBps";
type: "u8";
},
];
returns: "u64";
},
{
name: "sharedAccountsRouteWithTokenLedger";
accounts: [
{
name: "tokenProgram";
isMut: false;
isSigner: false;
},
{
name: "programAuthority";
isMut: false;
isSigner: false;
},
{
name: "userTransferAuthority";
isMut: false;
isSigner: true;
},
{
name: "sourceTokenAccount";
isMut: true;
isSigner: false;
},
{
name: "programSourceTokenAccount";
isMut: true;
isSigner: false;
},
{
name: "programDestinationTokenAccount";
isMut: true;
isSigner: false;
},
{
name: "destinationTokenAccount";
isMut: true;
isSigner: false;
},
{
name: "sourceMint";
isMut: false;
isSigner: false;
},
{
name: "destinationMint";
isMut: false;
isSigner: false;
},
{
name: "platformFeeAccount";
isMut: true;
isSigner: false;
isOptional: true;
},
{
name: "token2022Program";
isMut: false;
isSigner: false;
isOptional: true;
},
{
name: "tokenLedger";
isMut: false;
isSigner: false;
},
];
args: [
{
name: "id";
type: "u8";
},
{
name: "routePlan";
type: {
vec: {
defined: "RoutePlanStep";
};
};
},
{
name: "quotedOutAmount";
type: "u64";
},
{
name: "slippageBps";
type: "u16";
},
{
name: "platformFeeBps";
type: "u8";
},
];
returns: "u64";
},
{
name: "exactOutRoute";
accounts: [
{
name: "tokenProgram";
isMut: false;
isSigner: false;
},
{
name: "userTransferAuthority";
isMut: false;
isSigner: true;
},
{
name: "userSourceTokenAccount";
isMut: true;
isSigner: false;
},
{
name: "userDestinationTokenAccount";
isMut: true;
isSigner: false;
},
{
name: "destinationTokenAccount";
isMut: true;
isSigner: false;
isOptional: true;
},
{
name: "sourceMint";
isMut: false;
isSigner: false;
},
{
name: "destinationMint";
isMut: false;
isSigner: false;
},
{
name: "platformFeeAccount";
isMut: true;
isSigner: false;
isOptional: true;
},
{
name: "token2022Program";
isMut: false;
isSigner: false;
isOptional: true;
},
];
args: [
{
name: "routePlan";
type: {
vec: {
defined: "RoutePlanStep";
};
};
},
{
name: "outAmount";
type: "u64";
},
{
name: "quotedInAmount";
type: "u64";
},
{
name: "slippageBps";
type: "u16";
},
{
name: "platformFeeBps";
type: "u8";
},
];
returns: "u64";
},
{
name: "sharedAccountsExactOutRoute";
docs: [
"Route by using program owned token accounts and open orders accounts.",
];
accounts: [
{
name: "tokenProgram";
isMut: false;
isSigner: false;
},
{
name: "programAuthority";
isMut: false;
isSigner: false;
},
{
name: "userTransferAuthority";
isMut: false;
isSigner: true;
},
{
name: "sourceTokenAccount";
isMut: true;
isSigner: false;
},
{
name: "programSourceTokenAccount";
isMut: true;
isSigner: false;
},
{
name: "programDestinationTokenAccount";
isMut: true;
isSigner: false;
},
{
name: "destinationTokenAccount";
isMut: true;
isSigner: false;
},
{
name: "sourceMint";
isMut: false;
isSigner: false;
},
{
name: "destinationMint";
isMut: false;
isSigner: false;
},
{
name: "platformFeeAccount";
isMut: true;
isSigner: false;
isOptional: true;
},
{
name: "token2022Program";
isMut: false;
isSigner: false;
isOptional: true;
},
];
args: [
{
name: "id";
type: "u8";
},
{
name: "routePlan";
type: {
vec: {
defined: "RoutePlanStep";
};
};
},
{
name: "outAmount";
type: "u64";
},
{
name: "quotedInAmount";
type: "u64";
},
{
name: "slippageBps";
type: "u16";
},
{
name: "platformFeeBps";
type: "u8";
},
];
returns: "u64";
},
{
name: "setTokenLedger";
accounts: [
{
name: "tokenLedger";
isMut: true;
isSigner: false;
},
{
name: "tokenAccount";
isMut: false;
isSigner: false;
},
];
args: [];
},
{
name: "createOpenOrders";
accounts: [
{
name: "openOrders";
isMut: true;
isSigner: false;
},
{
name: "payer";
isMut: true;
isSigner: true;
},
{
name: "dexProgram";
isMut: false;
isSigner: false;
},
{
name: "systemProgram";
isMut: false;
isSigner: false;
},
{
name: "rent";
isMut: false;
isSigner: false;
},
{
name: "market";
isMut: false;
isSigner: false;
},
];
args: [];
},
{
name: "createTokenAccount";
accounts: [
{
name: "tokenAccount";
isMut: true;
isSigner: false;
},
{
name: "user";
isMut: true;
isSigner: true;
},
{
name: "mint";
isMut: false;
isSigner: false;
},
{
name: "tokenProgram";
isMut: false;
isSigner: false;
},
{
name: "systemProgram";
isMut: false;
isSigner: false;
},
];
args: [
{
name: "bump";
type: "u8";
},
];
},
{
name: "createProgramOpenOrders";
accounts: [
{
name: "openOrders";
isMut: true;
isSigner: false;
},
{
name: "payer";
isMut: true;
isSigner: true;
},
{
name: "programAuthority";
isMut: false;
isSigner: false;
},
{
name: "dexProgram";
isMut: false;
isSigner: false;
},
{
name: "systemProgram";
isMut: false;
isSigner: false;
},
{
name: "rent";
isMut: false;
isSigner: false;
},
{
name: "market";
isMut: false;
isSigner: false;
},
];
args: [
{
name: "id";
type: "u8";
},
];
},
{
name: "claim";
accounts: [
{
name: "wallet";
isMut: true;
isSigner: false;
},
{
name: "programAuthority";
isMut: true;
isSigner: false;
},
{
name: "systemProgram";
isMut: false;
isSigner: false;
},
];
args: [
{
name: "id";
type: "u8";
},
];
returns: "u64";
},
{
name: "claimToken";
accounts: [
{
name: "payer";
isMut: true;
isSigner: true;
},
{
name: "wallet";
isMut: false;
isSigner: false;
},
{
name: "programAuthority";
isMut: false;
isSigner: false;
},
{
name: "programTokenAccount";
isMut: true;
isSigner: false;
},
{
name: "destinationTokenAccount";
isMut: true;
isSigner: false;
},
{
name: "mint";
isMut: false;
isSigner: false;
},
{
name: "associatedTokenTokenProgram";
isMut: false;
isSigner: false;
},
{
name: "associatedTokenProgram";
isMut: false;
isSigner: false;
},
{
name: "systemProgram";
isMut: false;
isSigner: false;
},
];
args: [
{
name: "id";
type: "u8";
},
];
returns: "u64";
},
{
name: "createTokenLedger";
accounts: [
{
name: "tokenLedger";
isMut: true;
isSigner: true;
},
{
name: "payer";
isMut: true;
isSigner: true;
},
{
name: "systemProgram";
isMut: false;
isSigner: false;
},
];
args: [];
},
];
accounts: [
{
name: "TokenLedger";
type: {
kind: "struct";
fields: [
{
name: "tokenAccount";
type: "publicKey";
},
{
name: "amount";
type: "u64";
},
];
};
},
];
types: [
{
name: "AmountWithSlippage";
type: {
kind: "struct";
fields: [
{
name: "amount";
type: "u64";
},
{
name: "slippageBps";
type: "u16";
},
];
};
},
{
name: "RoutePlanStep";
type: {
kind: "struct";
fields: [
{
name: "swap";
type: {
defined: "Swap";
};
},
{
name: "percent";
type: "u8";
},
{
name: "inputIndex";
type: "u8";
},
{
name: "outputIndex";
type: "u8";
},
];
};
},
{
name: "PlatformFeeType";
type: {
kind: "enum";
variants: [
{
name: "SourceMint";
fields: [
{
name: "mint";
type: "publicKey";
},
];
},
{
name: "DestinationMint";
fields: [
{
name: "mint";
type: "publicKey";
},
];
},
{
name: "Zero";
},
];
};
},
{
name: "Side";
type: {
kind: "enum";
variants: [
{
name: "Bid";
},
{
name: "Ask";
},
];
};
},
{
name: "Swap";
type: {
kind: "enum";
variants: [
{
name: "Saber";
},
{
name: "SaberAddDecimalsDeposit";
},
{
name: "SaberAddDecimalsWithdraw";
},
{
name: "TokenSwap";
},
{
name: "Sencha";
},
{
name: "Step";
},
{
name: "Cropper";
},
{
name: "Raydium";
},
{
name: "Crema";
fields: [
{
name: "aToB";
type: "bool";
},
];
},
{
name: "Lifinity";
},
{
name: "Mercurial";
},
{
name: "Cykura";
},
{
name: "Serum";
fields: [
{
name: "side";
type: {
defined: "Side";
};
},
];
},
{
name: "MarinadeDeposit";
},
{
name: "MarinadeUnstake";
},
{
name: "Aldrin";
fields: [
{
name: "side";
type: {
defined: "Side";
};
},
];
},
{
name: "AldrinV2";
fields: [
{
name: "side";
type: {
defined: "Side";
};
},
];
},
{
name: "Whirlpool";
fields: [
{
name: "aToB";
type: "bool";
},
];
},
{
name: "Invariant";
fields: [
{
name: "xToY";
type: "bool";
},
];
},
{
name: "Meteora";
},
{
name: "GooseFX";
},
{
name: "DeltaFi";
fields: [
{
name: "stable";
type: "bool";
},
];
},
{
name: "Balansol";
},
{
name: "MarcoPolo";
fields: [
{
name: "xToY";
type: "bool";
},
];
},
{
name: "Dradex";
fields: [
{
name: "side";
type: {
defined: "Side";
};
},
];
},
{
name: "LifinityV2";
},
{
name: "RaydiumClmm";
},
{
name: "Openbook";
fields: [
{
name: "side";
type: {
defined: "Side";
};
},
];
},
{
name: "Phoenix";
fields: [
{
name: "side";
type: {
defined: "Side";
};
},
];
},
{
name: "Symmetry";
fields: [
{
name: "fromTokenId";
type: "u64";
},
{
name: "toTokenId";
type: "u64";
},
];
},
{
name: "TokenSwapV2";
},
{
name: "HeliumTreasuryManagementRedeemV0";
},
{
name: "StakeDexStakeWrappedSol";
},
{
name: "StakeDexSwapViaStake";
fields: [
{
name: "bridgeStakeSeed";
type: "u32";
},
];
},
{
name: "GooseFXV2";
},
{
name: "Perps";
},
{
name: "PerpsAddLiquidity";
},
{
name: "PerpsRemoveLiquidity";
},
{
name: "MeteoraDlmm";
},
{
name: "OpenBookV2";
fields: [
{
name: "side";
type: {
defined: "Side";
};
},
];
},
{
name: "RaydiumClmmV2";
},
{
name: "StakeDexPrefundWithdrawStakeAndDepositStake";
fields: [
{
name: "bridgeStakeSeed";
type: "u32";
},
];
},
{
name: "Clone";
fields: [
{
name: "poolIndex";
type: "u8";
},
{
name: "quantityIsInput";
type: "bool";
},
{
name: "quantityIsCollateral";
type: "bool";
},
];
},
{
name: "SanctumS";
fields: [
{
name: "srcLstValueCalcAccs";
type: "u8";
},
{
name: "dstLstValueCalcAccs";
type: "u8";
},
{
name: "srcLstIndex";
type: "u32";
},
{
name: "dstLstIndex";
type: "u32";
},
];
},
{
name: "SanctumSAddLiquidity";
fields: [
{
name: "lstValueCalcAccs";
type: "u8";
},
{
name: "lstIndex";
type: "u32";
},
];
},
{
name: "SanctumSRemoveLiquidity";
fields: [
{
name: "lstValueCalcAccs";
type: "u8";
},
{
name: "lstIndex";
type: "u32";
},
];
},
{
name: "RaydiumCP";
},
{
name: "WhirlpoolSwapV2";
fields: [
{
name: "aToB";
type: "bool";
},
{
name: "remainingAccountsInfo";
type: {
option: {
defined: "RemainingAccountsInfo";
};
};
},
];
},
{
name: "OneIntro";
},
{
name: "PumpdotfunWrappedBuy";
},
{
name: "PumpdotfunWrappedSell";
},
{
name: "PerpsV2";
},
{
name: "PerpsV2AddLiquidity";
},
{
name: "PerpsV2RemoveLiquidity";
},
{
name: "MoonshotWrappedBuy";
},
{
name: "MoonshotWrappedSell";
},
{
name: "StabbleStableSwap";
},
{
name: "StabbleWeightedSwap";
},
{
name: "Obric";
fields: [
{
name: "xToY";
type: "bool";
},
];
},
{
name: "FoxBuyFromEstimatedCost";
},
{
name: "FoxClaimPartial";
fields: [
{
name: "isY";
type: "bool";
},
];
},
{
name: "SolFi";
fields: [
{
name: "isQuoteToBase";
type: "bool";
},
];
},
];
};
},
{
name: "RemainingAccountsSlice";
type: {
kind: "struct";
fields: [
{
name: "accountsType";
type: {
defined: "AccountsType";
};
},
{
name: "length";
type: "u8";
},
];
};
},
{
name: "RemainingAccountsInfo";
type: {
kind: "struct";
fields: [
{
name: "slices";
type: {
vec: {
defined: "RemainingAccountsSlice";
};
};
},
];
};
},
{
name: "AccountsType";
type: {
kind: "enum";
variants: [
{
name: "TransferHookA";
},
{
name: "TransferHookB";
},
];
};
},
];
events: [
{
name: "SwapEvent";
fields: [
{
name: "amm";
type: "publicKey";
index: false;
},
{
name: "inputMint";
type: "publicKey";
index: false;
},
{
name: "inputAmount";
type: "u64";
index: false;
},
{
name: "outputMint";
type: "publicKey";
index: false;
},
{
name: "outputAmount";
type: "u64";
index: false;
},
];
},
{
name: "FeeEvent";
fields: [
{
name: "account";
type: "publicKey";
index: false;
},
{
name: "mint";
type: "publicKey";
index: false;
},
{
name: "amount";
type: "u64";
index: false;
},
];
},
];
errors: [
{
code: 6000;
name: "EmptyRoute";
msg: "Empty route";
},
{
code: 6001;
name: "SlippageToleranceExceeded";
msg: "Slippage tolerance exceeded";
},
{
code: 6002;
name: "InvalidCalculation";
msg: "Invalid calculation";
},
{
code: 6003;
name: "MissingPlatformFeeAccount";
msg: "Missing platform fee account";
},
{
code: 6004;
name: "InvalidSlippage";
msg: "Invalid slippage";
},
{
code: 6005;
name: "NotEnoughPercent";
msg: "Not enough percent to 100";
},
{
code: 6006;
name: "InvalidInputIndex";
msg: "Token input index is invalid";
},
{
code: 6007;
name: "InvalidOutputIndex";
msg: "Token output index is invalid";
},
{
code: 6008;
name: "NotEnoughAccountKeys";
msg: "Not Enough Account keys";
},
{
code: 6009;
name: "NonZeroMinimumOutAmountNotSupported";
msg: "Non zero minimum out amount not supported";
},
{
code: 6010;
name: "InvalidRoutePlan";
msg: "Invalid route plan";
},
{
code: 6011;
name: "InvalidReferralAuthority";
msg: "Invalid referral authority";
},
{
code: 6012;
name: "LedgerTokenAccountDoesNotMatch";
msg: "Token account doesn't match the ledger";
},
{
code: 6013;
name: "InvalidTokenLedger";
msg: "Invalid token ledger";
},
{
code: 6014;
name: "IncorrectTokenProgramID";
msg: "Token program ID is invalid";
},
{
code: 6015;
name: "TokenProgramNotProvided";
msg: "Token program not provided";
},
{
code: 6016;
name: "SwapNotSupported";
msg: "Swap not supported";
},
{
code: 6017;
name: "ExactOutAmountNotMatched";
msg: "Exact out amount doesn't match";
},
{
code: 6018;
name: "SourceAndDestinationMintCannotBeTheSame";
msg: "Source mint and destination mint cannot the same";
},
];
};
export const IDL: Jupiter = {
version: "0.1.0",
name: "jupiter",
instructions: [
{
name: "route",
docs: ["route_plan Topologically sorted trade DAG"],
accounts: [
{
name: "tokenProgram",
isMut: false,
isSigner: false,
},
{
name: "userTransferAuthority",
isMut: false,
isSigner: true,
},
{
name: "userSourceTokenAccount",
isMut: true,
isSigner: false,
},
{
name: "userDestinationTokenAccount",
isMut: true,
isSigner: false,
},
{
name: "destinationTokenAccount",
isMut: true,
isSigner: false,
isOptional: true,
},
{
name: "destinationMint",
isMut: false,
isSigner: false,
},
{
name: "platformFeeAccount",
isMut: true,
isSigner: false,
isOptional: true,
},
],
args: [
{
name: "routePlan",
type: {
vec: {
defined: "RoutePlanStep",
},
},
},
{
name: "inAmount",
type: "u64",
},
{
name: "quotedOutAmount",
type: "u64",
},
{
name: "slippageBps",
type: "u16",
},
{
name: "platformFeeBps",
type: "u8",
},
],
returns: "u64",
},
{
name: "routeWithTokenLedger",
accounts: [
{
name: "tokenProgram",
isMut: false,
isSigner: false,
},
{
name: "userTransferAuthority",
isMut: false,
isSigner: true,
},
{
name: "userSourceTokenAccount",
isMut: true,
isSigner: false,
},
{
name: "userDestinationTokenAccount",
isMut: true,
isSigner: false,
},
{
name: "destinationTokenAccount",
isMut: true,
isSigner: false,
isOptional: true,
},
{
name: "destinationMint",
isMut: false,
isSigner: false,
},
{
name: "platformFeeAccount",
isMut: true,
isSigner: false,
isOptional: true,
},
{
name: "tokenLedger",
isMut: false,
isSigner: false,
},
],
args: [
{
name: "routePlan",
type: {
vec: {
defined: "RoutePlanStep",
},
},
},
{
name: "quotedOutAmount",
type: "u64",
},
{
name: "slippageBps",
type: "u16",
},
{
name: "platformFeeBps",
type: "u8",
},
],
returns: "u64",
},
{
name: "sharedAccountsRoute",
docs: [
"Route by using program owned token accounts and open orders accounts.",
],
accounts: [
{
name: "tokenProgram",
isMut: false,
isSigner: false,
},
{
name: "programAuthority",
isMut: false,
isSigner: false,
},
{
name: "userTransferAuthority",
isMut: false,
isSigner: true,
},
{
name: "sourceTokenAccount",
isMut: true,
isSigner: false,
},
{
name: "programSourceTokenAccount",
isMut: true,
isSigner: false,
},
{
name: "programDestinationTokenAccount",
isMut: true,
isSigner: false,
},
{
name: "destinationTokenAccount",
isMut: true,
isSigner: false,
},
{
name: "sourceMint",
isMut: false,
isSigner: false,
},
{
name: "destinationMint",
isMut: false,
isSigner: false,
},
{
name: "platformFeeAccount",
isMut: true,
isSigner: false,
isOptional: true,
},
{
name: "token2022Program",
isMut: false,
isSigner: false,
isOptional: true,
},
],
args: [
{
name: "id",
type: "u8",
},
{
name: "routePlan",
type: {
vec: {
defined: "RoutePlanStep",
},
},
},
{
name: "inAmount",
type: "u64",
},
{
name: "quotedOutAmount",
type: "u64",
},
{
name: "slippageBps",
type: "u16",
},
{
name: "platformFeeBps",
type: "u8",
},
],
returns: "u64",
},
{
name: "sharedAccountsRouteWithTokenLedger",
accounts: [
{
name: "tokenProgram",
isMut: false,
isSigner: false,
},
{
name: "programAuthority",
isMut: false,
isSigner: false,
},
{
name: "userTransferAuthority",
isMut: false,
isSigner: true,
},
{
name: "sourceTokenAccount",
isMut: true,
isSigner: false,
},
{
name: "programSourceTokenAccount",
isMut: true,
isSigner: false,
},
{
name: "programDestinationTokenAccount",
isMut: true,
isSigner: false,
},
{
name: "destinationTokenAccount",
isMut: true,
isSigner: false,
},
{
name: "sourceMint",
isMut: false,
isSigner: false,
},
{
name: "destinationMint",
isMut: false,
isSigner: false,
},
{
name: "platformFeeAccount",
isMut: true,
isSigner: false,
isOptional: true,
},
{
name: "token2022Program",
isMut: false,
isSigner: false,
isOptional: true,
},
{
name: "tokenLedger",
isMut: false,
isSigner: false,
},
],
args: [
{
name: "id",
type: "u8",
},
{
name: "routePlan",
type: {
vec: {
defined: "RoutePlanStep",
},
},
},
{
name: "quotedOutAmount",
type: "u64",
},
{
name: "slippageBps",
type: "u16",
},
{
name: "platformFeeBps",
type: "u8",
},
],
returns: "u64",
},
{
name: "exactOutRoute",
accounts: [
{
name: "tokenProgram",
isMut: false,
isSigner: false,
},
{
name: "userTransferAuthority",
isMut: false,
isSigner: true,
},
{
name: "userSourceTokenAccount",
isMut: true,
isSigner: false,
},
{
name: "userDestinationTokenAccount",
isMut: true,
isSigner: false,
},
{
name: "destinationTokenAccount",
isMut: true,
isSigner: false,
isOptional: true,
},
{
name: "sourceMint",
isMut: false,
isSigner: false,
},
{
name: "destinationMint",
isMut: false,
isSigner: false,
},
{
name: "platformFeeAccount",
isMut: true,
isSigner: false,
isOptional: true,
},
{
name: "token2022Program",
isMut: false,
isSigner: false,
isOptional: true,
},
],
args: [
{
name: "routePlan",
type: {
vec: {
defined: "RoutePlanStep",
},
},
},
{
name: "outAmount",
type: "u64",
},
{
name: "quotedInAmount",
type: "u64",
},
{
name: "slippageBps",
type: "u16",
},
{
name: "platformFeeBps",
type: "u8",
},
],
returns: "u64",
},
{
name: "sharedAccountsExactOutRoute",
docs: [
"Route by using program owned token accounts and open orders accounts.",
],
accounts: [
{
name: "tokenProgram",
isMut: false,
isSigner: false,
},
{
name: "programAuthority",
isMut: false,
isSigner: false,
},
{
name: "userTransferAuthority",
isMut: false,
isSigner: true,
},
{
name: "sourceTokenAccount",
isMut: true,
isSigner: false,
},
{
name: "programSourceTokenAccount",
isMut: true,
isSigner: false,
},
{
name: "programDestinationTokenAccount",
isMut: true,
isSigner: false,
},
{
name: "destinationTokenAccount",
isMut: true,
isSigner: false,
},
{
name: "sourceMint",
isMut: false,
isSigner: false,
},
{
name: "destinationMint",
isMut: false,
isSigner: false,
},
{
name: "platformFeeAccount",
isMut: true,
isSigner: false,
isOptional: true,
},
{
name: "token2022Program",
isMut: false,
isSigner: false,
isOptional: true,
},
],
args: [
{
name: "id",
type: "u8",
},
{
name: "routePlan",
type: {
vec: {
defined: "RoutePlanStep",
},
},
},
{
name: "outAmount",
type: "u64",
},
{
name: "quotedInAmount",
type: "u64",
},
{
name: "slippageBps",
type: "u16",
},
{
name: "platformFeeBps",
type: "u8",
},
],
returns: "u64",
},
{
name: "setTokenLedger",
accounts: [
{
name: "tokenLedger",
isMut: true,
isSigner: false,
},
{
name: "tokenAccount",
isMut: false,
isSigner: false,
},
],
args: [],
},
{
name: "createOpenOrders",
accounts: [
{
name: "openOrders",
isMut: true,
isSigner: false,
},
{
name: "payer",
isMut: true,
isSigner: true,
},
{
name: "dexProgram",
isMut: false,
isSigner: false,
},
{
name: "systemProgram",
isMut: false,
isSigner: false,
},
{
name: "rent",
isMut: false,
isSigner: false,
},
{
name: "market",
isMut: false,
isSigner: false,
},
],
args: [],
},
{
name: "createTokenAccount",
accounts: [
{
name: "tokenAccount",
isMut: true,
isSigner: false,
},
{
name: "user",
isMut: true,
isSigner: true,
},
{
name: "mint",
isMut: false,
isSigner: false,
},
{
name: "tokenProgram",
isMut: false,
isSigner: false,
},
{
name: "systemProgram",
isMut: false,
isSigner: false,
},
],
args: [
{
name: "bump",
type: "u8",
},
],
},
{
name: "createProgramOpenOrders",
accounts: [
{
name: "openOrders",
isMut: true,
isSigner: false,
},
{
name: "payer",
isMut: true,
isSigner: true,
},
{
name: "programAuthority",
isMut: false,
isSigner: false,
},
{
name: "dexProgram",
isMut: false,
isSigner: false,
},
{
name: "systemProgram",
isMut: false,
isSigner: false,
},
{
name: "rent",
isMut: false,
isSigner: false,
},
{
name: "market",
isMut: false,
isSigner: false,
},
],
args: [
{
name: "id",
type: "u8",
},
],
},
{
name: "claim",
accounts: [
{
name: "wallet",
isMut: true,
isSigner: false,
},
{
name: "programAuthority",
isMut: true,
isSigner: false,
},
{
name: "systemProgram",
isMut: false,
isSigner: false,
},
],
args: [
{
name: "id",
type: "u8",
},
],
returns: "u64",
},
{
name: "claimToken",
accounts: [
{
name: "payer",
isMut: true,
isSigner: true,
},
{
name: "wallet",
isMut: false,
isSigner: false,
},
{
name: "programAuthority",
isMut: false,
isSigner: false,
},
{
name: "programTokenAccount",
isMut: true,
isSigner: false,
},
{
name: "destinationTokenAccount",
isMut: true,
isSigner: false,
},
{
name: "mint",
isMut: false,
isSigner: false,
},
{
name: "associatedTokenTokenProgram",
isMut: false,
isSigner: false,
},
{
name: "associatedTokenProgram",
isMut: false,
isSigner: false,
},
{
name: "systemProgram",
isMut: false,
isSigner: false,
},
],
args: [
{
name: "id",
type: "u8",
},
],
returns: "u64",
},
{
name: "createTokenLedger",
accounts: [
{
name: "tokenLedger",
isMut: true,
isSigner: true,
},
{
name: "payer",
isMut: true,
isSigner: true,
},
{
name: "systemProgram",
isMut: false,
isSigner: false,
},
],
args: [],
},
],
accounts: [
{
name: "TokenLedger",
type: {
kind: "struct",
fields: [
{
name: "tokenAccount",
type: "publicKey",
},
{
name: "amount",
type: "u64",
},
],
},
},
],
types: [
{
name: "AmountWithSlippage",
type: {
kind: "struct",
fields: [
{
name: "amount",
type: "u64",
},
{
name: "slippageBps",
type: "u16",
},
],
},
},
{
name: "RoutePlanStep",
type: {
kind: "struct",
fields: [
{
name: "swap",
type: {
defined: "Swap",
},
},
{
name: "percent",
type: "u8",
},
{
name: "inputIndex",
type: "u8",
},
{
name: "outputIndex",
type: "u8",
},
],
},
},
{
name: "PlatformFeeType",
type: {
kind: "enum",
variants: [
{
name: "SourceMint",
fields: [
{
name: "mint",
type: "publicKey",
},
],
},
{
name: "DestinationMint",
fields: [
{
name: "mint",
type: "publicKey",
},
],
},
{
name: "Zero",
},
],
},
},
{
name: "Side",
type: {
kind: "enum",
variants: [
{
name: "Bid",
},
{
name: "Ask",
},
],
},
},
{
name: "Swap",
type: {
kind: "enum",
variants: [
{
name: "Saber",
},
{
name: "SaberAddDecimalsDeposit",
},
{
name: "SaberAddDecimalsWithdraw",
},
{
name: "TokenSwap",
},
{
name: "Sencha",
},
{
name: "Step",
},
{
name: "Cropper",
},
{
name: "Raydium",
},
{
name: "Crema",
fields: [
{
name: "aToB",
type: "bool",
},
],
},
{
name: "Lifinity",
},
{
name: "Mercurial",
},
{
name: "Cykura",
},
{
name: "Serum",
fields: [
{
name: "side",
type: {
defined: "Side",
},
},
],
},
{
name: "MarinadeDeposit",
},
{
name: "MarinadeUnstake",
},
{
name: "Aldrin",
fields: [
{
name: "side",
type: {
defined: "Side",
},
},
],
},
{
name: "AldrinV2",
fields: [
{
name: "side",
type: {
defined: "Side",
},
},
],
},
{
name: "Whirlpool",
fields: [
{
name: "aToB",
type: "bool",
},
],
},
{
name: "Invariant",
fields: [
{
name: "xToY",
type: "bool",
},
],
},
{
name: "Meteora",
},
{
name: "GooseFX",
},
{
name: "DeltaFi",
fields: [
{
name: "stable",
type: "bool",
},
],
},
{
name: "Balansol",
},
{
name: "MarcoPolo",
fields: [
{
name: "xToY",
type: "bool",
},
],
},
{
name: "Dradex",
fields: [
{
name: "side",
type: {
defined: "Side",
},
},
],
},
{
name: "LifinityV2",
},
{
name: "RaydiumClmm",
},
{
name: "Openbook",
fields: [
{
name: "side",
type: {
defined: "Side",
},
},
],
},
{
name: "Phoenix",
fields: [
{
name: "side",
type: {
defined: "Side",
},
},
],
},
{
name: "Symmetry",
fields: [
{
name: "fromTokenId",
type: "u64",
},
{
name: "toTokenId",
type: "u64",
},
],
},
{
name: "TokenSwapV2",
},
{
name: "HeliumTreasuryManagementRedeemV0",
},
{