Welcome to the GlueX Router Contract public repository!
This repository serves as a central hub for all versions of the GlueX Router smart contract; a modular smart contract that facilitates user to perform complex, multi-step interactions atomically. Each version is organized into its own directory, offering clear modularity, versioning, and history tracking for ongoing development and upgrades.
Each folder in the root directory represents a specific version of the router contracts. Inside each version folder, you will find:
βββ router_v1/
β βββ base/
β β βββ RouterStructs.sol
β βββ interfaces/
β β βββ IDaiLikePermit.sol
β β βββ IERC20.sol
β β βββ IERC20Permit.sol
β β βββ IExecutor.sol
β β βββ IPermit2.sol
β β βββ IWrappedNativeToken.sol
β βββ lib/
β β βββ RevertReasonForwarder.sol
β β βββ SafeERC20.sol
β βββ utils/
β β βββ EthReceiver.sol
β βββ Router.sol
...
To get started with this repository:
- Clone the repo:
git clone https://github.com/gluexprotocol/gluex_router_contracts.git
cd gluex_router_contracts
- Explore the codebase: Start with router_v1/ Router.sol to understand the base implementation.
We welcome community contributions! Follow the guidelines below to make the PR process smooth and effective.
- Fork the repository.
- Create a new branch for your changes
- Target one issue per PR.
- Avoid combining fixes or features for multiple issues in a single pull request.
- Include a summary of the change in the PR description:
- What does it fix or add?
- Link to the issue number.
- Add screenshots or code snippets as needed.
- Visual clarity helps reviewers understand your intent faster.
- Create an issue before submitting a PR unless it's a trivial fix.
- Be descriptive:
- Whatβs the problem?
- Steps to reproduce?
- Expected vs actual?
- Add relevant labels (bug, feature, enhancement) if possible.
- Follow Solidity best practices and the projectβs style guidelines.
- Keep contracts modular and well-documented.
- Use comments and NatSpec annotations where helpful.