@sei-js/create-sei 0.0.4 → 1.0.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.
Files changed (129) hide show
  1. package/.rsyncignore +11 -0
  2. package/CHANGELOG.md +23 -0
  3. package/dist/extensions/precompiles/package.json +44 -0
  4. package/dist/extensions/precompiles/src/components/default/index.tsx +201 -0
  5. package/dist/main.js +48 -29
  6. package/dist/main.test.js +34 -0
  7. package/dist/templates/next-template/.env.example +8 -0
  8. package/dist/templates/next-template/.eslintrc.json +1 -3
  9. package/dist/templates/next-template/.nvmrc +1 -0
  10. package/dist/templates/next-template/README.md +2 -6
  11. package/dist/templates/next-template/biome.json +56 -0
  12. package/dist/templates/next-template/next-env.d.ts +1 -1
  13. package/dist/templates/next-template/next.config.mjs +14 -1
  14. package/dist/templates/next-template/package.json +33 -17
  15. package/dist/templates/next-template/postcss.config.mjs +6 -0
  16. package/dist/templates/next-template/src/app/development/page.tsx +260 -0
  17. package/dist/templates/next-template/src/app/globals.css +16 -0
  18. package/dist/templates/next-template/src/app/layout.tsx +17 -8
  19. package/dist/templates/next-template/src/app/page.tsx +6 -17
  20. package/dist/templates/next-template/src/app/resources/page.tsx +175 -0
  21. package/dist/templates/next-template/src/app/resources/resources.ts +56 -0
  22. package/dist/templates/next-template/src/components/default/examples.ts +63 -0
  23. package/dist/templates/next-template/src/components/default/index.tsx +402 -0
  24. package/dist/templates/next-template/src/components/index.ts +3 -0
  25. package/dist/templates/next-template/src/components/landing/index.tsx +155 -0
  26. package/dist/templates/next-template/src/components/providers/index.ts +1 -0
  27. package/dist/templates/next-template/src/components/providers/providers.tsx +108 -0
  28. package/dist/templates/next-template/src/components/shell/index.ts +1 -0
  29. package/dist/templates/next-template/src/components/shell/shell.tsx +88 -0
  30. package/dist/templates/next-template/tailwind.config.js +5 -0
  31. package/dist/templates/next-template/tsconfig.json +2 -1
  32. package/extensions/precompiles/package.json +44 -0
  33. package/extensions/precompiles/src/components/default/index.tsx +201 -0
  34. package/jest.config.js +14 -0
  35. package/package.json +16 -5
  36. package/src/main.test.ts +38 -0
  37. package/src/main.ts +54 -34
  38. package/templates/next-template/.env.example +8 -0
  39. package/templates/next-template/.eslintrc.json +1 -3
  40. package/templates/next-template/.nvmrc +1 -0
  41. package/templates/next-template/README.md +2 -6
  42. package/templates/next-template/biome.json +56 -0
  43. package/templates/next-template/next-env.d.ts +1 -1
  44. package/templates/next-template/next.config.mjs +14 -1
  45. package/templates/next-template/package.json +33 -17
  46. package/templates/next-template/postcss.config.mjs +6 -0
  47. package/templates/next-template/src/app/development/page.tsx +260 -0
  48. package/templates/next-template/src/app/globals.css +16 -0
  49. package/templates/next-template/src/app/layout.tsx +17 -8
  50. package/templates/next-template/src/app/page.tsx +6 -17
  51. package/templates/next-template/src/app/resources/page.tsx +175 -0
  52. package/templates/next-template/src/app/resources/resources.ts +56 -0
  53. package/templates/next-template/src/components/default/examples.ts +63 -0
  54. package/templates/next-template/src/components/default/index.tsx +402 -0
  55. package/templates/next-template/src/components/index.ts +3 -0
  56. package/templates/next-template/src/components/landing/index.tsx +155 -0
  57. package/templates/next-template/src/components/providers/index.ts +1 -0
  58. package/templates/next-template/src/components/providers/providers.tsx +108 -0
  59. package/templates/next-template/src/components/shell/index.ts +1 -0
  60. package/templates/next-template/src/components/shell/shell.tsx +88 -0
  61. package/templates/next-template/tailwind.config.js +5 -0
  62. package/templates/next-template/tsconfig.json +2 -1
  63. package/.yarn/install-state.gz +0 -0
  64. package/dist/templates/next-template/public/sei-logotype.svg +0 -15
  65. package/dist/templates/next-template/src/app/components/Homepage/Examples.tsx +0 -257
  66. package/dist/templates/next-template/src/app/components/Homepage/Homepage.css +0 -154
  67. package/dist/templates/next-template/src/app/components/Homepage/Homepage.tsx +0 -87
  68. package/dist/templates/next-template/src/app/components/Web3Provider.tsx +0 -74
  69. package/dist/templates/next-template/src/app/components/index.ts +0 -2
  70. package/dist/templates/next-template/src/app/constants/chain.ts +0 -7
  71. package/dist/templates/next-template/src/app/constants/index.ts +0 -1
  72. package/dist/templates/next-template/src/app/index.css +0 -184
  73. package/dist/templates/next-template/yarn.lock +0 -4809
  74. package/dist/templates/vite-template/.eslintrc.cjs +0 -11
  75. package/dist/templates/vite-template/README.md +0 -72
  76. package/dist/templates/vite-template/index.html +0 -12
  77. package/dist/templates/vite-template/package.json +0 -33
  78. package/dist/templates/vite-template/public/sei-logotype.svg +0 -15
  79. package/dist/templates/vite-template/src/App.tsx +0 -21
  80. package/dist/templates/vite-template/src/assets/react.svg +0 -1
  81. package/dist/templates/vite-template/src/components/Homepage/Examples.tsx +0 -255
  82. package/dist/templates/vite-template/src/components/Homepage/Homepage.css +0 -154
  83. package/dist/templates/vite-template/src/components/Homepage/Homepage.tsx +0 -81
  84. package/dist/templates/vite-template/src/components/Web3Provider.tsx +0 -72
  85. package/dist/templates/vite-template/src/constants/chain.ts +0 -6
  86. package/dist/templates/vite-template/src/constants/index.ts +0 -1
  87. package/dist/templates/vite-template/src/index.css +0 -183
  88. package/dist/templates/vite-template/src/main.tsx +0 -12
  89. package/dist/templates/vite-template/src/vite-env.d.ts +0 -1
  90. package/dist/templates/vite-template/tsconfig.app.json +0 -25
  91. package/dist/templates/vite-template/tsconfig.json +0 -11
  92. package/dist/templates/vite-template/tsconfig.node.json +0 -14
  93. package/dist/templates/vite-template/vite.config.ts +0 -10
  94. package/dist/templates/vite-template/yarn.lock +0 -4603
  95. package/templates/next-template/public/sei-logotype.svg +0 -15
  96. package/templates/next-template/src/app/components/Homepage/Examples.tsx +0 -257
  97. package/templates/next-template/src/app/components/Homepage/Homepage.css +0 -154
  98. package/templates/next-template/src/app/components/Homepage/Homepage.tsx +0 -87
  99. package/templates/next-template/src/app/components/Web3Provider.tsx +0 -74
  100. package/templates/next-template/src/app/components/index.ts +0 -2
  101. package/templates/next-template/src/app/constants/chain.ts +0 -7
  102. package/templates/next-template/src/app/constants/index.ts +0 -1
  103. package/templates/next-template/src/app/favicon.ico +0 -0
  104. package/templates/next-template/src/app/index.css +0 -184
  105. package/templates/next-template/yarn.lock +0 -4809
  106. package/templates/vite-template/.eslintrc.cjs +0 -11
  107. package/templates/vite-template/README.md +0 -72
  108. package/templates/vite-template/favicon.ico +0 -0
  109. package/templates/vite-template/index.html +0 -12
  110. package/templates/vite-template/package.json +0 -33
  111. package/templates/vite-template/public/sei-logotype.svg +0 -15
  112. package/templates/vite-template/src/App.tsx +0 -21
  113. package/templates/vite-template/src/assets/react.svg +0 -1
  114. package/templates/vite-template/src/components/Homepage/Examples.tsx +0 -255
  115. package/templates/vite-template/src/components/Homepage/Homepage.css +0 -154
  116. package/templates/vite-template/src/components/Homepage/Homepage.tsx +0 -81
  117. package/templates/vite-template/src/components/Web3Provider.tsx +0 -72
  118. package/templates/vite-template/src/constants/chain.ts +0 -6
  119. package/templates/vite-template/src/constants/index.ts +0 -1
  120. package/templates/vite-template/src/index.css +0 -183
  121. package/templates/vite-template/src/main.tsx +0 -12
  122. package/templates/vite-template/src/vite-env.d.ts +0 -1
  123. package/templates/vite-template/tsconfig.app.json +0 -25
  124. package/templates/vite-template/tsconfig.json +0 -11
  125. package/templates/vite-template/tsconfig.node.json +0 -14
  126. package/templates/vite-template/vite.config.ts +0 -10
  127. package/templates/vite-template/yarn.lock +0 -4603
  128. /package/dist/templates/next-template/{src/app → public}/favicon.ico +0 -0
  129. /package/{dist/templates/vite-template → templates/next-template/public}/favicon.ico +0 -0
