{"id":22873978,"url":"https://github.com/angleprotocol/boilerplate","last_synced_at":"2025-05-06T19:12:26.530Z","repository":{"id":110073281,"uuid":"518471734","full_name":"AngleProtocol/boilerplate","owner":"AngleProtocol","description":"👩‍💻 Angle Boilerplate for starting new web3 projects","archived":false,"fork":false,"pushed_at":"2023-12-11T13:54:31.000Z","size":147,"stargazers_count":20,"open_issues_count":0,"forks_count":11,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-05-06T19:12:19.085Z","etag":null,"topics":["blockchain-technology","solidity"],"latest_commit_sha":null,"homepage":"","language":"Solidity","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/AngleProtocol.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-07-27T13:34:05.000Z","updated_at":"2025-04-28T15:08:04.000Z","dependencies_parsed_at":"2023-03-13T13:58:49.965Z","dependency_job_id":"fc9ffadc-904b-454d-92ab-3e136daac9f7","html_url":"https://github.com/AngleProtocol/boilerplate","commit_stats":null,"previous_names":[],"tags_count":0,"template":true,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AngleProtocol%2Fboilerplate","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AngleProtocol%2Fboilerplate/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AngleProtocol%2Fboilerplate/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AngleProtocol%2Fboilerplate/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/AngleProtocol","download_url":"https://codeload.github.com/AngleProtocol/boilerplate/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252752060,"owners_count":21798723,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["blockchain-technology","solidity"],"created_at":"2024-12-13T14:32:10.485Z","updated_at":"2025-05-06T19:12:26.482Z","avatar_url":"https://github.com/AngleProtocol.png","language":"Solidity","readme":"# \u003cimg src=\".github/assets/logo.svg\" alt=\"Angle\" height=\"40px\"\u003e Angle Project Boilerplate\n\n[![CI](https://github.com/AngleProtocol/boilerplate/actions/workflows/ci.yml/badge.svg)](https://github.com/AngleProtocol/boilerplate/actions)\n[![Coverage](https://codecov.io/gh/AngleProtocol/boilerplate/branch/main/graph/badge.svg)](https://codecov.io/gh/AngleProtocol/boilerplate)\n\nThis repository proposes a template that is based on foundry frameworks. It also provides templates for EVM compatible smart contracts (in `./contracts/example`), tests and deployment scripts.\n\n## Starting\n\n### Install packages\n\nYou can install all dependencies by running\n\n```bash\nyarn\nforge i\n```\n\n### Create `.env` file\n\nIn order to interact with non local networks, you must create an `.env` that has:\n\n- `PRIVATE_KEY`\n- `MNEMONIC`\n- network key (eg. `ALCHEMY_NETWORK_KEY`)\n- `ETHERSCAN_API_KEY`\n\nFor additional keys, you can check the `.env.example` file.\n\nWarning: always keep your confidential information safe.\n\n## Headers\n\nTo automatically create headers, follow: \u003chttps://github.com/Picodes/headers\u003e\n\n## Hardhat Command line completion\n\nFollow these instructions to have hardhat command line arguments completion: \u003chttps://hardhat.org/hardhat-runner/docs/guides/command-line-completion\u003e\n\n## Foundry Installation\n\n```bash\ncurl -L https://foundry.paradigm.xyz | bash\n\nsource /root/.zshrc\n# or, if you're under bash: source /root/.bashrc\n\nfoundryup\n```\n\nTo install the standard library:\n\n```bash\nforge install foundry-rs/forge-std\n```\n\nTo update libraries:\n\n```bash\nforge update\n```\n\n### Foundry on Docker 🐳\n\n**If you don’t want to install Rust and Foundry on your computer, you can use Docker**\nImage is available here [ghcr.io/foundry-rs/foundry](http://ghcr.io/foundry-rs/foundry).\n\n```bash\ndocker pull ghcr.io/foundry-rs/foundry\ndocker tag ghcr.io/foundry-rs/foundry:latest foundry:latest\n```\n\nTo run the container:\n\n```bash\ndocker run -it --rm -v $(pwd):/app -w /app foundry sh\n```\n\nThen you are inside the container and can run Foundry’s commands.\n\n### Tests\n\nYou can run tests as follows:\n\n```bash\nforge test -vvvv --watch\nforge test -vvvv --match-path contracts/forge-tests/KeeperMulticall.t.sol\nforge test -vvvv --match-test \"testAbc*\"\nforge test -vvvv --fork-url https://eth-mainnet.alchemyapi.io/v2/Lc7oIGYeL_QvInzI0Wiu_pOZZDEKBrdf\n```\n\nYou can also list tests:\n\n```bash\nforge test --list\nforge test --list --json --match-test \"testXXX*\"\n```\n\n### Deploying\n\nThere is an example script in the `scripts/foundry` folder. Then you can run:\n\n```bash\nyarn foundry:deploy \u003cFILE_NAME\u003e --rpc-url \u003cNETWORK_NAME\u003e\n```\n\nExample:\n\n```bash\nyarn foundry:deploy scripts/foundry/DeployMockAgEUR.s.sol --rpc-url goerli\n```\n\n### Coverage\n\nWe recommend the use of this [vscode extension](ryanluker.vscode-coverage-gutters).\n\n```bash\nyarn hardhat:coverage\nyarn foundry:coverage\n```\n\n### Simulate\n\nYou can simulate your transaction live or in fork mode. For both option you need to\ncomplete the `scripts/foundry/Simulate.s.sol` with your values: address sending the tx,\naddress caled and the data to give to this address call.\n\nFor live simulation\n\n```bash\nyarn foundry:simulate\n```\n\nFor fork simulation\n\n```bash\nyarn foundry:fork\nyarn foundry:simulate:fork\n```\n\nFor fork simulation at a given block\n\n```bash\nyarn foundry:fork:block ${XXXX}\nyarn foundry:simulate:fork\n```\n\n### Gas report\n\n```bash\nyarn foundry:gas\n```\n\n## Slither\n\n```bash\npip3 install slither-analyzer\npip3 install solc-select\nsolc-select install 0.8.11\nsolc-select use 0.8.11\nslither .\n```\n\n## Media\n\nDon't hesitate to reach out on [Twitter](https://twitter.com/AngleProtocol) 🐦\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fangleprotocol%2Fboilerplate","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fangleprotocol%2Fboilerplate","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fangleprotocol%2Fboilerplate/lists"}