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.
Files changed (163) hide show
  1. package/dist/rubic-sdk.min.js +3816 -17
  2. package/dist/rubic-sdk.min.js.map +1 -1
  3. package/lib/common/tokens/token.js +1 -1
  4. package/lib/common/tokens/token.js.map +1 -1
  5. package/lib/core/blockchain/models/blockchain-name.d.ts +2 -0
  6. package/lib/core/blockchain/models/blockchain-name.js +1 -0
  7. package/lib/core/blockchain/models/blockchain-name.js.map +1 -1
  8. package/lib/core/blockchain/models/chain-type.d.ts +1 -1
  9. package/lib/core/blockchain/models/chain-type.js +1 -1
  10. package/lib/core/blockchain/models/chain-type.js.map +1 -1
  11. package/lib/core/blockchain/web3-private-service/models/web-private-supported-blockchain.d.ts +1 -1
  12. package/lib/core/blockchain/web3-public-service/models/web3-public-storage.d.ts +1 -1
  13. package/lib/features/common/providers/rango/constants/rango-api-common.d.ts +2 -0
  14. package/lib/features/common/providers/rango/constants/rango-api-common.js +6 -0
  15. package/lib/features/common/providers/rango/constants/rango-api-common.js.map +1 -0
  16. package/lib/features/common/providers/rango/constants/rango-contract-address.d.ts +3 -0
  17. package/lib/features/common/providers/rango/constants/rango-contract-address.js +73 -0
  18. package/lib/features/common/providers/rango/constants/rango-contract-address.js.map +1 -0
  19. package/lib/features/common/providers/rango/models/rango-api-best-route-types.d.ts +54 -0
  20. package/lib/features/common/providers/rango/models/rango-api-best-route-types.js +3 -0
  21. package/lib/features/common/providers/rango/models/rango-api-best-route-types.js.map +1 -0
  22. package/lib/features/common/providers/rango/models/rango-api-blockchain-names.d.ts +3 -0
  23. package/lib/features/common/providers/rango/models/rango-api-blockchain-names.js +20 -0
  24. package/lib/features/common/providers/rango/models/rango-api-blockchain-names.js.map +1 -0
  25. package/lib/features/common/providers/rango/models/rango-api-common-types.d.ts +26 -0
  26. package/lib/features/common/providers/rango/models/rango-api-common-types.js +10 -0
  27. package/lib/features/common/providers/rango/models/rango-api-common-types.js.map +1 -0
  28. package/lib/features/common/providers/rango/models/rango-api-status-types.d.ts +38 -0
  29. package/lib/features/common/providers/rango/models/rango-api-status-types.js +9 -0
  30. package/lib/features/common/providers/rango/models/rango-api-status-types.js.map +1 -0
  31. package/lib/features/common/providers/rango/models/rango-api-swap-types.d.ts +56 -0
  32. package/lib/features/common/providers/rango/models/rango-api-swap-types.js +3 -0
  33. package/lib/features/common/providers/rango/models/rango-api-swap-types.js.map +1 -0
  34. package/lib/features/common/providers/rango/models/rango-api-symbol-names.d.ts +3 -0
  35. package/lib/features/common/providers/rango/models/rango-api-symbol-names.js +20 -0
  36. package/lib/features/common/providers/rango/models/rango-api-symbol-names.js.map +1 -0
  37. package/lib/features/common/providers/rango/models/rango-api-trade-types.d.ts +125 -0
  38. package/lib/features/common/providers/rango/models/rango-api-trade-types.js +69 -0
  39. package/lib/features/common/providers/rango/models/rango-api-trade-types.js.map +1 -0
  40. package/lib/features/common/providers/rango/models/rango-parser-types.d.ts +37 -0
  41. package/lib/features/common/providers/rango/models/rango-parser-types.js +3 -0
  42. package/lib/features/common/providers/rango/models/rango-parser-types.js.map +1 -0
  43. package/lib/features/common/providers/rango/models/rango-supported-blockchains.d.ts +2 -0
  44. package/lib/features/common/providers/rango/models/rango-supported-blockchains.js +20 -0
  45. package/lib/features/common/providers/rango/models/rango-supported-blockchains.js.map +1 -0
  46. package/lib/features/common/providers/rango/services/rango-parser.d.ts +13 -0
  47. package/lib/features/common/providers/rango/services/rango-parser.js +56 -0
  48. package/lib/features/common/providers/rango/services/rango-parser.js.map +1 -0
  49. package/lib/features/common/providers/rango/utils/rango-utils.d.ts +18 -0
  50. package/lib/features/common/providers/rango/utils/rango-utils.js +63 -0
  51. package/lib/features/common/providers/rango/utils/rango-utils.js.map +1 -0
  52. package/lib/features/cross-chain/calculation-manager/constants/cross-chain-providers.d.ts +3 -1
  53. package/lib/features/cross-chain/calculation-manager/constants/cross-chain-providers.js +5 -1
  54. package/lib/features/cross-chain/calculation-manager/constants/cross-chain-providers.js.map +1 -1
  55. package/lib/features/cross-chain/calculation-manager/models/cross-chain-options.d.ts +5 -0
  56. package/lib/features/cross-chain/calculation-manager/models/cross-chain-trade-type.d.ts +2 -0
  57. package/lib/features/cross-chain/calculation-manager/models/cross-chain-trade-type.js +3 -1
  58. package/lib/features/cross-chain/calculation-manager/models/cross-chain-trade-type.js.map +1 -1
  59. package/lib/features/cross-chain/calculation-manager/providers/changenow-provider/changenow-cross-chain-trade.d.ts +1 -1
  60. package/lib/features/cross-chain/calculation-manager/providers/common/cross-chain-trade.d.ts +1 -0
  61. package/lib/features/cross-chain/calculation-manager/providers/common/cross-chain-trade.js.map +1 -1
  62. package/lib/features/cross-chain/calculation-manager/providers/common/emv-cross-chain-trade/constants/evm-common-cross-chain-abi.js +26 -8
  63. package/lib/features/cross-chain/calculation-manager/providers/common/emv-cross-chain-trade/constants/evm-common-cross-chain-abi.js.map +1 -1
  64. package/lib/features/cross-chain/calculation-manager/providers/common/emv-cross-chain-trade/evm-cross-chain-trade.d.ts +4 -0
  65. package/lib/features/cross-chain/calculation-manager/providers/common/emv-cross-chain-trade/evm-cross-chain-trade.js +4 -0
  66. package/lib/features/cross-chain/calculation-manager/providers/common/emv-cross-chain-trade/evm-cross-chain-trade.js.map +1 -1
  67. package/lib/features/cross-chain/calculation-manager/providers/common/models/bridge-type.d.ts +9 -2
  68. package/lib/features/cross-chain/calculation-manager/providers/common/models/default-bridge-type.d.ts +8 -1
  69. package/lib/features/cross-chain/calculation-manager/providers/common/models/default-bridge-type.js +6 -1
  70. package/lib/features/cross-chain/calculation-manager/providers/common/models/default-bridge-type.js.map +1 -1
  71. package/lib/features/cross-chain/calculation-manager/providers/common/models/rubicStep.d.ts +2 -2
  72. package/lib/features/cross-chain/calculation-manager/providers/pulse-chain-bridge/constants/erc-677-abi.d.ts +2 -0
  73. package/lib/features/cross-chain/calculation-manager/providers/pulse-chain-bridge/constants/erc-677-abi.js +17 -0
  74. package/lib/features/cross-chain/calculation-manager/providers/pulse-chain-bridge/constants/erc-677-abi.js.map +1 -0
  75. package/lib/features/cross-chain/calculation-manager/providers/pulse-chain-bridge/constants/fee-manager-abi.d.ts +2 -0
  76. package/lib/features/cross-chain/calculation-manager/providers/pulse-chain-bridge/constants/fee-manager-abi.js +61 -0
  77. package/lib/features/cross-chain/calculation-manager/providers/pulse-chain-bridge/constants/fee-manager-abi.js.map +1 -0
  78. package/lib/features/cross-chain/calculation-manager/providers/pulse-chain-bridge/constants/foreign-bridge-abi.d.ts +2 -0
  79. package/lib/features/cross-chain/calculation-manager/providers/pulse-chain-bridge/constants/foreign-bridge-abi.js +72 -0
  80. package/lib/features/cross-chain/calculation-manager/providers/pulse-chain-bridge/constants/foreign-bridge-abi.js.map +1 -0
  81. package/lib/features/cross-chain/calculation-manager/providers/pulse-chain-bridge/constants/home-bridge-abi.d.ts +2 -0
  82. package/lib/features/cross-chain/calculation-manager/providers/pulse-chain-bridge/constants/home-bridge-abi.js +1390 -0
  83. package/lib/features/cross-chain/calculation-manager/providers/pulse-chain-bridge/constants/home-bridge-abi.js.map +1 -0
  84. package/lib/features/cross-chain/calculation-manager/providers/pulse-chain-bridge/constants/native-bridge-abi.d.ts +2 -0
  85. package/lib/features/cross-chain/calculation-manager/providers/pulse-chain-bridge/constants/native-bridge-abi.js +14 -0
  86. package/lib/features/cross-chain/calculation-manager/providers/pulse-chain-bridge/constants/native-bridge-abi.js.map +1 -0
  87. package/lib/features/cross-chain/calculation-manager/providers/pulse-chain-bridge/constants/pulse-chain-contract-address.d.ts +6 -0
  88. package/lib/features/cross-chain/calculation-manager/providers/pulse-chain-bridge/constants/pulse-chain-contract-address.js +16 -0
  89. package/lib/features/cross-chain/calculation-manager/providers/pulse-chain-bridge/constants/pulse-chain-contract-address.js.map +1 -0
  90. package/lib/features/cross-chain/calculation-manager/providers/pulse-chain-bridge/constants/pulse-chain-supported-blockchains.d.ts +2 -0
  91. package/lib/features/cross-chain/calculation-manager/providers/pulse-chain-bridge/constants/pulse-chain-supported-blockchains.js +9 -0
  92. package/lib/features/cross-chain/calculation-manager/providers/pulse-chain-bridge/constants/pulse-chain-supported-blockchains.js.map +1 -0
  93. package/lib/features/cross-chain/calculation-manager/providers/pulse-chain-bridge/omni-bridge-entities/bridge-manager.d.ts +7 -0
  94. package/lib/features/cross-chain/calculation-manager/providers/pulse-chain-bridge/omni-bridge-entities/bridge-manager.js +15 -0
  95. package/lib/features/cross-chain/calculation-manager/providers/pulse-chain-bridge/omni-bridge-entities/bridge-manager.js.map +1 -0
  96. package/lib/features/cross-chain/calculation-manager/providers/pulse-chain-bridge/omni-bridge-entities/foreign-bridge.d.ts +14 -0
  97. package/lib/features/cross-chain/calculation-manager/providers/pulse-chain-bridge/omni-bridge-entities/foreign-bridge.js +54 -0
  98. package/lib/features/cross-chain/calculation-manager/providers/pulse-chain-bridge/omni-bridge-entities/foreign-bridge.js.map +1 -0
  99. package/lib/features/cross-chain/calculation-manager/providers/pulse-chain-bridge/omni-bridge-entities/home-bridge.d.ts +14 -0
  100. package/lib/features/cross-chain/calculation-manager/providers/pulse-chain-bridge/omni-bridge-entities/home-bridge.js +54 -0
  101. package/lib/features/cross-chain/calculation-manager/providers/pulse-chain-bridge/omni-bridge-entities/home-bridge.js.map +1 -0
  102. package/lib/features/cross-chain/calculation-manager/providers/pulse-chain-bridge/omni-bridge-entities/omni-bridge.d.ts +108 -0
  103. package/lib/features/cross-chain/calculation-manager/providers/pulse-chain-bridge/omni-bridge-entities/omni-bridge.js +112 -0
  104. package/lib/features/cross-chain/calculation-manager/providers/pulse-chain-bridge/omni-bridge-entities/omni-bridge.js.map +1 -0
  105. package/lib/features/cross-chain/calculation-manager/providers/pulse-chain-bridge/pulse-chain-cross-chain-provider.d.ts +19 -0
  106. package/lib/features/cross-chain/calculation-manager/providers/pulse-chain-bridge/pulse-chain-cross-chain-provider.js +182 -0
  107. package/lib/features/cross-chain/calculation-manager/providers/pulse-chain-bridge/pulse-chain-cross-chain-provider.js.map +1 -0
  108. package/lib/features/cross-chain/calculation-manager/providers/pulse-chain-bridge/pulse-chain-cross-chain-trade.d.ts +55 -0
  109. package/lib/features/cross-chain/calculation-manager/providers/pulse-chain-bridge/pulse-chain-cross-chain-trade.js +232 -0
  110. package/lib/features/cross-chain/calculation-manager/providers/pulse-chain-bridge/pulse-chain-cross-chain-trade.js.map +1 -0
  111. package/lib/features/cross-chain/calculation-manager/providers/rango-provider/model/rango-cross-chain-api-types.d.ts +8 -0
  112. package/lib/features/cross-chain/calculation-manager/providers/rango-provider/model/rango-cross-chain-api-types.js +3 -0
  113. package/lib/features/cross-chain/calculation-manager/providers/rango-provider/model/rango-cross-chain-api-types.js.map +1 -0
  114. package/lib/features/cross-chain/calculation-manager/providers/rango-provider/model/rango-cross-chain-parser-types.d.ts +32 -0
  115. package/lib/features/cross-chain/calculation-manager/providers/rango-provider/model/rango-cross-chain-parser-types.js +3 -0
  116. package/lib/features/cross-chain/calculation-manager/providers/rango-provider/model/rango-cross-chain-parser-types.js.map +1 -0
  117. package/lib/features/cross-chain/calculation-manager/providers/rango-provider/rango-cross-chain-provider.d.ts +21 -0
  118. package/lib/features/cross-chain/calculation-manager/providers/rango-provider/rango-cross-chain-provider.js +111 -0
  119. package/lib/features/cross-chain/calculation-manager/providers/rango-provider/rango-cross-chain-provider.js.map +1 -0
  120. package/lib/features/cross-chain/calculation-manager/providers/rango-provider/rango-cross-chain-trade.d.ts +48 -0
  121. package/lib/features/cross-chain/calculation-manager/providers/rango-provider/rango-cross-chain-trade.js +210 -0
  122. package/lib/features/cross-chain/calculation-manager/providers/rango-provider/rango-cross-chain-trade.js.map +1 -0
  123. package/lib/features/cross-chain/calculation-manager/providers/rango-provider/services/rango-cross-chain-api-service.d.ts +12 -0
  124. package/lib/features/cross-chain/calculation-manager/providers/rango-provider/services/rango-cross-chain-api-service.js +36 -0
  125. package/lib/features/cross-chain/calculation-manager/providers/rango-provider/services/rango-cross-chain-api-service.js.map +1 -0
  126. package/lib/features/cross-chain/calculation-manager/providers/rango-provider/services/rango-cross-chain-params-parser.d.ts +4 -0
  127. package/lib/features/cross-chain/calculation-manager/providers/rango-provider/services/rango-cross-chain-params-parser.js +37 -0
  128. package/lib/features/cross-chain/calculation-manager/providers/rango-provider/services/rango-cross-chain-params-parser.js.map +1 -0
  129. package/lib/features/cross-chain/calculation-manager/providers/stargate-provider/stargate-cross-chain-trade.d.ts +1 -2
  130. package/lib/features/cross-chain/calculation-manager/providers/stargate-provider/stargate-cross-chain-trade.js.map +1 -1
  131. package/lib/features/cross-chain/calculation-manager/providers/symbiosis-provider/symbiosis-cross-chain-provider.js +1 -1
  132. package/lib/features/cross-chain/calculation-manager/providers/symbiosis-provider/symbiosis-cross-chain-provider.js.map +1 -1
  133. package/lib/features/cross-chain/status-manager/cross-chain-status-manager.d.ts +2 -0
  134. package/lib/features/cross-chain/status-manager/cross-chain-status-manager.js +39 -1
  135. package/lib/features/cross-chain/status-manager/cross-chain-status-manager.js.map +1 -1
  136. package/lib/features/cross-chain/status-manager/models/rubic-backend-ps-status.d.ts +6 -0
  137. package/lib/features/cross-chain/status-manager/models/rubic-backend-ps-status.js +3 -0
  138. package/lib/features/cross-chain/status-manager/models/rubic-backend-ps-status.js.map +1 -0
  139. package/lib/features/on-chain/calculation-manager/on-chain-manager.d.ts +3 -0
  140. package/lib/features/on-chain/calculation-manager/on-chain-manager.js +34 -2
  141. package/lib/features/on-chain/calculation-manager/on-chain-manager.js.map +1 -1
  142. package/lib/features/on-chain/calculation-manager/providers/common/models/on-chain-trade-type.d.ts +14 -0
  143. package/lib/features/on-chain/calculation-manager/providers/common/models/on-chain-trade-type.js +14 -0
  144. package/lib/features/on-chain/calculation-manager/providers/common/models/on-chain-trade-type.js.map +1 -1
  145. package/lib/features/on-chain/calculation-manager/providers/rango/models/rango-on-chain-disabled-providers.d.ts +2 -0
  146. package/lib/features/on-chain/calculation-manager/providers/rango/models/rango-on-chain-disabled-providers.js +19 -0
  147. package/lib/features/on-chain/calculation-manager/providers/rango/models/rango-on-chain-disabled-providers.js.map +1 -0
  148. package/lib/features/on-chain/calculation-manager/providers/rango/models/rango-on-chain-trade-types.d.ts +5 -0
  149. package/lib/features/on-chain/calculation-manager/providers/rango/models/rango-on-chain-trade-types.js +3 -0
  150. package/lib/features/on-chain/calculation-manager/providers/rango/models/rango-on-chain-trade-types.js.map +1 -0
  151. package/lib/features/on-chain/calculation-manager/providers/rango/rango-on-chain-provider.d.ts +17 -0
  152. package/lib/features/on-chain/calculation-manager/providers/rango/rango-on-chain-provider.js +105 -0
  153. package/lib/features/on-chain/calculation-manager/providers/rango/rango-on-chain-provider.js.map +1 -0
  154. package/lib/features/on-chain/calculation-manager/providers/rango/rango-on-chain-trade.d.ts +22 -0
  155. package/lib/features/on-chain/calculation-manager/providers/rango/rango-on-chain-trade.js +114 -0
  156. package/lib/features/on-chain/calculation-manager/providers/rango/rango-on-chain-trade.js.map +1 -0
  157. package/lib/features/on-chain/calculation-manager/providers/rango/services/rango-on-chain-api-service.d.ts +12 -0
  158. package/lib/features/on-chain/calculation-manager/providers/rango/services/rango-on-chain-api-service.js +36 -0
  159. package/lib/features/on-chain/calculation-manager/providers/rango/services/rango-on-chain-api-service.js.map +1 -0
  160. package/lib/index.d.ts +38 -0
  161. package/lib/index.js +38 -0
  162. package/lib/index.js.map +1 -1
  163. 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,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
+ }