@subwallet/extension-base 1.3.31-1 → 1.3.33-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 (140) hide show
  1. package/background/KoniTypes.d.ts +94 -3
  2. package/background/KoniTypes.js +14 -0
  3. package/background/errors/CardanoProviderError.d.ts +6 -0
  4. package/background/errors/CardanoProviderError.js +61 -0
  5. package/background/types.d.ts +2 -2
  6. package/cjs/background/KoniTypes.js +16 -1
  7. package/cjs/background/errors/CardanoProviderError.js +67 -0
  8. package/cjs/constants/environment.js +4 -2
  9. package/cjs/constants/index.js +4 -1
  10. package/cjs/core/logic-validation/request.js +50 -3
  11. package/cjs/koni/api/contract-handler/evm/web3.js +21 -0
  12. package/cjs/koni/api/staking/bonding/utils.js +24 -3
  13. package/cjs/koni/background/handlers/Extension.js +141 -107
  14. package/cjs/koni/background/handlers/State.js +232 -6
  15. package/cjs/koni/background/handlers/Tabs.js +277 -55
  16. package/cjs/packageInfo.js +1 -1
  17. package/cjs/page/cardano/cips/cip30.js +63 -0
  18. package/cjs/page/cardano/cips/index.js +20 -0
  19. package/cjs/page/cardano/index.js +41 -0
  20. package/cjs/page/{SubWalleEvmProvider.js → evm/index.js} +2 -2
  21. package/cjs/page/index.js +9 -4
  22. package/cjs/services/balance-service/transfer/xcm/acrossBridge/index.js +6 -2
  23. package/cjs/services/balance-service/transfer/xcm/index.js +2 -0
  24. package/cjs/services/chain-service/handler/CardanoApi.js +33 -0
  25. package/cjs/services/chain-service/index.js +31 -0
  26. package/cjs/services/chain-service/utils/patch.js +1 -1
  27. package/cjs/services/earning-service/handlers/liquid-staking/stella-swap.js +3 -3
  28. package/cjs/services/earning-service/handlers/native-staking/dtao.js +2 -2
  29. package/cjs/services/earning-service/handlers/native-staking/mythos.js +42 -8
  30. package/cjs/services/earning-service/handlers/native-staking/relay-chain.js +1 -1
  31. package/cjs/services/earning-service/handlers/native-staking/tao.js +13 -13
  32. package/cjs/services/earning-service/handlers/nomination-pool/index.js +1 -1
  33. package/cjs/services/migration-service/scripts/MigrateAuthUrls.js +1 -1
  34. package/cjs/services/price-service/coingecko.js +22 -3
  35. package/cjs/services/price-service/index.js +75 -2
  36. package/cjs/services/request-service/constants.js +3 -1
  37. package/cjs/services/request-service/handler/AuthRequestHandler.js +38 -5
  38. package/cjs/services/request-service/handler/CardanoRequestHandler.js +45 -3
  39. package/cjs/services/request-service/helper/index.js +419 -1
  40. package/cjs/services/swap-service/handler/asset-hub/handler.js +1 -1
  41. package/cjs/services/swap-service/handler/base-handler.js +81 -21
  42. package/cjs/services/swap-service/handler/hydradx-handler.js +1 -1
  43. package/cjs/services/swap-service/handler/uniswap-handler.js +274 -45
  44. package/cjs/services/swap-service/index.js +33 -11
  45. package/cjs/services/swap-service/utils.js +15 -2
  46. package/cjs/utils/auth.js +2 -1
  47. package/cjs/utils/cardano.js +20 -0
  48. package/cjs/utils/index.js +16 -4
  49. package/cjs/utils/price.js +28 -0
  50. package/constants/environment.d.ts +1 -0
  51. package/constants/environment.js +2 -1
  52. package/constants/index.d.ts +1 -0
  53. package/constants/index.js +1 -0
  54. package/core/logic-validation/request.d.ts +6 -2
  55. package/core/logic-validation/request.js +51 -5
  56. package/koni/api/contract-handler/evm/web3.d.ts +2 -0
  57. package/koni/api/contract-handler/evm/web3.js +19 -0
  58. package/koni/api/staking/bonding/utils.d.ts +2 -1
  59. package/koni/api/staking/bonding/utils.js +23 -3
  60. package/koni/background/handlers/Extension.d.ts +2 -0
  61. package/koni/background/handlers/Extension.js +32 -2
  62. package/koni/background/handlers/State.d.ts +6 -1
  63. package/koni/background/handlers/State.js +228 -6
  64. package/koni/background/handlers/Tabs.d.ts +11 -1
  65. package/koni/background/handlers/Tabs.js +242 -19
  66. package/package.json +67 -42
  67. package/packageInfo.js +1 -1
  68. package/page/cardano/cips/cip30.d.ts +22 -0
  69. package/page/cardano/cips/cip30.js +55 -0
  70. package/page/cardano/cips/index.d.ts +3 -0
  71. package/page/cardano/cips/index.js +7 -0
  72. package/page/cardano/index.d.ts +13 -0
  73. package/page/cardano/index.js +34 -0
  74. package/page/{SubWalleEvmProvider.d.ts → evm/index.d.ts} +3 -2
  75. package/page/{SubWalleEvmProvider.js → evm/index.js} +1 -1
  76. package/page/index.d.ts +3 -2
  77. package/page/index.js +6 -2
  78. package/page/{Accounts.d.ts → substrate/Accounts.d.ts} +1 -1
  79. package/page/{Metadata.d.ts → substrate/Metadata.d.ts} +1 -1
  80. package/page/{PostMessageProvider.d.ts → substrate/PostMessageProvider.d.ts} +1 -1
  81. package/page/{Signer.d.ts → substrate/Signer.d.ts} +1 -1
  82. package/page/{Injected.d.ts → substrate/index.d.ts} +1 -1
  83. package/services/balance-service/helpers/subscribe/cardano/types.d.ts +14 -0
  84. package/services/balance-service/transfer/xcm/acrossBridge/index.d.ts +4 -0
  85. package/services/balance-service/transfer/xcm/acrossBridge/index.js +4 -1
  86. package/services/balance-service/transfer/xcm/index.js +2 -0
  87. package/services/chain-service/handler/CardanoApi.d.ts +3 -1
  88. package/services/chain-service/handler/CardanoApi.js +33 -0
  89. package/services/chain-service/index.d.ts +5 -1
  90. package/services/chain-service/index.js +32 -1
  91. package/services/chain-service/utils/patch.js +1 -1
  92. package/services/earning-service/handlers/liquid-staking/stella-swap.js +3 -3
  93. package/services/earning-service/handlers/native-staking/dtao.js +2 -2
  94. package/services/earning-service/handlers/native-staking/mythos.js +42 -8
  95. package/services/earning-service/handlers/native-staking/relay-chain.js +1 -1
  96. package/services/earning-service/handlers/native-staking/tao.js +14 -14
  97. package/services/earning-service/handlers/nomination-pool/index.js +1 -1
  98. package/services/migration-service/scripts/MigrateAuthUrls.js +1 -1
  99. package/services/price-service/coingecko.d.ts +2 -1
  100. package/services/price-service/coingecko.js +19 -1
  101. package/services/price-service/index.d.ts +11 -1
  102. package/services/price-service/index.js +78 -5
  103. package/services/request-service/constants.js +3 -1
  104. package/services/request-service/handler/AuthRequestHandler.js +40 -7
  105. package/services/request-service/handler/CardanoRequestHandler.d.ts +2 -0
  106. package/services/request-service/handler/CardanoRequestHandler.js +45 -3
  107. package/services/request-service/helper/index.d.ts +54 -0
  108. package/services/request-service/helper/index.js +406 -1
  109. package/services/request-service/types.d.ts +3 -1
  110. package/services/swap-service/handler/asset-hub/handler.js +1 -1
  111. package/services/swap-service/handler/base-handler.d.ts +3 -1
  112. package/services/swap-service/handler/base-handler.js +82 -22
  113. package/services/swap-service/handler/hydradx-handler.js +1 -1
  114. package/services/swap-service/handler/uniswap-handler.d.ts +5 -0
  115. package/services/swap-service/handler/uniswap-handler.js +275 -46
  116. package/services/swap-service/index.js +34 -12
  117. package/services/swap-service/utils.d.ts +3 -2
  118. package/services/swap-service/utils.js +13 -1
  119. package/types/swap/index.d.ts +1 -0
  120. package/types/transaction/process.d.ts +2 -0
  121. package/utils/auth.js +3 -2
  122. package/utils/cardano.d.ts +2 -0
  123. package/utils/cardano.js +12 -0
  124. package/utils/index.d.ts +2 -1
  125. package/utils/index.js +2 -1
  126. package/utils/price.d.ts +3 -0
  127. package/utils/price.js +20 -0
  128. package/cjs/utils/canDerive.js +0 -12
  129. package/utils/canDerive.d.ts +0 -2
  130. package/utils/canDerive.js +0 -6
  131. /package/cjs/page/{Accounts.js → substrate/Accounts.js} +0 -0
  132. /package/cjs/page/{Metadata.js → substrate/Metadata.js} +0 -0
  133. /package/cjs/page/{PostMessageProvider.js → substrate/PostMessageProvider.js} +0 -0
  134. /package/cjs/page/{Signer.js → substrate/Signer.js} +0 -0
  135. /package/cjs/page/{Injected.js → substrate/index.js} +0 -0
  136. /package/page/{Accounts.js → substrate/Accounts.js} +0 -0
  137. /package/page/{Metadata.js → substrate/Metadata.js} +0 -0
  138. /package/page/{PostMessageProvider.js → substrate/PostMessageProvider.js} +0 -0
  139. /package/page/{Signer.js → substrate/Signer.js} +0 -0
  140. /package/page/{Injected.js → substrate/index.js} +0 -0
