create-blocklet 0.9.6 → 0.9.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (90) hide show
  1. package/common/.prettierrc +11 -1
  2. package/common/scripts/build-clean.mjs +0 -1
  3. package/common/scripts/bump-version.mjs +33 -29
  4. package/index.js +16 -10
  5. package/package.json +1 -1
  6. package/templates/did-connect-dapp/.eslintrc.js +4 -0
  7. package/templates/did-connect-dapp/README.md +143 -0
  8. package/templates/did-connect-dapp/api/dev.js +5 -0
  9. package/templates/did-connect-dapp/api/hooks/pre-start.js +33 -0
  10. package/templates/did-connect-dapp/api/index.js +48 -0
  11. package/templates/did-connect-dapp/api/libs/auth.js +25 -0
  12. package/templates/did-connect-dapp/api/libs/env.js +9 -0
  13. package/templates/did-connect-dapp/api/libs/logger.js +3 -0
  14. package/templates/did-connect-dapp/api/libs/utils.js +70 -0
  15. package/templates/did-connect-dapp/api/routes/auth/index.js +15 -0
  16. package/templates/did-connect-dapp/api/routes/auth/request-digest-signature.js +51 -0
  17. package/templates/did-connect-dapp/api/routes/auth/request-multiple-claims.js +52 -0
  18. package/templates/did-connect-dapp/api/routes/auth/request-multiple-steps.js +57 -0
  19. package/templates/did-connect-dapp/api/routes/auth/request-nft.js +82 -0
  20. package/templates/did-connect-dapp/api/routes/auth/request-payment.js +72 -0
  21. package/templates/did-connect-dapp/api/routes/auth/request-profile.js +25 -0
  22. package/templates/did-connect-dapp/api/routes/auth/request-text-signature.js +44 -0
  23. package/templates/did-connect-dapp/api/routes/auth/request-transaction-signature.js +62 -0
  24. package/templates/did-connect-dapp/blocklet.md +5 -0
  25. package/templates/did-connect-dapp/blocklet.yml +57 -0
  26. package/templates/did-connect-dapp/index.html +17 -0
  27. package/templates/did-connect-dapp/package.json +86 -0
  28. package/templates/did-connect-dapp/src/app.jsx +20 -0
  29. package/templates/did-connect-dapp/src/assets/get_wallet_en.png +0 -0
  30. package/templates/did-connect-dapp/src/assets/get_wallet_zh.png +0 -0
  31. package/templates/did-connect-dapp/src/components/connect-item.jsx +39 -0
  32. package/templates/did-connect-dapp/src/components/connects/request-digest-signature.jsx +45 -0
  33. package/templates/did-connect-dapp/src/components/connects/request-multiple-claims.jsx +55 -0
  34. package/templates/did-connect-dapp/src/components/connects/request-multiple-steps.jsx +54 -0
  35. package/templates/did-connect-dapp/src/components/connects/request-nft.jsx +75 -0
  36. package/templates/did-connect-dapp/src/components/connects/request-payment.jsx +82 -0
  37. package/templates/did-connect-dapp/src/components/connects/request-profile.jsx +72 -0
  38. package/templates/did-connect-dapp/src/components/connects/request-text-signature.jsx +44 -0
  39. package/templates/did-connect-dapp/src/components/connects/request-transaction-signature.jsx +44 -0
  40. package/templates/did-connect-dapp/src/components/info-row.jsx +39 -0
  41. package/templates/did-connect-dapp/src/components/layout.jsx +26 -0
  42. package/templates/did-connect-dapp/src/index.jsx +6 -0
  43. package/templates/did-connect-dapp/src/libs/session.js +11 -0
  44. package/templates/did-connect-dapp/src/libs/utils.js +4 -0
  45. package/templates/did-connect-dapp/src/locales/en.js +115 -0
  46. package/templates/did-connect-dapp/src/locales/index.js +5 -0
  47. package/templates/did-connect-dapp/src/locales/zh.js +115 -0
  48. package/templates/did-connect-dapp/src/pages/main.jsx +95 -0
  49. package/templates/did-connect-dapp/template-info.json +12 -0
  50. package/templates/did-connect-dapp/vite.config.mjs +11 -0
  51. package/templates/did-wallet-dapp/blocklet.yml +1 -2
  52. package/templates/did-wallet-dapp/package.json +18 -18
  53. package/templates/express-api/blocklet.yml +0 -1
  54. package/templates/express-api/package.json +9 -8
  55. package/templates/html-static/blocklet.yml +0 -1
  56. package/templates/html-static/package.json +4 -3
  57. package/templates/monorepo/package.json +4 -3
  58. package/templates/monorepo/scripts/bump-version.mjs +36 -32
  59. package/templates/nestjs-api/blocklet.yml +0 -1
  60. package/templates/nestjs-api/package.json +16 -15
  61. package/templates/nextjs-dapp/blocklet.yml +0 -1
  62. package/templates/nextjs-dapp/package.json +7 -7
  63. package/templates/react-dapp/blocklet.yml +0 -1
  64. package/templates/react-dapp/package.json +16 -15
  65. package/templates/react-dapp-ts/blocklet.yml +0 -1
  66. package/templates/react-dapp-ts/package.json +19 -18
  67. package/templates/react-gun-dapp/blocklet.yml +0 -1
  68. package/templates/react-gun-dapp/package.json +15 -14
  69. package/templates/react-static/blocklet.yml +0 -1
  70. package/templates/react-static/package.json +11 -10
  71. package/templates/solidjs-dapp/blocklet.yml +0 -1
  72. package/templates/solidjs-dapp/package.json +14 -13
  73. package/templates/solidjs-static/blocklet.yml +0 -1
  74. package/templates/solidjs-static/package.json +9 -8
  75. package/templates/svelte-dapp/blocklet.yml +0 -1
  76. package/templates/svelte-dapp/package.json +12 -11
  77. package/templates/svelte-static/blocklet.yml +0 -1
  78. package/templates/svelte-static/package.json +8 -7
  79. package/templates/todo-list-example/blocklet.yml +0 -1
  80. package/templates/todo-list-example/package.json +11 -10
  81. package/templates/vue-dapp/blocklet.yml +0 -1
  82. package/templates/vue-dapp/package.json +16 -15
  83. package/templates/vue-static/blocklet.yml +0 -1
  84. package/templates/vue-static/package.json +11 -10
  85. package/templates/vue-ts-static/blocklet.yml +1 -2
  86. package/templates/vue-ts-static/package.json +12 -12
  87. package/templates/vue2-dapp/blocklet.yml +0 -1
  88. package/templates/vue2-dapp/package.json +13 -12
  89. package/templates/vue2-static/blocklet.yml +0 -1
  90. package/templates/vue2-static/package.json +9 -8
