@subwallet/extension-base 1.3.22-0 → 1.3.24-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.
- package/background/KoniTypes.d.ts +77 -4
- package/background/KoniTypes.js +2 -0
- package/cjs/background/KoniTypes.js +2 -0
- package/cjs/constants/environment.js +4 -2
- package/cjs/constants/index.js +21 -4
- package/cjs/constants/signing.js +6 -2
- package/cjs/core/logic-validation/recipientAddress.js +9 -1
- package/cjs/core/logic-validation/transfer.js +57 -36
- package/cjs/core/types.js +1 -0
- package/cjs/core/utils.js +12 -1
- package/cjs/defaults.js +1 -1
- package/cjs/koni/api/dotsama/crowdloan.js +1 -1
- package/cjs/koni/api/nft/index.js +9 -16
- package/cjs/koni/api/staking/index.js +3 -4
- package/cjs/koni/background/handlers/Extension.js +343 -185
- package/cjs/koni/background/handlers/State.js +17 -2
- package/cjs/koni/background/handlers/Tabs.js +1 -1
- package/cjs/packageInfo.js +1 -1
- package/cjs/services/balance-service/helpers/subscribe/cardano/consts.js +11 -0
- package/cjs/services/balance-service/helpers/subscribe/cardano/index.js +63 -0
- package/cjs/services/balance-service/helpers/subscribe/cardano/types.js +1 -0
- package/cjs/services/balance-service/helpers/subscribe/cardano/utils.js +74 -0
- package/cjs/services/balance-service/helpers/subscribe/index.js +21 -7
- package/cjs/services/balance-service/helpers/subscribe/ton/utils.js +2 -2
- package/cjs/services/balance-service/index.js +4 -2
- package/cjs/services/balance-service/transfer/cardano-transfer.js +122 -0
- package/cjs/services/balance-service/transfer/smart-contract.js +24 -3
- package/cjs/services/balance-service/transfer/token.js +4 -4
- package/cjs/services/chain-service/handler/CardanoApi.js +176 -0
- package/cjs/services/chain-service/handler/CardanoChainHandler.js +83 -0
- package/cjs/services/chain-service/handler/TonApi.js +2 -5
- package/cjs/services/chain-service/index.js +40 -7
- package/cjs/services/chain-service/utils/index.js +40 -11
- package/cjs/services/chain-service/utils/patch.js +1 -1
- package/cjs/services/earning-service/handlers/liquid-staking/bifrost-manta.js +1 -1
- package/cjs/services/earning-service/handlers/liquid-staking/bifrost.js +1 -1
- package/cjs/services/earning-service/service.js +6 -12
- package/cjs/services/fee-service/service.js +19 -8
- package/cjs/services/fee-service/utils/tokenPayFee.js +151 -0
- package/cjs/services/history-service/index.js +4 -6
- package/cjs/services/inapp-notification-service/index.js +12 -4
- package/cjs/services/keyring-service/context/account-context.js +17 -2
- package/cjs/services/keyring-service/context/handlers/Derive.js +10 -7
- package/cjs/services/keyring-service/context/handlers/Migration.js +268 -0
- package/cjs/services/keyring-service/context/handlers/Mnemonic.js +2 -2
- package/cjs/services/keyring-service/context/handlers/Secret.js +1 -1
- package/cjs/services/keyring-service/utils.js +18 -0
- package/cjs/services/request-service/handler/CardanoRequestHandler.js +172 -0
- package/cjs/services/request-service/handler/EvmRequestHandler.js +1 -1
- package/cjs/services/request-service/handler/MetadataRequestHandler.js +5 -13
- package/cjs/services/request-service/index.js +22 -4
- package/cjs/services/setting-service/constants.js +10 -1
- package/cjs/services/storage-service/DatabaseService.js +3 -0
- package/cjs/services/storage-service/db-stores/InappNotification.js +6 -0
- package/cjs/services/swap-service/handler/asset-hub/handler.js +0 -59
- package/cjs/services/swap-service/handler/chainflip-handler.js +33 -281
- package/cjs/services/swap-service/handler/hydradx-handler.js +23 -190
- package/cjs/services/swap-service/handler/simpleswap-handler.js +1 -222
- package/cjs/services/swap-service/handler/uniswap-handler.js +331 -0
- package/cjs/services/swap-service/index.js +31 -22
- package/cjs/services/swap-service/utils.js +21 -38
- package/cjs/services/transaction-service/helpers/index.js +6 -1
- package/cjs/services/transaction-service/index.js +286 -26
- package/cjs/services/transaction-service/utils.js +5 -1
- package/cjs/types/account/info/keyring.js +12 -1
- package/cjs/types/fee/cardano.js +1 -0
- package/cjs/types/swap/index.js +7 -2
- package/cjs/utils/account/analyze.js +2 -1
- package/cjs/utils/account/common.js +29 -20
- package/cjs/utils/account/derive/info/solo.js +9 -4
- package/cjs/utils/account/derive/validate.js +36 -2
- package/cjs/utils/account/transform.js +38 -13
- package/cjs/utils/fee/transfer.js +87 -21
- package/cjs/utils/index.js +2 -2
- package/cjs/utils/staticData/index.js +7 -2
- package/constants/environment.d.ts +1 -0
- package/constants/environment.js +2 -1
- package/constants/index.d.ts +6 -1
- package/constants/index.js +14 -1
- package/constants/signing.js +6 -2
- package/core/logic-validation/recipientAddress.js +11 -3
- package/core/logic-validation/transfer.d.ts +1 -1
- package/core/logic-validation/transfer.js +33 -12
- package/core/substrate/xcm-parser.d.ts +1 -1
- package/core/types.d.ts +1 -0
- package/core/types.js +1 -0
- package/core/utils.d.ts +1 -0
- package/core/utils.js +13 -3
- package/defaults.d.ts +1 -1
- package/defaults.js +1 -1
- package/koni/api/dotsama/crowdloan.js +3 -3
- package/koni/api/nft/index.js +10 -16
- package/koni/api/nft/story_odyssey_nft/index.d.ts +1 -1
- package/koni/api/staking/index.js +4 -5
- package/koni/background/handlers/Extension.d.ts +9 -0
- package/koni/background/handlers/Extension.js +225 -69
- package/koni/background/handlers/State.d.ts +6 -2
- package/koni/background/handlers/State.js +18 -3
- package/koni/background/handlers/Tabs.js +1 -1
- package/package.json +76 -9
- package/packageInfo.js +1 -1
- package/services/balance-service/helpers/subscribe/cardano/consts.d.ts +1 -0
- package/services/balance-service/helpers/subscribe/cardano/consts.js +4 -0
- package/services/balance-service/helpers/subscribe/cardano/index.d.ts +2 -0
- package/services/balance-service/helpers/subscribe/cardano/index.js +57 -0
- package/services/balance-service/helpers/subscribe/cardano/types.d.ts +34 -0
- package/services/balance-service/helpers/subscribe/cardano/types.js +1 -0
- package/services/balance-service/helpers/subscribe/cardano/utils.d.ts +15 -0
- package/services/balance-service/helpers/subscribe/cardano/utils.js +62 -0
- package/services/balance-service/helpers/subscribe/index.d.ts +2 -2
- package/services/balance-service/helpers/subscribe/index.js +23 -9
- package/services/balance-service/helpers/subscribe/ton/utils.d.ts +1 -1
- package/services/balance-service/helpers/subscribe/ton/utils.js +1 -1
- package/services/balance-service/index.js +4 -2
- package/services/balance-service/transfer/cardano-transfer.d.ts +24 -0
- package/services/balance-service/transfer/cardano-transfer.js +114 -0
- package/services/balance-service/transfer/smart-contract.d.ts +4 -2
- package/services/balance-service/transfer/smart-contract.js +24 -3
- package/services/balance-service/transfer/token.d.ts +1 -1
- package/services/balance-service/transfer/token.js +2 -2
- package/services/chain-service/handler/CardanoApi.d.ts +38 -0
- package/services/chain-service/handler/CardanoApi.js +167 -0
- package/services/chain-service/handler/CardanoChainHandler.d.ts +17 -0
- package/services/chain-service/handler/CardanoChainHandler.js +75 -0
- package/services/chain-service/handler/TonApi.js +3 -6
- package/services/chain-service/handler/types.d.ts +1 -0
- package/services/chain-service/index.d.ts +4 -1
- package/services/chain-service/index.js +41 -8
- package/services/chain-service/types.d.ts +9 -1
- package/services/chain-service/utils/index.d.ts +4 -0
- package/services/chain-service/utils/index.js +32 -11
- package/services/chain-service/utils/patch.js +1 -1
- package/services/earning-service/handlers/liquid-staking/bifrost-manta.js +1 -1
- package/services/earning-service/handlers/liquid-staking/bifrost.js +1 -1
- package/services/earning-service/service.js +8 -14
- package/services/fee-service/interfaces.d.ts +25 -0
- package/services/fee-service/service.js +19 -8
- package/services/fee-service/utils/tokenPayFee.d.ts +8 -0
- package/services/fee-service/utils/tokenPayFee.js +141 -0
- package/services/history-service/index.js +6 -8
- package/services/inapp-notification-service/index.d.ts +3 -4
- package/services/inapp-notification-service/index.js +14 -6
- package/services/keyring-service/context/account-context.d.ts +6 -2
- package/services/keyring-service/context/account-context.js +17 -2
- package/services/keyring-service/context/handlers/Derive.d.ts +1 -1
- package/services/keyring-service/context/handlers/Derive.js +10 -8
- package/services/keyring-service/context/handlers/Migration.d.ts +17 -0
- package/services/keyring-service/context/handlers/Migration.js +258 -0
- package/services/keyring-service/context/handlers/Mnemonic.js +2 -2
- package/services/keyring-service/context/handlers/Secret.js +2 -2
- package/services/keyring-service/utils.d.ts +2 -0
- package/services/keyring-service/utils.js +11 -0
- package/services/request-service/handler/CardanoRequestHandler.d.ts +16 -0
- package/services/request-service/handler/CardanoRequestHandler.js +163 -0
- package/services/request-service/handler/EvmRequestHandler.js +1 -1
- package/services/request-service/handler/MetadataRequestHandler.d.ts +1 -1
- package/services/request-service/handler/MetadataRequestHandler.js +5 -13
- package/services/request-service/index.d.ts +7 -4
- package/services/request-service/index.js +21 -7
- package/services/setting-service/constants.d.ts +3 -0
- package/services/setting-service/constants.js +6 -0
- package/services/storage-service/DatabaseService.d.ts +1 -0
- package/services/storage-service/DatabaseService.js +3 -0
- package/services/storage-service/db-stores/InappNotification.d.ts +1 -0
- package/services/storage-service/db-stores/InappNotification.js +6 -0
- package/services/swap-service/handler/asset-hub/handler.d.ts +1 -4
- package/services/swap-service/handler/asset-hub/handler.js +2 -61
- package/services/swap-service/handler/base-handler.d.ts +1 -4
- package/services/swap-service/handler/chainflip-handler.d.ts +2 -9
- package/services/swap-service/handler/chainflip-handler.js +31 -280
- package/services/swap-service/handler/hydradx-handler.d.ts +1 -6
- package/services/swap-service/handler/hydradx-handler.js +13 -180
- package/services/swap-service/handler/simpleswap-handler.d.ts +1 -4
- package/services/swap-service/handler/simpleswap-handler.js +5 -226
- package/services/swap-service/handler/uniswap-handler.d.ts +41 -0
- package/services/swap-service/handler/uniswap-handler.js +323 -0
- package/services/swap-service/index.js +30 -22
- package/services/swap-service/utils.d.ts +1 -5
- package/services/swap-service/utils.js +7 -21
- package/services/transaction-service/helpers/index.d.ts +2 -0
- package/services/transaction-service/helpers/index.js +4 -0
- package/services/transaction-service/index.d.ts +8 -2
- package/services/transaction-service/index.js +273 -17
- package/services/transaction-service/types.d.ts +7 -0
- package/services/transaction-service/utils.js +7 -2
- package/types/account/info/keyring.d.ts +4 -1
- package/types/account/info/keyring.js +9 -0
- package/types/account/info/proxy.d.ts +2 -0
- package/types/balance/index.d.ts +4 -1
- package/types/fee/base.d.ts +1 -1
- package/types/fee/cardano.d.ts +18 -0
- package/types/fee/cardano.js +1 -0
- package/types/fee/option.d.ts +1 -1
- package/types/fee/subscription.d.ts +4 -3
- package/types/swap/index.d.ts +11 -3
- package/types/swap/index.js +7 -2
- package/utils/account/analyze.js +2 -1
- package/utils/account/common.d.ts +11 -6
- package/utils/account/common.js +28 -19
- package/utils/account/derive/info/solo.js +10 -5
- package/utils/account/derive/validate.d.ts +1 -0
- package/utils/account/derive/validate.js +34 -1
- package/utils/account/transform.d.ts +2 -1
- package/utils/account/transform.js +37 -13
- package/utils/fee/transfer.d.ts +3 -2
- package/utils/fee/transfer.js +90 -24
- package/utils/index.js +4 -4
- package/utils/staticData/index.d.ts +4 -1
- package/utils/staticData/index.js +5 -1
- package/utils/staticData/oldChainPrefix.json +1 -0
|
@@ -5,7 +5,7 @@ import { EvmProviderError } from '@subwallet/extension-base/background/errors/Ev
|
|
|
5
5
|
import { withErrorLog } from '@subwallet/extension-base/background/handlers/helpers';
|
|
6
6
|
import { isSubscriptionRunning, unsubscribe } from '@subwallet/extension-base/background/handlers/subscriptions';
|
|
7
7
|
import { APIItemState, ChainType, EvmProviderErrorType, ExternalRequestPromiseStatus, ExtrinsicType } from '@subwallet/extension-base/background/KoniTypes';
|
|
8
|
-
import { MANTA_PAY_BALANCE_INTERVAL, REMIND_EXPORT_ACCOUNT } from '@subwallet/extension-base/constants';
|
|
8
|
+
import { BACKEND_API_URL, MANTA_PAY_BALANCE_INTERVAL, REMIND_EXPORT_ACCOUNT } from '@subwallet/extension-base/constants';
|
|
9
9
|
import { convertErrorFormat, generateValidationProcess, validationAuthMiddleware, validationAuthWCMiddleware, validationConnectMiddleware, validationEvmDataTransactionMiddleware, validationEvmSignMessageMiddleware } from '@subwallet/extension-base/core/logic-validation';
|
|
10
10
|
import { BalanceService } from '@subwallet/extension-base/services/balance-service';
|
|
11
11
|
import { ServiceStatus } from '@subwallet/extension-base/services/base/types';
|
|
@@ -39,6 +39,7 @@ import { SWStorage } from '@subwallet/extension-base/storage';
|
|
|
39
39
|
import { BasicTxErrorType } from '@subwallet/extension-base/types';
|
|
40
40
|
import { isManifestV3, stripUrl, targetIsWeb } from '@subwallet/extension-base/utils';
|
|
41
41
|
import { createPromiseHandler } from '@subwallet/extension-base/utils/promise';
|
|
42
|
+
import subwalletApiSdk from '@subwallet/subwallet-api-sdk';
|
|
42
43
|
import { keyring } from '@subwallet/ui-keyring';
|
|
43
44
|
import BN from 'bn.js';
|
|
44
45
|
import { t } from 'i18next';
|
|
@@ -83,6 +84,8 @@ export default class KoniState {
|
|
|
83
84
|
waitSleeping = null;
|
|
84
85
|
waitStarting = null;
|
|
85
86
|
constructor(providers = {}) {
|
|
87
|
+
// Init subwallet api sdk
|
|
88
|
+
subwalletApiSdk.init(BACKEND_API_URL);
|
|
86
89
|
this.providers = providers;
|
|
87
90
|
this.eventService = new EventService();
|
|
88
91
|
this.dbService = new DatabaseService(this.eventService);
|
|
@@ -121,8 +124,8 @@ export default class KoniState {
|
|
|
121
124
|
get knownMetadata() {
|
|
122
125
|
return this.requestService.knownMetadata;
|
|
123
126
|
}
|
|
124
|
-
injectMetadata(
|
|
125
|
-
return this.requestService.injectMetadata(
|
|
127
|
+
injectMetadata(request) {
|
|
128
|
+
return this.requestService.injectMetadata(request);
|
|
126
129
|
}
|
|
127
130
|
getMetaRequest(id) {
|
|
128
131
|
return this.requestService.getMetaRequest(id);
|
|
@@ -718,6 +721,12 @@ export default class KoniState {
|
|
|
718
721
|
getTonApi(networkKey) {
|
|
719
722
|
return this.chainService.getTonApi(networkKey);
|
|
720
723
|
}
|
|
724
|
+
getCardanoApiMap() {
|
|
725
|
+
return this.chainService.getCardanoApiMap();
|
|
726
|
+
}
|
|
727
|
+
getCardanoApi(networkKey) {
|
|
728
|
+
return this.chainService.getCardanoApi(networkKey);
|
|
729
|
+
}
|
|
721
730
|
getApiMap() {
|
|
722
731
|
return {
|
|
723
732
|
substrate: this.chainService.getSubstrateApiMap(),
|
|
@@ -998,12 +1007,18 @@ export default class KoniState {
|
|
|
998
1007
|
getConfirmationsQueueSubjectTon() {
|
|
999
1008
|
return this.requestService.confirmationsQueueSubjectTon;
|
|
1000
1009
|
}
|
|
1010
|
+
getConfirmationsQueueSubjectCardano() {
|
|
1011
|
+
return this.requestService.confirmationsQueueSubjectCardano;
|
|
1012
|
+
}
|
|
1001
1013
|
async completeConfirmation(request) {
|
|
1002
1014
|
return await this.requestService.completeConfirmation(request);
|
|
1003
1015
|
}
|
|
1004
1016
|
async completeConfirmationTon(request) {
|
|
1005
1017
|
return await this.requestService.completeConfirmationTon(request);
|
|
1006
1018
|
}
|
|
1019
|
+
async completeConfirmationCardano(request) {
|
|
1020
|
+
return await this.requestService.completeConfirmationCardano(request);
|
|
1021
|
+
}
|
|
1007
1022
|
async onMV3Update() {
|
|
1008
1023
|
const migrationStatus = await SWStorage.instance.getItem('mv3_migration');
|
|
1009
1024
|
if (!migrationStatus || migrationStatus !== 'done') {
|
|
@@ -147,7 +147,7 @@ export default class KoniTabs {
|
|
|
147
147
|
}
|
|
148
148
|
}
|
|
149
149
|
metadataProvide(url, request) {
|
|
150
|
-
return this.#koniState.injectMetadata(
|
|
150
|
+
return this.#koniState.injectMetadata(request);
|
|
151
151
|
}
|
|
152
152
|
|
|
153
153
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
package/package.json
CHANGED
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
"./cjs/detectPackage.js"
|
|
18
18
|
],
|
|
19
19
|
"type": "module",
|
|
20
|
-
"version": "1.3.
|
|
20
|
+
"version": "1.3.24-0",
|
|
21
21
|
"main": "./cjs/index.js",
|
|
22
22
|
"module": "./index.js",
|
|
23
23
|
"types": "./index.d.ts",
|
|
@@ -654,6 +654,26 @@
|
|
|
654
654
|
"require": "./cjs/services/balance-service/helpers/subscribe/index.js",
|
|
655
655
|
"default": "./services/balance-service/helpers/subscribe/index.js"
|
|
656
656
|
},
|
|
657
|
+
"./services/balance-service/helpers/subscribe/cardano": {
|
|
658
|
+
"types": "./services/balance-service/helpers/subscribe/cardano/index.d.ts",
|
|
659
|
+
"require": "./cjs/services/balance-service/helpers/subscribe/cardano/index.js",
|
|
660
|
+
"default": "./services/balance-service/helpers/subscribe/cardano/index.js"
|
|
661
|
+
},
|
|
662
|
+
"./services/balance-service/helpers/subscribe/cardano/consts": {
|
|
663
|
+
"types": "./services/balance-service/helpers/subscribe/cardano/consts.d.ts",
|
|
664
|
+
"require": "./cjs/services/balance-service/helpers/subscribe/cardano/consts.js",
|
|
665
|
+
"default": "./services/balance-service/helpers/subscribe/cardano/consts.js"
|
|
666
|
+
},
|
|
667
|
+
"./services/balance-service/helpers/subscribe/cardano/types": {
|
|
668
|
+
"types": "./services/balance-service/helpers/subscribe/cardano/types.d.ts",
|
|
669
|
+
"require": "./cjs/services/balance-service/helpers/subscribe/cardano/types.js",
|
|
670
|
+
"default": "./services/balance-service/helpers/subscribe/cardano/types.js"
|
|
671
|
+
},
|
|
672
|
+
"./services/balance-service/helpers/subscribe/cardano/utils": {
|
|
673
|
+
"types": "./services/balance-service/helpers/subscribe/cardano/utils.d.ts",
|
|
674
|
+
"require": "./cjs/services/balance-service/helpers/subscribe/cardano/utils.js",
|
|
675
|
+
"default": "./services/balance-service/helpers/subscribe/cardano/utils.js"
|
|
676
|
+
},
|
|
657
677
|
"./services/balance-service/helpers/subscribe/evm": {
|
|
658
678
|
"types": "./services/balance-service/helpers/subscribe/evm.d.ts",
|
|
659
679
|
"require": "./cjs/services/balance-service/helpers/subscribe/evm.js",
|
|
@@ -694,6 +714,11 @@
|
|
|
694
714
|
"require": "./cjs/services/balance-service/helpers/subscribe/ton/utils.js",
|
|
695
715
|
"default": "./services/balance-service/helpers/subscribe/ton/utils.js"
|
|
696
716
|
},
|
|
717
|
+
"./services/balance-service/transfer/cardano-transfer": {
|
|
718
|
+
"types": "./services/balance-service/transfer/cardano-transfer.d.ts",
|
|
719
|
+
"require": "./cjs/services/balance-service/transfer/cardano-transfer.js",
|
|
720
|
+
"default": "./services/balance-service/transfer/cardano-transfer.js"
|
|
721
|
+
},
|
|
697
722
|
"./services/balance-service/transfer/smart-contract": {
|
|
698
723
|
"types": "./services/balance-service/transfer/smart-contract.d.ts",
|
|
699
724
|
"require": "./cjs/services/balance-service/transfer/smart-contract.js",
|
|
@@ -819,6 +844,16 @@
|
|
|
819
844
|
"require": "./cjs/services/chain-service/handler/AbstractChainHandler.js",
|
|
820
845
|
"default": "./services/chain-service/handler/AbstractChainHandler.js"
|
|
821
846
|
},
|
|
847
|
+
"./services/chain-service/handler/CardanoApi": {
|
|
848
|
+
"types": "./services/chain-service/handler/CardanoApi.d.ts",
|
|
849
|
+
"require": "./cjs/services/chain-service/handler/CardanoApi.js",
|
|
850
|
+
"default": "./services/chain-service/handler/CardanoApi.js"
|
|
851
|
+
},
|
|
852
|
+
"./services/chain-service/handler/CardanoChainHandler": {
|
|
853
|
+
"types": "./services/chain-service/handler/CardanoChainHandler.d.ts",
|
|
854
|
+
"require": "./cjs/services/chain-service/handler/CardanoChainHandler.js",
|
|
855
|
+
"default": "./services/chain-service/handler/CardanoChainHandler.js"
|
|
856
|
+
},
|
|
822
857
|
"./services/chain-service/handler/EvmApi": {
|
|
823
858
|
"types": "./services/chain-service/handler/EvmApi.d.ts",
|
|
824
859
|
"require": "./cjs/services/chain-service/handler/EvmApi.js",
|
|
@@ -1111,6 +1146,11 @@
|
|
|
1111
1146
|
"require": "./cjs/services/fee-service/utils/index.js",
|
|
1112
1147
|
"default": "./services/fee-service/utils/index.js"
|
|
1113
1148
|
},
|
|
1149
|
+
"./services/fee-service/utils/tokenPayFee": {
|
|
1150
|
+
"types": "./services/fee-service/utils/tokenPayFee.d.ts",
|
|
1151
|
+
"require": "./cjs/services/fee-service/utils/tokenPayFee.js",
|
|
1152
|
+
"default": "./services/fee-service/utils/tokenPayFee.js"
|
|
1153
|
+
},
|
|
1114
1154
|
"./services/history-service": {
|
|
1115
1155
|
"types": "./services/history-service/index.d.ts",
|
|
1116
1156
|
"require": "./cjs/services/history-service/index.js",
|
|
@@ -1221,6 +1261,11 @@
|
|
|
1221
1261
|
"require": "./cjs/services/keyring-service/context/handlers/Ledger.js",
|
|
1222
1262
|
"default": "./services/keyring-service/context/handlers/Ledger.js"
|
|
1223
1263
|
},
|
|
1264
|
+
"./services/keyring-service/context/handlers/Migration": {
|
|
1265
|
+
"types": "./services/keyring-service/context/handlers/Migration.d.ts",
|
|
1266
|
+
"require": "./cjs/services/keyring-service/context/handlers/Migration.js",
|
|
1267
|
+
"default": "./services/keyring-service/context/handlers/Migration.js"
|
|
1268
|
+
},
|
|
1224
1269
|
"./services/keyring-service/context/handlers/Mnemonic": {
|
|
1225
1270
|
"types": "./services/keyring-service/context/handlers/Mnemonic.d.ts",
|
|
1226
1271
|
"require": "./cjs/services/keyring-service/context/handlers/Mnemonic.js",
|
|
@@ -1266,6 +1311,11 @@
|
|
|
1266
1311
|
"require": "./cjs/services/keyring-service/context/stores/ModifyPair.js",
|
|
1267
1312
|
"default": "./services/keyring-service/context/stores/ModifyPair.js"
|
|
1268
1313
|
},
|
|
1314
|
+
"./services/keyring-service/utils": {
|
|
1315
|
+
"types": "./services/keyring-service/utils.d.ts",
|
|
1316
|
+
"require": "./cjs/services/keyring-service/utils.js",
|
|
1317
|
+
"default": "./services/keyring-service/utils.js"
|
|
1318
|
+
},
|
|
1269
1319
|
"./services/migration-service": {
|
|
1270
1320
|
"types": "./services/migration-service/index.d.ts",
|
|
1271
1321
|
"require": "./cjs/services/migration-service/index.js",
|
|
@@ -1541,6 +1591,11 @@
|
|
|
1541
1591
|
"require": "./cjs/services/request-service/handler/AuthRequestHandler.js",
|
|
1542
1592
|
"default": "./services/request-service/handler/AuthRequestHandler.js"
|
|
1543
1593
|
},
|
|
1594
|
+
"./services/request-service/handler/CardanoRequestHandler": {
|
|
1595
|
+
"types": "./services/request-service/handler/CardanoRequestHandler.d.ts",
|
|
1596
|
+
"require": "./cjs/services/request-service/handler/CardanoRequestHandler.js",
|
|
1597
|
+
"default": "./services/request-service/handler/CardanoRequestHandler.js"
|
|
1598
|
+
},
|
|
1544
1599
|
"./services/request-service/handler/ConnectWCRequestHandler": {
|
|
1545
1600
|
"types": "./services/request-service/handler/ConnectWCRequestHandler.d.ts",
|
|
1546
1601
|
"require": "./cjs/services/request-service/handler/ConnectWCRequestHandler.js",
|
|
@@ -1821,6 +1876,11 @@
|
|
|
1821
1876
|
"require": "./cjs/services/swap-service/handler/simpleswap-handler.js",
|
|
1822
1877
|
"default": "./services/swap-service/handler/simpleswap-handler.js"
|
|
1823
1878
|
},
|
|
1879
|
+
"./services/swap-service/handler/uniswap-handler": {
|
|
1880
|
+
"types": "./services/swap-service/handler/uniswap-handler.d.ts",
|
|
1881
|
+
"require": "./cjs/services/swap-service/handler/uniswap-handler.js",
|
|
1882
|
+
"default": "./services/swap-service/handler/uniswap-handler.js"
|
|
1883
|
+
},
|
|
1824
1884
|
"./services/swap-service/utils": {
|
|
1825
1885
|
"types": "./services/swap-service/utils.d.ts",
|
|
1826
1886
|
"require": "./cjs/services/swap-service/utils.js",
|
|
@@ -2151,6 +2211,11 @@
|
|
|
2151
2211
|
"require": "./cjs/types/fee/base.js",
|
|
2152
2212
|
"default": "./types/fee/base.js"
|
|
2153
2213
|
},
|
|
2214
|
+
"./types/fee/cardano": {
|
|
2215
|
+
"types": "./types/fee/cardano.d.ts",
|
|
2216
|
+
"require": "./cjs/types/fee/cardano.js",
|
|
2217
|
+
"default": "./types/fee/cardano.js"
|
|
2218
|
+
},
|
|
2154
2219
|
"./types/fee/evm": {
|
|
2155
2220
|
"types": "./types/fee/evm.d.ts",
|
|
2156
2221
|
"require": "./cjs/types/fee/evm.js",
|
|
@@ -2544,6 +2609,7 @@
|
|
|
2544
2609
|
"./utils/staticData/crowdloanFunds.json": "./utils/staticData/crowdloanFunds.json",
|
|
2545
2610
|
"./utils/staticData/currencySymbol.json": "./utils/staticData/currencySymbol.json",
|
|
2546
2611
|
"./utils/staticData/marketingCampaigns.json": "./utils/staticData/marketingCampaigns.json",
|
|
2612
|
+
"./utils/staticData/oldChainPrefix.json": "./utils/staticData/oldChainPrefix.json",
|
|
2547
2613
|
"./utils/staticData/remindNotificationTime.json": "./utils/staticData/remindNotificationTime.json",
|
|
2548
2614
|
"./utils/staticData/termAndCondition.json": "./utils/staticData/termAndCondition.json",
|
|
2549
2615
|
"./utils/swap": {
|
|
@@ -2561,7 +2627,7 @@
|
|
|
2561
2627
|
"@acala-network/api": "^5.0.2",
|
|
2562
2628
|
"@apollo/client": "^3.7.14",
|
|
2563
2629
|
"@azns/resolver-core": "^1.4.0",
|
|
2564
|
-
"@
|
|
2630
|
+
"@emurgo/cardano-serialization-lib-nodejs": "^13.2.0",
|
|
2565
2631
|
"@equilab/api": "~1.14.25",
|
|
2566
2632
|
"@ethereumjs/common": "^4.1.0",
|
|
2567
2633
|
"@ethereumjs/tx": "^5.1.0",
|
|
@@ -2593,13 +2659,14 @@
|
|
|
2593
2659
|
"@reduxjs/toolkit": "^1.9.1",
|
|
2594
2660
|
"@sora-substrate/type-definitions": "^1.17.7",
|
|
2595
2661
|
"@substrate/connect": "^0.8.9",
|
|
2596
|
-
"@subwallet/chain-list": "0.2.
|
|
2597
|
-
"@subwallet/extension-base": "^1.3.
|
|
2598
|
-
"@subwallet/extension-chains": "^1.3.
|
|
2599
|
-
"@subwallet/extension-dapp": "^1.3.
|
|
2600
|
-
"@subwallet/extension-inject": "^1.3.
|
|
2601
|
-
"@subwallet/keyring": "^0.1.
|
|
2602
|
-
"@subwallet/
|
|
2662
|
+
"@subwallet/chain-list": "0.2.101",
|
|
2663
|
+
"@subwallet/extension-base": "^1.3.24-0",
|
|
2664
|
+
"@subwallet/extension-chains": "^1.3.24-0",
|
|
2665
|
+
"@subwallet/extension-dapp": "^1.3.24-0",
|
|
2666
|
+
"@subwallet/extension-inject": "^1.3.24-0",
|
|
2667
|
+
"@subwallet/keyring": "^0.1.9",
|
|
2668
|
+
"@subwallet/subwallet-api-sdk": "^1.3.24-0",
|
|
2669
|
+
"@subwallet/ui-keyring": "^0.1.9",
|
|
2603
2670
|
"@ton/core": "^0.56.3",
|
|
2604
2671
|
"@ton/crypto": "^3.2.0",
|
|
2605
2672
|
"@ton/ton": "^15.0.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.
|
|
10
|
+
version: '1.3.24-0'
|
|
11
11
|
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const DEFAULT_CARDANO_TTL_OFFSET: number;
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
// Copyright 2019-2022 @subwallet/extension-base
|
|
2
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
3
|
+
|
|
4
|
+
import { _AssetType } from '@subwallet/chain-list/types';
|
|
5
|
+
import { APIItemState } from '@subwallet/extension-base/background/KoniTypes';
|
|
6
|
+
import { ASTAR_REFRESH_BALANCE_INTERVAL } from '@subwallet/extension-base/constants';
|
|
7
|
+
import { getCardanoAssetId } from '@subwallet/extension-base/services/balance-service/helpers/subscribe/cardano/utils';
|
|
8
|
+
import { filterAssetsByChainAndType, reformatAddress } from '@subwallet/extension-base/utils';
|
|
9
|
+
async function getBalanceMap(addresses, cardanoApi, isTestnet) {
|
|
10
|
+
const addressBalanceMap = {};
|
|
11
|
+
for (const address of addresses) {
|
|
12
|
+
addressBalanceMap[address] = await cardanoApi.getBalanceMap(isTestnet ? reformatAddress(address, 0) : address);
|
|
13
|
+
}
|
|
14
|
+
return addressBalanceMap;
|
|
15
|
+
}
|
|
16
|
+
export function subscribeCardanoBalance(params) {
|
|
17
|
+
const {
|
|
18
|
+
addresses,
|
|
19
|
+
assetMap,
|
|
20
|
+
callback,
|
|
21
|
+
cardanoApi,
|
|
22
|
+
chainInfo
|
|
23
|
+
} = params;
|
|
24
|
+
const chain = chainInfo.slug;
|
|
25
|
+
const isTestnet = chainInfo.isTestnet;
|
|
26
|
+
const tokens = filterAssetsByChainAndType(assetMap, chain, [_AssetType.NATIVE, _AssetType.CIP26]);
|
|
27
|
+
function getBalance() {
|
|
28
|
+
getBalanceMap(addresses, cardanoApi, isTestnet).then(addressBalanceMap => {
|
|
29
|
+
Object.values(tokens).forEach(tokenInfo => {
|
|
30
|
+
const id = getCardanoAssetId(tokenInfo);
|
|
31
|
+
const balances = addresses.map(address => {
|
|
32
|
+
var _addressBalanceMap$ad;
|
|
33
|
+
if (!addressBalanceMap[address]) {
|
|
34
|
+
return '0';
|
|
35
|
+
}
|
|
36
|
+
return ((_addressBalanceMap$ad = addressBalanceMap[address].find(asset => asset.unit === id)) === null || _addressBalanceMap$ad === void 0 ? void 0 : _addressBalanceMap$ad.quantity) || '0';
|
|
37
|
+
});
|
|
38
|
+
const items = balances.map((balance, index) => {
|
|
39
|
+
return {
|
|
40
|
+
address: addresses[index],
|
|
41
|
+
tokenSlug: tokenInfo.slug,
|
|
42
|
+
free: balance,
|
|
43
|
+
locked: '0',
|
|
44
|
+
// todo: research cardano lock balance
|
|
45
|
+
state: APIItemState.READY
|
|
46
|
+
};
|
|
47
|
+
});
|
|
48
|
+
callback(items);
|
|
49
|
+
});
|
|
50
|
+
}).catch(e => console.error('Error while fetching cardano balance', e));
|
|
51
|
+
}
|
|
52
|
+
const interval = setInterval(getBalance, ASTAR_REFRESH_BALANCE_INTERVAL);
|
|
53
|
+
getBalance();
|
|
54
|
+
return () => {
|
|
55
|
+
clearInterval(interval);
|
|
56
|
+
};
|
|
57
|
+
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
export interface CardanoAddressBalance {
|
|
2
|
+
address: string;
|
|
3
|
+
amount: CardanoBalanceItem[];
|
|
4
|
+
stake_address: string;
|
|
5
|
+
type: string;
|
|
6
|
+
script: boolean;
|
|
7
|
+
}
|
|
8
|
+
export interface CardanoBalanceItem {
|
|
9
|
+
unit: string;
|
|
10
|
+
quantity: string;
|
|
11
|
+
}
|
|
12
|
+
export interface CardanoTxJson {
|
|
13
|
+
body: {
|
|
14
|
+
inputs: CardanoTxInput[];
|
|
15
|
+
outputs: CardanoTxOutput[];
|
|
16
|
+
fee: string;
|
|
17
|
+
ttl: string;
|
|
18
|
+
};
|
|
19
|
+
witness_set: any;
|
|
20
|
+
is_valid: any;
|
|
21
|
+
auxiliary_data: any;
|
|
22
|
+
}
|
|
23
|
+
export interface CardanoTxOutput {
|
|
24
|
+
address: string;
|
|
25
|
+
amount: {
|
|
26
|
+
coin: string;
|
|
27
|
+
multiasset: Record<string, Record<string, string>>;
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
interface CardanoTxInput {
|
|
31
|
+
transaction_id: string;
|
|
32
|
+
index: number;
|
|
33
|
+
}
|
|
34
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { _ChainAsset } from '@subwallet/chain-list/types';
|
|
2
|
+
export declare function getCardanoAssetId(chainAsset: _ChainAsset): string;
|
|
3
|
+
export declare function getCardanoTxFee(payload: string): bigint;
|
|
4
|
+
export declare function getAdaBelongUtxo(payload: string, receiverAddress: string): bigint;
|
|
5
|
+
export declare const cborToBytes: (hex: string) => Uint8Array;
|
|
6
|
+
export declare function retryCardanoTxStatus(fn: () => Promise<boolean>, options: {
|
|
7
|
+
retries: number;
|
|
8
|
+
delay: number;
|
|
9
|
+
}): Promise<boolean>;
|
|
10
|
+
export interface CardanoAssetMetadata {
|
|
11
|
+
cardanoId: string;
|
|
12
|
+
policyId: string;
|
|
13
|
+
nameHex: string;
|
|
14
|
+
}
|
|
15
|
+
export declare function splitCardanoId(id: string): CardanoAssetMetadata;
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
// Copyright 2019-2022 @subwallet/extension-base
|
|
2
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
3
|
+
|
|
4
|
+
import { Transaction } from '@emurgo/cardano-serialization-lib-nodejs';
|
|
5
|
+
export function getCardanoAssetId(chainAsset) {
|
|
6
|
+
var _chainAsset$metadata;
|
|
7
|
+
return (_chainAsset$metadata = chainAsset.metadata) === null || _chainAsset$metadata === void 0 ? void 0 : _chainAsset$metadata.cardanoId;
|
|
8
|
+
}
|
|
9
|
+
export function getCardanoTxFee(payload) {
|
|
10
|
+
return BigInt(Transaction.from_hex(payload).body().fee().to_str());
|
|
11
|
+
}
|
|
12
|
+
export function getAdaBelongUtxo(payload, receiverAddress) {
|
|
13
|
+
const txOutputsRaw = Transaction.from_hex(payload).body().outputs().to_json();
|
|
14
|
+
const txOutputs = JSON.parse(txOutputsRaw);
|
|
15
|
+
const receiverUtxo = txOutputs.find(utxo => utxo.address === receiverAddress); // must has utxo to receiver
|
|
16
|
+
|
|
17
|
+
// @ts-ignore
|
|
18
|
+
return BigInt(receiverUtxo.amount.coin);
|
|
19
|
+
}
|
|
20
|
+
export const cborToBytes = hex => {
|
|
21
|
+
if (hex.length % 2 === 0 && /^[0-9A-F]*$/i.test(hex)) {
|
|
22
|
+
return Buffer.from(hex, 'hex');
|
|
23
|
+
}
|
|
24
|
+
return Buffer.from(hex, 'utf-8');
|
|
25
|
+
};
|
|
26
|
+
export async function retryCardanoTxStatus(fn, options) {
|
|
27
|
+
let lastError;
|
|
28
|
+
for (let i = 0; i < options.retries; i++) {
|
|
29
|
+
try {
|
|
30
|
+
return await fn();
|
|
31
|
+
} catch (e) {
|
|
32
|
+
if (e instanceof Error) {
|
|
33
|
+
lastError = e;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
// todo: improve the timeout tx
|
|
37
|
+
await new Promise(resolve => setTimeout(resolve, options.delay)); // wait for delay period, then recall the fn()
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
console.error('Cardano transaction timeout', lastError); // throw only last error, in case no successful result from fn()
|
|
42
|
+
|
|
43
|
+
return false;
|
|
44
|
+
}
|
|
45
|
+
export function splitCardanoId(id) {
|
|
46
|
+
if (id === 'lovelace') {
|
|
47
|
+
return {
|
|
48
|
+
cardanoId: id,
|
|
49
|
+
policyId: '',
|
|
50
|
+
nameHex: ''
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
if (!id || id.length < 56) {
|
|
54
|
+
throw new Error('The cardano native asset policy id must has 28 bytes in length.');
|
|
55
|
+
} else {
|
|
56
|
+
return {
|
|
57
|
+
cardanoId: id,
|
|
58
|
+
policyId: id.slice(0, 56),
|
|
59
|
+
nameHex: id.slice(56)
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { _ChainAsset, _ChainInfo } from '@subwallet/chain-list/types';
|
|
2
2
|
import { ExtrinsicType } from '@subwallet/extension-base/background/KoniTypes';
|
|
3
|
-
import { _EvmApi, _SubstrateApi, _TonApi } from '@subwallet/extension-base/services/chain-service/types';
|
|
3
|
+
import { _CardanoApi, _EvmApi, _SubstrateApi, _TonApi } from '@subwallet/extension-base/services/chain-service/types';
|
|
4
4
|
import { AccountJson, BalanceItem } from '@subwallet/extension-base/types';
|
|
5
5
|
/**
|
|
6
6
|
* @function getAccountJsonByAddress
|
|
@@ -12,4 +12,4 @@ import { AccountJson, BalanceItem } from '@subwallet/extension-base/types';
|
|
|
12
12
|
* @returns {AccountJson|null} - Account info or null if not found
|
|
13
13
|
*/
|
|
14
14
|
export declare const getAccountJsonByAddress: (address: string) => AccountJson | null;
|
|
15
|
-
export declare function subscribeBalance(addresses: string[], chains: string[], tokens: string[], _chainAssetMap: Record<string, _ChainAsset>, _chainInfoMap: Record<string, _ChainInfo>, substrateApiMap: Record<string, _SubstrateApi>, evmApiMap: Record<string, _EvmApi>, tonApiMap: Record<string, _TonApi>, callback: (rs: BalanceItem[]) => void, extrinsicType?: ExtrinsicType): () => void;
|
|
15
|
+
export declare function subscribeBalance(addresses: string[], chains: string[], tokens: string[], _chainAssetMap: Record<string, _ChainAsset>, _chainInfoMap: Record<string, _ChainInfo>, substrateApiMap: Record<string, _SubstrateApi>, evmApiMap: Record<string, _EvmApi>, tonApiMap: Record<string, _TonApi>, cardanoApiMap: Record<string, _CardanoApi>, callback: (rs: BalanceItem[]) => void, extrinsicType?: ExtrinsicType): () => void;
|
|
@@ -3,8 +3,9 @@
|
|
|
3
3
|
|
|
4
4
|
import { _AssetType } from '@subwallet/chain-list/types';
|
|
5
5
|
import { APIItemState } from '@subwallet/extension-base/background/KoniTypes';
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
6
|
+
import { subscribeCardanoBalance } from '@subwallet/extension-base/services/balance-service/helpers/subscribe/cardano';
|
|
7
|
+
import { _getSubstrateGenesisHash, _isChainBitcoinCompatible, _isChainCardanoCompatible, _isChainEvmCompatible, _isChainTonCompatible, _isPureCardanoChain, _isPureEvmChain, _isPureTonChain } from '@subwallet/extension-base/services/chain-service/utils';
|
|
8
|
+
import { filterAssetsByChainAndType, getAddressesByChainTypeMap, pairToAccount } from '@subwallet/extension-base/utils';
|
|
8
9
|
import keyring from '@subwallet/ui-keyring';
|
|
9
10
|
import { subscribeTonBalance } from "./ton/ton.js";
|
|
10
11
|
import { subscribeEVMBalance } from "./evm.js";
|
|
@@ -37,16 +38,19 @@ export const getAccountJsonByAddress = address => {
|
|
|
37
38
|
const filterAddress = (addresses, chainInfo) => {
|
|
38
39
|
const {
|
|
39
40
|
bitcoin,
|
|
41
|
+
cardano,
|
|
40
42
|
evm,
|
|
41
43
|
substrate,
|
|
42
44
|
ton
|
|
43
|
-
} =
|
|
45
|
+
} = getAddressesByChainTypeMap(addresses);
|
|
44
46
|
if (_isChainEvmCompatible(chainInfo)) {
|
|
45
|
-
return [evm, [...bitcoin, ...substrate, ...ton]];
|
|
47
|
+
return [evm, [...bitcoin, ...substrate, ...ton, ...cardano]];
|
|
46
48
|
} else if (_isChainBitcoinCompatible(chainInfo)) {
|
|
47
|
-
return [bitcoin, [...evm, ...substrate, ...ton]];
|
|
49
|
+
return [bitcoin, [...evm, ...substrate, ...ton, ...cardano]];
|
|
48
50
|
} else if (_isChainTonCompatible(chainInfo)) {
|
|
49
|
-
return [ton, [...bitcoin, ...evm, ...substrate]];
|
|
51
|
+
return [ton, [...bitcoin, ...evm, ...substrate, ...cardano]];
|
|
52
|
+
} else if (_isChainCardanoCompatible(chainInfo)) {
|
|
53
|
+
return [cardano, [...bitcoin, ...evm, ...substrate, ...ton]];
|
|
50
54
|
} else {
|
|
51
55
|
const fetchList = [];
|
|
52
56
|
const unfetchList = [];
|
|
@@ -72,11 +76,11 @@ const filterAddress = (addresses, chainInfo) => {
|
|
|
72
76
|
fetchList.push(address);
|
|
73
77
|
}
|
|
74
78
|
});
|
|
75
|
-
return [fetchList, [...unfetchList, ...bitcoin, ...evm, ...ton]];
|
|
79
|
+
return [fetchList, [...unfetchList, ...bitcoin, ...evm, ...ton, ...cardano]];
|
|
76
80
|
}
|
|
77
81
|
};
|
|
78
82
|
const handleUnsupportedOrPendingAddresses = (addresses, chainSlug, chainAssetMap, state, callback) => {
|
|
79
|
-
const tokens = filterAssetsByChainAndType(chainAssetMap, chainSlug, [_AssetType.NATIVE, _AssetType.ERC20, _AssetType.PSP22, _AssetType.LOCAL, _AssetType.GRC20, _AssetType.VFT]);
|
|
83
|
+
const tokens = filterAssetsByChainAndType(chainAssetMap, chainSlug, [_AssetType.NATIVE, _AssetType.ERC20, _AssetType.PSP22, _AssetType.LOCAL, _AssetType.GRC20, _AssetType.VFT, _AssetType.TEP74, _AssetType.CIP26]);
|
|
80
84
|
const now = new Date().getTime();
|
|
81
85
|
Object.values(tokens).forEach(token => {
|
|
82
86
|
const items = addresses.map(address => ({
|
|
@@ -92,7 +96,7 @@ const handleUnsupportedOrPendingAddresses = (addresses, chainSlug, chainAssetMap
|
|
|
92
96
|
};
|
|
93
97
|
|
|
94
98
|
// main subscription, use for multiple chains, multiple addresses and multiple tokens
|
|
95
|
-
export function subscribeBalance(addresses, chains, tokens, _chainAssetMap, _chainInfoMap, substrateApiMap, evmApiMap, tonApiMap, callback, extrinsicType) {
|
|
99
|
+
export function subscribeBalance(addresses, chains, tokens, _chainAssetMap, _chainInfoMap, substrateApiMap, evmApiMap, tonApiMap, cardanoApiMap, callback, extrinsicType) {
|
|
96
100
|
// Filter chain and token
|
|
97
101
|
const chainAssetMap = Object.fromEntries(Object.entries(_chainAssetMap).filter(([token]) => tokens.includes(token)));
|
|
98
102
|
const chainInfoMap = Object.fromEntries(Object.entries(_chainInfoMap).filter(([chain]) => chains.includes(chain)));
|
|
@@ -124,6 +128,16 @@ export function subscribeBalance(addresses, chains, tokens, _chainAssetMap, _cha
|
|
|
124
128
|
tonApi
|
|
125
129
|
});
|
|
126
130
|
}
|
|
131
|
+
const cardanoApi = cardanoApiMap[chainSlug];
|
|
132
|
+
if (_isPureCardanoChain(chainInfo)) {
|
|
133
|
+
return subscribeCardanoBalance({
|
|
134
|
+
addresses: useAddresses,
|
|
135
|
+
assetMap: chainAssetMap,
|
|
136
|
+
callback,
|
|
137
|
+
chainInfo,
|
|
138
|
+
cardanoApi
|
|
139
|
+
});
|
|
140
|
+
}
|
|
127
141
|
|
|
128
142
|
// If the chain is not ready, return pending state
|
|
129
143
|
if (!substrateApiMap[chainSlug].isApiReady) {
|
|
@@ -10,7 +10,7 @@ import { Buffer } from 'buffer';
|
|
|
10
10
|
export declare function getJettonMasterContract(tonApi: _TonApi, contractAddress: string): OpenedContract<JettonMaster>;
|
|
11
11
|
export declare function getJettonWalletContract(jettonMasterContract: OpenedContract<JettonMaster>, tonApi: _TonApi, ownerAddress: string): Promise<OpenedContract<JettonWallet>>;
|
|
12
12
|
export declare function externalMessage(contract: TonWalletContract, seqno: number, body: Cell): Cell;
|
|
13
|
-
export declare function
|
|
13
|
+
export declare function retryTonTxStatus<T>(fn: () => Promise<T>, options: {
|
|
14
14
|
retries: number;
|
|
15
15
|
delay: number;
|
|
16
16
|
}): Promise<T>;
|
|
@@ -23,7 +23,7 @@ export function externalMessage(contract, seqno, body) {
|
|
|
23
23
|
body: body
|
|
24
24
|
}))).endCell();
|
|
25
25
|
}
|
|
26
|
-
export async function
|
|
26
|
+
export async function retryTonTxStatus(fn, options) {
|
|
27
27
|
let lastError;
|
|
28
28
|
for (let i = 0; i < options.retries; i++) {
|
|
29
29
|
try {
|
|
@@ -191,8 +191,9 @@ export class BalanceService {
|
|
|
191
191
|
const evmApiMap = this.state.chainService.getEvmApiMap();
|
|
192
192
|
const substrateApiMap = this.state.chainService.getSubstrateApiMap();
|
|
193
193
|
const tonApiMap = this.state.chainService.getTonApiMap();
|
|
194
|
+
const cardanoApiMap = this.state.chainService.getCardanoApiMap();
|
|
194
195
|
let unsub = noop;
|
|
195
|
-
unsub = subscribeBalance([address], [chain], [tSlug], assetMap, chainInfoMap, substrateApiMap, evmApiMap, tonApiMap, result => {
|
|
196
|
+
unsub = subscribeBalance([address], [chain], [tSlug], assetMap, chainInfoMap, substrateApiMap, evmApiMap, tonApiMap, cardanoApiMap, result => {
|
|
196
197
|
const rs = result[0];
|
|
197
198
|
let value;
|
|
198
199
|
switch (balanceType) {
|
|
@@ -362,13 +363,14 @@ export class BalanceService {
|
|
|
362
363
|
const evmApiMap = this.state.chainService.getEvmApiMap();
|
|
363
364
|
const substrateApiMap = this.state.chainService.getSubstrateApiMap();
|
|
364
365
|
const tonApiMap = this.state.chainService.getTonApiMap();
|
|
366
|
+
const cardanoApiMap = this.state.chainService.getCardanoApiMap();
|
|
365
367
|
const activeChainSlugs = Object.keys(this.state.getActiveChainInfoMap());
|
|
366
368
|
const assetState = this.state.chainService.subscribeAssetSettings().value;
|
|
367
369
|
const assets = Object.values(assetMap).filter(asset => {
|
|
368
370
|
var _assetState$asset$slu;
|
|
369
371
|
return activeChainSlugs.includes(asset.originChain) && ((_assetState$asset$slu = assetState[asset.slug]) === null || _assetState$asset$slu === void 0 ? void 0 : _assetState$asset$slu.visible);
|
|
370
372
|
}).map(asset => asset.slug);
|
|
371
|
-
const unsub = subscribeBalance(addresses, activeChainSlugs, assets, assetMap, chainInfoMap, substrateApiMap, evmApiMap, tonApiMap, result => {
|
|
373
|
+
const unsub = subscribeBalance(addresses, activeChainSlugs, assets, assetMap, chainInfoMap, substrateApiMap, evmApiMap, tonApiMap, cardanoApiMap, result => {
|
|
372
374
|
!cancel && this.setBalanceItem(result);
|
|
373
375
|
}, ExtrinsicType.TRANSFER_BALANCE);
|
|
374
376
|
const unsub2 = this.state.subscribeMantaPayBalance();
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { _ChainAsset } from '@subwallet/chain-list/types';
|
|
2
|
+
import { _CardanoApi } from '@subwallet/extension-base/services/chain-service/types';
|
|
3
|
+
export interface CardanoTransactionConfigProps {
|
|
4
|
+
tokenInfo: _ChainAsset;
|
|
5
|
+
nativeTokenInfo: _ChainAsset;
|
|
6
|
+
from: string;
|
|
7
|
+
to: string;
|
|
8
|
+
networkKey: string;
|
|
9
|
+
value: string;
|
|
10
|
+
transferAll: boolean;
|
|
11
|
+
cardanoTtlOffset: number;
|
|
12
|
+
cardanoApi: _CardanoApi;
|
|
13
|
+
}
|
|
14
|
+
export interface CardanoTransactionConfig {
|
|
15
|
+
from: string;
|
|
16
|
+
to: string;
|
|
17
|
+
networkKey: string;
|
|
18
|
+
value: string;
|
|
19
|
+
transferAll: boolean;
|
|
20
|
+
cardanoTtlOffset: number;
|
|
21
|
+
estimateCardanoFee: string;
|
|
22
|
+
cardanoPayload: string;
|
|
23
|
+
}
|
|
24
|
+
export declare function createCardanoTransaction(params: CardanoTransactionConfigProps): Promise<[CardanoTransactionConfig | null, string]>;
|