@shapeshiftoss/swapper 20.6.0 → 20.6.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/.tsbuildinfo +1 -1
- package/dist/cjs/constants.js +8 -0
- package/dist/cjs/index.d.ts +1 -0
- package/dist/cjs/index.js +1 -0
- package/dist/cjs/swappers/AcrossSwapper/constant.js +0 -7
- package/dist/cjs/swappers/BobGatewaySwapper/utils/constants.d.ts +1 -1
- package/dist/cjs/swappers/BobGatewaySwapper/utils/constants.js +0 -1
- package/dist/cjs/swappers/ChainflipSwapper/constants.d.ts +1 -1
- package/dist/cjs/swappers/ChainflipSwapper/constants.js +11 -1
- package/dist/cjs/swappers/ChainflipSwapper/types.d.ts +2 -1
- package/dist/cjs/swappers/ChainflipSwapper/types.js +1 -0
- package/dist/cjs/swappers/ChainflipSwapper/utils/helpers.d.ts +2 -2
- package/dist/cjs/swappers/DebridgeSwapper/constant.js +0 -4
- package/dist/cjs/swappers/FyndSwapper/utils/fyndService.js +1 -1
- package/dist/cjs/swappers/KyberSwapper/utils/kyberService.js +1 -1
- package/dist/cjs/swappers/PanoraSwapper/PanoraSwapper.d.ts +2 -0
- package/dist/cjs/swappers/PanoraSwapper/PanoraSwapper.js +5 -0
- package/dist/cjs/swappers/PanoraSwapper/endpoints.d.ts +2 -0
- package/dist/cjs/swappers/PanoraSwapper/endpoints.js +13 -0
- package/dist/cjs/swappers/PanoraSwapper/index.d.ts +2 -0
- package/dist/cjs/swappers/PanoraSwapper/index.js +7 -0
- package/dist/cjs/swappers/PanoraSwapper/swapperApi/getPanoraTradeQuote.d.ts +4 -0
- package/dist/cjs/swappers/PanoraSwapper/swapperApi/getPanoraTradeQuote.js +42 -0
- package/dist/cjs/swappers/PanoraSwapper/swapperApi/getPanoraTradeRate.d.ts +4 -0
- package/dist/cjs/swappers/PanoraSwapper/swapperApi/getPanoraTradeRate.js +36 -0
- package/dist/cjs/swappers/PanoraSwapper/types.d.ts +35 -0
- package/dist/cjs/swappers/PanoraSwapper/types.js +2 -0
- package/dist/cjs/swappers/PanoraSwapper/utils/constants.d.ts +2 -0
- package/dist/cjs/swappers/PanoraSwapper/utils/constants.js +6 -0
- package/dist/cjs/swappers/PanoraSwapper/utils/fetchFromPanora.d.ts +7 -0
- package/dist/cjs/swappers/PanoraSwapper/utils/fetchFromPanora.js +15 -0
- package/dist/cjs/swappers/PanoraSwapper/utils/getPanoraStepData.d.ts +19 -0
- package/dist/cjs/swappers/PanoraSwapper/utils/getPanoraStepData.js +41 -0
- package/dist/cjs/swappers/PanoraSwapper/utils/getPanoraTradeContext.d.ts +17 -0
- package/dist/cjs/swappers/PanoraSwapper/utils/getPanoraTradeContext.js +63 -0
- package/dist/cjs/swappers/PanoraSwapper/utils/helpers.d.ts +25 -0
- package/dist/cjs/swappers/PanoraSwapper/utils/helpers.js +129 -0
- package/dist/cjs/swappers/PanoraSwapper/utils/helpers.test.d.ts +1 -0
- package/dist/cjs/swappers/PanoraSwapper/utils/helpers.test.js +40 -0
- package/dist/cjs/swappers/PanoraSwapper/utils/panoraService.d.ts +5 -0
- package/dist/cjs/swappers/PanoraSwapper/utils/panoraService.js +10 -0
- package/dist/cjs/swappers/RelaySwapper/constant.js +0 -14
- package/dist/cjs/swappers/RelaySwapper/utils/relayTokenToAssetId.js +0 -70
- package/dist/cjs/swappers/SymbiosisSwapper/utils/constants.d.ts +0 -1
- package/dist/cjs/swappers/SymbiosisSwapper/utils/constants.js +1 -10
- package/dist/cjs/swappers/SymbiosisSwapper/utils/symbiosisService.js +1 -3
- package/dist/cjs/swappers/ZrxSwapper/utils/zrxService.js +1 -1
- package/dist/cjs/types.d.ts +3 -1
- package/dist/cjs/types.js +1 -0
- package/dist/cjs/utils/aptos/checkAptosSwapStatus.d.ts +4 -0
- package/dist/cjs/utils/aptos/checkAptosSwapStatus.js +27 -0
- package/dist/cjs/utils/aptos/getAptosNetworkFeeCryptoBaseUnit.d.ts +11 -0
- package/dist/cjs/utils/aptos/getAptosNetworkFeeCryptoBaseUnit.js +12 -0
- package/dist/cjs/utils/aptos/index.d.ts +2 -0
- package/dist/cjs/utils/aptos/index.js +2 -0
- package/dist/cjs/utils/cowswap/constants.js +0 -1
- package/dist/cjs/utils/cowswap/index.js +0 -2
- package/dist/cjs/utils/helpers.js +1 -0
- package/dist/cjs/utils/helpers.test.js +1 -0
- package/dist/esm/.tsbuildinfo +1 -1
- package/dist/esm/constants.js +8 -0
- package/dist/esm/index.d.ts +1 -0
- package/dist/esm/index.js +1 -0
- package/dist/esm/swappers/AcrossSwapper/constant.js +2 -9
- package/dist/esm/swappers/BobGatewaySwapper/utils/constants.d.ts +1 -1
- package/dist/esm/swappers/BobGatewaySwapper/utils/constants.js +1 -2
- package/dist/esm/swappers/ChainflipSwapper/constants.d.ts +1 -1
- package/dist/esm/swappers/ChainflipSwapper/constants.js +12 -2
- package/dist/esm/swappers/ChainflipSwapper/types.d.ts +2 -1
- package/dist/esm/swappers/ChainflipSwapper/types.js +1 -0
- package/dist/esm/swappers/ChainflipSwapper/utils/helpers.d.ts +2 -2
- package/dist/esm/swappers/DebridgeSwapper/constant.js +2 -6
- package/dist/esm/swappers/FyndSwapper/utils/fyndService.js +1 -1
- package/dist/esm/swappers/KyberSwapper/utils/kyberService.js +1 -1
- package/dist/esm/swappers/PanoraSwapper/PanoraSwapper.d.ts +2 -0
- package/dist/esm/swappers/PanoraSwapper/PanoraSwapper.js +2 -0
- package/dist/esm/swappers/PanoraSwapper/endpoints.d.ts +2 -0
- package/dist/esm/swappers/PanoraSwapper/endpoints.js +10 -0
- package/dist/esm/swappers/PanoraSwapper/index.d.ts +2 -0
- package/dist/esm/swappers/PanoraSwapper/index.js +2 -0
- package/dist/esm/swappers/PanoraSwapper/swapperApi/getPanoraTradeQuote.d.ts +4 -0
- package/dist/esm/swappers/PanoraSwapper/swapperApi/getPanoraTradeQuote.js +38 -0
- package/dist/esm/swappers/PanoraSwapper/swapperApi/getPanoraTradeRate.d.ts +4 -0
- package/dist/esm/swappers/PanoraSwapper/swapperApi/getPanoraTradeRate.js +32 -0
- package/dist/esm/swappers/PanoraSwapper/types.d.ts +35 -0
- package/dist/esm/swappers/PanoraSwapper/types.js +1 -0
- package/dist/esm/swappers/PanoraSwapper/utils/constants.d.ts +2 -0
- package/dist/esm/swappers/PanoraSwapper/utils/constants.js +3 -0
- package/dist/esm/swappers/PanoraSwapper/utils/fetchFromPanora.d.ts +7 -0
- package/dist/esm/swappers/PanoraSwapper/utils/fetchFromPanora.js +11 -0
- package/dist/esm/swappers/PanoraSwapper/utils/getPanoraStepData.d.ts +19 -0
- package/dist/esm/swappers/PanoraSwapper/utils/getPanoraStepData.js +37 -0
- package/dist/esm/swappers/PanoraSwapper/utils/getPanoraTradeContext.d.ts +17 -0
- package/dist/esm/swappers/PanoraSwapper/utils/getPanoraTradeContext.js +59 -0
- package/dist/esm/swappers/PanoraSwapper/utils/helpers.d.ts +25 -0
- package/dist/esm/swappers/PanoraSwapper/utils/helpers.js +117 -0
- package/dist/esm/swappers/PanoraSwapper/utils/helpers.test.d.ts +1 -0
- package/dist/esm/swappers/PanoraSwapper/utils/helpers.test.js +38 -0
- package/dist/esm/swappers/PanoraSwapper/utils/panoraService.d.ts +5 -0
- package/dist/esm/swappers/PanoraSwapper/utils/panoraService.js +4 -0
- package/dist/esm/swappers/RelaySwapper/constant.js +2 -16
- package/dist/esm/swappers/RelaySwapper/utils/relayTokenToAssetId.js +0 -70
- package/dist/esm/swappers/SymbiosisSwapper/utils/constants.d.ts +0 -1
- package/dist/esm/swappers/SymbiosisSwapper/utils/constants.js +1 -10
- package/dist/esm/swappers/SymbiosisSwapper/utils/symbiosisService.js +1 -3
- package/dist/esm/swappers/ZrxSwapper/utils/zrxService.js +1 -1
- package/dist/esm/types.d.ts +3 -1
- package/dist/esm/types.js +1 -0
- package/dist/esm/utils/aptos/checkAptosSwapStatus.d.ts +4 -0
- package/dist/esm/utils/aptos/checkAptosSwapStatus.js +23 -0
- package/dist/esm/utils/aptos/getAptosNetworkFeeCryptoBaseUnit.d.ts +11 -0
- package/dist/esm/utils/aptos/getAptosNetworkFeeCryptoBaseUnit.js +8 -0
- package/dist/esm/utils/aptos/index.d.ts +2 -0
- package/dist/esm/utils/aptos/index.js +2 -0
- package/dist/esm/utils/cowswap/constants.js +0 -1
- package/dist/esm/utils/cowswap/index.js +0 -2
- package/dist/esm/utils/helpers.js +2 -1
- package/dist/esm/utils/helpers.test.js +1 -0
- package/package.json +6 -6
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.getPanoraTradeAmounts = exports.validatePanoraSwap = exports.getPanoraRequestError = exports.getPanoraFeeParams = exports.assetIdToPanoraToken = exports.assertValidTrade = void 0;
|
|
7
|
+
const caip_1 = require("@shapeshiftoss/caip");
|
|
8
|
+
const chain_adapters_1 = require("@shapeshiftoss/chain-adapters");
|
|
9
|
+
const utils_1 = require("@shapeshiftoss/utils");
|
|
10
|
+
const monads_1 = require("@sniptt/monads");
|
|
11
|
+
const axios_1 = __importDefault(require("axios"));
|
|
12
|
+
const types_1 = require("../../../types");
|
|
13
|
+
const utils_2 = require("../../../utils");
|
|
14
|
+
const helpers_1 = require("../../../utils/helpers");
|
|
15
|
+
const invalidResponse = (message, details) => (0, utils_2.makeSwapErrorRight)({ message, details, code: types_1.TradeQuoteError.InvalidResponse });
|
|
16
|
+
const assertValidTrade = ({ sellAsset, buyAsset, }) => {
|
|
17
|
+
if (sellAsset.chainId !== buyAsset.chainId) {
|
|
18
|
+
return (0, monads_1.Err)((0, utils_2.makeSwapErrorRight)({
|
|
19
|
+
message: 'Panora does not support cross-chain trades',
|
|
20
|
+
code: types_1.TradeQuoteError.CrossChainNotSupported,
|
|
21
|
+
}));
|
|
22
|
+
}
|
|
23
|
+
if (sellAsset.chainId !== caip_1.aptosChainId) {
|
|
24
|
+
return (0, monads_1.Err)((0, utils_2.makeSwapErrorRight)({
|
|
25
|
+
message: 'Panora only supports Aptos',
|
|
26
|
+
code: types_1.TradeQuoteError.UnsupportedChain,
|
|
27
|
+
}));
|
|
28
|
+
}
|
|
29
|
+
return (0, monads_1.Ok)(true);
|
|
30
|
+
};
|
|
31
|
+
exports.assertValidTrade = assertValidTrade;
|
|
32
|
+
const assetIdToPanoraToken = (assetId) => {
|
|
33
|
+
const { assetNamespace, assetReference } = (0, caip_1.fromAssetId)(assetId);
|
|
34
|
+
return assetNamespace === caip_1.ASSET_NAMESPACE.slip44 ? chain_adapters_1.aptos.APT_COIN_TYPE : assetReference;
|
|
35
|
+
};
|
|
36
|
+
exports.assetIdToPanoraToken = assetIdToPanoraToken;
|
|
37
|
+
const getPanoraFeeParams = (affiliateBps) => {
|
|
38
|
+
if ((0, utils_1.bnOrZero)(affiliateBps).lte(0))
|
|
39
|
+
return {};
|
|
40
|
+
return {
|
|
41
|
+
integratorFeePercentage: (0, utils_1.bn)(affiliateBps).div(100).toNumber(),
|
|
42
|
+
integratorFeeAddress: (0, helpers_1.getTreasuryAddressFromChainId)(caip_1.aptosChainId),
|
|
43
|
+
};
|
|
44
|
+
};
|
|
45
|
+
exports.getPanoraFeeParams = getPanoraFeeParams;
|
|
46
|
+
const getPanoraRequestError = (error) => {
|
|
47
|
+
const { cause } = error;
|
|
48
|
+
if (!axios_1.default.isAxiosError(cause))
|
|
49
|
+
return error;
|
|
50
|
+
const status = cause.response?.status;
|
|
51
|
+
if (status === 429) {
|
|
52
|
+
return (0, utils_2.makeSwapErrorRight)({
|
|
53
|
+
message: 'Panora rate limit exceeded',
|
|
54
|
+
code: types_1.TradeQuoteError.RateLimitExceeded,
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
const body = cause.response?.data;
|
|
58
|
+
const message = typeof body === 'object' &&
|
|
59
|
+
body !== null &&
|
|
60
|
+
'message' in body &&
|
|
61
|
+
typeof body.message === 'string'
|
|
62
|
+
? body.message
|
|
63
|
+
: cause.message;
|
|
64
|
+
return (0, utils_2.makeSwapErrorRight)({
|
|
65
|
+
message: `Panora request failed: ${message}`,
|
|
66
|
+
code: types_1.TradeQuoteError.QueryFailed,
|
|
67
|
+
cause,
|
|
68
|
+
});
|
|
69
|
+
};
|
|
70
|
+
exports.getPanoraRequestError = getPanoraRequestError;
|
|
71
|
+
const validatePanoraSwap = ({ response, sellAsset, buyAsset, }) => {
|
|
72
|
+
const { fromToken, toToken, feeToken, quotes } = response;
|
|
73
|
+
const quote = quotes?.[0];
|
|
74
|
+
if (!quote) {
|
|
75
|
+
return (0, monads_1.Err)((0, utils_2.makeSwapErrorRight)({
|
|
76
|
+
message: 'Panora returned no route',
|
|
77
|
+
code: types_1.TradeQuoteError.NoRouteFound,
|
|
78
|
+
}));
|
|
79
|
+
}
|
|
80
|
+
// Panora amounts are in whole token units, so a decimals mismatch would sell and quote the wrong base unit amounts
|
|
81
|
+
if (fromToken.decimals !== sellAsset.precision || toToken.decimals !== buyAsset.precision) {
|
|
82
|
+
return (0, monads_1.Err)((0, utils_2.makeSwapErrorRight)({
|
|
83
|
+
message: 'Panora token decimals do not match the trade assets',
|
|
84
|
+
code: types_1.TradeQuoteError.UnsupportedTradePair,
|
|
85
|
+
details: { fromToken, toToken },
|
|
86
|
+
}));
|
|
87
|
+
}
|
|
88
|
+
if (!chain_adapters_1.aptos.addressesMatch(feeToken.address, toToken.address)) {
|
|
89
|
+
return (0, monads_1.Err)(invalidResponse('Panora charged its fee in a token other than the buy asset'));
|
|
90
|
+
}
|
|
91
|
+
const maybePayload = (() => {
|
|
92
|
+
try {
|
|
93
|
+
return (0, monads_1.Ok)(chain_adapters_1.aptos.extractEntryFunctionPayload(quote.rawTransaction.bcs));
|
|
94
|
+
}
|
|
95
|
+
catch (error) {
|
|
96
|
+
return (0, monads_1.Err)((0, utils_2.makeTradeStepBuildFailedErr)('validatePanoraSwap', error));
|
|
97
|
+
}
|
|
98
|
+
})();
|
|
99
|
+
if (maybePayload.isErr())
|
|
100
|
+
return (0, monads_1.Err)(maybePayload.unwrapErr());
|
|
101
|
+
return (0, monads_1.Ok)({ quote, payload: maybePayload.unwrap() });
|
|
102
|
+
};
|
|
103
|
+
exports.validatePanoraSwap = validatePanoraSwap;
|
|
104
|
+
const getPanoraTradeAmounts = ({ input, quote, }) => {
|
|
105
|
+
const { sellAsset, buyAsset, sellAmountIncludingProtocolFeesCryptoBaseUnit } = input;
|
|
106
|
+
// toTokenAmount is net of the integrator fee, which Panora charges in the buy asset
|
|
107
|
+
const buyAmountAfterFeesCryptoBaseUnit = (0, utils_1.toBaseUnit)(quote.toTokenAmount, buyAsset.precision);
|
|
108
|
+
const affiliateFeeCryptoBaseUnit = (0, utils_1.toBaseUnit)(quote.feeTokenAmount, buyAsset.precision);
|
|
109
|
+
return {
|
|
110
|
+
rate: (0, utils_2.getInputOutputRate)({
|
|
111
|
+
sellAmountCryptoBaseUnit: sellAmountIncludingProtocolFeesCryptoBaseUnit,
|
|
112
|
+
buyAmountCryptoBaseUnit: buyAmountAfterFeesCryptoBaseUnit,
|
|
113
|
+
sellAsset,
|
|
114
|
+
buyAsset,
|
|
115
|
+
}),
|
|
116
|
+
buyAmountBeforeFeesCryptoBaseUnit: (0, utils_1.bn)(buyAmountAfterFeesCryptoBaseUnit)
|
|
117
|
+
.plus(affiliateFeeCryptoBaseUnit)
|
|
118
|
+
.toFixed(),
|
|
119
|
+
buyAmountAfterFeesCryptoBaseUnit,
|
|
120
|
+
affiliateFee: (0, utils_1.bn)(affiliateFeeCryptoBaseUnit).gt(0)
|
|
121
|
+
? {
|
|
122
|
+
assetId: buyAsset.assetId,
|
|
123
|
+
amountCryptoBaseUnit: affiliateFeeCryptoBaseUnit,
|
|
124
|
+
asset: buyAsset,
|
|
125
|
+
}
|
|
126
|
+
: undefined,
|
|
127
|
+
};
|
|
128
|
+
};
|
|
129
|
+
exports.getPanoraTradeAmounts = getPanoraTradeAmounts;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const caip_1 = require("@shapeshiftoss/caip");
|
|
4
|
+
const vitest_1 = require("vitest");
|
|
5
|
+
const helpers_1 = require("./helpers");
|
|
6
|
+
const APT = { assetId: caip_1.aptosAssetId, chainId: caip_1.aptosChainId, precision: 8, symbol: 'APT' };
|
|
7
|
+
const USDC = {
|
|
8
|
+
assetId: 'aptos:1/fungible:0xbae207659db88bea0cbead6da0ed00aac12edcdda169e591cd41c94180b46f3b',
|
|
9
|
+
chainId: caip_1.aptosChainId,
|
|
10
|
+
precision: 6,
|
|
11
|
+
symbol: 'USDC',
|
|
12
|
+
};
|
|
13
|
+
// 10 APT -> USDC with a 0.6% integrator fee, from a live /swap response
|
|
14
|
+
const quote = { toTokenAmount: '5.573706', feeTokenAmount: '0.033644' };
|
|
15
|
+
(0, vitest_1.describe)('validatePanoraSwap', () => {
|
|
16
|
+
(0, vitest_1.it)('rejects tokens whose decimals do not match the trade assets', () => {
|
|
17
|
+
const response = {
|
|
18
|
+
fromToken: { address: '0xa', decimals: 8 },
|
|
19
|
+
toToken: { address: USDC.assetId, decimals: 8 },
|
|
20
|
+
feeToken: { address: USDC.assetId, decimals: 8 },
|
|
21
|
+
quotes: [quote],
|
|
22
|
+
};
|
|
23
|
+
const result = (0, helpers_1.validatePanoraSwap)({ response, sellAsset: APT, buyAsset: USDC });
|
|
24
|
+
(0, vitest_1.expect)(result.unwrapErr().code).toBe('UnsupportedTradePair');
|
|
25
|
+
});
|
|
26
|
+
});
|
|
27
|
+
(0, vitest_1.describe)('getPanoraTradeAmounts', () => {
|
|
28
|
+
(0, vitest_1.it)('adds the integrator fee back for the before-fees amount and reports it exactly', () => {
|
|
29
|
+
const input = {
|
|
30
|
+
sellAsset: APT,
|
|
31
|
+
buyAsset: USDC,
|
|
32
|
+
sellAmountIncludingProtocolFeesCryptoBaseUnit: '1000000000',
|
|
33
|
+
};
|
|
34
|
+
const amounts = (0, helpers_1.getPanoraTradeAmounts)({ input, quote });
|
|
35
|
+
(0, vitest_1.expect)(amounts.buyAmountAfterFeesCryptoBaseUnit).toBe('5573706');
|
|
36
|
+
(0, vitest_1.expect)(amounts.buyAmountBeforeFeesCryptoBaseUnit).toBe('5607350');
|
|
37
|
+
(0, vitest_1.expect)(amounts.affiliateFee?.amountCryptoBaseUnit).toBe('33644');
|
|
38
|
+
(0, vitest_1.expect)(amounts.affiliateFee?.assetId).toBe(USDC.assetId);
|
|
39
|
+
});
|
|
40
|
+
});
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export declare const panoraService: {
|
|
2
|
+
get: <T = any>(url: string, config?: import("axios").AxiosRequestConfig<any> | undefined) => Promise<import("@sniptt/monads").Result<import("axios").AxiosResponse<T, any, {}>, import("../../..").SwapErrorRight>>;
|
|
3
|
+
post: <T_1 = any>(url: string, data: any, config?: import("axios").AxiosRequestConfig<any> | undefined) => Promise<import("@sniptt/monads").Result<import("axios").AxiosResponse<T_1, any, {}>, import("../../..").SwapErrorRight>>;
|
|
4
|
+
delete: <T_2 = any>(url: string, data: any, config?: import("axios").AxiosRequestConfig<any> | undefined) => Promise<import("@sniptt/monads").Result<import("axios").AxiosResponse<T_2, any, {}>, import("../../..").SwapErrorRight>>;
|
|
5
|
+
};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.panoraService = void 0;
|
|
7
|
+
const axios_1 = __importDefault(require("axios"));
|
|
8
|
+
const utils_1 = require("../../../utils");
|
|
9
|
+
const constants_1 = require("./constants");
|
|
10
|
+
exports.panoraService = (0, utils_1.makeSwapperAxiosServiceMonadic)(axios_1.default.create({ baseURL: constants_1.PANORA_API_URL, timeout: 15_000 }));
|
|
@@ -30,26 +30,12 @@ exports.chainIdToRelayChainId = {
|
|
|
30
30
|
[caip_1.megaethChainId]: chains_1.megaeth.id,
|
|
31
31
|
[caip_1.plasmaChainId]: chains_1.plasma.id,
|
|
32
32
|
[caip_1.katanaChainId]: chains_1.katana.id,
|
|
33
|
-
[caip_1.etherealChainId]: 5064014,
|
|
34
33
|
[caip_1.celoChainId]: chains_1.celo.id,
|
|
35
|
-
[caip_1.flowEvmChainId]: chains_1.flowMainnet.id,
|
|
36
|
-
[caip_1.plumeChainId]: chains_1.plumeMainnet.id,
|
|
37
|
-
[caip_1.storyChainId]: chains_1.story.id,
|
|
38
|
-
[caip_1.zkSyncEraChainId]: chains_1.zksync.id,
|
|
39
|
-
[caip_1.blastChainId]: chains_1.blast.id,
|
|
40
|
-
[caip_1.worldChainChainId]: chains_1.worldchain.id,
|
|
41
|
-
[caip_1.hemiChainId]: chains_1.hemi.id,
|
|
42
|
-
[caip_1.lineaChainId]: chains_1.linea.id,
|
|
43
|
-
[caip_1.berachainChainId]: chains_1.berachain.id,
|
|
44
|
-
[caip_1.scrollChainId]: chains_1.scroll.id,
|
|
45
34
|
[caip_1.cronosChainId]: chains_1.cronos.id,
|
|
46
35
|
[caip_1.sonicChainId]: chains_1.sonic.id,
|
|
47
36
|
[caip_1.unichainChainId]: chains_1.unichain.id,
|
|
48
37
|
[caip_1.bobChainId]: chains_1.bob.id,
|
|
49
|
-
[caip_1.modeChainId]: chains_1.mode.id,
|
|
50
|
-
[caip_1.soneiumChainId]: chains_1.soneium.id,
|
|
51
38
|
[caip_1.seiChainId]: chains_1.sei.id,
|
|
52
|
-
[caip_1.abstractChainId]: chains_1.abstract.id,
|
|
53
39
|
[caip_1.robinhoodChainId]: chains_1.robinhood.id,
|
|
54
40
|
[caip_1.elysiumChainId]: 99901,
|
|
55
41
|
};
|
|
@@ -127,71 +127,16 @@ const relayTokenToAssetId = (relayToken) => {
|
|
|
127
127
|
assetReference: caip_1.ASSET_REFERENCE.MegaEth,
|
|
128
128
|
assetNamespace: caip_1.ASSET_NAMESPACE.slip44,
|
|
129
129
|
};
|
|
130
|
-
case caip_1.CHAIN_REFERENCE.BerachainMainnet:
|
|
131
|
-
return {
|
|
132
|
-
assetReference: caip_1.ASSET_REFERENCE.Berachain,
|
|
133
|
-
assetNamespace: caip_1.ASSET_NAMESPACE.slip44,
|
|
134
|
-
};
|
|
135
130
|
case caip_1.CHAIN_REFERENCE.KatanaMainnet:
|
|
136
131
|
return {
|
|
137
132
|
assetReference: caip_1.ASSET_REFERENCE.Katana,
|
|
138
133
|
assetNamespace: caip_1.ASSET_NAMESPACE.slip44,
|
|
139
134
|
};
|
|
140
|
-
case caip_1.CHAIN_REFERENCE.EtherealMainnet:
|
|
141
|
-
return {
|
|
142
|
-
assetReference: caip_1.ASSET_REFERENCE.Ethereal,
|
|
143
|
-
assetNamespace: caip_1.ASSET_NAMESPACE.slip44,
|
|
144
|
-
};
|
|
145
135
|
case caip_1.CHAIN_REFERENCE.CeloMainnet:
|
|
146
136
|
return {
|
|
147
137
|
assetReference: caip_1.ASSET_REFERENCE.Celo,
|
|
148
138
|
assetNamespace: caip_1.ASSET_NAMESPACE.slip44,
|
|
149
139
|
};
|
|
150
|
-
case caip_1.CHAIN_REFERENCE.FlowEvmMainnet:
|
|
151
|
-
return {
|
|
152
|
-
assetReference: caip_1.ASSET_REFERENCE.FlowEvm,
|
|
153
|
-
assetNamespace: caip_1.ASSET_NAMESPACE.slip44,
|
|
154
|
-
};
|
|
155
|
-
case caip_1.CHAIN_REFERENCE.PlumeMainnet:
|
|
156
|
-
return {
|
|
157
|
-
assetReference: caip_1.ASSET_REFERENCE.Plume,
|
|
158
|
-
assetNamespace: caip_1.ASSET_NAMESPACE.slip44,
|
|
159
|
-
};
|
|
160
|
-
case caip_1.CHAIN_REFERENCE.StoryMainnet:
|
|
161
|
-
return {
|
|
162
|
-
assetReference: caip_1.ASSET_REFERENCE.Story,
|
|
163
|
-
assetNamespace: caip_1.ASSET_NAMESPACE.slip44,
|
|
164
|
-
};
|
|
165
|
-
case caip_1.CHAIN_REFERENCE.ZkSyncEraMainnet:
|
|
166
|
-
return {
|
|
167
|
-
assetReference: caip_1.ASSET_REFERENCE.ZkSyncEra,
|
|
168
|
-
assetNamespace: caip_1.ASSET_NAMESPACE.slip44,
|
|
169
|
-
};
|
|
170
|
-
case caip_1.CHAIN_REFERENCE.BlastMainnet:
|
|
171
|
-
return {
|
|
172
|
-
assetReference: caip_1.ASSET_REFERENCE.Blast,
|
|
173
|
-
assetNamespace: caip_1.ASSET_NAMESPACE.slip44,
|
|
174
|
-
};
|
|
175
|
-
case caip_1.CHAIN_REFERENCE.WorldChainMainnet:
|
|
176
|
-
return {
|
|
177
|
-
assetReference: caip_1.ASSET_REFERENCE.WorldChain,
|
|
178
|
-
assetNamespace: caip_1.ASSET_NAMESPACE.slip44,
|
|
179
|
-
};
|
|
180
|
-
case caip_1.CHAIN_REFERENCE.HemiMainnet:
|
|
181
|
-
return {
|
|
182
|
-
assetReference: caip_1.ASSET_REFERENCE.Hemi,
|
|
183
|
-
assetNamespace: caip_1.ASSET_NAMESPACE.slip44,
|
|
184
|
-
};
|
|
185
|
-
case caip_1.CHAIN_REFERENCE.LineaMainnet:
|
|
186
|
-
return {
|
|
187
|
-
assetReference: caip_1.ASSET_REFERENCE.Linea,
|
|
188
|
-
assetNamespace: caip_1.ASSET_NAMESPACE.slip44,
|
|
189
|
-
};
|
|
190
|
-
case caip_1.CHAIN_REFERENCE.ScrollMainnet:
|
|
191
|
-
return {
|
|
192
|
-
assetReference: caip_1.ASSET_REFERENCE.Scroll,
|
|
193
|
-
assetNamespace: caip_1.ASSET_NAMESPACE.slip44,
|
|
194
|
-
};
|
|
195
140
|
case caip_1.CHAIN_REFERENCE.CronosMainnet:
|
|
196
141
|
return {
|
|
197
142
|
assetReference: caip_1.ASSET_REFERENCE.Cronos,
|
|
@@ -212,26 +157,11 @@ const relayTokenToAssetId = (relayToken) => {
|
|
|
212
157
|
assetReference: caip_1.ASSET_REFERENCE.Bob,
|
|
213
158
|
assetNamespace: caip_1.ASSET_NAMESPACE.slip44,
|
|
214
159
|
};
|
|
215
|
-
case caip_1.CHAIN_REFERENCE.ModeMainnet:
|
|
216
|
-
return {
|
|
217
|
-
assetReference: caip_1.ASSET_REFERENCE.Mode,
|
|
218
|
-
assetNamespace: caip_1.ASSET_NAMESPACE.slip44,
|
|
219
|
-
};
|
|
220
|
-
case caip_1.CHAIN_REFERENCE.SoneiumMainnet:
|
|
221
|
-
return {
|
|
222
|
-
assetReference: caip_1.ASSET_REFERENCE.Soneium,
|
|
223
|
-
assetNamespace: caip_1.ASSET_NAMESPACE.slip44,
|
|
224
|
-
};
|
|
225
160
|
case caip_1.CHAIN_REFERENCE.SeiMainnet:
|
|
226
161
|
return {
|
|
227
162
|
assetReference: caip_1.ASSET_REFERENCE.Sei,
|
|
228
163
|
assetNamespace: caip_1.ASSET_NAMESPACE.slip44,
|
|
229
164
|
};
|
|
230
|
-
case caip_1.CHAIN_REFERENCE.AbstractMainnet:
|
|
231
|
-
return {
|
|
232
|
-
assetReference: caip_1.ASSET_REFERENCE.Abstract,
|
|
233
|
-
assetNamespace: caip_1.ASSET_NAMESPACE.slip44,
|
|
234
|
-
};
|
|
235
165
|
case caip_1.CHAIN_REFERENCE.RobinhoodMainnet:
|
|
236
166
|
return {
|
|
237
167
|
assetReference: caip_1.ASSET_REFERENCE.Robinhood,
|
|
@@ -11,7 +11,6 @@ export declare const SYMBIOSIS_MAX_SLIPPAGE_BPS = 1000;
|
|
|
11
11
|
export declare const SYMBIOSIS_PARTNER_ADDRESS = "0xF5AA59151bE6515C4Ca68A0282CF68B3eA4846fC";
|
|
12
12
|
export declare const SYMBIOSIS_PARTNER_FEE_BPS = "60";
|
|
13
13
|
export declare const SYMBIOSIS_PARTNER_FEE_DESCRIPTION = "Partner fee";
|
|
14
|
-
export declare const SYMBIOSIS_PARTNER_ID = "shapeshift";
|
|
15
14
|
export declare const DEFAULT_SYMBIOSIS_EVM_USER_ADDRESS = "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045";
|
|
16
15
|
export declare const DEFAULT_SYMBIOSIS_TRON_USER_ADDRESS = "TLa2f6VPqDgRE67v1736s7bJ8Ray5wYjU7";
|
|
17
16
|
export declare const SYMBIOSIS_TRON_BRIDGE_ENERGY = "470000";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.SYMBIOSIS_EXPLORER_URL = exports.SYMBIOSIS_TRON_SOURCE_SWAP_ENERGY = exports.SYMBIOSIS_TRON_BRIDGE_ENERGY = exports.DEFAULT_SYMBIOSIS_TRON_USER_ADDRESS = exports.DEFAULT_SYMBIOSIS_EVM_USER_ADDRESS = exports.
|
|
3
|
+
exports.SYMBIOSIS_EXPLORER_URL = exports.SYMBIOSIS_TRON_SOURCE_SWAP_ENERGY = exports.SYMBIOSIS_TRON_BRIDGE_ENERGY = exports.DEFAULT_SYMBIOSIS_TRON_USER_ADDRESS = exports.DEFAULT_SYMBIOSIS_EVM_USER_ADDRESS = exports.SYMBIOSIS_PARTNER_FEE_DESCRIPTION = exports.SYMBIOSIS_PARTNER_FEE_BPS = exports.SYMBIOSIS_PARTNER_ADDRESS = exports.SYMBIOSIS_MAX_SLIPPAGE_BPS = exports.SYMBIOSIS_MIN_SLIPPAGE_BPS = exports.SYMBIOSIS_SEMI_CENTRALIZED_LABEL = exports.SYMBIOSIS_PARTNER_SWAP_LABEL = exports.SYMBIOSIS_SRC_CHAIN_SWAP_LABEL = exports.SYMBIOSIS_CROSSCHAIN_SWAP_KIND = exports.SYMBIOSIS_DISABLED_PROVIDERS = exports.symbiosisChainIdToChainId = exports.chainIdToSymbiosisChainId = void 0;
|
|
4
4
|
const caip_1 = require("@shapeshiftoss/caip");
|
|
5
5
|
const SYMBIOSIS_TRON_CHAIN_ID = 728126428;
|
|
6
6
|
const SYMBIOSIS_SUPPORTED_EVM_CHAIN_IDS = [
|
|
@@ -12,18 +12,11 @@ const SYMBIOSIS_SUPPORTED_EVM_CHAIN_IDS = [
|
|
|
12
12
|
caip_1.optimismChainId,
|
|
13
13
|
caip_1.baseChainId,
|
|
14
14
|
caip_1.gnosisChainId,
|
|
15
|
-
caip_1.zkSyncEraChainId,
|
|
16
|
-
caip_1.lineaChainId,
|
|
17
|
-
caip_1.scrollChainId,
|
|
18
15
|
caip_1.mantleChainId,
|
|
19
|
-
caip_1.modeChainId,
|
|
20
16
|
caip_1.seiChainId,
|
|
21
17
|
caip_1.cronosChainId,
|
|
22
18
|
caip_1.sonicChainId,
|
|
23
|
-
caip_1.abstractChainId,
|
|
24
|
-
caip_1.berachainChainId,
|
|
25
19
|
caip_1.unichainChainId,
|
|
26
|
-
caip_1.soneiumChainId,
|
|
27
20
|
caip_1.hyperEvmChainId,
|
|
28
21
|
caip_1.katanaChainId,
|
|
29
22
|
caip_1.plasmaChainId,
|
|
@@ -54,8 +47,6 @@ exports.SYMBIOSIS_MAX_SLIPPAGE_BPS = 1000;
|
|
|
54
47
|
exports.SYMBIOSIS_PARTNER_ADDRESS = '0xF5AA59151bE6515C4Ca68A0282CF68B3eA4846fC';
|
|
55
48
|
exports.SYMBIOSIS_PARTNER_FEE_BPS = '60';
|
|
56
49
|
exports.SYMBIOSIS_PARTNER_FEE_DESCRIPTION = 'Partner fee';
|
|
57
|
-
// Sent as X-Partner-Id so Symbiosis attributes our swaps to this client id in its explorer and metrics
|
|
58
|
-
exports.SYMBIOSIS_PARTNER_ID = 'shapeshift';
|
|
59
50
|
exports.DEFAULT_SYMBIOSIS_EVM_USER_ADDRESS = '0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045';
|
|
60
51
|
exports.DEFAULT_SYMBIOSIS_TRON_USER_ADDRESS = 'TLa2f6VPqDgRE67v1736s7bJ8Ray5wYjU7';
|
|
61
52
|
// metaRoute energy over 31 mainnet calls on 2026-10-05: up to 467,826 bridging the sell token, up to 578,456 with a source swap first
|
|
@@ -6,13 +6,11 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
exports.symbiosisService = void 0;
|
|
7
7
|
const axios_1 = __importDefault(require("axios"));
|
|
8
8
|
const utils_1 = require("../../../utils");
|
|
9
|
-
const constants_1 = require("./constants");
|
|
10
9
|
const symbiosisServiceBase = axios_1.default.create({
|
|
11
|
-
timeout:
|
|
10
|
+
timeout: 15_000,
|
|
12
11
|
headers: {
|
|
13
12
|
Accept: 'application/json',
|
|
14
13
|
'Content-Type': 'application/json',
|
|
15
|
-
'X-Partner-Id': constants_1.SYMBIOSIS_PARTNER_ID,
|
|
16
14
|
},
|
|
17
15
|
});
|
|
18
16
|
exports.symbiosisService = (0, utils_1.makeSwapperAxiosServiceMonadic)(symbiosisServiceBase);
|
|
@@ -9,7 +9,7 @@ const utils_1 = require("../../../utils");
|
|
|
9
9
|
const maxAge = 5 * 1000; // 5 seconds
|
|
10
10
|
const cachedUrls = ['/swap/v1/price', '/swap/permit2/price'];
|
|
11
11
|
const axiosConfig = {
|
|
12
|
-
timeout:
|
|
12
|
+
timeout: 15_000,
|
|
13
13
|
};
|
|
14
14
|
const zrxServiceFactory = ({ baseUrl, wrapper = identity_1.default, }) => {
|
|
15
15
|
const cache = (0, utils_1.createCache)(maxAge, cachedUrls, { ...axiosConfig, baseURL: baseUrl });
|
package/dist/cjs/types.d.ts
CHANGED
|
@@ -59,6 +59,7 @@ export type SwapperConfig = {
|
|
|
59
59
|
VITE_DEBRIDGE_API_URL: string;
|
|
60
60
|
VITE_BOB_GATEWAY_API_KEY: string;
|
|
61
61
|
VITE_SYMBIOSIS_API_URL: string;
|
|
62
|
+
VITE_PANORA_API_KEY: string;
|
|
62
63
|
};
|
|
63
64
|
export declare enum SwapperName {
|
|
64
65
|
Thorchain = "THORChain",
|
|
@@ -82,7 +83,8 @@ export declare enum SwapperName {
|
|
|
82
83
|
BobGateway = "BOB Gateway",
|
|
83
84
|
Symbiosis = "Symbiosis",
|
|
84
85
|
Fynd = "Fynd",
|
|
85
|
-
KyberSwap = "KyberSwap"
|
|
86
|
+
KyberSwap = "KyberSwap",
|
|
87
|
+
Panora = "Panora"
|
|
86
88
|
}
|
|
87
89
|
export type SwapSource = SwapperName | `${SwapperName} • ${string}`;
|
|
88
90
|
export type SwapErrorRight = {
|
package/dist/cjs/types.js
CHANGED
|
@@ -25,6 +25,7 @@ var SwapperName;
|
|
|
25
25
|
SwapperName["Symbiosis"] = "Symbiosis";
|
|
26
26
|
SwapperName["Fynd"] = "Fynd";
|
|
27
27
|
SwapperName["KyberSwap"] = "KyberSwap";
|
|
28
|
+
SwapperName["Panora"] = "Panora";
|
|
28
29
|
})(SwapperName || (exports.SwapperName = SwapperName = {}));
|
|
29
30
|
var TradeQuoteError;
|
|
30
31
|
(function (TradeQuoteError) {
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.checkAptosSwapStatus = void 0;
|
|
4
|
+
const caip_1 = require("@shapeshiftoss/caip");
|
|
5
|
+
const unchained_client_1 = require("@shapeshiftoss/unchained-client");
|
|
6
|
+
const utils_1 = require("../../utils");
|
|
7
|
+
const checkAptosSwapStatus = async ({ txHash, assertGetAptosChainAdapter, }) => {
|
|
8
|
+
try {
|
|
9
|
+
const adapter = assertGetAptosChainAdapter(caip_1.aptosChainId);
|
|
10
|
+
const tx = await adapter.getAptosClient().getTransactionByHash({ transactionHash: txHash });
|
|
11
|
+
if (tx.type === 'pending_transaction') {
|
|
12
|
+
return { status: unchained_client_1.TxStatus.Pending, buyTxHash: undefined, message: undefined };
|
|
13
|
+
}
|
|
14
|
+
if (tx.type !== 'user_transaction')
|
|
15
|
+
return (0, utils_1.createDefaultStatusResponse)(txHash);
|
|
16
|
+
return {
|
|
17
|
+
status: tx.success ? unchained_client_1.TxStatus.Confirmed : unchained_client_1.TxStatus.Failed,
|
|
18
|
+
buyTxHash: txHash,
|
|
19
|
+
message: tx.success ? undefined : tx.vm_status,
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
catch (e) {
|
|
23
|
+
console.error(e);
|
|
24
|
+
return (0, utils_1.createDefaultStatusResponse)(txHash);
|
|
25
|
+
}
|
|
26
|
+
};
|
|
27
|
+
exports.checkAptosSwapStatus = checkAptosSwapStatus;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { aptos } from '@shapeshiftoss/chain-adapters';
|
|
2
|
+
type GetAptosNetworkFeeCryptoBaseUnitArgs = {
|
|
3
|
+
adapter: aptos.ChainAdapter;
|
|
4
|
+
from: string;
|
|
5
|
+
payload: string;
|
|
6
|
+
};
|
|
7
|
+
export declare const getAptosNetworkFeeCryptoBaseUnit: ({ adapter, from, payload, }: GetAptosNetworkFeeCryptoBaseUnitArgs) => Promise<{
|
|
8
|
+
networkFeeCryptoBaseUnit: string;
|
|
9
|
+
feeData: import("@shapeshiftoss/chain-adapters").FeeData<import("@shapeshiftoss/types").KnownChainIds.AptosMainnet>;
|
|
10
|
+
}>;
|
|
11
|
+
export {};
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getAptosNetworkFeeCryptoBaseUnit = void 0;
|
|
4
|
+
const getAptosNetworkFeeCryptoBaseUnit = async ({ adapter, from, payload, }) => {
|
|
5
|
+
const { fast } = await adapter.getFeeData({
|
|
6
|
+
to: '',
|
|
7
|
+
value: '0',
|
|
8
|
+
chainSpecific: { from, payload },
|
|
9
|
+
});
|
|
10
|
+
return { networkFeeCryptoBaseUnit: fast.txFee, feeData: fast };
|
|
11
|
+
};
|
|
12
|
+
exports.getAptosNetworkFeeCryptoBaseUnit = getAptosNetworkFeeCryptoBaseUnit;
|
|
@@ -15,5 +15,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
17
|
__exportStar(require("./constants"), exports);
|
|
18
|
+
__exportStar(require("./getAptosNetworkFeeCryptoBaseUnit"), exports);
|
|
18
19
|
__exportStar(require("./getAptosTransactionFees"), exports);
|
|
19
20
|
__exportStar(require("./getUnsignedAptosTransaction"), exports);
|
|
21
|
+
__exportStar(require("./checkAptosSwapStatus"), exports);
|
|
@@ -28,7 +28,6 @@ exports.SUPPORTED_CHAIN_IDS = [
|
|
|
28
28
|
types_1.KnownChainIds.PolygonMainnet,
|
|
29
29
|
types_1.KnownChainIds.BnbSmartChainMainnet,
|
|
30
30
|
types_1.KnownChainIds.PlasmaMainnet,
|
|
31
|
-
types_1.KnownChainIds.LineaMainnet,
|
|
32
31
|
types_1.KnownChainIds.InkMainnet,
|
|
33
32
|
];
|
|
34
33
|
exports.COW_SWAP_VAULT_RELAYER_ADDRESS = '0xc92e8bdf79f0507f65a392b0ab4667716bfe0110';
|
|
@@ -43,8 +43,6 @@ const getCowNetwork = (chainId) => {
|
|
|
43
43
|
return types_1.CowNetwork.Bnb;
|
|
44
44
|
case types_1.KnownChainIds.PlasmaMainnet:
|
|
45
45
|
return types_1.CowNetwork.Plasma;
|
|
46
|
-
case types_1.KnownChainIds.LineaMainnet:
|
|
47
|
-
return types_1.CowNetwork.Linea;
|
|
48
46
|
case types_1.KnownChainIds.InkMainnet:
|
|
49
47
|
return types_1.CowNetwork.Ink;
|
|
50
48
|
default:
|
|
@@ -46,6 +46,7 @@ const DAO_TREASURY_BY_CHAIN_ID = {
|
|
|
46
46
|
[types_1.KnownChainIds.MegaEthMainnet]: utils_1.DAO_TREASURY_MEGAETH,
|
|
47
47
|
[types_1.KnownChainIds.UnichainMainnet]: utils_1.DAO_TREASURY_UNICHAIN,
|
|
48
48
|
[types_1.KnownChainIds.ElysiumMainnet]: utils_1.DAO_TREASURY_ELYSIUM,
|
|
49
|
+
[types_1.KnownChainIds.AptosMainnet]: utils_1.DAO_TREASURY_APTOS,
|
|
49
50
|
};
|
|
50
51
|
const getTreasuryAddressFromChainId = (chainId) => {
|
|
51
52
|
const maybeTreasuryChainId = (0, utils_1.isTreasuryChainId)(chainId) ? chainId : undefined;
|
|
@@ -31,6 +31,7 @@ const helpers_1 = require("./helpers");
|
|
|
31
31
|
[types_1.KnownChainIds.SolanaMainnet]: 'FxXyPB5RH4uHLPPJR5H89zGwZp19juBetmRwrxfsLj2j',
|
|
32
32
|
[types_1.KnownChainIds.StarknetMainnet]: '0x07ac2252f2da7cbf085e7a5ddc1318243aa818607cdd430dd2e17dd5d487606a',
|
|
33
33
|
[types_1.KnownChainIds.TonMainnet]: 'UQAHHeOhXst-zSGGigQ8KgDzz89nACBR4TxXwXNjU4DsriLb',
|
|
34
|
+
[types_1.KnownChainIds.AptosMainnet]: '0x7b504ecec7f738a716803a676e6d5df04d30240dcb8e5ba9a3acd70d5d91c2d8',
|
|
34
35
|
};
|
|
35
36
|
vitest_1.it.each(utils_1.treasuryChainIds)('returns the treasury address for %s', chainId => {
|
|
36
37
|
(0, vitest_1.expect)((0, helpers_1.getTreasuryAddressFromChainId)(chainId)).toBe(expectedTreasuryAddressByChainId[chainId]);
|