blub-sdk
Version:
A modular SDK for interacting with the BLUB ecosystem on the Sui blockchain.
35 lines (34 loc) • 1.37 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.BLUB_NFT_COLLECTION_WHITELIST_STAKE_BOOST = void 0;
exports.getUserBlubNftPoints = getUserBlubNftPoints;
const constants_1 = require("../../utils/constants");
const StakingService_1 = require("../staking/StakingService");
const client_1 = require("../token/client");
exports.BLUB_NFT_COLLECTION_WHITELIST_STAKE_BOOST = 1.6;
async function getUserBlubNftPoints(address) {
const [walletBalanceRaw, summary] = await Promise.all([
(0, client_1.getBlubBalance)(address),
safeGetStakingSummary(address),
]);
const stakedRaw = summary.totalStaked;
const balance = Number(walletBalanceRaw) / 10 ** constants_1.BLUB_DECIMALS;
const staked = Number(stakedRaw) / 10 ** constants_1.BLUB_DECIMALS;
const points = balance + staked * exports.BLUB_NFT_COLLECTION_WHITELIST_STAKE_BOOST;
return {
balance,
staked,
stakeBoost: exports.BLUB_NFT_COLLECTION_WHITELIST_STAKE_BOOST,
points,
};
}
// helper: retorna zero em caso de erro
async function safeGetStakingSummary(address) {
try {
return await (0, StakingService_1.getStakingSummary)(address);
}
catch (err) {
console.warn(`[getUserBlubNftPoints] No staking found for ${address}, defaulting to 0.`);
return { totalStaked: 0n };
}
}