Skip to content

Latest commit

 

History

History
77 lines (59 loc) · 4.43 KB

README.md

File metadata and controls

77 lines (59 loc) · 4.43 KB

Sanguine

Go Workflows Foundry Tests

Contributing

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!

Directory Structure

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

Setup

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

Install the Correct Version of NodeJS

Using nvm, install the correct version of NodeJS.

nvm use

Building the TypeScript packages

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.

Dealing with submodules

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.