@1delta/bridge-configs 0.1.0
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/LICENSE +674 -0
- package/dist/configs/across/config.d.ts +4 -0
- package/dist/configs/across/config.d.ts.map +1 -0
- package/dist/configs/across/config.js +317 -0
- package/dist/configs/axelar/abis/AxelarGasService.d.ts +103 -0
- package/dist/configs/axelar/abis/AxelarGasService.d.ts.map +1 -0
- package/dist/configs/axelar/abis/AxelarGasService.js +1073 -0
- package/dist/configs/axelar/abis/AxelarGateway.d.ts +51 -0
- package/dist/configs/axelar/abis/AxelarGateway.d.ts.map +1 -0
- package/dist/configs/axelar/abis/AxelarGateway.js +753 -0
- package/dist/configs/axelar/abis/SquidMulticall.d.ts +47 -0
- package/dist/configs/axelar/abis/SquidMulticall.d.ts.map +1 -0
- package/dist/configs/axelar/abis/SquidMulticall.js +104 -0
- package/dist/configs/axelar/abis/SquidRouter.d.ts +82 -0
- package/dist/configs/axelar/abis/SquidRouter.d.ts.map +1 -0
- package/dist/configs/axelar/abis/SquidRouter.js +837 -0
- package/dist/configs/axelar/calldata/buildTx.d.ts +3 -0
- package/dist/configs/axelar/calldata/buildTx.d.ts.map +1 -0
- package/dist/configs/axelar/calldata/buildTx.js +29 -0
- package/dist/configs/axelar/calldata/index.d.ts +3 -0
- package/dist/configs/axelar/calldata/index.d.ts.map +1 -0
- package/dist/configs/axelar/calldata/index.js +2 -0
- package/dist/configs/axelar/calldata/squid/createSquidMulticallPayload.d.ts +16 -0
- package/dist/configs/axelar/calldata/squid/createSquidMulticallPayload.d.ts.map +1 -0
- package/dist/configs/axelar/calldata/squid/createSquidMulticallPayload.js +76 -0
- package/dist/configs/axelar/calldata/squid/types.d.ts +15 -0
- package/dist/configs/axelar/calldata/squid/types.d.ts.map +1 -0
- package/dist/configs/axelar/calldata/squid/types.js +7 -0
- package/dist/configs/axelar/calldata/types.d.ts +18 -0
- package/dist/configs/axelar/calldata/types.d.ts.map +1 -0
- package/dist/configs/axelar/calldata/types.js +1 -0
- package/dist/configs/axelar/config.d.ts +4 -0
- package/dist/configs/axelar/config.d.ts.map +1 -0
- package/dist/configs/axelar/config.js +99 -0
- package/dist/configs/axelar/data/axelarConfig/index.d.ts +3 -0
- package/dist/configs/axelar/data/axelarConfig/index.d.ts.map +1 -0
- package/dist/configs/axelar/data/axelarConfig/index.js +33 -0
- package/dist/configs/axelar/data/axelarConfig/types.d.ts +181 -0
- package/dist/configs/axelar/data/axelarConfig/types.d.ts.map +1 -0
- package/dist/configs/axelar/data/axelarConfig/types.js +1 -0
- package/dist/configs/axelar/data/squidChains/index.d.ts +6 -0
- package/dist/configs/axelar/data/squidChains/index.d.ts.map +1 -0
- package/dist/configs/axelar/data/squidChains/index.js +61 -0
- package/dist/configs/axelar/data/squidChains/types.d.ts +23 -0
- package/dist/configs/axelar/data/squidChains/types.d.ts.map +1 -0
- package/dist/configs/axelar/data/squidChains/types.js +1 -0
- package/dist/configs/axelar/errors.d.ts +15 -0
- package/dist/configs/axelar/errors.d.ts.map +1 -0
- package/dist/configs/axelar/errors.js +8 -0
- package/dist/configs/axelar/gasEstimation/index.d.ts +7 -0
- package/dist/configs/axelar/gasEstimation/index.d.ts.map +1 -0
- package/dist/configs/axelar/gasEstimation/index.js +38 -0
- package/dist/configs/axelar/gasEstimation/types.d.ts +23 -0
- package/dist/configs/axelar/gasEstimation/types.d.ts.map +1 -0
- package/dist/configs/axelar/gasEstimation/types.js +1 -0
- package/dist/configs/axelar/route/fetchAxelarRoute.d.ts +3 -0
- package/dist/configs/axelar/route/fetchAxelarRoute.d.ts.map +1 -0
- package/dist/configs/axelar/route/fetchAxelarRoute.js +50 -0
- package/dist/configs/axelar/route/index.d.ts +3 -0
- package/dist/configs/axelar/route/index.d.ts.map +1 -0
- package/dist/configs/axelar/route/index.js +2 -0
- package/dist/configs/axelar/route/tokenIdentifier.d.ts +5 -0
- package/dist/configs/axelar/route/tokenIdentifier.d.ts.map +1 -0
- package/dist/configs/axelar/route/tokenIdentifier.js +32 -0
- package/dist/configs/axelar/route/types.d.ts +5 -0
- package/dist/configs/axelar/route/types.d.ts.map +1 -0
- package/dist/configs/axelar/route/types.js +1 -0
- package/dist/configs/butter/config.d.ts +9 -0
- package/dist/configs/butter/config.d.ts.map +1 -0
- package/dist/configs/butter/config.js +207 -0
- package/dist/configs/cowswap/config.d.ts +4 -0
- package/dist/configs/cowswap/config.d.ts.map +1 -0
- package/dist/configs/cowswap/config.js +106 -0
- package/dist/configs/cowswap/errors.d.ts +19 -0
- package/dist/configs/cowswap/errors.d.ts.map +1 -0
- package/dist/configs/cowswap/errors.js +12 -0
- package/dist/configs/cowswap/swap/quote.d.ts +5 -0
- package/dist/configs/cowswap/swap/quote.d.ts.map +1 -0
- package/dist/configs/cowswap/swap/quote.js +28 -0
- package/dist/configs/cowswap/swap/route.d.ts +5 -0
- package/dist/configs/cowswap/swap/route.d.ts.map +1 -0
- package/dist/configs/cowswap/swap/route.js +61 -0
- package/dist/configs/cowswap/track/index.d.ts +6 -0
- package/dist/configs/cowswap/track/index.d.ts.map +1 -0
- package/dist/configs/cowswap/track/index.js +27 -0
- package/dist/configs/cowswap/utils/getCowSwapSlippage.d.ts +4 -0
- package/dist/configs/cowswap/utils/getCowSwapSlippage.d.ts.map +1 -0
- package/dist/configs/cowswap/utils/getCowSwapSlippage.js +16 -0
- package/dist/configs/cowswap/utils/toSupportedChainId.d.ts +3 -0
- package/dist/configs/cowswap/utils/toSupportedChainId.d.ts.map +1 -0
- package/dist/configs/cowswap/utils/toSupportedChainId.js +11 -0
- package/dist/configs/crosscurve/config.d.ts +4 -0
- package/dist/configs/crosscurve/config.d.ts.map +1 -0
- package/dist/configs/crosscurve/config.js +185 -0
- package/dist/configs/gas-zip/chains/fetch.d.ts +10 -0
- package/dist/configs/gas-zip/chains/fetch.d.ts.map +1 -0
- package/dist/configs/gas-zip/chains/fetch.js +29 -0
- package/dist/configs/gas-zip/chains/types.d.ts +25 -0
- package/dist/configs/gas-zip/chains/types.d.ts.map +1 -0
- package/dist/configs/gas-zip/chains/types.js +1 -0
- package/dist/configs/gas-zip/config.d.ts +4 -0
- package/dist/configs/gas-zip/config.d.ts.map +1 -0
- package/dist/configs/gas-zip/config.js +121 -0
- package/dist/configs/index.d.ts +2 -0
- package/dist/configs/index.d.ts.map +1 -0
- package/dist/configs/index.js +41 -0
- package/dist/configs/layerswap/LayerswapNetworks.json +3656 -0
- package/dist/configs/layerswap/config.d.ts +4 -0
- package/dist/configs/layerswap/config.d.ts.map +1 -0
- package/dist/configs/layerswap/config.js +285 -0
- package/dist/configs/lifi/config.d.ts +4 -0
- package/dist/configs/lifi/config.d.ts.map +1 -0
- package/dist/configs/lifi/config.js +104 -0
- package/dist/configs/mayan/calldata/index.d.ts +14 -0
- package/dist/configs/mayan/calldata/index.d.ts.map +1 -0
- package/dist/configs/mayan/calldata/index.js +41 -0
- package/dist/configs/mayan/config.d.ts +4 -0
- package/dist/configs/mayan/config.d.ts.map +1 -0
- package/dist/configs/mayan/config.js +222 -0
- package/dist/configs/odos/config.d.ts +8 -0
- package/dist/configs/odos/config.d.ts.map +1 -0
- package/dist/configs/odos/config.js +127 -0
- package/dist/configs/orbiter/abis/ERC20.d.ts +172 -0
- package/dist/configs/orbiter/abis/ERC20.d.ts.map +1 -0
- package/dist/configs/orbiter/abis/ERC20.js +224 -0
- package/dist/configs/orbiter/abis/OrbiterRouterEVMV3.d.ts +85 -0
- package/dist/configs/orbiter/abis/OrbiterRouterEVMV3.d.ts.map +1 -0
- package/dist/configs/orbiter/abis/OrbiterRouterEVMV3.js +83 -0
- package/dist/configs/orbiter/calldata/index.d.ts +32 -0
- package/dist/configs/orbiter/calldata/index.d.ts.map +1 -0
- package/dist/configs/orbiter/calldata/index.js +59 -0
- package/dist/configs/orbiter/config.d.ts +4 -0
- package/dist/configs/orbiter/config.d.ts.map +1 -0
- package/dist/configs/orbiter/config.js +178 -0
- package/dist/configs/router/config.d.ts +4 -0
- package/dist/configs/router/config.d.ts.map +1 -0
- package/dist/configs/router/config.js +125 -0
- package/dist/configs/squid-v1/config.d.ts +4 -0
- package/dist/configs/squid-v1/config.d.ts.map +1 -0
- package/dist/configs/squid-v1/config.js +133 -0
- package/dist/configs/squid-v2/config.d.ts +4 -0
- package/dist/configs/squid-v2/config.d.ts.map +1 -0
- package/dist/configs/squid-v2/config.js +146 -0
- package/dist/configs/squid-v2/constants.d.ts +2 -0
- package/dist/configs/squid-v2/constants.d.ts.map +1 -0
- package/dist/configs/squid-v2/constants.js +1 -0
- package/dist/configs/stargate/abis/StargatePool.d.ts +41 -0
- package/dist/configs/stargate/abis/StargatePool.d.ts.map +1 -0
- package/dist/configs/stargate/abis/StargatePool.js +318 -0
- package/dist/configs/stargate/abis/TokenMessaging.d.ts +16 -0
- package/dist/configs/stargate/abis/TokenMessaging.d.ts.map +1 -0
- package/dist/configs/stargate/abis/TokenMessaging.js +21 -0
- package/dist/configs/stargate/calldata/constants.d.ts +249 -0
- package/dist/configs/stargate/calldata/constants.d.ts.map +1 -0
- package/dist/configs/stargate/calldata/constants.js +273 -0
- package/dist/configs/stargate/calldata/index.d.ts +6 -0
- package/dist/configs/stargate/calldata/index.d.ts.map +1 -0
- package/dist/configs/stargate/calldata/index.js +127 -0
- package/dist/configs/stargate/calldata/types.d.ts +51 -0
- package/dist/configs/stargate/calldata/types.d.ts.map +1 -0
- package/dist/configs/stargate/calldata/types.js +10 -0
- package/dist/configs/stargate/common/config.d.ts +88 -0
- package/dist/configs/stargate/common/config.d.ts.map +1 -0
- package/dist/configs/stargate/common/config.js +93 -0
- package/dist/configs/stargate/common/constants.d.ts +5 -0
- package/dist/configs/stargate/common/constants.d.ts.map +1 -0
- package/dist/configs/stargate/common/constants.js +7 -0
- package/dist/configs/stargate/common/index.d.ts +3 -0
- package/dist/configs/stargate/common/index.d.ts.map +1 -0
- package/dist/configs/stargate/common/index.js +2 -0
- package/dist/configs/stargate/configs/bus/config.d.ts +4 -0
- package/dist/configs/stargate/configs/bus/config.d.ts.map +1 -0
- package/dist/configs/stargate/configs/bus/config.js +41 -0
- package/dist/configs/stargate/configs/taxi/config.d.ts +4 -0
- package/dist/configs/stargate/configs/taxi/config.d.ts.map +1 -0
- package/dist/configs/stargate/configs/taxi/config.js +58 -0
- package/dist/configs/stargate/types/index.d.ts +12 -0
- package/dist/configs/stargate/types/index.d.ts.map +1 -0
- package/dist/configs/stargate/types/index.js +15 -0
- package/dist/configs/symbiosis/config.d.ts +4 -0
- package/dist/configs/symbiosis/config.d.ts.map +1 -0
- package/dist/configs/symbiosis/config.js +119 -0
- package/dist/configs/utils/index.d.ts +2 -0
- package/dist/configs/utils/index.d.ts.map +1 -0
- package/dist/configs/utils/index.js +3 -0
- package/dist/configs/xy/config.d.ts +4 -0
- package/dist/configs/xy/config.d.ts.map +1 -0
- package/dist/configs/xy/config.js +176 -0
- package/dist/configs/zenlink/calldata/aggregationRouterV2ABI.d.ts +49 -0
- package/dist/configs/zenlink/calldata/aggregationRouterV2ABI.d.ts.map +1 -0
- package/dist/configs/zenlink/calldata/aggregationRouterV2ABI.js +63 -0
- package/dist/configs/zenlink/calldata/index.d.ts +18 -0
- package/dist/configs/zenlink/calldata/index.d.ts.map +1 -0
- package/dist/configs/zenlink/calldata/index.js +35 -0
- package/dist/configs/zenlink/config.d.ts +4 -0
- package/dist/configs/zenlink/config.d.ts.map +1 -0
- package/dist/configs/zenlink/config.js +109 -0
- package/dist/configs/zenlink/errors.d.ts +15 -0
- package/dist/configs/zenlink/errors.d.ts.map +1 -0
- package/dist/configs/zenlink/errors.js +8 -0
- package/dist/index.d.ts +8 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +7 -0
- package/dist/types/index.d.ts +31 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +52 -0
- package/dist/walletClient.d.ts +4433 -0
- package/dist/walletClient.d.ts.map +1 -0
- package/dist/walletClient.js +7 -0
- package/package.json +27 -0
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { CurrencyHandler, NATIVE_PLACEHOLDER } from '@1delta/lib-utils';
|
|
2
|
+
import { OrderBookApi, OrderQuoteSideKindSell } from '@cowprotocol/cow-sdk';
|
|
3
|
+
import { zeroAddress } from 'viem';
|
|
4
|
+
import { toSupportedChainId } from '../utils/toSupportedChainId';
|
|
5
|
+
export async function getCowSwapReadonlyQuote(fromChainId, fromTokenAddress, toTokenAddress, amountIn) {
|
|
6
|
+
const chainId = toSupportedChainId(fromChainId);
|
|
7
|
+
if (!chainId)
|
|
8
|
+
return undefined;
|
|
9
|
+
const orderBookApi = new OrderBookApi({
|
|
10
|
+
chainId,
|
|
11
|
+
});
|
|
12
|
+
const sellToken = CurrencyHandler.addressToWrappedAddress(fromTokenAddress === NATIVE_PLACEHOLDER ? zeroAddress : fromTokenAddress, fromChainId);
|
|
13
|
+
const buyToken = CurrencyHandler.addressToWrappedAddress(toTokenAddress === NATIVE_PLACEHOLDER ? zeroAddress : toTokenAddress, fromChainId);
|
|
14
|
+
if (!buyToken || !sellToken)
|
|
15
|
+
return undefined;
|
|
16
|
+
const quote = await orderBookApi.getQuote({
|
|
17
|
+
kind: OrderQuoteSideKindSell.SELL,
|
|
18
|
+
sellAmountBeforeFee: amountIn,
|
|
19
|
+
sellToken,
|
|
20
|
+
buyToken,
|
|
21
|
+
receiver: zeroAddress,
|
|
22
|
+
from: zeroAddress,
|
|
23
|
+
});
|
|
24
|
+
return {
|
|
25
|
+
quote,
|
|
26
|
+
contractAddress: undefined,
|
|
27
|
+
};
|
|
28
|
+
}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export declare function getCowSwapQuote(fromChainId: string, fromTokenAddress: string, fromTokenDecimals: number, toTokenAddress: string, toTokenDecimals: number, amountIn: string, fromAddress: string, toAddress: string, slippage: number): Promise<{
|
|
2
|
+
quote: import("@cowprotocol/cow-sdk").QuoteAndPost;
|
|
3
|
+
contractAddress: string;
|
|
4
|
+
} | undefined>;
|
|
5
|
+
//# sourceMappingURL=route.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"route.d.ts","sourceRoot":"","sources":["../../../../src/configs/cowswap/swap/route.ts"],"names":[],"mappings":"AAiDA,wBAAsB,eAAe,CACnC,WAAW,EAAE,MAAM,EACnB,gBAAgB,EAAE,MAAM,EACxB,iBAAiB,EAAE,MAAM,EACzB,cAAc,EAAE,MAAM,EACtB,eAAe,EAAE,MAAM,EACvB,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM;;;eAwDjB"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { getViemProvider } from '@1delta/lib-utils';
|
|
2
|
+
import { COW_PROTOCOL_VAULT_RELAYER_ADDRESS, OrderKind, setGlobalAdapter, TradingSdk, } from '@cowprotocol/cow-sdk';
|
|
3
|
+
import { ViemAdapter } from '@cowprotocol/sdk-viem-adapter';
|
|
4
|
+
import { getWalletClient } from '../../../walletClient';
|
|
5
|
+
import { toSupportedChainId } from '../utils/toSupportedChainId';
|
|
6
|
+
async function setupSdk(chainId) {
|
|
7
|
+
const cowChainId = toSupportedChainId(chainId);
|
|
8
|
+
if (!cowChainId)
|
|
9
|
+
throw new Error(`ChainId ${chainId} not supported by CoW Swap.`);
|
|
10
|
+
const walletClient = getWalletClient();
|
|
11
|
+
if (!walletClient)
|
|
12
|
+
throw new Error('Wallet client not initialized');
|
|
13
|
+
const provider = getViemProvider({ chainId });
|
|
14
|
+
const adapter = new ViemAdapter({
|
|
15
|
+
provider,
|
|
16
|
+
walletClient,
|
|
17
|
+
});
|
|
18
|
+
setGlobalAdapter(adapter);
|
|
19
|
+
const options = undefined;
|
|
20
|
+
const tradingSdk = new TradingSdk({
|
|
21
|
+
chainId: cowChainId,
|
|
22
|
+
appCode: '1delta',
|
|
23
|
+
}, options, undefined);
|
|
24
|
+
return tradingSdk;
|
|
25
|
+
}
|
|
26
|
+
export async function getCowSwapQuote(fromChainId, fromTokenAddress, fromTokenDecimals, toTokenAddress, toTokenDecimals, amountIn, fromAddress, toAddress, slippage) {
|
|
27
|
+
const chainId = toSupportedChainId(fromChainId);
|
|
28
|
+
if (!chainId)
|
|
29
|
+
return undefined;
|
|
30
|
+
const tradingSdk = await setupSdk(fromChainId);
|
|
31
|
+
const contractAddress = COW_PROTOCOL_VAULT_RELAYER_ADDRESS[chainId];
|
|
32
|
+
if (!contractAddress)
|
|
33
|
+
return undefined;
|
|
34
|
+
const quote = await tradingSdk.getQuote({
|
|
35
|
+
chainId,
|
|
36
|
+
kind: OrderKind.SELL,
|
|
37
|
+
owner: fromAddress,
|
|
38
|
+
amount: amountIn,
|
|
39
|
+
sellToken: fromTokenAddress,
|
|
40
|
+
sellTokenDecimals: fromTokenDecimals,
|
|
41
|
+
buyToken: toTokenAddress,
|
|
42
|
+
buyTokenDecimals: toTokenDecimals,
|
|
43
|
+
slippageBps: slippage * 100,
|
|
44
|
+
receiver: toAddress,
|
|
45
|
+
}, {});
|
|
46
|
+
const originalPostSwapOrderFromQuote = quote.postSwapOrderFromQuote.bind(quote);
|
|
47
|
+
quote.postSwapOrderFromQuote = async (advancedSettings, signingStepManager) => {
|
|
48
|
+
const walletClient = getWalletClient();
|
|
49
|
+
const provider = getViemProvider({ chainId: fromChainId });
|
|
50
|
+
const adapter = new ViemAdapter({
|
|
51
|
+
provider,
|
|
52
|
+
walletClient,
|
|
53
|
+
});
|
|
54
|
+
setGlobalAdapter(adapter);
|
|
55
|
+
return await originalPostSwapOrderFromQuote(advancedSettings, signingStepManager);
|
|
56
|
+
};
|
|
57
|
+
return {
|
|
58
|
+
quote,
|
|
59
|
+
contractAddress,
|
|
60
|
+
};
|
|
61
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/configs/cowswap/track/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAIhE,wBAAsB,cAAc,CAClC,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC;IAAE,MAAM,EAAE,WAAW,GAAG,SAAS,CAAC;IAAC,IAAI,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,CAAC,CA2BxE"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { OrderBookApi, OrderStatus } from '@cowprotocol/cow-sdk';
|
|
2
|
+
import { toSupportedChainId } from '../utils/toSupportedChainId';
|
|
3
|
+
export async function getOrderStatus(fromChainId, orderId) {
|
|
4
|
+
const chainId = toSupportedChainId(fromChainId);
|
|
5
|
+
if (!chainId)
|
|
6
|
+
return { status: undefined, hash: undefined };
|
|
7
|
+
try {
|
|
8
|
+
const orderBookApi = new OrderBookApi({
|
|
9
|
+
chainId,
|
|
10
|
+
});
|
|
11
|
+
const order = await orderBookApi.getOrder(orderId);
|
|
12
|
+
if (order.status === OrderStatus.FULFILLED) {
|
|
13
|
+
const trades = await orderBookApi.getTrades({ orderUid: order.uid });
|
|
14
|
+
return {
|
|
15
|
+
status: order.status,
|
|
16
|
+
hash: trades[0].txHash ?? undefined,
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
return {
|
|
20
|
+
status: order.status,
|
|
21
|
+
hash: undefined,
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
catch (e) {
|
|
25
|
+
return { status: undefined, hash: undefined };
|
|
26
|
+
}
|
|
27
|
+
}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { RawCurrency } from '@1delta/lib-utils';
|
|
2
|
+
export declare const getCowSwapSlippage: (fromCurrency: RawCurrency, defaultSlippage: number) => number;
|
|
3
|
+
export declare const getCowSwapSlippageForNative: (chainId: string) => number;
|
|
4
|
+
//# sourceMappingURL=getCowSwapSlippage.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getCowSwapSlippage.d.ts","sourceRoot":"","sources":["../../../../src/configs/cowswap/utils/getCowSwapSlippage.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,WAAW,EAEZ,MAAM,mBAAmB,CAAA;AAE1B,eAAO,MAAM,kBAAkB,GAC7B,cAAc,WAAW,EACzB,iBAAiB,MAAM,KACtB,MAIF,CAAA;AAWD,eAAO,MAAM,2BAA2B,GAAI,SAAS,MAAM,KAAG,MAI7D,CAAA"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { CurrencyHandler, SupportedChainId, } from '@1delta/lib-utils';
|
|
2
|
+
export const getCowSwapSlippage = (fromCurrency, defaultSlippage) => {
|
|
3
|
+
const cowSlippage = tryGetCowSwapSlippageForNative(fromCurrency) ?? 0;
|
|
4
|
+
return defaultSlippage > cowSlippage ? defaultSlippage : cowSlippage;
|
|
5
|
+
};
|
|
6
|
+
const tryGetCowSwapSlippageForNative = (fromCurrency) => {
|
|
7
|
+
if (CurrencyHandler.isNative(fromCurrency)) {
|
|
8
|
+
return getCowSwapSlippageForNative(fromCurrency.chainId);
|
|
9
|
+
}
|
|
10
|
+
return null;
|
|
11
|
+
};
|
|
12
|
+
export const getCowSwapSlippageForNative = (chainId) => {
|
|
13
|
+
if (chainId === SupportedChainId.ETHEREUM_MAINNET)
|
|
14
|
+
return 2; // 2%
|
|
15
|
+
return 0.5; // 0.5%
|
|
16
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"toSupportedChainId.d.ts","sourceRoot":"","sources":["../../../../src/configs/cowswap/utils/toSupportedChainId.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AAEvD,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,MAAM,GACd,gBAAgB,GAAG,SAAS,CAY9B"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { SupportedChainId } from '@cowprotocol/cow-sdk';
|
|
2
|
+
export function toSupportedChainId(chainId) {
|
|
3
|
+
const numericChainId = parseInt(chainId, 10);
|
|
4
|
+
if (isNaN(numericChainId)) {
|
|
5
|
+
return undefined;
|
|
6
|
+
}
|
|
7
|
+
if (SupportedChainId[numericChainId]) {
|
|
8
|
+
return numericChainId;
|
|
9
|
+
}
|
|
10
|
+
return undefined;
|
|
11
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/configs/crosscurve/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,gBAAgB,EAEjB,MAAM,qBAAqB,CAAA;AA2C5B,eAAO,MAAM,gBAAgB,EAAE,gBAgK9B,CAAA;AAED,eAAe,gBAAgB,CAAA"}
|
|
@@ -0,0 +1,185 @@
|
|
|
1
|
+
import { buildTransactionData, CrossChainBusinessException, } from '@1delta/bridge-core';
|
|
2
|
+
import { SupportedChainId } from '@1delta/lib-utils';
|
|
3
|
+
import axios from 'axios';
|
|
4
|
+
import { Bridge } from '../../types';
|
|
5
|
+
import { NATIVE_PLACEHOLDER } from '../stargate/common';
|
|
6
|
+
import { bridgeIcon } from '../utils';
|
|
7
|
+
const CROSSCURVE_API_HOST = 'https://api.crosscurve.fi';
|
|
8
|
+
const nativeCoinAddress = '0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE';
|
|
9
|
+
const tokenAddressMapping = {
|
|
10
|
+
'0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE': '0x0000000000000000000000000000000000000000',
|
|
11
|
+
};
|
|
12
|
+
const MIN_AMOUNT = {
|
|
13
|
+
[nativeCoinAddress]: {
|
|
14
|
+
[SupportedChainId.BASE]: 10n ** 15n,
|
|
15
|
+
[SupportedChainId.BLAST]: 10n ** 15n,
|
|
16
|
+
[SupportedChainId.ARBITRUM_ONE]: 10n ** 15n,
|
|
17
|
+
[SupportedChainId.OP_MAINNET]: 10n ** 15n,
|
|
18
|
+
[SupportedChainId.ETHEREUM_MAINNET]: 10n ** 15n,
|
|
19
|
+
},
|
|
20
|
+
};
|
|
21
|
+
const ERROR_CODES = {
|
|
22
|
+
ERROR: { code: 'ERROR', message: 'Unknown error occurred' },
|
|
23
|
+
NOT_SUPPORT: { code: 'NOT_SUPPORT', message: 'Operation not supported' },
|
|
24
|
+
NOT_FOUND: { code: 'NOT_FOUND', message: 'transaction not found' },
|
|
25
|
+
};
|
|
26
|
+
const NAME = Bridge.CROSSCURVE;
|
|
27
|
+
var Status;
|
|
28
|
+
(function (Status) {
|
|
29
|
+
Status["SUCCESS"] = "completed";
|
|
30
|
+
Status["FAILED"] = "failed";
|
|
31
|
+
Status["IN_PROGRESS"] = "in progress";
|
|
32
|
+
Status["REVERTED"] = "reverted";
|
|
33
|
+
Status["CANCELED"] = "canceled";
|
|
34
|
+
})(Status || (Status = {}));
|
|
35
|
+
export const crosscurveConfig = {
|
|
36
|
+
name: NAME,
|
|
37
|
+
icon: {
|
|
38
|
+
light: bridgeIcon(NAME),
|
|
39
|
+
dark: bridgeIcon(NAME),
|
|
40
|
+
},
|
|
41
|
+
apiInterface: {
|
|
42
|
+
route: {
|
|
43
|
+
url: `${CROSSCURVE_API_HOST}/routing/scan`,
|
|
44
|
+
method: 'post',
|
|
45
|
+
before: async (params) => {
|
|
46
|
+
if (BigInt(params.fromAmount) <
|
|
47
|
+
MIN_AMOUNT[params.fromTokenAddress]?.[params.fromChainId]) {
|
|
48
|
+
throw new CrossChainBusinessException(ERROR_CODES.NOT_SUPPORT);
|
|
49
|
+
}
|
|
50
|
+
},
|
|
51
|
+
requestMapping: {
|
|
52
|
+
params: {
|
|
53
|
+
format: (params) => {
|
|
54
|
+
return {
|
|
55
|
+
chainIdOut: Number(params.toChainId),
|
|
56
|
+
tokenOut: params.toTokenAddress == nativeCoinAddress
|
|
57
|
+
? tokenAddressMapping[nativeCoinAddress]
|
|
58
|
+
: params.toTokenAddress,
|
|
59
|
+
chainIdIn: Number(params.fromChainId),
|
|
60
|
+
amountIn: params.fromAmount,
|
|
61
|
+
tokenIn: params.fromTokenAddress == nativeCoinAddress
|
|
62
|
+
? tokenAddressMapping[nativeCoinAddress]
|
|
63
|
+
: params.fromTokenAddress,
|
|
64
|
+
};
|
|
65
|
+
},
|
|
66
|
+
},
|
|
67
|
+
slippage: 'slippage',
|
|
68
|
+
},
|
|
69
|
+
requestAfter: async (res, headers, params) => {
|
|
70
|
+
if (!res || !res[0]) {
|
|
71
|
+
throw new CrossChainBusinessException(ERROR_CODES.ERROR);
|
|
72
|
+
}
|
|
73
|
+
// Call buildTransactionData to get the transaction data since the response from the route is not complete
|
|
74
|
+
const route = res[0];
|
|
75
|
+
const tx = await buildTransactionData(NAME, params, route);
|
|
76
|
+
route.data = tx?.data;
|
|
77
|
+
route.value = tx?.value;
|
|
78
|
+
route.to = tx?.to;
|
|
79
|
+
return route;
|
|
80
|
+
},
|
|
81
|
+
responseMapping: {
|
|
82
|
+
name: NAME,
|
|
83
|
+
depositContract: 'to',
|
|
84
|
+
toAmount: 'amountOut',
|
|
85
|
+
fee: {
|
|
86
|
+
destinationGasFee: {
|
|
87
|
+
format: (route, { crossChainParamsData }) => {
|
|
88
|
+
const isNatveIn = crossChainParamsData.fromTokenAddress === NATIVE_PLACEHOLDER;
|
|
89
|
+
return isNatveIn ? route.value - route.amountIn : route.value;
|
|
90
|
+
},
|
|
91
|
+
},
|
|
92
|
+
},
|
|
93
|
+
estimatedDuration: '300', // route does not provide Estimation Duration
|
|
94
|
+
interfaceParamData: {
|
|
95
|
+
format: (route) => {
|
|
96
|
+
return route;
|
|
97
|
+
},
|
|
98
|
+
},
|
|
99
|
+
transactionData: {
|
|
100
|
+
data: 'data',
|
|
101
|
+
value: 'value',
|
|
102
|
+
to: 'to',
|
|
103
|
+
},
|
|
104
|
+
},
|
|
105
|
+
},
|
|
106
|
+
buildTransactionData: {
|
|
107
|
+
url: `${CROSSCURVE_API_HOST}/tx/create`,
|
|
108
|
+
method: 'post',
|
|
109
|
+
before: async (params, interfaceParamData) => {
|
|
110
|
+
const estimate = await axios.post(`${CROSSCURVE_API_HOST}/estimate`, interfaceParamData);
|
|
111
|
+
return estimate?.data;
|
|
112
|
+
},
|
|
113
|
+
requestMapping: {
|
|
114
|
+
from: 'fromAddress',
|
|
115
|
+
recipient: 'toAddress',
|
|
116
|
+
routing: {
|
|
117
|
+
format: (params, { interfaceParamData }) => {
|
|
118
|
+
return interfaceParamData;
|
|
119
|
+
},
|
|
120
|
+
},
|
|
121
|
+
estimate: {
|
|
122
|
+
format: (params, { beforeResult }) => {
|
|
123
|
+
return beforeResult;
|
|
124
|
+
},
|
|
125
|
+
},
|
|
126
|
+
buildCalldata: true,
|
|
127
|
+
},
|
|
128
|
+
requestAfter: (res) => {
|
|
129
|
+
if (!res) {
|
|
130
|
+
throw new CrossChainBusinessException(ERROR_CODES.ERROR);
|
|
131
|
+
}
|
|
132
|
+
return res;
|
|
133
|
+
},
|
|
134
|
+
responseMapping: {
|
|
135
|
+
data: 'data',
|
|
136
|
+
value: 'value',
|
|
137
|
+
to: 'to',
|
|
138
|
+
},
|
|
139
|
+
},
|
|
140
|
+
status: {
|
|
141
|
+
url: `${CROSSCURVE_API_HOST}/search`,
|
|
142
|
+
method: 'get',
|
|
143
|
+
requestMapping: {
|
|
144
|
+
search: 'fromHash',
|
|
145
|
+
},
|
|
146
|
+
requestAfter: (res) => {
|
|
147
|
+
if (!res?.result || !res?.result[0]) {
|
|
148
|
+
throw new CrossChainBusinessException(ERROR_CODES.ERROR);
|
|
149
|
+
}
|
|
150
|
+
return res?.result[0];
|
|
151
|
+
},
|
|
152
|
+
responseMapping: {
|
|
153
|
+
toHash: 'destination.transactionHash',
|
|
154
|
+
statusInfo: {
|
|
155
|
+
format: (result) => {
|
|
156
|
+
const data = {
|
|
157
|
+
status: 'PENDING',
|
|
158
|
+
bridgeResponseResult: result.status,
|
|
159
|
+
};
|
|
160
|
+
switch (result.status) {
|
|
161
|
+
case Status.SUCCESS:
|
|
162
|
+
data.status = 'DONE';
|
|
163
|
+
break;
|
|
164
|
+
case Status.FAILED:
|
|
165
|
+
data.status = 'FAILED';
|
|
166
|
+
data.message = result.failureReason || 'Transaction failed';
|
|
167
|
+
break;
|
|
168
|
+
case Status.IN_PROGRESS:
|
|
169
|
+
data.status = 'PENDING';
|
|
170
|
+
break;
|
|
171
|
+
case Status.REVERTED:
|
|
172
|
+
data.status = 'TRANSFER_REFUNDED';
|
|
173
|
+
break;
|
|
174
|
+
case Status.CANCELED:
|
|
175
|
+
data.status = 'FAILED';
|
|
176
|
+
break;
|
|
177
|
+
}
|
|
178
|
+
return data;
|
|
179
|
+
},
|
|
180
|
+
},
|
|
181
|
+
},
|
|
182
|
+
},
|
|
183
|
+
},
|
|
184
|
+
};
|
|
185
|
+
export default crosscurveConfig;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { GasZipChain } from './types';
|
|
2
|
+
/**
|
|
3
|
+
* Fetches chain data from the Gas.zip API.
|
|
4
|
+
*
|
|
5
|
+
* @returns A Promise that resolves to a Map where the key is the chain ID (number)
|
|
6
|
+
* and the value is the complete Chain object.
|
|
7
|
+
* @throws Will throw an error if the network request fails.
|
|
8
|
+
*/
|
|
9
|
+
export declare function getGasZipChains(): Promise<Map<string, GasZipChain>>;
|
|
10
|
+
//# sourceMappingURL=fetch.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fetch.d.ts","sourceRoot":"","sources":["../../../../src/configs/gas-zip/chains/fetch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAA2B,MAAM,SAAS,CAAA;AAM9D;;;;;;GAMG;AACH,wBAAsB,eAAe,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,CAuBzE"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
const chainsCache = new Map();
|
|
2
|
+
const API_URL = 'https://backend.gas.zip/v2/chains';
|
|
3
|
+
/**
|
|
4
|
+
* Fetches chain data from the Gas.zip API.
|
|
5
|
+
*
|
|
6
|
+
* @returns A Promise that resolves to a Map where the key is the chain ID (number)
|
|
7
|
+
* and the value is the complete Chain object.
|
|
8
|
+
* @throws Will throw an error if the network request fails.
|
|
9
|
+
*/
|
|
10
|
+
export async function getGasZipChains() {
|
|
11
|
+
if (chainsCache.size > 0) {
|
|
12
|
+
return chainsCache;
|
|
13
|
+
}
|
|
14
|
+
try {
|
|
15
|
+
const response = await fetch(API_URL);
|
|
16
|
+
if (!response.ok) {
|
|
17
|
+
throw new Error(`Failed to fetch chains: ${response.statusText}`);
|
|
18
|
+
}
|
|
19
|
+
const data = await response.json();
|
|
20
|
+
for (const chain of data.chains) {
|
|
21
|
+
chainsCache.set(chain.chain.toString(), chain);
|
|
22
|
+
}
|
|
23
|
+
return chainsCache;
|
|
24
|
+
}
|
|
25
|
+
catch (error) {
|
|
26
|
+
console.error('An error occurred while fetching GasZip chain data:', error);
|
|
27
|
+
throw error;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
export interface GasZipChain {
|
|
2
|
+
bal: string;
|
|
3
|
+
chain: number;
|
|
4
|
+
decimals: number;
|
|
5
|
+
explorer: string;
|
|
6
|
+
gas: string;
|
|
7
|
+
gwei: string;
|
|
8
|
+
inbound: boolean;
|
|
9
|
+
mainnet: boolean;
|
|
10
|
+
maxInbound: number;
|
|
11
|
+
maxInboundNative: string | number;
|
|
12
|
+
maxOutbound: number;
|
|
13
|
+
maxOutboundNative: string | number;
|
|
14
|
+
minOutbound: number;
|
|
15
|
+
minOutboundNative: string | number;
|
|
16
|
+
name: string;
|
|
17
|
+
price: number;
|
|
18
|
+
rpcs: string[];
|
|
19
|
+
short: number;
|
|
20
|
+
symbol: string;
|
|
21
|
+
}
|
|
22
|
+
export interface GasZipChainsApiResponse {
|
|
23
|
+
chains: GasZipChain[];
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/configs/gas-zip/chains/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,MAAM,CAAA;IACX,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,EAAE,MAAM,CAAA;IAChB,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,OAAO,CAAA;IAChB,OAAO,EAAE,OAAO,CAAA;IAChB,UAAU,EAAE,MAAM,CAAA;IAElB,gBAAgB,EAAE,MAAM,GAAG,MAAM,CAAA;IACjC,WAAW,EAAE,MAAM,CAAA;IACnB,iBAAiB,EAAE,MAAM,GAAG,MAAM,CAAA;IAClC,WAAW,EAAE,MAAM,CAAA;IACnB,iBAAiB,EAAE,MAAM,GAAG,MAAM,CAAA;IAClC,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,EAAE,CAAA;IACd,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;CACf;AAED,MAAM,WAAW,uBAAuB;IACtC,MAAM,EAAE,WAAW,EAAE,CAAA;CACtB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/configs/gas-zip/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,gBAAgB,EAEjB,MAAM,qBAAqB,CAAA;AA6B5B,eAAO,MAAM,YAAY,EAAE,gBAkG1B,CAAA;AAED,eAAe,YAAY,CAAA"}
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
import { CrossChainBusinessException, } from '@1delta/bridge-core';
|
|
2
|
+
import { Bridge } from '../../types';
|
|
3
|
+
import { bridgeIcon } from '../utils';
|
|
4
|
+
import { getGasZipChains } from './chains/fetch';
|
|
5
|
+
const serverHost = 'https://backend.gas.zip/v2';
|
|
6
|
+
const serverHostStatus = 'https://backend.gas.zip/v2/search';
|
|
7
|
+
const NAME = Bridge.GASZIP;
|
|
8
|
+
const errorCodes = {
|
|
9
|
+
ERROR: { code: 'ERROR', message: 'unknown error' },
|
|
10
|
+
NOT_SUPPORT: { code: 'NOT_SUPPORT', message: 'NOT SUPPORT' },
|
|
11
|
+
DEPOSIT_NOT_FOUND: {
|
|
12
|
+
code: 'DEPOSIT_NOT_FOUND',
|
|
13
|
+
message: 'deposit not found',
|
|
14
|
+
},
|
|
15
|
+
};
|
|
16
|
+
var Status;
|
|
17
|
+
(function (Status) {
|
|
18
|
+
Status["CONFIRMED"] = "CONFIRMED";
|
|
19
|
+
Status["PENDING"] = "PENDING";
|
|
20
|
+
Status["NOT_FOUND"] = "NOT_FOUND";
|
|
21
|
+
Status["CANCELLED"] = "CANCELLED";
|
|
22
|
+
})(Status || (Status = {}));
|
|
23
|
+
const native = '0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE';
|
|
24
|
+
export const gasZipConfig = {
|
|
25
|
+
name: NAME,
|
|
26
|
+
icon: {
|
|
27
|
+
light: bridgeIcon(NAME),
|
|
28
|
+
dark: bridgeIcon(NAME),
|
|
29
|
+
},
|
|
30
|
+
apiInterface: {
|
|
31
|
+
route: {
|
|
32
|
+
url: `${serverHost}/quotes/:fromChainId/:amount/:chains`,
|
|
33
|
+
method: 'get',
|
|
34
|
+
headers: {},
|
|
35
|
+
pathParams: {
|
|
36
|
+
fromChainId: 'fromChainId',
|
|
37
|
+
chains: 'toChainId',
|
|
38
|
+
amount: 'fromAmount',
|
|
39
|
+
},
|
|
40
|
+
requestMapping: {
|
|
41
|
+
from: 'fromAddress',
|
|
42
|
+
to: 'toAddress',
|
|
43
|
+
slippage: 'slippage',
|
|
44
|
+
},
|
|
45
|
+
before: async (params) => {
|
|
46
|
+
if (params.toTokenAddress !== native ||
|
|
47
|
+
params.fromTokenAddress !== native)
|
|
48
|
+
throw new CrossChainBusinessException(errorCodes.NOT_SUPPORT);
|
|
49
|
+
const chains = await getGasZipChains();
|
|
50
|
+
const gasZipSrcChainId = chains.get(params.fromChainId)?.short;
|
|
51
|
+
const gasZipDestChainId = chains.get(params.toChainId)?.short;
|
|
52
|
+
if (!gasZipSrcChainId || !gasZipDestChainId)
|
|
53
|
+
throw new CrossChainBusinessException(errorCodes.NOT_SUPPORT);
|
|
54
|
+
params.gasZipDestChainId = gasZipDestChainId;
|
|
55
|
+
},
|
|
56
|
+
requestAfter: (data, _, crossChainParams) => {
|
|
57
|
+
if (!data || !crossChainParams.gasZipDestChainId)
|
|
58
|
+
throw new CrossChainBusinessException(errorCodes.NOT_SUPPORT);
|
|
59
|
+
return {
|
|
60
|
+
...data,
|
|
61
|
+
gasZipDestChainId: crossChainParams.gasZipDestChainId,
|
|
62
|
+
};
|
|
63
|
+
},
|
|
64
|
+
responseMapping: {
|
|
65
|
+
name: NAME,
|
|
66
|
+
depositContract: 'contractDepositTxn.to',
|
|
67
|
+
toAmount: 'quotes[0].expected',
|
|
68
|
+
fee: {},
|
|
69
|
+
estimatedDuration: 'quotes[0].speed',
|
|
70
|
+
transactionData: {
|
|
71
|
+
data: 'contractDepositTxn.data',
|
|
72
|
+
value: 'contractDepositTxn.value',
|
|
73
|
+
to: 'contractDepositTxn.to',
|
|
74
|
+
},
|
|
75
|
+
interfaceParamData: {
|
|
76
|
+
contractAddress: 'contractDepositTxn.to',
|
|
77
|
+
gasZipDestChainId: 'gasZipDestChainId',
|
|
78
|
+
},
|
|
79
|
+
},
|
|
80
|
+
},
|
|
81
|
+
status: {
|
|
82
|
+
url: `${serverHostStatus}/:txHash`,
|
|
83
|
+
method: 'get',
|
|
84
|
+
pathParams: {
|
|
85
|
+
txHash: 'fromHash',
|
|
86
|
+
},
|
|
87
|
+
requestMapping: {},
|
|
88
|
+
requestAfter: (res, _, crossChainParamsData) => {
|
|
89
|
+
return res;
|
|
90
|
+
},
|
|
91
|
+
responseMapping: {
|
|
92
|
+
toHash: 'txs[0].hash',
|
|
93
|
+
statusInfo: {
|
|
94
|
+
format: (res) => {
|
|
95
|
+
const status = res.txs?.[0]?.status;
|
|
96
|
+
const data = {
|
|
97
|
+
status: 'PENDING',
|
|
98
|
+
bridgeResponseResult: status,
|
|
99
|
+
};
|
|
100
|
+
if (status === Status.CONFIRMED) {
|
|
101
|
+
data.status = 'DONE';
|
|
102
|
+
}
|
|
103
|
+
else if (status === Status.PENDING) {
|
|
104
|
+
data.status = 'PENDING';
|
|
105
|
+
}
|
|
106
|
+
else if (status === Status.NOT_FOUND) {
|
|
107
|
+
data.status = 'NOT_FOUND';
|
|
108
|
+
}
|
|
109
|
+
else if (status === Status.CANCELLED) {
|
|
110
|
+
data.status = 'FAILED';
|
|
111
|
+
data.message = `failed: ${res.msg}`;
|
|
112
|
+
}
|
|
113
|
+
return data;
|
|
114
|
+
},
|
|
115
|
+
},
|
|
116
|
+
},
|
|
117
|
+
},
|
|
118
|
+
},
|
|
119
|
+
errorCodes,
|
|
120
|
+
};
|
|
121
|
+
export default gasZipConfig;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/configs/index.ts"],"names":[],"mappings":"AA0CA,eAAO,MAAM,mBAAmB,mEAE/B,CAAA"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { acrossConfig } from './across/config';
|
|
2
|
+
import { axelarConfig } from './axelar/config';
|
|
3
|
+
import { butterConfig } from './butter/config';
|
|
4
|
+
import { cowswapConfig } from './cowswap/config';
|
|
5
|
+
import { crosscurveConfig } from './crosscurve/config';
|
|
6
|
+
import { gasZipConfig } from './gas-zip/config';
|
|
7
|
+
import { layerswapConfig } from './layerswap/config';
|
|
8
|
+
import { lifiConfig } from './lifi/config';
|
|
9
|
+
import { mayanConfig } from './mayan/config';
|
|
10
|
+
import { orbiterConfig } from './orbiter/config';
|
|
11
|
+
import { routerConfig } from './router/config';
|
|
12
|
+
import { squidv1Config } from './squid-v1/config';
|
|
13
|
+
import { squidv2Config } from './squid-v2/config';
|
|
14
|
+
import { stargateBusConfig } from './stargate/configs/bus/config';
|
|
15
|
+
import { stargateTaxiConfig } from './stargate/configs/taxi/config';
|
|
16
|
+
import { symbiosisConfig } from './symbiosis/config';
|
|
17
|
+
import { xyConfig } from './xy/config';
|
|
18
|
+
import { zenlinkConfig } from './zenlink/config';
|
|
19
|
+
const configs = {
|
|
20
|
+
[acrossConfig.name]: acrossConfig,
|
|
21
|
+
[butterConfig.name]: butterConfig,
|
|
22
|
+
[squidv1Config.name]: squidv1Config,
|
|
23
|
+
[squidv2Config.name]: squidv2Config,
|
|
24
|
+
[orbiterConfig.name]: orbiterConfig,
|
|
25
|
+
[routerConfig.name]: routerConfig,
|
|
26
|
+
[mayanConfig.name]: mayanConfig,
|
|
27
|
+
[xyConfig.name]: xyConfig,
|
|
28
|
+
[layerswapConfig.name]: layerswapConfig,
|
|
29
|
+
[crosscurveConfig.name]: crosscurveConfig,
|
|
30
|
+
[lifiConfig.name]: lifiConfig,
|
|
31
|
+
[stargateBusConfig.name]: stargateBusConfig,
|
|
32
|
+
[stargateTaxiConfig.name]: stargateTaxiConfig,
|
|
33
|
+
[symbiosisConfig.name]: symbiosisConfig,
|
|
34
|
+
[gasZipConfig.name]: gasZipConfig,
|
|
35
|
+
[axelarConfig.name]: axelarConfig,
|
|
36
|
+
[cowswapConfig.name]: cowswapConfig,
|
|
37
|
+
[zenlinkConfig.name]: zenlinkConfig,
|
|
38
|
+
};
|
|
39
|
+
export const getAllBridgeConfigs = () => {
|
|
40
|
+
return Object.values(configs);
|
|
41
|
+
};
|