UNPKG

@0xsplits/splits-sdk

Version:

SDK for the 0xSplits protocol

115 lines 13.1 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.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