UNPKG

@crateprotocol/yi

Version:

The TypeScript SDK for Yi Token by Crate Protocol.

74 lines 1.99 kB
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