Holograph provides omnichain NFT infrastructure for the web3 ecosystem. Holograph Protocol enables the creation, deployment, minting, & bridging of omnichain NFTs with complete data integrity.
- This project uses asdf for versions management. Install following plugins
- Install asdf Node plugin:
asdf plugin add nodejs https://github.com/asdf-vm/asdf-nodejs.git
- Install asdf yarn plugin:
asdf plugin-add yarn
- Install asdf Node plugin:
- Run
asdf install
after to have the correct tool versions. - Install dependencies with
yarn install
. - Initialize the project with
yarn run init
(this will copy sample environment configs).
All smart contracts source code is located in the src
directory.
Files from the src
directory are automatically transpiled into the contracts
directory each time that hardhat compiles the contracts.
To manually run just the build task use yarn run build
.
- Build the latest version of the contracts via
yarn run clean-compile
(alternatively you can just runyarn run compile
). - Start the localhost ganache instances via
yarn run ganache-x2
(this will run two instances simultaneously inside of one command). Make sure to run this command in a separate terminal window. - Deploy the smart contracts via
yarn run deploy
. - Run all tests via
yarn run test
.
If you need the smart contracts ABI files for dApp integrations, use yarn run abi
to get a complete list of all ABI's inside of the abi
directory.
Before pushing your work to the repo, make sure to prepare your code
Please make use of the yarn run prettier:fix
command to format the codebase into a universal style.
root ├── config: Network configuration files ├── contracts: Smart contracts that power the Holograph protocol ├── deploy: Deployment scripts for the smart contracts uses Hardhat and Hardhat Deploy ├── deployments: Deployment build files that include contract addresses on each network ├── scripts: Scripts and helper utilities ├── src: Source contracts that get dynamically transpiled down into the finalized output contracts └── test: Hardhat tests for the smart contracts
Branch | Status |
---|---|
mainnet | Accepts PRs from testnet or release/x.x.x when we intend to deploy to mainnet. |
testnet | Accepts PRs from develop that are ready to be deployed to testnet. |
develop | Accepts PRs from feature/xyz branches that are experimental or in testing stage. |
release/x.x.x | Accepts PRs from testnet . |
We generally follow this Git branching model. Please read the linked post if you're planning to make frequent PRs into this repository.
The mainnet
branch contains the code for our latest "stable" mainnet releases.
Updates from mainnet
always come from the testnet
branch.
We only ever update the mainnet
branch when we intend to deploy code that has been tested on testnets to all mainnet networks supported by the Holograph protocol.
Our update process takes the form of a PR merging the testnet
branch into the mainnet
branch.
The testnet
branch continas the code that is the latest stable testnet release for all supported networks. This branch is deployed and circulated for beta users of the protocol. Updates are merged in from the develop
branch once they're ready for broad usage.
Our primary development branch is develop
.
develop
contains the most up-to-date software that is being tested via experimental network deployments.
Read through CONTRIBUTING.md for a general overview of our contribution process.
Files under this repository are licensed under Holograph Limited Public License (H-LPL) 1.0.0 unless otherwise stated.