@0xsplits/splits-sdk
Version:
SDK for the 0xSplits protocol
61 lines • 2.79 kB
JavaScript
;
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