@cheethas/splits-sdk
Version:
Fork of the splits SDK for the 0xSplits protocol, testing experimental features
75 lines • 8.39 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;
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.getGraphqlClient = exports.ACCOUNT_BALANCES_QUERY = exports.RELATED_SPLITS_QUERY = exports.SPLIT_QUERY = exports.formatAccountBalances = exports.protectedFormatSplit = void 0;
var address_1 = require("@ethersproject/address");
var bignumber_1 = require("@ethersproject/bignumber");
var constants_1 = require("@ethersproject/constants");
var graphql_request_1 = require("graphql-request");
var constants_2 = require("../constants");
var utils_1 = require("../utils");
var GQL_ENDPOINTS = {
1: '/subgraphs/name/0xsplits/splits-subgraph-ethereum',
5: '/subgraphs/name/0xsplits/splits-subgraph-goerli',
137: '/subgraphs/name/0xsplits/splits-subgraph-polygon',
80001: '/subgraphs/name/0xsplits/splits-subgraph-mumbai',
};
var TOKEN_BALANCE_FIELDS_FRAGMENT = (0, graphql_request_1.gql)(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n fragment TokenBalanceFieldsFragment on TokenBalance {\n amount\n token {\n id\n }\n }\n"], ["\n fragment TokenBalanceFieldsFragment on TokenBalance {\n amount\n token {\n id\n }\n }\n"])));
var RECIPIENT_FIELDS_FRAGMENT = (0, graphql_request_1.gql)(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n fragment RecipientFieldsFragment on Recipient {\n id\n account {\n id\n }\n split {\n id\n }\n ownership\n }\n"], ["\n fragment RecipientFieldsFragment on Recipient {\n id\n account {\n id\n }\n split {\n id\n }\n ownership\n }\n"])));
var SPLIT_FIELDS_FRAGMENT = (0, graphql_request_1.gql)(templateObject_3 || (templateObject_3 = __makeTemplateObject(["\n fragment SplitFieldsFragment on Split {\n controller\n distributorFee\n newPotentialController\n createdBlock\n latestBlock\n recipients(first: 1000, orderBy: ownership, orderDirection: desc) {\n ...RecipientFieldsFragment\n }\n }\n\n ", "\n"], ["\n fragment SplitFieldsFragment on Split {\n controller\n distributorFee\n newPotentialController\n createdBlock\n latestBlock\n recipients(first: 1000, orderBy: ownership, orderDirection: desc) {\n ...RecipientFieldsFragment\n }\n }\n\n ", "\n"])), RECIPIENT_FIELDS_FRAGMENT);
var ACCOUNT_BALANCES_FRAGMENT = (0, graphql_request_1.gql)(templateObject_4 || (templateObject_4 = __makeTemplateObject(["\n fragment AccountBalancesFragment on Account {\n internalBalances(first: 1000, orderBy: amount, orderDirection: desc) {\n ...TokenBalanceFieldsFragment\n }\n withdrawals(first: 1000, orderBy: amount, orderDirection: desc) {\n ...TokenBalanceFieldsFragment\n }\n }\n\n ", "\n"], ["\n fragment AccountBalancesFragment on Account {\n internalBalances(first: 1000, orderBy: amount, orderDirection: desc) {\n ...TokenBalanceFieldsFragment\n }\n withdrawals(first: 1000, orderBy: amount, orderDirection: desc) {\n ...TokenBalanceFieldsFragment\n }\n }\n\n ", "\n"])), TOKEN_BALANCE_FIELDS_FRAGMENT);
var ACCOUNT_FIELDS_FRAGMENT = (0, graphql_request_1.gql)(templateObject_5 || (templateObject_5 = __makeTemplateObject(["\n fragment AccountFieldsFragment on Account {\n id\n upstream(first: 1000) {\n ...RecipientFieldsFragment\n }\n ...AccountBalancesFragment\n }\n\n ", "\n ", "\n"], ["\n fragment AccountFieldsFragment on Account {\n id\n upstream(first: 1000) {\n ...RecipientFieldsFragment\n }\n ...AccountBalancesFragment\n }\n\n ", "\n ", "\n"])), RECIPIENT_FIELDS_FRAGMENT, ACCOUNT_BALANCES_FRAGMENT);
var FULL_SPLIT_FIELDS_FRAGMENT = (0, graphql_request_1.gql)(templateObject_6 || (templateObject_6 = __makeTemplateObject(["\n fragment FullSplitFieldsFragment on Split {\n ...AccountFieldsFragment\n ...SplitFieldsFragment\n }\n\n ", "\n ", "\n"], ["\n fragment FullSplitFieldsFragment on Split {\n ...AccountFieldsFragment\n ...SplitFieldsFragment\n }\n\n ", "\n ", "\n"])), ACCOUNT_FIELDS_FRAGMENT, SPLIT_FIELDS_FRAGMENT);
var formatRecipient = function (gqlRecipient) {
return {
address: (0, address_1.getAddress)(gqlRecipient.account.id),
percentAllocation: (0, utils_1.fromBigNumberValue)(gqlRecipient.ownership),
};
};
// Should only be called by _formatSplit on SplitsClient
var protectedFormatSplit = function (gqlSplit) {
return {
id: (0, address_1.getAddress)(gqlSplit.id),
controller: gqlSplit.controller !== constants_1.AddressZero
? (0, address_1.getAddress)(gqlSplit.controller)
: null,
newPotentialController: gqlSplit.newPotentialController !== constants_1.AddressZero
? (0, address_1.getAddress)(gqlSplit.newPotentialController)
: null,
distributorFeePercent: (0, utils_1.fromBigNumberValue)(gqlSplit.distributorFee),
createdBlock: gqlSplit.createdBlock,
recipients: gqlSplit.recipients
.map(function (gqlRecipient) { return formatRecipient(gqlRecipient); })
.sort(function (a, b) {
return b.percentAllocation - a.percentAllocation;
}),
};
};
exports.protectedFormatSplit = protectedFormatSplit;
var formatAccountBalances = function (gqlTokenBalances) {
return gqlTokenBalances.reduce(function (acc, gqlTokenBalance) {
var tokenId = (0, address_1.getAddress)(gqlTokenBalance.token.id);
var amount = bignumber_1.BigNumber.from(gqlTokenBalance.amount);
if (amount > constants_1.One)
acc[tokenId] = amount;
return acc;
}, {});
};
exports.formatAccountBalances = formatAccountBalances;
exports.SPLIT_QUERY = (0, graphql_request_1.gql)(templateObject_7 || (templateObject_7 = __makeTemplateObject(["\n query split($splitId: ID!) {\n split(id: $splitId) {\n ...FullSplitFieldsFragment\n }\n }\n\n ", "\n"], ["\n query split($splitId: ID!) {\n split(id: $splitId) {\n ...FullSplitFieldsFragment\n }\n }\n\n ", "\n"])), FULL_SPLIT_FIELDS_FRAGMENT);
exports.RELATED_SPLITS_QUERY = (0, graphql_request_1.gql)(templateObject_8 || (templateObject_8 = __makeTemplateObject(["\n query relatedSplits($accountId: String!) {\n receivingFrom: recipients(where: { account: $accountId }) {\n split {\n ...FullSplitFieldsFragment\n }\n }\n controlling: splits(where: { controller: $accountId }) {\n ...FullSplitFieldsFragment\n }\n pendingControl: splits(where: { newPotentialController: $accountId }) {\n ...FullSplitFieldsFragment\n }\n }\n\n ", "\n"], ["\n query relatedSplits($accountId: String!) {\n receivingFrom: recipients(where: { account: $accountId }) {\n split {\n ...FullSplitFieldsFragment\n }\n }\n controlling: splits(where: { controller: $accountId }) {\n ...FullSplitFieldsFragment\n }\n pendingControl: splits(where: { newPotentialController: $accountId }) {\n ...FullSplitFieldsFragment\n }\n }\n\n ", "\n"])), FULL_SPLIT_FIELDS_FRAGMENT);
exports.ACCOUNT_BALANCES_QUERY = (0, graphql_request_1.gql)(templateObject_9 || (templateObject_9 = __makeTemplateObject(["\n query accountBalances($accountId: ID!) {\n accountBalances: account(id: $accountId) {\n ...AccountBalancesFragment\n }\n }\n\n ", "\n"], ["\n query accountBalances($accountId: ID!) {\n accountBalances: account(id: $accountId) {\n ...AccountBalancesFragment\n }\n }\n\n ", "\n"
// Allow a custom host to be provided for the subgraph if being indexed in alternative infrastructure
])), ACCOUNT_BALANCES_FRAGMENT);
// Allow a custom host to be provided for the subgraph if being indexed in alternative infrastructure
var getGraphqlClient = function (chainId, host) {
if (!constants_2.SPLITS_SUBGRAPH_CHAIN_IDS.includes(chainId))
return;
return new graphql_request_1.GraphQLClient(host + GQL_ENDPOINTS[chainId]);
};
exports.getGraphqlClient = getGraphqlClient;
var templateObject_1, templateObject_2, templateObject_3, templateObject_4, templateObject_5, templateObject_6, templateObject_7, templateObject_8, templateObject_9;
//# sourceMappingURL=index.js.map