@0xsplits/splits-sdk
Version:
SDK for the 0xSplits protocol
100 lines • 9 kB
JavaScript
"use strict";
var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) {
if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
return cooked;
};
var __assign = (this && this.__assign) || function () {
__assign = Object.assign || function(t) {
for (var s, i = 1, n = arguments.length; i < n; i++) {
s = arguments[i];
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
t[p] = s[p];
}
return t;
};
return __assign.apply(this, arguments);
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.formatRecipient = exports.protectedFormatSplit = exports.formatGqlSplit = exports.ACCOUNT_FIELDS_FRAGMENT = exports.SPLIT_FIELDS_FRAGMENT = exports.RECIPIENT_FIELDS_FRAGMENT = void 0;
var core_1 = require("@urql/core");
var viem_1 = require("viem");
var utils_1 = require("../utils");
var token_1 = require("./token");
exports.RECIPIENT_FIELDS_FRAGMENT = (0, core_1.gql)(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n fragment RecipientFieldsFragment on SplitRecipient {\n id\n ownership\n idx\n }\n"], ["\n fragment RecipientFieldsFragment on SplitRecipient {\n id\n ownership\n idx\n }\n"])));
var TOKEN_BALANCE_FIELDS_FRAGMENT = (0, core_1.gql)(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n fragment TokenBalanceFieldsFragment on TokenBalance {\n id\n amount\n token {\n symbol\n decimals\n }\n }\n"], ["\n fragment TokenBalanceFieldsFragment on TokenBalance {\n id\n amount\n token {\n symbol\n decimals\n }\n }\n"])));
var WAREHOUSE_WITHDRAW_CONFIG_FRAGMENT = (0, core_1.gql)(templateObject_3 || (templateObject_3 = __makeTemplateObject(["\n fragment WarehouseWithdrawConfigFragment on WarehouseWithdrawConfig {\n incentive\n paused\n }\n"], ["\n fragment WarehouseWithdrawConfigFragment on WarehouseWithdrawConfig {\n incentive\n paused\n }\n"])));
exports.SPLIT_FIELDS_FRAGMENT = (0, core_1.gql)(templateObject_4 || (templateObject_4 = __makeTemplateObject(["\n fragment SplitFieldsFragment on Split {\n controller {\n id\n }\n distributorFee\n distributeDirection\n distributionsPaused\n createdBlock\n newPotentialController {\n id\n }\n recipients {\n ...RecipientFieldsFragment\n }\n liquidSplit {\n id\n }\n }\n\n ", "\n"], ["\n fragment SplitFieldsFragment on Split {\n controller {\n id\n }\n distributorFee\n distributeDirection\n distributionsPaused\n createdBlock\n newPotentialController {\n id\n }\n recipients {\n ...RecipientFieldsFragment\n }\n liquidSplit {\n id\n }\n }\n\n ", "\n"])), exports.RECIPIENT_FIELDS_FRAGMENT);
exports.ACCOUNT_FIELDS_FRAGMENT = (0, core_1.gql)(templateObject_5 || (templateObject_5 = __makeTemplateObject(["\n fragment AccountFieldsFragment on Account {\n __typename\n id\n type\n chainId\n latestBlock\n latestActivity\n internalBalances {\n ...TokenBalanceFieldsFragment\n }\n warehouseBalances {\n ...TokenBalanceFieldsFragment\n }\n distributions {\n ...TokenBalanceFieldsFragment\n }\n contractEarnings {\n contract {\n id\n }\n internalBalances {\n id\n amount\n token {\n symbol\n decimals\n }\n }\n withdrawals {\n id\n amount\n token {\n symbol\n decimals\n }\n }\n }\n parentEntityType\n warehouseWithdrawConfig {\n ...WarehouseWithdrawConfigFragment\n }\n }\n\n ", "\n ", "\n"], ["\n fragment AccountFieldsFragment on Account {\n __typename\n id\n type\n chainId\n latestBlock\n latestActivity\n internalBalances {\n ...TokenBalanceFieldsFragment\n }\n warehouseBalances {\n ...TokenBalanceFieldsFragment\n }\n distributions {\n ...TokenBalanceFieldsFragment\n }\n contractEarnings {\n contract {\n id\n }\n internalBalances {\n id\n amount\n token {\n symbol\n decimals\n }\n }\n withdrawals {\n id\n amount\n token {\n symbol\n decimals\n }\n }\n }\n parentEntityType\n warehouseWithdrawConfig {\n ...WarehouseWithdrawConfigFragment\n }\n }\n\n ", "\n ", "\n"])), TOKEN_BALANCE_FIELDS_FRAGMENT, WAREHOUSE_WITHDRAW_CONFIG_FRAGMENT);
var formatGqlRecipient = function (gqlRecipient) {
var recipientId = gqlRecipient.id;
var accountId = recipientId.split('-')[1];
return {
address: (0, viem_1.getAddress)(accountId),
ownership: BigInt(gqlRecipient.ownership),
idx: parseInt(gqlRecipient.idx),
};
};
var formatGqlSplit = function (gqlSplit) {
var recipients = gqlSplit.recipients.map(function (gqlRecipient) {
return formatGqlRecipient(gqlRecipient);
});
var accounts = recipients.map(function (recipient) { return recipient.address; });
var percentAllocations = recipients.map(function (recipient) { return recipient.ownership; });
return __assign(__assign({ type: gqlSplit.type, address: (0, viem_1.getAddress)(gqlSplit.id), chainId: parseInt(gqlSplit.chainId), distributions: (0, token_1.formatTokenBalances)(gqlSplit.distributions), withdrawn: (0, token_1.formatTokenBalances)(gqlSplit.withdrawals), distributorFee: parseInt(gqlSplit.distributorFee), distributeDirection: gqlSplit.distributeDirection, distributionsPaused: gqlSplit.distributionsPaused, latestBlock: gqlSplit.latestBlock, latestActivity: parseInt(gqlSplit.latestActivity), recipients: recipients, controller: gqlSplit.controller
? (0, viem_1.getAddress)(gqlSplit.controller.id)
: viem_1.zeroAddress, newPotentialController: gqlSplit.newPotentialController
? (0, viem_1.getAddress)(gqlSplit.newPotentialController.id)
: viem_1.zeroAddress, hash: gqlSplit.type === 'split'
? (0, utils_1.hashSplitV1)(accounts, percentAllocations.map(function (val) { return Number(val); }), parseInt(gqlSplit.distributorFee))
: (0, utils_1.hashSplitV2)(accounts, percentAllocations, percentAllocations.reduce(function (acc, cur) { return acc + cur; }), parseInt(gqlSplit.distributorFee)), balances: {},
// TODO: remove?
distributed: gqlSplit.distributions
? (0, token_1.formatTokenBalances)(gqlSplit.distributions)
: {}, splitmainBalances: (0, token_1.formatInternalTokenBalances)(gqlSplit.internalBalances), warehouseBalances: (0, token_1.formatInternalTokenBalances)(gqlSplit.warehouseBalances) }, (gqlSplit.liquidSplit && {
liquidSplitId: (0, viem_1.getAddress)(gqlSplit.liquidSplit.id),
})), { parentEntityType: gqlSplit.parentEntityType, contractEarnings: (0, token_1.formatGqlContractEarnings)(gqlSplit.contractEarnings), warehouseWithdrawConfig: gqlSplit.warehouseWithdrawConfig, createdBlock: gqlSplit.createdBlock });
};
exports.formatGqlSplit = formatGqlSplit;
// Should only be called by formatSplit on SplitsClient
var protectedFormatSplit = function (gqlSplit) {
var totalOwnership = gqlSplit.recipients.reduce(function (acc, recipient) {
return acc + recipient.ownership;
}, BigInt(0));
return {
type: gqlSplit.type === 'split' ? 'Split' : 'SplitV2',
address: gqlSplit.address,
controller: gqlSplit.controller !== viem_1.zeroAddress
? {
address: gqlSplit.controller,
}
: null,
newPotentialController: gqlSplit.newPotentialController !== viem_1.zeroAddress
? {
address: gqlSplit.newPotentialController,
}
: null,
distributorFeePercent: (0, utils_1.fromBigIntToPercent)(gqlSplit.distributorFee),
distributeDirection: gqlSplit.distributeDirection,
distributionsPaused: gqlSplit.distributionsPaused,
createdBlock: gqlSplit.createdBlock,
totalOwnership: totalOwnership,
recipients: gqlSplit.recipients
.sort(function (a, b) {
return a.idx - b.idx;
})
.map(function (gqlRecipient) { return (0, exports.formatRecipient)(gqlRecipient, totalOwnership); }),
};
};
exports.protectedFormatSplit = protectedFormatSplit;
var formatRecipient = function (gqlRecipient, totalOwnership) {
return {
recipient: {
address: gqlRecipient.address,
},
ownership: gqlRecipient.ownership,
percentAllocation: (0, utils_1.fromBigIntToPercent)(gqlRecipient.ownership, totalOwnership),
};
};
exports.formatRecipient = formatRecipient;
var templateObject_1, templateObject_2, templateObject_3, templateObject_4, templateObject_5;
//# sourceMappingURL=split.js.map