@crateprotocol/yi
Version:
The TypeScript SDK for Yi Token by Crate Protocol.
536 lines (534 loc) • 10.6 kB
text/typescript
import { generateErrorMap } from "@saberhq/anchor-contrib";
export type YiIDL = {
version: "0.4.0";
name: "yi";
instructions: [
{
name: "createYiToken";
accounts: [
{
name: "mint";
isMut: false;
isSigner: false;
},
{
name: "yiToken";
isMut: true;
isSigner: false;
pda: {
seeds: [
{
kind: "const";
type: "string";
value: "YiToken";
},
{
kind: "account";
type: "publicKey";
account: "Mint";
path: "mint";
}
];
};
},
{
name: "underlyingTokenMint";
isMut: false;
isSigner: false;
},
{
name: "underlyingTokens";
isMut: false;
isSigner: false;
},
{
name: "payer";
isMut: true;
isSigner: true;
},
{
name: "systemProgram";
isMut: false;
isSigner: false;
}
];
args: [];
},
{
name: "createYiTokenWithFees";
accounts: [
{
name: "mint";
isMut: false;
isSigner: false;
},
{
name: "yiToken";
isMut: true;
isSigner: false;
pda: {
seeds: [
{
kind: "const";
type: "string";
value: "YiToken";
},
{
kind: "account";
type: "publicKey";
account: "Mint";
path: "mint";
}
];
};
},
{
name: "underlyingTokenMint";
isMut: false;
isSigner: false;
},
{
name: "underlyingTokens";
isMut: false;
isSigner: false;
},
{
name: "payer";
isMut: true;
isSigner: true;
},
{
name: "systemProgram";
isMut: false;
isSigner: false;
}
];
args: [
{
name: "stakeFeeMillibps";
type: "u32";
},
{
name: "unstakeFeeMillibps";
type: "u32";
}
];
},
{
name: "stake";
accounts: [
{
name: "yiToken";
isMut: false;
isSigner: false;
},
{
name: "yiMint";
isMut: true;
isSigner: false;
},
{
name: "sourceTokens";
isMut: true;
isSigner: false;
},
{
name: "sourceAuthority";
isMut: false;
isSigner: true;
},
{
name: "yiUnderlyingTokens";
isMut: true;
isSigner: false;
},
{
name: "destinationYiTokens";
isMut: true;
isSigner: false;
},
{
name: "tokenProgram";
isMut: false;
isSigner: false;
}
];
args: [
{
name: "amount";
type: "u64";
}
];
},
{
name: "unstake";
accounts: [
{
name: "yiToken";
isMut: false;
isSigner: false;
},
{
name: "yiMint";
isMut: true;
isSigner: false;
},
{
name: "sourceYiTokens";
isMut: true;
isSigner: false;
},
{
name: "sourceAuthority";
isMut: false;
isSigner: true;
},
{
name: "yiUnderlyingTokens";
isMut: true;
isSigner: false;
},
{
name: "destinationUnderlyingTokens";
isMut: true;
isSigner: false;
},
{
name: "tokenProgram";
isMut: false;
isSigner: false;
}
];
args: [
{
name: "amount";
type: "u64";
}
];
}
];
accounts: [
{
name: "YiToken";
type: {
kind: "struct";
fields: [
{
name: "mint";
type: "publicKey";
},
{
name: "bump";
type: "u8";
},
{
name: "padding";
type: {
array: ["u8", 7];
};
},
{
name: "underlyingTokenMint";
type: "publicKey";
},
{
name: "underlyingTokens";
type: "publicKey";
},
{
name: "stakeFeeMillibps";
type: "u32";
},
{
name: "unstakeFeeMillibps";
type: "u32";
}
];
};
}
];
errors: [
{
code: 6000;
name: "DecimalMismatch";
msg: "Decimal mismatch.";
},
{
code: 6001;
name: "InvalidStakeFee";
msg: "Stake fee cannot exceed 100%.";
},
{
code: 6002;
name: "InvalidUnstakeFee";
msg: "Unstake fee cannot exceed 100%.";
}
];
};
export const YiJSON: YiIDL = {
version: "0.4.0",
name: "yi",
instructions: [
{
name: "createYiToken",
accounts: [
{
name: "mint",
isMut: false,
isSigner: false,
},
{
name: "yiToken",
isMut: true,
isSigner: false,
pda: {
seeds: [
{
kind: "const",
type: "string",
value: "YiToken",
},
{
kind: "account",
type: "publicKey",
account: "Mint",
path: "mint",
},
],
},
},
{
name: "underlyingTokenMint",
isMut: false,
isSigner: false,
},
{
name: "underlyingTokens",
isMut: false,
isSigner: false,
},
{
name: "payer",
isMut: true,
isSigner: true,
},
{
name: "systemProgram",
isMut: false,
isSigner: false,
},
],
args: [],
},
{
name: "createYiTokenWithFees",
accounts: [
{
name: "mint",
isMut: false,
isSigner: false,
},
{
name: "yiToken",
isMut: true,
isSigner: false,
pda: {
seeds: [
{
kind: "const",
type: "string",
value: "YiToken",
},
{
kind: "account",
type: "publicKey",
account: "Mint",
path: "mint",
},
],
},
},
{
name: "underlyingTokenMint",
isMut: false,
isSigner: false,
},
{
name: "underlyingTokens",
isMut: false,
isSigner: false,
},
{
name: "payer",
isMut: true,
isSigner: true,
},
{
name: "systemProgram",
isMut: false,
isSigner: false,
},
],
args: [
{
name: "stakeFeeMillibps",
type: "u32",
},
{
name: "unstakeFeeMillibps",
type: "u32",
},
],
},
{
name: "stake",
accounts: [
{
name: "yiToken",
isMut: false,
isSigner: false,
},
{
name: "yiMint",
isMut: true,
isSigner: false,
},
{
name: "sourceTokens",
isMut: true,
isSigner: false,
},
{
name: "sourceAuthority",
isMut: false,
isSigner: true,
},
{
name: "yiUnderlyingTokens",
isMut: true,
isSigner: false,
},
{
name: "destinationYiTokens",
isMut: true,
isSigner: false,
},
{
name: "tokenProgram",
isMut: false,
isSigner: false,
},
],
args: [
{
name: "amount",
type: "u64",
},
],
},
{
name: "unstake",
accounts: [
{
name: "yiToken",
isMut: false,
isSigner: false,
},
{
name: "yiMint",
isMut: true,
isSigner: false,
},
{
name: "sourceYiTokens",
isMut: true,
isSigner: false,
},
{
name: "sourceAuthority",
isMut: false,
isSigner: true,
},
{
name: "yiUnderlyingTokens",
isMut: true,
isSigner: false,
},
{
name: "destinationUnderlyingTokens",
isMut: true,
isSigner: false,
},
{
name: "tokenProgram",
isMut: false,
isSigner: false,
},
],
args: [
{
name: "amount",
type: "u64",
},
],
},
],
accounts: [
{
name: "YiToken",
type: {
kind: "struct",
fields: [
{
name: "mint",
type: "publicKey",
},
{
name: "bump",
type: "u8",
},
{
name: "padding",
type: {
array: ["u8", 7],
},
},
{
name: "underlyingTokenMint",
type: "publicKey",
},
{
name: "underlyingTokens",
type: "publicKey",
},
{
name: "stakeFeeMillibps",
type: "u32",
},
{
name: "unstakeFeeMillibps",
type: "u32",
},
],
},
},
],
errors: [
{
code: 6000,
name: "DecimalMismatch",
msg: "Decimal mismatch.",
},
{
code: 6001,
name: "InvalidStakeFee",
msg: "Stake fee cannot exceed 100%.",
},
{
code: 6002,
name: "InvalidUnstakeFee",
msg: "Unstake fee cannot exceed 100%.",
},
],
};
export const YiErrors = generateErrorMap(YiJSON);