yarn add bmc-games-dev-sdk
import { BmcGamesSDK, AdminWrapper } from "bmc-games-dev-sdk";
import { SolanaProvider } from "@saberhq/solana-contrib";
const wallet = useWallet();
const { connection } = useConnection();
const provider = SolanaProvider.init({
connection,
wallet: wallet as any,
opts: {
preflightCommitment: "finalized",
commitment: "finalized",
},
});
const bmcGamesSDK = BmcGamesSDK.load({ provider });
const adminWrapper = new AdminWrapper(bmcGamesSDK, wallet.publickKey.toString()); // wallet.publickKey should be String
const tx = await adminWrapper.addGamePartner({
partnerWalletStr,
partnerWithdrawalTokenMintAddressStr,
});
const tx = await adminWrapper.changeVoterWithdrawalWallets({
wallet1Str,
wallet2Str,
wallet3Str,
wallet4Str,
wallet5Str,
approvalChin, // number
});
token and amount depends on pool which is going to decrease
const tx = await adminWrapper.decreaseLiquidity({
withdrawAmount, // token amount; ex: 3.412
withdrawalTokenMintAddress, // Pubkey. not string
});
token and amount depends on pool which is going to increase
const tx = await adminWrapper.increaseLiquidity({
depositAmount, // token amount; ex: 3.412
depositTokenMintAddress, // Pubkey. not string
});
const tx = await adminWrapper.updateByAdmin({
botWalletStr, // String
isEnabledVoting, // boolean
isEmergencyStatus, // boolean
});
const tx = await adminWrapper.setDepositToken({
newDepositTokenMintAddress // Pubkey
});
const tx = await adminWrapper.setGamePartnerStatus({
partnerWalletStr, // String
isEnabled // boolean
});
const tx = await adminWrapper.setGamePartnerToken({
partnerWalletStr, // String
newPartnerWithdrawalTokenMintAddress // Pubkey
});
⚠️ WarningsetPlatformWithdrawalToken();This function is deprecated.
// const tx = await adminWrapper.setPlatformWithdrawalToken({
// newPlatformWithdrawalTokenMintAddress // Pubkey
// });
const tx = await adminWrapper.setRewardToken({
newRewardWithdrawalTokenMintAddress // Pubkey
});
const tx = await adminWrapper.setUserStatus({
userWalletStr, // String
isUnblocked, // boolean
});
const tx = await adminWrapper.startVotingWithdrawalWallet({
newWithdrawalWalletStr, // String
});
const tx = await adminWrapper.withdrawPlatformFund({
withdrawAmount, // token amount; ex: 3.412
});
let info = await adminWrapper.getGlobalInfo();
let info = await adminWrapper.calcInsufficientWithdrawalTokenAmount();
import { BmcGamesSDK, BmcWrapper } from "bmc-games-dev-sdk";
import { SolanaProvider } from "@saberhq/solana-contrib";
const wallet = useWallet();
const { connection } = useConnection();
const provider = SolanaProvider.init({
connection,
wallet: wallet as any,
opts: {
preflightCommitment: "finalized",
commitment: "finalized",
},
});
const bmcGamesSDK = BmcGamesSDK.load({ provider });
const bmcWrapper = new BmcWrapper(bmcGamesSDK, wallet.publickKey.toString()); // wallet.publickKey should be String
const tx = await bmcWrapper.voteWithdrawalWallet();
let info = await bmcWrapper.getVoteWalletInfo();
import { BmcGamesSDK, BotWrapper } from "bmc-games-dev-sdk";
import { SolanaProvider } from "@saberhq/solana-contrib";
const wallet = useWallet();
const { connection } = useConnection();
const provider = SolanaProvider.init({
connection,
wallet: wallet as any,
opts: {
preflightCommitment: "finalized",
commitment: "finalized",
},
});
const bmcGamesSDK = BmcGamesSDK.load({ provider });
const botWrapper = new BotWrapper(bmcGamesSDK, wallet.publickKey.toString()); // wallet.publickKey should be String
const tx = await botWrapper.addUser({
userWalletStr // String
});
token and amount depends on depositToken
const tx = await botWrapper.endSeasonGamePartner({
partnerWalletStr, // String
unlockedAmount, // token amount; ex: 3.412
});
token and amount depends on depositToken
const tx = await botWrapper.endSeasonPlatform({
unlockedAmount, // token amount; ex: 3.412
});
token and amount depends on depositToken
const tx = await botWrapper.endSeasonUser({
userWalletStr, // String
unlockedAmount, // token amount; ex: 3.412 - based on beamo depositToken
});
token and amount depends on depositToken
const tx = await botWrapper.purchaseGameItem({
gamePartnerWalletStr, // String
depositAmount, // token amount; ex: 3.412 - based on beamo depositToken
gameStudioPercentage, // 100% = 10000
rewardPercentage, // 100% = 10000, if isSeasonGame == true then 0%
isSeasonGame, // boolean
});
import { BmcGamesSDK, PartnerWrapper } from "bmc-games-dev-sdk";
import { SolanaProvider } from "@saberhq/solana-contrib";
const wallet = useWallet();
const { connection } = useConnection();
const provider = SolanaProvider.init({
connection,
wallet: wallet as any,
opts: {
preflightCommitment: "finalized",
commitment: "finalized",
},
});
const bmcGamesSDK = BmcGamesSDK.load({ provider });
const partnerWrapper = new PartnerWrapper(bmcGamesSDK, wallet.publickKey.toString()); // wallet.publickKey should be String
Amount depends on depositToken. Partner will receive with partnerWithdrawalToken. Signers will be partner-wallet and bot-wallet. If smartContract returns InsufficientTokenAmount error, insufficient_withdrawal_pool = true and then send message to admin via slack bot channel. Check diagram.xlsx [checklist] No.4
const tx = await partnerWrapper.claimGamePartnerFund({
rewardAmount // token amount; ex: 3.412
});
let partners = await partnerWrapper.getPartnersInfo();
The unit of token amount in returned array is same with depositToken
let partner = await partnerWrapper.getPartnerInfo(
partnerWalletStr // String
);
import { BmcGamesSDK, UserWrapper } from "bmc-games-dev-sdk";
import { SolanaProvider } from "@saberhq/solana-contrib";
const wallet = useWallet();
const { connection } = useConnection();
const provider = SolanaProvider.init({
connection,
wallet: wallet as any,
opts: {
preflightCommitment: "finalized",
commitment: "finalized",
},
});
const bmcGamesSDK = BmcGamesSDK.load({ provider });
const userWrapper = new UserWrapper(bmcGamesSDK, wallet.publickKey.toString()); // wallet.publickKey should be String
Amount depends on depositToken. User will receive with rewardToken. Signers will be user-wallet and bot-wallet. If smartContract returns InsufficientTokenAmount error, insufficient_withdrawal_pool = true and then send message to admin via slack bot channel. Check diagram.xlsx [checklist] No.4
const tx = await userWrapper.claimUserReward({
rewardAmount // token amount; ex: 3.412
});
let users = await userWrapper.getUsersInfo();
The unit of token amount in returned array is same with depositToken
let user = await userWrapper.getUserInfo(
userWalletStr // String
);