@@ -1,87 +0,0 @@
1
- 'use client';
2
-
3
- import { ConnectButton } from '@rainbow-me/rainbowkit';
4
- import Examples from './Examples';
5
- import './Homepage.css';
6
-
7
- type HelpItem = {
8
- title: string;
9
- description: string;
10
- link: string;
11
- };
12
-
13
- const renderHelpItem = ({ title, description, link }: HelpItem) => (
14
- <div className="card secondary">
15
- <div className="card-header">
16
- <p className="card__title">
17
- <a href={link} target="_blank" rel="noopener noreferrer" className="external-link">
18
- {title} {externalIcon}
19
- </a>
20
- </p>
21
- <small className="card__description">{description}</small>
22
- </div>
23
- </div>
24
- );
25
-
26
- const helpItems: HelpItem[] = [
27
- {
28
- title: 'Sei Docs',
29
- description: 'Find in-depth information about Sei.',
30
- link: 'https://docs.sei.io/'
31
- },
32
- {
33
- title: 'Wagmi',
34
- description: "Learn about Wagmi and it's hooks for chain interaction.",
35
- link: 'https://wagmi.sh/'
36
- },
37
- {
38
- title: 'Viem',
39
- description: 'Interact with Sei using Viem modules + Wagmi.',
40
- link: 'https://viem.sh/'
41
- },
42
- {
43
- title: 'EVM JSON-RPC API',
44
- description: 'Learn about the EVM api available on Sei.',
45
- link: 'https://ethereum.org/en/developers/docs/apis/json-rpc/'
46
- }
47
- ];
48
-
49
- const externalIcon = (
50
- <svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
51
- <path
52
- d="M12 8.66667V12.6667C12 13.0203 11.8595 13.3594 11.6095 13.6095C11.3594 13.8595 11.0203 14 10.6667 14H3.33333C2.97971 14 2.64057 13.8595 2.39052 13.6095C2.14048 13.3594 2 13.0203 2 12.6667V5.33333C2 4.97971 2.14048 4.64057 2.39052 4.39052C2.64057 4.14048 2.97971 4 3.33333 4H7.33333"
53
- stroke="#9F1239"
54
- strokeWidth="1.33333"
55
- strokeLinecap="round"
56
- strokeLinejoin="round"
57
- />
58
- <path d="M10 2H14V6" stroke="#9F1239" strokeWidth="1.33333" strokeLinecap="round" strokeLinejoin="round" />
59
- <path d="M6.66663 9.33333L14 2" stroke="#9F1239" strokeWidth="1.33333" strokeLinecap="round" strokeLinejoin="round" />
60
- </svg>
61
- );
62
-
63
- function Homepage() {
64
- return (
65
- <div className="container">
66
- <img src="sei-logotype.svg" className="logo" alt="SEI logotype" />
67
- <div className="card intro">
68
- <div className="card-header">
69
- <p className="card__title">Wallet address</p>
70
- <small className="card__description">Connect wallet to see your address and balance</small>
71
- </div>
72
- <ConnectButton />
73
- </div>
74
- <Examples />
75
- <div className="get-started">
76
- Get started by editing <code>src/app/page.tsx</code>
77
- </div>
78
- <div className="grid docs">
79
- {helpItems.map((item, index) => (
80
- <div key={item.title}>{renderHelpItem(item)}</div>
81
- ))}
82
- </div>
83
- </div>
84
- );
85
- }
86
-
87
- export default Homepage;
@@ -1,74 +0,0 @@
1
- 'use client';
2
-
3
- import { RainbowKitProvider, connectorsForWallets, lightTheme } from '@rainbow-me/rainbowkit';
4
- import { metaMaskWallet } from '@rainbow-me/rainbowkit/wallets';
5
- import { Buffer } from 'buffer';
6
- import { ReactNode, useMemo } from 'react';
7
- import { WagmiProvider, createConfig, http } from 'wagmi';
8
-
9
- import '@rainbow-me/rainbowkit/styles.css';
10
- import { QueryClient, QueryClientProvider } from '@tanstack/react-query';
11
- import { selectedChain } from '../constants';
12
-
13
- const queryClient = new QueryClient();
14
-
15
- interface Web3ProviderProps {
16
- children: ReactNode;
17
- }
18
-
19
- const connectors = connectorsForWallets(
20
- [
21
- {
22
- groupName: 'Recommended',
23
- wallets: [metaMaskWallet]
24
- }
25
- ],
26
- {
27
- appName: '<YOUR_APPNAME_HERE>',
28
- projectId: '<YOUR_ID_HERE>'
29
- }
30
- );
31
-
32
- function Web3Provider({ children }: Web3ProviderProps) {
33
- // Buffer polyfill
34
- if (typeof window !== 'undefined') {
35
- window.Buffer = window.Buffer ?? Buffer;
36
- }
37
- const chainConfig = selectedChain;
38
- const config = useMemo(
39
- () =>
40
- createConfig({
41
- chains: [chainConfig],
42
- connectors,
43
- transports: {
44
- [chainConfig.id]: http()
45
- }
46
- }),
47
- [chainConfig]
48
- );
49
-
50
- return (
51
- <WagmiProvider config={config}>
52
- <QueryClientProvider client={queryClient}>
53
- <RainbowKitProvider
54
- theme={lightTheme({
55
- accentColor: '#7e1914',
56
- accentColorForeground: 'white',
57
- borderRadius: 'medium',
58
- fontStack: 'system'
59
- })}
60
- appInfo={{
61
- appName: '<APP-NAME-HERE>',
62
- learnMoreUrl: 'https://www.docs.sei.io/user-guides/wallet-setup'
63
- }}
64
- modalSize="compact"
65
- initialChain={chainConfig.id}
66
- >
67
- {children}
68
- </RainbowKitProvider>
69
- </QueryClientProvider>
70
- </WagmiProvider>
71
- );
72
- }
73
-
74
- export default Web3Provider;
@@ -1,2 +0,0 @@
1
- export * from './Homepage/Homepage';
2
- export * from './Web3Provider';
@@ -1,7 +0,0 @@
1
- // Set your selected chain here
2
- import { seiDevnet } from 'viem/chains';
3
-
4
- // Set your selected chain here
5
- // To point to mainnet, use sei.
6
- // To point to testnet, use seiTestnet.
7
- export const selectedChain = seiDevnet;
@@ -1 +0,0 @@
1
- export * from './chain';
@@ -1,184 +0,0 @@
1
- /*
2
- 1. Use a more-intuitive box-sizing model.
3
- */
4
- *,
5
- *::before,
6
- *::after {
7
- box-sizing: border-box;
8
- }
9
- /*
10
- 2. Remove default margin
11
- */
12
- * {
13
- margin: 0;
14
- }
15
- /*
16
- Typographic tweaks!
17
- 3. Add accessible line-height
18
- 4. Improve text rendering
19
- */
20
- body {
21
- line-height: 1.5;
22
- -webkit-font-smoothing: antialiased;
23
- }
24
- /*
25
- 5. Improve media defaults
26
- */
27
- img,
28
- picture,
29
- video,
30
- canvas,
31
- svg {
32
- display: block;
33
- max-width: 100%;
34
- }
35
- /*
36
- 6. Remove built-in form typography styles
37
- */
38
- input,
39
- button,
40
- textarea,
41
- select {
42
- font: inherit;
43
- }
44
- /*
45
- 7. Avoid text overflows
46
- */
47
- p,
48
- h1,
49
- h2,
50
- h3,
51
- h4,
52
- h5,
53
- h6 {
54
- overflow-wrap: break-word;
55
- line-height: 1;
56
- }
57
- /*
58
- 8. Create a root stacking context
59
- */
60
- #root,
61
- #__next {
62
- isolation: isolate;
63
- }
64
-
65
- :root {
66
- font-family: Inter, system-ui, Avenir, Helvetica, Arial, sans-serif;
67
- line-height: 1.5;
68
- font-weight: 400;
69
-
70
- color-scheme: light dark;
71
- color: #000;
72
- background: var(--background);
73
-
74
- font-synthesis: none;
75
- text-rendering: optimizeLegibility;
76
- -webkit-font-smoothing: antialiased;
77
- -moz-osx-font-smoothing: grayscale;
78
-
79
- --primary-color: #9f1239;
80
- --primary-color-hover: #7f0a2e;
81
- --background: linear-gradient(180deg, #f5f5f4 0%, #fff 100%);
82
- --border: #d6d3d1;
83
- --card: #fff;
84
- --card-foreground: #242424;
85
- }
86
-
87
- a {
88
- font-weight: 500;
89
- color: var(--primary-color);
90
- text-decoration: inherit;
91
- }
92
- a:hover {
93
- color: var(--primary-color-hover);
94
- }
95
-
96
- body {
97
- margin: 0;
98
- padding: 0;
99
- }
100
-
101
- h1 {
102
- font-size: 3.2em;
103
- line-height: 1;
104
- }
105
- code {
106
- font-family: source-code-pro, Menlo, Monaco, Consolas, "Courier New", monospace;
107
- display: inline-flex;
108
- border-radius: 4px;
109
- padding: 0.1rem 0.4rem;
110
- background-color: #d7cccc;
111
- color: var(--card-foreground);
112
- }
113
-
114
- button {
115
- border-radius: 4rem;
116
- border: 1px solid transparent;
117
- padding: 0.6em 1.2em;
118
- font-size: 1em;
119
- font-weight: 500;
120
- font-family: inherit;
121
- background-color: #cec9c1;
122
- cursor: pointer;
123
- transition: all 0.25s ease;
124
- color: black;
125
- }
126
- button:hover {
127
- background-color: #b5afa7;
128
- }
129
-
130
- button:disabled {
131
- filter: grayscale(1) opacity(0.5);
132
- color: rgb(56, 55, 55);
133
- pointer-events: none;
134
- }
135
-
136
- button.primary {
137
- background-color: var(--primary-color);
138
- color: #fff;
139
- }
140
- button.outline {
141
- background-color: transparent;
142
- border: 1px solid var(--border);
143
- }
144
-
145
- button.primary:hover {
146
- background-color: var(--primary-color-hover);
147
- }
148
-
149
- button.secondary {
150
- background-color: #000;
151
- color: #fff;
152
- }
153
-
154
- button.secondary:hover {
155
- background-color: #2b2b2b;
156
- }
157
-
158
- button:active {
159
- transform: translateY(1px);
160
- }
161
-
162
- button.small {
163
- padding: 0.4em 0.8em;
164
- font-size: 0.8em;
165
- }
166
-
167
- button:focus-visible {
168
- outline: 4px auto -webkit-focus-ring-color;
169
- outline-offset: 4px;
170
- }
171
-
172
- .header {
173
- width: 100%;
174
- height: 4rem;
175
- padding: 0 1%;
176
- display: flex;
177
- align-items: center;
178
- justify-content: right;
179
- background-color: transparent;
180
- border-bottom: 1px solid var(--border);
181
- position: sticky;
182
- top: 0;
183
- background: #f5f5f4;
184
- }