omni

module
v0.0.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 1, 2024 License: GPL-3.0

README

Omni Monorepo

Monorepo for Omni node, contracts and other related tools.

Build Tests Documentation Discord Telegram Twitter Follow

Logo

About Omni

This monorepo contains all source code for the Omni protocol. Omni's goal is to make it easy for smart contract developers to source liquidity and users from anywhere. The protocol consists of various components including an EVM and cross-chain messaging.

The Omni Docs are the best place to get started learning about Omni.

Quickstart

Building the node requires a working Go (version 1.22 or higher, see go.mod) and goreleaser (see installation guide here or install with make ensure-go-releaser). You can install them using your favorite package manager. Once the dependencies are installed, run:

make build-docker

To run the end-to-end tests, run:

MANIFEST=devnet1 make e2e-run

To start a devnet, run:

make devnet-deploy

To stop it, run:

make devnet-clean

Directory Structure

├── contracts: Solidity contracts and related software.
│ ├── core/: Core protocol smart contracts.
│ ├── avs/: Eigen AVS smart contracts.
│ ├── bindings/: Go smart contract bindings.
│ └── allocs/: Predeploy allocations.
├── docs: Documentation resources, including images and diagrams.
├── halo: The Halo instance, including application logic and attestation mechanisms.
│ ├── app: Application logic for Halo.
│ └── cmd: Command-line tools and utilities.
├── lib: Core libraries for various protocol functionalities.
│ ├── cchain: Consensus chain interaction utilities.
│ └── xchain: Cross-chain messaging and utilities.
├── octane: Octane is a modular framework for the EVM.
│ └── evmengine: The EVMEngine cosmos module.
├── relayer: Relayer service for cross-chain messages and transactions.
│ └── app: Application logic for the relayer service.
├── scripts: Utility scripts for development and operational tasks.
└── test: Testing suite for end-to-end, smoke, and utility testing.

Contributing

We are open to contributions, but don't currently have a formal process for contributors. If you are interested, browse through open issues, read our code of conduct, or chat with the team.

Security

Please refer to SECURITY.md.

Directories

