See our specs
for more detailed documentation in /specs
If you would like to contribute, please read CONTRIBUTING.md first.
Before using apps in this repo, we first need to install all dependencies.
NOTE These instructions may work with other Ubuntu-based systems, but are only confirmed to work in Ubuntu.
# Install rustup
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
# Add WASM target
rustup target add wasm32-unknown-unknown
# Install clang
sudo apt-get install -y clang
# Install pkg-config
sudo apt-get install -y pkg-config
# Install openssl development packages
sudo apt-get install -y libssl-dev
# Install protoc
sudo apt-get install -y protobuf-compiler
# Install curl
sudo apt-get install -y curl
# Install npm
sudo apt-get install -y npm
# Install wasm-pack
curl https://rustwasm.github.io/wasm-pack/installer/init.sh -sSf | sh
# Install yarn and JS dependencies
npm install -g yarn
# within namada-interface/ base folder:
yarn
# Initialize Husky
yarn prepare
# Install xcode
xcode-select --install
# Install rustup
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
# Add WASM target
rustup target add wasm32-unknown-unknown
# Install clang
brew install clang
# Install pkg-config
brew install pkg-config
# Install openssl development packages
brew install libssl-dev
# Install protoc
brew install protobuf
# Install wasm-pack
curl https://rustwasm.github.io/wasm-pack/installer/init.sh -sSf | sh
# Install yarn and JS dependencies
npm install -g yarn
# within namada-interface/ base folder:
yarn
# Initialize Husky
yarn prepare
Finally, update your shell environment (e.g., in ~/.zshrc
) to set the following variables:
export CC=/usr/local/opt/llvm/bin/clang
AR=/usr/local/opt/llvm/bin/llvm-ar
On macOS, when using Apple Silicon architecture, in order to compile some packages for our wasm dependencies, you will need to install the following:
# Mac M1/M2 only - install brew's version of llvm
brew install llvm
Then, in your shell profile (e.g., ~/.zshrc
), export the following environment variables:
# Mac M1/M2 only
export LDFLAGS="-L/opt/homebrew/opt/llvm/lib"
export CPPFLAGS="-I/opt/homebrew/opt/llvm/include"
export CC=/opt/homebrew/opt/llvm/bin/clang
export AR=/opt/homebrew/opt/llvm/bin/llvm-ar
Before you start the extension and interface, you will need at least a chain ID, an RPC URL, and an Indexer URL. This can either be a local chain or an existing network. If you know the chain ID and URL, you can skip the following and simply enter these values on the app interface.
TENDERMINT_URL
in your .env
file points to your local RPC (default is http://localhost:27657
) or to a public RPC.Within apps/extension/
, we may issue the following commands:
# Build wasm dependencies
yarn wasm:build
# Build wasm dependencies with debugging enabled
yarn wasm:build:dev
# Run development extension for Chrome
yarn start:chrome
# Run development extension for Firefox
yarn start:firefox
# Build Chrome extension (production version)
yarn build:chrome
# Build Firefox extension (production version)
yarn build:firefox
See the FIREFOX_README.md for specific instructions related to reviewing the Firefox Add-On.
Within apps/namadillo/
, we may issue the following commands:
# Make sure to build wasm dependencies before starting development server
yarn wasm:build
# Run development interface, hosted at http://localhost:5173
yarn dev
# Build production version
yarn build
There are also app-specific instructions in the namadillo README and the extension README.
At the root-level, we can issue commands for all packages in the monorepo. Following is an example:
# Execute all tests within monorepo
# Running this from the root project directory will run unit tests
# for all packages where a test script is defined
yarn test
# Lint all packages
yarn lint
# Fix linting on all packages
yarn lint:fix
Storybook provides a documentation for UI components. Within /storybook
folder, you can install and run it using the following commands:
# Install packages
yarn
# Run Storybook interface
yarn storybook
To generate a static build, you can run
yarn storybook-build
The generated output will be available at /storybook/storybook-static
folder.
Least Authority audit - 03.07.2023
Unless explicitly stated otherwise all files in this repository are licensed under the Apache License 2.0.
License boilerplate:
Copyright Anoma Foundation 2021-2023
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.