@@ -27,7 +27,8 @@ const DEFAULT_PRICE_SUBJECT = {
27
27
  },
28
28
  priceMap: {},
29
29
  price24hMap: {},
30
- exchangeRateMap: {}
30
+ exchangeRateMap: {},
31
+ lastUpdatedMap: {}
31
32
  };
32
33
  const checkFetchSuccess = (obj1, obj2) => {
33
34
  return Object.keys(obj1).length > 0 && Object.keys(obj2).length > 0;
@@ -41,6 +42,7 @@ class PriceService {
41
42
  });
42
43
  this.rawPriceSubject = new _rxjs.BehaviorSubject({});
43
44
  this.rawExchangeRateMap = new _rxjs.BehaviorSubject({});
45
+ this.historyTokenPriceSubject = new _rxjs.BehaviorSubject({});
44
46
  this.status = _types.ServiceStatus.NOT_INITIALIZED;
45
47
  this.dbService = dbService;
46
48
  this.eventService = eventService;
@@ -99,6 +101,7 @@ class PriceService {
99
101
  }
100
102
  async calculatePriceMap(currency) {
101
103
  let {
104
+ lastUpdatedMap,
102
105
  price24hMap,
103
106
  priceMap
104
107
  } = this.rawPriceSubject.value;
@@ -129,7 +132,10 @@ class PriceService {
129
132
  },
130
133
  currency: currencyKey,
131
134
  exchangeRateMap: exchangeRateData,
132
- currencyData: _staticData.staticData[_staticData.StaticKey.CURRENCY_SYMBOL][currencyKey || DEFAULT_CURRENCY]
135
+ currencyData: _staticData.staticData[_staticData.StaticKey.CURRENCY_SYMBOL][currencyKey || DEFAULT_CURRENCY],
136
+ lastUpdatedMap: {
137
+ ...lastUpdatedMap
138
+ }
133
139
  };