@@ -0,0 +1,54 @@
1
+ import { useLocaleContext } from '@arcblock/ux/lib/Locale/context';
2
+ import { Box, Typography } from '@mui/material';
3
+ import { useState } from 'react';
4
+
5
+ import { useSessionContext } from '../../libs/session';
6
+ import ConnectItem from '../connect-item';
7
+ import InfoRow from '../info-row';
8
+
9
+ export default function RequestMultipleSteps() {
10
+ const [result, setResult] = useState(null);
11
+ const { locale, t } = useLocaleContext();
12
+ const { connectApi } = useSessionContext();
13
+
14
+ const requestFn = () => {
15
+ const action = 'request-multiple-steps';
16
+ setResult(null);
17
+ connectApi.open({
18
+ locale,
19
+ action,
20
+ onSuccess(res) {
21
+ setResult(res.result);
22
+ },
23
+ messages: {
24
+ title: t('claims.requestMultipleSteps.connect.title'),
25
+ scan: t('claims.requestMultipleSteps.connect.scan'),
26
+ },
27
+ });
28
+ };
29
+
30
+ return (
31
+ <ConnectItem
32
+ title={t('claims.requestMultipleSteps.title')}
33
+ description={t('claims.requestMultipleSteps.description')}
34
+ onClick={requestFn}
35
+ result={
36
+ result ? (
37
+ <>
38
+ <Typography variant="h6">Step 1</Typography>
39
+ <Box sx={{ pl: 1 }}>
40
+ <InfoRow name={t('claims.requestMultipleSteps.result.origin')} value={result[0].origin} />
41
+ <InfoRow name={t('claims.requestMultipleSteps.result.signature')} value={result[0].sig} />
42
+ </Box>
43
+ <Typography variant="h6">Step 2</Typography>
44
+ <Box sx={{ pl: 1 }}>
45
+ <InfoRow name={t('claims.requestMultipleSteps.result.origin')} value={result[1].origin} />
46
+ <InfoRow name={t('claims.requestMultipleSteps.result.digest')} value={result[1].digest} />
47
+ <InfoRow name={t('claims.requestMultipleSteps.result.signature')} value={result[1].sig} />
48
+ </Box>
49
+ </>
50
+ ) : null
51
+ }
52
+ />
53
+ );
54
+ }
@@ -0,0 +1,75 @@
1
+ import { useLocaleContext } from '@arcblock/ux/lib/Locale/context';
2
+ import iconOpenInNewRounded from '@iconify-icons/material-symbols/open-in-new-rounded';
3
+ import { Icon } from '@iconify/react';
4
+ import { Link } from '@mui/material';
5
+ import { useState } from 'react';
6
+
7
+ import { useSessionContext } from '../../libs/session';
8
+ import { getExplorerUrl } from '../../libs/utils';
9
+ import ConnectItem from '../connect-item';
10
+ import InfoRow from '../info-row';
11
+
12
+ export default function RequestNFT() {
13
+ const [result, setResult] = useState(null);
14
+ const { locale, t } = useLocaleContext();
15
+ const { connectApi } = useSessionContext();
16
+
17
+ const requestFn = () => {
18
+ const action = 'request-nft';
19
+ setResult(null);
20
+ connectApi.open({
21
+ locale,
22
+ action,
23
+ onSuccess(res) {
24
+ setResult(res.result);
25
+ },
26
+ messages: {
27
+ title: t('claims.requestNFT.connect.title'),
28
+ scan: t('claims.requestNFT.connect.scan'),
29
+ },
30
+ });
31
+ };
32
+
33
+ return (
34
+ <ConnectItem
35
+ title={t('claims.requestNFT.title')}
36
+ description={
37
+ <>
38
+ {t('claims.requestNFT.description')}{' '}
39
+ <Link
40
+ href="https://playground.staging.arcblock.io"
41
+ target="_blank"
42
+ underline="hover"
43
+ sx={{
44
+ display: 'inline-flex',
45
+ alignItems: 'center',
46
+ gap: 0.5,
47
+ }}>
48
+ https://playground.staging.arcblock.io <Icon icon={iconOpenInNewRounded} />
49
+ </Link>
50
+ </>
51
+ }
52
+ onClick={requestFn}
53
+ result={
54
+ result ? (
55
+ <InfoRow
56
+ name="NFT"
57
+ value={
58
+ <Link
59
+ href={getExplorerUrl(result.asset, 'assets')}
60
+ target="_blank"
61
+ underline="hover"
62
+ sx={{
63
+ display: 'inline-flex',
64
+ alignItems: 'center',
65
+ gap: 0.5,
66
+ }}>
67
+ {result.asset} <Icon icon={iconOpenInNewRounded} />
68
+ </Link>
69
+ }
70
+ />
71
+ ) : null
72
+ }
73
+ />
74
+ );
75
+ }
@@ -0,0 +1,82 @@
1
+ import { useLocaleContext } from '@arcblock/ux/lib/Locale/context';
2
+ import iconOpenInNewRounded from '@iconify-icons/material-symbols/open-in-new-rounded';
3
+ import { Icon } from '@iconify/react';
4
+ import { Box, Link } from '@mui/material';
5
+ import { useState } from 'react';
6
+
7
+ import { useSessionContext } from '../../libs/session';
8
+ import { getExplorerUrl } from '../../libs/utils';
9
+ import ConnectItem from '../connect-item';
10
+ import InfoRow from '../info-row';
11
+
12
+ export default function RequestPayment() {
13
+ const [result, setResult] = useState(null);
14
+ const { locale, t } = useLocaleContext();
15
+ const { connectApi } = useSessionContext();
16
+
17
+ const requestPayment = () => {
18
+ const action = 'request-payment';
19
+ setResult(null);
20
+ connectApi.open({
21
+ locale,
22
+ action,
23
+ onSuccess(res) {
24
+ setResult(res.result);
25
+ },
26
+ messages: {
27
+ title: t('claims.requestPayment.connect.title'),
28
+ scan: t('claims.requestPayment.connect.scan'),
29
+ },
30
+ });
31
+ };
32
+
33
+ return (
34
+ <ConnectItem
35
+ title={t('claims.requestPayment.title')}
36
+ description={
37
+ <>
38
+ {t('claims.requestPayment.description')}
39
+
40
+ <Box>
41
+ {t('claims.requestPayment.takeTokenFromHere')}{' '}
42
+ <Link
43
+ href="https://faucet.abtnetwork.io"
44
+ target="_blank"
45
+ underline="hover"
46
+ sx={{
47
+ display: 'inline-flex',
48
+ alignItems: 'center',
49
+ gap: 0.5,
50
+ }}>
51
+ https://faucet.abtnetwork.io <Icon icon={iconOpenInNewRounded} />
52
+ </Link>
53
+ </Box>
54
+ </>
55
+ }
56
+ onClick={requestPayment}
57
+ result={
58
+ result ? (
59
+ <>
60
+ <InfoRow
61
+ name={t('claims.requestPayment.result.hash')}
62
+ value={
63
+ <Link
64
+ href={getExplorerUrl(result.hash)}
65
+ target="_blank"
66
+ underline="hover"
67
+ sx={{
68
+ display: 'inline-flex',
69
+ alignItems: 'center',
70
+ gap: 0.5,
71
+ }}>
72
+ {result.hash} <Icon icon={iconOpenInNewRounded} />
73
+ </Link>
74
+ }
75
+ />
76
+ <InfoRow name={t('claims.requestPayment.result.signature')} value={result.sig} />
77
+ </>
78
+ ) : null
79
+ }
80
+ />
81
+ );
82
+ }
@@ -0,0 +1,72 @@
1
+ import Avatar from '@arcblock/ux/lib/Avatar';
2
+ import { useLocaleContext } from '@arcblock/ux/lib/Locale/context';
3
+ import AccountBoxOutline from '@iconify-icons/material-symbols/account-box-outline';
4
+ import CakeOutlineRoundedIcon from '@iconify-icons/material-symbols/cake-outline-rounded';
5
+ import MailOutlineRoundedIcon from '@iconify-icons/material-symbols/mail-outline-rounded';
6
+ import PhoneOutlineRoundedIcon from '@iconify-icons/material-symbols/phone-android-outline-rounded';
7
+ import { Icon } from '@iconify/react';
8
+ import { useState } from 'react';
9
+
10
+ import { useSessionContext } from '../../libs/session';
11
+ import ConnectItem from '../connect-item';
12
+ import InfoRow from '../info-row';
13
+
14
+ export default function RequestProfile() {
15
+ const [result, setResult] = useState(null);
16
+ const { locale, t } = useLocaleContext();
17
+ const { connectApi } = useSessionContext();
18
+
19
+ const requestProfile = () => {
20
+ const action = 'request-profile';
21
+ setResult(null);
22
+ connectApi.open({
23
+ locale,
24
+ action,
25
+ onSuccess(res) {
26
+ if (res.result.avatar) {
27
+ res.result.avatar = res.result.avatar.replace(/[\r\n\s]/g, '');
28
+ }
29
+ setResult(res.result);
30
+ },
31
+ messages: {
32
+ title: t('claims.requestProfile.connect.title'),
33
+ scan: t('claims.requestProfile.connect.scan'),
34
+ },
35
+ });
36
+ };
37
+
38
+ return (
39
+ <ConnectItem
40
+ title={t('claims.requestProfile.title')}
41
+ description={t('claims.requestProfile.description')}
42
+ onClick={requestProfile}
43
+ result={
44
+ result ? (
45
+ <>
46
+ <Avatar variant="circle" src={result.avatar} did={result.did} size={60} />
47
+ <InfoRow
48
+ icon={<Icon fontSize={18} icon={AccountBoxOutline} />}
49
+ name={t('claims.requestProfile.result.fullName')}
50
+ value={result.fullName}
51
+ />
52
+ <InfoRow
53
+ icon={<Icon fontSize={18} icon={MailOutlineRoundedIcon} />}
54
+ name={t('claims.requestProfile.result.email')}
55
+ value={result.email}
56
+ />
57
+ <InfoRow
58
+ icon={<Icon fontSize={18} icon={PhoneOutlineRoundedIcon} />}
59
+ name={t('claims.requestProfile.result.phone')}
60
+ value={result.phone}
61
+ />
62
+ <InfoRow
63
+ icon={<Icon fontSize={18} icon={CakeOutlineRoundedIcon} />}
64
+ name={t('claims.requestProfile.result.birthday')}
65
+ value={result.birthday}
66
+ />
67
+ </>
68
+ ) : null
69
+ }
70
+ />
71
+ );
72
+ }
@@ -0,0 +1,44 @@
1
+ import { useLocaleContext } from '@arcblock/ux/lib/Locale/context';
2
+ import { useState } from 'react';
3
+
4
+ import { useSessionContext } from '../../libs/session';
5
+ import ConnectItem from '../connect-item';
6
+ import InfoRow from '../info-row';
7
+
8
+ export default function RequestTextSignature() {
9
+ const [result, setResult] = useState(null);
10
+ const { locale, t } = useLocaleContext();
11
+ const { connectApi } = useSessionContext();
12
+
13
+ const requestFn = () => {
14
+ const action = 'request-text-signature';
15
+ setResult(null);
16
+ connectApi.open({
17
+ locale,
18
+ action,
19
+ onSuccess(res) {
20
+ setResult(res.result);
21
+ },
22
+ messages: {
23
+ title: t('claims.requestTextSig.connect.title'),
24
+ scan: t('claims.requestTextSig.connect.scan'),
25
+ },
26
+ });
27
+ };
28
+
29
+ return (
30
+ <ConnectItem
31
+ title={t('claims.requestTextSig.title')}
32
+ description={t('claims.requestTextSig.description')}
33
+ onClick={requestFn}
34
+ result={
35
+ result ? (
36
+ <>
37
+ <InfoRow name={t('claims.requestTextSig.result.origin')} value={result.origin} />
38
+ <InfoRow name={t('claims.requestTextSig.result.signature')} value={result.sig} />
39
+ </>
40
+ ) : null
41
+ }
42
+ />
43
+ );
44
+ }
@@ -0,0 +1,44 @@
1
+ import { useLocaleContext } from '@arcblock/ux/lib/Locale/context';
2
+ import { useState } from 'react';
3
+
4
+ import { useSessionContext } from '../../libs/session';
5
+ import ConnectItem from '../connect-item';
6
+ import InfoRow from '../info-row';
7
+
8
+ export default function RequestTransactionSignature() {
9
+ const [result, setResult] = useState(null);
10
+ const { locale, t } = useLocaleContext();
11
+ const { connectApi } = useSessionContext();
12
+
13
+ const requestFn = () => {
14
+ const action = 'request-transaction-signature';
15
+ setResult(null);
16
+ connectApi.open({
17
+ locale,
18
+ action,
19
+ onSuccess(res) {
20
+ setResult(res.result);
21
+ },
22
+ messages: {
23
+ title: t('claims.requestTransactionSig.connect.title'),
24
+ scan: t('claims.requestTransactionSig.connect.scan'),
25
+ },
26
+ });
27
+ };
28
+
29
+ return (
30
+ <ConnectItem
31
+ title={t('claims.requestTransactionSig.title')}
32
+ description={t('claims.requestTransactionSig.description')}
33
+ onClick={requestFn}
34
+ result={
35
+ result ? (
36
+ <>
37
+ <InfoRow name={t('claims.requestTransactionSig.result.hash')} value={result.hash} />
38
+ <InfoRow name={t('claims.requestTransactionSig.result.signature')} value={result.sig} />
39
+ </>
40
+ ) : null
41
+ }
42
+ />
43
+ );
44
+ }
@@ -0,0 +1,39 @@
1
+ /* eslint-disable react/require-default-props */
2
+ import { Box, Typography } from '@mui/material';
3
+ import PropTypes from 'prop-types';
4
+
5
+ export default function InfoRow({ icon = null, name, value }) {
6
+ return (
7
+ <Typography variant="body1" color="text.primary" gutterBottom sx={{ display: 'flex', alignItems: 'center' }}>
8
+ <Box
9
+ sx={{
10
+ display: 'inline-flex',
11
+ alignItems: 'center',
12
+ gap: 0.5,
13
+ mr: 0.75,
14
+ flexShrink: 0,
15
+ '&:after': {
16
+ content: '":"',
17
+ ml: -0.25,
18
+ },
19
+ }}>
20
+ {icon}
21
+ {name}
22
+ </Box>
23
+ <Typography
24
+ component="span"
25
+ color="text.secondary"
26
+ sx={{
27
+ wordBreak: 'break-word',
28
+ }}>
29
+ {value}
30
+ </Typography>
31
+ </Typography>
32
+ );
33
+ }
34
+
35
+ InfoRow.propTypes = {
36
+ icon: PropTypes.any,
37
+ name: PropTypes.any.isRequired,
38
+ value: PropTypes.any.isRequired,
39
+ };
@@ -0,0 +1,26 @@
1
+ import { Footer, Header } from '@blocklet/ui-react';
2
+ import { Box, Container } from '@mui/material';
3
+ import PropTypes from 'prop-types';
4
+
5
+ export default function Layout({ children }) {
6
+ return (
7
+ <Box>
8
+ <Header maxWidth="unset" />
9
+ <Container maxWidth="lg" my={3}>
10
+ {children}
11
+ </Container>
12
+ <Box
13
+ component={Footer}
14
+ sx={{
15
+ '&>div>.MuiContainer-root': {
16
+ maxWidth: 'unset',
17
+ },
18
+ }}
19
+ />
20
+ </Box>
21
+ );
22
+ }
23
+
24
+ Layout.propTypes = {
25
+ children: PropTypes.any.isRequired,
26
+ };
@@ -0,0 +1,6 @@
1
+ import ReactDOM from 'react-dom/client';
2
+
3
+ import App from './app';
4
+
5
+ const root = ReactDOM.createRoot(document.getElementById('app'));
6
+ root.render(<App />);
@@ -0,0 +1,11 @@
1
+ import { createAuthServiceSessionContext } from '@arcblock/did-connect/lib/Session';
2
+ import { useContext } from 'react';
3
+
4
+ const { SessionProvider, SessionContext, SessionConsumer, withSession } = createAuthServiceSessionContext();
5
+
6
+ function useSessionContext() {
7
+ const info = useContext(SessionContext);
8
+ return info;
9
+ }
10
+
11
+ export { SessionProvider, SessionContext, SessionConsumer, useSessionContext, withSession };
@@ -0,0 +1,4 @@
1
+ /* eslint-disable import/prefer-default-export */
2
+ export const getExplorerUrl = (assetDidOrHash, type = 'txs') => {
3
+ return `https://explorer.abtnetwork.io/explorer/${type}/${assetDidOrHash}?host=${window.blocklet.CHAIN_HOST}`;
4
+ };
@@ -0,0 +1,115 @@
1
+ import { flatten } from 'flat';
2
+
3
+ export default flatten({
4
+ result: 'Result',
5
+ step1: {
6
+ title: 'Step 1',
7
+ prepareDIDWallet: 'Prepare DID Wallet',
8
+ getWalletFromHere: 'Get DID Wallet from here',
9
+ },
10
+ step2: {
11
+ title: 'Step 2',
12
+ enjoyPlayground: 'Enjoy The DID Connect Playground',
13
+ },
14
+ claims: {
15
+ requestProfile: {
16
+ title: 'Request Profile',
17
+ description: 'If the app need user name/email to function properly, you can request a profile from the user.',
18
+ connect: {
19
+ title: 'Request Profile',
20
+ scan: 'Please provide your name and email to continue',
21
+ },
22
+ result: {
23
+ fullName: 'Full Name',
24
+ email: 'Email Address',
25
+ phone: 'Phone Number',
26
+ birthday: 'Birthday',
27
+ },
28
+ },
29
+ requestNFT: {
30
+ title: 'Request NFT',
31
+ description: 'Get a badge or Certificate from here',
32
+ connect: {
33
+ title: 'Request NFT',
34
+ scan: 'Please provide a NFT to continue',
35
+ },
36
+ },
37
+ requestTextSig: {
38
+ title: 'Request Text Signature',
39
+ description: 'In some cases, app may want user to sign some text to authorize the app to do something.',
40
+ connect: {
41
+ title: 'Request Text Signature',
42
+ scan: 'Please sign some text to continue',
43
+ },
44
+ result: {
45
+ origin: 'Original Text',
46
+ signature: 'Signature',
47
+ },
48
+ },
49
+ requestDigestSig: {
50
+ title: 'Request Digest Signature',
51
+ description:
52
+ 'In some cases, when the data to be signed is too large to display in DID Wallet, the app shall request the Wallet to sign the digest of the data.',
53
+ connect: {
54
+ title: 'Request Digest Signature',
55
+ scan: 'Please sign the digest to continue',
56
+ },
57
+ result: {
58
+ origin: 'Original Text',
59
+ digest: 'Digest',
60
+ signature: 'Signature',
61
+ },
62
+ },
63
+ requestTransactionSig: {
64
+ title: 'Request Transaction Signature',
65
+ description: 'When the app needs user to sign some transaction that can be broadcast to ArcBlock chain.',
66
+ connect: {
67
+ title: 'Request Transaction Signature',
68
+ scan: 'Please sign a transaction to continue',
69
+ },
70
+ result: {
71
+ hash: 'Transaction Hash',
72
+ signature: 'Signature',
73
+ },
74
+ },
75
+ requestPayment: {
76
+ title: 'Request Payment',
77
+ description: 'When the app needs user to pay some token to get some service.',
78
+ takeTokenFromHere: 'Please take some TBA from here',
79
+ connect: {
80
+ title: 'Request Payment',
81
+ scan: 'Please sign the transaction to continue',
82
+ },
83
+ result: {
84
+ hash: 'Transaction Hash',
85
+ signature: 'Signature',
86
+ },
87
+ },
88
+ requestMultipleClaims: {
89
+ title: 'Request Multiple Claims',
90
+ description: 'Request text signature and digest signature in a single session.',
91
+ connect: {
92
+ title: 'Request Multiple Claims',
93
+ scan: 'In that session, you will do both text signing and summary signing.',
94
+ },
95
+ result: {
96
+ origin: 'Original Text',
97
+ digest: 'Digest',
98
+ signature: 'Signature',
99
+ },
100
+ },
101
+ requestMultipleSteps: {
102
+ title: 'Request Multiple Steps',
103
+ description: 'Request text signature and then request digest signature.',
104
+ connect: {
105
+ title: 'Request Multiple Steps',
106
+ scan: 'In that session, you will do a text signature followed by a summary signature.',
107
+ },
108
+ result: {
109
+ origin: 'Original Text',
110
+ digest: 'Digest',
111
+ signature: 'Signature',
112
+ },
113
+ },
114
+ },
115
+ });
@@ -0,0 +1,5 @@
1
+ /* eslint-disable import/prefer-default-export */
2
+ import en from './en';
3
+ import zh from './zh';
4
+
5
+ export const translations = { zh, en };