UNPKG

@0xsplits/splits-sdk

Version:

SDK for the 0xSplits protocol

61 lines 2.79 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.formatGqlContractEarnings = exports.formatTokenBalances = exports.formatInternalTokenBalances = void 0; var viem_1 = require("viem"); var constants_1 = require("../constants"); var utils_1 = require("../utils"); var formatInternalTokenBalances = function (gqlInternalTokenBalances) { return gqlInternalTokenBalances.reduce(function (acc, tokenBalance) { var idParts = tokenBalance.id.split('-'); var token = (0, viem_1.getAddress)(idParts[idParts.length - 1]); var amount = BigInt(tokenBalance.amount); // Ignore internal balances below the min token balance. This is leftover in split main // for gas efficiency if (amount > constants_1.ONE) { if (!acc[token]) acc[token] = { amount: BigInt(0), decimals: tokenBalance.token.decimals, symbol: tokenBalance.token.symbol, }; acc[token].amount = acc[token].amount + amount - constants_1.ONE; // TODO: review this, feels odd } return acc; }, {}); }; exports.formatInternalTokenBalances = formatInternalTokenBalances; var formatTokenBalances = function (gqlTokenBalances) { if (gqlTokenBalances === undefined) return {}; return gqlTokenBalances.reduce(function (acc, tokenBalance) { var idParts = tokenBalance.id.split('-'); var token = (0, viem_1.getAddress)(idParts[idParts.length - 1]); var amount = BigInt(tokenBalance.amount); if (amount !== constants_1.ZERO) { if (!acc[token]) acc[token] = { amount: BigInt(0), decimals: tokenBalance.token.decimals, symbol: tokenBalance.token.symbol, }; acc[token].amount = acc[token].amount + amount; } return acc; }, {}); }; exports.formatTokenBalances = formatTokenBalances; var formatGqlContractEarnings = function (gqlContractEarnings) { return gqlContractEarnings.reduce(function (acc, gqlContractEarnings) { var contractAddress = (0, viem_1.getAddress)(gqlContractEarnings.contract.id); var withdrawals = (0, exports.formatTokenBalances)(gqlContractEarnings.withdrawals); var internalBalances = (0, exports.formatTokenBalances)(gqlContractEarnings.internalBalances); acc[contractAddress] = { total: (0, utils_1.mergeBalances)([withdrawals, internalBalances]), withdrawals: withdrawals, internalBalances: internalBalances, }; return acc; }, {}); }; exports.formatGqlContractEarnings = formatGqlContractEarnings; //# sourceMappingURL=token.js.map