134
140
  if (currencyKey === DEFAULT_CURRENCY) {
135
141
  return finalPriceMap;
@@ -171,6 +177,73 @@ class PriceService {
171
177
  });
172
178
  this.refreshTimeout = setTimeout(this.refreshPriceData.bind(this), _constants.CRON_REFRESH_PRICE_INTERVAL);
173
179
  }
180
+ async getHistoryTokenPriceData(priceId, timeframe) {
181
+ var _this$rawExchangeRate;
182
+ const id = (0, _utils.getTokenPriceHistoryId)(priceId, timeframe);
183
+ const currentData = this.historyTokenPriceSubject.value[id];
184
+ const now = Date.now();
185
+ const timeInterval = _utils.TIME_INTERVAL[timeframe];
186
+ let history = currentData ? structuredClone(currentData) : undefined;
187
+ const needsRefresh = !history || history.length === 0 || now - history[history.length - 1].time > timeInterval;
188
+ if (needsRefresh) {
189
+ const {
190
+ history: newHistory
191
+ } = await (0, _coingecko.getHistoryPrice)(priceId, timeframe);
192
+ if (newHistory.length > 0) {
193
+ history = newHistory;
194
+
195
+ // Update internal cache
196
+ this.historyTokenPriceSubject.next({
197
+ ...this.historyTokenPriceSubject.value,
198
+ [id]: structuredClone(history)
199
+ });
200
+ }
201
+ }
202
+ if (!history) {
203
+ return {
204
+ history: []
205
+ };
206
+ }
207
+
208
+ // Resolve current currency
209
+ const {
210
+ promise,
211
+ resolve
212
+ } = (0, _promise.createPromiseHandler)();
213
+ this.getCurrentCurrency(resolve);
214
+ const currencyKey = await promise;
215
+ const exchangeRate = (_this$rawExchangeRate = this.rawExchangeRateMap.value[currencyKey || DEFAULT_CURRENCY]) === null || _this$rawExchangeRate === void 0 ? void 0 : _this$rawExchangeRate.exchange;
216
+
217
+ // Convert value if needed
218
+ if (exchangeRate && currencyKey !== DEFAULT_CURRENCY) {
219
+ history = history.map(point => ({
220
+ ...point,
221
+ value: point.value * exchangeRate
222
+ }));
223
+ }
224
+ return {
225
+ history
226
+ };
227
+ }
228
+ subscribeCurrentTokenPrice(priceId, callback) {
229
+ const priceData = this.priceSubject.value;
230
+ const currentPrice = {
231
+ value: priceData.priceMap[priceId],
232
+ value24h: priceData.price24hMap[priceId],
233
+ time: priceData.lastUpdatedMap[priceId].getTime()
234
+ };
235
+ const unsubscribe = this.priceSubject.pipe((0, _rxjs.map)(valueSubject => ({
236
+ value: valueSubject.priceMap[priceId],
237
+ value24h: valueSubject.price24hMap[priceId],
238
+ time: valueSubject.lastUpdatedMap[priceId].getTime()
239
+ })), (0, _rxjs.distinctUntilChanged)()).subscribe(callback);
240
+ return {
241
+ unsubscribe: () => {
242
+ unsubscribe.unsubscribe();
243
+ },
244
+ currentPrice
245
+ };
246
+ }
174
247
  async init() {
175
248
  this.status = _types.ServiceStatus.INITIALIZING;
176
249
  // Fetch data from storage
@@ -12,7 +12,9 @@ exports.EXTENSION_REQUEST_URL = EXTENSION_REQUEST_URL;
12
12
  const PREDEFINED_CHAIN_DAPP_CHAIN_MAP = {
13
13
  'portal.astar.network': ['astar', 'astarEvm'],
14
14
  'apps.moonbeam.network': ['moonbeam', 'moonriver'],
15
- 'app.stellaswap.com': ['moonbeam']
15
+ 'app.stellaswap.com': ['moonbeam'],
16
+ 'testnet-preprod.minswap.org': ['cardano_preproduction'],
17
+ 'localhost:7777': ['cardano_preproduction']
16
18
  };
17
19
  exports.PREDEFINED_CHAIN_DAPP_CHAIN_MAP = PREDEFINED_CHAIN_DAPP_CHAIN_MAP;
18
20
  const WEB_APP_URL = [
@@ -45,6 +45,13 @@ class AuthRequestHandler {
45
45
  value.accountAuthTypes = ['evm', 'substrate'];
46
46
  needUpdateAuthList = true;
47
47
  }
48
+ const existKeyEvmNetworkConnect = value.currentEvmNetworkKey;
49
+ if (existKeyEvmNetworkConnect) {
50
+ value.currentNetworkMap = {
51
+ evm: existKeyEvmNetworkConnect
52
+ };
53
+ needUpdateAuthList = true;
54
+ }
48
55
  acc[key] = {
49
56
  ...value
50
57
  };
@@ -158,6 +165,18 @@ class AuthRequestHandler {
158
165
  }
159
166
  }
160
167
  }
