@crateprotocol/yi
Version:
The TypeScript SDK for Yi Token by Crate Protocol.
74 lines • 1.99 kB
TypeScript
import type { AugmentedProvider, Provider, TransactionEnvelope } from "@saberhq/solana-contrib";
import type { Token, TokenAmount, u64 } from "@saberhq/token-utils";
import type { PublicKey, Signer } from "@solana/web3.js";
import type { YiPrograms } from ".";
/**
* Yi SDK.
*/
export declare class YiSDK {
readonly provider: AugmentedProvider;
readonly programs: YiPrograms;
constructor(provider: AugmentedProvider, programs: YiPrograms);
/**
* Creates a new instance of the SDK with the given keypair.
*/
withSigner(signer: Signer): YiSDK;
/**
* Loads the SDK.
* @returns
*/
static load({ provider }: {
provider: Provider;
}): YiSDK;
/**
* Creates a new Yi Token.
* @returns
*/
createYiToken({ underlyingToken, stakeFeeMillibps, unstakeFeeMillibps, mintKP, payer, }: {
underlyingToken: Token;
stakeFeeMillibps?: number;
unstakeFeeMillibps?: number;
/**
* Keypair of the mint of the YiToken.
*/
mintKP?: Signer;
payer?: PublicKey;
}): Promise<{
tx: TransactionEnvelope;
mint: PublicKey;
yiToken: PublicKey;
}>;
/**
* Stakes underlying tokens for Yi tokens.
* @returns
*/
stake({ yiTokenMint, amount, authority, }: {
/**
* Mint of the Yi token.
*/
yiTokenMint: PublicKey;
/**
* Amount of underlying tokens to stake.
*/
amount: u64;
/**
* Authority staking tokens.
*/
authority?: PublicKey;
}): Promise<TransactionEnvelope>;
/**
* Unstakes Yi tokens.
* @returns
*/
unstake({ amount, authority, }: {
/**
* Yi Token Amount
*/
amount: TokenAmount;
/**
* Authority unstaking tokens.
*/
authority?: PublicKey;
}): Promise<TransactionEnvelope>;
}
//# sourceMappingURL=sdk.d.ts.map