Using the magic of cryptographic technology to bring balance to the world and promote decentralized justice.
The Excalibur Protocol is an on-chain justice system, carefully designed to imitate the same innate human social structures that the traditional justice system is based on.
Clone .env.example to .env and fill in your environment parameters.
This project currently uses Hardhat 2 and ethers 5. Install dependencies with legacy peer dependency resolution:
npm install --legacy-peer-deps- Compile contracts:
npx hardhat compile - Run tests:
npx hardhat test - Run coverage:
npx hardhat coverage - Check contract size:
npx hardhat size-contracts - Deploy protocol (Rinkeby):
npx hardhat run scripts/deploy.ts --network rinkeby - Deploy foundation (Mumbai):
npx hardhat run scripts/foundation.ts --network mumbai - Deploy protocol (Mumbai):
npx hardhat run scripts/deploy.ts --network mumbai - Audit dependencies:
npm audit - Cleanup:
npx hardhat clean
- Tests use
@nomicfoundation/hardhat-chai-matchersinstead of the deprecated Waffle plugin. - Contract verification uses
@nomicfoundation/hardhat-verify. solidity-coverageis on the Hardhat 2 compatible0.8.xline.- The known
wssecurity alert is resolved in the npm dependency graph. - Remaining audit findings require a larger Hardhat 3 / ethers 6 / OpenZeppelin Upgrades 4 migration. Track that work in
doc/dev-plan.md.
Enter your Etherscan API key into the .env file and run the following command
(replace DEPLOYED_CONTRACT_ADDRESS with the contract's address and "Hello, Hardhat!" with the parameters you sent the contract upon deployment:
npx hardhat verify --network ropsten DEPLOYED_CONTRACT_ADDRESS "Hello, Hardhat!"