0.7.2 • Published 2 years ago
one-usd-sdk v0.7.2
onering-solana-sdk
One Ring Finance TypeScript SDK for Solana
Installation
npm install onering-solana-sdk
Initialize connection adapter
const { connection } = useConnection();
const { publicKey, sendTransaction } = useWallet();
const provider = new Provider(connection, useWallet() as any, {
preflightCommitment: "confirmed",
});
const config: RealmConfig = {
mint: new PublicKey(process.env.MINT_PUBKEY),
realm: new PublicKey(process.env.REALM_PUBKEY)
}
// initialize realm
const realm = await new Realm(provider, config).build();
// initialize pool
const pool = await new StablePool(provider, realm, stableMint).build();
// initialize user (connect wallet required)
const user = await new User(provider, pool).build();
// initialize helper
const helper = new RpcHelper(provider);
// get stable token balance
await helper.getTokenBalance(user.stableAta);
// get 1USD token balance
await helper.getTokenBalance(user.realmAta);
Sign & send transaction with connected wallet
try {
// pay 100 stable token to mint 1USD
const tx = await user.mint(100);
// sign transaction
let signature = await sendTransaction(tx, connection);
// confirm transaction
await connection.confirmTransaction(signature, "confirmed");
} catch (err) {
// handle custom program error code
}
Helper APIs
// get token balance
function getTokenBalance(tokenAccount);
Realm APIs
// get APY, redemption fee
function getDashboardInfo();
Pool APIs
// get withdrawal liquidity amount
function getDashboardInfo();
User APIs
// stake receipt state
function getStakeReceipt();
// LP value in 1USD
function getStakeRewardAmount();
// mint 1USD
function mint(100);
// redeem 1USD for stable token
function redeem(100);
// stake 1USD for yield
function stake(100);
// unstake 1USD
function unstake(100);
// mint & stake 1USD
function mintAndStake(100);
Devnet addresses
- Realm Address: 1USDezWJU2XM2xBfn6EHqHQ369zBoW3zmZ17k6UEimv
- 1USD Mint: 1USD6bWynacpTnSy2xHpSNPEDh59TYGx2VztNVzy9pZ
- USDC Mint: 2tWC4JAdL4AxEFJySziYJfsAnW2MHKRo98vbAPiRDSk8
- USDT Mint: EJwZgeZrdC8TXTQbQBoL6bfuAnFUUy1PVCMB4DYPzVaS