@subwallet/extension-base 1.3.35-0 → 1.3.36-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.
@@ -207,6 +207,22 @@ class TransactionService {
207
207
  extrinsicHash: transactionId
208
208
  };
209
209
  }
210
+ fillDutchTransactionDefaultInfo(transaction) {
211
+ const isInternal = !transaction.url;
212
+ const transactionId = (0, _helpers.getTransactionId)(transaction.chainType, transaction.chain, isInternal, (0, _helpers2.isWalletConnectRequest)(transaction.id));
213
+ return {
214
+ ...transaction,
215
+ createdAt: new Date().getTime(),
216
+ updatedAt: new Date().getTime(),
217
+ errors: transaction.errors || [],
218
+ warnings: transaction.warnings || [],
219
+ url: transaction.url || _constants2.EXTENSION_REQUEST_URL,
220
+ status: _KoniTypes.ExtrinsicStatus.QUEUED,
221
+ isInternal,
222
+ id: transactionId,
223
+ extrinsicHash: transactionId
224
+ };
225
+ }
210
226
  async addTransaction(inputTransaction) {
211
227
  const transactions = this.transactions;
212
228
  // Fill transaction default info
@@ -219,6 +235,15 @@ class TransactionService {
219
235
  });
220
236
  return await this.sendTransaction(transaction);
221
237
  }
