UNPKG

blub-sdk

Version:

A modular SDK for interacting with the BLUB ecosystem on the Sui blockchain.

35 lines (34 loc) 1.37 kB
"use strict"; 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 }; } }