Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Next #9

Open
wants to merge 14 commits into
base: adutit-commit
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions CODE_OF_CONDUCT.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
1. We are committed to providing a friendly, safe, and welcoming environment for all, regardless of level of experience, gender identity and expression, sexual orientation, disability, personal appearance, body size, race, ethnicity, age, religion, nationality, or other similar characteristic.
2. Please avoid using overtly sexual aliases or other nicknames that might detract from a friendly, safe, and welcoming environment for all.
3. Please be kind and courteous. There's no need to be mean or rude.
4. Respect people's differences of opinion and the fact that every design or implementation choice involves a trade-off and numerous costs. There is seldom a correct answer.
5. Please limit unstructured critique. If you have solid ideas you want to experiment with, make a fork and see how it works.
6. We will exclude you from interaction if you insult, demean, or harass anyone. That is not welcome behavior. We interpret the term "harassment" as including the definition in the Citizen Code of Conduct; if you lack clarity about what might be included in that concept, please read their definition. In particular, we don't tolerate behavior that excludes people in socially marginalized groups.
7. Private harassment is also unacceptable. No matter who you are, if you feel you have been or are being harassed or made uncomfortable by a community member, please get in touch with the administrators. Whether you're a regular contributor or a newcomer, we care about making this community safe and having your back.
8. Any spamming, trolling, flaming, baiting, or other attention-stealing behavior is unwelcome.
26 changes: 26 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
# Contributing to Solana Axelar integration

First off, thanks for taking the time to contribute! 🎉👍

The following is a set of guidelines for contributing to this project. These are mostly guidelines, not rules. Use your best judgment, and feel free to propose changes to this document in a pull request.

## Code of Conduct

The [Code of Conduct](CODE_OF_CONDUCT.md) governs this project and everyone participating in it. By participating, you are expected to uphold this code.

## How Can I Contribute?

### Reporting Bugs

Before creating bug reports, please check if the issue has already been reported. If it has and the issue is still open, comment on the existing issue instead of opening a new one.

### Pull Requests

Pull requests are the best way to propose changes to the codebase. We actively welcome your pull requests:

1. Fork the repo and create your branch from `main`.
2. Add tests if you've added code that should be tested.
3. If you've changed APIs, update the documentation.
4. Ensure the test suite passes.
5. Make sure your code lints.
6. Issue that pull request!
21 changes: 21 additions & 0 deletions LICENSE
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
MIT License

Copyright (c) 2024 Eiger

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
69 changes: 37 additions & 32 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,65 +1,70 @@
# Solana-Axelar Interoperability

This repository contains the under-development integration work between Solana and Axelar, enabling seamless cross-chain communication. The project includes General Message Passing (GMP) contracts and off-chain services for event monitoring and transaction broadcasting.
This repository contains the integration work between Solana and Axelar, enabling seamless cross-chain communication. The project includes General Message Passing (GMP) contracts and other Axelar core components.

## Table of Contents

