@unisat/wallet-state 1.2.0 → 1.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/index.d.mts +9 -1
- package/lib/index.d.ts +2827 -31
- package/lib/index.js +229 -101
- package/lib/index.js.map +1 -1
- package/lib/index.mjs +231 -104
- package/lib/index.mjs.map +1 -1
- package/lib/types/index.d.ts +34 -3
- package/package.json +3 -3
- package/src/context/NavigationContext.tsx +1 -0
- package/src/hooks/accounts.ts +7 -2
- package/src/hooks/transactions.ts +52 -8
- package/src/hooks/ui.ts +77 -65
- package/src/ui-hooks/useAddressTypeScreenLogic.ts +22 -8
- package/src/ui-hooks/useAlkanesNFTScreenLogic.ts +3 -2
- package/src/ui-hooks/useAlkanesTokenScreenLogic.ts +4 -2
- package/src/ui-hooks/useBRC20TokenScreenLogic.ts +4 -1
- package/src/ui-hooks/useCAT20TokenScreenLogic.ts +11 -2
- package/src/ui-hooks/useCAT721NFTScreenLogic.ts +3 -1
- package/src/ui-hooks/useOrdinalsInscriptionScreenLogic.ts +3 -2
- package/src/ui-hooks/useRunesTokenScreenLogic.ts +4 -2
- package/src/ui-hooks/useSendOrdinalsInscriptionScreenLogic.ts +2 -5
- package/src/ui-hooks/useSettingsTabScreenLogic.ts +18 -3
- package/src/ui-hooks/useSignMessageLogic.ts +37 -16
- package/src/ui-hooks/useSignPsbtLogic.ts +31 -15
- package/lib/actions/global.d.ts +0 -2
- package/lib/actions/global.d.ts.map +0 -1
- package/lib/context/ApprovalContext.d.ts +0 -9
- package/lib/context/ApprovalContext.d.ts.map +0 -1
- package/lib/context/DeviceContext.d.ts +0 -17
- package/lib/context/DeviceContext.d.ts.map +0 -1
- package/lib/context/I18nContext.d.ts +0 -13
- package/lib/context/I18nContext.d.ts.map +0 -1
- package/lib/context/NavigationContext.d.ts +0 -218
- package/lib/context/NavigationContext.d.ts.map +0 -1
- package/lib/context/PriceContext.d.ts +0 -13
- package/lib/context/PriceContext.d.ts.map +0 -1
- package/lib/context/StorageContext.d.ts +0 -60
- package/lib/context/StorageContext.d.ts.map +0 -1
- package/lib/context/ToolsContext.d.ts +0 -17
- package/lib/context/ToolsContext.d.ts.map +0 -1
- package/lib/context/WalletContext.d.ts +0 -493
- package/lib/context/WalletContext.d.ts.map +0 -1
- package/lib/context/index.d.ts +0 -9
- package/lib/context/index.d.ts.map +0 -1
- package/lib/hooks/accounts.d.ts +0 -34
- package/lib/hooks/accounts.d.ts.map +0 -1
- package/lib/hooks/base.d.ts +0 -14
- package/lib/hooks/base.d.ts.map +0 -1
- package/lib/hooks/browser.d.ts +0 -32
- package/lib/hooks/browser.d.ts.map +0 -1
- package/lib/hooks/discovery.d.ts +0 -17
- package/lib/hooks/discovery.d.ts.map +0 -1
- package/lib/hooks/global.d.ts +0 -43
- package/lib/hooks/global.d.ts.map +0 -1
- package/lib/hooks/index.d.ts +0 -10
- package/lib/hooks/index.d.ts.map +0 -1
- package/lib/hooks/keyrings.d.ts +0 -5
- package/lib/hooks/keyrings.d.ts.map +0 -1
- package/lib/hooks/settings.d.ts +0 -43
- package/lib/hooks/settings.d.ts.map +0 -1
- package/lib/hooks/transactions.d.ts +0 -67
- package/lib/hooks/transactions.d.ts.map +0 -1
- package/lib/hooks/ui.d.ts +0 -112
- package/lib/hooks/ui.d.ts.map +0 -1
- package/lib/index.d.ts.map +0 -1
- package/lib/reducers/accounts.d.ts +0 -49
- package/lib/reducers/accounts.d.ts.map +0 -1
- package/lib/reducers/browser.d.ts +0 -49
- package/lib/reducers/browser.d.ts.map +0 -1
- package/lib/reducers/discovery.d.ts +0 -22
- package/lib/reducers/discovery.d.ts.map +0 -1
- package/lib/reducers/global.d.ts +0 -35
- package/lib/reducers/global.d.ts.map +0 -1
- package/lib/reducers/index.d.ts +0 -9
- package/lib/reducers/index.d.ts.map +0 -1
- package/lib/reducers/keyrings.d.ts +0 -10
- package/lib/reducers/keyrings.d.ts.map +0 -1
- package/lib/reducers/settings.d.ts +0 -16
- package/lib/reducers/settings.d.ts.map +0 -1
- package/lib/reducers/transactions.d.ts +0 -61
- package/lib/reducers/transactions.d.ts.map +0 -1
- package/lib/reducers/ui.d.ts +0 -55
- package/lib/reducers/ui.d.ts.map +0 -1
- package/lib/types/index.d.ts.map +0 -1
- package/lib/types/ui.d.ts +0 -31
- package/lib/types/ui.d.ts.map +0 -1
- package/lib/ui-hooks/index.d.ts +0 -55
- package/lib/ui-hooks/index.d.ts.map +0 -1
- package/lib/ui-hooks/useActionOverviewSectionLogic.d.ts +0 -12
- package/lib/ui-hooks/useActionOverviewSectionLogic.d.ts.map +0 -1
- package/lib/ui-hooks/useAddressTypeScreenLogic.d.ts +0 -19
- package/lib/ui-hooks/useAddressTypeScreenLogic.d.ts.map +0 -1
- package/lib/ui-hooks/useAlkanesBalanceCardLogic.d.ts +0 -19
- package/lib/ui-hooks/useAlkanesBalanceCardLogic.d.ts.map +0 -1
- package/lib/ui-hooks/useAlkanesCollectionListLogic.d.ts +0 -11
- package/lib/ui-hooks/useAlkanesCollectionListLogic.d.ts.map +0 -1
- package/lib/ui-hooks/useAlkanesListLogic.d.ts +0 -14
- package/lib/ui-hooks/useAlkanesListLogic.d.ts.map +0 -1
- package/lib/ui-hooks/useAlkanesNFTListLogic.d.ts +0 -11
- package/lib/ui-hooks/useAlkanesNFTListLogic.d.ts.map +0 -1
- package/lib/ui-hooks/useAlkanesNFTScreenLogic.d.ts +0 -9
- package/lib/ui-hooks/useAlkanesNFTScreenLogic.d.ts.map +0 -1
- package/lib/ui-hooks/useAlkanesTokenScreenLogic.d.ts +0 -22
- package/lib/ui-hooks/useAlkanesTokenScreenLogic.d.ts.map +0 -1
- package/lib/ui-hooks/useAmountInputLogic.d.ts +0 -22
- package/lib/ui-hooks/useAmountInputLogic.d.ts.map +0 -1
- package/lib/ui-hooks/useAnnouncementCardLogic.d.ts +0 -11
- package/lib/ui-hooks/useAnnouncementCardLogic.d.ts.map +0 -1
- package/lib/ui-hooks/useBRC20BalanceCardLogic.d.ts +0 -26
- package/lib/ui-hooks/useBRC20BalanceCardLogic.d.ts.map +0 -1
- package/lib/ui-hooks/useBRC20InscribeTransferLogic.d.ts +0 -103
- package/lib/ui-hooks/useBRC20InscribeTransferLogic.d.ts.map +0 -1
- package/lib/ui-hooks/useBRC20ListLogic.d.ts +0 -14
- package/lib/ui-hooks/useBRC20ListLogic.d.ts.map +0 -1
- package/lib/ui-hooks/useBRC20ProgListLogic.d.ts +0 -14
- package/lib/ui-hooks/useBRC20ProgListLogic.d.ts.map +0 -1
- package/lib/ui-hooks/useBRC20SendScreenLogic.d.ts +0 -67
- package/lib/ui-hooks/useBRC20SendScreenLogic.d.ts.map +0 -1
- package/lib/ui-hooks/useBRC20SingleStepScreenLogic.d.ts +0 -36
- package/lib/ui-hooks/useBRC20SingleStepScreenLogic.d.ts.map +0 -1
- package/lib/ui-hooks/useBRC20TokenScreenLogic.d.ts +0 -75
- package/lib/ui-hooks/useBRC20TokenScreenLogic.d.ts.map +0 -1
- package/lib/ui-hooks/useBalanceCardLogic.d.ts +0 -26
- package/lib/ui-hooks/useBalanceCardLogic.d.ts.map +0 -1
- package/lib/ui-hooks/useBtcDisplayLogic.d.ts +0 -5
- package/lib/ui-hooks/useBtcDisplayLogic.d.ts.map +0 -1
- package/lib/ui-hooks/useCAT20BalanceCardLogic.d.ts +0 -20
- package/lib/ui-hooks/useCAT20BalanceCardLogic.d.ts.map +0 -1
- package/lib/ui-hooks/useCAT20ListLogic.d.ts +0 -14
- package/lib/ui-hooks/useCAT20ListLogic.d.ts.map +0 -1
- package/lib/ui-hooks/useCAT20TokenScreenLogic.d.ts +0 -19
- package/lib/ui-hooks/useCAT20TokenScreenLogic.d.ts.map +0 -1
- package/lib/ui-hooks/useCAT721ListLogic.d.ts +0 -11
- package/lib/ui-hooks/useCAT721ListLogic.d.ts.map +0 -1
- package/lib/ui-hooks/useCAT721NFTScreenLogic.d.ts +0 -9
- package/lib/ui-hooks/useCAT721NFTScreenLogic.d.ts.map +0 -1
- package/lib/ui-hooks/useCreatePasswordScreenLogic.d.ts +0 -27
- package/lib/ui-hooks/useCreatePasswordScreenLogic.d.ts.map +0 -1
- package/lib/ui-hooks/useCreateWalletLogicImportWordsStep.d.ts +0 -78
- package/lib/ui-hooks/useCreateWalletLogicImportWordsStep.d.ts.map +0 -1
- package/lib/ui-hooks/useEditAccountNameScreenLogic.d.ts +0 -18
- package/lib/ui-hooks/useEditAccountNameScreenLogic.d.ts.map +0 -1
- package/lib/ui-hooks/useEditContactScreenLogic.d.ts +0 -24
- package/lib/ui-hooks/useEditContactScreenLogic.d.ts.map +0 -1
- package/lib/ui-hooks/useEditWalletNameScreenLogic.d.ts +0 -15
- package/lib/ui-hooks/useEditWalletNameScreenLogic.d.ts.map +0 -1
- package/lib/ui-hooks/useExportMnemonicsScreenLogic.d.ts +0 -18
- package/lib/ui-hooks/useExportMnemonicsScreenLogic.d.ts.map +0 -1
- package/lib/ui-hooks/useExportPrivateKeyScreenLogic.d.ts +0 -17
- package/lib/ui-hooks/useExportPrivateKeyScreenLogic.d.ts.map +0 -1
- package/lib/ui-hooks/useFeeRateBarLogic.d.ts +0 -34
- package/lib/ui-hooks/useFeeRateBarLogic.d.ts.map +0 -1
- package/lib/ui-hooks/useInfiniteList.d.ts +0 -19
- package/lib/ui-hooks/useInfiniteList.d.ts.map +0 -1
- package/lib/ui-hooks/useInscriptionListLogic.d.ts +0 -11
- package/lib/ui-hooks/useInscriptionListLogic.d.ts.map +0 -1
- package/lib/ui-hooks/useLockTimePageLogic.d.ts +0 -11
- package/lib/ui-hooks/useLockTimePageLogic.d.ts.map +0 -1
- package/lib/ui-hooks/useNotificationsLogic.d.ts +0 -14
- package/lib/ui-hooks/useNotificationsLogic.d.ts.map +0 -1
- package/lib/ui-hooks/useOrdinalsInscriptionScreenLogic.d.ts +0 -27
- package/lib/ui-hooks/useOrdinalsInscriptionScreenLogic.d.ts.map +0 -1
- package/lib/ui-hooks/useRunesBalanceCardLogic.d.ts +0 -19
- package/lib/ui-hooks/useRunesBalanceCardLogic.d.ts.map +0 -1
- package/lib/ui-hooks/useRunesListLogic.d.ts +0 -14
- package/lib/ui-hooks/useRunesListLogic.d.ts.map +0 -1
- package/lib/ui-hooks/useRunesTokenScreenLogic.d.ts +0 -22
- package/lib/ui-hooks/useRunesTokenScreenLogic.d.ts.map +0 -1
- package/lib/ui-hooks/useSecurityCardLogic.d.ts +0 -1
- package/lib/ui-hooks/useSecurityCardLogic.d.ts.map +0 -1
- package/lib/ui-hooks/useSendAlkanesNFTScreenLogic.d.ts +0 -32
- package/lib/ui-hooks/useSendAlkanesNFTScreenLogic.d.ts.map +0 -1
- package/lib/ui-hooks/useSendAlkanesScreenLogic.d.ts +0 -37
- package/lib/ui-hooks/useSendAlkanesScreenLogic.d.ts.map +0 -1
- package/lib/ui-hooks/useSendCAT20ScreenLogic.d.ts +0 -44
- package/lib/ui-hooks/useSendCAT20ScreenLogic.d.ts.map +0 -1
- package/lib/ui-hooks/useSendCAT721ScreenLogic.d.ts +0 -40
- package/lib/ui-hooks/useSendCAT721ScreenLogic.d.ts.map +0 -1
- package/lib/ui-hooks/useSendOrdinalsInscriptionScreenLogic.d.ts +0 -22
- package/lib/ui-hooks/useSendOrdinalsInscriptionScreenLogic.d.ts.map +0 -1
- package/lib/ui-hooks/useSendRunesScreenLogic.d.ts +0 -30
- package/lib/ui-hooks/useSendRunesScreenLogic.d.ts.map +0 -1
- package/lib/ui-hooks/useSettingsTabScreenLogic.d.ts +0 -72
- package/lib/ui-hooks/useSettingsTabScreenLogic.d.ts.map +0 -1
- package/lib/ui-hooks/useSignMessageLogic.d.ts +0 -54
- package/lib/ui-hooks/useSignMessageLogic.d.ts.map +0 -1
- package/lib/ui-hooks/useSignPsbtLogic.d.ts +0 -82
- package/lib/ui-hooks/useSignPsbtLogic.d.ts.map +0 -1
- package/lib/ui-hooks/useSplitOrdinalsInscriptionScreenLogic.d.ts +0 -15
- package/lib/ui-hooks/useSplitOrdinalsInscriptionScreenLogic.d.ts.map +0 -1
- package/lib/ui-hooks/useTxConfirmScreenLogic.d.ts +0 -8
- package/lib/ui-hooks/useTxConfirmScreenLogic.d.ts.map +0 -1
- package/lib/ui-hooks/useTxCreateScreenLogic.d.ts +0 -28
- package/lib/ui-hooks/useTxCreateScreenLogic.d.ts.map +0 -1
- package/lib/ui-hooks/useTxFailScreenLogic.d.ts +0 -7
- package/lib/ui-hooks/useTxFailScreenLogic.d.ts.map +0 -1
- package/lib/ui-hooks/useTxSuccessScreenLogic.d.ts +0 -8
- package/lib/ui-hooks/useTxSuccessScreenLogic.d.ts.map +0 -1
- package/lib/updater/accounts.d.ts +0 -2
- package/lib/updater/accounts.d.ts.map +0 -1
- package/lib/updater/index.d.ts +0 -2
- package/lib/updater/index.d.ts.map +0 -1
- package/lib/utils/bitcoin-utils.d.ts +0 -7
- package/lib/utils/bitcoin-utils.d.ts.map +0 -1
- package/lib/utils/eventBus.d.ts +0 -12
- package/lib/utils/eventBus.d.ts.map +0 -1
- package/lib/utils/password-utils.d.ts +0 -12
- package/lib/utils/password-utils.d.ts.map +0 -1
- package/lib/utils/ui-utils.d.ts +0 -4
- package/lib/utils/ui-utils.d.ts.map +0 -1
package/lib/index.js
CHANGED
|
@@ -1104,6 +1104,10 @@ function useCurrentAddress() {
|
|
|
1104
1104
|
const accountsState = useAccountsState();
|
|
1105
1105
|
return accountsState.current.address;
|
|
1106
1106
|
}
|
|
1107
|
+
function useCurrentAccountCapabilities() {
|
|
1108
|
+
const currentAccount = useCurrentAccount();
|
|
1109
|
+
return React.useMemo(() => walletShared.getAccountCapabilities(currentAccount), [currentAccount]);
|
|
1110
|
+
}
|
|
1107
1111
|
function useAccounts() {
|
|
1108
1112
|
const accountsState = useAccountsState();
|
|
1109
1113
|
return accountsState.accounts;
|
|
@@ -2149,6 +2153,7 @@ function usePrepareSendBTCCallback() {
|
|
|
2149
2153
|
const fromAddress = useAccountAddress();
|
|
2150
2154
|
const utxos = useUtxos();
|
|
2151
2155
|
const fetchUtxos = useFetchUtxosCallback();
|
|
2156
|
+
const accountCapabilities = useCurrentAccountCapabilities();
|
|
2152
2157
|
const { t } = useI18n();
|
|
2153
2158
|
return React.useCallback(
|
|
2154
2159
|
async ({
|
|
@@ -2160,6 +2165,9 @@ function usePrepareSendBTCCallback() {
|
|
|
2160
2165
|
disableAutoAdjust,
|
|
2161
2166
|
enableRBF
|
|
2162
2167
|
}) => {
|
|
2168
|
+
if (!accountCapabilities.canCreateSigningRequest) {
|
|
2169
|
+
throw new Error(t("not_supported"));
|
|
2170
|
+
}
|
|
2163
2171
|
let _utxos = utxos;
|
|
2164
2172
|
if (_utxos.length === 0) {
|
|
2165
2173
|
_utxos = await fetchUtxos();
|
|
@@ -2193,12 +2201,14 @@ function usePrepareSendBTCCallback() {
|
|
|
2193
2201
|
}
|
|
2194
2202
|
return res;
|
|
2195
2203
|
},
|
|
2196
|
-
[dispatch, wallet, fromAddress, utxos, fetchUtxos]
|
|
2204
|
+
[dispatch, wallet, fromAddress, utxos, fetchUtxos, accountCapabilities.canCreateSigningRequest, t]
|
|
2197
2205
|
);
|
|
2198
2206
|
}
|
|
2199
2207
|
function usePrepareSendBypassHeadOffsetsCallback() {
|
|
2200
2208
|
const dispatch = useAppDispatch();
|
|
2201
2209
|
const wallet = useWallet();
|
|
2210
|
+
const accountCapabilities = useCurrentAccountCapabilities();
|
|
2211
|
+
const { t } = useI18n();
|
|
2202
2212
|
return React.useCallback(
|
|
2203
2213
|
async ({
|
|
2204
2214
|
toAddressInfo,
|
|
@@ -2206,6 +2216,9 @@ function usePrepareSendBypassHeadOffsetsCallback() {
|
|
|
2206
2216
|
feeRate,
|
|
2207
2217
|
enableRBF
|
|
2208
2218
|
}) => {
|
|
2219
|
+
if (!accountCapabilities.canCreateSigningRequest) {
|
|
2220
|
+
throw new Error(t("not_supported"));
|
|
2221
|
+
}
|
|
2209
2222
|
const res = await wallet.createSendBTCOffsetPsbt(
|
|
2210
2223
|
[
|
|
2211
2224
|
{
|
|
@@ -2218,7 +2231,7 @@ function usePrepareSendBypassHeadOffsetsCallback() {
|
|
|
2218
2231
|
);
|
|
2219
2232
|
return res;
|
|
2220
2233
|
},
|
|
2221
|
-
[dispatch, wallet]
|
|
2234
|
+
[dispatch, wallet, accountCapabilities.canCreateSigningRequest, t]
|
|
2222
2235
|
);
|
|
2223
2236
|
}
|
|
2224
2237
|
function usePushBitcoinTxCallback() {
|
|
@@ -2266,6 +2279,8 @@ function usePrepareSendOrdinalsInscriptionCallback() {
|
|
|
2266
2279
|
const fromAddress = useAccountAddress();
|
|
2267
2280
|
const utxos = useUtxos();
|
|
2268
2281
|
const fetchUtxos = useFetchUtxosCallback();
|
|
2282
|
+
const accountCapabilities = useCurrentAccountCapabilities();
|
|
2283
|
+
const { t } = useI18n();
|
|
2269
2284
|
return React.useCallback(
|
|
2270
2285
|
async ({
|
|
2271
2286
|
toAddressInfo,
|
|
@@ -2274,6 +2289,9 @@ function usePrepareSendOrdinalsInscriptionCallback() {
|
|
|
2274
2289
|
outputValue,
|
|
2275
2290
|
enableRBF
|
|
2276
2291
|
}) => {
|
|
2292
|
+
if (!accountCapabilities.canCreateSigningRequest) {
|
|
2293
|
+
throw new Error(t("not_supported"));
|
|
2294
|
+
}
|
|
2277
2295
|
if (!feeRate) {
|
|
2278
2296
|
const summary = await wallet.getFeeSummary();
|
|
2279
2297
|
feeRate = summary.list[1].feeRate;
|
|
@@ -2292,7 +2310,7 @@ function usePrepareSendOrdinalsInscriptionCallback() {
|
|
|
2292
2310
|
});
|
|
2293
2311
|
return toSignData;
|
|
2294
2312
|
},
|
|
2295
|
-
[dispatch, wallet, fromAddress, utxos]
|
|
2313
|
+
[dispatch, wallet, fromAddress, utxos, accountCapabilities.canCreateSigningRequest, t]
|
|
2296
2314
|
);
|
|
2297
2315
|
}
|
|
2298
2316
|
function usePrepareSendOrdinalsInscriptionsCallback() {
|
|
@@ -2301,6 +2319,8 @@ function usePrepareSendOrdinalsInscriptionsCallback() {
|
|
|
2301
2319
|
const fromAddress = useAccountAddress();
|
|
2302
2320
|
const fetchUtxos = useFetchUtxosCallback();
|
|
2303
2321
|
const utxos = useUtxos();
|
|
2322
|
+
const accountCapabilities = useCurrentAccountCapabilities();
|
|
2323
|
+
const { t } = useI18n();
|
|
2304
2324
|
return React.useCallback(
|
|
2305
2325
|
async ({
|
|
2306
2326
|
toAddressInfo,
|
|
@@ -2308,6 +2328,9 @@ function usePrepareSendOrdinalsInscriptionsCallback() {
|
|
|
2308
2328
|
feeRate,
|
|
2309
2329
|
enableRBF
|
|
2310
2330
|
}) => {
|
|
2331
|
+
if (!accountCapabilities.canCreateSigningRequest) {
|
|
2332
|
+
throw new Error(t("not_supported"));
|
|
2333
|
+
}
|
|
2311
2334
|
if (!feeRate) {
|
|
2312
2335
|
const summary = await wallet.getFeeSummary();
|
|
2313
2336
|
feeRate = summary.list[1].feeRate;
|
|
@@ -2325,7 +2348,7 @@ function usePrepareSendOrdinalsInscriptionsCallback() {
|
|
|
2325
2348
|
});
|
|
2326
2349
|
return res;
|
|
2327
2350
|
},
|
|
2328
|
-
[dispatch, wallet, fromAddress, utxos]
|
|
2351
|
+
[dispatch, wallet, fromAddress, utxos, accountCapabilities.canCreateSigningRequest, t]
|
|
2329
2352
|
);
|
|
2330
2353
|
}
|
|
2331
2354
|
function useCreateSplitTxCallback() {
|
|
@@ -2335,6 +2358,8 @@ function useCreateSplitTxCallback() {
|
|
|
2335
2358
|
const utxos = useUtxos();
|
|
2336
2359
|
const fetchUtxos = useFetchUtxosCallback();
|
|
2337
2360
|
useCurrentAccount();
|
|
2361
|
+
const accountCapabilities = useCurrentAccountCapabilities();
|
|
2362
|
+
const { t } = useI18n();
|
|
2338
2363
|
return React.useCallback(
|
|
2339
2364
|
async ({
|
|
2340
2365
|
inscriptionId,
|
|
@@ -2342,6 +2367,9 @@ function useCreateSplitTxCallback() {
|
|
|
2342
2367
|
outputValue,
|
|
2343
2368
|
enableRBF
|
|
2344
2369
|
}) => {
|
|
2370
|
+
if (!accountCapabilities.canCreateSigningRequest) {
|
|
2371
|
+
throw new Error(t("not_supported"));
|
|
2372
|
+
}
|
|
2345
2373
|
let btcUtxos = utxos;
|
|
2346
2374
|
if (btcUtxos.length === 0) {
|
|
2347
2375
|
btcUtxos = await fetchUtxos();
|
|
@@ -2355,7 +2383,7 @@ function useCreateSplitTxCallback() {
|
|
|
2355
2383
|
});
|
|
2356
2384
|
return res;
|
|
2357
2385
|
},
|
|
2358
|
-
[dispatch, wallet, fromAddress, utxos]
|
|
2386
|
+
[dispatch, wallet, fromAddress, utxos, accountCapabilities.canCreateSigningRequest, t]
|
|
2359
2387
|
);
|
|
2360
2388
|
}
|
|
2361
2389
|
function usePushOrdinalsTxCallback() {
|
|
@@ -2454,6 +2482,8 @@ function usePrepareSendRunesCallback() {
|
|
|
2454
2482
|
const assetUtxosRunes = useAssetUtxosRunes();
|
|
2455
2483
|
const fetchAssetUtxosRunes = useFetchAssetUtxosRunesCallback();
|
|
2456
2484
|
const account = useCurrentAccount();
|
|
2485
|
+
const accountCapabilities = useCurrentAccountCapabilities();
|
|
2486
|
+
const { t } = useI18n();
|
|
2457
2487
|
return React.useCallback(
|
|
2458
2488
|
async ({
|
|
2459
2489
|
toAddressInfo,
|
|
@@ -2463,6 +2493,9 @@ function usePrepareSendRunesCallback() {
|
|
|
2463
2493
|
feeRate,
|
|
2464
2494
|
enableRBF
|
|
2465
2495
|
}) => {
|
|
2496
|
+
if (!accountCapabilities.canCreateSigningRequest) {
|
|
2497
|
+
throw new Error(t("not_supported"));
|
|
2498
|
+
}
|
|
2466
2499
|
if (!feeRate) {
|
|
2467
2500
|
const summary = await wallet.getFeeSummary();
|
|
2468
2501
|
feeRate = summary.list[1].feeRate;
|
|
@@ -2487,7 +2520,17 @@ function usePrepareSendRunesCallback() {
|
|
|
2487
2520
|
});
|
|
2488
2521
|
return toSignData;
|
|
2489
2522
|
},
|
|
2490
|
-
[
|
|
2523
|
+
[
|
|
2524
|
+
dispatch,
|
|
2525
|
+
wallet,
|
|
2526
|
+
fromAddress,
|
|
2527
|
+
utxos,
|
|
2528
|
+
assetUtxosRunes,
|
|
2529
|
+
fetchAssetUtxosRunes,
|
|
2530
|
+
account,
|
|
2531
|
+
accountCapabilities.canCreateSigningRequest,
|
|
2532
|
+
t
|
|
2533
|
+
]
|
|
2491
2534
|
);
|
|
2492
2535
|
}
|
|
2493
2536
|
function useRunesTx() {
|
|
@@ -2497,8 +2540,13 @@ function useRunesTx() {
|
|
|
2497
2540
|
function usePrepareSendAlkanesCallback() {
|
|
2498
2541
|
const wallet = useWallet();
|
|
2499
2542
|
const account = useCurrentAccount();
|
|
2543
|
+
const accountCapabilities = useCurrentAccountCapabilities();
|
|
2544
|
+
const { t } = useI18n();
|
|
2500
2545
|
const callback = React.useCallback(
|
|
2501
2546
|
async (toAddressInfo, alkaneid, amount, feeRate, type, enableRBF) => {
|
|
2547
|
+
if (!accountCapabilities.canCreateSigningRequest) {
|
|
2548
|
+
throw new Error(t("not_supported"));
|
|
2549
|
+
}
|
|
2502
2550
|
return await wallet.createSendAlkanesPsbt({
|
|
2503
2551
|
to: toAddressInfo.address,
|
|
2504
2552
|
alkaneid,
|
|
@@ -2508,7 +2556,7 @@ function usePrepareSendAlkanesCallback() {
|
|
|
2508
2556
|
enableRBF
|
|
2509
2557
|
});
|
|
2510
2558
|
},
|
|
2511
|
-
[wallet, account]
|
|
2559
|
+
[wallet, account, accountCapabilities.canCreateSigningRequest, t]
|
|
2512
2560
|
);
|
|
2513
2561
|
return callback;
|
|
2514
2562
|
}
|
|
@@ -2541,19 +2589,22 @@ function useUiTxCreateScreen() {
|
|
|
2541
2589
|
}
|
|
2542
2590
|
function useUpdateUiTxCreateScreen() {
|
|
2543
2591
|
const dispatch = useAppDispatch();
|
|
2544
|
-
return (
|
|
2545
|
-
|
|
2546
|
-
|
|
2547
|
-
|
|
2548
|
-
|
|
2549
|
-
|
|
2550
|
-
|
|
2551
|
-
|
|
2552
|
-
|
|
2553
|
-
|
|
2554
|
-
|
|
2555
|
-
|
|
2556
|
-
|
|
2592
|
+
return React.useCallback(
|
|
2593
|
+
({
|
|
2594
|
+
toInfo,
|
|
2595
|
+
inputAmount,
|
|
2596
|
+
enableRBF
|
|
2597
|
+
}) => {
|
|
2598
|
+
dispatch(
|
|
2599
|
+
uiActions.updateTxCreateScreen({
|
|
2600
|
+
toInfo,
|
|
2601
|
+
inputAmount,
|
|
2602
|
+
enableRBF
|
|
2603
|
+
})
|
|
2604
|
+
);
|
|
2605
|
+
},
|
|
2606
|
+
[dispatch]
|
|
2607
|
+
);
|
|
2557
2608
|
}
|
|
2558
2609
|
function useFeeRateBar() {
|
|
2559
2610
|
const uiState = useUIState();
|
|
@@ -2561,29 +2612,32 @@ function useFeeRateBar() {
|
|
|
2561
2612
|
}
|
|
2562
2613
|
function useUpdateFeeRateBar() {
|
|
2563
2614
|
const dispatch = useAppDispatch();
|
|
2564
|
-
return (
|
|
2565
|
-
|
|
2566
|
-
|
|
2567
|
-
|
|
2568
|
-
|
|
2569
|
-
|
|
2570
|
-
|
|
2571
|
-
|
|
2572
|
-
|
|
2573
|
-
|
|
2574
|
-
|
|
2575
|
-
|
|
2576
|
-
|
|
2577
|
-
|
|
2578
|
-
|
|
2579
|
-
|
|
2580
|
-
|
|
2615
|
+
return React.useCallback(
|
|
2616
|
+
({
|
|
2617
|
+
feeRate,
|
|
2618
|
+
feeRateInputVal,
|
|
2619
|
+
enableLowFeeRate,
|
|
2620
|
+
feeOptionIndex,
|
|
2621
|
+
showCustomInput
|
|
2622
|
+
}) => {
|
|
2623
|
+
dispatch(
|
|
2624
|
+
uiActions.updateFeeRateBar({
|
|
2625
|
+
feeRate,
|
|
2626
|
+
feeRateInputVal,
|
|
2627
|
+
enableLowFeeRate,
|
|
2628
|
+
feeOptionIndex,
|
|
2629
|
+
showCustomInput
|
|
2630
|
+
})
|
|
2631
|
+
);
|
|
2632
|
+
},
|
|
2633
|
+
[dispatch]
|
|
2634
|
+
);
|
|
2581
2635
|
}
|
|
2582
2636
|
function useResetFeeRateBar() {
|
|
2583
2637
|
const dispatch = useAppDispatch();
|
|
2584
|
-
return () => {
|
|
2638
|
+
return React.useCallback(() => {
|
|
2585
2639
|
dispatch(uiActions.resetFeeRateBar());
|
|
2586
|
-
};
|
|
2640
|
+
}, [dispatch]);
|
|
2587
2641
|
}
|
|
2588
2642
|
function useAddressInput() {
|
|
2589
2643
|
const uiState = useUIState();
|
|
@@ -2591,20 +2645,23 @@ function useAddressInput() {
|
|
|
2591
2645
|
}
|
|
2592
2646
|
function useUpdateAddressInput() {
|
|
2593
2647
|
const dispatch = useAppDispatch();
|
|
2594
|
-
return (
|
|
2595
|
-
|
|
2596
|
-
|
|
2597
|
-
|
|
2598
|
-
|
|
2599
|
-
|
|
2600
|
-
|
|
2601
|
-
|
|
2648
|
+
return React.useCallback(
|
|
2649
|
+
({ address, domain }) => {
|
|
2650
|
+
dispatch(
|
|
2651
|
+
uiActions.updateAddressInput({
|
|
2652
|
+
address,
|
|
2653
|
+
domain
|
|
2654
|
+
})
|
|
2655
|
+
);
|
|
2656
|
+
},
|
|
2657
|
+
[dispatch]
|
|
2658
|
+
);
|
|
2602
2659
|
}
|
|
2603
2660
|
function useResetAddressInput() {
|
|
2604
2661
|
const dispatch = useAppDispatch();
|
|
2605
|
-
return () => {
|
|
2662
|
+
return React.useCallback(() => {
|
|
2606
2663
|
dispatch(uiActions.resetAddressInput());
|
|
2607
|
-
};
|
|
2664
|
+
}, [dispatch]);
|
|
2608
2665
|
}
|
|
2609
2666
|
function useAmountInput() {
|
|
2610
2667
|
const uiState = useUIState();
|
|
@@ -2612,32 +2669,35 @@ function useAmountInput() {
|
|
|
2612
2669
|
}
|
|
2613
2670
|
function useUpdateAmountInput() {
|
|
2614
2671
|
const dispatch = useAppDispatch();
|
|
2615
|
-
return (
|
|
2616
|
-
|
|
2617
|
-
|
|
2618
|
-
|
|
2619
|
-
|
|
2620
|
-
|
|
2621
|
-
|
|
2672
|
+
return React.useCallback(
|
|
2673
|
+
({ amount }) => {
|
|
2674
|
+
dispatch(
|
|
2675
|
+
uiActions.updateAmountInput({
|
|
2676
|
+
amount
|
|
2677
|
+
})
|
|
2678
|
+
);
|
|
2679
|
+
},
|
|
2680
|
+
[dispatch]
|
|
2681
|
+
);
|
|
2622
2682
|
}
|
|
2623
2683
|
function useResetAmountInput() {
|
|
2624
2684
|
const dispatch = useAppDispatch();
|
|
2625
|
-
return () => {
|
|
2685
|
+
return React.useCallback(() => {
|
|
2626
2686
|
dispatch(uiActions.resetAmountInput());
|
|
2627
|
-
};
|
|
2687
|
+
}, [dispatch]);
|
|
2628
2688
|
}
|
|
2629
2689
|
function useResetTxState() {
|
|
2630
2690
|
const dispatch = useAppDispatch();
|
|
2631
|
-
return () => {
|
|
2691
|
+
return React.useCallback(() => {
|
|
2632
2692
|
dispatch(uiActions.resetTxCreateScreen());
|
|
2633
2693
|
dispatch(uiActions.resetFeeRateBar());
|
|
2634
|
-
};
|
|
2694
|
+
}, [dispatch]);
|
|
2635
2695
|
}
|
|
2636
2696
|
function useResetUiTxCreateScreen() {
|
|
2637
2697
|
const dispatch = useAppDispatch();
|
|
2638
|
-
return () => {
|
|
2698
|
+
return React.useCallback(() => {
|
|
2639
2699
|
dispatch(uiActions.resetTxCreateScreen());
|
|
2640
|
-
};
|
|
2700
|
+
}, [dispatch]);
|
|
2641
2701
|
}
|
|
2642
2702
|
var useThrottle = (callback, delay, lastCallRef) => {
|
|
2643
2703
|
return React.useCallback(
|
|
@@ -2924,6 +2984,10 @@ function useAddressTypeScreenLogic() {
|
|
|
2924
2984
|
const wallet = useWallet();
|
|
2925
2985
|
const currentKeyring = useCurrentKeyring();
|
|
2926
2986
|
const account = useCurrentAccount();
|
|
2987
|
+
const currentKeyringCapabilities = React.useMemo(
|
|
2988
|
+
() => walletShared.getAccountCapabilities({ type: currentKeyring.type }),
|
|
2989
|
+
[currentKeyring.type]
|
|
2990
|
+
);
|
|
2927
2991
|
const nav = useNavigation();
|
|
2928
2992
|
useAppDispatch();
|
|
2929
2993
|
const reloadAccounts = useReloadAccounts();
|
|
@@ -2961,7 +3025,7 @@ function useAddressTypeScreenLogic() {
|
|
|
2961
3025
|
loadAddresses();
|
|
2962
3026
|
}, []);
|
|
2963
3027
|
const addressTypes = React.useMemo(() => {
|
|
2964
|
-
if (
|
|
3028
|
+
if (!currentKeyringCapabilities.canChangeAddressType) {
|
|
2965
3029
|
return types.ADDRESS_TYPES.filter((v) => v.value === currentKeyring.addressType);
|
|
2966
3030
|
}
|
|
2967
3031
|
if (currentKeyring.type === types.KeyringType.HdKeyring) {
|
|
@@ -2986,7 +3050,14 @@ function useAddressTypeScreenLogic() {
|
|
|
2986
3050
|
(a, b) => a.displayIndex - b.displayIndex
|
|
2987
3051
|
);
|
|
2988
3052
|
}
|
|
2989
|
-
}, [
|
|
3053
|
+
}, [
|
|
3054
|
+
currentKeyring.type,
|
|
3055
|
+
currentKeyring.addressType,
|
|
3056
|
+
currentKeyringCapabilities.canChangeAddressType,
|
|
3057
|
+
currentKeyring.accountIndexDerivation,
|
|
3058
|
+
addressAssets,
|
|
3059
|
+
addresses
|
|
3060
|
+
]);
|
|
2990
3061
|
const items = React.useMemo(() => {
|
|
2991
3062
|
return addressTypes.map((v) => {
|
|
2992
3063
|
const address = addresses[v.value];
|
|
@@ -2995,7 +3066,11 @@ function useAddressTypeScreenLogic() {
|
|
|
2995
3066
|
satoshis: 0,
|
|
2996
3067
|
total_inscription: 0
|
|
2997
3068
|
};
|
|
2998
|
-
const derivedPath = walletShared.getAccountDerivationPath(
|
|
3069
|
+
const derivedPath = walletShared.getAccountDerivationPath(
|
|
3070
|
+
v.hdPath,
|
|
3071
|
+
account.index || 0,
|
|
3072
|
+
currentKeyring.accountIndexDerivation
|
|
3073
|
+
);
|
|
2999
3074
|
let name = `${v.name} (${derivedPath})`;
|
|
3000
3075
|
if (currentKeyring.type === types.KeyringType.SimpleKeyring) {
|
|
3001
3076
|
name = `${v.name}`;
|
|
@@ -3014,8 +3089,8 @@ function useAddressTypeScreenLogic() {
|
|
|
3014
3089
|
if (item.value == currentKeyring.addressType) {
|
|
3015
3090
|
return;
|
|
3016
3091
|
}
|
|
3017
|
-
if (
|
|
3018
|
-
tools.toastError(t("
|
|
3092
|
+
if (!currentKeyringCapabilities.canChangeAddressType) {
|
|
3093
|
+
tools.toastError(t("not_supported"));
|
|
3019
3094
|
return;
|
|
3020
3095
|
}
|
|
3021
3096
|
await wallet.changeAddressType(item.value);
|
|
@@ -3942,6 +4017,7 @@ function useBRC20TokenScreenLogic() {
|
|
|
3942
4017
|
});
|
|
3943
4018
|
const wallet = useWallet();
|
|
3944
4019
|
const account = useCurrentAccount();
|
|
4020
|
+
const accountCapabilities = useCurrentAccountCapabilities();
|
|
3945
4021
|
const [loading, setLoading] = React.useState(true);
|
|
3946
4022
|
const [deployInscription, setDeployInscription] = React.useState();
|
|
3947
4023
|
const resetTxState = useResetTxState();
|
|
@@ -3982,11 +4058,11 @@ function useBRC20TokenScreenLogic() {
|
|
|
3982
4058
|
}, [tokenSummary]);
|
|
3983
4059
|
const enableTransfer = React.useMemo(() => {
|
|
3984
4060
|
let enable = false;
|
|
3985
|
-
if (tokenSummary.tokenBalance.overallBalance !== "0" && tokenSummary.tokenBalance.overallBalance !== "") {
|
|
4061
|
+
if (accountCapabilities.canCreateSigningRequest && tokenSummary.tokenBalance.overallBalance !== "0" && tokenSummary.tokenBalance.overallBalance !== "") {
|
|
3986
4062
|
enable = true;
|
|
3987
4063
|
}
|
|
3988
4064
|
return enable;
|
|
3989
|
-
}, [tokenSummary]);
|
|
4065
|
+
}, [accountCapabilities.canCreateSigningRequest, tokenSummary]);
|
|
3990
4066
|
const tools = useTools();
|
|
3991
4067
|
const chainType = useChainType();
|
|
3992
4068
|
const chain = useChain();
|
|
@@ -5121,6 +5197,7 @@ function useAlkanesNFTScreenLogic() {
|
|
|
5121
5197
|
const { alkanesInfo } = nav.getRouteState();
|
|
5122
5198
|
const { t } = useI18n();
|
|
5123
5199
|
const resetTxState = useResetTxState();
|
|
5200
|
+
const accountCapabilities = useCurrentAccountCapabilities();
|
|
5124
5201
|
const [availableUtxo, setAvailableUtxo] = React.useState(0);
|
|
5125
5202
|
const wallet = useWallet();
|
|
5126
5203
|
React.useEffect(() => {
|
|
@@ -5139,7 +5216,7 @@ function useAlkanesNFTScreenLogic() {
|
|
|
5139
5216
|
alkanesInfo
|
|
5140
5217
|
});
|
|
5141
5218
|
};
|
|
5142
|
-
const disabledSend = availableUtxo <= 0;
|
|
5219
|
+
const disabledSend = !accountCapabilities.canCreateSigningRequest || availableUtxo <= 0;
|
|
5143
5220
|
return {
|
|
5144
5221
|
alkanesInfo,
|
|
5145
5222
|
t,
|
|
@@ -5183,6 +5260,7 @@ function useAlkanesTokenScreenLogic() {
|
|
|
5183
5260
|
});
|
|
5184
5261
|
const wallet = useWallet();
|
|
5185
5262
|
const account = useCurrentAccount();
|
|
5263
|
+
const accountCapabilities = useCurrentAccountCapabilities();
|
|
5186
5264
|
const [loading, setLoading] = React.useState(true);
|
|
5187
5265
|
const [warning, setWarning] = React.useState(false);
|
|
5188
5266
|
const { t } = useI18n();
|
|
@@ -5198,11 +5276,11 @@ function useAlkanesTokenScreenLogic() {
|
|
|
5198
5276
|
}, [tokenSummary.mintUrl]);
|
|
5199
5277
|
const enableTransfer = React.useMemo(() => {
|
|
5200
5278
|
let enable = false;
|
|
5201
|
-
if (tokenSummary.tokenBalance.amount !== "0") {
|
|
5279
|
+
if (accountCapabilities.canCreateSigningRequest && tokenSummary.tokenBalance.amount !== "0") {
|
|
5202
5280
|
enable = true;
|
|
5203
5281
|
}
|
|
5204
5282
|
return enable;
|
|
5205
|
-
}, [tokenSummary]);
|
|
5283
|
+
}, [accountCapabilities.canCreateSigningRequest, tokenSummary]);
|
|
5206
5284
|
const tools = useTools();
|
|
5207
5285
|
const enableTrade = React.useMemo(() => {
|
|
5208
5286
|
return tokenSummary.tradeUrl && tokenSummary.tradeUrl.trim() !== "";
|
|
@@ -5466,6 +5544,7 @@ function useOrdinalsInscriptionScreenLogic() {
|
|
|
5466
5544
|
const [isLoadingDetails, setIsLoadingDetails] = React.useState(false);
|
|
5467
5545
|
const [isInitialLoading, setIsInitialLoading] = React.useState(!props.inscription);
|
|
5468
5546
|
const currentAccount = useCurrentAccount();
|
|
5547
|
+
const accountCapabilities = useCurrentAccountCapabilities();
|
|
5469
5548
|
const resetTxState = useResetTxState();
|
|
5470
5549
|
const { t } = useI18n();
|
|
5471
5550
|
const [isNeedToSplit, setIsNeedToSplit] = React.useState(false);
|
|
@@ -5528,7 +5607,7 @@ function useOrdinalsInscriptionScreenLogic() {
|
|
|
5528
5607
|
nav.navigate("SendOrdinalsInscriptionScreen", { inscription, inscriptionId });
|
|
5529
5608
|
};
|
|
5530
5609
|
const isUnconfirmed = inscription ? inscription.timestamp == 0 : false;
|
|
5531
|
-
const withSend = inscription ? currentAccount.address === inscription.address : false;
|
|
5610
|
+
const withSend = inscription ? accountCapabilities.canCreateSigningRequest && currentAccount.address === inscription.address : false;
|
|
5532
5611
|
const children = inscription ? inscription.children || [] : [];
|
|
5533
5612
|
const parents = inscription ? inscription.parents || [] : [];
|
|
5534
5613
|
const hasProvenance = children.length > 0 || parents.length > 0;
|
|
@@ -5599,6 +5678,7 @@ function useRunesTokenScreenLogic() {
|
|
|
5599
5678
|
});
|
|
5600
5679
|
const wallet = useWallet();
|
|
5601
5680
|
const account = useCurrentAccount();
|
|
5681
|
+
const accountCapabilities = useCurrentAccountCapabilities();
|
|
5602
5682
|
const [loading, setLoading] = React.useState(true);
|
|
5603
5683
|
const { t } = useI18n();
|
|
5604
5684
|
React.useEffect(() => {
|
|
@@ -5610,11 +5690,11 @@ function useRunesTokenScreenLogic() {
|
|
|
5610
5690
|
const enableMint = tokenSummary.runeInfo.mintable;
|
|
5611
5691
|
const enableTransfer = React.useMemo(() => {
|
|
5612
5692
|
let enable = false;
|
|
5613
|
-
if (tokenSummary.runeBalance.amount !== "0") {
|
|
5693
|
+
if (accountCapabilities.canCreateSigningRequest && tokenSummary.runeBalance.amount !== "0") {
|
|
5614
5694
|
enable = true;
|
|
5615
5695
|
}
|
|
5616
5696
|
return enable;
|
|
5617
|
-
}, [tokenSummary]);
|
|
5697
|
+
}, [accountCapabilities.canCreateSigningRequest, tokenSummary]);
|
|
5618
5698
|
const tools = useTools();
|
|
5619
5699
|
const ordinalsWebsite = useOrdinalsWebsite();
|
|
5620
5700
|
const resetTxState = useResetTxState();
|
|
@@ -6990,6 +7070,7 @@ function useCAT20TokenScreenLogic() {
|
|
|
6990
7070
|
const wallet = useWallet();
|
|
6991
7071
|
const account = useCurrentAccount();
|
|
6992
7072
|
const keyring = useCurrentKeyring();
|
|
7073
|
+
const accountCapabilities = useCurrentAccountCapabilities();
|
|
6993
7074
|
const [loading, setLoading] = React.useState(true);
|
|
6994
7075
|
const tools = useTools();
|
|
6995
7076
|
React.useEffect(() => {
|
|
@@ -7001,11 +7082,12 @@ function useCAT20TokenScreenLogic() {
|
|
|
7001
7082
|
const tokenUrl = useCAT20TokenInfoExplorerUrl(version, tokenSummary.cat20Info.tokenId);
|
|
7002
7083
|
const enableTransfer = React.useMemo(() => {
|
|
7003
7084
|
let enable = false;
|
|
7004
|
-
if (tokenSummary.cat20Balance && tokenSummary.cat20Balance.amount !== "0") {
|
|
7085
|
+
if (accountCapabilities.canCreateSigningRequest && tokenSummary.cat20Balance && tokenSummary.cat20Balance.amount !== "0") {
|
|
7005
7086
|
enable = true;
|
|
7006
7087
|
}
|
|
7007
7088
|
return enable;
|
|
7008
|
-
}, [tokenSummary]);
|
|
7089
|
+
}, [accountCapabilities.canCreateSigningRequest, tokenSummary]);
|
|
7090
|
+
const enableMerge = accountCapabilities.canCreateSigningRequest;
|
|
7009
7091
|
const chainType = useChainType();
|
|
7010
7092
|
const enableTrade = React.useMemo(() => {
|
|
7011
7093
|
if (chainType === walletTypes.ChainType.FRACTAL_BITCOIN_MAINNET && version === walletShared.CAT_VERSION.V1) {
|
|
@@ -7020,6 +7102,10 @@ function useCAT20TokenScreenLogic() {
|
|
|
7020
7102
|
nav.goBack();
|
|
7021
7103
|
};
|
|
7022
7104
|
const onClickMerge = (e) => {
|
|
7105
|
+
if (!accountCapabilities.canCreateSigningRequest) {
|
|
7106
|
+
tools.toastError(t("not_supported"));
|
|
7107
|
+
return;
|
|
7108
|
+
}
|
|
7023
7109
|
if (keyring.type === types.KeyringType.KeystoneKeyring) {
|
|
7024
7110
|
tools.toastError(t("merge_utxos_is_not_supported_for_keystone_yet"));
|
|
7025
7111
|
return;
|
|
@@ -7055,6 +7141,7 @@ function useCAT20TokenScreenLogic() {
|
|
|
7055
7141
|
loading,
|
|
7056
7142
|
tokenUrl,
|
|
7057
7143
|
enableTransfer,
|
|
7144
|
+
enableMerge,
|
|
7058
7145
|
enableTrade,
|
|
7059
7146
|
iconInfo,
|
|
7060
7147
|
onClickMerge,
|
|
@@ -7630,6 +7717,7 @@ function useCAT721NFTScreenLogic() {
|
|
|
7630
7717
|
const { collectionInfo, localId, version } = nav.getRouteState();
|
|
7631
7718
|
const { t } = useI18n();
|
|
7632
7719
|
const resetTxState = useResetTxState();
|
|
7720
|
+
const accountCapabilities = useCurrentAccountCapabilities();
|
|
7633
7721
|
const onClickBack = () => {
|
|
7634
7722
|
nav.goBack();
|
|
7635
7723
|
};
|
|
@@ -7650,7 +7738,8 @@ function useCAT721NFTScreenLogic() {
|
|
|
7650
7738
|
t,
|
|
7651
7739
|
// actions
|
|
7652
7740
|
onClickBack,
|
|
7653
|
-
onClickSend
|
|
7741
|
+
onClickSend,
|
|
7742
|
+
disabledSend: !accountCapabilities.canCreateSigningRequest
|
|
7654
7743
|
};
|
|
7655
7744
|
}
|
|
7656
7745
|
function useSignMessageLogic(props) {
|
|
@@ -7666,10 +7755,10 @@ function useSignMessageLogic(props) {
|
|
|
7666
7755
|
const [loading, setLoading] = React.useState(false);
|
|
7667
7756
|
const [isKeystoneSigning, setIsKeystoneSigning] = React.useState(false);
|
|
7668
7757
|
const [isColdWalletSigning, setIsColdWalletSigning] = React.useState(false);
|
|
7758
|
+
const [readonlySignature, setReadonlySignature] = React.useState("");
|
|
7669
7759
|
const wallet = useWallet();
|
|
7670
|
-
useTools();
|
|
7671
|
-
const
|
|
7672
|
-
const keyringType = currentAccount.type;
|
|
7760
|
+
const tools = useTools();
|
|
7761
|
+
const accountCapabilities = useCurrentAccountCapabilities();
|
|
7673
7762
|
const { t } = useI18n();
|
|
7674
7763
|
const [disclaimerVisible, setDisclaimerVisible] = React.useState(false);
|
|
7675
7764
|
const [signingTxIndex, setSigningTxIndex] = React.useState(toSignMessages.length > 1 ? -1 : 0);
|
|
@@ -7687,11 +7776,11 @@ function useSignMessageLogic(props) {
|
|
|
7687
7776
|
if (toSignMessages.length <= 1) {
|
|
7688
7777
|
return;
|
|
7689
7778
|
}
|
|
7690
|
-
if (
|
|
7779
|
+
if (accountCapabilities.signMethod !== walletShared.AccountSignMethod.Local) {
|
|
7691
7780
|
return;
|
|
7692
7781
|
}
|
|
7693
7782
|
setAllowQuickMultiSign(websiteResult.allowQuickMultiSign && toSignMessages.length > 1);
|
|
7694
|
-
}, [websiteResult,
|
|
7783
|
+
}, [websiteResult, accountCapabilities, toSignMessages.length]);
|
|
7695
7784
|
useAsyncEffect(async () => {
|
|
7696
7785
|
const website = session?.origin;
|
|
7697
7786
|
if (website) {
|
|
@@ -7788,12 +7877,27 @@ function useSignMessageLogic(props) {
|
|
|
7788
7877
|
}
|
|
7789
7878
|
};
|
|
7790
7879
|
const onNextStep = () => {
|
|
7791
|
-
|
|
7792
|
-
|
|
7793
|
-
|
|
7794
|
-
|
|
7795
|
-
|
|
7796
|
-
|
|
7880
|
+
switch (accountCapabilities.signMethod) {
|
|
7881
|
+
case walletShared.AccountSignMethod.Keystone:
|
|
7882
|
+
setIsKeystoneSigning(true);
|
|
7883
|
+
return;
|
|
7884
|
+
case walletShared.AccountSignMethod.ColdWallet:
|
|
7885
|
+
setIsColdWalletSigning(true);
|
|
7886
|
+
return;
|
|
7887
|
+
case walletShared.AccountSignMethod.External:
|
|
7888
|
+
if (!readonlySignature) {
|
|
7889
|
+
tools.toastError(t("please_enter_your_signature"));
|
|
7890
|
+
return;
|
|
7891
|
+
}
|
|
7892
|
+
onSignedData({ signature: readonlySignature }, signingTxIndex);
|
|
7893
|
+
setReadonlySignature("");
|
|
7894
|
+
return;
|
|
7895
|
+
case walletShared.AccountSignMethod.Local:
|
|
7896
|
+
localSign();
|
|
7897
|
+
return;
|
|
7898
|
+
case walletShared.AccountSignMethod.None:
|
|
7899
|
+
default:
|
|
7900
|
+
tools.toastError(t("not_supported"));
|
|
7797
7901
|
}
|
|
7798
7902
|
};
|
|
7799
7903
|
const onSignedData = (data, signingTxIndex2) => {
|
|
@@ -7868,6 +7972,8 @@ function useSignMessageLogic(props) {
|
|
|
7868
7972
|
onKeystoneSigningBack,
|
|
7869
7973
|
onColdWalletSigningSuccess,
|
|
7870
7974
|
onColdWalletSigningBack,
|
|
7975
|
+
readonlySignature,
|
|
7976
|
+
setReadonlySignature,
|
|
7871
7977
|
onDisclaimerModalClose
|
|
7872
7978
|
};
|
|
7873
7979
|
}
|
|
@@ -7886,11 +7992,11 @@ function useSignPsbtLogic(props) {
|
|
|
7886
7992
|
const [isPsbtRiskPopoverVisible, setIsPsbtRiskPopoverVisible] = React.useState(false);
|
|
7887
7993
|
const [isKeystoneSigning, setIsKeystoneSigning] = React.useState(false);
|
|
7888
7994
|
const [isColdWalletSigning, setIsColdWalletSigning] = React.useState(false);
|
|
7995
|
+
const [readonlySignedPsbtHex, setReadonlySignedPsbtHex] = React.useState("");
|
|
7889
7996
|
const [contractPopoverData, setContractPopoverData] = React.useState(void 0);
|
|
7890
7997
|
const wallet = useWallet();
|
|
7891
7998
|
const tools = useTools();
|
|
7892
|
-
const
|
|
7893
|
-
const keyringType = currentAccount.type;
|
|
7999
|
+
const accountCapabilities = useCurrentAccountCapabilities();
|
|
7894
8000
|
const { t } = useI18n();
|
|
7895
8001
|
const [disclaimerVisible, setDisclaimerVisible] = React.useState(false);
|
|
7896
8002
|
const [localPsbtSummary, setLocalPsbtSummary] = React.useState(null);
|
|
@@ -7909,11 +8015,11 @@ function useSignPsbtLogic(props) {
|
|
|
7909
8015
|
if (toSignDatas.length <= 1) {
|
|
7910
8016
|
return;
|
|
7911
8017
|
}
|
|
7912
|
-
if (
|
|
8018
|
+
if (accountCapabilities.signMethod !== walletShared.AccountSignMethod.Local) {
|
|
7913
8019
|
return;
|
|
7914
8020
|
}
|
|
7915
8021
|
setAllowQuickMultiSign(websiteResult.allowQuickMultiSign && toSignDatas.length > 1);
|
|
7916
|
-
}, [websiteResult,
|
|
8022
|
+
}, [websiteResult, accountCapabilities]);
|
|
7917
8023
|
useAsyncEffect(async () => {
|
|
7918
8024
|
const website = session?.origin;
|
|
7919
8025
|
if (website) {
|
|
@@ -8114,12 +8220,27 @@ function useSignPsbtLogic(props) {
|
|
|
8114
8220
|
}
|
|
8115
8221
|
};
|
|
8116
8222
|
const onNextStep = () => {
|
|
8117
|
-
|
|
8118
|
-
|
|
8119
|
-
|
|
8120
|
-
|
|
8121
|
-
|
|
8122
|
-
|
|
8223
|
+
switch (accountCapabilities.signMethod) {
|
|
8224
|
+
case walletShared.AccountSignMethod.Keystone:
|
|
8225
|
+
setIsKeystoneSigning(true);
|
|
8226
|
+
return;
|
|
8227
|
+
case walletShared.AccountSignMethod.ColdWallet:
|
|
8228
|
+
setIsColdWalletSigning(true);
|
|
8229
|
+
return;
|
|
8230
|
+
case walletShared.AccountSignMethod.External:
|
|
8231
|
+
if (!readonlySignedPsbtHex) {
|
|
8232
|
+
tools.toastError(t("invalid_psbt"));
|
|
8233
|
+
return;
|
|
8234
|
+
}
|
|
8235
|
+
onSignedData({ psbtHex: readonlySignedPsbtHex }, signingTxIndex);
|
|
8236
|
+
setReadonlySignedPsbtHex("");
|
|
8237
|
+
return;
|
|
8238
|
+
case walletShared.AccountSignMethod.Local:
|
|
8239
|
+
localSign();
|
|
8240
|
+
return;
|
|
8241
|
+
case walletShared.AccountSignMethod.None:
|
|
8242
|
+
default:
|
|
8243
|
+
tools.toastError(t("not_supported"));
|
|
8123
8244
|
}
|
|
8124
8245
|
};
|
|
8125
8246
|
const onSignedData = (data, signingTxIndex2) => {
|
|
@@ -8196,6 +8317,8 @@ function useSignPsbtLogic(props) {
|
|
|
8196
8317
|
toSignDatas,
|
|
8197
8318
|
currentToSignData,
|
|
8198
8319
|
currentDecodedPsbt,
|
|
8320
|
+
readonlySignedPsbtHex,
|
|
8321
|
+
setReadonlySignedPsbtHex,
|
|
8199
8322
|
// state
|
|
8200
8323
|
networkFee,
|
|
8201
8324
|
isValid,
|
|
@@ -8436,6 +8559,10 @@ function useSettingsTabScreenLogic() {
|
|
|
8436
8559
|
const item = walletShared.ADDRESS_TYPES[currentKeyring.addressType];
|
|
8437
8560
|
return currentKeyring.hdPath !== "" && item.hdPath !== currentKeyring.hdPath;
|
|
8438
8561
|
}, [currentKeyring]);
|
|
8562
|
+
const currentKeyringCapabilities = React.useMemo(
|
|
8563
|
+
() => walletShared.getAccountCapabilities({ type: currentKeyring.type }),
|
|
8564
|
+
[currentKeyring.type]
|
|
8565
|
+
);
|
|
8439
8566
|
const settings_connectedSites = React.useMemo(() => {
|
|
8440
8567
|
const value = connected ? t("connected") : t("not_connected");
|
|
8441
8568
|
return {
|
|
@@ -8467,7 +8594,7 @@ function useSettingsTabScreenLogic() {
|
|
|
8467
8594
|
let value = "";
|
|
8468
8595
|
const item = walletShared.ADDRESS_TYPES[currentKeyring.addressType];
|
|
8469
8596
|
const hdPath = currentKeyring.hdPath || item.hdPath;
|
|
8470
|
-
if (currentKeyring.type === types.KeyringType.SimpleKeyring) {
|
|
8597
|
+
if (currentKeyring.type === types.KeyringType.SimpleKeyring || currentKeyringCapabilities.signMethod === walletShared.AccountSignMethod.External || !currentKeyringCapabilities.canChangeAddressType) {
|
|
8471
8598
|
value = `${item.name}`;
|
|
8472
8599
|
} else {
|
|
8473
8600
|
value = `${item.name} (${hdPath}/${currentAccount.index})`;
|
|
@@ -8491,7 +8618,7 @@ function useSettingsTabScreenLogic() {
|
|
|
8491
8618
|
nav.navigate("AddressTypeScreen");
|
|
8492
8619
|
}
|
|
8493
8620
|
};
|
|
8494
|
-
}, [t, isCustomHdPath]);
|
|
8621
|
+
}, [t, isCustomHdPath, currentKeyring, currentAccount.index, currentKeyringCapabilities]);
|
|
8495
8622
|
const settings_advanced = React.useMemo(() => {
|
|
8496
8623
|
return {
|
|
8497
8624
|
key: "settings_advanced",
|
|
@@ -8860,6 +8987,7 @@ exports.useCreatePasswordScreenLogic = useCreatePasswordScreenLogic;
|
|
|
8860
8987
|
exports.useCreateSplitTxCallback = useCreateSplitTxCallback;
|
|
8861
8988
|
exports.useCreateWalletLogicImportWordsStep = useCreateWalletLogicImportWordsStep;
|
|
8862
8989
|
exports.useCurrentAccount = useCurrentAccount;
|
|
8990
|
+
exports.useCurrentAccountCapabilities = useCurrentAccountCapabilities;
|
|
8863
8991
|
exports.useCurrentAddress = useCurrentAddress;
|
|
8864
8992
|
exports.useCurrentKeyring = useCurrentKeyring;
|
|
8865
8993
|
exports.useDeveloperMode = useDeveloperMode;
|