rubic-sdk 4.46.0 → 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.
Files changed (63) hide show
  1. package/dist/rubic-sdk.min.js +2627 -207
  2. package/dist/rubic-sdk.min.js.map +1 -1
  3. package/lib/features/cross-chain/calculation-manager/constants/cross-chain-providers.d.ts +2 -1
  4. package/lib/features/cross-chain/calculation-manager/constants/cross-chain-providers.js +3 -1
  5. package/lib/features/cross-chain/calculation-manager/constants/cross-chain-providers.js.map +1 -1
  6. package/lib/features/cross-chain/calculation-manager/models/cross-chain-trade-type.d.ts +1 -0
  7. package/lib/features/cross-chain/calculation-manager/models/cross-chain-trade-type.js +2 -1
  8. package/lib/features/cross-chain/calculation-manager/models/cross-chain-trade-type.js.map +1 -1
  9. package/lib/features/cross-chain/calculation-manager/providers/common/emv-cross-chain-trade/constants/evm-common-cross-chain-abi.js +26 -8
  10. package/lib/features/cross-chain/calculation-manager/providers/common/emv-cross-chain-trade/constants/evm-common-cross-chain-abi.js.map +1 -1
  11. package/lib/features/cross-chain/calculation-manager/providers/common/models/bridge-type.d.ts +2 -1
  12. package/lib/features/cross-chain/calculation-manager/providers/common/models/default-bridge-type.d.ts +1 -0
  13. package/lib/features/cross-chain/calculation-manager/providers/pulse-chain-bridge/constants/erc-677-abi.d.ts +2 -0
  14. package/lib/features/cross-chain/calculation-manager/providers/pulse-chain-bridge/constants/erc-677-abi.js +17 -0
  15. package/lib/features/cross-chain/calculation-manager/providers/pulse-chain-bridge/constants/erc-677-abi.js.map +1 -0
  16. package/lib/features/cross-chain/calculation-manager/providers/pulse-chain-bridge/constants/fee-manager-abi.d.ts +2 -0
  17. package/lib/features/cross-chain/calculation-manager/providers/pulse-chain-bridge/constants/fee-manager-abi.js +61 -0
  18. package/lib/features/cross-chain/calculation-manager/providers/pulse-chain-bridge/constants/fee-manager-abi.js.map +1 -0
  19. package/lib/features/cross-chain/calculation-manager/providers/pulse-chain-bridge/constants/foreign-bridge-abi.d.ts +2 -0
  20. package/lib/features/cross-chain/calculation-manager/providers/pulse-chain-bridge/constants/foreign-bridge-abi.js +72 -0
  21. package/lib/features/cross-chain/calculation-manager/providers/pulse-chain-bridge/constants/foreign-bridge-abi.js.map +1 -0
  22. package/lib/features/cross-chain/calculation-manager/providers/pulse-chain-bridge/constants/home-bridge-abi.d.ts +2 -0
  23. package/lib/features/cross-chain/calculation-manager/providers/pulse-chain-bridge/constants/home-bridge-abi.js +1390 -0
  24. package/lib/features/cross-chain/calculation-manager/providers/pulse-chain-bridge/constants/home-bridge-abi.js.map +1 -0
  25. package/lib/features/cross-chain/calculation-manager/providers/pulse-chain-bridge/constants/native-bridge-abi.d.ts +2 -0
  26. package/lib/features/cross-chain/calculation-manager/providers/pulse-chain-bridge/constants/native-bridge-abi.js +14 -0
  27. package/lib/features/cross-chain/calculation-manager/providers/pulse-chain-bridge/constants/native-bridge-abi.js.map +1 -0
  28. package/lib/features/cross-chain/calculation-manager/providers/pulse-chain-bridge/constants/pulse-chain-contract-address.d.ts +6 -0
  29. package/lib/features/cross-chain/calculation-manager/providers/pulse-chain-bridge/constants/pulse-chain-contract-address.js +16 -0
  30. package/lib/features/cross-chain/calculation-manager/providers/pulse-chain-bridge/constants/pulse-chain-contract-address.js.map +1 -0
  31. package/lib/features/cross-chain/calculation-manager/providers/pulse-chain-bridge/constants/pulse-chain-supported-blockchains.d.ts +2 -0
  32. package/lib/features/cross-chain/calculation-manager/providers/pulse-chain-bridge/constants/pulse-chain-supported-blockchains.js +9 -0
  33. package/lib/features/cross-chain/calculation-manager/providers/pulse-chain-bridge/constants/pulse-chain-supported-blockchains.js.map +1 -0
  34. package/lib/features/cross-chain/calculation-manager/providers/pulse-chain-bridge/omni-bridge-entities/bridge-manager.d.ts +7 -0
  35. package/lib/features/cross-chain/calculation-manager/providers/pulse-chain-bridge/omni-bridge-entities/bridge-manager.js +15 -0
  36. package/lib/features/cross-chain/calculation-manager/providers/pulse-chain-bridge/omni-bridge-entities/bridge-manager.js.map +1 -0
  37. package/lib/features/cross-chain/calculation-manager/providers/pulse-chain-bridge/omni-bridge-entities/foreign-bridge.d.ts +14 -0
  38. package/lib/features/cross-chain/calculation-manager/providers/pulse-chain-bridge/omni-bridge-entities/foreign-bridge.js +54 -0
  39. package/lib/features/cross-chain/calculation-manager/providers/pulse-chain-bridge/omni-bridge-entities/foreign-bridge.js.map +1 -0
  40. package/lib/features/cross-chain/calculation-manager/providers/pulse-chain-bridge/omni-bridge-entities/home-bridge.d.ts +14 -0
  41. package/lib/features/cross-chain/calculation-manager/providers/pulse-chain-bridge/omni-bridge-entities/home-bridge.js +54 -0
  42. package/lib/features/cross-chain/calculation-manager/providers/pulse-chain-bridge/omni-bridge-entities/home-bridge.js.map +1 -0
  43. package/lib/features/cross-chain/calculation-manager/providers/pulse-chain-bridge/omni-bridge-entities/omni-bridge.d.ts +108 -0
  44. package/lib/features/cross-chain/calculation-manager/providers/pulse-chain-bridge/omni-bridge-entities/omni-bridge.js +112 -0
  45. package/lib/features/cross-chain/calculation-manager/providers/pulse-chain-bridge/omni-bridge-entities/omni-bridge.js.map +1 -0
  46. package/lib/features/cross-chain/calculation-manager/providers/pulse-chain-bridge/pulse-chain-cross-chain-provider.d.ts +19 -0
  47. package/lib/features/cross-chain/calculation-manager/providers/pulse-chain-bridge/pulse-chain-cross-chain-provider.js +182 -0
  48. package/lib/features/cross-chain/calculation-manager/providers/pulse-chain-bridge/pulse-chain-cross-chain-provider.js.map +1 -0
  49. package/lib/features/cross-chain/calculation-manager/providers/pulse-chain-bridge/pulse-chain-cross-chain-trade.d.ts +55 -0
  50. package/lib/features/cross-chain/calculation-manager/providers/pulse-chain-bridge/pulse-chain-cross-chain-trade.js +232 -0
  51. package/lib/features/cross-chain/calculation-manager/providers/pulse-chain-bridge/pulse-chain-cross-chain-trade.js.map +1 -0
  52. package/lib/features/cross-chain/calculation-manager/providers/stargate-provider/stargate-cross-chain-trade.d.ts +1 -2
  53. package/lib/features/cross-chain/calculation-manager/providers/stargate-provider/stargate-cross-chain-trade.js.map +1 -1
  54. package/lib/features/cross-chain/status-manager/cross-chain-status-manager.d.ts +1 -0
  55. package/lib/features/cross-chain/status-manager/cross-chain-status-manager.js +15 -1
  56. package/lib/features/cross-chain/status-manager/cross-chain-status-manager.js.map +1 -1
  57. package/lib/features/cross-chain/status-manager/models/rubic-backend-ps-status.d.ts +6 -0
  58. package/lib/features/cross-chain/status-manager/models/rubic-backend-ps-status.js +3 -0
  59. package/lib/features/cross-chain/status-manager/models/rubic-backend-ps-status.js.map +1 -0
  60. package/lib/index.d.ts +14 -0
  61. package/lib/index.js +14 -0
  62. package/lib/index.js.map +1 -1
  63. package/package.json +1 -1
@@ -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,2 @@
1
+ import { AbiItem } from 'web3-utils';
2
+ export declare const nativeBridgeAbi: AbiItem[];
@@ -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,2 @@
1
+ export declare const pulseChainSupportedBlockchains: readonly ["ETH", "PULSECHAIN"];
2
+ export type PulseChainCrossChainSupportedBlockchain = (typeof pulseChainSupportedBlockchains)[number];
@@ -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":"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"}
@@ -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
+ }