@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
package/dist/cjs/constants.js
CHANGED
|
@@ -16,6 +16,7 @@ const FyndSwapper_1 = require("./swappers/FyndSwapper");
|
|
|
16
16
|
const KyberSwapper_1 = require("./swappers/KyberSwapper");
|
|
17
17
|
const MayachainSwapper_1 = require("./swappers/MayachainSwapper");
|
|
18
18
|
const NearIntentsSwapper_1 = require("./swappers/NearIntentsSwapper");
|
|
19
|
+
const PanoraSwapper_1 = require("./swappers/PanoraSwapper");
|
|
19
20
|
const PortalsSwapper_1 = require("./swappers/PortalsSwapper");
|
|
20
21
|
const RelaySwapper_1 = require("./swappers/RelaySwapper");
|
|
21
22
|
const StonfiSwapper_1 = require("./swappers/StonfiSwapper");
|
|
@@ -117,6 +118,10 @@ exports.swappers = {
|
|
|
117
118
|
...KyberSwapper_1.kyberSwapper,
|
|
118
119
|
...KyberSwapper_1.kyberApi,
|
|
119
120
|
},
|
|
121
|
+
[types_1.SwapperName.Panora]: {
|
|
122
|
+
...PanoraSwapper_1.panoraSwapper,
|
|
123
|
+
...PanoraSwapper_1.panoraApi,
|
|
124
|
+
},
|
|
120
125
|
[types_1.SwapperName.Test]: undefined,
|
|
121
126
|
};
|
|
122
127
|
const DEFAULT_SLIPPAGE_DECIMAL_PERCENTAGE = '0.002';
|
|
@@ -138,6 +143,7 @@ const DEFAULT_DEBRIDGE_SLIPPAGE_DECIMAL_PERCENTAGE = '0.03';
|
|
|
138
143
|
const DEFAULT_BOB_GATEWAY_SLIPPAGE_DECIMAL_PERCENTAGE = '0.03';
|
|
139
144
|
// Symbiosis splits the tolerance across up to three legs, and a destination leg over its share pays out the transit token instead of reverting
|
|
140
145
|
const DEFAULT_SYMBIOSIS_SLIPPAGE_DECIMAL_PERCENTAGE = '0.01';
|
|
146
|
+
const DEFAULT_PANORA_SLIPPAGE_DECIMAL_PERCENTAGE = '0.005';
|
|
141
147
|
const getDefaultSlippageDecimalPercentageForSwapper = (swapperName) => {
|
|
142
148
|
if (swapperName === undefined)
|
|
143
149
|
return DEFAULT_SLIPPAGE_DECIMAL_PERCENTAGE;
|
|
@@ -166,6 +172,8 @@ const getDefaultSlippageDecimalPercentageForSwapper = (swapperName) => {
|
|
|
166
172
|
throw new Error('Default slippage not supported by Across');
|
|
167
173
|
case types_1.SwapperName.Debridge:
|
|
168
174
|
return DEFAULT_DEBRIDGE_SLIPPAGE_DECIMAL_PERCENTAGE;
|
|
175
|
+
case types_1.SwapperName.Panora:
|
|
176
|
+
return DEFAULT_PANORA_SLIPPAGE_DECIMAL_PERCENTAGE;
|
|
169
177
|
case types_1.SwapperName.ButterSwap:
|
|
170
178
|
return DEFAULT_BUTTERSWAP_SLIPPAGE_DECIMAL_PERCENTAGE;
|
|
171
179
|
case types_1.SwapperName.NearIntents:
|
package/dist/cjs/index.d.ts
CHANGED
|
@@ -17,6 +17,7 @@ export * from './swappers/CowSwapper';
|
|
|
17
17
|
export * from './swappers/DebridgeSwapper';
|
|
18
18
|
export * from './swappers/FyndSwapper';
|
|
19
19
|
export * from './swappers/KyberSwapper';
|
|
20
|
+
export * from './swappers/PanoraSwapper';
|
|
20
21
|
export * from './swappers/PortalsSwapper';
|
|
21
22
|
export * from './swappers/ThorchainSwapper';
|
|
22
23
|
export * from './swappers/MayachainSwapper';
|
package/dist/cjs/index.js
CHANGED
|
@@ -46,6 +46,7 @@ __exportStar(require("./swappers/CowSwapper"), exports);
|
|
|
46
46
|
__exportStar(require("./swappers/DebridgeSwapper"), exports);
|
|
47
47
|
__exportStar(require("./swappers/FyndSwapper"), exports);
|
|
48
48
|
__exportStar(require("./swappers/KyberSwapper"), exports);
|
|
49
|
+
__exportStar(require("./swappers/PanoraSwapper"), exports);
|
|
49
50
|
__exportStar(require("./swappers/PortalsSwapper"), exports);
|
|
50
51
|
__exportStar(require("./swappers/ThorchainSwapper"), exports);
|
|
51
52
|
__exportStar(require("./swappers/MayachainSwapper"), exports);
|
|
@@ -20,17 +20,10 @@ exports.chainIdToAcrossChainId = {
|
|
|
20
20
|
[caip_1.monadChainId]: chains_1.monad.id,
|
|
21
21
|
[caip_1.hyperEvmChainId]: chains_1.hyperEvm.id,
|
|
22
22
|
[caip_1.inkChainId]: chains_1.ink.id,
|
|
23
|
-
[caip_1.lineaChainId]: chains_1.linea.id,
|
|
24
|
-
[caip_1.modeChainId]: chains_1.mode.id,
|
|
25
23
|
[caip_1.plasmaChainId]: chains_1.plasma.id,
|
|
26
|
-
[caip_1.zkSyncEraChainId]: chains_1.zksync.id,
|
|
27
|
-
[caip_1.blastChainId]: chains_1.blast.id,
|
|
28
|
-
[caip_1.worldChainChainId]: chains_1.worldchain.id,
|
|
29
24
|
[caip_1.unichainChainId]: chains_1.unichain.id,
|
|
30
|
-
[caip_1.soneiumChainId]: chains_1.soneium.id,
|
|
31
25
|
// Across uses a custom Solana chain ID
|
|
32
26
|
[caip_1.solanaChainId]: 34268394551451,
|
|
33
|
-
[caip_1.scrollChainId]: chains_1.scroll.id,
|
|
34
27
|
[caip_1.megaethChainId]: chains_1.megaeth.id,
|
|
35
28
|
[caip_1.robinhoodChainId]: chains_1.robinhood.id,
|
|
36
29
|
};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { ChainId } from '@shapeshiftoss/caip';
|
|
2
2
|
export declare const BOB_GATEWAY_BASE_URL = "https://gateway-api-mainnet.gobob.xyz";
|
|
3
3
|
export declare const chainIdToBobGatewayChainName: {
|
|
4
|
-
readonly [x: string]: "ethereum" | "polygon" | "arbitrum" | "base" | "avalanche" | "bsc" | "robinhood" | "bob" | "plasma" | "tron" | "
|
|
4
|
+
readonly [x: string]: "ethereum" | "polygon" | "arbitrum" | "base" | "avalanche" | "bsc" | "robinhood" | "bob" | "plasma" | "tron" | "bitcoin" | "sei" | "sonic" | "unichain" | "hyperevm";
|
|
5
5
|
};
|
|
6
6
|
export declare const bobGatewayChainNameToChainId: Record<BobGatewayChainName, ChainId>;
|
|
7
7
|
export type BobGatewayChainName = (typeof chainIdToBobGatewayChainName)[keyof typeof chainIdToBobGatewayChainName];
|
|
@@ -9,7 +9,6 @@ exports.chainIdToBobGatewayChainName = {
|
|
|
9
9
|
[caip_1.arbitrumChainId]: 'arbitrum',
|
|
10
10
|
[caip_1.avalancheChainId]: 'avalanche',
|
|
11
11
|
[caip_1.baseChainId]: 'base',
|
|
12
|
-
[caip_1.berachainChainId]: 'bera',
|
|
13
12
|
[caip_1.btcChainId]: 'bitcoin',
|
|
14
13
|
[caip_1.bobChainId]: 'bob',
|
|
15
14
|
[caip_1.bscChainId]: 'bsc',
|
|
@@ -6,7 +6,7 @@ import { ChainflipNetwork } from './types';
|
|
|
6
6
|
export declare const CHAINFLIP_REGULAR_QUOTE: "regular";
|
|
7
7
|
export declare const CHAINFLIP_DCA_QUOTE: "dca";
|
|
8
8
|
export declare const CHAINFLIP_CHANNEL_DEADLINE_MS: number;
|
|
9
|
-
export declare const ChainflipSupportedChainIds: readonly [KnownChainIds.EthereumMainnet, KnownChainIds.ArbitrumMainnet, KnownChainIds.BitcoinMainnet, KnownChainIds.SolanaMainnet, KnownChainIds.TronMainnet];
|
|
9
|
+
export declare const ChainflipSupportedChainIds: readonly [KnownChainIds.EthereumMainnet, KnownChainIds.ArbitrumMainnet, KnownChainIds.BitcoinMainnet, KnownChainIds.SolanaMainnet, KnownChainIds.TronMainnet, KnownChainIds.BnbSmartChainMainnet];
|
|
10
10
|
export type ChainflipSupportedChainId = (typeof ChainflipSupportedChainIds)[number];
|
|
11
11
|
export declare const ChainflipSupportedAssetIdsByChainId: Partial<Record<KnownChainIds, AssetId[]>>;
|
|
12
12
|
export declare const chainIdToChainflipNetwork: Partial<Record<ChainId, ChainflipNetwork>>;
|
|
@@ -15,9 +15,17 @@ exports.ChainflipSupportedChainIds = [
|
|
|
15
15
|
types_1.KnownChainIds.BitcoinMainnet,
|
|
16
16
|
types_1.KnownChainIds.SolanaMainnet,
|
|
17
17
|
types_1.KnownChainIds.TronMainnet,
|
|
18
|
+
types_1.KnownChainIds.BnbSmartChainMainnet,
|
|
18
19
|
];
|
|
19
20
|
exports.ChainflipSupportedAssetIdsByChainId = {
|
|
20
|
-
[types_1.KnownChainIds.EthereumMainnet]: [
|
|
21
|
+
[types_1.KnownChainIds.EthereumMainnet]: [
|
|
22
|
+
caip_1.ethAssetId,
|
|
23
|
+
caip_1.flipAssetId,
|
|
24
|
+
caip_1.usdcAssetId,
|
|
25
|
+
caip_1.usdtAssetId,
|
|
26
|
+
caip_1.wbtcAssetId,
|
|
27
|
+
caip_1.cbbtcAssetId,
|
|
28
|
+
],
|
|
21
29
|
[types_1.KnownChainIds.ArbitrumMainnet]: [
|
|
22
30
|
caip_1.arbitrumAssetId,
|
|
23
31
|
caip_1.usdcOnArbitrumOneAssetId,
|
|
@@ -26,6 +34,7 @@ exports.ChainflipSupportedAssetIdsByChainId = {
|
|
|
26
34
|
[types_1.KnownChainIds.BitcoinMainnet]: [caip_1.btcAssetId],
|
|
27
35
|
[types_1.KnownChainIds.SolanaMainnet]: [caip_1.solAssetId, caip_1.usdcOnSolanaAssetId, caip_1.usdtOnSolanaAssetId],
|
|
28
36
|
[types_1.KnownChainIds.TronMainnet]: [caip_1.tronAssetId, caip_1.usdtOnTronAssetId],
|
|
37
|
+
[types_1.KnownChainIds.BnbSmartChainMainnet]: [caip_1.bscAssetId, caip_1.usdtOnBscAssetId],
|
|
29
38
|
};
|
|
30
39
|
exports.chainIdToChainflipNetwork = {
|
|
31
40
|
[types_1.KnownChainIds.EthereumMainnet]: types_3.ChainflipNetwork.Ethereum,
|
|
@@ -33,6 +42,7 @@ exports.chainIdToChainflipNetwork = {
|
|
|
33
42
|
[types_1.KnownChainIds.BitcoinMainnet]: types_3.ChainflipNetwork.Bitcoin,
|
|
34
43
|
[types_1.KnownChainIds.SolanaMainnet]: types_3.ChainflipNetwork.Solana,
|
|
35
44
|
[types_1.KnownChainIds.TronMainnet]: types_3.ChainflipNetwork.Tron,
|
|
45
|
+
[types_1.KnownChainIds.BnbSmartChainMainnet]: types_3.ChainflipNetwork.Bsc,
|
|
36
46
|
};
|
|
37
47
|
exports.CHAINFLIP_SWAP_SOURCE = types_2.SwapperName.Chainflip;
|
|
38
48
|
exports.CHAINFLIP_BOOST_SWAP_SOURCE = `${types_2.SwapperName.Chainflip} • Boost`;
|
|
@@ -21,8 +21,8 @@ type GetChainFlipSwapArgs = ChainFlipBrokerBaseArgs & {
|
|
|
21
21
|
numberOfChunks?: number;
|
|
22
22
|
chunkIntervalBlocks?: number;
|
|
23
23
|
};
|
|
24
|
-
export declare const isSupportedChainId: (chainId: ChainId) => chainId is import("@shapeshiftoss/types").KnownChainIds.EthereumMainnet | import("@shapeshiftoss/types").KnownChainIds.ArbitrumMainnet | import("@shapeshiftoss/types").KnownChainIds.BitcoinMainnet | import("@shapeshiftoss/types").KnownChainIds.SolanaMainnet | import("@shapeshiftoss/types").KnownChainIds.TronMainnet;
|
|
25
|
-
export declare const isSupportedAssetId: (chainId: ChainId, assetId: AssetId) => chainId is import("@shapeshiftoss/types").KnownChainIds.EthereumMainnet | import("@shapeshiftoss/types").KnownChainIds.ArbitrumMainnet | import("@shapeshiftoss/types").KnownChainIds.BitcoinMainnet | import("@shapeshiftoss/types").KnownChainIds.SolanaMainnet | import("@shapeshiftoss/types").KnownChainIds.TronMainnet;
|
|
24
|
+
export declare const isSupportedChainId: (chainId: ChainId) => chainId is import("@shapeshiftoss/types").KnownChainIds.EthereumMainnet | import("@shapeshiftoss/types").KnownChainIds.BnbSmartChainMainnet | import("@shapeshiftoss/types").KnownChainIds.ArbitrumMainnet | import("@shapeshiftoss/types").KnownChainIds.BitcoinMainnet | import("@shapeshiftoss/types").KnownChainIds.SolanaMainnet | import("@shapeshiftoss/types").KnownChainIds.TronMainnet;
|
|
25
|
+
export declare const isSupportedAssetId: (chainId: ChainId, assetId: AssetId) => chainId is import("@shapeshiftoss/types").KnownChainIds.EthereumMainnet | import("@shapeshiftoss/types").KnownChainIds.BnbSmartChainMainnet | import("@shapeshiftoss/types").KnownChainIds.ArbitrumMainnet | import("@shapeshiftoss/types").KnownChainIds.BitcoinMainnet | import("@shapeshiftoss/types").KnownChainIds.SolanaMainnet | import("@shapeshiftoss/types").KnownChainIds.TronMainnet;
|
|
26
26
|
export declare const assertValidTrade: ({ sellAsset, buyAsset, }: {
|
|
27
27
|
sellAsset: Asset;
|
|
28
28
|
buyAsset: Asset;
|
|
@@ -23,12 +23,8 @@ exports.chainIdToDebridgeChainId = {
|
|
|
23
23
|
[caip_1.avalancheChainId]: chains_1.avalanche.id,
|
|
24
24
|
[caip_1.mantleChainId]: 100000023,
|
|
25
25
|
[caip_1.cronosChainId]: 100000019,
|
|
26
|
-
[caip_1.berachainChainId]: 100000020,
|
|
27
|
-
[caip_1.lineaChainId]: chains_1.linea.id,
|
|
28
26
|
[caip_1.bobChainId]: 100000021,
|
|
29
27
|
[caip_1.sonicChainId]: 100000014,
|
|
30
|
-
[caip_1.storyChainId]: 100000013,
|
|
31
|
-
[caip_1.flowEvmChainId]: 100000009,
|
|
32
28
|
[caip_1.megaethChainId]: 100000031,
|
|
33
29
|
[caip_1.robinhoodChainId]: chains_1.robinhood.id,
|
|
34
30
|
};
|
|
@@ -6,4 +6,4 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
exports.fyndService = void 0;
|
|
7
7
|
const axios_1 = __importDefault(require("axios"));
|
|
8
8
|
const utils_1 = require("../../../utils");
|
|
9
|
-
exports.fyndService = (0, utils_1.makeSwapperAxiosServiceMonadic)(axios_1.default.create({ timeout:
|
|
9
|
+
exports.fyndService = (0, utils_1.makeSwapperAxiosServiceMonadic)(axios_1.default.create({ timeout: 15_000 }));
|
|
@@ -6,4 +6,4 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
exports.kyberService = void 0;
|
|
7
7
|
const axios_1 = __importDefault(require("axios"));
|
|
8
8
|
const utils_1 = require("../../../utils");
|
|
9
|
-
exports.kyberService = (0, utils_1.makeSwapperAxiosServiceMonadic)(axios_1.default.create({ timeout:
|
|
9
|
+
exports.kyberService = (0, utils_1.makeSwapperAxiosServiceMonadic)(axios_1.default.create({ timeout: 15_000 }));
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.panoraApi = void 0;
|
|
4
|
+
const aptos_1 = require("../../utils/aptos");
|
|
5
|
+
const getPanoraTradeQuote_1 = require("./swapperApi/getPanoraTradeQuote");
|
|
6
|
+
const getPanoraTradeRate_1 = require("./swapperApi/getPanoraTradeRate");
|
|
7
|
+
exports.panoraApi = {
|
|
8
|
+
getTradeQuote: (input, deps) => (0, getPanoraTradeQuote_1.getPanoraTradeQuote)(input, deps),
|
|
9
|
+
getTradeRate: (input, deps) => (0, getPanoraTradeRate_1.getPanoraTradeRate)(input, deps),
|
|
10
|
+
getUnsignedAptosTransaction: aptos_1.getUnsignedAptosTransaction,
|
|
11
|
+
getAptosTransactionFees: aptos_1.getAptosTransactionFees,
|
|
12
|
+
checkTradeStatus: aptos_1.checkAptosSwapStatus,
|
|
13
|
+
};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.panoraSwapper = exports.panoraApi = void 0;
|
|
4
|
+
var endpoints_1 = require("./endpoints");
|
|
5
|
+
Object.defineProperty(exports, "panoraApi", { enumerable: true, get: function () { return endpoints_1.panoraApi; } });
|
|
6
|
+
var PanoraSwapper_1 = require("./PanoraSwapper");
|
|
7
|
+
Object.defineProperty(exports, "panoraSwapper", { enumerable: true, get: function () { return PanoraSwapper_1.panoraSwapper; } });
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { Result } from '@sniptt/monads';
|
|
2
|
+
import type { SwapErrorRight, SwapperDeps, TradeQuote } from '../../../types';
|
|
3
|
+
import type { PanoraTradeQuoteInput } from '../types';
|
|
4
|
+
export declare const getPanoraTradeQuote: (input: PanoraTradeQuoteInput, deps: SwapperDeps) => Promise<Result<TradeQuote[], SwapErrorRight>>;
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getPanoraTradeQuote = void 0;
|
|
4
|
+
const monads_1 = require("@sniptt/monads");
|
|
5
|
+
const utils_1 = require("../../../utils");
|
|
6
|
+
const getPanoraStepData_1 = require("../utils/getPanoraStepData");
|
|
7
|
+
const getPanoraTradeContext_1 = require("../utils/getPanoraTradeContext");
|
|
8
|
+
const getPanoraTradeQuote = async (input, deps) => {
|
|
9
|
+
const { accountNumber } = input;
|
|
10
|
+
const maybeAddresses = (0, utils_1.assertQuoteAddresses)(input);
|
|
11
|
+
if (maybeAddresses.isErr())
|
|
12
|
+
return (0, monads_1.Err)(maybeAddresses.unwrapErr());
|
|
13
|
+
const { sendAddress, receiveAddress } = maybeAddresses.unwrap();
|
|
14
|
+
const maybeContext = await (0, getPanoraTradeContext_1.getPanoraTradeContext)({ input, deps });
|
|
15
|
+
if (maybeContext.isErr())
|
|
16
|
+
return (0, monads_1.Err)(maybeContext.unwrapErr());
|
|
17
|
+
const { tradeCommon, stepCommon, protocolFees, stepDataArgs } = maybeContext.unwrap();
|
|
18
|
+
const maybeStepData = await (0, getPanoraStepData_1.getPanoraStepData)({
|
|
19
|
+
...stepDataArgs,
|
|
20
|
+
type: 'quote',
|
|
21
|
+
input,
|
|
22
|
+
from: sendAddress,
|
|
23
|
+
});
|
|
24
|
+
if (maybeStepData.isErr())
|
|
25
|
+
return (0, monads_1.Err)(maybeStepData.unwrapErr());
|
|
26
|
+
const { transactionData, networkFeeCryptoBaseUnit } = maybeStepData.unwrap();
|
|
27
|
+
const tradeQuote = {
|
|
28
|
+
...tradeCommon,
|
|
29
|
+
quoteOrRate: 'quote',
|
|
30
|
+
receiveAddress,
|
|
31
|
+
steps: [
|
|
32
|
+
{
|
|
33
|
+
...stepCommon,
|
|
34
|
+
accountNumber,
|
|
35
|
+
transactionData,
|
|
36
|
+
feeData: { networkFeeCryptoBaseUnit, protocolFees },
|
|
37
|
+
},
|
|
38
|
+
],
|
|
39
|
+
};
|
|
40
|
+
return (0, monads_1.Ok)([tradeQuote]);
|
|
41
|
+
};
|
|
42
|
+
exports.getPanoraTradeQuote = getPanoraTradeQuote;
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { Result } from '@sniptt/monads';
|
|
2
|
+
import type { SwapErrorRight, SwapperDeps, TradeRate } from '../../../types';
|
|
3
|
+
import type { PanoraTradeRateInput } from '../types';
|
|
4
|
+
export declare const getPanoraTradeRate: (input: PanoraTradeRateInput, deps: SwapperDeps) => Promise<Result<TradeRate[], SwapErrorRight>>;
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getPanoraTradeRate = void 0;
|
|
4
|
+
const monads_1 = require("@sniptt/monads");
|
|
5
|
+
const getPanoraStepData_1 = require("../utils/getPanoraStepData");
|
|
6
|
+
const getPanoraTradeContext_1 = require("../utils/getPanoraTradeContext");
|
|
7
|
+
const getPanoraTradeRate = async (input, deps) => {
|
|
8
|
+
const { accountNumber, receiveAddress, sendAddress } = input;
|
|
9
|
+
const maybeContext = await (0, getPanoraTradeContext_1.getPanoraTradeContext)({ input, deps });
|
|
10
|
+
if (maybeContext.isErr())
|
|
11
|
+
return (0, monads_1.Err)(maybeContext.unwrapErr());
|
|
12
|
+
const { tradeCommon, stepCommon, protocolFees, stepDataArgs } = maybeContext.unwrap();
|
|
13
|
+
const maybeStepData = await (0, getPanoraStepData_1.getPanoraStepData)({
|
|
14
|
+
...stepDataArgs,
|
|
15
|
+
type: 'rate',
|
|
16
|
+
input,
|
|
17
|
+
from: sendAddress,
|
|
18
|
+
});
|
|
19
|
+
if (maybeStepData.isErr())
|
|
20
|
+
return (0, monads_1.Err)(maybeStepData.unwrapErr());
|
|
21
|
+
const { networkFeeCryptoBaseUnit } = maybeStepData.unwrap();
|
|
22
|
+
const tradeRate = {
|
|
23
|
+
...tradeCommon,
|
|
24
|
+
quoteOrRate: 'rate',
|
|
25
|
+
receiveAddress,
|
|
26
|
+
steps: [
|
|
27
|
+
{
|
|
28
|
+
...stepCommon,
|
|
29
|
+
accountNumber,
|
|
30
|
+
feeData: { networkFeeCryptoBaseUnit, protocolFees },
|
|
31
|
+
},
|
|
32
|
+
],
|
|
33
|
+
};
|
|
34
|
+
return (0, monads_1.Ok)([tradeRate]);
|
|
35
|
+
};
|
|
36
|
+
exports.getPanoraTradeRate = getPanoraTradeRate;
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import type { GetAptosTradeQuoteInput, GetAptosTradeRateInput } from '../../types';
|
|
2
|
+
export type PanoraTradeQuoteInput = GetAptosTradeQuoteInput;
|
|
3
|
+
export type PanoraTradeRateInput = GetAptosTradeRateInput;
|
|
4
|
+
export type PanoraSwapRequest = {
|
|
5
|
+
fromTokenAddress: string;
|
|
6
|
+
toTokenAddress: string;
|
|
7
|
+
fromTokenAmount: string;
|
|
8
|
+
toWalletAddress: string;
|
|
9
|
+
slippagePercentage: number;
|
|
10
|
+
integratorFeePercentage?: number;
|
|
11
|
+
integratorFeeAddress?: string;
|
|
12
|
+
};
|
|
13
|
+
export type PanoraToken = {
|
|
14
|
+
address: string;
|
|
15
|
+
symbol: string | null;
|
|
16
|
+
decimals: number | null;
|
|
17
|
+
};
|
|
18
|
+
export type PanoraQuote = {
|
|
19
|
+
toTokenAmount: string;
|
|
20
|
+
minToTokenAmount: string;
|
|
21
|
+
feeTokenAmount: string;
|
|
22
|
+
rawTransaction: {
|
|
23
|
+
bcs: string;
|
|
24
|
+
};
|
|
25
|
+
};
|
|
26
|
+
export type PanoraSwapResponse = {
|
|
27
|
+
fromToken: PanoraToken;
|
|
28
|
+
toToken: PanoraToken;
|
|
29
|
+
feeToken: PanoraToken;
|
|
30
|
+
quotes: PanoraQuote[];
|
|
31
|
+
};
|
|
32
|
+
export type PanoraErrorResponse = {
|
|
33
|
+
statusCode?: number;
|
|
34
|
+
message: string;
|
|
35
|
+
};
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.PANORA_FALLBACK_NETWORK_FEE_CRYPTO_BASE_UNIT = exports.PANORA_API_URL = void 0;
|
|
4
|
+
exports.PANORA_API_URL = 'https://api.panora.exchange';
|
|
5
|
+
// 0.01 APT, between measured routes of 0.002 APT (no storage writes) and 0.04 APT (with)
|
|
6
|
+
exports.PANORA_FALLBACK_NETWORK_FEE_CRYPTO_BASE_UNIT = '1000000';
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { Result } from '@sniptt/monads';
|
|
2
|
+
import type { SwapErrorRight } from '../../../types';
|
|
3
|
+
import type { PanoraSwapRequest, PanoraSwapResponse } from '../types';
|
|
4
|
+
export declare const fetchPanoraSwap: ({ request, apiKey, }: {
|
|
5
|
+
request: PanoraSwapRequest;
|
|
6
|
+
apiKey: string;
|
|
7
|
+
}) => Promise<Result<PanoraSwapResponse, SwapErrorRight>>;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.fetchPanoraSwap = void 0;
|
|
4
|
+
const monads_1 = require("@sniptt/monads");
|
|
5
|
+
const helpers_1 = require("./helpers");
|
|
6
|
+
const panoraService_1 = require("./panoraService");
|
|
7
|
+
const fetchPanoraSwap = async ({ request, apiKey, }) => {
|
|
8
|
+
const maybeResponse = await panoraService_1.panoraService.post('/swap', request, {
|
|
9
|
+
headers: { 'x-api-key': apiKey },
|
|
10
|
+
});
|
|
11
|
+
if (maybeResponse.isErr())
|
|
12
|
+
return (0, monads_1.Err)((0, helpers_1.getPanoraRequestError)(maybeResponse.unwrapErr()));
|
|
13
|
+
return (0, monads_1.Ok)(maybeResponse.unwrap().data);
|
|
14
|
+
};
|
|
15
|
+
exports.fetchPanoraSwap = fetchPanoraSwap;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { Result } from '@sniptt/monads';
|
|
2
|
+
import type { StepDataArgs, SwapErrorRight, TxBuildData } from '../../../types';
|
|
3
|
+
export type GetPanoraStepDataArgs = StepDataArgs<{
|
|
4
|
+
payload: string;
|
|
5
|
+
}>;
|
|
6
|
+
type PanoraRateStepData = {
|
|
7
|
+
networkFeeCryptoBaseUnit: string;
|
|
8
|
+
};
|
|
9
|
+
type PanoraQuoteStepData = {
|
|
10
|
+
transactionData: TxBuildData;
|
|
11
|
+
networkFeeCryptoBaseUnit: string;
|
|
12
|
+
};
|
|
13
|
+
export declare function getPanoraStepData(args: Extract<GetPanoraStepDataArgs, {
|
|
14
|
+
type: 'rate';
|
|
15
|
+
}>): Promise<Result<PanoraRateStepData, SwapErrorRight>>;
|
|
16
|
+
export declare function getPanoraStepData(args: Extract<GetPanoraStepDataArgs, {
|
|
17
|
+
type: 'quote';
|
|
18
|
+
}>): Promise<Result<PanoraQuoteStepData, SwapErrorRight>>;
|
|
19
|
+
export {};
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getPanoraStepData = void 0;
|
|
4
|
+
const monads_1 = require("@sniptt/monads");
|
|
5
|
+
const utils_1 = require("../../../utils");
|
|
6
|
+
const aptos_1 = require("../../../utils/aptos");
|
|
7
|
+
const constants_1 = require("./constants");
|
|
8
|
+
async function getPanoraStepData(args) {
|
|
9
|
+
const { sellAsset, payload, from, deps } = args;
|
|
10
|
+
const adapter = deps.assertGetAptosChainAdapter(sellAsset.chainId);
|
|
11
|
+
if (args.type === 'rate') {
|
|
12
|
+
const networkFeeCryptoBaseUnit = from
|
|
13
|
+
? await (0, aptos_1.getAptosNetworkFeeCryptoBaseUnit)({ adapter, from, payload })
|
|
14
|
+
.then(({ networkFeeCryptoBaseUnit }) => networkFeeCryptoBaseUnit)
|
|
15
|
+
.catch(() => constants_1.PANORA_FALLBACK_NETWORK_FEE_CRYPTO_BASE_UNIT)
|
|
16
|
+
: constants_1.PANORA_FALLBACK_NETWORK_FEE_CRYPTO_BASE_UNIT;
|
|
17
|
+
const stepData = { networkFeeCryptoBaseUnit };
|
|
18
|
+
return (0, monads_1.Ok)(stepData);
|
|
19
|
+
}
|
|
20
|
+
try {
|
|
21
|
+
const { networkFeeCryptoBaseUnit, feeData } = await (0, aptos_1.getAptosNetworkFeeCryptoBaseUnit)({
|
|
22
|
+
adapter,
|
|
23
|
+
from: args.from,
|
|
24
|
+
payload,
|
|
25
|
+
});
|
|
26
|
+
const stepData = {
|
|
27
|
+
transactionData: {
|
|
28
|
+
type: 'aptos',
|
|
29
|
+
payload,
|
|
30
|
+
gasUnitPrice: feeData.chainSpecific.gasUnitPrice,
|
|
31
|
+
maxGasAmount: feeData.chainSpecific.maxGasAmount,
|
|
32
|
+
},
|
|
33
|
+
networkFeeCryptoBaseUnit,
|
|
34
|
+
};
|
|
35
|
+
return (0, monads_1.Ok)(stepData);
|
|
36
|
+
}
|
|
37
|
+
catch (error) {
|
|
38
|
+
return (0, monads_1.Err)((0, utils_1.makeNetworkFeeEstimationFailedErr)('getPanoraStepData', error));
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
exports.getPanoraStepData = getPanoraStepData;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { Result } from '@sniptt/monads';
|
|
2
|
+
import type { QuoteFeeData, SwapErrorRight, SwapperDeps, TradeCommon, TradeStepCommon } from '../../../types';
|
|
3
|
+
import type { PanoraTradeQuoteInput, PanoraTradeRateInput } from '../types';
|
|
4
|
+
import type { GetPanoraStepDataArgs } from './getPanoraStepData';
|
|
5
|
+
type PanoraTradeContext = {
|
|
6
|
+
tradeCommon: TradeCommon & {
|
|
7
|
+
slippageTolerancePercentageDecimal: string;
|
|
8
|
+
};
|
|
9
|
+
stepCommon: Omit<TradeStepCommon, 'feeData'>;
|
|
10
|
+
protocolFees: QuoteFeeData['protocolFees'];
|
|
11
|
+
stepDataArgs: Omit<GetPanoraStepDataArgs, 'type' | 'input' | 'from'>;
|
|
12
|
+
};
|
|
13
|
+
export declare const getPanoraTradeContext: ({ input, deps, }: {
|
|
14
|
+
input: PanoraTradeQuoteInput | PanoraTradeRateInput;
|
|
15
|
+
deps: SwapperDeps;
|
|
16
|
+
}) => Promise<Result<PanoraTradeContext, SwapErrorRight>>;
|
|
17
|
+
export {};
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getPanoraTradeContext = void 0;
|
|
4
|
+
const utils_1 = require("@shapeshiftoss/utils");
|
|
5
|
+
const monads_1 = require("@sniptt/monads");
|
|
6
|
+
const uuid_1 = require("uuid");
|
|
7
|
+
const constants_1 = require("../../../constants");
|
|
8
|
+
const types_1 = require("../../../types");
|
|
9
|
+
const aptos_1 = require("../../../utils/aptos");
|
|
10
|
+
const fetchFromPanora_1 = require("./fetchFromPanora");
|
|
11
|
+
const helpers_1 = require("./helpers");
|
|
12
|
+
const getPanoraTradeContext = async ({ input, deps, }) => {
|
|
13
|
+
const { sellAsset, buyAsset, sellAmountIncludingProtocolFeesCryptoBaseUnit, sendAddress, receiveAddress, affiliateBps, } = input;
|
|
14
|
+
const maybeValidTrade = (0, helpers_1.assertValidTrade)({ sellAsset, buyAsset });
|
|
15
|
+
if (maybeValidTrade.isErr())
|
|
16
|
+
return (0, monads_1.Err)(maybeValidTrade.unwrapErr());
|
|
17
|
+
const slippageTolerancePercentageDecimal = input.slippageTolerancePercentageDecimal ??
|
|
18
|
+
(0, constants_1.getDefaultSlippageDecimalPercentageForSwapper)(types_1.SwapperName.Panora);
|
|
19
|
+
const maybeResponse = await (0, fetchFromPanora_1.fetchPanoraSwap)({
|
|
20
|
+
request: {
|
|
21
|
+
fromTokenAddress: (0, helpers_1.assetIdToPanoraToken)(sellAsset.assetId),
|
|
22
|
+
toTokenAddress: (0, helpers_1.assetIdToPanoraToken)(buyAsset.assetId),
|
|
23
|
+
fromTokenAmount: (0, utils_1.fromBaseUnit)(sellAmountIncludingProtocolFeesCryptoBaseUnit, sellAsset.precision),
|
|
24
|
+
// The router pays out to toWalletAddress, which a walletless rate has to fill with a placeholder
|
|
25
|
+
toWalletAddress: receiveAddress ?? sendAddress ?? aptos_1.APTOS_PLACEHOLDER_ADDRESS,
|
|
26
|
+
slippagePercentage: (0, utils_1.bnOrZero)(slippageTolerancePercentageDecimal).times(100).toNumber(),
|
|
27
|
+
...(0, helpers_1.getPanoraFeeParams)(affiliateBps),
|
|
28
|
+
},
|
|
29
|
+
apiKey: deps.config.VITE_PANORA_API_KEY,
|
|
30
|
+
});
|
|
31
|
+
if (maybeResponse.isErr())
|
|
32
|
+
return (0, monads_1.Err)(maybeResponse.unwrapErr());
|
|
33
|
+
const maybeSwap = (0, helpers_1.validatePanoraSwap)({
|
|
34
|
+
response: maybeResponse.unwrap(),
|
|
35
|
+
sellAsset,
|
|
36
|
+
buyAsset,
|
|
37
|
+
});
|
|
38
|
+
if (maybeSwap.isErr())
|
|
39
|
+
return (0, monads_1.Err)(maybeSwap.unwrapErr());
|
|
40
|
+
const { quote, payload } = maybeSwap.unwrap();
|
|
41
|
+
const tradeAmounts = (0, helpers_1.getPanoraTradeAmounts)({ input, quote });
|
|
42
|
+
return (0, monads_1.Ok)({
|
|
43
|
+
tradeCommon: {
|
|
44
|
+
id: (0, uuid_1.v4)(),
|
|
45
|
+
rate: tradeAmounts.rate,
|
|
46
|
+
swapperName: types_1.SwapperName.Panora,
|
|
47
|
+
affiliateBps,
|
|
48
|
+
slippageTolerancePercentageDecimal,
|
|
49
|
+
},
|
|
50
|
+
stepCommon: {
|
|
51
|
+
estimatedExecutionTimeMs: undefined,
|
|
52
|
+
allowanceContract: '',
|
|
53
|
+
sellAsset,
|
|
54
|
+
buyAsset,
|
|
55
|
+
sellAmountIncludingProtocolFeesCryptoBaseUnit,
|
|
56
|
+
...tradeAmounts,
|
|
57
|
+
source: types_1.SwapperName.Panora,
|
|
58
|
+
},
|
|
59
|
+
protocolFees: {},
|
|
60
|
+
stepDataArgs: { deps, sellAsset, payload },
|
|
61
|
+
});
|
|
62
|
+
};
|
|
63
|
+
exports.getPanoraTradeContext = getPanoraTradeContext;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import type { AssetId } from '@shapeshiftoss/caip';
|
|
2
|
+
import type { Asset } from '@shapeshiftoss/types';
|
|
3
|
+
import type { Result } from '@sniptt/monads';
|
|
4
|
+
import type { SwapErrorRight, TradeStepCommon } from '../../../types';
|
|
5
|
+
import type { PanoraQuote, PanoraSwapRequest, PanoraSwapResponse, PanoraTradeQuoteInput, PanoraTradeRateInput } from '../types';
|
|
6
|
+
export declare const assertValidTrade: ({ sellAsset, buyAsset, }: {
|
|
7
|
+
sellAsset: Asset;
|
|
8
|
+
buyAsset: Asset;
|
|
9
|
+
}) => Result<true, SwapErrorRight>;
|
|
10
|
+
export declare const assetIdToPanoraToken: (assetId: AssetId) => string;
|
|
11
|
+
export declare const getPanoraFeeParams: (affiliateBps: string) => Pick<PanoraSwapRequest, 'integratorFeePercentage' | 'integratorFeeAddress'>;
|
|
12
|
+
export declare const getPanoraRequestError: (error: SwapErrorRight) => SwapErrorRight;
|
|
13
|
+
export type ValidatedPanoraSwap = {
|
|
14
|
+
quote: PanoraQuote;
|
|
15
|
+
payload: string;
|
|
16
|
+
};
|
|
17
|
+
export declare const validatePanoraSwap: ({ response, sellAsset, buyAsset, }: {
|
|
18
|
+
response: PanoraSwapResponse;
|
|
19
|
+
sellAsset: Asset;
|
|
20
|
+
buyAsset: Asset;
|
|
21
|
+
}) => Result<ValidatedPanoraSwap, SwapErrorRight>;
|
|
22
|
+
export declare const getPanoraTradeAmounts: ({ input, quote, }: {
|
|
23
|
+
input: PanoraTradeQuoteInput | PanoraTradeRateInput;
|
|
24
|
+
quote: PanoraQuote;
|
|
25
|
+
}) => Pick<TradeStepCommon, 'rate' | 'buyAmountBeforeFeesCryptoBaseUnit' | 'buyAmountAfterFeesCryptoBaseUnit' | 'affiliateFee'>;
|