centarus-incentive-sdk
TypeScript icon, indicating that this package has built-in type declarations

1.0.1Β β€’Β PublicΒ β€’Β Published

SDK for centarus incentive solana

πŸ“ About

  • Sdk with helper functions to perform actions on the Incentive smart contracts
  • including data accounts serialization/deserialization

πŸ”₯πŸ”₯ Actions:

  • initializeAccounts -- to be called by any account that has sol
  • wrapTokens -- to be called by user
  • unwrapTokens -- to be called by user
  • refreshPrizePool -- to be called by anybody (preferably rewardAuthority)
  • setEmergencyMode -- can be called by either multisig operator or rewardAuthority. But note that rewardAuthority will be changed once this function is called
  • rewardUser -- to be called by rewardAuthority
  • confirmUpdateRewardAuthority -- -- to be called by new rewardAuthority

πŸš€ Multisig Instructions: generated to be called by a multisig

  • getUpdateRewardAuthorityInstruction -- generate updateRewardAuthority instruction for Multisig
  • getSetEmergencyModeInstruction -- generate setEmergencyModeInstruction for Multisig

πŸš€ Example:

  • Import package
import { initializeCentarusAccounts } from "centarus-incentive-solana";
  • Get reserve Information
   const reserveToUse = {
       asset: 'SOL',
       address: '5VVLD7BQp8y3bTgyF5ezm1ResyMTR3PhYsT4iHFU8Sxz',
       collateralMintAddress: 'FzwZWRMc3GCqjSrcpVX3ueJc6UpcV6iWWb7ZMsTXE3Gf',
       collateralSupplyAddress: 'J5KGpESS8Zq2MvK4rtL6wKbeMRYZzb6TEzn8qPsZFgGd',
       liquidityAddress: 'furd3XUtjXZ2gRvSsoUts9A5m8cMJNqdsyR2Rt8vY9s',
       liquidityFeeReceiverAddress: '5kFqzU2k1tEXtoeNayk1TVxLycoAH5k8WsaGnBnanYJH',
       userSupplyCap: 250
   }
  • Initialize accounts
const connection = new Connection("https://api.devnet.solana.com", 'confirmed');
const payer = getKeypair(testAccounts[0].privateKey);
const rewardAuthority = getKeypair(testAccounts[1].privateKey);
const operator = getKeypair(testAccounts[2].privateKey);
const user = getKeypair(testAccounts[3].privateKey);
  • Call function
    await initializeCentarusAccounts({
        connection,
        tokenSymbol: reserveToUse.asset,
        centarusProgramId: CENTARUS_PROGRAM_ID,
        decimals: asset.decimals,
        lendingMarketAddress: new PublicKey(lendingMarket.address),
        multisigOperator: operator.publicKey,
        payer,
        reserveCollateralMintAddress: new PublicKey(reserveToUse.collateralMintAddress),
        rewardAuthority: rewardAuthority.publicKey,
        tokenMintAddress: new PublicKey(asset.mintAddress),
    })

Readme

Keywords

none

Package Sidebar

Install

npm i centarus-incentive-sdk

Weekly Downloads

0

Version

1.0.1

License

ISC

Unpacked Size

296 kB

Total Files

34

Last publish

Collaborators

  • imef-femi