@blockchainbros/vidar-amm-sdk
Version:
TypeScript SDK for Vidar AMM on Solana
70 lines (69 loc) • 2.69 kB
JavaScript
/** --- Helper functions --- */
export async function initializePool(program, accounts, params) {
return program.methods
.initializePool(params.feeBasisPoints, params.isStable)
.accounts(accounts)
.transaction();
}
export async function initializePosition(program, accounts) {
return program.methods.initializePosition().accounts(accounts).transaction();
}
export async function createLiquidityPosition(program, accounts) {
return program.methods.createLiquidityPosition().accounts(accounts).transaction();
}
export async function addLiquidity(program, accounts, params) {
return program.methods
.addLiquidity(params.amountA, params.amountB)
.accounts(accounts)
.transaction();
}
export async function removeLiquidity(program, accounts, params) {
return program.methods
.removeLiquidity(params.lpAmount)
.accounts(accounts)
.transaction();
}
export async function swap(program, accounts, args) {
return program.methods.swap(args).accounts(accounts).transaction();
}
export async function swapReveal(program, accounts, args) {
return program.methods.swapReveal(args).accounts(accounts).transaction();
}
export async function stake(program, accounts, params) {
return program.methods.stake(params.amount).accounts(accounts).transaction();
}
export async function initializeStake(program, accounts, params) {
return program.methods.initializeStake().accounts(accounts).transaction();
}
export async function unstake(program, accounts, params) {
return program.methods
.unstake(params.amount)
.accounts(accounts)
.transaction();
}
export async function claimRewards(program, accounts) {
return program.methods.claimRewards().accounts(accounts).transaction();
}
export async function claimStakingFees(program, accounts) {
return program.methods.claimStakingFees().accounts(accounts).transaction();
}
export async function claimProtocolFees(program, accounts) {
return program.methods.claimProtocolFees().accounts(accounts).transaction();
}
export async function emergencyWithdraw(program, accounts) {
return program.methods.emergencyWithdraw().accounts(accounts).transaction();
}
export async function updateInternalOracle(program, accounts, args) {
return program.methods
.updateInternalOracle(args)
.accounts(accounts)
.transaction();
}
export async function configurePool(program, accounts, feeBasisPoints, isStable, pause) {
return program.methods.configurePool(feeBasisPoints, isStable, pause)
.accounts({
pool: accounts.pool,
admin: accounts.admin,
})
.transaction();
}