@subwallet/extension-base 1.3.21-0 → 1.3.23-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 (223) hide show
  1. package/background/KoniTypes.d.ts +75 -2
  2. package/background/KoniTypes.js +2 -0
  3. package/cjs/background/KoniTypes.js +2 -0
  4. package/cjs/constants/environment.js +4 -2
  5. package/cjs/constants/signing.js +6 -2
  6. package/cjs/core/logic-validation/recipientAddress.js +9 -1
  7. package/cjs/core/logic-validation/transfer.js +35 -29
  8. package/cjs/core/types.js +1 -0
  9. package/cjs/core/utils.js +12 -1
  10. package/cjs/defaults.js +1 -1
  11. package/cjs/koni/api/dotsama/crowdloan.js +1 -1
  12. package/cjs/koni/api/nft/index.js +9 -16
  13. package/cjs/koni/api/staking/index.js +3 -4
  14. package/cjs/koni/background/handlers/Extension.js +234 -96
  15. package/cjs/koni/background/handlers/State.js +15 -0
  16. package/cjs/packageInfo.js +1 -1
  17. package/cjs/services/balance-service/helpers/subscribe/cardano/consts.js +11 -0
  18. package/cjs/services/balance-service/helpers/subscribe/cardano/index.js +63 -0
  19. package/cjs/services/balance-service/helpers/subscribe/cardano/types.js +1 -0
  20. package/cjs/services/balance-service/helpers/subscribe/cardano/utils.js +74 -0
  21. package/cjs/services/balance-service/helpers/subscribe/index.js +21 -7
  22. package/cjs/services/balance-service/helpers/subscribe/ton/utils.js +2 -2
  23. package/cjs/services/balance-service/index.js +4 -2
  24. package/cjs/services/balance-service/transfer/cardano-transfer.js +122 -0
  25. package/cjs/services/balance-service/transfer/token.js +4 -4
  26. package/cjs/services/chain-service/constants.js +8 -3
  27. package/cjs/services/chain-service/handler/CardanoApi.js +176 -0
  28. package/cjs/services/chain-service/handler/CardanoChainHandler.js +83 -0
  29. package/cjs/services/chain-service/handler/SubstrateChainHandler.js +3 -2
  30. package/cjs/services/chain-service/handler/TonApi.js +2 -5
  31. package/cjs/services/chain-service/index.js +38 -7
  32. package/cjs/services/chain-service/utils/index.js +40 -11
  33. package/cjs/services/chain-service/utils/patch.js +1 -1
  34. package/cjs/services/earning-service/constants/chains.js +2 -1
  35. package/cjs/services/earning-service/handlers/liquid-staking/bifrost-manta.js +1 -1
  36. package/cjs/services/earning-service/handlers/liquid-staking/bifrost.js +1 -1
  37. package/cjs/services/earning-service/handlers/native-staking/mythos.js +337 -0
  38. package/cjs/services/earning-service/service.js +10 -12
  39. package/cjs/services/earning-service/utils/index.js +2 -0
  40. package/cjs/services/fee-service/service.js +19 -8
  41. package/cjs/services/history-service/index.js +4 -6
  42. package/cjs/services/inapp-notification-service/index.js +12 -4
  43. package/cjs/services/keyring-service/context/account-context.js +17 -2
  44. package/cjs/services/keyring-service/context/handlers/Derive.js +10 -7
  45. package/cjs/services/keyring-service/context/handlers/Migration.js +268 -0
  46. package/cjs/services/keyring-service/context/handlers/Mnemonic.js +2 -2
  47. package/cjs/services/keyring-service/context/handlers/Secret.js +1 -1
  48. package/cjs/services/keyring-service/utils.js +18 -0
  49. package/cjs/services/migration-service/scripts/databases/ClearMetadataDatabase.js +3 -23
  50. package/cjs/services/migration-service/scripts/databases/ClearMetadataForChains.js +40 -0
  51. package/cjs/services/migration-service/scripts/databases/ClearMetadataForMythos.js +15 -0
  52. package/cjs/services/migration-service/scripts/index.js +6 -2
  53. package/cjs/services/request-service/handler/CardanoRequestHandler.js +172 -0
  54. package/cjs/services/request-service/handler/EvmRequestHandler.js +1 -1
  55. package/cjs/services/request-service/index.js +20 -2
  56. package/cjs/services/setting-service/constants.js +10 -1
  57. package/cjs/services/storage-service/DatabaseService.js +6 -0
  58. package/cjs/services/storage-service/db-stores/InappNotification.js +6 -0
  59. package/cjs/services/storage-service/db-stores/Metadata.js +3 -0
  60. package/cjs/services/storage-service/db-stores/Migration.js +6 -1
  61. package/cjs/services/swap-service/handler/asset-hub/handler.js +0 -59
  62. package/cjs/services/swap-service/handler/chainflip-handler.js +33 -281
  63. package/cjs/services/swap-service/handler/hydradx-handler.js +23 -190
  64. package/cjs/services/swap-service/handler/simpleswap-handler.js +1 -222
  65. package/cjs/services/swap-service/handler/uniswap-handler.js +331 -0
  66. package/cjs/services/swap-service/index.js +31 -22
  67. package/cjs/services/swap-service/utils.js +21 -38
  68. package/cjs/services/transaction-service/helpers/index.js +6 -1
  69. package/cjs/services/transaction-service/index.js +278 -21
  70. package/cjs/services/transaction-service/utils.js +5 -1
  71. package/cjs/types/account/info/keyring.js +12 -1
  72. package/cjs/types/fee/cardano.js +1 -0
  73. package/cjs/types/swap/index.js +7 -2
  74. package/cjs/utils/account/analyze.js +2 -1
  75. package/cjs/utils/account/common.js +29 -20
  76. package/cjs/utils/account/derive/info/solo.js +9 -4
  77. package/cjs/utils/account/derive/validate.js +36 -2
  78. package/cjs/utils/account/transform.js +38 -13
  79. package/cjs/utils/fee/transfer.js +40 -7
  80. package/cjs/utils/index.js +2 -2
  81. package/cjs/utils/staticData/index.js +7 -2
  82. package/constants/environment.d.ts +1 -0
  83. package/constants/environment.js +2 -1
  84. package/constants/signing.js +6 -2
  85. package/core/logic-validation/recipientAddress.js +11 -3
  86. package/core/logic-validation/transfer.js +9 -3
  87. package/core/substrate/xcm-parser.d.ts +1 -1
  88. package/core/types.d.ts +1 -0
  89. package/core/types.js +1 -0
  90. package/core/utils.d.ts +1 -0
  91. package/core/utils.js +13 -3
  92. package/defaults.d.ts +1 -1
  93. package/defaults.js +1 -1
  94. package/koni/api/dotsama/crowdloan.js +3 -3
  95. package/koni/api/nft/index.js +10 -16
  96. package/koni/api/nft/story_odyssey_nft/index.d.ts +1 -1
  97. package/koni/api/staking/index.js +4 -5
  98. package/koni/background/handlers/Extension.d.ts +9 -0
  99. package/koni/background/handlers/Extension.js +144 -8
  100. package/koni/background/handlers/State.d.ts +5 -1
  101. package/koni/background/handlers/State.js +16 -1
  102. package/package.json +102 -25
  103. package/packageInfo.js +1 -1
  104. package/services/balance-service/helpers/subscribe/cardano/consts.d.ts +1 -0
  105. package/services/balance-service/helpers/subscribe/cardano/consts.js +4 -0
  106. package/services/balance-service/helpers/subscribe/cardano/index.d.ts +2 -0
  107. package/services/balance-service/helpers/subscribe/cardano/index.js +57 -0
  108. package/services/balance-service/helpers/subscribe/cardano/types.d.ts +34 -0
  109. package/services/balance-service/helpers/subscribe/cardano/types.js +1 -0
  110. package/services/balance-service/helpers/subscribe/cardano/utils.d.ts +15 -0
  111. package/services/balance-service/helpers/subscribe/cardano/utils.js +62 -0
  112. package/services/balance-service/helpers/subscribe/index.d.ts +2 -2
  113. package/services/balance-service/helpers/subscribe/index.js +23 -9
  114. package/services/balance-service/helpers/subscribe/ton/utils.d.ts +1 -1
  115. package/services/balance-service/helpers/subscribe/ton/utils.js +1 -1
  116. package/services/balance-service/index.js +4 -2
  117. package/services/balance-service/transfer/cardano-transfer.d.ts +24 -0
  118. package/services/balance-service/transfer/cardano-transfer.js +114 -0
  119. package/services/balance-service/transfer/token.d.ts +1 -1
  120. package/services/balance-service/transfer/token.js +2 -2
  121. package/services/chain-service/constants.js +8 -3
  122. package/services/chain-service/handler/CardanoApi.d.ts +38 -0
  123. package/services/chain-service/handler/CardanoApi.js +167 -0
  124. package/services/chain-service/handler/CardanoChainHandler.d.ts +17 -0
  125. package/services/chain-service/handler/CardanoChainHandler.js +75 -0
  126. package/services/chain-service/handler/SubstrateChainHandler.js +3 -2
  127. package/services/chain-service/handler/TonApi.js +3 -6
  128. package/services/chain-service/handler/types.d.ts +1 -0
  129. package/services/chain-service/index.d.ts +4 -1
  130. package/services/chain-service/index.js +38 -7
  131. package/services/chain-service/types.d.ts +9 -1
  132. package/services/chain-service/utils/index.d.ts +4 -0
  133. package/services/chain-service/utils/index.js +32 -11
  134. package/services/chain-service/utils/patch.js +1 -1
  135. package/services/earning-service/constants/chains.d.ts +1 -0
  136. package/services/earning-service/constants/chains.js +2 -1
  137. package/services/earning-service/handlers/liquid-staking/bifrost-manta.js +1 -1
  138. package/services/earning-service/handlers/liquid-staking/bifrost.js +1 -1
  139. package/services/earning-service/handlers/native-staking/mythos.d.ts +35 -0
  140. package/services/earning-service/handlers/native-staking/mythos.js +329 -0
  141. package/services/earning-service/service.js +12 -14
  142. package/services/earning-service/utils/index.js +2 -0
  143. package/services/fee-service/service.js +19 -8
  144. package/services/history-service/index.js +6 -8
  145. package/services/inapp-notification-service/index.d.ts +3 -4
  146. package/services/inapp-notification-service/index.js +14 -6
  147. package/services/keyring-service/context/account-context.d.ts +6 -2
  148. package/services/keyring-service/context/account-context.js +17 -2
  149. package/services/keyring-service/context/handlers/Derive.d.ts +1 -1
  150. package/services/keyring-service/context/handlers/Derive.js +10 -8
  151. package/services/keyring-service/context/handlers/Migration.d.ts +17 -0
  152. package/services/keyring-service/context/handlers/Migration.js +258 -0
  153. package/services/keyring-service/context/handlers/Mnemonic.js +2 -2
  154. package/services/keyring-service/context/handlers/Secret.js +2 -2
  155. package/services/keyring-service/utils.d.ts +2 -0
  156. package/services/keyring-service/utils.js +11 -0
  157. package/services/migration-service/scripts/databases/ClearMetadataDatabase.d.ts +3 -3
  158. package/services/migration-service/scripts/databases/ClearMetadataDatabase.js +3 -23
  159. package/services/migration-service/scripts/databases/ClearMetadataForChains.d.ts +5 -0
  160. package/services/migration-service/scripts/databases/ClearMetadataForChains.js +32 -0
  161. package/services/migration-service/scripts/databases/ClearMetadataForMythos.d.ts +4 -0
  162. package/services/migration-service/scripts/databases/ClearMetadataForMythos.js +7 -0
  163. package/services/migration-service/scripts/index.d.ts +1 -0
  164. package/services/migration-service/scripts/index.js +4 -1
  165. package/services/request-service/handler/CardanoRequestHandler.d.ts +16 -0
  166. package/services/request-service/handler/CardanoRequestHandler.js +163 -0
  167. package/services/request-service/handler/EvmRequestHandler.js +1 -1
  168. package/services/request-service/index.d.ts +6 -3
  169. package/services/request-service/index.js +19 -5
  170. package/services/setting-service/constants.d.ts +3 -0
  171. package/services/setting-service/constants.js +6 -0
  172. package/services/storage-service/DatabaseService.d.ts +2 -0
  173. package/services/storage-service/DatabaseService.js +6 -0
  174. package/services/storage-service/db-stores/InappNotification.d.ts +1 -0
  175. package/services/storage-service/db-stores/InappNotification.js +6 -0
  176. package/services/storage-service/db-stores/Metadata.d.ts +1 -0
  177. package/services/storage-service/db-stores/Metadata.js +3 -0
  178. package/services/storage-service/db-stores/Migration.d.ts +1 -0
  179. package/services/storage-service/db-stores/Migration.js +6 -1
  180. package/services/swap-service/handler/asset-hub/handler.d.ts +1 -4
  181. package/services/swap-service/handler/asset-hub/handler.js +2 -61
  182. package/services/swap-service/handler/base-handler.d.ts +1 -4
  183. package/services/swap-service/handler/chainflip-handler.d.ts +2 -9
  184. package/services/swap-service/handler/chainflip-handler.js +31 -280
  185. package/services/swap-service/handler/hydradx-handler.d.ts +1 -6
  186. package/services/swap-service/handler/hydradx-handler.js +13 -180
  187. package/services/swap-service/handler/simpleswap-handler.d.ts +1 -4
  188. package/services/swap-service/handler/simpleswap-handler.js +5 -226
  189. package/services/swap-service/handler/uniswap-handler.d.ts +41 -0
  190. package/services/swap-service/handler/uniswap-handler.js +323 -0
  191. package/services/swap-service/index.js +30 -22
  192. package/services/swap-service/utils.d.ts +1 -5
  193. package/services/swap-service/utils.js +7 -21
  194. package/services/transaction-service/helpers/index.d.ts +2 -0
  195. package/services/transaction-service/helpers/index.js +4 -0
  196. package/services/transaction-service/index.d.ts +8 -2
  197. package/services/transaction-service/index.js +263 -10
  198. package/services/transaction-service/types.d.ts +7 -0
  199. package/services/transaction-service/utils.js +7 -2
  200. package/types/account/info/keyring.d.ts +4 -1
  201. package/types/account/info/keyring.js +9 -0
  202. package/types/account/info/proxy.d.ts +2 -0
  203. package/types/balance/index.d.ts +4 -1
  204. package/types/fee/base.d.ts +1 -1
  205. package/types/fee/cardano.d.ts +18 -0
  206. package/types/fee/cardano.js +1 -0
  207. package/types/fee/subscription.d.ts +4 -3
  208. package/types/swap/index.d.ts +11 -3
  209. package/types/swap/index.js +7 -2
  210. package/utils/account/analyze.js +2 -1
  211. package/utils/account/common.d.ts +11 -6
  212. package/utils/account/common.js +28 -19
  213. package/utils/account/derive/info/solo.js +10 -5
  214. package/utils/account/derive/validate.d.ts +1 -0
  215. package/utils/account/derive/validate.js +34 -1
  216. package/utils/account/transform.d.ts +2 -1
  217. package/utils/account/transform.js +37 -13
  218. package/utils/fee/transfer.d.ts +2 -1
  219. package/utils/fee/transfer.js +44 -11
  220. package/utils/index.js +4 -4
  221. package/utils/staticData/index.d.ts +4 -1
  222. package/utils/staticData/index.js +5 -1
  223. package/utils/staticData/oldChainPrefix.json +1 -0
@@ -27,7 +27,9 @@ var _bonding = require("@subwallet/extension-base/koni/api/staking/bonding");
27
27
  var _paraChain = require("@subwallet/extension-base/koni/api/staking/bonding/paraChain");
28
28
  var _relayChain = require("@subwallet/extension-base/koni/api/staking/bonding/relayChain");
29
29
  var _utils2 = require("@subwallet/extension-base/koni/api/yield/helper/utils");
30
+ var _consts = require("@subwallet/extension-base/services/balance-service/helpers/subscribe/cardano/consts");
30
31
  var _utils3 = require("@subwallet/extension-base/services/balance-service/helpers/subscribe/ton/utils");
32
+ var _cardanoTransfer = require("@subwallet/extension-base/services/balance-service/transfer/cardano-transfer");
31
33
  var _smartContract = require("@subwallet/extension-base/services/balance-service/transfer/smart-contract");
32
34
  var _token = require("@subwallet/extension-base/services/balance-service/transfer/token");
33
35
  var _tonTransfer = require("@subwallet/extension-base/services/balance-service/transfer/ton-transfer");
@@ -816,31 +818,49 @@ class KoniExtension {
816
818
  this.#koniState.updateSetting('notificationSetup', request);
817
819
  return true;
818
820
  }
819
- setShowZeroBalance(_ref22) {
821
+ saveMigrationAcknowledgedStatus(_ref22) {
820
822
  let {
821
- show
823
+ isAcknowledgedUnifiedAccountMigration
822
824
  } = _ref22;
825
+ this.#koniState.updateSetting('isAcknowledgedUnifiedAccountMigration', isAcknowledgedUnifiedAccountMigration);
826
+ return true;
827
+ }
828
+ saveUnifiedAccountMigrationInProgress(_ref23) {
829
+ let {
830
+ isUnifiedAccountMigrationInProgress
831
+ } = _ref23;
832
+ this.#koniState.updateSetting('isUnifiedAccountMigrationInProgress', isUnifiedAccountMigrationInProgress);
833
+ return true;
834
+ }
835
+ pingUnifiedAccountMigrationDone() {
836
+ this.#koniState.updateSetting('isUnifiedAccountMigrationInProgress', false);
837
+ return true;
838
+ }
839
+ setShowZeroBalance(_ref24) {
840
+ let {
841
+ show
842
+ } = _ref24;
823
843
  this.#koniState.updateSetting('isShowZeroBalance', show);
824
844
  return true;
825
845
  }
826
- setLanguage(_ref23) {
846
+ setLanguage(_ref25) {
827
847
  let {
828
848
  language
829
- } = _ref23;
849
+ } = _ref25;
830
850
  this.#koniState.updateSetting('language', language);
831
851
  return true;
832
852
  }
833
- setShowBalance(_ref24) {
853
+ setShowBalance(_ref26) {
834
854
  let {
835
855
  enable
836
- } = _ref24;
856
+ } = _ref26;
837
857
  this.#koniState.updateSetting('isShowBalance', enable);
838
858
  return true;
839
859
  }
840
- setAllowOneSign(_ref25) {
860
+ setAllowOneSign(_ref27) {
841
861
  let {
842
862
  allowOneSign
843
- } = _ref25;
863
+ } = _ref27;
844
864
  this.#koniState.updateSetting('allowOneSign', allowOneSign);
845
865
  return true;
846
866
  }
@@ -889,10 +909,10 @@ class KoniExtension {
889
909
  async getPrice() {
890
910
  return this.#koniState.priceService.getPrice();
891
911
  }
892
- async setPriceCurrency(_ref26) {
912
+ async setPriceCurrency(_ref28) {
893
913
  let {
894
914
  currency
895
- } = _ref26;
915
+ } = _ref28;
896
916
  return await this.#koniState.priceService.setPriceCurrency(currency);
897
917
  }
898
918
  subscribePrice(id, port) {
@@ -1100,11 +1120,11 @@ class KoniExtension {
1100
1120
  // Re-filter
1101
1121
  return historySubject.getValue().filter(item => addresses.some(address => (0, _utils7.isSameAddress)(item.address, address)));
1102
1122
  }
1103
- subscribeHistoryByChainAndAddress(_ref27, id, port) {
1123
+ subscribeHistoryByChainAndAddress(_ref29, id, port) {
1104
1124
  let {
1105
1125
  address,
1106
1126
  chain
1107
- } = _ref27;
1127
+ } = _ref29;
1108
1128
  const cb = (0, _subscriptions.createSubscription)(id, port);
1109
1129
  const subscribeHistoriesResponse = this.#koniState.historyService.subscribeHistories(chain, address, cb);
1110
1130
  this.createUnsubscriptionHandle(id, subscribeHistoriesResponse.unsubscribe);
@@ -1234,9 +1254,23 @@ class KoniExtension {
1234
1254
  // currently not used
1235
1255
  tonApi
1236
1256
  });
1257
+ } else if ((0, _keyring.isCardanoAddress)(from) && (0, _keyring.isCardanoAddress)(to) && (0, _utils4._isTokenTransferredByCardano)(transferTokenInfo)) {
1258
+ chainType = _KoniTypes.ChainType.CARDANO;
1259
+ const cardanoApi = this.#koniState.getCardanoApi(chain);
1260
+ [transaction, transferAmount.value] = await (0, _cardanoTransfer.createCardanoTransaction)({
1261
+ tokenInfo: transferTokenInfo,
1262
+ from,
1263
+ to,
1264
+ networkKey: chain,
1265
+ value: value || '0',
1266
+ cardanoTtlOffset: _consts.DEFAULT_CARDANO_TTL_OFFSET,
1267
+ transferAll: !!transferAll,
1268
+ cardanoApi,
1269
+ nativeTokenInfo
1270
+ });
1237
1271
  } else {
1238
1272
  const substrateApi = this.#koniState.getSubstrateApi(chain);
1239
- [transaction, transferAmount.value] = await (0, _token.createTransferExtrinsic)({
1273
+ [transaction, transferAmount.value] = await (0, _token.createSubstrateExtrinsic)({
1240
1274
  transferAll: !!transferAll,
1241
1275
  value: value || '0',
1242
1276
  from: from,
@@ -1583,21 +1617,21 @@ class KoniExtension {
1583
1617
  disableChain(networkKey) {
1584
1618
  return this.#koniState.disableChain(networkKey);
1585
1619
  }
1586
- async enableChain(_ref28) {
1620
+ async enableChain(_ref30) {
1587
1621
  let {
1588
1622
  chainSlug,
1589
1623
  enableTokens
1590
- } = _ref28;
1624
+ } = _ref30;
1591
1625
  return await this.#koniState.enableChain(chainSlug, enableTokens);
1592
1626
  }
1593
1627
  async reconnectChain(chainSlug) {
1594
1628
  return this.#koniState.chainService.reconnectChain(chainSlug);
1595
1629
  }
1596
- async validateNetwork(_ref29) {
1630
+ async validateNetwork(_ref31) {
1597
1631
  let {
1598
1632
  existedChainSlug,
1599
1633
  provider
1600
- } = _ref29;
1634
+ } = _ref31;
1601
1635
  return await this.#koniState.validateCustomChain(provider, existedChainSlug);
1602
1636
  }
1603
1637
  resetDefaultNetwork() {
@@ -1688,13 +1722,13 @@ class KoniExtension {
1688
1722
  async validateCustomAsset(data) {
1689
1723
  return await this.#koniState.validateCustomAsset(data);
1690
1724
  }
1691
- async getAddressTransferableBalance(_ref30) {
1725
+ async getAddressTransferableBalance(_ref32) {
1692
1726
  let {
1693
1727
  address,
1694
1728
  extrinsicType,
1695
1729
  networkKey,
1696
1730
  token
1697
- } = _ref30;
1731
+ } = _ref32;
1698
1732
  if (token && _constants2._MANTA_ZK_CHAIN_GROUP.includes(networkKey)) {
1699
1733
  const tokenInfo = this.#koniState.chainService.getAssetBySlug(token);
1700
1734
  if (tokenInfo.symbol.startsWith(_constants2._ZK_ASSET_PREFIX)) {
@@ -1703,13 +1737,13 @@ class KoniExtension {
1703
1737
  }
1704
1738
  return await this.#koniState.balanceService.getTransferableBalance(address, networkKey, token, extrinsicType);
1705
1739
  }
1706
- async getAddressTotalBalance(_ref31) {
1740
+ async getAddressTotalBalance(_ref33) {
1707
1741
  let {
1708
1742
  address,
1709
1743
  extrinsicType,
1710
1744
  networkKey,
1711
1745
  token
1712
- } = _ref31;
1746
+ } = _ref33;
1713
1747
  return await this.#koniState.balanceService.getTotalBalance(address, networkKey, token, extrinsicType);
1714
1748
  }
1715
1749
  async subscribeMaxTransferable(request, id, port) {
@@ -1740,6 +1774,7 @@ class KoniExtension {
1740
1774
  }
1741
1775
  const _request = {
1742
1776
  address: address,
1777
+ cardanoApi: this.#koniState.chainService.getCardanoApi(chain),
1743
1778
  destChain,
1744
1779
  destToken,
1745
1780
  evmApi: this.#koniState.chainService.getEvmApi(chain),
@@ -1757,11 +1792,11 @@ class KoniExtension {
1757
1792
  freeBalance: freeBalanceSubject,
1758
1793
  fee: feeSubject
1759
1794
  }).subscribe({
1760
- next: _ref32 => {
1795
+ next: _ref34 => {
1761
1796
  let {
1762
1797
  fee,
1763
1798
  freeBalance
1764
- } = _ref32;
1799
+ } = _ref34;
1765
1800
  (0, _utils7.calculateMaxTransferable)(id, _request, freeBalance, fee).then(cb).catch(console.error);
1766
1801
  }
1767
1802
  });
@@ -1795,13 +1830,13 @@ class KoniExtension {
1795
1830
  });
1796
1831
  return (0, _utils7.calculateMaxTransferable)(id, _request, freeBalance, fee);
1797
1832
  }
1798
- async subscribeAddressTransferableBalance(_ref33, id, port) {
1833
+ async subscribeAddressTransferableBalance(_ref35, id, port) {
1799
1834
  let {
1800
1835
  address,
1801
1836
  extrinsicType,
1802
1837
  networkKey,
1803
1838
  token
1804
- } = _ref33;
1839
+ } = _ref35;
1805
1840
  const cb = (0, _subscriptions.createSubscription)(id, port);
1806
1841
  const convertData = data => {
1807
1842
  return {
@@ -1852,11 +1887,11 @@ class KoniExtension {
1852
1887
  isSendingSelf
1853
1888
  };
1854
1889
  }
1855
- async enableChains(_ref34) {
1890
+ async enableChains(_ref36) {
1856
1891
  let {
1857
1892
  chainSlugs,
1858
1893
  enableTokens
1859
- } = _ref34;
1894
+ } = _ref36;
1860
1895
  try {
1861
1896
  await Promise.all(chainSlugs.map(chainSlug => this.enableChain({
1862
1897
  chainSlug,
@@ -1940,12 +1975,24 @@ class KoniExtension {
1940
1975
  });
1941
1976
  return this.#koniState.getConfirmationsQueueSubjectTon().getValue();
1942
1977
  }
1978
+ subscribeConfirmationsCardano(id, port) {
1979
+ const cb = (0, _subscriptions.createSubscription)(id, port);
1980
+ const subscription = this.#koniState.getConfirmationsQueueSubjectCardano().subscribe(cb);
1981
+ this.createUnsubscriptionHandle(id, subscription.unsubscribe);
1982
+ port.onDisconnect.addListener(() => {
1983
+ this.cancelSubscription(id);
1984
+ });
1985
+ return this.#koniState.getConfirmationsQueueSubjectCardano().getValue();
1986
+ }
1943
1987
  async completeConfirmation(request) {
1944
1988
  return await this.#koniState.completeConfirmation(request);
1945
1989
  }
1946
1990
  async completeConfirmationTon(request) {
1947
1991
  return await this.#koniState.completeConfirmationTon(request);
1948
1992
  }
1993
+ async completeConfirmationCardano(request) {
1994
+ return await this.#koniState.completeConfirmationCardano(request);
1995
+ }
1949
1996
 
1950
1997
  /// Sign Qr
1951
1998
 
@@ -1977,30 +2024,30 @@ class KoniExtension {
1977
2024
 
1978
2025
  // Parse transaction
1979
2026
 
1980
- parseSubstrateTransaction(_ref35) {
2027
+ parseSubstrateTransaction(_ref37) {
1981
2028
  let {
1982
2029
  data,
1983
2030
  networkKey
1984
- } = _ref35;
2031
+ } = _ref37;
1985
2032
  const apiProps = this.#koniState.getSubstrateApi(networkKey);
1986
2033
  const apiPromise = apiProps.api;
1987
2034
  return (0, _parseTransaction.parseSubstrateTransaction)(data, apiPromise);
1988
2035
  }
1989
- async parseEVMRLP(_ref36) {
2036
+ async parseEVMRLP(_ref38) {
1990
2037
  let {
1991
2038
  data
1992
- } = _ref36;
2039
+ } = _ref38;
1993
2040
  return await (0, _parseTransaction2.parseEvmRlp)(data, this.#koniState.getChainInfoMap(), this.#koniState.getEvmApiMap());
1994
2041
  }
1995
2042
 
1996
2043
  // Sign
1997
2044
 
1998
- qrSignSubstrate(_ref37) {
2045
+ qrSignSubstrate(_ref39) {
1999
2046
  let {
2000
2047
  address,
2001
2048
  data,
2002
2049
  networkKey
2003
- } = _ref37;
2050
+ } = _ref39;
2004
2051
  const pair = _uiKeyring.keyring.getPair(address);
2005
2052
  (0, _util.assert)(pair, (0, _i18next.t)('Unable to find account'));
2006
2053
  if (pair.isLocked) {
@@ -2017,13 +2064,13 @@ class KoniExtension {
2017
2064
  signature: signed
2018
2065
  };
2019
2066
  }
2020
- async qrSignEVM(_ref38) {
2067
+ async qrSignEVM(_ref40) {
2021
2068
  let {
2022
2069
  address,
2023
2070
  chainId,
2024
2071
  message,
2025
2072
  type
2026
- } = _ref38;
2073
+ } = _ref40;
2027
2074
  let signed;
2028
2075
  const network = this.getNetworkJsonByChainId(chainId);
2029
2076
  if (!network) {
@@ -2107,11 +2154,11 @@ class KoniExtension {
2107
2154
  });
2108
2155
  return this.#koniState.getNominatorMetadata();
2109
2156
  }
2110
- async getBondingOptions(_ref39) {
2157
+ async getBondingOptions(_ref41) {
2111
2158
  let {
2112
2159
  chain,
2113
2160
  type
2114
- } = _ref39;
2161
+ } = _ref41;
2115
2162
  const apiProps = this.#koniState.getSubstrateApi(chain);
2116
2163
  const chainInfo = this.#koniState.getChainInfo(chain);
2117
2164
  const chainStakingMetadata = await this.#koniState.getStakingMetadataByChain(chain, type);
@@ -2301,12 +2348,12 @@ class KoniExtension {
2301
2348
  }
2302
2349
 
2303
2350
  // EVM Transaction
2304
- async parseContractInput(_ref40) {
2351
+ async parseContractInput(_ref42) {
2305
2352
  let {
2306
2353
  chainId,
2307
2354
  contract,
2308
2355
  data
2309
- } = _ref40;
2356
+ } = _ref42;
2310
2357
  const network = this.getNetworkJsonByChainId(chainId);
2311
2358
  return await (0, _parseTransaction2.parseContractInput)(data, contract, network);
2312
2359
  }
@@ -2406,10 +2453,10 @@ class KoniExtension {
2406
2453
 
2407
2454
  // Unlock wallet
2408
2455
 
2409
- keyringUnlock(_ref41) {
2456
+ keyringUnlock(_ref43) {
2410
2457
  let {
2411
2458
  password
2412
- } = _ref41;
2459
+ } = _ref43;
2413
2460
  try {
2414
2461
  _uiKeyring.keyring.unlockKeyring(password);
2415
2462
  // this.#koniState.initMantaPay(password)
@@ -2440,11 +2487,11 @@ class KoniExtension {
2440
2487
 
2441
2488
  // Export mnemonic
2442
2489
 
2443
- keyringExportMnemonic(_ref42) {
2490
+ keyringExportMnemonic(_ref44) {
2444
2491
  let {
2445
2492
  address,
2446
2493
  password
2447
- } = _ref42;
2494
+ } = _ref44;
2448
2495
  const pair = _uiKeyring.keyring.getPair(address);
2449
2496
  const result = pair.exportMnemonic(password);
2450
2497
  return {
@@ -2454,10 +2501,10 @@ class KoniExtension {
2454
2501
 
2455
2502
  // Reset wallet
2456
2503
 
2457
- async resetWallet(_ref43) {
2504
+ async resetWallet(_ref45) {
2458
2505
  let {
2459
2506
  resetAll
2460
- } = _ref43;
2507
+ } = _ref45;
2461
2508
  try {
2462
2509
  await this.#koniState.resetWallet(resetAll);
2463
2510
  return {
@@ -2473,10 +2520,10 @@ class KoniExtension {
2473
2520
  }
2474
2521
 
2475
2522
  // Signing substrate request
2476
- async signingApprovePasswordV2(_ref44) {
2523
+ async signingApprovePasswordV2(_ref46) {
2477
2524
  let {
2478
2525
  id
2479
- } = _ref44;
2526
+ } = _ref46;
2480
2527
  const queued = this.#koniState.getSignRequest(id);
2481
2528
  (0, _util.assert)(queued, (0, _i18next.t)('Unable to proceed. Please try again'));
2482
2529
  const {
@@ -2634,10 +2681,10 @@ class KoniExtension {
2634
2681
  getSupportedSmartContractTypes() {
2635
2682
  return this.#koniState.getSupportedSmartContractTypes();
2636
2683
  }
2637
- getTransaction(_ref45) {
2684
+ getTransaction(_ref47) {
2638
2685
  let {
2639
2686
  id
2640
- } = _ref45;
2687
+ } = _ref47;
2641
2688
  const {
2642
2689
  transaction,
2643
2690
  ...transactionResult
@@ -2647,8 +2694,8 @@ class KoniExtension {
2647
2694
  async subscribeTransactions(id, port) {
2648
2695
  const cb = (0, _subscriptions.createSubscription)(id, port);
2649
2696
  function convertRs(rs, processMap) {
2650
- return Object.fromEntries(Object.entries(rs).map(_ref46 => {
2651
- let [key, value] = _ref46;
2697
+ return Object.fromEntries(Object.entries(rs).map(_ref48 => {
2698
+ let [key, value] = _ref48;
2652
2699
  const {
2653
2700
  additionalValidator,
2654
2701
  eventsHandler,
@@ -2672,11 +2719,11 @@ class KoniExtension {
2672
2719
  const subscription = (0, _rxjs.combineLatest)({
2673
2720
  transactions: transactionsObservable,
2674
2721
  processMap: processTransactionObservable
2675
- }).subscribe(_ref47 => {
2722
+ }).subscribe(_ref49 => {
2676
2723
  let {
2677
2724
  processMap,
2678
2725
  transactions
2679
- } = _ref47;
2726
+ } = _ref49;
2680
2727
  cb(convertRs(transactions, processMap));
2681
2728
  });
2682
2729
  port.onDisconnect.addListener(() => {
@@ -2697,10 +2744,10 @@ class KoniExtension {
2697
2744
  });
2698
2745
  return notificationSubject.value;
2699
2746
  }
2700
- async reloadCron(_ref48) {
2747
+ async reloadCron(_ref50) {
2701
2748
  let {
2702
2749
  data
2703
- } = _ref48;
2750
+ } = _ref50;
2704
2751
  if (data === 'nft') {
2705
2752
  return await this.#koniState.reloadNft();
2706
2753
  } else if (data === 'staking') {
@@ -2743,10 +2790,10 @@ class KoniExtension {
2743
2790
  }
2744
2791
 
2745
2792
  // Phishing detect
2746
- async passPhishingPage(_ref49) {
2793
+ async passPhishingPage(_ref51) {
2747
2794
  let {
2748
2795
  url
2749
- } = _ref49;
2796
+ } = _ref51;
2750
2797
  return await this.#koniState.approvePassPhishingPage(url);
2751
2798
  }
2752
2799
 
@@ -2767,10 +2814,10 @@ class KoniExtension {
2767
2814
  /// Wallet connect
2768
2815
 
2769
2816
  // Connect
2770
- async connectWalletConnect(_ref50) {
2817
+ async connectWalletConnect(_ref52) {
2771
2818
  let {
2772
2819
  uri
2773
- } = _ref50;
2820
+ } = _ref52;
2774
2821
  await this.#koniState.walletConnectService.connect(uri);
2775
2822
  return true;
2776
2823
  }
@@ -2783,11 +2830,11 @@ class KoniExtension {
2783
2830
  });
2784
2831
  return this.#koniState.requestService.allConnectWCRequests;
2785
2832
  }
2786
- async approveWalletConnectSession(_ref51) {
2833
+ async approveWalletConnectSession(_ref53) {
2787
2834
  let {
2788
2835
  accounts: selectedAccounts,
2789
2836
  id
2790
- } = _ref51;
2837
+ } = _ref53;
2791
2838
  const request = this.#koniState.requestService.getConnectWCRequest(id);
2792
2839
  if ((0, _helpers2.isProposalExpired)(request.request.params)) {
2793
2840
  throw new Error('The proposal has been expired');
@@ -2799,8 +2846,8 @@ class KoniExtension {
2799
2846
  const availableNamespaces = {};
2800
2847
  const namespaces = {};
2801
2848
  const chainInfoMap = this.#koniState.getChainInfoMap();
2802
- Object.entries(requiredNamespaces).forEach(_ref52 => {
2803
- let [key, namespace] = _ref52;
2849
+ Object.entries(requiredNamespaces).forEach(_ref54 => {
2850
+ let [key, namespace] = _ref54;
2804
2851
  if ((0, _helpers2.isSupportWalletConnectNamespace)(key)) {
2805
2852
  if (namespace.chains) {
2806
2853
  const unSupportChains = namespace.chains.filter(chain => !(0, _helpers2.isSupportWalletConnectChain)(chain, chainInfoMap));
@@ -2813,8 +2860,8 @@ class KoniExtension {
2813
2860
  throw new Error((0, _utils8.getSdkError)('UNSUPPORTED_NAMESPACE_KEY').message + ' ' + key);
2814
2861
  }
2815
2862
  });
2816
- Object.entries(optionalNamespaces).forEach(_ref53 => {
2817
- let [key, namespace] = _ref53;
2863
+ Object.entries(optionalNamespaces).forEach(_ref55 => {
2864
+ let [key, namespace] = _ref55;
2818
2865
  if ((0, _helpers2.isSupportWalletConnectNamespace)(key)) {
2819
2866
  if (namespace.chains) {
2820
2867
  const supportChains = namespace.chains.filter(chain => (0, _helpers2.isSupportWalletConnectChain)(chain, chainInfoMap)) || [];
@@ -2838,8 +2885,8 @@ class KoniExtension {
2838
2885
  }
2839
2886
  }
2840
2887
  });
2841
- Object.entries(availableNamespaces).forEach(_ref54 => {
2842
- let [key, namespace] = _ref54;
2888
+ Object.entries(availableNamespaces).forEach(_ref56 => {
2889
+ let [key, namespace] = _ref56;
2843
2890
  if (namespace.chains) {
2844
2891
  const accounts = selectedAccounts.filter(address => {
2845
2892
  const [_namespace] = address.split(':');
@@ -2863,10 +2910,10 @@ class KoniExtension {
2863
2910
  request.resolve();
2864
2911
  return true;
2865
2912
  }
2866
- async rejectWalletConnectSession(_ref55) {
2913
+ async rejectWalletConnectSession(_ref57) {
2867
2914
  let {
2868
2915
  id
2869
- } = _ref55;
2916
+ } = _ref57;
2870
2917
  const request = this.#koniState.requestService.getConnectWCRequest(id);
2871
2918
  const wcId = request.request.id;
2872
2919
  if ((0, _helpers2.isProposalExpired)(request.request.params)) {
@@ -2888,10 +2935,10 @@ class KoniExtension {
2888
2935
  });
2889
2936
  return this.#koniState.walletConnectService.sessions;
2890
2937
  }
2891
- async disconnectWalletConnectSession(_ref56) {
2938
+ async disconnectWalletConnectSession(_ref58) {
2892
2939
  let {
2893
2940
  topic
2894
- } = _ref56;
2941
+ } = _ref58;
2895
2942
  await this.#koniState.walletConnectService.disconnect(topic);
2896
2943
  return true;
2897
2944
  }
@@ -2904,18 +2951,18 @@ class KoniExtension {
2904
2951
  });
2905
2952
  return this.#koniState.requestService.allNotSupportWCRequests;
2906
2953
  }
2907
- approveWalletConnectNotSupport(_ref57) {
2954
+ approveWalletConnectNotSupport(_ref59) {
2908
2955
  let {
2909
2956
  id
2910
- } = _ref57;
2957
+ } = _ref59;
2911
2958
  const request = this.#koniState.requestService.getNotSupportWCRequest(id);
2912
2959
  request.resolve();
2913
2960
  return true;
2914
2961
  }
2915
- rejectWalletConnectNotSupport(_ref58) {
2962
+ rejectWalletConnectNotSupport(_ref60) {
2916
2963
  let {
2917
2964
  id
2918
- } = _ref58;
2965
+ } = _ref60;
2919
2966
  const request = this.#koniState.requestService.getNotSupportWCRequest(id);
2920
2967
  request.reject(new Error('USER_REJECTED'));
2921
2968
  return true;
@@ -2923,11 +2970,11 @@ class KoniExtension {
2923
2970
 
2924
2971
  /// Manta
2925
2972
 
2926
- async enableMantaPay(_ref59) {
2973
+ async enableMantaPay(_ref61) {
2927
2974
  let {
2928
2975
  address,
2929
2976
  password
2930
- } = _ref59;
2977
+ } = _ref61;
2931
2978
  // always takes the current account
2932
2979
  function timeout() {
2933
2980
  return new Promise(resolve => setTimeout(resolve, 1500));
@@ -3017,11 +3064,11 @@ class KoniExtension {
3017
3064
  async disableMantaPay(address) {
3018
3065
  return this.#koniState.disableMantaPay(address);
3019
3066
  }
3020
- async isTonBounceableAddress(_ref60) {
3067
+ async isTonBounceableAddress(_ref62) {
3021
3068
  let {
3022
3069
  address,
3023
3070
  chain
3024
- } = _ref60;
3071
+ } = _ref62;
3025
3072
  try {
3026
3073
  const tonApi = this.#koniState.getTonApi(chain);
3027
3074
  const state = await tonApi.getAccountState(address);
@@ -3067,10 +3114,10 @@ class KoniExtension {
3067
3114
 
3068
3115
  /* Metadata */
3069
3116
 
3070
- async findRawMetadata(_ref61) {
3117
+ async findRawMetadata(_ref63) {
3071
3118
  let {
3072
3119
  genesisHash
3073
- } = _ref61;
3120
+ } = _ref63;
3074
3121
  const {
3075
3122
  metadata,
3076
3123
  specVersion,
@@ -3084,20 +3131,20 @@ class KoniExtension {
3084
3131
  userExtensions
3085
3132
  };
3086
3133
  }
3087
- async calculateMetadataHash(_ref62) {
3134
+ async calculateMetadataHash(_ref64) {
3088
3135
  let {
3089
3136
  chain
3090
- } = _ref62;
3137
+ } = _ref64;
3091
3138
  const hash = await this.#koniState.calculateMetadataHash(chain);
3092
3139
  return {
3093
3140
  metadataHash: hash || ''
3094
3141
  };
3095
3142
  }
3096
- async shortenMetadata(_ref63) {
3143
+ async shortenMetadata(_ref65) {
3097
3144
  let {
3098
3145
  chain,
3099
3146
  txBlob
3100
- } = _ref63;
3147
+ } = _ref65;
3101
3148
  const shorten = await this.#koniState.shortenMetadata(chain, txBlob);
3102
3149
  return {
3103
3150
  txMetadata: shorten || ''
@@ -3186,6 +3233,17 @@ class KoniExtension {
3186
3233
  }
3187
3234
  return this.#koniState.transactionService.generateBeforeHandleResponseErrors(yieldValidation);
3188
3235
  }
3236
+ let submitData;
3237
+ try {
3238
+ submitData = await this.#koniState.earningService.handleYieldJoin(inputData);
3239
+ } catch (e) {
3240
+ if (step) {
3241
+ this.#koniState.transactionService.updateProcessStepStatus(step, {
3242
+ status: _types3.StepStatus.FAILED
3243
+ });
3244
+ }
3245
+ throw e;
3246
+ }
3189
3247
 
3190
3248
  // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
3191
3249
  const {
@@ -3195,7 +3253,7 @@ class KoniExtension {
3195
3253
  transferNativeAmount,
3196
3254
  txChain,
3197
3255
  txData
3198
- } = await this.#koniState.earningService.handleYieldJoin(inputData);
3256
+ } = submitData;
3199
3257
  const isPoolSupportAlternativeFee = this.#koniState.earningService.isPoolSupportAlternativeFee(inputData.data.slug);
3200
3258
  const poolHandler = this.#koniState.earningService.getPoolHandler(data.slug);
3201
3259
  const isMintingStep = _utils2.YIELD_EXTRINSIC_TYPES.includes(extrinsicType);
@@ -3428,18 +3486,18 @@ class KoniExtension {
3428
3486
 
3429
3487
  /* Campaign */
3430
3488
 
3431
- unlockDotCheckCanMint(_ref64) {
3489
+ unlockDotCheckCanMint(_ref66) {
3432
3490
  let {
3433
3491
  address,
3434
3492
  network,
3435
3493
  slug
3436
- } = _ref64;
3494
+ } = _ref66;
3437
3495
  return this.#koniState.mintCampaignService.unlockDotCampaign.canMint(address, slug, network);
3438
3496
  }
3439
- unlockDotSubscribeMintedData(id, port, _ref65) {
3497
+ unlockDotSubscribeMintedData(id, port, _ref67) {
3440
3498
  let {
3441
3499
  transactionId
3442
- } = _ref65;
3500
+ } = _ref67;
3443
3501
  const cb = (0, _subscriptions.createSubscription)(id, port);
3444
3502
  const subscription = this.#koniState.mintCampaignService.unlockDotCampaign.subscribeMintedNft(transactionId, cb);
3445
3503
  this.createUnsubscriptionHandle(id, subscription.unsubscribe);
@@ -3471,10 +3529,10 @@ class KoniExtension {
3471
3529
  });
3472
3530
  return filterBanner(await this.#koniState.campaignService.getProcessingCampaign());
3473
3531
  }
3474
- async completeCampaignBanner(_ref66) {
3532
+ async completeCampaignBanner(_ref68) {
3475
3533
  let {
3476
3534
  slug
3477
- } = _ref66;
3535
+ } = _ref68;
3478
3536
  const campaign = await this.#koniState.dbService.getCampaign(slug);
3479
3537
  if (campaign) {
3480
3538
  await this.#koniState.dbService.upsertCampaign({
@@ -3607,6 +3665,9 @@ class KoniExtension {
3607
3665
  ready = true;
3608
3666
  return this.#koniState.swapService.getSwapPairs();
3609
3667
  }
3668
+ async generateOptimalProcess(request) {
3669
+ return this.#koniState.swapService.generateOptimalProcess(request);
3670
+ }
3610
3671
  async handleSwapRequest(request) {
3611
3672
  return this.#koniState.swapService.handleSwapRequest(request);
3612
3673
  }
@@ -3658,16 +3719,29 @@ class KoniExtension {
3658
3719
  }
3659
3720
  return this.#koniState.transactionService.generateBeforeHandleResponseErrors(swapValidations);
3660
3721
  }
3722
+ let submitData;
3723
+ try {
3724
+ submitData = await this.#koniState.swapService.handleSwapProcess(inputData);
3725
+ } catch (e) {
3726
+ if (step) {
3727
+ this.#koniState.transactionService.updateProcessStepStatus(step, {
3728
+ status: _types3.StepStatus.FAILED
3729
+ });
3730
+ }
3731
+ throw e;
3732
+ }
3661
3733
 
3662
3734
  // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
3663
3735
  const {
3664
3736
  chainType,
3665
3737
  extrinsic,
3666
3738
  extrinsicType,
3739
+ isPermit,
3667
3740
  transferNativeAmount,
3668
3741
  txChain,
3669
3742
  txData
3670
- } = await this.#koniState.swapService.handleSwapProcess(inputData);
3743
+ } = submitData;
3744
+
3671
3745
  // const chosenFeeToken = process.steps.findIndex((step) => step.type === SwapStepType.SET_FEE_TOKEN) > -1;
3672
3746
  // const allowSkipValidation = [ExtrinsicType.SET_FEE_TOKEN, ExtrinsicType.SWAP].includes(extrinsicType);
3673
3747
 
@@ -3750,6 +3824,24 @@ class KoniExtension {
3750
3824
  await this.#koniState.transactionService.updateProcessInfo(processId, combineInfo, step);
3751
3825
  }
3752
3826
  }
3827
+ if (isPermit) {
3828
+ return await this.#koniState.transactionService.handlePermitTransaction({
3829
+ address,
3830
+ chain: txChain,
3831
+ transaction: extrinsic,
3832
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
3833
+ data: txData,
3834
+ extrinsicType,
3835
+ // change this depends on step
3836
+ chainType,
3837
+ resolveOnDone: !isLastStep,
3838
+ transferNativeAmount,
3839
+ ...this.createPassConfirmationParams(isPassConfirmation),
3840
+ errorOnTimeOut,
3841
+ eventsHandler,
3842
+ step
3843
+ });
3844
+ }
3753
3845
  return await this.#koniState.transactionService.handleTransaction({
3754
3846
  address,
3755
3847
  chain: txChain,
@@ -3967,7 +4059,8 @@ class KoniExtension {
3967
4059
  const onSend = callback
3968
4060
  // eslint-disable-next-line node/no-callback-literal
3969
4061
  ? rs => callback(rs) : undefined;
3970
- if (stepNums > 2 && isLastStep) {
4062
+ const specialCaseForUniswap = data.quote.provider.id === _types3.SwapProviderId.UNISWAP && !!data.process.steps.find(step => step.type === _types3.SwapStepType.PERMIT);
4063
+ if (stepNums > 2 && isLastStep && !specialCaseForUniswap) {
3971
4064
  const quote = data.quote;
3972
4065
  const latestSwapQuote = await this.getLatestSwapQuote({
3973
4066
  address: data.address,
@@ -4021,8 +4114,8 @@ class KoniExtension {
4021
4114
  resolve();
4022
4115
  }
4023
4116
  };
4024
- this.#koniState.balanceService.subscribeTransferableBalance(address, waitXcmData.chain, waitXcmData.token, waitXcmData.nextTxType, onRs).then(_ref67 => {
4025
- let [_unsub, rs] = _ref67;
4117
+ this.#koniState.balanceService.subscribeTransferableBalance(address, waitXcmData.chain, waitXcmData.token, waitXcmData.nextTxType, onRs).then(_ref69 => {
4118
+ let [_unsub, rs] = _ref69;
4026
4119
  unsub = _unsub;
4027
4120
  onRs(rs);
4028
4121
  }).catch(console.error);
@@ -4095,6 +4188,32 @@ class KoniExtension {
4095
4188
 
4096
4189
  /* Multi process */
4097
4190
 
4191
+ /* Migrate Unified Account */
4192
+ async migrateUnifiedAndFetchEligibleSoloAccounts(request) {
4193
+ const setMigratingMode = () => {
4194
+ this.saveUnifiedAccountMigrationInProgress({
4195
+ isUnifiedAccountMigrationInProgress: true
4196
+ });
4197
+ };
4198
+ return await this.#koniState.keyringService.context.migrateUnifiedAndFetchEligibleSoloAccounts(request, setMigratingMode);
4199
+ }
4200
+ migrateSoloAccount(request) {
4201
+ const proxyIds = request.soloAccounts.map(account => account.proxyId);
4202
+ const response = this.#koniState.keyringService.context.migrateSoloAccount(request);
4203
+ const newProxyId = response.migratedUnifiedAccountId; // get from response to ensure account migration is done.
4204
+ const newName = request.accountName;
4205
+ try {
4206
+ this.#koniState.inappNotificationService.migrateNotificationProxyId(proxyIds, newProxyId, newName);
4207
+ } catch (error) {
4208
+ console.error('Error on migrating notification for unified account migration', error);
4209
+ }
4210
+ return response;
4211
+ }
4212
+ pingSession(request) {
4213
+ return this.#koniState.keyringService.context.pingSession(request);
4214
+ }
4215
+ /* Migrate Unified Account */
4216
+
4098
4217
  // --------------------------------------------------------------
4099
4218
  // eslint-disable-next-line @typescript-eslint/require-await
4100
4219
  async handle(id, type, request, port) {
@@ -4180,6 +4299,12 @@ class KoniExtension {
4180
4299
  return this.setEnableChainPatrol(request);
4181
4300
  case 'pri(settings.saveNotificationSetup)':
4182
4301
  return this.saveNotificationSetup(request);
4302
+ case 'pri(settings.saveMigrationAcknowledgedStatus)':
4303
+ return this.saveMigrationAcknowledgedStatus(request);
4304
+ case 'pri(settings.saveUnifiedAccountMigrationInProgress)':
4305
+ return this.saveUnifiedAccountMigrationInProgress(request);
4306
+ case 'pri(settings.pingUnifiedAccountMigrationDone)':
4307
+ return this.pingUnifiedAccountMigrationDone();
4183
4308
  case 'pri(settings.saveShowZeroBalance)':
4184
4309
  return this.setShowZeroBalance(request);
4185
4310
  case 'pri(settings.saveLanguage)':
@@ -4457,10 +4582,14 @@ class KoniExtension {
4457
4582
  return this.subscribeConfirmations(id, port);
4458
4583
  case 'pri(confirmationsTon.subscribe)':
4459
4584
  return this.subscribeConfirmationsTon(id, port);
4585
+ case 'pri(confirmationsCardano.subscribe)':
4586
+ return this.subscribeConfirmationsCardano(id, port);
4460
4587
  case 'pri(confirmations.complete)':
4461
4588
  return await this.completeConfirmation(request);
4462
4589
  case 'pri(confirmationsTon.complete)':
4463
4590
  return await this.completeConfirmationTon(request);
4591
+ case 'pri(confirmationsCardano.complete)':
4592
+ return await this.completeConfirmationCardano(request);
4464
4593
 
4465
4594
  /// Stake
4466
4595
  case 'pri(bonding.getBondingOptions)':
@@ -4651,6 +4780,8 @@ class KoniExtension {
4651
4780
  /* Swap service */
4652
4781
  case 'pri(swapService.subscribePairs)':
4653
4782
  return this.subscribeSwapPairs(id, port);
4783
+ case 'pri(swapService.generateOptimalProcess)':
4784
+ return this.generateOptimalProcess(request);
4654
4785
  case 'pri(swapService.handleSwapRequest)':
4655
4786
  return this.handleSwapRequest(request);
4656
4787
  case 'pri(swapService.getLatestQuote)':
@@ -4705,6 +4836,13 @@ class KoniExtension {
4705
4836
  return this.subscribeProcessAlive(id, port);
4706
4837
  /* Multi process */
4707
4838
 
4839
+ /* Migrate Unified Account */
4840
+ case 'pri(migrate.migrateUnifiedAndFetchEligibleSoloAccounts)':
4841
+ return await this.migrateUnifiedAndFetchEligibleSoloAccounts(request);
4842
+ case 'pri(migrate.migrateSoloAccount)':
4843
+ return this.migrateSoloAccount(request);
4844
+ case 'pri(migrate.pingSession)':
4845
+ return this.pingSession(request);
4708
4846
  // Default
4709
4847
  default:
4710
4848
  throw new Error(`Unable to handle message of type ${type}`);