@subwallet/extension-base 1.3.31-1 → 1.3.32-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 (127) hide show
  1. package/background/KoniTypes.d.ts +70 -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/index.js +4 -1
  9. package/cjs/core/logic-validation/request.js +50 -3
  10. package/cjs/koni/api/contract-handler/evm/web3.js +21 -0
  11. package/cjs/koni/api/staking/bonding/utils.js +24 -3
  12. package/cjs/koni/background/handlers/Extension.js +115 -107
  13. package/cjs/koni/background/handlers/State.js +228 -5
  14. package/cjs/koni/background/handlers/Tabs.js +277 -55
  15. package/cjs/packageInfo.js +1 -1
  16. package/cjs/page/cardano/cips/cip30.js +63 -0
  17. package/cjs/page/cardano/cips/index.js +20 -0
  18. package/cjs/page/cardano/index.js +41 -0
  19. package/cjs/page/{SubWalleEvmProvider.js → evm/index.js} +2 -2
  20. package/cjs/page/index.js +9 -4
  21. package/cjs/services/balance-service/transfer/xcm/acrossBridge/index.js +6 -2
  22. package/cjs/services/balance-service/transfer/xcm/index.js +2 -0
  23. package/cjs/services/chain-service/handler/CardanoApi.js +33 -0
  24. package/cjs/services/chain-service/index.js +31 -0
  25. package/cjs/services/chain-service/utils/patch.js +1 -1
  26. package/cjs/services/earning-service/handlers/liquid-staking/stella-swap.js +3 -3
  27. package/cjs/services/earning-service/handlers/native-staking/dtao.js +2 -2
  28. package/cjs/services/earning-service/handlers/native-staking/mythos.js +42 -8
  29. package/cjs/services/earning-service/handlers/native-staking/relay-chain.js +1 -1
  30. package/cjs/services/earning-service/handlers/native-staking/tao.js +13 -13
  31. package/cjs/services/earning-service/handlers/nomination-pool/index.js +1 -1
  32. package/cjs/services/migration-service/scripts/MigrateAuthUrls.js +1 -1
  33. package/cjs/services/request-service/constants.js +3 -1
  34. package/cjs/services/request-service/handler/AuthRequestHandler.js +38 -5
  35. package/cjs/services/request-service/handler/CardanoRequestHandler.js +45 -3
  36. package/cjs/services/request-service/helper/index.js +419 -1
  37. package/cjs/services/swap-service/handler/asset-hub/handler.js +1 -1
  38. package/cjs/services/swap-service/handler/base-handler.js +81 -21
  39. package/cjs/services/swap-service/handler/hydradx-handler.js +1 -1
  40. package/cjs/services/swap-service/handler/uniswap-handler.js +274 -45
  41. package/cjs/services/swap-service/index.js +33 -11
  42. package/cjs/services/swap-service/utils.js +15 -2
  43. package/cjs/utils/auth.js +2 -1
  44. package/cjs/utils/cardano.js +20 -0
  45. package/cjs/utils/index.js +4 -4
  46. package/constants/index.d.ts +1 -0
  47. package/constants/index.js +1 -0
  48. package/core/logic-validation/request.d.ts +6 -2
  49. package/core/logic-validation/request.js +51 -5
  50. package/koni/api/contract-handler/evm/web3.d.ts +2 -0
  51. package/koni/api/contract-handler/evm/web3.js +19 -0
  52. package/koni/api/staking/bonding/utils.d.ts +2 -1
  53. package/koni/api/staking/bonding/utils.js +23 -3
  54. package/koni/background/handlers/Extension.js +7 -2
  55. package/koni/background/handlers/State.d.ts +6 -1
  56. package/koni/background/handlers/State.js +223 -4
  57. package/koni/background/handlers/Tabs.d.ts +11 -1
  58. package/koni/background/handlers/Tabs.js +242 -19
  59. package/package.json +62 -42
  60. package/packageInfo.js +1 -1
  61. package/page/cardano/cips/cip30.d.ts +22 -0
  62. package/page/cardano/cips/cip30.js +55 -0
  63. package/page/cardano/cips/index.d.ts +3 -0
  64. package/page/cardano/cips/index.js +7 -0
  65. package/page/cardano/index.d.ts +13 -0
  66. package/page/cardano/index.js +34 -0
  67. package/page/{SubWalleEvmProvider.d.ts → evm/index.d.ts} +3 -2
  68. package/page/{SubWalleEvmProvider.js → evm/index.js} +1 -1
  69. package/page/index.d.ts +3 -2
  70. package/page/index.js +6 -2
  71. package/page/{Accounts.d.ts → substrate/Accounts.d.ts} +1 -1
  72. package/page/{Metadata.d.ts → substrate/Metadata.d.ts} +1 -1
  73. package/page/{PostMessageProvider.d.ts → substrate/PostMessageProvider.d.ts} +1 -1
  74. package/page/{Signer.d.ts → substrate/Signer.d.ts} +1 -1
  75. package/page/{Injected.d.ts → substrate/index.d.ts} +1 -1
  76. package/services/balance-service/helpers/subscribe/cardano/types.d.ts +14 -0
  77. package/services/balance-service/transfer/xcm/acrossBridge/index.d.ts +4 -0
  78. package/services/balance-service/transfer/xcm/acrossBridge/index.js +4 -1
  79. package/services/balance-service/transfer/xcm/index.js +2 -0
  80. package/services/chain-service/handler/CardanoApi.d.ts +3 -1
  81. package/services/chain-service/handler/CardanoApi.js +33 -0
  82. package/services/chain-service/index.d.ts +5 -1
  83. package/services/chain-service/index.js +32 -1
  84. package/services/chain-service/utils/patch.js +1 -1
  85. package/services/earning-service/handlers/liquid-staking/stella-swap.js +3 -3
  86. package/services/earning-service/handlers/native-staking/dtao.js +2 -2
  87. package/services/earning-service/handlers/native-staking/mythos.js +42 -8
  88. package/services/earning-service/handlers/native-staking/relay-chain.js +1 -1
  89. package/services/earning-service/handlers/native-staking/tao.js +14 -14
  90. package/services/earning-service/handlers/nomination-pool/index.js +1 -1
  91. package/services/migration-service/scripts/MigrateAuthUrls.js +1 -1
  92. package/services/request-service/constants.js +3 -1
  93. package/services/request-service/handler/AuthRequestHandler.js +40 -7
  94. package/services/request-service/handler/CardanoRequestHandler.d.ts +2 -0
  95. package/services/request-service/handler/CardanoRequestHandler.js +45 -3
  96. package/services/request-service/helper/index.d.ts +54 -0
  97. package/services/request-service/helper/index.js +406 -1
  98. package/services/request-service/types.d.ts +3 -1
  99. package/services/swap-service/handler/asset-hub/handler.js +1 -1
  100. package/services/swap-service/handler/base-handler.d.ts +3 -1
  101. package/services/swap-service/handler/base-handler.js +82 -22
  102. package/services/swap-service/handler/hydradx-handler.js +1 -1
  103. package/services/swap-service/handler/uniswap-handler.d.ts +5 -0
  104. package/services/swap-service/handler/uniswap-handler.js +275 -46
  105. package/services/swap-service/index.js +34 -12
  106. package/services/swap-service/utils.d.ts +3 -2
  107. package/services/swap-service/utils.js +13 -1
  108. package/types/swap/index.d.ts +1 -0
  109. package/types/transaction/process.d.ts +2 -0
  110. package/utils/auth.js +3 -2
  111. package/utils/cardano.d.ts +2 -0
  112. package/utils/cardano.js +12 -0
  113. package/utils/index.d.ts +1 -1
  114. package/utils/index.js +1 -1
  115. package/cjs/utils/canDerive.js +0 -12
  116. package/utils/canDerive.d.ts +0 -2
  117. package/utils/canDerive.js +0 -6
  118. /package/cjs/page/{Accounts.js → substrate/Accounts.js} +0 -0
  119. /package/cjs/page/{Metadata.js → substrate/Metadata.js} +0 -0
  120. /package/cjs/page/{PostMessageProvider.js → substrate/PostMessageProvider.js} +0 -0
  121. /package/cjs/page/{Signer.js → substrate/Signer.js} +0 -0
  122. /package/cjs/page/{Injected.js → substrate/index.js} +0 -0
  123. /package/page/{Accounts.js → substrate/Accounts.js} +0 -0
  124. /package/page/{Metadata.js → substrate/Metadata.js} +0 -0
  125. /package/page/{PostMessageProvider.js → substrate/PostMessageProvider.js} +0 -0
  126. /package/page/{Signer.js → substrate/Signer.js} +0 -0
  127. /package/page/{Injected.js → substrate/index.js} +0 -0
