UNPKG

@0xsplits/splits-sdk

Version:

SDK for the 0xSplits protocol

100 lines 9 kB
"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