centarus-incentive-sdk
v1.0.1
Published
# ๐ About - Sdk with helper functions to perform actions on the Incentive smart contracts - including data accounts serialization/deserialization
Downloads
3
Readme
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 solwrapTokens
-- to be called by userunwrapTokens
-- to be called by userrefreshPrizePool
-- 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 calledrewardUser
-- to be called by rewardAuthorityconfirmUpdateRewardAuthority
-- -- to be called by new rewardAuthority
๐ Multisig Instructions: generated to be called by a multisig
getUpdateRewardAuthorityInstruction
-- generate updateRewardAuthority instruction for MultisiggetSetEmergencyModeInstruction
-- 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),
})