Added README.md

This commit is contained in:
Jayden Windle
2023-07-24 12:00:22 -07:00
parent 208f086450
commit 9b836bbbc3

58
README.md Normal file
View File

@@ -0,0 +1,58 @@
# Tokenbound Account Contracts
This repository contains an opinionated [ERC-6551](https://eips.ethereum.org/EIPS/eip-6551) account implementation. The smart contracts are written in Solidity using the [Foundry](https://book.getfoundry.sh/) development framework.
**This project is under active development and may undergo changes until ERC-6551 is finalized.** For the most recently deployed version of these contracts, see the [v0.2.0](https://github.com/tokenbound/contracts/releases/tag/v0.2.0) release. We recommend this version for any production usage.
## Contracts
The `src/` directory contains the main contracts for the project:
- `Account.sol`: This contract is the main ERC-6551 account implementation. It includes functionalities for executing a low-level call against an account if the caller is authorized to make calls, setting the implementation address for a given function call, granting a given caller execution permissions, locking the account until a certain timestamp, and more.
- `AccountGuardian.sol`: This contract manages upgrade and cross-chain execution settings for accounts. It includes functionalities for setting trusted implementations and executors.
- `AccountProxy.sol`: This contract is an ERC-1967 proxy which enables account upgradability. It includes functionalities for initializing and getting the implementation of the contract.
## Using as a Dependency
If you want to use `tokenbound/contracts` as a dependency in another project, you can add it using `forge install`:
```sh
forge install tokenbound=tokenbound/contracts
```
This will add `tokenbound/contracts` as a git submodule in your project. For more information on managing dependencies, refer to the [Foundry dependencies guide](https://github.com/foundry-rs/book/blob/master/src/projects/dependencies.md).
## Development Setup
You will need to have Foundry installed on your system. Please refer to the [Foundry installation guide](https://github.com/foundry-rs/book/blob/master/src/getting-started/installation.md) for detailed instructions.
To use this repository, first clone it:
```sh
git clone https://github.com/tokenbound/contracts.git
cd contracts
```
Then, install the dependencies:
```sh
forge install
```
This will install the submodule dependencies that are in the project.
## Running Tests
To run the tests, use the `forge test` command:
```sh
forge test
```
For more information on writing and running tests, refer to the [Foundry testing guide](https://github.com/foundry-rs/book/blob/master/src/forge/writing-tests.md).
## Contributing
Contributions are welcome and appreciated! Please make sure to run the tests before submitting a pull request.