rubic-sdk 5.34.0-alpha.eddy.2 → 5.34.0-alpha.eddy.22
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/lib/features/cross-chain/calculation-manager/providers/eddy-bridge/constants/eddy-bridge-contract-addresses.d.ts +1 -2
- package/lib/features/cross-chain/calculation-manager/providers/eddy-bridge/constants/eddy-bridge-contract-addresses.js +17 -12
- package/lib/features/cross-chain/calculation-manager/providers/eddy-bridge/constants/eddy-bridge-contract-addresses.js.map +1 -1
- package/lib/features/cross-chain/calculation-manager/providers/eddy-bridge/constants/swap-limits.js +10 -5
- package/lib/features/cross-chain/calculation-manager/providers/eddy-bridge/constants/swap-limits.js.map +1 -1
- package/lib/features/cross-chain/calculation-manager/providers/eddy-bridge/eddy-bridge-provider.d.ts +0 -3
- package/lib/features/cross-chain/calculation-manager/providers/eddy-bridge/eddy-bridge-provider.js +14 -83
- package/lib/features/cross-chain/calculation-manager/providers/eddy-bridge/eddy-bridge-provider.js.map +1 -1
- package/lib/features/cross-chain/calculation-manager/providers/eddy-bridge/eddy-bridge-trade.d.ts +3 -2
- package/lib/features/cross-chain/calculation-manager/providers/eddy-bridge/eddy-bridge-trade.js +13 -16
- package/lib/features/cross-chain/calculation-manager/providers/eddy-bridge/eddy-bridge-trade.js.map +1 -1
- package/lib/features/cross-chain/calculation-manager/providers/eddy-bridge/models/eddy-trade-types.d.ts +7 -2
- package/lib/features/cross-chain/calculation-manager/providers/eddy-bridge/services/eddy-bridge-contract-service.d.ts +3 -2
- package/lib/features/cross-chain/calculation-manager/providers/eddy-bridge/services/eddy-bridge-contract-service.js +27 -15
- package/lib/features/cross-chain/calculation-manager/providers/eddy-bridge/services/eddy-bridge-contract-service.js.map +1 -1
- package/lib/features/cross-chain/calculation-manager/providers/eddy-bridge/utils/eddy-bridge-routing-directions.d.ts +8 -0
- package/lib/features/cross-chain/calculation-manager/providers/eddy-bridge/utils/eddy-bridge-routing-directions.js +39 -22
- package/lib/features/cross-chain/calculation-manager/providers/eddy-bridge/utils/eddy-bridge-routing-directions.js.map +1 -1
- package/lib/features/cross-chain/calculation-manager/providers/eddy-bridge/utils/eddy-calculation-factory.d.ts +21 -0
- package/lib/features/cross-chain/calculation-manager/providers/eddy-bridge/utils/eddy-calculation-factory.js +83 -0
- package/lib/features/cross-chain/calculation-manager/providers/eddy-bridge/utils/eddy-calculation-factory.js.map +1 -0
- package/lib/features/cross-chain/calculation-manager/providers/eddy-bridge/utils/eddy-evm-config-factory.d.ts +2 -3
- package/lib/features/cross-chain/calculation-manager/providers/eddy-bridge/utils/eddy-evm-config-factory.js +17 -26
- package/lib/features/cross-chain/calculation-manager/providers/eddy-bridge/utils/eddy-evm-config-factory.js.map +1 -1
- package/lib/features/cross-chain/calculation-manager/providers/eddy-bridge/utils/find-transit-token-address.js +1 -1
- package/lib/features/cross-chain/calculation-manager/providers/eddy-bridge/utils/find-transit-token-address.js.map +1 -1
- package/lib/index.d.ts +1 -0
- package/lib/index.js +1 -0
- package/lib/index.js.map +1 -1
- package/package.json +1 -1
@@ -6,8 +6,7 @@ export declare const TSS_ADDRESSES_EDDY_BRIDGE: Record<TssAvailableEddyBridgeCha
|
|
6
6
|
export declare const CUSTODY_ADDRESSES: Partial<Record<EvmBlockchainName, string>>;
|
7
7
|
export declare const ZETA_CHAIN_SUPPORTED_TOKENS: ZetachainTokenInfo[];
|
8
8
|
interface ZetachainTokenInfo {
|
9
|
-
|
10
|
-
commonSymbol: string;
|
9
|
+
symbol: string;
|
11
10
|
relativeChain: EvmBlockchainName;
|
12
11
|
address: string;
|
13
12
|
}
|
@@ -2,6 +2,7 @@
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
3
|
exports.ZETA_CHAIN_SUPPORTED_TOKENS = exports.CUSTODY_ADDRESSES = exports.TSS_ADDRESSES_EDDY_BRIDGE = exports.EDDY_OMNI_CONTRACT_IN_ZETACHAIN_FOR_ANY_CHAIN = exports.EDDY_OMNI_CONTRACT_IN_ZETACHAIN = void 0;
|
4
4
|
const blockchain_name_1 = require("../../../../../../core/blockchain/models/blockchain-name");
|
5
|
+
const evm_web3_pure_1 = require("../../../../../../core/blockchain/web3-pure/typed-web3-pure/evm-web3-pure/evm-web3-pure");
|
5
6
|
exports.EDDY_OMNI_CONTRACT_IN_ZETACHAIN = '0xD494685B830e8C81Af6c7DA2B6E6C70e526019cE';
|
6
7
|
exports.EDDY_OMNI_CONTRACT_IN_ZETACHAIN_FOR_ANY_CHAIN = '0x3BdEA1CB47Ce41d3c7F6886A42117266EC457370';
|
7
8
|
exports.TSS_ADDRESSES_EDDY_BRIDGE = {
|
@@ -13,40 +14,44 @@ exports.CUSTODY_ADDRESSES = {
|
|
13
14
|
[blockchain_name_1.BLOCKCHAIN_NAME.BINANCE_SMART_CHAIN]: '0x00000fF8fA992424957F97688015814e707A0115'
|
14
15
|
};
|
15
16
|
exports.ZETA_CHAIN_SUPPORTED_TOKENS = [
|
17
|
+
{
|
18
|
+
address: evm_web3_pure_1.EvmWeb3Pure.EMPTY_ADDRESS,
|
19
|
+
symbol: 'ZETA',
|
20
|
+
relativeChain: blockchain_name_1.BLOCKCHAIN_NAME.ETHEREUM
|
21
|
+
},
|
22
|
+
{
|
23
|
+
address: evm_web3_pure_1.EvmWeb3Pure.EMPTY_ADDRESS,
|
24
|
+
symbol: 'ZETA',
|
25
|
+
relativeChain: blockchain_name_1.BLOCKCHAIN_NAME.BINANCE_SMART_CHAIN
|
26
|
+
},
|
16
27
|
{
|
17
28
|
address: '0xd97b1de3619ed2c6beb3860147e30ca8a7dc9891',
|
18
|
-
|
19
|
-
commonSymbol: 'ETH',
|
29
|
+
symbol: 'ETH',
|
20
30
|
relativeChain: blockchain_name_1.BLOCKCHAIN_NAME.ETHEREUM
|
21
31
|
},
|
22
32
|
{
|
23
33
|
address: '0x48f80608b672dc30dc7e3dbbd0343c5f02c738eb',
|
24
|
-
|
25
|
-
commonSymbol: 'BNB',
|
34
|
+
symbol: 'BNB',
|
26
35
|
relativeChain: blockchain_name_1.BLOCKCHAIN_NAME.BINANCE_SMART_CHAIN
|
27
36
|
},
|
28
37
|
{
|
29
38
|
address: '0x0cbe0dF132a6c6B4a2974Fa1b7Fb953CF0Cc798a',
|
30
|
-
|
31
|
-
commonSymbol: 'USDC',
|
39
|
+
symbol: 'USDC',
|
32
40
|
relativeChain: blockchain_name_1.BLOCKCHAIN_NAME.ETHEREUM
|
33
41
|
},
|
34
42
|
{
|
35
43
|
address: '0x7c8dDa80bbBE1254a7aACf3219EBe1481c6E01d7',
|
36
|
-
|
37
|
-
commonSymbol: 'USDT',
|
44
|
+
symbol: 'USDT',
|
38
45
|
relativeChain: blockchain_name_1.BLOCKCHAIN_NAME.ETHEREUM
|
39
46
|
},
|
40
47
|
{
|
41
48
|
address: '0x05BA149A7bd6dC1F937fA9046A9e05C05f3b18b0',
|
42
|
-
|
43
|
-
commonSymbol: 'USDC',
|
49
|
+
symbol: 'USDC',
|
44
50
|
relativeChain: blockchain_name_1.BLOCKCHAIN_NAME.BINANCE_SMART_CHAIN
|
45
51
|
},
|
46
52
|
{
|
47
53
|
address: '0x91d4F0D54090Df2D81e834c3c8CE71C6c865e79F',
|
48
|
-
|
49
|
-
commonSymbol: 'USDT',
|
54
|
+
symbol: 'USDT',
|
50
55
|
relativeChain: blockchain_name_1.BLOCKCHAIN_NAME.BINANCE_SMART_CHAIN
|
51
56
|
}
|
52
57
|
];
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"eddy-bridge-contract-addresses.js","sourceRoot":"","sources":["../../../../../../../src/features/cross-chain/calculation-manager/providers/eddy-bridge/constants/eddy-bridge-contract-addresses.ts"],"names":[],"mappings":";;;AAAA,gFAAgG;
|
1
|
+
{"version":3,"file":"eddy-bridge-contract-addresses.js","sourceRoot":"","sources":["../../../../../../../src/features/cross-chain/calculation-manager/providers/eddy-bridge/constants/eddy-bridge-contract-addresses.ts"],"names":[],"mappings":";;;AAAA,gFAAgG;AAChG,6GAAwG;AAI3F,QAAA,+BAA+B,GAAG,4CAA4C,CAAC;AAC/E,QAAA,6CAA6C,GACtD,4CAA4C,CAAC;AAEpC,QAAA,yBAAyB,GAAgD;IAClF,CAAC,iCAAe,CAAC,QAAQ,CAAC,EAAE,4CAA4C;IACxE,CAAC,iCAAe,CAAC,mBAAmB,CAAC,EAAE,4CAA4C;CACtF,CAAC;AAEW,QAAA,iBAAiB,GAA+C;IACzE,CAAC,iCAAe,CAAC,QAAQ,CAAC,EAAE,4CAA4C;IACxE,CAAC,iCAAe,CAAC,mBAAmB,CAAC,EAAE,4CAA4C;CACtF,CAAC;AAEW,QAAA,2BAA2B,GAAyB;IAC7D;QACI,OAAO,EAAE,2BAAW,CAAC,aAAa;QAClC,MAAM,EAAE,MAAM;QACd,aAAa,EAAE,iCAAe,CAAC,QAAQ;KAC1C;IACD;QACI,OAAO,EAAE,2BAAW,CAAC,aAAa;QAClC,MAAM,EAAE,MAAM;QACd,aAAa,EAAE,iCAAe,CAAC,mBAAmB;KACrD;IACD;QACI,OAAO,EAAE,4CAA4C;QACrD,MAAM,EAAE,KAAK;QACb,aAAa,EAAE,iCAAe,CAAC,QAAQ;KAC1C;IACD;QACI,OAAO,EAAE,4CAA4C;QACrD,MAAM,EAAE,KAAK;QACb,aAAa,EAAE,iCAAe,CAAC,mBAAmB;KACrD;IACD;QACI,OAAO,EAAE,4CAA4C;QACrD,MAAM,EAAE,MAAM;QACd,aAAa,EAAE,iCAAe,CAAC,QAAQ;KAC1C;IACD;QACI,OAAO,EAAE,4CAA4C;QACrD,MAAM,EAAE,MAAM;QACd,aAAa,EAAE,iCAAe,CAAC,QAAQ;KAC1C;IACD;QACI,OAAO,EAAE,4CAA4C;QACrD,MAAM,EAAE,MAAM;QACd,aAAa,EAAE,iCAAe,CAAC,mBAAmB;KACrD;IACD;QACI,OAAO,EAAE,4CAA4C;QACrD,MAAM,EAAE,MAAM;QACd,aAAa,EAAE,iCAAe,CAAC,mBAAmB;KACrD;CACJ,CAAC"}
|
package/lib/features/cross-chain/calculation-manager/providers/eddy-bridge/constants/swap-limits.js
CHANGED
@@ -11,31 +11,36 @@ exports.EDDY_BRIDGE_LIMITS = [
|
|
11
11
|
{
|
12
12
|
blockchain: blockchain_name_1.BLOCKCHAIN_NAME.BINANCE_SMART_CHAIN,
|
13
13
|
address: native_tokens_1.nativeTokensList[blockchain_name_1.BLOCKCHAIN_NAME.BINANCE_SMART_CHAIN].address,
|
14
|
-
|
14
|
+
// @TODO revert limit to 0.01
|
15
|
+
min: new bignumber_js_1.default(0.003),
|
15
16
|
max: new bignumber_js_1.default(15)
|
16
17
|
},
|
17
18
|
{
|
18
19
|
blockchain: blockchain_name_1.BLOCKCHAIN_NAME.ETHEREUM,
|
19
20
|
address: native_tokens_1.nativeTokensList[blockchain_name_1.BLOCKCHAIN_NAME.ETHEREUM].address,
|
20
|
-
|
21
|
+
// @TODO revert limit to 0.0015
|
22
|
+
min: new bignumber_js_1.default(0.0001),
|
21
23
|
max: new bignumber_js_1.default(5)
|
22
24
|
},
|
23
25
|
{
|
24
26
|
blockchain: blockchain_name_1.BLOCKCHAIN_NAME.ZETACHAIN,
|
25
27
|
address: native_tokens_1.nativeTokensList[blockchain_name_1.BLOCKCHAIN_NAME.ZETACHAIN].address,
|
26
|
-
|
28
|
+
// @TODO revert limit to 7
|
29
|
+
min: new bignumber_js_1.default(1),
|
27
30
|
max: new bignumber_js_1.default(15000)
|
28
31
|
},
|
29
32
|
{
|
30
33
|
blockchain: blockchain_name_1.BLOCKCHAIN_NAME.ZETACHAIN,
|
31
34
|
address: '0x48f80608b672dc30dc7e3dbbd0343c5f02c738eb',
|
32
|
-
|
35
|
+
// @TODO revert limit to 0.01
|
36
|
+
min: new bignumber_js_1.default(0.003),
|
33
37
|
max: new bignumber_js_1.default(15)
|
34
38
|
},
|
35
39
|
{
|
36
40
|
blockchain: blockchain_name_1.BLOCKCHAIN_NAME.ZETACHAIN,
|
37
41
|
address: '0xd97b1de3619ed2c6beb3860147e30ca8a7dc9891',
|
38
|
-
|
42
|
+
// @TODO revert limit to 0.0015
|
43
|
+
min: new bignumber_js_1.default(0.0001),
|
39
44
|
max: new bignumber_js_1.default(5)
|
40
45
|
}
|
41
46
|
];
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"swap-limits.js","sourceRoot":"","sources":["../../../../../../../src/features/cross-chain/calculation-manager/providers/eddy-bridge/constants/swap-limits.ts"],"names":[],"mappings":";;;;;;AAAA,gEAAqC;AACrC,6EAA6E;AAC7E,gFAA6F;AAShF,QAAA,kBAAkB,GAA8B;IACzD;QACI,UAAU,EAAE,iCAAe,CAAC,mBAAmB;QAC/C,OAAO,EAAE,gCAAgB,CAAC,iCAAe,CAAC,mBAAmB,CAAC,CAAC,OAAO;QACtE,GAAG,EAAE,IAAI,sBAAS,CAAC,
|
1
|
+
{"version":3,"file":"swap-limits.js","sourceRoot":"","sources":["../../../../../../../src/features/cross-chain/calculation-manager/providers/eddy-bridge/constants/swap-limits.ts"],"names":[],"mappings":";;;;;;AAAA,gEAAqC;AACrC,6EAA6E;AAC7E,gFAA6F;AAShF,QAAA,kBAAkB,GAA8B;IACzD;QACI,UAAU,EAAE,iCAAe,CAAC,mBAAmB;QAC/C,OAAO,EAAE,gCAAgB,CAAC,iCAAe,CAAC,mBAAmB,CAAC,CAAC,OAAO;QACtE,6BAA6B;QAC7B,GAAG,EAAE,IAAI,sBAAS,CAAC,KAAK,CAAC;QACzB,GAAG,EAAE,IAAI,sBAAS,CAAC,EAAE,CAAC;KACzB;IACD;QACI,UAAU,EAAE,iCAAe,CAAC,QAAQ;QACpC,OAAO,EAAE,gCAAgB,CAAC,iCAAe,CAAC,QAAQ,CAAC,CAAC,OAAO;QAC3D,+BAA+B;QAC/B,GAAG,EAAE,IAAI,sBAAS,CAAC,MAAM,CAAC;QAC1B,GAAG,EAAE,IAAI,sBAAS,CAAC,CAAC,CAAC;KACxB;IACD;QACI,UAAU,EAAE,iCAAe,CAAC,SAAS;QACrC,OAAO,EAAE,gCAAgB,CAAC,iCAAe,CAAC,SAAS,CAAC,CAAC,OAAO;QAC5D,0BAA0B;QAC1B,GAAG,EAAE,IAAI,sBAAS,CAAC,CAAC,CAAC;QACrB,GAAG,EAAE,IAAI,sBAAS,CAAC,KAAM,CAAC;KAC7B;IACD;QACI,UAAU,EAAE,iCAAe,CAAC,SAAS;QACrC,OAAO,EAAE,4CAA4C;QACrD,6BAA6B;QAC7B,GAAG,EAAE,IAAI,sBAAS,CAAC,KAAK,CAAC;QACzB,GAAG,EAAE,IAAI,sBAAS,CAAC,EAAE,CAAC;KACzB;IACD;QACI,UAAU,EAAE,iCAAe,CAAC,SAAS;QACrC,OAAO,EAAE,4CAA4C;QACrD,+BAA+B;QAC/B,GAAG,EAAE,IAAI,sBAAS,CAAC,MAAM,CAAC;QAC1B,GAAG,EAAE,IAAI,sBAAS,CAAC,CAAC,CAAC;KACxB;CACJ,CAAC"}
|
package/lib/features/cross-chain/calculation-manager/providers/eddy-bridge/eddy-bridge-provider.d.ts
CHANGED
@@ -11,9 +11,6 @@ export declare class EddyBridgeProvider extends CrossChainProvider {
|
|
11
11
|
isSupportedBlockchain(fromBlockchain: EvmBlockchainName): boolean;
|
12
12
|
calculate(from: PriceTokenAmount<EvmBlockchainName>, toToken: PriceToken<EvmBlockchainName>, options: RequiredCrossChainOptions): Promise<CalculationResult>;
|
13
13
|
private getCalculationResult;
|
14
|
-
private getToTokenAmount;
|
15
|
-
private calculateOnChainToAmount;
|
16
|
-
private checkIsSupportedRoute;
|
17
14
|
protected getRoutePath(fromToken: PriceTokenAmount<EvmBlockchainName>, toToken: PriceTokenAmount<EvmBlockchainName>): Promise<RubicStep[]>;
|
18
15
|
protected getFeeInfo(fromBlockchain: EddyBridgeSupportedChain, providerAddress: string, percentFeeToken: PriceTokenAmount, useProxy: boolean): Promise<FeeInfo>;
|
19
16
|
}
|
package/lib/features/cross-chain/calculation-manager/providers/eddy-bridge/eddy-bridge-provider.js
CHANGED
@@ -1,17 +1,12 @@
|
|
1
1
|
"use strict";
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
4
|
-
};
|
5
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
6
3
|
exports.EddyBridgeProvider = void 0;
|
7
|
-
const bignumber_js_1 = __importDefault(require("bignumber.js"));
|
8
4
|
const errors_1 = require("../../../../../common/errors");
|
9
5
|
const tokens_1 = require("../../../../../common/tokens");
|
10
6
|
const blockchain_name_1 = require("../../../../../core/blockchain/models/blockchain-name");
|
11
7
|
const fake_wallet_address_1 = require("../../../../common/constants/fake-wallet-address");
|
12
8
|
const check_unsupported_receiver_address_1 = require("../../../../common/utils/check-unsupported-receiver-address");
|
13
9
|
const get_from_without_fee_1 = require("../../../../common/utils/get-from-without-fee");
|
14
|
-
const eddy_finance_provider_1 = require("../../../../on-chain/calculation-manager/providers/dexes/zetachain/eddy-finance/eddy-finance-provider");
|
15
10
|
const cross_chain_trade_type_1 = require("../../models/cross-chain-trade-type");
|
16
11
|
const cross_chain_provider_1 = require("../common/cross-chain-provider");
|
17
12
|
const proxy_cross_chain_evm_trade_1 = require("../common/proxy-cross-chain-evm-facade/proxy-cross-chain-evm-trade");
|
@@ -21,7 +16,7 @@ const eddy_bridge_trade_1 = require("./eddy-bridge-trade");
|
|
21
16
|
const eddy_bridge_api_service_1 = require("./services/eddy-bridge-api-service");
|
22
17
|
const eddy_bridge_contract_service_1 = require("./services/eddy-bridge-contract-service");
|
23
18
|
const eddy_bridge_routing_directions_1 = require("./utils/eddy-bridge-routing-directions");
|
24
|
-
const
|
19
|
+
const eddy_calculation_factory_1 = require("./utils/eddy-calculation-factory");
|
25
20
|
class EddyBridgeProvider extends cross_chain_provider_1.CrossChainProvider {
|
26
21
|
constructor() {
|
27
22
|
super(...arguments);
|
@@ -36,16 +31,17 @@ class EddyBridgeProvider extends cross_chain_provider_1.CrossChainProvider {
|
|
36
31
|
const walletAddress = this.getWalletAddress(fromBlockchain) || fake_wallet_address_1.FAKE_WALLET_ADDRESS;
|
37
32
|
try {
|
38
33
|
(0, check_unsupported_receiver_address_1.checkUnsupportedReceiverAddress)(options?.receiverAddress, options?.fromAddress || walletAddress);
|
39
|
-
const
|
40
|
-
if (!isSupportedRoute) {
|
41
|
-
throw new errors_1.NotSupportedTokensError();
|
42
|
-
}
|
34
|
+
const routingDirection = (0, eddy_bridge_routing_directions_1.eddyRoutingDirection)(from, toToken);
|
43
35
|
const feeInfo = await this.getFeeInfo(fromBlockchain, options.providerAddress, from, useProxy);
|
44
36
|
const fromWithoutFee = (0, get_from_without_fee_1.getFromWithoutFee)(from, feeInfo.rubicProxy?.platformFee?.percent);
|
45
|
-
const [eddySlippage,
|
37
|
+
const [eddySlippage, eddyFee, gasFeeInSrcTokenUnits] = await Promise.all([
|
46
38
|
eddy_bridge_contract_service_1.EddyBridgeContractService.getEddySlipage(),
|
47
|
-
|
39
|
+
eddy_bridge_contract_service_1.EddyBridgeContractService.getPlatformFee(),
|
40
|
+
eddy_bridge_contract_service_1.EddyBridgeContractService.getGasFeeInDestChain(from, toToken)
|
48
41
|
]);
|
42
|
+
const ratioToAmount = 1 - eddyFee;
|
43
|
+
const calculationFactory = new eddy_calculation_factory_1.EddyBridgeCalculationFactory(from, toToken, options, ratioToAmount, gasFeeInSrcTokenUnits);
|
44
|
+
const toAmount = await calculationFactory.calculateToAmount();
|
49
45
|
const to = await tokens_1.PriceTokenAmount.createToken({
|
50
46
|
...toToken.asStruct,
|
51
47
|
tokenAmount: toAmount
|
@@ -56,7 +52,9 @@ class EddyBridgeProvider extends cross_chain_provider_1.CrossChainProvider {
|
|
56
52
|
from: fromWithoutFee,
|
57
53
|
toToken: to,
|
58
54
|
providerAddress: options.providerAddress,
|
59
|
-
slippage: options.slippageTolerance
|
55
|
+
slippage: options.slippageTolerance,
|
56
|
+
routingDirection,
|
57
|
+
quoteOptions: options
|
60
58
|
})
|
61
59
|
: null;
|
62
60
|
const trade = new eddy_bridge_trade_1.EddyBridgeTrade({
|
@@ -67,7 +65,9 @@ class EddyBridgeProvider extends cross_chain_provider_1.CrossChainProvider {
|
|
67
65
|
to,
|
68
66
|
priceImpact: from.calculatePriceImpactPercent(to),
|
69
67
|
slippage: eddySlippage,
|
70
|
-
|
68
|
+
routingDirection,
|
69
|
+
quoteOptions: options,
|
70
|
+
ratioToAmount
|
71
71
|
},
|
72
72
|
providerAddress: options.providerAddress,
|
73
73
|
routePath: await this.getRoutePath(from, to)
|
@@ -113,75 +113,6 @@ class EddyBridgeProvider extends cross_chain_provider_1.CrossChainProvider {
|
|
113
113
|
}
|
114
114
|
return { trade, tradeType: this.type };
|
115
115
|
}
|
116
|
-
async getToTokenAmount(from, toToken, options) {
|
117
|
-
const eddyFee = await eddy_bridge_contract_service_1.EddyBridgeContractService.getPlatformFee();
|
118
|
-
const ratioToAmount = 1 - eddyFee;
|
119
|
-
const isSwapFromZetachain = from.blockchain === blockchain_name_1.BLOCKCHAIN_NAME.ZETACHAIN;
|
120
|
-
const isSwapToZetachain = toToken.blockchain === blockchain_name_1.BLOCKCHAIN_NAME.ZETACHAIN;
|
121
|
-
if ((0, eddy_bridge_routing_directions_1.isDirectBridge)(from, toToken)) {
|
122
|
-
const gasInTargetChainNonWei =
|
123
|
-
// takes additional gas-fee only for Bsc, Ethereum, Bitcoin
|
124
|
-
toToken.blockchain === blockchain_name_1.BLOCKCHAIN_NAME.ZETACHAIN
|
125
|
-
? new bignumber_js_1.default(0)
|
126
|
-
: await eddy_bridge_contract_service_1.EddyBridgeContractService.getGasInTargetChain(from);
|
127
|
-
const toAmount = from.tokenAmount
|
128
|
-
.multipliedBy(ratioToAmount)
|
129
|
-
.minus(gasInTargetChainNonWei);
|
130
|
-
return { toAmount, gasInTargetChain: gasInTargetChainNonWei };
|
131
|
-
}
|
132
|
-
// Zetachain(ZETA) -> Ethereum(ETH), Zetachain(BNB) -> Bsc(USDT)
|
133
|
-
if (isSwapFromZetachain) {
|
134
|
-
const fromZrc20Token = new tokens_1.PriceTokenAmount({
|
135
|
-
...from.asStruct,
|
136
|
-
tokenAmount: from.tokenAmount.multipliedBy(ratioToAmount)
|
137
|
-
});
|
138
|
-
const toZrc20Token = await tokens_1.PriceToken.createToken({
|
139
|
-
address: (0, find_transit_token_address_1.findCompatibleZrc20TokenAddress)(toToken),
|
140
|
-
blockchain: blockchain_name_1.BLOCKCHAIN_NAME.ZETACHAIN
|
141
|
-
});
|
142
|
-
const toAmount = await this.calculateOnChainToAmount(fromZrc20Token, toZrc20Token, options);
|
143
|
-
return { toAmount, gasInTargetChain: undefined };
|
144
|
-
}
|
145
|
-
// Ethereum(ETH) -> Zetachain(ZETA), Bsc(USDT) -> Zetachain(BNB)
|
146
|
-
if (isSwapToZetachain) {
|
147
|
-
const fromZrc20Token = await tokens_1.PriceTokenAmount.createToken({
|
148
|
-
address: (0, find_transit_token_address_1.findCompatibleZrc20TokenAddress)(from),
|
149
|
-
blockchain: blockchain_name_1.BLOCKCHAIN_NAME.ZETACHAIN,
|
150
|
-
tokenAmount: from.tokenAmount.multipliedBy(ratioToAmount)
|
151
|
-
});
|
152
|
-
const toAmount = await this.calculateOnChainToAmount(fromZrc20Token, toToken, options);
|
153
|
-
return { toAmount, gasInTargetChain: undefined };
|
154
|
-
}
|
155
|
-
// BSC <-> Ethereum
|
156
|
-
const fromZrc20Token = await tokens_1.PriceTokenAmount.createToken({
|
157
|
-
address: (0, find_transit_token_address_1.findCompatibleZrc20TokenAddress)(from),
|
158
|
-
blockchain: blockchain_name_1.BLOCKCHAIN_NAME.ZETACHAIN,
|
159
|
-
tokenAmount: from.tokenAmount.multipliedBy(ratioToAmount)
|
160
|
-
});
|
161
|
-
const toZrc20Token = await tokens_1.PriceToken.createToken({
|
162
|
-
address: (0, find_transit_token_address_1.findCompatibleZrc20TokenAddress)(toToken),
|
163
|
-
blockchain: blockchain_name_1.BLOCKCHAIN_NAME.ZETACHAIN
|
164
|
-
});
|
165
|
-
const toAmount = await this.calculateOnChainToAmount(fromZrc20Token, toZrc20Token, options);
|
166
|
-
return { toAmount, gasInTargetChain: undefined };
|
167
|
-
}
|
168
|
-
async calculateOnChainToAmount(fromZrc20Token, toZrc20Token, options) {
|
169
|
-
const calcData = await new eddy_finance_provider_1.EddyFinanceProvider().calculate(fromZrc20Token, toZrc20Token, {
|
170
|
-
...options,
|
171
|
-
gasCalculation: 'disabled',
|
172
|
-
useProxy: false
|
173
|
-
});
|
174
|
-
return calcData.to.tokenAmount;
|
175
|
-
}
|
176
|
-
checkIsSupportedRoute(from, toToken) {
|
177
|
-
if (from.blockchain !== blockchain_name_1.BLOCKCHAIN_NAME.ZETACHAIN &&
|
178
|
-
toToken.blockchain !== blockchain_name_1.BLOCKCHAIN_NAME.ZETACHAIN &&
|
179
|
-
!from.isNative &&
|
180
|
-
toToken.isNative) {
|
181
|
-
return false;
|
182
|
-
}
|
183
|
-
return true;
|
184
|
-
}
|
185
116
|
async getRoutePath(fromToken, toToken) {
|
186
117
|
return [{ type: 'cross-chain', provider: this.type, path: [fromToken, toToken] }];
|
187
118
|
}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"eddy-bridge-provider.js","sourceRoot":"","sources":["../../../../../../src/features/cross-chain/calculation-manager/providers/eddy-bridge/eddy-bridge-provider.ts"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"eddy-bridge-provider.js","sourceRoot":"","sources":["../../../../../../src/features/cross-chain/calculation-manager/providers/eddy-bridge/eddy-bridge-provider.ts"],"names":[],"mappings":"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"}
|
package/lib/features/cross-chain/calculation-manager/providers/eddy-bridge/eddy-bridge-trade.d.ts
CHANGED
@@ -16,7 +16,7 @@ import { TradeInfo } from '../common/models/trade-info';
|
|
16
16
|
import { EddyBridgeGetGasDataParams, EddyBridgeTradeConstructorParams } from './models/eddy-trade-types';
|
17
17
|
export declare class EddyBridgeTrade extends EvmCrossChainTrade {
|
18
18
|
/** @internal */
|
19
|
-
static getGasData({ feeInfo, from, providerAddress, toToken, slippage }: EddyBridgeGetGasDataParams): Promise<GasData | null>;
|
19
|
+
static getGasData({ feeInfo, from, providerAddress, toToken, slippage, routingDirection, quoteOptions }: EddyBridgeGetGasDataParams): Promise<GasData | null>;
|
20
20
|
/**ABSTRACT PROPS */
|
21
21
|
readonly type: CrossChainTradeType;
|
22
22
|
readonly isAggregator: boolean;
|
@@ -30,7 +30,8 @@ export declare class EddyBridgeTrade extends EvmCrossChainTrade {
|
|
30
30
|
readonly priceImpact: number | null;
|
31
31
|
private readonly slippage;
|
32
32
|
/** */
|
33
|
-
private readonly
|
33
|
+
private readonly ratioToAmount;
|
34
|
+
private readonly quoteOptions;
|
34
35
|
private readonly routingDirection;
|
35
36
|
private get fromBlockchain();
|
36
37
|
protected get fromContractAddress(): string;
|
package/lib/features/cross-chain/calculation-manager/providers/eddy-bridge/eddy-bridge-trade.js
CHANGED
@@ -6,7 +6,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.EddyBridgeTrade = void 0;
|
7
7
|
const bignumber_js_1 = __importDefault(require("bignumber.js"));
|
8
8
|
const errors_1 = require("../../../../../common/errors");
|
9
|
-
const blockchain_name_1 = require("../../../../../core/blockchain/models/blockchain-name");
|
10
9
|
const evm_web3_pure_1 = require("../../../../../core/blockchain/web3-pure/typed-web3-pure/evm-web3-pure/evm-web3-pure");
|
11
10
|
const web3_pure_1 = require("../../../../../core/blockchain/web3-pure/web3-pure");
|
12
11
|
const fake_wallet_address_1 = require("../../../../common/constants/fake-wallet-address");
|
@@ -21,10 +20,11 @@ const proxy_cross_chain_evm_trade_1 = require("../common/proxy-cross-chain-evm-f
|
|
21
20
|
const eddy_bridge_contract_addresses_1 = require("./constants/eddy-bridge-contract-addresses");
|
22
21
|
const eddy_bridge_contract_service_1 = require("./services/eddy-bridge-contract-service");
|
23
22
|
const eddy_bridge_routing_directions_1 = require("./utils/eddy-bridge-routing-directions");
|
23
|
+
const eddy_calculation_factory_1 = require("./utils/eddy-calculation-factory");
|
24
24
|
const eddy_evm_config_factory_1 = require("./utils/eddy-evm-config-factory");
|
25
25
|
class EddyBridgeTrade extends evm_cross_chain_trade_1.EvmCrossChainTrade {
|
26
26
|
/** @internal */
|
27
|
-
static async getGasData({ feeInfo, from, providerAddress, toToken, slippage }) {
|
27
|
+
static async getGasData({ feeInfo, from, providerAddress, toToken, slippage, routingDirection, quoteOptions }) {
|
28
28
|
const trade = new EddyBridgeTrade({
|
29
29
|
crossChainTrade: {
|
30
30
|
from,
|
@@ -33,7 +33,9 @@ class EddyBridgeTrade extends evm_cross_chain_trade_1.EvmCrossChainTrade {
|
|
33
33
|
priceImpact: 0,
|
34
34
|
feeInfo,
|
35
35
|
slippage,
|
36
|
-
|
36
|
+
routingDirection,
|
37
|
+
ratioToAmount: 1,
|
38
|
+
quoteOptions
|
37
39
|
},
|
38
40
|
providerAddress: providerAddress || evm_web3_pure_1.EvmWeb3Pure.EMPTY_ADDRESS,
|
39
41
|
routePath: []
|
@@ -73,8 +75,9 @@ class EddyBridgeTrade extends evm_cross_chain_trade_1.EvmCrossChainTrade {
|
|
73
75
|
this.priceImpact = params.crossChainTrade.priceImpact;
|
74
76
|
this.slippage = params.crossChainTrade.slippage;
|
75
77
|
this.toTokenAmountMin = web3_pure_1.Web3Pure.fromWei(this.to.weiAmountMinusSlippage(this.slippage), this.to.decimals);
|
76
|
-
this.
|
77
|
-
this.
|
78
|
+
this.routingDirection = params.crossChainTrade.routingDirection;
|
79
|
+
this.ratioToAmount = params.crossChainTrade.ratioToAmount;
|
80
|
+
this.quoteOptions = params.crossChainTrade.quoteOptions;
|
78
81
|
}
|
79
82
|
async getContractParams(options) {
|
80
83
|
const receiverAddress = options?.receiverAddress || this.walletAddress;
|
@@ -103,19 +106,13 @@ class EddyBridgeTrade extends evm_cross_chain_trade_1.EvmCrossChainTrade {
|
|
103
106
|
};
|
104
107
|
}
|
105
108
|
async getTransactionConfigAndAmount(_receiverAddress) {
|
106
|
-
const evmConfig = new eddy_evm_config_factory_1.EddyBridgeEvmConfigFactory(this.from, this.to, this.walletAddress || fake_wallet_address_1.FAKE_WALLET_ADDRESS, this.routingDirection).
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
const newNonWeiAmount = this.to.tokenAmount
|
111
|
-
.plus(this.prevGasAmountInNonZetaChain)
|
112
|
-
.minus(newGasAmount);
|
113
|
-
const newWeiAmount = web3_pure_1.Web3Pure.toWei(newNonWeiAmount, this.to.decimals);
|
114
|
-
return { config: evmConfig, amount: newWeiAmount };
|
115
|
-
}
|
109
|
+
const evmConfig = new eddy_evm_config_factory_1.EddyBridgeEvmConfigFactory(this.from, this.to, this.walletAddress || fake_wallet_address_1.FAKE_WALLET_ADDRESS, this.routingDirection).getEvmConfig();
|
110
|
+
const gasFeeInSrcTokenUnits = await eddy_bridge_contract_service_1.EddyBridgeContractService.getGasFeeInDestChain(this.from, this.to);
|
111
|
+
const calculationFactory = new eddy_calculation_factory_1.EddyBridgeCalculationFactory(this.from, this.to, this.quoteOptions, this.ratioToAmount, gasFeeInSrcTokenUnits);
|
112
|
+
const toStringWeiAmount = await calculationFactory.calculateToStringWeiAmount();
|
116
113
|
return {
|
117
114
|
config: evmConfig,
|
118
|
-
amount:
|
115
|
+
amount: toStringWeiAmount
|
119
116
|
};
|
120
117
|
}
|
121
118
|
getTradeInfo() {
|
package/lib/features/cross-chain/calculation-manager/providers/eddy-bridge/eddy-bridge-trade.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"eddy-bridge-trade.js","sourceRoot":"","sources":["../../../../../../src/features/cross-chain/calculation-manager/providers/eddy-bridge/eddy-bridge-trade.ts"],"names":[],"mappings":";;;;;;AAAA,gEAAqC;AACrC,8CAA4D;
|
1
|
+
{"version":3,"file":"eddy-bridge-trade.js","sourceRoot":"","sources":["../../../../../../src/features/cross-chain/calculation-manager/providers/eddy-bridge/eddy-bridge-trade.ts"],"names":[],"mappings":"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"}
|
@@ -1,15 +1,18 @@
|
|
1
|
-
import BigNumber from 'bignumber.js';
|
2
1
|
import { PriceTokenAmount } from '../../../../../../common/tokens';
|
3
2
|
import { EvmBlockchainName } from '../../../../../../core/blockchain/models/blockchain-name';
|
3
|
+
import { RequiredCrossChainOptions } from '../../../models/cross-chain-options';
|
4
4
|
import { GasData } from '../../common/emv-cross-chain-trade/models/gas-data';
|
5
5
|
import { FeeInfo } from '../../common/models/fee-info';
|
6
6
|
import { RubicStep } from '../../common/models/rubicStep';
|
7
|
+
import { EddyRoutingDirection } from '../utils/eddy-bridge-routing-directions';
|
7
8
|
export interface EddyBridgeGetGasDataParams {
|
8
9
|
from: PriceTokenAmount<EvmBlockchainName>;
|
9
10
|
toToken: PriceTokenAmount<EvmBlockchainName>;
|
10
11
|
feeInfo: FeeInfo;
|
11
12
|
providerAddress: string;
|
12
13
|
slippage: number;
|
14
|
+
routingDirection: EddyRoutingDirection;
|
15
|
+
quoteOptions: RequiredCrossChainOptions;
|
13
16
|
}
|
14
17
|
export interface EddyBridgeTradeConstructorParams {
|
15
18
|
crossChainTrade: {
|
@@ -19,7 +22,9 @@ export interface EddyBridgeTradeConstructorParams {
|
|
19
22
|
feeInfo: FeeInfo;
|
20
23
|
priceImpact: number | null;
|
21
24
|
slippage: number;
|
22
|
-
|
25
|
+
routingDirection: EddyRoutingDirection;
|
26
|
+
quoteOptions: RequiredCrossChainOptions;
|
27
|
+
ratioToAmount: number;
|
23
28
|
};
|
24
29
|
providerAddress: string;
|
25
30
|
routePath: RubicStep[];
|
@@ -4,9 +4,10 @@ import { EvmBlockchainName } from '../../../../../../core/blockchain/models/bloc
|
|
4
4
|
export declare class EddyBridgeContractService {
|
5
5
|
static getPlatformFee(): Promise<number>;
|
6
6
|
/**
|
7
|
-
*
|
7
|
+
* Eddy takes gasFee in source chain native currency
|
8
|
+
* @param toToken target chain token
|
8
9
|
*/
|
9
|
-
static
|
10
|
+
static getGasFeeInDestChain(fromToken: PriceToken<EvmBlockchainName>, toToken: PriceToken<EvmBlockchainName>): Promise<BigNumber>;
|
10
11
|
/**
|
11
12
|
* @returns eddy static slippage
|
12
13
|
*/
|
@@ -1,6 +1,10 @@
|
|
1
1
|
"use strict";
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
4
|
+
};
|
2
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
6
|
exports.EddyBridgeContractService = void 0;
|
7
|
+
const bignumber_js_1 = __importDefault(require("bignumber.js"));
|
4
8
|
const tokens_1 = require("../../../../../../common/tokens");
|
5
9
|
const blockchain_name_1 = require("../../../../../../core/blockchain/models/blockchain-name");
|
6
10
|
const web3_pure_1 = require("../../../../../../core/blockchain/web3-pure/web3-pure");
|
@@ -11,25 +15,33 @@ const zrc_20_token_abi_1 = require("../constants/zrc-20-token-abi");
|
|
11
15
|
const find_transit_token_address_1 = require("../utils/find-transit-token-address");
|
12
16
|
class EddyBridgeContractService {
|
13
17
|
static async getPlatformFee() {
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
+
try {
|
19
|
+
const web3Public = injector_1.Injector.web3PublicService.getWeb3Public(blockchain_name_1.BLOCKCHAIN_NAME.ZETACHAIN);
|
20
|
+
const res = await web3Public.callContractMethod(eddy_bridge_contract_addresses_1.EDDY_OMNI_CONTRACT_IN_ZETACHAIN, edyy_bridge_abi_1.EDDY_BRIDGE_ABI, 'platformFee', []);
|
21
|
+
// eddy currently takes 1% from bridged amount (platformFee = 10, ratioToAmount in than case = 0.99)
|
22
|
+
return res / 1000;
|
23
|
+
}
|
24
|
+
catch (err) {
|
25
|
+
return 0;
|
26
|
+
}
|
18
27
|
}
|
19
28
|
/**
|
20
|
-
*
|
29
|
+
* Eddy takes gasFee in source chain native currency
|
30
|
+
* @param toToken target chain token
|
21
31
|
*/
|
22
|
-
static async
|
23
|
-
|
24
|
-
|
25
|
-
: await tokens_1.PriceToken.createToken({
|
26
|
-
address: (0, find_transit_token_address_1.findCompatibleZrc20TokenAddress)(token),
|
27
|
-
blockchain: blockchain_name_1.BLOCKCHAIN_NAME.ZETACHAIN
|
28
|
-
});
|
32
|
+
static async getGasFeeInDestChain(fromToken, toToken) {
|
33
|
+
if (toToken.blockchain === blockchain_name_1.BLOCKCHAIN_NAME.ZETACHAIN)
|
34
|
+
return new bignumber_js_1.default(0);
|
29
35
|
const web3Public = injector_1.Injector.web3PublicService.getWeb3Public(blockchain_name_1.BLOCKCHAIN_NAME.ZETACHAIN);
|
30
|
-
const res = await web3Public.callContractMethod(
|
31
|
-
const
|
32
|
-
|
36
|
+
const res = await web3Public.callContractMethod((0, find_transit_token_address_1.findCompatibleZrc20TokenAddress)(toToken), zrc_20_token_abi_1.ZRC_20_ABI, 'withdrawGasFee', []);
|
37
|
+
const { 0: zrc20GasFeeTokenAddress, 1: zrc20WeiAmount } = res;
|
38
|
+
const zrc20TokenWithPrice = await tokens_1.PriceToken.createToken({
|
39
|
+
address: zrc20GasFeeTokenAddress,
|
40
|
+
blockchain: blockchain_name_1.BLOCKCHAIN_NAME.ZETACHAIN
|
41
|
+
});
|
42
|
+
const gasFeeUsdt = web3_pure_1.Web3Pure.fromWei(zrc20WeiAmount || 0, 18).multipliedBy(zrc20TokenWithPrice.price);
|
43
|
+
const gasFeeInSrcTokenEquivalent = gasFeeUsdt.dividedBy(fromToken.price);
|
44
|
+
return gasFeeInSrcTokenEquivalent;
|
33
45
|
}
|
34
46
|
/**
|
35
47
|
* @returns eddy static slippage
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"eddy-bridge-contract-service.js","sourceRoot":"","sources":["../../../../../../../src/features/cross-chain/calculation-manager/providers/eddy-bridge/services/eddy-bridge-contract-service.ts"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"eddy-bridge-contract-service.js","sourceRoot":"","sources":["../../../../../../../src/features/cross-chain/calculation-manager/providers/eddy-bridge/services/eddy-bridge-contract-service.ts"],"names":[],"mappings":";;;;;;AAAA,gEAAqC;AACrC,8CAA+C;AAC/C,gFAAgG;AAChG,uEAAmE;AACnE,yDAAsD;AAEtD,gGAA8F;AAC9F,kEAA+D;AAC/D,oEAA2D;AAC3D,oFAAsF;AAEtF,MAAa,yBAAyB;IAC3B,MAAM,CAAC,KAAK,CAAC,cAAc;QAC9B,IAAI;YACA,MAAM,UAAU,GAAG,mBAAQ,CAAC,iBAAiB,CAAC,aAAa,CAAC,iCAAe,CAAC,SAAS,CAAC,CAAC;YACvF,MAAM,GAAG,GAAG,MAAM,UAAU,CAAC,kBAAkB,CAC3C,gEAA+B,EAC/B,iCAAe,EACf,aAAa,EACb,EAAE,CACL,CAAC;YACF,oGAAoG;YACpG,OAAO,GAAG,GAAG,IAAK,CAAC;SACtB;QAAC,OAAO,GAAG,EAAE;YACV,OAAO,CAAC,CAAC;SACZ;IACL,CAAC;IAED;;;OAGG;IACI,MAAM,CAAC,KAAK,CAAC,oBAAoB,CACpC,SAAwC,EACxC,OAAsC;QAEtC,IAAI,OAAO,CAAC,UAAU,KAAK,iCAAe,CAAC,SAAS;YAAE,OAAO,IAAI,sBAAS,CAAC,CAAC,CAAC,CAAC;QAE9E,MAAM,UAAU,GAAG,mBAAQ,CAAC,iBAAiB,CAAC,aAAa,CAAC,iCAAe,CAAC,SAAS,CAAC,CAAC;QACvF,MAAM,GAAG,GAAG,MAAM,UAAU,CAAC,kBAAkB,CAC3C,IAAA,4DAA+B,EAAC,OAAO,CAAC,EACxC,6BAAU,EACV,gBAAgB,EAChB,EAAE,CACL,CAAC;QACF,MAAM,EAAE,CAAC,EAAE,uBAAuB,EAAE,CAAC,EAAE,cAAc,EAAE,GAAG,GAAG,CAAC;QAE9D,MAAM,mBAAmB,GAAG,MAAM,mBAAU,CAAC,WAAW,CAAC;YACrD,OAAO,EAAE,uBAAuB;YAChC,UAAU,EAAE,iCAAe,CAAC,SAAS;SACxC,CAAC,CAAC;QACH,MAAM,UAAU,GAAG,oBAAQ,CAAC,OAAO,CAAC,cAAc,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,YAAY,CACrE,mBAAmB,CAAC,KAAK,CAC5B,CAAC;QACF,MAAM,0BAA0B,GAAG,UAAU,CAAC,SAAS,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QAEzE,OAAO,0BAA0B,CAAC;IACtC,CAAC;IAED;;OAEG;IACI,MAAM,CAAC,KAAK,CAAC,cAAc;QAC9B,MAAM,UAAU,GAAG,mBAAQ,CAAC,iBAAiB,CAAC,aAAa,CAAC,iCAAe,CAAC,SAAS,CAAC,CAAC;QACvF,MAAM,GAAG,GAAG,MAAM,UAAU,CAAC,kBAAkB,CAC3C,gEAA+B,EAC/B,iCAAe,EACf,UAAU,EACV,EAAE,CACL,CAAC;QACF,0CAA0C;QAC1C,OAAO,GAAG,GAAG,IAAK,CAAC;IACvB,CAAC;CACJ;AA9DD,8DA8DC"}
|
@@ -10,8 +10,16 @@ export declare const ERD: {
|
|
10
10
|
readonly ANY_CHAIN_TOKEN_TO_ZETA_TOKEN: "ANY_CHAIN_TOKEN_TO_ZETA_TOKEN";
|
11
11
|
};
|
12
12
|
export type EddyRoutingDirection = (typeof ERD)[keyof typeof ERD];
|
13
|
+
export declare const EDDY_CALCULATION_TYPES: {
|
14
|
+
readonly DIRECT_BRIDGE: "DIRECT_BRIDGE";
|
15
|
+
readonly SWAP_FROM_ZETACHAIN: "SWAP_FROM_ZETACHAIN";
|
16
|
+
readonly SWAP_TO_ZETACHAIN: "SWAP_TO_ZETACHAIN";
|
17
|
+
readonly SWAP_BETWEEN_OTHER_CHAINS: "SWAP_BETWEEN_OTHER_CHAINS";
|
18
|
+
};
|
19
|
+
export type EddyCalculationType = (typeof EDDY_CALCULATION_TYPES)[keyof typeof EDDY_CALCULATION_TYPES];
|
13
20
|
export declare function eddyRoutingDirection(from: PriceTokenAmount<EvmBlockchainName>, to: PriceToken<EvmBlockchainName>): EddyRoutingDirection;
|
14
21
|
/**
|
15
22
|
* Check if route is Bsc(ETH) <-> Ethereum(ETH), Ethereum(USDT) <-> Zetachain(USDT.ETH) etc.
|
16
23
|
*/
|
17
24
|
export declare function isDirectBridge(from: PriceTokenAmount<EvmBlockchainName>, toToken: PriceToken<EvmBlockchainName>): boolean;
|
25
|
+
export declare function getEddyCalculationType(from: PriceTokenAmount<EvmBlockchainName>, toToken: PriceToken<EvmBlockchainName>): EddyCalculationType;
|
@@ -1,10 +1,11 @@
|
|
1
1
|
"use strict";
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
-
exports.isDirectBridge = exports.eddyRoutingDirection = exports.ERD = void 0;
|
3
|
+
exports.getEddyCalculationType = exports.isDirectBridge = exports.eddyRoutingDirection = exports.EDDY_CALCULATION_TYPES = exports.ERD = void 0;
|
4
4
|
const errors_1 = require("../../../../../../common/errors");
|
5
5
|
const blockchain_1 = require("../../../../../../common/utils/blockchain");
|
6
6
|
const blockchain_name_1 = require("../../../../../../core/blockchain/models/blockchain-name");
|
7
7
|
const eddy_bridge_contract_addresses_1 = require("../constants/eddy-bridge-contract-addresses");
|
8
|
+
const find_transit_token_address_1 = require("./find-transit-token-address");
|
8
9
|
// Eddy Routing Direction
|
9
10
|
exports.ERD = {
|
10
11
|
ANY_CHAIN_NATIVE_TO_ZETA_NATIVE: 'ANY_CHAIN_NATIVE_TO_ZETA_NATIVE',
|
@@ -15,32 +16,41 @@ exports.ERD = {
|
|
15
16
|
ANY_CHAIN_TOKEN_TO_ANY_CHAIN_TOKEN: 'ANY_CHAIN_TOKEN_TO_ANY_CHAIN_TOKEN',
|
16
17
|
ANY_CHAIN_TOKEN_TO_ZETA_TOKEN: 'ANY_CHAIN_TOKEN_TO_ZETA_TOKEN'
|
17
18
|
};
|
19
|
+
exports.EDDY_CALCULATION_TYPES = {
|
20
|
+
DIRECT_BRIDGE: 'DIRECT_BRIDGE',
|
21
|
+
SWAP_FROM_ZETACHAIN: 'SWAP_FROM_ZETACHAIN',
|
22
|
+
SWAP_TO_ZETACHAIN: 'SWAP_TO_ZETACHAIN',
|
23
|
+
SWAP_BETWEEN_OTHER_CHAINS: 'SWAP_BETWEEN_OTHER_CHAINS'
|
24
|
+
};
|
25
|
+
// eslint-disable-next-line complexity
|
18
26
|
function eddyRoutingDirection(from, to) {
|
19
27
|
if (from.blockchain === blockchain_name_1.BLOCKCHAIN_NAME.ZETACHAIN) {
|
20
|
-
const
|
21
|
-
|
22
|
-
if (from.isNative)
|
28
|
+
const isSupportedFromToken = eddy_bridge_contract_addresses_1.ZETA_CHAIN_SUPPORTED_TOKENS.some(zrcToken => (0, blockchain_1.compareAddresses)(zrcToken.address, from.address));
|
29
|
+
const isSupportedToToken = !!(0, find_transit_token_address_1.findCompatibleZrc20TokenAddress)(to);
|
30
|
+
if (from.isNative && isSupportedToToken)
|
23
31
|
return exports.ERD.ZETA_NATIVE_TO_ANY_CHAIN_ALL;
|
24
|
-
if (
|
32
|
+
if (isSupportedFromToken && isSupportedToToken)
|
25
33
|
return exports.ERD.ZETA_TOKEN_TO_ANY_CHAIN_ALL;
|
26
34
|
}
|
27
35
|
if (from.blockchain !== blockchain_name_1.BLOCKCHAIN_NAME.ZETACHAIN &&
|
28
36
|
to.blockchain === blockchain_name_1.BLOCKCHAIN_NAME.ZETACHAIN) {
|
29
|
-
const
|
37
|
+
const isSupportedToToken = eddy_bridge_contract_addresses_1.ZETA_CHAIN_SUPPORTED_TOKENS.some(zrcToken => (0, blockchain_1.compareAddresses)(zrcToken.address, to.address));
|
38
|
+
const isSupportedFromToken = !!(0, find_transit_token_address_1.findCompatibleZrc20TokenAddress)(from);
|
30
39
|
if (from.isNative && to.isNative)
|
31
40
|
return exports.ERD.ANY_CHAIN_NATIVE_TO_ZETA_NATIVE;
|
32
|
-
if (from.isNative &&
|
41
|
+
if (from.isNative && isSupportedToToken)
|
33
42
|
return exports.ERD.ANY_CHAIN_NATIVE_TO_ZETA_TOKEN;
|
34
|
-
if (!from.isNative &&
|
43
|
+
if (!from.isNative && isSupportedToToken && isSupportedFromToken)
|
35
44
|
return exports.ERD.ANY_CHAIN_TOKEN_TO_ZETA_TOKEN;
|
36
45
|
}
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
46
|
+
// BSC <-> ETH routes are not supported
|
47
|
+
// if (
|
48
|
+
// from.blockchain !== BLOCKCHAIN_NAME.ZETACHAIN &&
|
49
|
+
// to.blockchain !== BLOCKCHAIN_NAME.ZETACHAIN
|
50
|
+
// ) {
|
51
|
+
// if (from.isNative && !to.isNative) return ERD.ANY_CHAIN_NATIVE_TO_ANY_CHAIN_TOKEN;
|
52
|
+
// if (!from.isNative && !to.isNative) return ERD.ANY_CHAIN_TOKEN_TO_ANY_CHAIN_TOKEN;
|
53
|
+
// }
|
44
54
|
throw new errors_1.NotSupportedTokensError();
|
45
55
|
}
|
46
56
|
exports.eddyRoutingDirection = eddyRoutingDirection;
|
@@ -48,13 +58,20 @@ exports.eddyRoutingDirection = eddyRoutingDirection;
|
|
48
58
|
* Check if route is Bsc(ETH) <-> Ethereum(ETH), Ethereum(USDT) <-> Zetachain(USDT.ETH) etc.
|
49
59
|
*/
|
50
60
|
function isDirectBridge(from, toToken) {
|
51
|
-
return (
|
52
|
-
eddy_bridge_contract_addresses_1.ZETA_CHAIN_SUPPORTED_TOKENS.some(zrcToken => {
|
53
|
-
return (((0, blockchain_1.compareAddresses)(from.symbol, zrcToken.zetaSymbol) &&
|
54
|
-
(0, blockchain_1.compareAddresses)(toToken.symbol, zrcToken.commonSymbol)) ||
|
55
|
-
((0, blockchain_1.compareAddresses)(toToken.symbol, zrcToken.zetaSymbol) &&
|
56
|
-
(0, blockchain_1.compareAddresses)(from.symbol, zrcToken.commonSymbol)));
|
57
|
-
}));
|
61
|
+
return (0, blockchain_1.compareAddresses)(from.symbol, toToken.symbol);
|
58
62
|
}
|
59
63
|
exports.isDirectBridge = isDirectBridge;
|
64
|
+
function getEddyCalculationType(from, toToken) {
|
65
|
+
if (isDirectBridge(from, toToken)) {
|
66
|
+
return exports.EDDY_CALCULATION_TYPES.DIRECT_BRIDGE;
|
67
|
+
}
|
68
|
+
if (from.blockchain === blockchain_name_1.BLOCKCHAIN_NAME.ZETACHAIN) {
|
69
|
+
return exports.EDDY_CALCULATION_TYPES.SWAP_FROM_ZETACHAIN;
|
70
|
+
}
|
71
|
+
if (toToken.blockchain === blockchain_name_1.BLOCKCHAIN_NAME.ZETACHAIN) {
|
72
|
+
return exports.EDDY_CALCULATION_TYPES.SWAP_TO_ZETACHAIN;
|
73
|
+
}
|
74
|
+
return exports.EDDY_CALCULATION_TYPES.SWAP_BETWEEN_OTHER_CHAINS;
|
75
|
+
}
|
76
|
+
exports.getEddyCalculationType = getEddyCalculationType;
|
60
77
|
//# sourceMappingURL=eddy-bridge-routing-directions.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"eddy-bridge-routing-directions.js","sourceRoot":"","sources":["../../../../../../../src/features/cross-chain/calculation-manager/providers/eddy-bridge/utils/eddy-bridge-routing-directions.ts"],"names":[],"mappings":";;;AAAA,8CAA4D;AAE5D,4DAA+D;AAC/D,gFAAgG;AAEhG,gGAA0F;
|
1
|
+
{"version":3,"file":"eddy-bridge-routing-directions.js","sourceRoot":"","sources":["../../../../../../../src/features/cross-chain/calculation-manager/providers/eddy-bridge/utils/eddy-bridge-routing-directions.ts"],"names":[],"mappings":"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"}
|
@@ -0,0 +1,21 @@
|
|
1
|
+
import BigNumber from 'bignumber.js';
|
2
|
+
import { PriceToken, PriceTokenAmount } from '../../../../../../common/tokens';
|
3
|
+
import { EvmBlockchainName } from '../../../../../../core/blockchain/models/blockchain-name';
|
4
|
+
import { RequiredCrossChainOptions } from '../../../models/cross-chain-options';
|
5
|
+
export declare class EddyBridgeCalculationFactory {
|
6
|
+
private readonly from;
|
7
|
+
private readonly toToken;
|
8
|
+
private readonly options;
|
9
|
+
private readonly ratioToAmount;
|
10
|
+
private readonly gasFeeInSrcTokenUnits;
|
11
|
+
private calculationType;
|
12
|
+
private readonly calculators;
|
13
|
+
constructor(from: PriceTokenAmount<EvmBlockchainName>, toToken: PriceToken<EvmBlockchainName>, options: RequiredCrossChainOptions, ratioToAmount: number, gasFeeInSrcTokenUnits: BigNumber);
|
14
|
+
calculateToAmount(): Promise<BigNumber>;
|
15
|
+
calculateToStringWeiAmount(): Promise<string>;
|
16
|
+
private calculateDirectBridge;
|
17
|
+
private calculateSwapFromZetachain;
|
18
|
+
private calculateSwapToZetachain;
|
19
|
+
private calculateSwapBetweenOtherChains;
|
20
|
+
private calculateOnChainToAmount;
|
21
|
+
}
|
@@ -0,0 +1,83 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.EddyBridgeCalculationFactory = void 0;
|
4
|
+
const tokens_1 = require("../../../../../../common/tokens");
|
5
|
+
const blockchain_name_1 = require("../../../../../../core/blockchain/models/blockchain-name");
|
6
|
+
const web3_pure_1 = require("../../../../../../core/blockchain/web3-pure/web3-pure");
|
7
|
+
const eddy_finance_provider_1 = require("../../../../../on-chain/calculation-manager/providers/dexes/zetachain/eddy-finance/eddy-finance-provider");
|
8
|
+
const eddy_bridge_routing_directions_1 = require("./eddy-bridge-routing-directions");
|
9
|
+
const find_transit_token_address_1 = require("./find-transit-token-address");
|
10
|
+
class EddyBridgeCalculationFactory {
|
11
|
+
constructor(from, toToken, options, ratioToAmount, gasFeeInSrcTokenUnits) {
|
12
|
+
this.from = from;
|
13
|
+
this.toToken = toToken;
|
14
|
+
this.options = options;
|
15
|
+
this.ratioToAmount = ratioToAmount;
|
16
|
+
this.gasFeeInSrcTokenUnits = gasFeeInSrcTokenUnits;
|
17
|
+
this.calculators = new Map([
|
18
|
+
[eddy_bridge_routing_directions_1.EDDY_CALCULATION_TYPES.DIRECT_BRIDGE, this.calculateDirectBridge],
|
19
|
+
[eddy_bridge_routing_directions_1.EDDY_CALCULATION_TYPES.SWAP_FROM_ZETACHAIN, this.calculateSwapFromZetachain],
|
20
|
+
[eddy_bridge_routing_directions_1.EDDY_CALCULATION_TYPES.SWAP_TO_ZETACHAIN, this.calculateSwapToZetachain],
|
21
|
+
[eddy_bridge_routing_directions_1.EDDY_CALCULATION_TYPES.SWAP_BETWEEN_OTHER_CHAINS, this.calculateSwapBetweenOtherChains]
|
22
|
+
]);
|
23
|
+
this.calculationType = (0, eddy_bridge_routing_directions_1.getEddyCalculationType)(from, toToken);
|
24
|
+
}
|
25
|
+
async calculateToAmount() {
|
26
|
+
const calculatorFn = this.calculators.get(this.calculationType);
|
27
|
+
const toAmount = await calculatorFn.apply(this);
|
28
|
+
const toAmountWithGasInDestChain = toAmount.minus(this.gasFeeInSrcTokenUnits);
|
29
|
+
return toAmountWithGasInDestChain;
|
30
|
+
}
|
31
|
+
async calculateToStringWeiAmount() {
|
32
|
+
const nonWeiAmount = await this.calculateToAmount();
|
33
|
+
const weiAmount = web3_pure_1.Web3Pure.toWei(nonWeiAmount, this.toToken.decimals);
|
34
|
+
return weiAmount;
|
35
|
+
}
|
36
|
+
async calculateDirectBridge() {
|
37
|
+
return this.from.tokenAmount.multipliedBy(this.ratioToAmount);
|
38
|
+
}
|
39
|
+
async calculateSwapFromZetachain() {
|
40
|
+
const fromZrc20Token = new tokens_1.PriceTokenAmount({
|
41
|
+
...this.from.asStruct,
|
42
|
+
tokenAmount: this.from.tokenAmount.multipliedBy(this.ratioToAmount)
|
43
|
+
});
|
44
|
+
const toZrc20Token = await tokens_1.PriceToken.createToken({
|
45
|
+
address: (0, find_transit_token_address_1.findCompatibleZrc20TokenAddress)(this.toToken),
|
46
|
+
blockchain: blockchain_name_1.BLOCKCHAIN_NAME.ZETACHAIN
|
47
|
+
});
|
48
|
+
const toAmount = await this.calculateOnChainToAmount(fromZrc20Token, toZrc20Token, this.options);
|
49
|
+
return toAmount;
|
50
|
+
}
|
51
|
+
async calculateSwapToZetachain() {
|
52
|
+
const fromZrc20Token = await tokens_1.PriceTokenAmount.createToken({
|
53
|
+
address: (0, find_transit_token_address_1.findCompatibleZrc20TokenAddress)(this.from),
|
54
|
+
blockchain: blockchain_name_1.BLOCKCHAIN_NAME.ZETACHAIN,
|
55
|
+
tokenAmount: this.from.tokenAmount.multipliedBy(this.ratioToAmount)
|
56
|
+
});
|
57
|
+
const toAmount = await this.calculateOnChainToAmount(fromZrc20Token, this.toToken, this.options);
|
58
|
+
return toAmount;
|
59
|
+
}
|
60
|
+
async calculateSwapBetweenOtherChains() {
|
61
|
+
const fromZrc20Token = await tokens_1.PriceTokenAmount.createToken({
|
62
|
+
address: (0, find_transit_token_address_1.findCompatibleZrc20TokenAddress)(this.from),
|
63
|
+
blockchain: blockchain_name_1.BLOCKCHAIN_NAME.ZETACHAIN,
|
64
|
+
tokenAmount: this.from.tokenAmount.multipliedBy(this.ratioToAmount)
|
65
|
+
});
|
66
|
+
const toZrc20Token = await tokens_1.PriceToken.createToken({
|
67
|
+
address: (0, find_transit_token_address_1.findCompatibleZrc20TokenAddress)(this.toToken),
|
68
|
+
blockchain: blockchain_name_1.BLOCKCHAIN_NAME.ZETACHAIN
|
69
|
+
});
|
70
|
+
const toAmount = await this.calculateOnChainToAmount(fromZrc20Token, toZrc20Token, this.options);
|
71
|
+
return toAmount;
|
72
|
+
}
|
73
|
+
async calculateOnChainToAmount(fromZrc20Token, toZrc20Token, options) {
|
74
|
+
const calcData = await new eddy_finance_provider_1.EddyFinanceProvider().calculate(fromZrc20Token, toZrc20Token, {
|
75
|
+
...options,
|
76
|
+
gasCalculation: 'disabled',
|
77
|
+
useProxy: false
|
78
|
+
});
|
79
|
+
return calcData.to.tokenAmount;
|
80
|
+
}
|
81
|
+
}
|
82
|
+
exports.EddyBridgeCalculationFactory = EddyBridgeCalculationFactory;
|
83
|
+
//# sourceMappingURL=eddy-calculation-factory.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"eddy-calculation-factory.js","sourceRoot":"","sources":["../../../../../../../src/features/cross-chain/calculation-manager/providers/eddy-bridge/utils/eddy-calculation-factory.ts"],"names":[],"mappings":"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"}
|
@@ -6,12 +6,11 @@ export declare class EddyBridgeEvmConfigFactory {
|
|
6
6
|
private readonly from;
|
7
7
|
private readonly to;
|
8
8
|
private readonly walletAddress;
|
9
|
-
private
|
9
|
+
private readonly routingDirection;
|
10
10
|
private get wrappedZetaAddress();
|
11
|
-
get evmConfig(): EvmEncodeConfig;
|
12
|
-
set evmConfig(value: EvmEncodeConfig);
|
13
11
|
private readonly evmConfigBuilders;
|
14
12
|
constructor(from: PriceTokenAmount<EvmBlockchainName>, to: PriceTokenAmount<EvmBlockchainName>, walletAddress: string, routingDirection: EddyRoutingDirection);
|
13
|
+
getEvmConfig(): EvmEncodeConfig;
|
15
14
|
private createAnyChainNativeToZetaNativeConfig;
|
16
15
|
private createAnyChainTokenToZetaTokenConfig;
|
17
16
|
private createAnyChainNativeToZetaTokenConfig;
|
@@ -12,16 +12,11 @@ class EddyBridgeEvmConfigFactory {
|
|
12
12
|
get wrappedZetaAddress() {
|
13
13
|
return wrapped_native_tokens_1.wrappedNativeTokensList[blockchain_name_1.BLOCKCHAIN_NAME.ZETACHAIN].address;
|
14
14
|
}
|
15
|
-
get evmConfig() {
|
16
|
-
return this._evmConfig;
|
17
|
-
}
|
18
|
-
set evmConfig(value) {
|
19
|
-
this._evmConfig = value;
|
20
|
-
}
|
21
15
|
constructor(from, to, walletAddress, routingDirection) {
|
22
16
|
this.from = from;
|
23
17
|
this.to = to;
|
24
18
|
this.walletAddress = walletAddress;
|
19
|
+
this.routingDirection = routingDirection;
|
25
20
|
this.evmConfigBuilders = new Map([
|
26
21
|
[eddy_bridge_routing_directions_1.ERD.ZETA_NATIVE_TO_ANY_CHAIN_ALL, this.createZetaNativeToAnyChainAllConfig],
|
27
22
|
[eddy_bridge_routing_directions_1.ERD.ZETA_TOKEN_TO_ANY_CHAIN_ALL, this.createZetaTokenToAnyChainAllConfig],
|
@@ -31,8 +26,11 @@ class EddyBridgeEvmConfigFactory {
|
|
31
26
|
[eddy_bridge_routing_directions_1.ERD.ANY_CHAIN_NATIVE_TO_ANY_CHAIN_TOKEN, this.createAnyChainNativeToAnyChainTokenConfig],
|
32
27
|
[eddy_bridge_routing_directions_1.ERD.ANY_CHAIN_TOKEN_TO_ANY_CHAIN_TOKEN, this.createAnyChainTokenToAnyChainTokenConfig]
|
33
28
|
]);
|
34
|
-
|
35
|
-
|
29
|
+
}
|
30
|
+
getEvmConfig() {
|
31
|
+
const configBuilder = this.evmConfigBuilders.get(this.routingDirection);
|
32
|
+
const evmConfig = configBuilder.apply(this);
|
33
|
+
return evmConfig;
|
36
34
|
}
|
37
35
|
createAnyChainNativeToZetaNativeConfig() {
|
38
36
|
const data = eddy_bridge_contract_addresses_1.EDDY_OMNI_CONTRACT_IN_ZETACHAIN +
|
@@ -45,21 +43,17 @@ class EddyBridgeEvmConfigFactory {
|
|
45
43
|
};
|
46
44
|
}
|
47
45
|
createAnyChainTokenToZetaTokenConfig() {
|
48
|
-
const
|
49
|
-
|
50
|
-
|
51
|
-
const methodArgs = [
|
52
|
-
slicedWalletAddress,
|
53
|
-
this.from.address,
|
54
|
-
this.from.stringWeiAmount,
|
55
|
-
[slicedEddyContractAddress, slicedWalletAddress, slicedDestZrc20Address]
|
56
|
-
];
|
46
|
+
const msg = eddy_bridge_contract_addresses_1.EDDY_OMNI_CONTRACT_IN_ZETACHAIN +
|
47
|
+
this.walletAddress.slice(2) +
|
48
|
+
this.to.address.slice(2);
|
49
|
+
const methodArgs = [this.walletAddress, this.from.address, this.from.stringWeiAmount, msg];
|
57
50
|
const config = evm_web3_pure_1.EvmWeb3Pure.encodeMethodCall(eddy_bridge_contract_addresses_1.CUSTODY_ADDRESSES[this.from.blockchain], edyy_bridge_abi_1.CUSTODY_ABI, 'deposit', methodArgs, '0');
|
58
51
|
return config;
|
59
52
|
}
|
60
53
|
createAnyChainNativeToZetaTokenConfig() {
|
61
|
-
const
|
62
|
-
|
54
|
+
const data = eddy_bridge_contract_addresses_1.EDDY_OMNI_CONTRACT_IN_ZETACHAIN +
|
55
|
+
this.walletAddress.slice(2) +
|
56
|
+
this.to.address.slice(2);
|
63
57
|
return {
|
64
58
|
data,
|
65
59
|
to: eddy_bridge_contract_addresses_1.TSS_ADDRESSES_EDDY_BRIDGE[this.from.blockchain],
|
@@ -80,14 +74,11 @@ class EddyBridgeEvmConfigFactory {
|
|
80
74
|
}
|
81
75
|
createAnyChainTokenToAnyChainTokenConfig() {
|
82
76
|
const slicedWalletAddress = this.walletAddress.slice(2);
|
83
|
-
const slicedEddyContractAddress = eddy_bridge_contract_addresses_1.EDDY_OMNI_CONTRACT_IN_ZETACHAIN_FOR_ANY_CHAIN.slice(2);
|
84
77
|
const slicedSrcZrc20Address = (0, find_transit_token_address_1.findCompatibleZrc20TokenAddress)(this.from).slice(2);
|
85
|
-
const
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
[slicedEddyContractAddress, slicedSrcZrc20Address, slicedWalletAddress]
|
90
|
-
];
|
78
|
+
const msg = eddy_bridge_contract_addresses_1.EDDY_OMNI_CONTRACT_IN_ZETACHAIN_FOR_ANY_CHAIN +
|
79
|
+
slicedSrcZrc20Address +
|
80
|
+
slicedWalletAddress;
|
81
|
+
const methodArgs = [this.walletAddress, this.from.address, this.from.stringWeiAmount, msg];
|
91
82
|
const config = evm_web3_pure_1.EvmWeb3Pure.encodeMethodCall(eddy_bridge_contract_addresses_1.CUSTODY_ADDRESSES[this.from.blockchain], edyy_bridge_abi_1.CUSTODY_ABI, 'deposit', methodArgs, '0');
|
92
83
|
return config;
|
93
84
|
}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"eddy-evm-config-factory.js","sourceRoot":"","sources":["../../../../../../../src/features/cross-chain/calculation-manager/providers/eddy-bridge/utils/eddy-evm-config-factory.ts"],"names":[],"mappings":";;;AACA,6FAA4F;AAC5F,gFAAgG;AAChG,6GAAwG;AAGxG,gGAKqD;AAErD,kEAA4E;AAC5E,qFAA6E;AAC7E,6EAA+E;AAE/E,MAAa,0BAA0B;
|
1
|
+
{"version":3,"file":"eddy-evm-config-factory.js","sourceRoot":"","sources":["../../../../../../../src/features/cross-chain/calculation-manager/providers/eddy-bridge/utils/eddy-evm-config-factory.ts"],"names":[],"mappings":"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"}
|
@@ -5,7 +5,7 @@ const errors_1 = require("../../../../../../common/errors");
|
|
5
5
|
const blockchain_1 = require("../../../../../../common/utils/blockchain");
|
6
6
|
const eddy_bridge_contract_addresses_1 = require("../constants/eddy-bridge-contract-addresses");
|
7
7
|
function findCompatibleZrc20TokenAddress(token) {
|
8
|
-
const transitTokenInZetachain = eddy_bridge_contract_addresses_1.ZETA_CHAIN_SUPPORTED_TOKENS.find(zrcToken => (0, blockchain_1.compareAddresses)(zrcToken.
|
8
|
+
const transitTokenInZetachain = eddy_bridge_contract_addresses_1.ZETA_CHAIN_SUPPORTED_TOKENS.find(zrcToken => (0, blockchain_1.compareAddresses)(zrcToken.symbol, token.symbol) &&
|
9
9
|
zrcToken.relativeChain === token.blockchain);
|
10
10
|
if (!transitTokenInZetachain)
|
11
11
|
throw new errors_1.NotSupportedTokensError();
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"find-transit-token-address.js","sourceRoot":"","sources":["../../../../../../../src/features/cross-chain/calculation-manager/providers/eddy-bridge/utils/find-transit-token-address.ts"],"names":[],"mappings":";;;AAAA,8CAA4D;AAE5D,4DAA+D;AAG/D,gGAA0F;AAE1F,SAAgB,+BAA+B,CAAC,KAAoC;IAChF,MAAM,uBAAuB,GAAG,4DAA2B,CAAC,IAAI,CAC5D,QAAQ,CAAC,EAAE,CACP,IAAA,6BAAgB,EAAC,QAAQ,CAAC,
|
1
|
+
{"version":3,"file":"find-transit-token-address.js","sourceRoot":"","sources":["../../../../../../../src/features/cross-chain/calculation-manager/providers/eddy-bridge/utils/find-transit-token-address.ts"],"names":[],"mappings":";;;AAAA,8CAA4D;AAE5D,4DAA+D;AAG/D,gGAA0F;AAE1F,SAAgB,+BAA+B,CAAC,KAAoC;IAChF,MAAM,uBAAuB,GAAG,4DAA2B,CAAC,IAAI,CAC5D,QAAQ,CAAC,EAAE,CACP,IAAA,6BAAgB,EAAC,QAAQ,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC;QAC/C,QAAQ,CAAC,aAAa,KAAK,KAAK,CAAC,UAAU,CAClD,CAAC;IACF,IAAI,CAAC,uBAAuB;QAAE,MAAM,IAAI,gCAAuB,EAAE,CAAC;IAElE,OAAO,uBAAuB,CAAC,OAAO,CAAC;AAC3C,CAAC;AATD,0EASC"}
|
package/lib/index.d.ts
CHANGED
@@ -350,6 +350,7 @@ export * from './features/cross-chain/calculation-manager/providers/eddy-bridge/
|
|
350
350
|
export * from './features/cross-chain/calculation-manager/providers/eddy-bridge/services/eddy-bridge-api-service';
|
351
351
|
export * from './features/cross-chain/calculation-manager/providers/eddy-bridge/services/eddy-bridge-contract-service';
|
352
352
|
export * from './features/cross-chain/calculation-manager/providers/eddy-bridge/utils/eddy-bridge-routing-directions';
|
353
|
+
export * from './features/cross-chain/calculation-manager/providers/eddy-bridge/utils/eddy-calculation-factory';
|
353
354
|
export * from './features/cross-chain/calculation-manager/providers/eddy-bridge/utils/eddy-evm-config-factory';
|
354
355
|
export * from './features/cross-chain/calculation-manager/providers/eddy-bridge/utils/find-transit-token-address';
|
355
356
|
export * from './features/cross-chain/calculation-manager/providers/eddy-bridge/utils/get-eddy-bridge-dst-status';
|
package/lib/index.js
CHANGED
@@ -367,6 +367,7 @@ __exportStar(require("./features/cross-chain/calculation-manager/providers/eddy-
|
|
367
367
|
__exportStar(require("./features/cross-chain/calculation-manager/providers/eddy-bridge/services/eddy-bridge-api-service"), exports);
|
368
368
|
__exportStar(require("./features/cross-chain/calculation-manager/providers/eddy-bridge/services/eddy-bridge-contract-service"), exports);
|
369
369
|
__exportStar(require("./features/cross-chain/calculation-manager/providers/eddy-bridge/utils/eddy-bridge-routing-directions"), exports);
|
370
|
+
__exportStar(require("./features/cross-chain/calculation-manager/providers/eddy-bridge/utils/eddy-calculation-factory"), exports);
|
370
371
|
__exportStar(require("./features/cross-chain/calculation-manager/providers/eddy-bridge/utils/eddy-evm-config-factory"), exports);
|
371
372
|
__exportStar(require("./features/cross-chain/calculation-manager/providers/eddy-bridge/utils/find-transit-token-address"), exports);
|
372
373
|
__exportStar(require("./features/cross-chain/calculation-manager/providers/eddy-bridge/utils/get-eddy-bridge-dst-status"), exports);
|
package/lib/index.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|