1.0.17 • Published 1 year ago

@mercurial-finance/farming-sdk v1.0.17

Weekly downloads
-
License
ISC
Repository
-
Last release
1 year ago

Meteora Pool Farm SDK

Getting started

NPM: https://www.npmjs.com/package/@mercurial-finance/farming-sdk

SDK: https://github.com/MeteoraAg/reward-pool

Discord: https://discord.com/channels/841152225564950528/864859354335412224

Install

  1. Install deps
npm i @mercurial-finance/farming-sdk @coral-xyz/anchor @solana/web3.js @solana/spl-token @solana/spl-token-registry
  1. Initialize PoolFarmImpl instance
import { PoolFarmImpl } from "@mercurial-finance/farming-sdk";
import { Wallet, AnchorProvider } from "@coral-xyz/anchor";
import { Connection, PublicKey, Keypair } from "@solana/web3.js";

// Connection, Wallet, and AnchorProvider to interact with the network
const mainnetConnection = new Connection("https://api.mainnet-beta.solana.com");
const mockWallet = new Wallet(new Keypair());
const provider = new AnchorProvider(mainnetConnection, mockWallet, {
  commitment: "confirmed",
});
// Alternatively, to use Solana Wallet Adapter

const USDC_acUSDC_POOL = new PublicKey(
  "6ZLKLjMd2KzH7PPHCXUPgbMAtdTT37VgTtdeXWLoJppr"
); // Pool Address can get from https://docs.meteora.ag/dynamic-pools-integration/dynamic-pool-api/pool-info

const farmingPools = await PoolFarmImpl.getFarmAddressesByPoolAddress(
  USDC_acUSDC_POOL
);
// farmingPools is an array (A pool can have multiple farms)
const farmingPool = farmingPools[0];
const farm = await PoolFarmImpl.create(
  mainnetConnection,
  farmingPool.farmAddress
);
  1. To interact with the PoolFarmImpl
  • Stake
// https://station.jup.ag/blog/jupiter-token-list-api#endpoints
const tokenList = await fetch('https://token.jup.ag/all').then(res => res.json());
const USDC = tokenList.find(token => token.address === <USDC_ADDRESS>);
const USDT = tokenList.find(token => token.address === <USDT_ADDRESS>);
// Get pool lp balance from `@mercurial-finance/dynamic-amm-sdk` package
const pool = await AmmImpl.create(connection, MAINNET_POOL.USDC_USDT, USDC, USDT);
const lpBalance = await pool.getUserBalance(mockWallet.publicKey);

const stakeTx = await farm.deposit(mockWallet.publicKey, lpBalance); // Web3 Transaction Object
const stakeResult = await provider.sendAndConfirm(stakeTx); // Transaction hash
  • Check staked balance
const farmBalance = await farm.getUserBalance(mockWallet.publicKey);
  • Claim
const claimTx = await farm.claim(mockWallet.publicKey); // Web3 Transaction Object
const claimResult = await provider.sendAndConfirm(claimTx); // Transaction hash
  • Unstake
const unStakeTx = await farm.withdraw(mockWallet.publicKey, farmBalance); // Web3 Transaction Object
const unstakeResult = await provider.sendAndConfirm(depositTx); // Transaction hash
1.0.17

1 year ago

1.0.16

2 years ago

1.0.16-abc1234.4

2 years ago

1.0.16-abc1234.3

2 years ago

1.0.16-abc1234.2

2 years ago

1.0.16-abc1234.1

2 years ago

1.0.16-abc1234.0

2 years ago

1.0.15-abc1234.3

2 years ago

1.0.15-abc1234.2

2 years ago

1.0.15-abc1234.1

2 years ago

1.0.15

2 years ago

1.0.15-abc1234.0

2 years ago

1.0.14

2 years ago

1.0.14-abc1234.0

2 years ago

1.0.13

2 years ago

1.0.12

2 years ago

1.0.11-a12.1

2 years ago

1.0.11-a1.0

2 years ago

1.0.11-abc1234.0

2 years ago

1.0.11-abc123.0

2 years ago

1.0.10

2 years ago

1.0.9

2 years ago

1.0.8

2 years ago

1.0.7

2 years ago

1.0.6

2 years ago

1.0.5

2 years ago

1.0.4

2 years ago

1.0.2

2 years ago

1.0.1

2 years ago

1.0.0

2 years ago