Path Synopsis
cli
cmd
cmd/omni
Command omni provides the omni command line interface.
Command omni provides the omni command line interface.
e2e
anvilproxy
Command anvilproxy is the main entry point for the anvilproxy.
Command anvilproxy is the main entry point for the anvilproxy.
anvilproxy/cmd
Package cmd provides the cli for running the api.
Package cmd provides the cli for running the api.
app
app/eoa
Package eoa defines well-known (non-fireblocks) eoa private keys used in an omni network.
Package eoa defines well-known (non-fireblocks) eoa private keys used in an omni network.
cmd
fbproxy
The main entry point for the fireblocks proxy command.
The main entry point for the fireblocks proxy command.
Command halo is the main entry point for the halo consensus client.
Command halo is the main entry point for the halo consensus client.
app
app/upgrades/uluwatu
Package uluwatu defines the first omni consensus chain upgrade named after the iconic surf spot in Bali.
Package uluwatu defines the first omni consensus chain upgrade named after the iconic surf spot in Bali.
attest/module
Code generated by protoc-gen-go-pulsar.
Code generated by protoc-gen-go-pulsar.
attest/testutil
Package testutil is a generated GoMock package.
Package testutil is a generated GoMock package.
cmd
Package cmd provides the cli for running the halo consensus client.
Package cmd provides the cli for running the halo consensus client.
evmslashing
Package evmslashing monitors the Slashing pre-deploy contract and converts its log events to cosmosSDK x/slashing logic.
Package evmslashing monitors the Slashing pre-deploy contract and converts its log events to cosmosSDK x/slashing logic.
evmstaking
Package evmstaking monitors the Staking pre-deploy contract and converts its log events to cosmosSDK x/staking logic.
Package evmstaking monitors the Staking pre-deploy contract and converts its log events to cosmosSDK x/staking logic.
evmupgrade
Package evmupgrade monitors the Upgrade pre-deploy contract and converts its log events to cosmosSDK x/upgrade logic.
Package evmupgrade monitors the Upgrade pre-deploy contract and converts its log events to cosmosSDK x/upgrade logic.
genutil/genserve
Package genserve provides a simple gRPC server that allows querying the consensus and execution genesis files.
Package genserve provides a simple gRPC server that allows querying the consensus and execution genesis files.
portal/module
Code generated by protoc-gen-go-pulsar.
Code generated by protoc-gen-go-pulsar.
portal/testutil
Package testutil is a generated GoMock package.
Package testutil is a generated GoMock package.
registry/module
Code generated by protoc-gen-go-pulsar.
Code generated by protoc-gen-go-pulsar.
sdk
Package sdk implements the Cosmos SDK configuration.
Package sdk implements the Cosmos SDK configuration.
valsync/module
Code generated by protoc-gen-go-pulsar.
Code generated by protoc-gen-go-pulsar.
valsync/testutil
Package testutil is a generated GoMock package.
Package testutil is a generated GoMock package.
lib
cchain
Package cchain defines the API to interact with the omni consensus chain.
Package cchain defines the API to interact with the omni consensus chain.
cchain/provider
Package provider implements the cchain.Provider interface.
Package provider implements the cchain.Provider interface.
cmd
Package cmd provides a common utilities and helper function to standarise the way omni apps use cobra and viper to produce consistent cli experience for both users and devs.
Package cmd provides a common utilities and helper function to standarise the way omni apps use cobra and viper to produce consistent cli experience for both users and devs.
errors
Package errors provides a consistent interface for using errors.
Package errors provides a consistent interface for using errors.
ethclient/genwrap
Command genwrap provides a code generator for ethclient.Client wrapper that adds prometheus metrics and error wrapping.
Command genwrap provides a code generator for ethclient.Client wrapper that adds prometheus metrics and error wrapping.
ethclient/mock
Package mock is a generated GoMock package.
Package mock is a generated GoMock package.
evmchain
Package evmchain provides static metadata about supported evm chains.
Package evmchain provides static metadata about supported evm chains.
expbackoff
Package expbackoff implements exponential backoff.
Package expbackoff implements exponential backoff.
forkjoin
Package forkjoin provides an API for "doing work concurrently (fork) and then waiting for the results (join)".
Package forkjoin provides an API for "doing work concurrently (fork) and then waiting for the results (join)".
k1util
Package k1util provides functions to sign and verify Ethereum RSV style signatures.
Package k1util provides functions to sign and verify Ethereum RSV style signatures.
log
Package log provides a wrapper around the slog package (might change implementation later).
Package log provides a wrapper around the slog package (might change implementation later).
merkle
Package merkle provides an API to generate merkle trees and proofs from 32 byte leaves.
Package merkle provides an API to generate merkle trees and proofs from 32 byte leaves.
netconf
Package netconf provides the configuration of an Omni network, an instance of the Omni cross chain protocol.
Package netconf provides the configuration of an Omni network, an instance of the Omni cross chain protocol.
promutil
Package promutil provides Prometheus utilities.
Package promutil provides Prometheus utilities.
stream
Package stream provide a generic stream function.
Package stream provide a generic stream function.
tracer
Package tracer provides a global OpenTelemetry tracer.
Package tracer provides a global OpenTelemetry tracer.
tutil
Package tutil provides test utilities.
Package tutil provides test utilities.
umath
Package umath provides some useful unsigned math functions to prevent underflows.
Package umath provides some useful unsigned math functions to prevent underflows.
xchain
Package xchain defines the types and interfaces used by the omni cross-chain protocol.
Package xchain defines the types and interfaces used by the omni cross-chain protocol.
xchain/provider
Package provider is the implementation of the Provider interface.
Package provider is the implementation of the Provider interface.
Command monitor is the main entry point for the monitor service.
Command monitor is the main entry point for the monitor service.
app
avs
cmd
Package cmd provides the cli for running the monitor service
Package cmd provides the cli for running the monitor service
routerecon
Package routerecon defines functions to reconcile routescan cross-transactions verifying the data matches expected on-chain values.
Package routerecon defines functions to reconcile routescan cross-transactions verifying the data matches expected on-chain values.
octane
evmengine/module
Code generated by protoc-gen-go-pulsar.
Code generated by protoc-gen-go-pulsar.
Command relayer is the main entry point for the relayer.
Command relayer is the main entry point for the relayer.
app
cmd
Package cmd provides the cli for running the relayer.
Package cmd provides the cli for running the relayer.
Package scripts is a empty go package only used for the tools.go pattern.
Package scripts is a empty go package only used for the tools.go pattern.
golint
Command golint is a custom Go linter.
Command golint is a custom Go linter.
verifypr
Command verifypr provides a tool to verify omni PRs against our specific conventional commit template.
Command verifypr provides a tool to verify omni PRs against our specific conventional commit template.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL