agents

command module
v0.12.2 Latest Latest
Warning

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

Go to latest
Published: May 14, 2024 License: MIT Imports: 3 Imported by: 0

README


Synapse Interchain logo


Go Reference Go Report Card Image

Agents

The Agents are the off-chain components of Synapse Interchain Network. They are responsible for signing, reporting, verifying, and executing messages across chains.

Use

From sanguine/agents, run go run main.go to expose the CLI for all agents. Visit each agents' respective directory's README.md for information on individual agent usage.

Directory Structure

root
├── agents: Contain all the agents used in optimistic messaging
│   ├── agentsintegration: Testing all the agents working together
│   ├── executor: Responsible for verifying and executing cross-chain messages
│   ├── guard: Signs attestations and posts to attestation collector and destination
│   └── notary: Scans origin chains for messages and signs attestations then posts to AttestationCollector
├── cmd: The command line entrypoint for all agents
├── config: Configs for agents
├── contracts: Go interfaces for messaging contracts
├── db: Agents datastore
├── domains: Adapters for each domain
├── indexer: Periodically reads from the db and stores data in the db
├── internal: Dev dependencies
├── testutil: Contains mock deployers for interacting with the mock backend
└── types: Common agents types

Testing Suite

Tests for agents have setup hooks defined in agents/testutil/simulated_backends_suite.go. Any suite that embeds SimulatedBackendsTestSuite will have simulated backend and messaging contract scaffolding for Summit, Origin, and Desination chains. This includes TestExecutorSuite, TestGuardSuite, TestNotarySuite, ExampleAgentSuite, and AgentsIntegrationSuite.

To run all agent tests:

cd agents
go test -v ./...

To run an individual suite (for example, TestExecutorSuite):

cd agents/executor
go test -v

To run an individual test (for example, TestVerifyState):

cd agents/executor
go test -v -run TestExecutorSuite/TestVerifyState

Documentation

Overview

Package main provides the main entry point for all agents.

Directories

Path Synopsis
agents
agentsintegration
Package agentsintegration is for testing all the agents working together
Package agentsintegration is for testing all the agents working together
executor
Package executor is the executor agent responsible for proving and executing cross-chain messages.
Package executor is the executor agent responsible for proving and executing cross-chain messages.
executor/api
Package api contains the API for the executor.
Package api contains the API for the executor.
executor/cmd
Package cmd provides the command line interface for the Executor.
Package cmd provides the command line interface for the Executor.
executor/db
Package db provides a database interface for the executor.
Package db provides a database interface for the executor.
executor/db/sql
Package sql provides a datastore implementation for the executor.
Package sql provides a datastore implementation for the executor.
executor/db/sql/base
Package base contains the base sql implementation
Package base contains the base sql implementation
executor/db/sql/mysql
Package mysql implements the mysql package
Package mysql implements the mysql package
executor/db/sql/sqlite
Package sqlite implements the sqlite package
Package sqlite implements the sqlite package
executor/main
Package main provides the main entry point for the executor.
Package main provides the main entry point for the executor.
executor/metadata
Package metadata provides metadata for Executor.
Package metadata provides metadata for Executor.
executor/types
Package types contains the database types for the Executor.
Package types contains the database types for the Executor.
guard
Package guard signs attestations and posts to attestation collector and destination.
Package guard signs attestations and posts to attestation collector and destination.
guard/api
Package api contains the API for the guard.
Package api contains the API for the guard.
guard/cmd
Package cmd provides the command line interface for the guard.
Package cmd provides the command line interface for the guard.
guard/db
Package db defines the interface for the database.
Package db defines the interface for the database.
guard/db/sql/base
Package base contains the base sql implementation
Package base contains the base sql implementation
guard/db/sql/mysql
Package mysql contains a mysql db
Package mysql contains a mysql db
guard/db/sql/sqlite
Package sqlite implements the sqlite package
Package sqlite implements the sqlite package
guard/main
Package main provides the main function for the Guard.
Package main provides the main function for the Guard.
guard/metadata
Package metadata provides metadata for Guard.
Package metadata provides metadata for Guard.
notary
Package notary scans origin chains for messages to its destination and signs attestations and posts to AttestationCollector.
Package notary scans origin chains for messages to its destination and signs attestations and posts to AttestationCollector.
notary/api
Package api contains the API for the notary.
Package api contains the API for the notary.
notary/cmd
Package cmd provides the command line interface for the notary.
Package cmd provides the command line interface for the notary.
notary/db
Package db defines the interface for the database.
Package db defines the interface for the database.
notary/db/sql/base
Package base contains the base sql implementation
Package base contains the base sql implementation
notary/db/sql/mysql
Package mysql contains a mysql db
Package mysql contains a mysql db
notary/db/sql/sqlite
Package sqlite implements the sqlite package
Package sqlite implements the sqlite package
notary/main
Package main provides the main function for the Notary.
Package main provides the main function for the Notary.
notary/metadata
Package metadata provides metadata for Notary.
Package metadata provides metadata for Notary.
Package cmd is the command line interface for all agents.
Package cmd is the command line interface for all agents.
Package config contains the config for different kinds of agents
Package config contains the config for different kinds of agents
executor
Package executor contains the configuration file specifications for the Executor.
Package executor contains the configuration file specifications for the Executor.
contracts
bondingmanager
Code generated by synapse abigen DO NOT EDIT.
Code generated by synapse abigen DO NOT EDIT.
destination
Code generated by synapse abigen DO NOT EDIT.
Code generated by synapse abigen DO NOT EDIT.
gasoracle
Package gasoracle contains abi bound gasoracle contract
Package gasoracle contains abi bound gasoracle contract
inbox
Package inbox contains abi bound inbox contract
Package inbox contains abi bound inbox contract
lightinbox
Package lightinbox contains abi bound lightinbox contract
Package lightinbox contains abi bound lightinbox contract
lightmanager
Package lightmanager contains abi bound lightmanager contract
Package lightmanager contains abi bound lightmanager contract
origin
Package origin contains abi bound origin contract
Package origin contains abi bound origin contract
summit
Package summit implements the Summit contract.
Package summit implements the Summit contract.
test
Package test contains test harness contracts
Package test contains test harness contracts
test/attestationharness
Code generated by synapse abigen DO NOT EDIT.
Code generated by synapse abigen DO NOT EDIT.
test/basemessageharness
Code generated by synapse abigen DO NOT EDIT.
Code generated by synapse abigen DO NOT EDIT.
test/bondingmanagerharness
Code generated by synapse abigen DO NOT EDIT.
Code generated by synapse abigen DO NOT EDIT.
test/destinationharness
Code generated by synapse abigen DO NOT EDIT.
Code generated by synapse abigen DO NOT EDIT.
test/gasdata
Package gasdataharness implements the GasDataHarness contract.
Package gasdataharness implements the GasDataHarness contract.
test/headerharness
Package headerharness implements the HeaderHarness contract.
Package headerharness implements the HeaderHarness contract.
test/lightmanagerharness
Package lightmanagerharness generates abi data for contract LightManagerHarness.t.sol
Package lightmanagerharness generates abi data for contract LightManagerHarness.t.sol
test/messageharness
Package messageharness generates abi data for contract MessageHarness.t.sol
Package messageharness generates abi data for contract MessageHarness.t.sol
test/originharness
Package originharness generates abi data for contract OriginHarness.t.sol
Package originharness generates abi data for contract OriginHarness.t.sol
test/pingpongclient
Package pingpongclient implements the pingpongclient contract.
Package pingpongclient implements the pingpongclient contract.
test/receiptharness
Package receiptharness generates abi data for contract ReceiptHarness.t.sol
Package receiptharness generates abi data for contract ReceiptHarness.t.sol
test/requestharness
Package requestharness generates abi data for contract RequestHarness.t.sol
Package requestharness generates abi data for contract RequestHarness.t.sol
test/snapshotharness
Package snapshotharness provides a test harness for the snapshot contract.
Package snapshotharness provides a test harness for the snapshot contract.
test/stateharness
Package stateharness implements the StateHarness contract.
Package stateharness implements the StateHarness contract.
test/summitharness
Package summitharness implements the SummitHarness contract.
Package summitharness implements the SummitHarness contract.
test/testclient
Package testclient implements the testclient contract.
Package testclient implements the testclient contract.
test/tipsharness
Package tipsharness generates abi data for contract TipsHarness.t.sol
Package tipsharness generates abi data for contract TipsHarness.t.sol
Package domains contains adapters for each domain
Package domains contains adapters for each domain
evm
Package evm is the package for evm contract stuff.
Package evm is the package for evm contract stuff.
Package internal contains dev dependencies required for running developer tasks (coverage testing, etc) that are not required by the project itself.
Package internal contains dev dependencies required for running developer tasks (coverage testing, etc) that are not required by the project itself.
Package main has the main file for the pingpongtestcli utility
Package main has the main file for the pingpongtestcli utility
Package main has the main file for the testcli utility
Package main has the main file for the testcli utility
Package testutil contains mock deployers for interacting with the mock backend
Package testutil contains mock deployers for interacting with the mock backend
agentstestcontract
Code generated by synapse abigen DO NOT EDIT.
Code generated by synapse abigen DO NOT EDIT.
Package types contains common types
Package types contains common types

Jump to

Keyboard shortcuts

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