168
+ if (options.accessType === 'cardano') {
169
+ const cardanoChains = Object.values(chainInfoMaps).filter(_utils._isChainCardanoCompatible);
170
+ chainInfo = (defaultChain ? chainInfoMaps[defaultChain] : chainInfoMaps.cardano) || cardanoChains[0]; // auto active cardano mainnet chain, because dont support switch network yet
171
+
172
+ if (options.autoActive) {
173
+ var _chainInfo3;
174
+ if (!needEnableChains.includes((_chainInfo3 = chainInfo) === null || _chainInfo3 === void 0 ? void 0 : _chainInfo3.slug)) {
175
+ var _chainInfo4;
176
+ needEnableChains.push((_chainInfo4 = chainInfo) === null || _chainInfo4 === void 0 ? void 0 : _chainInfo4.slug);
177
+ }
178
+ }
179
+ }
161
180
  needEnableChains = needEnableChains.filter(slug => {
162
181
  var _chainStateMap$slug;
163
182
  return !((_chainStateMap$slug = chainStateMap[slug]) !== null && _chainStateMap$slug !== void 0 && _chainStateMap$slug.active);
@@ -206,20 +225,31 @@ class AuthRequestHandler {
206
225
  if ((0, _keyring.isTonAddress)(a) && !accountAuthTypes.includes('ton')) {
207
226
  return true;
208
227
  }
228
+ if ((0, _keyring.isCardanoAddress)(a) && !accountAuthTypes.includes('cardano')) {
229
+ return true;
230
+ }
209
231
  return false;
210
232
  });
211
233
  backupAllowed.forEach(acc => {
212
234
  isAllowedMap[acc] = true;
213
235
  });
214
236
  }
215
- let defaultEvmNetworkKey;
237
+ const defaultNetworkMap = {};
216
238
  if (accountAuthTypes.includes('evm')) {
217
239
  const chainInfo = this.getDAppChainInfo({
218
240
  accessType: 'evm',
219
241
  autoActive: true,
220
242
  url
221
243
  });
222
- defaultEvmNetworkKey = chainInfo === null || chainInfo === void 0 ? void 0 : chainInfo.slug;
244
+ defaultNetworkMap.evm = chainInfo === null || chainInfo === void 0 ? void 0 : chainInfo.slug;
245
+ }
246
+ if (accountAuthTypes.includes('cardano')) {
247
+ const chainInfo = this.getDAppChainInfo({
248
+ accessType: 'cardano',
249
+ autoActive: true,
250
+ url
251
+ });
252
+ defaultNetworkMap.cardano = chainInfo === null || chainInfo === void 0 ? void 0 : chainInfo.slug;
223
253
  }
224
254
  this.getAuthorize(value => {
225
255
  let authorizeList = {};
@@ -243,7 +273,7 @@ class AuthRequestHandler {
243
273
  origin,
244
274
  url,
245
275
  accountAuthTypes: [...new Set([...accountAuthTypes, ...((existed === null || existed === void 0 ? void 0 : existed.accountAuthTypes) || [])])],
246
- currentEvmNetworkKey: existed ? existed.currentEvmNetworkKey : defaultEvmNetworkKey
276
+ currentNetworkMap: existed ? existed.currentNetworkMap : defaultNetworkMap
247
277
  };
248
278
  this.setAuthorize(authorizeList, () => {
249
279
  cb();
@@ -347,12 +377,14 @@ class AuthRequestHandler {
347
377
  list.push(...allowedListByRequestType.filter(a => (0, _keyring.isSubstrateAddress)(a)));
348
378
  } else if (accountAuthType === 'ton') {
349
379
  list.push(...allowedListByRequestType.filter(a => (0, _keyring.isTonAddress)(a)));
380
+ } else if (accountAuthType === 'cardano') {
381
+ list.push(...allowedListByRequestType.filter(a => (0, _keyring.isCardanoAddress)(a)));
350
382
  }
351
383
  return list;
352
384
  }, []);
353
385
  if (!confirmAnotherType && !request.reConfirm && allowedListByRequestType.length !== 0) {
354
386
  // Prevent appear confirmation popup
355
- return false;
387
+ return true;
356
388
  }
357
389
  } else {
358
390
  // Auto auth for web app
@@ -368,7 +400,8 @@ class AuthRequestHandler {
368
400
  isAllowedMap,
369
401
  origin,
370
402
  url,
371
- accountAuthTypes: _constants.ALL_ACCOUNT_AUTH_TYPES
403
+ accountAuthTypes: _constants.ALL_ACCOUNT_AUTH_TYPES,
404
+ currentNetworkMap: {}
372
405
  };
373
406
  this.setAuthorize(authList);
374
407
  return true;
@@ -4,6 +4,7 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = void 0;
7
+ var _cardanoSerializationLibNodejs = require("@emurgo/cardano-serialization-lib-nodejs");
7
8
  var _request = require("@subwallet/extension-base/utils/request");
8
9
  var _uiKeyring = require("@subwallet/ui-keyring");
9
10
  var _i18next = require("i18next");
@@ -18,7 +19,8 @@ class CardanoRequestHandler {
18
19
  confirmationsQueueSubjectCardano = new _rxjs.BehaviorSubject({
19
20
  cardanoSignatureRequest: {},
20
21
  cardanoSendTransactionRequest: {},
21
- cardanoWatchTransactionRequest: {}
22
+ cardanoWatchTransactionRequest: {},
23
+ cardanoSignTransactionRequest: {}
22
24
  });
23
25
  confirmationsPromiseMap = {};
24
26
  constructor(requestService) {
@@ -122,9 +124,11 @@ class CardanoRequestHandler {
122
124
  async decorateResult(t, request, result) {
123
125
  if (result.payload === '') {
124
126
  if (t === 'cardanoSignatureRequest') {
125
- // result.payload = await this.signMessage(request as ConfirmationDefinitions['evmSignatureRequest'][0]);
127
+ result.payload = this.signMessage(request);
126
128
  } else if (t === 'cardanoSendTransactionRequest') {
127
129
  result.payload = this.signTransactionCardano(request);
130
+ } else if (t === 'cardanoSignTransactionRequest') {
131
+ result.payload = this.signDappTransactionCardano(request);
128
132
  }
129
133
  if (t === 'cardanoSignatureRequest' || t === 'cardanoSendTransactionRequest') {
130
134
  const isAlwaysRequired = await this.#requestService.settingService.isAlwaysRequired;
@@ -134,6 +138,17 @@ class CardanoRequestHandler {
134
138
  }
135
139
  }
136
140
  }
141
+ signMessage(confirmation) {
142
+ const {
143
+ address,
144
+ payload
145
+ } = confirmation.payload;
146
+ const pair = _uiKeyring.keyring.getPair(address);
147
+ if (pair.isLocked) {
148
+ _uiKeyring.keyring.unlockPair(pair.address);
149
+ }
150
+ return pair.cardano.signMessage(payload, true);
151
+ }
137
152
  signTransactionCardano(confirmation) {
138
153
  // alibaba
139
154
  const transaction = confirmation.payload;
@@ -145,7 +160,34 @@ class CardanoRequestHandler {
145
160
  if (pair.isLocked) {
146
161
  _uiKeyring.keyring.unlockPair(pair.address);
147
162
  }
148
- return pair.cardano.sign(cardanoPayload);
163
+ return pair.cardano.signTransaction(cardanoPayload);
164
+ }
165
+ signDappTransactionCardano(confirmation) {
166
+ var _FixedTransaction$fro;
167
+ // alibaba
168
+ const transaction = confirmation.payload;
169
+ const {
170
+ addressRequireKeyTypes,
171
+ cardanoPayload,
172
+ from
173
+ } = transaction;
174
+ const vkeyWitnessesFinal = _cardanoSerializationLibNodejs.Vkeywitnesses.new();
175
+ const txWitnessSet = (_FixedTransaction$fro = _cardanoSerializationLibNodejs.FixedTransaction.from_hex(cardanoPayload).witness_set()) !== null && _FixedTransaction$fro !== void 0 ? _FixedTransaction$fro : _cardanoSerializationLibNodejs.TransactionWitnessSet.new();
176
+ const pair = _uiKeyring.keyring.getPair(from);
177
+ if (pair.isLocked) {
178
+ _uiKeyring.keyring.unlockPair(pair.address);
179
+ }
180
+ const keyTypes = [...new Set(addressRequireKeyTypes)];
181
+ const vKeyWitnessesHex = pair.cardano.signTransaction(cardanoPayload, {
182
+ needVkeywitness: true,
183
+ keyTypes
184
+ });
185
+ const vKeyWitnesses = _cardanoSerializationLibNodejs.Vkeywitnesses.from_hex(vKeyWitnessesHex);
186
+ for (let i = 0; i < vKeyWitnesses.len(); i++) {
187
+ vkeyWitnessesFinal.add(vKeyWitnesses.get(i));
188
+ }
189
+ txWitnessSet.set_vkeys(vkeyWitnessesFinal);
190
+ return txWitnessSet.to_hex();
149
191
  }
150
192
  resetWallet() {
151
193
  const confirmations = this.confirmationsQueueSubjectCardano.getValue();