238
+ addDutchTransaction(inputTransaction) {
239
+ const transactions = this.transactions;
240
+ const transaction = this.fillDutchTransactionDefaultInfo(inputTransaction);
241
+ transactions[transaction.id] = transaction;
242
+ this.transactionSubject.next({
243
+ ...transactions
244
+ });
245
+ return this.sendDutchTransaction(transaction);
246
+ }
222
247
  generateBeforeHandleResponseErrors(errors) {
223
248
  return {
224
249
  errors,
@@ -334,6 +359,62 @@ class TransactionService {
334
359
  'eventsHandler' in validatedTransaction && delete validatedTransaction.eventsHandler;
335
360
  return validatedTransaction;
336
361
  }
362
+ async handleDutchTransaction(transaction) {
363
+ var _transaction$step2;
364
+ const transactionId = (0, _helpers.getTransactionId)(transaction.chainType, transaction.chain, true);
365
+ const validatedTransaction = {
366
+ ...transaction,
367
+ id: transactionId,
368
+ extrinsicHash: '',
369
+ status: undefined,
370
+ errors: transaction.errors || [],
371
+ warnings: transaction.warnings || [],
372
+ processId: (_transaction$step2 = transaction.step) === null || _transaction$step2 === void 0 ? void 0 : _transaction$step2.processId
373
+ };
374
+ const txInput = {
375
+ ...transaction,
376
+ isInternal: true,
377
+ status: _KoniTypes.ExtrinsicStatus.QUEUED,
378
+ id: transactionId,
379
+ extrinsicHash: transactionId,
380
+ createdAt: new Date().getTime(),
381
+ updatedAt: new Date().getTime()
382
+ };
383
+ const emitter = this.addDutchTransaction(txInput);
384
+ await new Promise(resolve => {
385
+ if (transaction.resolveOnDone) {
386
+ emitter.on('success', data => {
387
+ validatedTransaction.id = data.id;
388
+ validatedTransaction.extrinsicHash = data.extrinsicHash;
389
+ resolve();
390
+ });
391
+ } else {
392
+ emitter.on('signed', data => {
393
+ validatedTransaction.id = data.id;
394
+ validatedTransaction.extrinsicHash = data.extrinsicHash;
395
+ resolve();
396
+ });
397
+ }
398
+ emitter.on('error', data => {
399
+ if (data.errors.length > 0) {
400
+ validatedTransaction.errors.push(...data.errors);
401
+ resolve();
402
+ }
403
+ });
404
+ emitter.on('timeout', data => {
405
+ if (transaction.errorOnTimeOut && data.errors.length > 0) {
406
+ validatedTransaction.errors.push(...data.errors);
407
+ resolve();
408
+ }
409
+ });
410
+ });
411
+
412
+ // @ts-ignore
413
+ 'transaction' in validatedTransaction && delete validatedTransaction.transaction;
414
+ 'additionalValidator' in validatedTransaction && delete validatedTransaction.additionalValidator;
415
+ 'eventsHandler' in validatedTransaction && delete validatedTransaction.eventsHandler;
416
+ return validatedTransaction;
417
+ }
337
418
  async sendTransaction(transaction) {
338
419
  // Send Transaction
339
420
  const emitter = await (transaction.chainType === 'substrate' ? this.signAndSendSubstrateTransaction(transaction) : transaction.chainType === 'evm' ? this.signAndSendEvmTransaction(transaction) : transaction.chainType === 'cardano' ? this.signAndSendCardanoTransaction(transaction) : this.signAndSendTonTransaction(transaction));
@@ -381,10 +462,7 @@ class TransactionService {
381
462
  if (step) {
382
463
  const rejectError = data.errors.find(error => {
383
464
  // TODO: REFACTOR ERROR CODE
384
- if ([_types.BasicTxErrorType.UNABLE_TO_SIGN, _types.BasicTxErrorType.USER_REJECT_REQUEST].includes(error.errorType)) {
385
- return true;
386
- }
387
- return false;
465
+ return [_types.BasicTxErrorType.UNABLE_TO_SIGN, _types.BasicTxErrorType.USER_REJECT_REQUEST].includes(error.errorType);
388
466
  });
389
467
 
390
468
  /**
@@ -457,10 +535,7 @@ class TransactionService {
457
535
  if (step) {
458
536
  const rejectError = data.errors.find(error => {
459
537
  // TODO: REFACTOR ERROR CODE
460
- if ([_types.BasicTxErrorType.UNABLE_TO_SIGN, _types.BasicTxErrorType.USER_REJECT_REQUEST].includes(error.errorType)) {
461
- return true;
462
- }
463
- return false;
538
+ return [_types.BasicTxErrorType.UNABLE_TO_SIGN, _types.BasicTxErrorType.USER_REJECT_REQUEST].includes(error.errorType);
464
539
  });
465
540
 
466
541
  /**
@@ -482,6 +557,83 @@ class TransactionService {
482
557
  eventsHandler === null || eventsHandler === void 0 ? void 0 : eventsHandler(emitter);
483
558
  return emitter;
484
559
  }
560
+ sendDutchTransaction(transaction) {
561
+ // Send Transaction
562
+ const emitter = this.signAndSendEvmDutchTransaction(transaction);
563
+ const {
564
+ eventsHandler,
565
+ step
566
+ } = transaction;
567
+ emitter.on('send', data => {
568
+ this.onSend(data);
569
+ if (step) {
570
+ this.updateProcessStepStatus(step, {
571
+ transactionId: transaction.id,
572
+ status: _types.StepStatus.SUBMITTING,
573
+ chain: transaction.chain
574
+ });
575
+ }
576
+ });
577
+ emitter.on('extrinsicHash', data => {
578
+ this.onHasTransactionHash(data);
579
+ if (step) {
580
+ this.updateProcessStepStatus(step, {
581
+ extrinsicHash: data.extrinsicHash,
582
+ status: _types.StepStatus.PROCESSING
583
+ });
584
+ }
585
+ });
586
+ emitter.on('success', data => {
587
+ this.handlePostProcessing(data.id);
588
+ this.onSuccess(data);
589
+ if (step) {
590
+ this.updateProcessStepStatus(step, {
591
+ status: _types.StepStatus.COMPLETE
592
+ });
593
+ }
594
+ });
595
+ emitter.on('error', data => {
596
+ // this.handlePostProcessing(data.id); // might enable this later
597
+ this.onFailed({
598
+ ...data,
599
+ errors: [...data.errors, new _TransactionError.TransactionError(_types.BasicTxErrorType.INTERNAL_ERROR)]
600
+ });
601
+ if (step) {
602
+ const rejectError = data.errors.find(error => {
603
+ // TODO: REFACTOR ERROR CODE
604
+ return [_types.BasicTxErrorType.UNABLE_TO_SIGN, _types.BasicTxErrorType.USER_REJECT_REQUEST].includes(error.errorType);
605
+ });
606
+
607
+ /**
608
+ * Now simple check, first step have step id = 1.
609
+ * Improve to fetch the process from db
610
+ * */
611
+ if (rejectError && step.stepId === 1) {
612
+ this.deleteProcess(step);
613
+ } else {
614
+ this.updateProcessStepStatus(step, {
615
+ status: _types.StepStatus.FAILED
616
+ });
617
+ }
618
+ }
619
+ });
620
+ emitter.on('timeout', data => {
621
+ this.onTimeOut({
622
+ ...data,
623
+ errors: [...data.errors, new _TransactionError.TransactionError(_types.BasicTxErrorType.TIMEOUT)]
624
+ });
625
+ if (step) {
626
+ this.updateProcessStepStatus(step, {
627
+ status: _types.StepStatus.TIMEOUT
628
+ });
629
+ }
630
+ });
631
+
632
+ // Todo: handle any event with transaction.eventsHandler
633
+
634
+ eventsHandler === null || eventsHandler === void 0 ? void 0 : eventsHandler(emitter);
635
+ return emitter;
636
+ }
485
637
  removeTransaction(id) {
486
638
  if (this.transactions[id]) {
487
639
  delete this.transactions[id];
@@ -505,7 +657,7 @@ class TransactionService {
505
657
  return (0, _utils3.getExplorerLink)(chainInfo, transaction.extrinsicHash, 'tx');
506
658
  }
507
659
  transactionToHistories(id, startBlock, nonce, eventLogs) {
508
- var _transaction$step2;
660
+ var _transaction$step3;
509
661
  const transaction = this.getTransaction(id);
510
662
  const extrinsicType = transaction.extrinsicType;
511
663
  const chainInfo = this.state.chainService.getChainInfoByKey(transaction.chain);
@@ -530,7 +682,7 @@ class TransactionService {
530
682
  // Will be added in next step
531
683
  nonce: nonce !== null && nonce !== void 0 ? nonce : 0,
532
684
  startBlock: startBlock || 0,
533
- processId: (_transaction$step2 = transaction.step) === null || _transaction$step2 === void 0 ? void 0 : _transaction$step2.processId
685
+ processId: (_transaction$step3 = transaction.step) === null || _transaction$step3 === void 0 ? void 0 : _transaction$step3.processId
534
686
  };
535
687
  const nativeAsset = (0, _utils2._getChainNativeTokenBasicInfo)(chainInfo);
536
688
  const baseNativeAmount = {
@@ -1369,7 +1521,79 @@ class TransactionService {
1369
1521
  });
1370
1522
  return emitter;
1371
1523
  }
1372
- signAndSendSubstrateTransaction(_ref12) {
1524
+ signAndSendEvmDutchTransaction(_ref12) {
1525
+ let {
1526
+ address,
1527
+ id,
1528
+ isPassConfirmation,
1529
+ step,
1530
+ transaction,
1531
+ url
1532
+ } = _ref12;
1533
+ const emitter = new _eventemitter.default();
1534
+ const eventData = {
1535
+ id,
1536
+ errors: [],
1537
+ warnings: [],
1538
+ extrinsicHash: id,
1539
+ processId: step === null || step === void 0 ? void 0 : step.processId
1540
+ };
1541
+
1542
+ // todo: review this object
1543
+ const evmSignaturePayload = {
1544
+ id: id,
1545
+ type: 'eth_signTypedData_v4',
1546
+ payload: transaction,
1547
+ address: address,
1548
+ hashPayload: '',
1549
+ canSign: true,
1550
+ processId: step === null || step === void 0 ? void 0 : step.processId
1551
+ };
1552
+ this.state.requestService.addConfirmation(id, url || _constants2.EXTENSION_REQUEST_URL, 'submitApiRequest', evmSignaturePayload, {
1553
+ isPassConfirmation
1554
+ }).then(_ref13 => {
1555
+ let {
1556
+ isApproved,
1557
+ payload: signature
1558
+ } = _ref13;
1559
+ if (isApproved) {
1560
+ emitter.emit('signed', eventData);
1561
+ emitter.emit('send', eventData);
1562
+ transaction.submitSwapOrder().then(isSendSuccess => {
1563
+ if (!isSendSuccess) {
1564
+ throw new _EvmProviderError.EvmProviderError(_KoniTypes.EvmProviderErrorType.UNAUTHORIZED, (0, _i18next.t)('Failed to sign'));
1565
+ }
1566
+ this.handleTransactionTimeout(emitter, eventData);
1567
+ transaction.cronCheckTxSuccess().then(order => {
1568
+ if (!order) {
1569
+ eventData.errors.push(new _TransactionError.TransactionError(_types.BasicTxErrorType.SEND_TRANSACTION_FAILED));
1570
+ emitter.emit('error', eventData);
1571
+ } else {
1572
+ eventData.extrinsicHash = order.txHash;
1573
+ emitter.emit('extrinsicHash', eventData);
1574
+ emitter.emit('success', eventData);
1575
+ }
1576
+ }).catch(e => {
1577
+ eventData.errors.push(new _TransactionError.TransactionError(_types.BasicTxErrorType.SEND_TRANSACTION_FAILED, (0, _i18next.t)(e.message)));
1578
+ emitter.emit('error', eventData);
1579
+ });
1580
+ }).catch(e => {
1581
+ eventData.errors.push(new _TransactionError.TransactionError(_types.BasicTxErrorType.UNABLE_TO_SEND, (0, _i18next.t)(e.message)));
1582
+ emitter.emit('error', eventData);
1583
+ });
1584
+ } else {
1585
+ this.removeTransaction(id);
1586
+ eventData.errors.push(new _TransactionError.TransactionError(_types.BasicTxErrorType.USER_REJECT_REQUEST));
1587
+ emitter.emit('error', eventData);
1588
+ }
1589
+ }).catch(e => {
1590
+ this.removeTransaction(id);
1591
+ eventData.errors.push(new _TransactionError.TransactionError(_types.BasicTxErrorType.UNABLE_TO_SIGN, (0, _i18next.t)(e.message)));
1592
+ emitter.emit('error', eventData);
1593
+ });
1594
+ return emitter;
1595
+ }
1596
+ signAndSendSubstrateTransaction(_ref14) {
1373
1597
  var _this$state$chainServ;
1374
1598
  let {
1375
1599
  address,
@@ -1381,7 +1605,7 @@ class TransactionService {
1381
1605
  tokenPayFeeSlug,
1382
1606
  transaction,
1383
1607
  url
1384
- } = _ref12;
1608
+ } = _ref14;
1385
1609
  const tip = (feeCustom === null || feeCustom === void 0 ? void 0 : feeCustom.tip) || '0';
1386
1610
  const feeAssetId = tokenPayFeeSlug && !(0, _utils2._isNativeTokenBySlug)(tokenPayFeeSlug) && _constants._SUPPORT_TOKEN_PAY_FEE_GROUP.assetHub.includes(chain) ? (_this$state$chainServ = this.state.chainService.getAssetBySlug(tokenPayFeeSlug).metadata) === null || _this$state$chainServ === void 0 ? void 0 : _this$state$chainServ.multilocation : undefined;
1387
1611
  const emitter = new _eventemitter.default();
@@ -1470,20 +1694,20 @@ class TransactionService {
1470
1694
  if (!eventData.extrinsicHash) {
1471
1695
  eventData.extrinsicHash = txState.txHash.toHex();
1472
1696
  }
1473
- txState.events.filter(_ref13 => {
1697
+ txState.events.filter(_ref15 => {
1474
1698
  let {
1475
1699
  event: {
1476
1700
  section
1477
1701
  }
1478
- } = _ref13;
1702
+ } = _ref15;
1479
1703
  return section === 'system';
1480
- }).forEach(_ref14 => {
1704
+ }).forEach(_ref16 => {
1481
1705
  let {
1482
1706
  event: {
1483
1707
  data: [error],
1484
1708
  method
1485
1709
  }
1486
- } = _ref14;
1710
+ } = _ref16;
1487
1711
  if (method === 'ExtrinsicFailed') {
1488
1712
  eventData.errors.push(new _TransactionError.TransactionError(_types.BasicTxErrorType.SEND_TRANSACTION_FAILED, error.toString()));
1489
1713
  emitter.emit('error', eventData);
@@ -1506,7 +1730,7 @@ class TransactionService {
1506
1730
  });
1507
1731
  return emitter;
1508
1732
  }
1509
- signAndSendTonTransaction(_ref15) {
1733
+ signAndSendTonTransaction(_ref17) {
1510
1734
  let {
1511
1735
  address,
1512
1736
  chain,
@@ -1515,7 +1739,7 @@ class TransactionService {
1515
1739
  step,
1516
1740
  transaction,
1517
1741
  url
1518
- } = _ref15;
1742
+ } = _ref17;
1519
1743
  const walletContract = _uiKeyring.default.getPair(address).ton.currentContract;
1520
1744
  const emitter = new _eventemitter.default();
1521
1745
  const eventData = {
@@ -1532,11 +1756,11 @@ class TransactionService {
1532
1756
  ...payload,
1533
1757
  messagePayload: (0, _utils.cellToBase64Str)(message),
1534
1758
  messages: []
1535
- }, {}).then(_ref16 => {
1759
+ }, {}).then(_ref18 => {
1536
1760
  let {
1537
1761
  isApproved,
1538
1762
  payload
1539
- } = _ref16;
1763
+ } = _ref18;
1540
1764
  if (!isApproved) {
1541
1765
  this.removeTransaction(id);
1542
1766
  eventData.errors.push(new _TransactionError.TransactionError(_types.BasicTxErrorType.USER_REJECT_REQUEST));
@@ -1571,8 +1795,8 @@ class TransactionService {
1571
1795
  if (!externalMsgHash) {
1572
1796
  return;
1573
1797
  }
1574
- tonApi.getStatusByExtMsgHash(externalMsgHash, extrinsicType).then(_ref17 => {
1575
- let [status, hex] = _ref17;
1798
+ tonApi.getStatusByExtMsgHash(externalMsgHash, extrinsicType).then(_ref19 => {
1799
+ let [status, hex] = _ref19;
1576
1800
  if (status && hex) {
1577
1801
  eventData.extrinsicHash = hex;
1578
1802
  emitter.emit('extrinsicHash', eventData);
@@ -1601,13 +1825,13 @@ class TransactionService {
1601
1825
  });
1602
1826
  return emitter;
1603
1827
  }
1604
- signAndSendCardanoTransaction(_ref18) {
1828
+ signAndSendCardanoTransaction(_ref20) {
1605
1829
  let {
1606
1830
  chain,
1607
1831
  id,
1608
1832
  transaction,
1609
1833
  url
1610
- } = _ref18;
1834
+ } = _ref20;
1611
1835
  const emitter = new _eventemitter.default();
1612
1836
  const eventData = {
1613
1837
  id,
@@ -1617,11 +1841,11 @@ class TransactionService {
1617
1841
  };
1618
1842
  const transactionConfig = transaction;
1619
1843
  const cardanoApi = this.state.chainService.getCardanoApi(chain);
1620
- this.state.requestService.addConfirmationCardano(id, url || _constants2.EXTENSION_REQUEST_URL, 'cardanoSendTransactionRequest', transactionConfig, {}).then(_ref19 => {
1844
+ this.state.requestService.addConfirmationCardano(id, url || _constants2.EXTENSION_REQUEST_URL, 'cardanoSendTransactionRequest', transactionConfig, {}).then(_ref21 => {
1621
1845
  let {
1622
1846
  isApproved,
1623
1847
  payload
1624
- } = _ref19;
1848
+ } = _ref21;
1625
1849
  if (!isApproved) {
1626
1850
  this.removeTransaction(id);
1627
1851
  eventData.errors.push(new _TransactionError.TransactionError(_types.BasicTxErrorType.USER_REJECT_REQUEST));
@@ -1812,9 +2036,9 @@ class TransactionService {
1812
2036
  }
1813
2037
  }
1814
2038
  async createProcessNotification(transactionId) {
1815
- var _transaction$step3;
2039
+ var _transaction$step4;
1816
2040
  const transaction = this.getTransaction(transactionId);
1817
- if (transaction && (_transaction$step3 = transaction.step) !== null && _transaction$step3 !== void 0 && _transaction$step3.processId) {
2041
+ if (transaction && (_transaction$step4 = transaction.step) !== null && _transaction$step4 !== void 0 && _transaction$step4.processId) {
1818
2042
  const process = this.aliveProcessMap.get(transaction.step.processId);
1819
2043
  if (process) {
1820
2044
  await this.state.inappNotificationService.createProcessNotification(process);
@@ -42,13 +42,14 @@ exports.SwapProviderId = SwapProviderId;
42
42
  SwapProviderId["WESTEND_ASSET_HUB"] = "WESTEND_ASSET_HUB";
43
43
  SwapProviderId["SIMPLE_SWAP"] = "SIMPLE_SWAP";
44
44
  SwapProviderId["UNISWAP"] = "UNISWAP";
45
+ SwapProviderId["KYBER"] = "KYBER";
45
46
  })(SwapProviderId || (exports.SwapProviderId = SwapProviderId = {}));
46
47
  const _SUPPORTED_SWAP_PROVIDERS = [SwapProviderId.CHAIN_FLIP_TESTNET, SwapProviderId.CHAIN_FLIP_MAINNET, SwapProviderId.HYDRADX_MAINNET,
47
48
  // SwapProviderId.HYDRADX_TESTNET,
48
49
  SwapProviderId.POLKADOT_ASSET_HUB, SwapProviderId.KUSAMA_ASSET_HUB,
49
50
  // SwapProviderId.ROCOCO_ASSET_HUB,
50
51
  // SwapProviderId.WESTEND_ASSET_HUB,
51
- SwapProviderId.SIMPLE_SWAP, SwapProviderId.UNISWAP];
52
+ SwapProviderId.SIMPLE_SWAP, SwapProviderId.UNISWAP, SwapProviderId.KYBER];
52
53
  exports._SUPPORTED_SWAP_PROVIDERS = _SUPPORTED_SWAP_PROVIDERS;
53
54
  // process handling
54
55
  let SwapFeeType;
@@ -2720,6 +2720,7 @@ export default class KoniExtension {
2720
2720
  getTransaction({
2721
2721
  id
2722
2722
  }) {
2723
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
2723
2724
  const {
2724
2725
  transaction,
2725
2726
  ...transactionResult
@@ -2730,6 +2731,7 @@ export default class KoniExtension {
2730
2731
  const cb = createSubscription(id, port);
2731
2732
  function convertRs(rs, processMap) {
2732
2733
  return Object.fromEntries(Object.entries(rs).map(([key, value]) => {
2734
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
2733
2735
  const {
2734
2736
  additionalValidator,
2735
2737
  eventsHandler,
@@ -3767,6 +3769,7 @@ export default class KoniExtension {
3767
3769
  chainType,
3768
3770
  extrinsic,
3769
3771
  extrinsicType,
3772
+ isDutch,
3770
3773
  isPermit,
3771
3774
  transferNativeAmount,
3772
3775
  txChain,
@@ -3823,6 +3826,24 @@ export default class KoniExtension {
3823
3826
  step
3824
3827
  });
3825
3828
  }
3829
+ if (isDutch) {
3830
+ return await this.#koniState.transactionService.handleDutchTransaction({
3831
+ address,
3832
+ chain: txChain,
3833
+ transaction: extrinsic,
3834
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
3835
+ data: txData,
3836
+ extrinsicType,
3837
+ // change this depends on step
3838
+ chainType,
3839
+ resolveOnDone: !isLastStep,
3840
+ transferNativeAmount,
3841
+ ...this.createPassConfirmationParams(isPassConfirmation),
3842
+ errorOnTimeOut,
3843
+ eventsHandler,
3844
+ step
3845
+ });
3846
+ }
3826
3847
  return await this.#koniState.transactionService.handleTransaction({
3827
3848
  address,
3828
3849
  chain: txChain,
package/package.json CHANGED
@@ -17,7 +17,7 @@
17
17
  "./cjs/detectPackage.js"
18
18
  ],
19
19
  "type": "module",
20
- "version": "1.3.35-0",
20
+ "version": "1.3.36-0",
21
21
  "main": "./cjs/index.js",
22
22
  "module": "./index.js",
23
23
  "types": "./index.d.ts",
@@ -1911,6 +1911,11 @@
1911
1911
  "require": "./cjs/services/swap-service/handler/hydradx-handler.js",
1912
1912
  "default": "./services/swap-service/handler/hydradx-handler.js"
1913
1913
  },
1914
+ "./services/swap-service/handler/kyber-handler": {
1915
+ "types": "./services/swap-service/handler/kyber-handler.d.ts",
1916
+ "require": "./cjs/services/swap-service/handler/kyber-handler.js",
1917
+ "default": "./services/swap-service/handler/kyber-handler.js"
1918
+ },
1914
1919
  "./services/swap-service/handler/simpleswap-handler": {
1915
1920
  "types": "./services/swap-service/handler/simpleswap-handler.d.ts",
1916
1921
  "require": "./cjs/services/swap-service/handler/simpleswap-handler.js",
@@ -2705,12 +2710,12 @@
2705
2710
  "@sora-substrate/type-definitions": "^1.17.7",
2706
2711
  "@substrate/connect": "^0.8.9",
2707
2712
  "@subwallet/chain-list": "0.2.104",
2708
- "@subwallet/extension-base": "^1.3.35-0",
2709
- "@subwallet/extension-chains": "^1.3.35-0",
2710
- "@subwallet/extension-dapp": "^1.3.35-0",
2711
- "@subwallet/extension-inject": "^1.3.35-0",
2713
+ "@subwallet/extension-base": "^1.3.36-0",
2714
+ "@subwallet/extension-chains": "^1.3.36-0",
2715
+ "@subwallet/extension-dapp": "^1.3.36-0",
2716
+ "@subwallet/extension-inject": "^1.3.36-0",
2712
2717
  "@subwallet/keyring": "^0.1.11",
2713
- "@subwallet/subwallet-api-sdk": "^1.3.35-0",
2718
+ "@subwallet/subwallet-api-sdk": "^1.3.36-0",
2714
2719
  "@subwallet/ui-keyring": "^0.1.11",
2715
2720
  "@ton/core": "^0.56.3",
2716
2721
  "@ton/crypto": "^3.2.0",
package/packageInfo.js CHANGED
@@ -7,5 +7,5 @@ export const packageInfo = {
7
7
  name: '@subwallet/extension-base',
8
8
  path: (import.meta && import.meta.url) ? new URL(import.meta.url).pathname.substring(0, new URL(import.meta.url).pathname.lastIndexOf('/') + 1) : 'auto',
9
9
  type: 'esm',
10
- version: '1.3.35-0'
10
+ version: '1.3.36-0'
11
11
  };
@@ -1,4 +1,4 @@
1
- import { SWTransaction } from '@subwallet/extension-base/services/transaction-service/types';
1
+ import { SWTransactionBase } from '@subwallet/extension-base/services/transaction-service/types';
2
2
  import { CurrentAccountInfo } from '@subwallet/extension-base/types';
3
3
  export interface EventRegistry {
4
4
  'general.sleep': [boolean];
@@ -27,13 +27,13 @@ export interface EventRegistry {
27
27
  'asset.ready': [boolean];
28
28
  'asset.online.ready': [boolean];
29
29
  'asset.updateState': [string];
30
- 'transaction.done': [SWTransaction];
31
- 'transaction.failed': [SWTransaction | undefined];
32
- 'transaction.timeout': [SWTransaction | undefined];
30
+ 'transaction.done': [SWTransactionBase];
31
+ 'transaction.failed': [SWTransactionBase | undefined];
32
+ 'transaction.timeout': [SWTransactionBase | undefined];
33
33
  'transaction.submitStaking': [string];
34
- 'transaction.transferNft': [SWTransaction | undefined];
34
+ 'transaction.transferNft': [SWTransactionBase | undefined];
35
35
  'mantaPay.initSync': [string | undefined];
36
- 'mantaPay.submitTransaction': [SWTransaction | undefined];
36
+ 'mantaPay.submitTransaction': [SWTransactionBase | undefined];
37
37
  'mantaPay.enable': [string];
38
38
  'migration.done': [boolean];
39
39
  'campaign.ready': [boolean];
@@ -22,7 +22,8 @@ export default class EvmRequestHandler {
22
22
  evmSignatureRequest: {},
23
23
  evmSendTransactionRequest: {},
24
24
  evmWatchTransactionRequest: {},
25
- errorConnectNetwork: {}
25
+ errorConnectNetwork: {},
26
+ submitApiRequest: {}
26
27
  });
27
28
  confirmationsPromiseMap = {};
28
29
  constructor(requestService) {
@@ -214,6 +215,8 @@ export default class EvmRequestHandler {
214
215
  result.payload = await this.signMessage(request);
215
216
  } else if (t === 'evmSendTransactionRequest') {
216
217
  result.payload = await this.signTransaction(request);
218
+ } else if (t === 'submitApiRequest') {
219
+ return;
217
220
  }
218
221
  if (t === 'evmSignatureRequest' || t === 'evmSendTransactionRequest') {
219
222
  const isAlwaysRequired = await this.#requestService.settingService.isAlwaysRequired;
@@ -0,0 +1,28 @@
1
+ import { TransactionError } from '@subwallet/extension-base/background/errors/TransactionError';
2
+ import { BaseStepDetail, CommonOptimalSwapPath, CommonStepFeeInfo, OptimalSwapPathParamsV2, SwapProviderId, SwapSubmitParams, SwapSubmitStepData, ValidateSwapProcessParams } from '@subwallet/extension-base/types';
3
+ import { BalanceService } from '../../balance-service';
4
+ import { ChainService } from '../../chain-service';
5
+ import FeeService from '../../fee-service/service';
6
+ import TransactionService from '../../transaction-service';
7
+ import { SwapBaseInterface } from './base-handler';
8
+ export interface KyberSwapQuoteMetadata {
9
+ priceImpact?: string;
10
+ }
11
+ export declare const KYBER_CLIENT_ID: string;
12
+ export declare class KyberHandler implements SwapBaseInterface {
13
+ private swapBaseHandler;
14
+ transactionService: TransactionService;
15
+ providerSlug: SwapProviderId;
16
+ constructor(chainService: ChainService, balanceService: BalanceService, transactionService: TransactionService, feeService: FeeService);
17
+ get chainService(): ChainService;
18
+ get balanceService(): BalanceService;
19
+ get feeService(): FeeService;
20
+ get providerInfo(): import("@subwallet/extension-base/types").SwapProvider;
21
+ generateOptimalProcessV2(params: OptimalSwapPathParamsV2): Promise<CommonOptimalSwapPath>;
22
+ getApprovalStep(params: OptimalSwapPathParamsV2): Promise<[BaseStepDetail, CommonStepFeeInfo] | undefined>;
23
+ getSubmitStep(params: OptimalSwapPathParamsV2, stepIndex: number): Promise<[BaseStepDetail, CommonStepFeeInfo] | undefined>;
24
+ handleSwapProcess(params: SwapSubmitParams): Promise<SwapSubmitStepData>;
25
+ private tokenApproveSpending;
26
+ handleSubmitStep(params: SwapSubmitParams): Promise<SwapSubmitStepData>;
27
+ validateSwapProcessV2(params: ValidateSwapProcessParams): Promise<TransactionError[]>;
28
+ }