1.4.11-beta8 • Published 2 years ago

francium-sdk v1.4.11-beta8

Weekly downloads
-
License
ISC
Repository
-
Last release
2 years ago

Francium SDK

Javascript sdk of Francium lending pools and farming pools. Learn more about Francium.

NPM package

Farm

Get User Farm Positions

import { Connection, PublicKey } from '@solana/web3.js';
import FranciumSDK from 'francium-sdk';

const fr = new FranciumSDK({
  connection: new Connection('https://free.rpcpool.com')
});

// Will fetch the LP price info on chain and return equity value.
fr.getUserFormattedFarmPosition(new PublicKey('23fxxxxxxxxxxxxxxxxxxx'))
  .then(result => {
    console.log(result);
    // [{
    //   id: 'ORCA-USDC[Orca Aquafarm]',
    //   lpAmount: BN,
    //   lpShares: BN,
    //   lpDecimals: 6,
    //   userInfoPublicKey: PublicKey,
    //   borrowed: [{
    //     symbol: 'USDC',
    //     amount: BN
    //   }],
    //   totalPositionValue: 10,
    //   debtValue: 6,
    //   equityValue: 4
    // }]
  });

// Only return the amount.
fr.getUserFarmPosition(new PublicKey('23fxxxxxxxxxxxxxxxxxxx'))
  .then(result => {
    console.log(result);
    // [{
    //   id: 'ORCA-USDC[Orca Aquafarm]',
    //   lpAmount: BN,
    //   lpShares: BN,
    //   lpDecimals: 6,
    //   userInfoPublicKey: PublicKey,
    //   borrowed: [{
    //     symbol: 'USDC',
    //     amount: BN
    //   }]
    // }]
  });

Get Farm Transactions

import { Connection, PublicKey } from '@solana/web3.js';
import FranciumSDK from 'francium-sdk';
const fr = new FranciumSDK({
  connection: new Connection('https://free.rpcpool.com')
});

async function farm() {
  // supply 1 USDC, borrow 1 USDC
  const trxs = await fr.getFarmTransactions(
    'SHDW-USDC',
    'orca',
    new PublicKey('23xxxxxxx'),
    {
      depositPcAmount: new BN(1000000),
      depositCoinAmount: new BN(0),
      borrowPcAmount: new BN(1000000),
      borrowCoinAmount: new BN(0),
      // Needed when adjust
      currentUserInfoAccount?: PublicKey
    }
  );

  // sign and send trxs
  await fr.sendMultipleTransactions(trxs, wallet);
}

Get Farm Versioned Transactions

async function oneTxfarm() {
  // supply 1 USDC, borrow 1 USDC
  const versionedTrx = await fr.getOneFarmTransaction(
    'RAY-USDC',
    'raydium',
    new PublicKey('23xxxxxxx'),
    {
      depositPcAmount: new BN(1000000),
      depositCoinAmount: new BN(0),
      borrowPcAmount: new BN(1000000),
      borrowCoinAmount: new BN(0),
      // Needed when adjust
      currentUserInfoAccount?: PublicKey
    }
  );

  // If there is Keypair
  versionedTrx.sign([payer]);
  fr.connection.sendTransaction(versionedTrx);

  // if the wallet supports Versioned Transaction
  await fr.sendVersionedTransaction(versionedTrx, wallet);
}

getRepayTransactions

import { Connection, PublicKey } from '@solana/web3.js';
import FranciumSDK from 'francium-sdk';
const fr = new FranciumSDK({
  connection: new Connection('https://free.rpcpool.com')
});

async function getRepayTransactions() {
  const trxs = await fr.getRepayTransactions(
    'SHDW-USDC',
    'orca',
    new PublicKey('23xxxxxxx'),
    configs: {
      amount0: BN;
      amount1: BN;
      // userPosition.userInfoPublicKey
      currentUserInfoAccount: PublicKey;
    }
  );

  // sign and send trxs
  await fr.sendMultipleTransactions(trxs, wallet);

Get Close Position Transactions

import { Connection, PublicKey } from '@solana/web3.js';
import FranciumSDK from 'francium-sdk';
const fr = new FranciumSDK({
  connection: new Connection('https://free.rpcpool.com')
});

async function close() {
  // supply 1 USDC, borrow 1 USDC
  const trxs = await fr.getClosePositionTransactions(
    'SHDW-USDC',
    'orca',
    new PublicKey('23xxxxxxx'),
    {
      // 0: swap to PC token
      // 1: swap to Coin Token
      // 2: minimize trading 
      withdrawType: 2,

      // userPosition.lpShares
      lpShares: BN,

      // userPosition.userInfoPublicKey
      currentUserInfoAccount: PublicKey 
    }
  );

  // sign and send trxs
  await fr.sendMultipleTransactions(trxs, wallet);
}

Get Farm Close Versioned Transactions

async function oneTxClose() {
  // supply 1 USDC, borrow 1 USDC
  const versionedTrx = await fr.getOneFarmClosedTransaction(
    'RAY-USDC',
    'raydium',
    new PublicKey('23xxxxxxx'),
    {
      // 0: swap to PC token
      // 1: swap to Coin Token
      // 2: minimize trading 
      withdrawType: 2,

      // userPosition.lpShares
      lpShares: BN,

      // userPosition.userInfoPublicKey
      currentUserInfoAccount: PublicKey 
    }
  );

  // If there is Keypair
  versionedTrx.sign([payer]);
  fr.connection.sendTransaction(versionedTrx);

  // if the wallet supports Versioned Transaction
  await fr.sendVersionedTransaction(versionedTrx, wallet);
}

Get Pool Info

async function getInfo() {
  const farmPool = await fr.getFarmPoolTVL();
  const lendingPool = await fr.getLendingPoolTVL();
}

Get Farm LP Info

fr.getFarmLPPriceInfo();

PDN Rebalance

import { Connection, PublicKey } from '@solana/web3.js';
import FranciumSDK from 'francium-sdk';
const fr = new FranciumSDK({
  connection: new Connection('https://free.rpcpool.com')
});

async function rebalance() {
  await fr.sendRebalanceTransactions(
    new PublicKey('23xxxxxxx'),
    targetPosition.userInfoPublicKey.toBase58(), // the userInfoPublicKey string of the target positio, which could be accessible from fr.getUserFarmPosition
    wallet,
  );
}

// get rebalance Info
async function getRebalanceInfo() {
  const rebalanceInfo = await fr.getRebalanceInfo(
    new PublicKey('23xxxxxxx'),
    targetPosition.userInfoPublicKey.toBase58(), // the userInfoPublicKey string of the target positio, which could be accessible from fr.getUserFarmPosition
  );
  console.log('rebalanceInfo: ', rebalanceInfo);
}

Lend

Get Lending Transaction

import { Connection, PublicKey } from '@solana/web3.js';
import FranciumSDK from 'francium-sdk';
const fr = new FranciumSDK({
  connection: new Connection('https://free.rpcpool.com')
});

async function deposit() {
  const { trx, signers }  = await fr.getLendingDepositTransaction('USDC', new BN(1000000), new PublicKey('23fxxxxxxxxxxxxxxxxxxx'));
  const { txid, response } = await fr.sendSingleTransaction(trx, wallet, signers);
  console.log(txid, response);
}

async function withdraw() {
  // You can get this value by getUserLendingPosition method
  const rewardAmount = 1002232;
  const tokenAmount = 0;
  const { trx, signers }  = await fr.getLendWithdrawTransaction('USDC', rewardAmount, tokenAmount, new PublicKey('23fxxxxxxxxxxxxxxxxxxx'));
  const { txid, response } = await fr.sendSingleTransaction(trx, wallet, signers);
  console.log(txid, response);
}

Get User Lending Pool

user lending position, the totalAmount is the token amount.

fr.getUserLendingPosition(new PublicKey('23fxxxxxxxxxxxxxxxxxxx'))
  .then((res) => {
    console.log(res);
      // [
      //   {   
      //     balancePosition: 0,
      //     pool: "USDC",
      //     rewardPosition: 41354540149,
      //     scale: 6,
      //     totalAmount: 50386.25041249344,
      //     totalPosition: 41354540149,
      //   }
      // ]
  })

Get Pool Info

fr.getLendingPoolInfo()
  .then((res) => {
    console.log(res);
    // [
    //   {
    //     pool: 'USDC',
    //     scale: 6,
    //     avaliableAmount: BN,
    //     borrowedAmount: BN,
    //     totalAmount: BN,
    //     utilization: 0.9,
    //     totalShareMintSupply: BN,
    //     apr: 8.36,
    //     apy: 8.72,
    //   }
    // ]
  });

add this to your webpack configuration

node: {
  fs: "empty",
  net: "empty",
  tls: "empty",
}
1.4.17-beta

2 years ago

1.4.16

2 years ago

1.4.16-beta

2 years ago

1.4.15-beta

2 years ago

1.4.14-beta3

2 years ago

1.4.14-beta

2 years ago

1.4.14-beta2

2 years ago

1.4.13-beta

2 years ago

1.4.13-beta2

2 years ago

1.4.13-beta3

2 years ago

1.4.12

2 years ago

1.4.12-beta

2 years ago

1.4.11

2 years ago

1.4.11-beta4

2 years ago

1.4.11-beta5

2 years ago

1.4.11-beta8

2 years ago

1.4.11-beta9

2 years ago

1.4.11-beta6

2 years ago

1.4.11-beta7

2 years ago

1.4.11-beta

2 years ago

1.4.11-beta2

2 years ago

1.4.11-beta3

2 years ago

1.4.10-beta

2 years ago

1.4.9

2 years ago

1.4.9-beta3

2 years ago

1.4.9-beta2

2 years ago

1.4.9-beta

2 years ago

1.4.6

2 years ago

1.4.8

2 years ago

1.4.7

2 years ago

1.4.5

3 years ago

1.4.4

3 years ago

1.3.47

3 years ago

1.4.3

3 years ago

1.4.2

3 years ago

1.4.1

3 years ago

1.4.0

3 years ago

1.3.43-beta

3 years ago

1.3.42

3 years ago

1.3.43

3 years ago

1.3.46

3 years ago

1.3.44

3 years ago

1.3.45

3 years ago

1.3.43-beta2

3 years ago

1.3.41

3 years ago

1.3.28-beta

4 years ago

1.3.29-beta2

4 years ago

1.3.31

4 years ago

1.3.32

4 years ago

1.3.30

4 years ago

1.3.35

3 years ago

1.3.36

3 years ago

1.3.33

3 years ago

1.3.34

3 years ago

1.3.39

3 years ago

1.3.37

3 years ago

1.3.38

3 years ago

1.3.29-beta

4 years ago

1.3.40

3 years ago

1.3.28

4 years ago

1.3.29

4 years ago

1.3.27

4 years ago

1.3.26-beta

4 years ago

1.3.23-beta

4 years ago

1.3.24

4 years ago

1.3.25

4 years ago

1.3.23

4 years ago

1.3.26

4 years ago

1.3.15-beta

4 years ago

1.3.17-beta2

4 years ago

1.3.21-beta

4 years ago

1.3.15-beta2

4 years ago

1.3.16-beta

4 years ago

1.3.17

4 years ago

1.3.18

4 years ago

1.3.15

4 years ago

1.3.16

4 years ago

1.3.19

4 years ago

1.3.20

4 years ago

1.3.22

4 years ago

1.3.22-beta

4 years ago

1.3.21-beta2

4 years ago

1.3.14

4 years ago

1.2.25-beta

4 years ago

1.3.4-beta

4 years ago

1.2.29-beta

4 years ago

1.2.24-beta2

4 years ago

1.3.9

4 years ago

1.3.8

4 years ago

1.3.3-beta

4 years ago

1.3.9-beta

4 years ago

1.3.14-beta

4 years ago

1.3.1-beta

4 years ago

1.3.10

4 years ago

1.3.13

4 years ago

1.3.11

4 years ago

1.3.12

4 years ago

1.2.24-beta

4 years ago

1.3.6-beta

4 years ago

1.3.7

4 years ago

1.3.6

4 years ago

1.3.5

4 years ago

1.3.4

4 years ago

1.3.3

4 years ago

1.3.2

4 years ago

1.3.1

4 years ago

1.2.26-beta

4 years ago

1.3.0

4 years ago

1.2.31-beta

4 years ago

1.2.24

4 years ago

1.2.28-beta

4 years ago

1.2.31-beta2

4 years ago

1.2.27

4 years ago

1.2.28

4 years ago

1.2.25

4 years ago

1.2.26

4 years ago

1.2.29

4 years ago

1.2.30

4 years ago

1.2.9-beta

4 years ago

1.2.8

4 years ago

1.2.19-beta

4 years ago

1.2.16-beta2

4 years ago

1.2.7

4 years ago

1.2.16-beta

4 years ago

1.2.11-beta

4 years ago

1.2.14-beta

4 years ago

1.2.17-beta2

4 years ago

1.2.17-beta3

4 years ago

1.2.8-beta

4 years ago

1.2.7-beta2

4 years ago

1.2.14-beta3

4 years ago

1.2.10-beta

4 years ago

1.2.14-beta4

4 years ago

1.2.14-beta2

4 years ago

1.2.12

4 years ago

1.2.10

4 years ago

1.2.16

4 years ago

1.2.14

4 years ago

1.2.15

4 years ago

1.2.18

4 years ago

1.2.19

4 years ago

1.2.12-beta

4 years ago

1.2.15-beta

4 years ago

1.2.20-beta

4 years ago

1.2.23-beta

4 years ago

1.2.15-beta2

4 years ago

1.2.20

4 years ago

1.2.11-beta2

4 years ago

1.2.23

4 years ago

1.2.18-beta2

4 years ago

1.2.21

4 years ago

1.2.22

4 years ago

1.2.17-beta

4 years ago

1.2.9-beta2

4 years ago

1.2.19-beta2

4 years ago

1.2.13-beta

4 years ago

1.2.18-beta

4 years ago

1.2.6

4 years ago

1.2.5

4 years ago

1.2.7-beta

4 years ago

1.2.6-beta

4 years ago

1.2.0

4 years ago

1.2.4

4 years ago

1.2.3

4 years ago

1.2.2

4 years ago

1.2.1

4 years ago

1.1.1

4 years ago

1.1.0

4 years ago

1.1.3

4 years ago

1.1.2

4 years ago

1.0.0-beta

4 years ago

1.0.0-beta1

4 years ago

0.2.0

4 years ago

0.1.2

4 years ago

0.1.1

4 years ago

0.1.0

4 years ago

0.0.2

4 years ago

0.0.1

4 years ago