@0xsplits/splits-sdk
Version:
SDK for the 0xSplits protocol
115 lines • 13.1 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.getGraphqlClient = exports.formatGqlAccount = exports.formatFullGqlAccount = exports.ACCOUNTS_QUERY = exports.FULL_ACCOUNT_QUERY = exports.ACCOUNT_QUERY = exports.MAX_UNIX_TIME = void 0;
var vesting_1 = require("./vesting");
var waterfall_1 = require("./waterfall");
var liquid_1 = require("./liquid");
var pass_through_wallet_1 = require("./pass-through-wallet");
var split_1 = require("./split");
var swapper_1 = require("./swapper");
var user_1 = require("./user");
var core_1 = require("@urql/core");
var viem_1 = require("viem");
exports.MAX_UNIX_TIME = 2147480000; // Max unix time is roughly Jan 19 2038
var ACCOUNT_FRAGMENT = (0, core_1.gql)(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n fragment AccountFragment on Account {\n __typename\n ...AccountFieldsFragment\n ... on User {\n ...UserFieldsFragment\n }\n ... on Split {\n ...SplitFieldsFragment\n }\n ... on VestingModule {\n ...VestingModuleFieldsFragment\n }\n ... on WaterfallModule {\n ...WaterfallModuleFieldsFragment\n }\n ... on LiquidSplit {\n ...LiquidSplitFieldsFragment\n }\n ... on Swapper {\n ...SwapperFieldsFragment\n }\n ... on PassThroughWallet {\n ...PassThroughWalletFieldsFragment\n }\n }\n\n ", "\n ", "\n ", "\n ", "\n ", "\n ", "\n ", "\n ", "\n"], ["\n fragment AccountFragment on Account {\n __typename\n ...AccountFieldsFragment\n ... on User {\n ...UserFieldsFragment\n }\n ... on Split {\n ...SplitFieldsFragment\n }\n ... on VestingModule {\n ...VestingModuleFieldsFragment\n }\n ... on WaterfallModule {\n ...WaterfallModuleFieldsFragment\n }\n ... on LiquidSplit {\n ...LiquidSplitFieldsFragment\n }\n ... on Swapper {\n ...SwapperFieldsFragment\n }\n ... on PassThroughWallet {\n ...PassThroughWalletFieldsFragment\n }\n }\n\n ", "\n ", "\n ", "\n ", "\n ", "\n ", "\n ", "\n ", "\n"])), split_1.ACCOUNT_FIELDS_FRAGMENT, user_1.USER_FIELDS_FRAGMENT, split_1.SPLIT_FIELDS_FRAGMENT, vesting_1.VESTING_MODULE_FIELDS_FRAGMENT, waterfall_1.WATERFALL_MODULE_FIELDS_FRAGMENT, liquid_1.LIQUID_SPLIT_FIELDS_FRAGMENT, swapper_1.SWAPPER_FIELDS_FRAGMENT, pass_through_wallet_1.PASS_THROUGH_WALLET_FIELDS_FRAGMENT);
exports.ACCOUNT_QUERY = (0, core_1.gql)(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n query account($accountId: ID!, $chainId: String!) {\n account(id: $accountId, chainId: $chainId) {\n ...AccountFragment\n }\n }\n ", "\n"], ["\n query account($accountId: ID!, $chainId: String!) {\n account(id: $accountId, chainId: $chainId) {\n ...AccountFragment\n }\n }\n ", "\n"])), ACCOUNT_FRAGMENT);
exports.FULL_ACCOUNT_QUERY = (0, core_1.gql)(templateObject_3 || (templateObject_3 = __makeTemplateObject(["\n query account(\n $accountId: ID!\n $chainId: String!\n $relatedAccountsLimit: Int!\n ) {\n account(id: $accountId, chainId: $chainId) {\n ...AccountFragment\n }\n\n relatedAccounts(\n id: $accountId\n chainId: $chainId\n limit: $relatedAccountsLimit\n ) {\n upstreamSplits {\n ...AccountFieldsFragment\n ...SplitFieldsFragment\n }\n upstreamLiquidSplits {\n ...AccountFieldsFragment\n ...LiquidSplitFieldsFragment\n }\n upstreamWaterfalls {\n ...AccountFieldsFragment\n ...WaterfallModuleFieldsFragment\n }\n upstreamVesting {\n ...AccountFieldsFragment\n ...VestingModuleFieldsFragment\n }\n upstreamSwappers {\n ...AccountFieldsFragment\n ...SwapperFieldsFragment\n }\n upstreamPassThroughWallets {\n ...AccountFieldsFragment\n ...PassThroughWalletFieldsFragment\n }\n controllingSplits {\n ...AccountFieldsFragment\n ...SplitFieldsFragment\n }\n pendingControlSplits {\n ...AccountFieldsFragment\n ...SplitFieldsFragment\n }\n ownedSwappers {\n ...AccountFieldsFragment\n ...SwapperFieldsFragment\n }\n ownedPassThroughWallets {\n ...AccountFieldsFragment\n ...PassThroughWalletFieldsFragment\n }\n }\n }\n\n ", "\n ", "\n ", "\n ", "\n ", "\n ", "\n ", "\n ", "\n"], ["\n query account(\n $accountId: ID!\n $chainId: String!\n $relatedAccountsLimit: Int!\n ) {\n account(id: $accountId, chainId: $chainId) {\n ...AccountFragment\n }\n\n relatedAccounts(\n id: $accountId\n chainId: $chainId\n limit: $relatedAccountsLimit\n ) {\n upstreamSplits {\n ...AccountFieldsFragment\n ...SplitFieldsFragment\n }\n upstreamLiquidSplits {\n ...AccountFieldsFragment\n ...LiquidSplitFieldsFragment\n }\n upstreamWaterfalls {\n ...AccountFieldsFragment\n ...WaterfallModuleFieldsFragment\n }\n upstreamVesting {\n ...AccountFieldsFragment\n ...VestingModuleFieldsFragment\n }\n upstreamSwappers {\n ...AccountFieldsFragment\n ...SwapperFieldsFragment\n }\n upstreamPassThroughWallets {\n ...AccountFieldsFragment\n ...PassThroughWalletFieldsFragment\n }\n controllingSplits {\n ...AccountFieldsFragment\n ...SplitFieldsFragment\n }\n pendingControlSplits {\n ...AccountFieldsFragment\n ...SplitFieldsFragment\n }\n ownedSwappers {\n ...AccountFieldsFragment\n ...SwapperFieldsFragment\n }\n ownedPassThroughWallets {\n ...AccountFieldsFragment\n ...PassThroughWalletFieldsFragment\n }\n }\n }\n\n ", "\n ", "\n ", "\n ", "\n ", "\n ", "\n ", "\n ", "\n"])), ACCOUNT_FRAGMENT, split_1.ACCOUNT_FIELDS_FRAGMENT, split_1.SPLIT_FIELDS_FRAGMENT, waterfall_1.WATERFALL_MODULE_FIELDS_FRAGMENT, liquid_1.LIQUID_SPLIT_FIELDS_FRAGMENT, vesting_1.VESTING_MODULE_FIELDS_FRAGMENT, swapper_1.SWAPPER_FIELDS_FRAGMENT, pass_through_wallet_1.PASS_THROUGH_WALLET_FIELDS_FRAGMENT);
exports.ACCOUNTS_QUERY = (0, core_1.gql)(templateObject_4 || (templateObject_4 = __makeTemplateObject(["\n query accounts($accounts: [AccountInput!]!) {\n accounts(accounts: $accounts) {\n ...AccountFragment\n }\n }\n\n ", "\n"], ["\n query accounts($accounts: [AccountInput!]!) {\n accounts(accounts: $accounts) {\n ...AccountFragment\n }\n }\n\n ", "\n"])), ACCOUNT_FRAGMENT);
var formatFullGqlAccount = function (gqlAccount, upstreamSplits, upstreamVestingModules, upstreamWaterfallModules, upstreamLiquidSplits, upstreamSwappers, upstreamPassThroughWallets, gqlControllingSplits, gqlPendingControlSplits, gqlOwnedSwappers, gqlOwnedPassThroughWallets) {
var pendingControlSplits = gqlPendingControlSplits === null || gqlPendingControlSplits === void 0 ? void 0 : gqlPendingControlSplits.map(function (split) {
return (0, viem_1.getAddress)(split.id);
});
var upstreamLiquidSplitAddresses = upstreamLiquidSplits === null || upstreamLiquidSplits === void 0 ? void 0 : upstreamLiquidSplits.map(function (upstreamLiquidSplit) { return (0, viem_1.getAddress)(upstreamLiquidSplit.address); });
var upstreamLiquidSplitDownstreamSplitAddresses = upstreamLiquidSplits === null || upstreamLiquidSplits === void 0 ? void 0 : upstreamLiquidSplits.map(function (upstreamLiquidSplit) { return (0, viem_1.getAddress)(upstreamLiquidSplit.splitId); });
var controllingSplits = gqlControllingSplits === null || gqlControllingSplits === void 0 ? void 0 : gqlControllingSplits
// Don't include the split that the liquid split controls
.filter(function (gqlSplit) { var _a; return ((_a = gqlSplit.liquidSplit) === null || _a === void 0 ? void 0 : _a.id) !== gqlAccount.id; }).map(function (gqlSplit) { return (0, viem_1.getAddress)(gqlSplit.id); });
var ownedSwappers = gqlOwnedSwappers === null || gqlOwnedSwappers === void 0 ? void 0 : gqlOwnedSwappers.map(function (swapper) {
return (0, viem_1.getAddress)(swapper.id);
});
var ownedPassThroughWallets = gqlOwnedPassThroughWallets === null || gqlOwnedPassThroughWallets === void 0 ? void 0 : gqlOwnedPassThroughWallets.map(function (passThroughWallet) { return (0, viem_1.getAddress)(passThroughWallet.id); });
var relatedData = __assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign({}, (upstreamSwappers !== undefined && {
upstreamSwappers: upstreamSwappers === null || upstreamSwappers === void 0 ? void 0 : upstreamSwappers.map(function (upstreamSwapper) {
return (0, viem_1.getAddress)(upstreamSwapper.address);
}),
})), (upstreamPassThroughWallets !== undefined && {
upstreamPassThroughWallets: upstreamPassThroughWallets === null || upstreamPassThroughWallets === void 0 ? void 0 : upstreamPassThroughWallets.map(function (upstreamPassThroughWallet) {
return (0, viem_1.getAddress)(upstreamPassThroughWallet.address);
}),
})), (upstreamVestingModules !== undefined && {
upstreamVesting: upstreamVestingModules === null || upstreamVestingModules === void 0 ? void 0 : upstreamVestingModules.map(function (upstreamVestingModule) {
return (0, viem_1.getAddress)(upstreamVestingModule.address);
}),
})), (upstreamWaterfallModules !== undefined && {
upstreamWaterfalls: upstreamWaterfallModules === null || upstreamWaterfallModules === void 0 ? void 0 : upstreamWaterfallModules.map(function (upstreamWaterfallModule) {
return (0, viem_1.getAddress)(upstreamWaterfallModule.address);
}),
})), (upstreamLiquidSplits !== undefined && {
upstreamLiquidSplits: upstreamLiquidSplitAddresses,
})), (upstreamSplits !== undefined && {
upstreamSplits: upstreamSplits === null || upstreamSplits === void 0 ? void 0 : upstreamSplits.map(function (upstreamSplit) { return (0, viem_1.getAddress)(upstreamSplit.address); }).filter(function (address) {
return !(upstreamLiquidSplitDownstreamSplitAddresses === null || upstreamLiquidSplitDownstreamSplitAddresses === void 0 ? void 0 : upstreamLiquidSplitDownstreamSplitAddresses.includes(address));
}),
})), (gqlControllingSplits !== undefined && {
controllingSplits: controllingSplits,
})), (gqlPendingControlSplits !== undefined && {
pendingControlSplits: pendingControlSplits,
})), (gqlOwnedSwappers !== undefined && {
ownedSwappers: ownedSwappers,
})), (gqlOwnedPassThroughWallets !== undefined && {
ownedPassThroughWallets: ownedPassThroughWallets,
}));
return __assign(__assign({}, (0, exports.formatGqlAccount)(gqlAccount)), relatedData);
};
exports.formatFullGqlAccount = formatFullGqlAccount;
var formatGqlAccount = function (gqlAccount) {
if (gqlAccount.__typename === 'Split')
return __assign({}, (0, split_1.formatGqlSplit)(gqlAccount));
if (gqlAccount.__typename === 'LiquidSplit')
return __assign({}, (0, liquid_1.formatGqlLiquidSplit)(gqlAccount));
if (gqlAccount.__typename === 'WaterfallModule')
return __assign({}, (0, waterfall_1.formatGqlWaterfallModule)(gqlAccount));
if (gqlAccount.__typename === 'VestingModule')
return __assign({}, (0, vesting_1.formatGqlVestingModule)(gqlAccount));
if (gqlAccount.__typename === 'Swapper')
return __assign({}, (0, swapper_1.formatGqlSwapper)(gqlAccount));
if (gqlAccount.__typename === 'PassThroughWallet')
return __assign({}, (0, pass_through_wallet_1.formatGqlPassThroughWallet)(gqlAccount));
return __assign({}, (0, user_1.formatGqlUser)(gqlAccount));
};
exports.formatGqlAccount = formatGqlAccount;
var SPLITS_GRAPHQL_URL = 'https://api.splits.org/graphql';
var getGraphqlClient = function (_a) {
var apiKey = _a.apiKey, serverURL = _a.serverURL;
if (!serverURL) {
serverURL = SPLITS_GRAPHQL_URL;
}
var headers = {
Authorization: "Bearer ".concat(apiKey),
};
return (0, core_1.createClient)({
url: serverURL,
exchanges: [core_1.fetchExchange],
fetchOptions: {
headers: headers,
},
});
};
exports.getGraphqlClient = getGraphqlClient;
var templateObject_1, templateObject_2, templateObject_3, templateObject_4;
//# sourceMappingURL=index.js.map