@dynamic-labs/sdk-react-core 4.18.7 → 4.18.8
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/CHANGELOG.md +7 -0
- package/package.cjs +1 -1
- package/package.js +1 -1
- package/package.json +11 -11
- package/src/lib/context/DynamicContext/useDynamicContext/useDynamicContext.cjs +7 -1
- package/src/lib/context/DynamicContext/useDynamicContext/useDynamicContext.js +8 -2
- package/src/lib/context/UserWalletsContext/UserWalletsContext.cjs +26 -3
- package/src/lib/context/UserWalletsContext/UserWalletsContext.js +27 -4
- package/src/lib/locale/en/translation.cjs +39 -0
- package/src/lib/locale/en/translation.d.ts +39 -0
- package/src/lib/locale/en/translation.js +39 -0
- package/src/lib/styles/index.shadow.cjs +1 -1
- package/src/lib/styles/index.shadow.js +1 -1
- package/src/lib/utils/hooks/authenticationHooks/useConnectAndSign/useConnectAndSign.cjs +2 -0
- package/src/lib/utils/hooks/authenticationHooks/useConnectAndSign/useConnectAndSign.js +2 -0
- package/src/lib/utils/hooks/useAuthLayoutChecks/useAllowClose/useAllowClose.cjs +92 -4
- package/src/lib/utils/hooks/useAuthLayoutChecks/useAllowClose/useAllowClose.js +92 -4
- package/src/lib/utils/hooks/useSubdomainCheck/useSubdomainCheck.cjs +3 -90
- package/src/lib/utils/hooks/useSubdomainCheck/useSubdomainCheck.js +3 -90
- package/src/lib/widgets/DynamicWidget/components/DynamicWidgetViews/mapViewToComponent.cjs +2 -0
- package/src/lib/widgets/DynamicWidget/components/DynamicWidgetViews/mapViewToComponent.d.ts +2 -1
- package/src/lib/widgets/DynamicWidget/components/DynamicWidgetViews/mapViewToComponent.js +2 -0
- package/src/lib/widgets/DynamicWidget/context/DynamicWidgetContext.types.d.ts +1 -1
- package/src/lib/widgets/DynamicWidget/views/SessionManagementView/RevokeAccessView/RevokeAccessView.cjs +37 -0
- package/src/lib/widgets/DynamicWidget/views/SessionManagementView/RevokeAccessView/RevokeAccessView.d.ts +2 -0
- package/src/lib/widgets/DynamicWidget/views/SessionManagementView/RevokeAccessView/RevokeAccessView.js +33 -0
- package/src/lib/widgets/DynamicWidget/views/SessionManagementView/RevokeAccessView/index.d.ts +1 -0
- package/src/lib/widgets/DynamicWidget/views/SessionManagementView/SessionListItem/SessionListItem.cjs +30 -0
- package/src/lib/widgets/DynamicWidget/views/SessionManagementView/SessionListItem/SessionListItem.d.ts +10 -0
- package/src/lib/widgets/DynamicWidget/views/SessionManagementView/SessionListItem/SessionListItem.js +26 -0
- package/src/lib/widgets/DynamicWidget/views/SessionManagementView/SessionListItem/index.d.ts +1 -0
- package/src/lib/widgets/DynamicWidget/views/SessionManagementView/SessionManagementView.cjs +25 -2
- package/src/lib/widgets/DynamicWidget/views/SessionManagementView/SessionManagementView.d.ts +7 -1
- package/src/lib/widgets/DynamicWidget/views/SessionManagementView/SessionManagementView.js +26 -3
package/CHANGELOG.md
CHANGED
|
@@ -1,4 +1,11 @@
|
|
|
1
1
|
|
|
2
|
+
### [4.18.8](https://github.com/dynamic-labs/dynamic-auth/compare/v4.18.7...v4.18.8) (2025-05-22)
|
|
3
|
+
|
|
4
|
+
### Bug Fixes
|
|
5
|
+
|
|
6
|
+
* allow closing widget right after login ([#8760](https://github.com/dynamic-labs/dynamic-auth/issues/8760)) ([a9afff0](https://github.com/dynamic-labs/dynamic-auth/commit/a9afff0ab2a685853b39aed88e10bf1e700e4c8c))
|
|
7
|
+
* user wallets turning empty when linking new wallets ([#8775](https://github.com/dynamic-labs/dynamic-auth/issues/8775)) ([04215f5](https://github.com/dynamic-labs/dynamic-auth/commit/04215f5307e16ec4e1a7ff235a0d7df2340c3447))
|
|
8
|
+
|
|
2
9
|
### [4.18.7](https://github.com/dynamic-labs/dynamic-auth/compare/v4.18.6...v4.18.7) (2025-05-21)
|
|
3
10
|
|
|
4
11
|
|
package/package.cjs
CHANGED
package/package.js
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dynamic-labs/sdk-react-core",
|
|
3
|
-
"version": "4.18.
|
|
3
|
+
"version": "4.18.8",
|
|
4
4
|
"dependencies": {
|
|
5
5
|
"@dynamic-labs/sdk-api-core": "0.0.672",
|
|
6
6
|
"@hcaptcha/react-hcaptcha": "1.4.4",
|
|
@@ -14,16 +14,16 @@
|
|
|
14
14
|
"yup": "0.32.11",
|
|
15
15
|
"react-international-phone": "4.2.5",
|
|
16
16
|
"bs58": "5.0.0",
|
|
17
|
-
"@dynamic-labs/assert-package-version": "4.18.
|
|
18
|
-
"@dynamic-labs/iconic": "4.18.
|
|
19
|
-
"@dynamic-labs/logger": "4.18.
|
|
20
|
-
"@dynamic-labs/multi-wallet": "4.18.
|
|
21
|
-
"@dynamic-labs/rpc-providers": "4.18.
|
|
22
|
-
"@dynamic-labs/store": "4.18.
|
|
23
|
-
"@dynamic-labs/types": "4.18.
|
|
24
|
-
"@dynamic-labs/utils": "4.18.
|
|
25
|
-
"@dynamic-labs/wallet-book": "4.18.
|
|
26
|
-
"@dynamic-labs/wallet-connector-core": "4.18.
|
|
17
|
+
"@dynamic-labs/assert-package-version": "4.18.8",
|
|
18
|
+
"@dynamic-labs/iconic": "4.18.8",
|
|
19
|
+
"@dynamic-labs/logger": "4.18.8",
|
|
20
|
+
"@dynamic-labs/multi-wallet": "4.18.8",
|
|
21
|
+
"@dynamic-labs/rpc-providers": "4.18.8",
|
|
22
|
+
"@dynamic-labs/store": "4.18.8",
|
|
23
|
+
"@dynamic-labs/types": "4.18.8",
|
|
24
|
+
"@dynamic-labs/utils": "4.18.8",
|
|
25
|
+
"@dynamic-labs/wallet-book": "4.18.8",
|
|
26
|
+
"@dynamic-labs/wallet-connector-core": "4.18.8",
|
|
27
27
|
"eventemitter3": "5.0.1"
|
|
28
28
|
},
|
|
29
29
|
"devDependencies": {
|
|
@@ -26,6 +26,12 @@ const useDynamicContext = () => {
|
|
|
26
26
|
});
|
|
27
27
|
}, [setShowAuthFlow]);
|
|
28
28
|
const { initialWalletVerificationInProgress } = loadingAndLifecycle.useLoadingAndLifecycle();
|
|
29
|
+
// This ref ensures we don't return a value for primary wallet until useConnectAndSign has completely finished running
|
|
30
|
+
// Read UserWalletsContext.tsx explanation for more context
|
|
31
|
+
const verifiedPrimaryWallet = React.useRef(null);
|
|
32
|
+
if (!initialWalletVerificationInProgress || !primaryWallet) {
|
|
33
|
+
verifiedPrimaryWallet.current = primaryWallet;
|
|
34
|
+
}
|
|
29
35
|
return {
|
|
30
36
|
accountSwitchState,
|
|
31
37
|
authMode,
|
|
@@ -41,7 +47,7 @@ const useDynamicContext = () => {
|
|
|
41
47
|
multiWalletWidgetState,
|
|
42
48
|
network,
|
|
43
49
|
networkConfigurations,
|
|
44
|
-
primaryWallet:
|
|
50
|
+
primaryWallet: verifiedPrimaryWallet.current,
|
|
45
51
|
qrcodeUri,
|
|
46
52
|
refetchProjectSettings,
|
|
47
53
|
removeWallet,
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
'use client'
|
|
2
|
-
import { useContext, useCallback } from 'react';
|
|
2
|
+
import { useContext, useCallback, useRef } from 'react';
|
|
3
3
|
import { DynamicContext } from '../DynamicContext.js';
|
|
4
4
|
import { useLoadingAndLifecycle } from '../../../store/state/loadingAndLifecycle/loadingAndLifecycle.js';
|
|
5
5
|
import { useOverrides } from './useOverrides/useOverrides.js';
|
|
@@ -22,6 +22,12 @@ const useDynamicContext = () => {
|
|
|
22
22
|
});
|
|
23
23
|
}, [setShowAuthFlow]);
|
|
24
24
|
const { initialWalletVerificationInProgress } = useLoadingAndLifecycle();
|
|
25
|
+
// This ref ensures we don't return a value for primary wallet until useConnectAndSign has completely finished running
|
|
26
|
+
// Read UserWalletsContext.tsx explanation for more context
|
|
27
|
+
const verifiedPrimaryWallet = useRef(null);
|
|
28
|
+
if (!initialWalletVerificationInProgress || !primaryWallet) {
|
|
29
|
+
verifiedPrimaryWallet.current = primaryWallet;
|
|
30
|
+
}
|
|
25
31
|
return {
|
|
26
32
|
accountSwitchState,
|
|
27
33
|
authMode,
|
|
@@ -37,7 +43,7 @@ const useDynamicContext = () => {
|
|
|
37
43
|
multiWalletWidgetState,
|
|
38
44
|
network,
|
|
39
45
|
networkConfigurations,
|
|
40
|
-
primaryWallet:
|
|
46
|
+
primaryWallet: verifiedPrimaryWallet.current,
|
|
41
47
|
qrcodeUri,
|
|
42
48
|
refetchProjectSettings,
|
|
43
49
|
removeWallet,
|
|
@@ -65,13 +65,36 @@ const useInternalUserWallets = () => {
|
|
|
65
65
|
};
|
|
66
66
|
/** Provides access to the current user/session wallets */
|
|
67
67
|
const useUserWallets = () => {
|
|
68
|
+
var _a;
|
|
68
69
|
const context = React.useContext(UserWalletsContext);
|
|
70
|
+
// EXPLANATION:
|
|
71
|
+
//
|
|
72
|
+
// The problem:
|
|
73
|
+
// When we call useConnectAndSign, the wallet that is then added remains in an incomplete state until
|
|
74
|
+
// all tasks initiated by useConnectAndSign have completely finished running.
|
|
75
|
+
// If, say, a customer calls switchNetwork() on it in this meantime, the SDK will enter a broken state.
|
|
76
|
+
// Can be checked by attempting signMessage with wagmi after entering this broken state.
|
|
77
|
+
//
|
|
78
|
+
// The Solution:
|
|
79
|
+
// In order to prevent customers from accessing these wallets while they are incomplete,
|
|
80
|
+
// we return the old value of userWallets until useConnectAndSign has completely finished running.
|
|
81
|
+
//
|
|
82
|
+
// This is done by setting this "initialWalletVerificationInProgress" flag to true while it runs,
|
|
83
|
+
// and storing the previous value of userWallets in verifiedUserWallets.
|
|
84
|
+
// We then return this ref instead of the current userWallets.
|
|
85
|
+
//
|
|
86
|
+
// This ref is only updated when initialWalletVerificationInProgress is false, i.e. when
|
|
87
|
+
// there is no wallet being added at the moment.
|
|
88
|
+
//
|
|
89
|
+
// FYI this same logic is used in useDynamicContext for primaryWallet
|
|
90
|
+
const verifiedUserWallets = React.useRef([]);
|
|
69
91
|
const { initialWalletVerificationInProgress } = loadingAndLifecycle.useLoadingAndLifecycle();
|
|
70
92
|
if (!context)
|
|
71
93
|
throw new Error('Can only call useUserWallets inside UserWalletsProvider');
|
|
72
|
-
if (initialWalletVerificationInProgress)
|
|
73
|
-
|
|
74
|
-
|
|
94
|
+
if (!initialWalletVerificationInProgress) {
|
|
95
|
+
verifiedUserWallets.current = (_a = context === null || context === void 0 ? void 0 : context.userWallets) !== null && _a !== void 0 ? _a : [];
|
|
96
|
+
}
|
|
97
|
+
return verifiedUserWallets.current;
|
|
75
98
|
};
|
|
76
99
|
|
|
77
100
|
exports.UserWalletsContext = UserWalletsContext;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use client'
|
|
2
2
|
import { jsx } from 'react/jsx-runtime';
|
|
3
|
-
import { createContext, useContext,
|
|
3
|
+
import { createContext, useContext, useRef, useState, useCallback, useEffect } from 'react';
|
|
4
4
|
import { dynamicEvents } from '../../events/dynamicEvents.js';
|
|
5
5
|
import { useLoadingAndLifecycle } from '../../store/state/loadingAndLifecycle/loadingAndLifecycle.js';
|
|
6
6
|
|
|
@@ -61,13 +61,36 @@ const useInternalUserWallets = () => {
|
|
|
61
61
|
};
|
|
62
62
|
/** Provides access to the current user/session wallets */
|
|
63
63
|
const useUserWallets = () => {
|
|
64
|
+
var _a;
|
|
64
65
|
const context = useContext(UserWalletsContext);
|
|
66
|
+
// EXPLANATION:
|
|
67
|
+
//
|
|
68
|
+
// The problem:
|
|
69
|
+
// When we call useConnectAndSign, the wallet that is then added remains in an incomplete state until
|
|
70
|
+
// all tasks initiated by useConnectAndSign have completely finished running.
|
|
71
|
+
// If, say, a customer calls switchNetwork() on it in this meantime, the SDK will enter a broken state.
|
|
72
|
+
// Can be checked by attempting signMessage with wagmi after entering this broken state.
|
|
73
|
+
//
|
|
74
|
+
// The Solution:
|
|
75
|
+
// In order to prevent customers from accessing these wallets while they are incomplete,
|
|
76
|
+
// we return the old value of userWallets until useConnectAndSign has completely finished running.
|
|
77
|
+
//
|
|
78
|
+
// This is done by setting this "initialWalletVerificationInProgress" flag to true while it runs,
|
|
79
|
+
// and storing the previous value of userWallets in verifiedUserWallets.
|
|
80
|
+
// We then return this ref instead of the current userWallets.
|
|
81
|
+
//
|
|
82
|
+
// This ref is only updated when initialWalletVerificationInProgress is false, i.e. when
|
|
83
|
+
// there is no wallet being added at the moment.
|
|
84
|
+
//
|
|
85
|
+
// FYI this same logic is used in useDynamicContext for primaryWallet
|
|
86
|
+
const verifiedUserWallets = useRef([]);
|
|
65
87
|
const { initialWalletVerificationInProgress } = useLoadingAndLifecycle();
|
|
66
88
|
if (!context)
|
|
67
89
|
throw new Error('Can only call useUserWallets inside UserWalletsProvider');
|
|
68
|
-
if (initialWalletVerificationInProgress)
|
|
69
|
-
|
|
70
|
-
|
|
90
|
+
if (!initialWalletVerificationInProgress) {
|
|
91
|
+
verifiedUserWallets.current = (_a = context === null || context === void 0 ? void 0 : context.userWallets) !== null && _a !== void 0 ? _a : [];
|
|
92
|
+
}
|
|
93
|
+
return verifiedUserWallets.current;
|
|
71
94
|
};
|
|
72
95
|
|
|
73
96
|
export { UserWalletsContext, UserWalletsProvider, useInternalUserWallets, useUserWallets };
|
|
@@ -2018,12 +2018,37 @@ const translation = {
|
|
|
2018
2018
|
empty_sessions_view: {
|
|
2019
2019
|
title: 'No active sessions found',
|
|
2020
2020
|
},
|
|
2021
|
+
info_view: {
|
|
2022
|
+
title: 'Connected App Sessions',
|
|
2023
|
+
description_bold: 'Easily manage which apps have access to your wallet. ',
|
|
2024
|
+
description_2:
|
|
2025
|
+
"Each session represents a connection you've made with a site or app.",
|
|
2026
|
+
description_3:
|
|
2027
|
+
'You can revoke access anytime to stay in control of where and how your wallet is used.',
|
|
2028
|
+
continue_button: 'Continue',
|
|
2029
|
+
},
|
|
2030
|
+
revoke_access_view: {
|
|
2031
|
+
title: 'Revoke Access',
|
|
2032
|
+
description:
|
|
2033
|
+
"You're removing this site's permissions. Confirm to revoke access.",
|
|
2034
|
+
cancel_button: 'Cancel',
|
|
2035
|
+
revoke_button: 'Revoke',
|
|
2036
|
+
},
|
|
2037
|
+
session_component: {
|
|
2038
|
+
aria: {
|
|
2039
|
+
collapse_permissions: 'Collapse',
|
|
2040
|
+
expand_permissions: 'Expand',
|
|
2041
|
+
},
|
|
2042
|
+
permission_details: 'Permission details',
|
|
2043
|
+
revoke_button: 'Revoke',
|
|
2044
|
+
},
|
|
2021
2045
|
}
|
|
2022
2046
|
*/
|
|
2023
2047
|
dyn_session_management: {
|
|
2024
2048
|
aria: {
|
|
2025
2049
|
back_button_label: 'Back',
|
|
2026
2050
|
info_button_label: 'Info',
|
|
2051
|
+
close_button_label: 'Close',
|
|
2027
2052
|
},
|
|
2028
2053
|
title: 'Session Management',
|
|
2029
2054
|
empty_sessions_view: {
|
|
@@ -2036,6 +2061,20 @@ const translation = {
|
|
|
2036
2061
|
description_3: 'You can revoke access anytime to stay in control of where and how your wallet is used.',
|
|
2037
2062
|
continue_button: 'Continue',
|
|
2038
2063
|
},
|
|
2064
|
+
revoke_access_view: {
|
|
2065
|
+
title: 'Revoke Access',
|
|
2066
|
+
description: "You're removing this site's permissions. Confirm to revoke access.",
|
|
2067
|
+
cancel_button: 'Cancel',
|
|
2068
|
+
revoke_button: 'Revoke',
|
|
2069
|
+
},
|
|
2070
|
+
session_component: {
|
|
2071
|
+
aria: {
|
|
2072
|
+
collapse_permissions: 'Collapse',
|
|
2073
|
+
expand_permissions: 'Expand',
|
|
2074
|
+
},
|
|
2075
|
+
permission_details: 'Permission details',
|
|
2076
|
+
revoke_button: 'Revoke',
|
|
2077
|
+
},
|
|
2039
2078
|
},
|
|
2040
2079
|
/**
|
|
2041
2080
|
* @description copy keys for sign message flow views
|
|
@@ -2014,12 +2014,37 @@ export declare const translation: {
|
|
|
2014
2014
|
empty_sessions_view: {
|
|
2015
2015
|
title: 'No active sessions found',
|
|
2016
2016
|
},
|
|
2017
|
+
info_view: {
|
|
2018
|
+
title: 'Connected App Sessions',
|
|
2019
|
+
description_bold: 'Easily manage which apps have access to your wallet. ',
|
|
2020
|
+
description_2:
|
|
2021
|
+
"Each session represents a connection you've made with a site or app.",
|
|
2022
|
+
description_3:
|
|
2023
|
+
'You can revoke access anytime to stay in control of where and how your wallet is used.',
|
|
2024
|
+
continue_button: 'Continue',
|
|
2025
|
+
},
|
|
2026
|
+
revoke_access_view: {
|
|
2027
|
+
title: 'Revoke Access',
|
|
2028
|
+
description:
|
|
2029
|
+
"You're removing this site's permissions. Confirm to revoke access.",
|
|
2030
|
+
cancel_button: 'Cancel',
|
|
2031
|
+
revoke_button: 'Revoke',
|
|
2032
|
+
},
|
|
2033
|
+
session_component: {
|
|
2034
|
+
aria: {
|
|
2035
|
+
collapse_permissions: 'Collapse',
|
|
2036
|
+
expand_permissions: 'Expand',
|
|
2037
|
+
},
|
|
2038
|
+
permission_details: 'Permission details',
|
|
2039
|
+
revoke_button: 'Revoke',
|
|
2040
|
+
},
|
|
2017
2041
|
}
|
|
2018
2042
|
*/
|
|
2019
2043
|
dyn_session_management: {
|
|
2020
2044
|
aria: {
|
|
2021
2045
|
back_button_label: string;
|
|
2022
2046
|
info_button_label: string;
|
|
2047
|
+
close_button_label: string;
|
|
2023
2048
|
};
|
|
2024
2049
|
title: string;
|
|
2025
2050
|
empty_sessions_view: {
|
|
@@ -2032,6 +2057,20 @@ export declare const translation: {
|
|
|
2032
2057
|
description_3: string;
|
|
2033
2058
|
continue_button: string;
|
|
2034
2059
|
};
|
|
2060
|
+
revoke_access_view: {
|
|
2061
|
+
title: string;
|
|
2062
|
+
description: string;
|
|
2063
|
+
cancel_button: string;
|
|
2064
|
+
revoke_button: string;
|
|
2065
|
+
};
|
|
2066
|
+
session_component: {
|
|
2067
|
+
aria: {
|
|
2068
|
+
collapse_permissions: string;
|
|
2069
|
+
expand_permissions: string;
|
|
2070
|
+
};
|
|
2071
|
+
permission_details: string;
|
|
2072
|
+
revoke_button: string;
|
|
2073
|
+
};
|
|
2035
2074
|
};
|
|
2036
2075
|
/**
|
|
2037
2076
|
* @description copy keys for sign message flow views
|
|
@@ -2014,12 +2014,37 @@ const translation = {
|
|
|
2014
2014
|
empty_sessions_view: {
|
|
2015
2015
|
title: 'No active sessions found',
|
|
2016
2016
|
},
|
|
2017
|
+
info_view: {
|
|
2018
|
+
title: 'Connected App Sessions',
|
|
2019
|
+
description_bold: 'Easily manage which apps have access to your wallet. ',
|
|
2020
|
+
description_2:
|
|
2021
|
+
"Each session represents a connection you've made with a site or app.",
|
|
2022
|
+
description_3:
|
|
2023
|
+
'You can revoke access anytime to stay in control of where and how your wallet is used.',
|
|
2024
|
+
continue_button: 'Continue',
|
|
2025
|
+
},
|
|
2026
|
+
revoke_access_view: {
|
|
2027
|
+
title: 'Revoke Access',
|
|
2028
|
+
description:
|
|
2029
|
+
"You're removing this site's permissions. Confirm to revoke access.",
|
|
2030
|
+
cancel_button: 'Cancel',
|
|
2031
|
+
revoke_button: 'Revoke',
|
|
2032
|
+
},
|
|
2033
|
+
session_component: {
|
|
2034
|
+
aria: {
|
|
2035
|
+
collapse_permissions: 'Collapse',
|
|
2036
|
+
expand_permissions: 'Expand',
|
|
2037
|
+
},
|
|
2038
|
+
permission_details: 'Permission details',
|
|
2039
|
+
revoke_button: 'Revoke',
|
|
2040
|
+
},
|
|
2017
2041
|
}
|
|
2018
2042
|
*/
|
|
2019
2043
|
dyn_session_management: {
|
|
2020
2044
|
aria: {
|
|
2021
2045
|
back_button_label: 'Back',
|
|
2022
2046
|
info_button_label: 'Info',
|
|
2047
|
+
close_button_label: 'Close',
|
|
2023
2048
|
},
|
|
2024
2049
|
title: 'Session Management',
|
|
2025
2050
|
empty_sessions_view: {
|
|
@@ -2032,6 +2057,20 @@ const translation = {
|
|
|
2032
2057
|
description_3: 'You can revoke access anytime to stay in control of where and how your wallet is used.',
|
|
2033
2058
|
continue_button: 'Continue',
|
|
2034
2059
|
},
|
|
2060
|
+
revoke_access_view: {
|
|
2061
|
+
title: 'Revoke Access',
|
|
2062
|
+
description: "You're removing this site's permissions. Confirm to revoke access.",
|
|
2063
|
+
cancel_button: 'Cancel',
|
|
2064
|
+
revoke_button: 'Revoke',
|
|
2065
|
+
},
|
|
2066
|
+
session_component: {
|
|
2067
|
+
aria: {
|
|
2068
|
+
collapse_permissions: 'Collapse',
|
|
2069
|
+
expand_permissions: 'Expand',
|
|
2070
|
+
},
|
|
2071
|
+
permission_details: 'Permission details',
|
|
2072
|
+
revoke_button: 'Revoke',
|
|
2073
|
+
},
|
|
2035
2074
|
},
|
|
2036
2075
|
/**
|
|
2037
2076
|
* @description copy keys for sign message flow views
|