The Normal v1 Interface is built with TypeScript and leverages yarn workspaces for package management. You'll find multiple packages in the /packages
directory, each serving a unique function in the overall application ecosystem.
Our UI
package is an MUI-based UI kit, providing reusable components and styles in line with Material Design principles. It ensures a uniform and appealing visual experience across the app.
The Types
package focuses on state management, incorporating zustand along with its actions to optimally manage and update the app's data based on user interactions and other events.
Housing a range of utility and helper functions, the Utils
package offers a one-stop-shop for common tasks like data manipulation, date formatting, string handling, and network calls.
The SDK
package provides a Typescript SDK for interacting with Normal v1 contracts on Solana.
As the heart of the application, the Core
package orchestrates the UI, state management, and utility functions. It's built on Next.js and serves as the primary entry point, setting the architectural groundwork and facilitating inter-package interactions.
The Contracts
package provides generated contract classes and associated types, created through Soroban bindings. For more information, refer to Soroban's documentation.
A Next.js app
- Clone the repo locally.
- Make sure Node.js and yarn are installed.
- Cd into the project root.
- Run
yarn install
. - Navigate to the package you're interested in under
/packages
. - Check the package-specific readme for setup and usage instructions.
Contributions are always welcome!
See contributing.md
for ways to get started.
Please adhere to this project's code of conduct
.