@0xsplits/splits-sdk
Version:
SDK for the 0xSplits protocol
158 lines • 10.8 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.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