- [Repository contents](#repository-contents)
- [EVM Smart Contracts](#evm-smart-contracts)
- [Solana contracts](#solana-contracts)
- [Offchain microservices](#offchain-microservices)
- [Utility crates](#utility-crates)
- [EVM Smart contracts](#evm-smart-contracts)
- [Related repositories](#related-repositories)
- [Getting Started](#getting-started)
- [Prerequisites](#prerequisites)
- [Installation](#installation)
- [Usage](#usage)
- [Contributing](#contributing)
- [License](#license)


## Repository contents

### EVM Smart Contracts
- **placeholder Contract name**: [Description Needed]
- **placeholder Contract name**: [Description Needed]

### Solana contracts
- **Event Listener**: [Description Needed]
![image](https://github.com/user-attachments/assets/88008f1c-4096-4248-87b2-128b65cb8e41)

### Offchain microservices
- **Relayer**: [Description Needed]
The Solana-Axelar integration contains on-chain and off-chain components.

### Solana contracts
- [**Gateway**](solana/programs/axelar-solana-gateway/README.md): The core contract responsible for authenticating GMP messages.
- [**Gas Service**](solana/programs/axelar-solana-gas-service/README.md): Used for gas payments for the relayer.
- [**Interchain Token Service**](solana/programs/axelar-solana-its/README.md): Bridge tokens between chains.
- [**Multicall**](solana/programs/axelar-solana-multicall): Execute multiple actions from a single GMP message.
- [**Governance**](solana/programs/axelar-solana-governance/README.md): The governing entity over on-chain programs, responsible for program upgrades.
- [**Memo**](solana/programs/axelar-solana-memo-program): An example program that sends and receives GMP messages.

## Getting Started

### Prerequisites
#### Utility crates
- [**Axelar Executable**](solana/crates/axelar-executable/README.md): A set of libraries & interfaces that the destination program (3rd party integration) must implement.
- [**Axelar Solana Encoding**](solana/crates/axelar-solana-encoding/README.md): Encoding used by the Multisig Prover to encode the data in a way that the relayer & the Solana Gateway can interpret.
- [**Gateway Event Stack**](solana/crates/gateway-event-stack): The Relayer uses this crate to parse Gas Service & Gateway events.

- [List of prerequisites, e.g., Rust, Solana CLI, Axelar SDK, etc.]
### EVM Smart Contracts
- [**Axelar Memo**](evm-contracts/src/AxelarMemo.sol): A counterpart of the `axelar-solana-memo` program that acts as an example program used to send GMP messages back and forth Solana.
- [**Axelar Solana Multi Call**](evm-contracts/src/AxelarSolanaMultiCall.sol): An example contract used to showcase how to compose Multicall payloads for Solana.
- [**Solana Gateway Payload**](evm-contracts/src/ExampleEncoder.sol): A Solditiy library that can create Solana-specific GMP payloads.

### Installation

```bash
# Clone the repo (& init submodules)
git clone --recurse-submodules <repo url>
## Related Repositories

# if the repo has already been cloned you need to fetch the submodules
git submodule update --init --recursive
```
- [**Solana Relayer**](https://github.com/eigerco/axelar-solana-relayer): The off-chain entity that will route your messages to and from Solana.
- [**Relayer Core**](https://github.com/eigerco/axelar-relayer-core): All Axelar-related relayer infrastructure. Used as a core building block for the Solana Relayer. The Axelar-Starknet and Axlelar-Aleo relayers also use it.
- [**Multisig Prover**](https://github.com/eigerco/axelar-amplifier/tree/add-multisig-prover-sol-logic/contracts/multisig-prover): The entity on the Axelar chain that is responsible for encoding the data for the Relayer and the Solana Gateway
- [**Utility Scripts**](https://github.com/eigerco/solana-axelar-scripts): Deployment scripts; GMP testing scripts and other utilities.

### Usage

- [Instructions on how to run the project, deploy contracts, etc.]
## Getting Started

## Contributing
### Prerequisites

- [Guidelines for contributing to the repo, including pull request processes, coding standards, etc.]
- [Solana CLI (for running tests during development)](https://solana.com/docs/intro/installation)
- [Foundry (for running e2e tests, GMP examples between Solana and an EVM chain)](https://book.getfoundry.sh/getting-started/installation)

## License
### Installation

- [Details about the licensing of the project]
```bash
git clone [email protected]:eigerco/solana-axelar.git
cd solana
cargo xtask test
```

## About [Eiger](https://www.eiger.co)

We are engineers. We contribute to various ecosystems by building low level implementations and core components. We work on several Axelar and Solana projects and believe that connecting these two is a very important goal to achieve cross-chain execution.
We are engineers. We contribute to various ecosystems by building low-level implementations and core components. We work on several Axelar and Solana projects and connecting these two is a fundamental goal to achieve cross-chain execution.

Contact us at [email protected]
Follow us on [X/Twitter](https://x.com/eiger_co)
2 changes: 2 additions & 0 deletions solana/Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading
Loading