@subwallet/extension-base 1.3.17-0 → 1.3.18-1

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 (127) hide show
  1. package/background/KoniTypes.d.ts +7 -2
  2. package/cjs/constants/index.js +6 -3
  3. package/cjs/core/logic-validation/request.js +26 -19
  4. package/cjs/core/logic-validation/transfer.js +18 -17
  5. package/cjs/koni/api/contract-handler/evm/web3.js +3 -3
  6. package/cjs/koni/background/handlers/Extension.js +269 -123
  7. package/cjs/koni/background/handlers/State.js +1 -8
  8. package/cjs/packageInfo.js +1 -1
  9. package/cjs/services/balance-service/helpers/subscribe/substrate/index.js +1 -1
  10. package/cjs/services/balance-service/index.js +13 -0
  11. package/cjs/services/balance-service/transfer/smart-contract.js +47 -33
  12. package/cjs/services/balance-service/transfer/token.js +5 -4
  13. package/cjs/services/balance-service/transfer/xcm/availBridge.js +14 -18
  14. package/cjs/services/balance-service/transfer/xcm/index.js +30 -61
  15. package/cjs/services/balance-service/transfer/xcm/polygonBridge.js +13 -17
  16. package/cjs/services/balance-service/transfer/xcm/posBridge.js +20 -21
  17. package/cjs/services/balance-service/transfer/xcm/snowBridge.js +7 -7
  18. package/cjs/services/balance-service/transfer/xcm/utils.js +2 -2
  19. package/cjs/services/chain-service/constants.js +3 -3
  20. package/cjs/services/earning-service/handlers/liquid-staking/stella-swap.js +7 -12
  21. package/cjs/services/earning-service/handlers/special.js +15 -4
  22. package/cjs/services/fee-service/interfaces.js +1 -0
  23. package/cjs/services/fee-service/service.js +111 -0
  24. package/cjs/services/fee-service/utils/index.js +99 -113
  25. package/cjs/services/storage-service/db-stores/Balance.js +3 -0
  26. package/cjs/services/swap-service/handler/asset-hub/handler.js +23 -7
  27. package/cjs/services/swap-service/handler/asset-hub/router.js +1 -1
  28. package/cjs/services/swap-service/handler/asset-hub/utils.js +4 -4
  29. package/cjs/services/swap-service/handler/base-handler.js +3 -1
  30. package/cjs/services/swap-service/handler/chainflip-handler.js +26 -5
  31. package/cjs/services/swap-service/handler/hydradx-handler.js +23 -8
  32. package/cjs/services/swap-service/handler/simpleswap-handler.js +24 -4
  33. package/cjs/services/swap-service/index.js +8 -8
  34. package/cjs/services/transaction-service/index.js +23 -3
  35. package/cjs/types/balance/transfer.js +1 -0
  36. package/cjs/types/fee/base.js +1 -0
  37. package/cjs/types/fee/evm.js +16 -1
  38. package/cjs/types/fee/index.js +37 -4
  39. package/cjs/types/fee/option.js +1 -0
  40. package/cjs/types/fee/subscription.js +1 -0
  41. package/cjs/types/fee/substrate.js +1 -0
  42. package/cjs/types/fee/ton.js +1 -0
  43. package/cjs/utils/fee/combine.js +50 -0
  44. package/cjs/utils/fee/index.js +27 -0
  45. package/cjs/utils/fee/transfer.js +374 -0
  46. package/cjs/utils/index.js +12 -0
  47. package/constants/index.d.ts +1 -0
  48. package/constants/index.js +1 -0
  49. package/core/logic-validation/request.js +17 -10
  50. package/core/logic-validation/transfer.d.ts +5 -5
  51. package/core/logic-validation/transfer.js +20 -19
  52. package/core/substrate/xcm-parser.d.ts +1 -1
  53. package/koni/api/contract-handler/evm/web3.js +3 -3
  54. package/koni/background/handlers/Extension.d.ts +3 -3
  55. package/koni/background/handlers/Extension.js +253 -107
  56. package/koni/background/handlers/State.js +1 -8
  57. package/package.json +55 -5
  58. package/packageInfo.js +1 -1
  59. package/services/balance-service/helpers/subscribe/substrate/index.js +1 -1
  60. package/services/balance-service/index.d.ts +1 -0
  61. package/services/balance-service/index.js +13 -0
  62. package/services/balance-service/transfer/smart-contract.d.ts +24 -4
  63. package/services/balance-service/transfer/smart-contract.js +45 -33
  64. package/services/balance-service/transfer/token.js +6 -5
  65. package/services/balance-service/transfer/xcm/availBridge.d.ts +3 -2
  66. package/services/balance-service/transfer/xcm/availBridge.js +11 -15
  67. package/services/balance-service/transfer/xcm/index.d.ts +12 -11
  68. package/services/balance-service/transfer/xcm/index.js +29 -58
  69. package/services/balance-service/transfer/xcm/polygonBridge.d.ts +4 -3
  70. package/services/balance-service/transfer/xcm/polygonBridge.js +13 -17
  71. package/services/balance-service/transfer/xcm/posBridge.d.ts +4 -3
  72. package/services/balance-service/transfer/xcm/posBridge.js +18 -19
  73. package/services/balance-service/transfer/xcm/snowBridge.d.ts +2 -1
  74. package/services/balance-service/transfer/xcm/snowBridge.js +7 -7
  75. package/services/balance-service/transfer/xcm/utils.js +2 -2
  76. package/services/chain-service/constants.js +3 -3
  77. package/services/earning-service/handlers/liquid-staking/stella-swap.js +7 -12
  78. package/services/earning-service/handlers/special.js +15 -4
  79. package/services/fee-service/interfaces.d.ts +5 -0
  80. package/services/fee-service/interfaces.js +1 -0
  81. package/services/fee-service/service.d.ts +4 -1
  82. package/services/fee-service/service.js +111 -0
  83. package/services/fee-service/utils/index.d.ts +8 -2
  84. package/services/fee-service/utils/index.js +92 -108
  85. package/services/storage-service/db-stores/Balance.d.ts +1 -0
  86. package/services/storage-service/db-stores/Balance.js +3 -0
  87. package/services/swap-service/handler/asset-hub/handler.d.ts +2 -1
  88. package/services/swap-service/handler/asset-hub/handler.js +23 -7
  89. package/services/swap-service/handler/asset-hub/router.js +2 -2
  90. package/services/swap-service/handler/asset-hub/utils.d.ts +1 -1
  91. package/services/swap-service/handler/asset-hub/utils.js +2 -2
  92. package/services/swap-service/handler/base-handler.d.ts +4 -1
  93. package/services/swap-service/handler/base-handler.js +3 -1
  94. package/services/swap-service/handler/chainflip-handler.d.ts +2 -1
  95. package/services/swap-service/handler/chainflip-handler.js +25 -4
  96. package/services/swap-service/handler/hydradx-handler.d.ts +2 -1
  97. package/services/swap-service/handler/hydradx-handler.js +22 -7
  98. package/services/swap-service/handler/simpleswap-handler.d.ts +2 -1
  99. package/services/swap-service/handler/simpleswap-handler.js +24 -4
  100. package/services/swap-service/index.js +8 -8
  101. package/services/transaction-service/index.js +23 -3
  102. package/services/transaction-service/types.d.ts +5 -4
  103. package/types/balance/transfer.d.ts +25 -0
  104. package/types/balance/transfer.js +1 -0
  105. package/types/fee/base.d.ts +8 -0
  106. package/types/fee/base.js +1 -0
  107. package/types/fee/evm.d.ts +46 -16
  108. package/types/fee/evm.js +10 -1
  109. package/types/fee/index.d.ts +4 -1
  110. package/types/fee/index.js +4 -1
  111. package/types/fee/option.d.ts +8 -0
  112. package/types/fee/option.js +1 -0
  113. package/types/fee/subscription.d.ts +12 -0
  114. package/types/fee/subscription.js +1 -0
  115. package/types/fee/substrate.d.ts +15 -0
  116. package/types/fee/substrate.js +1 -0
  117. package/types/fee/ton.d.ts +18 -0
  118. package/types/fee/ton.js +1 -0
  119. package/types/transaction/request.d.ts +13 -3
  120. package/utils/fee/combine.d.ts +12 -0
  121. package/utils/fee/combine.js +42 -0
  122. package/utils/fee/index.d.ts +2 -0
  123. package/utils/fee/index.js +5 -0
  124. package/utils/fee/transfer.d.ts +22 -0
  125. package/utils/fee/transfer.js +363 -0
  126. package/utils/index.d.ts +1 -0
  127. package/utils/index.js +1 -0
@@ -11,6 +11,7 @@ var _swap = require("@subwallet/extension-base/core/logic-validation/swap");
11
11
  var _utils = require("@subwallet/extension-base/services/chain-service/utils");
12
12
  var _types = require("@subwallet/extension-base/types");
13
13
  var _utils2 = require("@subwallet/extension-base/utils");
14
+ var _getId = require("@subwallet/extension-base/utils/getId");
14
15
  var _bignumber = _interopRequireWildcard(require("bignumber.js"));
15
16
  var _smartContract = require("../../balance-service/transfer/smart-contract");
16
17
  var _token = require("../../balance-service/transfer/token");
@@ -125,10 +126,11 @@ const createSwapRequest = async params => {
125
126
  };
126
127
  };
127
128
  class SimpleSwapHandler {
128
- constructor(chainService, balanceService) {
129
+ constructor(chainService, balanceService, feeService) {
129
130
  this.swapBaseHandler = new _baseHandler.SwapBaseHandler({
130
131
  chainService,
131
132
  balanceService,
133
+ feeService,
132
134
  providerName: 'SimpleSwap',
133
135
  providerSlug: _types.SwapProviderId.SIMPLE_SWAP
134
136
  });
@@ -241,7 +243,7 @@ class SimpleSwapHandler {
241
243
  }
242
244
  }
243
245
  generateOptimalProcess(params) {
244
- return this.swapBaseHandler.generateOptimalProcess(params, [this.getSubmitStep]);
246
+ return this.swapBaseHandler.generateOptimalProcess(params, [this.getSubmitStep.bind(this)]);
245
247
  }
246
248
  async getSubmitStep(params) {
247
249
  if (params.selectedQuote) {
@@ -423,11 +425,29 @@ class SimpleSwapHandler {
423
425
  });
424
426
  extrinsic = submittableExtrinsic;
425
427
  } else {
428
+ const feeInfo = await this.swapBaseHandler.feeService.subscribeChainFee((0, _getId.getId)(), chainInfo.slug, 'evm');
426
429
  if ((0, _utils._isNativeToken)(fromAsset)) {
427
- const [transactionConfig] = await (0, _smartContract.getEVMTransactionObject)(chainInfo, address, addressFrom, quote.fromAmount, false, this.chainService.getEvmApi(chainInfo.slug));
430
+ const [transactionConfig] = await (0, _smartContract.getEVMTransactionObject)({
431
+ evmApi: this.chainService.getEvmApi(chainInfo.slug),
432
+ transferAll: false,
433
+ value: quote.fromAmount,
434
+ from: address,
435
+ to: addressFrom,
436
+ chain: chainInfo.slug,
437
+ feeInfo
438
+ });
428
439
  extrinsic = transactionConfig;
429
440
  } else {
430
- const [transactionConfig] = await (0, _smartContract.getERC20TransactionObject)((0, _utils._getContractAddressOfToken)(fromAsset), chainInfo, address, addressFrom, quote.fromAmount, false, this.chainService.getEvmApi(chainInfo.slug));
441
+ const [transactionConfig] = await (0, _smartContract.getERC20TransactionObject)({
442
+ assetAddress: (0, _utils._getContractAddressOfToken)(fromAsset),
443
+ chain: chainInfo.slug,
444
+ evmApi: this.chainService.getEvmApi(chainInfo.slug),
445
+ feeInfo,
446
+ from: address,
447
+ to: addressFrom,
448
+ value: quote.fromAmount,
449
+ transferAll: false
450
+ });
431
451
  extrinsic = transactionConfig;
432
452
  }
433
453
  }
@@ -145,28 +145,28 @@ class SwapService {
145
145
  _swap._SUPPORTED_SWAP_PROVIDERS.forEach(providerId => {
146
146
  switch (providerId) {
147
147
  case _swap.SwapProviderId.CHAIN_FLIP_TESTNET:
148
- this.handlers[providerId] = new _chainflipHandler.ChainflipSwapHandler(this.chainService, this.state.balanceService);
148
+ this.handlers[providerId] = new _chainflipHandler.ChainflipSwapHandler(this.chainService, this.state.balanceService, this.state.feeService);
149
149
  break;
150
150
  case _swap.SwapProviderId.CHAIN_FLIP_MAINNET:
151
- this.handlers[providerId] = new _chainflipHandler.ChainflipSwapHandler(this.chainService, this.state.balanceService, false);
151
+ this.handlers[providerId] = new _chainflipHandler.ChainflipSwapHandler(this.chainService, this.state.balanceService, this.state.feeService, false);
152
152
  break;
153
153
  case _swap.SwapProviderId.HYDRADX_TESTNET:
154
- this.handlers[providerId] = new _hydradxHandler.HydradxHandler(this.chainService, this.state.balanceService);
154
+ this.handlers[providerId] = new _hydradxHandler.HydradxHandler(this.chainService, this.state.balanceService, this.state.feeService);
155
155
  break;
156
156
  case _swap.SwapProviderId.HYDRADX_MAINNET:
157
- this.handlers[providerId] = new _hydradxHandler.HydradxHandler(this.chainService, this.state.balanceService, false);
157
+ this.handlers[providerId] = new _hydradxHandler.HydradxHandler(this.chainService, this.state.balanceService, this.state.feeService, false);
158
158
  break;
159
159
  case _swap.SwapProviderId.POLKADOT_ASSET_HUB:
160
- this.handlers[providerId] = new _assetHub.AssetHubSwapHandler(this.chainService, this.state.balanceService, 'statemint');
160
+ this.handlers[providerId] = new _assetHub.AssetHubSwapHandler(this.chainService, this.state.balanceService, this.state.feeService, 'statemint');
161
161
  break;
162
162
  case _swap.SwapProviderId.KUSAMA_ASSET_HUB:
163
- this.handlers[providerId] = new _assetHub.AssetHubSwapHandler(this.chainService, this.state.balanceService, 'statemine');
163
+ this.handlers[providerId] = new _assetHub.AssetHubSwapHandler(this.chainService, this.state.balanceService, this.state.feeService, 'statemine');
164
164
  break;
165
165
  case _swap.SwapProviderId.ROCOCO_ASSET_HUB:
166
- this.handlers[providerId] = new _assetHub.AssetHubSwapHandler(this.chainService, this.state.balanceService, 'rococo_assethub');
166
+ this.handlers[providerId] = new _assetHub.AssetHubSwapHandler(this.chainService, this.state.balanceService, this.state.feeService, 'rococo_assethub');
167
167
  break;
168
168
  case _swap.SwapProviderId.SIMPLE_SWAP:
169
- this.handlers[providerId] = new _simpleswapHandler.SimpleSwapHandler(this.chainService, this.state.balanceService);
169
+ this.handlers[providerId] = new _simpleswapHandler.SimpleSwapHandler(this.chainService, this.state.balanceService, this.state.feeService);
170
170
  break;
171
171
  default:
172
172
  throw new Error('Unsupported provider');
@@ -22,8 +22,10 @@ var _types = require("@subwallet/extension-base/types");
22
22
  var _utils4 = require("@subwallet/extension-base/utils");
23
23
  var _mergeTransactionAndSignature = require("@subwallet/extension-base/utils/eth/mergeTransactionAndSignature");
24
24
  var _parseTransaction = require("@subwallet/extension-base/utils/eth/parseTransaction");
25
+ var _getId = require("@subwallet/extension-base/utils/getId");
25
26
  var _number = require("@subwallet/extension-base/utils/number");
26
27
  var _uiKeyring = _interopRequireDefault(require("@subwallet/ui-keyring"));
28
+ var _bignumber = _interopRequireDefault(require("bignumber.js"));
27
29
  var _ethereumjsUtil = require("ethereumjs-util");
28
30
  var _ethers = require("ethers");
29
31
  var _eventemitter = _interopRequireDefault(require("eventemitter3"));
@@ -90,6 +92,8 @@ class TransactionService {
90
92
  (0, _transfer.checkSupportForAction)(validationResponse, blockedActionsMap);
91
93
  }
92
94
  const transaction = transactionInput.transaction;
95
+ const nativeTokenInfo = this.state.chainService.getNativeTokenInfo(chain);
96
+ const tokenPayFeeInfo = transactionInput.nonNativeTokenPayFeeSlug ? this.chainService.getAssetBySlug(transactionInput.nonNativeTokenPayFeeSlug) : undefined;
93
97
 
94
98
  // Check duplicated transaction
95
99
  validationResponse.errors.push(...this.checkDuplicate(transactionInput));
@@ -99,6 +103,7 @@ class TransactionService {
99
103
  if (!chainInfo) {
100
104
  validationResponse.errors.push(new _TransactionError.TransactionError(_types.BasicTxErrorType.INTERNAL_ERROR, (0, _i18next.t)('Cannot find network')));
101
105
  }
106
+ const substrateApi = this.state.chainService.getSubstrateApi(chainInfo.slug);
102
107
  const evmApi = this.state.chainService.getEvmApi(chainInfo.slug);
103
108
  const tonApi = this.state.chainService.getTonApi(chainInfo.slug);
104
109
  const isNoEvmApi = transaction && !(0, _helpers.isSubstrateTransaction)(transaction) && !(0, _helpers.isTonTransaction)(transaction) && !evmApi; // todo: should split isEvmTx && isNoEvmApi. Because other chains type also has no Evm Api
@@ -108,12 +113,13 @@ class TransactionService {
108
113
  }
109
114
 
110
115
  // Estimate fee for transaction
111
- validationResponse.estimateFee = await (0, _transfer.estimateFeeForTransaction)(validationResponse, transaction, chainInfo, evmApi);
116
+ const id = (0, _getId.getId)();
117
+ const feeInfo = await this.state.feeService.subscribeChainFee(id, chain, 'evm');
118
+ validationResponse.estimateFee = await (0, _transfer.estimateFeeForTransaction)(validationResponse, transaction, chainInfo, evmApi, substrateApi, feeInfo, nativeTokenInfo, tokenPayFeeInfo, transactionInput.isTransferLocalTokenAndPayThatTokenAsFee);
112
119
  const chainInfoMap = this.state.chainService.getChainInfoMap();
113
120
 
114
121
  // Check account signing transaction
115
122
  (0, _transfer.checkSigningAccountForTransaction)(validationResponse, chainInfoMap);
116
- const nativeTokenInfo = this.state.chainService.getNativeTokenInfo(chain);
117
123
  const nativeTokenAvailable = await this.state.balanceService.getTransferableBalance(address, chain, nativeTokenInfo.slug, extrinsicType);
118
124
 
119
125
  // Check available balance against transaction fee
@@ -912,6 +918,13 @@ class TransactionService {
912
918
  if (!payload.from) {
913
919
  payload.from = address;
914
920
  }
921
+ if (!payload.estimateGas) {
922
+ if (payload.maxFeePerGas) {
923
+ payload.estimateGas = new _bignumber.default((0, _utils4.anyNumberToBN)(payload.maxFeePerGas).toNumber()).multipliedBy(payload.gas || '0').toFixed(0);
924
+ } else {
925
+ payload.estimateGas = new _bignumber.default((0, _utils4.anyNumberToBN)(payload.gasPrice).toNumber()).multipliedBy(payload.gas || '0').toFixed(0);
926
+ }
927
+ }
915
928
  const isExternal = !!account.isExternal;
916
929
  const isInjected = !!account.isInjected;
917
930
  if (!hasError) {
@@ -1064,13 +1077,18 @@ class TransactionService {
1064
1077
  return emitter;
1065
1078
  }
1066
1079
  signAndSendSubstrateTransaction(_ref10) {
1080
+ var _this$state$chainServ;
1067
1081
  let {
1068
1082
  address,
1069
1083
  chain,
1084
+ feeCustom,
1070
1085
  id,
1086
+ nonNativeTokenPayFeeSlug,
1071
1087
  transaction,
1072
1088
  url
1073
1089
  } = _ref10;
1090
+ const tip = (feeCustom === null || feeCustom === void 0 ? void 0 : feeCustom.tip) || '0';
1091
+ const feeAssetId = nonNativeTokenPayFeeSlug ? (_this$state$chainServ = this.state.chainService.getAssetBySlug(nonNativeTokenPayFeeSlug).metadata) === null || _this$state$chainServ === void 0 ? void 0 : _this$state$chainServ.multilocation : undefined;
1074
1092
  const emitter = new _eventemitter.default();
1075
1093
  const eventData = {
1076
1094
  id,
@@ -1096,7 +1114,9 @@ class TransactionService {
1096
1114
  };
1097
1115
  }
1098
1116
  },
1099
- withSignedTransaction: true
1117
+ tip,
1118
+ withSignedTransaction: true,
1119
+ assetId: feeAssetId
1100
1120
  };
1101
1121
 
1102
1122
  // if (_isRuntimeUpdated(signedExtensions)) {
@@ -0,0 +1 @@
1
+ "use strict";
@@ -0,0 +1 @@
1
+ "use strict";
@@ -1 +1,16 @@
1
- "use strict";
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.FeeOptionKey = void 0;
7
+ // Copyright 2019-2022 @subwallet/extension-base
8
+ // SPDX-License-Identifier: Apache-2.0
9
+ let FeeOptionKey;
10
+ exports.FeeOptionKey = FeeOptionKey;
11
+ (function (FeeOptionKey) {
12
+ FeeOptionKey["SLOW"] = "slow";
13
+ FeeOptionKey["AVERAGE"] = "average";
14
+ FeeOptionKey["FAST"] = "fast";
15
+ FeeOptionKey["DEFAULT"] = "default";
16
+ })(FeeOptionKey || (exports.FeeOptionKey = FeeOptionKey = {}));
@@ -3,6 +3,17 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
+ var _base = require("./base");
7
+ Object.keys(_base).forEach(function (key) {
8
+ if (key === "default" || key === "__esModule") return;
9
+ if (key in exports && exports[key] === _base[key]) return;
10
+ Object.defineProperty(exports, key, {
11
+ enumerable: true,
12
+ get: function () {
13
+ return _base[key];
14
+ }
15
+ });
16
+ });
6
17
  var _evm = require("./evm");
7
18
  Object.keys(_evm).forEach(function (key) {
8
19
  if (key === "default" || key === "__esModule") return;
@@ -14,14 +25,36 @@ Object.keys(_evm).forEach(function (key) {
14
25
  }
15
26
  });
16
27
  });
17
- var _fee = require("./fee");
18
- Object.keys(_fee).forEach(function (key) {
28
+ var _option = require("./option");
29
+ Object.keys(_option).forEach(function (key) {
30
+ if (key === "default" || key === "__esModule") return;
31
+ if (key in exports && exports[key] === _option[key]) return;
32
+ Object.defineProperty(exports, key, {
33
+ enumerable: true,
34
+ get: function () {
35
+ return _option[key];
36
+ }
37
+ });
38
+ });
39
+ var _subscription = require("./subscription");
40
+ Object.keys(_subscription).forEach(function (key) {
41
+ if (key === "default" || key === "__esModule") return;
42
+ if (key in exports && exports[key] === _subscription[key]) return;
43
+ Object.defineProperty(exports, key, {
44
+ enumerable: true,
45
+ get: function () {
46
+ return _subscription[key];
47
+ }
48
+ });
49
+ });
50
+ var _substrate = require("./substrate");
51
+ Object.keys(_substrate).forEach(function (key) {
19
52
  if (key === "default" || key === "__esModule") return;
20
- if (key in exports && exports[key] === _fee[key]) return;
53
+ if (key in exports && exports[key] === _substrate[key]) return;
21
54
  Object.defineProperty(exports, key, {
22
55
  enumerable: true,
23
56
  get: function () {
24
- return _fee[key];
57
+ return _substrate[key];
25
58
  }
26
59
  });
27
60
  });
@@ -0,0 +1 @@
1
+ "use strict";
@@ -0,0 +1 @@
1
+ "use strict";
@@ -0,0 +1 @@
1
+ "use strict";
@@ -0,0 +1 @@
1
+ "use strict";
@@ -0,0 +1,50 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.combineSubstrateFee = exports.combineEthFee = void 0;
7
+ // Copyright 2019-2022 @subwallet/extension-base
8
+ // SPDX-License-Identifier: Apache-2.0
9
+
10
+ const combineEthFee = (feeInfo, feeOptions, feeCustom) => {
11
+ let maxFeePerGas;
12
+ let maxPriorityFeePerGas;
13
+ if (feeOptions && feeOptions !== 'custom') {
14
+ var _feeInfo$options, _feeInfo$options2;
15
+ maxFeePerGas = (_feeInfo$options = feeInfo.options) === null || _feeInfo$options === void 0 ? void 0 : _feeInfo$options[feeOptions].maxFeePerGas;
16
+ maxPriorityFeePerGas = (_feeInfo$options2 = feeInfo.options) === null || _feeInfo$options2 === void 0 ? void 0 : _feeInfo$options2[feeOptions].maxPriorityFeePerGas;
17
+ } else if (feeOptions === 'custom' && feeCustom) {
18
+ maxFeePerGas = feeCustom.maxFeePerGas;
19
+ maxPriorityFeePerGas = feeCustom.maxPriorityFeePerGas;
20
+ } else {
21
+ var _feeInfo$options3, _feeInfo$options4;
22
+ maxFeePerGas = (_feeInfo$options3 = feeInfo.options) === null || _feeInfo$options3 === void 0 ? void 0 : _feeInfo$options3[feeInfo.options.default].maxFeePerGas;
23
+ maxPriorityFeePerGas = (_feeInfo$options4 = feeInfo.options) === null || _feeInfo$options4 === void 0 ? void 0 : _feeInfo$options4[feeInfo.options.default].maxPriorityFeePerGas;
24
+ }
25
+ if (feeInfo.gasPrice) {
26
+ return {
27
+ gasPrice: feeInfo.gasPrice
28
+ };
29
+ } else {
30
+ return {
31
+ maxFeePerGas,
32
+ maxPriorityFeePerGas
33
+ };
34
+ }
35
+ };
36
+ exports.combineEthFee = combineEthFee;
37
+ const combineSubstrateFee = (_fee, _feeOptions, feeCustom) => {
38
+ let tip;
39
+ if (_feeOptions && _feeOptions !== 'custom') {
40
+ tip = _fee.options[_feeOptions].tip;
41
+ } else if (_feeOptions === 'custom' && feeCustom && 'tip' in feeCustom) {
42
+ tip = feeCustom.tip;
43
+ } else {
44
+ tip = _fee.options[_fee.options.default].tip;
45
+ }
46
+ return {
47
+ tip
48
+ };
49
+ };
50
+ exports.combineSubstrateFee = combineSubstrateFee;
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ var _combine = require("./combine");
7
+ Object.keys(_combine).forEach(function (key) {
8
+ if (key === "default" || key === "__esModule") return;
9
+ if (key in exports && exports[key] === _combine[key]) return;
10
+ Object.defineProperty(exports, key, {
11
+ enumerable: true,
12
+ get: function () {
13
+ return _combine[key];
14
+ }
15
+ });
16
+ });
17
+ var _transfer = require("./transfer");
18
+ Object.keys(_transfer).forEach(function (key) {
19
+ if (key === "default" || key === "__esModule") return;
20
+ if (key in exports && exports[key] === _transfer[key]) return;
21
+ Object.defineProperty(exports, key, {
22
+ enumerable: true,
23
+ get: function () {
24
+ return _transfer[key];
25
+ }
26
+ });
27
+ });