UNPKG

@0xsplits/splits-sdk

Version:

SDK for the 0xSplits protocol

158 lines 10.8 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; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.protectedFormatSwapper = exports.formatGqlSwapper = exports.formatGqlOracle = exports.SWAPPER_FIELDS_FRAGMENT = exports.ORACLE_FIELDS_FRAGMENT = void 0; var core_1 = require("@urql/core"); var token_1 = require("./token"); var viem_1 = require("viem"); var constants_1 = require("../constants"); var utils_1 = require("../utils"); var UNISWAP_V3_TWAP_ORACLE_FIELDS_FRAGMENT = (0, core_1.gql)(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n fragment UniswapV3TwapOracleFieldsFragment on UniswapV3TWAPOracle {\n paused\n defaultPeriod\n pairDetails {\n base {\n id\n }\n quote {\n id\n }\n pool\n fee\n period\n }\n }\n"], ["\n fragment UniswapV3TwapOracleFieldsFragment on UniswapV3TWAPOracle {\n paused\n defaultPeriod\n pairDetails {\n base {\n id\n }\n quote {\n id\n }\n pool\n fee\n period\n }\n }\n"]))); var CHAINLINK_ORACLE_FIELDS_FRAGMENT = (0, core_1.gql)(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n fragment ChainlinkOracleFieldsFragment on ChainlinkOracle {\n paused\n sequencerFeed\n chainlinkPairDetails {\n base {\n id\n }\n quote {\n id\n }\n inverted\n feeds {\n aggregatorV3\n decimals\n staleAfter\n mul\n }\n }\n }\n"], ["\n fragment ChainlinkOracleFieldsFragment on ChainlinkOracle {\n paused\n sequencerFeed\n chainlinkPairDetails {\n base {\n id\n }\n quote {\n id\n }\n inverted\n feeds {\n aggregatorV3\n decimals\n staleAfter\n mul\n }\n }\n }\n"]))); exports.ORACLE_FIELDS_FRAGMENT = (0, core_1.gql)(templateObject_3 || (templateObject_3 = __makeTemplateObject(["\n fragment OracleFieldsFragment on Oracle {\n id\n type\n ... on UniswapV3TWAPOracle {\n ...UniswapV3TwapOracleFieldsFragment\n }\n ... on ChainlinkOracle {\n ...ChainlinkOracleFieldsFragment\n }\n }\n\n ", "\n ", "\n"], ["\n fragment OracleFieldsFragment on Oracle {\n id\n type\n ... on UniswapV3TWAPOracle {\n ...UniswapV3TwapOracleFieldsFragment\n }\n ... on ChainlinkOracle {\n ...ChainlinkOracleFieldsFragment\n }\n }\n\n ", "\n ", "\n"])), UNISWAP_V3_TWAP_ORACLE_FIELDS_FRAGMENT, CHAINLINK_ORACLE_FIELDS_FRAGMENT); var SWAP_BALANCE_FIELDS_FRAGMENT = (0, core_1.gql)(templateObject_4 || (templateObject_4 = __makeTemplateObject(["\n fragment SwapBalanceFieldsFragment on SwapBalance {\n inputToken {\n id\n }\n inputAmount\n outputToken {\n id\n }\n outputAmount\n }\n"], ["\n fragment SwapBalanceFieldsFragment on SwapBalance {\n inputToken {\n id\n }\n inputAmount\n outputToken {\n id\n }\n outputAmount\n }\n"]))); exports.SWAPPER_FIELDS_FRAGMENT = (0, core_1.gql)(templateObject_5 || (templateObject_5 = __makeTemplateObject(["\n fragment SwapperFieldsFragment on Swapper {\n owner {\n id\n }\n paused\n beneficiary {\n id\n }\n tokenToBeneficiary {\n id\n }\n oracle {\n ...OracleFieldsFragment\n }\n defaultScaledOfferFactor\n scaledOfferFactorPairOverrides {\n base {\n id\n }\n quote {\n id\n }\n scaledOfferFactor\n }\n swapperSwapBalances: swapBalances {\n ...SwapBalanceFieldsFragment\n }\n }\n\n ", "\n ", "\n"], ["\n fragment SwapperFieldsFragment on Swapper {\n owner {\n id\n }\n paused\n beneficiary {\n id\n }\n tokenToBeneficiary {\n id\n }\n oracle {\n ...OracleFieldsFragment\n }\n defaultScaledOfferFactor\n scaledOfferFactorPairOverrides {\n base {\n id\n }\n quote {\n id\n }\n scaledOfferFactor\n }\n swapperSwapBalances: swapBalances {\n ...SwapBalanceFieldsFragment\n }\n }\n\n ", "\n ", "\n"])), exports.ORACLE_FIELDS_FRAGMENT, SWAP_BALANCE_FIELDS_FRAGMENT); var formatGqlOracle = function (gqlOracle) { var _a; if (gqlOracle.type === 'uniswapV3TWAP') return { address: (0, viem_1.getAddress)(gqlOracle.id), type: gqlOracle.type, defaultPeriod: parseInt(gqlOracle.defaultPeriod), pairDetails: (_a = gqlOracle.pairDetails) === null || _a === void 0 ? void 0 : _a.reduce(function (acc, pairDetail) { var base = (0, viem_1.getAddress)(pairDetail.base.id); var quote = (0, viem_1.getAddress)(pairDetail.quote.id); var pairId = (0, utils_1.getSwapBalanceId)(base, quote); acc[pairId] = { base: base, quote: quote, pool: (0, viem_1.getAddress)(pairDetail.pool), fee: pairDetail.fee, period: parseInt(pairDetail.period), }; var reversePairId = (0, utils_1.getSwapBalanceId)(quote, base); acc[reversePairId] = { base: quote, quote: base, pool: (0, viem_1.getAddress)(pairDetail.pool), fee: pairDetail.fee, period: parseInt(pairDetail.period), }; return acc; }, {}), }; else if (gqlOracle.type === 'chainlink') return { address: (0, viem_1.getAddress)(gqlOracle.id), type: gqlOracle.type, chainlinkPairDetails: gqlOracle.chainlinkPairDetails.reduce(function (acc, pairDetail) { var base = (0, viem_1.getAddress)(pairDetail.base.id); var quote = (0, viem_1.getAddress)(pairDetail.quote.id); var pairId = (0, utils_1.getSwapBalanceId)(base, quote); acc[pairId] = { base: base, quote: quote, }; return acc; }, {}), }; return { address: (0, viem_1.getAddress)(gqlOracle.id), type: gqlOracle.type, }; }; exports.formatGqlOracle = formatGqlOracle; var formatSwapBalances = function (gqlSwapBalances) { return gqlSwapBalances.reduce(function (acc, swapBalance) { var _a; var inputToken = (0, viem_1.getAddress)(swapBalance.inputToken.id); var outputToken = (0, viem_1.getAddress)(swapBalance.outputToken.id); var inputAmount = BigInt(swapBalance.inputAmount); var outputAmount = BigInt(swapBalance.outputAmount); var swapBalanceId = (0, utils_1.getSwapBalanceId)(inputToken, outputToken); acc[swapBalanceId] = (_a = acc[swapBalanceId]) !== null && _a !== void 0 ? _a : { inputAmount: constants_1.ZERO, outputAmount: constants_1.ZERO, }; acc[swapBalanceId].inputAmount = acc[swapBalanceId].inputAmount + inputAmount; acc[swapBalanceId].outputAmount = acc[swapBalanceId].outputAmount + outputAmount; return acc; }, {}); }; var formatGqlSwapper = function (gqlSwapper) { return { type: 'swapper', address: (0, viem_1.getAddress)(gqlSwapper.id), chainId: parseInt(gqlSwapper.chainId), distributions: (0, token_1.formatTokenBalances)(gqlSwapper.distributions), balances: {}, balanceQuoteAmounts: {}, splitmainBalances: (0, token_1.formatInternalTokenBalances)(gqlSwapper.internalBalances), warehouseBalances: (0, token_1.formatInternalTokenBalances)(gqlSwapper.warehouseBalances), latestBlock: gqlSwapper.latestBlock, latestActivity: parseInt(gqlSwapper.latestActivity), parentEntityType: gqlSwapper.parentEntityType, owner: (0, viem_1.getAddress)(gqlSwapper.owner.id), beneficiary: (0, viem_1.getAddress)(gqlSwapper.beneficiary.id), tokenToBeneficiary: (0, viem_1.getAddress)(gqlSwapper.tokenToBeneficiary.id), oracle: (0, exports.formatGqlOracle)(gqlSwapper.oracle), paused: gqlSwapper.paused, defaultScaledOfferFactor: parseInt(gqlSwapper.defaultScaledOfferFactor), scaledOfferFactorOverrides: gqlSwapper.scaledOfferFactorPairOverrides.reduce(function (acc, override) { var base = (0, viem_1.getAddress)(override.base.id); var quote = (0, viem_1.getAddress)(override.quote.id); var pair = "".concat(base, "-").concat(quote); acc[pair] = { base: base, quote: quote, scaledOfferFactor: parseInt(override.scaledOfferFactor), }; return acc; }, {}), swapBalances: formatSwapBalances(gqlSwapper.swapperSwapBalances), contractEarnings: (0, token_1.formatGqlContractEarnings)(gqlSwapper.contractEarnings), }; }; exports.formatGqlSwapper = formatGqlSwapper; var protectedFormatSwapper = function (gqlSwapper) { return { type: 'Swapper', address: gqlSwapper.address, beneficiary: { address: gqlSwapper.beneficiary, }, tokenToBeneficiary: { address: gqlSwapper.tokenToBeneficiary, }, oracle: gqlSwapper.oracle, owner: gqlSwapper.owner !== viem_1.zeroAddress ? { address: gqlSwapper.owner, } : null, paused: gqlSwapper.paused, defaultScaledOfferFactorPercent: (1e6 - gqlSwapper.defaultScaledOfferFactor) / 1e4, scaledOfferFactorOverrides: Object.values(gqlSwapper.scaledOfferFactorOverrides).map(function (scaleOfferFactorOverride) { var baseToken = (0, viem_1.getAddress)(scaleOfferFactorOverride.base); var quoteToken = (0, viem_1.getAddress)(scaleOfferFactorOverride.quote); var scaledOfferFactorPercent = (1e6 - scaleOfferFactorOverride.scaledOfferFactor) / 1e4; return { baseToken: { address: baseToken, }, quoteToken: { address: quoteToken, }, scaledOfferFactorPercent: scaledOfferFactorPercent, }; }), }; }; exports.protectedFormatSwapper = protectedFormatSwapper; var templateObject_1, templateObject_2, templateObject_3, templateObject_4, templateObject_5; //# sourceMappingURL=swapper.js.map