@@ -5,6 +5,8 @@ Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
7
  exports.default = void 0;
8
+ var CardanoWasm = _interopRequireWildcard(require("@emurgo/cardano-serialization-lib-nodejs"));
9
+ var _CardanoProviderError = require("@subwallet/extension-base/background/errors/CardanoProviderError");
8
10
  var _EvmProviderError = require("@subwallet/extension-base/background/errors/EvmProviderError");
9
11
  var _helpers = require("@subwallet/extension-base/background/handlers/helpers");
10
12
  var _subscriptions = require("@subwallet/extension-base/background/handlers/subscriptions");
@@ -33,6 +35,7 @@ var _NotificationService = _interopRequireDefault(require("@subwallet/extension-
33
35
  var _priceService = require("@subwallet/extension-base/services/price-service");
34
36
  var _requestService = _interopRequireDefault(require("@subwallet/extension-base/services/request-service"));
35
37
  var _PopupHandler = require("@subwallet/extension-base/services/request-service/handler/PopupHandler");
38
+ var _helper = require("@subwallet/extension-base/services/request-service/helper");
36
39
  var _SettingService = _interopRequireDefault(require("@subwallet/extension-base/services/setting-service/SettingService"));
37
40
  var _DatabaseService = _interopRequireDefault(require("@subwallet/extension-base/services/storage-service/DatabaseService"));
38
41
  var _subscanService = require("@subwallet/extension-base/services/subscan-service");
@@ -42,6 +45,7 @@ var _walletConnectService = _interopRequireDefault(require("@subwallet/extension
42
45
  var _storage = require("@subwallet/extension-base/storage");
43
46
  var _types2 = require("@subwallet/extension-base/types");
44
47
  var _utils3 = require("@subwallet/extension-base/utils");
48
+ var _cardano = require("@subwallet/extension-base/utils/cardano");
45
49
  var _promise = require("@subwallet/extension-base/utils/promise");
46
50
  var _subwalletApiSdk = _interopRequireDefault(require("@subwallet/subwallet-api-sdk"));
47
51
  var _uiKeyring = require("@subwallet/ui-keyring");
@@ -52,6 +56,8 @@ var _util = require("@polkadot/util");
52
56
  var _utilCrypto = require("@polkadot/util-crypto");
53
57
  var _cron = require("../cron");
54
58
  var _subscription = require("../subscription");
59
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
60
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
55
61
  // Copyright 2019-2022 @subwallet/extension-koni authors & contributors
56
62
  // SPDX-License-Identifier: Apache-2.0
57
63
 
@@ -440,7 +446,7 @@ class KoniState {
440
446
  if (chainInfo && !(0, _utils._isChainEnabled)(chainState)) {
441
447
  await this.enableChainWithPriorityAssets(networkKey);
442
448
  }
443
- authUrls[shortenUrl].currentEvmNetworkKey = networkKey;
449
+ authUrls[shortenUrl].currentNetworkMap.evm = networkKey;
444
450
  this.setAuthorize(authUrls);
445
451
  } else {
446
452
  throw new _EvmProviderError.EvmProviderError(_KoniTypes.EvmProviderErrorType.INTERNAL_ERROR, (0, _i18next.t)('Not found {{shortenUrl}} in auth list', {
@@ -895,6 +901,7 @@ class KoniState {
895
901
  }
896
902
  const payloadValidation = {
897
903
  address,
904
+ type: 'evm',
898
905
  payloadAfterValidated: payload,
899
906
  method,
900
907
  errors: [],
@@ -950,6 +957,7 @@ class KoniState {
950
957
  async evmSendTransaction(id, url, transactionParams, networkKeyInit, topic) {
951
958
  const payloadValidation = {
952
959
  errors: [],
960
+ type: 'evm',
953
961
  networkKey: networkKeyInit || '',
954
962
  payloadAfterValidated: transactionParams,
955
963
  address: transactionParams.from
@@ -1027,6 +1035,221 @@ class KoniState {
1027
1035
  });
1028
1036
  });
1029
1037
  }
1038
+ async cardanoGetBalance(id, url, address) {
1039
+ const authInfoMap = await this.getAuthList();
1040
+ const authInfo = authInfoMap[(0, _utils3.stripUrl)(url)];
1041
+ let networkKey = authInfo === null || authInfo === void 0 ? void 0 : authInfo.currentNetworkMap.cardano;
1042
+ const autoActiveChain = (authInfo === null || authInfo === void 0 ? void 0 : authInfo.isAllowed) || false;
1043
+ const chainInfo = this.requestService.getDAppChainInfo({
1044
+ autoActive: autoActiveChain,
1045
+ accessType: 'cardano',
1046
+ defaultChain: networkKey,
1047
+ url
1048
+ });
1049
+ networkKey = (chainInfo === null || chainInfo === void 0 ? void 0 : chainInfo.slug) || 'cardano';
1050
+ const cardanoApi = this.chainService.getCardanoApi(networkKey);
1051
+ const networkAddress = (0, _utils3.reformatAddress)(address, chainInfo !== null && chainInfo !== void 0 && chainInfo.isTestnet ? 0 : 1);
1052
+ const balances = await cardanoApi.getBalanceMap(networkAddress);
1053
+ return (0, _helper.convertAssetToValue)(balances);
1054
+ }
1055
+ async cardanoSignData(id, url, params, currentAddress) {
1056
+ const {
1057
+ address: addressHex,
1058
+ payload
1059
+ } = params;
1060
+ const address = (0, _cardano.convertCardanoHexToBech32)(addressHex);
1061
+ const payloadValidation = {
1062
+ address,
1063
+ type: 'cardano',
1064
+ payloadAfterValidated: payload,
1065
+ errors: [],
1066
+ networkKey: ''
1067
+ };
1068
+ const validationSteps = [_logicValidation.validationAuthMiddleware, _logicValidation.validationCardanoSignDataMiddleware];
1069
+ const result = await (0, _logicValidation.generateValidationProcess)(this, url, payloadValidation, validationSteps);
1070
+ if (!(0, _utils3.isSameAddress)(address, currentAddress)) {
1071
+ throw new _CardanoProviderError.CardanoProviderError(_KoniTypes.CardanoProviderErrorType.ACCOUNT_CHANGED);
1072
+ }
1073
+ const errorsFormated = (0, _logicValidation.convertErrorFormat)(result.errors);
1074
+ const payloadAfterValidated = {
1075
+ ...result.payloadAfterValidated,
1076
+ errors: errorsFormated,
1077
+ id
1078
+ };
1079
+ return this.requestService.addConfirmationCardano(id, url, 'cardanoSignatureRequest', payloadAfterValidated, {}).then(_ref7 => {
1080
+ let {
1081
+ isApproved,
1082
+ payload
1083
+ } = _ref7;
1084
+ if (isApproved) {
1085
+ if (payload) {
1086
+ return payload;
1087
+ } else {
1088
+ throw new _CardanoProviderError.CardanoProviderError(_KoniTypes.CardanoProviderErrorType.INVALID_REQUEST, (0, _i18next.t)('Not found signature'));
1089
+ }
1090
+ } else {
1091
+ throw new _CardanoProviderError.CardanoProviderError(_KoniTypes.CardanoProviderErrorType.SIGN_DATA_DECLINED);
1092
+ }
1093
+ });
1094
+ }
1095
+
1096
+ // Todo: Add validate for this method
1097
+ async cardanoSignTx(id, url, param, currentAddress) {
1098
+ const {
1099
+ partialSign,
1100
+ tx: txHex
1101
+ } = param;
1102
+ const tx = CardanoWasm.Transaction.from_hex(txHex);
1103
+ const inputs = tx.body().inputs();
1104
+ const outputs = tx.body().outputs();
1105
+ const estimateCardanoFee = tx.body().fee().to_str();
1106
+ const authInfoMap = await this.getAuthList();
1107
+ const authInfo = authInfoMap[(0, _utils3.stripUrl)(url)];
1108
+ if (!authInfo) {
1109
+ throw new _CardanoProviderError.CardanoProviderError(_KoniTypes.CardanoProviderErrorType.REFUSED_REQUEST, (0, _i18next.t)('Not found auth info'));
1110
+ }
1111
+ let requireKeyHashes = [];
1112
+ let networkKey = authInfo === null || authInfo === void 0 ? void 0 : authInfo.currentNetworkMap.cardano;
1113
+ let autoActiveChain = false;
1114
+ if (authInfo !== null && authInfo !== void 0 && authInfo.isAllowed) {
1115
+ autoActiveChain = true;
1116
+ }
1117
+ const currentEvmNetwork = this.requestService.getDAppChainInfo({
1118
+ autoActive: autoActiveChain,
1119
+ accessType: 'cardano',
1120
+ defaultChain: networkKey,
1121
+ url
1122
+ });
1123
+ networkKey = (currentEvmNetwork === null || currentEvmNetwork === void 0 ? void 0 : currentEvmNetwork.slug) || 'cardano';
1124
+ const allUtxos = await this.chainService.getUtxosByAddress(currentAddress, networkKey);
1125
+ const outputTransactionUnSpend = CardanoWasm.TransactionOutputs.new();
1126
+ inputs.to_js_value().forEach(input => {
1127
+ const availableUtxo = allUtxos.find(utxo => {
1128
+ const txIn = utxo.input();
1129
+ return txIn.transaction_id().to_hex() === input.transaction_id && txIn.index() === input.index;
1130
+ });
1131
+ if (availableUtxo) {
1132
+ var _availableUtxo$output, _availableUtxo$output2;
1133
+ const keyHash = (_availableUtxo$output = availableUtxo.output().address().payment_cred()) === null || _availableUtxo$output === void 0 ? void 0 : (_availableUtxo$output2 = _availableUtxo$output.to_keyhash()) === null || _availableUtxo$output2 === void 0 ? void 0 : _availableUtxo$output2.to_hex();
1134
+ if (keyHash) {
1135
+ requireKeyHashes.push(keyHash);
1136
+ }
1137
+ outputTransactionUnSpend.add(availableUtxo.output());
1138
+ }
1139
+ });
1140
+ const addressInputMap = (0, _helper.getBalanceAddressMap)(outputTransactionUnSpend);
1141
+ const addressOutputMap = (0, _helper.getBalanceAddressMap)(outputs);
1142
+ const addressInputAmountMap = {};
1143
+ const addressOutputAmountMap = {};
1144
+ let transactionValue = CardanoWasm.Value.new(CardanoWasm.BigNum.from_str('0'));
1145
+ for (const address in addressInputMap) {
1146
+ var _addressOutputMap$add;
1147
+ const output = (_addressOutputMap$add = addressOutputMap[address]) !== null && _addressOutputMap$add !== void 0 ? _addressOutputMap$add : CardanoWasm.Value.new(CardanoWasm.BigNum.from_str('0'));
1148
+ const input = addressInputMap[address];
1149
+ const amount = input.checked_sub(output);
1150
+ if (amount.is_zero()) {
1151
+ continue;
1152
+ }
1153
+ addressInputAmountMap[address] = {
1154
+ values: (0, _helper.convertValueToAsset)(input)
1155
+ };
1156
+ addressOutputAmountMap[address] = {
1157
+ values: (0, _helper.convertValueToAsset)(output)
1158
+ };
1159
+ if ((0, _utils3.isSameAddress)(currentAddress, address)) {
1160
+ transactionValue = transactionValue.checked_add(amount);
1161
+ addressInputAmountMap[address].isOwner = true;
1162
+ addressOutputAmountMap[address].isOwner = true;
1163
+ }
1164
+ }
1165
+ for (const address in addressOutputMap) {
1166
+ if (!addressInputAmountMap[address] && !addressOutputMap[address].is_zero()) {
1167
+ addressOutputAmountMap[address] = {
1168
+ values: (0, _helper.convertValueToAsset)(addressOutputMap[address]),
1169
+ isRecipient: true
1170
+ };
1171
+ }
1172
+ }
1173
+ transactionValue = transactionValue.checked_sub(CardanoWasm.Value.new(tx.body().fee()));
1174
+ const transactionBody = tx.body();
1175
+ const getSpecificUtxo = this.chainService.getSpecificUtxo.bind(this);
1176
+ requireKeyHashes.push(...(0, _helper.extractKeyHashFromCertificate)(transactionBody.certs()));
1177
+ requireKeyHashes.push(...(0, _helper.extractKeyHashesFromWithdrawals)(transactionBody.withdrawals()));
1178
+ requireKeyHashes.push(...(0, _helper.extractKeyHashesFromRequiredSigners)(transactionBody.required_signers()));
1179
+ requireKeyHashes.push(...(await (0, _helper.extractKeyHashesFromCollaterals)(transactionBody.collateral(), getSpecificUtxo(networkKey))));
1180
+ requireKeyHashes.push(...(0, _helper.extractKeyHashesFromScripts)(tx.witness_set().native_scripts()));
1181
+ requireKeyHashes = [...new Set(requireKeyHashes)];
1182
+ const addressRequireKeyTypes = [];
1183
+ const keyHashAddressMap = {};
1184
+ const pair = _uiKeyring.keyring.getPair(currentAddress);
1185
+ if (pair) {
1186
+ const publicKey = CardanoWasm.Bip32PublicKey.from_bytes(pair.publicKey);
1187
+ const paymentPubKey = publicKey.derive(0).derive(0).to_raw_key().hash().to_hex();
1188
+ const stakePubKey = publicKey.derive(2).derive(0).to_raw_key().hash().to_hex();
1189
+ keyHashAddressMap[paymentPubKey] = 'payment';
1190
+ keyHashAddressMap[stakePubKey] = 'stake';
1191
+ } else {
1192
+ throw new _CardanoProviderError.CardanoProviderError(_KoniTypes.CardanoProviderErrorType.INVALID_REQUEST);
1193
+ }
1194
+ const needForeignKeyHash = requireKeyHashes.some(key => {
1195
+ const ownKeyHash = keyHashAddressMap[key];
1196
+ if (ownKeyHash) {
1197
+ addressRequireKeyTypes.push(ownKeyHash);
1198
+ return false;
1199
+ }
1200
+ return true;
1201
+ });
1202
+ const needOwnerKeyHash = requireKeyHashes.some(key => {
1203
+ const ownKeyHash = keyHashAddressMap[key];
1204
+ if (ownKeyHash) {
1205
+ addressRequireKeyTypes.push(ownKeyHash);
1206
+ return true;
1207
+ }
1208
+ return false;
1209
+ });
1210
+ if (!needOwnerKeyHash) {
1211
+ throw new _CardanoProviderError.CardanoProviderError(_KoniTypes.CardanoProviderErrorType.PROOF_GENERATION_FAILED, (0, _i18next.t)('Not found owner key hash'));
1212
+ }
1213
+ if (needForeignKeyHash && !partialSign) {
1214
+ throw new _CardanoProviderError.CardanoProviderError(_KoniTypes.CardanoProviderErrorType.INVALID_REQUEST, 'Not support foreign key hash yet');
1215
+ }
1216
+ const result = {
1217
+ id,
1218
+ txInputs: addressInputAmountMap,
1219
+ txOutputs: addressOutputAmountMap,
1220
+ addressRequireKeyTypes,
1221
+ value: (0, _helper.convertValueToAsset)(transactionValue),
1222
+ estimateCardanoFee,
1223
+ from: currentAddress,
1224
+ cardanoPayload: txHex,
1225
+ networkKey
1226
+ };
1227
+ return this.requestService.addConfirmationCardano(id, url, 'cardanoSignTransactionRequest', result, {}).then(_ref8 => {
1228
+ let {
1229
+ isApproved,
1230
+ payload
1231
+ } = _ref8;
1232
+ if (isApproved) {
1233
+ if (payload) {
1234
+ return payload;
1235
+ } else {
1236
+ throw new _CardanoProviderError.CardanoProviderError(_KoniTypes.CardanoProviderErrorType.INVALID_REQUEST, (0, _i18next.t)('Not found signature'));
1237
+ }
1238
+ } else {
1239
+ throw new _CardanoProviderError.CardanoProviderError(_KoniTypes.CardanoProviderErrorType.SIGN_TRANSACTION_DECLINED);
1240
+ }
1241
+ });
1242
+ }
1243
+ async cardanoSubmitTx(id, url, txHex) {
1244
+ const currentNetwork = this.requestService.getDAppChainInfo({
1245
+ autoActive: true,
1246
+ accessType: 'cardano',
1247
+ url
1248
+ });
1249
+ const networkKey = (currentNetwork === null || currentNetwork === void 0 ? void 0 : currentNetwork.slug) || 'cardano_preproduction';
1250
+ const cardanoApi = this.chainService.getCardanoApi(networkKey);
1251
+ return await cardanoApi.sendCardanoTxReturnHash(txHex);
1252
+ }
1030
1253
  getConfirmationsQueueSubject() {
1031
1254
  return this.requestService.confirmationsQueueSubject;
1032
1255
  }
@@ -1121,11 +1344,11 @@ class KoniState {
1121
1344
  const subscription = this.keyringService.context.observable.currentAccount.subscribe(handleRemind);
1122
1345
  }
1123
1346
  }
1124
- async setStorageFromWS(_ref7) {
1347
+ async setStorageFromWS(_ref9) {
1125
1348
  let {
1126
1349
  key,
1127
1350
  value
1128
- } = _ref7;
1351
+ } = _ref9;
1129
1352
  try {
1130
1353
  const jsonData = JSON.stringify(value);
1131
1354
  await _storage.SWStorage.instance.setItem(key, jsonData);
@@ -1553,12 +1776,12 @@ class KoniState {
1553
1776
 
1554
1777
  /* Metadata */
1555
1778
 
1556
- getCrowdloanContributions(_ref8) {
1779
+ getCrowdloanContributions(_ref10) {
1557
1780
  let {
1558
1781
  address,
1559
1782
  page,
1560
1783
  relayChain
1561
- } = _ref8;
1784
+ } = _ref10;
1562
1785
  return this.subscanService.getCrowdloanContributions(relayChain, address, page);
1563
1786
  }
1564
1787
  }