rubic-sdk 4.45.3 → 4.47.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/dist/rubic-sdk.min.js +3816 -17
- package/dist/rubic-sdk.min.js.map +1 -1
- package/lib/common/tokens/token.js +1 -1
- package/lib/common/tokens/token.js.map +1 -1
- package/lib/core/blockchain/models/blockchain-name.d.ts +2 -0
- package/lib/core/blockchain/models/blockchain-name.js +1 -0
- package/lib/core/blockchain/models/blockchain-name.js.map +1 -1
- package/lib/core/blockchain/models/chain-type.d.ts +1 -1
- package/lib/core/blockchain/models/chain-type.js +1 -1
- package/lib/core/blockchain/models/chain-type.js.map +1 -1
- package/lib/core/blockchain/web3-private-service/models/web-private-supported-blockchain.d.ts +1 -1
- package/lib/core/blockchain/web3-public-service/models/web3-public-storage.d.ts +1 -1
- package/lib/features/common/providers/rango/constants/rango-api-common.d.ts +2 -0
- package/lib/features/common/providers/rango/constants/rango-api-common.js +6 -0
- package/lib/features/common/providers/rango/constants/rango-api-common.js.map +1 -0
- package/lib/features/common/providers/rango/constants/rango-contract-address.d.ts +3 -0
- package/lib/features/common/providers/rango/constants/rango-contract-address.js +73 -0
- package/lib/features/common/providers/rango/constants/rango-contract-address.js.map +1 -0
- package/lib/features/common/providers/rango/models/rango-api-best-route-types.d.ts +54 -0
- package/lib/features/common/providers/rango/models/rango-api-best-route-types.js +3 -0
- package/lib/features/common/providers/rango/models/rango-api-best-route-types.js.map +1 -0
- package/lib/features/common/providers/rango/models/rango-api-blockchain-names.d.ts +3 -0
- package/lib/features/common/providers/rango/models/rango-api-blockchain-names.js +20 -0
- package/lib/features/common/providers/rango/models/rango-api-blockchain-names.js.map +1 -0
- package/lib/features/common/providers/rango/models/rango-api-common-types.d.ts +26 -0
- package/lib/features/common/providers/rango/models/rango-api-common-types.js +10 -0
- package/lib/features/common/providers/rango/models/rango-api-common-types.js.map +1 -0
- package/lib/features/common/providers/rango/models/rango-api-status-types.d.ts +38 -0
- package/lib/features/common/providers/rango/models/rango-api-status-types.js +9 -0
- package/lib/features/common/providers/rango/models/rango-api-status-types.js.map +1 -0
- package/lib/features/common/providers/rango/models/rango-api-swap-types.d.ts +56 -0
- package/lib/features/common/providers/rango/models/rango-api-swap-types.js +3 -0
- package/lib/features/common/providers/rango/models/rango-api-swap-types.js.map +1 -0
- package/lib/features/common/providers/rango/models/rango-api-symbol-names.d.ts +3 -0
- package/lib/features/common/providers/rango/models/rango-api-symbol-names.js +20 -0
- package/lib/features/common/providers/rango/models/rango-api-symbol-names.js.map +1 -0
- package/lib/features/common/providers/rango/models/rango-api-trade-types.d.ts +125 -0
- package/lib/features/common/providers/rango/models/rango-api-trade-types.js +69 -0
- package/lib/features/common/providers/rango/models/rango-api-trade-types.js.map +1 -0
- package/lib/features/common/providers/rango/models/rango-parser-types.d.ts +37 -0
- package/lib/features/common/providers/rango/models/rango-parser-types.js +3 -0
- package/lib/features/common/providers/rango/models/rango-parser-types.js.map +1 -0
- package/lib/features/common/providers/rango/models/rango-supported-blockchains.d.ts +2 -0
- package/lib/features/common/providers/rango/models/rango-supported-blockchains.js +20 -0
- package/lib/features/common/providers/rango/models/rango-supported-blockchains.js.map +1 -0
- package/lib/features/common/providers/rango/services/rango-parser.d.ts +13 -0
- package/lib/features/common/providers/rango/services/rango-parser.js +56 -0
- package/lib/features/common/providers/rango/services/rango-parser.js.map +1 -0
- package/lib/features/common/providers/rango/utils/rango-utils.d.ts +18 -0
- package/lib/features/common/providers/rango/utils/rango-utils.js +63 -0
- package/lib/features/common/providers/rango/utils/rango-utils.js.map +1 -0
- package/lib/features/cross-chain/calculation-manager/constants/cross-chain-providers.d.ts +3 -1
- package/lib/features/cross-chain/calculation-manager/constants/cross-chain-providers.js +5 -1
- package/lib/features/cross-chain/calculation-manager/constants/cross-chain-providers.js.map +1 -1
- package/lib/features/cross-chain/calculation-manager/models/cross-chain-options.d.ts +5 -0
- package/lib/features/cross-chain/calculation-manager/models/cross-chain-trade-type.d.ts +2 -0
- package/lib/features/cross-chain/calculation-manager/models/cross-chain-trade-type.js +3 -1
- package/lib/features/cross-chain/calculation-manager/models/cross-chain-trade-type.js.map +1 -1
- package/lib/features/cross-chain/calculation-manager/providers/changenow-provider/changenow-cross-chain-trade.d.ts +1 -1
- package/lib/features/cross-chain/calculation-manager/providers/common/cross-chain-trade.d.ts +1 -0
- package/lib/features/cross-chain/calculation-manager/providers/common/cross-chain-trade.js.map +1 -1
- package/lib/features/cross-chain/calculation-manager/providers/common/emv-cross-chain-trade/constants/evm-common-cross-chain-abi.js +26 -8
- package/lib/features/cross-chain/calculation-manager/providers/common/emv-cross-chain-trade/constants/evm-common-cross-chain-abi.js.map +1 -1
- package/lib/features/cross-chain/calculation-manager/providers/common/emv-cross-chain-trade/evm-cross-chain-trade.d.ts +4 -0
- package/lib/features/cross-chain/calculation-manager/providers/common/emv-cross-chain-trade/evm-cross-chain-trade.js +4 -0
- package/lib/features/cross-chain/calculation-manager/providers/common/emv-cross-chain-trade/evm-cross-chain-trade.js.map +1 -1
- package/lib/features/cross-chain/calculation-manager/providers/common/models/bridge-type.d.ts +9 -2
- package/lib/features/cross-chain/calculation-manager/providers/common/models/default-bridge-type.d.ts +8 -1
- package/lib/features/cross-chain/calculation-manager/providers/common/models/default-bridge-type.js +6 -1
- package/lib/features/cross-chain/calculation-manager/providers/common/models/default-bridge-type.js.map +1 -1
- package/lib/features/cross-chain/calculation-manager/providers/common/models/rubicStep.d.ts +2 -2
- package/lib/features/cross-chain/calculation-manager/providers/pulse-chain-bridge/constants/erc-677-abi.d.ts +2 -0
- package/lib/features/cross-chain/calculation-manager/providers/pulse-chain-bridge/constants/erc-677-abi.js +17 -0
- package/lib/features/cross-chain/calculation-manager/providers/pulse-chain-bridge/constants/erc-677-abi.js.map +1 -0
- package/lib/features/cross-chain/calculation-manager/providers/pulse-chain-bridge/constants/fee-manager-abi.d.ts +2 -0
- package/lib/features/cross-chain/calculation-manager/providers/pulse-chain-bridge/constants/fee-manager-abi.js +61 -0
- package/lib/features/cross-chain/calculation-manager/providers/pulse-chain-bridge/constants/fee-manager-abi.js.map +1 -0
- package/lib/features/cross-chain/calculation-manager/providers/pulse-chain-bridge/constants/foreign-bridge-abi.d.ts +2 -0
- package/lib/features/cross-chain/calculation-manager/providers/pulse-chain-bridge/constants/foreign-bridge-abi.js +72 -0
- package/lib/features/cross-chain/calculation-manager/providers/pulse-chain-bridge/constants/foreign-bridge-abi.js.map +1 -0
- package/lib/features/cross-chain/calculation-manager/providers/pulse-chain-bridge/constants/home-bridge-abi.d.ts +2 -0
- package/lib/features/cross-chain/calculation-manager/providers/pulse-chain-bridge/constants/home-bridge-abi.js +1390 -0
- package/lib/features/cross-chain/calculation-manager/providers/pulse-chain-bridge/constants/home-bridge-abi.js.map +1 -0
- package/lib/features/cross-chain/calculation-manager/providers/pulse-chain-bridge/constants/native-bridge-abi.d.ts +2 -0
- package/lib/features/cross-chain/calculation-manager/providers/pulse-chain-bridge/constants/native-bridge-abi.js +14 -0
- package/lib/features/cross-chain/calculation-manager/providers/pulse-chain-bridge/constants/native-bridge-abi.js.map +1 -0
- package/lib/features/cross-chain/calculation-manager/providers/pulse-chain-bridge/constants/pulse-chain-contract-address.d.ts +6 -0
- package/lib/features/cross-chain/calculation-manager/providers/pulse-chain-bridge/constants/pulse-chain-contract-address.js +16 -0
- package/lib/features/cross-chain/calculation-manager/providers/pulse-chain-bridge/constants/pulse-chain-contract-address.js.map +1 -0
- package/lib/features/cross-chain/calculation-manager/providers/pulse-chain-bridge/constants/pulse-chain-supported-blockchains.d.ts +2 -0
- package/lib/features/cross-chain/calculation-manager/providers/pulse-chain-bridge/constants/pulse-chain-supported-blockchains.js +9 -0
- package/lib/features/cross-chain/calculation-manager/providers/pulse-chain-bridge/constants/pulse-chain-supported-blockchains.js.map +1 -0
- package/lib/features/cross-chain/calculation-manager/providers/pulse-chain-bridge/omni-bridge-entities/bridge-manager.d.ts +7 -0
- package/lib/features/cross-chain/calculation-manager/providers/pulse-chain-bridge/omni-bridge-entities/bridge-manager.js +15 -0
- package/lib/features/cross-chain/calculation-manager/providers/pulse-chain-bridge/omni-bridge-entities/bridge-manager.js.map +1 -0
- package/lib/features/cross-chain/calculation-manager/providers/pulse-chain-bridge/omni-bridge-entities/foreign-bridge.d.ts +14 -0
- package/lib/features/cross-chain/calculation-manager/providers/pulse-chain-bridge/omni-bridge-entities/foreign-bridge.js +54 -0
- package/lib/features/cross-chain/calculation-manager/providers/pulse-chain-bridge/omni-bridge-entities/foreign-bridge.js.map +1 -0
- package/lib/features/cross-chain/calculation-manager/providers/pulse-chain-bridge/omni-bridge-entities/home-bridge.d.ts +14 -0
- package/lib/features/cross-chain/calculation-manager/providers/pulse-chain-bridge/omni-bridge-entities/home-bridge.js +54 -0
- package/lib/features/cross-chain/calculation-manager/providers/pulse-chain-bridge/omni-bridge-entities/home-bridge.js.map +1 -0
- package/lib/features/cross-chain/calculation-manager/providers/pulse-chain-bridge/omni-bridge-entities/omni-bridge.d.ts +108 -0
- package/lib/features/cross-chain/calculation-manager/providers/pulse-chain-bridge/omni-bridge-entities/omni-bridge.js +112 -0
- package/lib/features/cross-chain/calculation-manager/providers/pulse-chain-bridge/omni-bridge-entities/omni-bridge.js.map +1 -0
- package/lib/features/cross-chain/calculation-manager/providers/pulse-chain-bridge/pulse-chain-cross-chain-provider.d.ts +19 -0
- package/lib/features/cross-chain/calculation-manager/providers/pulse-chain-bridge/pulse-chain-cross-chain-provider.js +182 -0
- package/lib/features/cross-chain/calculation-manager/providers/pulse-chain-bridge/pulse-chain-cross-chain-provider.js.map +1 -0
- package/lib/features/cross-chain/calculation-manager/providers/pulse-chain-bridge/pulse-chain-cross-chain-trade.d.ts +55 -0
- package/lib/features/cross-chain/calculation-manager/providers/pulse-chain-bridge/pulse-chain-cross-chain-trade.js +232 -0
- package/lib/features/cross-chain/calculation-manager/providers/pulse-chain-bridge/pulse-chain-cross-chain-trade.js.map +1 -0
- package/lib/features/cross-chain/calculation-manager/providers/rango-provider/model/rango-cross-chain-api-types.d.ts +8 -0
- package/lib/features/cross-chain/calculation-manager/providers/rango-provider/model/rango-cross-chain-api-types.js +3 -0
- package/lib/features/cross-chain/calculation-manager/providers/rango-provider/model/rango-cross-chain-api-types.js.map +1 -0
- package/lib/features/cross-chain/calculation-manager/providers/rango-provider/model/rango-cross-chain-parser-types.d.ts +32 -0
- package/lib/features/cross-chain/calculation-manager/providers/rango-provider/model/rango-cross-chain-parser-types.js +3 -0
- package/lib/features/cross-chain/calculation-manager/providers/rango-provider/model/rango-cross-chain-parser-types.js.map +1 -0
- package/lib/features/cross-chain/calculation-manager/providers/rango-provider/rango-cross-chain-provider.d.ts +21 -0
- package/lib/features/cross-chain/calculation-manager/providers/rango-provider/rango-cross-chain-provider.js +111 -0
- package/lib/features/cross-chain/calculation-manager/providers/rango-provider/rango-cross-chain-provider.js.map +1 -0
- package/lib/features/cross-chain/calculation-manager/providers/rango-provider/rango-cross-chain-trade.d.ts +48 -0
- package/lib/features/cross-chain/calculation-manager/providers/rango-provider/rango-cross-chain-trade.js +210 -0
- package/lib/features/cross-chain/calculation-manager/providers/rango-provider/rango-cross-chain-trade.js.map +1 -0
- package/lib/features/cross-chain/calculation-manager/providers/rango-provider/services/rango-cross-chain-api-service.d.ts +12 -0
- package/lib/features/cross-chain/calculation-manager/providers/rango-provider/services/rango-cross-chain-api-service.js +36 -0
- package/lib/features/cross-chain/calculation-manager/providers/rango-provider/services/rango-cross-chain-api-service.js.map +1 -0
- package/lib/features/cross-chain/calculation-manager/providers/rango-provider/services/rango-cross-chain-params-parser.d.ts +4 -0
- package/lib/features/cross-chain/calculation-manager/providers/rango-provider/services/rango-cross-chain-params-parser.js +37 -0
- package/lib/features/cross-chain/calculation-manager/providers/rango-provider/services/rango-cross-chain-params-parser.js.map +1 -0
- package/lib/features/cross-chain/calculation-manager/providers/stargate-provider/stargate-cross-chain-trade.d.ts +1 -2
- package/lib/features/cross-chain/calculation-manager/providers/stargate-provider/stargate-cross-chain-trade.js.map +1 -1
- package/lib/features/cross-chain/calculation-manager/providers/symbiosis-provider/symbiosis-cross-chain-provider.js +1 -1
- package/lib/features/cross-chain/calculation-manager/providers/symbiosis-provider/symbiosis-cross-chain-provider.js.map +1 -1
- package/lib/features/cross-chain/status-manager/cross-chain-status-manager.d.ts +2 -0
- package/lib/features/cross-chain/status-manager/cross-chain-status-manager.js +39 -1
- package/lib/features/cross-chain/status-manager/cross-chain-status-manager.js.map +1 -1
- package/lib/features/cross-chain/status-manager/models/rubic-backend-ps-status.d.ts +6 -0
- package/lib/features/cross-chain/status-manager/models/rubic-backend-ps-status.js +3 -0
- package/lib/features/cross-chain/status-manager/models/rubic-backend-ps-status.js.map +1 -0
- package/lib/features/on-chain/calculation-manager/on-chain-manager.d.ts +3 -0
- package/lib/features/on-chain/calculation-manager/on-chain-manager.js +34 -2
- package/lib/features/on-chain/calculation-manager/on-chain-manager.js.map +1 -1
- package/lib/features/on-chain/calculation-manager/providers/common/models/on-chain-trade-type.d.ts +14 -0
- package/lib/features/on-chain/calculation-manager/providers/common/models/on-chain-trade-type.js +14 -0
- package/lib/features/on-chain/calculation-manager/providers/common/models/on-chain-trade-type.js.map +1 -1
- package/lib/features/on-chain/calculation-manager/providers/rango/models/rango-on-chain-disabled-providers.d.ts +2 -0
- package/lib/features/on-chain/calculation-manager/providers/rango/models/rango-on-chain-disabled-providers.js +19 -0
- package/lib/features/on-chain/calculation-manager/providers/rango/models/rango-on-chain-disabled-providers.js.map +1 -0
- package/lib/features/on-chain/calculation-manager/providers/rango/models/rango-on-chain-trade-types.d.ts +5 -0
- package/lib/features/on-chain/calculation-manager/providers/rango/models/rango-on-chain-trade-types.js +3 -0
- package/lib/features/on-chain/calculation-manager/providers/rango/models/rango-on-chain-trade-types.js.map +1 -0
- package/lib/features/on-chain/calculation-manager/providers/rango/rango-on-chain-provider.d.ts +17 -0
- package/lib/features/on-chain/calculation-manager/providers/rango/rango-on-chain-provider.js +105 -0
- package/lib/features/on-chain/calculation-manager/providers/rango/rango-on-chain-provider.js.map +1 -0
- package/lib/features/on-chain/calculation-manager/providers/rango/rango-on-chain-trade.d.ts +22 -0
- package/lib/features/on-chain/calculation-manager/providers/rango/rango-on-chain-trade.js +114 -0
- package/lib/features/on-chain/calculation-manager/providers/rango/rango-on-chain-trade.js.map +1 -0
- package/lib/features/on-chain/calculation-manager/providers/rango/services/rango-on-chain-api-service.d.ts +12 -0
- package/lib/features/on-chain/calculation-manager/providers/rango/services/rango-on-chain-api-service.js +36 -0
- package/lib/features/on-chain/calculation-manager/providers/rango/services/rango-on-chain-api-service.js.map +1 -0
- package/lib/index.d.ts +38 -0
- package/lib/index.js +38 -0
- package/lib/index.js.map +1 -1
- package/package.json +1 -2
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"home-bridge-abi.js","sourceRoot":"","sources":["../../../../../../../src/features/cross-chain/calculation-manager/providers/pulse-chain-bridge/constants/home-bridge-abi.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.nativeBridgeAbi = void 0;
|
|
4
|
+
exports.nativeBridgeAbi = [
|
|
5
|
+
{
|
|
6
|
+
inputs: [{ internalType: 'address', name: '_receiver', type: 'address' }],
|
|
7
|
+
name: 'wrapAndRelayTokens',
|
|
8
|
+
outputs: [],
|
|
9
|
+
stateMutability: 'payable',
|
|
10
|
+
type: 'function'
|
|
11
|
+
},
|
|
12
|
+
{ stateMutability: 'payable', type: 'receive' }
|
|
13
|
+
];
|
|
14
|
+
//# sourceMappingURL=native-bridge-abi.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"native-bridge-abi.js","sourceRoot":"","sources":["../../../../../../../src/features/cross-chain/calculation-manager/providers/pulse-chain-bridge/constants/native-bridge-abi.ts"],"names":[],"mappings":";;;AAEa,QAAA,eAAe,GAAc;IACtC;QACI,MAAM,EAAE,CAAC,EAAE,YAAY,EAAE,SAAS,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;QACzE,IAAI,EAAE,oBAAoB;QAC1B,OAAO,EAAE,EAAE;QACX,eAAe,EAAE,SAAS;QAC1B,IAAI,EAAE,UAAU;KACnB;IACD,EAAE,eAAe,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE;CAClD,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { PulseChainCrossChainSupportedBlockchain } from "./pulse-chain-supported-blockchains";
|
|
2
|
+
export declare const pulseChainContractAddress: Record<PulseChainCrossChainSupportedBlockchain, {
|
|
3
|
+
omniBridge: string;
|
|
4
|
+
omniBridgeWrapped: string;
|
|
5
|
+
}>;
|
|
6
|
+
export declare const omniBridgeNativeRouter = "0x8AC4ae65b3656e26dC4e0e69108B392283350f55";
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.omniBridgeNativeRouter = exports.pulseChainContractAddress = void 0;
|
|
4
|
+
const blockchain_name_1 = require("../../../../../../core/blockchain/models/blockchain-name");
|
|
5
|
+
exports.pulseChainContractAddress = {
|
|
6
|
+
[blockchain_name_1.BLOCKCHAIN_NAME.ETHEREUM]: {
|
|
7
|
+
omniBridge: '0x1715a3E4A142d8b698131108995174F37aEBA10D',
|
|
8
|
+
omniBridgeWrapped: '0xe20E337DB2a00b1C37139c873B92a0AAd3F468bF'
|
|
9
|
+
},
|
|
10
|
+
[blockchain_name_1.BLOCKCHAIN_NAME.PULSECHAIN]: {
|
|
11
|
+
omniBridge: '0x4fD0aaa7506f3d9cB8274bdB946Ec42A1b8751Ef',
|
|
12
|
+
omniBridgeWrapped: '0x0e18d0d556b652794EF12Bf68B2dC857EF5f3996'
|
|
13
|
+
}
|
|
14
|
+
};
|
|
15
|
+
exports.omniBridgeNativeRouter = '0x8AC4ae65b3656e26dC4e0e69108B392283350f55';
|
|
16
|
+
//# sourceMappingURL=pulse-chain-contract-address.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pulse-chain-contract-address.js","sourceRoot":"","sources":["../../../../../../../src/features/cross-chain/calculation-manager/providers/pulse-chain-bridge/constants/pulse-chain-contract-address.ts"],"names":[],"mappings":";;;AAAA,gFAA6E;AAGhE,QAAA,yBAAyB,GAMlC;IACA,CAAC,iCAAe,CAAC,QAAQ,CAAC,EAAE;QACxB,UAAU,EAAE,4CAA4C;QACxD,iBAAiB,EAAE,4CAA4C;KAClE;IACD,CAAC,iCAAe,CAAC,UAAU,CAAC,EAAE;QAC1B,UAAU,EAAE,4CAA4C;QACxD,iBAAiB,EAAE,4CAA4C;KAClE;CACJ,CAAC;AAEW,QAAA,sBAAsB,GAAG,4CAA4C,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.pulseChainSupportedBlockchains = void 0;
|
|
4
|
+
const blockchain_name_1 = require("../../../../../../core/blockchain/models/blockchain-name");
|
|
5
|
+
exports.pulseChainSupportedBlockchains = [
|
|
6
|
+
blockchain_name_1.BLOCKCHAIN_NAME.ETHEREUM,
|
|
7
|
+
blockchain_name_1.BLOCKCHAIN_NAME.PULSECHAIN
|
|
8
|
+
];
|
|
9
|
+
//# sourceMappingURL=pulse-chain-supported-blockchains.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pulse-chain-supported-blockchains.js","sourceRoot":"","sources":["../../../../../../../src/features/cross-chain/calculation-manager/providers/pulse-chain-bridge/constants/pulse-chain-supported-blockchains.ts"],"names":[],"mappings":";;;AAAA,gFAA6E;AAEhE,QAAA,8BAA8B,GAAG;IAC1C,iCAAe,CAAC,QAAQ;IACxB,iCAAe,CAAC,UAAU;CACpB,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { Token } from "../../../../../../common/tokens";
|
|
2
|
+
import { PulseChainCrossChainSupportedBlockchain } from "../constants/pulse-chain-supported-blockchains";
|
|
3
|
+
import { ForeignBridge } from "./foreign-bridge";
|
|
4
|
+
import { HomeBridge } from "./home-bridge";
|
|
5
|
+
export declare class BridgeManager {
|
|
6
|
+
static createBridge(fromToken: Token<PulseChainCrossChainSupportedBlockchain>, toToken: Token<PulseChainCrossChainSupportedBlockchain>): ForeignBridge | HomeBridge;
|
|
7
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.BridgeManager = void 0;
|
|
4
|
+
const blockchain_name_1 = require("../../../../../../core/blockchain/models/blockchain-name");
|
|
5
|
+
const foreign_bridge_1 = require("./foreign-bridge");
|
|
6
|
+
const home_bridge_1 = require("./home-bridge");
|
|
7
|
+
class BridgeManager {
|
|
8
|
+
static createBridge(fromToken, toToken) {
|
|
9
|
+
return fromToken.blockchain === blockchain_name_1.BLOCKCHAIN_NAME.ETHEREUM
|
|
10
|
+
? new foreign_bridge_1.ForeignBridge(fromToken, toToken)
|
|
11
|
+
: new home_bridge_1.HomeBridge(fromToken, toToken);
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
exports.BridgeManager = BridgeManager;
|
|
15
|
+
//# sourceMappingURL=bridge-manager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bridge-manager.js","sourceRoot":"","sources":["../../../../../../../src/features/cross-chain/calculation-manager/providers/pulse-chain-bridge/omni-bridge-entities/bridge-manager.ts"],"names":[],"mappings":";;;AACA,gFAA6E;AAE7E,kJAA8I;AAC9I,4IAAwI;AAExI,MAAa,aAAa;IACf,MAAM,CAAC,YAAY,CACtB,SAAyD,EACzD,OAAuD;QAEvD,OAAO,SAAS,CAAC,UAAU,KAAK,iCAAe,CAAC,QAAQ;YACpD,CAAC,CAAC,IAAI,8BAAa,CAAC,SAAS,EAAE,OAAO,CAAC;YACvC,CAAC,CAAC,IAAI,wBAAU,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IAC7C,CAAC;CACJ;AATD,sCASC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import BigNumber from 'bignumber.js';
|
|
2
|
+
import { EvmEncodeConfig } from "../../../../../../core/blockchain/web3-pure/typed-web3-pure/evm-web3-pure/models/evm-encode-config";
|
|
3
|
+
import { OmniBridge } from "./omni-bridge";
|
|
4
|
+
export declare class ForeignBridge extends OmniBridge {
|
|
5
|
+
isTokenRegistered(address: string): Promise<boolean>;
|
|
6
|
+
protected isRegisteredAsNative(address: string): Promise<boolean>;
|
|
7
|
+
protected getNonNativeToken(address: string): Promise<string>;
|
|
8
|
+
protected getNativeToken(address: string): Promise<string>;
|
|
9
|
+
getMinAmountToken(address: string): Promise<BigNumber>;
|
|
10
|
+
protected checkSourceLimits(address: string, amount: string): Promise<void>;
|
|
11
|
+
protected checkTargetLimits(address: string, amount: string): Promise<void>;
|
|
12
|
+
getDataForNativeSwap(receiverAddress: string, value: string): EvmEncodeConfig;
|
|
13
|
+
getDataForTokenSwap(receiverAddress: string, amount: string, isERC677: boolean, tokenAddress: string): EvmEncodeConfig;
|
|
14
|
+
}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.ForeignBridge = void 0;
|
|
7
|
+
const bignumber_js_1 = __importDefault(require("bignumber.js"));
|
|
8
|
+
const errors_1 = require("../../../../../../common/errors");
|
|
9
|
+
const evm_web3_pure_1 = require("../../../../../../core/blockchain/web3-pure/typed-web3-pure/evm-web3-pure/evm-web3-pure");
|
|
10
|
+
const erc_677_abi_1 = require("../constants/erc-677-abi");
|
|
11
|
+
const native_bridge_abi_1 = require("../constants/native-bridge-abi");
|
|
12
|
+
const pulse_chain_contract_address_1 = require("../constants/pulse-chain-contract-address");
|
|
13
|
+
const omni_bridge_1 = require("./omni-bridge");
|
|
14
|
+
class ForeignBridge extends omni_bridge_1.OmniBridge {
|
|
15
|
+
isTokenRegistered(address) {
|
|
16
|
+
return this.sourceWeb3Public.callContractMethod(this.sourceBridgeAddress, this.sourceBridgeAbi, 'isTokenRegistered', [address]);
|
|
17
|
+
}
|
|
18
|
+
isRegisteredAsNative(address) {
|
|
19
|
+
return this.sourceWeb3Public.callContractMethod(this.sourceBridgeAddress, this.sourceBridgeAbi, 'isRegisteredAsNativeToken', [address]);
|
|
20
|
+
}
|
|
21
|
+
getNonNativeToken(address) {
|
|
22
|
+
return this.sourceWeb3Public.callContractMethod(this.sourceBridgeAddress, this.sourceBridgeAbi, 'nativeTokenAddress', [address]);
|
|
23
|
+
}
|
|
24
|
+
getNativeToken(address) {
|
|
25
|
+
return this.targetWeb3Public.callContractMethod(this.targetBridgeAddress, this.targetBridgeAbi, 'bridgedTokenAddress', [address]);
|
|
26
|
+
}
|
|
27
|
+
async getMinAmountToken(address) {
|
|
28
|
+
const amount = await this.sourceWeb3Public.callContractMethod(this.sourceBridgeAddress, this.sourceBridgeAbi, 'minPerTx', [address]);
|
|
29
|
+
return new bignumber_js_1.default(amount);
|
|
30
|
+
}
|
|
31
|
+
async checkSourceLimits(address, amount) {
|
|
32
|
+
const allowSend = await this.sourceWeb3Public.callContractMethod(this.sourceBridgeAddress, this.sourceBridgeAbi, 'withinLimit', [address, amount]);
|
|
33
|
+
if (!allowSend) {
|
|
34
|
+
throw new errors_1.RubicSdkError('Swap is not allowed due to contract limitations');
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
async checkTargetLimits(address, amount) {
|
|
38
|
+
const allowSend = await this.targetWeb3Public.callContractMethod(this.targetBridgeAddress, this.targetBridgeAbi, 'withinExecutionLimit', [address, amount]);
|
|
39
|
+
if (!allowSend) {
|
|
40
|
+
throw new errors_1.RubicSdkError('Swap is not allowed due to contract limitations');
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
getDataForNativeSwap(receiverAddress, value) {
|
|
44
|
+
return evm_web3_pure_1.EvmWeb3Pure.encodeMethodCall(pulse_chain_contract_address_1.omniBridgeNativeRouter, native_bridge_abi_1.nativeBridgeAbi, 'wrapAndRelayTokens', [receiverAddress], value);
|
|
45
|
+
}
|
|
46
|
+
getDataForTokenSwap(receiverAddress, amount, isERC677, tokenAddress) {
|
|
47
|
+
if (isERC677) {
|
|
48
|
+
return evm_web3_pure_1.EvmWeb3Pure.encodeMethodCall(tokenAddress, erc_677_abi_1.erc677Abi, 'transferAndCall', [this.sourceBridgeAddress, amount, receiverAddress], '0');
|
|
49
|
+
}
|
|
50
|
+
return evm_web3_pure_1.EvmWeb3Pure.encodeMethodCall(this.sourceBridgeAddress, this.sourceBridgeAbi, 'relayTokens', [tokenAddress, receiverAddress, amount], '0');
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
exports.ForeignBridge = ForeignBridge;
|
|
54
|
+
//# sourceMappingURL=foreign-bridge.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"foreign-bridge.js","sourceRoot":"","sources":["../../../../../../../src/features/cross-chain/calculation-manager/providers/pulse-chain-bridge/omni-bridge-entities/foreign-bridge.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import BigNumber from 'bignumber.js';
|
|
2
|
+
import { EvmEncodeConfig } from "../../../../../../core/blockchain/web3-pure/typed-web3-pure/evm-web3-pure/models/evm-encode-config";
|
|
3
|
+
import { OmniBridge } from "./omni-bridge";
|
|
4
|
+
export declare class HomeBridge extends OmniBridge {
|
|
5
|
+
isTokenRegistered(address: string): Promise<boolean>;
|
|
6
|
+
protected isRegisteredAsNative(address: string): Promise<boolean>;
|
|
7
|
+
protected getNonNativeToken(address: string): Promise<string>;
|
|
8
|
+
protected getNativeToken(address: string): Promise<string>;
|
|
9
|
+
getMinAmountToken(address: string): Promise<BigNumber>;
|
|
10
|
+
protected checkSourceLimits(address: string, amount: string): Promise<void>;
|
|
11
|
+
protected checkTargetLimits(address: string, amount: string): Promise<void>;
|
|
12
|
+
getDataForNativeSwap(receiverAddress: string, value: string): EvmEncodeConfig;
|
|
13
|
+
getDataForTokenSwap(receiverAddress: string, amount: string, isERC677: boolean, tokenAddress: string): EvmEncodeConfig;
|
|
14
|
+
}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.HomeBridge = void 0;
|
|
7
|
+
const bignumber_js_1 = __importDefault(require("bignumber.js"));
|
|
8
|
+
const errors_1 = require("../../../../../../common/errors");
|
|
9
|
+
const evm_web3_pure_1 = require("../../../../../../core/blockchain/web3-pure/typed-web3-pure/evm-web3-pure/evm-web3-pure");
|
|
10
|
+
const erc_677_abi_1 = require("../constants/erc-677-abi");
|
|
11
|
+
const native_bridge_abi_1 = require("../constants/native-bridge-abi");
|
|
12
|
+
const pulse_chain_contract_address_1 = require("../constants/pulse-chain-contract-address");
|
|
13
|
+
const omni_bridge_1 = require("./omni-bridge");
|
|
14
|
+
class HomeBridge extends omni_bridge_1.OmniBridge {
|
|
15
|
+
isTokenRegistered(address) {
|
|
16
|
+
return this.sourceWeb3Public.callContractMethod(this.sourceBridgeAddress, this.sourceBridgeAbi, 'isTokenRegistered', [address]);
|
|
17
|
+
}
|
|
18
|
+
isRegisteredAsNative(address) {
|
|
19
|
+
return this.sourceWeb3Public.callContractMethod(this.sourceBridgeAddress, this.sourceBridgeAbi, 'isRegisteredAsNativeToken', [address]);
|
|
20
|
+
}
|
|
21
|
+
getNonNativeToken(address) {
|
|
22
|
+
return this.sourceWeb3Public.callContractMethod(this.sourceBridgeAddress, this.sourceBridgeAbi, 'nativeTokenAddress', [address]);
|
|
23
|
+
}
|
|
24
|
+
getNativeToken(address) {
|
|
25
|
+
return this.targetWeb3Public.callContractMethod(this.targetBridgeAddress, this.targetBridgeAbi, 'bridgedTokenAddress', [address]);
|
|
26
|
+
}
|
|
27
|
+
async getMinAmountToken(address) {
|
|
28
|
+
const amount = await this.sourceWeb3Public.callContractMethod(this.sourceBridgeAddress, this.sourceBridgeAbi, 'minPerTx', [address]);
|
|
29
|
+
return new bignumber_js_1.default(amount);
|
|
30
|
+
}
|
|
31
|
+
async checkSourceLimits(address, amount) {
|
|
32
|
+
const allowSend = await this.sourceWeb3Public.callContractMethod(this.sourceBridgeAddress, this.sourceBridgeAbi, 'withinLimit', [address, amount]);
|
|
33
|
+
if (!allowSend) {
|
|
34
|
+
throw new errors_1.RubicSdkError('Swap is not allowed due to contract limitations');
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
async checkTargetLimits(address, amount) {
|
|
38
|
+
const allowSend = await this.targetWeb3Public.callContractMethod(this.targetBridgeAddress, this.targetBridgeAbi, 'withinExecutionLimit', [address, amount]);
|
|
39
|
+
if (!allowSend) {
|
|
40
|
+
throw new errors_1.RubicSdkError('Swap is not allowed due to contract limitations');
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
getDataForNativeSwap(receiverAddress, value) {
|
|
44
|
+
return evm_web3_pure_1.EvmWeb3Pure.encodeMethodCall(pulse_chain_contract_address_1.omniBridgeNativeRouter, native_bridge_abi_1.nativeBridgeAbi, 'wrapAndRelayTokens', [receiverAddress], value);
|
|
45
|
+
}
|
|
46
|
+
getDataForTokenSwap(receiverAddress, amount, isERC677, tokenAddress) {
|
|
47
|
+
if (isERC677) {
|
|
48
|
+
return evm_web3_pure_1.EvmWeb3Pure.encodeMethodCall(tokenAddress, erc_677_abi_1.erc677Abi, 'transferAndCall', [this.sourceBridgeAddress, amount, receiverAddress], '0');
|
|
49
|
+
}
|
|
50
|
+
return evm_web3_pure_1.EvmWeb3Pure.encodeMethodCall(this.sourceBridgeAddress, this.sourceBridgeAbi, 'relayTokens', [tokenAddress, receiverAddress, amount], '0');
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
exports.HomeBridge = HomeBridge;
|
|
54
|
+
//# sourceMappingURL=home-bridge.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"home-bridge.js","sourceRoot":"","sources":["../../../../../../../src/features/cross-chain/calculation-manager/providers/pulse-chain-bridge/omni-bridge-entities/home-bridge.ts"],"names":[],"mappings":";;;;;;AAAA,gEAAqC;AACrC,8CAAkD;AAClD,6GAAwG;AAExG,iIAA4H;AAC5H,6IAAwI;AACxI,mKAA0J;AAC1J,4IAAwI;AAExI,MAAa,UAAW,SAAQ,wBAAU;IAC/B,iBAAiB,CAAC,OAAe;QACpC,OAAO,IAAI,CAAC,gBAAgB,CAAC,kBAAkB,CAC3C,IAAI,CAAC,mBAAmB,EACxB,IAAI,CAAC,eAAe,EACpB,mBAAmB,EACnB,CAAC,OAAO,CAAC,CACZ,CAAC;IACN,CAAC;IAES,oBAAoB,CAAC,OAAe;QAC1C,OAAO,IAAI,CAAC,gBAAgB,CAAC,kBAAkB,CAC3C,IAAI,CAAC,mBAAmB,EACxB,IAAI,CAAC,eAAe,EACpB,2BAA2B,EAC3B,CAAC,OAAO,CAAC,CACZ,CAAC;IACN,CAAC;IAES,iBAAiB,CAAC,OAAe;QACvC,OAAO,IAAI,CAAC,gBAAgB,CAAC,kBAAkB,CAC3C,IAAI,CAAC,mBAAmB,EACxB,IAAI,CAAC,eAAe,EACpB,oBAAoB,EACpB,CAAC,OAAO,CAAC,CACZ,CAAC;IACN,CAAC;IAES,cAAc,CAAC,OAAe;QACpC,OAAO,IAAI,CAAC,gBAAgB,CAAC,kBAAkB,CAC3C,IAAI,CAAC,mBAAmB,EACxB,IAAI,CAAC,eAAe,EACpB,qBAAqB,EACrB,CAAC,OAAO,CAAC,CACZ,CAAC;IACN,CAAC;IAEM,KAAK,CAAC,iBAAiB,CAAC,OAAe;QAC1C,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,kBAAkB,CACzD,IAAI,CAAC,mBAAmB,EACxB,IAAI,CAAC,eAAe,EACpB,UAAU,EACV,CAAC,OAAO,CAAC,CACZ,CAAC;QACF,OAAO,IAAI,sBAAS,CAAC,MAAM,CAAC,CAAC;IACjC,CAAC;IAES,KAAK,CAAC,iBAAiB,CAAC,OAAe,EAAE,MAAc;QAC7D,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,kBAAkB,CAC5D,IAAI,CAAC,mBAAmB,EACxB,IAAI,CAAC,eAAe,EACpB,aAAa,EACb,CAAC,OAAO,EAAE,MAAM,CAAC,CACpB,CAAC;QACF,IAAI,CAAC,SAAS,EAAE;YACZ,MAAM,IAAI,sBAAa,CAAC,iDAAiD,CAAC,CAAC;SAC9E;IACL,CAAC;IAES,KAAK,CAAC,iBAAiB,CAAC,OAAe,EAAE,MAAc;QAC7D,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,kBAAkB,CAC5D,IAAI,CAAC,mBAAmB,EACxB,IAAI,CAAC,eAAe,EACpB,sBAAsB,EACtB,CAAC,OAAO,EAAE,MAAM,CAAC,CACpB,CAAC;QACF,IAAI,CAAC,SAAS,EAAE;YACZ,MAAM,IAAI,sBAAa,CAAC,iDAAiD,CAAC,CAAC;SAC9E;IACL,CAAC;IAEM,oBAAoB,CAAC,eAAuB,EAAE,KAAa;QAC9D,OAAO,2BAAW,CAAC,gBAAgB,CAC/B,qDAAsB,EACtB,mCAAe,EACf,oBAAoB,EACpB,CAAC,eAAe,CAAC,EACjB,KAAK,CACR,CAAC;IACN,CAAC;IAEM,mBAAmB,CACtB,eAAuB,EACvB,MAAc,EACd,QAAiB,EACjB,YAAoB;QAEpB,IAAI,QAAQ,EAAE;YACV,OAAO,2BAAW,CAAC,gBAAgB,CAC/B,YAAY,EACZ,uBAAS,EACT,iBAAiB,EACjB,CAAC,IAAI,CAAC,mBAAmB,EAAE,MAAM,EAAE,eAAe,CAAC,EACnD,GAAG,CACN,CAAC;SACL;QAED,OAAO,2BAAW,CAAC,gBAAgB,CAC/B,IAAI,CAAC,mBAAmB,EACxB,IAAI,CAAC,eAAe,EACpB,aAAa,EACb,CAAC,YAAY,EAAE,eAAe,EAAE,MAAM,CAAC,EACvC,GAAG,CACN,CAAC;IACN,CAAC;CACJ;AAzGD,gCAyGC"}
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
import BigNumber from 'bignumber.js';
|
|
2
|
+
import { Token } from "../../../../../../common/tokens";
|
|
3
|
+
import { EvmWeb3Private } from "../../../../../../core/blockchain/web3-private-service/web3-private/evm-web3-private/evm-web3-private";
|
|
4
|
+
import { EvmWeb3Public } from "../../../../../../core/blockchain/web3-public-service/web3-public/evm-web3-public/evm-web3-public";
|
|
5
|
+
import { EvmEncodeConfig } from "../../../../../../core/blockchain/web3-pure/typed-web3-pure/evm-web3-pure/models/evm-encode-config";
|
|
6
|
+
import { PulseChainCrossChainSupportedBlockchain } from "../constants/pulse-chain-supported-blockchains";
|
|
7
|
+
import { AbiItem } from 'web3-utils';
|
|
8
|
+
export declare abstract class OmniBridge {
|
|
9
|
+
private readonly fromToken;
|
|
10
|
+
private readonly toToken;
|
|
11
|
+
readonly sourceBridgeAddress: string;
|
|
12
|
+
protected readonly targetBridgeAddress: string;
|
|
13
|
+
protected readonly sourceBridgeAbi: AbiItem[];
|
|
14
|
+
protected readonly targetBridgeAbi: AbiItem[];
|
|
15
|
+
protected readonly sourceBlockchain: PulseChainCrossChainSupportedBlockchain;
|
|
16
|
+
protected readonly targetBlockchain: PulseChainCrossChainSupportedBlockchain;
|
|
17
|
+
protected get web3Private(): EvmWeb3Private;
|
|
18
|
+
protected get sourceWeb3Public(): EvmWeb3Public;
|
|
19
|
+
protected get targetWeb3Public(): EvmWeb3Public;
|
|
20
|
+
constructor(fromToken: Token<PulseChainCrossChainSupportedBlockchain>, toToken: Token<PulseChainCrossChainSupportedBlockchain>);
|
|
21
|
+
/**
|
|
22
|
+
* Check if token registered in source network.
|
|
23
|
+
* @param address Token address in source network.
|
|
24
|
+
*/
|
|
25
|
+
abstract isTokenRegistered(address: string): Promise<boolean>;
|
|
26
|
+
/**
|
|
27
|
+
* Check if registered is native bridge token.
|
|
28
|
+
* @param address Token address in source network.
|
|
29
|
+
*/
|
|
30
|
+
protected abstract isRegisteredAsNative(address: string): Promise<boolean>;
|
|
31
|
+
/**
|
|
32
|
+
* Fetch target token address for non native token.
|
|
33
|
+
* @param address Token address in source network.
|
|
34
|
+
*/
|
|
35
|
+
protected abstract getNonNativeToken(address: string): Promise<string>;
|
|
36
|
+
/**
|
|
37
|
+
* Fetch target token address for native token.
|
|
38
|
+
* @param address Token address in source network.
|
|
39
|
+
*/
|
|
40
|
+
protected abstract getNativeToken(address: string): Promise<string>;
|
|
41
|
+
/**
|
|
42
|
+
* Get bridge token address in target network.
|
|
43
|
+
* @param fromAddress Token address in source network.
|
|
44
|
+
*/
|
|
45
|
+
getBridgeToken(fromAddress: string): Promise<string>;
|
|
46
|
+
/**
|
|
47
|
+
* Get min swap amount in source network.
|
|
48
|
+
* @param address Token address in source network.
|
|
49
|
+
*/
|
|
50
|
+
abstract getMinAmountToken(address: string): Promise<BigNumber>;
|
|
51
|
+
/**
|
|
52
|
+
* Check if token allowed to send in source network (min/max amounts, daily limits).
|
|
53
|
+
* @param address Token address in source network.
|
|
54
|
+
* @param amount Swap amount.
|
|
55
|
+
*/
|
|
56
|
+
protected abstract checkSourceLimits(address: string, amount: string): Promise<void>;
|
|
57
|
+
/**
|
|
58
|
+
* Check if token allowed to get in target network (min/max amounts, daily limits).
|
|
59
|
+
* @param address Token address in target network.
|
|
60
|
+
* @param amount Swap amount.
|
|
61
|
+
*/
|
|
62
|
+
protected abstract checkTargetLimits(address: string, amount: string): Promise<void>;
|
|
63
|
+
/**
|
|
64
|
+
* Check if allowed to swap.
|
|
65
|
+
* @param fromAddress Token address in source network.
|
|
66
|
+
* @param toAddress Token address in target network.
|
|
67
|
+
* @param amount Swap amount.
|
|
68
|
+
*/
|
|
69
|
+
checkLimits(fromAddress: string, toAddress: string, amount: string): Promise<void>;
|
|
70
|
+
/**
|
|
71
|
+
* Get fee manager address.
|
|
72
|
+
*/
|
|
73
|
+
private getFeeManager;
|
|
74
|
+
/**
|
|
75
|
+
*
|
|
76
|
+
* Get fee type for trade.
|
|
77
|
+
*/
|
|
78
|
+
private getFeeType;
|
|
79
|
+
/**
|
|
80
|
+
* Calculate output amount for trade.
|
|
81
|
+
* @param toAddress Token address in target network.
|
|
82
|
+
* @param feeManagerAddress Fee manager contract address.
|
|
83
|
+
* @param feeType Type of fee.
|
|
84
|
+
* @param fromAmount Amount of tokens to send.
|
|
85
|
+
*/
|
|
86
|
+
private getOutputAmount;
|
|
87
|
+
/**
|
|
88
|
+
* Calculate output amount for trade.
|
|
89
|
+
* @param toAddress Token address in target network.
|
|
90
|
+
* @param fromAmount Amount of tokens to send.
|
|
91
|
+
*/
|
|
92
|
+
calculateAmount(toAddress: string, fromAmount: string): Promise<BigNumber>;
|
|
93
|
+
static isCustomWrap(token: Token): boolean;
|
|
94
|
+
/**
|
|
95
|
+
* Get swap data for native token trade.
|
|
96
|
+
* @param receiverAddress Receiver address user get money to.
|
|
97
|
+
* @param value Amount of money user spend.
|
|
98
|
+
*/
|
|
99
|
+
abstract getDataForNativeSwap(receiverAddress: string, value: string): EvmEncodeConfig;
|
|
100
|
+
/**
|
|
101
|
+
* Get swap data for native token trade.
|
|
102
|
+
* @param receiverAddress Receiver address user get money to.
|
|
103
|
+
* @param amount Amount of money user spend.
|
|
104
|
+
* @param isERC677 Is token part of ERC677 token standard.
|
|
105
|
+
* @param tokenAddress Address of sending token.
|
|
106
|
+
*/
|
|
107
|
+
abstract getDataForTokenSwap(receiverAddress: string, amount: string, isERC677: boolean, tokenAddress: string): EvmEncodeConfig;
|
|
108
|
+
}
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.OmniBridge = void 0;
|
|
7
|
+
const bignumber_js_1 = __importDefault(require("bignumber.js"));
|
|
8
|
+
const blockchain_1 = require("../../../../../../common/utils/blockchain");
|
|
9
|
+
const blockchain_name_1 = require("../../../../../../core/blockchain/models/blockchain-name");
|
|
10
|
+
const injector_1 = require("../../../../../../core/injector/injector");
|
|
11
|
+
const fee_manager_abi_1 = require("../constants/fee-manager-abi");
|
|
12
|
+
const foreign_bridge_abi_1 = require("../constants/foreign-bridge-abi");
|
|
13
|
+
const home_bridge_abi_1 = require("../constants/home-bridge-abi");
|
|
14
|
+
const pulse_chain_contract_address_1 = require("../constants/pulse-chain-contract-address");
|
|
15
|
+
class OmniBridge {
|
|
16
|
+
get web3Private() {
|
|
17
|
+
return injector_1.Injector.web3PrivateService.getWeb3PrivateByBlockchain(this.sourceBlockchain);
|
|
18
|
+
}
|
|
19
|
+
get sourceWeb3Public() {
|
|
20
|
+
return injector_1.Injector.web3PublicService.getWeb3Public(this.sourceBlockchain);
|
|
21
|
+
}
|
|
22
|
+
get targetWeb3Public() {
|
|
23
|
+
return injector_1.Injector.web3PublicService.getWeb3Public(this.targetBlockchain);
|
|
24
|
+
}
|
|
25
|
+
constructor(fromToken, toToken) {
|
|
26
|
+
this.fromToken = fromToken;
|
|
27
|
+
this.toToken = toToken;
|
|
28
|
+
this.sourceBlockchain = fromToken.blockchain;
|
|
29
|
+
this.targetBlockchain = toToken.blockchain;
|
|
30
|
+
this.sourceBridgeAddress = OmniBridge.isCustomWrap(fromToken)
|
|
31
|
+
? pulse_chain_contract_address_1.pulseChainContractAddress[this.sourceBlockchain].omniBridgeWrapped
|
|
32
|
+
: pulse_chain_contract_address_1.pulseChainContractAddress[this.sourceBlockchain].omniBridge;
|
|
33
|
+
this.targetBridgeAddress = OmniBridge.isCustomWrap(toToken)
|
|
34
|
+
? pulse_chain_contract_address_1.pulseChainContractAddress[this.targetBlockchain].omniBridgeWrapped
|
|
35
|
+
: pulse_chain_contract_address_1.pulseChainContractAddress[this.targetBlockchain].omniBridge;
|
|
36
|
+
if (this.sourceBlockchain === blockchain_name_1.BLOCKCHAIN_NAME.ETHEREUM) {
|
|
37
|
+
this.sourceBridgeAbi = foreign_bridge_abi_1.foreignBridgeAbi;
|
|
38
|
+
this.targetBridgeAbi = home_bridge_abi_1.homeBridgeAbi;
|
|
39
|
+
}
|
|
40
|
+
else {
|
|
41
|
+
this.sourceBridgeAbi = foreign_bridge_abi_1.foreignBridgeAbi;
|
|
42
|
+
this.targetBridgeAbi = home_bridge_abi_1.homeBridgeAbi;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Get bridge token address in target network.
|
|
47
|
+
* @param fromAddress Token address in source network.
|
|
48
|
+
*/
|
|
49
|
+
async getBridgeToken(fromAddress) {
|
|
50
|
+
const isRegisteredAsNative = await this.isRegisteredAsNative(fromAddress);
|
|
51
|
+
return isRegisteredAsNative
|
|
52
|
+
? this.getNativeToken(fromAddress)
|
|
53
|
+
: this.getNonNativeToken(fromAddress);
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Check if allowed to swap.
|
|
57
|
+
* @param fromAddress Token address in source network.
|
|
58
|
+
* @param toAddress Token address in target network.
|
|
59
|
+
* @param amount Swap amount.
|
|
60
|
+
*/
|
|
61
|
+
async checkLimits(fromAddress, toAddress, amount) {
|
|
62
|
+
await this.checkSourceLimits(fromAddress, amount);
|
|
63
|
+
await this.checkTargetLimits(toAddress, amount);
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Get fee manager address.
|
|
67
|
+
*/
|
|
68
|
+
getFeeManager() {
|
|
69
|
+
const web3Public = injector_1.Injector.web3PublicService.getWeb3Public(blockchain_name_1.BLOCKCHAIN_NAME.PULSECHAIN);
|
|
70
|
+
return web3Public.callContractMethod(this.sourceBlockchain === blockchain_name_1.BLOCKCHAIN_NAME.PULSECHAIN
|
|
71
|
+
? this.sourceBridgeAddress
|
|
72
|
+
: this.targetBridgeAddress, home_bridge_abi_1.homeBridgeAbi, 'feeManager', []);
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
*
|
|
76
|
+
* Get fee type for trade.
|
|
77
|
+
*/
|
|
78
|
+
getFeeType(feeManagerAddress) {
|
|
79
|
+
const web3Public = injector_1.Injector.web3PublicService.getWeb3Public(blockchain_name_1.BLOCKCHAIN_NAME.PULSECHAIN);
|
|
80
|
+
return web3Public.callContractMethod(feeManagerAddress, fee_manager_abi_1.feeManagerAbi, this.sourceBlockchain === blockchain_name_1.BLOCKCHAIN_NAME.ETHEREUM
|
|
81
|
+
? 'FOREIGN_TO_HOME_FEE'
|
|
82
|
+
: 'HOME_TO_FOREIGN_FEE', []);
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Calculate output amount for trade.
|
|
86
|
+
* @param toAddress Token address in target network.
|
|
87
|
+
* @param feeManagerAddress Fee manager contract address.
|
|
88
|
+
* @param feeType Type of fee.
|
|
89
|
+
* @param fromAmount Amount of tokens to send.
|
|
90
|
+
*/
|
|
91
|
+
async getOutputAmount(toAddress, feeManagerAddress, feeType, fromAmount) {
|
|
92
|
+
const web3Public = injector_1.Injector.web3PublicService.getWeb3Public(blockchain_name_1.BLOCKCHAIN_NAME.PULSECHAIN);
|
|
93
|
+
const feeAmount = await web3Public.callContractMethod(feeManagerAddress, fee_manager_abi_1.feeManagerAbi, 'calculateFee', [feeType, toAddress, fromAmount]);
|
|
94
|
+
return new bignumber_js_1.default(fromAmount).minus(feeAmount);
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Calculate output amount for trade.
|
|
98
|
+
* @param toAddress Token address in target network.
|
|
99
|
+
* @param fromAmount Amount of tokens to send.
|
|
100
|
+
*/
|
|
101
|
+
async calculateAmount(toAddress, fromAmount) {
|
|
102
|
+
const feeManagerAddress = await this.getFeeManager();
|
|
103
|
+
const feeType = await this.getFeeType(feeManagerAddress);
|
|
104
|
+
return this.getOutputAmount(toAddress, feeManagerAddress, feeType, fromAmount);
|
|
105
|
+
}
|
|
106
|
+
static isCustomWrap(token) {
|
|
107
|
+
return (token.blockchain === blockchain_name_1.BLOCKCHAIN_NAME.ETHEREUM &&
|
|
108
|
+
(0, blockchain_1.compareAddresses)(token.address, '0xA882606494D86804B5514E07e6Bd2D6a6eE6d68A'));
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
exports.OmniBridge = OmniBridge;
|
|
112
|
+
//# sourceMappingURL=omni-bridge.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"omni-bridge.js","sourceRoot":"","sources":["../../../../../../../src/features/cross-chain/calculation-manager/providers/pulse-chain-bridge/omni-bridge-entities/omni-bridge.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { PriceToken, PriceTokenAmount } from "../../../../../common/tokens";
|
|
2
|
+
import { BlockchainName, EvmBlockchainName } from "../../../../../core/blockchain/models/blockchain-name";
|
|
3
|
+
import { RequiredCrossChainOptions } from "../../models/cross-chain-options";
|
|
4
|
+
import { CrossChainProvider } from "../common/cross-chain-provider";
|
|
5
|
+
import { CalculationResult } from "../common/models/calculation-result";
|
|
6
|
+
import { FeeInfo } from "../common/models/fee-info";
|
|
7
|
+
import { RubicStep } from "../common/models/rubicStep";
|
|
8
|
+
import { PulseChainCrossChainSupportedBlockchain } from "./constants/pulse-chain-supported-blockchains";
|
|
9
|
+
import { EvmOnChainTrade } from "../../../../on-chain/calculation-manager/providers/common/on-chain-trade/evm-on-chain-trade/evm-on-chain-trade";
|
|
10
|
+
export declare class PulseChainCrossChainProvider extends CrossChainProvider {
|
|
11
|
+
readonly type: "pulse_chain_bridge";
|
|
12
|
+
isSupportedBlockchain(blockchain: BlockchainName): blockchain is PulseChainCrossChainSupportedBlockchain;
|
|
13
|
+
calculate(fromToken: PriceTokenAmount<EvmBlockchainName>, toToken: PriceToken<EvmBlockchainName>, options: RequiredCrossChainOptions): Promise<CalculationResult>;
|
|
14
|
+
private getOnChainTrade;
|
|
15
|
+
private getMinMaxAmountsErrors;
|
|
16
|
+
protected getFeeInfo(fromBlockchain: PulseChainCrossChainSupportedBlockchain, providerAddress: string, percentFeeToken: PriceTokenAmount, useProxy: boolean): Promise<FeeInfo>;
|
|
17
|
+
protected getRoutePath(from: PriceTokenAmount, transit: PriceTokenAmount, to: PriceTokenAmount, onChainTrade: EvmOnChainTrade | null): Promise<RubicStep[]>;
|
|
18
|
+
private getTokenAddress;
|
|
19
|
+
}
|