Read through CONTRIBUTING.md for a general overview of our contribution process. Then check out our list of good first issues to find something fun to work on!
root ├── agents: agents contain all the agents used in optimistic messaging ├── charts: The helm charts used for deploying sanguine related services ├── contrib: Devops related tools │ ├── git-changes-action: Github action for identifying changes in dependent modules in a go workspace │ ├── release-copier-action: Github action for copying releases from one repo to another │ ├── terraform-provider-iap: Terraform provider used for bastion proxy tunneling │ ├── terraform-provider-helmproxy: Terraform provider that allows helm to be proxied through an iap bastion proxy │ ├── terraform-provider-kubeproxy: Terraform provider that allows kube to be proxied through an iap bastion proxy │ ├── tfcore: Terraform core utilities + iap utilities ├── core: The Go core library with common utilities for use across the monorepo ├── ethergo: Go-based ethereum testing + common library ├── packages │ ├── contracts-core: Core contracts used for synapse, powered by Foundry │ ├── coverage-aggregator: Javascript coverage aggregator based on nyc │ ├── docs: Docasaurus documentation │ ├── explorer-ui: Explorer UI │ ├── sdk-router: SDK router │ ├── synapse-interface: Synapse frontend code ├── services │ ├── explorer: Bridge/messaging explorer backend │ ├── omnirpc: Latency aware RPC Client used across multiple-chains at once │ ├── scribe: Generalized ethereum event logger ├── tools │ ├── abigen: Used to generate abigen bindings for go │ ├── bundle: Modified version of go bundler with improved shadowing support │ ├── module copier: Used to copy internal modules and export methods for testing
Clone the repository, open it, and install nodejs packages with yarn
:
git clone https://github.com/synapsecns/sanguine --recurse-submodules -j10
cd sanguine
yarn install
Using nvm
, install the correct version of NodeJS.
nvm use
To build all of the TypeScript packages, run:
yarn clean
yarn build
Packages compiled when on one branch may not be compatible with packages on a different branch. You should recompile all packages whenever you move from one branch to another. Use the above commands to recompile the packages.
This repo make use of multiple submodules. To avoid issues when checking out different branches, you can use git submodule update --init --recursive
after switching to a branch or git checkout feat/branch-name --recurse-submodules
when switching branches.